nudge-ui 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/agentCommand.d.ts +0 -1
- package/dist/cli/agentCommand.js +0 -1
- package/dist/client.mjs +238 -122
- package/dist/compiler/ast.d.ts +0 -6
- package/dist/compiler/ast.js +0 -5
- package/dist/compiler/componentContractTypes.d.ts +11 -5
- package/dist/compiler/componentContracts.js +3 -9
- package/dist/compiler/componentInstrumentation.d.ts +2 -13
- package/dist/compiler/componentInstrumentation.js +3 -12
- package/dist/compiler/componentPolicyResolution.d.ts +3 -22
- package/dist/compiler/componentPolicyResolution.js +6 -38
- package/dist/compiler/identityAttributes.d.ts +2 -0
- package/dist/compiler/identityAttributes.js +2 -0
- package/dist/compiler/index.d.ts +0 -1
- package/dist/compiler/index.js +0 -1
- package/dist/compiler/packageComponentContracts.d.ts +10 -19
- package/dist/compiler/packageComponentContracts.js +60 -43
- package/dist/compiler/reactComponentProtocols.d.ts +0 -7
- package/dist/compiler/reactComponentProtocols.js +0 -7
- package/dist/compiler/reactIdentity.d.ts +2 -2
- package/dist/compiler/reactIdentity.js +41 -43
- package/dist/compiler/sourcePaths.d.ts +4 -8
- package/dist/compiler/sourcePaths.js +6 -8
- package/dist/css/dialects/index.d.ts +2 -21
- package/dist/css/dialects/index.js +2 -9
- package/dist/css/dialects/tailwind.d.ts +2 -16
- package/dist/css/dialects/tailwind.js +2 -25
- package/dist/css/dialects/vanillaExtract.d.ts +1 -9
- package/dist/css/dialects/vanillaExtract.js +0 -1
- package/dist/css/index.d.ts +0 -8
- package/dist/css/index.js +0 -8
- package/dist/css/model/index.d.ts +6 -38
- package/dist/css/model/index.js +0 -9
- package/dist/css/token-inventory/index.d.ts +0 -23
- package/dist/css/token-inventory/index.js +0 -23
- package/dist/css/token-inventory/inventory.js +4 -16
- package/dist/css/token-inventory/parseStylesheet.d.ts +1 -9
- package/dist/css/token-inventory/parseStylesheet.js +5 -42
- package/dist/css/token-inventory/policy.d.ts +2 -39
- package/dist/css/token-inventory/policy.js +2 -39
- package/dist/css/token-inventory/types.d.ts +2 -15
- package/dist/css/value-semantics/borderSemantics.d.ts +1 -8
- package/dist/css/value-semantics/borderSemantics.js +5 -23
- package/dist/css/value-semantics/boxSemantics.d.ts +2 -25
- package/dist/css/value-semantics/boxSemantics.js +1 -7
- package/dist/css/value-semantics/colorSemantics.d.ts +6 -60
- package/dist/css/value-semantics/colorSemantics.js +9 -40
- package/dist/css/value-semantics/cssSyntax.d.ts +10 -10
- package/dist/css/value-semantics/cssSyntax.js +39 -11
- package/dist/css/value-semantics/fontSemantics.d.ts +3 -19
- package/dist/css/value-semantics/fontSemantics.js +7 -25
- package/dist/css/value-semantics/index.d.ts +1 -12
- package/dist/css/value-semantics/index.js +1 -12
- package/dist/css/value-semantics/propertyPolicy.d.ts +6 -53
- package/dist/css/value-semantics/propertyPolicy.js +47 -59
- package/dist/css/value-semantics/stringMaps.d.ts +0 -1
- package/dist/css/value-semantics/structuredValues.d.ts +3 -37
- package/dist/css/value-semantics/structuredValues.js +6 -17
- package/dist/css/value-semantics/tokenInterpretation.d.ts +8 -50
- package/dist/css/value-semantics/tokenInterpretation.js +7 -21
- package/dist/hosts/astro/astroRuntimeConfig.d.ts +0 -1
- package/dist/hosts/astro/astroRuntimeConfig.js +0 -1
- package/dist/hosts/astro/clientAsset.d.ts +1 -5
- package/dist/hosts/astro/clientAsset.js +1 -5
- package/dist/hosts/astro/clientTransport.d.ts +0 -1
- package/dist/hosts/astro/clientTransport.js +4 -9
- package/dist/hosts/astro/integration.d.ts +2 -28
- package/dist/hosts/astro/integration.js +7 -36
- package/dist/hosts/astro/markdownIdentity.d.ts +0 -3
- package/dist/hosts/astro/markdownIdentity.js +0 -3
- package/dist/hosts/astro/middleware.d.ts +1 -12
- package/dist/hosts/astro/middleware.js +1 -12
- package/dist/hosts/astro/projectContext.d.ts +1 -9
- package/dist/hosts/astro/projectContext.js +2 -11
- package/dist/hosts/astro/responseInstrumentation.d.ts +4 -33
- package/dist/hosts/astro/responseInstrumentation.js +5 -34
- package/dist/hosts/environment.d.ts +0 -8
- package/dist/hosts/environment.js +0 -1
- package/dist/hosts/next/index.js +1 -3
- package/dist/hosts/next/loader.d.ts +5 -44
- package/dist/hosts/next/loader.js +22 -103
- package/dist/hosts/next/loaders/identity-loader.cjs +111 -65
- package/dist/hosts/next/loaders/loader-plugin.cjs +111 -65
- package/dist/hosts/next/manifest.d.ts +2 -16
- package/dist/hosts/next/manifest.js +18 -20
- package/dist/hosts/next/mount.d.ts +1 -11
- package/dist/hosts/next/mount.js +1 -11
- package/dist/hosts/next/repositoryScope.d.ts +2 -17
- package/dist/hosts/next/repositoryScope.js +2 -17
- package/dist/hosts/next/sidecar.d.ts +0 -13
- package/dist/hosts/next/sidecar.js +25 -110
- package/dist/hosts/next/wrapper.d.ts +0 -31
- package/dist/hosts/next/wrapper.js +13 -64
- package/dist/hosts/projectBridge.d.ts +0 -2
- package/dist/hosts/projectBridge.js +0 -2
- package/dist/hosts/reactRendererCapture.d.ts +2 -0
- package/dist/hosts/reactRendererCapture.js +12 -0
- package/dist/hosts/static/cli.d.ts +0 -4
- package/dist/hosts/static/cli.js +0 -3
- package/dist/hosts/static/html/bootstrap.d.ts +1 -18
- package/dist/hosts/static/html/bootstrap.js +2 -14
- package/dist/hosts/static/manifest.d.ts +2 -15
- package/dist/hosts/static/manifest.js +5 -18
- package/dist/hosts/static/server.d.ts +4 -38
- package/dist/hosts/static/server.js +17 -67
- package/dist/hosts/vite/index.d.ts +0 -10
- package/dist/hosts/vite/index.js +0 -10
- package/dist/hosts/vite/react.d.ts +4 -17
- package/dist/hosts/vite/react.js +18 -35
- package/dist/hosts/vite/tokens/activeStylesheets.d.ts +1 -10
- package/dist/hosts/vite/tokens/activeStylesheets.js +3 -8
- package/dist/hosts/vite/tokens/fileMap.d.ts +0 -1
- package/dist/hosts/vite/tokens/viteStylesheetArtifacts.d.ts +2 -15
- package/dist/hosts/vite/tokens/viteStylesheetArtifacts.js +3 -10
- package/dist/hosts/vite/vite.d.ts +5 -26
- package/dist/hosts/vite/vite.js +44 -80
- package/dist/html/dom.d.ts +0 -1
- package/dist/html/dom.js +0 -1
- package/dist/html/identity.d.ts +1 -15
- package/dist/html/identity.js +1 -8
- package/dist/html/insertions.d.ts +2 -8
- package/dist/html/insertions.js +1 -1
- package/dist/inspector/agent/McpConnectionDialog.d.ts +1 -6
- package/dist/inspector/agent/McpConnectionDialog.js +1 -6
- package/dist/inspector/agent/activity.d.ts +1 -1
- package/dist/inspector/agent/activity.js +1 -1
- package/dist/inspector/agent/client.d.ts +2 -26
- package/dist/inspector/agent/client.js +17 -64
- package/dist/inspector/agent/connectionStatus.d.ts +0 -1
- package/dist/inspector/agent/connectionStatus.js +0 -1
- package/dist/inspector/agent/httpTransport.d.ts +0 -8
- package/dist/inspector/agent/httpTransport.js +21 -39
- package/dist/inspector/agent/protocol.d.ts +1 -10
- package/dist/inspector/agent/protocol.js +1 -9
- package/dist/inspector/agent/verification.d.ts +2 -19
- package/dist/inspector/agent/verification.js +7 -43
- package/dist/inspector/boot.d.ts +3 -1
- package/dist/inspector/boot.js +12 -20
- package/dist/inspector/canvas/AgentActivityOverlay.d.ts +1 -1
- package/dist/inspector/canvas/AgentActivityOverlay.js +1 -1
- package/dist/inspector/canvas/CanvasCard.js +7 -14
- package/dist/inspector/canvas/CanvasElementOverlay.js +117 -50
- package/dist/inspector/canvas/CanvasWorkspace.js +15 -29
- package/dist/inspector/canvas/PageCard.d.ts +0 -1
- package/dist/inspector/canvas/PageCard.js +0 -1
- package/dist/inspector/canvas/SketchToolOptions.d.ts +0 -1
- package/dist/inspector/canvas/SketchToolOptions.js +0 -6
- package/dist/inspector/canvas/ToolOptionsDrawer.d.ts +1 -6
- package/dist/inspector/canvas/ToolOptionsDrawer.js +2 -8
- package/dist/inspector/canvas/activeCanvasDocument.d.ts +0 -2
- package/dist/inspector/canvas/activeCanvasDocument.js +0 -2
- package/dist/inspector/canvas/agentPresentation.d.ts +2 -13
- package/dist/inspector/canvas/agentPresentation.js +3 -14
- package/dist/inspector/canvas/canvasFrame.d.ts +2 -6
- package/dist/inspector/canvas/canvasFrame.js +1 -2
- package/dist/inspector/canvas/canvasResize.d.ts +1 -6
- package/dist/inspector/canvas/canvasResize.js +1 -6
- package/dist/inspector/canvas/canvasStore.d.ts +4 -12
- package/dist/inspector/canvas/canvasStore.js +12 -26
- package/dist/inspector/canvas/frameConnection.d.ts +1 -7
- package/dist/inspector/canvas/frameContent.d.ts +0 -1
- package/dist/inspector/canvas/frameLifecycle.d.ts +12 -0
- package/dist/inspector/canvas/frameLifecycle.js +11 -0
- package/dist/inspector/canvas/frameProtocol.d.ts +5 -40
- package/dist/inspector/canvas/frameProtocol.js +1 -24
- package/dist/inspector/canvas/frameScrollbarStyles.d.ts +0 -1
- package/dist/inspector/canvas/frameScrollbarStyles.js +0 -1
- package/dist/inspector/canvas/layout.d.ts +10 -22
- package/dist/inspector/canvas/layout.js +0 -3
- package/dist/inspector/canvas/normalizeUrl.js +1 -8
- package/dist/inspector/canvas/pageSurface.d.ts +1 -6
- package/dist/inspector/canvas/pageSurface.js +1 -6
- package/dist/inspector/canvas/projection.d.ts +4 -25
- package/dist/inspector/canvas/projection.js +22 -72
- package/dist/inspector/canvas/rendererBootstrap.d.ts +8 -1
- package/dist/inspector/canvas/rendererBootstrap.js +6 -14
- package/dist/inspector/canvas/rendererCidIndex.d.ts +0 -5
- package/dist/inspector/canvas/rendererCidIndex.js +0 -5
- package/dist/inspector/canvas/rendererElementSelector.js +29 -27
- package/dist/inspector/canvas/rendererMessageRouter.d.ts +0 -1
- package/dist/inspector/canvas/rendererMessageRouter.js +0 -1
- package/dist/inspector/canvas/rendererSelectionProxy.d.ts +1 -5
- package/dist/inspector/canvas/rendererSelectionProxy.js +2 -7
- package/dist/inspector/canvas/rendererStylesheet.d.ts +0 -1
- package/dist/inspector/canvas/rendererStylesheet.js +9 -2
- package/dist/inspector/canvas/resizeHandleScale.d.ts +1 -10
- package/dist/inspector/canvas/resizeHandleScale.js +1 -10
- package/dist/inspector/canvas/sessionStore.d.ts +1 -7
- package/dist/inspector/canvas/sessionStore.js +21 -34
- package/dist/inspector/canvas/staleChangeDetector.js +1 -4
- package/dist/inspector/canvas/toolbarScale.d.ts +1 -4
- package/dist/inspector/canvas/toolbarScale.js +1 -4
- package/dist/inspector/canvas/useCanvasLayoutAnimation.d.ts +0 -1
- package/dist/inspector/canvas/useCanvasLayoutAnimation.js +0 -1
- package/dist/inspector/canvas/viewStore.js +1 -1
- package/dist/inspector/canvas/wheelPan.d.ts +1 -1
- package/dist/inspector/canvas/wheelPan.js +1 -1
- package/dist/inspector/canvas/workspaceLease.d.ts +1 -5
- package/dist/inspector/canvas/workspaceLease.js +1 -7
- package/dist/inspector/changes/codecs.js +2 -1
- package/dist/inspector/changes/draftPreview.d.ts +1 -6
- package/dist/inspector/changes/draftPreview.js +15 -30
- package/dist/inspector/changes/editModel.d.ts +3 -13
- package/dist/inspector/changes/editModel.js +1 -2
- package/dist/inspector/changes/managedStyleProjection.js +4 -14
- package/dist/inspector/changes/model.d.ts +0 -5
- package/dist/inspector/changes/model.js +1 -8
- package/dist/inspector/changes/previewDiagnostics.d.ts +2 -12
- package/dist/inspector/changes/previewDiagnostics.js +4 -20
- package/dist/inspector/changes/previewVerification.d.ts +25 -0
- package/dist/inspector/changes/previewVerification.js +34 -0
- package/dist/inspector/changes/structuralTypes.d.ts +2 -4
- package/dist/inspector/changes/types.d.ts +3 -10
- package/dist/inspector/clientManifest.d.ts +17 -6
- package/dist/inspector/clientManifest.js +16 -3
- package/dist/inspector/comments/CommentsOverlay.js +48 -7
- package/dist/inspector/comments/element.d.ts +1 -2
- package/dist/inspector/comments/element.js +1 -2
- package/dist/inspector/comments/store.d.ts +1 -1
- package/dist/inspector/comments/store.js +1 -1
- package/dist/inspector/comments/verification.d.ts +8 -2
- package/dist/inspector/comments/verification.js +18 -10
- package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +8 -0
- package/dist/inspector/componentSemantics/ComponentPropsSection.js +10 -7
- package/dist/inspector/componentSemantics/adapterRegistry.d.ts +2 -9
- package/dist/inspector/componentSemantics/adapterRegistry.js +2 -9
- package/dist/inspector/componentSemantics/changeModel.js +2 -4
- package/dist/inspector/componentSemantics/react/callsites.d.ts +28 -0
- package/dist/inspector/componentSemantics/react/callsites.js +261 -0
- package/dist/inspector/componentSemantics/react/devtoolsHook.d.ts +23 -0
- package/dist/inspector/componentSemantics/react/devtoolsHook.js +71 -0
- package/dist/inspector/componentSemantics/react/fibers.d.ts +17 -0
- package/dist/inspector/componentSemantics/react/fibers.js +30 -0
- package/dist/inspector/componentSemantics/{reactRuntime.d.ts → react/runtime.d.ts} +3 -2
- package/dist/inspector/componentSemantics/{reactRuntime.js → react/runtime.js} +70 -53
- package/dist/inspector/componentSemantics/runtimeBridge.d.ts +2 -18
- package/dist/inspector/componentSemantics/runtimeBridge.js +5 -19
- package/dist/inspector/componentSemantics/textBinding.d.ts +1 -9
- package/dist/inspector/componentSemantics/textBinding.js +16 -42
- package/dist/inspector/componentSemantics/types.d.ts +8 -27
- package/dist/inspector/componentSemantics/types.js +0 -1
- package/dist/inspector/conformance/borderCases.d.ts +0 -5
- package/dist/inspector/conformance/borderCases.js +0 -5
- package/dist/inspector/conformance/colorCases.d.ts +0 -6
- package/dist/inspector/conformance/colorCases.js +0 -6
- package/dist/inspector/conformance/fixture.d.ts +1 -5
- package/dist/inspector/conformance/fixture.js +1 -5
- package/dist/inspector/conformance/spacingCases.d.ts +0 -4
- package/dist/inspector/conformance/spacingCases.js +0 -4
- package/dist/inspector/conformance/typographyCases.d.ts +0 -5
- package/dist/inspector/conformance/typographyCases.js +0 -5
- package/dist/inspector/drafts/draftStore.d.ts +7 -21
- package/dist/inspector/drafts/draftStore.js +15 -5
- package/dist/inspector/drafts/model.d.ts +7 -15
- package/dist/inspector/drafts/model.js +0 -2
- package/dist/inspector/drafts/store.d.ts +1 -8
- package/dist/inspector/drafts/store.js +3 -10
- package/dist/inspector/editScope.d.ts +0 -1
- package/dist/inspector/editScope.js +0 -1
- package/dist/inspector/inline-text/inlineTextDiagnostics.d.ts +0 -2
- package/dist/inspector/inline-text/inlineTextDiagnostics.js +0 -2
- package/dist/inspector/inline-text/inlineTextEditor.d.ts +2 -8
- package/dist/inspector/inline-text/inlineTextEditor.js +26 -79
- package/dist/inspector/inline-text/inlineTextLifecycle.js +1 -6
- package/dist/inspector/inline-text/textEditChange.d.ts +0 -1
- package/dist/inspector/inspection/bridge.d.ts +2 -6
- package/dist/inspector/inspection/bridge.js +4 -12
- package/dist/inspector/inspection/browserCssInspection.d.ts +4 -11
- package/dist/inspector/inspection/browserCssInspection.js +4 -8
- package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +0 -7
- package/dist/inspector/inspection/browserCssInspectionRegistry.js +1 -16
- package/dist/inspector/inspection/selectionProperty.d.ts +1 -6
- package/dist/inspector/inspection/selectionProperty.js +1 -5
- package/dist/inspector/inspection/useBrowserCssInspection.d.ts +1 -5
- package/dist/inspector/inspection/useBrowserCssInspection.js +5 -21
- package/dist/inspector/iterations/capture.d.ts +0 -1
- package/dist/inspector/iterations/capture.js +4 -9
- package/dist/inspector/iterations/client.d.ts +0 -1
- package/dist/inspector/iterations/client.js +0 -1
- package/dist/inspector/iterations/coordinator.d.ts +0 -1
- package/dist/inspector/iterations/coordinator.js +0 -1
- package/dist/inspector/iterations/prompt.d.ts +0 -1
- package/dist/inspector/iterations/prompt.js +0 -1
- package/dist/inspector/overlay/DomNavigator.d.ts +3 -1
- package/dist/inspector/overlay/DomNavigator.js +39 -15
- package/dist/inspector/overlay/DropGuideOverlay.d.ts +0 -1
- package/dist/inspector/overlay/DropGuideOverlay.js +0 -1
- package/dist/inspector/overlay/MeasurementGuideOverlay.d.ts +1 -8
- package/dist/inspector/overlay/MeasurementGuideOverlay.js +1 -5
- package/dist/inspector/overlay/clickPolicy.d.ts +3 -14
- package/dist/inspector/overlay/clickPolicy.js +3 -14
- package/dist/inspector/overlay/dropGuide.d.ts +0 -3
- package/dist/inspector/overlay/dropGuide.js +0 -3
- package/dist/inspector/overlay/frameThrottle.d.ts +0 -1
- package/dist/inspector/overlay/frameThrottle.js +0 -1
- package/dist/inspector/overlay/interactionStyles.d.ts +1 -1
- package/dist/inspector/overlay/interactionStyles.js +2 -8
- package/dist/inspector/overlay/measurementGeometry.js +4 -12
- package/dist/inspector/overlay/selectedGeometry.d.ts +1 -6
- package/dist/inspector/overlay/selectedGeometry.js +1 -8
- package/dist/inspector/overlay/spacingGestures.d.ts +14 -21
- package/dist/inspector/overlay/spacingGestures.js +151 -31
- package/dist/inspector/overlay/structuralGestures.d.ts +2 -9
- package/dist/inspector/overlay/structuralGestures.js +1 -4
- package/dist/inspector/pageInspector.d.ts +4 -13
- package/dist/inspector/pageInspector.js +25 -32
- package/dist/inspector/projection/cssEscapes.d.ts +0 -1
- package/dist/inspector/projection/cssEscapes.js +2 -4
- package/dist/inspector/projection/draftProjection.d.ts +2 -14
- package/dist/inspector/projection/draftProjection.js +1 -8
- package/dist/inspector/projection/managedStylesheet.d.ts +1 -7
- package/dist/inspector/projection/managedStylesheet.js +4 -22
- package/dist/inspector/projection/renderedInstance.d.ts +5 -28
- package/dist/inspector/projection/renderedInstance.js +6 -32
- package/dist/inspector/projection/structuralProjection.d.ts +7 -39
- package/dist/inspector/projection/structuralProjection.js +17 -52
- package/dist/inspector/projection/textProjection.d.ts +2 -14
- package/dist/inspector/projection/textProjection.js +17 -70
- package/dist/inspector/prompt/PromptSettingsDialog.d.ts +0 -1
- package/dist/inspector/prompt/PromptSettingsDialog.js +0 -1
- package/dist/inspector/prompt/clipboardHandoff.d.ts +1 -9
- package/dist/inspector/prompt/clipboardHandoff.js +1 -9
- package/dist/inspector/prompt/generatePrompt.d.ts +1 -1
- package/dist/inspector/prompt/generatePrompt.js +10 -25
- package/dist/inspector/prompt/promptSettings.d.ts +0 -3
- package/dist/inspector/prompt/promptSettings.js +0 -3
- package/dist/inspector/runtime/devFlag.d.ts +2 -25
- package/dist/inspector/runtime/devFlag.js +4 -31
- package/dist/inspector/runtime/documentStylesheetOrder.d.ts +0 -2
- package/dist/inspector/runtime/editorShell.d.ts +0 -1
- package/dist/inspector/runtime/editorShell.js +0 -1
- package/dist/inspector/runtime/inspectorStorage.d.ts +1 -7
- package/dist/inspector/runtime/inspectorStorage.js +1 -6
- package/dist/inspector/runtime/ownedStylesheets.d.ts +2 -8
- package/dist/inspector/runtime/ownedStylesheets.js +2 -8
- package/dist/inspector/runtime/runtimeConfig.d.ts +12 -86
- package/dist/inspector/runtime/runtimeConfig.js +9 -50
- package/dist/inspector/runtime/runtimeIdentityClaims.d.ts +3 -13
- package/dist/inspector/runtime/runtimeIdentityClaims.js +9 -19
- package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +4 -36
- package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +7 -40
- package/dist/inspector/runtime/useRuntimeConfig.d.ts +1 -8
- package/dist/inspector/runtime/useRuntimeConfig.js +1 -8
- package/dist/inspector/selection/editScope.d.ts +1 -7
- package/dist/inspector/selection/editScope.js +2 -12
- package/dist/inspector/selection/editTarget.d.ts +1 -5
- package/dist/inspector/selection/hierarchy.d.ts +11 -11
- package/dist/inspector/selection/hierarchy.js +42 -24
- package/dist/inspector/selection/selectionStore.d.ts +0 -3
- package/dist/inspector/selection/selectionStore.js +5 -16
- package/dist/inspector/selection/sourceSite.d.ts +1 -5
- package/dist/inspector/selection/sourceSite.js +2 -8
- package/dist/inspector/selection/styleSelection.d.ts +1 -5
- package/dist/inspector/selection/styleSelection.js +1 -5
- package/dist/inspector/session/lifecycle.d.ts +1 -9
- package/dist/inspector/session/lifecycle.js +0 -1
- package/dist/inspector/session/sessionContext.d.ts +0 -4
- package/dist/inspector/session/sessionContext.js +0 -4
- package/dist/inspector/session/sessionFactory.d.ts +0 -9
- package/dist/inspector/session/sessionFactory.js +0 -6
- package/dist/inspector/settings/SettingsDialog.d.ts +0 -1
- package/dist/inspector/settings/SettingsDialog.js +5 -3
- package/dist/inspector/shell/AgentStatusButton.d.ts +3 -2
- package/dist/inspector/shell/AgentStatusButton.js +5 -5
- package/dist/inspector/shell/ChangesLog.js +3 -4
- package/dist/inspector/shell/CopyPromptButton.d.ts +2 -1
- package/dist/inspector/shell/CopyPromptButton.js +12 -11
- package/dist/inspector/shell/InspectorEditors.d.ts +16 -0
- package/dist/inspector/shell/InspectorEditors.js +14 -0
- package/dist/inspector/shell/InspectorPanel.d.ts +12 -0
- package/dist/inspector/shell/InspectorPanel.js +8 -0
- package/dist/inspector/shell/InspectorSelection.d.ts +24 -0
- package/dist/inspector/shell/InspectorSelection.js +20 -0
- package/dist/inspector/shell/InspectorShell.js +26 -48
- package/dist/inspector/shell/NudgeLogoIcon.d.ts +5 -0
- package/dist/inspector/shell/NudgeLogoIcon.js +5 -0
- package/dist/inspector/shell/PeekOriginalButton.d.ts +0 -5
- package/dist/inspector/shell/PeekOriginalButton.js +0 -5
- package/dist/inspector/shell/PeekOriginalIcon.d.ts +0 -5
- package/dist/inspector/shell/PeekOriginalIcon.js +0 -5
- package/dist/inspector/shell/PromptActionButton.d.ts +21 -0
- package/dist/inspector/shell/PromptActionButton.js +14 -0
- package/dist/inspector/shell/elementName.d.ts +5 -0
- package/dist/inspector/shell/elementName.js +29 -0
- package/dist/inspector/shell/interactionStatePreview.d.ts +1 -4
- package/dist/inspector/shell/interactionStatePreview.js +3 -8
- package/dist/inspector/shell/originalPreview.d.ts +1 -6
- package/dist/inspector/shell/originalPreview.js +1 -6
- package/dist/inspector/shell/stateValue.d.ts +1 -2
- package/dist/inspector/shell/stateValue.js +2 -5
- package/dist/inspector/shell/styleState.d.ts +1 -2
- package/dist/inspector/shell/styleState.js +1 -2
- package/dist/inspector/sketch/SketchEditor.js +0 -1
- package/dist/inspector/sketch/SketchFrameOverlay.js +8 -12
- package/dist/inspector/sketch/SketchOverlay.js +5 -6
- package/dist/inspector/sketch/SketchPromptPanel.d.ts +0 -1
- package/dist/inspector/sketch/SketchPromptPanel.js +0 -1
- package/dist/inspector/sketch/SketchWorkspace.js +2 -4
- package/dist/inspector/sketch/capture.d.ts +12 -3
- package/dist/inspector/sketch/capture.js +12 -11
- package/dist/inspector/sketch/copySketch.d.ts +1 -7
- package/dist/inspector/sketch/copySketch.js +2 -11
- package/dist/inspector/sketch/drawingTools.d.ts +1 -3
- package/dist/inspector/sketch/drawingTools.js +1 -2
- package/dist/inspector/sketch/frameHeading.d.ts +1 -7
- package/dist/inspector/sketch/frameHeading.js +1 -8
- package/dist/inspector/sketch/freehand.d.ts +0 -1
- package/dist/inspector/sketch/freehand.js +0 -1
- package/dist/inspector/sketch/geometry.d.ts +1 -6
- package/dist/inspector/sketch/geometry.js +1 -6
- package/dist/inspector/sketch/handoff.js +0 -1
- package/dist/inspector/sketch/history.d.ts +1 -5
- package/dist/inspector/sketch/history.js +1 -4
- package/dist/inspector/sketch/interaction.d.ts +2 -2
- package/dist/inspector/sketch/interaction.js +2 -2
- package/dist/inspector/sketch/model.d.ts +2 -9
- package/dist/inspector/sketch/model.js +2 -19
- package/dist/inspector/sketch/persistence.d.ts +0 -1
- package/dist/inspector/sketch/persistence.js +2 -2
- package/dist/inspector/sketch/raster.d.ts +1 -4
- package/dist/inspector/sketch/raster.js +2 -8
- package/dist/inspector/sketch/store.js +2 -3
- package/dist/inspector/sketch/videoFrames.js +2 -3
- package/dist/inspector/spacing/projection.d.ts +0 -8
- package/dist/inspector/spacing/projection.js +38 -20
- package/dist/inspector/styleEditors/BackgroundEditor.js +1 -1
- package/dist/inspector/styleEditors/BorderEditor.js +1 -6
- package/dist/inspector/styleEditors/ChildPlacement.d.ts +12 -0
- package/dist/inspector/styleEditors/ChildPlacement.js +9 -0
- package/dist/inspector/styleEditors/FlexControls.d.ts +35 -0
- package/dist/inspector/styleEditors/FlexControls.js +158 -0
- package/dist/inspector/styleEditors/GapField.d.ts +5 -2
- package/dist/inspector/styleEditors/GapField.js +3 -4
- package/dist/inspector/styleEditors/GridChildSection.d.ts +0 -5
- package/dist/inspector/styleEditors/GridChildSection.js +0 -5
- package/dist/inspector/styleEditors/GridPicker.d.ts +1 -1
- package/dist/inspector/styleEditors/GridPicker.js +2 -4
- package/dist/inspector/styleEditors/GridSection.d.ts +10 -8
- package/dist/inspector/styleEditors/GridSection.js +22 -9
- package/dist/inspector/styleEditors/GridValueField.d.ts +1 -5
- package/dist/inspector/styleEditors/GridValueField.js +2 -8
- package/dist/inspector/styleEditors/ImageBackgroundEditor.d.ts +0 -1
- package/dist/inspector/styleEditors/ImageBackgroundEditor.js +0 -1
- package/dist/inspector/styleEditors/LayoutBlockedIndicator.d.ts +0 -1
- package/dist/inspector/styleEditors/LayoutBlockedIndicator.js +0 -1
- package/dist/inspector/styleEditors/LayoutComboField.js +0 -5
- package/dist/inspector/styleEditors/LayoutModeRow.d.ts +14 -0
- package/dist/inspector/styleEditors/LayoutModeRow.js +60 -0
- package/dist/inspector/styleEditors/LayoutSection.d.ts +2 -2
- package/dist/inspector/styleEditors/LayoutSection.js +30 -356
- package/dist/inspector/styleEditors/OpacityEditor.js +7 -5
- package/dist/inspector/styleEditors/PositionControls.d.ts +18 -0
- package/dist/inspector/styleEditors/PositionControls.js +16 -0
- package/dist/inspector/styleEditors/SizeSection.d.ts +18 -0
- package/dist/inspector/styleEditors/SizeSection.js +71 -0
- package/dist/inspector/styleEditors/{SpacingBox.d.ts → SpacingField.d.ts} +3 -10
- package/dist/inspector/styleEditors/{SpacingBox.js → SpacingField.js} +15 -29
- package/dist/inspector/styleEditors/Typography.js +2 -4
- package/dist/inspector/styleEditors/borderModel.d.ts +1 -7
- package/dist/inspector/styleEditors/borderModel.js +2 -11
- package/dist/inspector/styleEditors/completeCssValue.d.ts +1 -5
- package/dist/inspector/styleEditors/completeCssValue.js +3 -13
- package/dist/inspector/styleEditors/fieldValue.d.ts +20 -0
- package/dist/inspector/styleEditors/fieldValue.js +26 -0
- package/dist/inspector/styleEditors/gradientValue.d.ts +1 -1
- package/dist/inspector/styleEditors/gradientValue.js +3 -2
- package/dist/inspector/styleEditors/gridChildModel.d.ts +7 -47
- package/dist/inspector/styleEditors/gridChildModel.js +6 -37
- package/dist/inspector/styleEditors/hiddenSizeOverrides.d.ts +5 -0
- package/dist/inspector/styleEditors/hiddenSizeOverrides.js +42 -0
- package/dist/inspector/styleEditors/inlineAuthored.d.ts +1 -8
- package/dist/inspector/styleEditors/inlineAuthored.js +3 -17
- package/dist/inspector/styleEditors/layoutMode.d.ts +15 -0
- package/dist/inspector/styleEditors/layoutMode.js +33 -0
- package/dist/inspector/styleEditors/layoutPreviewState.d.ts +0 -1
- package/dist/inspector/styleEditors/layoutPreviewState.js +0 -1
- package/dist/inspector/styleEditors/layoutValue.d.ts +2 -8
- package/dist/inspector/styleEditors/layoutValue.js +4 -12
- package/dist/inspector/styleEditors/nudgeValue.d.ts +1 -13
- package/dist/inspector/styleEditors/nudgeValue.js +1 -13
- package/dist/inspector/styleEditors/rowLookup.d.ts +1 -5
- package/dist/inspector/styleEditors/rowLookup.js +1 -5
- package/dist/inspector/styleEditors/stringRecord.d.ts +1 -2
- package/dist/inspector/styleEditors/stylePresence.d.ts +0 -2
- package/dist/inspector/styleEditors/stylePresence.js +1 -4
- package/dist/inspector/styleEditors/textRelevance.d.ts +1 -1
- package/dist/inspector/styleEditors/textRelevance.js +1 -1
- package/dist/inspector/styleEditors/useFieldVisibility.js +1 -2
- package/dist/inspector/styleEditors/useLayoutContext.d.ts +13 -0
- package/dist/inspector/styleEditors/useLayoutContext.js +53 -0
- package/dist/inspector/styleEditors/valuePolicy.d.ts +1 -5
- package/dist/inspector/styleEditors/valuePolicy.js +0 -1
- package/dist/inspector/testing.d.ts +1 -4
- package/dist/inspector/testing.js +1 -4
- package/dist/inspector/tokens/TokenChip.d.ts +1 -4
- package/dist/inspector/tokens/TokenChip.js +1 -4
- package/dist/inspector/tokens/TokenField.d.ts +4 -3
- package/dist/inspector/tokens/TokenField.js +19 -29
- package/dist/inspector/tokens/catalog.d.ts +2 -10
- package/dist/inspector/tokens/catalog.js +5 -12
- package/dist/inspector/tokens/dragPointerLock.d.ts +0 -1
- package/dist/inspector/tokens/dragPointerLock.js +2 -3
- package/dist/inspector/tokens/editActions.d.ts +1 -1
- package/dist/inspector/tokens/editActions.js +2 -4
- package/dist/inspector/tokens/resolution/cascade.d.ts +1 -5
- package/dist/inspector/tokens/resolution/cascade.js +1 -5
- package/dist/inspector/tokens/resolution/containerQueryEvaluator.d.ts +1 -5
- package/dist/inspector/tokens/resolution/containerQueryEvaluator.js +1 -5
- package/dist/inspector/tokens/resolution/cssomCollector.d.ts +4 -19
- package/dist/inspector/tokens/resolution/cssomCollector.js +151 -122
- package/dist/inspector/tokens/resolution/nestedSelectors.d.ts +1 -5
- package/dist/inspector/tokens/resolution/nestedSelectors.js +1 -5
- package/dist/inspector/tokens/resolution/ruleMatching.d.ts +4 -14
- package/dist/inspector/tokens/resolution/ruleMatching.js +121 -67
- package/dist/inspector/tokens/resolution/selectorSemantics.d.ts +3 -14
- package/dist/inspector/tokens/resolution/selectorSemantics.js +12 -27
- package/dist/inspector/tokens/resolution.d.ts +5 -24
- package/dist/inspector/tokens/resolution.js +16 -71
- package/dist/inspector/tokens/tokenAvailability.d.ts +2 -14
- package/dist/inspector/tokens/tokenAvailability.js +6 -38
- package/dist/inspector/tokens/valueSemanticsAdapter.d.ts +0 -1
- package/dist/inspector/tokens/valueSemanticsAdapter.js +18 -2
- package/dist/inspector/ui/AtRuleContext.d.ts +5 -5
- package/dist/inspector/ui/AtRuleContext.js +8 -6
- package/dist/inspector/ui/ControlSurface.d.ts +0 -4
- package/dist/inspector/ui/Disclosure.d.ts +0 -5
- package/dist/inspector/ui/Disclosure.js +0 -4
- package/dist/inspector/ui/InlineStyleWarning.d.ts +0 -1
- package/dist/inspector/ui/InspectorPopover.d.ts +1 -5
- package/dist/inspector/ui/InspectorPopover.js +1 -5
- package/dist/inspector/ui/SegmentedControl.d.ts +4 -4
- package/dist/inspector/ui/SegmentedControl.js +6 -4
- package/dist/inspector/ui/SideValuesField.d.ts +1 -6
- package/dist/inspector/ui/SideValuesField.js +2 -8
- package/dist/inspector/ui/Toast.d.ts +0 -4
- package/dist/inspector/ui/Toast.js +0 -4
- package/dist/inspector/ui/atRuleSegments.d.ts +13 -0
- package/dist/inspector/ui/atRuleSegments.js +34 -0
- package/dist/inspector/ui/classNames.d.ts +0 -1
- package/dist/inspector/ui/classNames.js +0 -1
- package/dist/inspector/ui/customCursors.d.ts +7 -1
- package/dist/inspector/ui/customCursors.js +2 -6
- package/dist/inspector/ui/styles.js +18 -20
- package/dist/inspector/workspace/controller.js +20 -1
- package/dist/inspector/workspace/handoff.d.ts +1 -5
- package/dist/inspector/workspace/handoff.js +1 -5
- package/dist/inspector/workspace/timeline.d.ts +5 -2
- package/dist/inspector/workspace/timeline.js +0 -1
- package/dist/internal/agent-protocol.d.ts +20 -42
- package/dist/internal/agent-protocol.js +18 -35
- package/dist/nudge-ui.mjs +75 -28
- package/dist/project/artifacts.js +24 -21
- package/dist/project/files.d.ts +0 -1
- package/dist/project/files.js +2 -9
- package/dist/project/identity.d.ts +1 -5
- package/dist/project/identity.js +1 -5
- package/dist/project/mcpPackage.d.ts +1 -6
- package/dist/project/mcpPackage.js +2 -7
- package/dist/project/pathPolicy.d.ts +1 -6
- package/dist/project/pathPolicy.js +1 -6
- package/dist/project/tokens.d.ts +2 -12
- package/dist/project/tokens.js +4 -15
- package/dist/transport/editor.d.ts +1 -12
- package/dist/transport/editor.js +2 -13
- package/dist/transport/index.d.ts +0 -5
- package/dist/transport/index.js +0 -5
- package/dist/transport/routes.d.ts +0 -5
- package/dist/transport/routes.js +0 -5
- package/package.json +5 -4
- package/dist/inspector/styleEditors/InsetSection.d.ts +0 -15
- package/dist/inspector/styleEditors/InsetSection.js +0 -15
- package/dist/inspector/styleEditors/PositionInsets.d.ts +0 -15
- package/dist/inspector/styleEditors/PositionInsets.js +0 -12
- package/dist/inspector/tokens/TokenDropdown.d.ts +0 -13
- package/dist/inspector/tokens/TokenDropdown.js +0 -59
|
@@ -18,8 +18,7 @@ function boxEdges(element) {
|
|
|
18
18
|
bottom: bottomOf(rect),
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
// Computed style
|
|
22
|
-
// An authored rem/% is intentionally rewritten as px on commit.
|
|
21
|
+
// Computed style is px; an authored rem/% is intentionally rewritten as px on commit.
|
|
23
22
|
function numberValue(value) {
|
|
24
23
|
const parsed = Number.parseFloat(value);
|
|
25
24
|
return Number.isFinite(parsed) ? Math.max(0, parsed) : 0;
|
|
@@ -32,6 +31,12 @@ function boxModel(element) {
|
|
|
32
31
|
bottom: numberValue(style.paddingBottom),
|
|
33
32
|
left: numberValue(style.paddingLeft),
|
|
34
33
|
};
|
|
34
|
+
const margin = {
|
|
35
|
+
top: numberValue(style.marginTop),
|
|
36
|
+
right: numberValue(style.marginRight),
|
|
37
|
+
bottom: numberValue(style.marginBottom),
|
|
38
|
+
left: numberValue(style.marginLeft),
|
|
39
|
+
};
|
|
35
40
|
const border = {
|
|
36
41
|
top: numberValue(style.borderTopWidth),
|
|
37
42
|
right: numberValue(style.borderRightWidth),
|
|
@@ -51,7 +56,7 @@ function boxModel(element) {
|
|
|
51
56
|
right: inner.right - padding.right,
|
|
52
57
|
bottom: inner.bottom - padding.bottom,
|
|
53
58
|
};
|
|
54
|
-
return { outer, inner, content, padding };
|
|
59
|
+
return { outer, inner, content, padding, margin };
|
|
55
60
|
}
|
|
56
61
|
function containsPoint(rect, x, y) {
|
|
57
62
|
return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;
|
|
@@ -143,14 +148,93 @@ function paddingAffordanceAtPoint(element, x, y) {
|
|
|
143
148
|
const model = boxModel(element);
|
|
144
149
|
if (!containsPoint(model.outer, x, y))
|
|
145
150
|
return null;
|
|
146
|
-
const
|
|
147
|
-
for (const side of sides) {
|
|
151
|
+
for (const side of SIDES) {
|
|
148
152
|
const affordance = paddingAffordanceForSide(element, side, model);
|
|
149
153
|
if (affordance && containsRectPoint(affordance.hit, x, y))
|
|
150
154
|
return affordance;
|
|
151
155
|
}
|
|
152
156
|
return null;
|
|
153
157
|
}
|
|
158
|
+
const MARGIN_CONFIG = {
|
|
159
|
+
top: { axis: "horizontal", dragAxis: "y", direction: -1 },
|
|
160
|
+
right: { axis: "vertical", dragAxis: "x", direction: 1 },
|
|
161
|
+
bottom: { axis: "horizontal", dragAxis: "y", direction: 1 },
|
|
162
|
+
left: { axis: "vertical", dragAxis: "x", direction: -1 },
|
|
163
|
+
};
|
|
164
|
+
const SIDES = ["top", "right", "bottom", "left"];
|
|
165
|
+
/** Children further than this from the pointer are skipped before their styles are read. */
|
|
166
|
+
const MARGIN_SCAN_DISTANCE = 512;
|
|
167
|
+
/** The margin band sits outside the border box, so a drag outward (away from the element) grows it. */
|
|
168
|
+
function marginAffordanceForSide(element, side, model = boxModel(element)) {
|
|
169
|
+
const { outer, margin } = model;
|
|
170
|
+
const value = margin[side];
|
|
171
|
+
if (value <= EPSILON)
|
|
172
|
+
return null;
|
|
173
|
+
const config = MARGIN_CONFIG[side];
|
|
174
|
+
const width = Math.max(0, outer.right - outer.left);
|
|
175
|
+
const height = Math.max(0, outer.bottom - outer.top);
|
|
176
|
+
const guide = config.axis === "horizontal"
|
|
177
|
+
? { left: outer.left, top: (side === "top" ? outer.top - value / 2 : outer.bottom + value / 2) - 1, width, height: 2 }
|
|
178
|
+
: { left: (side === "left" ? outer.left - value / 2 : outer.right + value / 2) - 1, top: outer.top, width: 2, height };
|
|
179
|
+
const area = config.axis === "horizontal"
|
|
180
|
+
? { left: outer.left, top: side === "top" ? outer.top - value : outer.bottom, width, height: value }
|
|
181
|
+
: { left: side === "left" ? outer.left - value : outer.right, top: outer.top, width: value, height };
|
|
182
|
+
return {
|
|
183
|
+
kind: "margin",
|
|
184
|
+
property: `margin-${side}`,
|
|
185
|
+
side,
|
|
186
|
+
axis: config.axis,
|
|
187
|
+
dragAxis: config.dragAxis,
|
|
188
|
+
value,
|
|
189
|
+
cursor: config.axis === "horizontal" ? "ns-resize" : "ew-resize",
|
|
190
|
+
guide,
|
|
191
|
+
affectedGuides: [guide],
|
|
192
|
+
affectedAreas: [area],
|
|
193
|
+
hit: guideHit(guide, config.axis),
|
|
194
|
+
direction: config.direction,
|
|
195
|
+
element,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
function isTrackedElement(element, constructor) {
|
|
199
|
+
return element instanceof constructor && element.hasAttribute("data-cid");
|
|
200
|
+
}
|
|
201
|
+
function isNearPoint(rect, x, y) {
|
|
202
|
+
return x >= rect.left - MARGIN_SCAN_DISTANCE
|
|
203
|
+
&& x <= rightOf(rect) + MARGIN_SCAN_DISTANCE
|
|
204
|
+
&& y >= rect.top - MARGIN_SCAN_DISTANCE
|
|
205
|
+
&& y <= bottomOf(rect) + MARGIN_SCAN_DISTANCE;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* A margin lies outside its element, so the pointer over it hits the parent: the
|
|
209
|
+
* element's own margins and its tracked children's margins are both candidates.
|
|
210
|
+
*/
|
|
211
|
+
function marginAffordanceAtPoint(element, x, y, includeChildren, match) {
|
|
212
|
+
const HTMLElementConstructor = element.ownerDocument.defaultView?.HTMLElement;
|
|
213
|
+
if (!HTMLElementConstructor)
|
|
214
|
+
return null;
|
|
215
|
+
const owners = [
|
|
216
|
+
element,
|
|
217
|
+
...(includeChildren
|
|
218
|
+
? Array.from(element.children).filter((child) => isTrackedElement(child, HTMLElementConstructor))
|
|
219
|
+
: []),
|
|
220
|
+
];
|
|
221
|
+
for (const owner of owners) {
|
|
222
|
+
if (owner !== element && !isNearPoint(owner.getBoundingClientRect(), x, y))
|
|
223
|
+
continue;
|
|
224
|
+
const model = boxModel(owner);
|
|
225
|
+
for (const side of SIDES) {
|
|
226
|
+
const affordance = marginAffordanceForSide(owner, side, model);
|
|
227
|
+
if (!affordance)
|
|
228
|
+
continue;
|
|
229
|
+
const hit = match === "handle"
|
|
230
|
+
? containsRectPoint(affordance.hit, x, y)
|
|
231
|
+
: affordance.affectedAreas.some((area) => containsRectPoint(area, x, y));
|
|
232
|
+
if (hit)
|
|
233
|
+
return affordance;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
154
238
|
function overlap(startA, endA, startB, endB) {
|
|
155
239
|
return Math.min(endA, endB) - Math.max(startA, startB) > EPSILON;
|
|
156
240
|
}
|
|
@@ -263,15 +347,12 @@ function gapDragHit(segment) {
|
|
|
263
347
|
const orientation = segment.axis === "horizontal" ? "vertical" : "horizontal";
|
|
264
348
|
return guideHit(gapGuide(segment), orientation);
|
|
265
349
|
}
|
|
266
|
-
/** Matches the padding bar
|
|
267
|
-
* not the point is inside the drag handle. Returns the first side by the same
|
|
268
|
-
* priority order as the drag affordances so both paths agree on overlaps. */
|
|
350
|
+
/** Matches the padding bar's visible area; same side priority as the drag handles. */
|
|
269
351
|
function paddingAffordanceInAreaAtPoint(element, x, y) {
|
|
270
352
|
const model = boxModel(element);
|
|
271
353
|
if (!containsPoint(model.outer, x, y))
|
|
272
354
|
return null;
|
|
273
|
-
const
|
|
274
|
-
for (const side of sides) {
|
|
355
|
+
for (const side of SIDES) {
|
|
275
356
|
const affordance = paddingAffordanceForSide(element, side, model);
|
|
276
357
|
if (affordance
|
|
277
358
|
&& affordance.affectedAreas.some((area) => containsRectPoint(area, x, y))) {
|
|
@@ -280,9 +361,7 @@ function paddingAffordanceInAreaAtPoint(element, x, y) {
|
|
|
280
361
|
}
|
|
281
362
|
return null;
|
|
282
363
|
}
|
|
283
|
-
/** Matches a layout gap
|
|
284
|
-
* the point is inside the drag handle. Shares segment priority and geometry
|
|
285
|
-
* with gapAffordanceAtPoint so hover and drag agree on crossed gap properties. */
|
|
364
|
+
/** Matches a layout gap's visible area; shares segment priority with gapAffordanceAtPoint. */
|
|
286
365
|
function gapAffordanceInAreaAtPoint(element, x, y) {
|
|
287
366
|
const segments = gapSegments(element);
|
|
288
367
|
if (segments.length === 0)
|
|
@@ -314,9 +393,7 @@ function gapValue(style, property) {
|
|
|
314
393
|
|| (property === "row-gap" ? style.rowGap : style.columnGap);
|
|
315
394
|
if (direct.trim())
|
|
316
395
|
return numberValue(direct);
|
|
317
|
-
// jsdom and
|
|
318
|
-
// the longhands through getPropertyValue(). Keep the gesture model aligned
|
|
319
|
-
// with the browser's shorthand fallback in those realms.
|
|
396
|
+
// jsdom and some CSSOM implementations expose only the `gap` shorthand.
|
|
320
397
|
const shorthand = style.getPropertyValue("gap") || style.gap;
|
|
321
398
|
const values = shorthand.trim().split(/\s+/).filter(Boolean);
|
|
322
399
|
if (values.length === 0)
|
|
@@ -344,7 +421,6 @@ function trackedElementsAtPoint(doc, x, y) {
|
|
|
344
421
|
}
|
|
345
422
|
return result;
|
|
346
423
|
}
|
|
347
|
-
/** Finds the spacing target under a document-local pointer location. */
|
|
348
424
|
export function getSpacingAffordanceAtPoint(doc, x, y) {
|
|
349
425
|
const candidates = trackedElementsAtPoint(doc, x, y);
|
|
350
426
|
for (const element of candidates) {
|
|
@@ -352,6 +428,11 @@ export function getSpacingAffordanceAtPoint(doc, x, y) {
|
|
|
352
428
|
if (padding)
|
|
353
429
|
return padding;
|
|
354
430
|
}
|
|
431
|
+
for (const [index, element] of candidates.entries()) {
|
|
432
|
+
const margin = marginAffordanceAtPoint(element, x, y, index === 0, "handle");
|
|
433
|
+
if (margin)
|
|
434
|
+
return margin;
|
|
435
|
+
}
|
|
355
436
|
for (const element of candidates) {
|
|
356
437
|
const gap = gapAffordanceAtPoint(element, x, y);
|
|
357
438
|
if (gap)
|
|
@@ -359,10 +440,7 @@ export function getSpacingAffordanceAtPoint(doc, x, y) {
|
|
|
359
440
|
}
|
|
360
441
|
return null;
|
|
361
442
|
}
|
|
362
|
-
/**
|
|
363
|
-
* pointer, even when the pointer is outside the drag handle. Hover previews use
|
|
364
|
-
* this; drags and the resize cursor still require the handle hit from
|
|
365
|
-
* getSpacingAffordanceAtPoint. */
|
|
443
|
+
/** Hover previews use this; drags and the resize cursor require the handle from getSpacingAffordanceAtPoint. */
|
|
366
444
|
export function getSpacingHoverAtPoint(doc, x, y) {
|
|
367
445
|
const candidates = trackedElementsAtPoint(doc, x, y);
|
|
368
446
|
for (const element of candidates) {
|
|
@@ -370,6 +448,11 @@ export function getSpacingHoverAtPoint(doc, x, y) {
|
|
|
370
448
|
if (padding)
|
|
371
449
|
return padding;
|
|
372
450
|
}
|
|
451
|
+
for (const [index, element] of candidates.entries()) {
|
|
452
|
+
const margin = marginAffordanceAtPoint(element, x, y, index === 0, "area");
|
|
453
|
+
if (margin)
|
|
454
|
+
return margin;
|
|
455
|
+
}
|
|
373
456
|
for (const element of candidates) {
|
|
374
457
|
const gap = gapAffordanceInAreaAtPoint(element, x, y);
|
|
375
458
|
if (gap)
|
|
@@ -377,7 +460,45 @@ export function getSpacingHoverAtPoint(doc, x, y) {
|
|
|
377
460
|
}
|
|
378
461
|
return null;
|
|
379
462
|
}
|
|
380
|
-
/**
|
|
463
|
+
/** Only descendants of `element` can win: candidates run innermost first and padding beats gaps. */
|
|
464
|
+
function affordanceForElement(candidates, element, padding, margin, gap) {
|
|
465
|
+
const index = candidates.indexOf(element);
|
|
466
|
+
if (index < 0)
|
|
467
|
+
return null;
|
|
468
|
+
for (let candidate = 0; candidate <= index; candidate++) {
|
|
469
|
+
const match = padding(candidates[candidate]);
|
|
470
|
+
if (match)
|
|
471
|
+
return match.element === element ? match : null;
|
|
472
|
+
}
|
|
473
|
+
// A margin belongs to a child of the hovered element (or to the element itself), so its owner may differ from `element`.
|
|
474
|
+
const marginMatch = margin(element, candidates[0] === element);
|
|
475
|
+
if (marginMatch)
|
|
476
|
+
return marginMatch;
|
|
477
|
+
let gapMatch = null;
|
|
478
|
+
for (let candidate = 0; candidate <= index && !gapMatch; candidate++) {
|
|
479
|
+
gapMatch = gap(candidates[candidate]);
|
|
480
|
+
}
|
|
481
|
+
if (gapMatch?.element !== element)
|
|
482
|
+
return null;
|
|
483
|
+
for (let candidate = index + 1; candidate < candidates.length; candidate++) {
|
|
484
|
+
if (padding(candidates[candidate]))
|
|
485
|
+
return null;
|
|
486
|
+
}
|
|
487
|
+
return gapMatch;
|
|
488
|
+
}
|
|
489
|
+
function elementSpacingHandle(candidates, element, x, y) {
|
|
490
|
+
return affordanceForElement(candidates, element, (candidate) => paddingAffordanceAtPoint(candidate, x, y), (candidate, includeChildren) => marginAffordanceAtPoint(candidate, x, y, includeChildren, "handle"), (candidate) => gapAffordanceAtPoint(candidate, x, y));
|
|
491
|
+
}
|
|
492
|
+
export function getElementSpacingHandleAtPoint(doc, element, x, y) {
|
|
493
|
+
return elementSpacingHandle(trackedElementsAtPoint(doc, x, y), element, x, y);
|
|
494
|
+
}
|
|
495
|
+
export function getElementSpacingAtPoint(doc, element, x, y) {
|
|
496
|
+
const candidates = trackedElementsAtPoint(doc, x, y);
|
|
497
|
+
return {
|
|
498
|
+
handle: elementSpacingHandle(candidates, element, x, y),
|
|
499
|
+
area: affordanceForElement(candidates, element, (candidate) => paddingAffordanceInAreaAtPoint(candidate, x, y), (candidate, includeChildren) => marginAffordanceAtPoint(candidate, x, y, includeChildren, "area"), (candidate) => gapAffordanceInAreaAtPoint(candidate, x, y)),
|
|
500
|
+
};
|
|
501
|
+
}
|
|
381
502
|
export function getSpacingAffordanceForDescriptor(element, descriptor) {
|
|
382
503
|
if (descriptor.kind === "padding") {
|
|
383
504
|
const side = descriptor.side;
|
|
@@ -385,6 +506,12 @@ export function getSpacingAffordanceForDescriptor(element, descriptor) {
|
|
|
385
506
|
return null;
|
|
386
507
|
return paddingAffordanceForSide(element, side);
|
|
387
508
|
}
|
|
509
|
+
if (descriptor.kind === "margin") {
|
|
510
|
+
const side = descriptor.side;
|
|
511
|
+
if (!side || descriptor.property !== `margin-${side}`)
|
|
512
|
+
return null;
|
|
513
|
+
return marginAffordanceForSide(element, side);
|
|
514
|
+
}
|
|
388
515
|
if (descriptor.property !== "row-gap" && descriptor.property !== "column-gap")
|
|
389
516
|
return null;
|
|
390
517
|
const segment = gapSegments(element).find((candidate) => candidate.property === descriptor.property);
|
|
@@ -393,14 +520,7 @@ export function getSpacingAffordanceForDescriptor(element, descriptor) {
|
|
|
393
520
|
const guide = gapGuide(segment);
|
|
394
521
|
return gapAffordanceAtPoint(element, guide.left + guide.width / 2, guide.top + guide.height / 2, descriptor.property);
|
|
395
522
|
}
|
|
396
|
-
/**
|
|
397
|
-
* Calculates a direct-manipulation value, optionally stepping changes by 8px.
|
|
398
|
-
* While Shift is held the value snaps to a step anchor: the first displacement
|
|
399
|
-
* picks the nearest multiple of 8 from the authored value in the drag
|
|
400
|
-
* direction (ties resolve upward), and further movement adds whole 8px steps
|
|
401
|
-
* from that anchor, so the result is always a multiple of 8 once the drag
|
|
402
|
-
* moves. At the exact start point the authored value is preserved.
|
|
403
|
-
*/
|
|
523
|
+
/** With Shift, snaps to a multiple of 8 from the authored value in the drag direction. */
|
|
404
524
|
export function spacingValueForDrag(affordance, start, point, shiftKey = false) {
|
|
405
525
|
const delta = affordance.dragAxis === "x" ? point.x - start.x : point.y - start.y;
|
|
406
526
|
const signedDelta = delta * affordance.direction;
|
|
@@ -418,7 +538,7 @@ export function spacingValueForDrag(affordance, start, point, shiftKey = false)
|
|
|
418
538
|
export function spacingValueCss(value) {
|
|
419
539
|
return `${Math.max(0, Math.round(value))}px`;
|
|
420
540
|
}
|
|
421
|
-
/**
|
|
541
|
+
/** The stable subset sent across the renderer boundary. */
|
|
422
542
|
export function toSpacingDescriptor(affordance) {
|
|
423
543
|
return {
|
|
424
544
|
kind: affordance.kind,
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import type { SelectedElement } from "../selection/selectionStore.js";
|
|
2
2
|
import { type StructuralDelete, type StructuralMove } from "../projection/structuralProjection.js";
|
|
3
3
|
export type StructuralNudgeKey = "ArrowUp" | "ArrowDown" | "ArrowLeft" | "ArrowRight";
|
|
4
|
-
/**
|
|
5
|
-
* A temporary, document-local insertion point. It is intentionally not a
|
|
6
|
-
* structural record: `moveElement` captures durable rendered-instance refs
|
|
7
|
-
* before handing the canonical action to structuralProjection.
|
|
8
|
-
*/
|
|
4
|
+
/** Temporary, document-local insertion point; canonical moves capture durable rendered-instance refs instead. */
|
|
9
5
|
export interface DropLocation {
|
|
10
6
|
parent: HTMLElement;
|
|
11
7
|
before: Node | null;
|
|
@@ -15,14 +11,11 @@ export interface DropLocation {
|
|
|
15
11
|
width: number;
|
|
16
12
|
height: number;
|
|
17
13
|
}
|
|
18
|
-
/**
|
|
14
|
+
/** Delegates to the guard shared with canonical capture and document replay. */
|
|
19
15
|
export declare function canContainElement(parent: HTMLElement, child: HTMLElement): boolean;
|
|
20
|
-
/** Derives a safe insertion point; its nodes never leave this gesture module. */
|
|
21
16
|
export declare function getDropLocationForElement(dragged: HTMLElement, target: HTMLElement, beforeTarget: boolean, preferContainer?: boolean): DropLocation | null;
|
|
22
17
|
export declare function getDropLocationAtPoint(doc: Document, dragged: HTMLElement, x: number, y: number): DropLocation | null;
|
|
23
|
-
/** Capture the move as canonical intent, then preview it in an inline host. */
|
|
24
18
|
export declare function moveElement(node: HTMLElement, destination: DropLocation): StructuralMove | null;
|
|
25
19
|
/** Reorder only same-parent siblings; horizontal movement needs a flex row. */
|
|
26
20
|
export declare function nudgeElement(node: HTMLElement, key: StructuralNudgeKey): StructuralMove | null;
|
|
27
|
-
/** Capture delete intent, then preview it in an inline host. */
|
|
28
21
|
export declare function deleteElement(selected: SelectedElement): StructuralDelete | null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { applyStructuralProjection, canContainElement as canContainStructuralElement, createStructuralDelete, createStructuralMove, getStructuralMoveLegality, getStructuralChanges, } from "../projection/structuralProjection.js";
|
|
2
2
|
import { isEditorShellDocument } from "../runtime/editorShell.js";
|
|
3
|
-
/**
|
|
3
|
+
/** Delegates to the guard shared with canonical capture and document replay. */
|
|
4
4
|
export function canContainElement(parent, child) {
|
|
5
5
|
return canContainStructuralElement(parent, child);
|
|
6
6
|
}
|
|
@@ -96,7 +96,6 @@ function flexRowChildAtTarget(dragged, target) {
|
|
|
96
96
|
}
|
|
97
97
|
return null;
|
|
98
98
|
}
|
|
99
|
-
/** Derives a safe insertion point; its nodes never leave this gesture module. */
|
|
100
99
|
export function getDropLocationForElement(dragged, target, beforeTarget, preferContainer = true) {
|
|
101
100
|
if (target === dragged || dragged.contains(target))
|
|
102
101
|
return null;
|
|
@@ -147,7 +146,6 @@ function projectInlineHost(node) {
|
|
|
147
146
|
return;
|
|
148
147
|
applyStructuralProjection(document, getStructuralChanges());
|
|
149
148
|
}
|
|
150
|
-
/** Capture the move as canonical intent, then preview it in an inline host. */
|
|
151
149
|
export function moveElement(node, destination) {
|
|
152
150
|
if (!getStructuralMoveLegality(node, destination).valid)
|
|
153
151
|
return null;
|
|
@@ -170,7 +168,6 @@ export function nudgeElement(node, key) {
|
|
|
170
168
|
const before = moveEarlier ? sibling : sibling.nextElementSibling;
|
|
171
169
|
return moveElement(node, { parent, before, ...lineFor(parent, before) });
|
|
172
170
|
}
|
|
173
|
-
/** Capture delete intent, then preview it in an inline host. */
|
|
174
171
|
export function deleteElement(selected) {
|
|
175
172
|
const node = selected.domElement;
|
|
176
173
|
if (!node.parentElement || !node.isConnected)
|
|
@@ -3,6 +3,7 @@ import { type SketchStorage } from "./sketch/persistence.js";
|
|
|
3
3
|
export type { InspectorStorage } from "./runtime/inspectorStorage.js";
|
|
4
4
|
export { createMirroredStorage } from "./runtime/inspectorStorage.js";
|
|
5
5
|
export type { SketchPersistenceSnapshot, SketchStorage, SketchStorageChange } from "./sketch/persistence.js";
|
|
6
|
+
export { isSketchDocument, isSketchHandoffRecord } from "./sketch/model.js";
|
|
6
7
|
export type { SketchDocument, SketchHandoffRecord } from "./sketch/model.js";
|
|
7
8
|
export interface PageInspectorOptions {
|
|
8
9
|
/** Replaces `localStorage` for comments, drafts, and Canvas state. */
|
|
@@ -11,10 +12,7 @@ export interface PageInspectorOptions {
|
|
|
11
12
|
sketchStorage?: SketchStorage;
|
|
12
13
|
/** Skips the `<style>` policy probe and always uses constructable stylesheets. */
|
|
13
14
|
adoptStylesheets?: boolean;
|
|
14
|
-
/**
|
|
15
|
-
* `"editor"` turns a document whose URL carries the editor marker into the
|
|
16
|
-
* iframe editor; otherwise the page itself is the only Canvas card.
|
|
17
|
-
*/
|
|
15
|
+
/** `"editor"` requires the editor URL marker; otherwise the page itself is the only Canvas card. */
|
|
18
16
|
surface?: "editor" | "page";
|
|
19
17
|
/** Shows a short error instead of enabling inspection on an unsupported page. */
|
|
20
18
|
unavailableReason?: string;
|
|
@@ -29,14 +27,7 @@ export interface PageInspectorHandle {
|
|
|
29
27
|
/** Starts the `window.__nudgeUiPerformance` counters for this document. */
|
|
30
28
|
enablePerformanceDiagnostics(): void;
|
|
31
29
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Starts the inspector on the current page. Running a second bundle copy in
|
|
34
|
-
* the same window toggles the first instance instead, because only the first
|
|
35
|
-
* copy's stores drive the UI.
|
|
36
|
-
*/
|
|
30
|
+
/** A second bundle copy in the same window toggles the first instance, whose stores own the UI. */
|
|
37
31
|
export declare function startPageInspector(options?: PageInspectorOptions): Promise<void>;
|
|
38
|
-
/**
|
|
39
|
-
* Starts the renderer in an editor's Canvas frame. Does nothing in any other
|
|
40
|
-
* document, or when the frame already runs one.
|
|
41
|
-
*/
|
|
32
|
+
/** Only acts inside an editor Canvas frame that has no renderer yet. */
|
|
42
33
|
export declare function startCanvasRenderer(options?: Pick<PageInspectorOptions, "adoptStylesheets">): void;
|
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Entry for loading the inspector into any page without a host Adapter.
|
|
3
|
-
*
|
|
4
|
-
* Everything a host normally supplies is derived from the live document:
|
|
5
|
-
* runtime identity is assigned lazily under the pointer, and tokens come from
|
|
6
|
-
* readable stylesheets plus the root's computed custom properties. Source
|
|
7
|
-
* locations, component semantics, iterations, and the agent bridge are
|
|
8
|
-
* unavailable. In editor mode the application runs in Canvas frames;
|
|
9
|
-
* otherwise the page itself is the only Canvas card.
|
|
10
|
-
*/
|
|
1
|
+
/** Loads the inspector into a page without a host Adapter; everything a host normally supplies is derived from the live document. */
|
|
11
2
|
import { bootstrapNudgeUi, configureNudgeUiRuntime, getNudgeUiRuntimeConfig, isCanvasRenderer, readNudgeUiEditorTarget, setInspectorOpen, unmountInspector, } from "./index.js";
|
|
12
3
|
import { CANVAS_RENDERER_ATTR } from "./canvas/roleDetection.js";
|
|
13
4
|
import { releaseLease } from "./canvas/workspaceLease.js";
|
|
@@ -20,6 +11,7 @@ import { enableInspectionPerformanceDiagnostics } from "./inspection/performance
|
|
|
20
11
|
import { installLazyRuntimeIdentity } from "./runtime/staticHtmlRuntimeIdentity.js";
|
|
21
12
|
import { createTokenInventory } from "../css/token-inventory/inventory.js";
|
|
22
13
|
export { createMirroredStorage } from "./runtime/inspectorStorage.js";
|
|
14
|
+
export { isSketchDocument, isSketchHandoffRecord } from "./sketch/model.js";
|
|
23
15
|
const MOUNT_ID = "nudge-ui-root";
|
|
24
16
|
const LOADED_FLAG = "__NUDGE_UI_PAGE_INSPECTOR__";
|
|
25
17
|
const COMPUTED_ROOT_ID = "computed:root";
|
|
@@ -60,11 +52,7 @@ async function collectSheet(sheet, index, base) {
|
|
|
60
52
|
return { id, readError: "cross-origin stylesheet without CORS access" };
|
|
61
53
|
}
|
|
62
54
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Custom properties visible on the root element but absent from readable
|
|
65
|
-
* stylesheets: definitions in cross-origin sheets without CORS, scoped theme
|
|
66
|
-
* rules the inventory rejects, or variables set from JavaScript.
|
|
67
|
-
*/
|
|
55
|
+
/** Root custom properties missing from readable stylesheets: CORS-blocked sheets, rejected scoped rules, or JS-set variables. */
|
|
68
56
|
function computedRootDeclarations(doc, definedNames) {
|
|
69
57
|
const declarations = [];
|
|
70
58
|
const view = doc.defaultView ?? window;
|
|
@@ -153,7 +141,7 @@ function runtimeConfig(tokens, unavailableReason) {
|
|
|
153
141
|
framework: "HTML",
|
|
154
142
|
stylingSystem: "CSS custom properties",
|
|
155
143
|
capabilities: { canvas: !unavailableReason, componentSemantics: false, domNavigation: !unavailableReason },
|
|
156
|
-
features: { canvasIterations: false, ...(unavailableReason ? { sketch: false } : {}) },
|
|
144
|
+
features: { canvasIterations: false, mcp: false, ...(unavailableReason ? { sketch: false } : {}) },
|
|
157
145
|
...(unavailableReason ? { inspectionUnavailableReason: unavailableReason } : {}),
|
|
158
146
|
componentContracts: [],
|
|
159
147
|
...tokens,
|
|
@@ -194,11 +182,10 @@ function mountPageInspector() {
|
|
|
194
182
|
enable();
|
|
195
183
|
};
|
|
196
184
|
}
|
|
197
|
-
/**
|
|
198
|
-
* Replaces the page's content with the iframe editor. The application runs in
|
|
199
|
-
* Canvas renderer frames, which the caller loads the inspector into.
|
|
200
|
-
*/
|
|
185
|
+
/** Replaces the page content with the iframe editor; the caller loads the inspector into its renderer frames. */
|
|
201
186
|
function mountEditor(onRendererFrameLoad) {
|
|
187
|
+
// The editor never owns the tab title; it shows the application's own title.
|
|
188
|
+
const pageTitle = document.title;
|
|
202
189
|
document.head.replaceChildren();
|
|
203
190
|
document.body.replaceChildren();
|
|
204
191
|
for (const element of [document.documentElement, document.body]) {
|
|
@@ -206,7 +193,7 @@ function mountEditor(onRendererFrameLoad) {
|
|
|
206
193
|
element.removeAttribute("hidden");
|
|
207
194
|
element.removeAttribute("inert");
|
|
208
195
|
}
|
|
209
|
-
document.title =
|
|
196
|
+
document.title = pageTitle;
|
|
210
197
|
const layout = new CSSStyleSheet();
|
|
211
198
|
layout.replaceSync(`html, body, #${MOUNT_ID} { display: block; width: 100%; height: 100%; margin: 0; overflow: hidden; }`);
|
|
212
199
|
document.adoptedStyleSheets = [layout];
|
|
@@ -240,7 +227,21 @@ function mountEditor(onRendererFrameLoad) {
|
|
|
240
227
|
onRendererFrameLoad?.();
|
|
241
228
|
}
|
|
242
229
|
};
|
|
243
|
-
|
|
230
|
+
// Mirrors the primary application frame's title, which follows its navigation.
|
|
231
|
+
const syncApplicationTitle = () => {
|
|
232
|
+
for (const frame of frames()) {
|
|
233
|
+
const frameTitle = applicationDocument(frame)?.title;
|
|
234
|
+
if (frameTitle) {
|
|
235
|
+
if (document.title !== frameTitle)
|
|
236
|
+
document.title = frameTitle;
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
window.setInterval(() => {
|
|
242
|
+
announceReadyDocuments();
|
|
243
|
+
syncApplicationTitle();
|
|
244
|
+
}, 100);
|
|
244
245
|
// Script-built styles exist only in the application frames, not in this document.
|
|
245
246
|
const collectFrameTokens = (frame) => {
|
|
246
247
|
const frameDocument = applicationDocument(frame);
|
|
@@ -267,15 +268,10 @@ function mountEditor(onRendererFrameLoad) {
|
|
|
267
268
|
new MutationObserver(watch).observe(root, { childList: true, subtree: true });
|
|
268
269
|
watch();
|
|
269
270
|
}
|
|
270
|
-
/** Leaves the editor by loading the application URL it frames. */
|
|
271
271
|
function exitEditor() {
|
|
272
272
|
location.replace(readNudgeUiEditorTarget(location.href) ?? location.href);
|
|
273
273
|
}
|
|
274
|
-
/**
|
|
275
|
-
* Starts the inspector on the current page. Running a second bundle copy in
|
|
276
|
-
* the same window toggles the first instance instead, because only the first
|
|
277
|
-
* copy's stores drive the UI.
|
|
278
|
-
*/
|
|
274
|
+
/** A second bundle copy in the same window toggles the first instance, whose stores own the UI. */
|
|
279
275
|
export async function startPageInspector(options = {}) {
|
|
280
276
|
const target = window;
|
|
281
277
|
const loaded = target[LOADED_FLAG];
|
|
@@ -309,10 +305,7 @@ export async function startPageInspector(options = {}) {
|
|
|
309
305
|
console.info(`[nudge-ui] Inspector loaded in ${editor ? "editor" : "page"} mode with ${tokens.tokenCatalog.length} tokens`
|
|
310
306
|
+ (tokens.tokenDiagnostics.length > 0 ? ` and ${tokens.tokenDiagnostics.length} stylesheet diagnostics.` : "."), tokens.tokenDiagnostics);
|
|
311
307
|
}
|
|
312
|
-
/**
|
|
313
|
-
* Starts the renderer in an editor's Canvas frame. Does nothing in any other
|
|
314
|
-
* document, or when the frame already runs one.
|
|
315
|
-
*/
|
|
308
|
+
/** Only acts inside an editor Canvas frame that has no renderer yet. */
|
|
316
309
|
export function startCanvasRenderer(options = {}) {
|
|
317
310
|
const target = window;
|
|
318
311
|
if (!isCanvasRenderer() || target[LOADED_FLAG])
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
/** CSS-string escaping for selectors assembled from runtime DOM metadata. */
|
|
2
1
|
export function escapeCssString(value) {
|
|
3
|
-
// Keep ordinary
|
|
4
|
-
//
|
|
5
|
-
// complete value so punctuation cannot terminate the CSS string early.
|
|
2
|
+
// Keep ordinary selectors byte-compatible; a value containing a quote,
|
|
3
|
+
// backslash, or control character is hex-escaped whole to prevent an early string end.
|
|
6
4
|
if (!/["\\\0-\x1f\x7f]/.test(value))
|
|
7
5
|
return value;
|
|
8
6
|
let escaped = "";
|
|
@@ -15,7 +15,6 @@ export interface CompiledManagedStyles {
|
|
|
15
15
|
export interface SerializedManagedStyles {
|
|
16
16
|
readonly css: string;
|
|
17
17
|
}
|
|
18
|
-
/** A complete, read-only projection for one document-local runtime. */
|
|
19
18
|
export interface DraftProjectionPlan<ManagedStyles> {
|
|
20
19
|
readonly sourceRevision: number;
|
|
21
20
|
readonly managedStyles: ManagedStyles;
|
|
@@ -23,13 +22,9 @@ export interface DraftProjectionPlan<ManagedStyles> {
|
|
|
23
22
|
readonly structuralChanges: readonly StructuralChange[];
|
|
24
23
|
readonly textContentChanges: readonly TextContentChangeRecord[];
|
|
25
24
|
readonly componentOverrides: readonly ComponentOverride[];
|
|
26
|
-
/**
|
|
27
|
-
* Generated identities the saved edits refer to. Omitted by plans that
|
|
28
|
-
* only hide edits (hold-to-view-original), which keep the attached ones.
|
|
29
|
-
*/
|
|
25
|
+
/** Omitted by hold-to-view-original plans, which keep the attached identities. */
|
|
30
26
|
readonly runtimeIdentities?: readonly RuntimeIdentityClaim[];
|
|
31
27
|
}
|
|
32
|
-
/** Applies every projection dimension to one document-local runtime. */
|
|
33
28
|
export interface DocumentProjectionAdapter<ManagedStyles> {
|
|
34
29
|
applyRuntimeIdentities(claims: readonly RuntimeIdentityClaim[]): void;
|
|
35
30
|
applyStructural(changes: readonly StructuralChange[]): void;
|
|
@@ -39,13 +34,6 @@ export interface DocumentProjectionAdapter<ManagedStyles> {
|
|
|
39
34
|
applyManagedStyles(styles: ManagedStyles): void;
|
|
40
35
|
}
|
|
41
36
|
export declare function compileDraftProjection(snapshot: DraftProjectionSource): DraftProjectionPlan<CompiledManagedStyles>;
|
|
42
|
-
/**
|
|
43
|
-
* Replaces one document projection in the required order.
|
|
44
|
-
*
|
|
45
|
-
* Generated identities are attached first: every selector and resolver below
|
|
46
|
-
* looks elements up by them. Structural intent follows because later rendered-instance evidence
|
|
47
|
-
* can depend on the restored element order. Managed CSS is applied last so
|
|
48
|
-
* selectors can use the document-local instance markers installed above.
|
|
49
|
-
*/
|
|
37
|
+
/** Order matters: identities first (selectors resolve by them), then structural, then managed CSS last (selectors use the instance markers above). */
|
|
50
38
|
export declare function applyDraftProjection<ManagedStyles>(adapter: DocumentProjectionAdapter<ManagedStyles>, plan: DraftProjectionPlan<ManagedStyles>): void;
|
|
51
39
|
export declare function applyHostDraftProjection(plan: DraftProjectionPlan<CompiledManagedStyles>): void;
|
|
@@ -26,14 +26,7 @@ export function compileDraftProjection(snapshot) {
|
|
|
26
26
|
runtimeIdentities: collectRuntimeIdentityClaims(snapshot),
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
/**
|
|
30
|
-
* Replaces one document projection in the required order.
|
|
31
|
-
*
|
|
32
|
-
* Generated identities are attached first: every selector and resolver below
|
|
33
|
-
* looks elements up by them. Structural intent follows because later rendered-instance evidence
|
|
34
|
-
* can depend on the restored element order. Managed CSS is applied last so
|
|
35
|
-
* selectors can use the document-local instance markers installed above.
|
|
36
|
-
*/
|
|
29
|
+
/** Order matters: identities first (selectors resolve by them), then structural, then managed CSS last (selectors use the instance markers above). */
|
|
37
30
|
export function applyDraftProjection(adapter, plan) {
|
|
38
31
|
if (plan.runtimeIdentities)
|
|
39
32
|
adapter.applyRuntimeIdentities(plan.runtimeIdentities);
|
|
@@ -20,14 +20,8 @@ export interface PreviewResult {
|
|
|
20
20
|
}
|
|
21
21
|
export declare function ensureManagedSheet(): void;
|
|
22
22
|
export declare function rulesToCssText(rules: StyleRule[]): string;
|
|
23
|
-
/** Synchronous serialized view of the rules currently projected into the managed sheet. */
|
|
24
23
|
export declare function getManagedSheetText(): string;
|
|
25
|
-
/**
|
|
26
|
-
* Replaces the managed sheet with the canonical projection. Keeping the
|
|
27
|
-
* serialized rules authoritative avoids stale CSSStyleRule references when a
|
|
28
|
-
* framework dev server reparses or reattaches style nodes during a render.
|
|
29
|
-
*/
|
|
24
|
+
/** Serialized rules stay authoritative to avoid stale CSSStyleRule references when a framework reparses style nodes. */
|
|
30
25
|
export declare function applyRules(rules: StyleRule[]): void;
|
|
31
|
-
/** Verify what the browser painted after the managed sheet was projected. */
|
|
32
26
|
export declare function verifyPreview(el: HTMLElement | null, property: string, requestedValue: string): PreviewResult;
|
|
33
27
|
export declare function removeManagedSheet(): void;
|