forgebook 0.3.3 → 0.4.1
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 +994 -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 +182 -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 +62 -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 +95 -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 +204 -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 +323 -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 +148 -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 +69 -185
- 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 +83 -0
- package/dist/src/componentDocs.js +20 -3
- package/dist/src/controlCode.d.ts +27 -0
- package/dist/src/controlCode.js +41 -0
- 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/controlValues.d.ts +39 -0
- package/dist/src/frame/controlValues.js +143 -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 +10 -1
- package/dist/src/frame/mountFrame.js +160 -55
- package/dist/src/frame/panelControls.d.ts +67 -0
- package/dist/src/frame/panelControls.js +110 -0
- 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/AuthoredHome.js +3 -1
- package/dist/src/shell/CodeTab.d.ts +12 -6
- package/dist/src/shell/CodeTab.js +47 -3
- 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 +6 -6
- package/dist/src/shell/ComponentPage.js +8 -2
- package/dist/src/shell/CustomControl.d.ts +34 -0
- package/dist/src/shell/CustomControl.js +125 -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 +18 -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/PageWidth.d.ts +29 -0
- package/dist/src/shell/PageWidth.js +18 -0
- 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 +22 -11
- package/dist/src/shell/PropRows.js +62 -24
- package/dist/src/shell/PropsTab.d.ts +12 -5
- package/dist/src/shell/PropsTab.js +9 -22
- 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 +141 -23
- 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/StoryPicker.d.ts +4 -2
- package/dist/src/shell/StoryPicker.js +3 -3
- package/dist/src/shell/Switch.d.ts +29 -0
- package/dist/src/shell/Switch.js +11 -0
- 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 +62 -0
- package/dist/src/shell/customControls.js +81 -0
- package/dist/src/shell/docPage.css +22 -22
- package/dist/src/shell/dockTabs.d.ts +19 -3
- package/dist/src/shell/dockTabs.js +29 -20
- package/dist/src/shell/embed.css +7 -7
- package/dist/src/shell/frameOrder.d.ts +35 -0
- package/dist/src/shell/frameOrder.js +45 -0
- 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 +30 -0
- package/dist/src/shell/laterStrings.js +43 -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 +376 -169
- 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/useFrameQueue.d.ts +8 -3
- package/dist/src/shell/useFrameQueue.js +42 -12
- 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/useScrollSettled.d.ts +18 -0
- package/dist/src/shell/useScrollSettled.js +56 -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 +148 -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 +99 -3
- package/dist/src/storyCheck.js +39 -1
- package/dist/src/storyCodeText.d.ts +52 -0
- package/dist/src/storyCodeText.js +30 -0
- package/dist/src/storyControls.d.ts +103 -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 +354 -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 +135 -66
- package/dist/src/vite/agentStatuses.d.ts +42 -0
- package/dist/src/vite/agentStatuses.js +67 -0
- package/dist/src/vite/agentStoryCode.d.ts +51 -0
- package/dist/src/vite/agentStoryCode.js +44 -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/argControlsConfig.d.ts +30 -0
- package/dist/src/vite/argControlsConfig.js +176 -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 +21 -4
- 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 +67 -1
- package/dist/src/vite/configFile.d.ts +15 -2
- package/dist/src/vite/configFile.js +109 -40
- package/dist/src/vite/configKeys.d.ts +15 -0
- package/dist/src/vite/configKeys.js +172 -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 +55 -73
- 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 +119 -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 +187 -60
- 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/typedControls.d.ts +31 -0
- package/dist/src/vite/typedControls.js +66 -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
|
@@ -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,9 @@ 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),
|
|
172
|
+
panel: input
|
|
164
173
|
} }))
|
|
165
174
|
}
|
|
166
175
|
];
|
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
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which waiting frames of a page start first: the ones the reader is looking at, then their neighbours outward.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* A page lists its stories top to bottom, but the reader may be anywhere on it: after a scroll to the end, the stories
|
|
6
|
+
* in view must not wait behind the ones above them that are still near. Read by `useFrameQueue`.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
/** A box's vertical extent, in the same coordinates as the visible part of the page. */
|
|
11
|
+
export type VerticalBox = {
|
|
12
|
+
/** Its top edge, in CSS px. */
|
|
13
|
+
readonly top: number;
|
|
14
|
+
/** Its bottom edge, in CSS px. */
|
|
15
|
+
readonly bottom: number;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* How far a box is from the visible part of the page: 0 when any of it is in view, otherwise the gap to the nearest
|
|
19
|
+
* edge.
|
|
20
|
+
*
|
|
21
|
+
* @param box - the box of a story's frame.
|
|
22
|
+
* @param view - the visible part of the page.
|
|
23
|
+
* @returns The distance, in CSS px.
|
|
24
|
+
*/
|
|
25
|
+
export declare const distanceFromView: (box: VerticalBox, view: VerticalBox) => number;
|
|
26
|
+
/**
|
|
27
|
+
* The frames to start now: the nearest to the visible part first, in the page's order among equals, at most `free`.
|
|
28
|
+
*
|
|
29
|
+
* @param waiting - the stories waiting for their frame, in the page's order.
|
|
30
|
+
* @param distances - each story's distance from the visible part, in CSS px; a story with none comes after every
|
|
31
|
+
* other.
|
|
32
|
+
* @param free - how many frames may start.
|
|
33
|
+
* @returns The stories to start, nearest first.
|
|
34
|
+
*/
|
|
35
|
+
export declare const nearestFrames: (waiting: readonly string[], distances: ReadonlyMap<string, number>, free: number) => string[];
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which waiting frames of a page start first: the ones the reader is looking at, then their neighbours outward.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* A page lists its stories top to bottom, but the reader may be anywhere on it: after a scroll to the end, the stories
|
|
6
|
+
* in view must not wait behind the ones above them that are still near. Read by `useFrameQueue`.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* How far a box is from the visible part of the page: 0 when any of it is in view, otherwise the gap to the nearest
|
|
12
|
+
* edge.
|
|
13
|
+
*
|
|
14
|
+
* @param box - the box of a story's frame.
|
|
15
|
+
* @param view - the visible part of the page.
|
|
16
|
+
* @returns The distance, in CSS px.
|
|
17
|
+
*/
|
|
18
|
+
export const distanceFromView = (box, view) => {
|
|
19
|
+
if (box.bottom <= view.top)
|
|
20
|
+
return view.top - box.bottom;
|
|
21
|
+
if (box.top >= view.bottom)
|
|
22
|
+
return box.top - view.bottom;
|
|
23
|
+
return 0;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* The frames to start now: the nearest to the visible part first, in the page's order among equals, at most `free`.
|
|
27
|
+
*
|
|
28
|
+
* @param waiting - the stories waiting for their frame, in the page's order.
|
|
29
|
+
* @param distances - each story's distance from the visible part, in CSS px; a story with none comes after every
|
|
30
|
+
* other.
|
|
31
|
+
* @param free - how many frames may start.
|
|
32
|
+
* @returns The stories to start, nearest first.
|
|
33
|
+
*/
|
|
34
|
+
export const nearestFrames = (waiting, distances, free) => {
|
|
35
|
+
const distanceOf = (storyId) => distances.get(storyId) ?? Number.POSITIVE_INFINITY;
|
|
36
|
+
// a stable sort keeps the page's order among stories at the same distance, the demo first among those in view
|
|
37
|
+
// (compared rather than subtracted: two stories with no distance would give NaN)
|
|
38
|
+
const byDistance = (first, second) => {
|
|
39
|
+
const [one, other] = [distanceOf(first), distanceOf(second)];
|
|
40
|
+
if (one === other)
|
|
41
|
+
return 0;
|
|
42
|
+
return one < other ? -1 : 1;
|
|
43
|
+
};
|
|
44
|
+
return [...waiting].sort(byDistance).slice(0, Math.max(0, free));
|
|
45
|
+
};
|
|
@@ -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. */
|
|
@@ -51,7 +51,7 @@ const FRAME_PERMISSIONS = [
|
|
|
51
51
|
* catalogue's, so the pair gives the story nothing of the catalogue's. Frames on the catalogue's own origin get none:
|
|
52
52
|
* there the pair would let a story lift its own sandbox, and browsers warn of it.
|
|
53
53
|
*/
|
|
54
|
-
const FRAME_SANDBOX = [
|
|
54
|
+
export const FRAME_SANDBOX = [
|
|
55
55
|
"allow-scripts",
|
|
56
56
|
"allow-same-origin",
|
|
57
57
|
"allow-forms",
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a gallery's menu sits: under its button, or over it when only there it fits, always inside the window. Pure.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* The menu's place, in CSS px from the window's corner.
|
|
8
|
+
*
|
|
9
|
+
* @param button - the button's box.
|
|
10
|
+
* @param panel - the menu's size.
|
|
11
|
+
* @param room - the window's size.
|
|
12
|
+
* @returns where its top and left corner go.
|
|
13
|
+
*/
|
|
14
|
+
export declare const galleryPlace: (button: Pick<DOMRect, "top" | "bottom" | "left">, panel: Pick<DOMRect, "width" | "height">, room: {
|
|
15
|
+
readonly width: number;
|
|
16
|
+
readonly height: number;
|
|
17
|
+
}) => {
|
|
18
|
+
readonly top: number;
|
|
19
|
+
readonly left: number;
|
|
20
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a gallery's menu sits: under its button, or over it when only there it fits, always inside the window. Pure.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
/** The room kept between the menu and its button or the window's edge, in CSS px. */
|
|
7
|
+
const GAP = 6;
|
|
8
|
+
/**
|
|
9
|
+
* The menu's place, in CSS px from the window's corner.
|
|
10
|
+
*
|
|
11
|
+
* @param button - the button's box.
|
|
12
|
+
* @param panel - the menu's size.
|
|
13
|
+
* @param room - the window's size.
|
|
14
|
+
* @returns where its top and left corner go.
|
|
15
|
+
*/
|
|
16
|
+
export const galleryPlace = (button, panel, room) => {
|
|
17
|
+
const below = button.bottom + GAP;
|
|
18
|
+
const above = button.top - GAP - panel.height;
|
|
19
|
+
const isBelowFit = below + panel.height <= room.height - GAP;
|
|
20
|
+
const top = isBelowFit || above < GAP ? below : above;
|
|
21
|
+
return {
|
|
22
|
+
// a menu taller than the room on both sides starts as high as it can and scrolls
|
|
23
|
+
top: Math.max(GAP, Math.min(top, room.height - GAP - panel.height)),
|
|
24
|
+
left: Math.max(GAP, Math.min(button.left, room.width - GAP - panel.width))
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -31,6 +31,7 @@ declare const PATHS: {
|
|
|
31
31
|
readonly turn: "M2.5 9.5h7a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-7a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1ZM12 12.5a2.5 2.5 0 0 0 2.5-2.5V8.5M13.5 10l1-1.5 1 1.5";
|
|
32
32
|
readonly device: "M5.5 1.5h5a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1v-11a1 1 0 0 1 1-1ZM7.25 3.5h1.5";
|
|
33
33
|
readonly plus: "M8 3.5v9M3.5 8h9";
|
|
34
|
+
readonly noValue: "M8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2ZM3.8 3.8l8.4 8.4";
|
|
34
35
|
readonly minus: "M3.5 8h9";
|
|
35
36
|
readonly hash: "M6 2.5 5 13.5M11 2.5l-1 11M3 6h10.5M2.5 10H13";
|
|
36
37
|
readonly check: "m3.5 8.5 3 3 6-7";
|
package/dist/src/shell/icons.js
CHANGED
|
@@ -26,6 +26,7 @@ const PATHS = {
|
|
|
26
26
|
turn: "M2.5 9.5h7a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-7a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1ZM12 12.5a2.5 2.5 0 0 0 2.5-2.5V8.5M13.5 10l1-1.5 1 1.5",
|
|
27
27
|
device: "M5.5 1.5h5a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1v-11a1 1 0 0 1 1-1ZM7.25 3.5h1.5",
|
|
28
28
|
plus: "M8 3.5v9M3.5 8h9",
|
|
29
|
+
noValue: "M8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2ZM3.8 3.8l8.4 8.4",
|
|
29
30
|
minus: "M3.5 8h9",
|
|
30
31
|
hash: "M6 2.5 5 13.5M11 2.5l-1 11M3 6h10.5M2.5 10H13",
|
|
31
32
|
check: "m3.5 8.5 3 3 6-7",
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
+
/** Where this browser keeps the reader's choice: a person's habit, the same in every catalogue of an origin. */
|
|
2
|
+
export declare const SINGLE_KEYS_STORED = "forgebook-single-keys";
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
+
* Whether a key event happens while the user types: in a field that takes text, a select or editable content, or in a
|
|
5
|
+
* custom element (a catalogue's control, a plugin's panel), whose keys are its own whatever it draws. A toolbar's segment
|
|
6
|
+
* (a radio) or a toggle keeps the page's keys, so they work right after a press on one.
|
|
4
7
|
*
|
|
5
|
-
* @
|
|
6
|
-
* The keys work while the shell has the focus; a frame keeps its own keys, so a story's keyboard behaviour is never
|
|
7
|
-
* taken over. Pure, apart from reading the event's target.
|
|
8
|
-
*
|
|
9
|
-
* @module
|
|
8
|
+
* @param target - the event's target.
|
|
10
9
|
*/
|
|
10
|
+
export declare const isTyping: (target: EventTarget | null) => boolean;
|
|
11
|
+
/** What a key without a modifier reads of its event. */
|
|
12
|
+
export type SingleKeyEvent = Pick<KeyboardEvent, "target"> & Partial<Pick<KeyboardEvent, "composedPath">>;
|
|
11
13
|
/**
|
|
12
|
-
* Whether a key
|
|
13
|
-
*
|
|
14
|
+
* Whether a key without a modifier is the shell's: the reader left them on and nothing is typed into. The whole path of
|
|
15
|
+
* the event is read: from inside a shadow root it names only the host, and a custom element keeps what is pressed in it.
|
|
14
16
|
*
|
|
15
|
-
* @param
|
|
17
|
+
* @param event - the key's event.
|
|
16
18
|
*/
|
|
17
|
-
export declare const
|
|
19
|
+
export declare const isSingleKeyFree: (event: SingleKeyEvent) => boolean;
|
|
18
20
|
/** The move a key asks for in the list of stories. */
|
|
19
21
|
export type StoryStep = -1 | 1;
|
|
20
22
|
/**
|
|
@@ -22,7 +24,7 @@ export type StoryStep = -1 | 1;
|
|
|
22
24
|
*
|
|
23
25
|
* @param event - the key, its modifiers and its target.
|
|
24
26
|
*/
|
|
25
|
-
export declare const storyStep: (event: Pick<KeyboardEvent, "key" | "metaKey" | "ctrlKey" | "altKey"
|
|
27
|
+
export declare const storyStep: (event: Pick<KeyboardEvent, "key" | "metaKey" | "ctrlKey" | "altKey"> & SingleKeyEvent) => StoryStep | undefined;
|
|
26
28
|
/**
|
|
27
29
|
* The id a step leads to: the neighbour of the current story, or the first (or last) story from a page that is not
|
|
28
30
|
* a story's; none past either end.
|
|
@@ -1,34 +1,49 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The shell's keys: `/` goes to the search, `[` and `]` open the previous and the next story in the sidebar's order
|
|
3
|
-
* A key typed into a field, or with a modifier, is
|
|
2
|
+
* The shell's keys: `/` goes to the search, `[` and `]` open the previous and the next story in the sidebar's order,
|
|
3
|
+
* `?` lists them. A key typed into a field or a custom element, or with a modifier, is theirs or the browser's; a reader
|
|
4
|
+
* can turn every key without a modifier off.
|
|
4
5
|
*
|
|
5
6
|
* @remarks
|
|
6
7
|
* The keys work while the shell has the focus; a frame keeps its own keys, so a story's keyboard behaviour is never
|
|
7
|
-
* taken over. Pure, apart from reading the event's target.
|
|
8
|
+
* taken over. Pure, apart from reading the event's target and the reader's choice.
|
|
8
9
|
*
|
|
9
10
|
* @module
|
|
10
11
|
*/
|
|
12
|
+
import { readStored } from "./useStored.js";
|
|
13
|
+
/** Where this browser keeps the reader's choice: a person's habit, the same in every catalogue of an origin. */
|
|
14
|
+
export const SINGLE_KEYS_STORED = "forgebook-single-keys";
|
|
15
|
+
/** Whether the reader left the keys without a modifier on, as they are unless turned off. */
|
|
16
|
+
const areSingleKeysOn = () => readStored(SINGLE_KEYS_STORED) !== "off";
|
|
11
17
|
/** The inputs that take no text: a key pressed on one is the page's, not the field's. */
|
|
12
18
|
const NOT_TEXT_INPUTS = ["checkbox", "radio", "button", "submit", "reset", "range", "color", "file"];
|
|
13
19
|
/**
|
|
14
|
-
* Whether a key event happens while the user types: in a field that takes text, a select or editable content
|
|
15
|
-
*
|
|
20
|
+
* Whether a key event happens while the user types: in a field that takes text, a select or editable content, or in a
|
|
21
|
+
* custom element (a catalogue's control, a plugin's panel), whose keys are its own whatever it draws. A toolbar's segment
|
|
22
|
+
* (a radio) or a toggle keeps the page's keys, so they work right after a press on one.
|
|
16
23
|
*
|
|
17
24
|
* @param target - the event's target.
|
|
18
25
|
*/
|
|
19
26
|
export const isTyping = (target) => typeof HTMLElement !== "undefined" &&
|
|
20
27
|
target instanceof HTMLElement &&
|
|
21
28
|
(target.isContentEditable ||
|
|
29
|
+
target.localName.includes("-") ||
|
|
22
30
|
(target instanceof HTMLInputElement && !NOT_TEXT_INPUTS.includes(target.type)) ||
|
|
23
31
|
target instanceof HTMLTextAreaElement ||
|
|
24
32
|
target instanceof HTMLSelectElement);
|
|
33
|
+
/**
|
|
34
|
+
* Whether a key without a modifier is the shell's: the reader left them on and nothing is typed into. The whole path of
|
|
35
|
+
* the event is read: from inside a shadow root it names only the host, and a custom element keeps what is pressed in it.
|
|
36
|
+
*
|
|
37
|
+
* @param event - the key's event.
|
|
38
|
+
*/
|
|
39
|
+
export const isSingleKeyFree = (event) => areSingleKeysOn() && !(event.composedPath?.() ?? [event.target]).some(isTyping);
|
|
25
40
|
/**
|
|
26
41
|
* The step a key asks for: `[` the previous story, `]` the next; none for any other key or one with a modifier.
|
|
27
42
|
*
|
|
28
43
|
* @param event - the key, its modifiers and its target.
|
|
29
44
|
*/
|
|
30
45
|
export const storyStep = (event) => {
|
|
31
|
-
if (event.metaKey || event.ctrlKey || event.altKey ||
|
|
46
|
+
if (event.metaKey || event.ctrlKey || event.altKey || !isSingleKeyFree(event))
|
|
32
47
|
return undefined;
|
|
33
48
|
if (event.key === "[")
|
|
34
49
|
return -1;
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
/** The later parts' texts, as shown: Forgebook's, with the catalogue's replacements. */
|
|
2
2
|
export declare const LATER_STRINGS: {
|
|
3
|
+
docsNav: string;
|
|
4
|
+
aboutControl: (control: string) => string;
|
|
5
|
+
signatureParameter: string;
|
|
6
|
+
signatureReturns: string;
|
|
7
|
+
signatureNone: string;
|
|
8
|
+
apiType: string;
|
|
9
|
+
apiWhat: string;
|
|
3
10
|
audienceError: string;
|
|
11
|
+
controlMenu: (label: string) => string;
|
|
12
|
+
unpinControl: string;
|
|
13
|
+
hideInView: string;
|
|
14
|
+
showInView: string;
|
|
4
15
|
controlKey: (control: string, key: string | undefined) => string;
|
|
5
16
|
changeKey: string;
|
|
6
17
|
pressAKey: string;
|
|
@@ -36,6 +47,14 @@ export declare const LATER_STRINGS: {
|
|
|
36
47
|
playTitle: string;
|
|
37
48
|
playTime: (ms: number) => string;
|
|
38
49
|
playAgain: string;
|
|
50
|
+
playRun: string;
|
|
51
|
+
playOnOpen: string;
|
|
52
|
+
playOff: string;
|
|
53
|
+
playStepThrough: string;
|
|
54
|
+
playNext: string;
|
|
55
|
+
playContinue: string;
|
|
56
|
+
playPaused: (action: string) => string;
|
|
57
|
+
playActionsNote: string;
|
|
39
58
|
playNoSteps: string;
|
|
40
59
|
codeFromArgs: string;
|
|
41
60
|
codeRender: string;
|
|
@@ -59,6 +78,13 @@ export declare const LATER_STRINGS: {
|
|
|
59
78
|
apiMember: string;
|
|
60
79
|
memberCount: (count: number) => string;
|
|
61
80
|
membersOf: (type: string) => string;
|
|
81
|
+
propOnlyWhen: (prop: string, values: readonly string[], orOmitted: boolean) => string;
|
|
82
|
+
propGeneric: (parameter: string, type: string, shownAs: "constraint" | "default" | "unknown") => string;
|
|
83
|
+
propUnresolved: (name: string) => string;
|
|
84
|
+
propAny: string;
|
|
85
|
+
propsUntyped: string;
|
|
86
|
+
propsNoSignature: string;
|
|
87
|
+
propsOutsidePackage: (count: number) => string;
|
|
62
88
|
showCode: string;
|
|
63
89
|
hideCode: string;
|
|
64
90
|
openStory: string;
|
|
@@ -74,11 +100,15 @@ export declare const LATER_STRINGS: {
|
|
|
74
100
|
backToPlace: string;
|
|
75
101
|
backToPlaceNamed: (name: string) => string;
|
|
76
102
|
examples: string;
|
|
103
|
+
pageContained: string;
|
|
77
104
|
pageError: string;
|
|
78
105
|
droppedArgs: string;
|
|
79
106
|
droppedArgReasons: {
|
|
80
107
|
undeclared: string;
|
|
81
108
|
type: string;
|
|
109
|
+
unreadable: string;
|
|
110
|
+
markup: string;
|
|
111
|
+
control: string;
|
|
82
112
|
};
|
|
83
113
|
removeDroppedArgs: string;
|
|
84
114
|
events: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The texts of the shell's parts that load after the first screen, but for the home and the docs pages
|
|
3
|
-
* (`pageStrings.ts`): a component's page, the panel's tabs but Props, the View menu's panel, the embed panel and page,
|
|
3
|
+
* (`pageStrings.ts`): a component's page, the panel's tabs but Props, the View menu's panel, a pinned control's menu, the embed panel and page,
|
|
4
4
|
* the comparison, the story clock's bar, the plugins' hosts and the note on args a link dropped. They load with the
|
|
5
5
|
* first of those parts, so a first load carries none of them.
|
|
6
6
|
*
|
|
@@ -14,7 +14,18 @@
|
|
|
14
14
|
import { lateStrings } from "./strings.js";
|
|
15
15
|
/** The later parts' texts, as shown: Forgebook's, with the catalogue's replacements. */
|
|
16
16
|
export const LATER_STRINGS = lateStrings({
|
|
17
|
+
docsNav: "Docs",
|
|
18
|
+
aboutControl: (control) => `About ${control}`,
|
|
19
|
+
signatureParameter: "Parameter",
|
|
20
|
+
signatureReturns: "Returns",
|
|
21
|
+
signatureNone: "It takes no parameters.",
|
|
22
|
+
apiType: "Type",
|
|
23
|
+
apiWhat: "What it does",
|
|
17
24
|
audienceError: "This part of the page could not be loaded",
|
|
25
|
+
controlMenu: (label) => `${label} on the toolbar`,
|
|
26
|
+
unpinControl: "Remove from the toolbar",
|
|
27
|
+
hideInView: "Hide in View",
|
|
28
|
+
showInView: "Show in View",
|
|
18
29
|
controlKey: (control, key) => key === undefined ? `${control}: no key` : `${control}: key ${key.toUpperCase()}`,
|
|
19
30
|
changeKey: "Change the key: press it, then the new key; Backspace takes it away",
|
|
20
31
|
pressAKey: "Press a key",
|
|
@@ -50,6 +61,14 @@ export const LATER_STRINGS = lateStrings({
|
|
|
50
61
|
playTitle: "Play function",
|
|
51
62
|
playTime: (ms) => `${ms} ms`,
|
|
52
63
|
playAgain: "Run again",
|
|
64
|
+
playRun: "Run",
|
|
65
|
+
playOnOpen: "Play stories when they open",
|
|
66
|
+
playOff: "This story has a play function. It has not run: run it, or have stories play when they open.",
|
|
67
|
+
playStepThrough: "Step through",
|
|
68
|
+
playNext: "Next",
|
|
69
|
+
playContinue: "Continue",
|
|
70
|
+
playPaused: (action) => `Next: ${action}`,
|
|
71
|
+
playActionsNote: "The log and the stepping follow the canvas and userEvent of the play's context; what a play imports itself runs unrecorded.",
|
|
53
72
|
playNoSteps: "The play names no steps: wrap its parts in step(label, run) to see them here.",
|
|
54
73
|
codeFromArgs: "from the args",
|
|
55
74
|
codeRender: "the story's render",
|
|
@@ -73,6 +92,20 @@ export const LATER_STRINGS = lateStrings({
|
|
|
73
92
|
apiMember: "Member",
|
|
74
93
|
memberCount: (count) => `${count} ${count === 1 ? "member" : "members"}`,
|
|
75
94
|
membersOf: (type) => `Members of ${type}`,
|
|
95
|
+
// the names and types below come written as code spans (`codeSpans.ts`), since a type may hold backticks
|
|
96
|
+
propOnlyWhen: (prop, values, orOmitted) => {
|
|
97
|
+
if (values.length === 0)
|
|
98
|
+
return `Only when ${prop} is left out.`;
|
|
99
|
+
return `Only when ${prop} is ${values.join(" or ")}${orOmitted ? ", or left out" : ""}.`;
|
|
100
|
+
},
|
|
101
|
+
propGeneric: (parameter, type, shownAs) => shownAs === "unknown"
|
|
102
|
+
? `${parameter} is generic, with no constraint: shown as \`unknown\`.`
|
|
103
|
+
: `${parameter} is generic: shown as its ${shownAs}, ${type}.`,
|
|
104
|
+
propUnresolved: (name) => `${name} cannot be found, so this type is read as \`any\`.`,
|
|
105
|
+
propAny: "Typed `any`: nothing is known of its values.",
|
|
106
|
+
propsUntyped: "Its props are typed `any`, so none can be listed.",
|
|
107
|
+
propsNoSignature: "Its type cannot be called with props, so none can be listed.",
|
|
108
|
+
propsOutsidePackage: (count) => `${count === 1 ? "Its one prop comes" : `All ${count} of its props come`} from outside its package (an element's attributes), which the reference leaves out.`,
|
|
76
109
|
showCode: "Show code",
|
|
77
110
|
hideCode: "Hide code",
|
|
78
111
|
openStory: "Open the story",
|
|
@@ -86,11 +119,18 @@ export const LATER_STRINGS = lateStrings({
|
|
|
86
119
|
fillPage: "Fill the page",
|
|
87
120
|
fillPageNamed: (name) => `Fill the page with ${name}`,
|
|
88
121
|
backToPlace: "Back to its place",
|
|
89
|
-
backToPlaceNamed: (name) => `
|
|
122
|
+
backToPlaceNamed: (name) => `Back to its place: ${name}`,
|
|
90
123
|
examples: "Examples",
|
|
124
|
+
pageContained: "Contained width",
|
|
91
125
|
pageError: "The component's page could not be read",
|
|
92
126
|
droppedArgs: "The link sets values this story does not take; they were left out:",
|
|
93
|
-
droppedArgReasons: {
|
|
127
|
+
droppedArgReasons: {
|
|
128
|
+
undeclared: "not one of its props",
|
|
129
|
+
type: "not of the prop's type",
|
|
130
|
+
unreadable: "its value could not be read",
|
|
131
|
+
markup: "this framework writes it into HTML, so a link may give only plain text",
|
|
132
|
+
control: "its control refuses it, or could not be loaded"
|
|
133
|
+
},
|
|
94
134
|
removeDroppedArgs: "Remove them from the address",
|
|
95
135
|
events: "Events",
|
|
96
136
|
calls: "Calls",
|
|
@@ -10,6 +10,7 @@ import { createRoot } from "react-dom/client";
|
|
|
10
10
|
import { isEmbedAddress } from "../embed.js";
|
|
11
11
|
import { framePageAddress, pageOrigins, SAME_ORIGIN } from "../frameOrigins.js";
|
|
12
12
|
import { CodeWriterContext } from "./codeWriter.js";
|
|
13
|
+
import { HAS_REFS, setShellRefs } from "./composition.js";
|
|
13
14
|
import { FORGEBOOK_MARK_URL } from "./forgebookMark.js";
|
|
14
15
|
import { setFramesOrigin } from "./framesOrigin.js";
|
|
15
16
|
import { Shell } from "./Shell.js";
|
|
@@ -57,6 +58,8 @@ export const mountShell = (container, config) => {
|
|
|
57
58
|
// set before anything renders, the embed included: its story's frame runs on the frames' origin too
|
|
58
59
|
const origins = pageOrigins(frames, window.location, "catalogue");
|
|
59
60
|
setFramesOrigin(origins.frames);
|
|
61
|
+
if (HAS_REFS)
|
|
62
|
+
setShellRefs(config.refs);
|
|
60
63
|
const shell = {
|
|
61
64
|
...page,
|
|
62
65
|
frameUrl: framePageAddress(page.frameUrl, origins.frames, window.location.pathname)
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/** The texts of the home and the docs pages, the catalogue's replacements applied. */
|
|
2
2
|
export declare const PAGE_STRINGS: {
|
|
3
3
|
homeEmpty: string;
|
|
4
|
+
homeNoStoryTitle: string;
|
|
5
|
+
homeNoStoryLead: string;
|
|
6
|
+
homeNoStoryHelp: string;
|
|
7
|
+
homeNoStoryCommand: string;
|
|
4
8
|
homeSummary: (components: number, sources: number) => string;
|
|
5
9
|
homeIntroError: string;
|
|
6
10
|
recentlyOpened: string;
|
|
@@ -9,6 +9,10 @@ import { lateStrings } from "./strings.js";
|
|
|
9
9
|
/** The texts of the home and the docs pages, the catalogue's replacements applied. */
|
|
10
10
|
export const PAGE_STRINGS = lateStrings({
|
|
11
11
|
homeEmpty: "No stories yet: a source with story files shows its families here.",
|
|
12
|
+
homeNoStoryTitle: "No stories yet",
|
|
13
|
+
homeNoStoryLead: "This catalogue lists the story files these patterns match, and none is there yet:",
|
|
14
|
+
homeNoStoryHelp: "Save a file one of them matches, and it shows here. To have one written from a component, run:",
|
|
15
|
+
homeNoStoryCommand: "npx forgebook new src/Button.tsx",
|
|
12
16
|
homeSummary: (components, sources) => `${components} ${components === 1 ? "component" : "components"} in ${sources} ${sources === 1 ? "library" : "libraries"}.`,
|
|
13
17
|
homeIntroError: "The library's introduction could not be read",
|
|
14
18
|
recentlyOpened: "Recently opened",
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a story's tags draw on a component's page (its status, a story's own), loaded from the page's own chunk with the
|
|
3
|
+
* same module as the sidebar's (`TagViews.tsx`).
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Kept apart from `tagView.tsx`, which the first load carries: imported by the pages that load later too, that module
|
|
7
|
+
* would be split out of the first load's chunk into one of its own, a request and some bytes more on every first load.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import type { ReactNode } from "react";
|
|
12
|
+
import type { TagViewProps } from "./TagViews.tsx";
|
|
13
|
+
/**
|
|
14
|
+
* What the tags draw in one place of a component's page, once its code is there.
|
|
15
|
+
*
|
|
16
|
+
* @param props - the place, and what it reads.
|
|
17
|
+
*/
|
|
18
|
+
export declare const PageTagView: (props: TagViewProps) => ReactNode;
|