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
package/dist/inspector/index.js
CHANGED
|
@@ -1,268 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import { createElement } from "react";
|
|
3
|
-
import { createRoot } from "react-dom/client";
|
|
4
|
-
import { InspectorShell, toggleInspector, setInspectorOpen } from "./shell/InspectorShell.js";
|
|
5
|
-
import { setSelectedElement } from "./selection/selectionStore.js";
|
|
6
|
-
import { removeManagedSheet } from "./projection/managedStylesheet.js";
|
|
7
|
-
import { isInspectorToggleShortcut, isOriginalPreviewShortcut, SEND_PROMPT_HOTKEY_EVENT, } from "./shell/shortcuts.js";
|
|
8
|
-
import { isCanvasRenderer } from "./canvas/roleDetection.js";
|
|
9
|
-
import { isKeyboardShortcutMessage } from "./canvas/frameProtocol.js";
|
|
10
|
-
import { subscribeCanvasRendererMessages } from "./canvas/rendererMessageRouter.js";
|
|
11
|
-
import { bootstrapRenderer } from "./canvas/rendererBootstrap.js";
|
|
12
|
-
import { setRestoreCount, } from "./canvas/sessionStore.js";
|
|
13
|
-
import { getChangesList } from "./changes/changesLog.js";
|
|
14
|
-
import { acquireLease, enableWriteGuard, hasWriteLease, subscribeOwnership, } from "./canvas/workspaceLease.js";
|
|
15
|
-
import { cancelStaleDetection, startStaleDetection } from "./canvas/staleChangeDetector.js";
|
|
16
|
-
import { LockedWorkspaceNotice } from "./canvas/LockedWorkspaceNotice.js";
|
|
17
|
-
import { AppShell } from "./shell/AppShell.js";
|
|
18
|
-
import { installInspectionBridge } from "./inspection/bridge.js";
|
|
19
|
-
import { releaseDocumentProjection, getStructuralChanges } from "./projection/structuralProjection.js";
|
|
20
|
-
import { cancelInlineTextEdit } from "./inline-text/inlineTextEditor.js";
|
|
21
|
-
import { configureNudgeUiRuntime, getNudgeUiRuntimeConfig, isDemoRuntime } from "./runtime/runtimeConfig.js";
|
|
22
|
-
import { setCanvasMode } from "./canvas/viewStore.js";
|
|
23
|
-
import { isNudgeUiDev, setNudgeUiHostDevFlag } from "./runtime/devFlag.js";
|
|
24
|
-
import { clearClipboardHandoff, } from "./prompt/clipboardHandoff.js";
|
|
25
|
-
import { createWorkspace, InspectorSessionProvider, } from "./session/index.js";
|
|
26
|
-
import { clearSketchClipboardHandoff } from "./sketch/handoff.js";
|
|
27
|
-
import { cancelSketchInteraction, isSketchInteractionActive } from "./sketch/interaction.js";
|
|
28
|
-
import { setOriginalPreviewActive } from "./shell/originalPreview.js";
|
|
29
|
-
import { initializeSketchStore } from "./sketch/store.js";
|
|
1
|
+
export { bootstrapNudgeUi, mountInspector, unmountInspector } from "./boot.js";
|
|
30
2
|
export { resolveNudgeUiClientEntry } from "../transport/editor.js";
|
|
31
|
-
|
|
32
|
-
let reactRoot = null;
|
|
33
|
-
let lockedRoot = null;
|
|
34
|
-
const workspace = createWorkspace();
|
|
35
|
-
let inspectorSession = null;
|
|
36
|
-
let rendererBootstrapHandle = null;
|
|
37
|
-
let workspaceController = null;
|
|
38
|
-
let unsubscribeOwnership = null;
|
|
39
|
-
let removeInspectionBridge = null;
|
|
40
|
-
let keyboardPeekHeld = false;
|
|
41
|
-
function onKeydown(e) {
|
|
42
|
-
if (isSketchInteractionActive())
|
|
43
|
-
return;
|
|
44
|
-
if (isInspectorToggleShortcut(e)) {
|
|
45
|
-
toggleInspector();
|
|
46
|
-
e.preventDefault();
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
if (isOriginalPreviewShortcut(e)) {
|
|
50
|
-
keyboardPeekHeld = true;
|
|
51
|
-
setOriginalPreviewActive(true);
|
|
52
|
-
e.preventDefault();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
function onKeyup(e) {
|
|
56
|
-
// Release only a keyboard-started peek so a button-held preview survives
|
|
57
|
-
// unrelated Backslash keyups (e.g. the panel-toggle shortcuts pressed
|
|
58
|
-
// mid-hold). A guarded keydown never sets the flag, so this stays a no-op
|
|
59
|
-
// for keyups without a matching hold.
|
|
60
|
-
if (e.code === "Backslash" && keyboardPeekHeld) {
|
|
61
|
-
keyboardPeekHeld = false;
|
|
62
|
-
setOriginalPreviewActive(false);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
function onRendererKeyboardShortcut(message, identity) {
|
|
66
|
-
if (!isKeyboardShortcutMessage(message, identity))
|
|
67
|
-
return;
|
|
68
|
-
if (message.code === "KeyS" && message.phase === "keydown") {
|
|
69
|
-
window.dispatchEvent(new Event(SEND_PROMPT_HOTKEY_EVENT));
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
if (message.code !== "Backslash")
|
|
73
|
-
return;
|
|
74
|
-
if (message.phase === "keydown") {
|
|
75
|
-
keyboardPeekHeld = true;
|
|
76
|
-
setOriginalPreviewActive(true);
|
|
77
|
-
}
|
|
78
|
-
else if (keyboardPeekHeld) {
|
|
79
|
-
keyboardPeekHeld = false;
|
|
80
|
-
setOriginalPreviewActive(false);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
function disposeInspectorSession() {
|
|
84
|
-
const session = inspectorSession;
|
|
85
|
-
inspectorSession = null;
|
|
86
|
-
session?.dispose();
|
|
87
|
-
}
|
|
88
|
-
export function bootstrapNudgeUi(inspectorHost) {
|
|
89
|
-
const runtimeConfig = getNudgeUiRuntimeConfig();
|
|
90
|
-
const explicitDemo = isDemoRuntime();
|
|
91
|
-
if (!isNudgeUiDev() && !explicitDemo)
|
|
92
|
-
return;
|
|
93
|
-
if (explicitDemo) {
|
|
94
|
-
rendererBootstrapHandle?.teardown();
|
|
95
|
-
rendererBootstrapHandle = null;
|
|
96
|
-
// ADR-0014: only the configured demo runtime opens the shared dev gate
|
|
97
|
-
// for its own document. The bundle mode name alone must never flip it,
|
|
98
|
-
// so every build without both opt-ins stays governed by ADR-0002.
|
|
99
|
-
setNudgeUiHostDevFlag(true);
|
|
100
|
-
if (runtimeConfig.capabilities.canvas && isCanvasRenderer()) {
|
|
101
|
-
rendererBootstrapHandle = bootstrapRenderer() ?? null;
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
// The public demo shares the iframe editor while keeping the write lease,
|
|
105
|
-
// persistence, and agent bridge disabled.
|
|
106
|
-
setCanvasMode("canvas");
|
|
107
|
-
workspaceController?.dispose();
|
|
108
|
-
workspaceController = startWorkspaceController();
|
|
109
|
-
mountInspector(inspectorHost);
|
|
110
|
-
setInspectorOpen(false);
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
if (!runtimeConfig.capabilities.canvas) {
|
|
114
|
-
// A project can be reopened with a runtime that does not expose Canvas.
|
|
115
|
-
// Clear any stale in-memory mode before mounting the static inspector.
|
|
116
|
-
setCanvasMode("inspect");
|
|
117
|
-
}
|
|
118
|
-
rendererBootstrapHandle?.teardown();
|
|
119
|
-
rendererBootstrapHandle = null;
|
|
120
|
-
removeInspectionBridge?.();
|
|
121
|
-
removeInspectionBridge = installInspectionBridge();
|
|
122
|
-
if (getNudgeUiRuntimeConfig().capabilities.canvas && isCanvasRenderer()) {
|
|
123
|
-
rendererBootstrapHandle = bootstrapRenderer() ?? null;
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
enableWriteGuard();
|
|
127
|
-
const leaseGranted = acquireLease();
|
|
128
|
-
if (!leaseGranted) {
|
|
129
|
-
mountLockedNotice(inspectorHost);
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
startController(inspectorHost);
|
|
133
|
-
}
|
|
134
|
-
function startController(inspectorHost) {
|
|
135
|
-
if (!hasWriteLease()) {
|
|
136
|
-
mountLockedNotice(inspectorHost);
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
if (lockedRoot) {
|
|
140
|
-
lockedRoot.unmount();
|
|
141
|
-
lockedRoot = null;
|
|
142
|
-
}
|
|
143
|
-
void initializeSketchStore(getNudgeUiRuntimeConfig().projectId).catch(() => undefined);
|
|
144
|
-
unsubscribeOwnership?.();
|
|
145
|
-
unsubscribeOwnership = subscribeOwnership((hasLease) => {
|
|
146
|
-
if (!hasLease) {
|
|
147
|
-
workspaceController?.dispose();
|
|
148
|
-
workspaceController = null;
|
|
149
|
-
mountLockedNotice(inspectorHost);
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
workspaceController?.dispose();
|
|
153
|
-
const result = startWorkspaceController();
|
|
154
|
-
workspaceController = result;
|
|
155
|
-
if (result.restored) {
|
|
156
|
-
setRestoreCount(getChangesList().length + getStructuralChanges().length);
|
|
157
|
-
const restored = getChangesList();
|
|
158
|
-
if (restored.length > 0) {
|
|
159
|
-
startStaleDetection(restored);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
if (getNudgeUiRuntimeConfig().capabilities.canvas) {
|
|
163
|
-
// Normal controllers always host the iframe workspace. Hydration runs
|
|
164
|
-
// first so this mode change cannot discard cards, camera, or edits.
|
|
165
|
-
setCanvasMode("canvas");
|
|
166
|
-
}
|
|
167
|
-
mountInspector(inspectorHost);
|
|
168
|
-
}
|
|
169
|
-
function mountLockedNotice(host) {
|
|
170
|
-
if (reactRoot) {
|
|
171
|
-
reactRoot.unmount();
|
|
172
|
-
reactRoot = null;
|
|
173
|
-
}
|
|
174
|
-
try {
|
|
175
|
-
disposeInspectorSession();
|
|
176
|
-
}
|
|
177
|
-
finally {
|
|
178
|
-
cancelStaleDetection();
|
|
179
|
-
setInspectorOpen(false);
|
|
180
|
-
cancelInlineTextEdit();
|
|
181
|
-
cancelSketchInteraction();
|
|
182
|
-
clearSketchClipboardHandoff();
|
|
183
|
-
setSelectedElement(null);
|
|
184
|
-
removeManagedSheet();
|
|
185
|
-
releaseDocumentProjection(document);
|
|
186
|
-
hostElement = null;
|
|
187
|
-
unsubscribeOwnership?.();
|
|
188
|
-
unsubscribeOwnership = null;
|
|
189
|
-
}
|
|
190
|
-
const shadow = host.shadowRoot ?? host.attachShadow({ mode: "open" });
|
|
191
|
-
if (!lockedRoot) {
|
|
192
|
-
lockedRoot = createRoot(shadow);
|
|
193
|
-
}
|
|
194
|
-
lockedRoot.render(createElement(LockedWorkspaceNotice, {
|
|
195
|
-
onTakeover: () => startController(host),
|
|
196
|
-
}));
|
|
197
|
-
}
|
|
198
|
-
export function mountInspector(host) {
|
|
199
|
-
const demo = isDemoRuntime();
|
|
200
|
-
if (!demo && !hasWriteLease())
|
|
201
|
-
return;
|
|
202
|
-
const runtimeConfig = getNudgeUiRuntimeConfig();
|
|
203
|
-
if (runtimeConfig.capabilities.domNavigation !== true) {
|
|
204
|
-
configureNudgeUiRuntime({
|
|
205
|
-
...runtimeConfig,
|
|
206
|
-
capabilities: { ...runtimeConfig.capabilities, domNavigation: true },
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
if (lockedRoot) {
|
|
210
|
-
lockedRoot.unmount();
|
|
211
|
-
lockedRoot = null;
|
|
212
|
-
}
|
|
213
|
-
if (!hostElement)
|
|
214
|
-
hostElement = host;
|
|
215
|
-
const shadow = host.shadowRoot ?? host.attachShadow({ mode: "open" });
|
|
216
|
-
if (!reactRoot) {
|
|
217
|
-
reactRoot = createRoot(shadow);
|
|
218
|
-
inspectorSession = workspace.createInspectorSession(host);
|
|
219
|
-
inspectorSession.registerCleanup(() => window.removeEventListener("keydown", onKeydown));
|
|
220
|
-
inspectorSession.registerCleanup(() => window.removeEventListener("keyup", onKeyup));
|
|
221
|
-
inspectorSession.registerCleanup(subscribeCanvasRendererMessages(({ identity, message }) => {
|
|
222
|
-
onRendererKeyboardShortcut(message, identity);
|
|
223
|
-
}));
|
|
224
|
-
reactRoot.render(createElement(InspectorSessionProvider, { inspector: inspectorSession, documentSession: null }, createElement(AppShell)));
|
|
225
|
-
window.addEventListener("keydown", onKeydown);
|
|
226
|
-
window.addEventListener("keyup", onKeyup);
|
|
227
|
-
}
|
|
228
|
-
setInspectorOpen(true);
|
|
229
|
-
}
|
|
230
|
-
export function unmountInspector() {
|
|
231
|
-
rendererBootstrapHandle?.teardown();
|
|
232
|
-
rendererBootstrapHandle = null;
|
|
233
|
-
workspaceController?.dispose();
|
|
234
|
-
workspaceController = null;
|
|
235
|
-
unsubscribeOwnership?.();
|
|
236
|
-
unsubscribeOwnership = null;
|
|
237
|
-
if (lockedRoot) {
|
|
238
|
-
lockedRoot.unmount();
|
|
239
|
-
lockedRoot = null;
|
|
240
|
-
}
|
|
241
|
-
cancelStaleDetection();
|
|
242
|
-
cancelInlineTextEdit();
|
|
243
|
-
cancelSketchInteraction();
|
|
244
|
-
setSelectedElement(null);
|
|
245
|
-
if (reactRoot) {
|
|
246
|
-
reactRoot.unmount();
|
|
247
|
-
reactRoot = null;
|
|
248
|
-
}
|
|
249
|
-
try {
|
|
250
|
-
disposeInspectorSession();
|
|
251
|
-
}
|
|
252
|
-
finally {
|
|
253
|
-
// Document-session cleanup already releases host projection when a
|
|
254
|
-
// session exists; release directly as well so projection applied outside
|
|
255
|
-
// a session (gestures, workspace projection) cannot leak across unmount.
|
|
256
|
-
releaseDocumentProjection(document);
|
|
257
|
-
clearClipboardHandoff();
|
|
258
|
-
clearSketchClipboardHandoff();
|
|
259
|
-
removeManagedSheet();
|
|
260
|
-
removeInspectionBridge?.();
|
|
261
|
-
removeInspectionBridge = null;
|
|
262
|
-
hostElement = null;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
export { toggleInspector, setInspectorOpen } from "./shell/InspectorShell.js";
|
|
3
|
+
export { toggleInspector, setInspectorOpen } from "./shell/openStore.js";
|
|
266
4
|
export { InspectorShell } from "./shell/InspectorShell.js";
|
|
267
5
|
export { detectFramework } from "./prompt/detectFramework.js";
|
|
268
6
|
export { installStaticHtmlRuntimeIdentity, isRuntimeGeneratedSource, RUNTIME_ELEMENT_CID_PREFIX, RUNTIME_UNKNOWN_SOURCE_PREFIX, } from "./runtime/staticHtmlRuntimeIdentity.js";
|
|
@@ -4,7 +4,5 @@ export declare function getInlineTextDiagnostics(): readonly InlineTextDiagnosti
|
|
|
4
4
|
export declare function getInlineTextDiagnostic(): InlineTextDiagnostic | null;
|
|
5
5
|
export declare function subscribeInlineTextDiagnostics(listener: () => void): () => void;
|
|
6
6
|
export declare function useInlineTextDiagnostic(): InlineTextDiagnostic | null;
|
|
7
|
-
/** Clear the current diagnostic, optionally only when it belongs to a frame. */
|
|
8
7
|
export declare function clearInlineTextDiagnostics(ownerDocument?: Document): void;
|
|
9
|
-
/** Keep feedback for the target that was just selected, but clear stale feedback. */
|
|
10
8
|
export declare function clearInlineTextDiagnosticsForSelection(selectedElements: readonly HTMLElement[]): void;
|
|
@@ -43,7 +43,6 @@ export function useInlineTextDiagnostic() {
|
|
|
43
43
|
useSyncExternalStore(subscribeInlineTextDiagnostics, () => revision, () => revision);
|
|
44
44
|
return getInlineTextDiagnostic();
|
|
45
45
|
}
|
|
46
|
-
/** Clear the current diagnostic, optionally only when it belongs to a frame. */
|
|
47
46
|
export function clearInlineTextDiagnostics(ownerDocument) {
|
|
48
47
|
const current = diagnostics.at(-1);
|
|
49
48
|
if (!current)
|
|
@@ -53,7 +52,6 @@ export function clearInlineTextDiagnostics(ownerDocument) {
|
|
|
53
52
|
diagnostics = [];
|
|
54
53
|
notify();
|
|
55
54
|
}
|
|
56
|
-
/** Keep feedback for the target that was just selected, but clear stale feedback. */
|
|
57
55
|
export function clearInlineTextDiagnosticsForSelection(selectedElements) {
|
|
58
56
|
const current = diagnostics.at(-1);
|
|
59
57
|
if (!current)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type TextBindingChoice, type TextEditBinding, type TextEditRejection, type TextEditRejectionReason } from "../componentSemantics/textBinding.js";
|
|
2
2
|
import type { ChangeRecord } from "../changes/types.js";
|
|
3
|
-
import type { TextProjectionScope } from "
|
|
3
|
+
import type { TextProjectionScope } from "../changes/editModel.js";
|
|
4
4
|
export type { TextEditBinding, TextEditRejection } from "../componentSemantics/textBinding.js";
|
|
5
5
|
export type { TextBindingCandidate } from "../componentSemantics/textBinding.js";
|
|
6
6
|
export interface InlineTextSession {
|
|
@@ -37,7 +37,6 @@ export declare function getInlineTextSession(): InlineTextSession | null;
|
|
|
37
37
|
export declare function useInlineTextSession(): InlineTextSession | null;
|
|
38
38
|
export declare function isInlineTextEditingActive(): boolean;
|
|
39
39
|
export declare function cancelInlineTextEdit(): void;
|
|
40
|
-
/** End a session owned by a document/frame that is about to be disposed. */
|
|
41
40
|
export declare function disposeInlineTextEdit(reason?: "frame-disposed" | "route-disposed", ownerDocument?: Document): void;
|
|
42
41
|
export type InlineTextEditIntent = {
|
|
43
42
|
kind: "pointer-down";
|
|
@@ -55,15 +54,10 @@ export type InlineTextEditIntent = {
|
|
|
55
54
|
y: number;
|
|
56
55
|
};
|
|
57
56
|
};
|
|
58
|
-
/**
|
|
59
|
-
* Handle one native interaction while keeping session-transition policy
|
|
60
|
-
* local. Pointer-down preserves double-click intent across the first click's
|
|
61
|
-
* blur commit, even when canonical projection replaces the target DOM.
|
|
62
|
-
*/
|
|
57
|
+
/** Pointer-down preserves double-click intent across the first click's blur commit. */
|
|
63
58
|
export declare function handleInlineTextEditIntent(intent: InlineTextEditIntent): InlineTextInteractionDisposition;
|
|
64
59
|
export declare const inlineTextEditor: InlineTextEditor;
|
|
65
|
-
/** Re-
|
|
66
|
-
* inspector affordance. This never guesses a new DOM target or source node. */
|
|
60
|
+
/** Re-enters an existing projection; never guesses a new DOM target or source node. */
|
|
67
61
|
export declare function beginInlineTextEditFromEmptyProjection(marker: HTMLElement): InlineTextSession | TextEditRejection;
|
|
68
62
|
export declare function beginInlineTextEdit(element: HTMLElement, point?: {
|
|
69
63
|
x: number;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { canEditDraft } from "../
|
|
1
|
+
import { appendChange, canEditDraft } from "../drafts/store.js";
|
|
2
2
|
import { useSyncExternalStore } from "react";
|
|
3
|
-
import { appendChange } from "../changes/changesLog.js";
|
|
4
3
|
import { registerInlineTextClearHandler } from "./inlineTextLifecycle.js";
|
|
5
4
|
import { isNudgeUiDev } from "../runtime/devFlag.js";
|
|
6
5
|
import { initialTextEditDecision, chooseTextEditBinding, getTextEditScopeChoices, getTextEditBinding, prepareTextEditChange, } from "./textEditChange.js";
|
|
@@ -12,8 +11,7 @@ const listeners = new Set();
|
|
|
12
11
|
let activeSession = null;
|
|
13
12
|
let activeSessionDocument = null;
|
|
14
13
|
let pendingEditIntent = null;
|
|
15
|
-
//
|
|
16
|
-
// and dblclick; only the next handoff attempt or explicit teardown consumes it.
|
|
14
|
+
// Stays armed if blur replaces the DOM between the second pointer-down and dblclick; the next handoff attempt or teardown consumes it.
|
|
17
15
|
let handoffPointerArmed = false;
|
|
18
16
|
let pendingReplayScheduled = false;
|
|
19
17
|
let sessionRevision = 0;
|
|
@@ -52,7 +50,6 @@ export function cancelInlineTextEdit() {
|
|
|
52
50
|
else
|
|
53
51
|
clearInlineTextDiagnostics();
|
|
54
52
|
}
|
|
55
|
-
/** End a session owned by a document/frame that is about to be disposed. */
|
|
56
53
|
export function disposeInlineTextEdit(reason = "frame-disposed", ownerDocument) {
|
|
57
54
|
if (!ownerDocument) {
|
|
58
55
|
discardPendingInlineTextEdit();
|
|
@@ -135,11 +132,7 @@ function schedulePendingInlineTextEdit() {
|
|
|
135
132
|
drainPendingInlineTextEdit();
|
|
136
133
|
});
|
|
137
134
|
}
|
|
138
|
-
/**
|
|
139
|
-
* Request inline editing from a document gesture. This is the interaction
|
|
140
|
-
* seam: it owns active-session handoff so gesture routers never discard a
|
|
141
|
-
* valid target switch merely because another draft is settling.
|
|
142
|
-
*/
|
|
135
|
+
/** Owns active-session handoff so gesture routers never discard a valid target switch. */
|
|
143
136
|
function requestInlineTextEdit(target, point) {
|
|
144
137
|
if (activeSession) {
|
|
145
138
|
const hitTarget = target.ownerDocument.elementFromPoint?.(point.x, point.y);
|
|
@@ -148,10 +141,7 @@ function requestInlineTextEdit(target, point) {
|
|
|
148
141
|
return "stop-propagation";
|
|
149
142
|
}
|
|
150
143
|
}
|
|
151
|
-
// Application-owned contenteditable surfaces must
|
|
152
|
-
// semantics. They are intentionally rejected by text binding, but that
|
|
153
|
-
// rejection must not become an inspector-level suppression when another
|
|
154
|
-
// inline edit is already active.
|
|
144
|
+
// Application-owned contenteditable surfaces keep native editing semantics; their binding rejection must not become an inspector-level suppression.
|
|
155
145
|
if (isApplicationOwnedEditingSurface(target))
|
|
156
146
|
return "pass-through";
|
|
157
147
|
const intent = {
|
|
@@ -171,11 +161,7 @@ function requestInlineTextEdit(target, point) {
|
|
|
171
161
|
drainPendingInlineTextEdit();
|
|
172
162
|
return "suppress";
|
|
173
163
|
}
|
|
174
|
-
/**
|
|
175
|
-
* Handle one native interaction while keeping session-transition policy
|
|
176
|
-
* local. Pointer-down preserves double-click intent across the first click's
|
|
177
|
-
* blur commit, even when canonical projection replaces the target DOM.
|
|
178
|
-
*/
|
|
164
|
+
/** Pointer-down preserves double-click intent across the first click's blur commit. */
|
|
179
165
|
export function handleInlineTextEditIntent(intent) {
|
|
180
166
|
if (intent.kind === "double-click") {
|
|
181
167
|
return requestInlineTextEdit(intent.target, intent.point);
|
|
@@ -222,9 +208,7 @@ function restoreSelection(doc, snapshot) {
|
|
|
222
208
|
selection.addRange(range);
|
|
223
209
|
}
|
|
224
210
|
catch {
|
|
225
|
-
// A framework rerender can invalidate a saved range
|
|
226
|
-
// and restoration. Removing the transient selection is safer than
|
|
227
|
-
// retaining a range in a detached editing wrapper.
|
|
211
|
+
// A framework rerender can invalidate a saved range; dropping the selection beats keeping a range in a detached wrapper.
|
|
228
212
|
selection.removeAllRanges();
|
|
229
213
|
}
|
|
230
214
|
}
|
|
@@ -241,14 +225,11 @@ function restoreDraft(candidate, host, text, ownership) {
|
|
|
241
225
|
if (!hostIsOwned(candidate, host, ownership))
|
|
242
226
|
return false;
|
|
243
227
|
const original = candidate.textNode;
|
|
244
|
-
//
|
|
245
|
-
// detached. If reconciliation moved that node into another live tree,
|
|
246
|
-
// never move it back into the captured position.
|
|
228
|
+
// Typing detaches the original node inside the wrapper; if reconciliation moved it into another live tree, never move it back.
|
|
247
229
|
if (original.isConnected && original.parentNode !== host)
|
|
248
230
|
return false;
|
|
249
231
|
original.nodeValue = text;
|
|
250
|
-
//
|
|
251
|
-
// preserves every sibling/descendant of an icon-plus-label host.
|
|
232
|
+
// Replacing only the transient wrapper preserves siblings/descendants of an icon-plus-label host.
|
|
252
233
|
host.replaceWith(original);
|
|
253
234
|
return true;
|
|
254
235
|
}
|
|
@@ -269,8 +250,7 @@ function rangeInsideHost(host, range) {
|
|
|
269
250
|
if (!isNodeInsideHost(host, range.startContainer)
|
|
270
251
|
|| !isNodeInsideHost(host, range.endContainer))
|
|
271
252
|
return false;
|
|
272
|
-
//
|
|
273
|
-
// inside it; StaticRange does not expose commonAncestorContainer.
|
|
253
|
+
// Endpoints inside the host imply the common ancestor is too; StaticRange does not expose commonAncestorContainer.
|
|
274
254
|
return true;
|
|
275
255
|
}
|
|
276
256
|
function selectionInsideHost(host) {
|
|
@@ -412,8 +392,7 @@ function makeSession(candidate) {
|
|
|
412
392
|
const originalParent = candidate.textNode.parentNode;
|
|
413
393
|
const originalNextSibling = candidate.textNode.nextSibling;
|
|
414
394
|
if (!originalParent) {
|
|
415
|
-
//
|
|
416
|
-
// boundary defensive if a framework mutates between resolution and wrap.
|
|
395
|
+
// resolveTextBinding returns connected text nodes, but a framework can mutate between resolution and wrap.
|
|
417
396
|
throw new Error("Inline text target lost its parent before editing began.");
|
|
418
397
|
}
|
|
419
398
|
const ownership = { parent: originalParent, nextSibling: originalNextSibling };
|
|
@@ -424,12 +403,7 @@ function makeSession(candidate) {
|
|
|
424
403
|
host.setAttribute("contenteditable", "plaintext-only");
|
|
425
404
|
host.contentEditable = "plaintext-only";
|
|
426
405
|
candidate.textNode.replaceWith(host);
|
|
427
|
-
//
|
|
428
|
-
// the first child of a native contenteditable makes Chromium insert the
|
|
429
|
-
// first character beside it. The input handler then has to coalesce two
|
|
430
|
-
// text nodes and the browser resets the caret to the start, reversing the
|
|
431
|
-
// visible draft. Let the empty editor start childless; restoreDraft still
|
|
432
|
-
// puts the captured node back at the owned insertion point on exit.
|
|
406
|
+
// A leading empty Text node makes Chromium insert the first character beside it and reset the caret; start childless and let restoreDraft put the node back on exit.
|
|
433
407
|
if (candidate.before.length > 0)
|
|
434
408
|
host.append(candidate.textNode);
|
|
435
409
|
let finished = false;
|
|
@@ -487,8 +461,7 @@ function makeSession(candidate) {
|
|
|
487
461
|
if (finished)
|
|
488
462
|
return;
|
|
489
463
|
const restoreFocus = editorOwnsFocus();
|
|
490
|
-
// A moved
|
|
491
|
-
// temporary wrapper; never reinsert the original node into a new tree.
|
|
464
|
+
// A moved host has no safe insertion point: remove the wrapper, never reinsert the original node.
|
|
492
465
|
if (host.isConnected)
|
|
493
466
|
host.remove();
|
|
494
467
|
finish("app-reconciled", "cancelled", discardedDraft, restoreFocus);
|
|
@@ -554,9 +527,7 @@ function makeSession(candidate) {
|
|
|
554
527
|
}
|
|
555
528
|
}
|
|
556
529
|
}
|
|
557
|
-
//
|
|
558
|
-
// non-empty value is synchronously reconciled by the text projection,
|
|
559
|
-
// which removes it after this session cleanup.
|
|
530
|
+
// Restore the affordance on cancel/unchanged; a committed non-empty value is removed by projection reconciliation.
|
|
560
531
|
if (candidate.emptyProjectionMarker?.isConnected) {
|
|
561
532
|
candidate.emptyProjectionMarker.hidden = false;
|
|
562
533
|
}
|
|
@@ -567,8 +538,7 @@ function makeSession(candidate) {
|
|
|
567
538
|
if (finished)
|
|
568
539
|
return;
|
|
569
540
|
if (event.isComposing || composing) {
|
|
570
|
-
// Enter/Escape belong to the IME until compositionend
|
|
571
|
-
// session alive makes the composition one canonical edit.
|
|
541
|
+
// Enter/Escape belong to the IME until compositionend; keeping the session alive makes the composition one canonical edit.
|
|
572
542
|
event.stopPropagation();
|
|
573
543
|
if (event.key === "Enter" || event.key === "Escape" || event.key === "Esc") {
|
|
574
544
|
event.preventDefault();
|
|
@@ -593,10 +563,7 @@ function makeSession(candidate) {
|
|
|
593
563
|
session.cancel();
|
|
594
564
|
return;
|
|
595
565
|
}
|
|
596
|
-
// Keep inspector
|
|
597
|
-
// browser to handle ordinary typing and caret movement natively. The
|
|
598
|
-
// listener is scoped to this host so it does not intercept native input
|
|
599
|
-
// before the contenteditable target sees it.
|
|
566
|
+
// Keep inspector shortcuts out of the draft while native typing and caret movement still run.
|
|
600
567
|
event.stopPropagation();
|
|
601
568
|
}
|
|
602
569
|
function onBlur() {
|
|
@@ -605,8 +572,7 @@ function makeSession(candidate) {
|
|
|
605
572
|
blurPending = true;
|
|
606
573
|
if (composing)
|
|
607
574
|
return;
|
|
608
|
-
// Deferring one macrotask lets Escape cancel a
|
|
609
|
-
// while a contenteditable host is handling the key event.
|
|
575
|
+
// Deferring one macrotask lets Escape cancel a blur that fires while the host handles the key event.
|
|
610
576
|
blurCommitHandle = setTimeout(() => {
|
|
611
577
|
blurCommitHandle = null;
|
|
612
578
|
if (!finished) {
|
|
@@ -619,8 +585,7 @@ function makeSession(candidate) {
|
|
|
619
585
|
if (finished)
|
|
620
586
|
return;
|
|
621
587
|
const rejectBeforeInput = (reason) => {
|
|
622
|
-
// Some browsers still deliver input after a non-cancelable beforeinput.
|
|
623
|
-
// Remember the safe plain draft so that onInput can undo that mutation.
|
|
588
|
+
// Some browsers still deliver input after a non-cancelable beforeinput; remember the safe draft so onInput can undo it.
|
|
624
589
|
if (!event.cancelable)
|
|
625
590
|
rejectedNextInput = reason;
|
|
626
591
|
if (event.cancelable)
|
|
@@ -738,9 +703,7 @@ function makeSession(candidate) {
|
|
|
738
703
|
event.stopPropagation();
|
|
739
704
|
if (blurPending && !finished) {
|
|
740
705
|
blurPending = false;
|
|
741
|
-
// Browsers may dispatch the final
|
|
742
|
-
// compositionend. Commit on the next macrotask so those final chars are
|
|
743
|
-
// part of this one canonical edit.
|
|
706
|
+
// Browsers may dispatch the final composition input after compositionend; commit on the next macrotask to include it.
|
|
744
707
|
compositionFinalizeHandle = setTimeout(() => {
|
|
745
708
|
compositionFinalizeHandle = null;
|
|
746
709
|
if (!finished && !composing)
|
|
@@ -753,16 +716,14 @@ function makeSession(candidate) {
|
|
|
753
716
|
return;
|
|
754
717
|
const selection = doc.getSelection?.();
|
|
755
718
|
if (!selection || selection.rangeCount === 0) {
|
|
756
|
-
// A panel click can clear the page selection before blur; let blur own
|
|
757
|
-
// the normal commit path unless the editing host still owns focus.
|
|
719
|
+
// A panel click can clear the page selection before blur; let blur own the commit path unless the host still owns focus.
|
|
758
720
|
if (doc.activeElement === host)
|
|
759
721
|
endLifecycle("selection-removed");
|
|
760
722
|
return;
|
|
761
723
|
}
|
|
762
724
|
if (selection && selection.rangeCount > 0 && selectionInsideHost(host))
|
|
763
725
|
return;
|
|
764
|
-
// A removed selection/host is a lifecycle end, not a text operation.
|
|
765
|
-
// original node is restored only while its owning host is still connected.
|
|
726
|
+
// A removed selection/host is a lifecycle end, not a text operation.
|
|
766
727
|
if (!host.isConnected || !candidate.element.isConnected) {
|
|
767
728
|
endLifecycle(!host.isConnected ? "host-removed" : "selection-removed");
|
|
768
729
|
return;
|
|
@@ -778,9 +739,7 @@ function makeSession(candidate) {
|
|
|
778
739
|
if (!OwnerNode || !(target instanceof OwnerNode))
|
|
779
740
|
return;
|
|
780
741
|
if (host.contains(target)) {
|
|
781
|
-
//
|
|
782
|
-
// drag-selection behavior remains intact. The click itself is held so
|
|
783
|
-
// the app cannot activate the surrounding button/link.
|
|
742
|
+
// Down/up events must reach the host so caret and drag-selection work; the click is held so the app cannot activate the surrounding button/link.
|
|
784
743
|
if (event.type === "mousedown" || event.type === "mouseup"
|
|
785
744
|
|| event.type === "pointerdown" || event.type === "pointerup")
|
|
786
745
|
return;
|
|
@@ -791,9 +750,7 @@ function makeSession(candidate) {
|
|
|
791
750
|
const inspectorRoot = doc.getElementById("nudge-ui-root");
|
|
792
751
|
if (inspectorRoot && (target === inspectorRoot || inspectorRoot.contains(target)))
|
|
793
752
|
return;
|
|
794
|
-
//
|
|
795
|
-
// duration of the draft. Inspector controls live in the scoped shadow
|
|
796
|
-
// host above and remain usable.
|
|
753
|
+
// Outside the inspector root, application actions are suspended for the duration of the draft.
|
|
797
754
|
if (event.type !== "mousedown" && event.type !== "mouseup"
|
|
798
755
|
&& event.type !== "pointerdown" && event.type !== "pointerup") {
|
|
799
756
|
event.preventDefault();
|
|
@@ -801,9 +758,7 @@ function makeSession(candidate) {
|
|
|
801
758
|
event.stopPropagation();
|
|
802
759
|
}
|
|
803
760
|
function suppressHostPointer(event) {
|
|
804
|
-
// Keep
|
|
805
|
-
// selection) while preventing an application ancestor from observing the
|
|
806
|
-
// temporary host's pointer sequence.
|
|
761
|
+
// Keep native defaults; only stop an application ancestor from observing the host's pointer sequence.
|
|
807
762
|
event.stopPropagation();
|
|
808
763
|
}
|
|
809
764
|
function onFrameDisposed() {
|
|
@@ -850,9 +805,6 @@ function makeSession(candidate) {
|
|
|
850
805
|
}
|
|
851
806
|
}
|
|
852
807
|
else if (host.isConnected) {
|
|
853
|
-
// A reconciliation can move the temporary host before removing the
|
|
854
|
-
// original root. It no longer has an owned insertion point, so remove
|
|
855
|
-
// the wrapper rather than leaking an editor into the new tree.
|
|
856
808
|
host.remove();
|
|
857
809
|
}
|
|
858
810
|
finish(reason, "cancelled", discardedDraft, restoreFocus);
|
|
@@ -915,17 +867,14 @@ function makeSession(candidate) {
|
|
|
915
867
|
endLifecycle("app-reconciled", after);
|
|
916
868
|
return null;
|
|
917
869
|
}
|
|
918
|
-
//
|
|
919
|
-
// change. The React Adapter must own the permanent preview.
|
|
870
|
+
// Remove the temporary host before appending the change: the React Adapter must own the permanent preview.
|
|
920
871
|
const restoreFocus = editorOwnsFocus();
|
|
921
872
|
if (!restoreDraft(candidate, host, candidate.before, ownership)) {
|
|
922
873
|
cancelForReconciliation();
|
|
923
874
|
return null;
|
|
924
875
|
}
|
|
925
876
|
if (change?.kind === "text-content" && editDecision.scope === "rendered-instance") {
|
|
926
|
-
//
|
|
927
|
-
// previous projection. Validation happens after unwrapping because a
|
|
928
|
-
// mounted draft can make another identical root look unique.
|
|
877
|
+
// candidate.before is alternate evidence for re-entry; validate after unwrapping, when a mounted draft can make another identical root look unique.
|
|
929
878
|
const resolved = resolveTextProjectionTarget(doc, change.target, candidate.before);
|
|
930
879
|
if (resolved.status !== "resolved") {
|
|
931
880
|
if (!resumeDraft(after))
|
|
@@ -1027,8 +976,7 @@ export const inlineTextEditor = {
|
|
|
1027
976
|
return makeSession(candidate);
|
|
1028
977
|
},
|
|
1029
978
|
};
|
|
1030
|
-
/** Re-
|
|
1031
|
-
* inspector affordance. This never guesses a new DOM target or source node. */
|
|
979
|
+
/** Re-enters an existing projection; never guesses a new DOM target or source node. */
|
|
1032
980
|
export function beginInlineTextEditFromEmptyProjection(marker) {
|
|
1033
981
|
if (!canEditDraft()) {
|
|
1034
982
|
return { kind: "rejected", reason: "editing-active", message: "Wait for the iteration to finish saving before editing text." };
|
|
@@ -1050,9 +998,7 @@ export function beginInlineTextEditFromEmptyProjection(marker) {
|
|
|
1050
998
|
const candidate = resolveEmptyProjectionCandidate(marker);
|
|
1051
999
|
if (isTextEditRejection(candidate))
|
|
1052
1000
|
return recordTextEditRejection(marker, candidate);
|
|
1053
|
-
// Hide the affordance while its
|
|
1054
|
-
// native editor. The marker is restored on cancel and removed by projection
|
|
1055
|
-
// reconciliation on a successful non-empty commit.
|
|
1001
|
+
// Hide the affordance while the editor wraps its empty Text node; cancel restores it, a non-empty commit removes it via reconciliation.
|
|
1056
1002
|
marker.hidden = true;
|
|
1057
1003
|
try {
|
|
1058
1004
|
return makeSession(candidate);
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* A tiny lifecycle seam keeps canonical-history clearing independent from the
|
|
3
|
-
* editor implementation. The editor registers its active-session disposer;
|
|
4
|
-
* changesLog can then cancel it without importing the editor back through a
|
|
5
|
-
* circular module edge.
|
|
6
|
-
*/
|
|
1
|
+
// Keeps canonical-history clearing independent of the editor without importing it back through a circular edge.
|
|
7
2
|
import { clearInlineTextDiagnostics } from "./inlineTextDiagnostics.js";
|
|
8
3
|
let clearHandler = null;
|
|
9
4
|
export function registerInlineTextClearHandler(handler) {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { TextBindingCandidate, TextEditBinding } from "../componentSemantics/textBinding.js";
|
|
2
2
|
import type { ChangeRecord } from "../changes/types.js";
|
|
3
|
-
import type { TextProjectionScope, TextProjectionTarget } from "
|
|
4
|
-
/** Binding and scope decisions, independent of native editor lifecycle state. */
|
|
3
|
+
import type { TextProjectionScope, TextProjectionTarget } from "../changes/editModel.js";
|
|
5
4
|
export interface TextEditDecision {
|
|
6
5
|
bindingIndex: number | null;
|
|
7
6
|
scope: TextProjectionScope;
|