forgebook 0.1.7 → 0.2.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 +906 -23
- package/dist/bin/forgebook/agentClient.d.ts +30 -1
- package/dist/bin/forgebook/agentClient.js +155 -14
- package/dist/bin/forgebook/agentLoopCommands.d.mts +0 -1
- package/dist/bin/forgebook/agentLoopCommands.mjs +161 -40
- package/dist/bin/forgebook/agentText.d.ts +74 -3
- package/dist/bin/forgebook/agentText.js +192 -8
- package/dist/bin/forgebook/agents.md +145 -7
- package/dist/bin/forgebook/agentsText.d.ts +7 -3
- package/dist/bin/forgebook/agentsText.js +7 -3
- package/dist/bin/forgebook/builtCatalogue.d.ts +31 -0
- package/dist/bin/forgebook/builtCatalogue.js +96 -0
- package/dist/bin/forgebook/catalogueCommands.d.ts +22 -3
- package/dist/bin/forgebook/catalogueCommands.js +21 -2
- package/dist/bin/forgebook/catalogueVite.d.ts +51 -9
- package/dist/bin/forgebook/catalogueVite.js +95 -9
- package/dist/bin/forgebook/checkCodeRun.d.ts +8 -0
- package/dist/bin/forgebook/checkCodeRun.js +27 -0
- package/dist/bin/forgebook/commandServer.d.ts +11 -0
- package/dist/bin/forgebook/commandServer.js +39 -0
- package/dist/bin/forgebook/compileCache.d.ts +7 -0
- package/dist/bin/forgebook/compileCache.js +24 -0
- package/dist/bin/forgebook/devCommands.d.mts +14 -0
- package/dist/bin/forgebook/devCommands.mjs +104 -0
- package/dist/bin/forgebook/errorsRun.d.ts +0 -1
- package/dist/bin/forgebook/errorsRun.js +0 -1
- package/dist/bin/forgebook/forgebook.d.mts +0 -1
- package/dist/bin/forgebook/forgebook.mjs +18 -302
- package/dist/bin/forgebook/forgebookCommands.d.mts +1 -0
- package/dist/bin/forgebook/forgebookCommands.mjs +292 -0
- package/dist/bin/forgebook/importers/storybook.d.ts +10 -4
- package/dist/bin/forgebook/importers/storybook.js +71 -45
- package/dist/bin/forgebook/importers/storybookAngular.d.ts +15 -0
- package/dist/bin/forgebook/importers/storybookAngular.js +97 -0
- package/dist/bin/forgebook/importers/storybookFrameworks.d.ts +53 -0
- package/dist/bin/forgebook/importers/storybookFrameworks.js +180 -0
- package/dist/bin/forgebook/importers/storybookReactNative.d.ts +40 -0
- package/dist/bin/forgebook/importers/storybookReactNative.js +179 -0
- package/dist/bin/forgebook/initCommands.d.mts +0 -1
- package/dist/bin/forgebook/initCommands.mjs +23 -12
- package/dist/bin/forgebook/initConfig.d.ts +0 -1
- package/dist/bin/forgebook/initConfig.js +17 -3
- package/dist/bin/forgebook/mcpCommand.d.mts +8 -0
- package/dist/bin/forgebook/mcpCommand.mjs +99 -0
- package/dist/bin/forgebook/mcpPreview.d.ts +32 -0
- package/dist/bin/forgebook/mcpPreview.js +107 -0
- package/dist/bin/forgebook/mcpToolParts.d.ts +28 -0
- package/dist/bin/forgebook/mcpToolParts.js +24 -0
- package/dist/bin/forgebook/mcpTools.d.ts +12 -6
- package/dist/bin/forgebook/mcpTools.js +148 -27
- package/dist/bin/forgebook/newStories.d.ts +2 -3
- package/dist/bin/forgebook/newStories.js +4 -3
- package/dist/bin/forgebook/newStoriesFile.d.ts +3 -4
- package/dist/bin/forgebook/newStoriesFile.js +23 -11
- package/dist/bin/forgebook/pageTools.d.ts +8 -0
- package/dist/bin/forgebook/pageTools.js +71 -0
- package/dist/bin/forgebook/pagesCommands.d.mts +14 -0
- package/dist/bin/forgebook/pagesCommands.mjs +109 -0
- package/dist/bin/forgebook/prebundleChild.d.ts +1 -0
- package/dist/bin/forgebook/prebundleChild.js +34 -0
- package/dist/bin/forgebook/prebundleRun.d.ts +22 -0
- package/dist/bin/forgebook/prebundleRun.js +49 -0
- package/dist/bin/forgebook/prebundleStart.d.ts +44 -0
- package/dist/bin/forgebook/prebundleStart.js +82 -0
- package/dist/bin/forgebook/semanticOptions.d.ts +45 -0
- package/dist/bin/forgebook/semanticOptions.js +36 -0
- package/dist/bin/forgebook/storyCheckCommands.d.mts +13 -0
- package/dist/bin/forgebook/storyCheckCommands.mjs +69 -0
- package/dist/bin/forgebook/storyCheckRun.d.ts +40 -6
- package/dist/bin/forgebook/storyCheckRun.js +90 -16
- package/dist/bin/forgebook/tokensRun.d.ts +41 -0
- package/dist/bin/forgebook/tokensRun.js +42 -0
- package/dist/bin/forgebook/touchWindowRun.d.ts +0 -1
- package/dist/bin/forgebook/touchWindowRun.js +0 -1
- package/dist/bin/forgebook/visualCommands.d.mts +37 -0
- package/dist/bin/forgebook/visualCommands.mjs +162 -0
- package/dist/bin/forgebook/viteCache.d.ts +48 -0
- package/dist/bin/forgebook/viteCache.js +112 -0
- package/dist/bin/forgebook-docs/catalogueDocs.d.ts +1 -2
- package/dist/bin/forgebook-docs/catalogueDocs.js +8 -5
- package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts +24 -3
- package/dist/bin/forgebook-docs/catalogueDocs.types.js +0 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts +0 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.js +88 -24
- package/dist/bin/forgebook-docs/catalogueOptions.d.ts +1 -2
- package/dist/bin/forgebook-docs/catalogueOptions.js +8 -2
- package/dist/bin/forgebook-docs/collectDocs.d.ts +4 -4
- package/dist/bin/forgebook-docs/collectDocs.js +128 -29
- package/dist/bin/forgebook-docs/forgebook-docs.d.mts +0 -1
- package/dist/bin/forgebook-docs/forgebook-docs.mjs +0 -1
- package/dist/bin/forgebook-docs/llmsText.d.ts +5 -1
- package/dist/bin/forgebook-docs/llmsText.js +5 -2
- package/dist/bin/forgebook-docs/moduleDocs.d.ts +0 -1
- package/dist/bin/forgebook-docs/moduleDocs.js +0 -1
- package/dist/bin/forgebook-docs/sassDocs.d.ts +0 -1
- package/dist/bin/forgebook-docs/sassDocs.js +0 -1
- package/dist/bin/forgebook-texts/forgebook-texts.d.mts +0 -1
- package/dist/bin/forgebook-texts/forgebook-texts.mjs +1 -2
- package/dist/bin/forgebook-texts/storyTextsReport.d.ts +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.js +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.types.d.ts +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.types.js +0 -1
- package/dist/bin/frameworkDocs.d.ts +0 -1
- package/dist/bin/frameworkDocs.js +0 -1
- package/dist/src/a11y.d.ts +0 -1
- package/dist/src/a11y.js +0 -1
- package/dist/src/addressArgs.d.ts +74 -0
- package/dist/src/addressArgs.js +109 -0
- package/dist/src/addressTexts.d.ts +35 -0
- package/dist/src/addressTexts.js +51 -0
- package/dist/src/argTypes.d.ts +0 -1
- package/dist/src/argTypes.js +2 -2
- package/dist/src/audiences.d.ts +17 -0
- package/dist/src/audiences.js +15 -0
- package/dist/src/backdrops.d.ts +39 -40
- package/dist/src/backdrops.js +37 -174
- package/dist/src/catalogue.d.ts +57 -21
- package/dist/src/catalogue.js +34 -15
- package/dist/src/codeLiteral.d.ts +41 -0
- package/dist/src/codeLiteral.js +51 -0
- package/dist/src/componentDocs.d.ts +86 -1
- package/dist/src/componentDocs.js +33 -3
- package/dist/src/controlKeys.d.ts +0 -1
- package/dist/src/controlKeys.js +2 -2
- package/dist/src/deviceDrawing.d.ts +114 -0
- package/dist/src/deviceDrawing.js +358 -0
- package/dist/src/deviceMenuView.d.ts +17 -0
- package/dist/src/deviceMenuView.js +22 -0
- package/dist/src/devicePicture.d.ts +57 -0
- package/dist/src/devicePicture.js +104 -0
- package/dist/src/deviceView.d.ts +172 -0
- package/dist/src/deviceView.js +111 -0
- package/dist/src/devices.d.ts +115 -0
- package/dist/src/devices.js +135 -0
- package/dist/src/docAnchors.d.ts +27 -0
- package/dist/src/docAnchors.js +33 -0
- package/dist/src/docPages.d.ts +203 -0
- package/dist/src/docPages.js +169 -0
- package/dist/src/embed.d.ts +32 -0
- package/dist/src/embed.js +24 -0
- package/dist/src/embedCode.d.ts +31 -0
- package/dist/src/embedCode.js +88 -0
- package/dist/src/frame/backdropPictures.d.ts +29 -0
- package/dist/src/frame/backdropPictures.js +187 -0
- package/dist/src/frame/checkStory.d.ts +6 -3
- package/dist/src/frame/checkStory.js +76 -5
- package/dist/src/frame/followTouch.d.ts +9 -0
- package/dist/src/frame/followTouch.js +43 -0
- package/dist/src/frame/frame.css +8 -3
- package/dist/src/frame/frameClock.d.ts +0 -1
- package/dist/src/frame/frameClock.js +0 -1
- package/dist/src/frame/frameStatus.d.ts +2 -1
- package/dist/src/frame/frameStatus.js +2 -1
- package/dist/src/frame/frameView.d.ts +0 -1
- package/dist/src/frame/frameView.js +1 -2
- package/dist/src/frame/matrixLayout.d.ts +0 -1
- package/dist/src/frame/matrixLayout.js +0 -1
- package/dist/src/frame/measureTools.d.ts +0 -1
- package/dist/src/frame/measureTools.js +0 -1
- package/dist/src/frame/mountFrame.d.ts +10 -3
- package/dist/src/frame/mountFrame.js +162 -63
- package/dist/src/frame/playStory.d.ts +0 -1
- package/dist/src/frame/playStory.js +0 -1
- package/dist/src/frame/pluginFrames.d.ts +31 -0
- package/dist/src/frame/pluginFrames.js +23 -0
- package/dist/src/frame/renderer.d.ts +50 -12
- package/dist/src/frame/renderer.js +27 -6
- package/dist/src/frame/settle.d.ts +0 -1
- package/dist/src/frame/settle.js +0 -1
- package/dist/src/frame/shellChannel.d.ts +47 -0
- package/dist/src/frame/shellChannel.js +39 -0
- package/dist/src/frame/spillOutline.d.ts +0 -1
- package/dist/src/frame/spillOutline.js +0 -1
- package/dist/src/frame/staleModule.d.ts +14 -2
- package/dist/src/frame/staleModule.js +19 -2
- package/dist/src/frame/storyCanvas.d.ts +0 -1
- package/dist/src/frame/storyCanvas.js +0 -1
- package/dist/src/frame/storyHooks.d.ts +0 -1
- package/dist/src/frame/storyHooks.js +0 -1
- package/dist/src/frame/storyModule.d.ts +13 -2
- package/dist/src/frame/storyModule.js +45 -3
- package/dist/src/frame/storyRun.d.ts +21 -4
- package/dist/src/frame/storyRun.js +100 -19
- package/dist/src/frame/touchDots.d.ts +0 -1
- package/dist/src/frame/touchDots.js +0 -1
- package/dist/src/frame/touchEvents.d.ts +0 -1
- package/dist/src/frame/touchEvents.js +0 -1
- package/dist/src/frame/touchGesture.d.ts +0 -1
- package/dist/src/frame/touchGesture.js +0 -1
- package/dist/src/frame/touchLayer.d.ts +3 -3
- package/dist/src/frame/touchLayer.js +4 -30
- package/dist/src/frame/touchScroll.d.ts +0 -1
- package/dist/src/frame/touchScroll.js +0 -1
- package/dist/src/frameOrigins.d.ts +62 -0
- package/dist/src/frameOrigins.js +49 -0
- package/dist/src/hotModules.d.ts +48 -0
- package/dist/src/hotModules.js +53 -0
- package/dist/src/jsxCode.d.ts +22 -0
- package/dist/src/jsxCode.js +36 -0
- package/dist/src/languages.d.ts +0 -1
- package/dist/src/languages.js +0 -1
- package/dist/src/liveErrors.d.ts +0 -1
- package/dist/src/liveErrors.js +0 -1
- package/dist/src/matrix.d.ts +0 -1
- package/dist/src/matrix.js +0 -1
- package/dist/src/messages.d.ts +28 -2
- package/dist/src/messages.js +24 -3
- package/dist/src/namedValues.d.ts +11 -1
- package/dist/src/namedValues.js +25 -2
- package/dist/src/namedViews.d.ts +1 -13
- package/dist/src/namedViews.js +30 -7
- package/dist/src/packedText.d.ts +21 -0
- package/dist/src/packedText.js +36 -0
- package/dist/src/pageAddress.d.ts +26 -0
- package/dist/src/pageAddress.js +39 -0
- package/dist/src/pageConfig.d.ts +3 -1
- package/dist/src/pageConfig.js +0 -1
- package/dist/src/pageTree.d.ts +79 -0
- package/dist/src/pageTree.js +108 -0
- package/dist/src/playTrace.d.ts +0 -1
- package/dist/src/playTrace.js +0 -1
- package/dist/src/plugin.d.ts +230 -0
- package/dist/src/plugin.js +12 -0
- package/dist/src/pluginReact.d.ts +23 -0
- package/dist/src/pluginReact.js +24 -0
- package/dist/src/previewRelay.d.ts +40 -0
- package/dist/src/previewRelay.js +69 -0
- package/dist/src/previewTexts.d.ts +26 -0
- package/dist/src/previewTexts.js +33 -0
- package/dist/src/previewView.d.ts +31 -0
- package/dist/src/previewView.js +264 -0
- package/dist/src/propGroups.d.ts +46 -0
- package/dist/src/propGroups.js +59 -0
- package/dist/src/realTouch.d.ts +1 -2
- package/dist/src/realTouch.js +1 -2
- package/dist/src/safeAreaParameter.d.ts +42 -0
- package/dist/src/safeAreaParameter.js +50 -0
- package/dist/src/search.d.ts +154 -0
- package/dist/src/search.js +265 -0
- package/dist/src/searchIndex.d.ts +61 -0
- package/dist/src/searchIndex.js +55 -0
- package/dist/src/searchMarks.d.ts +29 -0
- package/dist/src/searchMarks.js +165 -0
- package/dist/src/searchMatch.d.ts +58 -0
- package/dist/src/searchMatch.js +127 -0
- package/dist/src/shell/A11yTab.d.ts +0 -7
- package/dist/src/shell/A11yTab.js +4 -15
- package/dist/src/shell/AnchorScroll.d.ts +25 -0
- package/dist/src/shell/AnchorScroll.js +10 -0
- package/dist/src/shell/ApiReference.d.ts +12 -4
- package/dist/src/shell/ApiReference.js +74 -19
- package/dist/src/shell/AppearanceMenu.d.ts +1 -2
- package/dist/src/shell/AppearanceMenu.js +8 -5
- package/dist/src/shell/AudienceSections.d.ts +106 -0
- package/dist/src/shell/AudienceSections.js +154 -0
- package/dist/src/shell/AuthoredHome.d.ts +37 -0
- package/dist/src/shell/AuthoredHome.js +96 -0
- package/dist/src/shell/BoxWidth.d.ts +0 -1
- package/dist/src/shell/BoxWidth.js +0 -1
- package/dist/src/shell/ClockBar.d.ts +19 -0
- package/dist/src/shell/ClockBar.js +15 -0
- package/dist/src/shell/ClockControls.d.ts +5 -9
- package/dist/src/shell/ClockControls.js +13 -16
- package/dist/src/shell/Code.d.ts +0 -1
- package/dist/src/shell/Code.js +0 -1
- package/dist/src/shell/CodeTab.d.ts +0 -1
- package/dist/src/shell/CodeTab.js +2 -2
- package/dist/src/shell/CodeText.d.ts +0 -1
- package/dist/src/shell/CodeText.js +0 -1
- package/dist/src/shell/CompareGrid.d.ts +37 -0
- package/dist/src/shell/CompareGrid.js +24 -0
- package/dist/src/shell/ComponentPage.d.ts +45 -7
- package/dist/src/shell/ComponentPage.js +107 -49
- package/dist/src/shell/ControlKeyField.d.ts +0 -1
- package/dist/src/shell/ControlKeyField.js +3 -4
- package/dist/src/shell/ControlRow.d.ts +4 -4
- package/dist/src/shell/ControlRow.js +5 -5
- package/dist/src/shell/DeviceControl.d.ts +31 -0
- package/dist/src/shell/DeviceControl.js +33 -0
- package/dist/src/shell/DeviceSlot.d.ts +114 -0
- package/dist/src/shell/DeviceSlot.js +134 -0
- package/dist/src/shell/DocBlocks.d.ts +100 -0
- package/dist/src/shell/DocBlocks.js +206 -0
- package/dist/src/shell/DocContainers.d.ts +70 -0
- package/dist/src/shell/DocContainers.js +94 -0
- package/dist/src/shell/DocContents.d.ts +29 -0
- package/dist/src/shell/DocContents.js +88 -0
- package/dist/src/shell/DocPage.d.ts +69 -0
- package/dist/src/shell/DocPage.js +141 -0
- package/dist/src/shell/Dock.d.ts +1 -2
- package/dist/src/shell/Dock.js +1 -2
- package/dist/src/shell/DroppedArgsList.d.ts +26 -0
- package/dist/src/shell/DroppedArgsList.js +8 -0
- package/dist/src/shell/DroppedArgsNote.d.ts +14 -0
- package/dist/src/shell/DroppedArgsNote.js +10 -0
- package/dist/src/shell/EmbedButton.d.ts +19 -0
- package/dist/src/shell/EmbedButton.js +96 -0
- package/dist/src/shell/EmbedPage.d.ts +23 -0
- package/dist/src/shell/EmbedPage.js +168 -0
- package/dist/src/shell/EmbedPanel.d.ts +25 -0
- package/dist/src/shell/EmbedPanel.js +46 -0
- package/dist/src/shell/EventsTab.d.ts +0 -1
- package/dist/src/shell/EventsTab.js +2 -3
- package/dist/src/shell/Example.d.ts +20 -2
- package/dist/src/shell/Example.js +75 -22
- package/dist/src/shell/FrameView.d.ts +1 -2
- package/dist/src/shell/FrameView.js +4 -4
- package/dist/src/shell/HomePage.d.ts +78 -4
- package/dist/src/shell/HomePage.js +53 -14
- package/dist/src/shell/HomePieces.d.ts +40 -0
- package/dist/src/shell/HomePieces.js +29 -0
- package/dist/src/shell/InfoTip.d.ts +0 -1
- package/dist/src/shell/InfoTip.js +0 -1
- package/dist/src/shell/InteractionsTab.d.ts +0 -7
- package/dist/src/shell/InteractionsTab.js +3 -9
- package/dist/src/shell/LazyHost.d.ts +16 -0
- package/dist/src/shell/LazyHost.js +42 -0
- package/dist/src/shell/LazyPage.d.ts +24 -0
- package/dist/src/shell/LazyPage.js +9 -0
- package/dist/src/shell/LogicMark.d.ts +9 -0
- package/dist/src/shell/LogicMark.js +5 -0
- package/dist/src/shell/MatrixPicker.d.ts +0 -1
- package/dist/src/shell/MatrixPicker.js +0 -1
- package/dist/src/shell/NamedViews.d.ts +0 -1
- package/dist/src/shell/NamedViews.js +4 -5
- package/dist/src/shell/PackageHtml.d.ts +0 -1
- package/dist/src/shell/PackageHtml.js +0 -1
- package/dist/src/shell/PartsTab.d.ts +0 -7
- package/dist/src/shell/PartsTab.js +3 -13
- package/dist/src/shell/PinnedControl.d.ts +0 -1
- package/dist/src/shell/PinnedControl.js +2 -2
- package/dist/src/shell/PluginBlockHost.d.ts +46 -0
- package/dist/src/shell/PluginBlockHost.js +39 -0
- package/dist/src/shell/PluginTabHost.d.ts +32 -0
- package/dist/src/shell/PluginTabHost.js +25 -0
- package/dist/src/shell/PluginViewHost.d.ts +37 -0
- package/dist/src/shell/PluginViewHost.js +89 -0
- package/dist/src/shell/PropFields.d.ts +0 -1
- package/dist/src/shell/PropFields.js +0 -1
- package/dist/src/shell/PropsTab.d.ts +11 -2
- package/dist/src/shell/PropsTab.js +31 -5
- package/dist/src/shell/SearchPanel.d.ts +63 -0
- package/dist/src/shell/SearchPanel.js +209 -0
- package/dist/src/shell/Segmented.d.ts +0 -1
- package/dist/src/shell/Segmented.js +0 -1
- package/dist/src/shell/Shell.d.ts +34 -6
- package/dist/src/shell/Shell.js +292 -84
- package/dist/src/shell/Sidebar.d.ts +20 -5
- package/dist/src/shell/Sidebar.js +23 -56
- package/dist/src/shell/SidebarDocs.d.ts +38 -0
- package/dist/src/shell/SidebarDocs.js +30 -0
- package/dist/src/shell/SidebarEntries.d.ts +10 -2
- package/dist/src/shell/SidebarEntries.js +3 -3
- package/dist/src/shell/SidebarHandle.d.ts +0 -1
- package/dist/src/shell/SidebarHandle.js +0 -1
- package/dist/src/shell/SidebarSearch.d.ts +40 -0
- package/dist/src/shell/SidebarSearch.js +85 -0
- package/dist/src/shell/SignatureReference.d.ts +25 -0
- package/dist/src/shell/SignatureReference.js +25 -0
- package/dist/src/shell/Stage.d.ts +9 -4
- package/dist/src/shell/Stage.js +121 -60
- package/dist/src/shell/StageCompare.d.ts +14 -0
- package/dist/src/shell/StageCompare.js +11 -0
- package/dist/src/shell/StageTools.d.ts +0 -1
- package/dist/src/shell/StageTools.js +0 -1
- package/dist/src/shell/StageViewport.d.ts +7 -3
- package/dist/src/shell/StageViewport.js +4 -5
- package/dist/src/shell/StoryBar.d.ts +40 -0
- package/dist/src/shell/StoryBar.js +23 -0
- package/dist/src/shell/StoryCodeBlock.d.ts +1 -2
- package/dist/src/shell/StoryCodeBlock.js +0 -1
- package/dist/src/shell/StoryCoverage.d.ts +36 -0
- package/dist/src/shell/StoryCoverage.js +126 -0
- package/dist/src/shell/StoryPicker.d.ts +0 -1
- package/dist/src/shell/StoryPicker.js +0 -1
- package/dist/src/shell/Toolbar.d.ts +9 -3
- package/dist/src/shell/Toolbar.js +12 -7
- package/dist/src/shell/ToolbarControl.d.ts +6 -8
- package/dist/src/shell/ToolbarControl.js +28 -20
- package/dist/src/shell/UsedIn.d.ts +5 -6
- package/dist/src/shell/UsedIn.js +7 -20
- package/dist/src/shell/ViewMenu.d.ts +7 -7
- package/dist/src/shell/ViewMenu.js +61 -176
- package/dist/src/shell/ViewMenuPanel.d.ts +41 -0
- package/dist/src/shell/ViewMenuPanel.js +199 -0
- package/dist/src/shell/WidthField.d.ts +3 -2
- package/dist/src/shell/WidthField.js +2 -3
- package/dist/src/shell/asideStory.d.ts +34 -0
- package/dist/src/shell/asideStory.js +55 -0
- package/dist/src/shell/audienceLayout.d.ts +39 -0
- package/dist/src/shell/audienceLayout.js +33 -0
- package/dist/src/shell/audiencePage.d.ts +113 -0
- package/dist/src/shell/audiencePage.js +144 -0
- package/dist/src/shell/audienceSections.css +95 -0
- package/dist/src/shell/catalogueContext.d.ts +24 -2
- package/dist/src/shell/catalogueContext.js +12 -9
- package/dist/src/shell/codeTokens.d.ts +0 -1
- package/dist/src/shell/codeTokens.js +0 -1
- package/dist/src/shell/codeWriter.d.ts +0 -1
- package/dist/src/shell/codeWriter.js +0 -1
- package/dist/src/shell/compareVariants.d.ts +3 -3
- package/dist/src/shell/compareVariants.js +6 -5
- package/dist/src/shell/controlCycle.d.ts +0 -1
- package/dist/src/shell/controlCycle.js +13 -1
- package/dist/src/shell/controlLabel.d.ts +7 -0
- package/dist/src/shell/controlLabel.js +17 -0
- package/dist/src/shell/device/deviceFrame.css +42 -0
- package/dist/src/shell/device/deviceParts.d.ts +90 -0
- package/dist/src/shell/device/deviceParts.js +120 -0
- package/dist/src/shell/docPage.css +451 -0
- package/dist/src/shell/dockTabs.d.ts +15 -4
- package/dist/src/shell/dockTabs.js +69 -26
- package/dist/src/shell/embed.css +74 -0
- package/dist/src/shell/filesCode.d.ts +21 -0
- package/dist/src/shell/filesCode.js +37 -0
- package/dist/src/shell/forgebookMark.d.ts +15 -0
- package/dist/src/shell/forgebookMark.js +28 -0
- package/dist/src/shell/framesOrigin.d.ts +23 -0
- package/dist/src/shell/framesOrigin.js +69 -0
- package/dist/src/shell/icons.d.ts +4 -1
- package/dist/src/shell/icons.js +4 -1
- package/dist/src/shell/keyboard.d.ts +0 -1
- package/dist/src/shell/keyboard.js +0 -1
- package/dist/src/shell/laterStrings.d.ts +91 -0
- package/dist/src/shell/laterStrings.js +102 -0
- package/dist/src/shell/lazyModule.d.ts +49 -0
- package/dist/src/shell/lazyModule.js +72 -0
- package/dist/src/shell/lazyTab.d.ts +21 -0
- package/dist/src/shell/lazyTab.js +9 -0
- package/dist/src/shell/logicView.d.ts +24 -0
- package/dist/src/shell/logicView.js +39 -0
- package/dist/src/shell/mountShell.d.ts +5 -3
- package/dist/src/shell/mountShell.js +43 -12
- package/dist/src/shell/pageStrings.d.ts +24 -0
- package/dist/src/shell/pageStrings.js +26 -0
- package/dist/src/shell/pluginHosts.d.ts +9 -0
- package/dist/src/shell/pluginHosts.js +6 -0
- package/dist/src/shell/pluginHostsContext.d.ts +20 -0
- package/dist/src/shell/pluginHostsContext.js +16 -0
- package/dist/src/shell/pluginTabs.d.ts +63 -0
- package/dist/src/shell/pluginTabs.js +60 -0
- package/dist/src/shell/search.css +172 -0
- package/dist/src/shell/searchStrings.d.ts +24 -0
- package/dist/src/shell/searchStrings.js +31 -0
- package/dist/src/shell/shell.css +310 -136
- package/dist/src/shell/shellScheme.d.ts +37 -0
- package/dist/src/shell/shellScheme.js +32 -0
- package/dist/src/shell/storyTouch.d.ts +19 -6
- package/dist/src/shell/storyTouch.js +26 -4
- package/dist/src/shell/strings.d.ts +62 -80
- package/dist/src/shell/strings.js +60 -79
- package/dist/src/shell/switchView.d.ts +0 -1
- package/dist/src/shell/switchView.js +0 -1
- package/dist/src/shell/tabSummaries.d.ts +31 -0
- package/dist/src/shell/tabSummaries.js +27 -0
- package/dist/src/shell/treeSearch.d.ts +39 -3
- package/dist/src/shell/treeSearch.js +27 -1
- package/dist/src/shell/useAddressArgs.d.ts +55 -0
- package/dist/src/shell/useAddressArgs.js +62 -0
- package/dist/src/shell/useAnchorScroll.d.ts +24 -0
- package/dist/src/shell/useAnchorScroll.js +90 -0
- package/dist/src/shell/useAppearance.d.ts +7 -2
- package/dist/src/shell/useAppearance.js +14 -5
- package/dist/src/shell/useComponentDocs.d.ts +0 -1
- package/dist/src/shell/useComponentDocs.js +0 -1
- package/dist/src/shell/useControlKeys.d.ts +2 -1
- package/dist/src/shell/useControlKeys.js +2 -3
- package/dist/src/shell/useCopy.d.ts +2 -1
- package/dist/src/shell/useCopy.js +11 -6
- package/dist/src/shell/useFold.d.ts +0 -1
- package/dist/src/shell/useFold.js +0 -1
- package/dist/src/shell/useFrameMessages.d.ts +19 -4
- package/dist/src/shell/useFrameMessages.js +23 -7
- package/dist/src/shell/useFrameQueue.d.ts +7 -3
- package/dist/src/shell/useFrameQueue.js +39 -22
- package/dist/src/shell/useFullPage.d.ts +0 -1
- package/dist/src/shell/useFullPage.js +0 -1
- package/dist/src/shell/useLiveView.d.ts +0 -1
- package/dist/src/shell/useLiveView.js +0 -1
- package/dist/src/shell/useLoaded.d.ts +1 -2
- package/dist/src/shell/useLoaded.js +28 -6
- package/dist/src/shell/usePageDoc.d.ts +0 -1
- package/dist/src/shell/usePageDoc.js +0 -1
- package/dist/src/shell/usePageFrames.d.ts +46 -0
- package/dist/src/shell/usePageFrames.js +50 -0
- package/dist/src/shell/usePluginTabs.d.ts +18 -0
- package/dist/src/shell/usePluginTabs.js +45 -0
- package/dist/src/shell/usePopover.d.ts +0 -1
- package/dist/src/shell/usePopover.js +0 -1
- package/dist/src/shell/useProseLinks.d.ts +14 -0
- package/dist/src/shell/useProseLinks.js +30 -0
- package/dist/src/shell/useRecentPages.d.ts +3 -4
- package/dist/src/shell/useRecentPages.js +1 -2
- package/dist/src/shell/useScrollMemory.d.ts +9 -1
- package/dist/src/shell/useScrollMemory.js +2 -3
- package/dist/src/shell/useSearchIndex.d.ts +24 -0
- package/dist/src/shell/useSearchIndex.js +51 -0
- package/dist/src/shell/useShownView.d.ts +35 -0
- package/dist/src/shell/useShownView.js +36 -0
- package/dist/src/shell/useSidebarLayout.d.ts +0 -1
- package/dist/src/shell/useSidebarLayout.js +0 -1
- package/dist/src/shell/useStored.d.ts +13 -1
- package/dist/src/shell/useStored.js +13 -5
- package/dist/src/shell/useStoryCheck.d.ts +20 -0
- package/dist/src/shell/useStoryCheck.js +33 -0
- package/dist/src/shell/useStoryCode.d.ts +0 -1
- package/dist/src/shell/useStoryCode.js +0 -1
- package/dist/src/shell/useStoryHeights.d.ts +0 -1
- package/dist/src/shell/useStoryHeights.js +0 -1
- package/dist/src/shell/useStoryIdsElement.d.ts +0 -1
- package/dist/src/shell/useStoryIdsElement.js +0 -1
- package/dist/src/shell/useStoryKeys.d.ts +0 -1
- package/dist/src/shell/useStoryKeys.js +0 -1
- package/dist/src/shell/useSyncedTab.d.ts +8 -0
- package/dist/src/shell/useSyncedTab.js +60 -0
- package/dist/src/shell/useSystemDark.d.ts +0 -1
- package/dist/src/shell/useSystemDark.js +0 -1
- package/dist/src/shell/useToolbarLayout.d.ts +0 -1
- package/dist/src/shell/useToolbarLayout.js +0 -1
- package/dist/src/shell/useToolbarOverflow.d.ts +0 -1
- package/dist/src/shell/useToolbarOverflow.js +0 -1
- package/dist/src/shell/useWorstCase.d.ts +0 -1
- package/dist/src/shell/useWorstCase.js +2 -2
- package/dist/src/shell/worstArgs.d.ts +0 -1
- package/dist/src/shell/worstArgs.js +0 -1
- package/dist/src/shellTheme.d.ts +64 -0
- package/dist/src/shellTheme.js +274 -0
- package/dist/src/shellTheme.types.d.ts +93 -0
- package/dist/src/shellTheme.types.js +10 -0
- package/dist/src/sourceFiles.d.ts +17 -3
- package/dist/src/sourceFiles.js +27 -1
- package/dist/src/spills.d.ts +0 -1
- package/dist/src/spills.js +0 -1
- package/dist/src/storyBackground.d.ts +0 -1
- package/dist/src/storyBackground.js +0 -1
- package/dist/src/storyCheck.d.ts +88 -2
- package/dist/src/storyCheck.js +12 -2
- package/dist/src/storyClock.d.ts +0 -1
- package/dist/src/storyClock.js +0 -1
- package/dist/src/storyGlobals.d.ts +0 -1
- package/dist/src/storyGlobals.js +0 -1
- package/dist/src/storyHeights.d.ts +0 -1
- package/dist/src/storyHeights.js +0 -1
- package/dist/src/storyIds.d.ts +36 -0
- package/dist/src/storyIds.js +52 -0
- package/dist/src/storyIdsElement.d.ts +0 -1
- package/dist/src/storyIdsElement.js +0 -1
- package/dist/src/storyTexts.d.ts +11 -5
- package/dist/src/storyTexts.js +16 -5
- package/dist/src/storyTree.d.ts +88 -25
- package/dist/src/storyTree.js +219 -126
- package/dist/src/switches.d.ts +0 -1
- package/dist/src/switches.js +6 -2
- package/dist/src/toolbarLayout.d.ts +0 -1
- package/dist/src/toolbarLayout.js +0 -1
- package/dist/src/treePlaces.d.ts +60 -0
- package/dist/src/treePlaces.js +89 -0
- package/dist/src/usedIn.d.ts +28 -1
- package/dist/src/usedIn.js +93 -3
- package/dist/src/viewState.d.ts +37 -9
- package/dist/src/viewState.js +67 -9
- package/dist/src/viewWords.d.ts +0 -13
- package/dist/src/viewWords.js +41 -3
- package/dist/src/vite/adapter.d.ts +62 -1
- package/dist/src/vite/adapter.js +20 -2
- package/dist/src/vite/agent.types.d.ts +281 -7
- package/dist/src/vite/agent.types.js +11 -1
- package/dist/src/vite/agentApi.d.ts +55 -2
- package/dist/src/vite/agentApi.js +131 -8
- package/dist/src/vite/agentIds.d.ts +25 -0
- package/dist/src/vite/agentIds.js +41 -0
- package/dist/src/vite/agentIndex.d.ts +63 -0
- package/dist/src/vite/agentIndex.js +91 -0
- package/dist/src/vite/agentIndexRoute.d.ts +10 -0
- package/dist/src/vite/agentIndexRoute.js +35 -0
- package/dist/src/vite/agentRoutes.d.ts +80 -19
- package/dist/src/vite/agentRoutes.js +167 -24
- package/dist/src/vite/autoTitle.d.ts +0 -1
- package/dist/src/vite/autoTitle.js +0 -1
- package/dist/src/vite/axeScript.d.ts +20 -0
- package/dist/src/vite/axeScript.js +60 -0
- package/dist/src/vite/builtTexts.d.ts +75 -0
- package/dist/src/vite/builtTexts.js +142 -0
- package/dist/src/vite/catalogueConfig.d.ts +10 -0
- package/dist/src/vite/catalogueConfig.js +64 -0
- package/dist/src/vite/checkCode.d.ts +67 -0
- package/dist/src/vite/checkCode.js +145 -0
- package/dist/src/vite/closeWatch.d.ts +96 -0
- package/dist/src/vite/closeWatch.js +219 -0
- package/dist/src/vite/codeFence.d.ts +78 -0
- package/dist/src/vite/codeFence.js +267 -0
- package/dist/src/vite/componentImport.d.ts +8 -0
- package/dist/src/vite/componentImport.js +35 -0
- package/dist/src/vite/componentPage.d.ts +15 -2
- package/dist/src/vite/componentPage.js +55 -16
- package/dist/src/vite/config.d.ts +51 -3
- package/dist/src/vite/config.js +0 -1
- package/dist/src/vite/configFile.d.ts +65 -9
- package/dist/src/vite/configFile.js +182 -28
- package/dist/src/vite/designTokens.d.ts +75 -0
- package/dist/src/vite/designTokens.js +382 -0
- package/dist/src/vite/diskCache.d.ts +51 -0
- package/dist/src/vite/diskCache.js +211 -0
- package/dist/src/vite/docDirectives.d.ts +116 -0
- package/dist/src/vite/docDirectives.js +425 -0
- package/dist/src/vite/docMarkdown.d.ts +76 -0
- package/dist/src/vite/docMarkdown.js +150 -0
- package/dist/src/vite/docPageBlocks.d.ts +64 -0
- package/dist/src/vite/docPageBlocks.js +322 -0
- package/dist/src/vite/docPageLinks.d.ts +72 -0
- package/dist/src/vite/docPageLinks.js +135 -0
- package/dist/src/vite/docPageMarkdown.d.ts +86 -0
- package/dist/src/vite/docPageMarkdown.js +133 -0
- package/dist/src/vite/docPageRender.d.ts +27 -0
- package/dist/src/vite/docPageRender.js +199 -0
- package/dist/src/vite/docPageTokens.d.ts +91 -0
- package/dist/src/vite/docPageTokens.js +186 -0
- package/dist/src/vite/docPagesModule.d.ts +50 -0
- package/dist/src/vite/docPagesModule.js +118 -0
- package/dist/src/vite/docPagesRoute.d.ts +38 -0
- package/dist/src/vite/docPagesRoute.js +154 -0
- package/dist/src/vite/docsDependencies.d.ts +6 -0
- package/dist/src/vite/docsDependencies.js +150 -0
- package/dist/src/vite/docsExtractor.d.ts +44 -3
- package/dist/src/vite/docsExtractor.js +160 -26
- package/dist/src/vite/docsProgram.d.ts +89 -9
- package/dist/src/vite/docsProgram.js +413 -50
- package/dist/src/vite/docsWorker.d.ts +0 -1
- package/dist/src/vite/docsWorker.js +49 -15
- package/dist/src/vite/figmaLink.d.ts +26 -0
- package/dist/src/vite/figmaLink.js +92 -0
- package/dist/src/vite/findComponent.d.ts +32 -0
- package/dist/src/vite/findComponent.js +52 -0
- package/dist/src/vite/findRoute.d.ts +14 -0
- package/dist/src/vite/findRoute.js +62 -0
- package/dist/src/vite/forcedStates.d.ts +0 -1
- package/dist/src/vite/forcedStates.js +0 -1
- package/dist/src/vite/forgebookPlugin.d.ts +1 -2
- package/dist/src/vite/forgebookPlugin.js +330 -263
- package/dist/src/vite/framesConfig.d.ts +89 -0
- package/dist/src/vite/framesConfig.js +149 -0
- package/dist/src/vite/framesServer.d.ts +43 -0
- package/dist/src/vite/framesServer.js +326 -0
- package/dist/src/vite/functionComponentDocs.d.ts +26 -0
- package/dist/src/vite/functionComponentDocs.js +193 -0
- package/dist/src/vite/gitChange.d.ts +56 -0
- package/dist/src/vite/gitChange.js +86 -0
- package/dist/src/vite/heightsRoute.d.ts +24 -0
- package/dist/src/vite/heightsRoute.js +42 -0
- package/dist/src/vite/highlightCode.d.ts +0 -1
- package/dist/src/vite/highlightCode.js +8 -27
- package/dist/src/vite/hotSnippets.d.ts +86 -0
- package/dist/src/vite/hotSnippets.js +168 -0
- package/dist/src/vite/indexFields.d.ts +61 -0
- package/dist/src/vite/indexFields.js +149 -0
- package/dist/src/vite/indexStoryFile.d.ts +20 -19
- package/dist/src/vite/indexStoryFile.js +172 -201
- package/dist/src/vite/indexedParameters.d.ts +10 -0
- package/dist/src/vite/indexedParameters.js +110 -0
- package/dist/src/vite/mcpProtocol.d.ts +36 -2
- package/dist/src/vite/mcpProtocol.js +100 -15
- package/dist/src/vite/moduleSummary.d.ts +17 -0
- package/dist/src/vite/moduleSummary.js +40 -0
- package/dist/src/vite/nearestToken.d.ts +50 -0
- package/dist/src/vite/nearestToken.js +295 -0
- package/dist/src/vite/originGuard.d.ts +87 -0
- package/dist/src/vite/originGuard.js +163 -0
- package/dist/src/vite/packedModule.d.ts +40 -0
- package/dist/src/vite/packedModule.js +74 -0
- package/dist/src/vite/pages.d.ts +63 -10
- package/dist/src/vite/pages.js +264 -33
- package/dist/src/vite/parsedFiles.d.ts +18 -0
- package/dist/src/vite/parsedFiles.js +91 -0
- package/dist/src/vite/plainGrammars.d.ts +20 -0
- package/dist/src/vite/plainGrammars.js +113 -0
- package/dist/src/vite/pluginConfig.d.ts +47 -0
- package/dist/src/vite/pluginConfig.js +220 -0
- package/dist/src/vite/pluginIds.d.ts +20 -0
- package/dist/src/vite/pluginIds.js +61 -0
- package/dist/src/vite/pluginModules.d.ts +140 -0
- package/dist/src/vite/pluginModules.js +176 -0
- package/dist/src/vite/prebundled.d.ts +18 -5
- package/dist/src/vite/prebundled.js +28 -18
- package/dist/src/vite/previewPages.d.ts +14 -0
- package/dist/src/vite/previewPages.js +81 -0
- package/dist/src/vite/previewRoute.d.ts +8 -0
- package/dist/src/vite/previewRoute.js +8 -0
- package/dist/src/vite/previewRunner.d.ts +56 -0
- package/dist/src/vite/previewRunner.js +207 -0
- package/dist/src/vite/propDocs.d.ts +60 -0
- package/dist/src/vite/propDocs.js +387 -0
- package/dist/src/vite/searchModule.d.ts +40 -0
- package/dist/src/vite/searchModule.js +212 -0
- package/dist/src/vite/searchRoute.d.ts +7 -0
- package/dist/src/vite/searchRoute.js +79 -0
- package/dist/src/vite/serverConditions.d.ts +31 -0
- package/dist/src/vite/serverConditions.js +69 -0
- package/dist/src/vite/signatureDocs.d.ts +18 -0
- package/dist/src/vite/signatureDocs.js +64 -0
- package/dist/src/vite/sourceTokens.d.ts +57 -0
- package/dist/src/vite/sourceTokens.js +164 -0
- package/dist/src/vite/storyCode.d.ts +0 -1
- package/dist/src/vite/storyCode.js +2 -3
- package/dist/src/vite/storyExports.d.ts +32 -0
- package/dist/src/vite/storyExports.js +27 -0
- package/dist/src/vite/storyFilesModule.d.ts +56 -4
- package/dist/src/vite/storyFilesModule.js +122 -34
- package/dist/src/vite/storyMeta.d.ts +20 -11
- package/dist/src/vite/storyMeta.js +74 -38
- package/dist/src/vite/storyParse.d.ts +18 -0
- package/dist/src/vite/storyParse.js +20 -0
- package/dist/src/vite/storyPlay.d.ts +29 -0
- package/dist/src/vite/storyPlay.js +54 -0
- package/dist/src/vite/storyReach.d.ts +42 -0
- package/dist/src/vite/storyReach.js +43 -0
- package/dist/src/vite/storylessRoutes.d.ts +29 -0
- package/dist/src/vite/storylessRoutes.js +126 -0
- package/dist/src/vite/textModules.d.ts +63 -0
- package/dist/src/vite/textModules.js +132 -0
- package/dist/src/vite/textQueries.d.ts +20 -0
- package/dist/src/vite/textQueries.js +20 -0
- package/dist/src/vite/themeFromTokens.d.ts +35 -0
- package/dist/src/vite/themeFromTokens.js +73 -0
- package/dist/src/vite/tokenAnswers.d.ts +20 -0
- package/dist/src/vite/tokenAnswers.js +86 -0
- package/dist/src/vite/tokenClashes.d.ts +44 -0
- package/dist/src/vite/tokenClashes.js +45 -0
- package/dist/src/vite/touchMedia.d.ts +0 -1
- package/dist/src/vite/touchMedia.js +0 -1
- package/dist/src/vite/typeScriptPieces.d.ts +0 -1
- package/dist/src/vite/typeScriptPieces.js +2 -3
- package/dist/src/vite/usageGraph.d.ts +6 -1
- package/dist/src/vite/usageGraph.js +41 -7
- package/dist/src/vite/usageGuidance.d.ts +33 -0
- package/dist/src/vite/usageGuidance.js +45 -0
- package/dist/src/vite/usageModule.d.ts +0 -1
- package/dist/src/vite/usageModule.js +0 -1
- package/dist/src/vite/vitePaths.d.ts +53 -0
- package/dist/src/vite/vitePaths.js +53 -0
- package/dist/src/worstCase.d.ts +0 -1
- package/dist/src/worstCase.js +0 -1
- package/package.json +66 -3
- package/dist/bin/forgebook/agentClient.d.ts.map +0 -1
- package/dist/bin/forgebook/agentClient.js.map +0 -1
- package/dist/bin/forgebook/agentLoopCommands.d.mts.map +0 -1
- package/dist/bin/forgebook/agentLoopCommands.mjs.map +0 -1
- package/dist/bin/forgebook/agentText.d.ts.map +0 -1
- package/dist/bin/forgebook/agentText.js.map +0 -1
- package/dist/bin/forgebook/agentsText.d.ts.map +0 -1
- package/dist/bin/forgebook/agentsText.js.map +0 -1
- package/dist/bin/forgebook/catalogueCommands.d.ts.map +0 -1
- package/dist/bin/forgebook/catalogueCommands.js.map +0 -1
- package/dist/bin/forgebook/catalogueVite.d.ts.map +0 -1
- package/dist/bin/forgebook/catalogueVite.js.map +0 -1
- package/dist/bin/forgebook/errorsRun.d.ts.map +0 -1
- package/dist/bin/forgebook/errorsRun.js.map +0 -1
- package/dist/bin/forgebook/forgebook.d.mts.map +0 -1
- package/dist/bin/forgebook/forgebook.mjs.map +0 -1
- package/dist/bin/forgebook/importers/storybook.d.ts.map +0 -1
- package/dist/bin/forgebook/importers/storybook.js.map +0 -1
- package/dist/bin/forgebook/initCommands.d.mts.map +0 -1
- package/dist/bin/forgebook/initCommands.mjs.map +0 -1
- package/dist/bin/forgebook/initConfig.d.ts.map +0 -1
- package/dist/bin/forgebook/initConfig.js.map +0 -1
- package/dist/bin/forgebook/mcpTools.d.ts.map +0 -1
- package/dist/bin/forgebook/mcpTools.js.map +0 -1
- package/dist/bin/forgebook/newStories.d.ts.map +0 -1
- package/dist/bin/forgebook/newStories.js.map +0 -1
- package/dist/bin/forgebook/newStoriesFile.d.ts.map +0 -1
- package/dist/bin/forgebook/newStoriesFile.js.map +0 -1
- package/dist/bin/forgebook/storyCheckRun.d.ts.map +0 -1
- package/dist/bin/forgebook/storyCheckRun.js.map +0 -1
- package/dist/bin/forgebook/touchWindowRun.d.ts.map +0 -1
- package/dist/bin/forgebook/touchWindowRun.js.map +0 -1
- package/dist/bin/forgebook-docs/catalogueDocs.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/catalogueDocs.js.map +0 -1
- package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/catalogueDocs.types.js.map +0 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/catalogueMarkdown.js.map +0 -1
- package/dist/bin/forgebook-docs/catalogueOptions.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/catalogueOptions.js.map +0 -1
- package/dist/bin/forgebook-docs/collectDocs.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/collectDocs.js.map +0 -1
- package/dist/bin/forgebook-docs/forgebook-docs.d.mts.map +0 -1
- package/dist/bin/forgebook-docs/forgebook-docs.mjs.map +0 -1
- package/dist/bin/forgebook-docs/llmsText.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/llmsText.js.map +0 -1
- package/dist/bin/forgebook-docs/moduleDocs.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/moduleDocs.js.map +0 -1
- package/dist/bin/forgebook-docs/sassDocs.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/sassDocs.js.map +0 -1
- package/dist/bin/forgebook-docs/sourceId.d.ts +0 -9
- package/dist/bin/forgebook-docs/sourceId.d.ts.map +0 -1
- package/dist/bin/forgebook-docs/sourceId.js +0 -45
- package/dist/bin/forgebook-docs/sourceId.js.map +0 -1
- package/dist/bin/forgebook-texts/forgebook-texts.d.mts.map +0 -1
- package/dist/bin/forgebook-texts/forgebook-texts.mjs.map +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.d.ts.map +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.js.map +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.types.d.ts.map +0 -1
- package/dist/bin/forgebook-texts/storyTextsReport.types.js.map +0 -1
- package/dist/bin/frameworkDocs.d.ts.map +0 -1
- package/dist/bin/frameworkDocs.js.map +0 -1
- package/dist/src/a11y.d.ts.map +0 -1
- package/dist/src/a11y.js.map +0 -1
- package/dist/src/argTypes.d.ts.map +0 -1
- package/dist/src/argTypes.js.map +0 -1
- package/dist/src/backdrops.d.ts.map +0 -1
- package/dist/src/backdrops.js.map +0 -1
- package/dist/src/catalogue.d.ts.map +0 -1
- package/dist/src/catalogue.js.map +0 -1
- package/dist/src/componentDocs.d.ts.map +0 -1
- package/dist/src/componentDocs.js.map +0 -1
- package/dist/src/controlKeys.d.ts.map +0 -1
- package/dist/src/controlKeys.js.map +0 -1
- package/dist/src/frame/checkStory.d.ts.map +0 -1
- package/dist/src/frame/checkStory.js.map +0 -1
- package/dist/src/frame/frameClock.d.ts.map +0 -1
- package/dist/src/frame/frameClock.js.map +0 -1
- package/dist/src/frame/frameStatus.d.ts.map +0 -1
- package/dist/src/frame/frameStatus.js.map +0 -1
- package/dist/src/frame/frameView.d.ts.map +0 -1
- package/dist/src/frame/frameView.js.map +0 -1
- package/dist/src/frame/matrixLayout.d.ts.map +0 -1
- package/dist/src/frame/matrixLayout.js.map +0 -1
- package/dist/src/frame/measureTools.d.ts.map +0 -1
- package/dist/src/frame/measureTools.js.map +0 -1
- package/dist/src/frame/mountFrame.d.ts.map +0 -1
- package/dist/src/frame/mountFrame.js.map +0 -1
- package/dist/src/frame/playStory.d.ts.map +0 -1
- package/dist/src/frame/playStory.js.map +0 -1
- package/dist/src/frame/renderer.d.ts.map +0 -1
- package/dist/src/frame/renderer.js.map +0 -1
- package/dist/src/frame/settle.d.ts.map +0 -1
- package/dist/src/frame/settle.js.map +0 -1
- package/dist/src/frame/spillOutline.d.ts.map +0 -1
- package/dist/src/frame/spillOutline.js.map +0 -1
- package/dist/src/frame/staleModule.d.ts.map +0 -1
- package/dist/src/frame/staleModule.js.map +0 -1
- package/dist/src/frame/storyCanvas.d.ts.map +0 -1
- package/dist/src/frame/storyCanvas.js.map +0 -1
- package/dist/src/frame/storyHooks.d.ts.map +0 -1
- package/dist/src/frame/storyHooks.js.map +0 -1
- package/dist/src/frame/storyModule.d.ts.map +0 -1
- package/dist/src/frame/storyModule.js.map +0 -1
- package/dist/src/frame/storyRun.d.ts.map +0 -1
- package/dist/src/frame/storyRun.js.map +0 -1
- package/dist/src/frame/touchDots.d.ts.map +0 -1
- package/dist/src/frame/touchDots.js.map +0 -1
- package/dist/src/frame/touchEvents.d.ts.map +0 -1
- package/dist/src/frame/touchEvents.js.map +0 -1
- package/dist/src/frame/touchGesture.d.ts.map +0 -1
- package/dist/src/frame/touchGesture.js.map +0 -1
- package/dist/src/frame/touchLayer.d.ts.map +0 -1
- package/dist/src/frame/touchLayer.js.map +0 -1
- package/dist/src/frame/touchScroll.d.ts.map +0 -1
- package/dist/src/frame/touchScroll.js.map +0 -1
- package/dist/src/languages.d.ts.map +0 -1
- package/dist/src/languages.js.map +0 -1
- package/dist/src/liveErrors.d.ts.map +0 -1
- package/dist/src/liveErrors.js.map +0 -1
- package/dist/src/matrix.d.ts.map +0 -1
- package/dist/src/matrix.js.map +0 -1
- package/dist/src/messages.d.ts.map +0 -1
- package/dist/src/messages.js.map +0 -1
- package/dist/src/namedValues.d.ts.map +0 -1
- package/dist/src/namedValues.js.map +0 -1
- package/dist/src/namedViews.d.ts.map +0 -1
- package/dist/src/namedViews.js.map +0 -1
- package/dist/src/pageConfig.d.ts.map +0 -1
- package/dist/src/pageConfig.js.map +0 -1
- package/dist/src/playTrace.d.ts.map +0 -1
- package/dist/src/playTrace.js.map +0 -1
- package/dist/src/realTouch.d.ts.map +0 -1
- package/dist/src/realTouch.js.map +0 -1
- package/dist/src/shell/A11yTab.d.ts.map +0 -1
- package/dist/src/shell/A11yTab.js.map +0 -1
- package/dist/src/shell/ApiReference.d.ts.map +0 -1
- package/dist/src/shell/ApiReference.js.map +0 -1
- package/dist/src/shell/AppearanceMenu.d.ts.map +0 -1
- package/dist/src/shell/AppearanceMenu.js.map +0 -1
- package/dist/src/shell/BoxWidth.d.ts.map +0 -1
- package/dist/src/shell/BoxWidth.js.map +0 -1
- package/dist/src/shell/ClockControls.d.ts.map +0 -1
- package/dist/src/shell/ClockControls.js.map +0 -1
- package/dist/src/shell/Code.d.ts.map +0 -1
- package/dist/src/shell/Code.js.map +0 -1
- package/dist/src/shell/CodeTab.d.ts.map +0 -1
- package/dist/src/shell/CodeTab.js.map +0 -1
- package/dist/src/shell/CodeText.d.ts.map +0 -1
- package/dist/src/shell/CodeText.js.map +0 -1
- package/dist/src/shell/ComponentPage.d.ts.map +0 -1
- package/dist/src/shell/ComponentPage.js.map +0 -1
- package/dist/src/shell/ControlKeyField.d.ts.map +0 -1
- package/dist/src/shell/ControlKeyField.js.map +0 -1
- package/dist/src/shell/ControlRow.d.ts.map +0 -1
- package/dist/src/shell/ControlRow.js.map +0 -1
- package/dist/src/shell/Dock.d.ts.map +0 -1
- package/dist/src/shell/Dock.js.map +0 -1
- package/dist/src/shell/EventsTab.d.ts.map +0 -1
- package/dist/src/shell/EventsTab.js.map +0 -1
- package/dist/src/shell/Example.d.ts.map +0 -1
- package/dist/src/shell/Example.js.map +0 -1
- package/dist/src/shell/FrameView.d.ts.map +0 -1
- package/dist/src/shell/FrameView.js.map +0 -1
- package/dist/src/shell/HomePage.d.ts.map +0 -1
- package/dist/src/shell/HomePage.js.map +0 -1
- package/dist/src/shell/InfoTip.d.ts.map +0 -1
- package/dist/src/shell/InfoTip.js.map +0 -1
- package/dist/src/shell/InteractionsTab.d.ts.map +0 -1
- package/dist/src/shell/InteractionsTab.js.map +0 -1
- package/dist/src/shell/MatrixPicker.d.ts.map +0 -1
- package/dist/src/shell/MatrixPicker.js.map +0 -1
- package/dist/src/shell/NamedViews.d.ts.map +0 -1
- package/dist/src/shell/NamedViews.js.map +0 -1
- package/dist/src/shell/PackageHtml.d.ts.map +0 -1
- package/dist/src/shell/PackageHtml.js.map +0 -1
- package/dist/src/shell/PartsTab.d.ts.map +0 -1
- package/dist/src/shell/PartsTab.js.map +0 -1
- package/dist/src/shell/PinnedControl.d.ts.map +0 -1
- package/dist/src/shell/PinnedControl.js.map +0 -1
- package/dist/src/shell/PropFields.d.ts.map +0 -1
- package/dist/src/shell/PropFields.js.map +0 -1
- package/dist/src/shell/PropsTab.d.ts.map +0 -1
- package/dist/src/shell/PropsTab.js.map +0 -1
- package/dist/src/shell/Segmented.d.ts.map +0 -1
- package/dist/src/shell/Segmented.js.map +0 -1
- package/dist/src/shell/Shell.d.ts.map +0 -1
- package/dist/src/shell/Shell.js.map +0 -1
- package/dist/src/shell/Sidebar.d.ts.map +0 -1
- package/dist/src/shell/Sidebar.js.map +0 -1
- package/dist/src/shell/SidebarEntries.d.ts.map +0 -1
- package/dist/src/shell/SidebarEntries.js.map +0 -1
- package/dist/src/shell/SidebarHandle.d.ts.map +0 -1
- package/dist/src/shell/SidebarHandle.js.map +0 -1
- package/dist/src/shell/Stage.d.ts.map +0 -1
- package/dist/src/shell/Stage.js.map +0 -1
- package/dist/src/shell/StageTools.d.ts.map +0 -1
- package/dist/src/shell/StageTools.js.map +0 -1
- package/dist/src/shell/StageViewport.d.ts.map +0 -1
- package/dist/src/shell/StageViewport.js.map +0 -1
- package/dist/src/shell/StoryCodeBlock.d.ts.map +0 -1
- package/dist/src/shell/StoryCodeBlock.js.map +0 -1
- package/dist/src/shell/StoryPicker.d.ts.map +0 -1
- package/dist/src/shell/StoryPicker.js.map +0 -1
- package/dist/src/shell/Toolbar.d.ts.map +0 -1
- package/dist/src/shell/Toolbar.js.map +0 -1
- package/dist/src/shell/ToolbarControl.d.ts.map +0 -1
- package/dist/src/shell/ToolbarControl.js.map +0 -1
- package/dist/src/shell/UsedIn.d.ts.map +0 -1
- package/dist/src/shell/UsedIn.js.map +0 -1
- package/dist/src/shell/ViewMenu.d.ts.map +0 -1
- package/dist/src/shell/ViewMenu.js.map +0 -1
- package/dist/src/shell/WidthField.d.ts.map +0 -1
- package/dist/src/shell/WidthField.js.map +0 -1
- package/dist/src/shell/catalogueContext.d.ts.map +0 -1
- package/dist/src/shell/catalogueContext.js.map +0 -1
- package/dist/src/shell/codeTokens.d.ts.map +0 -1
- package/dist/src/shell/codeTokens.js.map +0 -1
- package/dist/src/shell/codeWriter.d.ts.map +0 -1
- package/dist/src/shell/codeWriter.js.map +0 -1
- package/dist/src/shell/compareVariants.d.ts.map +0 -1
- package/dist/src/shell/compareVariants.js.map +0 -1
- package/dist/src/shell/controlCycle.d.ts.map +0 -1
- package/dist/src/shell/controlCycle.js.map +0 -1
- package/dist/src/shell/dockTabs.d.ts.map +0 -1
- package/dist/src/shell/dockTabs.js.map +0 -1
- package/dist/src/shell/icons.d.ts.map +0 -1
- package/dist/src/shell/icons.js.map +0 -1
- package/dist/src/shell/keyboard.d.ts.map +0 -1
- package/dist/src/shell/keyboard.js.map +0 -1
- package/dist/src/shell/mountShell.d.ts.map +0 -1
- package/dist/src/shell/mountShell.js.map +0 -1
- package/dist/src/shell/storyTouch.d.ts.map +0 -1
- package/dist/src/shell/storyTouch.js.map +0 -1
- package/dist/src/shell/strings.d.ts.map +0 -1
- package/dist/src/shell/strings.js.map +0 -1
- package/dist/src/shell/switchView.d.ts.map +0 -1
- package/dist/src/shell/switchView.js.map +0 -1
- package/dist/src/shell/treeSearch.d.ts.map +0 -1
- package/dist/src/shell/treeSearch.js.map +0 -1
- package/dist/src/shell/useAppearance.d.ts.map +0 -1
- package/dist/src/shell/useAppearance.js.map +0 -1
- package/dist/src/shell/useComponentDocs.d.ts.map +0 -1
- package/dist/src/shell/useComponentDocs.js.map +0 -1
- package/dist/src/shell/useControlKeys.d.ts.map +0 -1
- package/dist/src/shell/useControlKeys.js.map +0 -1
- package/dist/src/shell/useCopy.d.ts.map +0 -1
- package/dist/src/shell/useCopy.js.map +0 -1
- package/dist/src/shell/useFold.d.ts.map +0 -1
- package/dist/src/shell/useFold.js.map +0 -1
- package/dist/src/shell/useFrameMessages.d.ts.map +0 -1
- package/dist/src/shell/useFrameMessages.js.map +0 -1
- package/dist/src/shell/useFrameQueue.d.ts.map +0 -1
- package/dist/src/shell/useFrameQueue.js.map +0 -1
- package/dist/src/shell/useFullPage.d.ts.map +0 -1
- package/dist/src/shell/useFullPage.js.map +0 -1
- package/dist/src/shell/useLiveView.d.ts.map +0 -1
- package/dist/src/shell/useLiveView.js.map +0 -1
- package/dist/src/shell/useLoaded.d.ts.map +0 -1
- package/dist/src/shell/useLoaded.js.map +0 -1
- package/dist/src/shell/usePageDoc.d.ts.map +0 -1
- package/dist/src/shell/usePageDoc.js.map +0 -1
- package/dist/src/shell/usePopover.d.ts.map +0 -1
- package/dist/src/shell/usePopover.js.map +0 -1
- package/dist/src/shell/useRecentPages.d.ts.map +0 -1
- package/dist/src/shell/useRecentPages.js.map +0 -1
- package/dist/src/shell/useScrollMemory.d.ts.map +0 -1
- package/dist/src/shell/useScrollMemory.js.map +0 -1
- package/dist/src/shell/useSidebarLayout.d.ts.map +0 -1
- package/dist/src/shell/useSidebarLayout.js.map +0 -1
- package/dist/src/shell/useStored.d.ts.map +0 -1
- package/dist/src/shell/useStored.js.map +0 -1
- package/dist/src/shell/useStoryCode.d.ts.map +0 -1
- package/dist/src/shell/useStoryCode.js.map +0 -1
- package/dist/src/shell/useStoryHeights.d.ts.map +0 -1
- package/dist/src/shell/useStoryHeights.js.map +0 -1
- package/dist/src/shell/useStoryIdsElement.d.ts.map +0 -1
- package/dist/src/shell/useStoryIdsElement.js.map +0 -1
- package/dist/src/shell/useStoryKeys.d.ts.map +0 -1
- package/dist/src/shell/useStoryKeys.js.map +0 -1
- package/dist/src/shell/useSystemDark.d.ts.map +0 -1
- package/dist/src/shell/useSystemDark.js.map +0 -1
- package/dist/src/shell/useToolbarLayout.d.ts.map +0 -1
- package/dist/src/shell/useToolbarLayout.js.map +0 -1
- package/dist/src/shell/useToolbarOverflow.d.ts.map +0 -1
- package/dist/src/shell/useToolbarOverflow.js.map +0 -1
- package/dist/src/shell/useWorstCase.d.ts.map +0 -1
- package/dist/src/shell/useWorstCase.js.map +0 -1
- package/dist/src/shell/worstArgs.d.ts.map +0 -1
- package/dist/src/shell/worstArgs.js.map +0 -1
- package/dist/src/sourceFiles.d.ts.map +0 -1
- package/dist/src/sourceFiles.js.map +0 -1
- package/dist/src/spills.d.ts.map +0 -1
- package/dist/src/spills.js.map +0 -1
- package/dist/src/storyBackground.d.ts.map +0 -1
- package/dist/src/storyBackground.js.map +0 -1
- package/dist/src/storyCheck.d.ts.map +0 -1
- package/dist/src/storyCheck.js.map +0 -1
- package/dist/src/storyClock.d.ts.map +0 -1
- package/dist/src/storyClock.js.map +0 -1
- package/dist/src/storyGlobals.d.ts.map +0 -1
- package/dist/src/storyGlobals.js.map +0 -1
- package/dist/src/storyHeights.d.ts.map +0 -1
- package/dist/src/storyHeights.js.map +0 -1
- package/dist/src/storyIdsElement.d.ts.map +0 -1
- package/dist/src/storyIdsElement.js.map +0 -1
- package/dist/src/storyTexts.d.ts.map +0 -1
- package/dist/src/storyTexts.js.map +0 -1
- package/dist/src/storyTree.d.ts.map +0 -1
- package/dist/src/storyTree.js.map +0 -1
- package/dist/src/switches.d.ts.map +0 -1
- package/dist/src/switches.js.map +0 -1
- package/dist/src/toolbarLayout.d.ts.map +0 -1
- package/dist/src/toolbarLayout.js.map +0 -1
- package/dist/src/usedIn.d.ts.map +0 -1
- package/dist/src/usedIn.js.map +0 -1
- package/dist/src/viewState.d.ts.map +0 -1
- package/dist/src/viewState.js.map +0 -1
- package/dist/src/viewWords.d.ts.map +0 -1
- package/dist/src/viewWords.js.map +0 -1
- package/dist/src/vite/adapter.d.ts.map +0 -1
- package/dist/src/vite/adapter.js.map +0 -1
- package/dist/src/vite/agent.types.d.ts.map +0 -1
- package/dist/src/vite/agent.types.js.map +0 -1
- package/dist/src/vite/agentApi.d.ts.map +0 -1
- package/dist/src/vite/agentApi.js.map +0 -1
- package/dist/src/vite/agentRoutes.d.ts.map +0 -1
- package/dist/src/vite/agentRoutes.js.map +0 -1
- package/dist/src/vite/autoTitle.d.ts.map +0 -1
- package/dist/src/vite/autoTitle.js.map +0 -1
- package/dist/src/vite/componentPage.d.ts.map +0 -1
- package/dist/src/vite/componentPage.js.map +0 -1
- package/dist/src/vite/config.d.ts.map +0 -1
- package/dist/src/vite/config.js.map +0 -1
- package/dist/src/vite/configFile.d.ts.map +0 -1
- package/dist/src/vite/configFile.js.map +0 -1
- package/dist/src/vite/docsExtractor.d.ts.map +0 -1
- package/dist/src/vite/docsExtractor.js.map +0 -1
- package/dist/src/vite/docsProgram.d.ts.map +0 -1
- package/dist/src/vite/docsProgram.js.map +0 -1
- package/dist/src/vite/docsWorker.d.ts.map +0 -1
- package/dist/src/vite/docsWorker.js.map +0 -1
- package/dist/src/vite/forcedStates.d.ts.map +0 -1
- package/dist/src/vite/forcedStates.js.map +0 -1
- package/dist/src/vite/forgebookPlugin.d.ts.map +0 -1
- package/dist/src/vite/forgebookPlugin.js.map +0 -1
- package/dist/src/vite/highlightCode.d.ts.map +0 -1
- package/dist/src/vite/highlightCode.js.map +0 -1
- package/dist/src/vite/indexStoryFile.d.ts.map +0 -1
- package/dist/src/vite/indexStoryFile.js.map +0 -1
- package/dist/src/vite/mcpProtocol.d.ts.map +0 -1
- package/dist/src/vite/mcpProtocol.js.map +0 -1
- package/dist/src/vite/pages.d.ts.map +0 -1
- package/dist/src/vite/pages.js.map +0 -1
- package/dist/src/vite/prebundled.d.ts.map +0 -1
- package/dist/src/vite/prebundled.js.map +0 -1
- package/dist/src/vite/storyCode.d.ts.map +0 -1
- package/dist/src/vite/storyCode.js.map +0 -1
- package/dist/src/vite/storyFilesModule.d.ts.map +0 -1
- package/dist/src/vite/storyFilesModule.js.map +0 -1
- package/dist/src/vite/storyMeta.d.ts.map +0 -1
- package/dist/src/vite/storyMeta.js.map +0 -1
- package/dist/src/vite/touchMedia.d.ts.map +0 -1
- package/dist/src/vite/touchMedia.js.map +0 -1
- package/dist/src/vite/typeScriptPieces.d.ts.map +0 -1
- package/dist/src/vite/typeScriptPieces.js.map +0 -1
- package/dist/src/vite/usageGraph.d.ts.map +0 -1
- package/dist/src/vite/usageGraph.js.map +0 -1
- package/dist/src/vite/usageModule.d.ts.map +0 -1
- package/dist/src/vite/usageModule.js.map +0 -1
- package/dist/src/worstCase.d.ts.map +0 -1
- package/dist/src/worstCase.js.map +0 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { AxeAddress } from "./pages.ts";
|
|
2
|
+
/**
|
|
3
|
+
* How the frame's entry gets axe's address: a `?url` import on a dev server, the build's file under the base in a
|
|
4
|
+
* build.
|
|
5
|
+
*
|
|
6
|
+
* @param command - whether a dev server runs, or a build.
|
|
7
|
+
* @param packageDir - the core's folder.
|
|
8
|
+
* @returns the address, or none when axe cannot be found.
|
|
9
|
+
*/
|
|
10
|
+
export declare const axeAddress: (command: "serve" | "build", packageDir: string) => AxeAddress | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* The file a build writes: axe's script, gzipped.
|
|
13
|
+
*
|
|
14
|
+
* @param packageDir - the core's folder.
|
|
15
|
+
* @returns its name and bytes; none when axe cannot be found.
|
|
16
|
+
*/
|
|
17
|
+
export declare const axeBuildAsset: (packageDir: string) => {
|
|
18
|
+
readonly fileName: string;
|
|
19
|
+
readonly source: Buffer;
|
|
20
|
+
} | undefined;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a frame finds axe's script, for the Accessibility card: Vite serves the file on a dev server, and a build
|
|
3
|
+
* writes it gzipped.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* axe is a minified file already, more than half a megabyte, for a card most visits never open. Loaded as a module it
|
|
7
|
+
* would pass through Vite's pre-bundling on every cold start and through the minifier on every build; loaded as a
|
|
8
|
+
* script it does neither (`checkStory.ts`). A build keeps it gzipped, since it would otherwise be close to half of what
|
|
9
|
+
* a static catalogue weighs, and the frame unpacks it when asked.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
import { createHash } from "node:crypto";
|
|
14
|
+
import { readFileSync } from "node:fs";
|
|
15
|
+
import { gzipSync } from "node:zlib";
|
|
16
|
+
import { codeLiteral } from "../codeLiteral.js";
|
|
17
|
+
import { packageResolver } from "./configFile.js";
|
|
18
|
+
/**
|
|
19
|
+
* axe's script, in the core's dependencies; none when it cannot be found.
|
|
20
|
+
*
|
|
21
|
+
* @param packageDir - the core's folder.
|
|
22
|
+
*/
|
|
23
|
+
const axeScript = (packageDir) => packageResolver(packageDir)("axe-core/axe.min.js");
|
|
24
|
+
/**
|
|
25
|
+
* A build's compressed copy of axe's script: its name, from its text, so a new version of axe is a new file. `.bin`,
|
|
26
|
+
* since `.gz` makes some hosts send it with `Content-Encoding: gzip`, which the browser would unpack before the frame.
|
|
27
|
+
*
|
|
28
|
+
* @param text - the script's text.
|
|
29
|
+
*/
|
|
30
|
+
const axeBuildFile = (text) => `assets/axe-${createHash("sha256").update(text).digest("hex").slice(0, 8)}.bin`;
|
|
31
|
+
/**
|
|
32
|
+
* How the frame's entry gets axe's address: a `?url` import on a dev server, the build's file under the base in a
|
|
33
|
+
* build.
|
|
34
|
+
*
|
|
35
|
+
* @param command - whether a dev server runs, or a build.
|
|
36
|
+
* @param packageDir - the core's folder.
|
|
37
|
+
* @returns the address, or none when axe cannot be found.
|
|
38
|
+
*/
|
|
39
|
+
export const axeAddress = (command, packageDir) => {
|
|
40
|
+
const file = axeScript(packageDir);
|
|
41
|
+
if (file === undefined)
|
|
42
|
+
return undefined;
|
|
43
|
+
if (command === "serve")
|
|
44
|
+
return { imports: [`import axeUrl from ${codeLiteral(`${file}?url`)};`], value: "axeUrl" };
|
|
45
|
+
const name = axeBuildFile(readFileSync(file));
|
|
46
|
+
return { imports: [], value: `import.meta.env.BASE_URL + ${codeLiteral(name)}` };
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* The file a build writes: axe's script, gzipped.
|
|
50
|
+
*
|
|
51
|
+
* @param packageDir - the core's folder.
|
|
52
|
+
* @returns its name and bytes; none when axe cannot be found.
|
|
53
|
+
*/
|
|
54
|
+
export const axeBuildAsset = (packageDir) => {
|
|
55
|
+
const file = axeScript(packageDir);
|
|
56
|
+
if (file === undefined)
|
|
57
|
+
return undefined;
|
|
58
|
+
const text = readFileSync(file);
|
|
59
|
+
return { fileName: axeBuildFile(text), source: gzipSync(text, { level: 9 }) };
|
|
60
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A build's story-file texts: each file's component docs, code and page, written as data in a module of their group's
|
|
3
|
+
* rather than imported as a module each.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* A dev server imports each text from its query (`?forgebook-docs`, `-code`, `-page`), so an edit renews the one it
|
|
7
|
+
* changes. A build knows every file's texts, and a module each costs it a script per file and its loader in the group's
|
|
8
|
+
* module, which every first load fetches. So a text is a gzipped file (the docs, a page that has something to say),
|
|
9
|
+
* read when the page asks, as "Used in" is; and one that would weigh no more than its file's address (a story file
|
|
10
|
+
* whose stories are all args has no code, most components have no page) is written in the module itself. Either way
|
|
11
|
+
* the loader answers the text, as the query's module's default did.
|
|
12
|
+
*
|
|
13
|
+
* The texts are a module of their own (`TEXTS_PREFIX`), imported by the group's module alone, so the bundler keeps
|
|
14
|
+
* them in its chunk. Reading them waits for every component's docs, seconds on a large library: written in the group's
|
|
15
|
+
* module, they would hold back the stories it imports, and everything those import, until the last docs were read. As
|
|
16
|
+
* a module of their own, the group's module is written at once and the build loads the stories while the docs are
|
|
17
|
+
* read; the reading starts with the group's module (`starter`), and the texts' module waits for it.
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
import { type EmitAsset } from "./packedModule.ts";
|
|
22
|
+
import { type IndexedStoryFile } from "./storyFilesModule.ts";
|
|
23
|
+
import type { ComponentPageText, KeptCode, TextModuleContext } from "./textModules.ts";
|
|
24
|
+
/** A story file's texts as their queries' modules answer them: its component's docs, its stories' code, its page. */
|
|
25
|
+
export type FileTexts = readonly [docs: unknown, code: KeptCode, page: ComponentPageText];
|
|
26
|
+
/**
|
|
27
|
+
* The code of a group's texts module: the functions its loaders call, then, as its default, each file's loaders of its
|
|
28
|
+
* docs, code and page, in the order of the group's rows.
|
|
29
|
+
*
|
|
30
|
+
* @param texts - each file's texts, in the files' order.
|
|
31
|
+
* @param emit - writes a packed file.
|
|
32
|
+
*/
|
|
33
|
+
export declare const textsModuleCode: (texts: readonly FileTexts[], emit: EmitAsset) => string;
|
|
34
|
+
/** What the plugin gives a build's texts: the docs as the panel reads them, and what reading a page needs. */
|
|
35
|
+
export type TextSources = Pick<TextModuleContext, "watch" | "resolveImport" | "componentFiles"> & {
|
|
36
|
+
/** A story file's component docs as the panel reads them, or `{ error }`. */
|
|
37
|
+
readonly docsOf: (storyFile: string) => Promise<unknown>;
|
|
38
|
+
};
|
|
39
|
+
/** The module a build's texts are answered as. */
|
|
40
|
+
type TextsModule = {
|
|
41
|
+
readonly code: string;
|
|
42
|
+
readonly moduleType: "js";
|
|
43
|
+
};
|
|
44
|
+
/** A build's texts, by group: read from when the group's module is written, answered as the texts' module. */
|
|
45
|
+
export type GroupTexts = {
|
|
46
|
+
/**
|
|
47
|
+
* What starts reading a pattern's texts as its module is written: the build loads the stories meanwhile.
|
|
48
|
+
*
|
|
49
|
+
* @param id - the pattern's module's id (`FILES_PREFIX`, then the group).
|
|
50
|
+
* @param sources - what reading them needs.
|
|
51
|
+
* @returns what starts the reading, given the story files in the order of the module's rows.
|
|
52
|
+
*/
|
|
53
|
+
readonly starter: (id: string, sources: TextSources) => (files: readonly IndexedStoryFile[]) => void;
|
|
54
|
+
/**
|
|
55
|
+
* A group's texts module once its texts are read, when the id names one (`TEXTS_ID_PREFIX`). The files the reading
|
|
56
|
+
* watched are watched by this module, the one an edit of them changes.
|
|
57
|
+
*
|
|
58
|
+
* @param id - the module's id.
|
|
59
|
+
* @param sources - what reading them needs: its own `watch`, and the rest when its pattern's module did not start
|
|
60
|
+
* the reading (a module loaded again).
|
|
61
|
+
* @param emit - writes a packed file.
|
|
62
|
+
* @returns the module; none for another id.
|
|
63
|
+
*/
|
|
64
|
+
readonly moduleOf: (id: string, sources: TextSources, emit: EmitAsset) => Promise<TextsModule | undefined>;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* A build's texts, by group.
|
|
68
|
+
*
|
|
69
|
+
* @remarks
|
|
70
|
+
* A reading started is kept until its module takes it, and marked handled at once: a failure before the module asks
|
|
71
|
+
* would otherwise end the process, and the module's load still reports it. The reading outlives the load of the
|
|
72
|
+
* pattern's module that started it, so it records the files it watches and the texts' module watches them.
|
|
73
|
+
*/
|
|
74
|
+
export declare const groupTexts: () => GroupTexts;
|
|
75
|
+
export {};
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A build's story-file texts: each file's component docs, code and page, written as data in a module of their group's
|
|
3
|
+
* rather than imported as a module each.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* A dev server imports each text from its query (`?forgebook-docs`, `-code`, `-page`), so an edit renews the one it
|
|
7
|
+
* changes. A build knows every file's texts, and a module each costs it a script per file and its loader in the group's
|
|
8
|
+
* module, which every first load fetches. So a text is a gzipped file (the docs, a page that has something to say),
|
|
9
|
+
* read when the page asks, as "Used in" is; and one that would weigh no more than its file's address (a story file
|
|
10
|
+
* whose stories are all args has no code, most components have no page) is written in the module itself. Either way
|
|
11
|
+
* the loader answers the text, as the query's module's default did.
|
|
12
|
+
*
|
|
13
|
+
* The texts are a module of their own (`TEXTS_PREFIX`), imported by the group's module alone, so the bundler keeps
|
|
14
|
+
* them in its chunk. Reading them waits for every component's docs, seconds on a large library: written in the group's
|
|
15
|
+
* module, they would hold back the stories it imports, and everything those import, until the last docs were read. As
|
|
16
|
+
* a module of their own, the group's module is written at once and the build loads the stories while the docs are
|
|
17
|
+
* read; the reading starts with the group's module (`starter`), and the texts' module waits for it.
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
import { codeLiteral, codeOfJson } from "../codeLiteral.js";
|
|
22
|
+
import { gzippedJson, packedFileName, packedLoaderMaker } from "./packedModule.js";
|
|
23
|
+
import { FILES_PREFIX, TEXTS_ID_PREFIX } from "./pluginModules.js";
|
|
24
|
+
import { indexedStoryFiles, storyFilesGroupOf, storyFilesGroupText } from "./storyFilesModule.js";
|
|
25
|
+
import { VITE_PATHS } from "./vitePaths.js";
|
|
26
|
+
/** The function that makes a packed file's loader, in the generated code. */
|
|
27
|
+
const PACKED = "packedText";
|
|
28
|
+
/** The function that makes the loader of a text written in the module, in the generated code. */
|
|
29
|
+
const WRITTEN = "writtenText";
|
|
30
|
+
/**
|
|
31
|
+
* Writes texts as loaders: each in a gzipped file, or in the module when that weighs no more than the file and its
|
|
32
|
+
* address (an empty page's JSON is shorter than its gzip header and the fetch it would cost). A text written in the
|
|
33
|
+
* module is written once, however many files share it (most story files have no code and no page), and its loader
|
|
34
|
+
* shared with them.
|
|
35
|
+
*
|
|
36
|
+
* @param emit - writes a packed file.
|
|
37
|
+
*/
|
|
38
|
+
const textWriter = (emit) => {
|
|
39
|
+
const names = new Map();
|
|
40
|
+
const written = (json) => {
|
|
41
|
+
const name = names.get(json) ?? `${WRITTEN}${names.size}`;
|
|
42
|
+
names.set(json, name);
|
|
43
|
+
return name;
|
|
44
|
+
};
|
|
45
|
+
return {
|
|
46
|
+
loaderOf: (value) => {
|
|
47
|
+
const json = JSON.stringify(value);
|
|
48
|
+
const fileName = packedFileName(json);
|
|
49
|
+
const address = codeLiteral(fileName);
|
|
50
|
+
const packed = gzippedJson(json);
|
|
51
|
+
if (json.length <= address.length + packed.length)
|
|
52
|
+
return written(json);
|
|
53
|
+
emit({ type: "asset", fileName, source: packed });
|
|
54
|
+
return `${PACKED}(${address})`;
|
|
55
|
+
},
|
|
56
|
+
written: () => [...names].map(([json, name]) => `const ${name} = () => Promise.resolve(${codeOfJson(json)});`)
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Every file's texts, read: a build reads them all once, as it would for their modules.
|
|
61
|
+
*
|
|
62
|
+
* @param files - the group's story files, indexed.
|
|
63
|
+
* @param read - reads a file's texts.
|
|
64
|
+
* @returns each file's texts, in the files' order.
|
|
65
|
+
*/
|
|
66
|
+
const readTexts = (files, read) => Promise.all(files.map(({ file }) => Promise.all([read.docsOf(file), read.codeOf(file), read.pageOf(file)])));
|
|
67
|
+
/**
|
|
68
|
+
* The code of a group's texts module: the functions its loaders call, then, as its default, each file's loaders of its
|
|
69
|
+
* docs, code and page, in the order of the group's rows.
|
|
70
|
+
*
|
|
71
|
+
* @param texts - each file's texts, in the files' order.
|
|
72
|
+
* @param emit - writes a packed file.
|
|
73
|
+
*/
|
|
74
|
+
export const textsModuleCode = (texts, emit) => {
|
|
75
|
+
// written in the files' order once all are read, so the names in the module do not depend on which read ended first
|
|
76
|
+
const writer = textWriter(emit);
|
|
77
|
+
const rows = texts.map((each) => `[${each.map((text) => writer.loaderOf(text)).join(", ")}]`);
|
|
78
|
+
return [packedLoaderMaker(PACKED), ...writer.written(), `export default [${rows.join(",\n")}];`].join("\n");
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* A build's readers of the texts: the code and the pages as their queries answer them, read with the modules that
|
|
82
|
+
* answer them, which load only when a build asks.
|
|
83
|
+
*
|
|
84
|
+
* @param sources - the docs, and what reading a page needs.
|
|
85
|
+
*/
|
|
86
|
+
const textReaders = async (sources) => {
|
|
87
|
+
const { storyFileCode, storyFilePage } = await import("./textModules.js");
|
|
88
|
+
return {
|
|
89
|
+
docsOf: sources.docsOf,
|
|
90
|
+
// a build keeps nothing between runs: it reads each file once
|
|
91
|
+
codeOf: (storyFile) => storyFileCode(storyFile, undefined),
|
|
92
|
+
pageOf: (storyFile) => storyFilePage(storyFile, sources)
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* A group as its texts module's id writes it: the pattern's module names the folder as its importer's, the texts'
|
|
97
|
+
* module in Vite's form (`storyFilesCode`), so both are read back and written the same way.
|
|
98
|
+
*
|
|
99
|
+
* @param group - the group (`storyFilesGroupText`).
|
|
100
|
+
*/
|
|
101
|
+
const groupKey = (group) => {
|
|
102
|
+
const { root, pattern } = storyFilesGroupOf(group);
|
|
103
|
+
return storyFilesGroupText(VITE_PATHS.normalize(root), pattern);
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* A build's texts, by group.
|
|
107
|
+
*
|
|
108
|
+
* @remarks
|
|
109
|
+
* A reading started is kept until its module takes it, and marked handled at once: a failure before the module asks
|
|
110
|
+
* would otherwise end the process, and the module's load still reports it. The reading outlives the load of the
|
|
111
|
+
* pattern's module that started it, so it records the files it watches and the texts' module watches them.
|
|
112
|
+
*/
|
|
113
|
+
export const groupTexts = () => {
|
|
114
|
+
const started = new Map();
|
|
115
|
+
const read = async (files, sources) => readTexts(files, await textReaders(sources));
|
|
116
|
+
const code = async (group, sources, emit) => {
|
|
117
|
+
const key = groupKey(group);
|
|
118
|
+
const reading = started.get(key);
|
|
119
|
+
started.delete(key);
|
|
120
|
+
if (reading === undefined) {
|
|
121
|
+
const { root, pattern } = storyFilesGroupOf(group);
|
|
122
|
+
return textsModuleCode(await read(indexedStoryFiles(root, pattern, sources.watch), sources), emit);
|
|
123
|
+
}
|
|
124
|
+
const texts = await reading.texts;
|
|
125
|
+
for (const file of reading.watched)
|
|
126
|
+
sources.watch(file);
|
|
127
|
+
return textsModuleCode(texts, emit);
|
|
128
|
+
};
|
|
129
|
+
return {
|
|
130
|
+
starter: (id, sources) => (files) => {
|
|
131
|
+
const watched = [];
|
|
132
|
+
const texts = read(files, { ...sources, watch: (file) => void watched.push(file) });
|
|
133
|
+
texts.catch(() => undefined);
|
|
134
|
+
started.set(groupKey(id.slice(FILES_PREFIX.length)), { texts, watched });
|
|
135
|
+
},
|
|
136
|
+
moduleOf: async (id, sources, emit) => {
|
|
137
|
+
if (!id.startsWith(TEXTS_ID_PREFIX))
|
|
138
|
+
return undefined;
|
|
139
|
+
return { code: await code(id.slice(TEXTS_ID_PREFIX.length), sources, emit), moduleType: "js" };
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { UserConfig } from "vite";
|
|
2
|
+
import { type ResolvedConfig } from "./configFile.ts";
|
|
3
|
+
/**
|
|
4
|
+
* What the plugin sets in Vite's configuration for a catalogue: its folder as the root, what to pre-bundle, the pages
|
|
5
|
+
* as the build's inputs, and the dev server's reads kept to each origin.
|
|
6
|
+
*
|
|
7
|
+
* @param config - the catalogue's configuration.
|
|
8
|
+
* @param userConfig - the configuration so far, whose own `server.cors` and build output the plugin leaves alone.
|
|
9
|
+
*/
|
|
10
|
+
export declare const catalogueConfig: (config: ResolvedConfig, userConfig: UserConfig) => UserConfig;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What Forgebook's plugin sets in Vite's configuration for a catalogue: its folder as the root, what to pre-bundle, the
|
|
3
|
+
* pages as the build's inputs, the build's script names, and the dev server's reads kept to each origin.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
import { readFileSync } from "node:fs";
|
|
8
|
+
import { packageResolver } from "./configFile.js";
|
|
9
|
+
import { pageModulePath } from "./pages.js";
|
|
10
|
+
import { prebundled, scannedEntries } from "./prebundled.js";
|
|
11
|
+
/**
|
|
12
|
+
* A file's text, or none when it cannot be read.
|
|
13
|
+
*
|
|
14
|
+
* @param file - the file.
|
|
15
|
+
*/
|
|
16
|
+
const readTextFile = (file) => {
|
|
17
|
+
try {
|
|
18
|
+
return readFileSync(file, "utf8");
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Whether an app's configuration names its build's output itself, which the plugin then leaves as it is.
|
|
26
|
+
*
|
|
27
|
+
* @param userConfig - the configuration so far.
|
|
28
|
+
*/
|
|
29
|
+
const hasOwnOutput = (userConfig) => userConfig.build?.rolldownOptions?.output !== undefined ||
|
|
30
|
+
userConfig.build?.rollupOptions?.output !== undefined;
|
|
31
|
+
/**
|
|
32
|
+
* What the plugin sets in Vite's configuration for a catalogue: its folder as the root, what to pre-bundle, the pages
|
|
33
|
+
* as the build's inputs, and the dev server's reads kept to each origin.
|
|
34
|
+
*
|
|
35
|
+
* @param config - the catalogue's configuration.
|
|
36
|
+
* @param userConfig - the configuration so far, whose own `server.cors` and build output the plugin leaves alone.
|
|
37
|
+
*/
|
|
38
|
+
export const catalogueConfig = (config, userConfig) => ({
|
|
39
|
+
root: config.dir,
|
|
40
|
+
// the pages are generated, so Vite's scanner cannot find what they import: it is named here, and the
|
|
41
|
+
// story files (the project's and the sources') are scanned for what their components import
|
|
42
|
+
optimizeDeps: {
|
|
43
|
+
include: prebundled(config, packageResolver(config.dir)),
|
|
44
|
+
entries: scannedEntries(config, packageResolver(config.dir), readTextFile)
|
|
45
|
+
},
|
|
46
|
+
build: {
|
|
47
|
+
rolldownOptions: {
|
|
48
|
+
input: {
|
|
49
|
+
index: pageModulePath(config.dir, "index.html"),
|
|
50
|
+
frame: pageModulePath(config.dir, "frame.html")
|
|
51
|
+
},
|
|
52
|
+
// a catalogue names each story file's scripts once per loader: a name of its hash alone is a tenth of
|
|
53
|
+
// what the index weighs, and a catalogue whose builds are read by name keeps Vite's (`readableNames`)
|
|
54
|
+
...(config.build.readableNames || hasOwnOutput(userConfig)
|
|
55
|
+
? {}
|
|
56
|
+
: { output: { chunkFileNames: "assets/[hash].js", hashCharacters: "base36" } })
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
// Vite lets any localhost page read the server: neither origin needs another's reads, and the guards
|
|
60
|
+
// would be the only wall left between the frames and the catalogue (unless the app chose its own)
|
|
61
|
+
...(config.frames.kind === "isolated" && userConfig.server?.cors === undefined
|
|
62
|
+
? { server: { cors: false } }
|
|
63
|
+
: {})
|
|
64
|
+
});
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a change adds, checked against the design system: the mistakes agents make, in the lines they wrote.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Pure, and it reads the change and not the project: code that was already there is not this change's to fix, and a
|
|
6
|
+
* check that lists a project's history is ignored. A check people turn off is worth nothing, so it reads only the files
|
|
7
|
+
* where a raw value is a mistake (styles and components), never where it belongs (stories, tests, tokens, generated
|
|
8
|
+
* output), and it does not read a `#` as a colour unless it stands as a value. A raw colour is named whether or not a
|
|
9
|
+
* token is close; a size only when it equals a token, since most sizes are not the design system's. A fix is the token's
|
|
10
|
+
* name, not code to paste, and it is offered only when one token clearly fits: forcing the nearest is how a wrong colour
|
|
11
|
+
* gets a token's name. Props, imports and deprecated components are not checked here.
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
import type { DesignToken } from "./designTokens.ts";
|
|
16
|
+
/** A line a change adds. */
|
|
17
|
+
export type AddedLine = {
|
|
18
|
+
/** Its file, as the diff names it. */
|
|
19
|
+
readonly file: string;
|
|
20
|
+
/** Its line in the new file. */
|
|
21
|
+
readonly line: number;
|
|
22
|
+
/** Its text. */
|
|
23
|
+
readonly text: string;
|
|
24
|
+
};
|
|
25
|
+
/** The rules. */
|
|
26
|
+
export type CodeRule = "raw-color" | "raw-size" | "suppression" | "deleted-test";
|
|
27
|
+
/** What a check found. */
|
|
28
|
+
export type CodeProblem = {
|
|
29
|
+
/** The rule. */
|
|
30
|
+
readonly rule: CodeRule;
|
|
31
|
+
/** The file, relative to the repository. */
|
|
32
|
+
readonly file: string;
|
|
33
|
+
/** The line in it; none for a file that is gone. */
|
|
34
|
+
readonly line?: number;
|
|
35
|
+
/** What was written. */
|
|
36
|
+
readonly value: string;
|
|
37
|
+
/** The name of the token to use instead, when one clearly fits; a name, not code to paste. */
|
|
38
|
+
readonly fix?: string;
|
|
39
|
+
/** What to do, in a sentence. */
|
|
40
|
+
readonly message: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* The lines a unified diff adds. A header is read only outside a hunk, since an added line of `++ x` looks like one.
|
|
44
|
+
*
|
|
45
|
+
* @param diff - the diff, with no context lines.
|
|
46
|
+
*/
|
|
47
|
+
export declare const addedLines: (diff: string) => AddedLine[];
|
|
48
|
+
/**
|
|
49
|
+
* Every line of a new file, as added lines: a new file is what an agent writes most, and a diff does not show it.
|
|
50
|
+
*
|
|
51
|
+
* @param file - the file, relative to the repository.
|
|
52
|
+
* @param text - its text.
|
|
53
|
+
*/
|
|
54
|
+
export declare const fileLines: (file: string, text: string) => AddedLine[];
|
|
55
|
+
/**
|
|
56
|
+
* The test files a change deletes: the plainest way to make a failing check pass.
|
|
57
|
+
*
|
|
58
|
+
* @param deleted - the files it deletes.
|
|
59
|
+
*/
|
|
60
|
+
export declare const deletedTests: (deleted: readonly string[]) => CodeProblem[];
|
|
61
|
+
/**
|
|
62
|
+
* What lines a change adds break. Only code is read: a rule named in a sentence is not that rule.
|
|
63
|
+
*
|
|
64
|
+
* @param lines - the added lines.
|
|
65
|
+
* @param tokens - the catalogue's tokens; none skips the checks on values, which have nothing to compare with.
|
|
66
|
+
*/
|
|
67
|
+
export declare const checkedCode: (lines: readonly AddedLine[], tokens: readonly DesignToken[]) => CodeProblem[];
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { nearestTokens } from "./nearestToken.js";
|
|
2
|
+
/** A hex colour standing as a value: not an id, an anchor or a word that happens to start like one. */
|
|
3
|
+
const HEX_COLOR = /(?:^|[\s:'"`(,[=])(#(?:[0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{3,4}))(?![0-9a-z_-])/gi;
|
|
4
|
+
/** A colour function, not a function of that name being declared or a template being written. */
|
|
5
|
+
const COLOR_FUNCTION = /(?<![\w.])(?:rgba?|hsla?|oklch|oklab)\((?![^)]*\$\{)[\d\s.,%/-]+\)/gi;
|
|
6
|
+
/** A size, signed or in Tailwind's brackets. */
|
|
7
|
+
const SIZE = /(?:^|[\s:'"`(,[-])(\d*\.?\d+(?:px|rem))\b/g;
|
|
8
|
+
/** A comment that turns a check off. */
|
|
9
|
+
const SUPPRESSION = /(?:\/\/|\/\*|<!--|\{\/\*)\s*(?:@ts-ignore|@ts-expect-error|@ts-nocheck|eslint-disable|biome-ignore|stylelint-disable)/;
|
|
10
|
+
/** What says why after a suppression: the repository's rule allows one with a reason. */
|
|
11
|
+
const HAS_REASON = /(?:biome-ignore [^:]+:\s*\S|eslint-disable[^*]*--\s*\S|@ts-expect-error\s+\S)/;
|
|
12
|
+
/** The files where a raw value is a mistake: styles and components. */
|
|
13
|
+
const CHECKED_FILE = /\.(?:css|scss|sass|less|tsx|jsx|vue|svelte|astro)$/;
|
|
14
|
+
/** Where raw values belong: stories, tests, tokens and what a tool wrote. */
|
|
15
|
+
const LEFT_ALONE = /(?:\.stories\.|\.test\.|\.spec\.|\.e2e\.|\.min\.|(?:^|\/)_?(?:design-)?tokens?(?:\.|\/)|\.tokens?\.|(?:^|\/)theme\.|(?:^|\/)(?:__tests__|tests?|e2e|dist|build|generated|vendor)\/)/;
|
|
16
|
+
/** A test file. */
|
|
17
|
+
const TEST_FILE = /(?:\.test\.|\.spec\.|\.e2e\.|_test\.|(?:^|\/)(?:__tests__|tests?|e2e)\/)/;
|
|
18
|
+
/** A hunk's header: where its lines start in the new file. */
|
|
19
|
+
const HUNK = /^@@ -\d+(?:,\d+)? \+(\d+)(?:,\d+)? @@/;
|
|
20
|
+
/** A line that defines a value: a custom property or a Sass variable, where raw values belong. */
|
|
21
|
+
const DEFINES_VALUE = /^\s*(?:--[\w-]+|\$[\w-]+)\s*:/;
|
|
22
|
+
/** A media condition, where `var()` does not work, so a token cannot stand in. */
|
|
23
|
+
const MEDIA_CONDITION = /@(?:media|container)\b/;
|
|
24
|
+
/** A selector, whose `#` is an id. */
|
|
25
|
+
const SELECTOR_LINE = /[{,]\s*$/;
|
|
26
|
+
/** A line's code, without what follows a `//` or a comment's start. */
|
|
27
|
+
const withoutComment = (text) => text.replace(/(?:^|\s)\/\/.*$/, "").replace(/\/\*.*$/, "");
|
|
28
|
+
/**
|
|
29
|
+
* The lines a unified diff adds. A header is read only outside a hunk, since an added line of `++ x` looks like one.
|
|
30
|
+
*
|
|
31
|
+
* @param diff - the diff, with no context lines.
|
|
32
|
+
*/
|
|
33
|
+
export const addedLines = (diff) => {
|
|
34
|
+
const lines = [];
|
|
35
|
+
let file = "";
|
|
36
|
+
let next = 0;
|
|
37
|
+
let remaining = 0;
|
|
38
|
+
for (const line of diff.split("\n")) {
|
|
39
|
+
const hunk = HUNK.exec(line);
|
|
40
|
+
if (hunk !== null) {
|
|
41
|
+
next = Number(hunk[1]);
|
|
42
|
+
remaining = Number(/\+\d+,(\d+)/.exec(line)?.[1] ?? 1);
|
|
43
|
+
}
|
|
44
|
+
else if (remaining > 0 && line.startsWith("+")) {
|
|
45
|
+
lines.push({ file, line: next, text: line.slice(1) });
|
|
46
|
+
next += 1;
|
|
47
|
+
remaining -= 1;
|
|
48
|
+
}
|
|
49
|
+
else if (remaining === 0 && line.startsWith("+++ ")) {
|
|
50
|
+
file = line.slice(4).replace(/^b\//, "").replace(/\t$/, "");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return lines;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Every line of a new file, as added lines: a new file is what an agent writes most, and a diff does not show it.
|
|
57
|
+
*
|
|
58
|
+
* @param file - the file, relative to the repository.
|
|
59
|
+
* @param text - its text.
|
|
60
|
+
*/
|
|
61
|
+
export const fileLines = (file, text) => text.split("\n").map((line, index) => ({ file, line: index + 1, text: line }));
|
|
62
|
+
/**
|
|
63
|
+
* The test files a change deletes: the plainest way to make a failing check pass.
|
|
64
|
+
*
|
|
65
|
+
* @param deleted - the files it deletes.
|
|
66
|
+
*/
|
|
67
|
+
export const deletedTests = (deleted) => deleted
|
|
68
|
+
.filter((file) => TEST_FILE.test(file))
|
|
69
|
+
.map((file) => ({
|
|
70
|
+
rule: "deleted-test",
|
|
71
|
+
file,
|
|
72
|
+
value: file,
|
|
73
|
+
message: "A test was deleted: fix what it found, or say why it no longer applies."
|
|
74
|
+
}));
|
|
75
|
+
/** The problem of a raw colour: a fix only from a token that holds in every theme. */
|
|
76
|
+
const colorProblem = ({ file, line }, value, tokens) => {
|
|
77
|
+
const match = nearestTokens(tokens, value, "color").matches.find((each) => each.isClose && each.mode === undefined);
|
|
78
|
+
return {
|
|
79
|
+
rule: "raw-color",
|
|
80
|
+
file,
|
|
81
|
+
line,
|
|
82
|
+
value,
|
|
83
|
+
...(match === undefined ? {} : { fix: match.name }),
|
|
84
|
+
message: match === undefined
|
|
85
|
+
? "A colour written by hand, and no token is close: ask whether the design system has it."
|
|
86
|
+
: `A colour written by hand: use the token ${match.name} (${match.value}).`
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
/** The raw colours in a line of code. */
|
|
90
|
+
const colorProblems = (added, code, tokens) => {
|
|
91
|
+
if (SELECTOR_LINE.test(code) || /(?:href|url)\s*[=(]/.test(code))
|
|
92
|
+
return [];
|
|
93
|
+
// digits alone are a number more often than a colour (`Order #1042`), unless they stand as a value
|
|
94
|
+
const hexes = [...code.matchAll(HEX_COLOR)]
|
|
95
|
+
.flatMap((match) => match[1] ?? [])
|
|
96
|
+
.filter((value) => !/^#\d+$/.test(value) || new RegExp(`[:=]\\s*['"\`]?${value}`).test(code));
|
|
97
|
+
const functions = [...code.matchAll(COLOR_FUNCTION)].map((match) => match[0]);
|
|
98
|
+
return [...hexes, ...functions].map((value) => colorProblem(added, value, tokens));
|
|
99
|
+
};
|
|
100
|
+
/** The sizes in a line that equal one token: two that do say what the size is for, which this cannot tell. */
|
|
101
|
+
const sizeProblems = ({ file, line }, code, tokens) => {
|
|
102
|
+
if (MEDIA_CONDITION.test(code))
|
|
103
|
+
return [];
|
|
104
|
+
return [...code.matchAll(SIZE)].flatMap((found) => {
|
|
105
|
+
const value = found[1] ?? "";
|
|
106
|
+
const exact = nearestTokens(tokens, value, "dimension").matches.filter((each) => each.isExact && each.mode === undefined);
|
|
107
|
+
const [only] = exact;
|
|
108
|
+
if (only === undefined)
|
|
109
|
+
return [];
|
|
110
|
+
const fix = exact.length === 1 ? { fix: only.name } : {};
|
|
111
|
+
const names = exact.map((each) => each.name).join(" or ");
|
|
112
|
+
return [
|
|
113
|
+
{ rule: "raw-size", file, line, value, ...fix, message: `A size written by hand: use ${names}.` }
|
|
114
|
+
];
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
/** The suppression a line adds, unless it says why. */
|
|
118
|
+
const suppressionProblem = ({ file, line, text }) => SUPPRESSION.test(text) && !HAS_REASON.test(text)
|
|
119
|
+
? [
|
|
120
|
+
{
|
|
121
|
+
rule: "suppression",
|
|
122
|
+
file,
|
|
123
|
+
line,
|
|
124
|
+
value: text.trim(),
|
|
125
|
+
message: "A check was turned off with no reason: fix what it found, or say why it is wrong here."
|
|
126
|
+
}
|
|
127
|
+
]
|
|
128
|
+
: [];
|
|
129
|
+
/**
|
|
130
|
+
* What lines a change adds break. Only code is read: a rule named in a sentence is not that rule.
|
|
131
|
+
*
|
|
132
|
+
* @param lines - the added lines.
|
|
133
|
+
* @param tokens - the catalogue's tokens; none skips the checks on values, which have nothing to compare with.
|
|
134
|
+
*/
|
|
135
|
+
export const checkedCode = (lines, tokens) => lines.flatMap((added) => {
|
|
136
|
+
if (!CHECKED_FILE.test(added.file) && !/\.[cm]?[jt]s$/.test(added.file))
|
|
137
|
+
return [];
|
|
138
|
+
if (LEFT_ALONE.test(added.file))
|
|
139
|
+
return [];
|
|
140
|
+
const suppression = suppressionProblem(added);
|
|
141
|
+
if (tokens.length === 0 || !CHECKED_FILE.test(added.file) || DEFINES_VALUE.test(added.text))
|
|
142
|
+
return suppression;
|
|
143
|
+
const code = withoutComment(added.text);
|
|
144
|
+
return [...suppression, ...colorProblems(added, code, tokens), ...sizeProblems(added, code, tokens)];
|
|
145
|
+
});
|