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,134 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useMemo, useState } from "react";
|
|
3
|
+
import { deviceDefaultOf, shownDevice } from "../deviceView.js";
|
|
4
|
+
import { useCatalogue } from "./catalogueContext.js";
|
|
5
|
+
import { useSystemDark } from "./useSystemDark.js";
|
|
6
|
+
/** The chunk once it loaded, for every later use; none before. */
|
|
7
|
+
let loadedParts;
|
|
8
|
+
/** The chunk while it loads, so two frames asking at once fetch it once. */
|
|
9
|
+
let loadingParts;
|
|
10
|
+
/**
|
|
11
|
+
* The device's parts, loaded the first time they are needed.
|
|
12
|
+
*
|
|
13
|
+
* @param isNeeded - whether a device is to be drawn.
|
|
14
|
+
* @returns the parts once loaded; none before, or when the chunk could not be fetched (the story is then shown
|
|
15
|
+
* without its device, never broken).
|
|
16
|
+
*/
|
|
17
|
+
export const useDeviceParts = (isNeeded) => {
|
|
18
|
+
const [parts, setParts] = useState(loadedParts);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
if (!isNeeded || parts !== undefined)
|
|
21
|
+
return;
|
|
22
|
+
let isCurrent = true;
|
|
23
|
+
loadingParts ??= import("./device/deviceParts.js");
|
|
24
|
+
loadingParts.then((loaded) => {
|
|
25
|
+
loadedParts = loaded;
|
|
26
|
+
if (isCurrent)
|
|
27
|
+
setParts(loaded);
|
|
28
|
+
}, () => {
|
|
29
|
+
// a failed fetch is forgotten so a later frame asks again; a browser may keep the failure until a reload,
|
|
30
|
+
// and the story is shown without its device meanwhile
|
|
31
|
+
loadingParts = undefined;
|
|
32
|
+
});
|
|
33
|
+
return () => {
|
|
34
|
+
isCurrent = false;
|
|
35
|
+
};
|
|
36
|
+
}, [isNeeded, parts]);
|
|
37
|
+
return parts;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* The device a story is drawn in, once its parts are there.
|
|
41
|
+
*
|
|
42
|
+
* @param shown - the device shown; none for no device.
|
|
43
|
+
*/
|
|
44
|
+
export const useFramedDevice = (shown) => {
|
|
45
|
+
const parts = useDeviceParts(shown !== undefined);
|
|
46
|
+
const model = shown?.model;
|
|
47
|
+
const orientation = shown?.orientation;
|
|
48
|
+
const isEdgeToEdge = shown?.isEdgeToEdge === true;
|
|
49
|
+
return useMemo(() => parts === undefined || model === undefined || orientation === undefined
|
|
50
|
+
? undefined
|
|
51
|
+
: {
|
|
52
|
+
parts,
|
|
53
|
+
shown: { model, orientation },
|
|
54
|
+
drawing: parts.drawingOf({ model, orientation }),
|
|
55
|
+
area: parts.areaOf({ model, orientation }, isEdgeToEdge)
|
|
56
|
+
}, [parts, model, orientation, isEdgeToEdge]);
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* The device a story on the stage is drawn in: the view's choice over the story's and the catalogue's defaults, and
|
|
60
|
+
* once its parts are there, its screen's width told as the story's width.
|
|
61
|
+
*
|
|
62
|
+
* @param view - the view's device.
|
|
63
|
+
* @param storyDevice - the story's own setting, over the catalogue's.
|
|
64
|
+
* @param onShownWidthChange - told the width the story really has.
|
|
65
|
+
*/
|
|
66
|
+
export const useStageDevice = (view, storyDevice, onShownWidthChange) => {
|
|
67
|
+
const shown = shownDevice(view, deviceDefaultOf(useCatalogue().device, storyDevice));
|
|
68
|
+
const framed = useFramedDevice(shown);
|
|
69
|
+
const screenWidth = framed?.area.width;
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
if (screenWidth !== undefined)
|
|
72
|
+
onShownWidthChange(screenWidth);
|
|
73
|
+
}, [screenWidth, onShownWidthChange]);
|
|
74
|
+
return { shown, framed };
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Whether a story's frame waits for its device's parts before it loads: a story drawn edge to edge is told its safe
|
|
78
|
+
* areas in its address, which only the parts know, and loading it first would load it twice.
|
|
79
|
+
*
|
|
80
|
+
* @param shown - the device shown; none for none.
|
|
81
|
+
* @param framed - the device once its parts are there.
|
|
82
|
+
*/
|
|
83
|
+
export const isWaitingForDevice = (shown, framed) => shown?.isEdgeToEdge === true && framed === undefined;
|
|
84
|
+
/**
|
|
85
|
+
* A story frame's address in its device: with the safe areas a story drawn edge to edge is told; as it is otherwise.
|
|
86
|
+
*
|
|
87
|
+
* @param address - the frame's address.
|
|
88
|
+
* @param framed - the device; none for none.
|
|
89
|
+
*/
|
|
90
|
+
export const deviceAddress = (address, framed) => framed === undefined ? address : framed.parts.addressIn(address, framed.area);
|
|
91
|
+
/**
|
|
92
|
+
* The frame's place, with the device around it when there is one: the parts draw it, this place stays.
|
|
93
|
+
*
|
|
94
|
+
* @param props - the device, the story's scheme and page colour, and the frame.
|
|
95
|
+
*/
|
|
96
|
+
export const DeviceSlot = ({ framed, scheme, background, children }) => {
|
|
97
|
+
const framing = framed?.parts.deviceFraming(framed, scheme, background);
|
|
98
|
+
return (_jsxs("div", { className: "forgebook-device", ...framing?.root, children: [framing?.under, _jsx("div", { className: "forgebook-device__screen", style: framing?.screen, children: children }), framing?.over] }));
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* The scheme a story is drawn in, for the status bar's ink: its colour scheme switch's, the system's for `system`.
|
|
102
|
+
*
|
|
103
|
+
* @param scheme - the view's scheme (`schemeOf`).
|
|
104
|
+
* @param isSystemDark - whether the system is dark.
|
|
105
|
+
*/
|
|
106
|
+
export const inkScheme = (scheme, isSystemDark) => {
|
|
107
|
+
if (scheme !== "system")
|
|
108
|
+
return scheme;
|
|
109
|
+
return isSystemDark ? "dark" : "light";
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* The scheme a story is drawn in, for the status bar's ink, following the system's for `system`.
|
|
113
|
+
*
|
|
114
|
+
* @param scheme - the view's scheme (`schemeOf`).
|
|
115
|
+
*/
|
|
116
|
+
export const useInkScheme = (scheme) => inkScheme(scheme, useSystemDark());
|
|
117
|
+
/**
|
|
118
|
+
* The room's sizing with a device: the device's size, no handles (the device sets the width and the height), no
|
|
119
|
+
* surface of the room's own; the stage's own sizing without one.
|
|
120
|
+
*
|
|
121
|
+
* @param framed - the device; none keeps the stage's own.
|
|
122
|
+
* @param own - the stage's own sizing.
|
|
123
|
+
*/
|
|
124
|
+
export const roomSizing = (framed, own) => framed === undefined
|
|
125
|
+
? own
|
|
126
|
+
: {
|
|
127
|
+
width: framed.drawing.width,
|
|
128
|
+
onWidthChange: undefined,
|
|
129
|
+
onShownWidthChange: undefined,
|
|
130
|
+
background: undefined,
|
|
131
|
+
height: "auto",
|
|
132
|
+
onHeightChange: undefined,
|
|
133
|
+
isDevice: true
|
|
134
|
+
};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The blocks of a docs page: its text, its code, its stories in their frames and its components' API tables.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Each kind of block is one case of `DocBlockView`, and the plugin's compiler gives each its fence or directive, so a
|
|
6
|
+
* new kind (a table of the catalogue's tokens, a comparison of a story's themes) is one type, one name and one case,
|
|
7
|
+
* and needs no page of its own. A plugin's block is one of those cases, its view loaded as the page draws it. A
|
|
8
|
+
* container draws its blocks through the same view, so a story may sit in an aside, a tab or a step. A story's block is
|
|
9
|
+
* an example of a component's page, without its heading: the page's own text says
|
|
10
|
+
* what it shows. It loads as it comes near, through the same queue as a component's examples, and its code and a
|
|
11
|
+
* table's docs wait for that too; each block keeps its place in the page's reading order, however deep it sits. The
|
|
12
|
+
* written home's pieces (`::families`) draw today's home, from the same components.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
import type { StorySource } from "@forgebook/story-format/source";
|
|
17
|
+
import { type ReactNode } from "react";
|
|
18
|
+
import { type DocBlock, type PageValues } from "../docPages.ts";
|
|
19
|
+
import { type StoryTree, type TreeSource } from "../storyTree.ts";
|
|
20
|
+
import type { ViewSwitch } from "../switches.ts";
|
|
21
|
+
import type { ViewState } from "../viewState.ts";
|
|
22
|
+
import { type ExampleContext } from "./Example.tsx";
|
|
23
|
+
import { type HomePiecesContext } from "./HomePieces.tsx";
|
|
24
|
+
import type { ShellPlugin } from "./pluginTabs.tsx";
|
|
25
|
+
import type { PageFrames } from "./usePageFrames.ts";
|
|
26
|
+
/** What every block of a page shares. */
|
|
27
|
+
export type DocBlocksContext = {
|
|
28
|
+
/** The tree, where the blocks find what they name. */
|
|
29
|
+
readonly tree: StoryTree;
|
|
30
|
+
/** The sources, with their loaders. */
|
|
31
|
+
readonly sources: readonly StorySource[];
|
|
32
|
+
/** The page's frames. */
|
|
33
|
+
readonly frames: PageFrames;
|
|
34
|
+
/** The view. */
|
|
35
|
+
readonly view: ViewState;
|
|
36
|
+
/** The frame page's address. */
|
|
37
|
+
readonly frameUrl: string;
|
|
38
|
+
/** The plugins, whose blocks the page may hold. */
|
|
39
|
+
readonly plugins: readonly ShellPlugin[];
|
|
40
|
+
/** The texts the catalogue replaces, by name. */
|
|
41
|
+
readonly strings: Readonly<Record<string, string>>;
|
|
42
|
+
/** The catalogue's switches, for the frames' addresses. */
|
|
43
|
+
readonly switches: readonly ViewSwitch[];
|
|
44
|
+
/** The addresses of the page's images. */
|
|
45
|
+
readonly assets: readonly string[];
|
|
46
|
+
/** The address of a page of the same source, by its slug and anchor. */
|
|
47
|
+
readonly pageHrefOf: (slug: string, anchor: string | undefined) => string;
|
|
48
|
+
/** How a story's links open it. */
|
|
49
|
+
readonly stories: Pick<ExampleContext, "hrefOf" | "onOpen">;
|
|
50
|
+
/** Called when the user turns a story's finger on or off. */
|
|
51
|
+
readonly onTouchChange: (storyId: string, isTouch: boolean) => void;
|
|
52
|
+
/** A story's measured height, for its box while it loads. */
|
|
53
|
+
readonly heightOf: (storyId: string) => number | undefined;
|
|
54
|
+
/** The colour a source's stories' page has in the view, which each box waits on. */
|
|
55
|
+
readonly backgroundOf: (source: TreeSource) => string | undefined;
|
|
56
|
+
/** The values the text names (`{{components}}`). */
|
|
57
|
+
readonly values: PageValues;
|
|
58
|
+
/** Opens an address of the catalogue a link card names; `false` when it names no page of the catalogue. */
|
|
59
|
+
readonly onOpenAddress: (href: string) => boolean;
|
|
60
|
+
/** What the written home's pieces read; none on a docs page, where they are not drawn. */
|
|
61
|
+
readonly home?: HomePiecesContext;
|
|
62
|
+
/** Each story's and table's place in the page's reading order, for the queue. */
|
|
63
|
+
readonly places: ReadonlyMap<DocBlock, number>;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* The values a page's text can name, as the catalogue has them now.
|
|
67
|
+
*
|
|
68
|
+
* @param title - the catalogue's name.
|
|
69
|
+
* @param tree - its tree.
|
|
70
|
+
*/
|
|
71
|
+
export declare const catalogueValues: (title: string, tree: StoryTree) => PageValues;
|
|
72
|
+
/**
|
|
73
|
+
* Every block of a page in its reading order, a container before what it holds.
|
|
74
|
+
*
|
|
75
|
+
* @param blocks - the page's blocks.
|
|
76
|
+
*/
|
|
77
|
+
export declare const readingOrder: (blocks: readonly DocBlock[]) => DocBlock[];
|
|
78
|
+
/**
|
|
79
|
+
* Each block's place in a page's reading order.
|
|
80
|
+
*
|
|
81
|
+
* @param blocks - the page's blocks.
|
|
82
|
+
*/
|
|
83
|
+
export declare const blockPlaces: (blocks: readonly DocBlock[]) => ReadonlyMap<DocBlock, number>;
|
|
84
|
+
/**
|
|
85
|
+
* What a page's blocks load as they come near, in the page's order: a story by its own id, as its frame reports, though
|
|
86
|
+
* the page may name it by a former one (`formerStoryId`).
|
|
87
|
+
*
|
|
88
|
+
* @param blocks - the page's blocks.
|
|
89
|
+
* @param tree - the tree, which finds a story by either id.
|
|
90
|
+
*/
|
|
91
|
+
export declare const queuedBlocks: (blocks: readonly DocBlock[], tree: StoryTree) => string[];
|
|
92
|
+
/**
|
|
93
|
+
* A page's blocks, in the order of its file.
|
|
94
|
+
*
|
|
95
|
+
* @param props - the blocks and what they share.
|
|
96
|
+
*/
|
|
97
|
+
export declare const DocBlocks: ({ blocks, context }: {
|
|
98
|
+
readonly blocks: readonly DocBlock[];
|
|
99
|
+
readonly context: DocBlocksContext;
|
|
100
|
+
}) => ReactNode;
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect } from "react";
|
|
3
|
+
import { isComponentDocs } from "../componentDocs.js";
|
|
4
|
+
import { filledHtml, filledText, linkedHref, linkedHtml } from "../docPages.js";
|
|
5
|
+
import { sourceFiles } from "../sourceFiles.js";
|
|
6
|
+
import { findComponent, findStory, isLogicComponent } from "../storyTree.js";
|
|
7
|
+
import { ApiReference } from "./ApiReference.js";
|
|
8
|
+
import { AsideBlock, CardBlock, CardsBlock, LinkCardBlock, StepsBlock, TabsBlock } from "./DocContainers.js";
|
|
9
|
+
import { Example } from "./Example.js";
|
|
10
|
+
import { componentCount, libraryCount } from "./HomePage.js";
|
|
11
|
+
import { HomePieceView } from "./HomePieces.js";
|
|
12
|
+
import { LazyHost } from "./LazyHost.js";
|
|
13
|
+
import { LATER_STRINGS } from "./laterStrings.js";
|
|
14
|
+
import { PackageHtml } from "./PackageHtml.js";
|
|
15
|
+
import { MISSING_PLUGIN_HOSTS, usePluginHosts } from "./pluginHostsContext.js";
|
|
16
|
+
import { STRINGS } from "./strings.js";
|
|
17
|
+
import { useComponentDocs } from "./useComponentDocs.js";
|
|
18
|
+
import { useCopy } from "./useCopy.js";
|
|
19
|
+
import { useStoryCode } from "./useStoryCode.js";
|
|
20
|
+
/**
|
|
21
|
+
* The values a page's text can name, as the catalogue has them now.
|
|
22
|
+
*
|
|
23
|
+
* @param title - the catalogue's name.
|
|
24
|
+
* @param tree - its tree.
|
|
25
|
+
*/
|
|
26
|
+
export const catalogueValues = (title, tree) => ({
|
|
27
|
+
title,
|
|
28
|
+
components: String(componentCount(tree)),
|
|
29
|
+
// the stories the sidebar lists: a story a component keeps out of the list is not one a reader can open
|
|
30
|
+
stories: String(tree.sources
|
|
31
|
+
.flatMap((source) => source.families)
|
|
32
|
+
.flatMap((family) => family.groups)
|
|
33
|
+
.flatMap((group) => group.components)
|
|
34
|
+
.reduce((total, component) => total + component.stories.length, 0)),
|
|
35
|
+
libraries: String(libraryCount(tree)),
|
|
36
|
+
pages: String(tree.sources.reduce((total, source) => total + source.pages.length, 0))
|
|
37
|
+
});
|
|
38
|
+
/** The blocks a block holds, in their order: none for a block that holds none. */
|
|
39
|
+
const childrenOf = (block) => {
|
|
40
|
+
switch (block.kind) {
|
|
41
|
+
case "aside":
|
|
42
|
+
case "cards":
|
|
43
|
+
case "card":
|
|
44
|
+
return block.children;
|
|
45
|
+
case "tabs":
|
|
46
|
+
return block.tabs.flatMap((tab) => tab.children);
|
|
47
|
+
case "steps":
|
|
48
|
+
return block.steps.flat();
|
|
49
|
+
default:
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Every block of a page in its reading order, a container before what it holds.
|
|
55
|
+
*
|
|
56
|
+
* @param blocks - the page's blocks.
|
|
57
|
+
*/
|
|
58
|
+
export const readingOrder = (blocks) => blocks.flatMap((block) => [block, ...readingOrder(childrenOf(block))]);
|
|
59
|
+
/**
|
|
60
|
+
* Each block's place in a page's reading order.
|
|
61
|
+
*
|
|
62
|
+
* @param blocks - the page's blocks.
|
|
63
|
+
*/
|
|
64
|
+
export const blockPlaces = (blocks) => new Map(readingOrder(blocks).map((block, place) => [block, place]));
|
|
65
|
+
/** The queue's name for a component's table, apart from the ids of the stories. */
|
|
66
|
+
const propsKey = (id) => `props:${id}`;
|
|
67
|
+
/**
|
|
68
|
+
* What a page's blocks load as they come near, in the page's order: a story by its own id, as its frame reports, though
|
|
69
|
+
* the page may name it by a former one (`formerStoryId`).
|
|
70
|
+
*
|
|
71
|
+
* @param blocks - the page's blocks.
|
|
72
|
+
* @param tree - the tree, which finds a story by either id.
|
|
73
|
+
*/
|
|
74
|
+
export const queuedBlocks = (blocks, tree) => readingOrder(blocks).flatMap((block) => {
|
|
75
|
+
if (block.kind === "story")
|
|
76
|
+
return [findStory(tree, block.id)?.story.id ?? block.id];
|
|
77
|
+
return block.kind === "props" ? [propsKey(block.id)] : [];
|
|
78
|
+
});
|
|
79
|
+
/** A block that names what the catalogue does not have: said in place, and in the index's problems. */
|
|
80
|
+
const MissingBlock = ({ message }) => (_jsx("p", { className: "forgebook-problems", role: "alert", children: message }));
|
|
81
|
+
/**
|
|
82
|
+
* Code the page's text shows, with a button that copies it.
|
|
83
|
+
*
|
|
84
|
+
* @param props - the code as copied and as HTML.
|
|
85
|
+
*/
|
|
86
|
+
const CodeBlock = ({ text, html, title, isWrapped }) => {
|
|
87
|
+
const { isCopied, copy } = useCopy();
|
|
88
|
+
return (_jsxs("div", { className: "forgebook-docs__code", "data-titled": title !== undefined, "data-wrap": isWrapped, children: [title === undefined ? null : _jsx("p", { className: "forgebook-docs__code-title", children: title }), _jsx("button", { type: "button", className: "forgebook-example__copy", onClick: () => copy(text), "aria-live": "polite", children: isCopied ? STRINGS.copied : LATER_STRINGS.copy }), _jsx(PackageHtml, { className: "forgebook-prose", html: `<pre><code>${html}</code></pre>` })] }));
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* A story of the page, in its frame.
|
|
92
|
+
*
|
|
93
|
+
* @param props - the story's id, its place in the page and what the blocks share.
|
|
94
|
+
*/
|
|
95
|
+
const StoryBlock = ({ id, place, context }) => {
|
|
96
|
+
const { frames, tree, sources } = context;
|
|
97
|
+
const location = findStory(tree, id);
|
|
98
|
+
// a page may name a story by a former id (`formerStoryId`): its frame reports under its own
|
|
99
|
+
const storyId = location?.story.id ?? id;
|
|
100
|
+
const source = sources.find((candidate) => candidate.id === location?.source.id);
|
|
101
|
+
const isMounted = frames.queue.mounted.has(storyId);
|
|
102
|
+
// the story's own file: a component may span several (`TreeComponent.files`)
|
|
103
|
+
const code = useStoryCode(isMounted && source !== undefined && location !== undefined
|
|
104
|
+
? sourceFiles(source).code[location.story.file]
|
|
105
|
+
: undefined);
|
|
106
|
+
if (location === undefined)
|
|
107
|
+
return _jsx(MissingBlock, { message: STRINGS.unknownStory(id) });
|
|
108
|
+
return (_jsx(Example, { ...frames, ...context.stories, component: location.component, view: context.view, frameUrl: context.frameUrl, switches: context.switches, onTouchChange: context.onTouchChange, code: code, componentName: location.component.name, heightOf: context.heightOf, background: context.backgroundOf(location.source), reading: { hasCode: true, isCodeOpen: false, isDemoLarge: false }, story: location.story, isDemo: true, isMounted: isMounted, observe: frames.queue.observerOf(storyId, place) }));
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* A component's API table: its docs read only as it comes near, since they wait for the package's types.
|
|
112
|
+
*
|
|
113
|
+
* @param props - the component's id and what the blocks share.
|
|
114
|
+
*/
|
|
115
|
+
const PropsBlock = ({ id, context }) => {
|
|
116
|
+
const { frames, tree, sources } = context;
|
|
117
|
+
const { queue } = frames;
|
|
118
|
+
const location = findComponent(tree, id);
|
|
119
|
+
const source = sources.find((candidate) => candidate.id === location?.source.id);
|
|
120
|
+
const key = propsKey(id);
|
|
121
|
+
const docs = useComponentDocs(queue.mounted.has(key) && source !== undefined && location !== undefined
|
|
122
|
+
? sourceFiles(source).docs[location.component.file]
|
|
123
|
+
: undefined);
|
|
124
|
+
// a component with no docs is over too: "none" counts only once its turn came, since it is also the state before
|
|
125
|
+
const isOver = queue.mounted.has(key) && docs.status !== "loading";
|
|
126
|
+
// its place in the queue goes to the next block once it is there: a table holds no frame to wait for
|
|
127
|
+
useEffect(() => {
|
|
128
|
+
if (isOver)
|
|
129
|
+
queue.markReady(key);
|
|
130
|
+
}, [isOver, key, queue]);
|
|
131
|
+
if (location === undefined)
|
|
132
|
+
return _jsx(MissingBlock, { message: STRINGS.unknownComponent(id) });
|
|
133
|
+
if (docs.status === "error")
|
|
134
|
+
return _jsx(MissingBlock, { message: `${LATER_STRINGS.pageError}: ${docs.message}` });
|
|
135
|
+
return (_jsx("div", { ref: queue.observerOf(key), children: docs.status === "ready" && isComponentDocs(docs.value) ? (_jsx(ApiReference, { docs: docs.value, isLogic: isLogicComponent(location.component), componentGroups: location.component.propGroups })) : null }));
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* A plugin's block; a fence no plugin of this catalogue draws is said, as a block that names what is not there.
|
|
139
|
+
*
|
|
140
|
+
* @param props - the block and what the blocks share.
|
|
141
|
+
*/
|
|
142
|
+
const PluginBlock = ({ block, context }) => {
|
|
143
|
+
const plugin = context.plugins.find((each) => each.docBlocks.some((candidate) => candidate.fence === block.fence));
|
|
144
|
+
const load = plugin?.docBlocks.find((candidate) => candidate.fence === block.fence)?.load;
|
|
145
|
+
const loadHosts = usePluginHosts();
|
|
146
|
+
// a stable loader: the host loads again whenever it changes
|
|
147
|
+
const loadBlockHost = useCallback(async () => {
|
|
148
|
+
if (loadHosts === undefined)
|
|
149
|
+
throw new Error(MISSING_PLUGIN_HOSTS);
|
|
150
|
+
return (await loadHosts()).loadBlockHost();
|
|
151
|
+
}, [loadHosts]);
|
|
152
|
+
if (plugin === undefined || load === undefined)
|
|
153
|
+
return _jsx(MissingBlock, { message: block.fence });
|
|
154
|
+
return (_jsx(LazyHost, { loadHost: loadBlockHost, props: {
|
|
155
|
+
load,
|
|
156
|
+
pluginId: plugin.id,
|
|
157
|
+
argument: block.argument,
|
|
158
|
+
body: block.body,
|
|
159
|
+
page: context
|
|
160
|
+
} }));
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* One block of a page.
|
|
164
|
+
*
|
|
165
|
+
* @param props - the block and what the blocks share.
|
|
166
|
+
*/
|
|
167
|
+
const DocBlockView = ({ block, context }) => {
|
|
168
|
+
const inner = (blocks) => _jsx(DocBlocks, { blocks: blocks, context: context });
|
|
169
|
+
const text = (written) => filledText(written, context.values);
|
|
170
|
+
switch (block.kind) {
|
|
171
|
+
case "text":
|
|
172
|
+
return (_jsx(PackageHtml, { className: "forgebook-prose", html: filledHtml(linkedHtml(block.html, context.pageHrefOf, context.assets), context.values) }));
|
|
173
|
+
case "code":
|
|
174
|
+
return (_jsx(CodeBlock, { text: block.text, html: block.html, title: block.title, isWrapped: block.isWrapped === true }));
|
|
175
|
+
case "story":
|
|
176
|
+
return _jsx(StoryBlock, { id: block.id, place: context.places.get(block) ?? 0, context: context });
|
|
177
|
+
case "props":
|
|
178
|
+
return _jsx(PropsBlock, { id: block.id, context: context });
|
|
179
|
+
case "aside":
|
|
180
|
+
return (_jsx(AsideBlock, { tone: block.tone, title: block.title === undefined ? undefined : text(block.title), children: inner(block.children) }));
|
|
181
|
+
case "tabs":
|
|
182
|
+
return (_jsx(TabsBlock, { labels: block.tabs.map((tab) => text(tab.label)), sync: block.sync, panels: block.tabs.map((tab) => inner(tab.children)) }));
|
|
183
|
+
case "steps":
|
|
184
|
+
return _jsx(StepsBlock, { steps: block.steps.map(inner) });
|
|
185
|
+
case "cards":
|
|
186
|
+
return _jsx(CardsBlock, { children: inner(block.children) });
|
|
187
|
+
case "card":
|
|
188
|
+
return _jsx(CardBlock, { title: text(block.title), children: inner(block.children) });
|
|
189
|
+
case "link-card":
|
|
190
|
+
return (_jsx(LinkCardBlock, { title: text(block.title), description: block.description === undefined ? undefined : text(block.description), href: linkedHref(block.href, context.pageHrefOf), onOpen: context.onOpenAddress }));
|
|
191
|
+
case "home":
|
|
192
|
+
return context.home === undefined ? null : (_jsx(HomePieceView, { piece: block.piece, label: block.label === undefined ? undefined : text(block.label), source: block.source, context: context.home }));
|
|
193
|
+
case "problem":
|
|
194
|
+
return _jsx(MissingBlock, { message: block.message });
|
|
195
|
+
case "plugin":
|
|
196
|
+
return _jsx(PluginBlock, { block: block, context: context });
|
|
197
|
+
default:
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* A page's blocks, in the order of its file.
|
|
203
|
+
*
|
|
204
|
+
* @param props - the blocks and what they share.
|
|
205
|
+
*/
|
|
206
|
+
export const DocBlocks = ({ blocks, context }) => blocks.map((block, place) => (_jsx(DocBlockView, { block: block, context: context }, place)));
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The blocks of a docs page that hold others: an aside, tabs, steps, cards and a link card, each given what it holds
|
|
3
|
+
* already drawn.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Part of the docs pages' chunk, loaded with the first page or written home that opens, so the shell's first load pays
|
|
7
|
+
* nothing for them. Each is HTML and the catalogue's style sheet, but the tabs, whose few lines of script pick a panel
|
|
8
|
+
* and move between tabs with the arrow keys as a tab list does. A panel that is not shown stays in the page, hidden, so a
|
|
9
|
+
* story in it loads only once its tab is picked, and keeps its frame after.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
import { type ReactNode } from "react";
|
|
14
|
+
import type { AsideTone } from "../docPages.ts";
|
|
15
|
+
/**
|
|
16
|
+
* A remark set apart, its tone in its colour and its title.
|
|
17
|
+
*
|
|
18
|
+
* @param props - its tone, its title (its tone's name when none), and what it holds.
|
|
19
|
+
*/
|
|
20
|
+
export declare const AsideBlock: ({ tone, title, children }: {
|
|
21
|
+
readonly tone: AsideTone;
|
|
22
|
+
readonly title: string | undefined;
|
|
23
|
+
readonly children: ReactNode;
|
|
24
|
+
}) => ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Panels of which one shows at a time, behind a tab list.
|
|
27
|
+
*
|
|
28
|
+
* @param props - the tabs' labels, the name they share their choice under, and each panel drawn.
|
|
29
|
+
*/
|
|
30
|
+
export declare const TabsBlock: ({ labels, sync, panels }: {
|
|
31
|
+
readonly labels: readonly string[];
|
|
32
|
+
readonly sync: string | undefined;
|
|
33
|
+
readonly panels: readonly ReactNode[];
|
|
34
|
+
}) => ReactNode;
|
|
35
|
+
/**
|
|
36
|
+
* Numbered steps, each drawn as a list item with what it holds.
|
|
37
|
+
*
|
|
38
|
+
* @param props - each step drawn.
|
|
39
|
+
*/
|
|
40
|
+
export declare const StepsBlock: ({ steps }: {
|
|
41
|
+
readonly steps: readonly ReactNode[];
|
|
42
|
+
}) => ReactNode;
|
|
43
|
+
/**
|
|
44
|
+
* Cards side by side, as many to a row as fit.
|
|
45
|
+
*
|
|
46
|
+
* @param props - the cards drawn.
|
|
47
|
+
*/
|
|
48
|
+
export declare const CardsBlock: ({ children }: {
|
|
49
|
+
readonly children: ReactNode;
|
|
50
|
+
}) => ReactNode;
|
|
51
|
+
/**
|
|
52
|
+
* A card with a title and what it holds.
|
|
53
|
+
*
|
|
54
|
+
* @param props - its title and what it holds.
|
|
55
|
+
*/
|
|
56
|
+
export declare const CardBlock: ({ title, children }: {
|
|
57
|
+
readonly title: string;
|
|
58
|
+
readonly children: ReactNode;
|
|
59
|
+
}) => ReactNode;
|
|
60
|
+
/**
|
|
61
|
+
* A card that links somewhere: a page of the catalogue opens in place, another site in a new tab.
|
|
62
|
+
*
|
|
63
|
+
* @param props - its title, its description, its address, and how the catalogue opens one of its own.
|
|
64
|
+
*/
|
|
65
|
+
export declare const LinkCardBlock: ({ title, description, href, onOpen }: {
|
|
66
|
+
readonly title: string;
|
|
67
|
+
readonly description: string | undefined;
|
|
68
|
+
readonly href: string;
|
|
69
|
+
readonly onOpen: (href: string) => boolean;
|
|
70
|
+
}) => ReactNode;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* The blocks of a docs page that hold others: an aside, tabs, steps, cards and a link card, each given what it holds
|
|
4
|
+
* already drawn.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Part of the docs pages' chunk, loaded with the first page or written home that opens, so the shell's first load pays
|
|
8
|
+
* nothing for them. Each is HTML and the catalogue's style sheet, but the tabs, whose few lines of script pick a panel
|
|
9
|
+
* and move between tabs with the arrow keys as a tab list does. A panel that is not shown stays in the page, hidden, so a
|
|
10
|
+
* story in it loads only once its tab is picked, and keeps its frame after.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
import { useId, useRef } from "react";
|
|
15
|
+
import { Icon } from "./icons.js";
|
|
16
|
+
import { PAGE_STRINGS } from "./pageStrings.js";
|
|
17
|
+
import { useSyncedTab } from "./useSyncedTab.js";
|
|
18
|
+
/**
|
|
19
|
+
* A remark set apart, its tone in its colour and its title.
|
|
20
|
+
*
|
|
21
|
+
* @param props - its tone, its title (its tone's name when none), and what it holds.
|
|
22
|
+
*/
|
|
23
|
+
export const AsideBlock = ({ tone, title, children }) => {
|
|
24
|
+
const id = useId();
|
|
25
|
+
return (_jsxs("aside", { className: "forgebook-aside", "data-tone": tone, "aria-labelledby": id, children: [_jsx("p", { id: id, className: "forgebook-aside__title", children: title ?? PAGE_STRINGS.asides[tone] }), children] }));
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* The tab a key moves to in a tab list: the next or the one before, round the ends, or the first or the last.
|
|
29
|
+
*
|
|
30
|
+
* @param key - the key pressed.
|
|
31
|
+
* @param shown - the place of the tab shown.
|
|
32
|
+
* @param count - how many tabs there are.
|
|
33
|
+
* @returns the place to move to; none for a key that moves nowhere.
|
|
34
|
+
*/
|
|
35
|
+
const keyedTab = (key, shown, count) => {
|
|
36
|
+
if (key === "ArrowRight")
|
|
37
|
+
return (shown + 1) % count;
|
|
38
|
+
if (key === "ArrowLeft")
|
|
39
|
+
return (shown - 1 + count) % count;
|
|
40
|
+
if (key === "Home")
|
|
41
|
+
return 0;
|
|
42
|
+
return key === "End" ? count - 1 : undefined;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Panels of which one shows at a time, behind a tab list.
|
|
46
|
+
*
|
|
47
|
+
* @param props - the tabs' labels, the name they share their choice under, and each panel drawn.
|
|
48
|
+
*/
|
|
49
|
+
export const TabsBlock = ({ labels, sync, panels }) => {
|
|
50
|
+
const id = useId();
|
|
51
|
+
const [shown, pick] = useSyncedTab(labels, sync);
|
|
52
|
+
const list = useRef(null);
|
|
53
|
+
const move = (event) => {
|
|
54
|
+
const target = keyedTab(event.key, shown, labels.length);
|
|
55
|
+
if (target === undefined)
|
|
56
|
+
return;
|
|
57
|
+
event.preventDefault();
|
|
58
|
+
pick(target);
|
|
59
|
+
list.current?.querySelectorAll('[role="tab"]')[target]?.focus();
|
|
60
|
+
};
|
|
61
|
+
return (_jsxs("div", { className: "forgebook-tabs", children: [_jsx("div", { ref: list, className: "forgebook-tabs__list", role: "tablist", onKeyDown: move, children: labels.map((label, place) => (_jsx("button", { type: "button", role: "tab", id: `${id}-tab-${place}`, className: "forgebook-tabs__tab", "aria-selected": place === shown, "aria-controls": `${id}-panel-${place}`, tabIndex: place === shown ? 0 : -1, onClick: () => pick(place), children: label }, place))) }), panels.map((panel, place) => (_jsx("div", { role: "tabpanel", id: `${id}-panel-${place}`, "aria-labelledby": `${id}-tab-${place}`, className: "forgebook-tabs__panel", hidden: place !== shown, children: panel }, place)))] }));
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Numbered steps, each drawn as a list item with what it holds.
|
|
65
|
+
*
|
|
66
|
+
* @param props - each step drawn.
|
|
67
|
+
*/
|
|
68
|
+
export const StepsBlock = ({ steps }) => (_jsx("ol", { className: "forgebook-steps", children: steps.map((step, place) => (_jsx("li", { className: "forgebook-steps__step", children: step }, place))) }));
|
|
69
|
+
/**
|
|
70
|
+
* Cards side by side, as many to a row as fit.
|
|
71
|
+
*
|
|
72
|
+
* @param props - the cards drawn.
|
|
73
|
+
*/
|
|
74
|
+
export const CardsBlock = ({ children }) => (_jsx("div", { className: "forgebook-cards", children: children }));
|
|
75
|
+
/**
|
|
76
|
+
* A card with a title and what it holds.
|
|
77
|
+
*
|
|
78
|
+
* @param props - its title and what it holds.
|
|
79
|
+
*/
|
|
80
|
+
export const CardBlock = ({ title, children }) => (_jsxs("section", { className: "forgebook-card", "aria-label": title === "" ? undefined : title, children: [title === "" ? null : _jsx("p", { className: "forgebook-card__title", children: title }), children] }));
|
|
81
|
+
/**
|
|
82
|
+
* A card that links somewhere: a page of the catalogue opens in place, another site in a new tab.
|
|
83
|
+
*
|
|
84
|
+
* @param props - its title, its description, its address, and how the catalogue opens one of its own.
|
|
85
|
+
*/
|
|
86
|
+
export const LinkCardBlock = ({ title, description, href, onOpen }) => {
|
|
87
|
+
const isOther = /^(https?:|mailto:)/i.test(href);
|
|
88
|
+
return (_jsxs("a", { className: "forgebook-card forgebook-card--link", href: href, ...(isOther ? { target: "_blank", rel: "noreferrer" } : {}), onClick: (event) => {
|
|
89
|
+
if (isOther || event.metaKey || event.ctrlKey || event.shiftKey || event.button !== 0)
|
|
90
|
+
return;
|
|
91
|
+
if (onOpen(href))
|
|
92
|
+
event.preventDefault();
|
|
93
|
+
}, children: [_jsxs("span", { className: "forgebook-card__title", children: [title, _jsx(Icon, { name: isOther ? "external" : "chevronRight", size: 12 })] }), description === undefined ? null : _jsx("span", { className: "forgebook-card__description", children: description })] }));
|
|
94
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A docs page's contents: its second- and third-level headings, the one being read marked, as a column beside the text
|
|
3
|
+
* where there is room and a list that folds above it where there is not.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import { type ReactNode, type RefObject } from "react";
|
|
8
|
+
import { type DocHeading, type PageValues } from "../docPages.ts";
|
|
9
|
+
/** The contents' props. */
|
|
10
|
+
export type DocContentsProps = {
|
|
11
|
+
/** The page's headings. */
|
|
12
|
+
readonly headings: readonly DocHeading[];
|
|
13
|
+
/** The values a heading's text names (`{{title}}`). */
|
|
14
|
+
readonly values: PageValues;
|
|
15
|
+
/** The page's scrolling element. */
|
|
16
|
+
readonly scrollRef: RefObject<HTMLElement | null>;
|
|
17
|
+
/** Whether there is room for a column beside the text. */
|
|
18
|
+
readonly isColumn: boolean;
|
|
19
|
+
/** A heading's address, for its link. */
|
|
20
|
+
readonly hrefOf: (anchor: string) => string;
|
|
21
|
+
/** Goes to a heading. */
|
|
22
|
+
readonly onOpen: (anchor: string) => void;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* A page's contents; nothing for a page with fewer than two headings, which has nothing to find.
|
|
26
|
+
*
|
|
27
|
+
* @param props - the headings, the page's scrolling element, whether there is room for a column, and the links.
|
|
28
|
+
*/
|
|
29
|
+
export declare const DocContents: ({ headings, values, scrollRef, isColumn, hrefOf, onOpen }: DocContentsProps) => ReactNode;
|