forgebook 0.3.3 → 0.4.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 +914 -72
- package/dist/bin/forgebook/agentClient.d.ts +2 -1
- package/dist/bin/forgebook/agentClient.js +13 -6
- package/dist/bin/forgebook/agentGuide.d.ts +59 -0
- package/dist/bin/forgebook/agentGuide.js +203 -0
- package/dist/bin/forgebook/agentLoopCommands.mjs +22 -42
- package/dist/bin/forgebook/agentSetup/agentFiles.d.ts +55 -0
- package/dist/bin/forgebook/agentSetup/agentFiles.js +319 -0
- package/dist/bin/forgebook/agentSetup/assistantHooks.d.ts +71 -0
- package/dist/bin/forgebook/agentSetup/assistantHooks.js +125 -0
- package/dist/bin/forgebook/agentSetup/ciWorkflow.d.ts +23 -0
- package/dist/bin/forgebook/agentSetup/ciWorkflow.js +55 -0
- package/dist/bin/forgebook/agentSetup/drawCandidates.d.ts +25 -0
- package/dist/bin/forgebook/agentSetup/drawCandidates.js +116 -0
- package/dist/bin/forgebook/agentSetup/drawDiagnosis.d.ts +28 -0
- package/dist/bin/forgebook/agentSetup/drawDiagnosis.js +134 -0
- package/dist/bin/forgebook/agentSetup/drawRun.d.ts +91 -0
- package/dist/bin/forgebook/agentSetup/drawRun.js +353 -0
- package/dist/bin/forgebook/agentSetup/hookNames.d.ts +7 -0
- package/dist/bin/forgebook/agentSetup/hookNames.js +7 -0
- package/dist/bin/forgebook/agentSetup/initAgentSteps.d.ts +48 -0
- package/dist/bin/forgebook/agentSetup/initAgentSteps.js +104 -0
- package/dist/bin/forgebook/agentSetup/liftedProviders.d.ts +17 -0
- package/dist/bin/forgebook/agentSetup/liftedProviders.js +186 -0
- package/dist/bin/forgebook/agentSetup/projectRunner.d.ts +46 -0
- package/dist/bin/forgebook/agentSetup/projectRunner.js +85 -0
- package/dist/bin/forgebook/agentSetup/stopHook.d.ts +65 -0
- package/dist/bin/forgebook/agentSetup/stopHook.js +202 -0
- package/dist/bin/forgebook/agentSetup/uniformPicture.d.ts +7 -0
- package/dist/bin/forgebook/agentSetup/uniformPicture.js +98 -0
- package/dist/bin/forgebook/agentSetupCommands.d.mts +14 -0
- package/dist/bin/forgebook/agentSetupCommands.mjs +98 -0
- package/dist/bin/forgebook/agentText.d.ts +23 -3
- package/dist/bin/forgebook/agentText.js +175 -28
- package/dist/bin/forgebook/agents.md +20 -191
- package/dist/bin/forgebook/agentsText.js +2 -1
- package/dist/bin/forgebook/appBuild/appBuild.d.ts +59 -0
- package/dist/bin/forgebook/appBuild/appBuild.js +213 -0
- package/dist/bin/forgebook/appBuild/appViteConfig.d.ts +96 -0
- package/dist/bin/forgebook/appBuild/appViteConfig.js +320 -0
- package/dist/bin/forgebook/appBuild/tsconfigPaths.d.ts +14 -0
- package/dist/bin/forgebook/appBuild/tsconfigPaths.js +80 -0
- package/dist/bin/forgebook/auditCommand.d.mts +8 -0
- package/dist/bin/forgebook/auditCommand.mjs +75 -0
- package/dist/bin/forgebook/auditRun.d.ts +95 -0
- package/dist/bin/forgebook/auditRun.js +270 -0
- package/dist/bin/forgebook/browserRun.d.ts +21 -0
- package/dist/bin/forgebook/browserRun.js +57 -0
- package/dist/bin/forgebook/buildFailure.d.ts +7 -0
- package/dist/bin/forgebook/buildFailure.js +47 -0
- package/dist/bin/forgebook/buildWatch.d.ts +52 -0
- package/dist/bin/forgebook/buildWatch.js +137 -0
- package/dist/bin/forgebook/builtCatalogue.js +9 -5
- package/dist/bin/forgebook/catalogueCommands.d.ts +9 -0
- package/dist/bin/forgebook/catalogueCommands.js +23 -0
- package/dist/bin/forgebook/catalogueVite.d.ts +5 -1
- package/dist/bin/forgebook/catalogueVite.js +14 -6
- package/dist/bin/forgebook/commandCacheClaim.d.ts +18 -0
- package/dist/bin/forgebook/commandCacheClaim.js +170 -0
- package/dist/bin/forgebook/commandServer.d.ts +8 -0
- package/dist/bin/forgebook/commandServer.js +61 -13
- package/dist/bin/forgebook/forgebookCommands.mjs +105 -28
- package/dist/bin/forgebook/graphCommand.d.mts +8 -0
- package/dist/bin/forgebook/graphCommand.mjs +84 -0
- package/dist/bin/forgebook/guide/commands.md +57 -0
- package/dist/bin/forgebook/guide/devices.md +17 -0
- package/dist/bin/forgebook/guide/docs-pages.md +13 -0
- package/dist/bin/forgebook/guide/frameworks/angular.md +22 -0
- package/dist/bin/forgebook/guide/frameworks/html.md +22 -0
- package/dist/bin/forgebook/guide/frameworks/nextjs.md +23 -0
- package/dist/bin/forgebook/guide/frameworks/nuxt.md +22 -0
- package/dist/bin/forgebook/guide/frameworks/preact.md +16 -0
- package/dist/bin/forgebook/guide/frameworks/react-native-web.md +21 -0
- package/dist/bin/forgebook/guide/frameworks/react.md +16 -0
- package/dist/bin/forgebook/guide/frameworks/solid.md +18 -0
- package/dist/bin/forgebook/guide/frameworks/svelte.md +18 -0
- package/dist/bin/forgebook/guide/frameworks/sveltekit.md +23 -0
- package/dist/bin/forgebook/guide/frameworks/vue.md +18 -0
- package/dist/bin/forgebook/guide/frameworks/web-components.md +21 -0
- package/dist/bin/forgebook/guide/links.md +29 -0
- package/dist/bin/forgebook/guide/setup.md +23 -0
- package/dist/bin/forgebook/guide/stories.md +90 -0
- package/dist/bin/forgebook/guide/switches.md +43 -0
- package/dist/bin/forgebook/guideCommand.d.mts +13 -0
- package/dist/bin/forgebook/guideCommand.mjs +37 -0
- package/dist/bin/forgebook/importers/storybook.d.ts +21 -0
- package/dist/bin/forgebook/importers/storybook.js +11 -5
- package/dist/bin/forgebook/importers/storybookFrameworks.js +1 -1
- package/dist/bin/forgebook/initCommands.d.mts +11 -0
- package/dist/bin/forgebook/initCommands.mjs +51 -78
- package/dist/bin/forgebook/initConfig.d.ts +5 -3
- package/dist/bin/forgebook/initConfig.js +6 -3
- package/dist/bin/forgebook/initInstall.d.ts +15 -0
- package/dist/bin/forgebook/initInstall.js +77 -0
- package/dist/bin/forgebook/initPrint.d.ts +9 -0
- package/dist/bin/forgebook/initPrint.js +60 -0
- package/dist/bin/forgebook/initRefusals.d.ts +45 -0
- package/dist/bin/forgebook/initRefusals.js +91 -0
- package/dist/bin/forgebook/initRun.d.ts +28 -0
- package/dist/bin/forgebook/initRun.js +311 -0
- package/dist/bin/forgebook/mcpCommand.mjs +38 -4
- package/dist/bin/forgebook/mcpGraph.d.ts +13 -0
- package/dist/bin/forgebook/mcpGraph.js +24 -0
- package/dist/bin/forgebook/mcpTokens.d.ts +14 -0
- package/dist/bin/forgebook/mcpTokens.js +58 -0
- package/dist/bin/forgebook/mcpToolParts.d.ts +7 -0
- package/dist/bin/forgebook/mcpToolParts.js +10 -0
- package/dist/bin/forgebook/mcpTools.d.ts +13 -6
- package/dist/bin/forgebook/mcpTools.js +57 -90
- package/dist/bin/forgebook/mcpVerify.d.ts +16 -0
- package/dist/bin/forgebook/mcpVerify.js +36 -0
- package/dist/bin/forgebook/migrate/codemods.d.ts +11 -0
- package/dist/bin/forgebook/migrate/codemods.js +61 -0
- package/dist/bin/forgebook/migrate/migrate.types.d.ts +117 -0
- package/dist/bin/forgebook/migrate/migrate.types.js +5 -0
- package/dist/bin/forgebook/migrate/migrateCommand.d.mts +8 -0
- package/dist/bin/forgebook/migrate/migrateCommand.mjs +76 -0
- package/dist/bin/forgebook/migrate/migrateRun.d.ts +61 -0
- package/dist/bin/forgebook/migrate/migrateRun.js +210 -0
- package/dist/bin/forgebook/migrate/migrateText.d.ts +12 -0
- package/dist/bin/forgebook/migrate/migrateText.js +30 -0
- package/dist/bin/forgebook/migrate/migrateWrite.d.ts +27 -0
- package/dist/bin/forgebook/migrate/migrateWrite.js +66 -0
- package/dist/bin/forgebook/migrate/objectEdits.d.ts +70 -0
- package/dist/bin/forgebook/migrate/objectEdits.js +241 -0
- package/dist/bin/forgebook/migrate/playOnInBuilds.d.ts +3 -0
- package/dist/bin/forgebook/migrate/playOnInBuilds.js +86 -0
- package/dist/bin/forgebook/migrate/propGroupStrings.d.ts +5 -0
- package/dist/bin/forgebook/migrate/propGroupStrings.js +81 -0
- package/dist/bin/forgebook/newProject/newProject.d.ts +39 -0
- package/dist/bin/forgebook/newProject/newProject.js +180 -0
- package/dist/bin/forgebook/newProject/newProject.types.d.ts +97 -0
- package/dist/bin/forgebook/newProject/newProject.types.js +6 -0
- package/dist/bin/forgebook/newProject/packageManagers.d.ts +51 -0
- package/dist/bin/forgebook/newProject/packageManagers.js +121 -0
- package/dist/bin/forgebook/newProject/projectEntries.d.ts +62 -0
- package/dist/bin/forgebook/newProject/projectEntries.js +191 -0
- package/dist/bin/forgebook/newProject/projectFrameworks.d.ts +57 -0
- package/dist/bin/forgebook/newProject/projectFrameworks.js +148 -0
- package/dist/bin/forgebook/newProject/projectLook.d.ts +23 -0
- package/dist/bin/forgebook/newProject/projectLook.js +293 -0
- package/dist/bin/forgebook/newProject/projectPackages.d.ts +66 -0
- package/dist/bin/forgebook/newProject/projectPackages.js +178 -0
- package/dist/bin/forgebook/newRepair.d.ts +45 -0
- package/dist/bin/forgebook/newRepair.js +157 -0
- package/dist/bin/forgebook/newRepairRun.d.ts +69 -0
- package/dist/bin/forgebook/newRepairRun.js +148 -0
- package/dist/bin/forgebook/newStories.d.ts +23 -1
- package/dist/bin/forgebook/newStories.js +101 -11
- package/dist/bin/forgebook/newStoriesFile.d.ts +20 -1
- package/dist/bin/forgebook/newStoriesFile.js +43 -4
- package/dist/bin/forgebook/prebundleRun.d.ts +3 -1
- package/dist/bin/forgebook/prebundleRun.js +28 -8
- package/dist/bin/forgebook/proofCommand.d.mts +15 -0
- package/dist/bin/forgebook/proofCommand.mjs +212 -0
- package/dist/bin/forgebook/proofRun.d.ts +63 -0
- package/dist/bin/forgebook/proofRun.js +412 -0
- package/dist/bin/forgebook/proofText.d.ts +36 -0
- package/dist/bin/forgebook/proofText.js +131 -0
- package/dist/bin/forgebook/proofWorkflow.d.ts +29 -0
- package/dist/bin/forgebook/proofWorkflow.js +205 -0
- package/dist/bin/forgebook/setArgsTool.d.ts +8 -0
- package/dist/bin/forgebook/setArgsTool.js +70 -0
- package/dist/bin/forgebook/storyCheckCommands.mjs +42 -3
- package/dist/bin/forgebook/storyCheckRun.d.ts +50 -0
- package/dist/bin/forgebook/storyCheckRun.js +83 -9
- package/dist/bin/forgebook/storyFileIds.d.ts +15 -0
- package/dist/bin/forgebook/storyFileIds.js +14 -0
- package/dist/bin/forgebook/stressCases.d.ts +31 -0
- package/dist/bin/forgebook/stressCases.js +79 -0
- package/dist/bin/forgebook/stressRun.d.ts +12 -0
- package/dist/bin/forgebook/stressRun.js +61 -0
- package/dist/bin/forgebook/stressText.d.ts +27 -0
- package/dist/bin/forgebook/stressText.js +46 -0
- package/dist/bin/forgebook/verifyBase.d.ts +45 -0
- package/dist/bin/forgebook/verifyBase.js +196 -0
- package/dist/bin/forgebook/verifyCommand.d.mts +13 -0
- package/dist/bin/forgebook/verifyCommand.mjs +125 -0
- package/dist/bin/forgebook/verifyRun.d.ts +63 -0
- package/dist/bin/forgebook/verifyRun.js +108 -0
- package/dist/bin/forgebook/verifyVerdict.d.ts +40 -0
- package/dist/bin/forgebook/verifyVerdict.js +297 -0
- package/dist/bin/forgebook/workflowActions.d.ts +23 -0
- package/dist/bin/forgebook/workflowActions.js +23 -0
- package/dist/bin/forgebook-docs/catalogueMarkdown.js +12 -1
- package/dist/src/addressArgs.d.ts +29 -5
- package/dist/src/addressArgs.js +58 -16
- package/dist/src/addressArgsParam.d.ts +54 -0
- package/dist/src/addressArgsParam.js +51 -0
- package/dist/src/addressTexts.d.ts +14 -0
- package/dist/src/addressTexts.js +28 -21
- package/dist/src/agentIndexFile.d.ts +11 -0
- package/dist/src/agentIndexFile.js +11 -0
- package/dist/src/argConditions.d.ts +52 -0
- package/dist/src/argConditions.js +80 -0
- package/dist/src/argControl.d.ts +100 -0
- package/dist/src/argControl.js +0 -0
- package/dist/src/argExpression.d.ts +21 -0
- package/dist/src/argExpression.js +30 -0
- package/dist/src/argTypes.d.ts +40 -51
- package/dist/src/argTypes.js +66 -184
- package/dist/src/argsProps.d.ts +3 -3
- package/dist/src/argsProps.js +11 -5
- package/dist/src/bundlerErrors.d.ts +29 -0
- package/dist/src/bundlerErrors.js +49 -0
- package/dist/src/catalogue.d.ts +31 -0
- package/dist/src/catalogue.js +13 -2
- package/dist/src/catalogueRefs.d.ts +75 -0
- package/dist/src/catalogueRefs.js +122 -0
- package/dist/src/componentDocs.d.ts +71 -0
- package/dist/src/componentDocs.js +15 -2
- package/dist/src/frame/callValues.d.ts +19 -0
- package/dist/src/frame/callValues.js +58 -0
- package/dist/src/frame/canvasScheme.d.ts +33 -0
- package/dist/src/frame/canvasScheme.js +67 -0
- package/dist/src/frame/frame.css +36 -3
- package/dist/src/frame/frameStatus.d.ts +16 -1
- package/dist/src/frame/frameStatus.js +16 -1
- package/dist/src/frame/frameView.js +4 -3
- package/dist/src/frame/mountFrame.d.ts +7 -1
- package/dist/src/frame/mountFrame.js +153 -46
- package/dist/src/frame/panelValues.d.ts +35 -0
- package/dist/src/frame/panelValues.js +127 -0
- package/dist/src/frame/playActions.d.ts +39 -0
- package/dist/src/frame/playActions.js +98 -0
- package/dist/src/frame/playStepper.d.ts +28 -0
- package/dist/src/frame/playStepper.js +38 -0
- package/dist/src/frame/playStory.d.ts +9 -1
- package/dist/src/frame/playStory.js +49 -3
- package/dist/src/frame/renderer.d.ts +34 -1
- package/dist/src/frame/renderer.js +24 -0
- package/dist/src/frame/shellChannel.d.ts +1 -1
- package/dist/src/frame/shellChannel.js +1 -1
- package/dist/src/frame/shellCheck.d.ts +17 -0
- package/dist/src/frame/shellCheck.js +25 -0
- package/dist/src/frame/shellMessageCheck.d.ts +7 -0
- package/dist/src/frame/shellMessageCheck.js +53 -0
- package/dist/src/frame/storyContent.d.ts +50 -0
- package/dist/src/frame/storyContent.js +73 -0
- package/dist/src/frame/storyModule.d.ts +9 -0
- package/dist/src/frame/storyModule.js +20 -2
- package/dist/src/frame/storyRun.d.ts +15 -7
- package/dist/src/frame/storyRun.js +64 -15
- package/dist/src/frame/valueSheets.d.ts +35 -0
- package/dist/src/frame/valueSheets.js +99 -0
- package/dist/src/hotModules.d.ts +20 -0
- package/dist/src/hotModules.js +23 -0
- package/dist/src/jsxCode.d.ts +1 -14
- package/dist/src/jsxCode.js +46 -10
- package/dist/src/liveErrors.d.ts +30 -4
- package/dist/src/liveErrors.js +18 -3
- package/dist/src/messages.d.ts +77 -27
- package/dist/src/messages.js +58 -100
- package/dist/src/namedValues.d.ts +2 -26
- package/dist/src/namedValues.js +0 -47
- package/dist/src/pageConfig.d.ts +2 -0
- package/dist/src/playTrace.d.ts +19 -2
- package/dist/src/playTrace.js +10 -5
- package/dist/src/plugin.d.ts +10 -3
- package/dist/src/previewRelay.js +9 -1
- package/dist/src/printable.d.ts +12 -0
- package/dist/src/printable.js +22 -0
- package/dist/src/propsSignature.d.ts +37 -0
- package/dist/src/propsSignature.js +40 -0
- package/dist/src/search.d.ts +41 -5
- package/dist/src/search.js +93 -23
- package/dist/src/searchMatch.d.ts +4 -1
- package/dist/src/searchMatch.js +26 -5
- package/dist/src/searchTypos.d.ts +88 -0
- package/dist/src/searchTypos.js +178 -0
- package/dist/src/shapeValues.d.ts +86 -0
- package/dist/src/shapeValues.js +295 -0
- package/dist/src/shell/ApiReference.js +6 -3
- package/dist/src/shell/ApiTableBox.d.ts +15 -0
- package/dist/src/shell/ApiTableBox.js +11 -0
- package/dist/src/shell/AppearanceMenu.d.ts +4 -1
- package/dist/src/shell/AppearanceMenu.js +9 -6
- package/dist/src/shell/CodeTab.d.ts +3 -2
- package/dist/src/shell/CodeTab.js +3 -2
- package/dist/src/shell/CodeText.d.ts +1 -1
- package/dist/src/shell/CodeText.js +2 -3
- package/dist/src/shell/CompareGrid.js +1 -1
- package/dist/src/shell/ComponentPage.d.ts +1 -1
- package/dist/src/shell/ComponentPage.js +5 -1
- package/dist/src/shell/CustomControl.d.ts +34 -0
- package/dist/src/shell/CustomControl.js +132 -0
- package/dist/src/shell/DocContainers.js +1 -1
- package/dist/src/shell/DocPage.js +2 -2
- package/dist/src/shell/DroppedArgsList.d.ts +2 -2
- package/dist/src/shell/DroppedArgsList.js +1 -1
- package/dist/src/shell/EmbedPage.js +30 -12
- package/dist/src/shell/Example.d.ts +5 -1
- package/dist/src/shell/Example.js +16 -8
- package/dist/src/shell/FrameView.d.ts +6 -3
- package/dist/src/shell/FrameView.js +2 -2
- package/dist/src/shell/HomePage.d.ts +3 -1
- package/dist/src/shell/HomePage.js +16 -6
- package/dist/src/shell/InfoTip.js +2 -2
- package/dist/src/shell/InteractionsTab.d.ts +11 -4
- package/dist/src/shell/InteractionsTab.js +18 -2
- package/dist/src/shell/LazyPage.js +1 -1
- package/dist/src/shell/PackageHtml.js +3 -1
- package/dist/src/shell/PinnedControl.js +14 -62
- package/dist/src/shell/PinnedControlMenu.d.ts +44 -0
- package/dist/src/shell/PinnedControlMenu.js +72 -0
- package/dist/src/shell/PropFields.d.ts +3 -1
- package/dist/src/shell/PropFields.js +9 -6
- package/dist/src/shell/PropRows.d.ts +23 -2
- package/dist/src/shell/PropRows.js +58 -19
- package/dist/src/shell/PropsTab.d.ts +12 -5
- package/dist/src/shell/PropsTab.js +9 -21
- package/dist/src/shell/RefStoryPage.d.ts +33 -0
- package/dist/src/shell/RefStoryPage.js +123 -0
- package/dist/src/shell/SearchPanel.js +51 -24
- package/dist/src/shell/Shell.d.ts +18 -0
- package/dist/src/shell/Shell.js +137 -22
- package/dist/src/shell/ShortcutHelp.d.ts +22 -0
- package/dist/src/shell/ShortcutHelp.js +66 -0
- package/dist/src/shell/Sidebar.d.ts +17 -4
- package/dist/src/shell/Sidebar.js +92 -41
- package/dist/src/shell/SidebarDocs.js +2 -2
- package/dist/src/shell/SidebarEntries.js +5 -3
- package/dist/src/shell/SidebarHandle.d.ts +3 -5
- package/dist/src/shell/SidebarHandle.js +4 -4
- package/dist/src/shell/SidebarRefs.d.ts +39 -0
- package/dist/src/shell/SidebarRefs.js +99 -0
- package/dist/src/shell/SidebarSearch.js +37 -9
- package/dist/src/shell/SignatureReference.js +3 -1
- package/dist/src/shell/Stage.d.ts +10 -2
- package/dist/src/shell/Stage.js +29 -49
- package/dist/src/shell/StatusBadges.d.ts +54 -0
- package/dist/src/shell/StatusBadges.js +77 -0
- package/dist/src/shell/StoryCodeBlock.d.ts +8 -19
- package/dist/src/shell/StoryCodeBlock.js +7 -6
- package/dist/src/shell/SwitchGallery.d.ts +36 -0
- package/dist/src/shell/SwitchGallery.js +17 -0
- package/dist/src/shell/SwitchGalleryPanel.d.ts +37 -0
- package/dist/src/shell/SwitchGalleryPanel.js +99 -0
- package/dist/src/shell/TagFilter.d.ts +24 -0
- package/dist/src/shell/TagFilter.js +45 -0
- package/dist/src/shell/TagViews.d.ts +39 -0
- package/dist/src/shell/TagViews.js +20 -0
- package/dist/src/shell/Toolbar.d.ts +4 -1
- package/dist/src/shell/Toolbar.js +17 -7
- package/dist/src/shell/ToolbarControl.d.ts +3 -0
- package/dist/src/shell/ToolbarControl.js +23 -6
- package/dist/src/shell/ViewMenuPanel.js +6 -1
- package/dist/src/shell/argChecks.d.ts +22 -0
- package/dist/src/shell/argChecks.js +20 -0
- package/dist/src/shell/asideStory.js +7 -2
- package/dist/src/shell/audienceSections.css +9 -9
- package/dist/src/shell/catalogueContext.d.ts +1 -1
- package/dist/src/shell/catalogueContext.js +6 -1
- package/dist/src/shell/codeSpans.d.ts +27 -0
- package/dist/src/shell/codeSpans.js +76 -0
- package/dist/src/shell/compareVariants.d.ts +4 -2
- package/dist/src/shell/compareVariants.js +16 -8
- package/dist/src/shell/composition.d.ts +23 -0
- package/dist/src/shell/composition.js +26 -0
- package/dist/src/shell/controlCycle.d.ts +1 -1
- package/dist/src/shell/controlCycle.js +3 -2
- package/dist/src/shell/customControls.d.ts +55 -0
- package/dist/src/shell/customControls.js +70 -0
- package/dist/src/shell/docPage.css +22 -22
- package/dist/src/shell/dockTabs.d.ts +19 -3
- package/dist/src/shell/dockTabs.js +28 -20
- package/dist/src/shell/embed.css +7 -7
- package/dist/src/shell/framesOrigin.d.ts +7 -0
- package/dist/src/shell/framesOrigin.js +1 -1
- package/dist/src/shell/galleryPlace.d.ts +20 -0
- package/dist/src/shell/galleryPlace.js +26 -0
- package/dist/src/shell/icons.d.ts +1 -0
- package/dist/src/shell/icons.js +1 -0
- package/dist/src/shell/keyboard.d.ts +14 -12
- package/dist/src/shell/keyboard.js +21 -6
- package/dist/src/shell/laterStrings.d.ts +29 -0
- package/dist/src/shell/laterStrings.js +42 -3
- package/dist/src/shell/mountShell.js +3 -0
- package/dist/src/shell/pageStrings.d.ts +4 -0
- package/dist/src/shell/pageStrings.js +4 -0
- package/dist/src/shell/pageTagView.d.ts +18 -0
- package/dist/src/shell/pageTagView.js +10 -0
- package/dist/src/shell/playMemory.d.ts +14 -0
- package/dist/src/shell/playMemory.js +8 -0
- package/dist/src/shell/propNotes.d.ts +23 -0
- package/dist/src/shell/propNotes.js +37 -0
- package/dist/src/shell/refIndexLoad.d.ts +17 -0
- package/dist/src/shell/refIndexLoad.js +38 -0
- package/dist/src/shell/refParts.d.ts +34 -0
- package/dist/src/shell/refParts.js +9 -0
- package/dist/src/shell/refStory.css +21 -0
- package/dist/src/shell/refStrings.d.ts +13 -0
- package/dist/src/shell/refStrings.js +21 -0
- package/dist/src/shell/search.css +11 -11
- package/dist/src/shell/shell.css +348 -168
- package/dist/src/shell/shellScheme.js +2 -2
- package/dist/src/shell/shortcutHelp.css +64 -0
- package/dist/src/shell/stageArgs.d.ts +53 -0
- package/dist/src/shell/stageArgs.js +64 -0
- package/dist/src/shell/statusBadges.css +51 -0
- package/dist/src/shell/strings.d.ts +7 -16
- package/dist/src/shell/strings.js +12 -17
- package/dist/src/shell/switchGallery.css +104 -0
- package/dist/src/shell/tagFilter.css +46 -0
- package/dist/src/shell/tagView.d.ts +20 -0
- package/dist/src/shell/tagView.js +10 -0
- package/dist/src/shell/useAddressArgs.d.ts +9 -0
- package/dist/src/shell/useAddressArgs.js +56 -11
- package/dist/src/shell/useControlKeys.js +2 -2
- package/dist/src/shell/useEditedProblems.d.ts +6 -0
- package/dist/src/shell/useEditedProblems.js +40 -0
- package/dist/src/shell/useFrameMessages.js +3 -0
- package/dist/src/shell/useListedTree.d.ts +13 -0
- package/dist/src/shell/useListedTree.js +32 -0
- package/dist/src/shell/usePageFrames.js +2 -2
- package/dist/src/shell/usePopover.d.ts +5 -0
- package/dist/src/shell/usePopover.js +7 -1
- package/dist/src/shell/useRefIndex.d.ts +22 -0
- package/dist/src/shell/useRefIndex.js +36 -0
- package/dist/src/shell/useScrollStops.d.ts +20 -0
- package/dist/src/shell/useScrollStops.js +41 -0
- package/dist/src/shell/useShortcutHelp.d.ts +18 -0
- package/dist/src/shell/useShortcutHelp.js +32 -0
- package/dist/src/shell/useSidebarOverlay.d.ts +2 -1
- package/dist/src/shell/useSidebarOverlay.js +12 -4
- package/dist/src/shell/useStoryCode.d.ts +2 -1
- package/dist/src/shell/useStoryCode.js +12 -7
- package/dist/src/shell/useToolbarLayout.d.ts +5 -1
- package/dist/src/shell/useToolbarLayout.js +2 -2
- package/dist/src/shell/useWorstCase.d.ts +8 -2
- package/dist/src/shell/useWorstCase.js +2 -2
- package/dist/src/shell/valueEditors/FileEditor.d.ts +28 -0
- package/dist/src/shell/valueEditors/FileEditor.js +66 -0
- package/dist/src/shell/valueEditors/JsonEditor.d.ts +14 -0
- package/dist/src/shell/valueEditors/JsonEditor.js +53 -0
- package/dist/src/shell/valueEditors/ListEditor.d.ts +24 -0
- package/dist/src/shell/valueEditors/ListEditor.js +82 -0
- package/dist/src/shell/valueEditors/ObjectEditor.d.ts +32 -0
- package/dist/src/shell/valueEditors/ObjectEditor.js +70 -0
- package/dist/src/shell/valueEditors/PropEditor.d.ts +37 -0
- package/dist/src/shell/valueEditors/PropEditor.js +53 -0
- package/dist/src/shell/valueEditors/RecordEditor.d.ts +20 -0
- package/dist/src/shell/valueEditors/RecordEditor.js +84 -0
- package/dist/src/shell/valueEditors/SearchSelect.d.ts +42 -0
- package/dist/src/shell/valueEditors/SearchSelect.js +80 -0
- package/dist/src/shell/valueEditors/TokenEditor.d.ts +49 -0
- package/dist/src/shell/valueEditors/TokenEditor.js +74 -0
- package/dist/src/shell/valueEditors/UnionEditor.d.ts +20 -0
- package/dist/src/shell/valueEditors/UnionEditor.js +64 -0
- package/dist/src/shell/valueEditors/ValueField.d.ts +15 -0
- package/dist/src/shell/valueEditors/ValueField.js +147 -0
- package/dist/src/shell/valueEditors/editorStrings.d.ts +56 -0
- package/dist/src/shell/valueEditors/editorStrings.js +66 -0
- package/dist/src/shell/valueEditors/fieldTypes.d.ts +31 -0
- package/dist/src/shell/valueEditors/fieldTypes.js +0 -0
- package/dist/src/shell/valueEditors/valueEditors.css +153 -0
- package/dist/src/shell/worstArgs.d.ts +8 -5
- package/dist/src/shell/worstArgs.js +14 -7
- package/dist/src/shellTheme.d.ts +1 -1
- package/dist/src/shellTheme.js +15 -1
- package/dist/src/shellTheme.types.d.ts +4 -0
- package/dist/src/shellWord.d.ts +12 -0
- package/dist/src/shellWord.js +15 -0
- package/dist/src/sourceFiles.js +2 -1
- package/dist/src/storyArgTypes.d.ts +57 -0
- package/dist/src/storyArgTypes.js +195 -0
- package/dist/src/storyBackground.js +14 -3
- package/dist/src/storyCheck.d.ts +85 -3
- package/dist/src/storyCheck.js +23 -1
- package/dist/src/storyCodeText.d.ts +46 -0
- package/dist/src/storyCodeText.js +27 -0
- package/dist/src/storyControls.d.ts +100 -0
- package/dist/src/storyControls.js +100 -0
- package/dist/src/storyStatuses.d.ts +55 -0
- package/dist/src/storyStatuses.js +104 -0
- package/dist/src/storyTagNames.d.ts +25 -0
- package/dist/src/storyTagNames.js +25 -0
- package/dist/src/storyTags.d.ts +29 -0
- package/dist/src/storyTags.js +85 -0
- package/dist/src/storyTree.d.ts +13 -0
- package/dist/src/storyTree.js +24 -4
- package/dist/src/storybookArgs.d.ts +24 -0
- package/dist/src/storybookArgs.js +185 -0
- package/dist/src/switches.d.ts +66 -3
- package/dist/src/switches.js +42 -1
- package/dist/src/valueSchema.d.ts +28 -0
- package/dist/src/valueSchema.js +196 -0
- package/dist/src/valueShape.d.ts +94 -0
- package/dist/src/valueShape.js +25 -0
- package/dist/src/viewState.d.ts +8 -3
- package/dist/src/viewState.js +27 -10
- package/dist/src/vite/adapter.d.ts +40 -2
- package/dist/src/vite/adapter.js +1 -0
- package/dist/src/vite/agent.types.d.ts +347 -7
- package/dist/src/vite/agentApi.d.ts +23 -0
- package/dist/src/vite/agentApi.js +90 -17
- package/dist/src/vite/agentIndex.d.ts +0 -2
- package/dist/src/vite/agentIndex.js +5 -6
- package/dist/src/vite/agentRoutes.d.ts +20 -1
- package/dist/src/vite/agentRoutes.js +106 -65
- package/dist/src/vite/agentStatuses.d.ts +42 -0
- package/dist/src/vite/agentStatuses.js +67 -0
- package/dist/src/vite/agentStoryCode.d.ts +48 -0
- package/dist/src/vite/agentStoryCode.js +38 -0
- package/dist/src/vite/agentVisibility.d.ts +47 -0
- package/dist/src/vite/agentVisibility.js +174 -0
- package/dist/src/vite/appAudit.d.ts +134 -0
- package/dist/src/vite/appAudit.js +333 -0
- package/dist/src/vite/appBuildOption.d.ts +53 -0
- package/dist/src/vite/appBuildOption.js +55 -0
- package/dist/src/vite/appTokenFiles.d.ts +92 -0
- package/dist/src/vite/appTokenFiles.js +433 -0
- package/dist/src/vite/appTokens.d.ts +23 -0
- package/dist/src/vite/appTokens.js +275 -0
- package/dist/src/vite/builtTexts.d.ts +10 -0
- package/dist/src/vite/builtTexts.js +59 -22
- package/dist/src/vite/catalogueConfig.d.ts +3 -1
- package/dist/src/vite/catalogueConfig.js +15 -3
- package/dist/src/vite/changeCoverage.d.ts +74 -0
- package/dist/src/vite/changeCoverage.js +120 -0
- package/dist/src/vite/changedRoute.d.ts +30 -0
- package/dist/src/vite/changedRoute.js +197 -0
- package/dist/src/vite/checkCode.d.ts +105 -3
- package/dist/src/vite/checkCode.js +323 -36
- package/dist/src/vite/checkoutWatch.d.ts +97 -0
- package/dist/src/vite/checkoutWatch.js +287 -0
- package/dist/src/vite/closeWatch.d.ts +8 -0
- package/dist/src/vite/closeWatch.js +1 -1
- package/dist/src/vite/componentCache.d.ts +8 -0
- package/dist/src/vite/componentCache.js +66 -0
- package/dist/src/vite/componentGraph.d.ts +71 -0
- package/dist/src/vite/componentGraph.js +133 -0
- package/dist/src/vite/componentRules.d.ts +33 -0
- package/dist/src/vite/componentRules.js +105 -0
- package/dist/src/vite/componentScan.d.ts +69 -0
- package/dist/src/vite/componentScan.js +418 -0
- package/dist/src/vite/compositionCheck.d.ts +15 -0
- package/dist/src/vite/compositionCheck.js +243 -0
- package/dist/src/vite/config.d.ts +32 -1
- package/dist/src/vite/configFile.d.ts +14 -2
- package/dist/src/vite/configFile.js +124 -40
- package/dist/src/vite/configKeys.d.ts +15 -0
- package/dist/src/vite/configKeys.js +171 -0
- package/dist/src/vite/configLoadError.d.ts +23 -0
- package/dist/src/vite/configLoadError.js +71 -0
- package/dist/src/vite/cssDeclarations.d.ts +71 -0
- package/dist/src/vite/cssDeclarations.js +290 -0
- package/dist/src/vite/cssImports.d.ts +14 -0
- package/dist/src/vite/cssImports.js +48 -0
- package/dist/src/vite/cssReferences.d.ts +54 -0
- package/dist/src/vite/cssReferences.js +157 -0
- package/dist/src/vite/cssTokenValues.d.ts +50 -0
- package/dist/src/vite/cssTokenValues.js +233 -0
- package/dist/src/vite/designTokens.d.ts +24 -0
- package/dist/src/vite/designTokens.js +5 -1
- package/dist/src/vite/docsExtractor.d.ts +9 -3
- package/dist/src/vite/docsExtractor.js +11 -3
- package/dist/src/vite/docsProgram.d.ts +17 -4
- package/dist/src/vite/docsProgram.js +52 -11
- package/dist/src/vite/docsWorker.js +7 -2
- package/dist/src/vite/emptyStoryGlobs.d.ts +41 -0
- package/dist/src/vite/emptyStoryGlobs.js +52 -0
- package/dist/src/vite/fileImports.d.ts +17 -0
- package/dist/src/vite/fileImports.js +57 -0
- package/dist/src/vite/findComponent.d.ts +10 -2
- package/dist/src/vite/findComponent.js +27 -22
- package/dist/src/vite/findRoute.js +3 -2
- package/dist/src/vite/forcedStates.d.ts +9 -2
- package/dist/src/vite/forcedStates.js +12 -3
- package/dist/src/vite/forgebookPlugin.d.ts +2 -0
- package/dist/src/vite/forgebookPlugin.js +52 -72
- package/dist/src/vite/frameErrors.d.ts +19 -0
- package/dist/src/vite/frameErrors.js +70 -0
- package/dist/src/vite/framesServer.d.ts +12 -0
- package/dist/src/vite/framesServer.js +21 -4
- package/dist/src/vite/functionComponentDocs.js +81 -12
- package/dist/src/vite/generatedModules.js +4 -2
- package/dist/src/vite/gitChange.d.ts +38 -5
- package/dist/src/vite/gitChange.js +71 -11
- package/dist/src/vite/hiddenStoryFiles.d.ts +23 -0
- package/dist/src/vite/hiddenStoryFiles.js +107 -0
- package/dist/src/vite/hotSnippets.d.ts +38 -14
- package/dist/src/vite/hotSnippets.js +137 -39
- package/dist/src/vite/importedNames.d.ts +37 -0
- package/dist/src/vite/importedNames.js +138 -0
- package/dist/src/vite/indexFields.d.ts +6 -0
- package/dist/src/vite/indexFields.js +21 -0
- package/dist/src/vite/indexStoryFile.d.ts +8 -1
- package/dist/src/vite/indexStoryFile.js +22 -157
- package/dist/src/vite/jsxCallSites.d.ts +33 -0
- package/dist/src/vite/jsxCallSites.js +200 -0
- package/dist/src/vite/jsxInScripts.d.ts +67 -0
- package/dist/src/vite/jsxInScripts.js +138 -0
- package/dist/src/vite/jsxTree.d.ts +20 -0
- package/dist/src/vite/jsxTree.js +163 -0
- package/dist/src/vite/lineAndColumn.d.ts +13 -0
- package/dist/src/vite/lineAndColumn.js +18 -0
- package/dist/src/vite/lookAlikes.d.ts +65 -0
- package/dist/src/vite/lookAlikes.js +228 -0
- package/dist/src/vite/nearestToken.d.ts +17 -0
- package/dist/src/vite/nearestToken.js +9 -2
- package/dist/src/vite/packageEntries.d.ts +42 -0
- package/dist/src/vite/packageEntries.js +127 -0
- package/dist/src/vite/pages.d.ts +9 -1
- package/dist/src/vite/pages.js +108 -4
- package/dist/src/vite/pluginConfig.js +4 -0
- package/dist/src/vite/pluginIds.d.ts +2 -0
- package/dist/src/vite/pluginIds.js +5 -1
- package/dist/src/vite/pluginModules.d.ts +81 -11
- package/dist/src/vite/pluginModules.js +109 -21
- package/dist/src/vite/prebundled.d.ts +57 -15
- package/dist/src/vite/prebundled.js +80 -0
- package/dist/src/vite/previewTags.d.ts +25 -0
- package/dist/src/vite/previewTags.js +56 -0
- package/dist/src/vite/projectFiles.d.ts +54 -0
- package/dist/src/vite/projectFiles.js +116 -0
- package/dist/src/vite/projectPostcss.d.ts +70 -0
- package/dist/src/vite/projectPostcss.js +250 -0
- package/dist/src/vite/propDocs.d.ts +12 -0
- package/dist/src/vite/propDocs.js +130 -58
- package/dist/src/vite/propKind.d.ts +40 -0
- package/dist/src/vite/propKind.js +71 -0
- package/dist/src/vite/propTypeNotes.d.ts +22 -0
- package/dist/src/vite/propTypeNotes.js +51 -0
- package/dist/src/vite/publishedExports.d.ts +27 -0
- package/dist/src/vite/publishedExports.js +298 -0
- package/dist/src/vite/realFolder.d.ts +6 -0
- package/dist/src/vite/realFolder.js +25 -0
- package/dist/src/vite/refsConfig.d.ts +39 -0
- package/dist/src/vite/refsConfig.js +54 -0
- package/dist/src/vite/reuseCheck.d.ts +45 -0
- package/dist/src/vite/reuseCheck.js +260 -0
- package/dist/src/vite/runningVersions.d.ts +33 -0
- package/dist/src/vite/runningVersions.js +25 -0
- package/dist/src/vite/scriptProblems.d.ts +60 -0
- package/dist/src/vite/scriptProblems.js +155 -0
- package/dist/src/vite/searchModule.js +3 -2
- package/dist/src/vite/searchRoute.js +4 -2
- package/dist/src/vite/shapeDocs.d.ts +36 -0
- package/dist/src/vite/shapeDocs.js +177 -0
- package/dist/src/vite/singleFileComponent.d.ts +17 -0
- package/dist/src/vite/singleFileComponent.js +83 -0
- package/dist/src/vite/sourceText.d.ts +34 -0
- package/dist/src/vite/sourceText.js +72 -0
- package/dist/src/vite/sourceTokens.d.ts +7 -0
- package/dist/src/vite/sourceTokens.js +7 -2
- package/dist/src/vite/stackLines.d.ts +49 -0
- package/dist/src/vite/stackLines.js +96 -0
- package/dist/src/vite/storyCode.d.ts +22 -7
- package/dist/src/vite/storyCode.js +263 -37
- package/dist/src/vite/storyCoverage.d.ts +48 -0
- package/dist/src/vite/storyCoverage.js +179 -0
- package/dist/src/vite/storyFilesModule.d.ts +48 -3
- package/dist/src/vite/storyFilesModule.js +105 -15
- package/dist/src/vite/storyPatterns.d.ts +31 -0
- package/dist/src/vite/storyPatterns.js +140 -5
- package/dist/src/vite/storyReach.d.ts +10 -2
- package/dist/src/vite/storyReach.js +15 -11
- package/dist/src/vite/storyTopLevel.d.ts +51 -0
- package/dist/src/vite/storyTopLevel.js +146 -0
- package/dist/src/vite/storylessRoutes.d.ts +4 -3
- package/dist/src/vite/storylessRoutes.js +210 -19
- package/dist/src/vite/switchValuesCheck.d.ts +19 -0
- package/dist/src/vite/switchValuesCheck.js +164 -0
- package/dist/src/vite/switchesDocument.d.ts +15 -0
- package/dist/src/vite/switchesDocument.js +47 -0
- package/dist/src/vite/tailwindConfigTokens.d.ts +41 -0
- package/dist/src/vite/tailwindConfigTokens.js +306 -0
- package/dist/src/vite/textImports.d.ts +15 -0
- package/dist/src/vite/textImports.js +58 -0
- package/dist/src/vite/textModules.d.ts +6 -5
- package/dist/src/vite/textModules.js +13 -8
- package/dist/src/vite/tokenAnswers.d.ts +6 -2
- package/dist/src/vite/tokenAnswers.js +11 -7
- package/dist/src/vite/typeParameters.d.ts +83 -0
- package/dist/src/vite/typeParameters.js +270 -0
- package/dist/src/vite/unionProps.d.ts +37 -0
- package/dist/src/vite/unionProps.js +121 -0
- package/dist/src/vite/unresolvedTokens.d.ts +20 -0
- package/dist/src/vite/unresolvedTokens.js +193 -0
- package/dist/src/vite/usageGraph.js +10 -52
- package/dist/src/vite/usageGuidance.d.ts +9 -2
- package/dist/src/vite/usageGuidance.js +36 -8
- package/dist/src/vite/usageImports.d.ts +35 -0
- package/dist/src/vite/usageImports.js +280 -0
- package/dist/src/vite/visibilityRoute.d.ts +16 -0
- package/dist/src/vite/visibilityRoute.js +320 -0
- package/dist/src/worstCase.d.ts +2 -0
- package/dist/src/worstCase.js +2 -0
- package/package.json +28 -8
|
@@ -38,15 +38,28 @@ export declare const KEPT_PROGRAMS = 4;
|
|
|
38
38
|
* one component at a time. A reader of everything asks for it (`programFor`'s `reach`).
|
|
39
39
|
*/
|
|
40
40
|
export declare const readAskedFilesOnly: () => void;
|
|
41
|
-
/**
|
|
42
|
-
|
|
41
|
+
/**
|
|
42
|
+
* From now on a program holds the given story files its configuration lists and what they import, not its whole
|
|
43
|
+
* configuration: a build reads every story's docs and "Used in", which need nothing the stories do not reach. Each
|
|
44
|
+
* program is then built once, its roots known from the start. Called again, it adds to the files.
|
|
45
|
+
*
|
|
46
|
+
* @param files - the story files, absolute.
|
|
47
|
+
*/
|
|
48
|
+
export declare const readStoryFilesOnly: (files: readonly string[]) => void;
|
|
49
|
+
/**
|
|
50
|
+
* What a program is read for: what the asked file reaches; what every story file of its configuration reaches (a
|
|
51
|
+
* group's "Used in"), which is every file of it unless a build named its story files (`readStoryFilesOnly`); or every
|
|
52
|
+
* file of its configuration (where an application draws a component).
|
|
53
|
+
*/
|
|
54
|
+
export type ProgramReach = "asked" | "stories" | "whole";
|
|
43
55
|
/** How a file's program is read. */
|
|
44
56
|
export type ProgramOptions = {
|
|
45
57
|
/** The files read in place of a framework's components; none for a plain program. */
|
|
46
58
|
readonly sources?: ProgramSources;
|
|
47
59
|
/**
|
|
48
|
-
* What the reader needs: what the file reaches (a component's docs, the default),
|
|
49
|
-
*
|
|
60
|
+
* What the reader needs: what the file reaches (a component's docs, the default), what the stories reach (a group's
|
|
61
|
+
* "Used in"), or every file of its configuration; a build's programs hold what its stories reach, or every file
|
|
62
|
+
* when it named none.
|
|
50
63
|
*/
|
|
51
64
|
readonly reach?: ProgramReach;
|
|
52
65
|
};
|
|
@@ -18,6 +18,9 @@
|
|
|
18
18
|
* - a dev server's programs hold the files asked for and what they import (`readAskedFilesOnly`), with the files that
|
|
19
19
|
* hold for every file (declarations, augmentations), not every file of the configuration, until enough are asked
|
|
20
20
|
* that the whole is cheaper (`MOST_ASKED`);
|
|
21
|
+
* - a build's programs hold its story files and what they import (`readStoryFilesOnly`), with the same files that hold
|
|
22
|
+
* for every file: a monorepo's root configuration lists every package, its website and its tools, and one story it
|
|
23
|
+
* holds would otherwise parse them all;
|
|
21
24
|
* - parsed files are kept between programs and shared by every configuration that parses alike (`parsedFiles.ts`),
|
|
22
25
|
* the standard library's and `@types` without their documentation;
|
|
23
26
|
* - only the programs read last are kept (`KEPT_PROGRAMS`), with the parses they hold.
|
|
@@ -119,6 +122,22 @@ export const readAskedFilesOnly = () => {
|
|
|
119
122
|
askedFiles ??= new Map();
|
|
120
123
|
checkFileChanges();
|
|
121
124
|
};
|
|
125
|
+
/** A build's story files, in TypeScript's form; none until a build names them, and every file is read then. */
|
|
126
|
+
let storyFiles;
|
|
127
|
+
/** The files a build asked for that its story files do not reach, by program: they stay roots, or it would be rebuilt. */
|
|
128
|
+
const addedRoots = new Map();
|
|
129
|
+
/**
|
|
130
|
+
* From now on a program holds the given story files its configuration lists and what they import, not its whole
|
|
131
|
+
* configuration: a build reads every story's docs and "Used in", which need nothing the stories do not reach. Each
|
|
132
|
+
* program is then built once, its roots known from the start. Called again, it adds to the files.
|
|
133
|
+
*
|
|
134
|
+
* @param files - the story files, absolute.
|
|
135
|
+
*/
|
|
136
|
+
export const readStoryFilesOnly = (files) => {
|
|
137
|
+
storyFiles ??= new Set();
|
|
138
|
+
for (const file of files)
|
|
139
|
+
storyFiles.add(file.replaceAll("\\", "/"));
|
|
140
|
+
};
|
|
122
141
|
/**
|
|
123
142
|
* The files asked for before a program takes all its configuration's files: each new root makes a new type checker,
|
|
124
143
|
* so a session that walks a whole library would pay more than the whole program costs at once.
|
|
@@ -143,8 +162,26 @@ const ambientOf = (read) => {
|
|
|
143
162
|
return found;
|
|
144
163
|
};
|
|
145
164
|
/**
|
|
146
|
-
* The root files of a
|
|
147
|
-
*
|
|
165
|
+
* The root files of a build's program once it named its story files: the configuration's ambient files, the story files
|
|
166
|
+
* it lists, and the files asked for that none of them reached, kept so the roots stay the same.
|
|
167
|
+
*
|
|
168
|
+
* @param key - the program's key.
|
|
169
|
+
* @param read - its configuration.
|
|
170
|
+
* @param stories - the build's story files.
|
|
171
|
+
* @param asked - a file asked for that the program does not hold yet, which the configuration lists; none otherwise.
|
|
172
|
+
*/
|
|
173
|
+
const storyRootsOf = (key, read, stories, asked) => {
|
|
174
|
+
const added = addedRoots.get(key) ?? new Set();
|
|
175
|
+
addedRoots.set(key, added);
|
|
176
|
+
if (asked !== undefined && !stories.has(asked))
|
|
177
|
+
added.add(asked);
|
|
178
|
+
const listed = read.parsed.fileNames.filter((each) => stories.has(each));
|
|
179
|
+
return [...new Set([...ambientOf(read), ...listed, ...added])];
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* The root files of a configuration's program: all of them; or, once a build named its story files, its ambient files,
|
|
183
|
+
* the story files it lists and a file asked for that none of them reaches; or, once only what is asked for is read, its
|
|
184
|
+
* ambient files and the files asked for so far, until enough are asked that the whole is cheaper.
|
|
148
185
|
*
|
|
149
186
|
* @param key - the program's key.
|
|
150
187
|
* @param read - its configuration.
|
|
@@ -153,20 +190,24 @@ const ambientOf = (read) => {
|
|
|
153
190
|
*/
|
|
154
191
|
const rootsOf = (key, read, file, reach) => {
|
|
155
192
|
const { fileNames } = read.parsed;
|
|
156
|
-
|
|
157
|
-
|
|
193
|
+
// a file the kept program reaches through an import needs no root of its own, while that program is current
|
|
194
|
+
const name = file.replaceAll("\\", "/");
|
|
195
|
+
const isHeld = !outdated.has(key) && programs.get(key)?.getSourceFile(name) !== undefined;
|
|
196
|
+
const isOwnRoot = !isHeld && read.fileSet.has(name);
|
|
197
|
+
if (askedFiles === undefined) {
|
|
198
|
+
if (storyFiles === undefined || reach === "whole")
|
|
199
|
+
return fileNames;
|
|
200
|
+
return storyRootsOf(key, read, storyFiles, isOwnRoot ? name : undefined);
|
|
201
|
+
}
|
|
158
202
|
const asked = askedFiles.get(key) ?? new Set();
|
|
159
203
|
askedFiles.set(key, asked);
|
|
160
204
|
// a program read whole stays whole: going back and forth would build it again each time
|
|
161
|
-
if (reach
|
|
162
|
-
for (const
|
|
163
|
-
asked.add(
|
|
205
|
+
if (reach !== "asked")
|
|
206
|
+
for (const each of fileNames)
|
|
207
|
+
asked.add(each);
|
|
164
208
|
if (asked.size >= MOST_ASKED)
|
|
165
209
|
return fileNames;
|
|
166
|
-
|
|
167
|
-
const name = file.replaceAll("\\", "/");
|
|
168
|
-
const isHeld = !outdated.has(key) && programs.get(key)?.getSourceFile(name) !== undefined;
|
|
169
|
-
if (!isHeld && read.fileSet.has(name))
|
|
210
|
+
if (isOwnRoot)
|
|
170
211
|
asked.add(name);
|
|
171
212
|
return [...new Set([...ambientOf(read), ...asked])];
|
|
172
213
|
};
|
|
@@ -15,7 +15,8 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
15
15
|
* Started by `docsExtractor.ts` with the framework's docs module (`adapter.ts`), which it loads once; it keeps the
|
|
16
16
|
* programs of `docsProgram.ts` between requests, so only a package's first
|
|
17
17
|
* read builds one, and a changed source file (`{ kind: "changed" }`) renews them on their next read. A usage request
|
|
18
|
-
* (`{ kind: "usage", id, files }`) is answered from the same programs (`usageGraph.ts`). A
|
|
18
|
+
* (`{ kind: "usage", id, files }`) is answered from the same programs (`usageGraph.ts`). A build names its story files
|
|
19
|
+
* first (`{ kind: "stories", files }`), so its programs hold what they reach (`readStoryFilesOnly`). A request is `{ id, storyFile }`, the answer `{ id, result }`, `extractStoryComponent`'s result as
|
|
19
20
|
* it is (plain data), with the files it can change with (`docsDependencies.ts`), which the dev server keeps it on disk
|
|
20
21
|
* with. Unasked, it says `{ kind: "loaded" }` once its modules are loaded.
|
|
21
22
|
*
|
|
@@ -25,7 +26,7 @@ import { parentPort, workerData } from "node:worker_threads";
|
|
|
25
26
|
import { isDocsModule } from "./adapter.js";
|
|
26
27
|
import { isSettledSince, nowNs, stampPaths } from "./diskCache.js";
|
|
27
28
|
import { docsDependencies } from "./docsDependencies.js";
|
|
28
|
-
import { markSourcesChanged, readAskedFilesOnly } from "./docsProgram.js";
|
|
29
|
+
import { markSourcesChanged, readAskedFilesOnly, readStoryFilesOnly } from "./docsProgram.js";
|
|
29
30
|
import { usageGraph } from "./usageGraph.js";
|
|
30
31
|
/** Whether the worker's data names a docs module. */
|
|
31
32
|
const isWorkerData = (value) => typeof value === "object" &&
|
|
@@ -104,6 +105,10 @@ parentPort?.on("message", (request) => {
|
|
|
104
105
|
});
|
|
105
106
|
return;
|
|
106
107
|
}
|
|
108
|
+
if (request.kind === "stories") {
|
|
109
|
+
readStoryFilesOnly(request.files);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
107
112
|
if (request.kind === "usage") {
|
|
108
113
|
const since = nowNs();
|
|
109
114
|
const result = usage(request.files);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The patterns of a catalogue's own stories that match no story file, and what the plugin, the commands and the agent API
|
|
3
|
+
* say of them.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import type { Logger } from "vite";
|
|
8
|
+
import type { ResolvedConfig } from "./configFile.ts";
|
|
9
|
+
/**
|
|
10
|
+
* The patterns of a catalogue's own stories that match no story file, each of them a mistake or a first story not yet
|
|
11
|
+
* written: a `forgebook build` stops on them, a dev server says so and waits. A source's patterns are its own module's,
|
|
12
|
+
* which only Vite can read.
|
|
13
|
+
*
|
|
14
|
+
* @param config - the catalogue's folder and stories.
|
|
15
|
+
*/
|
|
16
|
+
export declare const emptyStoryGlobs: (config: Pick<ResolvedConfig, "dir" | "stories">) => readonly string[];
|
|
17
|
+
/**
|
|
18
|
+
* What to say of the patterns of `emptyStoryGlobs`.
|
|
19
|
+
*
|
|
20
|
+
* @param globs - the patterns, at least one.
|
|
21
|
+
*/
|
|
22
|
+
export declare const emptyStoryGlobsMessage: (globs: readonly string[]) => string;
|
|
23
|
+
/**
|
|
24
|
+
* What `verify` says of the patterns of `emptyStoryGlobs`, as problems of the catalogue that leave its answer not
|
|
25
|
+
* verified while the rest of it is still given.
|
|
26
|
+
*
|
|
27
|
+
* @param config - the catalogue's folder and stories.
|
|
28
|
+
* @returns one problem naming every such pattern; none when each matches a file.
|
|
29
|
+
*/
|
|
30
|
+
export declare const emptyStoryGlobsProblems: (config: Pick<ResolvedConfig, "dir" | "stories">) => string[];
|
|
31
|
+
/**
|
|
32
|
+
* Says what the plugin has to say of the patterns of `emptyStoryGlobs`, and of story files in hidden folders they pass
|
|
33
|
+
* over (`hiddenStoryFolders.ts`), which only warn: a hidden folder may be left out on purpose.
|
|
34
|
+
*
|
|
35
|
+
* @param config - the catalogue's folder and stories.
|
|
36
|
+
* @param isServing - whether a dev server runs: whoever runs one may be about to write the first story, while a build's
|
|
37
|
+
* reader would find nothing.
|
|
38
|
+
* @param logger - where a dev server's warning goes.
|
|
39
|
+
* @throws in a build, when a pattern matches nothing.
|
|
40
|
+
*/
|
|
41
|
+
export declare const sayEmptyStoryGlobs: (config: Pick<ResolvedConfig, "dir" | "stories">, isServing: boolean, logger: Pick<Logger, "warn">) => void;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { hiddenStoryFolders, hiddenStoryFoldersMessage } from "./hiddenStoryFiles.js";
|
|
2
|
+
import { unmatchedPatterns } from "./storyPatterns.js";
|
|
3
|
+
/**
|
|
4
|
+
* The patterns of a catalogue's own stories that match no story file, each of them a mistake or a first story not yet
|
|
5
|
+
* written: a `forgebook build` stops on them, a dev server says so and waits. A source's patterns are its own module's,
|
|
6
|
+
* which only Vite can read.
|
|
7
|
+
*
|
|
8
|
+
* @param config - the catalogue's folder and stories.
|
|
9
|
+
*/
|
|
10
|
+
export const emptyStoryGlobs = (config) => unmatchedPatterns(config.dir, config.stories);
|
|
11
|
+
/**
|
|
12
|
+
* What to say of the patterns of `emptyStoryGlobs`.
|
|
13
|
+
*
|
|
14
|
+
* @param globs - the patterns, at least one.
|
|
15
|
+
*/
|
|
16
|
+
export const emptyStoryGlobsMessage = (globs) => `No story file matches ${globs.map((glob) => `"${glob}"`).join(", ")} (\`stories\` in the configuration)`;
|
|
17
|
+
/**
|
|
18
|
+
* What `verify` says of the patterns of `emptyStoryGlobs`, as problems of the catalogue that leave its answer not
|
|
19
|
+
* verified while the rest of it is still given.
|
|
20
|
+
*
|
|
21
|
+
* @param config - the catalogue's folder and stories.
|
|
22
|
+
* @returns one problem naming every such pattern; none when each matches a file.
|
|
23
|
+
*/
|
|
24
|
+
export const emptyStoryGlobsProblems = (config) => {
|
|
25
|
+
const globs = emptyStoryGlobs(config);
|
|
26
|
+
return globs.length === 0
|
|
27
|
+
? []
|
|
28
|
+
: [
|
|
29
|
+
`${emptyStoryGlobsMessage(globs)}: correct the pattern, or write the first story (npx forgebook new <component file>)`
|
|
30
|
+
];
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Says what the plugin has to say of the patterns of `emptyStoryGlobs`, and of story files in hidden folders they pass
|
|
34
|
+
* over (`hiddenStoryFolders.ts`), which only warn: a hidden folder may be left out on purpose.
|
|
35
|
+
*
|
|
36
|
+
* @param config - the catalogue's folder and stories.
|
|
37
|
+
* @param isServing - whether a dev server runs: whoever runs one may be about to write the first story, while a build's
|
|
38
|
+
* reader would find nothing.
|
|
39
|
+
* @param logger - where a dev server's warning goes.
|
|
40
|
+
* @throws in a build, when a pattern matches nothing.
|
|
41
|
+
*/
|
|
42
|
+
export const sayEmptyStoryGlobs = (config, isServing, logger) => {
|
|
43
|
+
const hidden = hiddenStoryFolders(config);
|
|
44
|
+
if (hidden.length > 0)
|
|
45
|
+
logger.warn(`Forgebook: ${hiddenStoryFoldersMessage(hidden)}.`);
|
|
46
|
+
const globs = emptyStoryGlobs(config);
|
|
47
|
+
if (globs.length === 0)
|
|
48
|
+
return;
|
|
49
|
+
if (!isServing)
|
|
50
|
+
throw new Error(emptyStoryGlobsMessage(globs));
|
|
51
|
+
logger.warn(`Forgebook: ${emptyStoryGlobsMessage(globs)}. The catalogue shows them as soon as a file does.`);
|
|
52
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** An import a file writes. */
|
|
2
|
+
export type WrittenImport = {
|
|
3
|
+
/** The names it brings in, as the module exports them; `default` for a default import. */
|
|
4
|
+
readonly names: readonly string[];
|
|
5
|
+
/** The module. */
|
|
6
|
+
readonly module: string;
|
|
7
|
+
/** Its first and last lines. */
|
|
8
|
+
readonly lines: readonly [number, number];
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* The value imports a file writes, read from its syntax, so a comment or a string holding the word is not one; a
|
|
12
|
+
* single-file component's from its scripts.
|
|
13
|
+
*
|
|
14
|
+
* @param file - its path.
|
|
15
|
+
* @param text - its text.
|
|
16
|
+
*/
|
|
17
|
+
export declare const importsOfFile: (file: string, text: string) => WrittenImport[];
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The imports a file writes, read from its syntax, so a comment or a string holding the word is not one.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { parseSync } from "vite";
|
|
7
|
+
import { isTooDeep, lineAt, lineStarts } from "./sourceText.js";
|
|
8
|
+
/** The value imports of a script's text, whose lines start from an offset. */
|
|
9
|
+
const importsOfScript = (file, text, firstLine) => {
|
|
10
|
+
if (isTooDeep(text))
|
|
11
|
+
return [];
|
|
12
|
+
const { program, errors } = parseSync(file, text);
|
|
13
|
+
if (errors.length > 0)
|
|
14
|
+
return [];
|
|
15
|
+
const starts = lineStarts(text);
|
|
16
|
+
return program.body.flatMap((statement) => {
|
|
17
|
+
if (statement.type !== "ImportDeclaration" || statement.importKind === "type")
|
|
18
|
+
return [];
|
|
19
|
+
const names = statement.specifiers.flatMap((each) => {
|
|
20
|
+
if (each.type === "ImportDefaultSpecifier")
|
|
21
|
+
return ["default"];
|
|
22
|
+
if (each.type !== "ImportSpecifier" || each.importKind === "type")
|
|
23
|
+
return [];
|
|
24
|
+
return ["name" in each.imported ? String(each.imported.name) : String(each.imported.value)];
|
|
25
|
+
});
|
|
26
|
+
const lines = [statement.start, statement.end].map((offset) => lineAt(starts, offset) + firstLine - 1);
|
|
27
|
+
return [{ names, module: statement.source.value, lines: [lines[0] ?? firstLine, lines[1] ?? firstLine] }];
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
/** A framework's own single-file component. */
|
|
31
|
+
const SINGLE_FILE = /\.(?:vue|svelte|astro)$/;
|
|
32
|
+
/**
|
|
33
|
+
* The value imports a file writes, read from its syntax, so a comment or a string holding the word is not one; a
|
|
34
|
+
* single-file component's from its scripts.
|
|
35
|
+
*
|
|
36
|
+
* @param file - its path.
|
|
37
|
+
* @param text - its text.
|
|
38
|
+
*/
|
|
39
|
+
export const importsOfFile = (file, text) => {
|
|
40
|
+
try {
|
|
41
|
+
if (!SINGLE_FILE.test(file))
|
|
42
|
+
return importsOfScript(file, text, 1);
|
|
43
|
+
const found = [];
|
|
44
|
+
const starts = lineStarts(text);
|
|
45
|
+
for (let open = text.indexOf("<script"); open !== -1; open = text.indexOf("<script", open + 1)) {
|
|
46
|
+
const opened = text.indexOf(">", open);
|
|
47
|
+
const close = text.indexOf("</script>", opened);
|
|
48
|
+
if (opened === -1 || close === -1)
|
|
49
|
+
break;
|
|
50
|
+
found.push(...importsOfScript("script.ts", text.slice(opened + 1, close), lineAt(starts, opened)));
|
|
51
|
+
}
|
|
52
|
+
return found;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type SearchCorrection } from "../searchTypos.ts";
|
|
1
2
|
/** What the search reads of a component. */
|
|
2
3
|
export type FindableComponent = {
|
|
3
4
|
/** Its id. */
|
|
@@ -22,11 +23,18 @@ export type FoundComponent = {
|
|
|
22
23
|
/** The words of the query it does not. */
|
|
23
24
|
readonly missed: readonly string[];
|
|
24
25
|
};
|
|
26
|
+
/** What a query finds. */
|
|
27
|
+
export type FoundComponents = {
|
|
28
|
+
/** Up to five, best first; none when no word matches. */
|
|
29
|
+
readonly components: readonly FoundComponent[];
|
|
30
|
+
/** The words nothing held as typed, and what each was read as; empty when the query was read as typed. */
|
|
31
|
+
readonly corrections: readonly SearchCorrection[];
|
|
32
|
+
};
|
|
25
33
|
/**
|
|
26
34
|
* The components a query describes, best first.
|
|
27
35
|
*
|
|
28
36
|
* @param components - the catalogue's components.
|
|
29
37
|
* @param query - what is being looked for, in any words.
|
|
30
|
-
* @returns up to five
|
|
38
|
+
* @returns up to five, and the words read as others.
|
|
31
39
|
*/
|
|
32
|
-
export declare const findComponents: (components: readonly FindableComponent[], query: string) =>
|
|
40
|
+
export declare const findComponents: (components: readonly FindableComponent[], query: string) => FoundComponents;
|
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
* (`keywords` in the meta, the way to say "radio tile group" of `OptionCards`), then its title and its stories' text. A
|
|
8
8
|
* short list of synonyms bridges the words designers and code use for the same thing (`searchMatch.ts`, which the
|
|
9
9
|
* catalogue's text search reads too). The answer says which words matched, so an agent can tell a strong result from a
|
|
10
|
-
* guess.
|
|
10
|
+
* guess, and which words nothing held as typed and were read as a name a letter or two away.
|
|
11
11
|
*
|
|
12
12
|
* @module
|
|
13
13
|
*/
|
|
14
14
|
import { wordsOf, worthOf } from "../searchMatch.js";
|
|
15
|
+
import { correctedQuery } from "../searchTypos.js";
|
|
15
16
|
/** How many components an answer gives. */
|
|
16
17
|
const LIMIT = 5;
|
|
17
18
|
/** A component's words. */
|
|
@@ -21,32 +22,36 @@ const partsOf = (component) => ({
|
|
|
21
22
|
title: wordsOf(component.title),
|
|
22
23
|
story: component.stories.flatMap(wordsOf)
|
|
23
24
|
});
|
|
25
|
+
/** Each component holding a word, best first. */
|
|
26
|
+
const ranked = (components, words) => components
|
|
27
|
+
.flatMap(({ component, parts }) => {
|
|
28
|
+
const scores = words.map((word) => ({ word, score: worthOf(parts, word) }));
|
|
29
|
+
const score = scores.reduce((sum, each) => sum + each.score, 0);
|
|
30
|
+
if (score === 0)
|
|
31
|
+
return [];
|
|
32
|
+
return [
|
|
33
|
+
{
|
|
34
|
+
id: component.id,
|
|
35
|
+
title: component.title,
|
|
36
|
+
score,
|
|
37
|
+
matched: scores.filter((each) => each.score > 0).map((each) => each.word),
|
|
38
|
+
missed: scores.filter((each) => each.score === 0).map((each) => each.word)
|
|
39
|
+
}
|
|
40
|
+
];
|
|
41
|
+
})
|
|
42
|
+
.toSorted((first, second) => second.score - first.score);
|
|
24
43
|
/**
|
|
25
44
|
* The components a query describes, best first.
|
|
26
45
|
*
|
|
27
46
|
* @param components - the catalogue's components.
|
|
28
47
|
* @param query - what is being looked for, in any words.
|
|
29
|
-
* @returns up to five
|
|
48
|
+
* @returns up to five, and the words read as others.
|
|
30
49
|
*/
|
|
31
50
|
export const findComponents = (components, query) => {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (score === 0)
|
|
39
|
-
return [];
|
|
40
|
-
return [
|
|
41
|
-
{
|
|
42
|
-
id: component.id,
|
|
43
|
-
title: component.title,
|
|
44
|
-
score,
|
|
45
|
-
matched: scores.filter((each) => each.score > 0).map((each) => each.word),
|
|
46
|
-
missed: scores.filter((each) => each.score === 0).map((each) => each.word)
|
|
47
|
-
}
|
|
48
|
-
];
|
|
49
|
-
})
|
|
50
|
-
.toSorted((first, second) => second.score - first.score)
|
|
51
|
-
.slice(0, LIMIT);
|
|
51
|
+
const typed = [...new Set(wordsOf(query))];
|
|
52
|
+
const parted = components.map((component) => ({ component, parts: partsOf(component) }));
|
|
53
|
+
const strict = ranked(parted, typed);
|
|
54
|
+
const { corrections, words } = correctedQuery(typed, new Set(strict.flatMap((each) => each.matched)), parted.map(({ parts }) => parts));
|
|
55
|
+
const found = corrections.length === 0 ? strict : ranked(parted, words);
|
|
56
|
+
return { components: found.slice(0, LIMIT), corrections };
|
|
52
57
|
};
|
|
@@ -45,7 +45,8 @@ export const findAnswer = async ({ tree, params, pages, view, loaded }) => {
|
|
|
45
45
|
return { status: 400, body: { error: "No words to look for" } };
|
|
46
46
|
const located = treeComponents(tree);
|
|
47
47
|
const findable = located.map(({ component }) => findableOf(component));
|
|
48
|
-
const components =
|
|
48
|
+
const { components: found, corrections } = findComponents(findable, query);
|
|
49
|
+
const components = await Promise.all(found.map(async (found) => {
|
|
49
50
|
const place = located.find(({ component }) => component.id === found.id);
|
|
50
51
|
const story = place?.component.stories[0]?.id;
|
|
51
52
|
const source = loaded.sources.find((each) => each.id === place?.source.id);
|
|
@@ -57,6 +58,6 @@ export const findAnswer = async ({ tree, params, pages, view, loaded }) => {
|
|
|
57
58
|
...(guidance === undefined ? {} : { guidance })
|
|
58
59
|
};
|
|
59
60
|
}));
|
|
60
|
-
const body = { schema: 1, query, components };
|
|
61
|
+
const body = { schema: 1, query, components, corrections };
|
|
61
62
|
return { status: 200, body };
|
|
62
63
|
};
|
|
@@ -24,7 +24,14 @@ export declare const FORCE_ATTRIBUTE = "data-forgebook-force";
|
|
|
24
24
|
*/
|
|
25
25
|
export declare const forcedSelector: (selector: Selector) => Selector;
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
27
|
+
* Whether a selector styles the catalogue's own interface: a story never forces a state on it, and nothing simulates
|
|
28
|
+
* touch on the shell's page, so the rewrite would only add to the catalogue's CSS.
|
|
29
|
+
*
|
|
30
|
+
* @param selector - a selector, as Lightning CSS parses it.
|
|
31
|
+
*/
|
|
32
|
+
export declare const isCatalogueSelector: (selector: Selector) => boolean;
|
|
33
|
+
/**
|
|
34
|
+
* The Lightning CSS visitor that applies the rewrite to every style sheet the catalogue builds but its own, with the
|
|
35
|
+
* touch simulation's (`touchMedia.ts`): the media rules that ask about the pointer follow the simulated touch.
|
|
29
36
|
*/
|
|
30
37
|
export declare const FORCED_STATES_VISITOR: Visitor<CustomAtRules>;
|
|
@@ -65,11 +65,20 @@ const withNested = (component) => {
|
|
|
65
65
|
export const forcedSelector = (selector) => selector.map((component) => component.type === "pseudo-class" && isForceable(component.kind)
|
|
66
66
|
? realOrForced(component.kind)
|
|
67
67
|
: withNested(component));
|
|
68
|
+
/** The prefix of every class of the catalogue's own interface, in the shell and in the frame. */
|
|
69
|
+
const CATALOGUE_CLASS = "forgebook-";
|
|
68
70
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
+
* Whether a selector styles the catalogue's own interface: a story never forces a state on it, and nothing simulates
|
|
72
|
+
* touch on the shell's page, so the rewrite would only add to the catalogue's CSS.
|
|
73
|
+
*
|
|
74
|
+
* @param selector - a selector, as Lightning CSS parses it.
|
|
75
|
+
*/
|
|
76
|
+
export const isCatalogueSelector = (selector) => selector.some((component) => component.type === "class" && component.name.startsWith(CATALOGUE_CLASS));
|
|
77
|
+
/**
|
|
78
|
+
* The Lightning CSS visitor that applies the rewrite to every style sheet the catalogue builds but its own, with the
|
|
79
|
+
* touch simulation's (`touchMedia.ts`): the media rules that ask about the pointer follow the simulated touch.
|
|
71
80
|
*/
|
|
72
81
|
export const FORCED_STATES_VISITOR = {
|
|
73
|
-
Selector: forcedSelector,
|
|
82
|
+
Selector: (selector) => isCatalogueSelector(selector) ? selector : forcedSelector(selector),
|
|
74
83
|
Rule: { media: touchMediaRules }
|
|
75
84
|
};
|
|
@@ -15,6 +15,8 @@ export type ForgebookPluginOptions = {
|
|
|
15
15
|
readonly framework?: FrameworkAdapter;
|
|
16
16
|
/** Folders outside the app the dev server watches for new story files, beside the configuration's `watch`. */
|
|
17
17
|
readonly watch?: readonly string[];
|
|
18
|
+
/** Whether the dependency scan is a first start's quick one (`ScanFindings.isQuick`); off by default. */
|
|
19
|
+
readonly isQuickScan?: boolean;
|
|
18
20
|
};
|
|
19
21
|
/**
|
|
20
22
|
* The catalogue's Vite plugin: the story index, the docs, the code and the Markdown of the stories, the forced-states
|