nudge-ui 0.2.4 → 0.2.6
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/dist/cli/agentCommand.d.ts +0 -1
- package/dist/cli/agentCommand.js +4 -29
- package/dist/client.mjs +987 -221
- package/dist/compiler/ast.d.ts +0 -6
- package/dist/compiler/ast.js +0 -5
- package/dist/compiler/componentContractTypes.d.ts +11 -5
- package/dist/compiler/componentContracts.js +3 -9
- package/dist/compiler/componentInstrumentation.d.ts +2 -13
- package/dist/compiler/componentInstrumentation.js +3 -12
- package/dist/compiler/componentPolicyResolution.d.ts +3 -22
- package/dist/compiler/componentPolicyResolution.js +6 -38
- package/dist/compiler/identityAttributes.d.ts +2 -0
- package/dist/compiler/identityAttributes.js +2 -0
- package/dist/compiler/index.d.ts +0 -1
- package/dist/compiler/index.js +0 -1
- package/dist/compiler/packageComponentContracts.d.ts +10 -19
- package/dist/compiler/packageComponentContracts.js +60 -43
- package/dist/compiler/reactComponentProtocols.d.ts +0 -7
- package/dist/compiler/reactComponentProtocols.js +0 -7
- package/dist/compiler/reactIdentity.d.ts +2 -2
- package/dist/compiler/reactIdentity.js +41 -43
- package/dist/compiler/sourcePaths.d.ts +4 -8
- package/dist/compiler/sourcePaths.js +6 -8
- package/dist/css/dialects/index.d.ts +2 -21
- package/dist/css/dialects/index.js +2 -9
- package/dist/css/dialects/tailwind.d.ts +2 -16
- package/dist/css/dialects/tailwind.js +2 -25
- package/dist/css/dialects/vanillaExtract.d.ts +1 -9
- package/dist/css/dialects/vanillaExtract.js +0 -1
- package/dist/css/index.d.ts +0 -8
- package/dist/css/index.js +0 -8
- package/dist/css/model/index.d.ts +6 -38
- package/dist/css/model/index.js +0 -9
- package/dist/css/token-inventory/index.d.ts +0 -23
- package/dist/css/token-inventory/index.js +0 -23
- package/dist/css/token-inventory/inventory.js +4 -16
- package/dist/css/token-inventory/parseStylesheet.d.ts +1 -9
- package/dist/css/token-inventory/parseStylesheet.js +5 -42
- package/dist/css/token-inventory/policy.d.ts +2 -39
- package/dist/css/token-inventory/policy.js +2 -39
- package/dist/css/token-inventory/types.d.ts +2 -15
- package/dist/css/value-semantics/borderSemantics.d.ts +1 -8
- package/dist/css/value-semantics/borderSemantics.js +5 -23
- package/dist/css/value-semantics/boxSemantics.d.ts +2 -25
- package/dist/css/value-semantics/boxSemantics.js +1 -7
- package/dist/css/value-semantics/colorSemantics.d.ts +6 -60
- package/dist/css/value-semantics/colorSemantics.js +9 -40
- package/dist/css/value-semantics/cssSyntax.d.ts +10 -10
- package/dist/css/value-semantics/cssSyntax.js +39 -11
- package/dist/css/value-semantics/fontSemantics.d.ts +3 -19
- package/dist/css/value-semantics/fontSemantics.js +7 -25
- package/dist/css/value-semantics/index.d.ts +1 -12
- package/dist/css/value-semantics/index.js +1 -12
- package/dist/css/value-semantics/propertyPolicy.d.ts +6 -53
- package/dist/css/value-semantics/propertyPolicy.js +47 -59
- package/dist/css/value-semantics/stringMaps.d.ts +0 -1
- package/dist/css/value-semantics/structuredValues.d.ts +3 -37
- package/dist/css/value-semantics/structuredValues.js +6 -17
- package/dist/css/value-semantics/tokenInterpretation.d.ts +8 -50
- package/dist/css/value-semantics/tokenInterpretation.js +7 -21
- package/dist/hosts/astro/astroRuntimeConfig.d.ts +0 -1
- package/dist/hosts/astro/astroRuntimeConfig.js +0 -1
- package/dist/hosts/astro/clientAsset.d.ts +1 -5
- package/dist/hosts/astro/clientAsset.js +1 -5
- package/dist/hosts/astro/clientTransport.d.ts +0 -1
- package/dist/hosts/astro/clientTransport.js +4 -9
- package/dist/hosts/astro/integration.d.ts +2 -28
- package/dist/hosts/astro/integration.js +7 -36
- package/dist/hosts/astro/markdownIdentity.d.ts +0 -3
- package/dist/hosts/astro/markdownIdentity.js +0 -3
- package/dist/hosts/astro/middleware.d.ts +1 -12
- package/dist/hosts/astro/middleware.js +1 -12
- package/dist/hosts/astro/projectContext.d.ts +1 -9
- package/dist/hosts/astro/projectContext.js +2 -11
- package/dist/hosts/astro/responseInstrumentation.d.ts +4 -33
- package/dist/hosts/astro/responseInstrumentation.js +5 -34
- package/dist/hosts/environment.d.ts +0 -8
- package/dist/hosts/environment.js +0 -1
- package/dist/hosts/next/index.js +1 -3
- package/dist/hosts/next/loader.d.ts +5 -44
- package/dist/hosts/next/loader.js +22 -103
- package/dist/hosts/next/loaders/identity-loader.cjs +111 -65
- package/dist/hosts/next/loaders/loader-plugin.cjs +111 -65
- package/dist/hosts/next/manifest.d.ts +2 -16
- package/dist/hosts/next/manifest.js +18 -20
- package/dist/hosts/next/mount.d.ts +1 -11
- package/dist/hosts/next/mount.js +1 -11
- package/dist/hosts/next/repositoryScope.d.ts +2 -17
- package/dist/hosts/next/repositoryScope.js +2 -17
- package/dist/hosts/next/sidecar.d.ts +0 -13
- package/dist/hosts/next/sidecar.js +25 -110
- package/dist/hosts/next/wrapper.d.ts +0 -31
- package/dist/hosts/next/wrapper.js +14 -71
- package/dist/hosts/projectBridge.d.ts +0 -2
- package/dist/hosts/projectBridge.js +3 -19
- package/dist/hosts/reactRendererCapture.d.ts +2 -0
- package/dist/hosts/reactRendererCapture.js +12 -0
- package/dist/hosts/static/cli.d.ts +0 -4
- package/dist/hosts/static/cli.js +0 -3
- package/dist/hosts/static/html/bootstrap.d.ts +1 -18
- package/dist/hosts/static/html/bootstrap.js +2 -14
- package/dist/hosts/static/manifest.d.ts +2 -15
- package/dist/hosts/static/manifest.js +5 -18
- package/dist/hosts/static/server.d.ts +4 -38
- package/dist/hosts/static/server.js +17 -67
- package/dist/hosts/vite/index.d.ts +0 -10
- package/dist/hosts/vite/index.js +0 -10
- package/dist/hosts/vite/react.d.ts +4 -17
- package/dist/hosts/vite/react.js +18 -35
- package/dist/hosts/vite/tokens/activeStylesheets.d.ts +1 -10
- package/dist/hosts/vite/tokens/activeStylesheets.js +3 -8
- package/dist/hosts/vite/tokens/fileMap.d.ts +0 -1
- package/dist/hosts/vite/tokens/viteStylesheetArtifacts.d.ts +2 -15
- package/dist/hosts/vite/tokens/viteStylesheetArtifacts.js +3 -10
- package/dist/hosts/vite/vite.d.ts +5 -26
- package/dist/hosts/vite/vite.js +44 -80
- package/dist/html/dom.d.ts +0 -1
- package/dist/html/dom.js +0 -1
- package/dist/html/identity.d.ts +1 -15
- package/dist/html/identity.js +1 -8
- package/dist/html/insertions.d.ts +2 -8
- package/dist/html/insertions.js +1 -1
- package/dist/inspector/agent/McpConnectionDialog.d.ts +1 -6
- package/dist/inspector/agent/McpConnectionDialog.js +8 -9
- package/dist/inspector/agent/activity.d.ts +2 -2
- package/dist/inspector/agent/activity.js +4 -3
- package/dist/inspector/agent/client.d.ts +3 -27
- package/dist/inspector/agent/client.js +43 -91
- package/dist/inspector/agent/connectionStatus.d.ts +3 -2
- package/dist/inspector/agent/connectionStatus.js +25 -1
- package/dist/inspector/agent/httpTransport.d.ts +0 -8
- package/dist/inspector/agent/httpTransport.js +42 -176
- package/dist/inspector/agent/protocol.d.ts +1 -10
- package/dist/inspector/agent/protocol.js +1 -9
- package/dist/inspector/agent/verification.d.ts +3 -20
- package/dist/inspector/agent/verification.js +10 -43
- package/dist/inspector/boot.d.ts +5 -0
- package/dist/inspector/boot.js +289 -0
- package/dist/inspector/canvas/AgentActivityOverlay.d.ts +3 -2
- package/dist/inspector/canvas/AgentActivityOverlay.js +7 -4
- package/dist/inspector/canvas/CanvasCard.js +26 -24
- package/dist/inspector/canvas/CanvasElementOverlay.js +196 -174
- package/dist/inspector/canvas/CanvasToolbar.js +2 -1
- package/dist/inspector/canvas/CanvasWorkspace.js +87 -124
- package/dist/inspector/canvas/LockedWorkspaceNotice.d.ts +3 -2
- package/dist/inspector/canvas/LockedWorkspaceNotice.js +10 -6
- package/dist/inspector/canvas/PageCard.d.ts +9 -0
- package/dist/inspector/canvas/PageCard.js +50 -0
- package/dist/inspector/canvas/SketchToolOptions.d.ts +4 -0
- package/dist/inspector/canvas/SketchToolOptions.js +80 -0
- package/dist/inspector/canvas/StaleChangeIndicator.d.ts +1 -1
- package/dist/inspector/canvas/StaleChangeIndicator.js +1 -1
- package/dist/inspector/canvas/ToolOptionsDrawer.d.ts +16 -0
- package/dist/inspector/canvas/ToolOptionsDrawer.js +71 -0
- package/dist/inspector/canvas/activeCanvasDocument.d.ts +3 -4
- package/dist/inspector/canvas/activeCanvasDocument.js +0 -2
- package/dist/inspector/canvas/agentPresentation.d.ts +2 -13
- package/dist/inspector/canvas/agentPresentation.js +3 -14
- package/dist/inspector/canvas/assets/eraser.svg +28 -0
- package/dist/inspector/canvas/assets/pen.svg +25 -0
- package/dist/inspector/canvas/canvasFrame.d.ts +12 -0
- package/dist/inspector/canvas/canvasFrame.js +9 -0
- package/dist/inspector/canvas/canvasGestures.d.ts +0 -1
- package/dist/inspector/canvas/canvasGestures.js +0 -6
- package/dist/inspector/canvas/canvasResize.d.ts +1 -6
- package/dist/inspector/canvas/canvasResize.js +1 -6
- package/dist/inspector/canvas/canvasStore.d.ts +5 -7
- package/dist/inspector/canvas/canvasStore.js +42 -21
- package/dist/inspector/canvas/frameConnection.d.ts +42 -0
- package/dist/inspector/canvas/frameConnection.js +73 -0
- package/dist/inspector/canvas/frameContent.d.ts +0 -1
- package/dist/inspector/canvas/frameLifecycle.d.ts +12 -0
- package/dist/inspector/canvas/frameLifecycle.js +11 -0
- package/dist/inspector/canvas/frameProtocol.d.ts +20 -38
- package/dist/inspector/canvas/frameProtocol.js +37 -24
- package/dist/inspector/canvas/frameScrollbarStyles.d.ts +0 -1
- package/dist/inspector/canvas/frameScrollbarStyles.js +0 -1
- package/dist/inspector/canvas/layout.d.ts +10 -22
- package/dist/inspector/canvas/layout.js +0 -3
- package/dist/inspector/canvas/normalizeUrl.js +1 -8
- package/dist/inspector/canvas/pageSurface.d.ts +6 -0
- package/dist/inspector/canvas/pageSurface.js +29 -0
- package/dist/inspector/canvas/projection.d.ts +14 -25
- package/dist/inspector/canvas/projection.js +64 -87
- package/dist/inspector/canvas/rendererBootstrap.d.ts +8 -1
- package/dist/inspector/canvas/rendererBootstrap.js +10 -15
- package/dist/inspector/canvas/rendererCidIndex.d.ts +0 -5
- package/dist/inspector/canvas/rendererCidIndex.js +0 -5
- package/dist/inspector/canvas/rendererElementSelector.js +38 -28
- package/dist/inspector/canvas/rendererMessageRouter.d.ts +4 -6
- package/dist/inspector/canvas/rendererMessageRouter.js +12 -17
- package/dist/inspector/canvas/rendererSelectionProxy.d.ts +3 -1
- package/dist/inspector/canvas/rendererSelectionProxy.js +7 -40
- package/dist/inspector/canvas/rendererStylesheet.d.ts +0 -1
- package/dist/inspector/canvas/rendererStylesheet.js +23 -1
- package/dist/inspector/canvas/resizeHandleScale.d.ts +1 -10
- package/dist/inspector/canvas/resizeHandleScale.js +1 -10
- package/dist/inspector/canvas/sessionStore.d.ts +3 -9
- package/dist/inspector/canvas/sessionStore.js +33 -43
- package/dist/inspector/canvas/staleChangeDetector.d.ts +1 -1
- package/dist/inspector/canvas/staleChangeDetector.js +11 -26
- package/dist/inspector/canvas/toolbarScale.d.ts +1 -4
- package/dist/inspector/canvas/toolbarScale.js +1 -4
- package/dist/inspector/canvas/useCanvasLayoutAnimation.d.ts +0 -1
- package/dist/inspector/canvas/useCanvasLayoutAnimation.js +0 -1
- package/dist/inspector/canvas/viewStore.js +1 -1
- package/dist/inspector/canvas/wheelPan.d.ts +1 -1
- package/dist/inspector/canvas/wheelPan.js +1 -1
- package/dist/inspector/canvas/workspaceLease.d.ts +1 -5
- package/dist/inspector/canvas/workspaceLease.js +1 -7
- package/dist/inspector/changes/codecs.d.ts +1 -0
- package/dist/inspector/changes/codecs.js +21 -5
- package/dist/inspector/changes/draftPreview.d.ts +7 -0
- package/dist/inspector/changes/draftPreview.js +118 -0
- package/dist/inspector/changes/editModel.d.ts +11 -13
- package/dist/inspector/changes/editModel.js +9 -4
- package/dist/inspector/changes/managedStyleProjection.js +6 -15
- package/dist/inspector/changes/model.d.ts +0 -5
- package/dist/inspector/changes/model.js +1 -8
- package/dist/inspector/changes/previewDiagnostics.d.ts +2 -12
- package/dist/inspector/changes/previewDiagnostics.js +5 -21
- package/dist/inspector/changes/previewVerification.d.ts +25 -0
- package/dist/inspector/changes/previewVerification.js +34 -0
- package/dist/inspector/changes/structuralTypes.d.ts +2 -4
- package/dist/inspector/changes/types.d.ts +11 -8
- package/dist/inspector/clientManifest.d.ts +17 -6
- package/dist/inspector/clientManifest.js +16 -3
- package/dist/inspector/comments/CommentsOverlay.js +66 -23
- package/dist/inspector/comments/element.d.ts +1 -2
- package/dist/inspector/comments/element.js +1 -2
- package/dist/inspector/comments/store.d.ts +1 -1
- package/dist/inspector/comments/store.js +4 -3
- package/dist/inspector/comments/verification.d.ts +8 -2
- package/dist/inspector/comments/verification.js +19 -11
- package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +8 -0
- package/dist/inspector/componentSemantics/ComponentPropsSection.js +12 -8
- package/dist/inspector/componentSemantics/adapterRegistry.d.ts +2 -9
- package/dist/inspector/componentSemantics/adapterRegistry.js +2 -9
- package/dist/inspector/componentSemantics/changeAction.js +1 -1
- package/dist/inspector/componentSemantics/changeModel.js +2 -4
- package/dist/inspector/componentSemantics/react/callsites.d.ts +28 -0
- package/dist/inspector/componentSemantics/react/callsites.js +261 -0
- package/dist/inspector/componentSemantics/react/devtoolsHook.d.ts +23 -0
- package/dist/inspector/componentSemantics/react/devtoolsHook.js +71 -0
- package/dist/inspector/componentSemantics/react/fibers.d.ts +17 -0
- package/dist/inspector/componentSemantics/react/fibers.js +30 -0
- package/dist/inspector/componentSemantics/{reactRuntime.d.ts → react/runtime.d.ts} +3 -2
- package/dist/inspector/componentSemantics/{reactRuntime.js → react/runtime.js} +70 -53
- package/dist/inspector/componentSemantics/runtimeBridge.d.ts +2 -18
- package/dist/inspector/componentSemantics/runtimeBridge.js +5 -19
- package/dist/inspector/componentSemantics/textBinding.d.ts +2 -11
- package/dist/inspector/componentSemantics/textBinding.js +20 -87
- package/dist/inspector/componentSemantics/types.d.ts +8 -27
- package/dist/inspector/componentSemantics/types.js +0 -1
- package/dist/inspector/conformance/borderCases.d.ts +0 -5
- package/dist/inspector/conformance/borderCases.js +0 -5
- package/dist/inspector/conformance/colorCases.d.ts +0 -6
- package/dist/inspector/conformance/colorCases.js +0 -6
- package/dist/inspector/conformance/fixture.d.ts +1 -5
- package/dist/inspector/conformance/fixture.js +1 -5
- package/dist/inspector/conformance/spacingCases.d.ts +0 -4
- package/dist/inspector/conformance/spacingCases.js +0 -4
- package/dist/inspector/conformance/typographyCases.d.ts +0 -5
- package/dist/inspector/conformance/typographyCases.js +0 -5
- package/dist/inspector/drafts/draftStore.d.ts +95 -0
- package/dist/inspector/drafts/draftStore.js +461 -0
- package/dist/inspector/drafts/model.d.ts +14 -14
- package/dist/inspector/drafts/model.js +4 -2
- package/dist/inspector/drafts/store.d.ts +47 -16
- package/dist/inspector/drafts/store.js +137 -170
- package/dist/inspector/editScope.d.ts +0 -1
- package/dist/inspector/editScope.js +0 -1
- package/dist/inspector/index.d.ts +2 -4
- package/dist/inspector/index.js +2 -264
- package/dist/inspector/inline-text/inlineTextDiagnostics.d.ts +0 -2
- package/dist/inspector/inline-text/inlineTextDiagnostics.js +0 -2
- package/dist/inspector/inline-text/inlineTextEditor.d.ts +3 -9
- package/dist/inspector/inline-text/inlineTextEditor.js +27 -81
- package/dist/inspector/inline-text/inlineTextLifecycle.js +1 -6
- package/dist/inspector/inline-text/textEditChange.d.ts +1 -2
- package/dist/inspector/inspection/bridge.d.ts +3 -7
- package/dist/inspector/inspection/bridge.js +6 -13
- package/dist/inspector/inspection/browserCssInspection.d.ts +12 -11
- package/dist/inspector/inspection/browserCssInspection.js +32 -14
- package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +0 -7
- package/dist/inspector/inspection/browserCssInspectionRegistry.js +1 -16
- package/dist/inspector/inspection/inspectionSnapshot.d.ts +6 -0
- package/dist/inspector/inspection/inspectionSnapshot.js +10 -0
- package/dist/inspector/inspection/performanceDiagnostics.d.ts +18 -0
- package/dist/inspector/inspection/performanceDiagnostics.js +31 -0
- package/dist/inspector/inspection/selectionProperty.d.ts +1 -6
- package/dist/inspector/inspection/selectionProperty.js +1 -5
- package/dist/inspector/inspection/useBrowserCssInspection.d.ts +1 -5
- package/dist/inspector/inspection/useBrowserCssInspection.js +22 -59
- package/dist/inspector/iterations/capture.d.ts +2 -2
- package/dist/inspector/iterations/capture.js +4 -9
- package/dist/inspector/iterations/client.d.ts +2 -2
- package/dist/inspector/iterations/client.js +0 -1
- package/dist/inspector/iterations/coordinator.d.ts +4 -4
- package/dist/inspector/iterations/coordinator.js +5 -4
- package/dist/inspector/iterations/prompt.d.ts +0 -1
- package/dist/inspector/iterations/prompt.js +9 -9
- package/dist/inspector/overlay/DomNavigator.d.ts +3 -1
- package/dist/inspector/overlay/DomNavigator.js +39 -15
- package/dist/inspector/overlay/DropGuideOverlay.d.ts +0 -1
- package/dist/inspector/overlay/DropGuideOverlay.js +0 -1
- package/dist/inspector/overlay/MeasurementGuideOverlay.d.ts +1 -8
- package/dist/inspector/overlay/MeasurementGuideOverlay.js +1 -5
- package/dist/inspector/overlay/clickPolicy.d.ts +3 -14
- package/dist/inspector/overlay/clickPolicy.js +3 -14
- package/dist/inspector/overlay/dropGuide.d.ts +0 -3
- package/dist/inspector/overlay/dropGuide.js +0 -3
- package/dist/inspector/overlay/frameThrottle.d.ts +0 -1
- package/dist/inspector/overlay/frameThrottle.js +0 -1
- package/dist/inspector/overlay/interactionStyles.d.ts +1 -1
- package/dist/inspector/overlay/interactionStyles.js +19 -8
- package/dist/inspector/overlay/measurementGeometry.js +4 -12
- package/dist/inspector/overlay/selectedGeometry.d.ts +1 -6
- package/dist/inspector/overlay/selectedGeometry.js +1 -8
- package/dist/inspector/overlay/spacingGestures.d.ts +14 -21
- package/dist/inspector/overlay/spacingGestures.js +151 -31
- package/dist/inspector/overlay/structuralGestures.d.ts +2 -9
- package/dist/inspector/overlay/structuralGestures.js +1 -4
- package/dist/inspector/pageInspector.d.ts +33 -0
- package/dist/inspector/pageInspector.js +335 -0
- package/dist/inspector/projection/cssEscapes.d.ts +0 -1
- package/dist/inspector/projection/cssEscapes.js +2 -4
- package/dist/inspector/projection/draftProjection.d.ts +6 -10
- package/dist/inspector/projection/draftProjection.js +8 -7
- package/dist/inspector/projection/managedStylesheet.d.ts +1 -7
- package/dist/inspector/projection/managedStylesheet.js +28 -26
- package/dist/inspector/projection/renderedInstance.d.ts +5 -28
- package/dist/inspector/projection/renderedInstance.js +13 -33
- package/dist/inspector/projection/structuralProjection.d.ts +7 -48
- package/dist/inspector/projection/structuralProjection.js +31 -96
- package/dist/inspector/projection/textProjection.d.ts +7 -13
- package/dist/inspector/projection/textProjection.js +35 -80
- package/dist/inspector/prompt/PromptSettingsDialog.d.ts +0 -1
- package/dist/inspector/prompt/PromptSettingsDialog.js +0 -1
- package/dist/inspector/prompt/clipboardHandoff.d.ts +1 -0
- package/dist/inspector/prompt/clipboardHandoff.js +34 -16
- package/dist/inspector/prompt/generatePrompt.d.ts +2 -2
- package/dist/inspector/prompt/generatePrompt.js +247 -166
- package/dist/inspector/prompt/promptDocument.d.ts +3 -0
- package/dist/inspector/prompt/promptDocument.js +8 -0
- package/dist/inspector/prompt/promptSettings.d.ts +0 -3
- package/dist/inspector/prompt/promptSettings.js +7 -8
- package/dist/inspector/runtime/devFlag.d.ts +2 -25
- package/dist/inspector/runtime/devFlag.js +4 -31
- package/dist/inspector/runtime/documentStylesheetOrder.d.ts +0 -2
- package/dist/inspector/runtime/editorShell.d.ts +0 -1
- package/dist/inspector/runtime/editorShell.js +0 -1
- package/dist/inspector/runtime/inspectorStorage.d.ts +11 -0
- package/dist/inspector/runtime/inspectorStorage.js +37 -0
- package/dist/inspector/runtime/ownedStylesheets.d.ts +14 -0
- package/dist/inspector/runtime/ownedStylesheets.js +66 -0
- package/dist/inspector/runtime/runtimeConfig.d.ts +14 -84
- package/dist/inspector/runtime/runtimeConfig.js +18 -50
- package/dist/inspector/runtime/runtimeIdentityClaims.d.ts +19 -0
- package/dist/inspector/runtime/runtimeIdentityClaims.js +178 -0
- package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +6 -23
- package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +103 -52
- package/dist/inspector/runtime/useRuntimeConfig.d.ts +1 -8
- package/dist/inspector/runtime/useRuntimeConfig.js +1 -8
- package/dist/inspector/selection/editScope.d.ts +2 -7
- package/dist/inspector/selection/editScope.js +15 -14
- package/dist/inspector/selection/editTarget.d.ts +1 -5
- package/dist/inspector/selection/hierarchy.d.ts +11 -11
- package/dist/inspector/selection/hierarchy.js +42 -24
- package/dist/inspector/selection/selectionStore.d.ts +0 -3
- package/dist/inspector/selection/selectionStore.js +5 -16
- package/dist/inspector/selection/sourceSite.d.ts +1 -5
- package/dist/inspector/selection/sourceSite.js +2 -8
- package/dist/inspector/selection/styleSelection.d.ts +1 -5
- package/dist/inspector/selection/styleSelection.js +1 -5
- package/dist/inspector/session/lifecycle.d.ts +1 -9
- package/dist/inspector/session/lifecycle.js +0 -1
- package/dist/inspector/session/sessionContext.d.ts +0 -4
- package/dist/inspector/session/sessionContext.js +0 -4
- package/dist/inspector/session/sessionFactory.d.ts +0 -9
- package/dist/inspector/session/sessionFactory.js +0 -6
- package/dist/inspector/settings/SettingsDialog.d.ts +0 -1
- package/dist/inspector/settings/SettingsDialog.js +5 -3
- package/dist/inspector/shell/AgentStatusButton.d.ts +3 -2
- package/dist/inspector/shell/AgentStatusButton.js +7 -7
- package/dist/inspector/shell/AppShell.js +6 -2
- package/dist/inspector/shell/ChangesLog.js +29 -12
- package/dist/inspector/shell/CopyPromptButton.d.ts +2 -1
- package/dist/inspector/shell/CopyPromptButton.js +62 -55
- package/dist/inspector/shell/EmptyState.js +3 -3
- package/dist/inspector/shell/InspectorEditors.d.ts +16 -0
- package/dist/inspector/shell/InspectorEditors.js +14 -0
- package/dist/inspector/shell/InspectorPanel.d.ts +12 -0
- package/dist/inspector/shell/InspectorPanel.js +8 -0
- package/dist/inspector/shell/InspectorSelection.d.ts +24 -0
- package/dist/inspector/shell/InspectorSelection.js +20 -0
- package/dist/inspector/shell/InspectorShell.d.ts +0 -3
- package/dist/inspector/shell/InspectorShell.js +44 -58
- package/dist/inspector/shell/NudgeLogoIcon.d.ts +5 -0
- package/dist/inspector/shell/NudgeLogoIcon.js +5 -0
- package/dist/inspector/shell/PeekOriginalButton.d.ts +0 -5
- package/dist/inspector/shell/PeekOriginalButton.js +3 -8
- package/dist/inspector/shell/PeekOriginalIcon.d.ts +0 -5
- package/dist/inspector/shell/PeekOriginalIcon.js +0 -5
- package/dist/inspector/shell/PromptActionButton.d.ts +21 -0
- package/dist/inspector/shell/PromptActionButton.js +14 -0
- package/dist/inspector/shell/elementName.d.ts +5 -0
- package/dist/inspector/shell/elementName.js +29 -0
- package/dist/inspector/shell/interactionStatePreview.d.ts +6 -0
- package/dist/inspector/shell/interactionStatePreview.js +107 -0
- package/dist/inspector/shell/originalPreview.d.ts +1 -5
- package/dist/inspector/shell/originalPreview.js +5 -37
- package/dist/inspector/shell/stateValue.d.ts +1 -2
- package/dist/inspector/shell/stateValue.js +4 -8
- package/dist/inspector/shell/styleState.d.ts +1 -2
- package/dist/inspector/shell/styleState.js +1 -2
- package/dist/inspector/sketch/SketchEditor.js +5 -5
- package/dist/inspector/sketch/SketchFrameOverlay.d.ts +2 -1
- package/dist/inspector/sketch/SketchFrameOverlay.js +13 -16
- package/dist/inspector/sketch/SketchOverlay.d.ts +3 -5
- package/dist/inspector/sketch/SketchOverlay.js +138 -263
- package/dist/inspector/sketch/SketchPromptPanel.d.ts +1 -2
- package/dist/inspector/sketch/SketchPromptPanel.js +8 -2
- package/dist/inspector/sketch/SketchThumbnail.d.ts +5 -0
- package/dist/inspector/sketch/SketchThumbnail.js +18 -0
- package/dist/inspector/sketch/SketchWorkspace.d.ts +1 -2
- package/dist/inspector/sketch/SketchWorkspace.js +70 -37
- package/dist/inspector/sketch/capture.d.ts +12 -3
- package/dist/inspector/sketch/capture.js +31 -14
- package/dist/inspector/sketch/copySketch.d.ts +4 -0
- package/dist/inspector/sketch/copySketch.js +43 -0
- package/dist/inspector/sketch/drawingTools.d.ts +15 -0
- package/dist/inspector/sketch/drawingTools.js +46 -0
- package/dist/inspector/sketch/frameHeading.d.ts +3 -0
- package/dist/inspector/sketch/frameHeading.js +23 -0
- package/dist/inspector/sketch/freehand.d.ts +0 -1
- package/dist/inspector/sketch/freehand.js +3 -4
- package/dist/inspector/sketch/geometry.d.ts +2 -1
- package/dist/inspector/sketch/geometry.js +15 -1
- package/dist/inspector/sketch/handoff.js +0 -1
- package/dist/inspector/sketch/history.d.ts +26 -0
- package/dist/inspector/sketch/history.js +55 -0
- package/dist/inspector/sketch/interaction.d.ts +3 -5
- package/dist/inspector/sketch/interaction.js +8 -11
- package/dist/inspector/sketch/model.d.ts +33 -6
- package/dist/inspector/sketch/model.js +101 -63
- package/dist/inspector/sketch/persistence.d.ts +14 -1
- package/dist/inspector/sketch/persistence.js +64 -8
- package/dist/inspector/sketch/raster.d.ts +3 -2
- package/dist/inspector/sketch/raster.js +40 -20
- package/dist/inspector/sketch/store.d.ts +1 -1
- package/dist/inspector/sketch/store.js +3 -4
- package/dist/inspector/sketch/videoFrames.d.ts +6 -0
- package/dist/inspector/sketch/videoFrames.js +80 -0
- package/dist/inspector/spacing/projection.d.ts +0 -8
- package/dist/inspector/spacing/projection.js +38 -20
- package/dist/inspector/styleEditors/BackgroundEditor.js +3 -2
- package/dist/inspector/styleEditors/BorderEditor.js +30 -135
- package/dist/inspector/styleEditors/BorderRadiusEditor.js +8 -3
- package/dist/inspector/styleEditors/ChildPlacement.d.ts +12 -0
- package/dist/inspector/styleEditors/ChildPlacement.js +9 -0
- package/dist/inspector/styleEditors/FlexControls.d.ts +35 -0
- package/dist/inspector/styleEditors/FlexControls.js +158 -0
- package/dist/inspector/styleEditors/GapField.d.ts +5 -2
- package/dist/inspector/styleEditors/GapField.js +3 -4
- package/dist/inspector/styleEditors/GridChildSection.d.ts +0 -5
- package/dist/inspector/styleEditors/GridChildSection.js +0 -5
- package/dist/inspector/styleEditors/GridPicker.d.ts +1 -1
- package/dist/inspector/styleEditors/GridPicker.js +2 -4
- package/dist/inspector/styleEditors/GridSection.d.ts +10 -8
- package/dist/inspector/styleEditors/GridSection.js +22 -9
- package/dist/inspector/styleEditors/GridValueField.d.ts +1 -5
- package/dist/inspector/styleEditors/GridValueField.js +2 -8
- package/dist/inspector/styleEditors/ImageBackgroundEditor.d.ts +0 -1
- package/dist/inspector/styleEditors/ImageBackgroundEditor.js +1 -2
- package/dist/inspector/styleEditors/LayoutBlockedIndicator.d.ts +0 -1
- package/dist/inspector/styleEditors/LayoutBlockedIndicator.js +0 -1
- package/dist/inspector/styleEditors/LayoutComboField.js +0 -5
- package/dist/inspector/styleEditors/LayoutModeRow.d.ts +14 -0
- package/dist/inspector/styleEditors/LayoutModeRow.js +60 -0
- package/dist/inspector/styleEditors/LayoutSection.d.ts +2 -2
- package/dist/inspector/styleEditors/LayoutSection.js +30 -356
- package/dist/inspector/styleEditors/OpacityEditor.js +7 -5
- package/dist/inspector/styleEditors/PositionControls.d.ts +18 -0
- package/dist/inspector/styleEditors/PositionControls.js +16 -0
- package/dist/inspector/styleEditors/SizeSection.d.ts +18 -0
- package/dist/inspector/styleEditors/SizeSection.js +71 -0
- package/dist/inspector/styleEditors/{SpacingBox.d.ts → SpacingField.d.ts} +3 -10
- package/dist/inspector/styleEditors/{SpacingBox.js → SpacingField.js} +15 -29
- package/dist/inspector/styleEditors/Typography.js +2 -4
- package/dist/inspector/styleEditors/borderModel.d.ts +36 -0
- package/dist/inspector/styleEditors/borderModel.js +105 -0
- package/dist/inspector/styleEditors/completeCssValue.d.ts +1 -5
- package/dist/inspector/styleEditors/completeCssValue.js +3 -13
- package/dist/inspector/styleEditors/fieldValue.d.ts +20 -0
- package/dist/inspector/styleEditors/fieldValue.js +26 -0
- package/dist/inspector/styleEditors/gradientValue.d.ts +1 -1
- package/dist/inspector/styleEditors/gradientValue.js +3 -2
- package/dist/inspector/styleEditors/gridChildModel.d.ts +7 -47
- package/dist/inspector/styleEditors/gridChildModel.js +6 -37
- package/dist/inspector/styleEditors/hiddenSizeOverrides.d.ts +5 -0
- package/dist/inspector/styleEditors/hiddenSizeOverrides.js +42 -0
- package/dist/inspector/styleEditors/inlineAuthored.d.ts +1 -8
- package/dist/inspector/styleEditors/inlineAuthored.js +3 -17
- package/dist/inspector/styleEditors/layoutMode.d.ts +15 -0
- package/dist/inspector/styleEditors/layoutMode.js +33 -0
- package/dist/inspector/styleEditors/layoutPreviewState.d.ts +0 -1
- package/dist/inspector/styleEditors/layoutPreviewState.js +0 -1
- package/dist/inspector/styleEditors/layoutValue.d.ts +2 -8
- package/dist/inspector/styleEditors/layoutValue.js +6 -15
- package/dist/inspector/styleEditors/nudgeValue.d.ts +1 -13
- package/dist/inspector/styleEditors/nudgeValue.js +1 -13
- package/dist/inspector/styleEditors/rowLookup.d.ts +1 -5
- package/dist/inspector/styleEditors/rowLookup.js +1 -5
- package/dist/inspector/styleEditors/stringRecord.d.ts +1 -2
- package/dist/inspector/styleEditors/stylePresence.d.ts +0 -2
- package/dist/inspector/styleEditors/stylePresence.js +1 -4
- package/dist/inspector/styleEditors/textRelevance.d.ts +1 -1
- package/dist/inspector/styleEditors/textRelevance.js +1 -1
- package/dist/inspector/styleEditors/useFieldVisibility.js +1 -2
- package/dist/inspector/styleEditors/useLayoutContext.d.ts +13 -0
- package/dist/inspector/styleEditors/useLayoutContext.js +53 -0
- package/dist/inspector/styleEditors/valuePolicy.d.ts +1 -5
- package/dist/inspector/styleEditors/valuePolicy.js +0 -1
- package/dist/inspector/testing.d.ts +1 -4
- package/dist/inspector/testing.js +1 -4
- package/dist/inspector/tokens/TokenChip.d.ts +1 -4
- package/dist/inspector/tokens/TokenChip.js +1 -4
- package/dist/inspector/tokens/TokenField.d.ts +4 -3
- package/dist/inspector/tokens/TokenField.js +53 -32
- package/dist/inspector/tokens/TokensPanel.js +2 -1
- package/dist/inspector/tokens/catalog.d.ts +2 -10
- package/dist/inspector/tokens/catalog.js +5 -12
- package/dist/inspector/tokens/dragPointerLock.d.ts +0 -1
- package/dist/inspector/tokens/dragPointerLock.js +2 -3
- package/dist/inspector/tokens/editActions.d.ts +4 -4
- package/dist/inspector/tokens/editActions.js +11 -7
- package/dist/inspector/tokens/resolution/cascade.d.ts +1 -5
- package/dist/inspector/tokens/resolution/cascade.js +1 -5
- package/dist/inspector/tokens/resolution/containerQueryEvaluator.d.ts +11 -0
- package/dist/inspector/tokens/resolution/containerQueryEvaluator.js +82 -0
- package/dist/inspector/tokens/resolution/cssomCollector.d.ts +4 -19
- package/dist/inspector/tokens/resolution/cssomCollector.js +186 -122
- package/dist/inspector/tokens/resolution/nestedSelectors.d.ts +2 -0
- package/dist/inspector/tokens/resolution/nestedSelectors.js +63 -0
- package/dist/inspector/tokens/resolution/ruleMatching.d.ts +4 -14
- package/dist/inspector/tokens/resolution/ruleMatching.js +136 -63
- package/dist/inspector/tokens/resolution/selectorSemantics.d.ts +3 -14
- package/dist/inspector/tokens/resolution/selectorSemantics.js +12 -27
- package/dist/inspector/tokens/resolution.d.ts +11 -27
- package/dist/inspector/tokens/resolution.js +105 -181
- package/dist/inspector/tokens/tokenAvailability.d.ts +2 -14
- package/dist/inspector/tokens/tokenAvailability.js +6 -38
- package/dist/inspector/tokens/tokenEdits.d.ts +1 -1
- package/dist/inspector/tokens/tokenEdits.js +1 -1
- package/dist/inspector/tokens/valueSemanticsAdapter.d.ts +0 -1
- package/dist/inspector/tokens/valueSemanticsAdapter.js +18 -2
- package/dist/inspector/ui/AtRuleContext.d.ts +5 -5
- package/dist/inspector/ui/AtRuleContext.js +8 -6
- package/dist/inspector/ui/ControlSurface.d.ts +0 -4
- package/dist/inspector/ui/Disclosure.d.ts +0 -5
- package/dist/inspector/ui/Disclosure.js +0 -4
- package/dist/inspector/ui/InlineStyleWarning.d.ts +0 -1
- package/dist/inspector/ui/InlineStyleWarning.js +2 -2
- package/dist/inspector/ui/InspectorPopover.d.ts +1 -5
- package/dist/inspector/ui/InspectorPopover.js +1 -5
- package/dist/inspector/ui/InspectorStyle.d.ts +8 -0
- package/dist/inspector/ui/InspectorStyle.js +26 -0
- package/dist/inspector/ui/PopoverListbox.d.ts +2 -1
- package/dist/inspector/ui/PopoverListbox.js +3 -3
- package/dist/inspector/ui/SegmentedControl.d.ts +4 -4
- package/dist/inspector/ui/SegmentedControl.js +6 -4
- package/dist/inspector/ui/SideValuesField.d.ts +1 -6
- package/dist/inspector/ui/SideValuesField.js +2 -8
- package/dist/inspector/ui/Toast.d.ts +10 -0
- package/dist/inspector/ui/Toast.js +26 -0
- package/dist/inspector/ui/assets/canvasIllustration.d.ts +2 -0
- package/dist/inspector/ui/assets/canvasIllustration.js +21 -0
- package/dist/inspector/ui/assets/gridIllustration.d.ts +2 -0
- package/dist/inspector/ui/assets/{grid.svg → gridIllustration.js} +3 -2
- package/dist/inspector/ui/atRuleSegments.d.ts +13 -0
- package/dist/inspector/ui/atRuleSegments.js +34 -0
- package/dist/inspector/ui/classNames.d.ts +0 -1
- package/dist/inspector/ui/classNames.js +0 -1
- package/dist/inspector/ui/customCursors.d.ts +11 -0
- package/dist/inspector/ui/customCursors.js +29 -7
- package/dist/inspector/ui/styles.js +25 -25
- package/dist/inspector/workspace/commands.js +1 -2
- package/dist/inspector/workspace/controller.js +20 -2
- package/dist/inspector/workspace/handoff.d.ts +1 -5
- package/dist/inspector/workspace/handoff.js +4 -7
- package/dist/inspector/workspace/sentItems.d.ts +3 -6
- package/dist/inspector/workspace/sentItems.js +6 -24
- package/dist/inspector/workspace/timeline.d.ts +28 -11
- package/dist/inspector/workspace/timeline.js +117 -96
- package/dist/internal/agent-protocol.d.ts +53 -38
- package/dist/internal/agent-protocol.js +151 -42
- package/dist/nudge-ui.mjs +155 -92
- package/dist/project/artifacts.js +24 -21
- package/dist/project/files.d.ts +0 -1
- package/dist/project/files.js +2 -9
- package/dist/project/identity.d.ts +1 -5
- package/dist/project/identity.js +1 -5
- package/dist/project/mcpPackage.d.ts +3 -0
- package/dist/project/mcpPackage.js +55 -0
- package/dist/project/pathPolicy.d.ts +1 -6
- package/dist/project/pathPolicy.js +1 -6
- package/dist/project/tokens.d.ts +2 -12
- package/dist/project/tokens.js +4 -15
- package/dist/transport/editor.d.ts +1 -12
- package/dist/transport/editor.js +2 -13
- package/dist/transport/index.d.ts +0 -5
- package/dist/transport/index.js +0 -5
- package/dist/transport/routes.d.ts +0 -5
- package/dist/transport/routes.js +0 -5
- package/package.json +16 -5
- package/dist/inspector/canvas/measurementProjection.d.ts +0 -8
- package/dist/inspector/canvas/measurementProjection.js +0 -16
- package/dist/inspector/changes/changesLog.d.ts +0 -49
- package/dist/inspector/changes/changesLog.js +0 -255
- package/dist/inspector/changes/draftChanges.d.ts +0 -58
- package/dist/inspector/changes/draftChanges.js +0 -304
- package/dist/inspector/conformance/projection.d.ts +0 -2
- package/dist/inspector/conformance/projection.js +0 -3
- package/dist/inspector/inline-text/textChangeBoundary.d.ts +0 -6
- package/dist/inspector/inline-text/textChangeBoundary.js +0 -1
- package/dist/inspector/overlay/InspectorOverlay.d.ts +0 -5
- package/dist/inspector/overlay/InspectorOverlay.js +0 -332
- package/dist/inspector/overlay/elementSelector.d.ts +0 -1
- package/dist/inspector/overlay/elementSelector.js +0 -111
- package/dist/inspector/sketch/SketchChanges.d.ts +0 -2
- package/dist/inspector/sketch/SketchChanges.js +0 -72
- package/dist/inspector/sketch/SketchEntryButton.d.ts +0 -4
- package/dist/inspector/sketch/SketchEntryButton.js +0 -11
- package/dist/inspector/sketch/SketchLayersPanel.d.ts +0 -2
- package/dist/inspector/sketch/SketchLayersPanel.js +0 -71
- package/dist/inspector/styleEditors/InsetSection.d.ts +0 -15
- package/dist/inspector/styleEditors/InsetSection.js +0 -15
- package/dist/inspector/styleEditors/PositionInsets.d.ts +0 -15
- package/dist/inspector/styleEditors/PositionInsets.js +0 -12
- package/dist/inspector/tokens/TokenDropdown.d.ts +0 -13
- package/dist/inspector/tokens/TokenDropdown.js +0 -59
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { splitTopLevelWhitespace, topLevelSlashIndex } from "./cssSyntax.js";
|
|
1
|
+
import { isSingleVarReference, splitTopLevelWhitespace, topLevelSlashIndex } from "./cssSyntax.js";
|
|
2
2
|
import { parseBorderComponents } from "./borderSemantics.js";
|
|
3
3
|
import { parseFontShorthand } from "./fontSemantics.js";
|
|
4
4
|
import { normalizeOpacityPercent } from "./colorSemantics.js";
|
|
@@ -76,17 +76,12 @@ function fieldFor(property, declaredValue, sourceProperty, ctx) {
|
|
|
76
76
|
capability: classifyEditCapability(property, declaredValue),
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Expands authored raw values into per-position entries, deriving each
|
|
81
|
-
* component's token interpretation once. A bare `var()` whose resolved value
|
|
82
|
-
* is multiple lengths expands into multiple positions, preserving the token
|
|
83
|
-
* on every one.
|
|
84
|
-
*/
|
|
79
|
+
/** A multi-length `var()` expands into one position per length, each keeping the token. */
|
|
85
80
|
function expandPositionValues(rawValues, ctx) {
|
|
86
81
|
return rawValues.flatMap((rawValue) => {
|
|
87
82
|
const res = interpretTokenValue(rawValue, ctx.tokenContext);
|
|
88
83
|
const tokenValues = res.tokenName ? splitTopLevelWhitespace(res.resolvedValue) : [];
|
|
89
|
-
if (res.tokenName &&
|
|
84
|
+
if (res.tokenName && isSingleVarReference(rawValue) && tokenValues.length > 1) {
|
|
90
85
|
return tokenValues.map((resolvedValue) => ({
|
|
91
86
|
declaredValue: rawValue,
|
|
92
87
|
resolvedValue,
|
|
@@ -114,7 +109,7 @@ function expandBorder(lower, property, authored, ctx) {
|
|
|
114
109
|
const sourceProperty = lower;
|
|
115
110
|
const sidePrefix = sourceProperty === "border" ? "" : `${sourceProperty}-`;
|
|
116
111
|
// Interpret each distinct component once; every projected longhand reuses
|
|
117
|
-
// that component result
|
|
112
|
+
// that component result instead of re-resolving the same token.
|
|
118
113
|
const { widthResult, styleResult, colorResult } = components;
|
|
119
114
|
const scopedStructure = {
|
|
120
115
|
kind: "border",
|
|
@@ -197,13 +192,7 @@ function expandGap(property, axes, authored, ctx) {
|
|
|
197
192
|
return null;
|
|
198
193
|
return axes.map((longhand, index) => projectPositionField(longhand, property, axisValues[index]));
|
|
199
194
|
}
|
|
200
|
-
/**
|
|
201
|
-
* Interprets one authored value for a property into a structured projection
|
|
202
|
-
* tree. Returns the projected fields, or a single conservative raw/composite
|
|
203
|
-
* field when the value cannot be decomposed faithfully. The declared order of
|
|
204
|
-
* the families mirrors CSS projection precedence: logical sides, border, font,
|
|
205
|
-
* border-radius corners, gap, physical spacing, then the raw fallback.
|
|
206
|
-
*/
|
|
195
|
+
/** Values that cannot be decomposed faithfully collapse to one conservative raw/composite field; families are checked in CSS precedence order. */
|
|
207
196
|
export function interpretValue(property, authored, ctx) {
|
|
208
197
|
const lower = property.toLowerCase();
|
|
209
198
|
if (lower === "opacity")
|
|
@@ -246,5 +235,5 @@ export function interpretValue(property, authored, ctx) {
|
|
|
246
235
|
}
|
|
247
236
|
return [rawField(property, authored, ctx)];
|
|
248
237
|
}
|
|
249
|
-
/** @internal Use
|
|
238
|
+
/** @internal Use `interpretValue` in production. */
|
|
250
239
|
export const interpretStructuredValue = interpretValue;
|
|
@@ -1,27 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Token-reference, alias, and modifier interpretation (plan slice 3.2).
|
|
3
|
-
*
|
|
4
|
-
* This is the deep value-semantics Module for token attribution: it turns one
|
|
5
|
-
* CSSOM-authored value into the structured token facts an inspector needs —
|
|
6
|
-
* the primary field token, every referenced token with its origin, the leaf
|
|
7
|
-
* token behind chained aliases, explicit modifiers (fallbacks and alpha), and
|
|
8
|
-
* a `cycle` diagnostic when alias traversal loops.
|
|
9
|
-
*
|
|
10
|
-
* Interface invariants:
|
|
11
|
-
* - the Module never touches the DOM or CSSOM; the token table, local
|
|
12
|
-
* aliases, color/opacity reading, direct-literal attribution, and alias
|
|
13
|
-
* attribution are all explicit inputs (`TokenInterpretationContext`);
|
|
14
|
-
* - the primary token, all referenced tokens, and implementation aliases stay
|
|
15
|
-
* distinct;
|
|
16
|
-
* - alias cycles terminate and surface a `cycle` diagnostic;
|
|
17
|
-
* - arbitrary input does not throw through `interpretTokenValue`;
|
|
18
|
-
* - framework-specific policy — Tailwind `--tw-*` aliases, adapter-derived
|
|
19
|
-
* token origins, direct Tailwind v3 color attribution — is injected by the
|
|
20
|
-
* integration, never encoded here.
|
|
21
|
-
*/
|
|
22
1
|
import type { ColorOpacity, ColorValueFacts, TokenEntry, TokenOrigin, TokenReference, TokenTable, ValueModifier } from "../model/index.js";
|
|
23
2
|
export { extractVarCalls } from "./cssSyntax.js";
|
|
24
|
-
/** The structured token interpretation of one authored CSSOM value. */
|
|
25
3
|
export interface TokenValueInterpretation {
|
|
26
4
|
/** The primary field token, or null when no non-alpha token is primary. */
|
|
27
5
|
tokenName: string | null;
|
|
@@ -29,30 +7,22 @@ export interface TokenValueInterpretation {
|
|
|
29
7
|
resolvedValue: string;
|
|
30
8
|
/** Every referenced token (primary, fallback, opacity), deduped, with origin. */
|
|
31
9
|
tokens: TokenReference[];
|
|
32
|
-
/** Normalized opacity when the value carries an alpha component. */
|
|
33
10
|
opacity?: ColorOpacity;
|
|
34
|
-
/** Color-shape facts projected
|
|
11
|
+
/** Color-shape facts projected for the UI. */
|
|
35
12
|
color: ColorValueFacts;
|
|
36
|
-
/** Explicit fallback and alpha modifiers derived from the authored value. */
|
|
37
13
|
modifiers: ValueModifier[];
|
|
38
14
|
/** The token reached after traversing chained aliases from `tokenName`. */
|
|
39
15
|
leafTokenName: string | null;
|
|
40
|
-
/** The alias reference that repeated
|
|
16
|
+
/** The alias reference that repeated, when a cycle exists. */
|
|
41
17
|
cycle?: string;
|
|
42
18
|
}
|
|
43
|
-
/** The interpretation of a token's own value after alias traversal. */
|
|
44
19
|
export interface AliasInnerResult {
|
|
45
20
|
tokenName: string | null;
|
|
46
21
|
resolvedValue: string;
|
|
47
22
|
leafTokenName: string | null;
|
|
48
23
|
cycle?: string;
|
|
49
24
|
}
|
|
50
|
-
/**
|
|
51
|
-
* How a local alias reference is attributed after its value is resolved.
|
|
52
|
-
* The neutral default authors the alias name itself; the Tailwind `--tw-*`
|
|
53
|
-
* policy (attributing to the catalog token an implementation alias points at)
|
|
54
|
-
* is supplied by the integration.
|
|
55
|
-
*/
|
|
25
|
+
/** Attribution policy for a local alias reference; framework-specific behaviour is injected. */
|
|
56
26
|
export interface AliasAttribution {
|
|
57
27
|
known: boolean;
|
|
58
28
|
tokenName: string | null;
|
|
@@ -60,31 +30,19 @@ export interface AliasAttribution {
|
|
|
60
30
|
leafTokenName: string | null;
|
|
61
31
|
cycle?: string;
|
|
62
32
|
}
|
|
63
|
-
/** Facts the token interpretation needs that are not part of the authored text. */
|
|
64
33
|
export interface TokenInterpretationContext {
|
|
65
34
|
/** Resolved token table (custom-property name → entry). */
|
|
66
35
|
table: TokenTable;
|
|
67
36
|
/** Local aliases collected from the selected element's cascade. */
|
|
68
37
|
localAliases?: ReadonlyMap<string, string>;
|
|
69
|
-
/**
|
|
70
|
-
* Direct literal attribution: a token entry matched to the authored value
|
|
71
|
-
* before var() interpretation (integration policy, e.g. Tailwind v3 config
|
|
72
|
-
* tokens). Absent when no direct attribution applies.
|
|
73
|
-
*/
|
|
38
|
+
/** Direct literal attribution before var() interpretation (e.g. Tailwind v3 config tokens). */
|
|
74
39
|
resolveDirectToken?: (value: string) => TokenEntry | undefined;
|
|
75
|
-
/**
|
|
40
|
+
/** Defaults to `entry.origin ?? "project"`. */
|
|
76
41
|
resolveOrigin?: (entry: TokenEntry | undefined) => TokenOrigin;
|
|
77
|
-
/**
|
|
42
|
+
/** Default attributes the alias reference itself. */
|
|
78
43
|
resolveAlias?: (ref: string, inner: AliasInnerResult) => AliasAttribution;
|
|
79
44
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Neutral token-origin derivation. Adapter-name heuristics ("tailwind-v3"
|
|
82
|
-
* → "framework", "vanilla-extract" → "project") remain integration policy.
|
|
83
|
-
*/
|
|
45
|
+
/** Neutral derivation; adapter-name heuristics stay integration policy. */
|
|
84
46
|
export declare function defaultTokenOrigin(entry: TokenEntry | undefined): TokenOrigin;
|
|
85
|
-
/**
|
|
86
|
-
* Interprets the token references, aliases, and modifiers of one authored
|
|
87
|
-
* CSSOM value against explicit token knowledge. Returns the primary token,
|
|
88
|
-
* every referenced token, the leaf token, modifiers, and a cycle diagnostic.
|
|
89
|
-
*/
|
|
47
|
+
/** Interprets token references, aliases, and modifiers against explicit token knowledge. */
|
|
90
48
|
export declare function interpretTokenValue(value: string, ctx: TokenInterpretationContext): TokenValueInterpretation;
|
|
@@ -2,10 +2,7 @@ import { interpretColorValue, } from "./colorSemantics.js";
|
|
|
2
2
|
export { extractVarCalls } from "./cssSyntax.js";
|
|
3
3
|
import { extractVarCalls } from "./cssSyntax.js";
|
|
4
4
|
const EMPTY_LOCAL_ALIASES = new Map();
|
|
5
|
-
/**
|
|
6
|
-
* Neutral token-origin derivation. Adapter-name heuristics ("tailwind-v3"
|
|
7
|
-
* → "framework", "vanilla-extract" → "project") remain integration policy.
|
|
8
|
-
*/
|
|
5
|
+
/** Neutral derivation; adapter-name heuristics stay integration policy. */
|
|
9
6
|
export function defaultTokenOrigin(entry) {
|
|
10
7
|
if (!entry)
|
|
11
8
|
return "runtime";
|
|
@@ -59,11 +56,7 @@ function resolveTokenValueInner(value, table, visited, localAliases, ctx) {
|
|
|
59
56
|
}
|
|
60
57
|
return { tokenName: null, resolvedValue: trimmed, leafTokenName: null };
|
|
61
58
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Interprets the token references, aliases, and modifiers of one authored
|
|
64
|
-
* CSSOM value against explicit token knowledge. Returns the primary token,
|
|
65
|
-
* every referenced token, the leaf token, modifiers, and a cycle diagnostic.
|
|
66
|
-
*/
|
|
59
|
+
/** Interprets token references, aliases, and modifiers against explicit token knowledge. */
|
|
67
60
|
export function interpretTokenValue(value, ctx) {
|
|
68
61
|
const authored = value.trim();
|
|
69
62
|
const table = ctx.table;
|
|
@@ -122,11 +115,10 @@ export function interpretTokenValue(value, ctx) {
|
|
|
122
115
|
if (opacity)
|
|
123
116
|
modifiers.push({ kind: "alpha", value: opacity.value });
|
|
124
117
|
const inner = resolveTokenValueInner(authored, table, new Set(), localAliases, ctx);
|
|
125
|
-
// An alpha variable is still a token reference, but it is not the
|
|
126
|
-
// token
|
|
127
|
-
//
|
|
128
|
-
//
|
|
129
|
-
// UI can render a base color chip only when one actually exists.
|
|
118
|
+
// An alpha variable is still a token reference, but it is not the field's
|
|
119
|
+
// color token (`rgb(37 99 235 / var(--opacity-muted))` is literal color plus
|
|
120
|
+
// token-backed alpha). Keeping that distinction lets the UI render a base
|
|
121
|
+
// color chip only when one actually exists.
|
|
130
122
|
const alphaTokenName = opacity?.tokenName;
|
|
131
123
|
const baseKnown = firstKnown && firstKnown.tokenName !== alphaTokenName ? firstKnown : null;
|
|
132
124
|
const baseInner = inner.tokenName && inner.tokenName !== alphaTokenName ? inner : null;
|
|
@@ -149,13 +141,7 @@ export function interpretTokenValue(value, ctx) {
|
|
|
149
141
|
cycle: primary?.cycle,
|
|
150
142
|
};
|
|
151
143
|
}
|
|
152
|
-
/**
|
|
153
|
-
* Resolves a `var()` component of a color expression (for example an opacity
|
|
154
|
-
* token) through the same interpretation context as the authored value. This
|
|
155
|
-
* is what the color Module's `interpretColorOpacity` uses to attribute
|
|
156
|
-
* token-backed alpha components, keeping alias and framework attribution in
|
|
157
|
-
* the token interpretation.
|
|
158
|
-
*/
|
|
144
|
+
/** Resolves a `var()` component (e.g. an opacity token) through the same context as the authored value. */
|
|
159
145
|
function resolveComponentReference(value, ctx) {
|
|
160
146
|
const calls = extractVarCalls(value);
|
|
161
147
|
if (calls.length === 0)
|
|
@@ -7,6 +7,5 @@ interface AstroRuntimeKnowledge {
|
|
|
7
7
|
readonly tokenGeneration: string;
|
|
8
8
|
readonly componentContracts: NudgeUiRuntimeConfig["componentContracts"];
|
|
9
9
|
}
|
|
10
|
-
/** Builds the runtime knowledge shared by both Astro client transports. */
|
|
11
10
|
export declare function createAstroRuntimeConfig(knowledge: AstroRuntimeKnowledge): NudgeUiRuntimeConfig;
|
|
12
11
|
export {};
|
|
@@ -4,7 +4,6 @@ const ASTRO_SOURCE_COORDINATES = {
|
|
|
4
4
|
exactCidPrefixes: ["astro:"],
|
|
5
5
|
exactFileExtensions: [".astro", ".html", ".htm"],
|
|
6
6
|
};
|
|
7
|
-
/** Builds the runtime knowledge shared by both Astro client transports. */
|
|
8
7
|
export function createAstroRuntimeConfig(knowledge) {
|
|
9
8
|
return {
|
|
10
9
|
projectId: knowledge.projectId,
|
|
@@ -3,10 +3,6 @@ interface ClientAssetDependencies {
|
|
|
3
3
|
readonly resolveClientPath?: () => string;
|
|
4
4
|
readonly readClientFile?: (path: string) => Promise<Buffer>;
|
|
5
5
|
}
|
|
6
|
-
/**
|
|
7
|
-
* Creates the Astro handler for the shared, immutable inspector client.
|
|
8
|
-
* Resolution and reads remain lazy so disabled and production integrations do
|
|
9
|
-
* not depend on a development asset being present.
|
|
10
|
-
*/
|
|
6
|
+
/** Resolution and reads stay lazy so disabled and production integrations never need the development asset. */
|
|
11
7
|
export declare function createAstroClientAssetHandler(dependencies?: ClientAssetDependencies): (request: IncomingMessage, response: ServerResponse) => Promise<void>;
|
|
12
8
|
export {};
|
|
@@ -2,11 +2,7 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { readFile } from "node:fs/promises";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
const packageRequire = createRequire(import.meta.url);
|
|
5
|
-
/**
|
|
6
|
-
* Creates the Astro handler for the shared, immutable inspector client.
|
|
7
|
-
* Resolution and reads remain lazy so disabled and production integrations do
|
|
8
|
-
* not depend on a development asset being present.
|
|
9
|
-
*/
|
|
5
|
+
/** Resolution and reads stay lazy so disabled and production integrations never need the development asset. */
|
|
10
6
|
export function createAstroClientAssetHandler(dependencies = {}) {
|
|
11
7
|
const resolveClientPath = dependencies.resolveClientPath
|
|
12
8
|
?? (() => packageRequire.resolve("nudge-ui/internal/client"));
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { handleHtmlArtifactRequest } from "../../project/artifacts.js";
|
|
2
|
-
import {} from "../../inspector/clientManifest.js";
|
|
2
|
+
import { createNudgeUiClientManifest, } from "../../inspector/clientManifest.js";
|
|
3
3
|
import { createAstroRuntimeConfig } from "./astroRuntimeConfig.js";
|
|
4
4
|
import { createAstroClientAssetHandler } from "./clientAsset.js";
|
|
5
5
|
import { NUDGE_UI_CLIENT_PATH, NUDGE_UI_EDITOR_PATH, NUDGE_UI_MANIFEST_PATH, createNudgeUiEditorDocument, isNudgeUiEditorDocumentRequest, } from "../../transport/index.js";
|
|
6
6
|
import { startOptionalProjectBridge } from "../projectBridge.js";
|
|
7
7
|
import { automationManifestFields } from "../environment.js";
|
|
8
8
|
const serveClient = createAstroClientAssetHandler();
|
|
9
|
-
/** Serves the prebuilt client and its host-neutral manifest in Astro dev. */
|
|
10
9
|
export function createAstroClientTransportPlugin() {
|
|
11
10
|
let projectBridge = null;
|
|
12
11
|
return {
|
|
13
12
|
name: "nudge-ui-astro-client-transport",
|
|
14
|
-
//
|
|
15
|
-
// host-specific manifest must be installed first so that its middleware
|
|
16
|
-
// is the handler that answers /__nudge_ui__/manifest.
|
|
13
|
+
// Installed before the shared Vite plugin so Astro's own manifest handler answers /__nudge_ui__/manifest.
|
|
17
14
|
enforce: "pre",
|
|
18
15
|
apply: "serve",
|
|
19
16
|
configureServer(server) {
|
|
@@ -89,13 +86,11 @@ async function createManifest(server, request, setBridge) {
|
|
|
89
86
|
})
|
|
90
87
|
: null;
|
|
91
88
|
setBridge(bridge);
|
|
92
|
-
return {
|
|
93
|
-
version: 1,
|
|
94
|
-
revision: 0,
|
|
89
|
+
return createNudgeUiClientManifest({
|
|
95
90
|
runtime,
|
|
96
91
|
...(bridge ? { agentBridge: bridge.browser } : {}),
|
|
97
92
|
...automationManifestFields(),
|
|
98
|
-
};
|
|
93
|
+
});
|
|
99
94
|
}
|
|
100
95
|
function resolvedRequestOrigin(server, request) {
|
|
101
96
|
const host = request.headers.host;
|
|
@@ -1,35 +1,9 @@
|
|
|
1
1
|
import type { AstroIntegration, AstroUserConfig } from "astro";
|
|
2
2
|
import { type NudgeUiOptions } from "../vite/index.js";
|
|
3
3
|
export type { NudgeUiOptions };
|
|
4
|
-
/**
|
|
5
|
-
* Options for `nudgeUiAstro`. The token/component knowledge options are
|
|
6
|
-
* forwarded to the shared Vite plugin unchanged; Astro-specific concerns
|
|
7
|
-
* (gating, injection, instrumentation) stay internal.
|
|
8
|
-
*/
|
|
9
4
|
export interface NudgeUiAstroOptions extends NudgeUiOptions {
|
|
10
5
|
}
|
|
11
|
-
/**
|
|
12
|
-
* Nudge UI host Adapter for Astro dev servers (ADR-0011).
|
|
13
|
-
*
|
|
14
|
-
* Dev-only by contract (ADR-0002): unless `command === "dev"`,
|
|
15
|
-
* `enabled !== false`, and `NUDGE_UI` is not `0`, the integration registers nothing at all — no Vite
|
|
16
|
-
* plugins, no injected scripts, no middleware — so `astro build` output is
|
|
17
|
-
* byte-identical to a project without the integration.
|
|
18
|
-
*
|
|
19
|
-
* In dev it wires three pieces:
|
|
20
|
-
* 1. the shared `nudgeUi()` Vite plugin (token knowledge and island JSX
|
|
21
|
-
* identity transforms), the client transport, and project context;
|
|
22
|
-
* 2. one external client script, injected on every rendered page;
|
|
23
|
-
* 3. an `addMiddleware` response instrumentation that buffers rendered HTML
|
|
24
|
-
* responses and adds the response-level identity layer through the
|
|
25
|
-
* identity Module.
|
|
26
|
-
*/
|
|
6
|
+
/** Dev-only by contract: outside `command === "dev"` with Nudge UI enabled, nothing is registered, so `astro build` output is byte-identical to a project without the integration. */
|
|
27
7
|
export declare function nudgeUiAstro(options?: NudgeUiAstroOptions): AstroIntegration;
|
|
28
|
-
/**
|
|
29
|
-
* Adds Nudge UI to an Astro configuration without inspecting its shape.
|
|
30
|
-
*
|
|
31
|
-
* This wrapper is the stable installer seam. It works with shorthand,
|
|
32
|
-
* variable, spread, and computed integration lists because it treats the
|
|
33
|
-
* configuration as a value rather than rewriting `integrations`.
|
|
34
|
-
*/
|
|
8
|
+
/** Treats the configuration as a value, so shorthand, variable, spread and computed integration lists all work. */
|
|
35
9
|
export declare function withNudgeUi(config: AstroUserConfig, options?: NudgeUiAstroOptions): AstroUserConfig;
|
|
@@ -5,10 +5,7 @@ import { createAstroClientTransportPlugin, } from "./clientTransport.js";
|
|
|
5
5
|
import { createProjectContextPlugin } from "./projectContext.js";
|
|
6
6
|
import { isNudgeUiEnabled } from "../environment.js";
|
|
7
7
|
import { installMarkdownIdentity } from "./markdownIdentity.js";
|
|
8
|
-
/**
|
|
9
|
-
* Adds the prebuilt client as an external module. The inspector dependency
|
|
10
|
-
* graph therefore never enters Astro's Vite optimizer.
|
|
11
|
-
*/
|
|
8
|
+
/** Loads the prebuilt client as an external module so the inspector graph never enters Astro's Vite optimizer. */
|
|
12
9
|
const BOOTSTRAP_ENTRY_CONTENT = [
|
|
13
10
|
'if (!document.querySelector("script[data-nudge-ui-client]")) {',
|
|
14
11
|
' const script = document.createElement("script");',
|
|
@@ -19,26 +16,10 @@ const BOOTSTRAP_ENTRY_CONTENT = [
|
|
|
19
16
|
" document.head.append(script);",
|
|
20
17
|
"}",
|
|
21
18
|
].join("\n");
|
|
22
|
-
// Astro loads this URL directly from the installed package.
|
|
23
|
-
//
|
|
24
|
-
// published package, where `middleware.ts` is intentionally not shipped.
|
|
19
|
+
// Astro loads this URL directly from the installed package: the .ts sibling serves
|
|
20
|
+
// workspace dev, while the compiled .js sibling ships in the published package.
|
|
25
21
|
const MIDDLEWARE_ENTRYPOINT = new URL(import.meta.url.endsWith(".ts") ? "./middleware.ts" : "./middleware.js", import.meta.url);
|
|
26
|
-
/**
|
|
27
|
-
* Nudge UI host Adapter for Astro dev servers (ADR-0011).
|
|
28
|
-
*
|
|
29
|
-
* Dev-only by contract (ADR-0002): unless `command === "dev"`,
|
|
30
|
-
* `enabled !== false`, and `NUDGE_UI` is not `0`, the integration registers nothing at all — no Vite
|
|
31
|
-
* plugins, no injected scripts, no middleware — so `astro build` output is
|
|
32
|
-
* byte-identical to a project without the integration.
|
|
33
|
-
*
|
|
34
|
-
* In dev it wires three pieces:
|
|
35
|
-
* 1. the shared `nudgeUi()` Vite plugin (token knowledge and island JSX
|
|
36
|
-
* identity transforms), the client transport, and project context;
|
|
37
|
-
* 2. one external client script, injected on every rendered page;
|
|
38
|
-
* 3. an `addMiddleware` response instrumentation that buffers rendered HTML
|
|
39
|
-
* responses and adds the response-level identity layer through the
|
|
40
|
-
* identity Module.
|
|
41
|
-
*/
|
|
22
|
+
/** Dev-only by contract: outside `command === "dev"` with Nudge UI enabled, nothing is registered, so `astro build` output is byte-identical to a project without the integration. */
|
|
42
23
|
export function nudgeUiAstro(options = {}) {
|
|
43
24
|
const enabled = isNudgeUiEnabled(options.enabled);
|
|
44
25
|
const sharedOptions = { ...options };
|
|
@@ -49,10 +30,8 @@ export function nudgeUiAstro(options = {}) {
|
|
|
49
30
|
if (!enabled || command !== "dev")
|
|
50
31
|
return;
|
|
51
32
|
const markdown = installMarkdownIdentity(config.markdown, fileURLToPath(config.root));
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
// installed Astro resolves internally; the runtime contract
|
|
55
|
-
// (config/resolveId/load/transform hooks) is identical.
|
|
33
|
+
// Plain Vite plugin records; the monorepo typechecks them against a different Vite
|
|
34
|
+
// major than Astro resolves, but the runtime contract is identical.
|
|
56
35
|
updateConfig({
|
|
57
36
|
...(markdown ? { markdown } : {}),
|
|
58
37
|
vite: {
|
|
@@ -65,21 +44,13 @@ export function nudgeUiAstro(options = {}) {
|
|
|
65
44
|
],
|
|
66
45
|
},
|
|
67
46
|
});
|
|
68
|
-
// The page stage runs on every rendered page. It only appends an
|
|
69
|
-
// external script; no inspector dependency enters Vite's graph.
|
|
70
47
|
injectScript("page", BOOTSTRAP_ENTRY_CONTENT);
|
|
71
48
|
addMiddleware({ entrypoint: MIDDLEWARE_ENTRYPOINT, order: "pre" });
|
|
72
49
|
},
|
|
73
50
|
},
|
|
74
51
|
};
|
|
75
52
|
}
|
|
76
|
-
/**
|
|
77
|
-
* Adds Nudge UI to an Astro configuration without inspecting its shape.
|
|
78
|
-
*
|
|
79
|
-
* This wrapper is the stable installer seam. It works with shorthand,
|
|
80
|
-
* variable, spread, and computed integration lists because it treats the
|
|
81
|
-
* configuration as a value rather than rewriting `integrations`.
|
|
82
|
-
*/
|
|
53
|
+
/** Treats the configuration as a value, so shorthand, variable, spread and computed integration lists all work. */
|
|
83
54
|
export function withNudgeUi(config, options = {}) {
|
|
84
55
|
const integrations = config.integrations ?? [];
|
|
85
56
|
if (containsNudgeUiIntegration(integrations))
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import type { Element, Root } from "hast";
|
|
2
|
-
/** Adds authored Markdown positions through the remark/rehype pipeline. */
|
|
3
2
|
export declare function createMarkdownIdentityPlugin(projectRoot: string): () => (tree: Root, file: {
|
|
4
3
|
path?: string;
|
|
5
4
|
}) => void;
|
|
6
|
-
/** Adds the same identity through Astro's Sätteri visitor API. */
|
|
7
5
|
export declare function createSatteriIdentityPlugin(projectRoot: string): {
|
|
8
6
|
name: string;
|
|
9
7
|
options: {
|
|
@@ -17,7 +15,6 @@ export declare function createSatteriIdentityPlugin(projectRoot: string): {
|
|
|
17
15
|
}): void;
|
|
18
16
|
};
|
|
19
17
|
};
|
|
20
|
-
/** Extends supported processors without replacing the consumer's pipeline. */
|
|
21
18
|
export declare function installMarkdownIdentity(markdown: {
|
|
22
19
|
processor?: {
|
|
23
20
|
name: string;
|
|
@@ -21,7 +21,6 @@ function attributesFor(node, file, projectRoot) {
|
|
|
21
21
|
}
|
|
22
22
|
return attributes;
|
|
23
23
|
}
|
|
24
|
-
/** Adds authored Markdown positions through the remark/rehype pipeline. */
|
|
25
24
|
export function createMarkdownIdentityPlugin(projectRoot) {
|
|
26
25
|
return function nudgeMarkdownIdentity() {
|
|
27
26
|
return (tree, file) => {
|
|
@@ -41,7 +40,6 @@ export function createMarkdownIdentityPlugin(projectRoot) {
|
|
|
41
40
|
};
|
|
42
41
|
};
|
|
43
42
|
}
|
|
44
|
-
/** Adds the same identity through Astro's Sätteri visitor API. */
|
|
45
43
|
export function createSatteriIdentityPlugin(projectRoot) {
|
|
46
44
|
return {
|
|
47
45
|
name: "nudge-ui-markdown-identity",
|
|
@@ -61,7 +59,6 @@ export function createSatteriIdentityPlugin(projectRoot) {
|
|
|
61
59
|
},
|
|
62
60
|
};
|
|
63
61
|
}
|
|
64
|
-
/** Extends supported processors without replacing the consumer's pipeline. */
|
|
65
62
|
export function installMarkdownIdentity(markdown, projectRoot) {
|
|
66
63
|
const processor = markdown.processor;
|
|
67
64
|
if (!processor)
|
|
@@ -1,13 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dev-only response instrumentation middleware (ADR-0011).
|
|
3
|
-
*
|
|
4
|
-
* Registered through `addMiddleware({ order: "pre" })`, this runs inside
|
|
5
|
-
* Astro's own middleware chain — before user middleware, around page
|
|
6
|
-
* rendering. It buffers the rendered HTML response, adds the Nudge UI
|
|
7
|
-
* identity layer server-side (before any client script can strip Astro's
|
|
8
|
-
* annotations), and forwards every non-HTML response untouched.
|
|
9
|
-
*
|
|
10
|
-
* Identity diagnostics are logged rather than swallowed so degraded identity
|
|
11
|
-
* (for example a disabled dev toolbar) is observable in the dev server output.
|
|
12
|
-
*/
|
|
1
|
+
/** Runs at `order: "pre"` so identity lands before any client script can strip Astro's annotations. */
|
|
13
2
|
export declare const onRequest: (_context: unknown, next: () => Promise<Response>) => Promise<Response>;
|
|
@@ -1,17 +1,6 @@
|
|
|
1
1
|
import { projectRoot } from "virtual:nudge-ui-astro-context";
|
|
2
2
|
import { instrumentAstroResponse } from "./responseInstrumentation.js";
|
|
3
|
-
/**
|
|
4
|
-
* Dev-only response instrumentation middleware (ADR-0011).
|
|
5
|
-
*
|
|
6
|
-
* Registered through `addMiddleware({ order: "pre" })`, this runs inside
|
|
7
|
-
* Astro's own middleware chain — before user middleware, around page
|
|
8
|
-
* rendering. It buffers the rendered HTML response, adds the Nudge UI
|
|
9
|
-
* identity layer server-side (before any client script can strip Astro's
|
|
10
|
-
* annotations), and forwards every non-HTML response untouched.
|
|
11
|
-
*
|
|
12
|
-
* Identity diagnostics are logged rather than swallowed so degraded identity
|
|
13
|
-
* (for example a disabled dev toolbar) is observable in the dev server output.
|
|
14
|
-
*/
|
|
3
|
+
/** Runs at `order: "pre"` so identity lands before any client script can strip Astro's annotations. */
|
|
15
4
|
export const onRequest = async (_context, next) => {
|
|
16
5
|
const response = await next();
|
|
17
6
|
const result = await instrumentAstroResponse(response, projectRoot === "" ? undefined : projectRoot);
|
|
@@ -1,11 +1,3 @@
|
|
|
1
1
|
import type { Plugin } from "vite";
|
|
2
|
-
/**
|
|
3
|
-
* Supplies the dev-only server context (project root) to the instrumentation
|
|
4
|
-
* middleware through a virtual module.
|
|
5
|
-
*
|
|
6
|
-
* The middleware entrypoint is loaded by Astro's SSR pipeline, where no
|
|
7
|
-
* integration hook argument is available; the Vite-resolved project root is
|
|
8
|
-
* therefore published as a module value instead of being read from ambient
|
|
9
|
-
* process state.
|
|
10
|
-
*/
|
|
2
|
+
/** The middleware entrypoint has no integration hook argument, so the Vite-resolved root is published as a module value. */
|
|
11
3
|
export declare function createProjectContextPlugin(): Plugin;
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
const VIRTUAL_CONTEXT_ID = "virtual:nudge-ui-astro-context";
|
|
2
2
|
const RESOLVED_CONTEXT_ID = `\0${VIRTUAL_CONTEXT_ID}`;
|
|
3
|
-
/**
|
|
4
|
-
* Supplies the dev-only server context (project root) to the instrumentation
|
|
5
|
-
* middleware through a virtual module.
|
|
6
|
-
*
|
|
7
|
-
* The middleware entrypoint is loaded by Astro's SSR pipeline, where no
|
|
8
|
-
* integration hook argument is available; the Vite-resolved project root is
|
|
9
|
-
* therefore published as a module value instead of being read from ambient
|
|
10
|
-
* process state.
|
|
11
|
-
*/
|
|
3
|
+
/** The middleware entrypoint has no integration hook argument, so the Vite-resolved root is published as a module value. */
|
|
12
4
|
export function createProjectContextPlugin() {
|
|
13
5
|
let projectRoot;
|
|
14
6
|
return {
|
|
@@ -26,8 +18,7 @@ export function createProjectContextPlugin() {
|
|
|
26
18
|
load(id) {
|
|
27
19
|
if (id !== RESOLVED_CONTEXT_ID)
|
|
28
20
|
return null;
|
|
29
|
-
//
|
|
30
|
-
// unchanged instead of relativizing against the wrong base.
|
|
21
|
+
// Empty root degrades to undefined so annotation paths stay unchanged.
|
|
31
22
|
return `export const projectRoot = ${JSON.stringify(projectRoot ?? "")};\n`;
|
|
32
23
|
},
|
|
33
24
|
};
|
|
@@ -1,41 +1,12 @@
|
|
|
1
1
|
import { instrumentRenderedHtml, type HtmlIdentityDiagnostic } from "../../html/identity.js";
|
|
2
|
-
/**
|
|
3
|
-
* Classifies a response Content-Type header. Only `text/html` responses
|
|
4
|
-
* (with optional parameters such as charset) are eligible for identity
|
|
5
|
-
* instrumentation; everything else must pass through untouched.
|
|
6
|
-
*/
|
|
2
|
+
/** Only `text/html` (with optional parameters such as charset) is eligible; everything else passes through untouched. */
|
|
7
3
|
export declare function isHtmlContentType(contentType: string | undefined): boolean;
|
|
8
|
-
/** The instrumented response plus the identity diagnostics it produced. */
|
|
9
4
|
export interface InstrumentedAstroResponse {
|
|
10
|
-
/** A response safe to hand back to Astro. */
|
|
11
5
|
readonly response: Response;
|
|
12
|
-
/**
|
|
6
|
+
/** Empty for untouched responses. */
|
|
13
7
|
readonly diagnostics: readonly HtmlIdentityDiagnostic[];
|
|
14
8
|
}
|
|
15
|
-
/**
|
|
16
|
-
* The identity transform applied to an eligible HTML body. Injectable so the
|
|
17
|
-
* failure-tolerance suite can drive the catch branch through a real seam
|
|
18
|
-
* instead of replacing the identity module wholesale.
|
|
19
|
-
*/
|
|
9
|
+
/** Injectable so failure handling can be driven through a real seam rather than by replacing the identity module. */
|
|
20
10
|
export type AstroHtmlInstrumenter = typeof instrumentRenderedHtml;
|
|
21
|
-
/**
|
|
22
|
-
* Instruments one rendered dev response at the Astro middleware seam
|
|
23
|
-
* (ADR-0011).
|
|
24
|
-
*
|
|
25
|
-
* HTML bodies are materialized once, transformed through the identity Module,
|
|
26
|
-
* and re-emitted as a new `Response` whose headers carry a corrected
|
|
27
|
-
* `Content-Length`; every other response is returned by reference with its
|
|
28
|
-
* stream untouched. If the body read or instrumentation throws, the original
|
|
29
|
-
* response forwards so identity extraction can never break a dev page load —
|
|
30
|
-
* a failed read returns the original response by reference (its stream is the
|
|
31
|
-
* only remaining representation), while a failed transform returns a fresh
|
|
32
|
-
* `Response` over the already-materialized body. Diagnostics always
|
|
33
|
-
* accompany the result so callers can surface degraded identity.
|
|
34
|
-
*
|
|
35
|
-
* @param response The response produced downstream (the rendered page).
|
|
36
|
-
* @param projectRoot Project root used to relativize annotation paths.
|
|
37
|
-
* @param instrument Identity transform to apply; defaults to the real
|
|
38
|
-
* `instrumentRenderedHtml`. Tests inject a failing implementation to exercise
|
|
39
|
-
* the catch branch.
|
|
40
|
-
*/
|
|
11
|
+
/** HTML bodies are materialized once to re-emit with a corrected Content-Length; every other response is returned by reference, stream untouched. */
|
|
41
12
|
export declare function instrumentAstroResponse(response: Response, projectRoot: string | undefined, instrument?: AstroHtmlInstrumenter): Promise<InstrumentedAstroResponse>;
|