forgebook 0.1.8 → 0.3.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 +987 -28
- 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 +164 -40
- package/dist/bin/forgebook/agentText.d.ts +76 -5
- package/dist/bin/forgebook/agentText.js +197 -11
- package/dist/bin/forgebook/agents.md +158 -9
- 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 +30 -13
- 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/argsProps.d.ts +32 -0
- package/dist/src/argsProps.js +69 -0
- 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 +103 -24
- package/dist/src/catalogue.js +78 -20
- 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 +184 -66
- 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/touchCaret.d.ts +43 -0
- package/dist/src/frame/touchCaret.js +195 -0
- package/dist/src/frame/touchDots.d.ts +0 -1
- package/dist/src/frame/touchDots.js +0 -1
- package/dist/src/frame/touchEvents.d.ts +3 -3
- package/dist/src/frame/touchEvents.js +17 -19
- 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 +52 -37
- 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 +109 -0
- package/dist/src/propGroups.js +113 -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 +16 -4
- package/dist/src/shell/ApiReference.js +82 -20
- 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 +48 -7
- package/dist/src/shell/ComponentPage.js +101 -59
- 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/PropRows.d.ts +42 -0
- package/dist/src/shell/PropRows.js +60 -0
- package/dist/src/shell/PropsTab.d.ts +24 -11
- package/dist/src/shell/PropsTab.js +31 -45
- package/dist/src/shell/RequiredFirstSwitch.d.ts +16 -0
- package/dist/src/shell/RequiredFirstSwitch.js +8 -0
- 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 +116 -75
- 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 +129 -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 +457 -0
- package/dist/src/shell/dockTabs.d.ts +20 -10
- package/dist/src/shell/dockTabs.js +42 -20
- 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/reportedPanel.d.ts +12 -0
- package/dist/src/shell/reportedPanel.js +19 -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 +341 -140
- 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 +58 -80
- package/dist/src/shell/strings.js +55 -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/usePanelDocs.d.ts +11 -0
- package/dist/src/shell/usePanelDocs.js +29 -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/useRequiredFirst.d.ts +27 -0
- package/dist/src/shell/useRequiredFirst.js +67 -0
- 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 +88 -2
- package/dist/src/storyCheck.js +14 -3
- 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 +2 -2
- 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 +89 -25
- package/dist/src/storyTree.js +213 -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 +44 -9
- package/dist/src/viewState.js +80 -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 +291 -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 +136 -9
- 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 +184 -27
- 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 +143 -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 +66 -9
- package/dist/src/vite/configFile.js +236 -33
- 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 +53 -0
- package/dist/src/vite/docPagesModule.js +121 -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 +50 -3
- package/dist/src/vite/docsExtractor.js +173 -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/fileAccess.d.ts +51 -0
- package/dist/src/vite/fileAccess.js +109 -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 +0 -1
- package/dist/src/vite/forgebookPlugin.js +305 -282
- 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 +342 -0
- package/dist/src/vite/functionComponentDocs.d.ts +26 -0
- package/dist/src/vite/functionComponentDocs.js +193 -0
- package/dist/src/vite/generatedModules.d.ts +23 -0
- package/dist/src/vite/generatedModules.js +58 -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 +172 -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 +130 -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 +97 -0
- package/dist/src/vite/originGuard.js +172 -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 +64 -10
- package/dist/src/vite/pages.js +278 -40
- 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 +27 -0
- package/dist/src/vite/pluginIds.js +76 -0
- package/dist/src/vite/pluginModules.d.ts +169 -0
- package/dist/src/vite/pluginModules.js +221 -0
- package/dist/src/vite/prebundled.d.ts +18 -5
- package/dist/src/vite/prebundled.js +29 -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 +42 -0
- package/dist/src/vite/searchModule.js +213 -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 +104 -20
- package/dist/src/vite/storyFilesModule.js +178 -60
- 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/storyPatterns.d.ts +39 -0
- package/dist/src/vite/storyPatterns.js +100 -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 +26 -0
- package/dist/src/vite/textQueries.js +26 -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,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The catalogue's search across everything: components, stories, docs pages, props and the text of the documentation,
|
|
3
|
+
* ranked as `forgebook find` ranks, so a person and an agent asking the same words get the same answer.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* A page or a component is one result, and what matched inside it are its hits: a person looks for a place first and a
|
|
7
|
+
* line second, and a word found in a component's name and another in one of its stories is one good answer, not two
|
|
8
|
+
* half ones. A word is worth what it is worth where it counts most in the result (`searchMatch.ts`), so the ranking is
|
|
9
|
+
* `findComponents`' with more places. A result that holds every word comes before one that does not, which says what it
|
|
10
|
+
* missed. Everything is read from the tree and the index (`searchIndex.ts`), with no server, so the same code answers
|
|
11
|
+
* in the page and on the dev server. Pure.
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
import type { SearchIndex } from "./searchIndex.ts";
|
|
16
|
+
import { type MarkedText } from "./searchMarks.ts";
|
|
17
|
+
import { type SearchPlace } from "./searchMatch.ts";
|
|
18
|
+
import { type StoryTree } from "./storyTree.ts";
|
|
19
|
+
/** Where a result or a hit goes: a page of the catalogue, at a heading or a prop when it has one. */
|
|
20
|
+
export type SearchTarget = ComponentTarget | PageTarget | {
|
|
21
|
+
/** A story's page. */
|
|
22
|
+
readonly kind: "story";
|
|
23
|
+
/** Its id. */
|
|
24
|
+
readonly id: string;
|
|
25
|
+
};
|
|
26
|
+
/** A component's page, at a heading or a prop when it has one. */
|
|
27
|
+
export type ComponentTarget = {
|
|
28
|
+
/** What it is. */
|
|
29
|
+
readonly kind: "component";
|
|
30
|
+
/** Its id. */
|
|
31
|
+
readonly id: string;
|
|
32
|
+
/** The heading or the prop it opens at. */
|
|
33
|
+
readonly anchor?: string;
|
|
34
|
+
};
|
|
35
|
+
/** A docs page, at a heading when it has one. */
|
|
36
|
+
export type PageTarget = {
|
|
37
|
+
/** What it is. */
|
|
38
|
+
readonly kind: "page";
|
|
39
|
+
/** Its id. */
|
|
40
|
+
readonly id: string;
|
|
41
|
+
/** The heading it opens at. */
|
|
42
|
+
readonly anchor?: string;
|
|
43
|
+
};
|
|
44
|
+
/** What a line of a result is: a kind of thing a word can be found in. */
|
|
45
|
+
export type SearchHitKind = "description" | "story" | "prop" | "event" | "heading" | "text";
|
|
46
|
+
/** Why a result's own name is there: where in its name, words or place a word of the query is. */
|
|
47
|
+
export type SearchReason = {
|
|
48
|
+
/** Where it is. */
|
|
49
|
+
readonly place: "name" | "keyword" | "title";
|
|
50
|
+
/** What stands there, when it is another word for the one asked (`modal` finding `dialog`). */
|
|
51
|
+
readonly means?: string;
|
|
52
|
+
};
|
|
53
|
+
/** A line of a result: something inside it that matched. */
|
|
54
|
+
export type SearchHit = {
|
|
55
|
+
/** What it is. */
|
|
56
|
+
readonly kind: SearchHitKind;
|
|
57
|
+
/** Its name, marked: the prop, the story, the heading; none for plain text. */
|
|
58
|
+
readonly label?: readonly MarkedText[];
|
|
59
|
+
/** The text around the match, marked. */
|
|
60
|
+
readonly snippet: readonly MarkedText[];
|
|
61
|
+
/** Where it goes. */
|
|
62
|
+
readonly target: SearchTarget;
|
|
63
|
+
};
|
|
64
|
+
/** A result: a component or a docs page. */
|
|
65
|
+
export type SearchResult = {
|
|
66
|
+
/** What it is. */
|
|
67
|
+
readonly kind: "component" | "page";
|
|
68
|
+
/** Where it goes. */
|
|
69
|
+
readonly target: ComponentTarget | PageTarget;
|
|
70
|
+
/** Its name, marked. */
|
|
71
|
+
readonly name: readonly MarkedText[];
|
|
72
|
+
/** Where it sits: its source and its place. */
|
|
73
|
+
readonly place: string;
|
|
74
|
+
/** How well it matches: higher is better, only comparable within an answer. */
|
|
75
|
+
readonly score: number;
|
|
76
|
+
/** The words of the query it holds. */
|
|
77
|
+
readonly matched: readonly string[];
|
|
78
|
+
/** The words of the query it does not. */
|
|
79
|
+
readonly missed: readonly string[];
|
|
80
|
+
/** Why its name is there; none when only what is inside it matched. */
|
|
81
|
+
readonly reasons: readonly SearchReason[];
|
|
82
|
+
/** The best of what matched inside it. */
|
|
83
|
+
readonly hits: readonly SearchHit[];
|
|
84
|
+
/** How many things inside it matched, those not listed included. */
|
|
85
|
+
readonly hitCount: number;
|
|
86
|
+
};
|
|
87
|
+
/** An answer. */
|
|
88
|
+
export type SearchAnswer = {
|
|
89
|
+
/** The results, best first. */
|
|
90
|
+
readonly results: readonly SearchResult[];
|
|
91
|
+
/** How many there are, those past the limit included. */
|
|
92
|
+
readonly total: number;
|
|
93
|
+
};
|
|
94
|
+
/** How much of an answer to give. */
|
|
95
|
+
export type SearchLimits = {
|
|
96
|
+
/** How many results. */
|
|
97
|
+
readonly results: number;
|
|
98
|
+
/** How many hits of each. */
|
|
99
|
+
readonly hits: number;
|
|
100
|
+
};
|
|
101
|
+
/** What the search reads of something inside a result. */
|
|
102
|
+
type Field = {
|
|
103
|
+
/** What it is. */
|
|
104
|
+
readonly kind: SearchHitKind | SearchReason["place"];
|
|
105
|
+
/** Its name; none for plain text. */
|
|
106
|
+
readonly label: string | undefined;
|
|
107
|
+
/** Its text. */
|
|
108
|
+
readonly text: string;
|
|
109
|
+
/** Its name's words. */
|
|
110
|
+
readonly labelWords: readonly string[];
|
|
111
|
+
/** Its text's words. */
|
|
112
|
+
readonly textWords: readonly string[];
|
|
113
|
+
/** Its name's and its text's words in order, each between spaces, as the words of a query are looked for in them. */
|
|
114
|
+
readonly sentences: readonly string[];
|
|
115
|
+
/** Where it goes. */
|
|
116
|
+
readonly target: SearchTarget;
|
|
117
|
+
};
|
|
118
|
+
/** A component or a docs page, read for the search. */
|
|
119
|
+
export type Searchable = {
|
|
120
|
+
/** What it is. */
|
|
121
|
+
readonly kind: SearchResult["kind"];
|
|
122
|
+
/** Where it goes. */
|
|
123
|
+
readonly target: SearchResult["target"];
|
|
124
|
+
/** Its name. */
|
|
125
|
+
readonly name: string;
|
|
126
|
+
/** Where it sits. */
|
|
127
|
+
readonly place: string;
|
|
128
|
+
/** What is in it. */
|
|
129
|
+
readonly fields: readonly Field[];
|
|
130
|
+
/** Its words, by where they are. */
|
|
131
|
+
readonly parts: Partial<Record<SearchPlace, readonly string[]>>;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Everything the search can find in a catalogue.
|
|
135
|
+
*
|
|
136
|
+
* @param tree - the tree: names, keywords and stories, there from the first screen.
|
|
137
|
+
* @param indexes - each source's index, by its id: what it adds is found once it is there.
|
|
138
|
+
*/
|
|
139
|
+
export declare const searchables: (tree: StoryTree, indexes: ReadonlyMap<string, SearchIndex>) => readonly Searchable[];
|
|
140
|
+
/** The most of a query that is read: a page pasted by mistake must not hold the tab for seconds. */
|
|
141
|
+
export declare const MAX_QUERY = 200;
|
|
142
|
+
/**
|
|
143
|
+
* What a query finds.
|
|
144
|
+
*
|
|
145
|
+
* @remarks
|
|
146
|
+
* Where something holds every word, what holds much less is left out: `the` must not bring the whole catalogue along
|
|
147
|
+
* with a sentence copied from a page. Nothing holding every word, the nearest are given, each saying what it missed.
|
|
148
|
+
*
|
|
149
|
+
* @param all - everything that can be found (`searchables`).
|
|
150
|
+
* @param query - what was typed.
|
|
151
|
+
* @param limits - how much of the answer to give.
|
|
152
|
+
*/
|
|
153
|
+
export declare const searchCatalogue: (all: readonly Searchable[], query: string, limits: SearchLimits) => SearchAnswer;
|
|
154
|
+
export {};
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The catalogue's search across everything: components, stories, docs pages, props and the text of the documentation,
|
|
3
|
+
* ranked as `forgebook find` ranks, so a person and an agent asking the same words get the same answer.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* A page or a component is one result, and what matched inside it are its hits: a person looks for a place first and a
|
|
7
|
+
* line second, and a word found in a component's name and another in one of its stories is one good answer, not two
|
|
8
|
+
* half ones. A word is worth what it is worth where it counts most in the result (`searchMatch.ts`), so the ranking is
|
|
9
|
+
* `findComponents`' with more places. A result that holds every word comes before one that does not, which says what it
|
|
10
|
+
* missed. Everything is read from the tree and the index (`searchIndex.ts`), with no server, so the same code answers
|
|
11
|
+
* in the page and on the dev server. Pure.
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
import { propAnchor } from "./docAnchors.js";
|
|
16
|
+
import { markedText, snippetOf } from "./searchMarks.js";
|
|
17
|
+
import { foldedText, meaningsOf, WEIGHTS, wordMatch, wordsOf, worthOf } from "./searchMatch.js";
|
|
18
|
+
import { componentId } from "./storyTree.js";
|
|
19
|
+
/** Where the words of a field's name count. */
|
|
20
|
+
const LABEL_PLACE = {
|
|
21
|
+
name: "name",
|
|
22
|
+
keyword: "keyword",
|
|
23
|
+
title: "title",
|
|
24
|
+
description: "description",
|
|
25
|
+
story: "story",
|
|
26
|
+
prop: "prop",
|
|
27
|
+
event: "prop",
|
|
28
|
+
heading: "heading",
|
|
29
|
+
text: "text"
|
|
30
|
+
};
|
|
31
|
+
/** Where the words of a field's text count. */
|
|
32
|
+
const TEXT_PLACE = {
|
|
33
|
+
...LABEL_PLACE,
|
|
34
|
+
prop: "description",
|
|
35
|
+
event: "description",
|
|
36
|
+
heading: "text"
|
|
37
|
+
};
|
|
38
|
+
/** A name's words, and the name as one word: `onvalue` starts `onValueChange`. */
|
|
39
|
+
const labelWordsOf = (label) => [
|
|
40
|
+
...new Set([...wordsOf(label), foldedText(label).replace(/[^\p{L}\p{N}]+/gu, "")])
|
|
41
|
+
];
|
|
42
|
+
/** A text's words in order, each between spaces: `art button` must not be found in `smart buttons`. */
|
|
43
|
+
const sentenceOf = (text) => ` ${wordsOf(text).join(" ")} `;
|
|
44
|
+
/** A field. */
|
|
45
|
+
const fieldOf = (kind, label, written, target) => {
|
|
46
|
+
// a TSDoc's backticks are marks, which a line of results does not draw
|
|
47
|
+
const text = written.replaceAll("`", "");
|
|
48
|
+
return {
|
|
49
|
+
kind,
|
|
50
|
+
label,
|
|
51
|
+
text,
|
|
52
|
+
labelWords: label === undefined ? [] : labelWordsOf(label),
|
|
53
|
+
textWords: [...new Set(wordsOf(text))],
|
|
54
|
+
sentences: [sentenceOf(label ?? ""), sentenceOf(text)],
|
|
55
|
+
target
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
/** A thing's words, by where they are. */
|
|
59
|
+
const partsOf = (fields) => {
|
|
60
|
+
const parts = new Map();
|
|
61
|
+
const add = (place, words) => {
|
|
62
|
+
const known = parts.get(place) ?? new Set();
|
|
63
|
+
for (const word of words)
|
|
64
|
+
known.add(word);
|
|
65
|
+
parts.set(place, known);
|
|
66
|
+
};
|
|
67
|
+
for (const field of fields) {
|
|
68
|
+
add(LABEL_PLACE[field.kind], field.labelWords);
|
|
69
|
+
add(TEXT_PLACE[field.kind], field.textWords);
|
|
70
|
+
}
|
|
71
|
+
return Object.fromEntries([...parts].map(([place, words]) => [place, [...words]]));
|
|
72
|
+
};
|
|
73
|
+
/** A stretch of documentation as a field of what holds it. */
|
|
74
|
+
const sectionField = (section, target) => {
|
|
75
|
+
const opened = section.anchor === undefined ? target : { ...target, anchor: section.anchor };
|
|
76
|
+
return fieldOf(section.heading === undefined ? "text" : "heading", section.heading, section.text, opened);
|
|
77
|
+
};
|
|
78
|
+
/** What the search reads of a component. */
|
|
79
|
+
const componentFields = (component, target, index) => [
|
|
80
|
+
fieldOf("name", component.name, "", target),
|
|
81
|
+
fieldOf("title", component.title.split("/").slice(0, -1).join(" "), "", target),
|
|
82
|
+
...component.keywords.map((keyword) => fieldOf("keyword", keyword, "", target)),
|
|
83
|
+
...(index?.lead === undefined ? [] : [fieldOf("description", undefined, index.lead, target)]),
|
|
84
|
+
...(index?.props ?? []).map(({ name, text, part, isEvent }) => fieldOf(isEvent === true ? "event" : "prop", name, text, { ...target, anchor: propAnchor(name, part) })),
|
|
85
|
+
...component.stories.map((story) => fieldOf("story", story.name, story.description ?? "", { kind: "story", id: story.id })),
|
|
86
|
+
...(index?.sections ?? []).map((section) => sectionField(section, target))
|
|
87
|
+
];
|
|
88
|
+
/** A component, read for the search. */
|
|
89
|
+
const searchableComponent = (source, familyName, groupName, component, index) => {
|
|
90
|
+
const target = { kind: "component", id: componentId(source.id, component.title) };
|
|
91
|
+
const fields = componentFields(component, target, index?.components?.[component.file]);
|
|
92
|
+
return {
|
|
93
|
+
kind: "component",
|
|
94
|
+
target,
|
|
95
|
+
name: component.name,
|
|
96
|
+
place: [source.name, familyName, groupName].filter((part) => part !== undefined).join(" · "),
|
|
97
|
+
fields,
|
|
98
|
+
parts: partsOf(fields)
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
/** A docs page, read for the search. */
|
|
102
|
+
const searchablePage = (source, page, index) => {
|
|
103
|
+
const target = { kind: "page", id: page.id };
|
|
104
|
+
const sections = index?.pages?.[page.file] ?? [];
|
|
105
|
+
const fields = [
|
|
106
|
+
fieldOf("name", page.name, "", target),
|
|
107
|
+
fieldOf("title", page.group ?? "", "", target),
|
|
108
|
+
...(page.description === undefined ? [] : [fieldOf("description", undefined, page.description, target)]),
|
|
109
|
+
...sections.map((section) => sectionField(section, target))
|
|
110
|
+
];
|
|
111
|
+
return {
|
|
112
|
+
kind: "page",
|
|
113
|
+
target,
|
|
114
|
+
name: page.name,
|
|
115
|
+
place: [source.name, page.group].filter((part) => part !== undefined).join(" · "),
|
|
116
|
+
fields,
|
|
117
|
+
parts: partsOf(fields)
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* Everything the search can find in a catalogue.
|
|
122
|
+
*
|
|
123
|
+
* @param tree - the tree: names, keywords and stories, there from the first screen.
|
|
124
|
+
* @param indexes - each source's index, by its id: what it adds is found once it is there.
|
|
125
|
+
*/
|
|
126
|
+
export const searchables = (tree, indexes) => tree.sources.flatMap((source) => {
|
|
127
|
+
const index = indexes.get(source.id);
|
|
128
|
+
return [
|
|
129
|
+
...source.pages.map((page) => searchablePage(source, page, index)),
|
|
130
|
+
...source.families.flatMap((family) => family.groups.flatMap((group) => group.components.map((component) => searchableComponent(source, family.name, group.name, component, index))))
|
|
131
|
+
];
|
|
132
|
+
});
|
|
133
|
+
/** How much of a query must be there for a result to stand beside one that holds all of it. */
|
|
134
|
+
const NEAR_SHARE = 0.75;
|
|
135
|
+
/** The most of a query that is read: a page pasted by mistake must not hold the tab for seconds. */
|
|
136
|
+
export const MAX_QUERY = 200;
|
|
137
|
+
/** A query's words and phrase. */
|
|
138
|
+
const queryOf = (typed) => {
|
|
139
|
+
const query = typed.slice(0, MAX_QUERY);
|
|
140
|
+
const words = wordsOf(query);
|
|
141
|
+
const isSeveral = words.length > 1;
|
|
142
|
+
return {
|
|
143
|
+
words: [...new Set(words)],
|
|
144
|
+
phrase: isSeveral ? foldedText(query).replace(/\s+/g, " ").trim() : undefined,
|
|
145
|
+
sentence: isSeveral ? sentenceOf(query) : undefined
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
/** Whether some word of a list holds a word asked for. */
|
|
149
|
+
const isHeldIn = (words, word) => {
|
|
150
|
+
const meanings = meaningsOf(word);
|
|
151
|
+
return words.some((held) => wordMatch(held, word, meanings) !== undefined);
|
|
152
|
+
};
|
|
153
|
+
/** Whether a field holds a query's sentence, in its name or its text. */
|
|
154
|
+
const holdsSentence = (field, sentence) => sentence !== undefined && field.sentences.some((each) => each.includes(sentence));
|
|
155
|
+
/** How a thing answers the query; none when it holds no word of it. */
|
|
156
|
+
const scored = (found, { words, sentence }) => {
|
|
157
|
+
const worths = words.map((word) => ({ word, worth: worthOf(found.parts, word) }));
|
|
158
|
+
const sum = worths.reduce((total, each) => total + each.worth, 0);
|
|
159
|
+
if (sum === 0)
|
|
160
|
+
return undefined;
|
|
161
|
+
const hasPhrase = found.fields.some((field) => holdsSentence(field, sentence));
|
|
162
|
+
return {
|
|
163
|
+
found,
|
|
164
|
+
score: sum + (hasPhrase ? WEIGHTS.name : 0),
|
|
165
|
+
matched: worths.filter((each) => each.worth > 0).map((each) => each.word),
|
|
166
|
+
missed: worths.filter((each) => each.worth === 0).map((each) => each.word)
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
/** The word that stands in a text for one asked, when it is another word for it. */
|
|
170
|
+
const synonymIn = (words, asked) => {
|
|
171
|
+
const meant = asked.flatMap((word) => {
|
|
172
|
+
const meanings = meaningsOf(word);
|
|
173
|
+
return words.find((held) => held !== word && meanings.includes(held) && !word.startsWith(held)) ?? [];
|
|
174
|
+
});
|
|
175
|
+
return meant[0];
|
|
176
|
+
};
|
|
177
|
+
/** Where a thing's name can say why it is there, the place that says most first. */
|
|
178
|
+
const REASON_PLACES = ["name", "keyword", "title"];
|
|
179
|
+
/** Why a thing's own name is there: each word answered once, where it counts most. */
|
|
180
|
+
const reasonsOf = ({ fields }, words) => {
|
|
181
|
+
let open = words;
|
|
182
|
+
return REASON_PLACES.flatMap((place) => {
|
|
183
|
+
const labels = fields.filter((field) => field.kind === place).flatMap((field) => field.labelWords);
|
|
184
|
+
const held = open.filter((word) => isHeldIn(labels, word));
|
|
185
|
+
if (held.length === 0)
|
|
186
|
+
return [];
|
|
187
|
+
open = open.filter((word) => !held.includes(word));
|
|
188
|
+
const means = synonymIn(labels, held);
|
|
189
|
+
return [means === undefined ? { place } : { place, means }];
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
/** Whether a field is a thing inside a result. */
|
|
193
|
+
const isInnerField = (field) => field.kind !== "name" && field.kind !== "keyword" && field.kind !== "title";
|
|
194
|
+
/** A field as a line a result may show; none when it holds nothing. */
|
|
195
|
+
const heldField = (field, { words, sentence }) => {
|
|
196
|
+
const inLabel = words.filter((word) => isHeldIn(field.labelWords, word));
|
|
197
|
+
const inText = words.filter((word) => isHeldIn(field.textWords, word));
|
|
198
|
+
const count = new Set([...inLabel, ...inText]).size;
|
|
199
|
+
if (count === 0)
|
|
200
|
+
return undefined;
|
|
201
|
+
const isInLabel = inLabel.length > 0 && inLabel.length >= inText.length;
|
|
202
|
+
return {
|
|
203
|
+
field,
|
|
204
|
+
isInLabel,
|
|
205
|
+
count,
|
|
206
|
+
worth: isInLabel ? WEIGHTS[LABEL_PLACE[field.kind]] : WEIGHTS[TEXT_PLACE[field.kind]],
|
|
207
|
+
hasPhrase: holdsSentence(field, sentence)
|
|
208
|
+
};
|
|
209
|
+
};
|
|
210
|
+
/** A field that matched as a line of its result. */
|
|
211
|
+
const hitOf = ({ field, isInLabel }, query) => {
|
|
212
|
+
const { kind, label, text, target } = field;
|
|
213
|
+
return {
|
|
214
|
+
kind: kind === "heading" && !isInLabel ? "text" : kind,
|
|
215
|
+
...(label === undefined ? {} : { label: markedText(label, query) }),
|
|
216
|
+
snippet: snippetOf(text, query),
|
|
217
|
+
target
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
/** A thing with its hits, as a result. */
|
|
221
|
+
const resultOf = ({ found, score, matched, missed }, query, limit) => {
|
|
222
|
+
const held = found.fields
|
|
223
|
+
.filter(isInnerField)
|
|
224
|
+
.flatMap((field) => heldField(field, query) ?? [])
|
|
225
|
+
.toSorted((first, second) => Number(second.hasPhrase) - Number(first.hasPhrase) ||
|
|
226
|
+
second.count - first.count ||
|
|
227
|
+
second.worth - first.worth);
|
|
228
|
+
return {
|
|
229
|
+
kind: found.kind,
|
|
230
|
+
target: found.target,
|
|
231
|
+
name: markedText(found.name, query),
|
|
232
|
+
place: found.place,
|
|
233
|
+
score,
|
|
234
|
+
matched,
|
|
235
|
+
missed,
|
|
236
|
+
reasons: reasonsOf(found, query.words),
|
|
237
|
+
hits: held.slice(0, limit).map((each) => hitOf(each, query)),
|
|
238
|
+
hitCount: held.length
|
|
239
|
+
};
|
|
240
|
+
};
|
|
241
|
+
/**
|
|
242
|
+
* What a query finds.
|
|
243
|
+
*
|
|
244
|
+
* @remarks
|
|
245
|
+
* Where something holds every word, what holds much less is left out: `the` must not bring the whole catalogue along
|
|
246
|
+
* with a sentence copied from a page. Nothing holding every word, the nearest are given, each saying what it missed.
|
|
247
|
+
*
|
|
248
|
+
* @param all - everything that can be found (`searchables`).
|
|
249
|
+
* @param query - what was typed.
|
|
250
|
+
* @param limits - how much of the answer to give.
|
|
251
|
+
*/
|
|
252
|
+
export const searchCatalogue = (all, query, limits) => {
|
|
253
|
+
const read = queryOf(query);
|
|
254
|
+
const found = all
|
|
255
|
+
.flatMap((each) => scored(each, read) ?? [])
|
|
256
|
+
.toSorted((first, second) => first.missed.length - second.missed.length ||
|
|
257
|
+
second.score - first.score ||
|
|
258
|
+
first.found.name.localeCompare(second.found.name));
|
|
259
|
+
const hasWhole = found.some((each) => each.missed.length === 0);
|
|
260
|
+
const kept = found.filter((each) => !hasWhole || each.matched.length >= read.words.length * NEAR_SHARE);
|
|
261
|
+
return {
|
|
262
|
+
results: kept.slice(0, limits.results).map((each) => resultOf(each, read, limits.hits)),
|
|
263
|
+
total: kept.length
|
|
264
|
+
};
|
|
265
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The search index: what the search reads that the page does not already hold, as the plugin builds it for each group of
|
|
3
|
+
* story files and docs pages, and the shell loads on the first search.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* The names, keywords and stories are in the tree the sidebar draws, so the index leaves them out and holds only what
|
|
7
|
+
* would otherwise take opening every component: the props, the descriptions and the text of the documentation. It
|
|
8
|
+
* crosses from the plugin to the page as data, so it is checked on arrival (`isSearchIndex`). Pure.
|
|
9
|
+
*
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
/** A stretch of documentation: the text under one heading, or before the first. */
|
|
13
|
+
export type SearchSection = {
|
|
14
|
+
/** The heading's anchor; none for the text before the first heading. */
|
|
15
|
+
readonly anchor?: string;
|
|
16
|
+
/** The heading's text, without marks. */
|
|
17
|
+
readonly heading?: string;
|
|
18
|
+
/** The text, plain, without its marks. */
|
|
19
|
+
readonly text: string;
|
|
20
|
+
};
|
|
21
|
+
/** A prop, an event or a hook's parameter of a component. */
|
|
22
|
+
export type SearchProp = {
|
|
23
|
+
/** Its name. */
|
|
24
|
+
readonly name: string;
|
|
25
|
+
/** What it does; empty when its TSDoc does not say. */
|
|
26
|
+
readonly text: string;
|
|
27
|
+
/** The part it belongs to (the meta's `subcomponents`); none for the component's own. */
|
|
28
|
+
readonly part?: string;
|
|
29
|
+
/** Whether it is an event, listed under the Events heading. */
|
|
30
|
+
readonly isEvent?: boolean;
|
|
31
|
+
};
|
|
32
|
+
/** What the search reads of a component beyond the tree. */
|
|
33
|
+
export type SearchComponent = {
|
|
34
|
+
/** What it is: its file's summary, its TSDoc and when to use it. */
|
|
35
|
+
readonly lead?: string;
|
|
36
|
+
/** Its props, events and parameters. */
|
|
37
|
+
readonly props?: readonly SearchProp[];
|
|
38
|
+
/** Its documentation file, by heading. */
|
|
39
|
+
readonly sections?: readonly SearchSection[];
|
|
40
|
+
};
|
|
41
|
+
/** A group's index: its components by story file, its docs pages by file. */
|
|
42
|
+
export type SearchIndex = {
|
|
43
|
+
/** The components, keyed as the group's files are. */
|
|
44
|
+
readonly components?: Readonly<Record<string, SearchComponent>>;
|
|
45
|
+
/** The docs pages' text by heading, keyed as the group's pages are. */
|
|
46
|
+
readonly pages?: Readonly<Record<string, readonly SearchSection[]>>;
|
|
47
|
+
/** What could not be read: the rest of the index still works. */
|
|
48
|
+
readonly problems?: readonly string[];
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Whether a value is a group's index: what its loader gives is unchecked data.
|
|
52
|
+
*
|
|
53
|
+
* @param value - what the loader gave.
|
|
54
|
+
*/
|
|
55
|
+
export declare const isSearchIndex: (value: unknown) => value is SearchIndex;
|
|
56
|
+
/**
|
|
57
|
+
* Several groups' indexes as one: the keys are unique across a source's groups.
|
|
58
|
+
*
|
|
59
|
+
* @param indexes - the indexes.
|
|
60
|
+
*/
|
|
61
|
+
export declare const mergedSearchIndex: (indexes: readonly SearchIndex[]) => SearchIndex;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The search index: what the search reads that the page does not already hold, as the plugin builds it for each group of
|
|
3
|
+
* story files and docs pages, and the shell loads on the first search.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* The names, keywords and stories are in the tree the sidebar draws, so the index leaves them out and holds only what
|
|
7
|
+
* would otherwise take opening every component: the props, the descriptions and the text of the documentation. It
|
|
8
|
+
* crosses from the plugin to the page as data, so it is checked on arrival (`isSearchIndex`). Pure.
|
|
9
|
+
*
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
/** Whether a value is a plain object. */
|
|
13
|
+
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
14
|
+
/** Whether a value is left out or a text. */
|
|
15
|
+
const isOptionalText = (value) => value === undefined || typeof value === "string";
|
|
16
|
+
/** Whether a value is a stretch of documentation. */
|
|
17
|
+
const isSection = (value) => isRecord(value) &&
|
|
18
|
+
typeof value["text"] === "string" &&
|
|
19
|
+
isOptionalText(value["anchor"]) &&
|
|
20
|
+
isOptionalText(value["heading"]);
|
|
21
|
+
/** Whether a value is left out or a list of stretches of documentation. */
|
|
22
|
+
const isOptionalSections = (value) => value === undefined || (Array.isArray(value) && value.every(isSection));
|
|
23
|
+
/** Whether a value is a prop of a component. */
|
|
24
|
+
const isProp = (value) => isRecord(value) &&
|
|
25
|
+
typeof value["name"] === "string" &&
|
|
26
|
+
typeof value["text"] === "string" &&
|
|
27
|
+
isOptionalText(value["part"]) &&
|
|
28
|
+
(value["isEvent"] === undefined || typeof value["isEvent"] === "boolean");
|
|
29
|
+
/** Whether a value is what the search reads of a component. */
|
|
30
|
+
const isComponent = (value) => isRecord(value) &&
|
|
31
|
+
isOptionalText(value["lead"]) &&
|
|
32
|
+
isOptionalSections(value["sections"]) &&
|
|
33
|
+
(value["props"] === undefined || (Array.isArray(value["props"]) && value["props"].every(isProp)));
|
|
34
|
+
/**
|
|
35
|
+
* Whether a value is a group's index: what its loader gives is unchecked data.
|
|
36
|
+
*
|
|
37
|
+
* @param value - what the loader gave.
|
|
38
|
+
*/
|
|
39
|
+
export const isSearchIndex = (value) => isRecord(value) &&
|
|
40
|
+
(value["components"] === undefined ||
|
|
41
|
+
(isRecord(value["components"]) && Object.values(value["components"]).every(isComponent))) &&
|
|
42
|
+
(value["pages"] === undefined ||
|
|
43
|
+
(isRecord(value["pages"]) && Object.values(value["pages"]).every(isOptionalSections))) &&
|
|
44
|
+
(value["problems"] === undefined ||
|
|
45
|
+
(Array.isArray(value["problems"]) && value["problems"].every((problem) => typeof problem === "string")));
|
|
46
|
+
/**
|
|
47
|
+
* Several groups' indexes as one: the keys are unique across a source's groups.
|
|
48
|
+
*
|
|
49
|
+
* @param indexes - the indexes.
|
|
50
|
+
*/
|
|
51
|
+
export const mergedSearchIndex = (indexes) => ({
|
|
52
|
+
components: Object.assign({}, ...indexes.map((index) => index.components)),
|
|
53
|
+
pages: Object.assign({}, ...indexes.map((index) => index.pages)),
|
|
54
|
+
problems: indexes.flatMap((index) => index.problems ?? [])
|
|
55
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** A piece of a text, marked when it matched. */
|
|
2
|
+
export type MarkedText = {
|
|
3
|
+
/** The text. */
|
|
4
|
+
readonly text: string;
|
|
5
|
+
/** Whether it is what was searched for. */
|
|
6
|
+
readonly isMatch: boolean;
|
|
7
|
+
};
|
|
8
|
+
/** What was searched for, as the marks read it. */
|
|
9
|
+
export type MarkedQuery = {
|
|
10
|
+
/** Its words. */
|
|
11
|
+
readonly words: readonly string[];
|
|
12
|
+
/** Its words as one text, when there are several (`foldedText`). */
|
|
13
|
+
readonly phrase: string | undefined;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* A short text with what matched marked.
|
|
17
|
+
*
|
|
18
|
+
* @param text - the text.
|
|
19
|
+
* @param query - what was searched for.
|
|
20
|
+
*/
|
|
21
|
+
export declare const markedText: (text: string, query: MarkedQuery) => readonly MarkedText[];
|
|
22
|
+
/**
|
|
23
|
+
* The part of a text worth showing, with what matched marked: around the matches that show most of the query, cut
|
|
24
|
+
* between words; the text's start when nothing in it matched.
|
|
25
|
+
*
|
|
26
|
+
* @param text - the text.
|
|
27
|
+
* @param query - what was searched for.
|
|
28
|
+
*/
|
|
29
|
+
export declare const snippetOf: (text: string, query: MarkedQuery) => readonly MarkedText[];
|