forgebook 0.1.8 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +875 -23
- package/dist/bin/forgebook/agentClient.d.ts +30 -1
- package/dist/bin/forgebook/agentClient.js +155 -14
- package/dist/bin/forgebook/agentLoopCommands.d.mts +0 -1
- package/dist/bin/forgebook/agentLoopCommands.mjs +161 -40
- package/dist/bin/forgebook/agentText.d.ts +74 -3
- package/dist/bin/forgebook/agentText.js +192 -8
- package/dist/bin/forgebook/agents.md +141 -7
- package/dist/bin/forgebook/agentsText.d.ts +7 -3
- package/dist/bin/forgebook/agentsText.js +7 -3
- package/dist/bin/forgebook/builtCatalogue.d.ts +31 -0
- package/dist/bin/forgebook/builtCatalogue.js +96 -0
- package/dist/bin/forgebook/catalogueCommands.d.ts +22 -3
- package/dist/bin/forgebook/catalogueCommands.js +21 -2
- package/dist/bin/forgebook/catalogueVite.d.ts +51 -9
- package/dist/bin/forgebook/catalogueVite.js +95 -9
- package/dist/bin/forgebook/checkCodeRun.d.ts +8 -0
- package/dist/bin/forgebook/checkCodeRun.js +27 -0
- package/dist/bin/forgebook/commandServer.d.ts +11 -0
- package/dist/bin/forgebook/commandServer.js +39 -0
- package/dist/bin/forgebook/compileCache.d.ts +7 -0
- package/dist/bin/forgebook/compileCache.js +24 -0
- package/dist/bin/forgebook/devCommands.d.mts +14 -0
- package/dist/bin/forgebook/devCommands.mjs +104 -0
- package/dist/bin/forgebook/errorsRun.d.ts +0 -1
- package/dist/bin/forgebook/errorsRun.js +0 -1
- package/dist/bin/forgebook/forgebook.d.mts +0 -1
- package/dist/bin/forgebook/forgebook.mjs +18 -302
- package/dist/bin/forgebook/forgebookCommands.d.mts +1 -0
- package/dist/bin/forgebook/forgebookCommands.mjs +292 -0
- package/dist/bin/forgebook/importers/storybook.d.ts +10 -4
- package/dist/bin/forgebook/importers/storybook.js +71 -45
- package/dist/bin/forgebook/importers/storybookAngular.d.ts +15 -0
- package/dist/bin/forgebook/importers/storybookAngular.js +97 -0
- package/dist/bin/forgebook/importers/storybookFrameworks.d.ts +53 -0
- package/dist/bin/forgebook/importers/storybookFrameworks.js +180 -0
- package/dist/bin/forgebook/importers/storybookReactNative.d.ts +40 -0
- package/dist/bin/forgebook/importers/storybookReactNative.js +179 -0
- package/dist/bin/forgebook/initCommands.d.mts +0 -1
- package/dist/bin/forgebook/initCommands.mjs +23 -12
- package/dist/bin/forgebook/initConfig.d.ts +0 -1
- package/dist/bin/forgebook/initConfig.js +17 -3
- package/dist/bin/forgebook/mcpCommand.d.mts +8 -0
- package/dist/bin/forgebook/mcpCommand.mjs +99 -0
- package/dist/bin/forgebook/mcpPreview.d.ts +32 -0
- package/dist/bin/forgebook/mcpPreview.js +107 -0
- package/dist/bin/forgebook/mcpToolParts.d.ts +28 -0
- package/dist/bin/forgebook/mcpToolParts.js +24 -0
- package/dist/bin/forgebook/mcpTools.d.ts +12 -6
- package/dist/bin/forgebook/mcpTools.js +148 -27
- package/dist/bin/forgebook/newStories.d.ts +2 -3
- package/dist/bin/forgebook/newStories.js +4 -3
- package/dist/bin/forgebook/newStoriesFile.d.ts +3 -4
- package/dist/bin/forgebook/newStoriesFile.js +23 -11
- package/dist/bin/forgebook/pageTools.d.ts +8 -0
- package/dist/bin/forgebook/pageTools.js +71 -0
- package/dist/bin/forgebook/pagesCommands.d.mts +14 -0
- package/dist/bin/forgebook/pagesCommands.mjs +109 -0
- package/dist/bin/forgebook/prebundleChild.d.ts +1 -0
- package/dist/bin/forgebook/prebundleChild.js +34 -0
- package/dist/bin/forgebook/prebundleRun.d.ts +22 -0
- package/dist/bin/forgebook/prebundleRun.js +49 -0
- package/dist/bin/forgebook/prebundleStart.d.ts +44 -0
- package/dist/bin/forgebook/prebundleStart.js +82 -0
- package/dist/bin/forgebook/semanticOptions.d.ts +45 -0
- package/dist/bin/forgebook/semanticOptions.js +36 -0
- package/dist/bin/forgebook/storyCheckCommands.d.mts +13 -0
- package/dist/bin/forgebook/storyCheckCommands.mjs +69 -0
- package/dist/bin/forgebook/storyCheckRun.d.ts +40 -6
- package/dist/bin/forgebook/storyCheckRun.js +90 -17
- package/dist/bin/forgebook/tokensRun.d.ts +41 -0
- package/dist/bin/forgebook/tokensRun.js +42 -0
- package/dist/bin/forgebook/touchWindowRun.d.ts +0 -1
- package/dist/bin/forgebook/touchWindowRun.js +0 -1
- package/dist/bin/forgebook/visualCommands.d.mts +37 -0
- package/dist/bin/forgebook/visualCommands.mjs +162 -0
- package/dist/bin/forgebook/viteCache.d.ts +48 -0
- package/dist/bin/forgebook/viteCache.js +112 -0
- package/dist/bin/forgebook-docs/catalogueDocs.d.ts +1 -2
- package/dist/bin/forgebook-docs/catalogueDocs.js +8 -5
- package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts +22 -3
- package/dist/bin/forgebook-docs/catalogueDocs.types.js +0 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts +0 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.js +67 -19
- package/dist/bin/forgebook-docs/catalogueOptions.d.ts +1 -2
- package/dist/bin/forgebook-docs/catalogueOptions.js +8 -2
- package/dist/bin/forgebook-docs/collectDocs.d.ts +4 -4
- package/dist/bin/forgebook-docs/collectDocs.js +122 -30
- package/dist/bin/forgebook-docs/forgebook-docs.d.mts +0 -1
- package/dist/bin/forgebook-docs/forgebook-docs.mjs +0 -1
- package/dist/bin/forgebook-docs/llmsText.d.ts +5 -1
- package/dist/bin/forgebook-docs/llmsText.js +5 -2
- package/dist/bin/forgebook-docs/moduleDocs.d.ts +0 -1
- package/dist/bin/forgebook-docs/moduleDocs.js +0 -1
- package/dist/bin/forgebook-docs/sassDocs.d.ts +0 -1
- package/dist/bin/forgebook-docs/sassDocs.js +0 -1
- package/dist/bin/forgebook-texts/forgebook-texts.d.mts +0 -1
- package/dist/bin/forgebook-texts/forgebook-texts.mjs +1 -2
- package/dist/bin/forgebook-texts/storyTextsReport.d.ts +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.js +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.types.d.ts +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.types.js +0 -1
- package/dist/bin/frameworkDocs.d.ts +0 -1
- package/dist/bin/frameworkDocs.js +0 -1
- package/dist/src/a11y.d.ts +0 -1
- package/dist/src/a11y.js +0 -1
- package/dist/src/addressArgs.d.ts +74 -0
- package/dist/src/addressArgs.js +109 -0
- package/dist/src/addressTexts.d.ts +35 -0
- package/dist/src/addressTexts.js +51 -0
- package/dist/src/argTypes.d.ts +0 -1
- package/dist/src/argTypes.js +2 -2
- package/dist/src/audiences.d.ts +17 -0
- package/dist/src/audiences.js +15 -0
- package/dist/src/backdrops.d.ts +39 -40
- package/dist/src/backdrops.js +37 -174
- package/dist/src/catalogue.d.ts +56 -20
- package/dist/src/catalogue.js +33 -14
- package/dist/src/codeLiteral.d.ts +41 -0
- package/dist/src/codeLiteral.js +51 -0
- package/dist/src/componentDocs.d.ts +57 -1
- package/dist/src/componentDocs.js +20 -3
- package/dist/src/controlKeys.d.ts +0 -1
- package/dist/src/controlKeys.js +0 -1
- package/dist/src/deviceDrawing.d.ts +114 -0
- package/dist/src/deviceDrawing.js +358 -0
- package/dist/src/deviceMenuView.d.ts +17 -0
- package/dist/src/deviceMenuView.js +22 -0
- package/dist/src/devicePicture.d.ts +57 -0
- package/dist/src/devicePicture.js +104 -0
- package/dist/src/deviceView.d.ts +172 -0
- package/dist/src/deviceView.js +111 -0
- package/dist/src/devices.d.ts +115 -0
- package/dist/src/devices.js +135 -0
- package/dist/src/docAnchors.d.ts +27 -0
- package/dist/src/docAnchors.js +33 -0
- package/dist/src/docPages.d.ts +203 -0
- package/dist/src/docPages.js +169 -0
- package/dist/src/embed.d.ts +32 -0
- package/dist/src/embed.js +24 -0
- package/dist/src/embedCode.d.ts +31 -0
- package/dist/src/embedCode.js +88 -0
- package/dist/src/frame/backdropPictures.d.ts +29 -0
- package/dist/src/frame/backdropPictures.js +187 -0
- package/dist/src/frame/checkStory.d.ts +6 -3
- package/dist/src/frame/checkStory.js +76 -5
- package/dist/src/frame/followTouch.d.ts +9 -0
- package/dist/src/frame/followTouch.js +43 -0
- package/dist/src/frame/frame.css +8 -3
- package/dist/src/frame/frameClock.d.ts +0 -1
- package/dist/src/frame/frameClock.js +0 -1
- package/dist/src/frame/frameStatus.d.ts +2 -1
- package/dist/src/frame/frameStatus.js +2 -1
- package/dist/src/frame/frameView.d.ts +0 -1
- package/dist/src/frame/frameView.js +1 -2
- package/dist/src/frame/matrixLayout.d.ts +0 -1
- package/dist/src/frame/matrixLayout.js +0 -1
- package/dist/src/frame/measureTools.d.ts +0 -1
- package/dist/src/frame/measureTools.js +0 -1
- package/dist/src/frame/mountFrame.d.ts +10 -3
- package/dist/src/frame/mountFrame.js +162 -63
- package/dist/src/frame/playStory.d.ts +0 -1
- package/dist/src/frame/playStory.js +0 -1
- package/dist/src/frame/pluginFrames.d.ts +31 -0
- package/dist/src/frame/pluginFrames.js +23 -0
- package/dist/src/frame/renderer.d.ts +50 -12
- package/dist/src/frame/renderer.js +27 -6
- package/dist/src/frame/settle.d.ts +0 -1
- package/dist/src/frame/settle.js +0 -1
- package/dist/src/frame/shellChannel.d.ts +47 -0
- package/dist/src/frame/shellChannel.js +39 -0
- package/dist/src/frame/spillOutline.d.ts +0 -1
- package/dist/src/frame/spillOutline.js +0 -1
- package/dist/src/frame/staleModule.d.ts +14 -2
- package/dist/src/frame/staleModule.js +19 -2
- package/dist/src/frame/storyCanvas.d.ts +0 -1
- package/dist/src/frame/storyCanvas.js +0 -1
- package/dist/src/frame/storyHooks.d.ts +0 -1
- package/dist/src/frame/storyHooks.js +0 -1
- package/dist/src/frame/storyModule.d.ts +13 -2
- package/dist/src/frame/storyModule.js +45 -3
- package/dist/src/frame/storyRun.d.ts +21 -4
- package/dist/src/frame/storyRun.js +100 -19
- package/dist/src/frame/touchDots.d.ts +0 -1
- package/dist/src/frame/touchDots.js +0 -1
- package/dist/src/frame/touchEvents.d.ts +0 -1
- package/dist/src/frame/touchEvents.js +0 -1
- package/dist/src/frame/touchGesture.d.ts +0 -1
- package/dist/src/frame/touchGesture.js +0 -1
- package/dist/src/frame/touchLayer.d.ts +3 -3
- package/dist/src/frame/touchLayer.js +4 -30
- package/dist/src/frame/touchScroll.d.ts +0 -1
- package/dist/src/frame/touchScroll.js +0 -1
- package/dist/src/frameOrigins.d.ts +62 -0
- package/dist/src/frameOrigins.js +49 -0
- package/dist/src/hotModules.d.ts +48 -0
- package/dist/src/hotModules.js +53 -0
- package/dist/src/jsxCode.d.ts +22 -0
- package/dist/src/jsxCode.js +36 -0
- package/dist/src/languages.d.ts +0 -1
- package/dist/src/languages.js +0 -1
- package/dist/src/liveErrors.d.ts +0 -1
- package/dist/src/liveErrors.js +0 -1
- package/dist/src/matrix.d.ts +0 -1
- package/dist/src/matrix.js +0 -1
- package/dist/src/messages.d.ts +28 -2
- package/dist/src/messages.js +24 -3
- package/dist/src/namedValues.d.ts +11 -1
- package/dist/src/namedValues.js +25 -2
- package/dist/src/namedViews.d.ts +1 -13
- package/dist/src/namedViews.js +30 -7
- package/dist/src/packedText.d.ts +21 -0
- package/dist/src/packedText.js +36 -0
- package/dist/src/pageAddress.d.ts +26 -0
- package/dist/src/pageAddress.js +39 -0
- package/dist/src/pageConfig.d.ts +3 -1
- package/dist/src/pageConfig.js +0 -1
- package/dist/src/pageTree.d.ts +79 -0
- package/dist/src/pageTree.js +108 -0
- package/dist/src/playTrace.d.ts +0 -1
- package/dist/src/playTrace.js +0 -1
- package/dist/src/plugin.d.ts +230 -0
- package/dist/src/plugin.js +12 -0
- package/dist/src/pluginReact.d.ts +23 -0
- package/dist/src/pluginReact.js +24 -0
- package/dist/src/previewRelay.d.ts +40 -0
- package/dist/src/previewRelay.js +69 -0
- package/dist/src/previewTexts.d.ts +26 -0
- package/dist/src/previewTexts.js +33 -0
- package/dist/src/previewView.d.ts +31 -0
- package/dist/src/previewView.js +264 -0
- package/dist/src/propGroups.d.ts +46 -0
- package/dist/src/propGroups.js +59 -0
- package/dist/src/realTouch.d.ts +1 -2
- package/dist/src/realTouch.js +1 -2
- package/dist/src/safeAreaParameter.d.ts +42 -0
- package/dist/src/safeAreaParameter.js +50 -0
- package/dist/src/search.d.ts +154 -0
- package/dist/src/search.js +265 -0
- package/dist/src/searchIndex.d.ts +61 -0
- package/dist/src/searchIndex.js +55 -0
- package/dist/src/searchMarks.d.ts +29 -0
- package/dist/src/searchMarks.js +165 -0
- package/dist/src/searchMatch.d.ts +58 -0
- package/dist/src/searchMatch.js +127 -0
- package/dist/src/shell/A11yTab.d.ts +0 -7
- package/dist/src/shell/A11yTab.js +4 -15
- package/dist/src/shell/AnchorScroll.d.ts +25 -0
- package/dist/src/shell/AnchorScroll.js +10 -0
- package/dist/src/shell/ApiReference.d.ts +11 -4
- package/dist/src/shell/ApiReference.js +73 -19
- package/dist/src/shell/AppearanceMenu.d.ts +1 -2
- package/dist/src/shell/AppearanceMenu.js +8 -5
- package/dist/src/shell/AudienceSections.d.ts +106 -0
- package/dist/src/shell/AudienceSections.js +154 -0
- package/dist/src/shell/AuthoredHome.d.ts +37 -0
- package/dist/src/shell/AuthoredHome.js +96 -0
- package/dist/src/shell/BoxWidth.d.ts +0 -1
- package/dist/src/shell/BoxWidth.js +0 -1
- package/dist/src/shell/ClockBar.d.ts +19 -0
- package/dist/src/shell/ClockBar.js +15 -0
- package/dist/src/shell/ClockControls.d.ts +5 -9
- package/dist/src/shell/ClockControls.js +13 -16
- package/dist/src/shell/Code.d.ts +0 -1
- package/dist/src/shell/Code.js +0 -1
- package/dist/src/shell/CodeTab.d.ts +0 -1
- package/dist/src/shell/CodeTab.js +2 -2
- package/dist/src/shell/CodeText.d.ts +0 -1
- package/dist/src/shell/CodeText.js +0 -1
- package/dist/src/shell/CompareGrid.d.ts +37 -0
- package/dist/src/shell/CompareGrid.js +24 -0
- package/dist/src/shell/ComponentPage.d.ts +45 -7
- package/dist/src/shell/ComponentPage.js +105 -49
- package/dist/src/shell/ControlKeyField.d.ts +0 -1
- package/dist/src/shell/ControlKeyField.js +3 -4
- package/dist/src/shell/ControlRow.d.ts +4 -4
- package/dist/src/shell/ControlRow.js +5 -5
- package/dist/src/shell/DeviceControl.d.ts +31 -0
- package/dist/src/shell/DeviceControl.js +33 -0
- package/dist/src/shell/DeviceSlot.d.ts +114 -0
- package/dist/src/shell/DeviceSlot.js +134 -0
- package/dist/src/shell/DocBlocks.d.ts +100 -0
- package/dist/src/shell/DocBlocks.js +206 -0
- package/dist/src/shell/DocContainers.d.ts +70 -0
- package/dist/src/shell/DocContainers.js +94 -0
- package/dist/src/shell/DocContents.d.ts +29 -0
- package/dist/src/shell/DocContents.js +88 -0
- package/dist/src/shell/DocPage.d.ts +69 -0
- package/dist/src/shell/DocPage.js +141 -0
- package/dist/src/shell/Dock.d.ts +1 -2
- package/dist/src/shell/Dock.js +1 -2
- package/dist/src/shell/DroppedArgsList.d.ts +26 -0
- package/dist/src/shell/DroppedArgsList.js +8 -0
- package/dist/src/shell/DroppedArgsNote.d.ts +14 -0
- package/dist/src/shell/DroppedArgsNote.js +10 -0
- package/dist/src/shell/EmbedButton.d.ts +19 -0
- package/dist/src/shell/EmbedButton.js +96 -0
- package/dist/src/shell/EmbedPage.d.ts +23 -0
- package/dist/src/shell/EmbedPage.js +168 -0
- package/dist/src/shell/EmbedPanel.d.ts +25 -0
- package/dist/src/shell/EmbedPanel.js +46 -0
- package/dist/src/shell/EventsTab.d.ts +0 -1
- package/dist/src/shell/EventsTab.js +2 -3
- package/dist/src/shell/Example.d.ts +20 -2
- package/dist/src/shell/Example.js +75 -22
- package/dist/src/shell/FrameView.d.ts +1 -2
- package/dist/src/shell/FrameView.js +4 -4
- package/dist/src/shell/HomePage.d.ts +78 -4
- package/dist/src/shell/HomePage.js +53 -14
- package/dist/src/shell/HomePieces.d.ts +40 -0
- package/dist/src/shell/HomePieces.js +29 -0
- package/dist/src/shell/InfoTip.d.ts +0 -1
- package/dist/src/shell/InfoTip.js +0 -1
- package/dist/src/shell/InteractionsTab.d.ts +0 -7
- package/dist/src/shell/InteractionsTab.js +3 -9
- package/dist/src/shell/LazyHost.d.ts +16 -0
- package/dist/src/shell/LazyHost.js +42 -0
- package/dist/src/shell/LazyPage.d.ts +24 -0
- package/dist/src/shell/LazyPage.js +9 -0
- package/dist/src/shell/LogicMark.d.ts +0 -1
- package/dist/src/shell/LogicMark.js +0 -1
- package/dist/src/shell/MatrixPicker.d.ts +0 -1
- package/dist/src/shell/MatrixPicker.js +0 -1
- package/dist/src/shell/NamedViews.d.ts +0 -1
- package/dist/src/shell/NamedViews.js +4 -5
- package/dist/src/shell/PackageHtml.d.ts +0 -1
- package/dist/src/shell/PackageHtml.js +0 -1
- package/dist/src/shell/PartsTab.d.ts +0 -7
- package/dist/src/shell/PartsTab.js +3 -13
- package/dist/src/shell/PinnedControl.d.ts +0 -1
- package/dist/src/shell/PinnedControl.js +2 -2
- package/dist/src/shell/PluginBlockHost.d.ts +46 -0
- package/dist/src/shell/PluginBlockHost.js +39 -0
- package/dist/src/shell/PluginTabHost.d.ts +32 -0
- package/dist/src/shell/PluginTabHost.js +25 -0
- package/dist/src/shell/PluginViewHost.d.ts +37 -0
- package/dist/src/shell/PluginViewHost.js +89 -0
- package/dist/src/shell/PropFields.d.ts +0 -1
- package/dist/src/shell/PropFields.js +0 -1
- package/dist/src/shell/PropsTab.d.ts +11 -2
- package/dist/src/shell/PropsTab.js +31 -5
- package/dist/src/shell/SearchPanel.d.ts +63 -0
- package/dist/src/shell/SearchPanel.js +209 -0
- package/dist/src/shell/Segmented.d.ts +0 -1
- package/dist/src/shell/Segmented.js +0 -1
- package/dist/src/shell/Shell.d.ts +34 -6
- package/dist/src/shell/Shell.js +271 -70
- package/dist/src/shell/Sidebar.d.ts +20 -5
- package/dist/src/shell/Sidebar.js +23 -56
- package/dist/src/shell/SidebarDocs.d.ts +38 -0
- package/dist/src/shell/SidebarDocs.js +30 -0
- package/dist/src/shell/SidebarEntries.d.ts +9 -1
- package/dist/src/shell/SidebarEntries.js +1 -2
- package/dist/src/shell/SidebarHandle.d.ts +0 -1
- package/dist/src/shell/SidebarHandle.js +0 -1
- package/dist/src/shell/SidebarSearch.d.ts +40 -0
- package/dist/src/shell/SidebarSearch.js +85 -0
- package/dist/src/shell/SignatureReference.d.ts +0 -1
- package/dist/src/shell/SignatureReference.js +1 -2
- package/dist/src/shell/Stage.d.ts +9 -4
- package/dist/src/shell/Stage.js +112 -59
- package/dist/src/shell/StageCompare.d.ts +14 -0
- package/dist/src/shell/StageCompare.js +11 -0
- package/dist/src/shell/StageTools.d.ts +0 -1
- package/dist/src/shell/StageTools.js +0 -1
- package/dist/src/shell/StageViewport.d.ts +7 -3
- package/dist/src/shell/StageViewport.js +4 -5
- package/dist/src/shell/StoryBar.d.ts +40 -0
- package/dist/src/shell/StoryBar.js +23 -0
- package/dist/src/shell/StoryCodeBlock.d.ts +1 -2
- package/dist/src/shell/StoryCodeBlock.js +0 -1
- package/dist/src/shell/StoryCoverage.d.ts +36 -0
- package/dist/src/shell/StoryCoverage.js +126 -0
- package/dist/src/shell/StoryPicker.d.ts +0 -1
- package/dist/src/shell/StoryPicker.js +0 -1
- package/dist/src/shell/Toolbar.d.ts +7 -3
- package/dist/src/shell/Toolbar.js +6 -6
- package/dist/src/shell/ToolbarControl.d.ts +6 -8
- package/dist/src/shell/ToolbarControl.js +28 -20
- package/dist/src/shell/UsedIn.d.ts +5 -6
- package/dist/src/shell/UsedIn.js +7 -20
- package/dist/src/shell/ViewMenu.d.ts +7 -7
- package/dist/src/shell/ViewMenu.js +61 -176
- package/dist/src/shell/ViewMenuPanel.d.ts +41 -0
- package/dist/src/shell/ViewMenuPanel.js +199 -0
- package/dist/src/shell/WidthField.d.ts +3 -2
- package/dist/src/shell/WidthField.js +2 -3
- package/dist/src/shell/asideStory.d.ts +34 -0
- package/dist/src/shell/asideStory.js +55 -0
- package/dist/src/shell/audienceLayout.d.ts +39 -0
- package/dist/src/shell/audienceLayout.js +33 -0
- package/dist/src/shell/audiencePage.d.ts +113 -0
- package/dist/src/shell/audiencePage.js +144 -0
- package/dist/src/shell/audienceSections.css +95 -0
- package/dist/src/shell/catalogueContext.d.ts +24 -2
- package/dist/src/shell/catalogueContext.js +12 -9
- package/dist/src/shell/codeTokens.d.ts +0 -1
- package/dist/src/shell/codeTokens.js +0 -1
- package/dist/src/shell/codeWriter.d.ts +0 -1
- package/dist/src/shell/codeWriter.js +0 -1
- package/dist/src/shell/compareVariants.d.ts +0 -1
- package/dist/src/shell/compareVariants.js +2 -2
- package/dist/src/shell/controlCycle.d.ts +0 -1
- package/dist/src/shell/controlCycle.js +13 -1
- package/dist/src/shell/controlLabel.d.ts +7 -0
- package/dist/src/shell/controlLabel.js +17 -0
- package/dist/src/shell/device/deviceFrame.css +42 -0
- package/dist/src/shell/device/deviceParts.d.ts +90 -0
- package/dist/src/shell/device/deviceParts.js +120 -0
- package/dist/src/shell/docPage.css +451 -0
- package/dist/src/shell/dockTabs.d.ts +13 -5
- package/dist/src/shell/dockTabs.js +40 -18
- package/dist/src/shell/embed.css +74 -0
- package/dist/src/shell/filesCode.d.ts +21 -0
- package/dist/src/shell/filesCode.js +37 -0
- package/dist/src/shell/forgebookMark.d.ts +15 -0
- package/dist/src/shell/forgebookMark.js +28 -0
- package/dist/src/shell/framesOrigin.d.ts +23 -0
- package/dist/src/shell/framesOrigin.js +69 -0
- package/dist/src/shell/icons.d.ts +3 -1
- package/dist/src/shell/icons.js +3 -1
- package/dist/src/shell/keyboard.d.ts +0 -1
- package/dist/src/shell/keyboard.js +0 -1
- package/dist/src/shell/laterStrings.d.ts +91 -0
- package/dist/src/shell/laterStrings.js +102 -0
- package/dist/src/shell/lazyModule.d.ts +49 -0
- package/dist/src/shell/lazyModule.js +72 -0
- package/dist/src/shell/lazyTab.d.ts +21 -0
- package/dist/src/shell/lazyTab.js +9 -0
- package/dist/src/shell/logicView.d.ts +0 -12
- package/dist/src/shell/logicView.js +2 -2
- package/dist/src/shell/mountShell.d.ts +5 -3
- package/dist/src/shell/mountShell.js +43 -12
- package/dist/src/shell/pageStrings.d.ts +24 -0
- package/dist/src/shell/pageStrings.js +26 -0
- package/dist/src/shell/pluginHosts.d.ts +9 -0
- package/dist/src/shell/pluginHosts.js +6 -0
- package/dist/src/shell/pluginHostsContext.d.ts +20 -0
- package/dist/src/shell/pluginHostsContext.js +16 -0
- package/dist/src/shell/pluginTabs.d.ts +63 -0
- package/dist/src/shell/pluginTabs.js +60 -0
- package/dist/src/shell/search.css +172 -0
- package/dist/src/shell/searchStrings.d.ts +24 -0
- package/dist/src/shell/searchStrings.js +31 -0
- package/dist/src/shell/shell.css +285 -139
- package/dist/src/shell/shellScheme.d.ts +37 -0
- package/dist/src/shell/shellScheme.js +32 -0
- package/dist/src/shell/storyTouch.d.ts +19 -6
- package/dist/src/shell/storyTouch.js +26 -4
- package/dist/src/shell/strings.d.ts +56 -80
- package/dist/src/shell/strings.js +53 -78
- package/dist/src/shell/switchView.d.ts +0 -1
- package/dist/src/shell/switchView.js +0 -1
- package/dist/src/shell/tabSummaries.d.ts +31 -0
- package/dist/src/shell/tabSummaries.js +27 -0
- package/dist/src/shell/treeSearch.d.ts +39 -3
- package/dist/src/shell/treeSearch.js +27 -1
- package/dist/src/shell/useAddressArgs.d.ts +55 -0
- package/dist/src/shell/useAddressArgs.js +62 -0
- package/dist/src/shell/useAnchorScroll.d.ts +24 -0
- package/dist/src/shell/useAnchorScroll.js +90 -0
- package/dist/src/shell/useAppearance.d.ts +7 -2
- package/dist/src/shell/useAppearance.js +14 -5
- package/dist/src/shell/useComponentDocs.d.ts +0 -1
- package/dist/src/shell/useComponentDocs.js +0 -1
- package/dist/src/shell/useControlKeys.d.ts +2 -1
- package/dist/src/shell/useControlKeys.js +2 -3
- package/dist/src/shell/useCopy.d.ts +2 -1
- package/dist/src/shell/useCopy.js +11 -6
- package/dist/src/shell/useFold.d.ts +0 -1
- package/dist/src/shell/useFold.js +0 -1
- package/dist/src/shell/useFrameMessages.d.ts +19 -4
- package/dist/src/shell/useFrameMessages.js +23 -7
- package/dist/src/shell/useFrameQueue.d.ts +7 -3
- package/dist/src/shell/useFrameQueue.js +39 -22
- package/dist/src/shell/useFullPage.d.ts +0 -1
- package/dist/src/shell/useFullPage.js +0 -1
- package/dist/src/shell/useLiveView.d.ts +0 -1
- package/dist/src/shell/useLiveView.js +0 -1
- package/dist/src/shell/useLoaded.d.ts +1 -2
- package/dist/src/shell/useLoaded.js +28 -6
- package/dist/src/shell/usePageDoc.d.ts +0 -1
- package/dist/src/shell/usePageDoc.js +0 -1
- package/dist/src/shell/usePageFrames.d.ts +46 -0
- package/dist/src/shell/usePageFrames.js +50 -0
- package/dist/src/shell/usePluginTabs.d.ts +18 -0
- package/dist/src/shell/usePluginTabs.js +45 -0
- package/dist/src/shell/usePopover.d.ts +0 -1
- package/dist/src/shell/usePopover.js +0 -1
- package/dist/src/shell/useProseLinks.d.ts +14 -0
- package/dist/src/shell/useProseLinks.js +30 -0
- package/dist/src/shell/useRecentPages.d.ts +3 -4
- package/dist/src/shell/useRecentPages.js +1 -2
- package/dist/src/shell/useScrollMemory.d.ts +9 -1
- package/dist/src/shell/useScrollMemory.js +2 -3
- package/dist/src/shell/useSearchIndex.d.ts +24 -0
- package/dist/src/shell/useSearchIndex.js +51 -0
- package/dist/src/shell/useShownView.d.ts +3 -1
- package/dist/src/shell/useShownView.js +5 -5
- package/dist/src/shell/useSidebarLayout.d.ts +0 -1
- package/dist/src/shell/useSidebarLayout.js +0 -1
- package/dist/src/shell/useStored.d.ts +13 -1
- package/dist/src/shell/useStored.js +13 -5
- package/dist/src/shell/useStoryCheck.d.ts +20 -0
- package/dist/src/shell/useStoryCheck.js +33 -0
- package/dist/src/shell/useStoryCode.d.ts +0 -1
- package/dist/src/shell/useStoryCode.js +0 -1
- package/dist/src/shell/useStoryHeights.d.ts +0 -1
- package/dist/src/shell/useStoryHeights.js +0 -1
- package/dist/src/shell/useStoryIdsElement.d.ts +0 -1
- package/dist/src/shell/useStoryIdsElement.js +0 -1
- package/dist/src/shell/useStoryKeys.d.ts +0 -1
- package/dist/src/shell/useStoryKeys.js +0 -1
- package/dist/src/shell/useSyncedTab.d.ts +8 -0
- package/dist/src/shell/useSyncedTab.js +60 -0
- package/dist/src/shell/useSystemDark.d.ts +0 -1
- package/dist/src/shell/useSystemDark.js +0 -1
- package/dist/src/shell/useToolbarLayout.d.ts +0 -1
- package/dist/src/shell/useToolbarLayout.js +0 -1
- package/dist/src/shell/useToolbarOverflow.d.ts +0 -1
- package/dist/src/shell/useToolbarOverflow.js +0 -1
- package/dist/src/shell/useWorstCase.d.ts +0 -1
- package/dist/src/shell/useWorstCase.js +2 -2
- package/dist/src/shell/worstArgs.d.ts +0 -1
- package/dist/src/shell/worstArgs.js +0 -1
- package/dist/src/shellTheme.d.ts +64 -0
- package/dist/src/shellTheme.js +274 -0
- package/dist/src/shellTheme.types.d.ts +93 -0
- package/dist/src/shellTheme.types.js +10 -0
- package/dist/src/sourceFiles.d.ts +17 -3
- package/dist/src/sourceFiles.js +27 -1
- package/dist/src/spills.d.ts +0 -1
- package/dist/src/spills.js +0 -1
- package/dist/src/storyBackground.d.ts +0 -1
- package/dist/src/storyBackground.js +0 -1
- package/dist/src/storyCheck.d.ts +86 -2
- package/dist/src/storyCheck.js +12 -2
- package/dist/src/storyClock.d.ts +0 -1
- package/dist/src/storyClock.js +0 -1
- package/dist/src/storyGlobals.d.ts +0 -1
- package/dist/src/storyGlobals.js +0 -1
- package/dist/src/storyHeights.d.ts +0 -1
- package/dist/src/storyHeights.js +0 -1
- package/dist/src/storyIds.d.ts +36 -0
- package/dist/src/storyIds.js +52 -0
- package/dist/src/storyIdsElement.d.ts +0 -1
- package/dist/src/storyIdsElement.js +0 -1
- package/dist/src/storyTexts.d.ts +11 -5
- package/dist/src/storyTexts.js +16 -5
- package/dist/src/storyTree.d.ts +79 -25
- package/dist/src/storyTree.js +211 -127
- package/dist/src/switches.d.ts +0 -1
- package/dist/src/switches.js +6 -2
- package/dist/src/toolbarLayout.d.ts +0 -1
- package/dist/src/toolbarLayout.js +0 -1
- package/dist/src/treePlaces.d.ts +60 -0
- package/dist/src/treePlaces.js +89 -0
- package/dist/src/usedIn.d.ts +28 -1
- package/dist/src/usedIn.js +93 -3
- package/dist/src/viewState.d.ts +37 -9
- package/dist/src/viewState.js +67 -9
- package/dist/src/viewWords.d.ts +0 -13
- package/dist/src/viewWords.js +41 -3
- package/dist/src/vite/adapter.d.ts +62 -1
- package/dist/src/vite/adapter.js +20 -2
- package/dist/src/vite/agent.types.d.ts +279 -7
- package/dist/src/vite/agent.types.js +11 -1
- package/dist/src/vite/agentApi.d.ts +55 -2
- package/dist/src/vite/agentApi.js +130 -8
- package/dist/src/vite/agentIds.d.ts +25 -0
- package/dist/src/vite/agentIds.js +41 -0
- package/dist/src/vite/agentIndex.d.ts +63 -0
- package/dist/src/vite/agentIndex.js +91 -0
- package/dist/src/vite/agentIndexRoute.d.ts +10 -0
- package/dist/src/vite/agentIndexRoute.js +35 -0
- package/dist/src/vite/agentRoutes.d.ts +80 -19
- package/dist/src/vite/agentRoutes.js +167 -24
- package/dist/src/vite/autoTitle.d.ts +0 -1
- package/dist/src/vite/autoTitle.js +0 -1
- package/dist/src/vite/axeScript.d.ts +20 -0
- package/dist/src/vite/axeScript.js +60 -0
- package/dist/src/vite/builtTexts.d.ts +75 -0
- package/dist/src/vite/builtTexts.js +142 -0
- package/dist/src/vite/catalogueConfig.d.ts +10 -0
- package/dist/src/vite/catalogueConfig.js +64 -0
- package/dist/src/vite/checkCode.d.ts +67 -0
- package/dist/src/vite/checkCode.js +145 -0
- package/dist/src/vite/closeWatch.d.ts +96 -0
- package/dist/src/vite/closeWatch.js +219 -0
- package/dist/src/vite/codeFence.d.ts +78 -0
- package/dist/src/vite/codeFence.js +267 -0
- package/dist/src/vite/componentImport.d.ts +8 -0
- package/dist/src/vite/componentImport.js +35 -0
- package/dist/src/vite/componentPage.d.ts +15 -2
- package/dist/src/vite/componentPage.js +55 -16
- package/dist/src/vite/config.d.ts +51 -3
- package/dist/src/vite/config.js +0 -1
- package/dist/src/vite/configFile.d.ts +65 -9
- package/dist/src/vite/configFile.js +182 -28
- package/dist/src/vite/designTokens.d.ts +75 -0
- package/dist/src/vite/designTokens.js +382 -0
- package/dist/src/vite/diskCache.d.ts +51 -0
- package/dist/src/vite/diskCache.js +211 -0
- package/dist/src/vite/docDirectives.d.ts +116 -0
- package/dist/src/vite/docDirectives.js +425 -0
- package/dist/src/vite/docMarkdown.d.ts +76 -0
- package/dist/src/vite/docMarkdown.js +150 -0
- package/dist/src/vite/docPageBlocks.d.ts +64 -0
- package/dist/src/vite/docPageBlocks.js +322 -0
- package/dist/src/vite/docPageLinks.d.ts +72 -0
- package/dist/src/vite/docPageLinks.js +135 -0
- package/dist/src/vite/docPageMarkdown.d.ts +86 -0
- package/dist/src/vite/docPageMarkdown.js +133 -0
- package/dist/src/vite/docPageRender.d.ts +27 -0
- package/dist/src/vite/docPageRender.js +199 -0
- package/dist/src/vite/docPageTokens.d.ts +91 -0
- package/dist/src/vite/docPageTokens.js +186 -0
- package/dist/src/vite/docPagesModule.d.ts +50 -0
- package/dist/src/vite/docPagesModule.js +118 -0
- package/dist/src/vite/docPagesRoute.d.ts +38 -0
- package/dist/src/vite/docPagesRoute.js +154 -0
- package/dist/src/vite/docsDependencies.d.ts +6 -0
- package/dist/src/vite/docsDependencies.js +150 -0
- package/dist/src/vite/docsExtractor.d.ts +44 -3
- package/dist/src/vite/docsExtractor.js +160 -26
- package/dist/src/vite/docsProgram.d.ts +89 -9
- package/dist/src/vite/docsProgram.js +413 -50
- package/dist/src/vite/docsWorker.d.ts +0 -1
- package/dist/src/vite/docsWorker.js +49 -15
- package/dist/src/vite/figmaLink.d.ts +26 -0
- package/dist/src/vite/figmaLink.js +92 -0
- package/dist/src/vite/findComponent.d.ts +32 -0
- package/dist/src/vite/findComponent.js +52 -0
- package/dist/src/vite/findRoute.d.ts +14 -0
- package/dist/src/vite/findRoute.js +62 -0
- package/dist/src/vite/forcedStates.d.ts +0 -1
- package/dist/src/vite/forcedStates.js +0 -1
- package/dist/src/vite/forgebookPlugin.d.ts +1 -2
- package/dist/src/vite/forgebookPlugin.js +321 -263
- package/dist/src/vite/framesConfig.d.ts +89 -0
- package/dist/src/vite/framesConfig.js +149 -0
- package/dist/src/vite/framesServer.d.ts +43 -0
- package/dist/src/vite/framesServer.js +326 -0
- package/dist/src/vite/functionComponentDocs.d.ts +26 -0
- package/dist/src/vite/functionComponentDocs.js +193 -0
- package/dist/src/vite/gitChange.d.ts +56 -0
- package/dist/src/vite/gitChange.js +86 -0
- package/dist/src/vite/heightsRoute.d.ts +0 -1
- package/dist/src/vite/heightsRoute.js +0 -1
- package/dist/src/vite/highlightCode.d.ts +0 -1
- package/dist/src/vite/highlightCode.js +8 -27
- package/dist/src/vite/hotSnippets.d.ts +86 -0
- package/dist/src/vite/hotSnippets.js +168 -0
- package/dist/src/vite/indexFields.d.ts +61 -0
- package/dist/src/vite/indexFields.js +149 -0
- package/dist/src/vite/indexStoryFile.d.ts +19 -18
- package/dist/src/vite/indexStoryFile.js +165 -221
- package/dist/src/vite/indexedParameters.d.ts +10 -0
- package/dist/src/vite/indexedParameters.js +110 -0
- package/dist/src/vite/mcpProtocol.d.ts +36 -2
- package/dist/src/vite/mcpProtocol.js +100 -15
- package/dist/src/vite/moduleSummary.d.ts +17 -0
- package/dist/src/vite/moduleSummary.js +40 -0
- package/dist/src/vite/nearestToken.d.ts +50 -0
- package/dist/src/vite/nearestToken.js +295 -0
- package/dist/src/vite/originGuard.d.ts +87 -0
- package/dist/src/vite/originGuard.js +163 -0
- package/dist/src/vite/packedModule.d.ts +40 -0
- package/dist/src/vite/packedModule.js +74 -0
- package/dist/src/vite/pages.d.ts +63 -10
- package/dist/src/vite/pages.js +264 -33
- package/dist/src/vite/parsedFiles.d.ts +18 -0
- package/dist/src/vite/parsedFiles.js +91 -0
- package/dist/src/vite/plainGrammars.d.ts +20 -0
- package/dist/src/vite/plainGrammars.js +113 -0
- package/dist/src/vite/pluginConfig.d.ts +47 -0
- package/dist/src/vite/pluginConfig.js +220 -0
- package/dist/src/vite/pluginIds.d.ts +20 -0
- package/dist/src/vite/pluginIds.js +61 -0
- package/dist/src/vite/pluginModules.d.ts +140 -0
- package/dist/src/vite/pluginModules.js +176 -0
- package/dist/src/vite/prebundled.d.ts +18 -5
- package/dist/src/vite/prebundled.js +28 -18
- package/dist/src/vite/previewPages.d.ts +14 -0
- package/dist/src/vite/previewPages.js +81 -0
- package/dist/src/vite/previewRoute.d.ts +8 -0
- package/dist/src/vite/previewRoute.js +8 -0
- package/dist/src/vite/previewRunner.d.ts +56 -0
- package/dist/src/vite/previewRunner.js +207 -0
- package/dist/src/vite/propDocs.d.ts +60 -0
- package/dist/src/vite/propDocs.js +387 -0
- package/dist/src/vite/searchModule.d.ts +40 -0
- package/dist/src/vite/searchModule.js +212 -0
- package/dist/src/vite/searchRoute.d.ts +7 -0
- package/dist/src/vite/searchRoute.js +79 -0
- package/dist/src/vite/serverConditions.d.ts +31 -0
- package/dist/src/vite/serverConditions.js +69 -0
- package/dist/src/vite/signatureDocs.d.ts +18 -0
- package/dist/src/vite/signatureDocs.js +64 -0
- package/dist/src/vite/sourceTokens.d.ts +57 -0
- package/dist/src/vite/sourceTokens.js +164 -0
- package/dist/src/vite/storyCode.d.ts +0 -1
- package/dist/src/vite/storyCode.js +2 -3
- package/dist/src/vite/storyExports.d.ts +32 -0
- package/dist/src/vite/storyExports.js +27 -0
- package/dist/src/vite/storyFilesModule.d.ts +56 -4
- package/dist/src/vite/storyFilesModule.js +122 -34
- package/dist/src/vite/storyMeta.d.ts +20 -11
- package/dist/src/vite/storyMeta.js +74 -38
- package/dist/src/vite/storyParse.d.ts +18 -0
- package/dist/src/vite/storyParse.js +20 -0
- package/dist/src/vite/storyPlay.d.ts +29 -0
- package/dist/src/vite/storyPlay.js +54 -0
- package/dist/src/vite/storyReach.d.ts +42 -0
- package/dist/src/vite/storyReach.js +43 -0
- package/dist/src/vite/storylessRoutes.d.ts +29 -0
- package/dist/src/vite/storylessRoutes.js +126 -0
- package/dist/src/vite/textModules.d.ts +63 -0
- package/dist/src/vite/textModules.js +132 -0
- package/dist/src/vite/textQueries.d.ts +20 -0
- package/dist/src/vite/textQueries.js +20 -0
- package/dist/src/vite/themeFromTokens.d.ts +35 -0
- package/dist/src/vite/themeFromTokens.js +73 -0
- package/dist/src/vite/tokenAnswers.d.ts +20 -0
- package/dist/src/vite/tokenAnswers.js +86 -0
- package/dist/src/vite/tokenClashes.d.ts +44 -0
- package/dist/src/vite/tokenClashes.js +45 -0
- package/dist/src/vite/touchMedia.d.ts +0 -1
- package/dist/src/vite/touchMedia.js +0 -1
- package/dist/src/vite/typeScriptPieces.d.ts +0 -1
- package/dist/src/vite/typeScriptPieces.js +2 -3
- package/dist/src/vite/usageGraph.d.ts +6 -1
- package/dist/src/vite/usageGraph.js +41 -7
- package/dist/src/vite/usageGuidance.d.ts +33 -0
- package/dist/src/vite/usageGuidance.js +45 -0
- package/dist/src/vite/usageModule.d.ts +0 -1
- package/dist/src/vite/usageModule.js +0 -1
- package/dist/src/vite/vitePaths.d.ts +53 -0
- package/dist/src/vite/vitePaths.js +53 -0
- package/dist/src/worstCase.d.ts +0 -1
- package/dist/src/worstCase.js +0 -1
- package/package.json +68 -5
- package/dist/bin/forgebook/agentClient.d.ts.map +0 -1
- package/dist/bin/forgebook/agentClient.js.map +0 -1
- package/dist/bin/forgebook/agentLoopCommands.d.mts.map +0 -1
- package/dist/bin/forgebook/agentLoopCommands.mjs.map +0 -1
- package/dist/bin/forgebook/agentText.d.ts.map +0 -1
- package/dist/bin/forgebook/agentText.js.map +0 -1
- package/dist/bin/forgebook/agentsText.d.ts.map +0 -1
- package/dist/bin/forgebook/agentsText.js.map +0 -1
- package/dist/bin/forgebook/catalogueCommands.d.ts.map +0 -1
- package/dist/bin/forgebook/catalogueCommands.js.map +0 -1
- package/dist/bin/forgebook/catalogueVite.d.ts.map +0 -1
- package/dist/bin/forgebook/catalogueVite.js.map +0 -1
- package/dist/bin/forgebook/errorsRun.d.ts.map +0 -1
- package/dist/bin/forgebook/errorsRun.js.map +0 -1
- package/dist/bin/forgebook/forgebook.d.mts.map +0 -1
- package/dist/bin/forgebook/forgebook.mjs.map +0 -1
- package/dist/bin/forgebook/importers/storybook.d.ts.map +0 -1
- package/dist/bin/forgebook/importers/storybook.js.map +0 -1
- package/dist/bin/forgebook/initCommands.d.mts.map +0 -1
- package/dist/bin/forgebook/initCommands.mjs.map +0 -1
- package/dist/bin/forgebook/initConfig.d.ts.map +0 -1
- package/dist/bin/forgebook/initConfig.js.map +0 -1
- package/dist/bin/forgebook/mcpTools.d.ts.map +0 -1
- package/dist/bin/forgebook/mcpTools.js.map +0 -1
- package/dist/bin/forgebook/newStories.d.ts.map +0 -1
- package/dist/bin/forgebook/newStories.js.map +0 -1
- package/dist/bin/forgebook/newStoriesFile.d.ts.map +0 -1
- package/dist/bin/forgebook/newStoriesFile.js.map +0 -1
- package/dist/bin/forgebook/storyCheckRun.d.ts.map +0 -1
- package/dist/bin/forgebook/storyCheckRun.js.map +0 -1
- package/dist/bin/forgebook/touchWindowRun.d.ts.map +0 -1
- package/dist/bin/forgebook/touchWindowRun.js.map +0 -1
- package/dist/bin/forgebook-docs/catalogueDocs.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/catalogueDocs.js.map +0 -1
- package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/catalogueDocs.types.js.map +0 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.js.map +0 -1
- package/dist/bin/forgebook-docs/catalogueOptions.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/catalogueOptions.js.map +0 -1
- package/dist/bin/forgebook-docs/collectDocs.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/collectDocs.js.map +0 -1
- package/dist/bin/forgebook-docs/forgebook-docs.d.mts.map +0 -1
- package/dist/bin/forgebook-docs/forgebook-docs.mjs.map +0 -1
- package/dist/bin/forgebook-docs/llmsText.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/llmsText.js.map +0 -1
- package/dist/bin/forgebook-docs/moduleDocs.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/moduleDocs.js.map +0 -1
- package/dist/bin/forgebook-docs/sassDocs.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/sassDocs.js.map +0 -1
- package/dist/bin/forgebook-docs/sourceId.d.ts +0 -9
- package/dist/bin/forgebook-docs/sourceId.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/sourceId.js +0 -45
- package/dist/bin/forgebook-docs/sourceId.js.map +0 -1
- package/dist/bin/forgebook-texts/forgebook-texts.d.mts.map +0 -1
- package/dist/bin/forgebook-texts/forgebook-texts.mjs.map +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.d.ts.map +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.js.map +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.types.d.ts.map +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.types.js.map +0 -1
- package/dist/bin/frameworkDocs.d.ts.map +0 -1
- package/dist/bin/frameworkDocs.js.map +0 -1
- package/dist/src/a11y.d.ts.map +0 -1
- package/dist/src/a11y.js.map +0 -1
- package/dist/src/argTypes.d.ts.map +0 -1
- package/dist/src/argTypes.js.map +0 -1
- package/dist/src/backdrops.d.ts.map +0 -1
- package/dist/src/backdrops.js.map +0 -1
- package/dist/src/catalogue.d.ts.map +0 -1
- package/dist/src/catalogue.js.map +0 -1
- package/dist/src/componentDocs.d.ts.map +0 -1
- package/dist/src/componentDocs.js.map +0 -1
- package/dist/src/controlKeys.d.ts.map +0 -1
- package/dist/src/controlKeys.js.map +0 -1
- package/dist/src/frame/checkStory.d.ts.map +0 -1
- package/dist/src/frame/checkStory.js.map +0 -1
- package/dist/src/frame/frameClock.d.ts.map +0 -1
- package/dist/src/frame/frameClock.js.map +0 -1
- package/dist/src/frame/frameStatus.d.ts.map +0 -1
- package/dist/src/frame/frameStatus.js.map +0 -1
- package/dist/src/frame/frameView.d.ts.map +0 -1
- package/dist/src/frame/frameView.js.map +0 -1
- package/dist/src/frame/matrixLayout.d.ts.map +0 -1
- package/dist/src/frame/matrixLayout.js.map +0 -1
- package/dist/src/frame/measureTools.d.ts.map +0 -1
- package/dist/src/frame/measureTools.js.map +0 -1
- package/dist/src/frame/mountFrame.d.ts.map +0 -1
- package/dist/src/frame/mountFrame.js.map +0 -1
- package/dist/src/frame/playStory.d.ts.map +0 -1
- package/dist/src/frame/playStory.js.map +0 -1
- package/dist/src/frame/renderer.d.ts.map +0 -1
- package/dist/src/frame/renderer.js.map +0 -1
- package/dist/src/frame/settle.d.ts.map +0 -1
- package/dist/src/frame/settle.js.map +0 -1
- package/dist/src/frame/spillOutline.d.ts.map +0 -1
- package/dist/src/frame/spillOutline.js.map +0 -1
- package/dist/src/frame/staleModule.d.ts.map +0 -1
- package/dist/src/frame/staleModule.js.map +0 -1
- package/dist/src/frame/storyCanvas.d.ts.map +0 -1
- package/dist/src/frame/storyCanvas.js.map +0 -1
- package/dist/src/frame/storyHooks.d.ts.map +0 -1
- package/dist/src/frame/storyHooks.js.map +0 -1
- package/dist/src/frame/storyModule.d.ts.map +0 -1
- package/dist/src/frame/storyModule.js.map +0 -1
- package/dist/src/frame/storyRun.d.ts.map +0 -1
- package/dist/src/frame/storyRun.js.map +0 -1
- package/dist/src/frame/touchDots.d.ts.map +0 -1
- package/dist/src/frame/touchDots.js.map +0 -1
- package/dist/src/frame/touchEvents.d.ts.map +0 -1
- package/dist/src/frame/touchEvents.js.map +0 -1
- package/dist/src/frame/touchGesture.d.ts.map +0 -1
- package/dist/src/frame/touchGesture.js.map +0 -1
- package/dist/src/frame/touchLayer.d.ts.map +0 -1
- package/dist/src/frame/touchLayer.js.map +0 -1
- package/dist/src/frame/touchScroll.d.ts.map +0 -1
- package/dist/src/frame/touchScroll.js.map +0 -1
- package/dist/src/languages.d.ts.map +0 -1
- package/dist/src/languages.js.map +0 -1
- package/dist/src/liveErrors.d.ts.map +0 -1
- package/dist/src/liveErrors.js.map +0 -1
- package/dist/src/matrix.d.ts.map +0 -1
- package/dist/src/matrix.js.map +0 -1
- package/dist/src/messages.d.ts.map +0 -1
- package/dist/src/messages.js.map +0 -1
- package/dist/src/namedValues.d.ts.map +0 -1
- package/dist/src/namedValues.js.map +0 -1
- package/dist/src/namedViews.d.ts.map +0 -1
- package/dist/src/namedViews.js.map +0 -1
- package/dist/src/pageConfig.d.ts.map +0 -1
- package/dist/src/pageConfig.js.map +0 -1
- package/dist/src/playTrace.d.ts.map +0 -1
- package/dist/src/playTrace.js.map +0 -1
- package/dist/src/realTouch.d.ts.map +0 -1
- package/dist/src/realTouch.js.map +0 -1
- package/dist/src/shell/A11yTab.d.ts.map +0 -1
- package/dist/src/shell/A11yTab.js.map +0 -1
- package/dist/src/shell/ApiReference.d.ts.map +0 -1
- package/dist/src/shell/ApiReference.js.map +0 -1
- package/dist/src/shell/AppearanceMenu.d.ts.map +0 -1
- package/dist/src/shell/AppearanceMenu.js.map +0 -1
- package/dist/src/shell/BoxWidth.d.ts.map +0 -1
- package/dist/src/shell/BoxWidth.js.map +0 -1
- package/dist/src/shell/ClockControls.d.ts.map +0 -1
- package/dist/src/shell/ClockControls.js.map +0 -1
- package/dist/src/shell/Code.d.ts.map +0 -1
- package/dist/src/shell/Code.js.map +0 -1
- package/dist/src/shell/CodeTab.d.ts.map +0 -1
- package/dist/src/shell/CodeTab.js.map +0 -1
- package/dist/src/shell/CodeText.d.ts.map +0 -1
- package/dist/src/shell/CodeText.js.map +0 -1
- package/dist/src/shell/ComponentPage.d.ts.map +0 -1
- package/dist/src/shell/ComponentPage.js.map +0 -1
- package/dist/src/shell/ControlKeyField.d.ts.map +0 -1
- package/dist/src/shell/ControlKeyField.js.map +0 -1
- package/dist/src/shell/ControlRow.d.ts.map +0 -1
- package/dist/src/shell/ControlRow.js.map +0 -1
- package/dist/src/shell/Dock.d.ts.map +0 -1
- package/dist/src/shell/Dock.js.map +0 -1
- package/dist/src/shell/EventsTab.d.ts.map +0 -1
- package/dist/src/shell/EventsTab.js.map +0 -1
- package/dist/src/shell/Example.d.ts.map +0 -1
- package/dist/src/shell/Example.js.map +0 -1
- package/dist/src/shell/FrameView.d.ts.map +0 -1
- package/dist/src/shell/FrameView.js.map +0 -1
- package/dist/src/shell/HomePage.d.ts.map +0 -1
- package/dist/src/shell/HomePage.js.map +0 -1
- package/dist/src/shell/InfoTip.d.ts.map +0 -1
- package/dist/src/shell/InfoTip.js.map +0 -1
- package/dist/src/shell/InteractionsTab.d.ts.map +0 -1
- package/dist/src/shell/InteractionsTab.js.map +0 -1
- package/dist/src/shell/LogicMark.d.ts.map +0 -1
- package/dist/src/shell/LogicMark.js.map +0 -1
- package/dist/src/shell/MatrixPicker.d.ts.map +0 -1
- package/dist/src/shell/MatrixPicker.js.map +0 -1
- package/dist/src/shell/NamedViews.d.ts.map +0 -1
- package/dist/src/shell/NamedViews.js.map +0 -1
- package/dist/src/shell/PackageHtml.d.ts.map +0 -1
- package/dist/src/shell/PackageHtml.js.map +0 -1
- package/dist/src/shell/PartsTab.d.ts.map +0 -1
- package/dist/src/shell/PartsTab.js.map +0 -1
- package/dist/src/shell/PinnedControl.d.ts.map +0 -1
- package/dist/src/shell/PinnedControl.js.map +0 -1
- package/dist/src/shell/PropFields.d.ts.map +0 -1
- package/dist/src/shell/PropFields.js.map +0 -1
- package/dist/src/shell/PropsTab.d.ts.map +0 -1
- package/dist/src/shell/PropsTab.js.map +0 -1
- package/dist/src/shell/Segmented.d.ts.map +0 -1
- package/dist/src/shell/Segmented.js.map +0 -1
- package/dist/src/shell/Shell.d.ts.map +0 -1
- package/dist/src/shell/Shell.js.map +0 -1
- package/dist/src/shell/Sidebar.d.ts.map +0 -1
- package/dist/src/shell/Sidebar.js.map +0 -1
- package/dist/src/shell/SidebarEntries.d.ts.map +0 -1
- package/dist/src/shell/SidebarEntries.js.map +0 -1
- package/dist/src/shell/SidebarHandle.d.ts.map +0 -1
- package/dist/src/shell/SidebarHandle.js.map +0 -1
- package/dist/src/shell/SignatureReference.d.ts.map +0 -1
- package/dist/src/shell/SignatureReference.js.map +0 -1
- package/dist/src/shell/Stage.d.ts.map +0 -1
- package/dist/src/shell/Stage.js.map +0 -1
- package/dist/src/shell/StageTools.d.ts.map +0 -1
- package/dist/src/shell/StageTools.js.map +0 -1
- package/dist/src/shell/StageViewport.d.ts.map +0 -1
- package/dist/src/shell/StageViewport.js.map +0 -1
- package/dist/src/shell/StoryCodeBlock.d.ts.map +0 -1
- package/dist/src/shell/StoryCodeBlock.js.map +0 -1
- package/dist/src/shell/StoryPicker.d.ts.map +0 -1
- package/dist/src/shell/StoryPicker.js.map +0 -1
- package/dist/src/shell/Toolbar.d.ts.map +0 -1
- package/dist/src/shell/Toolbar.js.map +0 -1
- package/dist/src/shell/ToolbarControl.d.ts.map +0 -1
- package/dist/src/shell/ToolbarControl.js.map +0 -1
- package/dist/src/shell/UsedIn.d.ts.map +0 -1
- package/dist/src/shell/UsedIn.js.map +0 -1
- package/dist/src/shell/ViewMenu.d.ts.map +0 -1
- package/dist/src/shell/ViewMenu.js.map +0 -1
- package/dist/src/shell/WidthField.d.ts.map +0 -1
- package/dist/src/shell/WidthField.js.map +0 -1
- package/dist/src/shell/catalogueContext.d.ts.map +0 -1
- package/dist/src/shell/catalogueContext.js.map +0 -1
- package/dist/src/shell/codeTokens.d.ts.map +0 -1
- package/dist/src/shell/codeTokens.js.map +0 -1
- package/dist/src/shell/codeWriter.d.ts.map +0 -1
- package/dist/src/shell/codeWriter.js.map +0 -1
- package/dist/src/shell/compareVariants.d.ts.map +0 -1
- package/dist/src/shell/compareVariants.js.map +0 -1
- package/dist/src/shell/controlCycle.d.ts.map +0 -1
- package/dist/src/shell/controlCycle.js.map +0 -1
- package/dist/src/shell/dockTabs.d.ts.map +0 -1
- package/dist/src/shell/dockTabs.js.map +0 -1
- package/dist/src/shell/icons.d.ts.map +0 -1
- package/dist/src/shell/icons.js.map +0 -1
- package/dist/src/shell/keyboard.d.ts.map +0 -1
- package/dist/src/shell/keyboard.js.map +0 -1
- package/dist/src/shell/logicView.d.ts.map +0 -1
- package/dist/src/shell/logicView.js.map +0 -1
- package/dist/src/shell/mountShell.d.ts.map +0 -1
- package/dist/src/shell/mountShell.js.map +0 -1
- package/dist/src/shell/storyTouch.d.ts.map +0 -1
- package/dist/src/shell/storyTouch.js.map +0 -1
- package/dist/src/shell/strings.d.ts.map +0 -1
- package/dist/src/shell/strings.js.map +0 -1
- package/dist/src/shell/switchView.d.ts.map +0 -1
- package/dist/src/shell/switchView.js.map +0 -1
- package/dist/src/shell/treeSearch.d.ts.map +0 -1
- package/dist/src/shell/treeSearch.js.map +0 -1
- package/dist/src/shell/useAppearance.d.ts.map +0 -1
- package/dist/src/shell/useAppearance.js.map +0 -1
- package/dist/src/shell/useComponentDocs.d.ts.map +0 -1
- package/dist/src/shell/useComponentDocs.js.map +0 -1
- package/dist/src/shell/useControlKeys.d.ts.map +0 -1
- package/dist/src/shell/useControlKeys.js.map +0 -1
- package/dist/src/shell/useCopy.d.ts.map +0 -1
- package/dist/src/shell/useCopy.js.map +0 -1
- package/dist/src/shell/useFold.d.ts.map +0 -1
- package/dist/src/shell/useFold.js.map +0 -1
- package/dist/src/shell/useFrameMessages.d.ts.map +0 -1
- package/dist/src/shell/useFrameMessages.js.map +0 -1
- package/dist/src/shell/useFrameQueue.d.ts.map +0 -1
- package/dist/src/shell/useFrameQueue.js.map +0 -1
- package/dist/src/shell/useFullPage.d.ts.map +0 -1
- package/dist/src/shell/useFullPage.js.map +0 -1
- package/dist/src/shell/useLiveView.d.ts.map +0 -1
- package/dist/src/shell/useLiveView.js.map +0 -1
- package/dist/src/shell/useLoaded.d.ts.map +0 -1
- package/dist/src/shell/useLoaded.js.map +0 -1
- package/dist/src/shell/usePageDoc.d.ts.map +0 -1
- package/dist/src/shell/usePageDoc.js.map +0 -1
- package/dist/src/shell/usePopover.d.ts.map +0 -1
- package/dist/src/shell/usePopover.js.map +0 -1
- package/dist/src/shell/useRecentPages.d.ts.map +0 -1
- package/dist/src/shell/useRecentPages.js.map +0 -1
- package/dist/src/shell/useScrollMemory.d.ts.map +0 -1
- package/dist/src/shell/useScrollMemory.js.map +0 -1
- package/dist/src/shell/useShownView.d.ts.map +0 -1
- package/dist/src/shell/useShownView.js.map +0 -1
- package/dist/src/shell/useSidebarLayout.d.ts.map +0 -1
- package/dist/src/shell/useSidebarLayout.js.map +0 -1
- package/dist/src/shell/useStored.d.ts.map +0 -1
- package/dist/src/shell/useStored.js.map +0 -1
- package/dist/src/shell/useStoryCode.d.ts.map +0 -1
- package/dist/src/shell/useStoryCode.js.map +0 -1
- package/dist/src/shell/useStoryHeights.d.ts.map +0 -1
- package/dist/src/shell/useStoryHeights.js.map +0 -1
- package/dist/src/shell/useStoryIdsElement.d.ts.map +0 -1
- package/dist/src/shell/useStoryIdsElement.js.map +0 -1
- package/dist/src/shell/useStoryKeys.d.ts.map +0 -1
- package/dist/src/shell/useStoryKeys.js.map +0 -1
- package/dist/src/shell/useSystemDark.d.ts.map +0 -1
- package/dist/src/shell/useSystemDark.js.map +0 -1
- package/dist/src/shell/useToolbarLayout.d.ts.map +0 -1
- package/dist/src/shell/useToolbarLayout.js.map +0 -1
- package/dist/src/shell/useToolbarOverflow.d.ts.map +0 -1
- package/dist/src/shell/useToolbarOverflow.js.map +0 -1
- package/dist/src/shell/useWorstCase.d.ts.map +0 -1
- package/dist/src/shell/useWorstCase.js.map +0 -1
- package/dist/src/shell/worstArgs.d.ts.map +0 -1
- package/dist/src/shell/worstArgs.js.map +0 -1
- package/dist/src/sourceFiles.d.ts.map +0 -1
- package/dist/src/sourceFiles.js.map +0 -1
- package/dist/src/spills.d.ts.map +0 -1
- package/dist/src/spills.js.map +0 -1
- package/dist/src/storyBackground.d.ts.map +0 -1
- package/dist/src/storyBackground.js.map +0 -1
- package/dist/src/storyCheck.d.ts.map +0 -1
- package/dist/src/storyCheck.js.map +0 -1
- package/dist/src/storyClock.d.ts.map +0 -1
- package/dist/src/storyClock.js.map +0 -1
- package/dist/src/storyGlobals.d.ts.map +0 -1
- package/dist/src/storyGlobals.js.map +0 -1
- package/dist/src/storyHeights.d.ts.map +0 -1
- package/dist/src/storyHeights.js.map +0 -1
- package/dist/src/storyIdsElement.d.ts.map +0 -1
- package/dist/src/storyIdsElement.js.map +0 -1
- package/dist/src/storyTexts.d.ts.map +0 -1
- package/dist/src/storyTexts.js.map +0 -1
- package/dist/src/storyTree.d.ts.map +0 -1
- package/dist/src/storyTree.js.map +0 -1
- package/dist/src/switches.d.ts.map +0 -1
- package/dist/src/switches.js.map +0 -1
- package/dist/src/toolbarLayout.d.ts.map +0 -1
- package/dist/src/toolbarLayout.js.map +0 -1
- package/dist/src/usedIn.d.ts.map +0 -1
- package/dist/src/usedIn.js.map +0 -1
- package/dist/src/viewState.d.ts.map +0 -1
- package/dist/src/viewState.js.map +0 -1
- package/dist/src/viewWords.d.ts.map +0 -1
- package/dist/src/viewWords.js.map +0 -1
- package/dist/src/vite/adapter.d.ts.map +0 -1
- package/dist/src/vite/adapter.js.map +0 -1
- package/dist/src/vite/agent.types.d.ts.map +0 -1
- package/dist/src/vite/agent.types.js.map +0 -1
- package/dist/src/vite/agentApi.d.ts.map +0 -1
- package/dist/src/vite/agentApi.js.map +0 -1
- package/dist/src/vite/agentRoutes.d.ts.map +0 -1
- package/dist/src/vite/agentRoutes.js.map +0 -1
- package/dist/src/vite/autoTitle.d.ts.map +0 -1
- package/dist/src/vite/autoTitle.js.map +0 -1
- package/dist/src/vite/componentPage.d.ts.map +0 -1
- package/dist/src/vite/componentPage.js.map +0 -1
- package/dist/src/vite/config.d.ts.map +0 -1
- package/dist/src/vite/config.js.map +0 -1
- package/dist/src/vite/configFile.d.ts.map +0 -1
- package/dist/src/vite/configFile.js.map +0 -1
- package/dist/src/vite/docsExtractor.d.ts.map +0 -1
- package/dist/src/vite/docsExtractor.js.map +0 -1
- package/dist/src/vite/docsProgram.d.ts.map +0 -1
- package/dist/src/vite/docsProgram.js.map +0 -1
- package/dist/src/vite/docsWorker.d.ts.map +0 -1
- package/dist/src/vite/docsWorker.js.map +0 -1
- package/dist/src/vite/forcedStates.d.ts.map +0 -1
- package/dist/src/vite/forcedStates.js.map +0 -1
- package/dist/src/vite/forgebookPlugin.d.ts.map +0 -1
- package/dist/src/vite/forgebookPlugin.js.map +0 -1
- package/dist/src/vite/heightsRoute.d.ts.map +0 -1
- package/dist/src/vite/heightsRoute.js.map +0 -1
- package/dist/src/vite/highlightCode.d.ts.map +0 -1
- package/dist/src/vite/highlightCode.js.map +0 -1
- package/dist/src/vite/indexStoryFile.d.ts.map +0 -1
- package/dist/src/vite/indexStoryFile.js.map +0 -1
- package/dist/src/vite/mcpProtocol.d.ts.map +0 -1
- package/dist/src/vite/mcpProtocol.js.map +0 -1
- package/dist/src/vite/pages.d.ts.map +0 -1
- package/dist/src/vite/pages.js.map +0 -1
- package/dist/src/vite/prebundled.d.ts.map +0 -1
- package/dist/src/vite/prebundled.js.map +0 -1
- package/dist/src/vite/storyCode.d.ts.map +0 -1
- package/dist/src/vite/storyCode.js.map +0 -1
- package/dist/src/vite/storyFilesModule.d.ts.map +0 -1
- package/dist/src/vite/storyFilesModule.js.map +0 -1
- package/dist/src/vite/storyMeta.d.ts.map +0 -1
- package/dist/src/vite/storyMeta.js.map +0 -1
- package/dist/src/vite/touchMedia.d.ts.map +0 -1
- package/dist/src/vite/touchMedia.js.map +0 -1
- package/dist/src/vite/typeScriptPieces.d.ts.map +0 -1
- package/dist/src/vite/typeScriptPieces.js.map +0 -1
- package/dist/src/vite/usageGraph.d.ts.map +0 -1
- package/dist/src/vite/usageGraph.js.map +0 -1
- package/dist/src/vite/usageModule.d.ts.map +0 -1
- package/dist/src/vite/usageModule.js.map +0 -1
- package/dist/src/worstCase.d.ts.map +0 -1
- package/dist/src/worstCase.js.map +0 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The block syntax of a docs page read from its lines: `:::` directives (containers, nested by more colons), `::`
|
|
3
|
+
* leaf directives, and GitHub alerts (`> [!NOTE]`), as a tree of segments whose leaves are plain Markdown.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* The syntax is the one Starlight, Docusaurus and VitePress share, so an author knows it and a page stays readable on
|
|
7
|
+
* GitHub: `:::name[label]{key="value"}` opens a container, a line of the same colons closes it, and a container inside
|
|
8
|
+
* another has fewer colons than its parent (`::::tabs` around `:::tab`). Only the line structure is read here, before
|
|
9
|
+
* Markdown: what a name means, and which attributes it takes, is the compiler's (`docPageBlocks.ts`). Every line keeps
|
|
10
|
+
* its place in the file, so a mistake is reported with its line and column and the page still draws: a block that
|
|
11
|
+
* cannot be read stays text. A directive is read only at a line's start, and never inside a code fence, so a fence can
|
|
12
|
+
* show the syntax itself. Pure.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
/** A line of a page, with where it sits in the file. */
|
|
17
|
+
export type SourceLine = {
|
|
18
|
+
/** Its text, without what an enclosing quote took off its start. */
|
|
19
|
+
readonly text: string;
|
|
20
|
+
/** Its line in the file, from 1. */
|
|
21
|
+
readonly line: number;
|
|
22
|
+
/** The column its text starts at in the file, from 1: more than 1 inside a quote. */
|
|
23
|
+
readonly column: number;
|
|
24
|
+
};
|
|
25
|
+
/** A place in a page's file. */
|
|
26
|
+
export type SourcePosition = {
|
|
27
|
+
/** The line, from 1. */
|
|
28
|
+
readonly line: number;
|
|
29
|
+
/** The column, from 1. */
|
|
30
|
+
readonly column: number;
|
|
31
|
+
};
|
|
32
|
+
/** Something a page gets wrong, and where. */
|
|
33
|
+
export type PageNote = {
|
|
34
|
+
/** Where it is; none when it is about the whole page. */
|
|
35
|
+
readonly position: SourcePosition | undefined;
|
|
36
|
+
/** What is wrong, in a sentence that starts in lower case. */
|
|
37
|
+
readonly message: string;
|
|
38
|
+
};
|
|
39
|
+
/** The kinds of GitHub alert, as their marker writes them. */
|
|
40
|
+
export declare const ALERT_KINDS: readonly ["NOTE", "TIP", "IMPORTANT", "WARNING", "CAUTION"];
|
|
41
|
+
/** A kind of GitHub alert. */
|
|
42
|
+
export type AlertKind = (typeof ALERT_KINDS)[number];
|
|
43
|
+
/** A directive's attribute: its value, where it starts and where its value starts. */
|
|
44
|
+
export type DirectiveAttribute = {
|
|
45
|
+
/** Its value; the empty text for a key written alone. */
|
|
46
|
+
readonly value: string;
|
|
47
|
+
/** Where its key starts. */
|
|
48
|
+
readonly position: SourcePosition;
|
|
49
|
+
/** Where its value starts, inside its quotes: for a note about what the value holds. */
|
|
50
|
+
readonly valuePosition: SourcePosition;
|
|
51
|
+
};
|
|
52
|
+
/** A directive's attributes, by key. */
|
|
53
|
+
export type DirectiveAttributes = ReadonlyMap<string, DirectiveAttribute>;
|
|
54
|
+
/** A directive as its line writes it. */
|
|
55
|
+
export type Directive = {
|
|
56
|
+
/** Its name (`tabs`). */
|
|
57
|
+
readonly name: string;
|
|
58
|
+
/** Its label, the text in square brackets; none when it has none. */
|
|
59
|
+
readonly label: string | undefined;
|
|
60
|
+
/** Where its label's text starts, for a note about what it holds. */
|
|
61
|
+
readonly labelPosition: SourcePosition | undefined;
|
|
62
|
+
/** Its attributes. */
|
|
63
|
+
readonly attributes: DirectiveAttributes;
|
|
64
|
+
/** Where its colons start. */
|
|
65
|
+
readonly position: SourcePosition;
|
|
66
|
+
/** The line it was read from: a block that means nothing stays as this text. */
|
|
67
|
+
readonly line: SourceLine;
|
|
68
|
+
};
|
|
69
|
+
/** A piece of a page's body. */
|
|
70
|
+
export type BodySegment = {
|
|
71
|
+
/** Plain Markdown lines between the blocks. */
|
|
72
|
+
readonly type: "markdown";
|
|
73
|
+
/** The lines. */
|
|
74
|
+
readonly lines: readonly SourceLine[];
|
|
75
|
+
} | {
|
|
76
|
+
/** A container directive and what it holds: `:::name` up to its closing colons. */
|
|
77
|
+
readonly type: "container";
|
|
78
|
+
/** The directive. */
|
|
79
|
+
readonly directive: Directive;
|
|
80
|
+
/** What it holds. */
|
|
81
|
+
readonly children: readonly BodySegment[];
|
|
82
|
+
} | {
|
|
83
|
+
/** A leaf directive, alone on its line: `::name[label]{attributes}`. */
|
|
84
|
+
readonly type: "leaf";
|
|
85
|
+
/** The directive. */
|
|
86
|
+
readonly directive: Directive;
|
|
87
|
+
} | {
|
|
88
|
+
/** A GitHub alert: a quote whose first line is `[!NOTE]`, `[!TIP]` and so on. */
|
|
89
|
+
readonly type: "alert";
|
|
90
|
+
/** Its kind. */
|
|
91
|
+
readonly kind: AlertKind;
|
|
92
|
+
/** Where its marker starts. */
|
|
93
|
+
readonly position: SourcePosition;
|
|
94
|
+
/** What the quote holds, its `>` taken off. */
|
|
95
|
+
readonly children: readonly BodySegment[];
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* A note's text as a person reads it in a list of problems: `line 12, column 3: …`.
|
|
99
|
+
*
|
|
100
|
+
* @param note - the note.
|
|
101
|
+
*/
|
|
102
|
+
export declare const noteText: (note: PageNote) => string;
|
|
103
|
+
/**
|
|
104
|
+
* A text's lines, each with its place in the file.
|
|
105
|
+
*
|
|
106
|
+
* @param text - the text.
|
|
107
|
+
* @param firstLine - the file's line the text starts on, from 1.
|
|
108
|
+
*/
|
|
109
|
+
export declare const sourceLines: (text: string, firstLine: number) => SourceLine[];
|
|
110
|
+
/**
|
|
111
|
+
* A page's body as a tree of segments.
|
|
112
|
+
*
|
|
113
|
+
* @param lines - the body's lines.
|
|
114
|
+
* @param notes - receives what cannot be read, with its place.
|
|
115
|
+
*/
|
|
116
|
+
export declare const bodySegments: (lines: readonly SourceLine[], notes: PageNote[]) => BodySegment[];
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The block syntax of a docs page read from its lines: `:::` directives (containers, nested by more colons), `::`
|
|
3
|
+
* leaf directives, and GitHub alerts (`> [!NOTE]`), as a tree of segments whose leaves are plain Markdown.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* The syntax is the one Starlight, Docusaurus and VitePress share, so an author knows it and a page stays readable on
|
|
7
|
+
* GitHub: `:::name[label]{key="value"}` opens a container, a line of the same colons closes it, and a container inside
|
|
8
|
+
* another has fewer colons than its parent (`::::tabs` around `:::tab`). Only the line structure is read here, before
|
|
9
|
+
* Markdown: what a name means, and which attributes it takes, is the compiler's (`docPageBlocks.ts`). Every line keeps
|
|
10
|
+
* its place in the file, so a mistake is reported with its line and column and the page still draws: a block that
|
|
11
|
+
* cannot be read stays text. A directive is read only at a line's start, and never inside a code fence, so a fence can
|
|
12
|
+
* show the syntax itself. Pure.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
/** The kinds of GitHub alert, as their marker writes them. */
|
|
17
|
+
export const ALERT_KINDS = ["NOTE", "TIP", "IMPORTANT", "WARNING", "CAUTION"];
|
|
18
|
+
/**
|
|
19
|
+
* A note's text as a person reads it in a list of problems: `line 12, column 3: …`.
|
|
20
|
+
*
|
|
21
|
+
* @param note - the note.
|
|
22
|
+
*/
|
|
23
|
+
export const noteText = (note) => note.position === undefined
|
|
24
|
+
? note.message
|
|
25
|
+
: `line ${note.position.line}, column ${note.position.column}: ${note.message}`;
|
|
26
|
+
/**
|
|
27
|
+
* A text's lines, each with its place in the file.
|
|
28
|
+
*
|
|
29
|
+
* @param text - the text.
|
|
30
|
+
* @param firstLine - the file's line the text starts on, from 1.
|
|
31
|
+
*/
|
|
32
|
+
export const sourceLines = (text, firstLine) => text.split(/\r?\n/).map((line, index) => ({ text: line, line: firstLine + index, column: 1 }));
|
|
33
|
+
/** A code fence's opening: up to three spaces, then three or more backticks or tildes. */
|
|
34
|
+
const FENCE_OPEN = /^ {0,3}(`{3,}|~{3,})/;
|
|
35
|
+
/** A container directive's opening line: its colons and its name at the line's start, then the rest. */
|
|
36
|
+
const CONTAINER_OPEN = /^(:{3,})([a-z][a-z0-9-]*)(.*)$/;
|
|
37
|
+
/** A container's closing line: colons alone. */
|
|
38
|
+
const CONTAINER_CLOSE = /^(:{3,})\s*$/;
|
|
39
|
+
/** A leaf directive's line: exactly two colons and its name, then the rest. */
|
|
40
|
+
const LEAF = /^::([a-z][a-z0-9-]*)(.*)$/;
|
|
41
|
+
/** A directive written after spaces: Markdown would take it as a list item's text, so it is not read. */
|
|
42
|
+
const INDENTED_DIRECTIVE = /^\s+(:{2,})[a-z]/;
|
|
43
|
+
/** An alert's first line: a quote holding only `[!KIND]`, at the line's start as a block is. */
|
|
44
|
+
const ALERT_OPEN = /^(>\s?)\[!([A-Za-z]+)\]\s*$/;
|
|
45
|
+
/** An alert written after spaces: Markdown takes it as a quote in a list item, so it is not read. */
|
|
46
|
+
const INDENTED_ALERT = /^\s+>\s?\[![A-Za-z]+\]\s*$/;
|
|
47
|
+
/** A quote's line: up to three spaces, `>`, and the space after it when there is one. */
|
|
48
|
+
const QUOTE_LINE = /^ {0,3}> ?/;
|
|
49
|
+
/** An attribute's key. */
|
|
50
|
+
const ATTRIBUTE_KEY = /^[A-Za-z_][\w-]*/;
|
|
51
|
+
/** Where a character of a line sits in the file. */
|
|
52
|
+
const positionIn = (line, offset) => ({
|
|
53
|
+
line: line.line,
|
|
54
|
+
column: line.column + offset
|
|
55
|
+
});
|
|
56
|
+
/**
|
|
57
|
+
* The end of a label that starts after `[` at `start`: the place of its closing `]`, brackets inside it balanced and
|
|
58
|
+
* `\]` escaped; -1 when it never closes.
|
|
59
|
+
*/
|
|
60
|
+
const labelEnd = (text, start) => {
|
|
61
|
+
let depth = 0;
|
|
62
|
+
for (let index = start; index < text.length; index += 1) {
|
|
63
|
+
const character = text.charAt(index);
|
|
64
|
+
if (character === "\\")
|
|
65
|
+
index += 1;
|
|
66
|
+
else if (character === "[")
|
|
67
|
+
depth += 1;
|
|
68
|
+
else if (character === "]") {
|
|
69
|
+
if (depth === 0)
|
|
70
|
+
return index;
|
|
71
|
+
depth -= 1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return -1;
|
|
75
|
+
};
|
|
76
|
+
/** A quoted value's end: the place of its closing quote, or -1. */
|
|
77
|
+
const quotedEnd = (text, start, quote) => {
|
|
78
|
+
for (let index = start; index < text.length; index += 1) {
|
|
79
|
+
if (text[index] === "\\")
|
|
80
|
+
index += 1;
|
|
81
|
+
else if (text[index] === quote)
|
|
82
|
+
return index;
|
|
83
|
+
}
|
|
84
|
+
return -1;
|
|
85
|
+
};
|
|
86
|
+
/** A value as written, its escapes read. */
|
|
87
|
+
const unescaped = (value) => value.replace(/\\(.)/g, "$1");
|
|
88
|
+
/**
|
|
89
|
+
* An attribute's value after its `=`: quoted, or bare up to the next space.
|
|
90
|
+
*
|
|
91
|
+
* @param line - the directive's line.
|
|
92
|
+
* @param start - the place after `=`.
|
|
93
|
+
* @param end - the place of the attributes' `}`.
|
|
94
|
+
* @param key - the attribute's key, for the notes.
|
|
95
|
+
* @param position - where the attribute starts, for the notes.
|
|
96
|
+
* @param notes - receives what cannot be read.
|
|
97
|
+
*/
|
|
98
|
+
const attributeValue = (line, start, end, key, position, notes) => {
|
|
99
|
+
const { text } = line;
|
|
100
|
+
const quote = text.charAt(start);
|
|
101
|
+
if (quote === '"' || quote === "'") {
|
|
102
|
+
const close = quotedEnd(text, start + 1, quote);
|
|
103
|
+
if (close !== -1 && close < end)
|
|
104
|
+
return { value: unescaped(text.slice(start + 1, close)), start: start + 1, next: close + 1 };
|
|
105
|
+
notes.push({ position, message: `the value of "${key}" never ends: close its quote` });
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
const bare = /^[^\s"'=]+/.exec(text.slice(start, end))?.[0] ?? "";
|
|
109
|
+
if (bare !== "")
|
|
110
|
+
return { value: bare, start, next: start + bare.length };
|
|
111
|
+
notes.push({ position, message: `"${key}=" has no value` });
|
|
112
|
+
return undefined;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* The attributes between a directive's braces: `key="value"`, `key='value'`, `key=value` or `key` alone.
|
|
116
|
+
*
|
|
117
|
+
* @param line - the directive's line.
|
|
118
|
+
* @param start - the place after `{`.
|
|
119
|
+
* @param end - the place of `}`.
|
|
120
|
+
* @param notes - receives what cannot be read.
|
|
121
|
+
*/
|
|
122
|
+
const attributesOf = (line, start, end, notes) => {
|
|
123
|
+
const attributes = new Map();
|
|
124
|
+
const { text } = line;
|
|
125
|
+
let index = start;
|
|
126
|
+
while (index < end) {
|
|
127
|
+
const rest = text.slice(index, end);
|
|
128
|
+
const space = /^\s+/.exec(rest)?.[0].length ?? 0;
|
|
129
|
+
if (space > 0) {
|
|
130
|
+
index += space;
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
const position = positionIn(line, index);
|
|
134
|
+
const key = ATTRIBUTE_KEY.exec(rest)?.[0];
|
|
135
|
+
if (key === undefined) {
|
|
136
|
+
notes.push({ position, message: `"${rest.trim()}" is not an attribute: write key="value"` });
|
|
137
|
+
return attributes;
|
|
138
|
+
}
|
|
139
|
+
index += key.length;
|
|
140
|
+
const read = text.charAt(index) === "="
|
|
141
|
+
? attributeValue(line, index + 1, end, key, position, notes)
|
|
142
|
+
: { value: "", start: index, next: index };
|
|
143
|
+
if (read === undefined)
|
|
144
|
+
return attributes;
|
|
145
|
+
if (attributes.has(key))
|
|
146
|
+
notes.push({ position, message: `"${key}" is written twice` });
|
|
147
|
+
attributes.set(key, { value: read.value, position, valuePosition: positionIn(line, read.start) });
|
|
148
|
+
index = read.next;
|
|
149
|
+
}
|
|
150
|
+
return attributes;
|
|
151
|
+
};
|
|
152
|
+
/** The place of the `}` that closes attributes starting at `start`, quotes skipped; -1 when none. */
|
|
153
|
+
const attributesEnd = (text, start) => {
|
|
154
|
+
for (let index = start; index < text.length; index += 1) {
|
|
155
|
+
const character = text.charAt(index);
|
|
156
|
+
if (character === "}")
|
|
157
|
+
return index;
|
|
158
|
+
if (character !== '"' && character !== "'")
|
|
159
|
+
continue;
|
|
160
|
+
const close = quotedEnd(text, index + 1, character);
|
|
161
|
+
if (close === -1)
|
|
162
|
+
return -1;
|
|
163
|
+
index = close;
|
|
164
|
+
}
|
|
165
|
+
return -1;
|
|
166
|
+
};
|
|
167
|
+
/** A directive's label, when one starts at `start`. */
|
|
168
|
+
const labelAt = (line, start, notes) => {
|
|
169
|
+
const none = { label: undefined, labelPosition: undefined, next: start };
|
|
170
|
+
if (line.text.charAt(start) !== "[")
|
|
171
|
+
return none;
|
|
172
|
+
const close = labelEnd(line.text, start + 1);
|
|
173
|
+
if (close === -1) {
|
|
174
|
+
notes.push({ position: positionIn(line, start), message: "its label never ends: add `]`" });
|
|
175
|
+
return none;
|
|
176
|
+
}
|
|
177
|
+
return {
|
|
178
|
+
label: line.text.slice(start + 1, close),
|
|
179
|
+
labelPosition: positionIn(line, start + 1),
|
|
180
|
+
next: close + 1
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
/** A directive's attributes, when they start at `start`, and the place after them. */
|
|
184
|
+
const attributesAt = (line, start, notes) => {
|
|
185
|
+
if (line.text.charAt(start) !== "{")
|
|
186
|
+
return { attributes: new Map(), next: start };
|
|
187
|
+
const close = attributesEnd(line.text, start + 1);
|
|
188
|
+
if (close === -1) {
|
|
189
|
+
notes.push({ position: positionIn(line, start), message: "its attributes never end: add `}`" });
|
|
190
|
+
return { attributes: new Map(), next: start };
|
|
191
|
+
}
|
|
192
|
+
return { attributes: attributesOf(line, start + 1, close, notes), next: close + 1 };
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* A directive read from what follows its name: an optional `[label]`, optional `{attributes}`, nothing after.
|
|
196
|
+
*
|
|
197
|
+
* @param line - the directive's line.
|
|
198
|
+
* @param name - its name.
|
|
199
|
+
* @param restStart - the place its label or attributes start.
|
|
200
|
+
* @param notes - receives what cannot be read.
|
|
201
|
+
*/
|
|
202
|
+
const directiveOf = (line, name, restStart, notes) => {
|
|
203
|
+
const noted = notes.length;
|
|
204
|
+
const { label, labelPosition, next } = labelAt(line, restStart, notes);
|
|
205
|
+
const { attributes, next: end } = attributesAt(line, next, notes);
|
|
206
|
+
const trailing = line.text.slice(end).trim();
|
|
207
|
+
// after a label or attributes that never end, the rest of the line is already said to be wrong
|
|
208
|
+
if (trailing !== "" && notes.length === noted) {
|
|
209
|
+
notes.push({
|
|
210
|
+
position: positionIn(line, line.text.indexOf(trailing, end)),
|
|
211
|
+
message: `"${trailing}" after the block's name is not read: a label goes in [ ], attributes in { }`
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
return { name, label, labelPosition, attributes, position: positionIn(line, 0), line };
|
|
215
|
+
};
|
|
216
|
+
/** The code fence a line opens, when it opens one. */
|
|
217
|
+
const fenceOpened = (line) => {
|
|
218
|
+
const match = FENCE_OPEN.exec(line.text);
|
|
219
|
+
const marker = match?.[1];
|
|
220
|
+
if (match === null || marker === undefined)
|
|
221
|
+
return undefined;
|
|
222
|
+
// as Markdown reads it: a backtick fence whose line holds another backtick opens nothing
|
|
223
|
+
if (marker.startsWith("`") && line.text.slice(match[0].length).includes("`"))
|
|
224
|
+
return undefined;
|
|
225
|
+
return {
|
|
226
|
+
marker: marker.charAt(0),
|
|
227
|
+
length: marker.length,
|
|
228
|
+
position: positionIn(line, match[0].length - marker.length)
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
/** Whether a line closes a fence: the same character, at least as many, nothing after. */
|
|
232
|
+
const isFenceClose = (text, fence) => {
|
|
233
|
+
const marker = /^ {0,3}(`{3,}|~{3,})\s*$/.exec(text)?.[1];
|
|
234
|
+
return marker !== undefined && marker.charAt(0) === fence.marker && marker.length >= fence.length;
|
|
235
|
+
};
|
|
236
|
+
/**
|
|
237
|
+
* The lines of an alert from its first, its quote's marks taken off: up to the first line that is no quote's.
|
|
238
|
+
*
|
|
239
|
+
* @param lines - the lines.
|
|
240
|
+
* @param start - the place of the alert's first line.
|
|
241
|
+
* @returns the lines it holds, without the marker's, and the place after it.
|
|
242
|
+
*/
|
|
243
|
+
const alertLines = (lines, start) => {
|
|
244
|
+
const inner = [];
|
|
245
|
+
let index = start + 1;
|
|
246
|
+
for (; index < lines.length; index += 1) {
|
|
247
|
+
const line = lines[index];
|
|
248
|
+
const mark = line === undefined ? undefined : QUOTE_LINE.exec(line.text)?.[0];
|
|
249
|
+
if (line === undefined || mark === undefined)
|
|
250
|
+
break;
|
|
251
|
+
inner.push({ text: line.text.slice(mark.length), line: line.line, column: line.column + mark.length });
|
|
252
|
+
}
|
|
253
|
+
return { inner, next: index };
|
|
254
|
+
};
|
|
255
|
+
/** A container's opening as its line writes it: its colons and its name. */
|
|
256
|
+
const containerName = (container) => `\`${":".repeat(container.colons)}${container.directive.name}\``;
|
|
257
|
+
/** Where the next segment goes: in the innermost open container, or at the top. */
|
|
258
|
+
const childrenOf = (reader) => reader.open.at(-1)?.children ?? reader.top;
|
|
259
|
+
/** Ends the Markdown since the last block as a segment of its own. */
|
|
260
|
+
const flush = (reader) => {
|
|
261
|
+
if (reader.markdown.length > 0)
|
|
262
|
+
childrenOf(reader).push({ type: "markdown", lines: reader.markdown });
|
|
263
|
+
reader.markdown = [];
|
|
264
|
+
};
|
|
265
|
+
/** Closes the innermost container. */
|
|
266
|
+
const closeInnermost = (reader) => {
|
|
267
|
+
flush(reader);
|
|
268
|
+
const container = reader.open.pop();
|
|
269
|
+
if (container !== undefined)
|
|
270
|
+
childrenOf(reader).push({
|
|
271
|
+
type: "container",
|
|
272
|
+
directive: container.directive,
|
|
273
|
+
children: container.children
|
|
274
|
+
});
|
|
275
|
+
};
|
|
276
|
+
/** Reads a line that may open or sit in a code fence; whether it did. */
|
|
277
|
+
const readFenceLine = (reader, line) => {
|
|
278
|
+
if (reader.fence !== undefined) {
|
|
279
|
+
reader.markdown.push(line);
|
|
280
|
+
if (isFenceClose(line.text, reader.fence))
|
|
281
|
+
reader.fence = undefined;
|
|
282
|
+
return true;
|
|
283
|
+
}
|
|
284
|
+
const opened = fenceOpened(line);
|
|
285
|
+
if (opened === undefined)
|
|
286
|
+
return false;
|
|
287
|
+
reader.fence = opened;
|
|
288
|
+
reader.markdown.push(line);
|
|
289
|
+
return true;
|
|
290
|
+
};
|
|
291
|
+
/** Reads a line that may open a container; whether it did. */
|
|
292
|
+
const readOpening = (reader, line) => {
|
|
293
|
+
const [, colonText, name] = CONTAINER_OPEN.exec(line.text) ?? [];
|
|
294
|
+
if (colonText === undefined || name === undefined)
|
|
295
|
+
return false;
|
|
296
|
+
const colons = colonText.length;
|
|
297
|
+
const parent = reader.open.at(-1);
|
|
298
|
+
if (parent !== undefined && colons >= parent.colons) {
|
|
299
|
+
reader.notes.push({
|
|
300
|
+
position: positionIn(line, 0),
|
|
301
|
+
message: `\`${colonText}${name}\` sits inside ${containerName(parent)} (line ${parent.directive.position.line}), so it needs fewer colons than its parent: give the parent ${colons + 1}`
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
flush(reader);
|
|
305
|
+
reader.open.push({
|
|
306
|
+
directive: directiveOf(line, name, colons + name.length, reader.notes),
|
|
307
|
+
colons,
|
|
308
|
+
children: []
|
|
309
|
+
});
|
|
310
|
+
return true;
|
|
311
|
+
};
|
|
312
|
+
/** Reads a line that may close a container; whether it did. */
|
|
313
|
+
const readClosing = (reader, line) => {
|
|
314
|
+
const colonText = CONTAINER_CLOSE.exec(line.text)?.[1];
|
|
315
|
+
if (colonText === undefined)
|
|
316
|
+
return false;
|
|
317
|
+
const { open, notes } = reader;
|
|
318
|
+
const innermost = open.at(-1);
|
|
319
|
+
const depth = open.findLastIndex((container) => container.colons === colonText.length);
|
|
320
|
+
if (innermost === undefined) {
|
|
321
|
+
notes.push({ position: positionIn(line, 0), message: `\`${colonText}\` closes no block` });
|
|
322
|
+
reader.markdown.push(line);
|
|
323
|
+
return true;
|
|
324
|
+
}
|
|
325
|
+
if (depth === -1) {
|
|
326
|
+
notes.push({
|
|
327
|
+
position: positionIn(line, 0),
|
|
328
|
+
message: `\`${colonText}\` does not match ${containerName(innermost)} (line ${innermost.directive.position.line}): close it with ${innermost.colons} colons`
|
|
329
|
+
});
|
|
330
|
+
closeInnermost(reader);
|
|
331
|
+
return true;
|
|
332
|
+
}
|
|
333
|
+
for (let inner = open.at(-1); inner !== undefined && open.length - 1 > depth; inner = open.at(-1)) {
|
|
334
|
+
notes.push({
|
|
335
|
+
position: inner.directive.position,
|
|
336
|
+
message: `${containerName(inner)} is never closed before line ${line.line} closes its parent: add a line of ${inner.colons} colons`
|
|
337
|
+
});
|
|
338
|
+
closeInnermost(reader);
|
|
339
|
+
}
|
|
340
|
+
closeInnermost(reader);
|
|
341
|
+
return true;
|
|
342
|
+
};
|
|
343
|
+
/** Reads a line that may be a leaf directive; whether it was. */
|
|
344
|
+
const readLeaf = (reader, line) => {
|
|
345
|
+
const name = LEAF.exec(line.text)?.[1];
|
|
346
|
+
if (name === undefined)
|
|
347
|
+
return false;
|
|
348
|
+
flush(reader);
|
|
349
|
+
childrenOf(reader).push({
|
|
350
|
+
type: "leaf",
|
|
351
|
+
directive: directiveOf(line, name, 2 + name.length, reader.notes)
|
|
352
|
+
});
|
|
353
|
+
return true;
|
|
354
|
+
};
|
|
355
|
+
/**
|
|
356
|
+
* Reads a line that may start an alert, with the quote's lines after it.
|
|
357
|
+
*
|
|
358
|
+
* @returns the place of the alert's last line; none when the line starts none.
|
|
359
|
+
*/
|
|
360
|
+
const readAlert = (reader, lines, index) => {
|
|
361
|
+
const line = lines[index];
|
|
362
|
+
const [, mark, written] = line === undefined ? [] : (ALERT_OPEN.exec(line.text) ?? []);
|
|
363
|
+
if (line === undefined || mark === undefined || written === undefined)
|
|
364
|
+
return undefined;
|
|
365
|
+
// as GitHub reads it: only a quote's first line makes it an alert
|
|
366
|
+
const before = reader.markdown.at(-1);
|
|
367
|
+
if (before !== undefined && QUOTE_LINE.test(before.text))
|
|
368
|
+
return undefined;
|
|
369
|
+
const position = positionIn(line, mark.length);
|
|
370
|
+
const kind = ALERT_KINDS.find((each) => each === written.toUpperCase());
|
|
371
|
+
if (kind === undefined) {
|
|
372
|
+
reader.notes.push({
|
|
373
|
+
position,
|
|
374
|
+
message: `\`[!${written}]\` is not an alert: write NOTE, TIP, IMPORTANT, WARNING or CAUTION`
|
|
375
|
+
});
|
|
376
|
+
return undefined;
|
|
377
|
+
}
|
|
378
|
+
flush(reader);
|
|
379
|
+
const { inner, next } = alertLines(lines, index);
|
|
380
|
+
childrenOf(reader).push({ type: "alert", kind, position, children: bodySegments(inner, reader.notes) });
|
|
381
|
+
return next - 1;
|
|
382
|
+
};
|
|
383
|
+
/**
|
|
384
|
+
* A page's body as a tree of segments.
|
|
385
|
+
*
|
|
386
|
+
* @param lines - the body's lines.
|
|
387
|
+
* @param notes - receives what cannot be read, with its place.
|
|
388
|
+
*/
|
|
389
|
+
export const bodySegments = (lines, notes) => {
|
|
390
|
+
const reader = { top: [], open: [], markdown: [], fence: undefined, notes };
|
|
391
|
+
for (let index = 0; index < lines.length; index += 1) {
|
|
392
|
+
const line = lines[index];
|
|
393
|
+
if (line === undefined || readFenceLine(reader, line))
|
|
394
|
+
continue;
|
|
395
|
+
if (readOpening(reader, line) || readClosing(reader, line) || readLeaf(reader, line))
|
|
396
|
+
continue;
|
|
397
|
+
const last = readAlert(reader, lines, index);
|
|
398
|
+
if (last !== undefined) {
|
|
399
|
+
index = last;
|
|
400
|
+
continue;
|
|
401
|
+
}
|
|
402
|
+
if (INDENTED_DIRECTIVE.test(line.text) || INDENTED_ALERT.test(line.text)) {
|
|
403
|
+
notes.push({
|
|
404
|
+
position: positionIn(line, line.text.search(/\S/)),
|
|
405
|
+
message: "a block written after spaces is not read: start it at the line's start, outside lists"
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
reader.markdown.push(line);
|
|
409
|
+
}
|
|
410
|
+
// a fence left open swallows what follows, the closing lines of its blocks included: it is the mistake to name
|
|
411
|
+
if (reader.fence !== undefined)
|
|
412
|
+
notes.push({
|
|
413
|
+
position: reader.fence.position,
|
|
414
|
+
message: "this code fence is never closed: it holds the rest of the page"
|
|
415
|
+
});
|
|
416
|
+
for (let container = reader.open.at(-1); container !== undefined; container = reader.open.at(-1)) {
|
|
417
|
+
notes.push({
|
|
418
|
+
position: container.directive.position,
|
|
419
|
+
message: `${containerName(container)} is never closed: add a line of ${container.colons} colons`
|
|
420
|
+
});
|
|
421
|
+
closeInnermost(reader);
|
|
422
|
+
}
|
|
423
|
+
flush(reader);
|
|
424
|
+
return reader.top;
|
|
425
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Marked, type MarkedExtension, type Token, type Tokens } from "marked";
|
|
2
|
+
import { type PageValue } from "../docPages.ts";
|
|
3
|
+
/** A page's front matter and the Markdown after it. */
|
|
4
|
+
export type FrontMatter = {
|
|
5
|
+
/** The Markdown after the front matter. */
|
|
6
|
+
readonly body: string;
|
|
7
|
+
/** The file's line the body starts on, from 1. */
|
|
8
|
+
readonly bodyLine: number;
|
|
9
|
+
/** Its `title`, when it has one. */
|
|
10
|
+
readonly title: string | undefined;
|
|
11
|
+
/** Its `order`, when it has a number. */
|
|
12
|
+
readonly order: number | undefined;
|
|
13
|
+
/** Its `description`, when it has one. */
|
|
14
|
+
readonly description: string | undefined;
|
|
15
|
+
/** What in it cannot be used, each with its line. */
|
|
16
|
+
readonly notes: readonly {
|
|
17
|
+
readonly line: number;
|
|
18
|
+
readonly message: string;
|
|
19
|
+
}[];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* A page's text split at its front matter: `key: value` lines between two `---` lines, the file's very first line
|
|
23
|
+
* the opening one.
|
|
24
|
+
*
|
|
25
|
+
* @remarks
|
|
26
|
+
* Only three plain keys, so no YAML parser joins the core's dependencies; a key it does not know is reported, since a
|
|
27
|
+
* typo would otherwise leave a page silently out of its place.
|
|
28
|
+
*
|
|
29
|
+
* @param text - the file's text.
|
|
30
|
+
*/
|
|
31
|
+
export declare const frontMatterOf: (text: string) => FrontMatter;
|
|
32
|
+
/** The token a value in double braces is read as. */
|
|
33
|
+
export type ValueToken = Tokens.Generic & {
|
|
34
|
+
/** A value. */
|
|
35
|
+
readonly type: "value";
|
|
36
|
+
/** The name it is written with (`components`). */
|
|
37
|
+
readonly name: string;
|
|
38
|
+
/** The text the HTML shows: the build-time value of `version`; otherwise the value as written. */
|
|
39
|
+
text: string;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Whether a token is a value.
|
|
43
|
+
*
|
|
44
|
+
* @param token - the token.
|
|
45
|
+
*/
|
|
46
|
+
export declare const isValueToken: (token: Token) => token is ValueToken;
|
|
47
|
+
/**
|
|
48
|
+
* Whether a name is one of the values a page can name.
|
|
49
|
+
*
|
|
50
|
+
* @param name - the name.
|
|
51
|
+
*/
|
|
52
|
+
export declare const isPageValue: (name: string) => name is PageValue;
|
|
53
|
+
/**
|
|
54
|
+
* The inline syntax of a page's values: read as a token, drawn as its build-time text (`version`) or as the mark the
|
|
55
|
+
* shell fills; a name the page cannot use stays as written, and the page's checks report it.
|
|
56
|
+
*/
|
|
57
|
+
export declare const VALUES_EXTENSION: MarkedExtension;
|
|
58
|
+
/** A reader of a page's tokens: nothing rendered. */
|
|
59
|
+
export declare const LEXER: Marked<string, string>;
|
|
60
|
+
/** The first token that is not blank space. */
|
|
61
|
+
export declare const firstToken: (tokens: readonly Token[]) => Token | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* A page's title: its front matter's, else its opening `#` heading, else its file's name.
|
|
64
|
+
*
|
|
65
|
+
* @param file - the page's file.
|
|
66
|
+
* @param frontMatter - its front matter.
|
|
67
|
+
*/
|
|
68
|
+
export declare const titleOf: (file: string, frontMatter: FrontMatter) => string;
|
|
69
|
+
/**
|
|
70
|
+
* The text of a page's opening `#` heading; none when it opens with something else.
|
|
71
|
+
*
|
|
72
|
+
* @param tokens - the page's tokens.
|
|
73
|
+
*/
|
|
74
|
+
export declare const openingHeading: (tokens: readonly Token[]) => string | undefined;
|
|
75
|
+
/** The tokens without the page's opening `#` title: the page's header shows the title. */
|
|
76
|
+
export declare const withoutTitle: (tokens: readonly Token[]) => readonly Token[];
|