forgebook 0.1.7 → 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 +906 -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 +145 -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 -16
- 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 +24 -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 +88 -24
- 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 +128 -29
- 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 +57 -21
- package/dist/src/catalogue.js +34 -15
- package/dist/src/codeLiteral.d.ts +41 -0
- package/dist/src/codeLiteral.js +51 -0
- package/dist/src/componentDocs.d.ts +86 -1
- package/dist/src/componentDocs.js +33 -3
- package/dist/src/controlKeys.d.ts +0 -1
- package/dist/src/controlKeys.js +2 -2
- 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 +12 -4
- package/dist/src/shell/ApiReference.js +74 -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 +107 -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 +9 -0
- package/dist/src/shell/LogicMark.js +5 -0
- 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 +292 -84
- 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 +10 -2
- package/dist/src/shell/SidebarEntries.js +3 -3
- 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 +25 -0
- package/dist/src/shell/SignatureReference.js +25 -0
- package/dist/src/shell/Stage.d.ts +9 -4
- package/dist/src/shell/Stage.js +121 -60
- 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 +9 -3
- package/dist/src/shell/Toolbar.js +12 -7
- 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 +3 -3
- package/dist/src/shell/compareVariants.js +6 -5
- 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 +15 -4
- package/dist/src/shell/dockTabs.js +69 -26
- 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 +4 -1
- package/dist/src/shell/icons.js +4 -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 +24 -0
- package/dist/src/shell/logicView.js +39 -0
- 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 +310 -136
- 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 +62 -80
- package/dist/src/shell/strings.js +60 -79
- 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 +35 -0
- package/dist/src/shell/useShownView.js +36 -0
- 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 +88 -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 +88 -25
- package/dist/src/storyTree.js +219 -126
- 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 +281 -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 +131 -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 +330 -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 +24 -0
- package/dist/src/vite/heightsRoute.js +42 -0
- 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 +20 -19
- package/dist/src/vite/indexStoryFile.js +172 -201
- 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 +66 -3
- 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/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/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/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/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/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,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What every docs page and the written home go through before their blocks: the front matter, the Markdown reader with
|
|
3
|
+
* the page's own inline syntax (a value in double braces, `{{components}}`), and the page's title.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* A value is a token of its own, read by the same lexer as the rest of the text, so it is never read inside code: a
|
|
7
|
+
* fence or a code span shows `{{title}}` as written, which is how a page documents the syntax itself. Pure.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import { basename } from "node:path";
|
|
12
|
+
import { Marked } from "marked";
|
|
13
|
+
import { PAGE_VALUES, valueMark } from "../docPages.js";
|
|
14
|
+
import { storyName } from "../storyTree.js";
|
|
15
|
+
import { escapeHtml } from "./highlightCode.js";
|
|
16
|
+
/** The line a front matter starts and ends with. */
|
|
17
|
+
const FENCE = "---";
|
|
18
|
+
/** The keys a front matter can hold. */
|
|
19
|
+
const FRONT_MATTER_KEYS = ["title", "order", "description"];
|
|
20
|
+
/** A value without its surrounding quotes. */
|
|
21
|
+
const unquoted = (value) => {
|
|
22
|
+
const first = value.at(0);
|
|
23
|
+
return value.length > 1 && (first === '"' || first === "'") && value.endsWith(first)
|
|
24
|
+
? value.slice(1, -1)
|
|
25
|
+
: value;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* A page's text split at its front matter: `key: value` lines between two `---` lines, the file's very first line
|
|
29
|
+
* the opening one.
|
|
30
|
+
*
|
|
31
|
+
* @remarks
|
|
32
|
+
* Only three plain keys, so no YAML parser joins the core's dependencies; a key it does not know is reported, since a
|
|
33
|
+
* typo would otherwise leave a page silently out of its place.
|
|
34
|
+
*
|
|
35
|
+
* @param text - the file's text.
|
|
36
|
+
*/
|
|
37
|
+
export const frontMatterOf = (text) => {
|
|
38
|
+
const lines = text.replace(/^/, "").split(/\r?\n/);
|
|
39
|
+
const none = { title: undefined, order: undefined, description: undefined, bodyLine: 1 };
|
|
40
|
+
if (lines[0]?.trim() !== FENCE)
|
|
41
|
+
return { ...none, body: lines.join("\n"), notes: [] };
|
|
42
|
+
const end = lines.findIndex((line, index) => index > 0 && line.trim() === FENCE);
|
|
43
|
+
if (end === -1)
|
|
44
|
+
return { ...none, body: lines.join("\n"), notes: [{ line: 1, message: "its front matter never ends" }] };
|
|
45
|
+
const notes = [];
|
|
46
|
+
const fields = new Map();
|
|
47
|
+
lines.slice(1, end).forEach((line, index) => {
|
|
48
|
+
if (line.trim() === "" || line.trimStart().startsWith("#"))
|
|
49
|
+
return;
|
|
50
|
+
const colon = line.indexOf(":");
|
|
51
|
+
const key = line.slice(0, colon).trim();
|
|
52
|
+
if (colon === -1 || !FRONT_MATTER_KEYS.includes(key)) {
|
|
53
|
+
notes.push({
|
|
54
|
+
line: index + 2,
|
|
55
|
+
message: `its front matter has a line it does not read: "${line.trim()}"`
|
|
56
|
+
});
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
fields.set(key, { value: unquoted(line.slice(colon + 1).trim()), line: index + 2 });
|
|
60
|
+
});
|
|
61
|
+
const orderField = fields.get("order");
|
|
62
|
+
const order = orderField === undefined || orderField.value === "" ? undefined : Number(orderField.value);
|
|
63
|
+
if (orderField !== undefined && order !== undefined && !Number.isFinite(order))
|
|
64
|
+
notes.push({ line: orderField.line, message: `its order "${orderField.value}" is not a number` });
|
|
65
|
+
return {
|
|
66
|
+
body: lines.slice(end + 1).join("\n"),
|
|
67
|
+
bodyLine: end + 2,
|
|
68
|
+
title: fields.get("title")?.value || undefined,
|
|
69
|
+
order: order !== undefined && Number.isFinite(order) ? order : undefined,
|
|
70
|
+
description: fields.get("description")?.value || undefined,
|
|
71
|
+
notes
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Whether a token is a value.
|
|
76
|
+
*
|
|
77
|
+
* @param token - the token.
|
|
78
|
+
*/
|
|
79
|
+
export const isValueToken = (token) => token.type === "value" && typeof token["name"] === "string" && typeof token["text"] === "string";
|
|
80
|
+
/**
|
|
81
|
+
* Whether a name is one of the values a page can name.
|
|
82
|
+
*
|
|
83
|
+
* @param name - the name.
|
|
84
|
+
*/
|
|
85
|
+
export const isPageValue = (name) => PAGE_VALUES.some((value) => value === name);
|
|
86
|
+
/** A value in double braces: `{{components}}`, spaces inside allowed. */
|
|
87
|
+
const VALUE = /^\{\{\s*([A-Za-z][\w-]*)\s*\}\}/;
|
|
88
|
+
/**
|
|
89
|
+
* The inline syntax of a page's values: read as a token, drawn as its build-time text (`version`) or as the mark the
|
|
90
|
+
* shell fills; a name the page cannot use stays as written, and the page's checks report it.
|
|
91
|
+
*/
|
|
92
|
+
export const VALUES_EXTENSION = {
|
|
93
|
+
extensions: [
|
|
94
|
+
{
|
|
95
|
+
name: "value",
|
|
96
|
+
level: "inline",
|
|
97
|
+
start: (source) => {
|
|
98
|
+
const at = source.indexOf("{{");
|
|
99
|
+
return at === -1 ? undefined : at;
|
|
100
|
+
},
|
|
101
|
+
tokenizer: (source) => {
|
|
102
|
+
const match = VALUE.exec(source);
|
|
103
|
+
return match?.[1] === undefined
|
|
104
|
+
? undefined
|
|
105
|
+
: { type: "value", raw: match[0], name: match[1], text: match[0] };
|
|
106
|
+
},
|
|
107
|
+
renderer: (token) => {
|
|
108
|
+
if (!isValueToken(token) || !isPageValue(token.name))
|
|
109
|
+
return escapeHtml(token.raw);
|
|
110
|
+
return token.name === "version" ? escapeHtml(token.text) : valueMark(token.name);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
};
|
|
115
|
+
/** A reader of a page's tokens: nothing rendered. */
|
|
116
|
+
export const LEXER = new Marked({ async: false, gfm: true }, VALUES_EXTENSION);
|
|
117
|
+
/** The first token that is not blank space. */
|
|
118
|
+
export const firstToken = (tokens) => tokens.find((token) => token.type !== "space");
|
|
119
|
+
/** A file name as a page's title: `getting-started.md` → "Getting started". */
|
|
120
|
+
const titleFromFile = (file) => storyName(basename(file, ".md").replace(/[-_]+/g, " "));
|
|
121
|
+
/**
|
|
122
|
+
* A page's title: its front matter's, else its opening `#` heading, else its file's name.
|
|
123
|
+
*
|
|
124
|
+
* @param file - the page's file.
|
|
125
|
+
* @param frontMatter - its front matter.
|
|
126
|
+
*/
|
|
127
|
+
export const titleOf = (file, frontMatter) => {
|
|
128
|
+
if (frontMatter.title !== undefined)
|
|
129
|
+
return frontMatter.title;
|
|
130
|
+
const heading = openingHeading(LEXER.lexer(frontMatter.body));
|
|
131
|
+
return heading ?? titleFromFile(file);
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* The text of a page's opening `#` heading; none when it opens with something else.
|
|
135
|
+
*
|
|
136
|
+
* @param tokens - the page's tokens.
|
|
137
|
+
*/
|
|
138
|
+
export const openingHeading = (tokens) => {
|
|
139
|
+
const first = firstToken(tokens);
|
|
140
|
+
return first?.type === "heading" && first["depth"] === 1 && typeof first["text"] === "string"
|
|
141
|
+
? first["text"]
|
|
142
|
+
: undefined;
|
|
143
|
+
};
|
|
144
|
+
/** The tokens without the page's opening `#` title: the page's header shows the title. */
|
|
145
|
+
export const withoutTitle = (tokens) => {
|
|
146
|
+
const first = firstToken(tokens);
|
|
147
|
+
return first?.type === "heading" && first["depth"] === 1
|
|
148
|
+
? tokens.filter((token) => token !== first)
|
|
149
|
+
: tokens;
|
|
150
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A docs page read into its blocks, before any HTML: each directive given its meaning, each fence its kind, each link
|
|
3
|
+
* and image checked and addressed, and everything wrong noted with its line and column.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* One reading serves both the index (what the sidebar and the checks need, nothing rendered) and the page itself
|
|
7
|
+
* (`docPageRender.ts` turns the nodes into HTML), so the two never disagree about what a page holds or gets wrong. The
|
|
8
|
+
* names a page can use are fixed here: asides by tone, `tabs`, `steps`, `cards`, `card` and `link-card`, and on the
|
|
9
|
+
* written home the pieces of today's home. A block that cannot be read keeps its content as text and is reported, so a
|
|
10
|
+
* mistake never blanks a page.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
import type { Token } from "marked";
|
|
15
|
+
import { type AsideTone, type HomePiece } from "../docPages.ts";
|
|
16
|
+
import { type BodySegment } from "./docDirectives.ts";
|
|
17
|
+
import { type PageReading } from "./docPageTokens.ts";
|
|
18
|
+
/** A piece of a page read, before its HTML. */
|
|
19
|
+
export type PageNode = {
|
|
20
|
+
readonly type: "tokens";
|
|
21
|
+
readonly tokens: readonly Token[];
|
|
22
|
+
} | {
|
|
23
|
+
readonly type: "aside";
|
|
24
|
+
readonly tone: AsideTone;
|
|
25
|
+
readonly title?: string;
|
|
26
|
+
readonly children: PageNode[];
|
|
27
|
+
} | {
|
|
28
|
+
readonly type: "tabs";
|
|
29
|
+
readonly sync?: string;
|
|
30
|
+
readonly tabs: readonly {
|
|
31
|
+
readonly label: string;
|
|
32
|
+
readonly children: PageNode[];
|
|
33
|
+
}[];
|
|
34
|
+
} | {
|
|
35
|
+
readonly type: "steps";
|
|
36
|
+
readonly steps: readonly (readonly Token[])[];
|
|
37
|
+
} | {
|
|
38
|
+
readonly type: "cards";
|
|
39
|
+
readonly children: PageNode[];
|
|
40
|
+
} | {
|
|
41
|
+
readonly type: "card";
|
|
42
|
+
readonly title: string;
|
|
43
|
+
readonly children: PageNode[];
|
|
44
|
+
} | {
|
|
45
|
+
readonly type: "link-card";
|
|
46
|
+
readonly title: string;
|
|
47
|
+
readonly href: string;
|
|
48
|
+
readonly description?: string;
|
|
49
|
+
} | {
|
|
50
|
+
readonly type: "home";
|
|
51
|
+
readonly piece: HomePiece;
|
|
52
|
+
readonly label?: string;
|
|
53
|
+
readonly source?: string;
|
|
54
|
+
} | {
|
|
55
|
+
readonly type: "problem";
|
|
56
|
+
readonly message: string;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* A page's segments read into its nodes.
|
|
60
|
+
*
|
|
61
|
+
* @param segments - the page's segments.
|
|
62
|
+
* @param reading - the reading.
|
|
63
|
+
*/
|
|
64
|
+
export declare const pageNodes: (segments: readonly BodySegment[], reading: PageReading) => PageNode[];
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
import { ASIDE_TONES, HOME_PIECES } from "../docPages.js";
|
|
2
|
+
import { noteText } from "./docDirectives.js";
|
|
3
|
+
import { isPageValue } from "./docMarkdown.js";
|
|
4
|
+
import { isPageLink, linkedSlug, pageAddress } from "./docPageLinks.js";
|
|
5
|
+
import { isOrderedList, lexed, positionsOf, readTokens } from "./docPageTokens.js";
|
|
6
|
+
/** The tone each GitHub alert takes: its warning is a caution, its caution a danger, as their colours say. */
|
|
7
|
+
const ALERT_TONES = {
|
|
8
|
+
NOTE: "note",
|
|
9
|
+
TIP: "tip",
|
|
10
|
+
IMPORTANT: "important",
|
|
11
|
+
WARNING: "caution",
|
|
12
|
+
CAUTION: "danger"
|
|
13
|
+
};
|
|
14
|
+
/** The names of the blocks a page can write, for the note about one it cannot. */
|
|
15
|
+
const KNOWN_BLOCKS = [...ASIDE_TONES, "tabs", "tab", "steps", "cards", "card"].map((name) => `:::${name}`);
|
|
16
|
+
/** The leaf blocks a page can write, for the same note. */
|
|
17
|
+
const KNOWN_LEAVES = ["link-card", ...HOME_PIECES].map((name) => `::${name}`);
|
|
18
|
+
/** The pieces of the home that take a heading of their own. */
|
|
19
|
+
const LABELLED_PIECES = ["recent", "families", "pages"];
|
|
20
|
+
/** The addresses a link card may open: another site, or an address of the catalogue; never `//host` or `/\host`, another site in disguise. */
|
|
21
|
+
const CARD_ADDRESS = /^(https?:|mailto:|\?|#|\/(?![/\\]))/i;
|
|
22
|
+
/** The asides other tools name otherwise, by those names. */
|
|
23
|
+
const OTHER_NAMES = {
|
|
24
|
+
warning: "caution",
|
|
25
|
+
info: "note",
|
|
26
|
+
error: "danger",
|
|
27
|
+
success: "tip"
|
|
28
|
+
};
|
|
29
|
+
/** A hint at the aside another tool's name means, for the note about it; empty for any other name. */
|
|
30
|
+
const similarTo = (name) => {
|
|
31
|
+
const tone = OTHER_NAMES[name];
|
|
32
|
+
return tone === undefined ? "" : ` (for this aside, write \`:::${tone}\`)`;
|
|
33
|
+
};
|
|
34
|
+
/** Whether a tone is an aside's. */
|
|
35
|
+
const isTone = (name) => ASIDE_TONES.some((tone) => tone === name);
|
|
36
|
+
/** Whether a name is a piece of the home. */
|
|
37
|
+
const isHomePiece = (name) => HOME_PIECES.some((piece) => piece === name);
|
|
38
|
+
/** Whether a segment is Markdown with nothing in it. */
|
|
39
|
+
const isBlank = (segment) => segment.type === "markdown" && segment.lines.every((line) => line.text.trim() === "");
|
|
40
|
+
/** Where a segment starts. */
|
|
41
|
+
const segmentPosition = (segment) => {
|
|
42
|
+
if (segment.type === "container" || segment.type === "leaf")
|
|
43
|
+
return segment.directive.position;
|
|
44
|
+
if (segment.type === "alert")
|
|
45
|
+
return segment.position;
|
|
46
|
+
const line = segment.lines.find((each) => each.text.trim() !== "") ?? segment.lines[0];
|
|
47
|
+
return line === undefined ? { line: 1, column: 1 } : { line: line.line, column: line.column };
|
|
48
|
+
};
|
|
49
|
+
/** Notes a directive's attributes beyond those its block takes. */
|
|
50
|
+
const checkAttributes = (directive, allowed, reading) => {
|
|
51
|
+
for (const [key, { position }] of directive.attributes) {
|
|
52
|
+
if (allowed.includes(key))
|
|
53
|
+
continue;
|
|
54
|
+
const takes = allowed.length === 0 ? "it takes none" : `it takes ${allowed.map((each) => `"${each}"`).join(", ")}`;
|
|
55
|
+
reading.notes.push({ position, message: `\`${directive.name}\` has no attribute "${key}": ${takes}` });
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
/** A directive's attribute's value; none when it does not have it. */
|
|
59
|
+
const attributeOf = (directive, key) => directive.attributes.get(key)?.value;
|
|
60
|
+
/**
|
|
61
|
+
* A directive's label as plain text: `{{version}}` written in, another value kept for the shell to fill, a name no
|
|
62
|
+
* page can use reported.
|
|
63
|
+
*/
|
|
64
|
+
const labelText = (directive, reading) => {
|
|
65
|
+
const { label, labelPosition } = directive;
|
|
66
|
+
return label === undefined ? undefined : valuesIn(label, labelPosition, reading);
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* A plain text of a block (its label, a card's description) with `{{version}}` written in, another value kept for the
|
|
70
|
+
* shell to fill, and a name no page can use reported.
|
|
71
|
+
*
|
|
72
|
+
* @param text - the text.
|
|
73
|
+
* @param start - where it starts, for the notes; none when unknown.
|
|
74
|
+
* @param reading - the reading.
|
|
75
|
+
*/
|
|
76
|
+
const valuesIn = (text, start, reading) => text.replace(/\{\{\s*([A-Za-z][\w-]*)\s*\}\}/g, (written, name, offset) => {
|
|
77
|
+
if (!isPageValue(name)) {
|
|
78
|
+
if (start !== undefined)
|
|
79
|
+
reading.notes.push({
|
|
80
|
+
position: { line: start.line, column: start.column + offset },
|
|
81
|
+
message: `\`${written}\` is not a value a page can show`
|
|
82
|
+
});
|
|
83
|
+
return written;
|
|
84
|
+
}
|
|
85
|
+
return name === "version" ? (reading.version() ?? "") : written;
|
|
86
|
+
});
|
|
87
|
+
/** A Markdown segment read. */
|
|
88
|
+
const markdownNode = (lines, reading) => {
|
|
89
|
+
const { text, tokens } = lexed(lines);
|
|
90
|
+
readTokens(tokens, text, 0, positionsOf(lines), reading);
|
|
91
|
+
return { type: "tokens", tokens };
|
|
92
|
+
};
|
|
93
|
+
/** The segments of a container read, blank Markdown left out. */
|
|
94
|
+
const nodesOf = (segments, reading) => segments.flatMap((segment) => (isBlank(segment) ? [] : segmentNodes(segment, reading)));
|
|
95
|
+
/** A `tabs` block read: its `:::tab` blocks, anything else reported. */
|
|
96
|
+
const tabsNode = (directive, children, reading) => {
|
|
97
|
+
checkAttributes(directive, ["syncKey"], reading);
|
|
98
|
+
const tabs = [];
|
|
99
|
+
for (const child of children) {
|
|
100
|
+
if (isBlank(child))
|
|
101
|
+
continue;
|
|
102
|
+
if (child.type !== "container" || child.directive.name !== "tab") {
|
|
103
|
+
reading.notes.push({
|
|
104
|
+
position: segmentPosition(child),
|
|
105
|
+
message: `only \`:::tab\` blocks go in \`tabs\` (line ${directive.position.line}): this is left out`
|
|
106
|
+
});
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
checkAttributes(child.directive, [], reading);
|
|
110
|
+
const label = labelText(child.directive, reading);
|
|
111
|
+
if (label === undefined || label.trim() === "")
|
|
112
|
+
reading.notes.push({
|
|
113
|
+
position: child.directive.position,
|
|
114
|
+
message: "a tab needs its label: `:::tab[npm]`"
|
|
115
|
+
});
|
|
116
|
+
tabs.push({
|
|
117
|
+
label: label?.trim() || String(tabs.length + 1),
|
|
118
|
+
children: nodesOf(child.children, reading)
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
if (tabs.length === 0)
|
|
122
|
+
reading.notes.push({ position: directive.position, message: "`tabs` holds no `:::tab`" });
|
|
123
|
+
const sync = attributeOf(directive, "syncKey");
|
|
124
|
+
return { type: "tabs", ...(sync === undefined || sync === "" ? {} : { sync }), tabs };
|
|
125
|
+
};
|
|
126
|
+
/** A `steps` block read: one ordered list, each item a step; anything else drawn as it is, and reported. */
|
|
127
|
+
const stepsNodes = (directive, children, reading) => {
|
|
128
|
+
checkAttributes(directive, [], reading);
|
|
129
|
+
const filled = children.filter((child) => !isBlank(child));
|
|
130
|
+
const only = filled[0];
|
|
131
|
+
if (filled.length === 1 && only?.type === "markdown") {
|
|
132
|
+
const { text, tokens } = lexed(only.lines);
|
|
133
|
+
const content = tokens.filter((token) => token.type !== "space");
|
|
134
|
+
const list = content[0];
|
|
135
|
+
if (content.length === 1 && isOrderedList(list)) {
|
|
136
|
+
const at = positionsOf(only.lines);
|
|
137
|
+
const listStart = Math.max(0, text.indexOf(list.raw));
|
|
138
|
+
let cursor = 0;
|
|
139
|
+
const steps = list.items.map((item) => {
|
|
140
|
+
const place = list.raw.indexOf(item.raw, cursor);
|
|
141
|
+
cursor = place === -1 ? cursor : place;
|
|
142
|
+
readTokens(item.tokens, item.raw, listStart + cursor, at, reading);
|
|
143
|
+
return item.tokens;
|
|
144
|
+
});
|
|
145
|
+
return [{ type: "steps", steps }];
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
reading.notes.push({
|
|
149
|
+
position: directive.position,
|
|
150
|
+
message: "`steps` holds one numbered list, each item a step: this one is drawn as it is"
|
|
151
|
+
});
|
|
152
|
+
return nodesOf(children, reading);
|
|
153
|
+
};
|
|
154
|
+
/** A `cards` block read: its cards, anything else reported and drawn as it is. */
|
|
155
|
+
const cardsNode = (directive, children, reading) => {
|
|
156
|
+
checkAttributes(directive, [], reading);
|
|
157
|
+
for (const child of children) {
|
|
158
|
+
if (isBlank(child))
|
|
159
|
+
continue;
|
|
160
|
+
const isCard = (child.type === "container" && child.directive.name === "card") ||
|
|
161
|
+
(child.type === "leaf" && child.directive.name === "link-card");
|
|
162
|
+
if (!isCard)
|
|
163
|
+
reading.notes.push({
|
|
164
|
+
position: segmentPosition(child),
|
|
165
|
+
message: "only `:::card` and `::link-card` blocks go in `cards`"
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
return { type: "cards", children: nodesOf(children, reading) };
|
|
169
|
+
};
|
|
170
|
+
/** A link card's address checked: another page by its file, an address of the catalogue, or another site. */
|
|
171
|
+
const cardAddress = (href, position, reading) => {
|
|
172
|
+
if (isPageLink(href)) {
|
|
173
|
+
const address = pageAddress(reading.file, href, reading.read);
|
|
174
|
+
if (address === undefined) {
|
|
175
|
+
reading.notes.push({ position, message: `the card links to "${href}", which is not there` });
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
const slug = linkedSlug(reading.file, href, reading.read);
|
|
179
|
+
if (slug !== undefined)
|
|
180
|
+
reading.links.push(slug);
|
|
181
|
+
return address;
|
|
182
|
+
}
|
|
183
|
+
if (CARD_ADDRESS.test(href))
|
|
184
|
+
return href;
|
|
185
|
+
reading.notes.push({
|
|
186
|
+
position,
|
|
187
|
+
message: `the card's "${href}" is no page or address: link a page's file, an address of the catalogue (?component=…) or a site`
|
|
188
|
+
});
|
|
189
|
+
return undefined;
|
|
190
|
+
};
|
|
191
|
+
/** A problem said in place, and noted. */
|
|
192
|
+
const problemAt = (position, message, reading) => {
|
|
193
|
+
const note = { position, message };
|
|
194
|
+
reading.notes.push(note);
|
|
195
|
+
return [{ type: "problem", message: noteText(note) }];
|
|
196
|
+
};
|
|
197
|
+
/** A link card read: its title, its address checked, its description. */
|
|
198
|
+
const linkCardNodes = (directive, reading) => {
|
|
199
|
+
const { position } = directive;
|
|
200
|
+
checkAttributes(directive, ["href", "description"], reading);
|
|
201
|
+
const title = labelText(directive, reading)?.trim() ?? "";
|
|
202
|
+
const written = attributeOf(directive, "href") ?? "";
|
|
203
|
+
if (title === "" || written === "")
|
|
204
|
+
return problemAt(position, 'a link card needs a title and an address: `::link-card[Theming]{href="./theming.md"}`', reading);
|
|
205
|
+
const href = cardAddress(written, directive.attributes.get("href")?.position ?? position, reading);
|
|
206
|
+
if (href === undefined)
|
|
207
|
+
return [];
|
|
208
|
+
const described = directive.attributes.get("description");
|
|
209
|
+
const description = described === undefined ? undefined : valuesIn(described.value, described.valuePosition, reading);
|
|
210
|
+
return [{ type: "link-card", title, href, ...(description === undefined ? {} : { description }) }];
|
|
211
|
+
};
|
|
212
|
+
/** A piece of the home read: drawn on the written home only, reported anywhere else. */
|
|
213
|
+
const homePieceNodes = (piece, directive, reading) => {
|
|
214
|
+
const { position } = directive;
|
|
215
|
+
if (!reading.isHome)
|
|
216
|
+
return problemAt(position, `\`::${piece}\` is drawn only on the catalogue's home`, reading);
|
|
217
|
+
checkAttributes(directive, piece === "recent" ? [] : ["source"], reading);
|
|
218
|
+
const isLabelled = LABELLED_PIECES.includes(piece);
|
|
219
|
+
const label = labelText(directive, reading);
|
|
220
|
+
if (label !== undefined && !isLabelled)
|
|
221
|
+
reading.notes.push({
|
|
222
|
+
position,
|
|
223
|
+
message: `\`::${piece}\` takes no label: each library has its own heading`
|
|
224
|
+
});
|
|
225
|
+
const source = piece === "recent" ? undefined : attributeOf(directive, "source");
|
|
226
|
+
if (source !== undefined)
|
|
227
|
+
reading.sources.push(source);
|
|
228
|
+
return [
|
|
229
|
+
{
|
|
230
|
+
type: "home",
|
|
231
|
+
piece,
|
|
232
|
+
...(label === undefined || !isLabelled ? {} : { label }),
|
|
233
|
+
...(source === undefined ? {} : { source })
|
|
234
|
+
}
|
|
235
|
+
];
|
|
236
|
+
};
|
|
237
|
+
/** A leaf directive read. */
|
|
238
|
+
const leafNodes = (directive, reading) => {
|
|
239
|
+
const { name, position } = directive;
|
|
240
|
+
if (name === "link-card")
|
|
241
|
+
return linkCardNodes(directive, reading);
|
|
242
|
+
if (isHomePiece(name))
|
|
243
|
+
return homePieceNodes(name, directive, reading);
|
|
244
|
+
if (isTone(name) || ["tabs", "tab", "steps", "cards", "card"].includes(name))
|
|
245
|
+
return problemAt(position, `\`::${name}\` is a block that holds others: write \`:::${name}\`, then a line of \`:::\``, reading);
|
|
246
|
+
reading.notes.push({
|
|
247
|
+
position,
|
|
248
|
+
message: `\`::${name}\` is not a block Forgebook knows: ${KNOWN_LEAVES.join(", ")}; or a container, ${KNOWN_BLOCKS.join(", ")}; it stays as text`
|
|
249
|
+
});
|
|
250
|
+
return [markdownNode([directive.line], reading)];
|
|
251
|
+
};
|
|
252
|
+
/** A container directive read. */
|
|
253
|
+
const containerNodes = (directive, children, reading) => {
|
|
254
|
+
const { name, position } = directive;
|
|
255
|
+
if (isTone(name)) {
|
|
256
|
+
checkAttributes(directive, [], reading);
|
|
257
|
+
const title = labelText(directive, reading)?.trim();
|
|
258
|
+
return [{ type: "aside", tone: name, ...(title ? { title } : {}), children: nodesOf(children, reading) }];
|
|
259
|
+
}
|
|
260
|
+
switch (name) {
|
|
261
|
+
case "tabs":
|
|
262
|
+
return [tabsNode(directive, children, reading)];
|
|
263
|
+
case "steps":
|
|
264
|
+
return stepsNodes(directive, children, reading);
|
|
265
|
+
case "cards":
|
|
266
|
+
return [cardsNode(directive, children, reading)];
|
|
267
|
+
case "card": {
|
|
268
|
+
checkAttributes(directive, [], reading);
|
|
269
|
+
const title = labelText(directive, reading)?.trim() ?? "";
|
|
270
|
+
if (title === "")
|
|
271
|
+
reading.notes.push({ position, message: "a card needs its title: `:::card[Install]`" });
|
|
272
|
+
return [{ type: "card", title, children: nodesOf(children, reading) }];
|
|
273
|
+
}
|
|
274
|
+
case "tab":
|
|
275
|
+
reading.notes.push({
|
|
276
|
+
position,
|
|
277
|
+
message: "`:::tab` goes inside `::::tabs`: its content is drawn as it is"
|
|
278
|
+
});
|
|
279
|
+
return nodesOf(children, reading);
|
|
280
|
+
default: {
|
|
281
|
+
const isLeaf = name === "link-card" || isHomePiece(name);
|
|
282
|
+
reading.notes.push({
|
|
283
|
+
position,
|
|
284
|
+
message: isLeaf
|
|
285
|
+
? `\`${name}\` stands alone: write \`::${name}\` on one line, with no closing line`
|
|
286
|
+
: `\`:::${name}\` is not a block Forgebook knows${similarTo(name)}: ${KNOWN_BLOCKS.join(", ")}; its content is drawn as it is`
|
|
287
|
+
});
|
|
288
|
+
return nodesOf(children, reading);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
/**
|
|
293
|
+
* A segment of a page read into its nodes.
|
|
294
|
+
*
|
|
295
|
+
* @param segment - the segment.
|
|
296
|
+
* @param reading - the reading.
|
|
297
|
+
*/
|
|
298
|
+
const segmentNodes = (segment, reading) => {
|
|
299
|
+
switch (segment.type) {
|
|
300
|
+
case "markdown":
|
|
301
|
+
return [markdownNode(segment.lines, reading)];
|
|
302
|
+
case "alert":
|
|
303
|
+
return [
|
|
304
|
+
{
|
|
305
|
+
type: "aside",
|
|
306
|
+
tone: ALERT_TONES[segment.kind] ?? "note",
|
|
307
|
+
children: nodesOf(segment.children, reading)
|
|
308
|
+
}
|
|
309
|
+
];
|
|
310
|
+
case "leaf":
|
|
311
|
+
return leafNodes(segment.directive, reading);
|
|
312
|
+
default:
|
|
313
|
+
return containerNodes(segment.directive, segment.children, reading);
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
/**
|
|
317
|
+
* A page's segments read into its nodes.
|
|
318
|
+
*
|
|
319
|
+
* @param segments - the page's segments.
|
|
320
|
+
* @param reading - the reading.
|
|
321
|
+
*/
|
|
322
|
+
export const pageNodes = (segments, reading) => nodesOf(segments, reading);
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/** Reads a linked page's text: none when it is not there. */
|
|
2
|
+
export type ReadPage = (file: string) => string | undefined;
|
|
3
|
+
/**
|
|
4
|
+
* A linked page's text from the disk.
|
|
5
|
+
*
|
|
6
|
+
* @param file - the file.
|
|
7
|
+
*/
|
|
8
|
+
export declare const readLinkedFile: ReadPage;
|
|
9
|
+
/**
|
|
10
|
+
* Whether an address is outside the page's folder: it has a scheme, or starts at the root or the page's own address.
|
|
11
|
+
*
|
|
12
|
+
* @param href - the address.
|
|
13
|
+
*/
|
|
14
|
+
export declare const isOutside: (href: string) => boolean;
|
|
15
|
+
/**
|
|
16
|
+
* The file an address relative to a page names, and its fragment.
|
|
17
|
+
*
|
|
18
|
+
* @param file - the page's file.
|
|
19
|
+
* @param href - the address.
|
|
20
|
+
*/
|
|
21
|
+
export declare const relativeTarget: (file: string, href: string) => {
|
|
22
|
+
readonly file: string;
|
|
23
|
+
readonly fragment: string | undefined;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* The folder of the package a file belongs to: the nearest with a `package.json`, or the file's own without one.
|
|
27
|
+
*
|
|
28
|
+
* @param file - the file.
|
|
29
|
+
*/
|
|
30
|
+
export declare const packageFolderOf: (file: string) => string;
|
|
31
|
+
/**
|
|
32
|
+
* Whether a page may show a file as an image: a file of its own package. A build copies an image into the catalogue
|
|
33
|
+
* whatever it is, so a path that climbs out of the package would publish a file a reviewer took for a picture's name.
|
|
34
|
+
*
|
|
35
|
+
* @param file - the page's file.
|
|
36
|
+
* @param image - the image's file.
|
|
37
|
+
*/
|
|
38
|
+
export declare const isOwnImage: (file: string, image: string) => boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Whether a link names another page by its file.
|
|
41
|
+
*
|
|
42
|
+
* @param href - the link's address.
|
|
43
|
+
*/
|
|
44
|
+
export declare const isPageLink: (href: string) => boolean;
|
|
45
|
+
/**
|
|
46
|
+
* The slug of the page a link names; none when its file is not there.
|
|
47
|
+
*
|
|
48
|
+
* @param file - the linking page's file.
|
|
49
|
+
* @param href - the link's address.
|
|
50
|
+
* @param read - reads a linked page's text.
|
|
51
|
+
*/
|
|
52
|
+
export declare const linkedSlug: (file: string, href: string, read: ReadPage) => string | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* The address the shell fills for a link to another page, by its slug; none when the file is not there.
|
|
55
|
+
*
|
|
56
|
+
* @param file - the linking page's file.
|
|
57
|
+
* @param href - the link's address.
|
|
58
|
+
* @param read - reads a linked page's text.
|
|
59
|
+
*/
|
|
60
|
+
export declare const pageAddress: (file: string, href: string, read: ReadPage) => string | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* The address an image's file is written as, by its place in the page's images.
|
|
63
|
+
*
|
|
64
|
+
* @param place - its place.
|
|
65
|
+
*/
|
|
66
|
+
export declare const assetAddress: (place: number) => string;
|
|
67
|
+
/**
|
|
68
|
+
* The version of the package a file belongs to, from its `package.json`; none without one.
|
|
69
|
+
*
|
|
70
|
+
* @param file - the file.
|
|
71
|
+
*/
|
|
72
|
+
export declare const packageVersionOf: (file: string) => string | undefined;
|