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
|
@@ -42,9 +42,7 @@ export function ensureManagedSheet() {
|
|
|
42
42
|
}
|
|
43
43
|
let sheet = el.sheet;
|
|
44
44
|
if (!sheet) {
|
|
45
|
-
//
|
|
46
|
-
// not implement it). Recreate the managed element so later clear/revert
|
|
47
|
-
// operations can always recover instead of leaving history wedged.
|
|
45
|
+
// Recreate the element when the browser rejects the sheet so clear/revert can still recover.
|
|
48
46
|
el.remove();
|
|
49
47
|
el = doc.createElement("style");
|
|
50
48
|
el.id = SHEET_ID;
|
|
@@ -64,7 +62,6 @@ export function ensureManagedSheet() {
|
|
|
64
62
|
}
|
|
65
63
|
function exposeManagedSheetText(doc) {
|
|
66
64
|
if (isNudgeUiDev() && doc.defaultView) {
|
|
67
|
-
// Keep the canonical CSS available to dev diagnostics.
|
|
68
65
|
doc.defaultView.__nudgeUiGetManagedSheetText = getManagedSheetText;
|
|
69
66
|
}
|
|
70
67
|
}
|
|
@@ -98,18 +95,12 @@ export function rulesToCssText(rules) {
|
|
|
98
95
|
}
|
|
99
96
|
return lines.join("\n");
|
|
100
97
|
}
|
|
101
|
-
/**
|
|
98
|
+
/** Retained so a framework can rehydrate a moved style node. */
|
|
102
99
|
let managedRules = [];
|
|
103
|
-
/** Synchronous serialized view of the rules currently projected into the managed sheet. */
|
|
104
100
|
export function getManagedSheetText() {
|
|
105
101
|
return rulesToCssText(managedRules);
|
|
106
102
|
}
|
|
107
|
-
/**
|
|
108
|
-
* Rehydrate the CSSOM after moving the managed style element in <head>.
|
|
109
|
-
*
|
|
110
|
-
* Some browsers replace the CSSStyleSheet when that element is reattached.
|
|
111
|
-
* Rewriting the canonical text keeps the new sheet and the model aligned.
|
|
112
|
-
*/
|
|
103
|
+
/** Some browsers replace the CSSStyleSheet when the style element is reattached, so rewrite the canonical text. */
|
|
113
104
|
function rehydrateManagedSheet(doc, el) {
|
|
114
105
|
const sheet = el.sheet;
|
|
115
106
|
if (!sheet)
|
|
@@ -130,10 +121,6 @@ function rehydrateManagedSheet(doc, el) {
|
|
|
130
121
|
failedRehydrationCssText = el.sheet.cssRules.length === rules.length ? null : cssText;
|
|
131
122
|
notifyBrowserStylesheetChange(doc);
|
|
132
123
|
}
|
|
133
|
-
/**
|
|
134
|
-
* Writes the canonical projection to the managed style element and retains a
|
|
135
|
-
* copy for rehydration if a framework moves or reparses that element.
|
|
136
|
-
*/
|
|
137
124
|
function rebuildSheetText(rules) {
|
|
138
125
|
const desired = rules.map((rule) => ({
|
|
139
126
|
...rule,
|
|
@@ -166,11 +153,7 @@ function rebuildSheetText(rules) {
|
|
|
166
153
|
: null;
|
|
167
154
|
notifyBrowserStylesheetChange(document);
|
|
168
155
|
}
|
|
169
|
-
/**
|
|
170
|
-
* Replaces the managed sheet with the canonical projection. Keeping the
|
|
171
|
-
* serialized rules authoritative avoids stale CSSStyleRule references when a
|
|
172
|
-
* framework dev server reparses or reattaches style nodes during a render.
|
|
173
|
-
*/
|
|
156
|
+
/** Serialized rules stay authoritative to avoid stale CSSStyleRule references when a framework reparses style nodes. */
|
|
174
157
|
export function applyRules(rules) {
|
|
175
158
|
ensureManagedSheet();
|
|
176
159
|
const desired = [];
|
|
@@ -213,7 +196,6 @@ function hasImportantAuthorRule(el, property) {
|
|
|
213
196
|
}
|
|
214
197
|
return false;
|
|
215
198
|
}
|
|
216
|
-
/** Verify what the browser painted after the managed sheet was projected. */
|
|
217
199
|
export function verifyPreview(el, property, requestedValue) {
|
|
218
200
|
if (!el || !el.isConnected) {
|
|
219
201
|
return { requestedValue, computedValue: "", status: "conflict", reason: "target-missing" };
|
|
@@ -18,50 +18,27 @@ export interface DocumentProjectionReport {
|
|
|
18
18
|
export interface RenderedInstanceChangeDiagnostic extends DocumentProjectionReport {
|
|
19
19
|
document: "Inspect" | `Canvas ${string}`;
|
|
20
20
|
}
|
|
21
|
-
/** Captures conservative, serializable identity at the moment of the action. */
|
|
22
21
|
export declare function captureRenderedInstance(el: HTMLElement): RenderedInstanceRef | null;
|
|
23
|
-
/**
|
|
24
|
-
* Resolves exactly one element, or declines to apply. Occurrence documents the
|
|
25
|
-
* captured placement, but structural previews can legitimately change it.
|
|
26
|
-
* Evidence, narrowed by a recorded invocation when present, must therefore
|
|
27
|
-
* identify one current candidate before an edit can be applied.
|
|
28
|
-
*/
|
|
22
|
+
/** Occurrence documents captured placement, but structural previews can change it; evidence must identify exactly one current candidate. */
|
|
29
23
|
export declare function resolveRenderedInstance(doc: Document, ref: RenderedInstanceRef): ResolutionResult;
|
|
30
|
-
/**
|
|
31
|
-
* Resolves a reference whose source position may have moved since capture.
|
|
32
|
-
* A relocated site still renders matching authored evidence, so an evidence
|
|
33
|
-
* miss there is reported as ambiguous rather than as proof of absence.
|
|
34
|
-
*/
|
|
24
|
+
/** A relocated site still renders matching evidence, so an evidence miss is reported as ambiguous, not missing. */
|
|
35
25
|
export declare function resolveMovedRenderedInstance(doc: Document, ref: RenderedInstanceRef): ResolutionResult;
|
|
36
|
-
/**
|
|
37
|
-
* Captures identity for a structural target. When evidence matches several
|
|
38
|
-
* identical outputs, the nearest component invocation whose entire output is
|
|
39
|
-
* this element can still identify it. Otherwise the evidence-only reference
|
|
40
|
-
* is returned and resolves as ambiguous.
|
|
41
|
-
*/
|
|
26
|
+
/** Falls back to the nearest component invocation when evidence matches several identical outputs. */
|
|
42
27
|
export declare function captureStructuralTarget(el: HTMLElement): RenderedInstanceRef | null;
|
|
43
|
-
/**
|
|
28
|
+
/** Ignores the ordinal, which is not identity after a move. */
|
|
44
29
|
export declare function matchesRenderedInstanceEvidence(el: HTMLElement, ref: RenderedInstanceRef): boolean;
|
|
45
|
-
/** Builds an instance override without changing the element's transient edit scope. */
|
|
46
30
|
export declare function buildRenderedInstanceOverride(el: HTMLElement): RenderedInstanceOverride | null;
|
|
47
|
-
/** Creates a serializable override for identity that was already validated. */
|
|
48
31
|
export declare function buildRenderedInstanceOverrideForTarget(target: RenderedInstanceRef): RenderedInstanceOverride;
|
|
49
32
|
export declare function createRenderedInstanceOverride(el: HTMLElement): RenderedInstanceOverride | null;
|
|
50
|
-
/** Returns an active transient target or the canonical target projected here. */
|
|
51
33
|
export declare function getRenderedInstanceOverride(el: HTMLElement): RenderedInstanceOverride | null;
|
|
52
34
|
export declare function clearRenderedInstanceOverride(el: HTMLElement): RenderedInstanceOverride | null;
|
|
53
35
|
export declare function instanceSelector(override: RenderedInstanceOverride): string | null;
|
|
54
|
-
/** Extracts the distinct canonical targets which renderers must resolve. */
|
|
55
36
|
export declare function collectRenderedInstanceOverrides(changes: ReadonlyArray<unknown>): RenderedInstanceOverride[];
|
|
56
|
-
/**
|
|
57
|
-
* The document-projection adapter only applies a new canonical snapshot. A
|
|
58
|
-
* later reconciliation changes diagnostics but never starts a reapply loop.
|
|
59
|
-
*/
|
|
37
|
+
/** A later reconciliation changes diagnostics but never starts a reapply loop. */
|
|
60
38
|
export declare function applyRenderedInstanceProjection(doc: Document, overrides: ReadonlyArray<RenderedInstanceOverride>): DocumentProjectionReport[];
|
|
61
39
|
/** Registers controller-owned overrides without projecting them into the editor shell. */
|
|
62
40
|
export declare function setCanonicalRenderedInstanceOverrides(overrides: ReadonlyArray<RenderedInstanceOverride>): void;
|
|
63
41
|
export declare function getRenderedInstanceProjectionReports(doc: Document): readonly DocumentProjectionReport[];
|
|
64
|
-
/** Diagnostics arrive independently when a renderer reports or React reconciles. */
|
|
65
42
|
export declare function subscribeRenderedInstanceDiagnostics(listener: () => void): () => void;
|
|
66
43
|
export declare function getRenderedInstanceDiagnosticRevision(): number;
|
|
67
44
|
export declare function recordCanvasRenderedInstanceProjectionReports(cardId: string, revision: number, reports: readonly DocumentProjectionReport[], projection?: FrameProjection): void;
|
|
@@ -29,7 +29,6 @@ function candidates(doc, sourceSite) {
|
|
|
29
29
|
return [];
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
/** Captures conservative, serializable identity at the moment of the action. */
|
|
33
32
|
export function captureRenderedInstance(el) {
|
|
34
33
|
const cid = el.getAttribute("data-cid") ?? "";
|
|
35
34
|
const src = el.getAttribute("data-src") ?? "";
|
|
@@ -54,16 +53,10 @@ export function captureRenderedInstance(el) {
|
|
|
54
53
|
},
|
|
55
54
|
};
|
|
56
55
|
}
|
|
57
|
-
/**
|
|
58
|
-
* Resolves exactly one element, or declines to apply. Occurrence documents the
|
|
59
|
-
* captured placement, but structural previews can legitimately change it.
|
|
60
|
-
* Evidence, narrowed by a recorded invocation when present, must therefore
|
|
61
|
-
* identify one current candidate before an edit can be applied.
|
|
62
|
-
*/
|
|
56
|
+
/** Occurrence documents captured placement, but structural previews can change it; evidence must identify exactly one current candidate. */
|
|
63
57
|
export function resolveRenderedInstance(doc, ref) {
|
|
64
58
|
const sourceCandidates = candidates(doc, ref.sourceSite);
|
|
65
59
|
const { props, text, ariaLabel = null, invocation } = ref.locator;
|
|
66
|
-
// An ordinal alone is not an identity for a repeated source site.
|
|
67
60
|
if (!invocation && sourceCandidates.length > 1 && props === null && text === null && ariaLabel === null) {
|
|
68
61
|
return { status: "ambiguous" };
|
|
69
62
|
}
|
|
@@ -84,18 +77,12 @@ export function resolveRenderedInstance(doc, ref) {
|
|
|
84
77
|
}
|
|
85
78
|
if (matchingEvidence.length === 0)
|
|
86
79
|
return { status: "missing" };
|
|
87
|
-
// Evidence alone
|
|
88
|
-
// outputs. This is particularly important for structural anchors: applying
|
|
89
|
-
// one move to an arbitrary identical parent would reorder the wrong group.
|
|
80
|
+
// Evidence alone never chooses between identical outputs; an arbitrary pick would reorder the wrong group.
|
|
90
81
|
if (matchingEvidence.length > 1)
|
|
91
82
|
return { status: "ambiguous" };
|
|
92
83
|
return { status: "resolved", element: matchingEvidence[0] };
|
|
93
84
|
}
|
|
94
|
-
/**
|
|
95
|
-
* Resolves a reference whose source position may have moved since capture.
|
|
96
|
-
* A relocated site still renders matching authored evidence, so an evidence
|
|
97
|
-
* miss there is reported as ambiguous rather than as proof of absence.
|
|
98
|
-
*/
|
|
85
|
+
/** A relocated site still renders matching evidence, so an evidence miss is reported as ambiguous, not missing. */
|
|
99
86
|
export function resolveMovedRenderedInstance(doc, ref) {
|
|
100
87
|
const exact = resolveRenderedInstance(doc, ref);
|
|
101
88
|
if (exact.status !== "missing")
|
|
@@ -107,12 +94,7 @@ export function resolveMovedRenderedInstance(doc, ref) {
|
|
|
107
94
|
const moved = resolveRenderedInstance(doc, { ...ref, sourceSite });
|
|
108
95
|
return moved.status === "missing" ? { status: "ambiguous" } : moved;
|
|
109
96
|
}
|
|
110
|
-
/**
|
|
111
|
-
* Captures identity for a structural target. When evidence matches several
|
|
112
|
-
* identical outputs, the nearest component invocation whose entire output is
|
|
113
|
-
* this element can still identify it. Otherwise the evidence-only reference
|
|
114
|
-
* is returned and resolves as ambiguous.
|
|
115
|
-
*/
|
|
97
|
+
/** Falls back to the nearest component invocation when evidence matches several identical outputs. */
|
|
116
98
|
export function captureStructuralTarget(el) {
|
|
117
99
|
const ref = captureRenderedInstance(el);
|
|
118
100
|
if (!ref || resolveRenderedInstance(el.ownerDocument, ref).status !== "ambiguous")
|
|
@@ -125,7 +107,7 @@ export function captureStructuralTarget(el) {
|
|
|
125
107
|
}
|
|
126
108
|
return ref;
|
|
127
109
|
}
|
|
128
|
-
/**
|
|
110
|
+
/** Ignores the ordinal, which is not identity after a move. */
|
|
129
111
|
export function matchesRenderedInstanceEvidence(el, ref) {
|
|
130
112
|
const { props, text, ariaLabel = null } = ref.locator;
|
|
131
113
|
return (el.getAttribute("data-cid") ?? "") === ref.sourceSite.cid
|
|
@@ -134,14 +116,12 @@ export function matchesRenderedInstanceEvidence(el, ref) {
|
|
|
134
116
|
&& normalizedText(el) === text
|
|
135
117
|
&& el.getAttribute("aria-label") === ariaLabel;
|
|
136
118
|
}
|
|
137
|
-
/** Builds an instance override without changing the element's transient edit scope. */
|
|
138
119
|
export function buildRenderedInstanceOverride(el) {
|
|
139
120
|
const target = captureRenderedInstance(el);
|
|
140
121
|
if (!target)
|
|
141
122
|
return null;
|
|
142
123
|
return buildRenderedInstanceOverrideForTarget(target);
|
|
143
124
|
}
|
|
144
|
-
/** Creates a serializable override for identity that was already validated. */
|
|
145
125
|
export function buildRenderedInstanceOverrideForTarget(target) {
|
|
146
126
|
return {
|
|
147
127
|
id: `override-${crypto.randomUUID?.() ?? nextOverrideId++}`,
|
|
@@ -155,7 +135,6 @@ export function createRenderedInstanceOverride(el) {
|
|
|
155
135
|
transientTargets.set(el, override);
|
|
156
136
|
return override;
|
|
157
137
|
}
|
|
158
|
-
/** Returns an active transient target or the canonical target projected here. */
|
|
159
138
|
export function getRenderedInstanceOverride(el) {
|
|
160
139
|
const transient = transientTargets.get(el);
|
|
161
140
|
if (transient)
|
|
@@ -172,7 +151,6 @@ export function instanceSelector(override) {
|
|
|
172
151
|
const source = sourceSiteSelector(override.target.sourceSite.cid, override.target.sourceSite.src);
|
|
173
152
|
return source ? `${source}[${PROJECTION_ATTR}="${escapeAttrValue(override.id)}"]` : null;
|
|
174
153
|
}
|
|
175
|
-
/** Extracts the distinct canonical targets which renderers must resolve. */
|
|
176
154
|
export function collectRenderedInstanceOverrides(changes) {
|
|
177
155
|
const result = new Map();
|
|
178
156
|
for (const change of changes) {
|
|
@@ -259,10 +237,7 @@ function getDocumentState(doc) {
|
|
|
259
237
|
documentStates.set(doc, state);
|
|
260
238
|
return state;
|
|
261
239
|
}
|
|
262
|
-
/**
|
|
263
|
-
* The document-projection adapter only applies a new canonical snapshot. A
|
|
264
|
-
* later reconciliation changes diagnostics but never starts a reapply loop.
|
|
265
|
-
*/
|
|
240
|
+
/** A later reconciliation changes diagnostics but never starts a reapply loop. */
|
|
266
241
|
export function applyRenderedInstanceProjection(doc, overrides) {
|
|
267
242
|
if (!isNudgeUiDev())
|
|
268
243
|
return [];
|
|
@@ -300,7 +275,6 @@ export function setCanonicalRenderedInstanceOverrides(overrides) {
|
|
|
300
275
|
export function getRenderedInstanceProjectionReports(doc) {
|
|
301
276
|
return reportsByDocument.get(doc) ?? [];
|
|
302
277
|
}
|
|
303
|
-
/** Diagnostics arrive independently when a renderer reports or React reconciles. */
|
|
304
278
|
export function subscribeRenderedInstanceDiagnostics(listener) {
|
|
305
279
|
diagnosticListeners.add(listener);
|
|
306
280
|
return () => diagnosticListeners.delete(listener);
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import type { FrameProjection } from "../canvas/projection.js";
|
|
2
2
|
import type { StructuralChange, StructuralDelete, StructuralMove, StructuralProjectionReason, StructuralProjectionReport } from "../changes/structuralTypes.js";
|
|
3
3
|
export { isStructuralChange, isStructuralDelete, isStructuralMove, isStructuralProjectionReport, } from "./structuralProjectionBoundary.js";
|
|
4
|
-
/**
|
|
5
|
-
* Controller-owned structural intent. It contains no DOM node, placeholder,
|
|
6
|
-
* position, or renderer-local identity. Each document resolves a snapshot for
|
|
7
|
-
* itself and keeps any physical preview artefacts private to that document.
|
|
8
|
-
*/
|
|
4
|
+
/** Canonical intent carries no DOM node, placeholder, or renderer-local identity; each document keeps its own preview artefacts. */
|
|
9
5
|
export type { StructuralChange, StructuralDelete, StructuralMove, StructuralProjectionReason, StructuralProjectionReport, StructuralProjectionStatus, } from "../changes/structuralTypes.js";
|
|
10
|
-
/** Conservative HTML containment policy shared by gesture and projection code. */
|
|
11
6
|
export declare function canContainElement(parent: HTMLElement, child: HTMLElement): boolean;
|
|
12
7
|
export type StructuralMoveLegality = {
|
|
13
8
|
valid: true;
|
|
@@ -18,11 +13,7 @@ export type StructuralMoveLegality = {
|
|
|
18
13
|
valid: false;
|
|
19
14
|
reason: StructuralProjectionReason;
|
|
20
15
|
};
|
|
21
|
-
/**
|
|
22
|
-
* Applies the one conservative move policy used by guide calculation, commit,
|
|
23
|
-
* and resolved document projection. The returned elements are document-local
|
|
24
|
-
* and must never be stored in canonical structural intent.
|
|
25
|
-
*/
|
|
16
|
+
/** Returned elements are document-local and must never be stored in canonical intent. */
|
|
26
17
|
export declare function getStructuralMoveLegality(element: HTMLElement, destination: {
|
|
27
18
|
parent: HTMLElement;
|
|
28
19
|
before: Node | null;
|
|
@@ -32,56 +23,33 @@ export interface StructuralChangeDiagnostic extends StructuralProjectionReport {
|
|
|
32
23
|
}
|
|
33
24
|
/** Returns bounded view state used to verify a delete in the same rendered view. */
|
|
34
25
|
export declare function documentStateKey(doc: Document, excluded?: HTMLElement): string | undefined;
|
|
35
|
-
/** Captures a delete intent once, in the controller, at the user gesture. */
|
|
36
26
|
export declare function createStructuralDelete(element: HTMLElement, id?: string): StructuralDelete | null;
|
|
37
|
-
/**
|
|
38
|
-
* Capture a move only when every address can be represented by durable
|
|
39
|
-
* rendered-instance references. Local DOM positions are deliberately never a
|
|
40
|
-
* fallback: a missed preview is safer than moving the wrong item.
|
|
41
|
-
*/
|
|
27
|
+
/** Local DOM positions are never a fallback: a missed preview beats moving the wrong item. */
|
|
42
28
|
export declare function createStructuralMove(element: HTMLElement, destination: {
|
|
43
29
|
parent: HTMLElement;
|
|
44
30
|
before: Node | null;
|
|
45
31
|
}, id?: string): StructuralMove | null;
|
|
46
32
|
export declare function getStructuralChanges(): readonly StructuralChange[];
|
|
47
33
|
export declare function getStructuralDeletes(): readonly StructuralDelete[];
|
|
48
|
-
/** Revert removes one canonical intent and leaves every other intent intact. */
|
|
49
34
|
export declare function revertStructuralChange(changeId: string): boolean;
|
|
50
35
|
/** State changes drive controller-to-renderer projection. Diagnostics do not. */
|
|
51
36
|
export declare function subscribeStructuralChanges(listener: () => void): () => void;
|
|
52
37
|
/** Compatibility name retained while the controller moved to a full union. */
|
|
53
38
|
export declare const subscribeStructuralDeletes: typeof subscribeStructuralChanges;
|
|
54
|
-
/** Diagnostics change after host/frame resolution or a one-shot conflict check. */
|
|
55
39
|
export declare function subscribeStructuralDiagnostics(listener: () => void): () => void;
|
|
56
|
-
/** Monotonic snapshot for React consumers of document-local diagnostics. */
|
|
57
40
|
export declare function getStructuralDiagnosticRevision(): number;
|
|
58
|
-
/**
|
|
59
|
-
* Apply one full controller snapshot to one document. Physical nodes and
|
|
60
|
-
* placeholders stay in the document state only; history stays serializable in
|
|
61
|
-
* the controller. A same snapshot never reapplies an overridden preview.
|
|
62
|
-
*/
|
|
41
|
+
/** Physical nodes stay document-local; an unchanged snapshot never reapplies an overridden preview. */
|
|
63
42
|
export declare function applyStructuralProjection(doc: Document, snapshot: readonly StructuralChange[]): StructuralProjectionReport[];
|
|
64
|
-
/** Compatibility entry point for
|
|
43
|
+
/** Compatibility entry point for delete-only callers. */
|
|
65
44
|
export declare function applyStructuralDeleteProjection(doc: Document, snapshot: readonly StructuralDelete[]): StructuralProjectionReport[];
|
|
66
45
|
export declare function getStructuralProjectionReports(doc: Document): readonly StructuralProjectionReport[];
|
|
67
|
-
/**
|
|
68
|
-
* Frames may report only their document-local outcome. The controller owns
|
|
69
|
-
* these reports and filters them against its current canonical change set.
|
|
70
|
-
*/
|
|
46
|
+
/** Frames report document-local outcomes; the controller filters them against its canonical change set. */
|
|
71
47
|
export declare function recordCanvasStructuralProjectionReports(cardId: string, revision: number, reports: readonly StructuralProjectionReport[], projection?: FrameProjection): void;
|
|
72
48
|
export declare function clearCanvasStructuralProjectionReports(cardId: string): void;
|
|
73
|
-
/** Removes document-local reports for canonical intents that no longer exist. */
|
|
74
49
|
export declare function pruneStructuralProjectionReports(changeIds: ReadonlySet<string>): void;
|
|
75
|
-
/** Clears reports before restoring or clearing an atomic workspace snapshot. */
|
|
76
50
|
export declare function clearStructuralProjectionReports(): void;
|
|
77
51
|
export declare function getStructuralChangeDiagnostics(changeId: string): StructuralChangeDiagnostic[];
|
|
78
52
|
/** Controller teardown/test hook. It is not a user-visible history operation. */
|
|
79
53
|
export declare function resetStructuralDeleteProjection(): void;
|
|
80
|
-
/**
|
|
81
|
-
* Releases one document's structural projection without touching canonical
|
|
82
|
-
* workspace intent. Applied deletes/moves owned by this document are restored
|
|
83
|
-
* and the document observer is disconnected; the controller snapshot stays
|
|
84
|
-
* intact so a later remount can re-project from canonical state. Register as
|
|
85
|
-
* a document-session cleanup alongside disposeBrowserCssInspection.
|
|
86
|
-
*/
|
|
54
|
+
/** Restores this document's previews and disconnects its observer; canonical intent stays intact for a later remount. */
|
|
87
55
|
export declare function releaseDocumentProjection(doc: Document): void;
|
|
@@ -23,7 +23,6 @@ function isUnsupportedWrappedFlexRow(element) {
|
|
|
23
23
|
&& (style.flexDirection || "row").startsWith("row")
|
|
24
24
|
&& Boolean(style.flexWrap && style.flexWrap !== "nowrap");
|
|
25
25
|
}
|
|
26
|
-
/** Conservative HTML containment policy shared by gesture and projection code. */
|
|
27
26
|
export function canContainElement(parent, child) {
|
|
28
27
|
const parentTag = parent.tagName.toLowerCase();
|
|
29
28
|
if (VOID_PARENT_TAGS.has(parentTag)
|
|
@@ -33,11 +32,7 @@ export function canContainElement(parent, child) {
|
|
|
33
32
|
return false;
|
|
34
33
|
return !PHRASING_PARENT_TAGS.has(parentTag) || isPhrasingElement(child);
|
|
35
34
|
}
|
|
36
|
-
/**
|
|
37
|
-
* Applies the one conservative move policy used by guide calculation, commit,
|
|
38
|
-
* and resolved document projection. The returned elements are document-local
|
|
39
|
-
* and must never be stored in canonical structural intent.
|
|
40
|
-
*/
|
|
35
|
+
/** Returned elements are document-local and must never be stored in canonical intent. */
|
|
41
36
|
export function getStructuralMoveLegality(element, destination) {
|
|
42
37
|
if (!element.isConnected)
|
|
43
38
|
return { valid: false, reason: "target" };
|
|
@@ -108,8 +103,10 @@ function documentRoute(doc) {
|
|
|
108
103
|
}
|
|
109
104
|
}
|
|
110
105
|
function stableStateValue(value, seen = new WeakSet()) {
|
|
111
|
-
if (
|
|
106
|
+
if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean")
|
|
112
107
|
return value;
|
|
108
|
+
if (typeof value !== "object")
|
|
109
|
+
return String(value);
|
|
113
110
|
if (seen.has(value))
|
|
114
111
|
return "[Circular]";
|
|
115
112
|
seen.add(value);
|
|
@@ -172,8 +169,7 @@ export function documentStateKey(doc, excluded) {
|
|
|
172
169
|
}
|
|
173
170
|
}
|
|
174
171
|
function cloneSnapshot(snapshot) {
|
|
175
|
-
//
|
|
176
|
-
// array is enough: no operation mutates a change or its nested references.
|
|
172
|
+
// Shallow clone is enough: no operation mutates a change or its nested references.
|
|
177
173
|
return [...snapshot];
|
|
178
174
|
}
|
|
179
175
|
/** The Draft store already re-projected the host; this covers every other known document. */
|
|
@@ -182,7 +178,6 @@ function projectStructuralChanges() {
|
|
|
182
178
|
for (const doc of documentStates.keys())
|
|
183
179
|
applyStructuralProjection(doc, changes);
|
|
184
180
|
}
|
|
185
|
-
/** Captures a delete intent once, in the controller, at the user gesture. */
|
|
186
181
|
export function createStructuralDelete(element, id = structuralId()) {
|
|
187
182
|
const target = captureStructuralTarget(element);
|
|
188
183
|
if (!target)
|
|
@@ -201,11 +196,7 @@ export function createStructuralDelete(element, id = structuralId()) {
|
|
|
201
196
|
projectStructuralChanges();
|
|
202
197
|
return change;
|
|
203
198
|
}
|
|
204
|
-
/**
|
|
205
|
-
* Capture a move only when every address can be represented by durable
|
|
206
|
-
* rendered-instance references. Local DOM positions are deliberately never a
|
|
207
|
-
* fallback: a missed preview is safer than moving the wrong item.
|
|
208
|
-
*/
|
|
199
|
+
/** Local DOM positions are never a fallback: a missed preview beats moving the wrong item. */
|
|
209
200
|
export function createStructuralMove(element, destination, id = structuralId()) {
|
|
210
201
|
const legality = getStructuralMoveLegality(element, destination);
|
|
211
202
|
if (!legality.valid)
|
|
@@ -250,7 +241,6 @@ export function getStructuralChanges() {
|
|
|
250
241
|
export function getStructuralDeletes() {
|
|
251
242
|
return getStructuralChanges().filter((change) => change.kind === "delete");
|
|
252
243
|
}
|
|
253
|
-
/** Revert removes one canonical intent and leaves every other intent intact. */
|
|
254
244
|
export function revertStructuralChange(changeId) {
|
|
255
245
|
const changed = revertDraftStructuralChange(changeId);
|
|
256
246
|
if (changed)
|
|
@@ -263,12 +253,10 @@ export function subscribeStructuralChanges(listener) {
|
|
|
263
253
|
}
|
|
264
254
|
/** Compatibility name retained while the controller moved to a full union. */
|
|
265
255
|
export const subscribeStructuralDeletes = subscribeStructuralChanges;
|
|
266
|
-
/** Diagnostics change after host/frame resolution or a one-shot conflict check. */
|
|
267
256
|
export function subscribeStructuralDiagnostics(listener) {
|
|
268
257
|
diagnosticListeners.add(listener);
|
|
269
258
|
return () => diagnosticListeners.delete(listener);
|
|
270
259
|
}
|
|
271
|
-
/** Monotonic snapshot for React consumers of document-local diagnostics. */
|
|
272
260
|
export function getStructuralDiagnosticRevision() {
|
|
273
261
|
return diagnosticRevision;
|
|
274
262
|
}
|
|
@@ -289,6 +277,7 @@ function getDocumentState(doc) {
|
|
|
289
277
|
return state;
|
|
290
278
|
}
|
|
291
279
|
function installDocumentObserver(doc, state) {
|
|
280
|
+
// SAFETY: attaches are read from the document's own realm so cross-origin frames use their own MutationObserver.
|
|
292
281
|
const viewWithObserver = doc.defaultView;
|
|
293
282
|
const Observer = viewWithObserver?.MutationObserver
|
|
294
283
|
?? (typeof MutationObserver !== "undefined" ? MutationObserver : undefined);
|
|
@@ -316,14 +305,10 @@ function scheduleValidation(doc, state) {
|
|
|
316
305
|
state.validationQueued = true;
|
|
317
306
|
queueMicrotask(() => {
|
|
318
307
|
state.validationQueued = false;
|
|
319
|
-
//
|
|
320
|
-
// mounted. Retry unresolved records after that tree changes so a valid
|
|
321
|
-
// late mount converges without requiring another controller message.
|
|
308
|
+
// Retry unresolved records when the tree changes so a late-mounting renderer converges without another controller message.
|
|
322
309
|
if (hasUnresolvedAppliedChange(state)) {
|
|
323
310
|
rebuildForSnapshot(doc, state, state.snapshot, false);
|
|
324
|
-
// The replay is synchronous, so
|
|
325
|
-
// interleave with it. Discard only the records produced by the replay;
|
|
326
|
-
// future renderer mutations remain observed and can trigger another try.
|
|
311
|
+
// The replay is synchronous, so discarding its records only drops the replay's own mutations.
|
|
327
312
|
state.observer?.takeRecords();
|
|
328
313
|
storeReports(doc, reportsForSnapshot(state, state.snapshot));
|
|
329
314
|
return;
|
|
@@ -357,8 +342,7 @@ function restoreApplied(local) {
|
|
|
357
342
|
if (local.kind === "unresolved")
|
|
358
343
|
return;
|
|
359
344
|
if (local.kind === "delete") {
|
|
360
|
-
//
|
|
361
|
-
// detached node. The observer will (or already did) report overridden.
|
|
345
|
+
// Never reinsert a stale detached node when React already replaced our placeholder.
|
|
362
346
|
if (local.placeholder.isConnected)
|
|
363
347
|
local.placeholder.replaceWith(local.element);
|
|
364
348
|
return;
|
|
@@ -369,8 +353,7 @@ function restoreApplied(local) {
|
|
|
369
353
|
local.fromParent.insertBefore(local.element, anchor);
|
|
370
354
|
}
|
|
371
355
|
function rebuildForSnapshot(doc, state, snapshot, schedulePostReplayValidation = true) {
|
|
372
|
-
// React may have changed a projected node before its mutation callback ran.
|
|
373
|
-
// Validate synchronously so a rebuild never restores a framework-owned node.
|
|
356
|
+
// React may have changed a projected node before its mutation callback ran; validate before rebuilding.
|
|
374
357
|
validateAppliedPreview(doc, state);
|
|
375
358
|
const activeIds = new Set(snapshot.map((change) => change.id));
|
|
376
359
|
const retainedOverrides = new Map();
|
|
@@ -378,9 +361,7 @@ function rebuildForSnapshot(doc, state, snapshot, schedulePostReplayValidation =
|
|
|
378
361
|
if (local.status === "overridden" && activeIds.has(id))
|
|
379
362
|
retainedOverrides.set(id, local);
|
|
380
363
|
}
|
|
381
|
-
// Undo in reverse
|
|
382
|
-
// baseline before replaying the desired canonical sequence. This is what
|
|
383
|
-
// makes reverting an earlier move correct when later moves remain.
|
|
364
|
+
// Undo in reverse order to reconstruct the source baseline; this is what makes reverting an earlier move correct when later moves remain.
|
|
384
365
|
for (const id of [...state.appliedOrder].reverse()) {
|
|
385
366
|
const local = state.applied.get(id);
|
|
386
367
|
if (local && local.status !== "overridden")
|
|
@@ -396,8 +377,7 @@ function rebuildForSnapshot(doc, state, snapshot, schedulePostReplayValidation =
|
|
|
396
377
|
continue;
|
|
397
378
|
applyChangeToDocument(doc, state, change);
|
|
398
379
|
}
|
|
399
|
-
//
|
|
400
|
-
// operations have replayed, rather than the transient first insertion.
|
|
380
|
+
// Verify the final placement after all later canonical operations replayed, not the transient first insertion.
|
|
401
381
|
for (const local of state.applied.values()) {
|
|
402
382
|
if (local.kind === "move" && local.status === "applied") {
|
|
403
383
|
local.expectedParent = local.element.parentElement ?? local.expectedParent;
|
|
@@ -496,11 +476,7 @@ function validateAppliedPreview(doc, state) {
|
|
|
496
476
|
return;
|
|
497
477
|
storeReports(doc, reportsForSnapshot(state, state.snapshot));
|
|
498
478
|
}
|
|
499
|
-
/**
|
|
500
|
-
* Apply one full controller snapshot to one document. Physical nodes and
|
|
501
|
-
* placeholders stay in the document state only; history stays serializable in
|
|
502
|
-
* the controller. A same snapshot never reapplies an overridden preview.
|
|
503
|
-
*/
|
|
479
|
+
/** Physical nodes stay document-local; an unchanged snapshot never reapplies an overridden preview. */
|
|
504
480
|
export function applyStructuralProjection(doc, snapshot) {
|
|
505
481
|
const state = getDocumentState(doc);
|
|
506
482
|
const key = JSON.stringify(snapshot);
|
|
@@ -510,17 +486,14 @@ export function applyStructuralProjection(doc, snapshot) {
|
|
|
510
486
|
storeReports(doc, reports);
|
|
511
487
|
return reports;
|
|
512
488
|
}
|
|
513
|
-
/** Compatibility entry point for
|
|
489
|
+
/** Compatibility entry point for delete-only callers. */
|
|
514
490
|
export function applyStructuralDeleteProjection(doc, snapshot) {
|
|
515
491
|
return applyStructuralProjection(doc, snapshot);
|
|
516
492
|
}
|
|
517
493
|
export function getStructuralProjectionReports(doc) {
|
|
518
494
|
return reportsByDocument.get(doc) ?? [];
|
|
519
495
|
}
|
|
520
|
-
/**
|
|
521
|
-
* Frames may report only their document-local outcome. The controller owns
|
|
522
|
-
* these reports and filters them against its current canonical change set.
|
|
523
|
-
*/
|
|
496
|
+
/** Frames report document-local outcomes; the controller filters them against its canonical change set. */
|
|
524
497
|
export function recordCanvasStructuralProjectionReports(cardId, revision, reports, projection) {
|
|
525
498
|
if (!Number.isSafeInteger(revision) || revision < 0 || !reports.every(isStructuralProjectionReport))
|
|
526
499
|
return;
|
|
@@ -543,7 +516,6 @@ export function clearCanvasStructuralProjectionReports(cardId) {
|
|
|
543
516
|
return;
|
|
544
517
|
notifyDiagnostics();
|
|
545
518
|
}
|
|
546
|
-
/** Removes document-local reports for canonical intents that no longer exist. */
|
|
547
519
|
export function pruneStructuralProjectionReports(changeIds) {
|
|
548
520
|
if (changeIds.size === 0)
|
|
549
521
|
return;
|
|
@@ -555,7 +527,6 @@ export function pruneStructuralProjectionReports(changeIds) {
|
|
|
555
527
|
}
|
|
556
528
|
notifyDiagnostics();
|
|
557
529
|
}
|
|
558
|
-
/** Clears reports before restoring or clearing an atomic workspace snapshot. */
|
|
559
530
|
export function clearStructuralProjectionReports() {
|
|
560
531
|
reportsByCanvasCard.clear();
|
|
561
532
|
reportsByDocument = new WeakMap();
|
|
@@ -592,13 +563,7 @@ export function resetStructuralDeleteProjection() {
|
|
|
592
563
|
diagnosticRevision = 0;
|
|
593
564
|
notifyDiagnostics();
|
|
594
565
|
}
|
|
595
|
-
/**
|
|
596
|
-
* Releases one document's structural projection without touching canonical
|
|
597
|
-
* workspace intent. Applied deletes/moves owned by this document are restored
|
|
598
|
-
* and the document observer is disconnected; the controller snapshot stays
|
|
599
|
-
* intact so a later remount can re-project from canonical state. Register as
|
|
600
|
-
* a document-session cleanup alongside disposeBrowserCssInspection.
|
|
601
|
-
*/
|
|
566
|
+
/** Restores this document's previews and disconnects its observer; canonical intent stays intact for a later remount. */
|
|
602
567
|
export function releaseDocumentProjection(doc) {
|
|
603
568
|
const state = documentStates.get(doc);
|
|
604
569
|
if (!state) {
|
|
@@ -17,7 +17,6 @@ export interface TextContentProjectionDiagnostic extends TextProjectionReport {
|
|
|
17
17
|
export declare const TEXT_PROJECTION_ATTR = "data-projection-text";
|
|
18
18
|
/** Inspector-owned hit target for a projected text node whose value is empty. */
|
|
19
19
|
export declare const EMPTY_TEXT_PROJECTION_ATTR = "data-empty-text";
|
|
20
|
-
/** Inspector-owned exact-node evidence paired with EMPTY_TEXT_PROJECTION_ATTR. */
|
|
21
20
|
export declare const EMPTY_TEXT_PROJECTION_PATH_ATTR = "data-empty-text-path";
|
|
22
21
|
export type TextProjectionResolution = {
|
|
23
22
|
status: "resolved";
|
|
@@ -27,28 +26,17 @@ export type TextProjectionResolution = {
|
|
|
27
26
|
} | {
|
|
28
27
|
status: "ambiguous";
|
|
29
28
|
};
|
|
30
|
-
/**
|
|
31
|
-
* child path only when one bounded before/after text node remains unique. */
|
|
29
|
+
/** Tolerates a changed child path only when one before/after text node remains unique. */
|
|
32
30
|
export declare function resolveTextProjectionTextNode(element: HTMLElement, target: Pick<TextProjectionTarget, "textNodePath"> & Partial<Pick<TextProjectionTarget, "beforeText">>, expectedText?: string | undefined): Text | null;
|
|
33
|
-
/** Whether an element's text is code, form state, or other non-prose content. */
|
|
34
31
|
export declare function isUnsafeTextHost(element: Element): boolean;
|
|
35
|
-
/** Whether an application-owned editing region contains the element. */
|
|
36
32
|
export declare function isInApplicationEditingHost(element: Element): boolean;
|
|
37
|
-
/** Whether replacing one text node inside the element keeps its authored markup. */
|
|
38
33
|
export declare function hasSafeMixedDescendants(element: HTMLElement): boolean;
|
|
39
|
-
/** Capture stable source/evidence identity without retaining a DOM reference. */
|
|
40
34
|
export declare function captureTextProjectionTarget(element: HTMLElement, beforeText?: string, selectedTextNode?: Text): TextProjectionTarget | null;
|
|
41
|
-
/**
|
|
42
|
-
* Resolve against source identity and bounded evidence. Occurrence is kept as
|
|
43
|
-
* presentation metadata only and is never used to choose among identical
|
|
44
|
-
* repeated outputs.
|
|
45
|
-
*/
|
|
35
|
+
/** Occurrence is presentation metadata only; identical repeated outputs resolve as ambiguous. */
|
|
46
36
|
export declare function resolveTextProjectionTarget(doc: Document, target: TextProjectionTarget, afterText?: string): TextProjectionResolution;
|
|
47
37
|
export declare function textProjectionSelector(target: TextProjectionTarget): string | null;
|
|
48
38
|
export declare function collectTextContentChanges(changes: ReadonlyArray<unknown>): TextContentChangeRecord[];
|
|
49
|
-
/** Returns the canonical record represented by an inspector empty-text slot. */
|
|
50
39
|
export declare function getTextContentChangeById(changeId: string): TextContentChangeRecord | null;
|
|
51
|
-
/** Apply one controller-owned text snapshot to a document adapter. */
|
|
52
40
|
export declare function applyTextContentProjection(doc: Document, changes: ReadonlyArray<TextContentChangeRecord>): TextProjectionReport[];
|
|
53
41
|
/** Registers controller-owned text changes without projecting them into the editor shell. */
|
|
54
42
|
export declare function setCanonicalTextContentChanges(changes: ReadonlyArray<TextContentChangeRecord>): void;
|