nudge-ui 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/agentCommand.d.ts +0 -1
- package/dist/cli/agentCommand.js +4 -29
- package/dist/client.mjs +987 -221
- package/dist/compiler/ast.d.ts +0 -6
- package/dist/compiler/ast.js +0 -5
- package/dist/compiler/componentContractTypes.d.ts +11 -5
- package/dist/compiler/componentContracts.js +3 -9
- package/dist/compiler/componentInstrumentation.d.ts +2 -13
- package/dist/compiler/componentInstrumentation.js +3 -12
- package/dist/compiler/componentPolicyResolution.d.ts +3 -22
- package/dist/compiler/componentPolicyResolution.js +6 -38
- package/dist/compiler/identityAttributes.d.ts +2 -0
- package/dist/compiler/identityAttributes.js +2 -0
- package/dist/compiler/index.d.ts +0 -1
- package/dist/compiler/index.js +0 -1
- package/dist/compiler/packageComponentContracts.d.ts +10 -19
- package/dist/compiler/packageComponentContracts.js +60 -43
- package/dist/compiler/reactComponentProtocols.d.ts +0 -7
- package/dist/compiler/reactComponentProtocols.js +0 -7
- package/dist/compiler/reactIdentity.d.ts +2 -2
- package/dist/compiler/reactIdentity.js +41 -43
- package/dist/compiler/sourcePaths.d.ts +4 -8
- package/dist/compiler/sourcePaths.js +6 -8
- package/dist/css/dialects/index.d.ts +2 -21
- package/dist/css/dialects/index.js +2 -9
- package/dist/css/dialects/tailwind.d.ts +2 -16
- package/dist/css/dialects/tailwind.js +2 -25
- package/dist/css/dialects/vanillaExtract.d.ts +1 -9
- package/dist/css/dialects/vanillaExtract.js +0 -1
- package/dist/css/index.d.ts +0 -8
- package/dist/css/index.js +0 -8
- package/dist/css/model/index.d.ts +6 -38
- package/dist/css/model/index.js +0 -9
- package/dist/css/token-inventory/index.d.ts +0 -23
- package/dist/css/token-inventory/index.js +0 -23
- package/dist/css/token-inventory/inventory.js +4 -16
- package/dist/css/token-inventory/parseStylesheet.d.ts +1 -9
- package/dist/css/token-inventory/parseStylesheet.js +5 -42
- package/dist/css/token-inventory/policy.d.ts +2 -39
- package/dist/css/token-inventory/policy.js +2 -39
- package/dist/css/token-inventory/types.d.ts +2 -15
- package/dist/css/value-semantics/borderSemantics.d.ts +1 -8
- package/dist/css/value-semantics/borderSemantics.js +5 -23
- package/dist/css/value-semantics/boxSemantics.d.ts +2 -25
- package/dist/css/value-semantics/boxSemantics.js +1 -7
- package/dist/css/value-semantics/colorSemantics.d.ts +6 -60
- package/dist/css/value-semantics/colorSemantics.js +9 -40
- package/dist/css/value-semantics/cssSyntax.d.ts +10 -10
- package/dist/css/value-semantics/cssSyntax.js +39 -11
- package/dist/css/value-semantics/fontSemantics.d.ts +3 -19
- package/dist/css/value-semantics/fontSemantics.js +7 -25
- package/dist/css/value-semantics/index.d.ts +1 -12
- package/dist/css/value-semantics/index.js +1 -12
- package/dist/css/value-semantics/propertyPolicy.d.ts +6 -53
- package/dist/css/value-semantics/propertyPolicy.js +47 -59
- package/dist/css/value-semantics/stringMaps.d.ts +0 -1
- package/dist/css/value-semantics/structuredValues.d.ts +3 -37
- package/dist/css/value-semantics/structuredValues.js +6 -17
- package/dist/css/value-semantics/tokenInterpretation.d.ts +8 -50
- package/dist/css/value-semantics/tokenInterpretation.js +7 -21
- package/dist/hosts/astro/astroRuntimeConfig.d.ts +0 -1
- package/dist/hosts/astro/astroRuntimeConfig.js +0 -1
- package/dist/hosts/astro/clientAsset.d.ts +1 -5
- package/dist/hosts/astro/clientAsset.js +1 -5
- package/dist/hosts/astro/clientTransport.d.ts +0 -1
- package/dist/hosts/astro/clientTransport.js +4 -9
- package/dist/hosts/astro/integration.d.ts +2 -28
- package/dist/hosts/astro/integration.js +7 -36
- package/dist/hosts/astro/markdownIdentity.d.ts +0 -3
- package/dist/hosts/astro/markdownIdentity.js +0 -3
- package/dist/hosts/astro/middleware.d.ts +1 -12
- package/dist/hosts/astro/middleware.js +1 -12
- package/dist/hosts/astro/projectContext.d.ts +1 -9
- package/dist/hosts/astro/projectContext.js +2 -11
- package/dist/hosts/astro/responseInstrumentation.d.ts +4 -33
- package/dist/hosts/astro/responseInstrumentation.js +5 -34
- package/dist/hosts/environment.d.ts +0 -8
- package/dist/hosts/environment.js +0 -1
- package/dist/hosts/next/index.js +1 -3
- package/dist/hosts/next/loader.d.ts +5 -44
- package/dist/hosts/next/loader.js +22 -103
- package/dist/hosts/next/loaders/identity-loader.cjs +111 -65
- package/dist/hosts/next/loaders/loader-plugin.cjs +111 -65
- package/dist/hosts/next/manifest.d.ts +2 -16
- package/dist/hosts/next/manifest.js +18 -20
- package/dist/hosts/next/mount.d.ts +1 -11
- package/dist/hosts/next/mount.js +1 -11
- package/dist/hosts/next/repositoryScope.d.ts +2 -17
- package/dist/hosts/next/repositoryScope.js +2 -17
- package/dist/hosts/next/sidecar.d.ts +0 -13
- package/dist/hosts/next/sidecar.js +25 -110
- package/dist/hosts/next/wrapper.d.ts +0 -31
- package/dist/hosts/next/wrapper.js +14 -71
- package/dist/hosts/projectBridge.d.ts +0 -2
- package/dist/hosts/projectBridge.js +3 -19
- package/dist/hosts/reactRendererCapture.d.ts +2 -0
- package/dist/hosts/reactRendererCapture.js +12 -0
- package/dist/hosts/static/cli.d.ts +0 -4
- package/dist/hosts/static/cli.js +0 -3
- package/dist/hosts/static/html/bootstrap.d.ts +1 -18
- package/dist/hosts/static/html/bootstrap.js +2 -14
- package/dist/hosts/static/manifest.d.ts +2 -15
- package/dist/hosts/static/manifest.js +5 -18
- package/dist/hosts/static/server.d.ts +4 -38
- package/dist/hosts/static/server.js +17 -67
- package/dist/hosts/vite/index.d.ts +0 -10
- package/dist/hosts/vite/index.js +0 -10
- package/dist/hosts/vite/react.d.ts +4 -17
- package/dist/hosts/vite/react.js +18 -35
- package/dist/hosts/vite/tokens/activeStylesheets.d.ts +1 -10
- package/dist/hosts/vite/tokens/activeStylesheets.js +3 -8
- package/dist/hosts/vite/tokens/fileMap.d.ts +0 -1
- package/dist/hosts/vite/tokens/viteStylesheetArtifacts.d.ts +2 -15
- package/dist/hosts/vite/tokens/viteStylesheetArtifacts.js +3 -10
- package/dist/hosts/vite/vite.d.ts +5 -26
- package/dist/hosts/vite/vite.js +44 -80
- package/dist/html/dom.d.ts +0 -1
- package/dist/html/dom.js +0 -1
- package/dist/html/identity.d.ts +1 -15
- package/dist/html/identity.js +1 -8
- package/dist/html/insertions.d.ts +2 -8
- package/dist/html/insertions.js +1 -1
- package/dist/inspector/agent/McpConnectionDialog.d.ts +1 -6
- package/dist/inspector/agent/McpConnectionDialog.js +8 -9
- package/dist/inspector/agent/activity.d.ts +2 -2
- package/dist/inspector/agent/activity.js +4 -3
- package/dist/inspector/agent/client.d.ts +3 -27
- package/dist/inspector/agent/client.js +43 -91
- package/dist/inspector/agent/connectionStatus.d.ts +3 -2
- package/dist/inspector/agent/connectionStatus.js +25 -1
- package/dist/inspector/agent/httpTransport.d.ts +0 -8
- package/dist/inspector/agent/httpTransport.js +42 -176
- package/dist/inspector/agent/protocol.d.ts +1 -10
- package/dist/inspector/agent/protocol.js +1 -9
- package/dist/inspector/agent/verification.d.ts +3 -20
- package/dist/inspector/agent/verification.js +10 -43
- package/dist/inspector/boot.d.ts +5 -0
- package/dist/inspector/boot.js +289 -0
- package/dist/inspector/canvas/AgentActivityOverlay.d.ts +3 -2
- package/dist/inspector/canvas/AgentActivityOverlay.js +7 -4
- package/dist/inspector/canvas/CanvasCard.js +26 -24
- package/dist/inspector/canvas/CanvasElementOverlay.js +196 -174
- package/dist/inspector/canvas/CanvasToolbar.js +2 -1
- package/dist/inspector/canvas/CanvasWorkspace.js +87 -124
- package/dist/inspector/canvas/LockedWorkspaceNotice.d.ts +3 -2
- package/dist/inspector/canvas/LockedWorkspaceNotice.js +10 -6
- package/dist/inspector/canvas/PageCard.d.ts +9 -0
- package/dist/inspector/canvas/PageCard.js +50 -0
- package/dist/inspector/canvas/SketchToolOptions.d.ts +4 -0
- package/dist/inspector/canvas/SketchToolOptions.js +80 -0
- package/dist/inspector/canvas/StaleChangeIndicator.d.ts +1 -1
- package/dist/inspector/canvas/StaleChangeIndicator.js +1 -1
- package/dist/inspector/canvas/ToolOptionsDrawer.d.ts +16 -0
- package/dist/inspector/canvas/ToolOptionsDrawer.js +71 -0
- package/dist/inspector/canvas/activeCanvasDocument.d.ts +3 -4
- package/dist/inspector/canvas/activeCanvasDocument.js +0 -2
- package/dist/inspector/canvas/agentPresentation.d.ts +2 -13
- package/dist/inspector/canvas/agentPresentation.js +3 -14
- package/dist/inspector/canvas/assets/eraser.svg +28 -0
- package/dist/inspector/canvas/assets/pen.svg +25 -0
- package/dist/inspector/canvas/canvasFrame.d.ts +12 -0
- package/dist/inspector/canvas/canvasFrame.js +9 -0
- package/dist/inspector/canvas/canvasGestures.d.ts +0 -1
- package/dist/inspector/canvas/canvasGestures.js +0 -6
- package/dist/inspector/canvas/canvasResize.d.ts +1 -6
- package/dist/inspector/canvas/canvasResize.js +1 -6
- package/dist/inspector/canvas/canvasStore.d.ts +5 -7
- package/dist/inspector/canvas/canvasStore.js +42 -21
- package/dist/inspector/canvas/frameConnection.d.ts +42 -0
- package/dist/inspector/canvas/frameConnection.js +73 -0
- package/dist/inspector/canvas/frameContent.d.ts +0 -1
- package/dist/inspector/canvas/frameLifecycle.d.ts +12 -0
- package/dist/inspector/canvas/frameLifecycle.js +11 -0
- package/dist/inspector/canvas/frameProtocol.d.ts +20 -38
- package/dist/inspector/canvas/frameProtocol.js +37 -24
- package/dist/inspector/canvas/frameScrollbarStyles.d.ts +0 -1
- package/dist/inspector/canvas/frameScrollbarStyles.js +0 -1
- package/dist/inspector/canvas/layout.d.ts +10 -22
- package/dist/inspector/canvas/layout.js +0 -3
- package/dist/inspector/canvas/normalizeUrl.js +1 -8
- package/dist/inspector/canvas/pageSurface.d.ts +6 -0
- package/dist/inspector/canvas/pageSurface.js +29 -0
- package/dist/inspector/canvas/projection.d.ts +14 -25
- package/dist/inspector/canvas/projection.js +64 -87
- package/dist/inspector/canvas/rendererBootstrap.d.ts +8 -1
- package/dist/inspector/canvas/rendererBootstrap.js +10 -15
- package/dist/inspector/canvas/rendererCidIndex.d.ts +0 -5
- package/dist/inspector/canvas/rendererCidIndex.js +0 -5
- package/dist/inspector/canvas/rendererElementSelector.js +38 -28
- package/dist/inspector/canvas/rendererMessageRouter.d.ts +4 -6
- package/dist/inspector/canvas/rendererMessageRouter.js +12 -17
- package/dist/inspector/canvas/rendererSelectionProxy.d.ts +3 -1
- package/dist/inspector/canvas/rendererSelectionProxy.js +7 -40
- package/dist/inspector/canvas/rendererStylesheet.d.ts +0 -1
- package/dist/inspector/canvas/rendererStylesheet.js +23 -1
- package/dist/inspector/canvas/resizeHandleScale.d.ts +1 -10
- package/dist/inspector/canvas/resizeHandleScale.js +1 -10
- package/dist/inspector/canvas/sessionStore.d.ts +3 -9
- package/dist/inspector/canvas/sessionStore.js +33 -43
- package/dist/inspector/canvas/staleChangeDetector.d.ts +1 -1
- package/dist/inspector/canvas/staleChangeDetector.js +11 -26
- package/dist/inspector/canvas/toolbarScale.d.ts +1 -4
- package/dist/inspector/canvas/toolbarScale.js +1 -4
- package/dist/inspector/canvas/useCanvasLayoutAnimation.d.ts +0 -1
- package/dist/inspector/canvas/useCanvasLayoutAnimation.js +0 -1
- package/dist/inspector/canvas/viewStore.js +1 -1
- package/dist/inspector/canvas/wheelPan.d.ts +1 -1
- package/dist/inspector/canvas/wheelPan.js +1 -1
- package/dist/inspector/canvas/workspaceLease.d.ts +1 -5
- package/dist/inspector/canvas/workspaceLease.js +1 -7
- package/dist/inspector/changes/codecs.d.ts +1 -0
- package/dist/inspector/changes/codecs.js +21 -5
- package/dist/inspector/changes/draftPreview.d.ts +7 -0
- package/dist/inspector/changes/draftPreview.js +118 -0
- package/dist/inspector/changes/editModel.d.ts +11 -13
- package/dist/inspector/changes/editModel.js +9 -4
- package/dist/inspector/changes/managedStyleProjection.js +6 -15
- package/dist/inspector/changes/model.d.ts +0 -5
- package/dist/inspector/changes/model.js +1 -8
- package/dist/inspector/changes/previewDiagnostics.d.ts +2 -12
- package/dist/inspector/changes/previewDiagnostics.js +5 -21
- package/dist/inspector/changes/previewVerification.d.ts +25 -0
- package/dist/inspector/changes/previewVerification.js +34 -0
- package/dist/inspector/changes/structuralTypes.d.ts +2 -4
- package/dist/inspector/changes/types.d.ts +11 -8
- package/dist/inspector/clientManifest.d.ts +17 -6
- package/dist/inspector/clientManifest.js +16 -3
- package/dist/inspector/comments/CommentsOverlay.js +66 -23
- package/dist/inspector/comments/element.d.ts +1 -2
- package/dist/inspector/comments/element.js +1 -2
- package/dist/inspector/comments/store.d.ts +1 -1
- package/dist/inspector/comments/store.js +4 -3
- package/dist/inspector/comments/verification.d.ts +8 -2
- package/dist/inspector/comments/verification.js +19 -11
- package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +8 -0
- package/dist/inspector/componentSemantics/ComponentPropsSection.js +12 -8
- package/dist/inspector/componentSemantics/adapterRegistry.d.ts +2 -9
- package/dist/inspector/componentSemantics/adapterRegistry.js +2 -9
- package/dist/inspector/componentSemantics/changeAction.js +1 -1
- package/dist/inspector/componentSemantics/changeModel.js +2 -4
- package/dist/inspector/componentSemantics/react/callsites.d.ts +28 -0
- package/dist/inspector/componentSemantics/react/callsites.js +261 -0
- package/dist/inspector/componentSemantics/react/devtoolsHook.d.ts +23 -0
- package/dist/inspector/componentSemantics/react/devtoolsHook.js +71 -0
- package/dist/inspector/componentSemantics/react/fibers.d.ts +17 -0
- package/dist/inspector/componentSemantics/react/fibers.js +30 -0
- package/dist/inspector/componentSemantics/{reactRuntime.d.ts → react/runtime.d.ts} +3 -2
- package/dist/inspector/componentSemantics/{reactRuntime.js → react/runtime.js} +70 -53
- package/dist/inspector/componentSemantics/runtimeBridge.d.ts +2 -18
- package/dist/inspector/componentSemantics/runtimeBridge.js +5 -19
- package/dist/inspector/componentSemantics/textBinding.d.ts +2 -11
- package/dist/inspector/componentSemantics/textBinding.js +20 -87
- package/dist/inspector/componentSemantics/types.d.ts +8 -27
- package/dist/inspector/componentSemantics/types.js +0 -1
- package/dist/inspector/conformance/borderCases.d.ts +0 -5
- package/dist/inspector/conformance/borderCases.js +0 -5
- package/dist/inspector/conformance/colorCases.d.ts +0 -6
- package/dist/inspector/conformance/colorCases.js +0 -6
- package/dist/inspector/conformance/fixture.d.ts +1 -5
- package/dist/inspector/conformance/fixture.js +1 -5
- package/dist/inspector/conformance/spacingCases.d.ts +0 -4
- package/dist/inspector/conformance/spacingCases.js +0 -4
- package/dist/inspector/conformance/typographyCases.d.ts +0 -5
- package/dist/inspector/conformance/typographyCases.js +0 -5
- package/dist/inspector/drafts/draftStore.d.ts +95 -0
- package/dist/inspector/drafts/draftStore.js +461 -0
- package/dist/inspector/drafts/model.d.ts +14 -14
- package/dist/inspector/drafts/model.js +4 -2
- package/dist/inspector/drafts/store.d.ts +47 -16
- package/dist/inspector/drafts/store.js +137 -170
- package/dist/inspector/editScope.d.ts +0 -1
- package/dist/inspector/editScope.js +0 -1
- package/dist/inspector/index.d.ts +2 -4
- package/dist/inspector/index.js +2 -264
- package/dist/inspector/inline-text/inlineTextDiagnostics.d.ts +0 -2
- package/dist/inspector/inline-text/inlineTextDiagnostics.js +0 -2
- package/dist/inspector/inline-text/inlineTextEditor.d.ts +3 -9
- package/dist/inspector/inline-text/inlineTextEditor.js +27 -81
- package/dist/inspector/inline-text/inlineTextLifecycle.js +1 -6
- package/dist/inspector/inline-text/textEditChange.d.ts +1 -2
- package/dist/inspector/inspection/bridge.d.ts +3 -7
- package/dist/inspector/inspection/bridge.js +6 -13
- package/dist/inspector/inspection/browserCssInspection.d.ts +12 -11
- package/dist/inspector/inspection/browserCssInspection.js +32 -14
- package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +0 -7
- package/dist/inspector/inspection/browserCssInspectionRegistry.js +1 -16
- package/dist/inspector/inspection/inspectionSnapshot.d.ts +6 -0
- package/dist/inspector/inspection/inspectionSnapshot.js +10 -0
- package/dist/inspector/inspection/performanceDiagnostics.d.ts +18 -0
- package/dist/inspector/inspection/performanceDiagnostics.js +31 -0
- package/dist/inspector/inspection/selectionProperty.d.ts +1 -6
- package/dist/inspector/inspection/selectionProperty.js +1 -5
- package/dist/inspector/inspection/useBrowserCssInspection.d.ts +1 -5
- package/dist/inspector/inspection/useBrowserCssInspection.js +22 -59
- package/dist/inspector/iterations/capture.d.ts +2 -2
- package/dist/inspector/iterations/capture.js +4 -9
- package/dist/inspector/iterations/client.d.ts +2 -2
- package/dist/inspector/iterations/client.js +0 -1
- package/dist/inspector/iterations/coordinator.d.ts +4 -4
- package/dist/inspector/iterations/coordinator.js +5 -4
- package/dist/inspector/iterations/prompt.d.ts +0 -1
- package/dist/inspector/iterations/prompt.js +9 -9
- package/dist/inspector/overlay/DomNavigator.d.ts +3 -1
- package/dist/inspector/overlay/DomNavigator.js +39 -15
- package/dist/inspector/overlay/DropGuideOverlay.d.ts +0 -1
- package/dist/inspector/overlay/DropGuideOverlay.js +0 -1
- package/dist/inspector/overlay/MeasurementGuideOverlay.d.ts +1 -8
- package/dist/inspector/overlay/MeasurementGuideOverlay.js +1 -5
- package/dist/inspector/overlay/clickPolicy.d.ts +3 -14
- package/dist/inspector/overlay/clickPolicy.js +3 -14
- package/dist/inspector/overlay/dropGuide.d.ts +0 -3
- package/dist/inspector/overlay/dropGuide.js +0 -3
- package/dist/inspector/overlay/frameThrottle.d.ts +0 -1
- package/dist/inspector/overlay/frameThrottle.js +0 -1
- package/dist/inspector/overlay/interactionStyles.d.ts +1 -1
- package/dist/inspector/overlay/interactionStyles.js +19 -8
- package/dist/inspector/overlay/measurementGeometry.js +4 -12
- package/dist/inspector/overlay/selectedGeometry.d.ts +1 -6
- package/dist/inspector/overlay/selectedGeometry.js +1 -8
- package/dist/inspector/overlay/spacingGestures.d.ts +14 -21
- package/dist/inspector/overlay/spacingGestures.js +151 -31
- package/dist/inspector/overlay/structuralGestures.d.ts +2 -9
- package/dist/inspector/overlay/structuralGestures.js +1 -4
- package/dist/inspector/pageInspector.d.ts +33 -0
- package/dist/inspector/pageInspector.js +335 -0
- package/dist/inspector/projection/cssEscapes.d.ts +0 -1
- package/dist/inspector/projection/cssEscapes.js +2 -4
- package/dist/inspector/projection/draftProjection.d.ts +6 -10
- package/dist/inspector/projection/draftProjection.js +8 -7
- package/dist/inspector/projection/managedStylesheet.d.ts +1 -7
- package/dist/inspector/projection/managedStylesheet.js +28 -26
- package/dist/inspector/projection/renderedInstance.d.ts +5 -28
- package/dist/inspector/projection/renderedInstance.js +13 -33
- package/dist/inspector/projection/structuralProjection.d.ts +7 -48
- package/dist/inspector/projection/structuralProjection.js +31 -96
- package/dist/inspector/projection/textProjection.d.ts +7 -13
- package/dist/inspector/projection/textProjection.js +35 -80
- package/dist/inspector/prompt/PromptSettingsDialog.d.ts +0 -1
- package/dist/inspector/prompt/PromptSettingsDialog.js +0 -1
- package/dist/inspector/prompt/clipboardHandoff.d.ts +1 -0
- package/dist/inspector/prompt/clipboardHandoff.js +34 -16
- package/dist/inspector/prompt/generatePrompt.d.ts +2 -2
- package/dist/inspector/prompt/generatePrompt.js +247 -166
- package/dist/inspector/prompt/promptDocument.d.ts +3 -0
- package/dist/inspector/prompt/promptDocument.js +8 -0
- package/dist/inspector/prompt/promptSettings.d.ts +0 -3
- package/dist/inspector/prompt/promptSettings.js +7 -8
- package/dist/inspector/runtime/devFlag.d.ts +2 -25
- package/dist/inspector/runtime/devFlag.js +4 -31
- package/dist/inspector/runtime/documentStylesheetOrder.d.ts +0 -2
- package/dist/inspector/runtime/editorShell.d.ts +0 -1
- package/dist/inspector/runtime/editorShell.js +0 -1
- package/dist/inspector/runtime/inspectorStorage.d.ts +11 -0
- package/dist/inspector/runtime/inspectorStorage.js +37 -0
- package/dist/inspector/runtime/ownedStylesheets.d.ts +14 -0
- package/dist/inspector/runtime/ownedStylesheets.js +66 -0
- package/dist/inspector/runtime/runtimeConfig.d.ts +14 -84
- package/dist/inspector/runtime/runtimeConfig.js +18 -50
- package/dist/inspector/runtime/runtimeIdentityClaims.d.ts +19 -0
- package/dist/inspector/runtime/runtimeIdentityClaims.js +178 -0
- package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +6 -23
- package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +103 -52
- package/dist/inspector/runtime/useRuntimeConfig.d.ts +1 -8
- package/dist/inspector/runtime/useRuntimeConfig.js +1 -8
- package/dist/inspector/selection/editScope.d.ts +2 -7
- package/dist/inspector/selection/editScope.js +15 -14
- package/dist/inspector/selection/editTarget.d.ts +1 -5
- package/dist/inspector/selection/hierarchy.d.ts +11 -11
- package/dist/inspector/selection/hierarchy.js +42 -24
- package/dist/inspector/selection/selectionStore.d.ts +0 -3
- package/dist/inspector/selection/selectionStore.js +5 -16
- package/dist/inspector/selection/sourceSite.d.ts +1 -5
- package/dist/inspector/selection/sourceSite.js +2 -8
- package/dist/inspector/selection/styleSelection.d.ts +1 -5
- package/dist/inspector/selection/styleSelection.js +1 -5
- package/dist/inspector/session/lifecycle.d.ts +1 -9
- package/dist/inspector/session/lifecycle.js +0 -1
- package/dist/inspector/session/sessionContext.d.ts +0 -4
- package/dist/inspector/session/sessionContext.js +0 -4
- package/dist/inspector/session/sessionFactory.d.ts +0 -9
- package/dist/inspector/session/sessionFactory.js +0 -6
- package/dist/inspector/settings/SettingsDialog.d.ts +0 -1
- package/dist/inspector/settings/SettingsDialog.js +5 -3
- package/dist/inspector/shell/AgentStatusButton.d.ts +3 -2
- package/dist/inspector/shell/AgentStatusButton.js +7 -7
- package/dist/inspector/shell/AppShell.js +6 -2
- package/dist/inspector/shell/ChangesLog.js +29 -12
- package/dist/inspector/shell/CopyPromptButton.d.ts +2 -1
- package/dist/inspector/shell/CopyPromptButton.js +62 -55
- package/dist/inspector/shell/EmptyState.js +3 -3
- package/dist/inspector/shell/InspectorEditors.d.ts +16 -0
- package/dist/inspector/shell/InspectorEditors.js +14 -0
- package/dist/inspector/shell/InspectorPanel.d.ts +12 -0
- package/dist/inspector/shell/InspectorPanel.js +8 -0
- package/dist/inspector/shell/InspectorSelection.d.ts +24 -0
- package/dist/inspector/shell/InspectorSelection.js +20 -0
- package/dist/inspector/shell/InspectorShell.d.ts +0 -3
- package/dist/inspector/shell/InspectorShell.js +44 -58
- package/dist/inspector/shell/NudgeLogoIcon.d.ts +5 -0
- package/dist/inspector/shell/NudgeLogoIcon.js +5 -0
- package/dist/inspector/shell/PeekOriginalButton.d.ts +0 -5
- package/dist/inspector/shell/PeekOriginalButton.js +3 -8
- package/dist/inspector/shell/PeekOriginalIcon.d.ts +0 -5
- package/dist/inspector/shell/PeekOriginalIcon.js +0 -5
- package/dist/inspector/shell/PromptActionButton.d.ts +21 -0
- package/dist/inspector/shell/PromptActionButton.js +14 -0
- package/dist/inspector/shell/elementName.d.ts +5 -0
- package/dist/inspector/shell/elementName.js +29 -0
- package/dist/inspector/shell/interactionStatePreview.d.ts +6 -0
- package/dist/inspector/shell/interactionStatePreview.js +107 -0
- package/dist/inspector/shell/originalPreview.d.ts +1 -5
- package/dist/inspector/shell/originalPreview.js +5 -37
- package/dist/inspector/shell/stateValue.d.ts +1 -2
- package/dist/inspector/shell/stateValue.js +4 -8
- package/dist/inspector/shell/styleState.d.ts +1 -2
- package/dist/inspector/shell/styleState.js +1 -2
- package/dist/inspector/sketch/SketchEditor.js +5 -5
- package/dist/inspector/sketch/SketchFrameOverlay.d.ts +2 -1
- package/dist/inspector/sketch/SketchFrameOverlay.js +13 -16
- package/dist/inspector/sketch/SketchOverlay.d.ts +3 -5
- package/dist/inspector/sketch/SketchOverlay.js +138 -263
- package/dist/inspector/sketch/SketchPromptPanel.d.ts +1 -2
- package/dist/inspector/sketch/SketchPromptPanel.js +8 -2
- package/dist/inspector/sketch/SketchThumbnail.d.ts +5 -0
- package/dist/inspector/sketch/SketchThumbnail.js +18 -0
- package/dist/inspector/sketch/SketchWorkspace.d.ts +1 -2
- package/dist/inspector/sketch/SketchWorkspace.js +70 -37
- package/dist/inspector/sketch/capture.d.ts +12 -3
- package/dist/inspector/sketch/capture.js +31 -14
- package/dist/inspector/sketch/copySketch.d.ts +4 -0
- package/dist/inspector/sketch/copySketch.js +43 -0
- package/dist/inspector/sketch/drawingTools.d.ts +15 -0
- package/dist/inspector/sketch/drawingTools.js +46 -0
- package/dist/inspector/sketch/frameHeading.d.ts +3 -0
- package/dist/inspector/sketch/frameHeading.js +23 -0
- package/dist/inspector/sketch/freehand.d.ts +0 -1
- package/dist/inspector/sketch/freehand.js +3 -4
- package/dist/inspector/sketch/geometry.d.ts +2 -1
- package/dist/inspector/sketch/geometry.js +15 -1
- package/dist/inspector/sketch/handoff.js +0 -1
- package/dist/inspector/sketch/history.d.ts +26 -0
- package/dist/inspector/sketch/history.js +55 -0
- package/dist/inspector/sketch/interaction.d.ts +3 -5
- package/dist/inspector/sketch/interaction.js +8 -11
- package/dist/inspector/sketch/model.d.ts +33 -6
- package/dist/inspector/sketch/model.js +101 -63
- package/dist/inspector/sketch/persistence.d.ts +14 -1
- package/dist/inspector/sketch/persistence.js +64 -8
- package/dist/inspector/sketch/raster.d.ts +3 -2
- package/dist/inspector/sketch/raster.js +40 -20
- package/dist/inspector/sketch/store.d.ts +1 -1
- package/dist/inspector/sketch/store.js +3 -4
- package/dist/inspector/sketch/videoFrames.d.ts +6 -0
- package/dist/inspector/sketch/videoFrames.js +80 -0
- package/dist/inspector/spacing/projection.d.ts +0 -8
- package/dist/inspector/spacing/projection.js +38 -20
- package/dist/inspector/styleEditors/BackgroundEditor.js +3 -2
- package/dist/inspector/styleEditors/BorderEditor.js +30 -135
- package/dist/inspector/styleEditors/BorderRadiusEditor.js +8 -3
- package/dist/inspector/styleEditors/ChildPlacement.d.ts +12 -0
- package/dist/inspector/styleEditors/ChildPlacement.js +9 -0
- package/dist/inspector/styleEditors/FlexControls.d.ts +35 -0
- package/dist/inspector/styleEditors/FlexControls.js +158 -0
- package/dist/inspector/styleEditors/GapField.d.ts +5 -2
- package/dist/inspector/styleEditors/GapField.js +3 -4
- package/dist/inspector/styleEditors/GridChildSection.d.ts +0 -5
- package/dist/inspector/styleEditors/GridChildSection.js +0 -5
- package/dist/inspector/styleEditors/GridPicker.d.ts +1 -1
- package/dist/inspector/styleEditors/GridPicker.js +2 -4
- package/dist/inspector/styleEditors/GridSection.d.ts +10 -8
- package/dist/inspector/styleEditors/GridSection.js +22 -9
- package/dist/inspector/styleEditors/GridValueField.d.ts +1 -5
- package/dist/inspector/styleEditors/GridValueField.js +2 -8
- package/dist/inspector/styleEditors/ImageBackgroundEditor.d.ts +0 -1
- package/dist/inspector/styleEditors/ImageBackgroundEditor.js +1 -2
- package/dist/inspector/styleEditors/LayoutBlockedIndicator.d.ts +0 -1
- package/dist/inspector/styleEditors/LayoutBlockedIndicator.js +0 -1
- package/dist/inspector/styleEditors/LayoutComboField.js +0 -5
- package/dist/inspector/styleEditors/LayoutModeRow.d.ts +14 -0
- package/dist/inspector/styleEditors/LayoutModeRow.js +60 -0
- package/dist/inspector/styleEditors/LayoutSection.d.ts +2 -2
- package/dist/inspector/styleEditors/LayoutSection.js +30 -356
- package/dist/inspector/styleEditors/OpacityEditor.js +7 -5
- package/dist/inspector/styleEditors/PositionControls.d.ts +18 -0
- package/dist/inspector/styleEditors/PositionControls.js +16 -0
- package/dist/inspector/styleEditors/SizeSection.d.ts +18 -0
- package/dist/inspector/styleEditors/SizeSection.js +71 -0
- package/dist/inspector/styleEditors/{SpacingBox.d.ts → SpacingField.d.ts} +3 -10
- package/dist/inspector/styleEditors/{SpacingBox.js → SpacingField.js} +15 -29
- package/dist/inspector/styleEditors/Typography.js +2 -4
- package/dist/inspector/styleEditors/borderModel.d.ts +36 -0
- package/dist/inspector/styleEditors/borderModel.js +105 -0
- package/dist/inspector/styleEditors/completeCssValue.d.ts +1 -5
- package/dist/inspector/styleEditors/completeCssValue.js +3 -13
- package/dist/inspector/styleEditors/fieldValue.d.ts +20 -0
- package/dist/inspector/styleEditors/fieldValue.js +26 -0
- package/dist/inspector/styleEditors/gradientValue.d.ts +1 -1
- package/dist/inspector/styleEditors/gradientValue.js +3 -2
- package/dist/inspector/styleEditors/gridChildModel.d.ts +7 -47
- package/dist/inspector/styleEditors/gridChildModel.js +6 -37
- package/dist/inspector/styleEditors/hiddenSizeOverrides.d.ts +5 -0
- package/dist/inspector/styleEditors/hiddenSizeOverrides.js +42 -0
- package/dist/inspector/styleEditors/inlineAuthored.d.ts +1 -8
- package/dist/inspector/styleEditors/inlineAuthored.js +3 -17
- package/dist/inspector/styleEditors/layoutMode.d.ts +15 -0
- package/dist/inspector/styleEditors/layoutMode.js +33 -0
- package/dist/inspector/styleEditors/layoutPreviewState.d.ts +0 -1
- package/dist/inspector/styleEditors/layoutPreviewState.js +0 -1
- package/dist/inspector/styleEditors/layoutValue.d.ts +2 -8
- package/dist/inspector/styleEditors/layoutValue.js +6 -15
- package/dist/inspector/styleEditors/nudgeValue.d.ts +1 -13
- package/dist/inspector/styleEditors/nudgeValue.js +1 -13
- package/dist/inspector/styleEditors/rowLookup.d.ts +1 -5
- package/dist/inspector/styleEditors/rowLookup.js +1 -5
- package/dist/inspector/styleEditors/stringRecord.d.ts +1 -2
- package/dist/inspector/styleEditors/stylePresence.d.ts +0 -2
- package/dist/inspector/styleEditors/stylePresence.js +1 -4
- package/dist/inspector/styleEditors/textRelevance.d.ts +1 -1
- package/dist/inspector/styleEditors/textRelevance.js +1 -1
- package/dist/inspector/styleEditors/useFieldVisibility.js +1 -2
- package/dist/inspector/styleEditors/useLayoutContext.d.ts +13 -0
- package/dist/inspector/styleEditors/useLayoutContext.js +53 -0
- package/dist/inspector/styleEditors/valuePolicy.d.ts +1 -5
- package/dist/inspector/styleEditors/valuePolicy.js +0 -1
- package/dist/inspector/testing.d.ts +1 -4
- package/dist/inspector/testing.js +1 -4
- package/dist/inspector/tokens/TokenChip.d.ts +1 -4
- package/dist/inspector/tokens/TokenChip.js +1 -4
- package/dist/inspector/tokens/TokenField.d.ts +4 -3
- package/dist/inspector/tokens/TokenField.js +53 -32
- package/dist/inspector/tokens/TokensPanel.js +2 -1
- package/dist/inspector/tokens/catalog.d.ts +2 -10
- package/dist/inspector/tokens/catalog.js +5 -12
- package/dist/inspector/tokens/dragPointerLock.d.ts +0 -1
- package/dist/inspector/tokens/dragPointerLock.js +2 -3
- package/dist/inspector/tokens/editActions.d.ts +4 -4
- package/dist/inspector/tokens/editActions.js +11 -7
- package/dist/inspector/tokens/resolution/cascade.d.ts +1 -5
- package/dist/inspector/tokens/resolution/cascade.js +1 -5
- package/dist/inspector/tokens/resolution/containerQueryEvaluator.d.ts +11 -0
- package/dist/inspector/tokens/resolution/containerQueryEvaluator.js +82 -0
- package/dist/inspector/tokens/resolution/cssomCollector.d.ts +4 -19
- package/dist/inspector/tokens/resolution/cssomCollector.js +186 -122
- package/dist/inspector/tokens/resolution/nestedSelectors.d.ts +2 -0
- package/dist/inspector/tokens/resolution/nestedSelectors.js +63 -0
- package/dist/inspector/tokens/resolution/ruleMatching.d.ts +4 -14
- package/dist/inspector/tokens/resolution/ruleMatching.js +136 -63
- package/dist/inspector/tokens/resolution/selectorSemantics.d.ts +3 -14
- package/dist/inspector/tokens/resolution/selectorSemantics.js +12 -27
- package/dist/inspector/tokens/resolution.d.ts +11 -27
- package/dist/inspector/tokens/resolution.js +105 -181
- package/dist/inspector/tokens/tokenAvailability.d.ts +2 -14
- package/dist/inspector/tokens/tokenAvailability.js +6 -38
- package/dist/inspector/tokens/tokenEdits.d.ts +1 -1
- package/dist/inspector/tokens/tokenEdits.js +1 -1
- package/dist/inspector/tokens/valueSemanticsAdapter.d.ts +0 -1
- package/dist/inspector/tokens/valueSemanticsAdapter.js +18 -2
- package/dist/inspector/ui/AtRuleContext.d.ts +5 -5
- package/dist/inspector/ui/AtRuleContext.js +8 -6
- package/dist/inspector/ui/ControlSurface.d.ts +0 -4
- package/dist/inspector/ui/Disclosure.d.ts +0 -5
- package/dist/inspector/ui/Disclosure.js +0 -4
- package/dist/inspector/ui/InlineStyleWarning.d.ts +0 -1
- package/dist/inspector/ui/InlineStyleWarning.js +2 -2
- package/dist/inspector/ui/InspectorPopover.d.ts +1 -5
- package/dist/inspector/ui/InspectorPopover.js +1 -5
- package/dist/inspector/ui/InspectorStyle.d.ts +8 -0
- package/dist/inspector/ui/InspectorStyle.js +26 -0
- package/dist/inspector/ui/PopoverListbox.d.ts +2 -1
- package/dist/inspector/ui/PopoverListbox.js +3 -3
- package/dist/inspector/ui/SegmentedControl.d.ts +4 -4
- package/dist/inspector/ui/SegmentedControl.js +6 -4
- package/dist/inspector/ui/SideValuesField.d.ts +1 -6
- package/dist/inspector/ui/SideValuesField.js +2 -8
- package/dist/inspector/ui/Toast.d.ts +10 -0
- package/dist/inspector/ui/Toast.js +26 -0
- package/dist/inspector/ui/assets/canvasIllustration.d.ts +2 -0
- package/dist/inspector/ui/assets/canvasIllustration.js +21 -0
- package/dist/inspector/ui/assets/gridIllustration.d.ts +2 -0
- package/dist/inspector/ui/assets/{grid.svg → gridIllustration.js} +3 -2
- package/dist/inspector/ui/atRuleSegments.d.ts +13 -0
- package/dist/inspector/ui/atRuleSegments.js +34 -0
- package/dist/inspector/ui/classNames.d.ts +0 -1
- package/dist/inspector/ui/classNames.js +0 -1
- package/dist/inspector/ui/customCursors.d.ts +11 -0
- package/dist/inspector/ui/customCursors.js +29 -7
- package/dist/inspector/ui/styles.js +25 -25
- package/dist/inspector/workspace/commands.js +1 -2
- package/dist/inspector/workspace/controller.js +20 -2
- package/dist/inspector/workspace/handoff.d.ts +1 -5
- package/dist/inspector/workspace/handoff.js +4 -7
- package/dist/inspector/workspace/sentItems.d.ts +3 -6
- package/dist/inspector/workspace/sentItems.js +6 -24
- package/dist/inspector/workspace/timeline.d.ts +28 -11
- package/dist/inspector/workspace/timeline.js +117 -96
- package/dist/internal/agent-protocol.d.ts +53 -38
- package/dist/internal/agent-protocol.js +151 -42
- package/dist/nudge-ui.mjs +155 -92
- package/dist/project/artifacts.js +24 -21
- package/dist/project/files.d.ts +0 -1
- package/dist/project/files.js +2 -9
- package/dist/project/identity.d.ts +1 -5
- package/dist/project/identity.js +1 -5
- package/dist/project/mcpPackage.d.ts +3 -0
- package/dist/project/mcpPackage.js +55 -0
- package/dist/project/pathPolicy.d.ts +1 -6
- package/dist/project/pathPolicy.js +1 -6
- package/dist/project/tokens.d.ts +2 -12
- package/dist/project/tokens.js +4 -15
- package/dist/transport/editor.d.ts +1 -12
- package/dist/transport/editor.js +2 -13
- package/dist/transport/index.d.ts +0 -5
- package/dist/transport/index.js +0 -5
- package/dist/transport/routes.d.ts +0 -5
- package/dist/transport/routes.js +0 -5
- package/package.json +16 -5
- package/dist/inspector/canvas/measurementProjection.d.ts +0 -8
- package/dist/inspector/canvas/measurementProjection.js +0 -16
- package/dist/inspector/changes/changesLog.d.ts +0 -49
- package/dist/inspector/changes/changesLog.js +0 -255
- package/dist/inspector/changes/draftChanges.d.ts +0 -58
- package/dist/inspector/changes/draftChanges.js +0 -304
- package/dist/inspector/conformance/projection.d.ts +0 -2
- package/dist/inspector/conformance/projection.js +0 -3
- package/dist/inspector/inline-text/textChangeBoundary.d.ts +0 -6
- package/dist/inspector/inline-text/textChangeBoundary.js +0 -1
- package/dist/inspector/overlay/InspectorOverlay.d.ts +0 -5
- package/dist/inspector/overlay/InspectorOverlay.js +0 -332
- package/dist/inspector/overlay/elementSelector.d.ts +0 -1
- package/dist/inspector/overlay/elementSelector.js +0 -111
- package/dist/inspector/sketch/SketchChanges.d.ts +0 -2
- package/dist/inspector/sketch/SketchChanges.js +0 -72
- package/dist/inspector/sketch/SketchEntryButton.d.ts +0 -4
- package/dist/inspector/sketch/SketchEntryButton.js +0 -11
- package/dist/inspector/sketch/SketchLayersPanel.d.ts +0 -2
- package/dist/inspector/sketch/SketchLayersPanel.js +0 -71
- package/dist/inspector/styleEditors/InsetSection.d.ts +0 -15
- package/dist/inspector/styleEditors/InsetSection.js +0 -15
- package/dist/inspector/styleEditors/PositionInsets.d.ts +0 -15
- package/dist/inspector/styleEditors/PositionInsets.js +0 -12
- package/dist/inspector/tokens/TokenDropdown.d.ts +0 -13
- package/dist/inspector/tokens/TokenDropdown.js +0 -59
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { boundRuntimeEvidence, normalizeRuntimeTag, runtimeDomPath } from "../runtime/staticHtmlRuntimeIdentity.js";
|
|
2
|
+
import { getActiveDraftChanges, getDraftChanges } from "../drafts/store.js";
|
|
2
3
|
import { sourceSiteSelector } from "../selection/sourceSite.js";
|
|
3
4
|
import { isNudgeUiDev } from "../runtime/devFlag.js";
|
|
4
|
-
import { isTextContentChangeValue, isTextProjectionTargetValue, } from "../
|
|
5
|
+
import { isTextContentChangeValue, isTextProjectionTargetValue, } from "../changes/editModel.js";
|
|
5
6
|
import { isInteractionStylesInstalled } from "../overlay/interactionStyles.js";
|
|
6
7
|
/** Strict JSON boundary guard for a text projection target. */
|
|
7
8
|
export const isTextProjectionTarget = isTextProjectionTargetValue;
|
|
@@ -15,7 +16,6 @@ function hasOnlyKeys(value, allowed) {
|
|
|
15
16
|
export const TEXT_PROJECTION_ATTR = "data-projection-text";
|
|
16
17
|
/** Inspector-owned hit target for a projected text node whose value is empty. */
|
|
17
18
|
export const EMPTY_TEXT_PROJECTION_ATTR = "data-empty-text";
|
|
18
|
-
/** Inspector-owned exact-node evidence paired with EMPTY_TEXT_PROJECTION_ATTR. */
|
|
19
19
|
export const EMPTY_TEXT_PROJECTION_PATH_ATTR = "data-empty-text-path";
|
|
20
20
|
const UNSAFE_TEXT_TAGS = new Set(["SCRIPT", "STYLE", "TEXTAREA", "OPTION"]);
|
|
21
21
|
const UNSAFE_MIXED_DESCENDANT_TAGS = new Set([
|
|
@@ -49,19 +49,14 @@ function isEmptyTextAffordance(node) {
|
|
|
49
49
|
function hasInlineTextEditor(element) {
|
|
50
50
|
return element.querySelector('[data-inline-editor="true"]') !== null;
|
|
51
51
|
}
|
|
52
|
-
/**
|
|
53
|
-
* What the application last rendered into each projected Text node. A source
|
|
54
|
-
* update can render the projected value itself, so restoring `before` would
|
|
55
|
-
* overwrite real application output that the framework will not repaint.
|
|
56
|
-
*/
|
|
52
|
+
/** A restore must not overwrite real application output that the framework will not repaint. */
|
|
57
53
|
let applicationText = new WeakMap();
|
|
58
54
|
function isInlineEditorNode(node) {
|
|
59
55
|
return node.nodeType === 1 && (node.matches('[data-inline-editor="true"]')
|
|
60
56
|
|| hasInlineTextEditor(node));
|
|
61
57
|
}
|
|
62
58
|
function recordApplicationWrites(records) {
|
|
63
|
-
// The inline editor
|
|
64
|
-
// the draft, in one task. That write belongs to the editor.
|
|
59
|
+
// The inline editor writes the draft while swapping its wrapper back in the same task; that write belongs to the editor.
|
|
65
60
|
if (records.some((record) => record.type === "childList"
|
|
66
61
|
&& [...record.addedNodes, ...record.removedNodes].some(isInlineEditorNode)))
|
|
67
62
|
return;
|
|
@@ -166,8 +161,7 @@ function nodeAtPath(root, path) {
|
|
|
166
161
|
}
|
|
167
162
|
return current;
|
|
168
163
|
}
|
|
169
|
-
/**
|
|
170
|
-
* child path only when one bounded before/after text node remains unique. */
|
|
164
|
+
/** Tolerates a changed child path only when one before/after text node remains unique. */
|
|
171
165
|
export function resolveTextProjectionTextNode(element, target, expectedText = target.beforeText) {
|
|
172
166
|
if (target.textNodePath) {
|
|
173
167
|
const atPath = nodeAtPath(element, target.textNodePath);
|
|
@@ -190,28 +184,27 @@ export function resolveTextProjectionTextNode(element, target, expectedText = ta
|
|
|
190
184
|
}
|
|
191
185
|
return matches.length === 1 ? matches[0] : null;
|
|
192
186
|
}
|
|
193
|
-
function
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
187
|
+
export function isUnsafeTextHost(element) {
|
|
188
|
+
return UNSAFE_TEXT_TAGS.has(element.tagName);
|
|
189
|
+
}
|
|
190
|
+
export function isInApplicationEditingHost(element) {
|
|
191
|
+
const editingHost = element.closest("[contenteditable]");
|
|
192
|
+
return Boolean(editingHost
|
|
193
|
+
&& editingHost.getAttribute("data-inline-editor") !== "true"
|
|
194
|
+
&& editingHost.getAttribute("contenteditable") !== "false");
|
|
195
|
+
}
|
|
196
|
+
export function hasSafeMixedDescendants(element) {
|
|
197
|
+
// <br> only controls line layout, so it stays allowed; the projection targets one exact text node.
|
|
197
198
|
for (const descendant of Array.from(element.querySelectorAll("*"))) {
|
|
198
199
|
if (UNSAFE_MIXED_DESCENDANT_TAGS.has(descendant.tagName))
|
|
199
200
|
return false;
|
|
200
|
-
|
|
201
|
-
if (editingHost
|
|
202
|
-
&& editingHost.getAttribute("data-inline-editor") !== "true"
|
|
203
|
-
&& editingHost.getAttribute("contenteditable") !== "false")
|
|
201
|
+
if (isInApplicationEditingHost(descendant))
|
|
204
202
|
return false;
|
|
205
203
|
}
|
|
206
204
|
return true;
|
|
207
205
|
}
|
|
208
206
|
function textHostIsSafe(element, allowEmpty = false, target) {
|
|
209
|
-
if (
|
|
210
|
-
return false;
|
|
211
|
-
const editingHost = element.closest("[contenteditable]");
|
|
212
|
-
if (editingHost
|
|
213
|
-
&& editingHost.getAttribute("data-inline-editor") !== "true"
|
|
214
|
-
&& editingHost.getAttribute("contenteditable") !== "false")
|
|
207
|
+
if (isUnsafeTextHost(element) || isInApplicationEditingHost(element))
|
|
215
208
|
return false;
|
|
216
209
|
if (allowEmpty && element.childNodes.length === 0)
|
|
217
210
|
return true;
|
|
@@ -223,9 +216,7 @@ function textHostIsSafe(element, allowEmpty = false, target) {
|
|
|
223
216
|
&& (allowEmpty || textNode.nodeValue?.length)
|
|
224
217
|
&& hasSafeMixedDescendants(element));
|
|
225
218
|
}
|
|
226
|
-
//
|
|
227
|
-
// the retained empty Text node. Ignore it when proving that a direct leaf
|
|
228
|
-
// remains safe; otherwise the affordance would invalidate its own target.
|
|
219
|
+
// Ignore inspector-owned affordances here; otherwise the affordance would invalidate its own target.
|
|
229
220
|
const applicationChildren = Array.from(element.children)
|
|
230
221
|
.filter((child) => !isEmptyTextAffordance(child)
|
|
231
222
|
&& child.getAttribute("data-inline-editor") !== "true");
|
|
@@ -235,17 +226,10 @@ function textHostIsSafe(element, allowEmpty = false, target) {
|
|
|
235
226
|
if (textNodes.length === 1) {
|
|
236
227
|
return allowEmpty || Boolean(textNodes[0]?.nodeValue?.length);
|
|
237
228
|
}
|
|
238
|
-
// The
|
|
239
|
-
// that inspector-owned wrapper as transparent while validating the
|
|
240
|
-
// canonical projection; otherwise its insertion would self-report as an
|
|
241
|
-
// application reconciliation and remove the re-entry slot mid-session.
|
|
229
|
+
// The inline editor's wrapper is inspector-owned; treating it as an application child would drop the re-entry slot.
|
|
242
230
|
const editingHosts = Array.from(element.children)
|
|
243
231
|
.filter((child) => child.getAttribute("data-inline-editor") === "true");
|
|
244
|
-
// The browser may split
|
|
245
|
-
// native editor receives its first input. The wrapper is still inspector
|
|
246
|
-
// owned; its plain-text input guards are responsible for rejecting rich or
|
|
247
|
-
// paragraph edits, so validation must not cancel the session on that
|
|
248
|
-
// transient child shape.
|
|
232
|
+
// The browser may split the empty Text node on first input; that transient shape must not cancel the session.
|
|
249
233
|
return editingHosts.length === 1;
|
|
250
234
|
}
|
|
251
235
|
function sourceCandidates(doc, sourceSite) {
|
|
@@ -269,7 +253,6 @@ function evidenceMatches(element, target, expectedText) {
|
|
|
269
253
|
&& target.textNodePath === undefined
|
|
270
254
|
&& (element.textContent ?? "") === ""));
|
|
271
255
|
}
|
|
272
|
-
/** Capture stable source/evidence identity without retaining a DOM reference. */
|
|
273
256
|
export function captureTextProjectionTarget(element, beforeText = element.textContent ?? "", selectedTextNode) {
|
|
274
257
|
if (!element.isConnected)
|
|
275
258
|
return null;
|
|
@@ -295,14 +278,13 @@ export function captureTextProjectionTarget(element, beforeText = element.textCo
|
|
|
295
278
|
props: element.getAttribute("data-cprops"),
|
|
296
279
|
ariaLabel: element.getAttribute("aria-label"),
|
|
297
280
|
beforeText,
|
|
281
|
+
tagName: normalizeRuntimeTag(element.tagName),
|
|
282
|
+
elementId: boundRuntimeEvidence(element.id || null),
|
|
283
|
+
domPath: runtimeDomPath(element),
|
|
298
284
|
...pathTarget,
|
|
299
285
|
};
|
|
300
286
|
}
|
|
301
|
-
/**
|
|
302
|
-
* Resolve against source identity and bounded evidence. Occurrence is kept as
|
|
303
|
-
* presentation metadata only and is never used to choose among identical
|
|
304
|
-
* repeated outputs.
|
|
305
|
-
*/
|
|
287
|
+
/** Occurrence is presentation metadata only; identical repeated outputs resolve as ambiguous. */
|
|
306
288
|
export function resolveTextProjectionTarget(doc, target, afterText) {
|
|
307
289
|
const candidates = sourceCandidates(doc, target.sourceSite);
|
|
308
290
|
const evidence = candidates.filter((element) => evidenceMatches(element, target, target.beforeText)
|
|
@@ -347,9 +329,7 @@ function emptyTextAffordanceFor(doc, state, change, element) {
|
|
|
347
329
|
return null;
|
|
348
330
|
const parentElement = parent;
|
|
349
331
|
const path = markerKey(change.target);
|
|
350
|
-
//
|
|
351
|
-
// existing slot remains beside that wrapper; search the whole projected
|
|
352
|
-
// root before creating another slot inside the editing host.
|
|
332
|
+
// Search the whole root before creating another slot; during re-entry the editor wrapper sits between the slot and the Text node.
|
|
353
333
|
const existing = Array.from(element.querySelectorAll(`[${EMPTY_TEXT_PROJECTION_ATTR}]`))
|
|
354
334
|
.find((child) => child.getAttribute(EMPTY_TEXT_PROJECTION_ATTR) === change.id
|
|
355
335
|
&& child.getAttribute(EMPTY_TEXT_PROJECTION_PATH_ATTR) === path);
|
|
@@ -365,18 +345,13 @@ function emptyTextAffordanceFor(doc, state, change, element) {
|
|
|
365
345
|
affordance.setAttribute("role", "presentation");
|
|
366
346
|
affordance.setAttribute("contenteditable", "false");
|
|
367
347
|
affordance.tabIndex = -1;
|
|
368
|
-
//
|
|
369
|
-
// interaction stylesheet supplies its visible, borderless hit geometry.
|
|
348
|
+
// Never a source identity; the interaction stylesheet supplies its hit geometry.
|
|
370
349
|
affordance.hidden = !isInteractionStylesInstalled(doc);
|
|
371
350
|
parentElement.insertBefore(affordance, textNode.nextSibling);
|
|
372
351
|
state.emptyAffordances.set(change.id, affordance);
|
|
373
352
|
return affordance;
|
|
374
353
|
}
|
|
375
|
-
/**
|
|
376
|
-
* Keep inspector-owned empty-text hit slots aligned with the canonical text
|
|
377
|
-
* projection. Slots are colocated with the exact retained Text node, so they
|
|
378
|
-
* do not replace application structure or alter the durable text path.
|
|
379
|
-
*/
|
|
354
|
+
/** Slots are colocated with the retained Text node so they never alter the durable text path. */
|
|
380
355
|
function syncEmptyTextAffordances(doc, state, changes) {
|
|
381
356
|
const emptyChanges = new Map(changes.filter((change) => change.after.length === 0).map((change) => [change.id, change]));
|
|
382
357
|
const seen = new Set();
|
|
@@ -414,7 +389,6 @@ function syncEmptyTextAffordances(doc, state, changes) {
|
|
|
414
389
|
emptyTextAffordanceFor(doc, state, change, applied.element);
|
|
415
390
|
}
|
|
416
391
|
}
|
|
417
|
-
/** Returns the canonical record represented by an inspector empty-text slot. */
|
|
418
392
|
export function getTextContentChangeById(changeId) {
|
|
419
393
|
return canonicalChanges.get(changeId) ?? null;
|
|
420
394
|
}
|
|
@@ -450,9 +424,7 @@ function restoreAppliedProjection(state, applied) {
|
|
|
450
424
|
return;
|
|
451
425
|
if (!hasProjectionMarker(element, applied.change.target, applied.change.id))
|
|
452
426
|
return;
|
|
453
|
-
//
|
|
454
|
-
// clear. The marker, identity evidence, and projected value must all still
|
|
455
|
-
// belong to us; text alone is not proof after a source-site identity change.
|
|
427
|
+
// Only restore when the marker and identity evidence still match; text alone is not proof.
|
|
456
428
|
if (!textProjectionIdentityMatches(element, applied.change))
|
|
457
429
|
return;
|
|
458
430
|
const textNode = resolveTextProjectionTextNode(element, applied.change.target, applied.change.after);
|
|
@@ -483,11 +455,7 @@ function validationStatus(applied) {
|
|
|
483
455
|
const directEmpty = applied.change.target.textNodePath === undefined
|
|
484
456
|
&& applied.change.after.length === 0
|
|
485
457
|
&& (element.textContent ?? "") === "";
|
|
486
|
-
// While an empty projection is
|
|
487
|
-
// draft value that intentionally differs from the canonical empty value.
|
|
488
|
-
// Keep the projection applied until the editor restores its Text node and
|
|
489
|
-
// appends the next canonical snapshot; otherwise removing the slot changes
|
|
490
|
-
// the wrapper's ownership and cancels the draft mid-keystroke.
|
|
458
|
+
// While an empty projection is reopened the editor's draft intentionally differs; dropping it mid-keystroke would cancel the draft.
|
|
491
459
|
const inlineDraft = hasInlineTextEditor(element);
|
|
492
460
|
const identityValid = textProjectionIdentityMatches(element, applied.change);
|
|
493
461
|
const safe = textHostIsSafe(element, applied.change.after.length === 0, applied.change.target);
|
|
@@ -496,12 +464,7 @@ function validationStatus(applied) {
|
|
|
496
464
|
}
|
|
497
465
|
return "applied";
|
|
498
466
|
}
|
|
499
|
-
/**
|
|
500
|
-
* A controller can hydrate before a lazy route has mounted its tracked roots.
|
|
501
|
-
* Keep a missing/ambiguous record pending and retry only when the document
|
|
502
|
-
* mutates; an overridden projection remains authoritative and is never
|
|
503
|
-
* re-applied.
|
|
504
|
-
*/
|
|
467
|
+
/** Missing/ambiguous records stay pending until the document mutates; an overridden projection is never re-applied. */
|
|
505
468
|
function resolvePendingProjection(doc, state, applied) {
|
|
506
469
|
if (applied.status !== "missing" && applied.status !== "ambiguous") {
|
|
507
470
|
return validationStatus(applied);
|
|
@@ -585,7 +548,6 @@ function getDocumentState(doc) {
|
|
|
585
548
|
documentStates.set(doc, state);
|
|
586
549
|
return state;
|
|
587
550
|
}
|
|
588
|
-
/** Apply one controller-owned text snapshot to a document adapter. */
|
|
589
551
|
export function applyTextContentProjection(doc, changes) {
|
|
590
552
|
if (!isNudgeUiDev())
|
|
591
553
|
return [];
|
|
@@ -593,9 +555,7 @@ export function applyTextContentProjection(doc, changes) {
|
|
|
593
555
|
setCanonicalTextContentChanges(changes);
|
|
594
556
|
const key = JSON.stringify(changes);
|
|
595
557
|
if (state.snapshotKey === key) {
|
|
596
|
-
//
|
|
597
|
-
// reporting so a pending MutationObserver callback cannot leave a stale
|
|
598
|
-
// "applied" result visible to the Changes Log.
|
|
558
|
+
// Validate before reporting so a pending observer callback cannot leave a stale result in the Changes Log.
|
|
599
559
|
validateAppliedProjection(doc, state);
|
|
600
560
|
const reports = reportsForSnapshot(state, changes);
|
|
601
561
|
storeReports(doc, reports);
|
|
@@ -604,10 +564,7 @@ export function applyTextContentProjection(doc, changes) {
|
|
|
604
564
|
const previous = state.applied;
|
|
605
565
|
const next = new Map();
|
|
606
566
|
const incomingIds = new Set(changes.map((change) => change.id));
|
|
607
|
-
//
|
|
608
|
-
// marker/value still owned by that record; every surviving record keeps its
|
|
609
|
-
// current application status and must not be replayed merely because an
|
|
610
|
-
// unrelated change altered the shared snapshot.
|
|
567
|
+
// Removed records are an explicit revert; surviving records keep their status and must not be replayed because an unrelated change altered the snapshot.
|
|
611
568
|
for (const [id, applied] of previous) {
|
|
612
569
|
if (incomingIds.has(id))
|
|
613
570
|
continue;
|
|
@@ -655,9 +612,7 @@ export function applyTextContentProjection(doc, changes) {
|
|
|
655
612
|
}
|
|
656
613
|
state.applied = next;
|
|
657
614
|
syncEmptyTextAffordances(doc, state, changes);
|
|
658
|
-
//
|
|
659
|
-
// also cleans a marker left by a previous runtime instance without touching
|
|
660
|
-
// a surviving overridden projection in `next`.
|
|
615
|
+
// Also cleans markers left by a previous runtime instance without touching a surviving overridden projection.
|
|
661
616
|
for (const marker of Array.from(doc.querySelectorAll(`[${TEXT_PROJECTION_ATTR}]`))) {
|
|
662
617
|
const markers = readProjectionMarkers(marker);
|
|
663
618
|
for (const [key, id] of markers) {
|
|
@@ -10,6 +10,5 @@ export interface PromptSettingsFieldsProps {
|
|
|
10
10
|
onChange: (value: string) => void;
|
|
11
11
|
instructionsRef?: RefObject<HTMLTextAreaElement | null>;
|
|
12
12
|
}
|
|
13
|
-
/** Edits the instructions appended to every generated prompt. */
|
|
14
13
|
export declare function PromptSettingsFields({ value, onChange, instructionsRef, }: PromptSettingsFieldsProps): ReactElement;
|
|
15
14
|
export declare function PromptSettingsDialog({ open, value, onChange, onOpenChange, }: PromptSettingsDialogProps): ReactElement;
|
|
@@ -3,7 +3,6 @@ import { useRef } from "react";
|
|
|
3
3
|
import { Dialog } from "@base-ui/react/dialog";
|
|
4
4
|
import { IconX } from "@tabler/icons-react";
|
|
5
5
|
import { portalContainer } from "../ui/portalContainer.js";
|
|
6
|
-
/** Edits the instructions appended to every generated prompt. */
|
|
7
6
|
export function PromptSettingsFields({ value, onChange, instructionsRef, }) {
|
|
8
7
|
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "prompt-settings__field", children: _jsx("textarea", { ref: instructionsRef, id: "nudge-ui-custom-instructions", className: "prompt-settings__textarea", "data-test": "prompt-custom-instructions", "aria-label": "Custom instructions", rows: 6, value: value, onChange: (event) => onChange(event.currentTarget.value) }) }), _jsx("div", { className: "prompt-settings__actions", children: _jsx(Dialog.Close, { className: "button button--primary", "data-test": "prompt-settings-done", type: "button", children: "Done" }) })] }));
|
|
9
8
|
}
|
|
@@ -27,5 +27,6 @@ export declare function getClipboardHandoffRecords(draftId: string): {
|
|
|
27
27
|
structuralChanges: StructuralChange[];
|
|
28
28
|
};
|
|
29
29
|
export declare function reconcileClipboardHandoff(doc?: Document): Promise<number>;
|
|
30
|
+
/** A check briefly removes the copied preview, so reconciling nothing doubles the interval to avoid flashing on continuously mutating pages. */
|
|
30
31
|
export declare function startClipboardHandoffController(doc?: Document): () => void;
|
|
31
32
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { changeKey } from "../changes/model.js";
|
|
2
|
-
import { getDraftChanges, getActiveDraftChanges, subscribeActiveDraftChanges } from "../
|
|
2
|
+
import { getDraftChanges, getActiveDraftChanges, subscribeActiveDraftChanges } from "../drafts/store.js";
|
|
3
3
|
import { documentRevisions, subscribeDocumentRevision } from "../tokens/resolution/cssomCollector.js";
|
|
4
4
|
import { captureHandoffOwner, handoffChangeFingerprint, handoffStructuralFingerprint, verifyAndReconcileHandoff, } from "../agent/verification.js";
|
|
5
5
|
import { isDraftTarget } from "../drafts/model.js";
|
|
@@ -124,33 +124,50 @@ export async function reconcileClipboardHandoff(doc = document) {
|
|
|
124
124
|
}
|
|
125
125
|
return removed;
|
|
126
126
|
}
|
|
127
|
+
const CHECK_DELAY_MS = 450;
|
|
128
|
+
const MAX_CHECK_DELAY_MS = 8_000;
|
|
129
|
+
/** A check briefly removes the copied preview, so reconciling nothing doubles the interval to avoid flashing on continuously mutating pages. */
|
|
127
130
|
export function startClipboardHandoffController(doc = document) {
|
|
128
131
|
const view = doc.defaultView;
|
|
129
132
|
let timer = null;
|
|
130
133
|
let checking = false;
|
|
131
134
|
let stopped = false;
|
|
132
|
-
|
|
135
|
+
let interval = CHECK_DELAY_MS;
|
|
136
|
+
let lastCheckEndedAt = -Infinity;
|
|
137
|
+
const run = () => {
|
|
138
|
+
timer = null;
|
|
133
139
|
if (stopped || checking || !checkpoints.size)
|
|
134
140
|
return;
|
|
141
|
+
checking = true;
|
|
142
|
+
void reconcileClipboardHandoff(doc).then((removed) => {
|
|
143
|
+
interval = removed > 0 ? CHECK_DELAY_MS : Math.min(interval * 2, MAX_CHECK_DELAY_MS);
|
|
144
|
+
}, () => undefined).finally(() => {
|
|
145
|
+
lastCheckEndedAt = Date.now();
|
|
146
|
+
setTimeout(() => { checking = false; }, 0);
|
|
147
|
+
});
|
|
148
|
+
};
|
|
149
|
+
const schedule = () => {
|
|
150
|
+
if (stopped || checking || !checkpoints.size || timer !== null)
|
|
151
|
+
return;
|
|
152
|
+
// Let the change that triggered this settle, and keep the backoff interval.
|
|
153
|
+
timer = setTimeout(run, Math.max(CHECK_DELAY_MS, lastCheckEndedAt + interval - Date.now()));
|
|
154
|
+
};
|
|
155
|
+
const returned = () => {
|
|
156
|
+
interval = CHECK_DELAY_MS;
|
|
157
|
+
lastCheckEndedAt = -Infinity;
|
|
135
158
|
if (timer !== null)
|
|
136
159
|
clearTimeout(timer);
|
|
137
|
-
timer =
|
|
138
|
-
|
|
139
|
-
if (stopped || checking || !checkpoints.size)
|
|
140
|
-
return;
|
|
141
|
-
checking = true;
|
|
142
|
-
void reconcileClipboardHandoff(doc).catch(() => undefined).finally(() => {
|
|
143
|
-
setTimeout(() => { checking = false; }, 0);
|
|
144
|
-
});
|
|
145
|
-
}, 450);
|
|
160
|
+
timer = null;
|
|
161
|
+
schedule();
|
|
146
162
|
};
|
|
147
163
|
const visible = () => { if (doc.visibilityState === "visible")
|
|
148
|
-
|
|
164
|
+
returned(); };
|
|
149
165
|
documentRevisions(doc);
|
|
150
166
|
const stopRevision = subscribeDocumentRevision(doc, schedule);
|
|
151
167
|
const stopChanges = subscribeActiveDraftChanges(pruneCheckpoints);
|
|
152
|
-
|
|
153
|
-
view?.addEventListener("
|
|
168
|
+
const stopHandoff = subscribeClipboardHandoff(() => { interval = CHECK_DELAY_MS; });
|
|
169
|
+
view?.addEventListener("focus", returned);
|
|
170
|
+
view?.addEventListener("pageshow", returned);
|
|
154
171
|
doc.addEventListener("visibilitychange", visible);
|
|
155
172
|
schedule();
|
|
156
173
|
return () => {
|
|
@@ -159,8 +176,9 @@ export function startClipboardHandoffController(doc = document) {
|
|
|
159
176
|
clearTimeout(timer);
|
|
160
177
|
stopRevision();
|
|
161
178
|
stopChanges();
|
|
162
|
-
|
|
163
|
-
view?.removeEventListener("
|
|
179
|
+
stopHandoff();
|
|
180
|
+
view?.removeEventListener("focus", returned);
|
|
181
|
+
view?.removeEventListener("pageshow", returned);
|
|
164
182
|
doc.removeEventListener("visibilitychange", visible);
|
|
165
183
|
};
|
|
166
184
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ChangeRecord } from "../changes/
|
|
1
|
+
import type { ChangeRecord } from "../changes/types.js";
|
|
2
2
|
import type { StructuralChange } from "../projection/structuralProjection.js";
|
|
3
3
|
import type { AgentSketchMetadata } from "../agent/protocol.js";
|
|
4
4
|
import { type ElementComment } from "../comments/store.js";
|
|
@@ -6,6 +6,6 @@ export interface FrameworkHints {
|
|
|
6
6
|
framework?: string;
|
|
7
7
|
stylingSystem?: string;
|
|
8
8
|
}
|
|
9
|
-
/** Counts the
|
|
9
|
+
/** Counts the exported intents, not the raw gesture history. */
|
|
10
10
|
export declare function countPromptChanges(changes: readonly ChangeRecord[], structuralChanges?: readonly StructuralChange[], sketchCount?: number): number;
|
|
11
11
|
export declare function generatePrompt(changes: ChangeRecord[], frameworkHints?: FrameworkHints, structuralChanges?: readonly StructuralChange[], customInstructions?: string, sketches?: readonly AgentSketchMetadata[], comments?: readonly ElementComment[]): string;
|