forgebook 0.3.2 → 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 +917 -74
- 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 +54 -6
- package/dist/src/addressArgs.js +72 -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 +58 -14
- 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/PluginBlockHost.js +2 -1
- package/dist/src/shell/PluginTabHost.js +19 -2
- 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 +35 -60
- 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.d.ts +17 -4
- package/dist/src/shell/asideStory.js +21 -4
- 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 +27 -2
- package/dist/src/shell/useAddressArgs.js +71 -14
- 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
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* Every value of a switch is drawn, its default too, so the frames show where the story starts; only the colour
|
|
7
7
|
* scheme's system value is left out, since it draws as light or as dark, one of the others. A value that writes
|
|
8
8
|
* nothing on the root (`isUnset`: the stories' own text, left to right, the mouse) is a value like the rest. In a pair, a cell's label leaves out the second switch's default (`Light`, `Light · More contrast`), so the familiar
|
|
9
|
-
* value reads alone.
|
|
9
|
+
* value reads alone. A cell another switch's value contradicts is left out (a look drawn only for dark, at light): it
|
|
10
|
+
* would draw the same as the cell of the implied value, under a name that is not what it shows. Pure.
|
|
10
11
|
*
|
|
11
12
|
* @module
|
|
12
13
|
*/
|
|
@@ -31,5 +32,6 @@ export type CompareVariant = {
|
|
|
31
32
|
*
|
|
32
33
|
* @param axes - the compared axes.
|
|
33
34
|
* @param catalogue - the catalogue's switches and text sizes.
|
|
35
|
+
* @param view - the stage's view, whose other switches may imply a compared one.
|
|
34
36
|
*/
|
|
35
|
-
export declare const compareVariants: (axes: CompareAxes, catalogue: CompareCatalogue) => CompareVariant[];
|
|
37
|
+
export declare const compareVariants: (axes: CompareAxes, catalogue: CompareCatalogue, view: ViewState) => CompareVariant[];
|
|
@@ -6,10 +6,12 @@
|
|
|
6
6
|
* Every value of a switch is drawn, its default too, so the frames show where the story starts; only the colour
|
|
7
7
|
* scheme's system value is left out, since it draws as light or as dark, one of the others. A value that writes
|
|
8
8
|
* nothing on the root (`isUnset`: the stories' own text, left to right, the mouse) is a value like the rest. In a pair, a cell's label leaves out the second switch's default (`Light`, `Light · More contrast`), so the familiar
|
|
9
|
-
* value reads alone.
|
|
9
|
+
* value reads alone. A cell another switch's value contradicts is left out (a look drawn only for dark, at light): it
|
|
10
|
+
* would draw the same as the cell of the implied value, under a name that is not what it shows. Pure.
|
|
10
11
|
*
|
|
11
12
|
* @module
|
|
12
13
|
*/
|
|
14
|
+
import { shownSwitches } from "../switches.js";
|
|
13
15
|
import { SHEETS_CHOICES } from "../viewState.js";
|
|
14
16
|
import { LATER_STRINGS } from "./laterStrings.js";
|
|
15
17
|
import { STRINGS } from "./strings.js";
|
|
@@ -54,16 +56,22 @@ const axisVariants = (axis, catalogue) => {
|
|
|
54
56
|
*
|
|
55
57
|
* @param axes - the compared axes.
|
|
56
58
|
* @param catalogue - the catalogue's switches and text sizes.
|
|
59
|
+
* @param view - the stage's view, whose other switches may imply a compared one.
|
|
57
60
|
*/
|
|
58
|
-
export const compareVariants = (axes, catalogue) => {
|
|
61
|
+
export const compareVariants = (axes, catalogue, view) => {
|
|
59
62
|
const [first, second] = axes;
|
|
60
63
|
if (first === undefined)
|
|
61
64
|
return [];
|
|
62
65
|
const firsts = axisVariants(first, catalogue);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
const cells = second === undefined
|
|
67
|
+
? firsts
|
|
68
|
+
: axisVariants(second, catalogue).flatMap((outer) => firsts.map((inner) => ({
|
|
69
|
+
label: LATER_STRINGS.compareCell(outer.isDefault ? [inner.label] : [inner.label, outer.label]),
|
|
70
|
+
viewOf: (stage) => outer.viewOf(inner.viewOf(stage))
|
|
71
|
+
})));
|
|
72
|
+
return cells.filter((cell) => {
|
|
73
|
+
const { switches } = cell.viewOf(view);
|
|
74
|
+
const shown = shownSwitches(switches, catalogue.switches);
|
|
75
|
+
return axes.every((axis) => shown[axis] === switches[axis]);
|
|
76
|
+
});
|
|
69
77
|
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether this catalogue composes others (`refs`): a constant the plugin writes into the build (`define`), so a
|
|
3
|
+
* catalogue that composes none has every part of composition removed from its shell, and its first load carries none of
|
|
4
|
+
* it. And the composed catalogues themselves, set by `mountShell` behind that constant: a page holds one shell, so they
|
|
5
|
+
* are a fact of the page, as the frames' origin is, and a shell that composes none keeps not even their name.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Read as a value that may be missing, so a shell bundled by something other than Forgebook's plugin (a test) runs with
|
|
9
|
+
* composition off rather than failing on a name nobody defined.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
import type { ShellRefs } from "./refParts.tsx";
|
|
14
|
+
/** Whether this catalogue composes others. */
|
|
15
|
+
export declare const HAS_REFS: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Sets the composed catalogues, before the shell renders.
|
|
18
|
+
*
|
|
19
|
+
* @param refs - the composed catalogues, if the generated page gives any.
|
|
20
|
+
*/
|
|
21
|
+
export declare const setShellRefs: (refs: ShellRefs | undefined) => void;
|
|
22
|
+
/** The composed catalogues; none until `mountShell` set them, or for a catalogue that composes none. */
|
|
23
|
+
export declare const shellRefs: () => ShellRefs | undefined;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether this catalogue composes others (`refs`): a constant the plugin writes into the build (`define`), so a
|
|
3
|
+
* catalogue that composes none has every part of composition removed from its shell, and its first load carries none of
|
|
4
|
+
* it. And the composed catalogues themselves, set by `mountShell` behind that constant: a page holds one shell, so they
|
|
5
|
+
* are a fact of the page, as the frames' origin is, and a shell that composes none keeps not even their name.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Read as a value that may be missing, so a shell bundled by something other than Forgebook's plugin (a test) runs with
|
|
9
|
+
* composition off rather than failing on a name nobody defined.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
/** Whether this catalogue composes others. */
|
|
14
|
+
export const HAS_REFS = typeof __FORGEBOOK_REFS__ !== "undefined" && __FORGEBOOK_REFS__ === true;
|
|
15
|
+
/** The composed catalogues, once `mountShell` set them. */
|
|
16
|
+
let pageRefs;
|
|
17
|
+
/**
|
|
18
|
+
* Sets the composed catalogues, before the shell renders.
|
|
19
|
+
*
|
|
20
|
+
* @param refs - the composed catalogues, if the generated page gives any.
|
|
21
|
+
*/
|
|
22
|
+
export const setShellRefs = (refs) => {
|
|
23
|
+
pageRefs = refs;
|
|
24
|
+
};
|
|
25
|
+
/** The composed catalogues; none until `mountShell` set them, or for a catalogue that composes none. */
|
|
26
|
+
export const shellRefs = () => pageRefs;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @remarks
|
|
6
6
|
* Pure. A control its toolbar control leaves disabled is left as it is here too: a switch or a background the story
|
|
7
|
-
* fixes (or a width), and a control the compare view draws side by side.
|
|
7
|
+
* fixes (or a width), a switch another switch's value implies, and a control the compare view draws side by side.
|
|
8
8
|
*
|
|
9
9
|
* @module
|
|
10
10
|
*/
|
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @remarks
|
|
6
6
|
* Pure. A control its toolbar control leaves disabled is left as it is here too: a switch or a background the story
|
|
7
|
-
* fixes (or a width), and a control the compare view draws side by side.
|
|
7
|
+
* fixes (or a width), a switch another switch's value implies, and a control the compare view draws side by side.
|
|
8
8
|
*
|
|
9
9
|
* @module
|
|
10
10
|
*/
|
|
11
11
|
import { AUDIENCE_IDS } from "../audiences.js";
|
|
12
12
|
import { cycledValue, switchValues } from "../controlKeys.js";
|
|
13
|
+
import { impliedSwitches } from "../switches.js";
|
|
13
14
|
import { isComparing, PLAIN_BACKDROP, SHEETS_CHOICES } from "../viewState.js";
|
|
14
15
|
import { withSwitch } from "./switchView.js";
|
|
15
16
|
/**
|
|
@@ -52,7 +53,7 @@ export const cycledView = (view, id, step, catalogue, fixed, isStoryPage) => {
|
|
|
52
53
|
return undefined;
|
|
53
54
|
const each = catalogue.switches.find((candidate) => candidate.id === id);
|
|
54
55
|
if (each !== undefined) {
|
|
55
|
-
if (fixed.switches[id] !== undefined)
|
|
56
|
+
if (fixed.switches[id] !== undefined || impliedSwitches(view.switches, catalogue.switches).has(id))
|
|
56
57
|
return undefined;
|
|
57
58
|
const current = view.switches[id] ?? each.default;
|
|
58
59
|
return withSwitch(view, each, cycledValue(switchValues(each), current, step));
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The custom controls of a catalogue, as the shell loads them: a module's check on arrival, and the check of a value before
|
|
3
|
+
* it reaches the story. Loaded with the first story that names such a control, so a catalogue with none never asks for it.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* A module is the catalogue's own code, run with a plugin's trust, and it can be wrong in every way: named by no one, gone,
|
|
7
|
+
* throwing as it loads, exporting something else. Each ends in a sentence beside the field; none reaches the panel as an
|
|
8
|
+
* exception.
|
|
9
|
+
*
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
import type { ArgControlModule } from "../argControl.ts";
|
|
13
|
+
import type { ArgValue } from "../messages.ts";
|
|
14
|
+
/** The texts of the custom controls' host. */
|
|
15
|
+
export declare const CONTROL_STRINGS: {
|
|
16
|
+
controlUnknown: (name: string) => string;
|
|
17
|
+
controlFailed: (name: string, reason: string) => string;
|
|
18
|
+
controlMalformed: (name: string) => string;
|
|
19
|
+
controlThrew: (name: string, reason: string) => string;
|
|
20
|
+
controlValue: (name: string, reason: string) => string;
|
|
21
|
+
controlUnsafe: string;
|
|
22
|
+
};
|
|
23
|
+
/** A catalogue's custom controls: how to load each, by name. */
|
|
24
|
+
export type ArgControlLoaders = Readonly<Record<string, () => Promise<unknown>>>;
|
|
25
|
+
/** A control as loading it ended. */
|
|
26
|
+
export type LoadedControl = {
|
|
27
|
+
readonly status: "ready";
|
|
28
|
+
readonly module: ArgControlModule;
|
|
29
|
+
} | {
|
|
30
|
+
readonly status: "failed";
|
|
31
|
+
readonly message: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* A control, loaded.
|
|
35
|
+
*
|
|
36
|
+
* @param name - its name.
|
|
37
|
+
* @param loaders - the catalogue's custom controls.
|
|
38
|
+
*/
|
|
39
|
+
export declare const loadControl: (name: string, loaders: ArgControlLoaders) => Promise<LoadedControl>;
|
|
40
|
+
/**
|
|
41
|
+
* What is wrong with a value for a control: its schema's word, or that it holds what would run if a component spread it on
|
|
42
|
+
* an element, which no schema's author is asked to think of.
|
|
43
|
+
*
|
|
44
|
+
* @param module - the control's module.
|
|
45
|
+
* @param value - the value.
|
|
46
|
+
* @returns the sentence; none when it fits.
|
|
47
|
+
*/
|
|
48
|
+
export declare const controlValueProblem: (module: ArgControlModule, value: ArgValue) => string | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* The checks of a story's custom controls, by name; a control that cannot load has none, which refuses its values.
|
|
51
|
+
*
|
|
52
|
+
* @param names - the controls the story names.
|
|
53
|
+
* @param loaders - the catalogue's custom controls.
|
|
54
|
+
*/
|
|
55
|
+
export declare const customChecksOf: (names: readonly string[], loaders: ArgControlLoaders) => Promise<Readonly<Record<string, (value: ArgValue) => string | undefined>>>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { holdsUnsafePart } from "../shapeValues.js";
|
|
2
|
+
import { isValueSchema, schemaProblem } from "../valueSchema.js";
|
|
3
|
+
import { lateStrings } from "./strings.js";
|
|
4
|
+
/** The texts of the custom controls' host. */
|
|
5
|
+
export const CONTROL_STRINGS = lateStrings({
|
|
6
|
+
controlUnknown: (name) => `No control is registered as "${name}": add it to argControls in forgebook.config`,
|
|
7
|
+
controlFailed: (name, reason) => `The control "${name}" could not be loaded: ${reason}`,
|
|
8
|
+
controlMalformed: (name) => `The control "${name}" must export mount, a function, and schema, of JSON Schema's keywords Forgebook reads`,
|
|
9
|
+
controlThrew: (name, reason) => `The control "${name}" failed: ${reason}`,
|
|
10
|
+
controlValue: (name, reason) => `The control "${name}" was given a value it refuses: ${reason}`,
|
|
11
|
+
controlUnsafe: "It holds what a link may not give"
|
|
12
|
+
});
|
|
13
|
+
/** Whether a value is a plain object with a function `mount`. */
|
|
14
|
+
const isControlModule = (value) => typeof value === "object" &&
|
|
15
|
+
value !== null &&
|
|
16
|
+
"mount" in value &&
|
|
17
|
+
typeof value.mount === "function" &&
|
|
18
|
+
"schema" in value &&
|
|
19
|
+
isValueSchema(value.schema);
|
|
20
|
+
/** Each control's load, kept: every field and check of a page share one. */
|
|
21
|
+
const loads = new Map();
|
|
22
|
+
/** Loads one control's module, once, and reads what it exports. */
|
|
23
|
+
const readControl = async (name, load) => {
|
|
24
|
+
try {
|
|
25
|
+
const module = await load();
|
|
26
|
+
return isControlModule(module)
|
|
27
|
+
? { status: "ready", module }
|
|
28
|
+
: { status: "failed", message: CONTROL_STRINGS.controlMalformed(name) };
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
32
|
+
return { status: "failed", message: CONTROL_STRINGS.controlFailed(name, reason) };
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* A control, loaded.
|
|
37
|
+
*
|
|
38
|
+
* @param name - its name.
|
|
39
|
+
* @param loaders - the catalogue's custom controls.
|
|
40
|
+
*/
|
|
41
|
+
export const loadControl = (name, loaders) => {
|
|
42
|
+
const load = Object.hasOwn(loaders, name) ? loaders[name] : undefined;
|
|
43
|
+
if (load === undefined)
|
|
44
|
+
return Promise.resolve({ status: "failed", message: CONTROL_STRINGS.controlUnknown(name) });
|
|
45
|
+
const started = loads.get(load) ?? readControl(name, load);
|
|
46
|
+
loads.set(load, started);
|
|
47
|
+
return started;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* What is wrong with a value for a control: its schema's word, or that it holds what would run if a component spread it on
|
|
51
|
+
* an element, which no schema's author is asked to think of.
|
|
52
|
+
*
|
|
53
|
+
* @param module - the control's module.
|
|
54
|
+
* @param value - the value.
|
|
55
|
+
* @returns the sentence; none when it fits.
|
|
56
|
+
*/
|
|
57
|
+
export const controlValueProblem = (module, value) => schemaProblem(module.schema, value) ??
|
|
58
|
+
(holdsUnsafePart(value, true) ? CONTROL_STRINGS.controlUnsafe : undefined);
|
|
59
|
+
/**
|
|
60
|
+
* The checks of a story's custom controls, by name; a control that cannot load has none, which refuses its values.
|
|
61
|
+
*
|
|
62
|
+
* @param names - the controls the story names.
|
|
63
|
+
* @param loaders - the catalogue's custom controls.
|
|
64
|
+
*/
|
|
65
|
+
export const customChecksOf = async (names, loaders) => {
|
|
66
|
+
const controls = await Promise.all(names.map(async (name) => [name, await loadControl(name, loaders)]));
|
|
67
|
+
return Object.fromEntries(controls.flatMap(([name, control]) => control.status === "ready"
|
|
68
|
+
? [[name, (value) => controlValueProblem(control.module, value)]]
|
|
69
|
+
: []));
|
|
70
|
+
};
|
|
@@ -92,9 +92,9 @@
|
|
|
92
92
|
opacity: 1;
|
|
93
93
|
}
|
|
94
94
|
.forgebook-anchor:focus-visible {
|
|
95
|
-
outline: 2px solid
|
|
95
|
+
outline: 2px solid var(--forgebook-focus-halo);
|
|
96
96
|
outline-offset: 0;
|
|
97
|
-
box-shadow:
|
|
97
|
+
box-shadow: var(--forgebook-focus-edge);
|
|
98
98
|
}
|
|
99
99
|
.forgebook-docs__code {
|
|
100
100
|
position: relative;
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
margin: 0;
|
|
119
119
|
padding: 0.5rem 1rem;
|
|
120
120
|
box-shadow: inset 0 -1px 0 var(--forgebook-separator);
|
|
121
|
-
font:
|
|
121
|
+
font: var(--forgebook-text-mono-small);
|
|
122
122
|
color: var(--forgebook-text-secondary);
|
|
123
123
|
padding-inline-end: 5rem;
|
|
124
124
|
overflow: hidden;
|
|
@@ -194,7 +194,7 @@
|
|
|
194
194
|
}
|
|
195
195
|
.forgebook-aside__title {
|
|
196
196
|
margin: 0;
|
|
197
|
-
font:
|
|
197
|
+
font: var(--forgebook-text-row-label);
|
|
198
198
|
font-weight: 600;
|
|
199
199
|
color: var(--forgebook-tone);
|
|
200
200
|
}
|
|
@@ -217,7 +217,7 @@
|
|
|
217
217
|
border-radius: var(--forgebook-radius-control-small) var(--forgebook-radius-control-small) 0 0;
|
|
218
218
|
background: none;
|
|
219
219
|
box-shadow: inset 0 -2px 0 transparent;
|
|
220
|
-
font:
|
|
220
|
+
font: var(--forgebook-text-row-label);
|
|
221
221
|
color: var(--forgebook-text-secondary);
|
|
222
222
|
cursor: pointer;
|
|
223
223
|
transition: color 150ms ease-out, box-shadow 150ms ease-out;
|
|
@@ -230,9 +230,9 @@
|
|
|
230
230
|
box-shadow: inset 0 -2px 0 var(--forgebook-accent);
|
|
231
231
|
}
|
|
232
232
|
.forgebook-tabs__tab:focus-visible {
|
|
233
|
-
outline: 2px solid
|
|
233
|
+
outline: 2px solid var(--forgebook-focus-halo);
|
|
234
234
|
outline-offset: -2px;
|
|
235
|
-
box-shadow:
|
|
235
|
+
box-shadow: var(--forgebook-focus-edge);
|
|
236
236
|
}
|
|
237
237
|
.forgebook-tabs__panel {
|
|
238
238
|
display: grid;
|
|
@@ -273,7 +273,7 @@
|
|
|
273
273
|
border-radius: 50%;
|
|
274
274
|
background: var(--forgebook-surface);
|
|
275
275
|
box-shadow: inset 0 0 0 1px var(--forgebook-edge);
|
|
276
|
-
font:
|
|
276
|
+
font: var(--forgebook-text-row-label);
|
|
277
277
|
font-weight: 600;
|
|
278
278
|
color: var(--forgebook-text-secondary);
|
|
279
279
|
}
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
align-items: center;
|
|
312
312
|
gap: 0.25rem;
|
|
313
313
|
margin: 0;
|
|
314
|
-
font:
|
|
314
|
+
font: var(--forgebook-text-card-title);
|
|
315
315
|
}
|
|
316
316
|
.forgebook-card--link {
|
|
317
317
|
text-decoration: none;
|
|
@@ -324,12 +324,12 @@
|
|
|
324
324
|
box-shadow: 0 0 0 1px var(--forgebook-card-edge-hover), 0 4px 14px var(--forgebook-shadow-lift);
|
|
325
325
|
}
|
|
326
326
|
.forgebook-card--link:focus-visible {
|
|
327
|
-
outline: 2px solid
|
|
327
|
+
outline: 2px solid var(--forgebook-focus-halo);
|
|
328
328
|
outline-offset: 0;
|
|
329
|
-
box-shadow:
|
|
329
|
+
box-shadow: var(--forgebook-focus-edge), 0 0 0 1px var(--forgebook-card-edge), 0 1px 3px var(--forgebook-shadow-soft);
|
|
330
330
|
}
|
|
331
331
|
.forgebook-card__description {
|
|
332
|
-
font:
|
|
332
|
+
font: var(--forgebook-text-body);
|
|
333
333
|
color: var(--forgebook-text-secondary);
|
|
334
334
|
}
|
|
335
335
|
.forgebook-docs__foot {
|
|
@@ -357,24 +357,24 @@
|
|
|
357
357
|
box-shadow: 0 0 0 1px var(--forgebook-card-edge-hover), 0 4px 14px var(--forgebook-shadow-lift);
|
|
358
358
|
}
|
|
359
359
|
.forgebook-docs__around:focus-visible {
|
|
360
|
-
outline: 2px solid
|
|
360
|
+
outline: 2px solid var(--forgebook-focus-halo);
|
|
361
361
|
outline-offset: 0;
|
|
362
|
-
box-shadow:
|
|
362
|
+
box-shadow: var(--forgebook-focus-edge), 0 0 0 1px var(--forgebook-card-edge), 0 1px 3px var(--forgebook-shadow-soft);
|
|
363
363
|
}
|
|
364
364
|
.forgebook-docs__around-label {
|
|
365
|
-
font:
|
|
365
|
+
font: var(--forgebook-text-caption);
|
|
366
366
|
color: var(--forgebook-text-tertiary);
|
|
367
367
|
}
|
|
368
368
|
.forgebook-docs__around-name {
|
|
369
369
|
display: inline-flex;
|
|
370
370
|
align-items: center;
|
|
371
371
|
gap: 0.25rem;
|
|
372
|
-
font:
|
|
372
|
+
font: var(--forgebook-text-row-label);
|
|
373
373
|
color: var(--forgebook-accent-text);
|
|
374
374
|
}
|
|
375
375
|
.forgebook-contents__title {
|
|
376
376
|
margin: 0;
|
|
377
|
-
font:
|
|
377
|
+
font: var(--forgebook-text-label);
|
|
378
378
|
color: var(--forgebook-text-tertiary);
|
|
379
379
|
}
|
|
380
380
|
.forgebook-contents__list {
|
|
@@ -392,7 +392,7 @@
|
|
|
392
392
|
padding: 0.25rem 0.5rem;
|
|
393
393
|
border-radius: var(--forgebook-radius-control-small);
|
|
394
394
|
box-shadow: inset 2px 0 0 transparent;
|
|
395
|
-
font:
|
|
395
|
+
font: var(--forgebook-text-row-compact);
|
|
396
396
|
color: var(--forgebook-text-secondary);
|
|
397
397
|
text-decoration: none;
|
|
398
398
|
transition: color 150ms ease-out, background-color 150ms ease-out;
|
|
@@ -406,9 +406,9 @@
|
|
|
406
406
|
font-weight: 500;
|
|
407
407
|
}
|
|
408
408
|
.forgebook-contents__link:focus-visible {
|
|
409
|
-
outline: 2px solid
|
|
409
|
+
outline: 2px solid var(--forgebook-focus-halo);
|
|
410
410
|
outline-offset: -2px;
|
|
411
|
-
box-shadow:
|
|
411
|
+
box-shadow: var(--forgebook-focus-edge);
|
|
412
412
|
}
|
|
413
413
|
.forgebook-contents--column {
|
|
414
414
|
position: sticky;
|
|
@@ -433,9 +433,9 @@
|
|
|
433
433
|
border-radius: var(--forgebook-radius-control-small);
|
|
434
434
|
}
|
|
435
435
|
.forgebook-contents--fold > summary:focus-visible {
|
|
436
|
-
outline: 2px solid
|
|
436
|
+
outline: 2px solid var(--forgebook-focus-halo);
|
|
437
437
|
outline-offset: 0;
|
|
438
|
-
box-shadow:
|
|
438
|
+
box-shadow: var(--forgebook-focus-edge);
|
|
439
439
|
}
|
|
440
440
|
.forgebook-contents--fold > nav {
|
|
441
441
|
margin-top: 0.5rem;
|
|
@@ -13,11 +13,13 @@
|
|
|
13
13
|
import type { StoryControlsSetting, StoryFileCode } from "@forgebook/story-format/source";
|
|
14
14
|
import { type PanelArgTypes } from "../argTypes.ts";
|
|
15
15
|
import { type ComponentDocs } from "../componentDocs.ts";
|
|
16
|
-
import type { ArgValue, PanelArgs } from "../messages.ts";
|
|
16
|
+
import type { ArgValue, PanelArgs, PlayStepCommand } from "../messages.ts";
|
|
17
17
|
import type { NamedValues } from "../namedValues.ts";
|
|
18
18
|
import type { PlayTrace } from "../playTrace.ts";
|
|
19
19
|
import type { TreeStory } from "../storyTree.ts";
|
|
20
|
+
import type { ViewState } from "../viewState.ts";
|
|
20
21
|
import type { CheckState } from "./A11yTab.tsx";
|
|
22
|
+
import type { ArgControlLoaders } from "./customControls.ts";
|
|
21
23
|
import type { DockTab } from "./Dock.tsx";
|
|
22
24
|
import type { TextArgNote } from "./PropRows.tsx";
|
|
23
25
|
import type { EventCall } from "./useFrameMessages.ts";
|
|
@@ -44,6 +46,16 @@ export type DockTabsInput = {
|
|
|
44
46
|
readonly actions: readonly string[];
|
|
45
47
|
/** The values of the moment: the story's args with the panel's over them. */
|
|
46
48
|
readonly values: PanelArgs;
|
|
49
|
+
/** The panel's own values, for what can go back to the story's. */
|
|
50
|
+
readonly panelArgs: PanelArgs;
|
|
51
|
+
/** The story's own args, for a control no type describes. */
|
|
52
|
+
readonly storyArgs: PanelArgs;
|
|
53
|
+
/** Loads the catalogue's design tokens; none when it has none. */
|
|
54
|
+
readonly loadTokens: (() => Promise<unknown>) | undefined;
|
|
55
|
+
/** Loads each custom control the catalogue registers, by name; none when it registers none. */
|
|
56
|
+
readonly argControls?: ArgControlLoaders | undefined;
|
|
57
|
+
/** The switches' values of the moment, for the args whose `argTypes.if` reads a global. */
|
|
58
|
+
readonly globals: Readonly<Record<string, unknown>>;
|
|
47
59
|
/** Called with a changed value; `undefined` removes the panel's value. */
|
|
48
60
|
readonly onValueChange: (name: string, value: ArgValue | undefined) => void;
|
|
49
61
|
/** Removes every value the panel set. */
|
|
@@ -62,8 +74,12 @@ export type DockTabsInput = {
|
|
|
62
74
|
readonly onClearCalls: () => void;
|
|
63
75
|
/** The play function's trace; none for a story without a play (or before it ran). */
|
|
64
76
|
readonly trace: PlayTrace | undefined;
|
|
65
|
-
/** Runs the play again. */
|
|
66
|
-
readonly
|
|
77
|
+
/** Runs the play again, or steps through it. */
|
|
78
|
+
readonly onPlayStep: (command: PlayStepCommand) => void;
|
|
79
|
+
/** The view, whose play switch the Interactions tab shows. */
|
|
80
|
+
readonly view: ViewState;
|
|
81
|
+
/** Changes the view. */
|
|
82
|
+
readonly onViewChange: (view: ViewState) => void;
|
|
67
83
|
/** The accessibility check. */
|
|
68
84
|
readonly check: CheckState;
|
|
69
85
|
/** Runs it; none when it cannot run. */
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { isArgShown } from "../argConditions.js";
|
|
2
3
|
import { panelProps } from "../argTypes.js";
|
|
3
4
|
import { codeNameOf } from "../componentDocs.js";
|
|
4
5
|
import { lazyModule } from "./lazyModule.js";
|
|
5
6
|
import { LazyTab } from "./lazyTab.js";
|
|
6
7
|
import { PropsTab } from "./PropsTab.js";
|
|
7
|
-
import { SignatureReference } from "./SignatureReference.js";
|
|
8
8
|
import { STRINGS } from "./strings.js";
|
|
9
9
|
import { a11yHint, interactionsHint, styleHooks } from "./tabSummaries.js";
|
|
10
|
+
/** The Signature tab's reference, loaded when a story about logic first shows it. */
|
|
11
|
+
const SIGNATURE_TAB = lazyModule(() => import("./SignatureReference.js").then((module) => module.SignatureReference));
|
|
10
12
|
/** The Events tab, its module, loaded when the tab is first chosen. */
|
|
11
13
|
const EVENTS_TAB = lazyModule(() => import("./EventsTab.js").then((module) => module.EventsTab));
|
|
12
14
|
/** The Interactions tab, its module, loaded when the tab is first chosen. */
|
|
@@ -25,15 +27,20 @@ const notice = (text, isProblem) => (_jsx("p", { className: isProblem ? "forgebo
|
|
|
25
27
|
* @param input - what the tabs are built from.
|
|
26
28
|
* @param props - the props, from the types with the `argTypes` laid over them.
|
|
27
29
|
*/
|
|
28
|
-
const propsTab = (input,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
const propsTab = (input, all) => {
|
|
31
|
+
// the condition is the moment's, so it is tested here and not where the props are declared: a value set while an arg
|
|
32
|
+
// is hidden, from the address or the story, is still the story's
|
|
33
|
+
const props = all.filter((prop) => isArgShown(input.argTypes[prop.name]?.if, input.values, input.globals));
|
|
34
|
+
return props.some((prop) => prop.kind !== "event")
|
|
35
|
+
? [
|
|
36
|
+
{
|
|
37
|
+
id: "props",
|
|
38
|
+
label: STRINGS.tabs.props,
|
|
39
|
+
content: (_jsx(PropsTab, { props: props, values: input.values, panelArgs: input.panelArgs, loadTokens: input.loadTokens, argControls: input.argControls, controls: input.controls, onValueChange: input.onValueChange, onReset: input.onReset, worstCase: input.worstCase, namedValues: input.namedValues, textArgs: input.textArgs, componentGroups: input.propGroups, requiredFirst: input.story.requiredFirst }))
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
: [];
|
|
43
|
+
};
|
|
37
44
|
/**
|
|
38
45
|
* The events the Events tab lists: the component's, then the story's actions its types do not name.
|
|
39
46
|
*
|
|
@@ -72,9 +79,9 @@ const docsTabs = (input) => {
|
|
|
72
79
|
// a story without a component (a render of its own) still has the args its `argTypes` name
|
|
73
80
|
if (docs.status === "none") {
|
|
74
81
|
return [
|
|
75
|
-
...propsTab(input, panelProps([], input.argTypes)),
|
|
82
|
+
...propsTab(input, panelProps([], input.argTypes, input.storyArgs)),
|
|
76
83
|
...eventsTab(input, eventsOf([], input.actions)),
|
|
77
|
-
...(input.trace === undefined ? [] : [interactionsTab(input.trace, input
|
|
84
|
+
...(input.trace === undefined ? [] : [interactionsTab(input.trace, input)])
|
|
78
85
|
];
|
|
79
86
|
}
|
|
80
87
|
// the docs' place while they load or fail: the tab the story opens on once they are read
|
|
@@ -83,7 +90,7 @@ const docsTabs = (input) => {
|
|
|
83
90
|
: { id: "props", label: STRINGS.tabs.props };
|
|
84
91
|
// the play's trace comes from the frame, not from the docs: a first read of a project's docs can take seconds, and a
|
|
85
92
|
// play that finished meanwhile is shown without waiting for them, or when they fail
|
|
86
|
-
const played = input.trace === undefined ? [] : [interactionsTab(input.trace, input
|
|
93
|
+
const played = input.trace === undefined ? [] : [interactionsTab(input.trace, input)];
|
|
87
94
|
if (docs.status === "loading")
|
|
88
95
|
return [{ ...docsTab, content: notice(STRINGS.docsLoading, false) }, ...played];
|
|
89
96
|
if (docs.status === "error") {
|
|
@@ -94,10 +101,10 @@ const docsTabs = (input) => {
|
|
|
94
101
|
if (input.story.isLogic)
|
|
95
102
|
return logicTabs(input, component);
|
|
96
103
|
const tabs = [];
|
|
97
|
-
tabs.push(...propsTab(input, panelProps(component.props, input.argTypes)));
|
|
104
|
+
tabs.push(...propsTab(input, panelProps(component.props, input.argTypes, input.storyArgs)));
|
|
98
105
|
tabs.push(...eventsTab(input, events));
|
|
99
106
|
if (input.trace !== undefined)
|
|
100
|
-
tabs.push(interactionsTab(input.trace, input
|
|
107
|
+
tabs.push(interactionsTab(input.trace, input));
|
|
101
108
|
if (component.parts.length > 0 || styleHooks(component).length > 0) {
|
|
102
109
|
tabs.push({
|
|
103
110
|
id: "parts",
|
|
@@ -122,19 +129,19 @@ const logicTabs = (input, component) => {
|
|
|
122
129
|
tabs.push({
|
|
123
130
|
id: "signature",
|
|
124
131
|
label: STRINGS.tabs.signature,
|
|
125
|
-
content: (_jsx("div", { className: "forgebook-signature-tab", children: _jsx(
|
|
132
|
+
content: (_jsx("div", { className: "forgebook-signature-tab", children: _jsx(LazyTab, { module: SIGNATURE_TAB, tabProps: { name: component.name, signature: component.signature } }) }))
|
|
126
133
|
});
|
|
127
134
|
}
|
|
128
135
|
if (input.trace !== undefined)
|
|
129
|
-
tabs.push(interactionsTab(input.trace, input
|
|
136
|
+
tabs.push(interactionsTab(input.trace, input));
|
|
130
137
|
return tabs;
|
|
131
138
|
};
|
|
132
139
|
/** The Interactions tab of a story whose play ran. */
|
|
133
|
-
const interactionsTab = (trace,
|
|
140
|
+
const interactionsTab = (trace, { onPlayStep, view, onViewChange }) => ({
|
|
134
141
|
id: "play",
|
|
135
142
|
label: STRINGS.tabs.play,
|
|
136
143
|
hint: interactionsHint(trace),
|
|
137
|
-
content: _jsx(LazyTab, { module: INTERACTIONS_TAB, tabProps: { trace,
|
|
144
|
+
content: _jsx(LazyTab, { module: INTERACTIONS_TAB, tabProps: { trace, onPlayStep, view, onViewChange } })
|
|
138
145
|
});
|
|
139
146
|
/** The Code tab, when the story file has code: loading, loaded, or failed to load. */
|
|
140
147
|
const codeTabs = (input) => {
|
|
@@ -160,7 +167,8 @@ const codeTabs = (input) => {
|
|
|
160
167
|
code: code.value,
|
|
161
168
|
exportName: input.story.exportName,
|
|
162
169
|
componentName: docs.status === "ready" ? codeNameOf(docs.value) : input.componentName,
|
|
163
|
-
args: input.values
|
|
170
|
+
args: input.values,
|
|
171
|
+
edited: Object.keys(input.panelArgs)
|
|
164
172
|
} }))
|
|
165
173
|
}
|
|
166
174
|
];
|
package/dist/src/shell/embed.css
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
.forgebook-embed__message {
|
|
11
11
|
margin: 0;
|
|
12
12
|
padding: 1rem;
|
|
13
|
-
font:
|
|
13
|
+
font: var(--forgebook-text-body);
|
|
14
14
|
color: var(--forgebook-text-secondary);
|
|
15
15
|
}
|
|
16
16
|
.forgebook-embed__message[data-failed] {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
}
|
|
31
31
|
.forgebook-embed-panel__hint {
|
|
32
32
|
margin: 0;
|
|
33
|
-
font:
|
|
33
|
+
font: var(--forgebook-text-caption);
|
|
34
34
|
color: var(--forgebook-text-secondary);
|
|
35
35
|
}
|
|
36
36
|
.forgebook-embed-panel__hint[data-warning] {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
}
|
|
45
45
|
.forgebook-embed-field__label {
|
|
46
46
|
grid-column: 1/-1;
|
|
47
|
-
font:
|
|
47
|
+
font: var(--forgebook-text-control);
|
|
48
48
|
color: var(--forgebook-text-secondary);
|
|
49
49
|
}
|
|
50
50
|
.forgebook-embed-field__value {
|
|
@@ -54,21 +54,21 @@
|
|
|
54
54
|
padding: 0.375rem 0.5rem;
|
|
55
55
|
border: 0;
|
|
56
56
|
border-radius: var(--forgebook-radius-control);
|
|
57
|
-
font:
|
|
57
|
+
font: var(--forgebook-text-mono-small);
|
|
58
58
|
color: var(--forgebook-text);
|
|
59
59
|
background: var(--forgebook-fill-quiet);
|
|
60
60
|
box-shadow: inset 0 0 0 1px var(--forgebook-edge-field);
|
|
61
61
|
}
|
|
62
62
|
.forgebook-embed-field__value:focus-visible {
|
|
63
|
-
outline: 2px solid
|
|
63
|
+
outline: 2px solid var(--forgebook-focus-halo);
|
|
64
64
|
outline-offset: 0;
|
|
65
|
-
box-shadow:
|
|
65
|
+
box-shadow: var(--forgebook-focus-edge);
|
|
66
66
|
}
|
|
67
67
|
.forgebook-embed-panel__follow {
|
|
68
68
|
display: flex;
|
|
69
69
|
gap: 0.5rem;
|
|
70
70
|
align-items: center;
|
|
71
|
-
font:
|
|
71
|
+
font: var(--forgebook-text-control);
|
|
72
72
|
color: var(--forgebook-text);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -12,6 +12,13 @@ export declare const framesOrigin: () => string;
|
|
|
12
12
|
* @param event - the message's event.
|
|
13
13
|
*/
|
|
14
14
|
export declare const isFromFrames: (event: MessageEvent) => boolean;
|
|
15
|
+
/**
|
|
16
|
+
* What a story's frame may do, as a sandbox: everything a page does but navigate the catalogue's tab, which a story's
|
|
17
|
+
* link could otherwise send to any address. The frames keep their own origin (`allow-same-origin`): it is not the
|
|
18
|
+
* catalogue's, so the pair gives the story nothing of the catalogue's. Frames on the catalogue's own origin get none:
|
|
19
|
+
* there the pair would let a story lift its own sandbox, and browsers warn of it.
|
|
20
|
+
*/
|
|
21
|
+
export declare const FRAME_SANDBOX: string;
|
|
15
22
|
/** What a story's frame element is given, wherever the shell draws one. */
|
|
16
23
|
export type StoryFrameAttributes = {
|
|
17
24
|
/** The browser features it may use. */
|