nudge-ui 0.2.5 → 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 +0 -1
- package/dist/client.mjs +238 -122
- 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 +13 -64
- package/dist/hosts/projectBridge.d.ts +0 -2
- package/dist/hosts/projectBridge.js +0 -2
- 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 +1 -6
- package/dist/inspector/agent/activity.d.ts +1 -1
- package/dist/inspector/agent/activity.js +1 -1
- package/dist/inspector/agent/client.d.ts +2 -26
- package/dist/inspector/agent/client.js +17 -64
- package/dist/inspector/agent/connectionStatus.d.ts +0 -1
- package/dist/inspector/agent/connectionStatus.js +0 -1
- package/dist/inspector/agent/httpTransport.d.ts +0 -8
- package/dist/inspector/agent/httpTransport.js +21 -39
- package/dist/inspector/agent/protocol.d.ts +1 -10
- package/dist/inspector/agent/protocol.js +1 -9
- package/dist/inspector/agent/verification.d.ts +2 -19
- package/dist/inspector/agent/verification.js +7 -43
- package/dist/inspector/boot.d.ts +3 -1
- package/dist/inspector/boot.js +12 -20
- package/dist/inspector/canvas/AgentActivityOverlay.d.ts +1 -1
- package/dist/inspector/canvas/AgentActivityOverlay.js +1 -1
- package/dist/inspector/canvas/CanvasCard.js +7 -14
- package/dist/inspector/canvas/CanvasElementOverlay.js +117 -50
- package/dist/inspector/canvas/CanvasWorkspace.js +15 -29
- package/dist/inspector/canvas/PageCard.d.ts +0 -1
- package/dist/inspector/canvas/PageCard.js +0 -1
- package/dist/inspector/canvas/SketchToolOptions.d.ts +0 -1
- package/dist/inspector/canvas/SketchToolOptions.js +0 -6
- package/dist/inspector/canvas/ToolOptionsDrawer.d.ts +1 -6
- package/dist/inspector/canvas/ToolOptionsDrawer.js +2 -8
- package/dist/inspector/canvas/activeCanvasDocument.d.ts +0 -2
- 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/canvasFrame.d.ts +2 -6
- package/dist/inspector/canvas/canvasFrame.js +1 -2
- package/dist/inspector/canvas/canvasResize.d.ts +1 -6
- package/dist/inspector/canvas/canvasResize.js +1 -6
- package/dist/inspector/canvas/canvasStore.d.ts +4 -12
- package/dist/inspector/canvas/canvasStore.js +12 -26
- package/dist/inspector/canvas/frameConnection.d.ts +1 -7
- 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 +5 -40
- package/dist/inspector/canvas/frameProtocol.js +1 -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 +1 -6
- package/dist/inspector/canvas/pageSurface.js +1 -6
- package/dist/inspector/canvas/projection.d.ts +4 -25
- package/dist/inspector/canvas/projection.js +22 -72
- package/dist/inspector/canvas/rendererBootstrap.d.ts +8 -1
- package/dist/inspector/canvas/rendererBootstrap.js +6 -14
- package/dist/inspector/canvas/rendererCidIndex.d.ts +0 -5
- package/dist/inspector/canvas/rendererCidIndex.js +0 -5
- package/dist/inspector/canvas/rendererElementSelector.js +29 -27
- package/dist/inspector/canvas/rendererMessageRouter.d.ts +0 -1
- package/dist/inspector/canvas/rendererMessageRouter.js +0 -1
- package/dist/inspector/canvas/rendererSelectionProxy.d.ts +1 -5
- package/dist/inspector/canvas/rendererSelectionProxy.js +2 -7
- package/dist/inspector/canvas/rendererStylesheet.d.ts +0 -1
- package/dist/inspector/canvas/rendererStylesheet.js +9 -2
- package/dist/inspector/canvas/resizeHandleScale.d.ts +1 -10
- package/dist/inspector/canvas/resizeHandleScale.js +1 -10
- package/dist/inspector/canvas/sessionStore.d.ts +1 -7
- package/dist/inspector/canvas/sessionStore.js +21 -34
- package/dist/inspector/canvas/staleChangeDetector.js +1 -4
- 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.js +2 -1
- package/dist/inspector/changes/draftPreview.d.ts +1 -6
- package/dist/inspector/changes/draftPreview.js +15 -30
- package/dist/inspector/changes/editModel.d.ts +3 -13
- package/dist/inspector/changes/editModel.js +1 -2
- package/dist/inspector/changes/managedStyleProjection.js +4 -14
- 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 +4 -20
- 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 +3 -10
- package/dist/inspector/clientManifest.d.ts +17 -6
- package/dist/inspector/clientManifest.js +16 -3
- package/dist/inspector/comments/CommentsOverlay.js +48 -7
- 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 +1 -1
- package/dist/inspector/comments/verification.d.ts +8 -2
- package/dist/inspector/comments/verification.js +18 -10
- package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +8 -0
- package/dist/inspector/componentSemantics/ComponentPropsSection.js +10 -7
- package/dist/inspector/componentSemantics/adapterRegistry.d.ts +2 -9
- package/dist/inspector/componentSemantics/adapterRegistry.js +2 -9
- 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 +1 -9
- package/dist/inspector/componentSemantics/textBinding.js +16 -42
- 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 +7 -21
- package/dist/inspector/drafts/draftStore.js +15 -5
- package/dist/inspector/drafts/model.d.ts +7 -15
- package/dist/inspector/drafts/model.js +0 -2
- package/dist/inspector/drafts/store.d.ts +1 -8
- package/dist/inspector/drafts/store.js +3 -10
- package/dist/inspector/editScope.d.ts +0 -1
- package/dist/inspector/editScope.js +0 -1
- 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 +2 -8
- package/dist/inspector/inline-text/inlineTextEditor.js +26 -79
- package/dist/inspector/inline-text/inlineTextLifecycle.js +1 -6
- package/dist/inspector/inline-text/textEditChange.d.ts +0 -1
- package/dist/inspector/inspection/bridge.d.ts +2 -6
- package/dist/inspector/inspection/bridge.js +4 -12
- package/dist/inspector/inspection/browserCssInspection.d.ts +4 -11
- package/dist/inspector/inspection/browserCssInspection.js +4 -8
- package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +0 -7
- package/dist/inspector/inspection/browserCssInspectionRegistry.js +1 -16
- 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 +5 -21
- package/dist/inspector/iterations/capture.d.ts +0 -1
- package/dist/inspector/iterations/capture.js +4 -9
- package/dist/inspector/iterations/client.d.ts +0 -1
- package/dist/inspector/iterations/client.js +0 -1
- package/dist/inspector/iterations/coordinator.d.ts +0 -1
- package/dist/inspector/iterations/coordinator.js +0 -1
- package/dist/inspector/iterations/prompt.d.ts +0 -1
- package/dist/inspector/iterations/prompt.js +0 -1
- 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 +2 -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 +4 -13
- package/dist/inspector/pageInspector.js +25 -32
- package/dist/inspector/projection/cssEscapes.d.ts +0 -1
- package/dist/inspector/projection/cssEscapes.js +2 -4
- package/dist/inspector/projection/draftProjection.d.ts +2 -14
- package/dist/inspector/projection/draftProjection.js +1 -8
- package/dist/inspector/projection/managedStylesheet.d.ts +1 -7
- package/dist/inspector/projection/managedStylesheet.js +4 -22
- package/dist/inspector/projection/renderedInstance.d.ts +5 -28
- package/dist/inspector/projection/renderedInstance.js +6 -32
- package/dist/inspector/projection/structuralProjection.d.ts +7 -39
- package/dist/inspector/projection/structuralProjection.js +17 -52
- package/dist/inspector/projection/textProjection.d.ts +2 -14
- package/dist/inspector/projection/textProjection.js +17 -70
- 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 -9
- package/dist/inspector/prompt/clipboardHandoff.js +1 -9
- package/dist/inspector/prompt/generatePrompt.d.ts +1 -1
- package/dist/inspector/prompt/generatePrompt.js +10 -25
- package/dist/inspector/prompt/promptSettings.d.ts +0 -3
- package/dist/inspector/prompt/promptSettings.js +0 -3
- 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 +1 -7
- package/dist/inspector/runtime/inspectorStorage.js +1 -6
- package/dist/inspector/runtime/ownedStylesheets.d.ts +2 -8
- package/dist/inspector/runtime/ownedStylesheets.js +2 -8
- package/dist/inspector/runtime/runtimeConfig.d.ts +12 -86
- package/dist/inspector/runtime/runtimeConfig.js +9 -50
- package/dist/inspector/runtime/runtimeIdentityClaims.d.ts +3 -13
- package/dist/inspector/runtime/runtimeIdentityClaims.js +9 -19
- package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +4 -36
- package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +7 -40
- package/dist/inspector/runtime/useRuntimeConfig.d.ts +1 -8
- package/dist/inspector/runtime/useRuntimeConfig.js +1 -8
- package/dist/inspector/selection/editScope.d.ts +1 -7
- package/dist/inspector/selection/editScope.js +2 -12
- 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 +5 -5
- package/dist/inspector/shell/ChangesLog.js +3 -4
- package/dist/inspector/shell/CopyPromptButton.d.ts +2 -1
- package/dist/inspector/shell/CopyPromptButton.js +12 -11
- 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.js +26 -48
- 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 +0 -5
- 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 +1 -4
- package/dist/inspector/shell/interactionStatePreview.js +3 -8
- package/dist/inspector/shell/originalPreview.d.ts +1 -6
- package/dist/inspector/shell/originalPreview.js +1 -6
- package/dist/inspector/shell/stateValue.d.ts +1 -2
- package/dist/inspector/shell/stateValue.js +2 -5
- package/dist/inspector/shell/styleState.d.ts +1 -2
- package/dist/inspector/shell/styleState.js +1 -2
- package/dist/inspector/sketch/SketchEditor.js +0 -1
- package/dist/inspector/sketch/SketchFrameOverlay.js +8 -12
- package/dist/inspector/sketch/SketchOverlay.js +5 -6
- package/dist/inspector/sketch/SketchPromptPanel.d.ts +0 -1
- package/dist/inspector/sketch/SketchPromptPanel.js +0 -1
- package/dist/inspector/sketch/SketchWorkspace.js +2 -4
- package/dist/inspector/sketch/capture.d.ts +12 -3
- package/dist/inspector/sketch/capture.js +12 -11
- package/dist/inspector/sketch/copySketch.d.ts +1 -7
- package/dist/inspector/sketch/copySketch.js +2 -11
- package/dist/inspector/sketch/drawingTools.d.ts +1 -3
- package/dist/inspector/sketch/drawingTools.js +1 -2
- package/dist/inspector/sketch/frameHeading.d.ts +1 -7
- package/dist/inspector/sketch/frameHeading.js +1 -8
- package/dist/inspector/sketch/freehand.d.ts +0 -1
- package/dist/inspector/sketch/freehand.js +0 -1
- package/dist/inspector/sketch/geometry.d.ts +1 -6
- package/dist/inspector/sketch/geometry.js +1 -6
- package/dist/inspector/sketch/handoff.js +0 -1
- package/dist/inspector/sketch/history.d.ts +1 -5
- package/dist/inspector/sketch/history.js +1 -4
- package/dist/inspector/sketch/interaction.d.ts +2 -2
- package/dist/inspector/sketch/interaction.js +2 -2
- package/dist/inspector/sketch/model.d.ts +2 -9
- package/dist/inspector/sketch/model.js +2 -19
- package/dist/inspector/sketch/persistence.d.ts +0 -1
- package/dist/inspector/sketch/persistence.js +2 -2
- package/dist/inspector/sketch/raster.d.ts +1 -4
- package/dist/inspector/sketch/raster.js +2 -8
- package/dist/inspector/sketch/store.js +2 -3
- package/dist/inspector/sketch/videoFrames.js +2 -3
- package/dist/inspector/spacing/projection.d.ts +0 -8
- package/dist/inspector/spacing/projection.js +38 -20
- package/dist/inspector/styleEditors/BackgroundEditor.js +1 -1
- package/dist/inspector/styleEditors/BorderEditor.js +1 -6
- 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 +0 -1
- 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 +1 -7
- package/dist/inspector/styleEditors/borderModel.js +2 -11
- 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 +4 -12
- 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 +19 -29
- 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 +1 -1
- package/dist/inspector/tokens/editActions.js +2 -4
- 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 +1 -5
- package/dist/inspector/tokens/resolution/containerQueryEvaluator.js +1 -5
- package/dist/inspector/tokens/resolution/cssomCollector.d.ts +4 -19
- package/dist/inspector/tokens/resolution/cssomCollector.js +151 -122
- package/dist/inspector/tokens/resolution/nestedSelectors.d.ts +1 -5
- package/dist/inspector/tokens/resolution/nestedSelectors.js +1 -5
- package/dist/inspector/tokens/resolution/ruleMatching.d.ts +4 -14
- package/dist/inspector/tokens/resolution/ruleMatching.js +121 -67
- 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 +5 -24
- package/dist/inspector/tokens/resolution.js +16 -71
- package/dist/inspector/tokens/tokenAvailability.d.ts +2 -14
- package/dist/inspector/tokens/tokenAvailability.js +6 -38
- 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/InspectorPopover.d.ts +1 -5
- package/dist/inspector/ui/InspectorPopover.js +1 -5
- 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 +0 -4
- package/dist/inspector/ui/Toast.js +0 -4
- 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 +7 -1
- package/dist/inspector/ui/customCursors.js +2 -6
- package/dist/inspector/ui/styles.js +18 -20
- package/dist/inspector/workspace/controller.js +20 -1
- package/dist/inspector/workspace/handoff.d.ts +1 -5
- package/dist/inspector/workspace/handoff.js +1 -5
- package/dist/inspector/workspace/timeline.d.ts +5 -2
- package/dist/inspector/workspace/timeline.js +0 -1
- package/dist/internal/agent-protocol.d.ts +20 -42
- package/dist/internal/agent-protocol.js +18 -35
- package/dist/nudge-ui.mjs +75 -28
- 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 +1 -6
- package/dist/project/mcpPackage.js +2 -7
- 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 +5 -4
- 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,136 +1,62 @@
|
|
|
1
1
|
import type { TokenCatalogDiagnostic, TokenDefinition, TokenEntry } from "../../css/model/index.js";
|
|
2
2
|
import type { ComponentContract } from "../componentSemantics/types.js";
|
|
3
|
-
/** The host Adapter that supplied the active inspector runtime. */
|
|
4
3
|
export type NudgeUiRuntimeHost = "vite-react" | "static-html" | "nextjs-react" | "astro";
|
|
5
|
-
/** The framework semantics enabled for the active inspector runtime. */
|
|
6
4
|
export type NudgeUiRuntimeFramework = "React" | "HTML" | "Astro";
|
|
7
|
-
/**
|
|
8
|
-
* Which identity origins carry exact authored coordinates in prompts
|
|
9
|
-
* (ADR-0011 Stage 5).
|
|
10
|
-
*
|
|
11
|
-
* A host whose pipeline captures `data-src` positions from anything other
|
|
12
|
-
* than the authored source declares the exact subset. Hosts that omit the
|
|
13
|
-
* policy state that every source site is exact.
|
|
14
|
-
*/
|
|
15
5
|
export interface SourceCoordinatePolicy {
|
|
16
6
|
/** Cid prefixes whose `data-src` line:column point at authored source. */
|
|
17
7
|
readonly exactCidPrefixes: readonly string[];
|
|
18
8
|
/** File extensions whose `data-src` line:column point at authored source. */
|
|
19
9
|
readonly exactFileExtensions: readonly string[];
|
|
20
10
|
}
|
|
21
|
-
/** Capabilities exposed by the active host Adapter. */
|
|
22
11
|
export interface NudgeUiRuntimeCapabilities {
|
|
23
|
-
/** Whether the multi-page Canvas workspace is available. */
|
|
24
12
|
readonly canvas: boolean;
|
|
25
|
-
/** Whether framework component inspection and prop overrides are available. */
|
|
26
13
|
readonly componentSemantics: boolean;
|
|
27
|
-
/** Whether the DOM navigator overlay is available. */
|
|
28
14
|
readonly domNavigation?: boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Source-coordinate precision policy for prompts; every source site is
|
|
31
|
-
* exact when the host omits it.
|
|
32
|
-
*/
|
|
15
|
+
/** Precision policy for prompt source coordinates; every source site is exact when omitted. */
|
|
33
16
|
readonly sourceCoordinates?: SourceCoordinatePolicy;
|
|
34
|
-
/**
|
|
35
|
-
* Regex source matching this host's structural scoping markers, stripped
|
|
36
|
-
* from human-facing selector labels (ADR-0011). The raw selector stays in
|
|
37
|
-
* change records so managed-rule targeting keeps matching the rendered
|
|
38
|
-
* DOM. No stripping when the host omits it.
|
|
39
|
-
*/
|
|
17
|
+
/** Regex for this host's scoping markers; stripped from selector labels, kept in change records. Omitted means no stripping. */
|
|
40
18
|
readonly scopingSelectorPattern?: string;
|
|
41
19
|
}
|
|
42
|
-
/** Product features that a host can selectively expose in its inspector UI. */
|
|
43
20
|
export interface NudgeUiRuntimeFeatures {
|
|
44
|
-
/** Whether the annotation sketch tool is available in the Canvas UI. */
|
|
45
21
|
readonly sketch?: boolean;
|
|
46
|
-
/** Whether Canvas can create filesystem-backed HTML iterations. */
|
|
47
22
|
readonly canvasIterations?: boolean;
|
|
23
|
+
/** The MCP settings section; hosts that cannot reach an MCP server turn it off. */
|
|
24
|
+
readonly mcp?: boolean;
|
|
48
25
|
}
|
|
49
|
-
/**
|
|
50
|
-
* Browser knowledge supplied by a host Adapter before the inspector mounts.
|
|
51
|
-
*
|
|
52
|
-
* A host replaces the complete configuration when its document is replaced or
|
|
53
|
-
* its development transport is refreshed. Shared inspector Modules read the
|
|
54
|
-
* current snapshot through `getNudgeUiRuntimeConfig()` and never import a
|
|
55
|
-
* host-specific transport directly.
|
|
56
|
-
*/
|
|
57
26
|
export interface NudgeUiRuntimeConfig {
|
|
58
27
|
readonly projectId: string;
|
|
59
28
|
readonly host: NudgeUiRuntimeHost;
|
|
60
29
|
readonly framework: NudgeUiRuntimeFramework;
|
|
61
30
|
readonly stylingSystem: string;
|
|
62
31
|
readonly capabilities: NudgeUiRuntimeCapabilities;
|
|
63
|
-
/**
|
|
32
|
+
/** Omitted features remain enabled. */
|
|
64
33
|
readonly features?: NudgeUiRuntimeFeatures;
|
|
65
34
|
readonly tokenCatalog: readonly TokenDefinition[];
|
|
66
35
|
readonly tokens: readonly TokenEntry[];
|
|
67
36
|
readonly tokenDiagnostics: readonly TokenCatalogDiagnostic[];
|
|
68
37
|
readonly tokenGeneration: string;
|
|
69
38
|
readonly componentContracts: readonly ComponentContract[];
|
|
70
|
-
/**
|
|
39
|
+
/** Replaces the selection empty state when the page cannot be inspected. */
|
|
71
40
|
readonly inspectionUnavailableReason?: string;
|
|
72
|
-
/** Whether this runtime is the explicit public landing-page demo. */
|
|
73
41
|
readonly demo?: boolean;
|
|
74
|
-
/** Additional same-origin pages seeded into the
|
|
42
|
+
/** Additional same-origin pages seeded into the demo canvas. */
|
|
75
43
|
readonly demoPages?: readonly string[];
|
|
76
|
-
/**
|
|
44
|
+
/** In display order, including the primary card. */
|
|
77
45
|
readonly demoCardLabels?: readonly string[];
|
|
78
46
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Validates a host-supplied configuration and fills safe defaults.
|
|
81
|
-
*
|
|
82
|
-
* `projectId`, `host`, and `framework` are required identity fields; wrong
|
|
83
|
-
* types or values fail fast at the host seam instead of leaking `undefined`
|
|
84
|
-
* into storage keys or capability checks. Token arrays, the styling-system
|
|
85
|
-
* label, generation string, and capabilities are optional and default to
|
|
86
|
-
* empty/false values so a minimal host still bootstraps honestly.
|
|
87
|
-
*
|
|
88
|
-
* @param input The configuration supplied by a host Adapter.
|
|
89
|
-
* @returns A complete plain-data configuration ready to snapshot.
|
|
90
|
-
*/
|
|
47
|
+
/** Throws TypeError on invalid input; optional fields receive safe defaults. */
|
|
91
48
|
export declare function normalizeNudgeUiRuntimeConfig(input: unknown): NudgeUiRuntimeConfig;
|
|
92
|
-
/**
|
|
93
|
-
* Replaces the complete runtime configuration for the active document.
|
|
94
|
-
*
|
|
95
|
-
* The input is validated and incomplete optional fields receive safe defaults
|
|
96
|
-
* (see `normalizeNudgeUiRuntimeConfig`). Replacement is atomic from the
|
|
97
|
-
* inspector's perspective. The returned snapshot owns recursively cloned and
|
|
98
|
-
* frozen plain data, so a host can safely replace its virtual module values
|
|
99
|
-
* during HMR without leaving shared Modules bound to an old transport object
|
|
100
|
-
* or freezing caller-owned values.
|
|
101
|
-
*/
|
|
102
49
|
export declare function configureNudgeUiRuntime(config: NudgeUiRuntimeConfig): void;
|
|
103
|
-
/** Returns the immutable runtime snapshot used by shared inspector Modules. */
|
|
104
50
|
export declare function getNudgeUiRuntimeConfig(): NudgeUiRuntimeConfig;
|
|
105
|
-
/** Returns whether a product feature is enabled; omitted flags default to enabled. */
|
|
106
51
|
export declare function isNudgeUiFeatureEnabled(features: NudgeUiRuntimeFeatures | undefined, feature: keyof NudgeUiRuntimeFeatures): boolean;
|
|
107
|
-
/**
|
|
108
|
-
* Whether this document runs the explicit public landing demo (ADR-0014 and
|
|
109
|
-
* ADR-0016). The plugin emits `demo: true` for the flagged demo route and for
|
|
110
|
-
* the explicit landing root in development and `nudge-demo` builds, so this is
|
|
111
|
-
* the precise runtime boundary of the demo — narrower than any build-mode
|
|
112
|
-
* name.
|
|
113
|
-
*/
|
|
52
|
+
/** The demo boundary is this flag, never a build-mode name. */
|
|
114
53
|
export declare function isDemoRuntime(): boolean;
|
|
115
|
-
/**
|
|
116
|
-
* Returns the active host's source-coordinate policy, or null when the host
|
|
117
|
-
* declares none — every source site is exact in that case.
|
|
118
|
-
*/
|
|
119
54
|
export declare function getSourceCoordinatePolicy(): SourceCoordinatePolicy | null;
|
|
120
|
-
/**
|
|
121
|
-
* Returns the active host's structural scoping-marker pattern compiled for
|
|
122
|
-
* global replacement, or null when the host declares none. An invalid regex
|
|
123
|
-
* source degrades to no stripping rather than breaking labeling.
|
|
124
|
-
*/
|
|
55
|
+
/** Null when the host declares none; an invalid pattern degrades to no stripping. */
|
|
125
56
|
export declare function getScopingSelectorPattern(): RegExp | null;
|
|
126
|
-
/**
|
|
127
|
-
* Subscribes to complete runtime replacements, such as Vite HMR updates.
|
|
128
|
-
* Listeners run after the new snapshot is installed.
|
|
129
|
-
*/
|
|
57
|
+
/** Listeners run after the new snapshot is installed. */
|
|
130
58
|
export declare function subscribeNudgeUiRuntime(listener: () => void): () => void;
|
|
131
|
-
/** Returns the styling-system label represented by a token inventory. */
|
|
132
59
|
export declare function detectStylingSystem(tokens: readonly TokenEntry[]): string;
|
|
133
|
-
/** Returns a mutable container for UI controls that require array props. */
|
|
134
60
|
export declare function getNudgeUiTokenEntries(): TokenEntry[];
|
|
135
61
|
export type { TokenCatalogDiagnostic, TokenDefinition, TokenEntry } from "../../css/model/index.js";
|
|
136
62
|
export type { ComponentContract } from "../componentSemantics/types.js";
|
|
@@ -5,9 +5,8 @@ function cloneAndFreeze(value, seen = new WeakMap()) {
|
|
|
5
5
|
const existing = seen.get(source);
|
|
6
6
|
if (existing)
|
|
7
7
|
return existing;
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
// spread patterns) keeps array identity stable for identity-keyed caches.
|
|
8
|
+
// Frozen subtrees are reused by reference so repeated configuration with the
|
|
9
|
+
// same frozen payload keeps array identity for identity-keyed caches.
|
|
11
10
|
if (Object.isFrozen(value)) {
|
|
12
11
|
seen.set(source, value);
|
|
13
12
|
return value;
|
|
@@ -159,11 +158,13 @@ function normalizeFeatures(input) {
|
|
|
159
158
|
}
|
|
160
159
|
const sketch = optionalFeatureBoolean(input, "sketch");
|
|
161
160
|
const canvasIterations = optionalFeatureBoolean(input, "canvasIterations");
|
|
162
|
-
|
|
161
|
+
const mcp = optionalFeatureBoolean(input, "mcp");
|
|
162
|
+
if (sketch === undefined && canvasIterations === undefined && mcp === undefined)
|
|
163
163
|
return {};
|
|
164
164
|
return {
|
|
165
165
|
...(sketch === undefined ? {} : { sketch }),
|
|
166
166
|
...(canvasIterations === undefined ? {} : { canvasIterations }),
|
|
167
|
+
...(mcp === undefined ? {} : { mcp }),
|
|
167
168
|
};
|
|
168
169
|
}
|
|
169
170
|
function optionalDemoFlag(input) {
|
|
@@ -175,18 +176,7 @@ function optionalDemoFlag(input) {
|
|
|
175
176
|
}
|
|
176
177
|
return true;
|
|
177
178
|
}
|
|
178
|
-
/**
|
|
179
|
-
* Validates a host-supplied configuration and fills safe defaults.
|
|
180
|
-
*
|
|
181
|
-
* `projectId`, `host`, and `framework` are required identity fields; wrong
|
|
182
|
-
* types or values fail fast at the host seam instead of leaking `undefined`
|
|
183
|
-
* into storage keys or capability checks. Token arrays, the styling-system
|
|
184
|
-
* label, generation string, and capabilities are optional and default to
|
|
185
|
-
* empty/false values so a minimal host still bootstraps honestly.
|
|
186
|
-
*
|
|
187
|
-
* @param input The configuration supplied by a host Adapter.
|
|
188
|
-
* @returns A complete plain-data configuration ready to snapshot.
|
|
189
|
-
*/
|
|
179
|
+
/** Throws TypeError on invalid input; optional fields receive safe defaults. */
|
|
190
180
|
export function normalizeNudgeUiRuntimeConfig(input) {
|
|
191
181
|
if (!isPlainRecord(input)) {
|
|
192
182
|
throw new TypeError("Nudge UI runtime configuration must be an object.");
|
|
@@ -221,16 +211,6 @@ export function normalizeNudgeUiRuntimeConfig(input) {
|
|
|
221
211
|
}
|
|
222
212
|
let activeRuntimeConfig = DEFAULT_RUNTIME_CONFIG;
|
|
223
213
|
const runtimeListeners = new Set();
|
|
224
|
-
/**
|
|
225
|
-
* Replaces the complete runtime configuration for the active document.
|
|
226
|
-
*
|
|
227
|
-
* The input is validated and incomplete optional fields receive safe defaults
|
|
228
|
-
* (see `normalizeNudgeUiRuntimeConfig`). Replacement is atomic from the
|
|
229
|
-
* inspector's perspective. The returned snapshot owns recursively cloned and
|
|
230
|
-
* frozen plain data, so a host can safely replace its virtual module values
|
|
231
|
-
* during HMR without leaving shared Modules bound to an old transport object
|
|
232
|
-
* or freezing caller-owned values.
|
|
233
|
-
*/
|
|
234
214
|
export function configureNudgeUiRuntime(config) {
|
|
235
215
|
activeRuntimeConfig = normalizeNudgeUiRuntimeConfig(config);
|
|
236
216
|
for (const listener of runtimeListeners) {
|
|
@@ -242,37 +222,21 @@ export function configureNudgeUiRuntime(config) {
|
|
|
242
222
|
}
|
|
243
223
|
}
|
|
244
224
|
}
|
|
245
|
-
/** Returns the immutable runtime snapshot used by shared inspector Modules. */
|
|
246
225
|
export function getNudgeUiRuntimeConfig() {
|
|
247
226
|
return activeRuntimeConfig;
|
|
248
227
|
}
|
|
249
|
-
/** Returns whether a product feature is enabled; omitted flags default to enabled. */
|
|
250
228
|
export function isNudgeUiFeatureEnabled(features, feature) {
|
|
251
229
|
return features?.[feature] !== false;
|
|
252
230
|
}
|
|
253
|
-
/**
|
|
254
|
-
* Whether this document runs the explicit public landing demo (ADR-0014 and
|
|
255
|
-
* ADR-0016). The plugin emits `demo: true` for the flagged demo route and for
|
|
256
|
-
* the explicit landing root in development and `nudge-demo` builds, so this is
|
|
257
|
-
* the precise runtime boundary of the demo — narrower than any build-mode
|
|
258
|
-
* name.
|
|
259
|
-
*/
|
|
231
|
+
/** The demo boundary is this flag, never a build-mode name. */
|
|
260
232
|
export function isDemoRuntime() {
|
|
261
233
|
return getNudgeUiRuntimeConfig().demo === true;
|
|
262
234
|
}
|
|
263
|
-
/**
|
|
264
|
-
* Returns the active host's source-coordinate policy, or null when the host
|
|
265
|
-
* declares none — every source site is exact in that case.
|
|
266
|
-
*/
|
|
267
235
|
export function getSourceCoordinatePolicy() {
|
|
268
236
|
return activeRuntimeConfig.capabilities.sourceCoordinates ?? null;
|
|
269
237
|
}
|
|
270
238
|
let compiledScopingPattern = null;
|
|
271
|
-
/**
|
|
272
|
-
* Returns the active host's structural scoping-marker pattern compiled for
|
|
273
|
-
* global replacement, or null when the host declares none. An invalid regex
|
|
274
|
-
* source degrades to no stripping rather than breaking labeling.
|
|
275
|
-
*/
|
|
239
|
+
/** Null when the host declares none; an invalid pattern degrades to no stripping. */
|
|
276
240
|
export function getScopingSelectorPattern() {
|
|
277
241
|
const source = activeRuntimeConfig.capabilities.scopingSelectorPattern;
|
|
278
242
|
if (source === undefined)
|
|
@@ -287,15 +251,11 @@ export function getScopingSelectorPattern() {
|
|
|
287
251
|
}
|
|
288
252
|
return compiledScopingPattern.pattern;
|
|
289
253
|
}
|
|
290
|
-
/**
|
|
291
|
-
* Subscribes to complete runtime replacements, such as Vite HMR updates.
|
|
292
|
-
* Listeners run after the new snapshot is installed.
|
|
293
|
-
*/
|
|
254
|
+
/** Listeners run after the new snapshot is installed. */
|
|
294
255
|
export function subscribeNudgeUiRuntime(listener) {
|
|
295
256
|
runtimeListeners.add(listener);
|
|
296
257
|
return () => runtimeListeners.delete(listener);
|
|
297
258
|
}
|
|
298
|
-
/** Returns the styling-system label represented by a token inventory. */
|
|
299
259
|
export function detectStylingSystem(tokens) {
|
|
300
260
|
for (const token of tokens) {
|
|
301
261
|
if (token.adapter === "vanilla-extract")
|
|
@@ -307,7 +267,6 @@ export function detectStylingSystem(tokens) {
|
|
|
307
267
|
}
|
|
308
268
|
return "CSS custom properties";
|
|
309
269
|
}
|
|
310
|
-
/** Returns a mutable container for UI controls that require array props. */
|
|
311
270
|
export function getNudgeUiTokenEntries() {
|
|
312
271
|
return [...activeRuntimeConfig.tokens];
|
|
313
272
|
}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import type { DraftContents } from "../drafts/model.js";
|
|
2
|
-
/**
|
|
3
|
-
* A generated identity that a saved edit refers to, plus the rendered facts
|
|
4
|
-
* captured with it. Generated identities are document-local: after a reload
|
|
5
|
-
* no element carries them until the claim is re-attached to the one element
|
|
6
|
-
* whose rendered facts still match.
|
|
7
|
-
*/
|
|
2
|
+
/** Document-local identity that survives a reload only by re-attaching to the element whose rendered facts match. */
|
|
8
3
|
export interface RuntimeIdentityClaim {
|
|
9
4
|
readonly cid: string;
|
|
10
5
|
readonly src: string | null;
|
|
@@ -15,15 +10,10 @@ export interface RuntimeIdentityClaim {
|
|
|
15
10
|
readonly domPath: string | null;
|
|
16
11
|
readonly elementId: string | null;
|
|
17
12
|
}
|
|
18
|
-
/** Collects one claim per generated identity referenced by saved edits. */
|
|
19
13
|
export declare function collectRuntimeIdentityClaims({ changes, structuralChanges }: DraftContents): RuntimeIdentityClaim[];
|
|
20
|
-
/**
|
|
21
|
-
* Replaces the generated identities saved edits refer to in one document and
|
|
22
|
-
* attaches each to its element, now and whenever the document's elements are
|
|
23
|
-
* replaced. Unmatched claims stay pending; their edits simply do not apply.
|
|
24
|
-
*/
|
|
14
|
+
/** Unmatched claims stay pending; their edits simply do not apply. */
|
|
25
15
|
export declare function applyRuntimeIdentityClaims(doc: Document, claims: readonly RuntimeIdentityClaim[]): void;
|
|
26
|
-
/** Stops reattachment for a
|
|
16
|
+
/** Stops reattachment for a document session, including queued work. */
|
|
27
17
|
export declare function disposeRuntimeIdentityClaims(doc: Document): void;
|
|
28
18
|
/** Runtime validation for claims received from another window. */
|
|
29
19
|
export declare function isRuntimeIdentityClaim(value: unknown): value is RuntimeIdentityClaim;
|
|
@@ -20,11 +20,10 @@ function claimFromEvidence(cid, src, evidence) {
|
|
|
20
20
|
elementId: evidence.elementId ?? null,
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
-
/** Collects one claim per generated identity referenced by saved edits. */
|
|
24
23
|
export function collectRuntimeIdentityClaims({ changes, structuralChanges }) {
|
|
25
24
|
const claims = new Map();
|
|
26
|
-
// The page still renders the text from before an inline text edit, so a
|
|
27
|
-
//
|
|
25
|
+
// The page still renders the text from before an inline text edit, so a text
|
|
26
|
+
// edit's original text wins over evidence captured after the preview.
|
|
28
27
|
const originalText = new Map();
|
|
29
28
|
for (const change of changes) {
|
|
30
29
|
if (change.kind === "text-content") {
|
|
@@ -79,11 +78,7 @@ function hasStructuralMatch(element, claim) {
|
|
|
79
78
|
&& boundRuntimeEvidence(element.getAttribute("data-cprops")) === claim.props
|
|
80
79
|
&& (claim.domPath === null || runtimeDomPath(element) === claim.domPath);
|
|
81
80
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Finds the single element a claim describes, or null when none or several
|
|
84
|
-
* match. Elements holding authored identity, or another claim's identity,
|
|
85
|
-
* are never taken. Conflicting text evidence leaves the claim unattached.
|
|
86
|
-
*/
|
|
81
|
+
/** Never takes an element that holds authored identity or another claim's identity. */
|
|
87
82
|
function findClaimedElement(doc, claim, claimed) {
|
|
88
83
|
if (!claim.tagName)
|
|
89
84
|
return null;
|
|
@@ -131,9 +126,8 @@ function observe(doc, state) {
|
|
|
131
126
|
const Observer = doc.defaultView?.MutationObserver;
|
|
132
127
|
if (!Observer || !doc.documentElement)
|
|
133
128
|
return;
|
|
134
|
-
//
|
|
135
|
-
// changes
|
|
136
|
-
// element that lacks the identity, so it cannot feed itself.
|
|
129
|
+
// Attaching only writes to an element that lacks the identity, so hydration and route
|
|
130
|
+
// changes cannot feed the observer its own writes.
|
|
137
131
|
state.observer = new Observer(() => {
|
|
138
132
|
if (state.queued)
|
|
139
133
|
return;
|
|
@@ -147,11 +141,7 @@ function observe(doc, state) {
|
|
|
147
141
|
});
|
|
148
142
|
state.observer.observe(doc.documentElement, { childList: true, subtree: true });
|
|
149
143
|
}
|
|
150
|
-
/**
|
|
151
|
-
* Replaces the generated identities saved edits refer to in one document and
|
|
152
|
-
* attaches each to its element, now and whenever the document's elements are
|
|
153
|
-
* replaced. Unmatched claims stay pending; their edits simply do not apply.
|
|
154
|
-
*/
|
|
144
|
+
/** Unmatched claims stay pending; their edits simply do not apply. */
|
|
155
145
|
export function applyRuntimeIdentityClaims(doc, claims) {
|
|
156
146
|
if (claims.length === 0) {
|
|
157
147
|
disposeRuntimeIdentityClaims(doc);
|
|
@@ -166,7 +156,7 @@ export function applyRuntimeIdentityClaims(doc, claims) {
|
|
|
166
156
|
attachClaims(doc, state);
|
|
167
157
|
observe(doc, state);
|
|
168
158
|
}
|
|
169
|
-
/** Stops reattachment for a
|
|
159
|
+
/** Stops reattachment for a document session, including queued work. */
|
|
170
160
|
export function disposeRuntimeIdentityClaims(doc) {
|
|
171
161
|
states.get(doc)?.observer?.disconnect();
|
|
172
162
|
states.delete(doc);
|
|
@@ -177,8 +167,8 @@ export function isRuntimeIdentityClaim(value) {
|
|
|
177
167
|
return false;
|
|
178
168
|
const claim = value;
|
|
179
169
|
const nullableString = (field) => field === null || typeof field === "string";
|
|
180
|
-
return isGeneratedCid(claim.cid)
|
|
181
|
-
&& (claim.src === null || isRuntimeGeneratedSource(claim.src))
|
|
170
|
+
return typeof claim.cid === "string" && isGeneratedCid(claim.cid)
|
|
171
|
+
&& (claim.src === null || (typeof claim.src === "string" && isRuntimeGeneratedSource(claim.src)))
|
|
182
172
|
&& typeof claim.tagName === "string"
|
|
183
173
|
&& nullableString(claim.text)
|
|
184
174
|
&& nullableString(claim.props)
|
|
@@ -1,47 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Source identity reserved for elements created by a static HTML page after
|
|
3
|
-
* the server's source-preserving pass has completed.
|
|
4
|
-
*
|
|
5
|
-
* The value intentionally does not match `file:line:column`. It is a
|
|
6
|
-
* document-local selector identity, not a claim about source location.
|
|
7
|
-
*/
|
|
1
|
+
/** Document-local identity for runtime-created elements; intentionally not a file:line:column source claim. */
|
|
8
2
|
export declare const RUNTIME_UNKNOWN_SOURCE_PREFIX = "nudge-ui:unknown:";
|
|
9
3
|
export declare const RUNTIME_ELEMENT_CID_PREFIX = "nudge-ui-runtime-";
|
|
10
|
-
/** Maximum length retained for any runtime DOM evidence field. */
|
|
11
4
|
export declare const RUNTIME_EVIDENCE_MAX_LENGTH = 120;
|
|
12
|
-
/** Bounds an untrusted runtime evidence string without changing its content. */
|
|
13
5
|
export declare function boundRuntimeEvidence(value: string | null): string | null;
|
|
14
|
-
/**
|
|
15
|
-
* Describes an element by its nearest ancestors so a prompt without source
|
|
16
|
-
* locations still carries searchable class names, ids, and test ids.
|
|
17
|
-
*/
|
|
6
|
+
/** Ancestor description so a prompt without source locations still carries searchable ids, classes, and test ids. */
|
|
18
7
|
export declare function runtimeDomPath(element: Element): string | null;
|
|
19
|
-
/** Normalizes rendered text before it becomes durable runtime evidence. */
|
|
20
8
|
export declare function normalizeRuntimeText(value: string | null): string | null;
|
|
21
|
-
/** Keeps a runtime tag suitable for the prompt's inline element notation. */
|
|
22
9
|
export declare function normalizeRuntimeTag(value: string): string;
|
|
23
|
-
/** Returns true for the source values generated for runtime DOM. */
|
|
24
10
|
export declare function isRuntimeGeneratedSource(src: string | null | undefined): boolean;
|
|
25
|
-
/** Returns whether this document-local element received generated identity. */
|
|
26
11
|
export declare function isRuntimeCreatedElement(element: Element | null | undefined): boolean;
|
|
27
|
-
/**
|
|
28
|
-
* Installs document-local identity for eligible elements that a static HTML
|
|
29
|
-
* application creates at runtime.
|
|
30
|
-
*
|
|
31
|
-
* The server owns source locations for the initial response. This Adapter
|
|
32
|
-
* only fills missing attributes, observes added subtrees, and leaves the
|
|
33
|
-
* author document untouched on disk. The returned function disconnects the
|
|
34
|
-
* observer; generated attributes remain available to managed CSS until the
|
|
35
|
-
* page is replaced.
|
|
36
|
-
*/
|
|
12
|
+
/** Fills only missing identity attributes and observes added subtrees; the returned function disconnects the observer. */
|
|
37
13
|
export declare function installStaticHtmlRuntimeIdentity(doc?: Document): () => void;
|
|
38
|
-
/**
|
|
39
|
-
* Assigns runtime identity only to elements the pointer reaches: the target,
|
|
40
|
-
* its ancestors, two levels of descendants for the DOM navigator, and its
|
|
41
|
-
* siblings, which structural moves capture as anchors.
|
|
42
|
-
*
|
|
43
|
-
* Unlike `installStaticHtmlRuntimeIdentity`, nothing observes DOM mutations,
|
|
44
|
-
* so a busy application pays no cost for subtrees nobody inspects. Install it
|
|
45
|
-
* before the inspector so its capture listeners run first.
|
|
46
|
-
*/
|
|
14
|
+
/** Install before the inspector so its capture listeners run first. */
|
|
47
15
|
export declare function installLazyRuntimeIdentity(doc?: Document): () => void;
|
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Source identity reserved for elements created by a static HTML page after
|
|
3
|
-
* the server's source-preserving pass has completed.
|
|
4
|
-
*
|
|
5
|
-
* The value intentionally does not match `file:line:column`. It is a
|
|
6
|
-
* document-local selector identity, not a claim about source location.
|
|
7
|
-
*/
|
|
1
|
+
/** Document-local identity for runtime-created elements; intentionally not a file:line:column source claim. */
|
|
8
2
|
export const RUNTIME_UNKNOWN_SOURCE_PREFIX = "nudge-ui:unknown:";
|
|
9
3
|
export const RUNTIME_ELEMENT_CID_PREFIX = "nudge-ui-runtime-";
|
|
10
|
-
/** Maximum length retained for any runtime DOM evidence field. */
|
|
11
4
|
export const RUNTIME_EVIDENCE_MAX_LENGTH = 120;
|
|
12
|
-
/** Bounds an untrusted runtime evidence string without changing its content. */
|
|
13
5
|
export function boundRuntimeEvidence(value) {
|
|
14
6
|
return value === null ? null : value.slice(0, RUNTIME_EVIDENCE_MAX_LENGTH);
|
|
15
7
|
}
|
|
@@ -29,10 +21,7 @@ function domPathSegment(element) {
|
|
|
29
21
|
segment += `.${classes.join(".")}`;
|
|
30
22
|
return segment;
|
|
31
23
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Describes an element by its nearest ancestors so a prompt without source
|
|
34
|
-
* locations still carries searchable class names, ids, and test ids.
|
|
35
|
-
*/
|
|
24
|
+
/** Ancestor description so a prompt without source locations still carries searchable ids, classes, and test ids. */
|
|
36
25
|
export function runtimeDomPath(element) {
|
|
37
26
|
const segments = [];
|
|
38
27
|
let current = element;
|
|
@@ -47,14 +36,12 @@ export function runtimeDomPath(element) {
|
|
|
47
36
|
const path = segments.join(" > ");
|
|
48
37
|
return path.length > DOM_PATH_MAX_LENGTH ? `…${path.slice(-DOM_PATH_MAX_LENGTH)}` : path;
|
|
49
38
|
}
|
|
50
|
-
/** Normalizes rendered text before it becomes durable runtime evidence. */
|
|
51
39
|
export function normalizeRuntimeText(value) {
|
|
52
40
|
if (value === null)
|
|
53
41
|
return null;
|
|
54
42
|
const normalized = value.replace(/\s+/g, " ").trim();
|
|
55
43
|
return normalized ? boundRuntimeEvidence(normalized) : null;
|
|
56
44
|
}
|
|
57
|
-
/** Keeps a runtime tag suitable for the prompt's inline element notation. */
|
|
58
45
|
export function normalizeRuntimeTag(value) {
|
|
59
46
|
return boundRuntimeEvidence(value.trim().toLowerCase().replace(/[^a-z0-9-]+/g, "")) ?? "";
|
|
60
47
|
}
|
|
@@ -67,11 +54,9 @@ const EXCLUDED_SUBTREE_TAGS = new Set([
|
|
|
67
54
|
"NOSCRIPT",
|
|
68
55
|
]);
|
|
69
56
|
const runtimeCreatedElements = new WeakSet();
|
|
70
|
-
/** Returns true for the source values generated for runtime DOM. */
|
|
71
57
|
export function isRuntimeGeneratedSource(src) {
|
|
72
58
|
return typeof src === "string" && src.startsWith(RUNTIME_UNKNOWN_SOURCE_PREFIX);
|
|
73
59
|
}
|
|
74
|
-
/** Returns whether this document-local element received generated identity. */
|
|
75
60
|
export function isRuntimeCreatedElement(element) {
|
|
76
61
|
return element !== null && element !== undefined && runtimeCreatedElements.has(element);
|
|
77
62
|
}
|
|
@@ -100,16 +85,7 @@ function existingAttributeValues(doc, name) {
|
|
|
100
85
|
.map((element) => element.getAttribute(name))
|
|
101
86
|
.filter((value) => value !== null));
|
|
102
87
|
}
|
|
103
|
-
/**
|
|
104
|
-
* Installs document-local identity for eligible elements that a static HTML
|
|
105
|
-
* application creates at runtime.
|
|
106
|
-
*
|
|
107
|
-
* The server owns source locations for the initial response. This Adapter
|
|
108
|
-
* only fills missing attributes, observes added subtrees, and leaves the
|
|
109
|
-
* author document untouched on disk. The returned function disconnects the
|
|
110
|
-
* observer; generated attributes remain available to managed CSS until the
|
|
111
|
-
* page is replaced.
|
|
112
|
-
*/
|
|
88
|
+
/** Fills only missing identity attributes and observes added subtrees; the returned function disconnects the observer. */
|
|
113
89
|
export function installStaticHtmlRuntimeIdentity(doc = document) {
|
|
114
90
|
const ensureIdentity = createIdentityAllocator(doc);
|
|
115
91
|
let disposed = false;
|
|
@@ -155,20 +131,11 @@ export function installStaticHtmlRuntimeIdentity(doc = document) {
|
|
|
155
131
|
}
|
|
156
132
|
const LAZY_IDENTITY_EVENTS = ["pointerover", "pointerdown", "mousedown", "click", "dblclick"];
|
|
157
133
|
const LAZY_DESCENDANT_DEPTH = 2;
|
|
158
|
-
/**
|
|
159
|
-
* Assigns runtime identity only to elements the pointer reaches: the target,
|
|
160
|
-
* its ancestors, two levels of descendants for the DOM navigator, and its
|
|
161
|
-
* siblings, which structural moves capture as anchors.
|
|
162
|
-
*
|
|
163
|
-
* Unlike `installStaticHtmlRuntimeIdentity`, nothing observes DOM mutations,
|
|
164
|
-
* so a busy application pays no cost for subtrees nobody inspects. Install it
|
|
165
|
-
* before the inspector so its capture listeners run first.
|
|
166
|
-
*/
|
|
134
|
+
/** Install before the inspector so its capture listeners run first. */
|
|
167
135
|
export function installLazyRuntimeIdentity(doc = document) {
|
|
168
|
-
// Pointer order differs between page loads, so sequential numbers
|
|
169
|
-
//
|
|
170
|
-
//
|
|
171
|
-
// ones; `runtimeIdentityClaims` re-attaches the saved ones by evidence.
|
|
136
|
+
// Pointer order differs between page loads, so sequential numbers could hand a saved
|
|
137
|
+
// edit's identity to a different element; a per-install scope keeps fresh identities
|
|
138
|
+
// distinct from saved ones, which `runtimeIdentityClaims` re-attaches by evidence.
|
|
172
139
|
const ensureIdentity = createIdentityAllocator(doc, `${Math.random().toString(36).slice(2, 8)}-`);
|
|
173
140
|
function tagDescendants(element, depth) {
|
|
174
141
|
if (depth === 0)
|
|
@@ -1,10 +1,3 @@
|
|
|
1
1
|
import type { NudgeUiRuntimeConfig } from "./runtimeConfig.js";
|
|
2
|
-
/**
|
|
3
|
-
* Reads the immutable runtime snapshot reactively.
|
|
4
|
-
*
|
|
5
|
-
* Components that render runtime-derived UI (token catalogs, capability
|
|
6
|
-
* gating) must use this hook instead of the plain getter, so a host that
|
|
7
|
-
* atomically replaces the configuration during HMR or a dev-transport
|
|
8
|
-
* refresh re-renders the subscribed tree with the new snapshot.
|
|
9
|
-
*/
|
|
2
|
+
/** Components rendering runtime-derived UI must subscribe here, not through the plain getter. */
|
|
10
3
|
export declare function useNudgeUiRuntimeConfig(): NudgeUiRuntimeConfig;
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { useSyncExternalStore } from "react";
|
|
2
2
|
import { getNudgeUiRuntimeConfig, subscribeNudgeUiRuntime, } from "./runtimeConfig.js";
|
|
3
|
-
/**
|
|
4
|
-
* Reads the immutable runtime snapshot reactively.
|
|
5
|
-
*
|
|
6
|
-
* Components that render runtime-derived UI (token catalogs, capability
|
|
7
|
-
* gating) must use this hook instead of the plain getter, so a host that
|
|
8
|
-
* atomically replaces the configuration during HMR or a dev-transport
|
|
9
|
-
* refresh re-renders the subscribed tree with the new snapshot.
|
|
10
|
-
*/
|
|
3
|
+
/** Components rendering runtime-derived UI must subscribe here, not through the plain getter. */
|
|
11
4
|
export function useNudgeUiRuntimeConfig() {
|
|
12
5
|
return useSyncExternalStore(subscribeNudgeUiRuntime, getNudgeUiRuntimeConfig);
|
|
13
6
|
}
|
|
@@ -10,12 +10,7 @@ export interface InstanceEvidence {
|
|
|
10
10
|
}
|
|
11
11
|
/** Test hook: clears the memoized source-site match counts. */
|
|
12
12
|
export declare function resetSourceSiteMatchCounts(): void;
|
|
13
|
-
/**
|
|
14
|
-
* Counts the rendered elements matching a source site. The result is memoized
|
|
15
|
-
* per (element identity, scope revision) so the selection render path no longer
|
|
16
|
-
* runs a full-document querySelectorAll on every render; it only recomputes
|
|
17
|
-
* when the caller's scope revision changes.
|
|
18
|
-
*/
|
|
13
|
+
/** Memoized per element and scope revision so the render path avoids repeated full-document queries. */
|
|
19
14
|
export declare function countSourceSiteMatches(el: HTMLElement, revision?: number): number;
|
|
20
15
|
export declare function unlinkElement(el: HTMLElement): string | null;
|
|
21
16
|
export declare function relinkElement(el: HTMLElement): string | null;
|
|
@@ -25,7 +20,6 @@ export interface BatchScopeFields {
|
|
|
25
20
|
sourceInstanceCount?: number;
|
|
26
21
|
instanceOverride?: RenderedInstanceOverride;
|
|
27
22
|
}
|
|
28
|
-
/** Returns whether every element can be addressed safely by one batch edit. */
|
|
29
23
|
export declare function canPlanBatchEditScopes(selectedElements: readonly HTMLElement[]): boolean;
|
|
30
24
|
/** Resolves safe scopes immediately before a write is committed. */
|
|
31
25
|
export declare function planBatchEditScopes(selectedElements: readonly HTMLElement[]): ReadonlyMap<HTMLElement, BatchScopeFields> | null;
|
|
@@ -20,12 +20,7 @@ function querySourceSiteMatches(el) {
|
|
|
20
20
|
return 0;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Counts the rendered elements matching a source site. The result is memoized
|
|
25
|
-
* per (element identity, scope revision) so the selection render path no longer
|
|
26
|
-
* runs a full-document querySelectorAll on every render; it only recomputes
|
|
27
|
-
* when the caller's scope revision changes.
|
|
28
|
-
*/
|
|
23
|
+
/** Memoized per element and scope revision so the render path avoids repeated full-document queries. */
|
|
29
24
|
export function countSourceSiteMatches(el, revision = 0) {
|
|
30
25
|
const cid = el.getAttribute("data-cid") ?? "";
|
|
31
26
|
const src = el.getAttribute("data-src") ?? "";
|
|
@@ -59,11 +54,7 @@ export function relinkElement(el) {
|
|
|
59
54
|
export function getEditScope(el) {
|
|
60
55
|
return getRenderedInstanceOverride(el) ? "rendered-instance" : "source-site";
|
|
61
56
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Plans the scope for every target in a batch edit without mutating the DOM or
|
|
64
|
-
* transient instance state. A partial repeated-source group is editable only
|
|
65
|
-
* when each selected output has evidence that resolves uniquely.
|
|
66
|
-
*/
|
|
57
|
+
/** A partial repeated-source group is editable only when each selected output resolves uniquely. */
|
|
67
58
|
function analyzeBatchEditScopes(selectedElements) {
|
|
68
59
|
const plan = new Map();
|
|
69
60
|
if (selectedElements.length <= 1) {
|
|
@@ -108,7 +99,6 @@ function analyzeBatchEditScopes(selectedElements) {
|
|
|
108
99
|
}
|
|
109
100
|
return plan;
|
|
110
101
|
}
|
|
111
|
-
/** Returns whether every element can be addressed safely by one batch edit. */
|
|
112
102
|
export function canPlanBatchEditScopes(selectedElements) {
|
|
113
103
|
return analyzeBatchEditScopes(selectedElements) !== null;
|
|
114
104
|
}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A style edit target is deliberately smaller than the selection model. The
|
|
3
|
-
* editor only needs the rendered DOM nodes that will receive one declaration;
|
|
4
|
-
* source metadata and selection ordering stay inside the selection module.
|
|
5
|
-
*/
|
|
1
|
+
/** Deliberately just the DOM nodes receiving a declaration; source metadata stays in the selection module. */
|
|
6
2
|
export type EditTarget = HTMLElement | readonly HTMLElement[];
|
|
7
3
|
export declare function targetElements(target: EditTarget): readonly HTMLElement[];
|
|
8
4
|
export declare function isMultiTarget(target: EditTarget): boolean;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export declare function computeHierarchy(el: HTMLElement): HTMLElement[];
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
/** Direct children listed in the DOM navigator before the rest collapse into a count. */
|
|
3
|
+
export declare const NAVIGATOR_CHILD_LIMIT = 50;
|
|
4
|
+
export interface TrackedChildren {
|
|
5
|
+
elements: HTMLElement[];
|
|
6
|
+
/** Tracked children past the limit. */
|
|
7
|
+
hidden: number;
|
|
5
8
|
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/** Returns the nearest tracked descendants, breadth-first and document-ordered. */
|
|
12
|
-
export declare function computeDescendants(el: HTMLElement, maxDepth?: number, maxNodes?: number): DescendantNode[];
|
|
13
|
-
export declare function computeNavigationNodes(el: HTMLElement, hierarchy?: HTMLElement[]): NavigationNode[];
|
|
9
|
+
/** The nearest tracked elements below `el` in document order, looking through untracked wrappers. */
|
|
10
|
+
export declare function computeTrackedChildren(el: HTMLElement, limit?: number): TrackedChildren;
|
|
11
|
+
export declare function hasTrackedChildren(el: HTMLElement): boolean;
|
|
12
|
+
/** Nearest tracked ancestors, fewer when children also fill the menu. */
|
|
13
|
+
export declare function computeNavigationParents(hierarchy: readonly HTMLElement[], hasChildren: boolean): HTMLElement[];
|