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
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
@layer catalogue {
|
|
2
|
+
.forgebook-value-object,
|
|
3
|
+
.forgebook-value-list,
|
|
4
|
+
.forgebook-value-tuple,
|
|
5
|
+
.forgebook-value-union,
|
|
6
|
+
.forgebook-value-json,
|
|
7
|
+
.forgebook-value-search {
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
gap: 0.5rem;
|
|
11
|
+
min-width: 0;
|
|
12
|
+
}
|
|
13
|
+
.forgebook-value-object[data-depth]:not([data-depth="0"]) {
|
|
14
|
+
padding-inline-start: 0.5rem;
|
|
15
|
+
box-shadow: inset 2px 0 0 0 var(--forgebook-separator);
|
|
16
|
+
}
|
|
17
|
+
.forgebook-value-tuple {
|
|
18
|
+
flex-direction: row;
|
|
19
|
+
flex-wrap: wrap;
|
|
20
|
+
}
|
|
21
|
+
.forgebook-value-tuple > * {
|
|
22
|
+
flex: 1 1 5rem;
|
|
23
|
+
min-width: 0;
|
|
24
|
+
}
|
|
25
|
+
.forgebook-value-field {
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
gap: 0.25rem;
|
|
29
|
+
min-width: 0;
|
|
30
|
+
}
|
|
31
|
+
.forgebook-value-field > input[type=checkbox] {
|
|
32
|
+
align-self: flex-start;
|
|
33
|
+
}
|
|
34
|
+
.forgebook-value-field__head {
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
gap: 0.375rem;
|
|
38
|
+
}
|
|
39
|
+
.forgebook-value-field__name {
|
|
40
|
+
font: var(--forgebook-text-mono-small);
|
|
41
|
+
color: var(--forgebook-text-secondary);
|
|
42
|
+
}
|
|
43
|
+
.forgebook-value-list__item {
|
|
44
|
+
display: flex;
|
|
45
|
+
align-items: flex-start;
|
|
46
|
+
gap: 0.375rem;
|
|
47
|
+
padding: 0.375rem;
|
|
48
|
+
border-radius: var(--forgebook-radius-control);
|
|
49
|
+
box-shadow: inset 0 0 0 1px var(--forgebook-edge-field);
|
|
50
|
+
}
|
|
51
|
+
.forgebook-value-list__field {
|
|
52
|
+
display: flex;
|
|
53
|
+
flex: 1;
|
|
54
|
+
flex-direction: column;
|
|
55
|
+
gap: 0.375rem;
|
|
56
|
+
min-width: 0;
|
|
57
|
+
}
|
|
58
|
+
.forgebook-value-list__buttons {
|
|
59
|
+
display: flex;
|
|
60
|
+
flex: none;
|
|
61
|
+
gap: 0.125rem;
|
|
62
|
+
}
|
|
63
|
+
.forgebook-value-record__entry {
|
|
64
|
+
display: flex;
|
|
65
|
+
flex: 1;
|
|
66
|
+
flex-wrap: wrap;
|
|
67
|
+
gap: 0.375rem;
|
|
68
|
+
min-width: 0;
|
|
69
|
+
}
|
|
70
|
+
.forgebook-value-record__entry > * {
|
|
71
|
+
flex: 1 1 7rem;
|
|
72
|
+
}
|
|
73
|
+
.forgebook-value-record__name {
|
|
74
|
+
display: flex;
|
|
75
|
+
flex-direction: column;
|
|
76
|
+
gap: 0.25rem;
|
|
77
|
+
min-width: 0;
|
|
78
|
+
}
|
|
79
|
+
.forgebook-value-add {
|
|
80
|
+
display: inline-flex;
|
|
81
|
+
align-self: flex-start;
|
|
82
|
+
align-items: center;
|
|
83
|
+
gap: 0.25rem;
|
|
84
|
+
}
|
|
85
|
+
.forgebook-value-switch {
|
|
86
|
+
display: flex;
|
|
87
|
+
justify-content: flex-end;
|
|
88
|
+
}
|
|
89
|
+
.forgebook-value-note {
|
|
90
|
+
margin: 0;
|
|
91
|
+
font: var(--forgebook-text-caption);
|
|
92
|
+
color: var(--forgebook-text-secondary);
|
|
93
|
+
}
|
|
94
|
+
.forgebook-value-note[data-tone=problem] {
|
|
95
|
+
color: var(--forgebook-danger-text);
|
|
96
|
+
}
|
|
97
|
+
.forgebook-value-json__text {
|
|
98
|
+
font: var(--forgebook-text-mono-small);
|
|
99
|
+
white-space: pre;
|
|
100
|
+
overflow: auto;
|
|
101
|
+
}
|
|
102
|
+
.forgebook-value-search__list {
|
|
103
|
+
display: flex;
|
|
104
|
+
flex-direction: column;
|
|
105
|
+
max-height: 13rem;
|
|
106
|
+
padding: 0.25rem;
|
|
107
|
+
overflow-y: auto;
|
|
108
|
+
border-radius: var(--forgebook-radius-control);
|
|
109
|
+
background: var(--forgebook-surface);
|
|
110
|
+
box-shadow: inset 0 0 0 1px var(--forgebook-edge-field);
|
|
111
|
+
}
|
|
112
|
+
.forgebook-value-search__option {
|
|
113
|
+
display: flex;
|
|
114
|
+
align-items: center;
|
|
115
|
+
gap: 0.375rem;
|
|
116
|
+
min-height: 1.5rem;
|
|
117
|
+
padding: 0.125rem 0.375rem;
|
|
118
|
+
border-radius: var(--forgebook-radius-control-small);
|
|
119
|
+
font: var(--forgebook-text-row-compact);
|
|
120
|
+
color: var(--forgebook-text);
|
|
121
|
+
cursor: pointer;
|
|
122
|
+
}
|
|
123
|
+
.forgebook-value-search__option[aria-selected=true] {
|
|
124
|
+
font-weight: 600;
|
|
125
|
+
}
|
|
126
|
+
.forgebook-value-search__option[data-active], .forgebook-value-search__option:hover {
|
|
127
|
+
background: var(--forgebook-hover);
|
|
128
|
+
}
|
|
129
|
+
.forgebook-value-search__swatch {
|
|
130
|
+
flex: none;
|
|
131
|
+
width: 0.75rem;
|
|
132
|
+
height: 0.75rem;
|
|
133
|
+
border-radius: 50%;
|
|
134
|
+
box-shadow: inset 0 0 0 1px var(--forgebook-edge-field);
|
|
135
|
+
}
|
|
136
|
+
.forgebook-value-search__name {
|
|
137
|
+
overflow: hidden;
|
|
138
|
+
white-space: nowrap;
|
|
139
|
+
text-overflow: ellipsis;
|
|
140
|
+
min-width: 0;
|
|
141
|
+
flex: 1 1 auto;
|
|
142
|
+
}
|
|
143
|
+
.forgebook-value-search__hint {
|
|
144
|
+
overflow: hidden;
|
|
145
|
+
white-space: nowrap;
|
|
146
|
+
text-overflow: ellipsis;
|
|
147
|
+
min-width: 0;
|
|
148
|
+
flex: 0 1 45%;
|
|
149
|
+
font: var(--forgebook-text-mono-small);
|
|
150
|
+
color: var(--forgebook-text-secondary);
|
|
151
|
+
text-align: end;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -6,21 +6,24 @@
|
|
|
6
6
|
* The values are the ones `forgebook new` writes in a story's worst case (`worstCase.ts`). The text joins the long text
|
|
7
7
|
* and the unbreakable word, so one value shows both a box that must wrap and one that must cut or scroll. A colour, a
|
|
8
8
|
* date and a prop whose `argTypes` give it a list keep their values: a long text there is not a case, only an invalid
|
|
9
|
-
* value. A number with a highest value takes that value, the largest the story says it accepts.
|
|
9
|
+
* value. A number with a highest value takes that value, the largest the story says it accepts. An object's fields take
|
|
10
|
+
* theirs, a list many items, a mixed union its first member that has a worst case: what the type allows at its fullest.
|
|
10
11
|
*
|
|
11
12
|
* @module
|
|
12
13
|
*/
|
|
13
14
|
import { type PanelProp } from "../argTypes.ts";
|
|
14
|
-
import type { PanelArgs } from "../messages.ts";
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
import type { ArgValue, PanelArgs } from "../messages.ts";
|
|
16
|
+
import type { NamedValues } from "../namedValues.ts";
|
|
17
|
+
import type { ValueShape } from "../valueShape.ts";
|
|
17
18
|
/**
|
|
18
19
|
* The worst-case args for the props the panel can set.
|
|
19
20
|
*
|
|
20
21
|
* @param props - the props the panel can set.
|
|
22
|
+
* @param namedValues - the source's named values; none by default.
|
|
23
|
+
* @param worstOfShape - gives a prop with a shape its worst value, once its module loaded; until then they keep theirs.
|
|
21
24
|
* @returns the args, by prop name; empty when no prop takes a text or a number.
|
|
22
25
|
*/
|
|
23
|
-
export declare const worstArgs: (props: readonly PanelProp[]) => PanelArgs;
|
|
26
|
+
export declare const worstArgs: (props: readonly PanelProp[], namedValues?: NamedValues, worstOfShape?: (shape: ValueShape, namedValues: NamedValues) => ArgValue | undefined) => PanelArgs;
|
|
24
27
|
/**
|
|
25
28
|
* Whether the values shown are the worst case: every worst-case arg is set to its worst value.
|
|
26
29
|
*
|
|
@@ -6,17 +6,16 @@
|
|
|
6
6
|
* The values are the ones `forgebook new` writes in a story's worst case (`worstCase.ts`). The text joins the long text
|
|
7
7
|
* and the unbreakable word, so one value shows both a box that must wrap and one that must cut or scroll. A colour, a
|
|
8
8
|
* date and a prop whose `argTypes` give it a list keep their values: a long text there is not a case, only an invalid
|
|
9
|
-
* value. A number with a highest value takes that value, the largest the story says it accepts.
|
|
9
|
+
* value. A number with a highest value takes that value, the largest the story says it accepts. An object's fields take
|
|
10
|
+
* theirs, a list many items, a mixed union its first member that has a worst case: what the type allows at its fullest.
|
|
10
11
|
*
|
|
11
12
|
* @module
|
|
12
13
|
*/
|
|
13
14
|
import { isColorProp } from "../argTypes.js";
|
|
14
|
-
import {
|
|
15
|
-
/** The worst text: a long one, with a word that cannot break. */
|
|
16
|
-
export const WORST_ARG_TEXT = `${WORST_TEXT} ${WORST_WORD}`;
|
|
15
|
+
import { WORST_ARG_TEXT, WORST_NUMBER } from "../worstCase.js";
|
|
17
16
|
/** Whether a prop is set as a text: of kind text, or a node that takes one, with no other control named. */
|
|
18
17
|
const isText = (prop) => (prop.kind === "text" || (prop.kind === "other" && prop.canTakeText === true)) &&
|
|
19
|
-
(prop.control === undefined || prop.control === "text") &&
|
|
18
|
+
(prop.control === undefined || prop.control === "text" || prop.control === "textarea") &&
|
|
20
19
|
!isColorProp(prop);
|
|
21
20
|
/** Whether a prop is set as a number, with no other control named. */
|
|
22
21
|
const isNumber = (prop) => prop.kind === "number" &&
|
|
@@ -25,9 +24,15 @@ const isNumber = (prop) => prop.kind === "number" &&
|
|
|
25
24
|
* The worst-case args for the props the panel can set.
|
|
26
25
|
*
|
|
27
26
|
* @param props - the props the panel can set.
|
|
27
|
+
* @param namedValues - the source's named values; none by default.
|
|
28
|
+
* @param worstOfShape - gives a prop with a shape its worst value, once its module loaded; until then they keep theirs.
|
|
28
29
|
* @returns the args, by prop name; empty when no prop takes a text or a number.
|
|
29
30
|
*/
|
|
30
|
-
export const worstArgs = (props) => Object.fromEntries(props.flatMap((prop) => {
|
|
31
|
+
export const worstArgs = (props, namedValues = {}, worstOfShape) => Object.fromEntries(props.flatMap((prop) => {
|
|
32
|
+
if (prop.shape !== undefined && (prop.control === undefined || prop.control === "object")) {
|
|
33
|
+
const worst = worstOfShape?.(prop.shape, namedValues);
|
|
34
|
+
return worst === undefined ? [] : [[prop.name, worst]];
|
|
35
|
+
}
|
|
31
36
|
if (isText(prop))
|
|
32
37
|
return [[prop.name, WORST_ARG_TEXT]];
|
|
33
38
|
if (isNumber(prop))
|
|
@@ -42,5 +47,7 @@ export const worstArgs = (props) => Object.fromEntries(props.flatMap((prop) => {
|
|
|
42
47
|
*/
|
|
43
48
|
export const isWorstCase = (worst, values) => {
|
|
44
49
|
const entries = Object.entries(worst);
|
|
45
|
-
|
|
50
|
+
// compared as text: a list or an object comes back from the address as another one that reads the same
|
|
51
|
+
return (entries.length > 0 &&
|
|
52
|
+
entries.every(([name, value]) => JSON.stringify(values[name]) === JSON.stringify(value)));
|
|
46
53
|
};
|
package/dist/src/shellTheme.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export declare const LIGHT_PALETTE: Palette;
|
|
|
19
19
|
/** The shell's dark palette, every role. */
|
|
20
20
|
export declare const DARK_PALETTE: Palette;
|
|
21
21
|
/** The text roles, each read on every ground. */
|
|
22
|
-
export declare const TEXT_ROLES: readonly ["text", "text-secondary", "text-tertiary", "accent-text", "danger-text"];
|
|
22
|
+
export declare const TEXT_ROLES: readonly ["text", "text-secondary", "text-tertiary", "accent-text", "danger-text", "caution-text", "positive-text"];
|
|
23
23
|
/** The grounds text is read on. */
|
|
24
24
|
export declare const GROUND_ROLES: readonly ["window", "sidebar", "surface"];
|
|
25
25
|
/** The code roles, read on the code background. */
|
package/dist/src/shellTheme.js
CHANGED
|
@@ -14,6 +14,8 @@ export const LIGHT_PALETTE = {
|
|
|
14
14
|
"accent-text": "#0059d2",
|
|
15
15
|
"on-accent": "#fff",
|
|
16
16
|
"danger-text": "#bc1f16",
|
|
17
|
+
"caution-text": "#935200",
|
|
18
|
+
"positive-text": "#077229",
|
|
17
19
|
"code-keyword": "#7036c4",
|
|
18
20
|
"code-type": "#0059d2",
|
|
19
21
|
"code-string": "#077229",
|
|
@@ -46,6 +48,8 @@ export const DARK_PALETTE = {
|
|
|
46
48
|
"accent-text": "#7ab3ff",
|
|
47
49
|
"on-accent": "#fff",
|
|
48
50
|
"danger-text": "#ff8a80",
|
|
51
|
+
"caution-text": "#f2b46b",
|
|
52
|
+
"positive-text": "#7fdc8f",
|
|
49
53
|
"code-keyword": "#c9a8ff",
|
|
50
54
|
"code-type": "#7ab3ff",
|
|
51
55
|
"code-string": "#7fdc8f",
|
|
@@ -75,6 +79,8 @@ const THEME_ROLES = [
|
|
|
75
79
|
"accent",
|
|
76
80
|
"accent-text",
|
|
77
81
|
"danger-text",
|
|
82
|
+
"caution-text",
|
|
83
|
+
"positive-text",
|
|
78
84
|
"code-keyword",
|
|
79
85
|
"code-type",
|
|
80
86
|
"code-string",
|
|
@@ -87,7 +93,15 @@ const TEXT_CONTRAST = 4.5;
|
|
|
87
93
|
/** The contrast a focus ring needs against what it sits on, WCAG 2.1 AA for non-text. */
|
|
88
94
|
const FOCUS_CONTRAST = 3;
|
|
89
95
|
/** The text roles, each read on every ground. */
|
|
90
|
-
export const TEXT_ROLES = [
|
|
96
|
+
export const TEXT_ROLES = [
|
|
97
|
+
"text",
|
|
98
|
+
"text-secondary",
|
|
99
|
+
"text-tertiary",
|
|
100
|
+
"accent-text",
|
|
101
|
+
"danger-text",
|
|
102
|
+
"caution-text",
|
|
103
|
+
"positive-text"
|
|
104
|
+
];
|
|
91
105
|
/** The grounds text is read on. */
|
|
92
106
|
export const GROUND_ROLES = ["window", "sidebar", "surface"];
|
|
93
107
|
/** The code roles, read on the code background. */
|
|
@@ -32,6 +32,10 @@ export type ShellPalette = {
|
|
|
32
32
|
readonly "accent-text": string;
|
|
33
33
|
/** Errors, as text. */
|
|
34
34
|
readonly "danger-text": string;
|
|
35
|
+
/** A warning, as text: a status's badge in the `caution` tone. */
|
|
36
|
+
readonly "caution-text": string;
|
|
37
|
+
/** Something done or safe, as text: a status's badge in the `positive` tone. */
|
|
38
|
+
readonly "positive-text": string;
|
|
35
39
|
/** Keywords in code. */
|
|
36
40
|
readonly "code-keyword": string;
|
|
37
41
|
/** Types in code. */
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A file's name as one word of a command an agent will run: a name comes from a branch that may not be trusted, and
|
|
3
|
+
* `$(…)` in it must stay text. Shared by what `verify` and `visibility` tell an agent to run.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* The word.
|
|
9
|
+
*
|
|
10
|
+
* @param path - the file's name.
|
|
11
|
+
*/
|
|
12
|
+
export declare const shellWord: (path: string) => string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A file's name as one word of a command an agent will run: a name comes from a branch that may not be trusted, and
|
|
3
|
+
* `$(…)` in it must stay text. Shared by what `verify` and `visibility` tell an agent to run.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* The word.
|
|
9
|
+
*
|
|
10
|
+
* @param path - the file's name.
|
|
11
|
+
*/
|
|
12
|
+
export const shellWord = (path) => {
|
|
13
|
+
const named = path.startsWith("-") ? `./${path}` : path;
|
|
14
|
+
return /^[\w./@+-]+$/.test(named) ? named : `'${named.replaceAll("'", `'\\''`)}'`;
|
|
15
|
+
};
|
package/dist/src/sourceFiles.js
CHANGED
|
@@ -14,7 +14,8 @@ export const sourceFiles = (source) => {
|
|
|
14
14
|
stories: Object.assign({}, ...source.files.map((group) => group.stories)),
|
|
15
15
|
docs: Object.assign({}, ...source.files.map((group) => group.docs)),
|
|
16
16
|
code: Object.assign({}, ...source.files.map((group) => group.code)),
|
|
17
|
-
pages: Object.assign({}, ...source.files.map((group) => group.pages))
|
|
17
|
+
pages: Object.assign({}, ...source.files.map((group) => group.pages)),
|
|
18
|
+
problems: source.files.flatMap((group) => group.problems ?? [])
|
|
18
19
|
};
|
|
19
20
|
MERGED.set(source, merged);
|
|
20
21
|
return merged;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A story's `argTypes` as its module writes them (Storybook's): read in the frame into the form that crosses to the shell
|
|
3
|
+
* (`argTypes.ts`), and their `mapping` applied to the args the story receives. The commands read them the same way.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Option values that cannot cross (a component, a function) are sent as their `mapping` keys, which the frame turns back
|
|
7
|
+
* into the values. Pure.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import type { StoryControlsSetting } from "@forgebook/story-format/source";
|
|
12
|
+
import type { PanelArgTypes, PanelControl } from "./argTypes.ts";
|
|
13
|
+
/** Storybook's control names, as the panel draws them (the inline variants look the same here). */
|
|
14
|
+
export declare const CONTROLS: Readonly<Record<string, PanelControl>>;
|
|
15
|
+
/**
|
|
16
|
+
* The `argTypes` of the meta and the story, merged: each arg's entry from both, the story's fields over the meta's.
|
|
17
|
+
*
|
|
18
|
+
* @param meta - the meta's `argTypes`.
|
|
19
|
+
* @param story - the story's `argTypes`.
|
|
20
|
+
*/
|
|
21
|
+
export declare const mergedArgTypes: (meta: unknown, story: unknown) => Readonly<Record<string, Readonly<Record<string, unknown>>>>;
|
|
22
|
+
/**
|
|
23
|
+
* The arg types the frame sends: each entry read, and the args `parameters.controls.exclude` names hidden.
|
|
24
|
+
*
|
|
25
|
+
* @param argTypes - the merged `argTypes`.
|
|
26
|
+
* @param excluded - the args `parameters.controls.exclude` names.
|
|
27
|
+
*/
|
|
28
|
+
export declare const panelArgTypesOf: (argTypes: Readonly<Record<string, Readonly<Record<string, unknown>>>>, excluded: readonly string[]) => PanelArgTypes;
|
|
29
|
+
/**
|
|
30
|
+
* The args with each `mapping` applied: an arg whose value is a key of its entry's `mapping` receives the value the
|
|
31
|
+
* key stands for, as Storybook's (an arg written as the key in the story, or chosen in the panel).
|
|
32
|
+
*
|
|
33
|
+
* @param args - the args.
|
|
34
|
+
* @param argTypes - the merged `argTypes`.
|
|
35
|
+
*/
|
|
36
|
+
export declare const mappedArgs: (args: Readonly<Record<string, unknown>>, argTypes: Readonly<Record<string, Readonly<Record<string, unknown>>>>) => Readonly<Record<string, unknown>>;
|
|
37
|
+
/**
|
|
38
|
+
* The props the panel can set, as the story's parameters say: `false` none, a list or `{ include }` those, anything
|
|
39
|
+
* else every one.
|
|
40
|
+
*
|
|
41
|
+
* @param value - `parameters.controls`.
|
|
42
|
+
*/
|
|
43
|
+
export declare const controlsOfParameter: (value: unknown) => StoryControlsSetting;
|
|
44
|
+
/**
|
|
45
|
+
* The args `parameters.controls.exclude` hides.
|
|
46
|
+
*
|
|
47
|
+
* @param value - `parameters.controls`.
|
|
48
|
+
*/
|
|
49
|
+
export declare const excludedControls: (value: unknown) => readonly string[];
|
|
50
|
+
/**
|
|
51
|
+
* The args whose calls the Events tab records as actions: those whose value is a spy, and those whose `argTypes`
|
|
52
|
+
* entry names an `action`. Explicit only: no arg is recorded for its name alone.
|
|
53
|
+
*
|
|
54
|
+
* @param args - the story's args.
|
|
55
|
+
* @param argTypes - the merged `argTypes`.
|
|
56
|
+
*/
|
|
57
|
+
export declare const actionNames: (args: Readonly<Record<string, unknown>>, argTypes: Readonly<Record<string, Readonly<Record<string, unknown>>>>) => readonly string[];
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { argConditionOf } from "./argConditions.js";
|
|
2
|
+
import { isArgValue } from "./messages.js";
|
|
3
|
+
/** Whether a value is a plain object. */
|
|
4
|
+
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5
|
+
/** Storybook's control names, as the panel draws them (the inline variants look the same here). */
|
|
6
|
+
export const CONTROLS = {
|
|
7
|
+
select: "select",
|
|
8
|
+
radio: "radio",
|
|
9
|
+
"inline-radio": "radio",
|
|
10
|
+
check: "check",
|
|
11
|
+
"inline-check": "check",
|
|
12
|
+
"multi-select": "multi-select",
|
|
13
|
+
boolean: "boolean",
|
|
14
|
+
text: "text",
|
|
15
|
+
number: "number",
|
|
16
|
+
range: "range",
|
|
17
|
+
color: "color",
|
|
18
|
+
date: "date",
|
|
19
|
+
object: "object",
|
|
20
|
+
file: "file",
|
|
21
|
+
textarea: "textarea",
|
|
22
|
+
token: "token"
|
|
23
|
+
};
|
|
24
|
+
/** A number field of an object, when it is a finite number. */
|
|
25
|
+
const numberOf = (part, name) => {
|
|
26
|
+
const value = part[name];
|
|
27
|
+
return typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
28
|
+
};
|
|
29
|
+
/** The labels of a control, when every one is a text. */
|
|
30
|
+
const labelsOf = (value) => isRecord(value) && Object.values(value).every((label) => typeof label === "string")
|
|
31
|
+
? Object.fromEntries(Object.entries(value).map(([option, label]) => [option, String(label)]))
|
|
32
|
+
: undefined;
|
|
33
|
+
/**
|
|
34
|
+
* The control an entry names: `false` and a disabled control are none, a name or `{ type }` is that control, and
|
|
35
|
+
* options without a control make a select.
|
|
36
|
+
*/
|
|
37
|
+
const controlOf = (entry) => {
|
|
38
|
+
const control = entry["control"];
|
|
39
|
+
if (control === false)
|
|
40
|
+
return "none";
|
|
41
|
+
if (typeof control === "string")
|
|
42
|
+
return Object.hasOwn(CONTROLS, control) ? CONTROLS[control] : undefined;
|
|
43
|
+
if (isRecord(control)) {
|
|
44
|
+
if (control["disable"] === true)
|
|
45
|
+
return "none";
|
|
46
|
+
const type = control["type"];
|
|
47
|
+
if (typeof type === "string")
|
|
48
|
+
return Object.hasOwn(CONTROLS, type) ? CONTROLS[type] : undefined;
|
|
49
|
+
}
|
|
50
|
+
return Array.isArray(entry["options"]) ? "select" : undefined;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* The options as they cross: texts and numbers as they are; any other value only through `mapping`, whose keys are
|
|
54
|
+
* the options then.
|
|
55
|
+
*/
|
|
56
|
+
const optionsOf = (entry) => {
|
|
57
|
+
const options = entry["options"];
|
|
58
|
+
if (!Array.isArray(options))
|
|
59
|
+
return undefined;
|
|
60
|
+
return options.filter((option) => typeof option === "string" || typeof option === "number");
|
|
61
|
+
};
|
|
62
|
+
/** A name among the controls an entry writes that is none of the panel's: a custom control's. */
|
|
63
|
+
const customControlOf = (control) => {
|
|
64
|
+
if (isRecord(control) && control["disable"] === true)
|
|
65
|
+
return undefined;
|
|
66
|
+
const name = isRecord(control) ? control["type"] : control;
|
|
67
|
+
return typeof name === "string" && !Object.hasOwn(CONTROLS, name) ? name : undefined;
|
|
68
|
+
};
|
|
69
|
+
/** What a `token`, a `file` and a custom control say of themselves. */
|
|
70
|
+
const editorSettingsOf = (settings) => {
|
|
71
|
+
const { of, format, accept } = settings;
|
|
72
|
+
const own = settings["settings"];
|
|
73
|
+
return {
|
|
74
|
+
...(own !== undefined && isArgValue(own) ? { settings: own } : {}),
|
|
75
|
+
...(typeof of === "string" ? { tokens: { of, ...(typeof format === "string" ? { format } : {}) } } : {}),
|
|
76
|
+
...(typeof accept === "string" ? { accept } : {})
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* One entry as the panel reads it.
|
|
81
|
+
*
|
|
82
|
+
* @param entry - the `argTypes` entry, the story's laid over the meta's.
|
|
83
|
+
* @param isExcluded - whether `parameters.controls.exclude` names the arg.
|
|
84
|
+
*/
|
|
85
|
+
const panelArgTypeOf = (entry, isExcluded) => {
|
|
86
|
+
const control = controlOf(entry);
|
|
87
|
+
const options = optionsOf(entry);
|
|
88
|
+
const settings = isRecord(entry["control"]) ? entry["control"] : {};
|
|
89
|
+
const table = entry["table"];
|
|
90
|
+
const name = entry["name"];
|
|
91
|
+
const description = entry["description"];
|
|
92
|
+
const labels = labelsOf(settings["labels"]);
|
|
93
|
+
const min = numberOf(settings, "min");
|
|
94
|
+
const max = numberOf(settings, "max");
|
|
95
|
+
const step = numberOf(settings, "step");
|
|
96
|
+
const condition = argConditionOf(entry["if"]);
|
|
97
|
+
const customControl = customControlOf(entry["control"]);
|
|
98
|
+
return {
|
|
99
|
+
isHidden: isExcluded || (isRecord(table) && table["disable"] === true),
|
|
100
|
+
...(typeof name === "string" ? { label: name } : {}),
|
|
101
|
+
...(typeof description === "string" ? { description } : {}),
|
|
102
|
+
...(control === undefined ? {} : { control }),
|
|
103
|
+
...(options === undefined ? {} : { options }),
|
|
104
|
+
...(labels === undefined ? {} : { labels }),
|
|
105
|
+
...(min === undefined ? {} : { min }),
|
|
106
|
+
...(max === undefined ? {} : { max }),
|
|
107
|
+
...(step === undefined ? {} : { step }),
|
|
108
|
+
...(condition === undefined ? {} : { if: condition }),
|
|
109
|
+
...editorSettingsOf(settings),
|
|
110
|
+
...(customControl === undefined ? {} : { customControl })
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* The `argTypes` of the meta and the story, merged: each arg's entry from both, the story's fields over the meta's.
|
|
115
|
+
*
|
|
116
|
+
* @param meta - the meta's `argTypes`.
|
|
117
|
+
* @param story - the story's `argTypes`.
|
|
118
|
+
*/
|
|
119
|
+
export const mergedArgTypes = (meta, story) => {
|
|
120
|
+
const merged = {};
|
|
121
|
+
for (const part of [meta, story]) {
|
|
122
|
+
if (!isRecord(part))
|
|
123
|
+
continue;
|
|
124
|
+
for (const [name, entry] of Object.entries(part)) {
|
|
125
|
+
if (isRecord(entry))
|
|
126
|
+
merged[name] = { ...merged[name], ...entry };
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return merged;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* The arg types the frame sends: each entry read, and the args `parameters.controls.exclude` names hidden.
|
|
133
|
+
*
|
|
134
|
+
* @param argTypes - the merged `argTypes`.
|
|
135
|
+
* @param excluded - the args `parameters.controls.exclude` names.
|
|
136
|
+
*/
|
|
137
|
+
export const panelArgTypesOf = (argTypes, excluded) => {
|
|
138
|
+
const names = [...new Set([...Object.keys(argTypes), ...excluded])];
|
|
139
|
+
return Object.fromEntries(names.map((name) => [name, panelArgTypeOf(argTypes[name] ?? {}, excluded.includes(name))]));
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* The args with each `mapping` applied: an arg whose value is a key of its entry's `mapping` receives the value the
|
|
143
|
+
* key stands for, as Storybook's (an arg written as the key in the story, or chosen in the panel).
|
|
144
|
+
*
|
|
145
|
+
* @param args - the args.
|
|
146
|
+
* @param argTypes - the merged `argTypes`.
|
|
147
|
+
*/
|
|
148
|
+
export const mappedArgs = (args, argTypes) => Object.fromEntries(Object.entries(args).map(([name, value]) => {
|
|
149
|
+
const mapping = argTypes[name]?.["mapping"];
|
|
150
|
+
if (!isRecord(mapping) || (typeof value !== "string" && typeof value !== "number"))
|
|
151
|
+
return [name, value];
|
|
152
|
+
const key = String(value);
|
|
153
|
+
// the mapping's own keys only: a value a shared link chose (`constructor`) never reaches its prototype
|
|
154
|
+
return [name, Object.hasOwn(mapping, key) ? mapping[key] : value];
|
|
155
|
+
}));
|
|
156
|
+
/**
|
|
157
|
+
* The props the panel can set, as the story's parameters say: `false` none, a list or `{ include }` those, anything
|
|
158
|
+
* else every one.
|
|
159
|
+
*
|
|
160
|
+
* @param value - `parameters.controls`.
|
|
161
|
+
*/
|
|
162
|
+
export const controlsOfParameter = (value) => {
|
|
163
|
+
if (value === false)
|
|
164
|
+
return [];
|
|
165
|
+
if (Array.isArray(value) && value.every((name) => typeof name === "string"))
|
|
166
|
+
return value;
|
|
167
|
+
const include = isRecord(value) ? value["include"] : undefined;
|
|
168
|
+
if (Array.isArray(include) && include.every((name) => typeof name === "string"))
|
|
169
|
+
return include;
|
|
170
|
+
return "all";
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* The args `parameters.controls.exclude` hides.
|
|
174
|
+
*
|
|
175
|
+
* @param value - `parameters.controls`.
|
|
176
|
+
*/
|
|
177
|
+
export const excludedControls = (value) => {
|
|
178
|
+
const exclude = isRecord(value) ? value["exclude"] : undefined;
|
|
179
|
+
return Array.isArray(exclude) ? exclude.filter((name) => typeof name === "string") : [];
|
|
180
|
+
};
|
|
181
|
+
/** Whether a value is a spy (`fn()` of `storybook/test` or Vitest): a function with its calls under `mock`. */
|
|
182
|
+
const isSpy = (value) => typeof value === "function" && "mock" in value;
|
|
183
|
+
/**
|
|
184
|
+
* The args whose calls the Events tab records as actions: those whose value is a spy, and those whose `argTypes`
|
|
185
|
+
* entry names an `action`. Explicit only: no arg is recorded for its name alone.
|
|
186
|
+
*
|
|
187
|
+
* @param args - the story's args.
|
|
188
|
+
* @param argTypes - the merged `argTypes`.
|
|
189
|
+
*/
|
|
190
|
+
export const actionNames = (args, argTypes) => [
|
|
191
|
+
...new Set([
|
|
192
|
+
...Object.entries(args).flatMap(([name, value]) => (isSpy(value) ? [name] : [])),
|
|
193
|
+
...Object.entries(argTypes).flatMap(([name, entry]) => typeof entry["action"] === "string" || entry["action"] === true ? [name] : [])
|
|
194
|
+
])
|
|
195
|
+
];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { backdropColor } from "./backdrops.js";
|
|
2
|
+
import { shownSwitches } from "./switches.js";
|
|
2
3
|
import { isMoreContrastOf, schemeOf } from "./viewState.js";
|
|
3
4
|
/**
|
|
4
5
|
* A source's page colour for a view, or the colour of the view's backdrop.
|
|
@@ -20,7 +21,17 @@ export const storyBackground = (background, view, catalogue, isSystemDark) => {
|
|
|
20
21
|
return backdrop;
|
|
21
22
|
if (background === undefined)
|
|
22
23
|
return undefined;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
const colourIn = (colours) => {
|
|
25
|
+
if (isDark)
|
|
26
|
+
return (isMoreContrast ? colours?.darkMore : undefined) ?? colours?.dark;
|
|
27
|
+
return (isMoreContrast ? colours?.lightMore : undefined) ?? colours?.light;
|
|
28
|
+
};
|
|
29
|
+
const values = shownSwitches(view.switches, switches);
|
|
30
|
+
// the first switch whose value gives this scheme's colour: a value that gives only `dark` leaves `light` to the next
|
|
31
|
+
for (const each of switches) {
|
|
32
|
+
const colour = colourIn(background.bySwitch?.[each.id]?.[values[each.id] ?? each.default]);
|
|
33
|
+
if (colour !== undefined)
|
|
34
|
+
return colour;
|
|
35
|
+
}
|
|
36
|
+
return colourIn(background);
|
|
26
37
|
};
|