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,69 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
2
|
+
/**
|
|
3
|
+
* The page between a client's app and a story's frame: it shows the frame and says when the story is up and how tall.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* The app runs on an origin the host chooses, so a frame cannot talk to it: a frame posts to the catalogue's origin
|
|
7
|
+
* only, which keeps its messages (a story's args among them) from any page that embeds it. This page is on the
|
|
8
|
+
* catalogue's origin, reads the messages of the frame, on the frames' origin, as the shell does, and passes the app
|
|
9
|
+
* three facts and nothing else: that it runs, that something was drawn, and the height. A page that embeds it learns no
|
|
10
|
+
* more than that, so it can post to any origin, as it has to: the app's may be opaque. A story that fails counts as
|
|
11
|
+
* drawn, as the frame shows the error itself.
|
|
12
|
+
*
|
|
13
|
+
* A frame opened alone on a cold dev server can stay blank: when the server prepares a dependency again, a static import
|
|
14
|
+
* of the frame's own entry fails before any of its code runs, so its reload for a stale module never happens and no
|
|
15
|
+
* shell is there to load it again. So the relay does, once, when the frame loaded and has said nothing at all, by
|
|
16
|
+
* loading its address again: the frame's own `location` is another origin's, which this page may not reload.
|
|
17
|
+
*
|
|
18
|
+
* Runs in the page, written into it by its source (`previewPages.ts`), so it takes no import.
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Shows a story's frame and tells the embedding app about it.
|
|
24
|
+
*
|
|
25
|
+
* @param frameAddress - the story's frame, on the frames' origin.
|
|
26
|
+
* @param title - the frame's name for a screen reader: the story's id.
|
|
27
|
+
*/
|
|
28
|
+
export const previewRelay = (frameAddress, title) => {
|
|
29
|
+
/** How long a loaded frame may stay silent before its one reload, in ms. */
|
|
30
|
+
const reloadAfterMs = 4000;
|
|
31
|
+
/** The only origin a message is heard from: the frame's, which the server wrote in the page. */
|
|
32
|
+
const framesOrigin = new URL(frameAddress, window.location.href).origin;
|
|
33
|
+
const frame = document.createElement("iframe");
|
|
34
|
+
frame.title = title;
|
|
35
|
+
frame.style.cssText = "display:block;width:100%;height:100vh;border:0";
|
|
36
|
+
const tell = (message) => {
|
|
37
|
+
window.parent.postMessage(message, "*");
|
|
38
|
+
};
|
|
39
|
+
let hasHeard = false;
|
|
40
|
+
let hasReloaded = false;
|
|
41
|
+
frame.addEventListener("load", () => {
|
|
42
|
+
setTimeout(() => {
|
|
43
|
+
if (hasHeard || hasReloaded)
|
|
44
|
+
return;
|
|
45
|
+
hasReloaded = true;
|
|
46
|
+
frame.src = frameAddress;
|
|
47
|
+
}, reloadAfterMs);
|
|
48
|
+
});
|
|
49
|
+
window.addEventListener("message", (event) => {
|
|
50
|
+
if (event.origin !== framesOrigin || event.source !== frame.contentWindow)
|
|
51
|
+
return;
|
|
52
|
+
const { data } = event;
|
|
53
|
+
if (typeof data !== "object" || data === null || !("type" in data))
|
|
54
|
+
return;
|
|
55
|
+
hasHeard = true;
|
|
56
|
+
if (data.type === "forgebook:ready" || data.type === "forgebook:error")
|
|
57
|
+
tell({ type: "forgebook:preview-ready" });
|
|
58
|
+
if (data.type === "forgebook:size" &&
|
|
59
|
+
"height" in data &&
|
|
60
|
+
typeof data.height === "number" &&
|
|
61
|
+
data.height > 0) {
|
|
62
|
+
frame.style.height = `${data.height}px`;
|
|
63
|
+
tell({ type: "forgebook:preview-size", height: data.height });
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
tell({ type: "forgebook:preview-started" });
|
|
67
|
+
frame.src = frameAddress;
|
|
68
|
+
document.body.append(frame);
|
|
69
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The words of a story's preview in a client that renders apps. A catalogue replaces any of them by name
|
|
3
|
+
* (`strings: { previewOpen: "Open" }` in its configuration), as it does the shell's; they stay out of the shell's texts,
|
|
4
|
+
* whose page never shows them.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
/** The page's words, as Forgebook writes them. */
|
|
9
|
+
export declare const PREVIEW_TEXTS: {
|
|
10
|
+
previewWaiting: string;
|
|
11
|
+
previewLoading: string;
|
|
12
|
+
previewTakingPicture: string;
|
|
13
|
+
previewUnavailable: string;
|
|
14
|
+
previewCancelled: string;
|
|
15
|
+
previewOpen: string;
|
|
16
|
+
previewPicture: string;
|
|
17
|
+
previewFrame: string;
|
|
18
|
+
};
|
|
19
|
+
/** The page's words. */
|
|
20
|
+
export type PreviewTexts = typeof PREVIEW_TEXTS;
|
|
21
|
+
/**
|
|
22
|
+
* The words of a catalogue: its replacements over Forgebook's. A replacement of no word of the page is left out.
|
|
23
|
+
*
|
|
24
|
+
* @param strings - the catalogue's `strings`.
|
|
25
|
+
*/
|
|
26
|
+
export declare const previewTexts: (strings: Readonly<Record<string, string>>) => PreviewTexts;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The words of a story's preview in a client that renders apps. A catalogue replaces any of them by name
|
|
3
|
+
* (`strings: { previewOpen: "Open" }` in its configuration), as it does the shell's; they stay out of the shell's texts,
|
|
4
|
+
* whose page never shows them.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
/** The page's words, as Forgebook writes them. */
|
|
9
|
+
export const PREVIEW_TEXTS = {
|
|
10
|
+
previewWaiting: "Waiting for the story",
|
|
11
|
+
previewLoading: "Loading the story",
|
|
12
|
+
previewTakingPicture: "This client cannot show the story live: taking its picture",
|
|
13
|
+
previewUnavailable: "This client can show neither the story nor its picture. Open it in the catalogue.",
|
|
14
|
+
previewCancelled: "The preview was cancelled",
|
|
15
|
+
previewOpen: "Open in the catalogue",
|
|
16
|
+
previewPicture: "A picture of the story",
|
|
17
|
+
previewFrame: "The story"
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* The words of a catalogue: its replacements over Forgebook's. A replacement of no word of the page is left out.
|
|
21
|
+
*
|
|
22
|
+
* @param strings - the catalogue's `strings`.
|
|
23
|
+
*/
|
|
24
|
+
export const previewTexts = (strings) => ({
|
|
25
|
+
previewWaiting: strings["previewWaiting"] ?? PREVIEW_TEXTS.previewWaiting,
|
|
26
|
+
previewLoading: strings["previewLoading"] ?? PREVIEW_TEXTS.previewLoading,
|
|
27
|
+
previewTakingPicture: strings["previewTakingPicture"] ?? PREVIEW_TEXTS.previewTakingPicture,
|
|
28
|
+
previewUnavailable: strings["previewUnavailable"] ?? PREVIEW_TEXTS.previewUnavailable,
|
|
29
|
+
previewCancelled: strings["previewCancelled"] ?? PREVIEW_TEXTS.previewCancelled,
|
|
30
|
+
previewOpen: strings["previewOpen"] ?? PREVIEW_TEXTS.previewOpen,
|
|
31
|
+
previewPicture: strings["previewPicture"] ?? PREVIEW_TEXTS.previewPicture,
|
|
32
|
+
previewFrame: strings["previewFrame"] ?? PREVIEW_TEXTS.previewFrame
|
|
33
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { PreviewTexts } from "./previewTexts.ts";
|
|
2
|
+
/** What the page is given when it is written. */
|
|
3
|
+
export type PreviewViewOptions = {
|
|
4
|
+
/** Its words. */
|
|
5
|
+
readonly texts: PreviewTexts;
|
|
6
|
+
/** Forgebook's version, which it names to the host. */
|
|
7
|
+
readonly version: string;
|
|
8
|
+
/** The MCP Apps version it speaks. */
|
|
9
|
+
readonly protocolVersion: string;
|
|
10
|
+
/** The tool that takes the picture. */
|
|
11
|
+
readonly shotTool: string;
|
|
12
|
+
/** How long a story may stay silent before its picture is asked for, in ms. */
|
|
13
|
+
readonly silenceMs: number;
|
|
14
|
+
/** The class of a frame still loading, which the style sheet keeps out of sight. */
|
|
15
|
+
readonly loadingClass: string;
|
|
16
|
+
};
|
|
17
|
+
/** The ids of the elements `previewPages.ts` writes, which the page fills. */
|
|
18
|
+
export declare const PREVIEW_ELEMENTS: {
|
|
19
|
+
readonly title: "story";
|
|
20
|
+
readonly open: "open";
|
|
21
|
+
readonly status: "status";
|
|
22
|
+
readonly frame: "frame";
|
|
23
|
+
readonly picture: "picture";
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Runs the page.
|
|
27
|
+
*
|
|
28
|
+
* @param options - what it is given.
|
|
29
|
+
* @param elements - the ids of its elements.
|
|
30
|
+
*/
|
|
31
|
+
export declare const previewView: (options: PreviewViewOptions, elements: typeof PREVIEW_ELEMENTS) => void;
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
/** The ids of the elements `previewPages.ts` writes, which the page fills. */
|
|
2
|
+
export const PREVIEW_ELEMENTS = {
|
|
3
|
+
title: "story",
|
|
4
|
+
open: "open",
|
|
5
|
+
status: "status",
|
|
6
|
+
frame: "frame",
|
|
7
|
+
picture: "picture"
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Runs the page.
|
|
11
|
+
*
|
|
12
|
+
* @param options - what it is given.
|
|
13
|
+
* @param elements - the ids of its elements.
|
|
14
|
+
*/
|
|
15
|
+
export const previewView = (options, elements) => {
|
|
16
|
+
const { texts } = options;
|
|
17
|
+
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
18
|
+
const textOf = (value) => typeof value === "string" && value !== "" ? value : undefined;
|
|
19
|
+
const required = (id, type) => {
|
|
20
|
+
const found = document.getElementById(id);
|
|
21
|
+
if (!(found instanceof type))
|
|
22
|
+
throw new Error(`The page has no ${id}`);
|
|
23
|
+
return found;
|
|
24
|
+
};
|
|
25
|
+
const title = required(elements.title, HTMLElement);
|
|
26
|
+
const open = required(elements.open, HTMLButtonElement);
|
|
27
|
+
const status = required(elements.status, HTMLElement);
|
|
28
|
+
const frame = required(elements.frame, HTMLIFrameElement);
|
|
29
|
+
const picture = required(elements.picture, HTMLImageElement);
|
|
30
|
+
/* the host's side of the conversation */
|
|
31
|
+
let lastId = 0;
|
|
32
|
+
const waiting = new Map();
|
|
33
|
+
const post = (message) => {
|
|
34
|
+
window.parent.postMessage({ jsonrpc: "2.0", ...message }, "*");
|
|
35
|
+
};
|
|
36
|
+
const notify = (method, params) => {
|
|
37
|
+
post({ method, params });
|
|
38
|
+
};
|
|
39
|
+
const ask = (method, params) => new Promise((done) => {
|
|
40
|
+
lastId += 1;
|
|
41
|
+
waiting.set(lastId, done);
|
|
42
|
+
post({ id: lastId, method, params });
|
|
43
|
+
});
|
|
44
|
+
/* what the page knows */
|
|
45
|
+
let storyId;
|
|
46
|
+
let view;
|
|
47
|
+
let address;
|
|
48
|
+
let hostOpensLinks = false;
|
|
49
|
+
let hostCallsTools = false;
|
|
50
|
+
let isLive = false;
|
|
51
|
+
let isFallingBack = false;
|
|
52
|
+
let hasRelay = false;
|
|
53
|
+
let storyOrigin;
|
|
54
|
+
let silence;
|
|
55
|
+
const say = (text) => {
|
|
56
|
+
status.textContent = text;
|
|
57
|
+
status.hidden = text === "";
|
|
58
|
+
};
|
|
59
|
+
const showLink = () => {
|
|
60
|
+
open.hidden = !(hostOpensLinks && address !== undefined);
|
|
61
|
+
};
|
|
62
|
+
const showLive = () => {
|
|
63
|
+
isLive = true;
|
|
64
|
+
clearTimeout(silence);
|
|
65
|
+
say("");
|
|
66
|
+
picture.hidden = true;
|
|
67
|
+
frame.classList.remove(options.loadingClass);
|
|
68
|
+
};
|
|
69
|
+
// at this page's own width, so that the picture is not a whole window shrunk into it
|
|
70
|
+
const pictureView = () => {
|
|
71
|
+
const search = new URLSearchParams(view);
|
|
72
|
+
if (!search.has("width"))
|
|
73
|
+
search.set("width", String(document.body.clientWidth));
|
|
74
|
+
return search.toString();
|
|
75
|
+
};
|
|
76
|
+
const showPicture = async () => {
|
|
77
|
+
if (isLive || isFallingBack || storyId === undefined)
|
|
78
|
+
return;
|
|
79
|
+
isFallingBack = true;
|
|
80
|
+
clearTimeout(silence);
|
|
81
|
+
if (!hostCallsTools) {
|
|
82
|
+
say(texts.previewUnavailable);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
say(texts.previewTakingPicture);
|
|
86
|
+
const { result } = await ask("tools/call", {
|
|
87
|
+
name: options.shotTool,
|
|
88
|
+
arguments: { id: storyId, views: [pictureView()] }
|
|
89
|
+
});
|
|
90
|
+
if (isLive)
|
|
91
|
+
return;
|
|
92
|
+
const content = isRecord(result) && Array.isArray(result["content"]) ? result["content"] : [];
|
|
93
|
+
const image = content.find((block) => isRecord(block) && block["type"] === "image");
|
|
94
|
+
if (!isRecord(image) || typeof image["data"] !== "string") {
|
|
95
|
+
say(texts.previewUnavailable);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
picture.src = `data:image/png;base64,${image["data"]}`;
|
|
99
|
+
picture.hidden = false;
|
|
100
|
+
say("");
|
|
101
|
+
};
|
|
102
|
+
const showStory = (preview) => {
|
|
103
|
+
const url = new URL(preview);
|
|
104
|
+
if (url.protocol !== "http:" && url.protocol !== "https:")
|
|
105
|
+
return;
|
|
106
|
+
say(texts.previewLoading);
|
|
107
|
+
silence = setTimeout(() => void showPicture(), options.silenceMs);
|
|
108
|
+
storyOrigin = url.origin;
|
|
109
|
+
// laid out while it loads, only out of sight: a frame with no box has no viewport and no animation frames, so a
|
|
110
|
+
// story measuring itself gets zero and a play waiting on either never ends
|
|
111
|
+
frame.classList.add(options.loadingClass);
|
|
112
|
+
frame.hidden = false;
|
|
113
|
+
frame.src = url.href;
|
|
114
|
+
};
|
|
115
|
+
const showFailure = (structured) => {
|
|
116
|
+
const reason = isRecord(structured) ? textOf(structured["error"]) : undefined;
|
|
117
|
+
say(reason ?? texts.previewUnavailable);
|
|
118
|
+
};
|
|
119
|
+
const showAnswer = (answer) => {
|
|
120
|
+
const structured = isRecord(answer) ? answer["structuredContent"] : undefined;
|
|
121
|
+
const hasFailed = !isRecord(answer) || answer["isError"] === true;
|
|
122
|
+
if (hasFailed || !isRecord(structured)) {
|
|
123
|
+
showFailure(structured);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const links = structured["links"];
|
|
127
|
+
address = isRecord(links) ? textOf(links["address"]) : undefined;
|
|
128
|
+
storyId = textOf(structured["id"]) ?? storyId;
|
|
129
|
+
title.textContent = storyId ?? "";
|
|
130
|
+
showLink();
|
|
131
|
+
const preview = textOf(structured["preview"]);
|
|
132
|
+
if (preview === undefined)
|
|
133
|
+
void showPicture();
|
|
134
|
+
else
|
|
135
|
+
showStory(preview);
|
|
136
|
+
};
|
|
137
|
+
const applyVariables = (styles) => {
|
|
138
|
+
const variables = isRecord(styles) ? styles["variables"] : undefined;
|
|
139
|
+
if (!isRecord(variables))
|
|
140
|
+
return;
|
|
141
|
+
for (const [name, value] of Object.entries(variables))
|
|
142
|
+
if (typeof value === "string")
|
|
143
|
+
document.documentElement.style.setProperty(name, value);
|
|
144
|
+
};
|
|
145
|
+
const applyBox = (box) => {
|
|
146
|
+
if (!isRecord(box))
|
|
147
|
+
return;
|
|
148
|
+
const { style } = document.documentElement;
|
|
149
|
+
style.height = "";
|
|
150
|
+
style.maxHeight = "";
|
|
151
|
+
if ("height" in box)
|
|
152
|
+
style.height = "100vh";
|
|
153
|
+
else if (typeof box["maxHeight"] === "number")
|
|
154
|
+
style.maxHeight = `${box["maxHeight"]}px`;
|
|
155
|
+
};
|
|
156
|
+
const applyContext = (context) => {
|
|
157
|
+
if (!isRecord(context))
|
|
158
|
+
return;
|
|
159
|
+
const { theme } = context;
|
|
160
|
+
if (theme === "light" || theme === "dark")
|
|
161
|
+
document.documentElement.style.colorScheme = theme;
|
|
162
|
+
applyVariables(context["styles"]);
|
|
163
|
+
applyBox(context["containerDimensions"]);
|
|
164
|
+
};
|
|
165
|
+
let lastSize = "";
|
|
166
|
+
const reportSize = () => {
|
|
167
|
+
const { width, height } = document.body.getBoundingClientRect();
|
|
168
|
+
const size = { width: Math.ceil(width), height: Math.ceil(height) };
|
|
169
|
+
if (JSON.stringify(size) === lastSize)
|
|
170
|
+
return;
|
|
171
|
+
lastSize = JSON.stringify(size);
|
|
172
|
+
notify("ui/notifications/size-changed", size);
|
|
173
|
+
};
|
|
174
|
+
const applyInitialized = (result) => {
|
|
175
|
+
if (!isRecord(result))
|
|
176
|
+
return;
|
|
177
|
+
const capabilities = result["hostCapabilities"];
|
|
178
|
+
hostOpensLinks = isRecord(capabilities) && isRecord(capabilities["openLinks"]);
|
|
179
|
+
hostCallsTools = isRecord(capabilities) && isRecord(capabilities["serverTools"]);
|
|
180
|
+
applyContext(result["hostContext"]);
|
|
181
|
+
showLink();
|
|
182
|
+
notify("ui/notifications/initialized", {});
|
|
183
|
+
new ResizeObserver(reportSize).observe(document.body);
|
|
184
|
+
};
|
|
185
|
+
const answerHost = (id, method) => {
|
|
186
|
+
// the host waits for the answer before it takes the page down; a story in a frame has nothing to save
|
|
187
|
+
if (method === "ping" || method === "ui/resource-teardown")
|
|
188
|
+
post({ id, result: {} });
|
|
189
|
+
else
|
|
190
|
+
post({ id, error: { code: -32601, message: `Method not found: ${method}` } });
|
|
191
|
+
};
|
|
192
|
+
const hearHost = (method, params) => {
|
|
193
|
+
if (method === "ui/notifications/tool-result")
|
|
194
|
+
showAnswer(params);
|
|
195
|
+
if (method === "ui/notifications/host-context-changed")
|
|
196
|
+
applyContext(params);
|
|
197
|
+
if (method === "ui/notifications/tool-cancelled")
|
|
198
|
+
say(texts.previewCancelled);
|
|
199
|
+
if (method === "ui/notifications/tool-input" && isRecord(params) && isRecord(params["arguments"])) {
|
|
200
|
+
storyId = textOf(params["arguments"]["id"]);
|
|
201
|
+
view = textOf(params["arguments"]["view"]);
|
|
202
|
+
title.textContent = storyId ?? "";
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
const hearStory = (message) => {
|
|
206
|
+
if (!isRecord(message))
|
|
207
|
+
return;
|
|
208
|
+
const started = "forgebook:preview-started";
|
|
209
|
+
const ready = "forgebook:preview-ready";
|
|
210
|
+
const size = "forgebook:preview-size";
|
|
211
|
+
if (message["type"] === started)
|
|
212
|
+
hasRelay = true;
|
|
213
|
+
if (message["type"] === ready)
|
|
214
|
+
showLive();
|
|
215
|
+
if (message["type"] === size && typeof message["height"] === "number" && message["height"] > 0)
|
|
216
|
+
frame.style.height = `${message["height"]}px`;
|
|
217
|
+
};
|
|
218
|
+
window.addEventListener("message", (event) => {
|
|
219
|
+
if (event.source === frame.contentWindow) {
|
|
220
|
+
// the source alone would also let a frame that navigated elsewhere speak for the story
|
|
221
|
+
if (event.origin === storyOrigin)
|
|
222
|
+
hearStory(event.data);
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
if (event.source !== window.parent || !isRecord(event.data))
|
|
226
|
+
return;
|
|
227
|
+
const { id, method, params } = event.data;
|
|
228
|
+
if (typeof method === "string") {
|
|
229
|
+
if (id === undefined)
|
|
230
|
+
hearHost(method, params);
|
|
231
|
+
else
|
|
232
|
+
answerHost(id, method);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
if (typeof id !== "number")
|
|
236
|
+
return;
|
|
237
|
+
waiting.get(id)?.(event.data);
|
|
238
|
+
waiting.delete(id);
|
|
239
|
+
});
|
|
240
|
+
// a frame the host's policy refuses never says so to the frame, only to the document that asked for it
|
|
241
|
+
document.addEventListener("securitypolicyviolation", (event) => {
|
|
242
|
+
if (event.effectiveDirective === "frame-src")
|
|
243
|
+
void showPicture();
|
|
244
|
+
});
|
|
245
|
+
frame.addEventListener("load", () => {
|
|
246
|
+
if (!hasRelay)
|
|
247
|
+
void showPicture();
|
|
248
|
+
});
|
|
249
|
+
open.addEventListener("click", () => {
|
|
250
|
+
if (address !== undefined)
|
|
251
|
+
void ask("ui/open-link", { url: address });
|
|
252
|
+
});
|
|
253
|
+
open.textContent = texts.previewOpen;
|
|
254
|
+
frame.title = texts.previewFrame;
|
|
255
|
+
picture.alt = texts.previewPicture;
|
|
256
|
+
say(texts.previewWaiting);
|
|
257
|
+
void ask("ui/initialize", {
|
|
258
|
+
appInfo: { name: "forgebook-story-preview", version: options.version },
|
|
259
|
+
appCapabilities: { availableDisplayModes: ["inline"] },
|
|
260
|
+
protocolVersion: options.protocolVersion
|
|
261
|
+
}).then(({ result }) => {
|
|
262
|
+
applyInitialized(result);
|
|
263
|
+
});
|
|
264
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A component's props in their groups, as its TSDoc names them (`@group Selection`): the API reference and the Props
|
|
3
|
+
* tab list them the same way.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* The props that name no group come first: they are the ones an author left out of every group, most often the few
|
|
7
|
+
* every use of the component sets (`value`, `onChange`). Then each group, in the order a configuration names them
|
|
8
|
+
* (the component's meta, then the catalogue), the others in the order they first appear among the props. A component
|
|
9
|
+
* whose props name no group is one list, as it always was. Every group starts open: a reader folds one away, never the
|
|
10
|
+
* catalogue. Pure.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
/** A group of props: its name, none for the props that name no group, and its props in their order. */
|
|
15
|
+
export type PropGroup<TProp> = {
|
|
16
|
+
/** The group's name, as `@group` writes it; none for the props that name no group. */
|
|
17
|
+
readonly name: string | undefined;
|
|
18
|
+
/** Its props, in their order among the component's. */
|
|
19
|
+
readonly props: readonly TProp[];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* The order of the groups named first: the component's own (its meta's `parameters.propGroups`), then the
|
|
23
|
+
* catalogue's (`propGroups` in its configuration) not already named, each once.
|
|
24
|
+
*
|
|
25
|
+
* @param componentOrder - the groups the component names first; none by default.
|
|
26
|
+
* @param catalogueOrder - the groups the catalogue names first; none by default.
|
|
27
|
+
*/
|
|
28
|
+
export declare const propGroupOrder: (componentOrder?: readonly string[], catalogueOrder?: readonly string[]) => readonly string[];
|
|
29
|
+
/**
|
|
30
|
+
* Props in their groups: those naming no group first, then the groups named in `order`, in its order, then the others
|
|
31
|
+
* in the order they first appear. A group with no props is never listed, even when `order` names it.
|
|
32
|
+
*
|
|
33
|
+
* @param props - the props, in their order.
|
|
34
|
+
* @param order - the groups to show first, in this order (`propGroupOrder`).
|
|
35
|
+
*/
|
|
36
|
+
export declare const groupedProps: <TProp extends {
|
|
37
|
+
readonly group?: string | undefined;
|
|
38
|
+
}>(props: readonly TProp[], order: readonly string[]) => PropGroup<TProp>[];
|
|
39
|
+
/**
|
|
40
|
+
* Whether any of the props names a group: when none does, the props are listed as one list, as before groups.
|
|
41
|
+
*
|
|
42
|
+
* @param props - the props.
|
|
43
|
+
*/
|
|
44
|
+
export declare const hasPropGroups: (props: readonly {
|
|
45
|
+
readonly group?: string | undefined;
|
|
46
|
+
}[]) => boolean;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A component's props in their groups, as its TSDoc names them (`@group Selection`): the API reference and the Props
|
|
3
|
+
* tab list them the same way.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* The props that name no group come first: they are the ones an author left out of every group, most often the few
|
|
7
|
+
* every use of the component sets (`value`, `onChange`). Then each group, in the order a configuration names them
|
|
8
|
+
* (the component's meta, then the catalogue), the others in the order they first appear among the props. A component
|
|
9
|
+
* whose props name no group is one list, as it always was. Every group starts open: a reader folds one away, never the
|
|
10
|
+
* catalogue. Pure.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* The order of the groups named first: the component's own (its meta's `parameters.propGroups`), then the
|
|
16
|
+
* catalogue's (`propGroups` in its configuration) not already named, each once.
|
|
17
|
+
*
|
|
18
|
+
* @param componentOrder - the groups the component names first; none by default.
|
|
19
|
+
* @param catalogueOrder - the groups the catalogue names first; none by default.
|
|
20
|
+
*/
|
|
21
|
+
export const propGroupOrder = (componentOrder = [], catalogueOrder = []) => [...new Set([...componentOrder, ...catalogueOrder])];
|
|
22
|
+
/**
|
|
23
|
+
* Props in their groups: those naming no group first, then the groups named in `order`, in its order, then the others
|
|
24
|
+
* in the order they first appear. A group with no props is never listed, even when `order` names it.
|
|
25
|
+
*
|
|
26
|
+
* @param props - the props, in their order.
|
|
27
|
+
* @param order - the groups to show first, in this order (`propGroupOrder`).
|
|
28
|
+
*/
|
|
29
|
+
export const groupedProps = (props, order) => {
|
|
30
|
+
const ungrouped = [];
|
|
31
|
+
// a map keeps its keys in the order they were first set: the order the groups first appear
|
|
32
|
+
const named = new Map();
|
|
33
|
+
for (const prop of props) {
|
|
34
|
+
if (prop.group === undefined) {
|
|
35
|
+
ungrouped.push(prop);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const group = named.get(prop.group);
|
|
39
|
+
if (group === undefined)
|
|
40
|
+
named.set(prop.group, [prop]);
|
|
41
|
+
else
|
|
42
|
+
group.push(prop);
|
|
43
|
+
}
|
|
44
|
+
const rank = (name) => {
|
|
45
|
+
const index = order.indexOf(name);
|
|
46
|
+
return index === -1 ? order.length : index;
|
|
47
|
+
};
|
|
48
|
+
const groups = [...named.entries()]
|
|
49
|
+
.map(([name, grouped]) => ({ name, props: grouped }))
|
|
50
|
+
// a stable sort: the groups `order` does not name keep the order they appear in
|
|
51
|
+
.sort((left, right) => rank(left.name ?? "") - rank(right.name ?? ""));
|
|
52
|
+
return ungrouped.length === 0 ? groups : [{ name: undefined, props: ungrouped }, ...groups];
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Whether any of the props names a group: when none does, the props are listed as one list, as before groups.
|
|
56
|
+
*
|
|
57
|
+
* @param props - the props.
|
|
58
|
+
*/
|
|
59
|
+
export const hasPropGroups = (props) => props.some((prop) => prop.group !== undefined);
|
package/dist/src/realTouch.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The mark of a window where Chromium's own touch emulation runs (`forgebook dev --touch`): its pages see real touch,
|
|
3
3
|
* so the catalogue's simulated touch stays off there. Shared by the window that sets it (`@forgebook/testing/touch`)
|
|
4
|
-
* and the frame that reads it (`
|
|
4
|
+
* and the frame that reads it (`followTouch.ts`).
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
@@ -18,4 +18,3 @@ export type TouchWindowRequest = {
|
|
|
18
18
|
/** The catalogue's address. */
|
|
19
19
|
readonly url: string;
|
|
20
20
|
};
|
|
21
|
-
//# sourceMappingURL=realTouch.d.ts.map
|
package/dist/src/realTouch.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The mark of a window where Chromium's own touch emulation runs (`forgebook dev --touch`): its pages see real touch,
|
|
3
3
|
* so the catalogue's simulated touch stays off there. Shared by the window that sets it (`@forgebook/testing/touch`)
|
|
4
|
-
* and the frame that reads it (`
|
|
4
|
+
* and the frame that reads it (`followTouch.ts`).
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
@@ -13,4 +13,3 @@ export const REAL_TOUCH_FLAG = "__forgebookRealTouch";
|
|
|
13
13
|
* @param view - the window.
|
|
14
14
|
*/
|
|
15
15
|
export const isRealTouchWindow = (view) => REAL_TOUCH_FLAG in view;
|
|
16
|
-
//# sourceMappingURL=realTouch.js.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The safe areas a story drawn edge to edge in a device is told, in its frame's address: the parameter that carries
|
|
3
|
+
* them (`forgebook.safe-area=59,0,34,0`, top, right, bottom and left in CSS px) and the custom properties the frame
|
|
4
|
+
* writes from it on its root, which such a story pads itself with.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* A page in a frame cannot be given `env(safe-area-inset-*)`: browsers keep them at zero there, and only a browser's
|
|
8
|
+
* own protocol can change them. So the frame writes `--forgebook-safe-area-top`, `-right`, `-bottom` and `-left`
|
|
9
|
+
* instead, and a story reads them with the real insets as the fallback, for the page it ships in:
|
|
10
|
+
* `padding-top: var(--forgebook-safe-area-top, env(safe-area-inset-top))`. A story that is not drawn edge to edge
|
|
11
|
+
* sits inside the safe area and is told nothing. Read by the frame, written by the shell and `forgebook shot`, so
|
|
12
|
+
* every side reads one format. Pure.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
/** The frame's address parameter of the safe areas. */
|
|
17
|
+
export declare const SAFE_AREA_PARAMETER = "forgebook.safe-area";
|
|
18
|
+
/** The sides of the safe areas, in the parameter's order and the custom properties' names. */
|
|
19
|
+
declare const SIDES: readonly ["top", "right", "bottom", "left"];
|
|
20
|
+
/** The safe areas on each side, in CSS px. */
|
|
21
|
+
export type SafeArea = Readonly<Record<(typeof SIDES)[number], number>>;
|
|
22
|
+
/**
|
|
23
|
+
* A frame's address with the safe areas a story drawn edge to edge is told.
|
|
24
|
+
*
|
|
25
|
+
* @param address - the frame's address.
|
|
26
|
+
* @param safeArea - the safe areas.
|
|
27
|
+
*/
|
|
28
|
+
export declare const withSafeArea: (address: string, safeArea: SafeArea) => string;
|
|
29
|
+
/**
|
|
30
|
+
* The custom properties a frame's address asks for: none when it carries no safe areas, or carries them wrongly.
|
|
31
|
+
*
|
|
32
|
+
* @param search - the frame's query.
|
|
33
|
+
*/
|
|
34
|
+
export declare const safeAreaProperties: (search: string) => readonly (readonly [string, string])[];
|
|
35
|
+
/**
|
|
36
|
+
* Tells a page the safe areas its address carries, as CSS properties on its root.
|
|
37
|
+
*
|
|
38
|
+
* @param root - the page's root element.
|
|
39
|
+
* @param search - the page's address's query.
|
|
40
|
+
*/
|
|
41
|
+
export declare const applySafeArea: (root: HTMLElement, search: string) => void;
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The safe areas a story drawn edge to edge in a device is told, in its frame's address: the parameter that carries
|
|
3
|
+
* them (`forgebook.safe-area=59,0,34,0`, top, right, bottom and left in CSS px) and the custom properties the frame
|
|
4
|
+
* writes from it on its root, which such a story pads itself with.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* A page in a frame cannot be given `env(safe-area-inset-*)`: browsers keep them at zero there, and only a browser's
|
|
8
|
+
* own protocol can change them. So the frame writes `--forgebook-safe-area-top`, `-right`, `-bottom` and `-left`
|
|
9
|
+
* instead, and a story reads them with the real insets as the fallback, for the page it ships in:
|
|
10
|
+
* `padding-top: var(--forgebook-safe-area-top, env(safe-area-inset-top))`. A story that is not drawn edge to edge
|
|
11
|
+
* sits inside the safe area and is told nothing. Read by the frame, written by the shell and `forgebook shot`, so
|
|
12
|
+
* every side reads one format. Pure.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
/** The frame's address parameter of the safe areas. */
|
|
17
|
+
export const SAFE_AREA_PARAMETER = "forgebook.safe-area";
|
|
18
|
+
/** The sides of the safe areas, in the parameter's order and the custom properties' names. */
|
|
19
|
+
const SIDES = ["top", "right", "bottom", "left"];
|
|
20
|
+
/**
|
|
21
|
+
* A frame's address with the safe areas a story drawn edge to edge is told.
|
|
22
|
+
*
|
|
23
|
+
* @param address - the frame's address.
|
|
24
|
+
* @param safeArea - the safe areas.
|
|
25
|
+
*/
|
|
26
|
+
export const withSafeArea = (address, safeArea) => {
|
|
27
|
+
const value = SIDES.map((side) => String(Math.round(safeArea[side]))).join(",");
|
|
28
|
+
return `${address}${address.includes("?") ? "&" : "?"}${SAFE_AREA_PARAMETER}=${value}`;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* The custom properties a frame's address asks for: none when it carries no safe areas, or carries them wrongly.
|
|
32
|
+
*
|
|
33
|
+
* @param search - the frame's query.
|
|
34
|
+
*/
|
|
35
|
+
export const safeAreaProperties = (search) => {
|
|
36
|
+
const values = (new URLSearchParams(search).get(SAFE_AREA_PARAMETER) ?? "").split(",").map(Number);
|
|
37
|
+
if (values.length !== SIDES.length || values.some((value) => !Number.isFinite(value) || value < 0))
|
|
38
|
+
return [];
|
|
39
|
+
return SIDES.map((side, index) => [`--forgebook-safe-area-${side}`, `${values[index] ?? 0}px`]);
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Tells a page the safe areas its address carries, as CSS properties on its root.
|
|
43
|
+
*
|
|
44
|
+
* @param root - the page's root element.
|
|
45
|
+
* @param search - the page's address's query.
|
|
46
|
+
*/
|
|
47
|
+
export const applySafeArea = (root, search) => {
|
|
48
|
+
for (const [name, value] of safeAreaProperties(search))
|
|
49
|
+
root.style.setProperty(name, value);
|
|
50
|
+
};
|