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
|
@@ -4,6 +4,11 @@ import { adoptedStylesheetKey, STATE_PREVIEW_SHEET_ID } from "../../runtime/owne
|
|
|
4
4
|
import { INTERACTION_CURSOR_PROPERTY } from "../../ui/customCursors.js";
|
|
5
5
|
const revisionRecords = new WeakMap();
|
|
6
6
|
const ruleSnapshots = new WeakMap();
|
|
7
|
+
/** Bumped when a page-owned stylesheet's walk could change without replacing its CSSStyleSheet object; inspector-owned writes leave it alone. */
|
|
8
|
+
const pageSheetEpochs = new WeakMap();
|
|
9
|
+
function bumpPageSheetEpoch(doc) {
|
|
10
|
+
pageSheetEpochs.set(doc, (pageSheetEpochs.get(doc) ?? 0) + 1);
|
|
11
|
+
}
|
|
7
12
|
const documentResolutionSessions = new WeakMap();
|
|
8
13
|
const documentResolutionReferences = new WeakMap();
|
|
9
14
|
const registeredElements = new WeakSet();
|
|
@@ -15,10 +20,6 @@ function notifyDocumentRevision(doc) {
|
|
|
15
20
|
const revisions = documentRevisions(doc);
|
|
16
21
|
documentRevisionListeners.get(doc)?.forEach((cb) => cb({ ...revisions }));
|
|
17
22
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Subscribes to cascade revisions for one document. This is the narrow
|
|
20
|
-
* document-scoped seam used by the browser inspection Module.
|
|
21
|
-
*/
|
|
22
23
|
export function subscribeDocumentRevision(doc, cb) {
|
|
23
24
|
let listeners = documentRevisionListeners.get(doc);
|
|
24
25
|
if (!listeners) {
|
|
@@ -33,12 +34,7 @@ export function subscribeDocumentRevision(doc, cb) {
|
|
|
33
34
|
}
|
|
34
35
|
};
|
|
35
36
|
}
|
|
36
|
-
/**
|
|
37
|
-
* Elements whose attribute changes can affect a cached cascade outcome. The
|
|
38
|
-
* observer only counts attribute mutations against registered elements so
|
|
39
|
-
* unrelated host churn (React commits, hover states, animations) cannot bump
|
|
40
|
-
* the element revision. Registration is idempotent.
|
|
41
|
-
*/
|
|
37
|
+
/** Only attribute mutations on registered elements bump the element revision; unrelated host churn is ignored. */
|
|
42
38
|
export function registerResolutionElement(el) {
|
|
43
39
|
registeredElements.add(el);
|
|
44
40
|
}
|
|
@@ -49,7 +45,6 @@ export function registerResolutionLineage(element) {
|
|
|
49
45
|
current = current.parentElement;
|
|
50
46
|
}
|
|
51
47
|
}
|
|
52
|
-
/** Releases the observer, listener, and cached state owned by one document. */
|
|
53
48
|
export function disposeDocumentResolution(doc) {
|
|
54
49
|
const session = documentResolutionSessions.get(doc);
|
|
55
50
|
if (session) {
|
|
@@ -63,14 +58,7 @@ export function disposeDocumentResolution(doc) {
|
|
|
63
58
|
documentResolutionSessions.delete(doc);
|
|
64
59
|
}
|
|
65
60
|
documentResolutionReferences.delete(doc);
|
|
66
|
-
//
|
|
67
|
-
// resurrects stale revision-keyed caches in property resolution, token
|
|
68
|
-
// availability, and rule matching: an entry written at
|
|
69
|
-
// (0,0) before disposal matches immediately after disposal at (0,0), even
|
|
70
|
-
// though the CSSOM changed while no observer was attached. Bump instead so
|
|
71
|
-
// every pre-disposal cache entry misses, then let the next
|
|
72
|
-
// documentRevisions() observe from the bumped baseline. Only bump when a
|
|
73
|
-
// session was actually torn down so repeated disposes stay idempotent.
|
|
61
|
+
// Counters stay monotonic: resetting to (0,0) would resurrect stale revision-keyed caches written before disposal.
|
|
74
62
|
if (session) {
|
|
75
63
|
const record = revisionRecords.get(doc);
|
|
76
64
|
if (record) {
|
|
@@ -79,6 +67,7 @@ export function disposeDocumentResolution(doc) {
|
|
|
79
67
|
}
|
|
80
68
|
}
|
|
81
69
|
ruleSnapshots.delete(doc);
|
|
70
|
+
bumpPageSheetEpoch(doc);
|
|
82
71
|
documentRevisionListeners.get(doc)?.clear();
|
|
83
72
|
documentRevisionListeners.delete(doc);
|
|
84
73
|
}
|
|
@@ -135,15 +124,19 @@ const MANAGED_SHEET_ID = "nudge-ui-styles";
|
|
|
135
124
|
function isManagedStylesheetNode(node) {
|
|
136
125
|
return isStylesheetNode(node) && node.id === MANAGED_SHEET_ID;
|
|
137
126
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
127
|
+
function isPageStylesheetNode(node) {
|
|
128
|
+
return isStylesheetNode(node) && !isManagedStylesheetNode(node);
|
|
129
|
+
}
|
|
130
|
+
function changesPageStylesheet(record) {
|
|
131
|
+
if (record.type === "attributes")
|
|
132
|
+
return isPageStylesheetNode(record.target);
|
|
133
|
+
if (record.type === "characterData")
|
|
134
|
+
return isPageStylesheetNode(record.target.parentElement);
|
|
135
|
+
return isPageStylesheetNode(record.target)
|
|
136
|
+
|| Array.from(record.addedNodes).some(isPageStylesheetNode)
|
|
137
|
+
|| Array.from(record.removedNodes).some(isPageStylesheetNode);
|
|
138
|
+
}
|
|
139
|
+
// The renderer rewrites these on hover and spacing drags; bumping the element revision would re-resolve the cascade per pointer move.
|
|
147
140
|
const RENDERER_INLINE_CURSOR_PROPERTIES = ["cursor", INTERACTION_CURSOR_PROPERTY];
|
|
148
141
|
function styleTextWithoutCursor(doc, text) {
|
|
149
142
|
const scratch = doc.createElement("div");
|
|
@@ -159,9 +152,7 @@ function isCursorOnlyStyleChange(target, oldValue) {
|
|
|
159
152
|
function isProbeMutation(record) {
|
|
160
153
|
if (record.type === "attributes") {
|
|
161
154
|
const target = record.target;
|
|
162
|
-
// Stylesheet attributes change
|
|
163
|
-
// the stylesheet element has never been registered as a resolution target.
|
|
164
|
-
// Handle them before the generic unregistered-element fast path.
|
|
155
|
+
// Stylesheet attributes change the rules even for unregistered elements, so check them before the registry fast path.
|
|
165
156
|
if (isStylesheetNode(target)) {
|
|
166
157
|
const name = record.attributeName ?? "";
|
|
167
158
|
if (isManagedStylesheetNode(target))
|
|
@@ -169,9 +160,7 @@ function isProbeMutation(record) {
|
|
|
169
160
|
return name.startsWith("data-nudge-ui");
|
|
170
161
|
}
|
|
171
162
|
const name = record.attributeName ?? "";
|
|
172
|
-
//
|
|
173
|
-
// Ignore them before the registry check so hovering an unregistered canvas
|
|
174
|
-
// node does not invalidate the selected element's resolution snapshot.
|
|
163
|
+
// data-renderer-id is lookup metadata, not a cascade input; ignore it before the registry check.
|
|
175
164
|
if (name === "data-renderer-id")
|
|
176
165
|
return true;
|
|
177
166
|
if (!registeredElements.has(target))
|
|
@@ -185,8 +174,7 @@ function isProbeMutation(record) {
|
|
|
185
174
|
}
|
|
186
175
|
if (isProbeNode(record.target) && !isManagedStylesheetNode(record.target))
|
|
187
176
|
return true;
|
|
188
|
-
// Removed nodes are already disconnected, so their ancestor chain
|
|
189
|
-
// check the record's target subtree and the nodes themselves instead.
|
|
177
|
+
// Removed nodes are already disconnected, so check their own attributes instead of an ancestor chain.
|
|
190
178
|
const nodes = [...record.addedNodes, ...record.removedNodes];
|
|
191
179
|
if (nodes.some(isManagedStylesheetNode))
|
|
192
180
|
return false;
|
|
@@ -198,10 +186,7 @@ export function documentRevisions(doc) {
|
|
|
198
186
|
record = { element: 0, stylesheet: 0 };
|
|
199
187
|
revisionRecords.set(doc, record);
|
|
200
188
|
}
|
|
201
|
-
// A disposed document keeps its
|
|
202
|
-
// disposeDocumentResolution) but loses its observer session. Recreate the
|
|
203
|
-
// session so later mutations are observed from the bumped baseline instead
|
|
204
|
-
// of silently freezing the counters.
|
|
189
|
+
// A disposed document keeps its record but loses its observer; recreate the session so mutations are not silently unobserved.
|
|
205
190
|
if (documentResolutionSessions.get(doc))
|
|
206
191
|
return record;
|
|
207
192
|
const session = {
|
|
@@ -211,9 +196,7 @@ export function documentRevisions(doc) {
|
|
|
211
196
|
resizeListener: null,
|
|
212
197
|
};
|
|
213
198
|
documentResolutionSessions.set(doc, session);
|
|
214
|
-
//
|
|
215
|
-
// not a property in every TypeScript Window declaration used by consumers.
|
|
216
|
-
// Keep the cast local so the observer and its callback remain document-local.
|
|
199
|
+
// Not every TypeScript Window declaration types MutationObserver; the local cast keeps the observer document-local.
|
|
217
200
|
const viewWithObserver = session.view;
|
|
218
201
|
const Observer = viewWithObserver?.MutationObserver
|
|
219
202
|
?? (typeof MutationObserver !== "undefined" ? MutationObserver : undefined);
|
|
@@ -228,6 +211,8 @@ export function documentRevisions(doc) {
|
|
|
228
211
|
record.element++;
|
|
229
212
|
if (relevant.some(changesStylesheet))
|
|
230
213
|
record.stylesheet++;
|
|
214
|
+
if (relevant.some(changesPageStylesheet))
|
|
215
|
+
bumpPageSheetEpoch(doc);
|
|
231
216
|
notifyDocumentRevision(doc);
|
|
232
217
|
});
|
|
233
218
|
session.observer = observer;
|
|
@@ -243,6 +228,7 @@ export function documentRevisions(doc) {
|
|
|
243
228
|
return;
|
|
244
229
|
record.element++;
|
|
245
230
|
record.stylesheet++;
|
|
231
|
+
bumpPageSheetEpoch(doc);
|
|
246
232
|
notifyDocumentRevision(doc);
|
|
247
233
|
};
|
|
248
234
|
session.resizeListener = resizeListener;
|
|
@@ -253,8 +239,16 @@ export function documentRevisions(doc) {
|
|
|
253
239
|
function stylesheetRevision(doc) {
|
|
254
240
|
return documentRevisions(doc).stylesheet;
|
|
255
241
|
}
|
|
256
|
-
/** Invalidates CSSOM-derived snapshots after programmatic stylesheet edits. */
|
|
257
242
|
export function invalidateStyleResolutionCache(doc = document) {
|
|
243
|
+
const record = documentRevisions(doc);
|
|
244
|
+
record.element++;
|
|
245
|
+
record.stylesheet++;
|
|
246
|
+
ruleSnapshots.delete(doc);
|
|
247
|
+
bumpPageSheetEpoch(doc);
|
|
248
|
+
notifyDocumentRevision(doc);
|
|
249
|
+
}
|
|
250
|
+
/** Inspector-only invalidation; page sheets are re-read only if their objects changed. */
|
|
251
|
+
export function invalidateOwnedStyleResolution(doc = document) {
|
|
258
252
|
const record = documentRevisions(doc);
|
|
259
253
|
record.element++;
|
|
260
254
|
record.stylesheet++;
|
|
@@ -268,13 +262,7 @@ function isStyleRuleInDocument(rule, doc) {
|
|
|
268
262
|
return rule.type === (doc.defaultView?.CSSRule.STYLE_RULE ?? 1)
|
|
269
263
|
&& "selectorText" in rule && "style" in rule;
|
|
270
264
|
}
|
|
271
|
-
/**
|
|
272
|
-
* Reads the declarations the browser accepted for a style rule. This is the
|
|
273
|
-
* semantic source for authored values; it intentionally does not inspect the
|
|
274
|
-
* stylesheet element's original text. CSSOM may expose a shorthand as empty
|
|
275
|
-
* longhand entries through indexed enumeration, so prefer its serialized
|
|
276
|
-
* declaration block and use enumeration as a compatibility fallback.
|
|
277
|
-
*/
|
|
265
|
+
/** Prefers the serialized declaration block; enumeration is a fallback because a shorthand can enumerate empty longhands. */
|
|
278
266
|
export function declarationsFromCssom(style) {
|
|
279
267
|
const declarations = parseCssomDeclarations(style.cssText);
|
|
280
268
|
const seen = new Set(declarations.map((declaration) => declaration.property));
|
|
@@ -397,10 +385,7 @@ function contextForRule(cssText, record) {
|
|
|
397
385
|
return params ? { kind: "media", params } : null;
|
|
398
386
|
}
|
|
399
387
|
if (/^\s*@container\b/i.test(cssText)) {
|
|
400
|
-
//
|
|
401
|
-
// only prepend `containerName` for engines whose `conditionText` omits it.
|
|
402
|
-
// Fall back to the serialised prelude so named, style, and newer
|
|
403
|
-
// container queries remain presentable without hand-parsing their grammar.
|
|
388
|
+
// conditionText includes the container name in some engines and omits it in others; prepend only when missing.
|
|
404
389
|
const containerName = record.containerName?.trim();
|
|
405
390
|
const condition = record.conditionText?.trim() ?? "";
|
|
406
391
|
const hasName = Boolean(containerName) && containerName !== "none";
|
|
@@ -419,86 +404,84 @@ function contextForRule(cssText, record) {
|
|
|
419
404
|
function isNestedDeclarations(rule, doc) {
|
|
420
405
|
if (isStyleRuleInDocument(rule, doc) || !("style" in rule) || "selectorText" in rule)
|
|
421
406
|
return false;
|
|
422
|
-
// Chromium
|
|
423
|
-
// @media block as CSSNestedDeclarations. Its public type is not yet in
|
|
424
|
-
// lib.dom, so identify its declaration-only CSSOM shape conservatively.
|
|
407
|
+
// Chromium's CSSNestedDeclarations is not yet in lib.dom; identify its declaration-only shape conservatively.
|
|
425
408
|
return !/^\s*@/.test(rule.cssText ?? "") && typeof rule.style === "object";
|
|
426
409
|
}
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
if (
|
|
431
|
-
return
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
};
|
|
410
|
+
/** Page-owned walks survive inspector edits; walkStillValid() defines when one must be re-read. */
|
|
411
|
+
const pageSheetWalks = new WeakMap();
|
|
412
|
+
function walkStillValid(walk, rules, epoch, view) {
|
|
413
|
+
if (walk.epoch !== epoch || walk.ruleCount !== rules.length)
|
|
414
|
+
return false;
|
|
415
|
+
for (const [condition, matches] of walk.media) {
|
|
416
|
+
if ((view ? view.matchMedia(condition).matches : false) !== matches)
|
|
417
|
+
return false;
|
|
436
418
|
}
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
const
|
|
442
|
-
|
|
443
|
-
if (!normalized)
|
|
444
|
-
return undefined;
|
|
445
|
-
if (!layerOrder.has(normalized))
|
|
446
|
-
layerOrder.set(normalized, layerOrder.size);
|
|
447
|
-
return normalized;
|
|
448
|
-
};
|
|
419
|
+
return true;
|
|
420
|
+
}
|
|
421
|
+
function walkSheet(rules, doc) {
|
|
422
|
+
const events = [];
|
|
423
|
+
const media = new Map();
|
|
424
|
+
const view = doc.defaultView;
|
|
449
425
|
const nestedLayerName = (parent, child) => {
|
|
450
426
|
const normalized = child.trim();
|
|
451
427
|
if (!normalized)
|
|
452
428
|
return parent;
|
|
453
|
-
|
|
429
|
+
const name = parent ? `${parent}.${normalized}` : normalized;
|
|
430
|
+
events.push({ layer: name });
|
|
431
|
+
return name;
|
|
454
432
|
};
|
|
455
|
-
const
|
|
433
|
+
const mediaMatches = (condition) => {
|
|
434
|
+
let matches = media.get(condition);
|
|
435
|
+
if (matches === undefined) {
|
|
436
|
+
matches = view ? view.matchMedia(condition).matches : false;
|
|
437
|
+
media.set(condition, matches);
|
|
438
|
+
}
|
|
439
|
+
return matches;
|
|
440
|
+
};
|
|
441
|
+
const walkRules = (rules, active = true, layer, atRules = [], inheritedSelector) => {
|
|
456
442
|
for (const rule of Array.from(rules)) {
|
|
457
|
-
const serializedRule = rule.cssText ?? "";
|
|
458
|
-
const layerStatement = /^\s*@layer\s+([^;{]+)\s*;/i.exec(serializedRule);
|
|
459
|
-
if (layerStatement && !("cssRules" in rule)) {
|
|
460
|
-
layerStatement[1].split(",").forEach((name) => nestedLayerName(layer, name));
|
|
461
|
-
continue;
|
|
462
|
-
}
|
|
463
443
|
if (isStyleRuleInDocument(rule, doc)) {
|
|
464
444
|
try {
|
|
465
445
|
const selectorText = inheritedSelector
|
|
466
446
|
? resolveNestedSelector(rule.selectorText, inheritedSelector)
|
|
467
447
|
: rule.selectorText;
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
layerOrder: layer ? layerOrder.get(layer) : undefined,
|
|
477
|
-
atRules: atRules.length > 0 ? atRules : undefined,
|
|
478
|
-
});
|
|
448
|
+
events.push({ rule: {
|
|
449
|
+
selectorText,
|
|
450
|
+
specificity: computeSpecificityCore(selectorText),
|
|
451
|
+
declarations: declarationsFromCssom(rule.style),
|
|
452
|
+
active,
|
|
453
|
+
layer,
|
|
454
|
+
atRules: atRules.length > 0 ? atRules : undefined,
|
|
455
|
+
} });
|
|
479
456
|
const nested = rule.cssRules;
|
|
480
457
|
if (nested?.length)
|
|
481
|
-
walkRules(nested, active, layer, atRules, selectorText
|
|
458
|
+
walkRules(nested, active, layer, atRules, selectorText);
|
|
482
459
|
}
|
|
483
460
|
catch {
|
|
484
461
|
continue;
|
|
485
462
|
}
|
|
463
|
+
continue;
|
|
486
464
|
}
|
|
487
|
-
|
|
465
|
+
// Serializing a style rule's declaration block is costly, so only other
|
|
466
|
+
// rule kinds are serialized to recognise their at-rule.
|
|
467
|
+
const serializedRule = rule.cssText ?? "";
|
|
468
|
+
const layerStatement = /^\s*@layer\s+([^;{]+)\s*;/i.exec(serializedRule);
|
|
469
|
+
if (layerStatement && !("cssRules" in rule)) {
|
|
470
|
+
layerStatement[1].split(",").forEach((name) => nestedLayerName(layer, name));
|
|
471
|
+
continue;
|
|
472
|
+
}
|
|
473
|
+
if (isNestedDeclarations(rule, doc)) {
|
|
488
474
|
if (!inheritedSelector)
|
|
489
475
|
continue;
|
|
490
476
|
try {
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
layerOrder: layer ? layerOrder.get(layer) : undefined,
|
|
500
|
-
atRules: atRules.length > 0 ? atRules : undefined,
|
|
501
|
-
});
|
|
477
|
+
events.push({ rule: {
|
|
478
|
+
selectorText: inheritedSelector,
|
|
479
|
+
specificity: computeSpecificityCore(inheritedSelector),
|
|
480
|
+
declarations: declarationsFromCssom(rule.style),
|
|
481
|
+
active,
|
|
482
|
+
layer,
|
|
483
|
+
atRules: atRules.length > 0 ? atRules : undefined,
|
|
484
|
+
} });
|
|
502
485
|
}
|
|
503
486
|
catch {
|
|
504
487
|
continue;
|
|
@@ -508,24 +491,20 @@ export function collectRules(doc) {
|
|
|
508
491
|
try {
|
|
509
492
|
const record = rule;
|
|
510
493
|
let childActive = active;
|
|
511
|
-
const cssText =
|
|
494
|
+
const cssText = serializedRule;
|
|
512
495
|
const isMedia = /^\s*@media\b/i.test(cssText);
|
|
513
496
|
const isSupports = /^\s*@supports\b/i.test(cssText);
|
|
514
497
|
const isLayer = /^\s*@layer\b/i.test(cssText);
|
|
515
|
-
const view = doc.defaultView;
|
|
516
498
|
if (isMedia && record.conditionText)
|
|
517
|
-
childActive = active && (
|
|
499
|
+
childActive = active && mediaMatches(record.conditionText);
|
|
518
500
|
else if (isSupports && record.conditionText)
|
|
519
|
-
childActive = active && (
|
|
520
|
-
// A container query
|
|
521
|
-
// it cannot be answered while walking a document-level stylesheet.
|
|
522
|
-
// Resolution evaluates its retained context against the selected
|
|
523
|
-
// element using a harmless browser probe.
|
|
501
|
+
childActive = active && (view?.CSS?.supports(record.conditionText) ?? false);
|
|
502
|
+
// A container query depends on the styled element, so the walk only retains it; resolution evaluates it against the selection.
|
|
524
503
|
const context = contextForRule(cssText, record);
|
|
525
504
|
const childLayer = isLayer
|
|
526
505
|
? nestedLayerName(layer, record.name ?? cssText.slice(6, cssText.indexOf("{")).trim())
|
|
527
506
|
: layer;
|
|
528
|
-
walkRules(record.cssRules, childActive, childLayer, context ? [...atRules, context] : atRules, inheritedSelector
|
|
507
|
+
walkRules(record.cssRules, childActive, childLayer, context ? [...atRules, context] : atRules, inheritedSelector);
|
|
529
508
|
}
|
|
530
509
|
catch {
|
|
531
510
|
continue;
|
|
@@ -533,6 +512,55 @@ export function collectRules(doc) {
|
|
|
533
512
|
}
|
|
534
513
|
}
|
|
535
514
|
};
|
|
515
|
+
walkRules(rules);
|
|
516
|
+
return { events, media };
|
|
517
|
+
}
|
|
518
|
+
export function collectRules(doc) {
|
|
519
|
+
const revision = stylesheetRevision(doc);
|
|
520
|
+
const cached = ruleSnapshots.get(doc);
|
|
521
|
+
if (cached?.revision === revision) {
|
|
522
|
+
return {
|
|
523
|
+
rules: cached.rules,
|
|
524
|
+
layerOrder: cached.layerOrder,
|
|
525
|
+
inaccessible: cached.inaccessible,
|
|
526
|
+
};
|
|
527
|
+
}
|
|
528
|
+
const out = [];
|
|
529
|
+
const layerOrder = new Map();
|
|
530
|
+
let inaccessible = false;
|
|
531
|
+
const epoch = pageSheetEpochs.get(doc) ?? 0;
|
|
532
|
+
const append = (events, source) => {
|
|
533
|
+
for (const event of events) {
|
|
534
|
+
if ("layer" in event) {
|
|
535
|
+
if (!layerOrder.has(event.layer))
|
|
536
|
+
layerOrder.set(event.layer, layerOrder.size);
|
|
537
|
+
continue;
|
|
538
|
+
}
|
|
539
|
+
const { rule } = event;
|
|
540
|
+
out.push({
|
|
541
|
+
selectorText: rule.selectorText,
|
|
542
|
+
specificity: rule.specificity,
|
|
543
|
+
declarations: rule.declarations,
|
|
544
|
+
source,
|
|
545
|
+
sourceOrder: out.length,
|
|
546
|
+
active: rule.active,
|
|
547
|
+
layer: rule.layer,
|
|
548
|
+
layerOrder: rule.layer ? layerOrder.get(rule.layer) : undefined,
|
|
549
|
+
atRules: rule.atRules,
|
|
550
|
+
});
|
|
551
|
+
}
|
|
552
|
+
};
|
|
553
|
+
const sheetEvents = (sheet, pageOwned) => {
|
|
554
|
+
const rules = sheet.cssRules;
|
|
555
|
+
if (!pageOwned)
|
|
556
|
+
return walkSheet(rules, doc).events;
|
|
557
|
+
const previous = pageSheetWalks.get(sheet);
|
|
558
|
+
if (previous && walkStillValid(previous, rules, epoch, doc.defaultView))
|
|
559
|
+
return previous.events;
|
|
560
|
+
const walk = { epoch, ruleCount: rules.length, ...walkSheet(rules, doc) };
|
|
561
|
+
pageSheetWalks.set(sheet, walk);
|
|
562
|
+
return walk.events;
|
|
563
|
+
};
|
|
536
564
|
const stylesheetNodes = Array.from(doc.querySelectorAll('style, link[rel~="stylesheet"]'));
|
|
537
565
|
for (const [index, sheet] of Array.from(doc.styleSheets).entries()) {
|
|
538
566
|
try {
|
|
@@ -544,7 +572,8 @@ export function collectRules(doc) {
|
|
|
544
572
|
const source = owner?.dataset?.viteDevId
|
|
545
573
|
?? sheet.href
|
|
546
574
|
?? (owner?.id ? `#${owner.id}` : `stylesheet:${index + 1}`);
|
|
547
|
-
|
|
575
|
+
const inspectorOwned = typeof owner?.hasAttribute === "function" && owner.hasAttribute("data-nudge-ui");
|
|
576
|
+
append(sheetEvents(sheet, !inspectorOwned), source);
|
|
548
577
|
}
|
|
549
578
|
catch {
|
|
550
579
|
inaccessible = true;
|
|
@@ -556,7 +585,7 @@ export function collectRules(doc) {
|
|
|
556
585
|
const key = adoptedStylesheetKey(doc, sheet);
|
|
557
586
|
if (key === STATE_PREVIEW_SHEET_ID)
|
|
558
587
|
continue;
|
|
559
|
-
|
|
588
|
+
append(sheetEvents(sheet, key === null), key ? `#${key}` : `adopted:${index + 1}`);
|
|
560
589
|
}
|
|
561
590
|
const snapshot = { revision, rules: out, layerOrder, inaccessible };
|
|
562
591
|
ruleSnapshots.set(doc, snapshot);
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolves a CSSOM nested selector against its already resolved parent.
|
|
3
|
-
* `:is()` preserves nesting's maximum parent-list specificity without
|
|
4
|
-
* expanding every combination of parent and child selectors.
|
|
5
|
-
*/
|
|
1
|
+
/** `:is(parent)` keeps nesting's maximum parent-list specificity without expanding every combination. */
|
|
6
2
|
export declare function resolveNestedSelector(selector: string, parent: string): string;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolves a CSSOM nested selector against its already resolved parent.
|
|
3
|
-
* `:is()` preserves nesting's maximum parent-list specificity without
|
|
4
|
-
* expanding every combination of parent and child selectors.
|
|
5
|
-
*/
|
|
1
|
+
/** `:is(parent)` keeps nesting's maximum parent-list specificity without expanding every combination. */
|
|
6
2
|
export function resolveNestedSelector(selector, parent) {
|
|
7
3
|
const subject = `:is(${parent})`;
|
|
8
4
|
const branches = [];
|
|
@@ -7,26 +7,15 @@ export interface ElementMatch {
|
|
|
7
7
|
branch: string;
|
|
8
8
|
specificity: number;
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
11
|
-
* The selector set used by a resolution. Interaction states strip or drop
|
|
12
|
-
* pseudo-class rules, `live` keeps the raw CSSOM rules (used by
|
|
13
|
-
* `getResolvedProperties`), and `stable` drops transient rules (used by
|
|
14
|
-
* `getResolvedPropertiesStable`).
|
|
15
|
-
*/
|
|
10
|
+
/** Resolution vocabulary: interaction states strip matching pseudo-classes, `stable` drops transient rules, `live` keeps raw CSSOM rules. */
|
|
16
11
|
type CascadeTransform = InteractionState | "live" | "stable";
|
|
17
|
-
/** Test-only cache reset. */
|
|
18
12
|
export declare function resetSourceSiteMatchCache(): void;
|
|
19
|
-
/** Test-only cache size. */
|
|
20
13
|
export declare function sourceSiteMatchCacheSize(): number;
|
|
21
14
|
export declare function matchRuleForElement(el: HTMLElement, entry: {
|
|
22
15
|
rule: MatchedRule;
|
|
23
16
|
selectorText: string;
|
|
24
17
|
}): ElementMatch | null;
|
|
25
|
-
/**
|
|
26
|
-
* Shares dynamic matches across cache validation and ancestry within one sweep.
|
|
27
|
-
* Element-relative conditions, such as container queries, remain the resolver's
|
|
28
|
-
* responsibility; these results describe selector matches and stylesheet activity.
|
|
29
|
-
*/
|
|
18
|
+
/** Element-relative conditions (container queries) stay the resolver's job; these describe selector matches and stylesheet activity. */
|
|
30
19
|
export interface RuleMatcher {
|
|
31
20
|
dynamicMatchKey(element: HTMLElement): string;
|
|
32
21
|
matchesForElement(element: HTMLElement): {
|
|
@@ -34,7 +23,8 @@ export interface RuleMatcher {
|
|
|
34
23
|
allMatched: ElementMatch[];
|
|
35
24
|
};
|
|
36
25
|
}
|
|
37
|
-
/** Creates a matcher for one CSSOM snapshot. */
|
|
38
26
|
export declare function createRuleMatcher(rules: MatchedRule[], transform: CascadeTransform): RuleMatcher;
|
|
27
|
+
/** Warms transforms, buckets, and class indexes so an idle frame pays their parsing cost. */
|
|
28
|
+
export declare function prewarmRuleMatching(rules: MatchedRule[]): void;
|
|
39
29
|
export declare function getAvailableInteractionStates(el: HTMLElement): InteractionState[];
|
|
40
30
|
export {};
|