nudge-ui 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/agentCommand.d.ts +0 -1
- package/dist/cli/agentCommand.js +4 -29
- package/dist/client.mjs +987 -221
- package/dist/compiler/ast.d.ts +0 -6
- package/dist/compiler/ast.js +0 -5
- package/dist/compiler/componentContractTypes.d.ts +11 -5
- package/dist/compiler/componentContracts.js +3 -9
- package/dist/compiler/componentInstrumentation.d.ts +2 -13
- package/dist/compiler/componentInstrumentation.js +3 -12
- package/dist/compiler/componentPolicyResolution.d.ts +3 -22
- package/dist/compiler/componentPolicyResolution.js +6 -38
- package/dist/compiler/identityAttributes.d.ts +2 -0
- package/dist/compiler/identityAttributes.js +2 -0
- package/dist/compiler/index.d.ts +0 -1
- package/dist/compiler/index.js +0 -1
- package/dist/compiler/packageComponentContracts.d.ts +10 -19
- package/dist/compiler/packageComponentContracts.js +60 -43
- package/dist/compiler/reactComponentProtocols.d.ts +0 -7
- package/dist/compiler/reactComponentProtocols.js +0 -7
- package/dist/compiler/reactIdentity.d.ts +2 -2
- package/dist/compiler/reactIdentity.js +41 -43
- package/dist/compiler/sourcePaths.d.ts +4 -8
- package/dist/compiler/sourcePaths.js +6 -8
- package/dist/css/dialects/index.d.ts +2 -21
- package/dist/css/dialects/index.js +2 -9
- package/dist/css/dialects/tailwind.d.ts +2 -16
- package/dist/css/dialects/tailwind.js +2 -25
- package/dist/css/dialects/vanillaExtract.d.ts +1 -9
- package/dist/css/dialects/vanillaExtract.js +0 -1
- package/dist/css/index.d.ts +0 -8
- package/dist/css/index.js +0 -8
- package/dist/css/model/index.d.ts +6 -38
- package/dist/css/model/index.js +0 -9
- package/dist/css/token-inventory/index.d.ts +0 -23
- package/dist/css/token-inventory/index.js +0 -23
- package/dist/css/token-inventory/inventory.js +4 -16
- package/dist/css/token-inventory/parseStylesheet.d.ts +1 -9
- package/dist/css/token-inventory/parseStylesheet.js +5 -42
- package/dist/css/token-inventory/policy.d.ts +2 -39
- package/dist/css/token-inventory/policy.js +2 -39
- package/dist/css/token-inventory/types.d.ts +2 -15
- package/dist/css/value-semantics/borderSemantics.d.ts +1 -8
- package/dist/css/value-semantics/borderSemantics.js +5 -23
- package/dist/css/value-semantics/boxSemantics.d.ts +2 -25
- package/dist/css/value-semantics/boxSemantics.js +1 -7
- package/dist/css/value-semantics/colorSemantics.d.ts +6 -60
- package/dist/css/value-semantics/colorSemantics.js +9 -40
- package/dist/css/value-semantics/cssSyntax.d.ts +10 -10
- package/dist/css/value-semantics/cssSyntax.js +39 -11
- package/dist/css/value-semantics/fontSemantics.d.ts +3 -19
- package/dist/css/value-semantics/fontSemantics.js +7 -25
- package/dist/css/value-semantics/index.d.ts +1 -12
- package/dist/css/value-semantics/index.js +1 -12
- package/dist/css/value-semantics/propertyPolicy.d.ts +6 -53
- package/dist/css/value-semantics/propertyPolicy.js +47 -59
- package/dist/css/value-semantics/stringMaps.d.ts +0 -1
- package/dist/css/value-semantics/structuredValues.d.ts +3 -37
- package/dist/css/value-semantics/structuredValues.js +6 -17
- package/dist/css/value-semantics/tokenInterpretation.d.ts +8 -50
- package/dist/css/value-semantics/tokenInterpretation.js +7 -21
- package/dist/hosts/astro/astroRuntimeConfig.d.ts +0 -1
- package/dist/hosts/astro/astroRuntimeConfig.js +0 -1
- package/dist/hosts/astro/clientAsset.d.ts +1 -5
- package/dist/hosts/astro/clientAsset.js +1 -5
- package/dist/hosts/astro/clientTransport.d.ts +0 -1
- package/dist/hosts/astro/clientTransport.js +4 -9
- package/dist/hosts/astro/integration.d.ts +2 -28
- package/dist/hosts/astro/integration.js +7 -36
- package/dist/hosts/astro/markdownIdentity.d.ts +0 -3
- package/dist/hosts/astro/markdownIdentity.js +0 -3
- package/dist/hosts/astro/middleware.d.ts +1 -12
- package/dist/hosts/astro/middleware.js +1 -12
- package/dist/hosts/astro/projectContext.d.ts +1 -9
- package/dist/hosts/astro/projectContext.js +2 -11
- package/dist/hosts/astro/responseInstrumentation.d.ts +4 -33
- package/dist/hosts/astro/responseInstrumentation.js +5 -34
- package/dist/hosts/environment.d.ts +0 -8
- package/dist/hosts/environment.js +0 -1
- package/dist/hosts/next/index.js +1 -3
- package/dist/hosts/next/loader.d.ts +5 -44
- package/dist/hosts/next/loader.js +22 -103
- package/dist/hosts/next/loaders/identity-loader.cjs +111 -65
- package/dist/hosts/next/loaders/loader-plugin.cjs +111 -65
- package/dist/hosts/next/manifest.d.ts +2 -16
- package/dist/hosts/next/manifest.js +18 -20
- package/dist/hosts/next/mount.d.ts +1 -11
- package/dist/hosts/next/mount.js +1 -11
- package/dist/hosts/next/repositoryScope.d.ts +2 -17
- package/dist/hosts/next/repositoryScope.js +2 -17
- package/dist/hosts/next/sidecar.d.ts +0 -13
- package/dist/hosts/next/sidecar.js +25 -110
- package/dist/hosts/next/wrapper.d.ts +0 -31
- package/dist/hosts/next/wrapper.js +14 -71
- package/dist/hosts/projectBridge.d.ts +0 -2
- package/dist/hosts/projectBridge.js +3 -19
- package/dist/hosts/reactRendererCapture.d.ts +2 -0
- package/dist/hosts/reactRendererCapture.js +12 -0
- package/dist/hosts/static/cli.d.ts +0 -4
- package/dist/hosts/static/cli.js +0 -3
- package/dist/hosts/static/html/bootstrap.d.ts +1 -18
- package/dist/hosts/static/html/bootstrap.js +2 -14
- package/dist/hosts/static/manifest.d.ts +2 -15
- package/dist/hosts/static/manifest.js +5 -18
- package/dist/hosts/static/server.d.ts +4 -38
- package/dist/hosts/static/server.js +17 -67
- package/dist/hosts/vite/index.d.ts +0 -10
- package/dist/hosts/vite/index.js +0 -10
- package/dist/hosts/vite/react.d.ts +4 -17
- package/dist/hosts/vite/react.js +18 -35
- package/dist/hosts/vite/tokens/activeStylesheets.d.ts +1 -10
- package/dist/hosts/vite/tokens/activeStylesheets.js +3 -8
- package/dist/hosts/vite/tokens/fileMap.d.ts +0 -1
- package/dist/hosts/vite/tokens/viteStylesheetArtifacts.d.ts +2 -15
- package/dist/hosts/vite/tokens/viteStylesheetArtifacts.js +3 -10
- package/dist/hosts/vite/vite.d.ts +5 -26
- package/dist/hosts/vite/vite.js +44 -80
- package/dist/html/dom.d.ts +0 -1
- package/dist/html/dom.js +0 -1
- package/dist/html/identity.d.ts +1 -15
- package/dist/html/identity.js +1 -8
- package/dist/html/insertions.d.ts +2 -8
- package/dist/html/insertions.js +1 -1
- package/dist/inspector/agent/McpConnectionDialog.d.ts +1 -6
- package/dist/inspector/agent/McpConnectionDialog.js +8 -9
- package/dist/inspector/agent/activity.d.ts +2 -2
- package/dist/inspector/agent/activity.js +4 -3
- package/dist/inspector/agent/client.d.ts +3 -27
- package/dist/inspector/agent/client.js +43 -91
- package/dist/inspector/agent/connectionStatus.d.ts +3 -2
- package/dist/inspector/agent/connectionStatus.js +25 -1
- package/dist/inspector/agent/httpTransport.d.ts +0 -8
- package/dist/inspector/agent/httpTransport.js +42 -176
- package/dist/inspector/agent/protocol.d.ts +1 -10
- package/dist/inspector/agent/protocol.js +1 -9
- package/dist/inspector/agent/verification.d.ts +3 -20
- package/dist/inspector/agent/verification.js +10 -43
- package/dist/inspector/boot.d.ts +5 -0
- package/dist/inspector/boot.js +289 -0
- package/dist/inspector/canvas/AgentActivityOverlay.d.ts +3 -2
- package/dist/inspector/canvas/AgentActivityOverlay.js +7 -4
- package/dist/inspector/canvas/CanvasCard.js +26 -24
- package/dist/inspector/canvas/CanvasElementOverlay.js +196 -174
- package/dist/inspector/canvas/CanvasToolbar.js +2 -1
- package/dist/inspector/canvas/CanvasWorkspace.js +87 -124
- package/dist/inspector/canvas/LockedWorkspaceNotice.d.ts +3 -2
- package/dist/inspector/canvas/LockedWorkspaceNotice.js +10 -6
- package/dist/inspector/canvas/PageCard.d.ts +9 -0
- package/dist/inspector/canvas/PageCard.js +50 -0
- package/dist/inspector/canvas/SketchToolOptions.d.ts +4 -0
- package/dist/inspector/canvas/SketchToolOptions.js +80 -0
- package/dist/inspector/canvas/StaleChangeIndicator.d.ts +1 -1
- package/dist/inspector/canvas/StaleChangeIndicator.js +1 -1
- package/dist/inspector/canvas/ToolOptionsDrawer.d.ts +16 -0
- package/dist/inspector/canvas/ToolOptionsDrawer.js +71 -0
- package/dist/inspector/canvas/activeCanvasDocument.d.ts +3 -4
- package/dist/inspector/canvas/activeCanvasDocument.js +0 -2
- package/dist/inspector/canvas/agentPresentation.d.ts +2 -13
- package/dist/inspector/canvas/agentPresentation.js +3 -14
- package/dist/inspector/canvas/assets/eraser.svg +28 -0
- package/dist/inspector/canvas/assets/pen.svg +25 -0
- package/dist/inspector/canvas/canvasFrame.d.ts +12 -0
- package/dist/inspector/canvas/canvasFrame.js +9 -0
- package/dist/inspector/canvas/canvasGestures.d.ts +0 -1
- package/dist/inspector/canvas/canvasGestures.js +0 -6
- package/dist/inspector/canvas/canvasResize.d.ts +1 -6
- package/dist/inspector/canvas/canvasResize.js +1 -6
- package/dist/inspector/canvas/canvasStore.d.ts +5 -7
- package/dist/inspector/canvas/canvasStore.js +42 -21
- package/dist/inspector/canvas/frameConnection.d.ts +42 -0
- package/dist/inspector/canvas/frameConnection.js +73 -0
- package/dist/inspector/canvas/frameContent.d.ts +0 -1
- package/dist/inspector/canvas/frameLifecycle.d.ts +12 -0
- package/dist/inspector/canvas/frameLifecycle.js +11 -0
- package/dist/inspector/canvas/frameProtocol.d.ts +20 -38
- package/dist/inspector/canvas/frameProtocol.js +37 -24
- package/dist/inspector/canvas/frameScrollbarStyles.d.ts +0 -1
- package/dist/inspector/canvas/frameScrollbarStyles.js +0 -1
- package/dist/inspector/canvas/layout.d.ts +10 -22
- package/dist/inspector/canvas/layout.js +0 -3
- package/dist/inspector/canvas/normalizeUrl.js +1 -8
- package/dist/inspector/canvas/pageSurface.d.ts +6 -0
- package/dist/inspector/canvas/pageSurface.js +29 -0
- package/dist/inspector/canvas/projection.d.ts +14 -25
- package/dist/inspector/canvas/projection.js +64 -87
- package/dist/inspector/canvas/rendererBootstrap.d.ts +8 -1
- package/dist/inspector/canvas/rendererBootstrap.js +10 -15
- package/dist/inspector/canvas/rendererCidIndex.d.ts +0 -5
- package/dist/inspector/canvas/rendererCidIndex.js +0 -5
- package/dist/inspector/canvas/rendererElementSelector.js +38 -28
- package/dist/inspector/canvas/rendererMessageRouter.d.ts +4 -6
- package/dist/inspector/canvas/rendererMessageRouter.js +12 -17
- package/dist/inspector/canvas/rendererSelectionProxy.d.ts +3 -1
- package/dist/inspector/canvas/rendererSelectionProxy.js +7 -40
- package/dist/inspector/canvas/rendererStylesheet.d.ts +0 -1
- package/dist/inspector/canvas/rendererStylesheet.js +23 -1
- package/dist/inspector/canvas/resizeHandleScale.d.ts +1 -10
- package/dist/inspector/canvas/resizeHandleScale.js +1 -10
- package/dist/inspector/canvas/sessionStore.d.ts +3 -9
- package/dist/inspector/canvas/sessionStore.js +33 -43
- package/dist/inspector/canvas/staleChangeDetector.d.ts +1 -1
- package/dist/inspector/canvas/staleChangeDetector.js +11 -26
- package/dist/inspector/canvas/toolbarScale.d.ts +1 -4
- package/dist/inspector/canvas/toolbarScale.js +1 -4
- package/dist/inspector/canvas/useCanvasLayoutAnimation.d.ts +0 -1
- package/dist/inspector/canvas/useCanvasLayoutAnimation.js +0 -1
- package/dist/inspector/canvas/viewStore.js +1 -1
- package/dist/inspector/canvas/wheelPan.d.ts +1 -1
- package/dist/inspector/canvas/wheelPan.js +1 -1
- package/dist/inspector/canvas/workspaceLease.d.ts +1 -5
- package/dist/inspector/canvas/workspaceLease.js +1 -7
- package/dist/inspector/changes/codecs.d.ts +1 -0
- package/dist/inspector/changes/codecs.js +21 -5
- package/dist/inspector/changes/draftPreview.d.ts +7 -0
- package/dist/inspector/changes/draftPreview.js +118 -0
- package/dist/inspector/changes/editModel.d.ts +11 -13
- package/dist/inspector/changes/editModel.js +9 -4
- package/dist/inspector/changes/managedStyleProjection.js +6 -15
- package/dist/inspector/changes/model.d.ts +0 -5
- package/dist/inspector/changes/model.js +1 -8
- package/dist/inspector/changes/previewDiagnostics.d.ts +2 -12
- package/dist/inspector/changes/previewDiagnostics.js +5 -21
- package/dist/inspector/changes/previewVerification.d.ts +25 -0
- package/dist/inspector/changes/previewVerification.js +34 -0
- package/dist/inspector/changes/structuralTypes.d.ts +2 -4
- package/dist/inspector/changes/types.d.ts +11 -8
- package/dist/inspector/clientManifest.d.ts +17 -6
- package/dist/inspector/clientManifest.js +16 -3
- package/dist/inspector/comments/CommentsOverlay.js +66 -23
- package/dist/inspector/comments/element.d.ts +1 -2
- package/dist/inspector/comments/element.js +1 -2
- package/dist/inspector/comments/store.d.ts +1 -1
- package/dist/inspector/comments/store.js +4 -3
- package/dist/inspector/comments/verification.d.ts +8 -2
- package/dist/inspector/comments/verification.js +19 -11
- package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +8 -0
- package/dist/inspector/componentSemantics/ComponentPropsSection.js +12 -8
- package/dist/inspector/componentSemantics/adapterRegistry.d.ts +2 -9
- package/dist/inspector/componentSemantics/adapterRegistry.js +2 -9
- package/dist/inspector/componentSemantics/changeAction.js +1 -1
- package/dist/inspector/componentSemantics/changeModel.js +2 -4
- package/dist/inspector/componentSemantics/react/callsites.d.ts +28 -0
- package/dist/inspector/componentSemantics/react/callsites.js +261 -0
- package/dist/inspector/componentSemantics/react/devtoolsHook.d.ts +23 -0
- package/dist/inspector/componentSemantics/react/devtoolsHook.js +71 -0
- package/dist/inspector/componentSemantics/react/fibers.d.ts +17 -0
- package/dist/inspector/componentSemantics/react/fibers.js +30 -0
- package/dist/inspector/componentSemantics/{reactRuntime.d.ts → react/runtime.d.ts} +3 -2
- package/dist/inspector/componentSemantics/{reactRuntime.js → react/runtime.js} +70 -53
- package/dist/inspector/componentSemantics/runtimeBridge.d.ts +2 -18
- package/dist/inspector/componentSemantics/runtimeBridge.js +5 -19
- package/dist/inspector/componentSemantics/textBinding.d.ts +2 -11
- package/dist/inspector/componentSemantics/textBinding.js +20 -87
- package/dist/inspector/componentSemantics/types.d.ts +8 -27
- package/dist/inspector/componentSemantics/types.js +0 -1
- package/dist/inspector/conformance/borderCases.d.ts +0 -5
- package/dist/inspector/conformance/borderCases.js +0 -5
- package/dist/inspector/conformance/colorCases.d.ts +0 -6
- package/dist/inspector/conformance/colorCases.js +0 -6
- package/dist/inspector/conformance/fixture.d.ts +1 -5
- package/dist/inspector/conformance/fixture.js +1 -5
- package/dist/inspector/conformance/spacingCases.d.ts +0 -4
- package/dist/inspector/conformance/spacingCases.js +0 -4
- package/dist/inspector/conformance/typographyCases.d.ts +0 -5
- package/dist/inspector/conformance/typographyCases.js +0 -5
- package/dist/inspector/drafts/draftStore.d.ts +95 -0
- package/dist/inspector/drafts/draftStore.js +461 -0
- package/dist/inspector/drafts/model.d.ts +14 -14
- package/dist/inspector/drafts/model.js +4 -2
- package/dist/inspector/drafts/store.d.ts +47 -16
- package/dist/inspector/drafts/store.js +137 -170
- package/dist/inspector/editScope.d.ts +0 -1
- package/dist/inspector/editScope.js +0 -1
- package/dist/inspector/index.d.ts +2 -4
- package/dist/inspector/index.js +2 -264
- package/dist/inspector/inline-text/inlineTextDiagnostics.d.ts +0 -2
- package/dist/inspector/inline-text/inlineTextDiagnostics.js +0 -2
- package/dist/inspector/inline-text/inlineTextEditor.d.ts +3 -9
- package/dist/inspector/inline-text/inlineTextEditor.js +27 -81
- package/dist/inspector/inline-text/inlineTextLifecycle.js +1 -6
- package/dist/inspector/inline-text/textEditChange.d.ts +1 -2
- package/dist/inspector/inspection/bridge.d.ts +3 -7
- package/dist/inspector/inspection/bridge.js +6 -13
- package/dist/inspector/inspection/browserCssInspection.d.ts +12 -11
- package/dist/inspector/inspection/browserCssInspection.js +32 -14
- package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +0 -7
- package/dist/inspector/inspection/browserCssInspectionRegistry.js +1 -16
- package/dist/inspector/inspection/inspectionSnapshot.d.ts +6 -0
- package/dist/inspector/inspection/inspectionSnapshot.js +10 -0
- package/dist/inspector/inspection/performanceDiagnostics.d.ts +18 -0
- package/dist/inspector/inspection/performanceDiagnostics.js +31 -0
- package/dist/inspector/inspection/selectionProperty.d.ts +1 -6
- package/dist/inspector/inspection/selectionProperty.js +1 -5
- package/dist/inspector/inspection/useBrowserCssInspection.d.ts +1 -5
- package/dist/inspector/inspection/useBrowserCssInspection.js +22 -59
- package/dist/inspector/iterations/capture.d.ts +2 -2
- package/dist/inspector/iterations/capture.js +4 -9
- package/dist/inspector/iterations/client.d.ts +2 -2
- package/dist/inspector/iterations/client.js +0 -1
- package/dist/inspector/iterations/coordinator.d.ts +4 -4
- package/dist/inspector/iterations/coordinator.js +5 -4
- package/dist/inspector/iterations/prompt.d.ts +0 -1
- package/dist/inspector/iterations/prompt.js +9 -9
- package/dist/inspector/overlay/DomNavigator.d.ts +3 -1
- package/dist/inspector/overlay/DomNavigator.js +39 -15
- package/dist/inspector/overlay/DropGuideOverlay.d.ts +0 -1
- package/dist/inspector/overlay/DropGuideOverlay.js +0 -1
- package/dist/inspector/overlay/MeasurementGuideOverlay.d.ts +1 -8
- package/dist/inspector/overlay/MeasurementGuideOverlay.js +1 -5
- package/dist/inspector/overlay/clickPolicy.d.ts +3 -14
- package/dist/inspector/overlay/clickPolicy.js +3 -14
- package/dist/inspector/overlay/dropGuide.d.ts +0 -3
- package/dist/inspector/overlay/dropGuide.js +0 -3
- package/dist/inspector/overlay/frameThrottle.d.ts +0 -1
- package/dist/inspector/overlay/frameThrottle.js +0 -1
- package/dist/inspector/overlay/interactionStyles.d.ts +1 -1
- package/dist/inspector/overlay/interactionStyles.js +19 -8
- package/dist/inspector/overlay/measurementGeometry.js +4 -12
- package/dist/inspector/overlay/selectedGeometry.d.ts +1 -6
- package/dist/inspector/overlay/selectedGeometry.js +1 -8
- package/dist/inspector/overlay/spacingGestures.d.ts +14 -21
- package/dist/inspector/overlay/spacingGestures.js +151 -31
- package/dist/inspector/overlay/structuralGestures.d.ts +2 -9
- package/dist/inspector/overlay/structuralGestures.js +1 -4
- package/dist/inspector/pageInspector.d.ts +33 -0
- package/dist/inspector/pageInspector.js +335 -0
- package/dist/inspector/projection/cssEscapes.d.ts +0 -1
- package/dist/inspector/projection/cssEscapes.js +2 -4
- package/dist/inspector/projection/draftProjection.d.ts +6 -10
- package/dist/inspector/projection/draftProjection.js +8 -7
- package/dist/inspector/projection/managedStylesheet.d.ts +1 -7
- package/dist/inspector/projection/managedStylesheet.js +28 -26
- package/dist/inspector/projection/renderedInstance.d.ts +5 -28
- package/dist/inspector/projection/renderedInstance.js +13 -33
- package/dist/inspector/projection/structuralProjection.d.ts +7 -48
- package/dist/inspector/projection/structuralProjection.js +31 -96
- package/dist/inspector/projection/textProjection.d.ts +7 -13
- package/dist/inspector/projection/textProjection.js +35 -80
- package/dist/inspector/prompt/PromptSettingsDialog.d.ts +0 -1
- package/dist/inspector/prompt/PromptSettingsDialog.js +0 -1
- package/dist/inspector/prompt/clipboardHandoff.d.ts +1 -0
- package/dist/inspector/prompt/clipboardHandoff.js +34 -16
- package/dist/inspector/prompt/generatePrompt.d.ts +2 -2
- package/dist/inspector/prompt/generatePrompt.js +247 -166
- package/dist/inspector/prompt/promptDocument.d.ts +3 -0
- package/dist/inspector/prompt/promptDocument.js +8 -0
- package/dist/inspector/prompt/promptSettings.d.ts +0 -3
- package/dist/inspector/prompt/promptSettings.js +7 -8
- package/dist/inspector/runtime/devFlag.d.ts +2 -25
- package/dist/inspector/runtime/devFlag.js +4 -31
- package/dist/inspector/runtime/documentStylesheetOrder.d.ts +0 -2
- package/dist/inspector/runtime/editorShell.d.ts +0 -1
- package/dist/inspector/runtime/editorShell.js +0 -1
- package/dist/inspector/runtime/inspectorStorage.d.ts +11 -0
- package/dist/inspector/runtime/inspectorStorage.js +37 -0
- package/dist/inspector/runtime/ownedStylesheets.d.ts +14 -0
- package/dist/inspector/runtime/ownedStylesheets.js +66 -0
- package/dist/inspector/runtime/runtimeConfig.d.ts +14 -84
- package/dist/inspector/runtime/runtimeConfig.js +18 -50
- package/dist/inspector/runtime/runtimeIdentityClaims.d.ts +19 -0
- package/dist/inspector/runtime/runtimeIdentityClaims.js +178 -0
- package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +6 -23
- package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +103 -52
- package/dist/inspector/runtime/useRuntimeConfig.d.ts +1 -8
- package/dist/inspector/runtime/useRuntimeConfig.js +1 -8
- package/dist/inspector/selection/editScope.d.ts +2 -7
- package/dist/inspector/selection/editScope.js +15 -14
- package/dist/inspector/selection/editTarget.d.ts +1 -5
- package/dist/inspector/selection/hierarchy.d.ts +11 -11
- package/dist/inspector/selection/hierarchy.js +42 -24
- package/dist/inspector/selection/selectionStore.d.ts +0 -3
- package/dist/inspector/selection/selectionStore.js +5 -16
- package/dist/inspector/selection/sourceSite.d.ts +1 -5
- package/dist/inspector/selection/sourceSite.js +2 -8
- package/dist/inspector/selection/styleSelection.d.ts +1 -5
- package/dist/inspector/selection/styleSelection.js +1 -5
- package/dist/inspector/session/lifecycle.d.ts +1 -9
- package/dist/inspector/session/lifecycle.js +0 -1
- package/dist/inspector/session/sessionContext.d.ts +0 -4
- package/dist/inspector/session/sessionContext.js +0 -4
- package/dist/inspector/session/sessionFactory.d.ts +0 -9
- package/dist/inspector/session/sessionFactory.js +0 -6
- package/dist/inspector/settings/SettingsDialog.d.ts +0 -1
- package/dist/inspector/settings/SettingsDialog.js +5 -3
- package/dist/inspector/shell/AgentStatusButton.d.ts +3 -2
- package/dist/inspector/shell/AgentStatusButton.js +7 -7
- package/dist/inspector/shell/AppShell.js +6 -2
- package/dist/inspector/shell/ChangesLog.js +29 -12
- package/dist/inspector/shell/CopyPromptButton.d.ts +2 -1
- package/dist/inspector/shell/CopyPromptButton.js +62 -55
- package/dist/inspector/shell/EmptyState.js +3 -3
- package/dist/inspector/shell/InspectorEditors.d.ts +16 -0
- package/dist/inspector/shell/InspectorEditors.js +14 -0
- package/dist/inspector/shell/InspectorPanel.d.ts +12 -0
- package/dist/inspector/shell/InspectorPanel.js +8 -0
- package/dist/inspector/shell/InspectorSelection.d.ts +24 -0
- package/dist/inspector/shell/InspectorSelection.js +20 -0
- package/dist/inspector/shell/InspectorShell.d.ts +0 -3
- package/dist/inspector/shell/InspectorShell.js +44 -58
- package/dist/inspector/shell/NudgeLogoIcon.d.ts +5 -0
- package/dist/inspector/shell/NudgeLogoIcon.js +5 -0
- package/dist/inspector/shell/PeekOriginalButton.d.ts +0 -5
- package/dist/inspector/shell/PeekOriginalButton.js +3 -8
- package/dist/inspector/shell/PeekOriginalIcon.d.ts +0 -5
- package/dist/inspector/shell/PeekOriginalIcon.js +0 -5
- package/dist/inspector/shell/PromptActionButton.d.ts +21 -0
- package/dist/inspector/shell/PromptActionButton.js +14 -0
- package/dist/inspector/shell/elementName.d.ts +5 -0
- package/dist/inspector/shell/elementName.js +29 -0
- package/dist/inspector/shell/interactionStatePreview.d.ts +6 -0
- package/dist/inspector/shell/interactionStatePreview.js +107 -0
- package/dist/inspector/shell/originalPreview.d.ts +1 -5
- package/dist/inspector/shell/originalPreview.js +5 -37
- package/dist/inspector/shell/stateValue.d.ts +1 -2
- package/dist/inspector/shell/stateValue.js +4 -8
- package/dist/inspector/shell/styleState.d.ts +1 -2
- package/dist/inspector/shell/styleState.js +1 -2
- package/dist/inspector/sketch/SketchEditor.js +5 -5
- package/dist/inspector/sketch/SketchFrameOverlay.d.ts +2 -1
- package/dist/inspector/sketch/SketchFrameOverlay.js +13 -16
- package/dist/inspector/sketch/SketchOverlay.d.ts +3 -5
- package/dist/inspector/sketch/SketchOverlay.js +138 -263
- package/dist/inspector/sketch/SketchPromptPanel.d.ts +1 -2
- package/dist/inspector/sketch/SketchPromptPanel.js +8 -2
- package/dist/inspector/sketch/SketchThumbnail.d.ts +5 -0
- package/dist/inspector/sketch/SketchThumbnail.js +18 -0
- package/dist/inspector/sketch/SketchWorkspace.d.ts +1 -2
- package/dist/inspector/sketch/SketchWorkspace.js +70 -37
- package/dist/inspector/sketch/capture.d.ts +12 -3
- package/dist/inspector/sketch/capture.js +31 -14
- package/dist/inspector/sketch/copySketch.d.ts +4 -0
- package/dist/inspector/sketch/copySketch.js +43 -0
- package/dist/inspector/sketch/drawingTools.d.ts +15 -0
- package/dist/inspector/sketch/drawingTools.js +46 -0
- package/dist/inspector/sketch/frameHeading.d.ts +3 -0
- package/dist/inspector/sketch/frameHeading.js +23 -0
- package/dist/inspector/sketch/freehand.d.ts +0 -1
- package/dist/inspector/sketch/freehand.js +3 -4
- package/dist/inspector/sketch/geometry.d.ts +2 -1
- package/dist/inspector/sketch/geometry.js +15 -1
- package/dist/inspector/sketch/handoff.js +0 -1
- package/dist/inspector/sketch/history.d.ts +26 -0
- package/dist/inspector/sketch/history.js +55 -0
- package/dist/inspector/sketch/interaction.d.ts +3 -5
- package/dist/inspector/sketch/interaction.js +8 -11
- package/dist/inspector/sketch/model.d.ts +33 -6
- package/dist/inspector/sketch/model.js +101 -63
- package/dist/inspector/sketch/persistence.d.ts +14 -1
- package/dist/inspector/sketch/persistence.js +64 -8
- package/dist/inspector/sketch/raster.d.ts +3 -2
- package/dist/inspector/sketch/raster.js +40 -20
- package/dist/inspector/sketch/store.d.ts +1 -1
- package/dist/inspector/sketch/store.js +3 -4
- package/dist/inspector/sketch/videoFrames.d.ts +6 -0
- package/dist/inspector/sketch/videoFrames.js +80 -0
- package/dist/inspector/spacing/projection.d.ts +0 -8
- package/dist/inspector/spacing/projection.js +38 -20
- package/dist/inspector/styleEditors/BackgroundEditor.js +3 -2
- package/dist/inspector/styleEditors/BorderEditor.js +30 -135
- package/dist/inspector/styleEditors/BorderRadiusEditor.js +8 -3
- package/dist/inspector/styleEditors/ChildPlacement.d.ts +12 -0
- package/dist/inspector/styleEditors/ChildPlacement.js +9 -0
- package/dist/inspector/styleEditors/FlexControls.d.ts +35 -0
- package/dist/inspector/styleEditors/FlexControls.js +158 -0
- package/dist/inspector/styleEditors/GapField.d.ts +5 -2
- package/dist/inspector/styleEditors/GapField.js +3 -4
- package/dist/inspector/styleEditors/GridChildSection.d.ts +0 -5
- package/dist/inspector/styleEditors/GridChildSection.js +0 -5
- package/dist/inspector/styleEditors/GridPicker.d.ts +1 -1
- package/dist/inspector/styleEditors/GridPicker.js +2 -4
- package/dist/inspector/styleEditors/GridSection.d.ts +10 -8
- package/dist/inspector/styleEditors/GridSection.js +22 -9
- package/dist/inspector/styleEditors/GridValueField.d.ts +1 -5
- package/dist/inspector/styleEditors/GridValueField.js +2 -8
- package/dist/inspector/styleEditors/ImageBackgroundEditor.d.ts +0 -1
- package/dist/inspector/styleEditors/ImageBackgroundEditor.js +1 -2
- package/dist/inspector/styleEditors/LayoutBlockedIndicator.d.ts +0 -1
- package/dist/inspector/styleEditors/LayoutBlockedIndicator.js +0 -1
- package/dist/inspector/styleEditors/LayoutComboField.js +0 -5
- package/dist/inspector/styleEditors/LayoutModeRow.d.ts +14 -0
- package/dist/inspector/styleEditors/LayoutModeRow.js +60 -0
- package/dist/inspector/styleEditors/LayoutSection.d.ts +2 -2
- package/dist/inspector/styleEditors/LayoutSection.js +30 -356
- package/dist/inspector/styleEditors/OpacityEditor.js +7 -5
- package/dist/inspector/styleEditors/PositionControls.d.ts +18 -0
- package/dist/inspector/styleEditors/PositionControls.js +16 -0
- package/dist/inspector/styleEditors/SizeSection.d.ts +18 -0
- package/dist/inspector/styleEditors/SizeSection.js +71 -0
- package/dist/inspector/styleEditors/{SpacingBox.d.ts → SpacingField.d.ts} +3 -10
- package/dist/inspector/styleEditors/{SpacingBox.js → SpacingField.js} +15 -29
- package/dist/inspector/styleEditors/Typography.js +2 -4
- package/dist/inspector/styleEditors/borderModel.d.ts +36 -0
- package/dist/inspector/styleEditors/borderModel.js +105 -0
- package/dist/inspector/styleEditors/completeCssValue.d.ts +1 -5
- package/dist/inspector/styleEditors/completeCssValue.js +3 -13
- package/dist/inspector/styleEditors/fieldValue.d.ts +20 -0
- package/dist/inspector/styleEditors/fieldValue.js +26 -0
- package/dist/inspector/styleEditors/gradientValue.d.ts +1 -1
- package/dist/inspector/styleEditors/gradientValue.js +3 -2
- package/dist/inspector/styleEditors/gridChildModel.d.ts +7 -47
- package/dist/inspector/styleEditors/gridChildModel.js +6 -37
- package/dist/inspector/styleEditors/hiddenSizeOverrides.d.ts +5 -0
- package/dist/inspector/styleEditors/hiddenSizeOverrides.js +42 -0
- package/dist/inspector/styleEditors/inlineAuthored.d.ts +1 -8
- package/dist/inspector/styleEditors/inlineAuthored.js +3 -17
- package/dist/inspector/styleEditors/layoutMode.d.ts +15 -0
- package/dist/inspector/styleEditors/layoutMode.js +33 -0
- package/dist/inspector/styleEditors/layoutPreviewState.d.ts +0 -1
- package/dist/inspector/styleEditors/layoutPreviewState.js +0 -1
- package/dist/inspector/styleEditors/layoutValue.d.ts +2 -8
- package/dist/inspector/styleEditors/layoutValue.js +6 -15
- package/dist/inspector/styleEditors/nudgeValue.d.ts +1 -13
- package/dist/inspector/styleEditors/nudgeValue.js +1 -13
- package/dist/inspector/styleEditors/rowLookup.d.ts +1 -5
- package/dist/inspector/styleEditors/rowLookup.js +1 -5
- package/dist/inspector/styleEditors/stringRecord.d.ts +1 -2
- package/dist/inspector/styleEditors/stylePresence.d.ts +0 -2
- package/dist/inspector/styleEditors/stylePresence.js +1 -4
- package/dist/inspector/styleEditors/textRelevance.d.ts +1 -1
- package/dist/inspector/styleEditors/textRelevance.js +1 -1
- package/dist/inspector/styleEditors/useFieldVisibility.js +1 -2
- package/dist/inspector/styleEditors/useLayoutContext.d.ts +13 -0
- package/dist/inspector/styleEditors/useLayoutContext.js +53 -0
- package/dist/inspector/styleEditors/valuePolicy.d.ts +1 -5
- package/dist/inspector/styleEditors/valuePolicy.js +0 -1
- package/dist/inspector/testing.d.ts +1 -4
- package/dist/inspector/testing.js +1 -4
- package/dist/inspector/tokens/TokenChip.d.ts +1 -4
- package/dist/inspector/tokens/TokenChip.js +1 -4
- package/dist/inspector/tokens/TokenField.d.ts +4 -3
- package/dist/inspector/tokens/TokenField.js +53 -32
- package/dist/inspector/tokens/TokensPanel.js +2 -1
- package/dist/inspector/tokens/catalog.d.ts +2 -10
- package/dist/inspector/tokens/catalog.js +5 -12
- package/dist/inspector/tokens/dragPointerLock.d.ts +0 -1
- package/dist/inspector/tokens/dragPointerLock.js +2 -3
- package/dist/inspector/tokens/editActions.d.ts +4 -4
- package/dist/inspector/tokens/editActions.js +11 -7
- package/dist/inspector/tokens/resolution/cascade.d.ts +1 -5
- package/dist/inspector/tokens/resolution/cascade.js +1 -5
- package/dist/inspector/tokens/resolution/containerQueryEvaluator.d.ts +11 -0
- package/dist/inspector/tokens/resolution/containerQueryEvaluator.js +82 -0
- package/dist/inspector/tokens/resolution/cssomCollector.d.ts +4 -19
- package/dist/inspector/tokens/resolution/cssomCollector.js +186 -122
- package/dist/inspector/tokens/resolution/nestedSelectors.d.ts +2 -0
- package/dist/inspector/tokens/resolution/nestedSelectors.js +63 -0
- package/dist/inspector/tokens/resolution/ruleMatching.d.ts +4 -14
- package/dist/inspector/tokens/resolution/ruleMatching.js +136 -63
- package/dist/inspector/tokens/resolution/selectorSemantics.d.ts +3 -14
- package/dist/inspector/tokens/resolution/selectorSemantics.js +12 -27
- package/dist/inspector/tokens/resolution.d.ts +11 -27
- package/dist/inspector/tokens/resolution.js +105 -181
- package/dist/inspector/tokens/tokenAvailability.d.ts +2 -14
- package/dist/inspector/tokens/tokenAvailability.js +6 -38
- package/dist/inspector/tokens/tokenEdits.d.ts +1 -1
- package/dist/inspector/tokens/tokenEdits.js +1 -1
- package/dist/inspector/tokens/valueSemanticsAdapter.d.ts +0 -1
- package/dist/inspector/tokens/valueSemanticsAdapter.js +18 -2
- package/dist/inspector/ui/AtRuleContext.d.ts +5 -5
- package/dist/inspector/ui/AtRuleContext.js +8 -6
- package/dist/inspector/ui/ControlSurface.d.ts +0 -4
- package/dist/inspector/ui/Disclosure.d.ts +0 -5
- package/dist/inspector/ui/Disclosure.js +0 -4
- package/dist/inspector/ui/InlineStyleWarning.d.ts +0 -1
- package/dist/inspector/ui/InlineStyleWarning.js +2 -2
- package/dist/inspector/ui/InspectorPopover.d.ts +1 -5
- package/dist/inspector/ui/InspectorPopover.js +1 -5
- package/dist/inspector/ui/InspectorStyle.d.ts +8 -0
- package/dist/inspector/ui/InspectorStyle.js +26 -0
- package/dist/inspector/ui/PopoverListbox.d.ts +2 -1
- package/dist/inspector/ui/PopoverListbox.js +3 -3
- package/dist/inspector/ui/SegmentedControl.d.ts +4 -4
- package/dist/inspector/ui/SegmentedControl.js +6 -4
- package/dist/inspector/ui/SideValuesField.d.ts +1 -6
- package/dist/inspector/ui/SideValuesField.js +2 -8
- package/dist/inspector/ui/Toast.d.ts +10 -0
- package/dist/inspector/ui/Toast.js +26 -0
- package/dist/inspector/ui/assets/canvasIllustration.d.ts +2 -0
- package/dist/inspector/ui/assets/canvasIllustration.js +21 -0
- package/dist/inspector/ui/assets/gridIllustration.d.ts +2 -0
- package/dist/inspector/ui/assets/{grid.svg → gridIllustration.js} +3 -2
- package/dist/inspector/ui/atRuleSegments.d.ts +13 -0
- package/dist/inspector/ui/atRuleSegments.js +34 -0
- package/dist/inspector/ui/classNames.d.ts +0 -1
- package/dist/inspector/ui/classNames.js +0 -1
- package/dist/inspector/ui/customCursors.d.ts +11 -0
- package/dist/inspector/ui/customCursors.js +29 -7
- package/dist/inspector/ui/styles.js +25 -25
- package/dist/inspector/workspace/commands.js +1 -2
- package/dist/inspector/workspace/controller.js +20 -2
- package/dist/inspector/workspace/handoff.d.ts +1 -5
- package/dist/inspector/workspace/handoff.js +4 -7
- package/dist/inspector/workspace/sentItems.d.ts +3 -6
- package/dist/inspector/workspace/sentItems.js +6 -24
- package/dist/inspector/workspace/timeline.d.ts +28 -11
- package/dist/inspector/workspace/timeline.js +117 -96
- package/dist/internal/agent-protocol.d.ts +53 -38
- package/dist/internal/agent-protocol.js +151 -42
- package/dist/nudge-ui.mjs +155 -92
- package/dist/project/artifacts.js +24 -21
- package/dist/project/files.d.ts +0 -1
- package/dist/project/files.js +2 -9
- package/dist/project/identity.d.ts +1 -5
- package/dist/project/identity.js +1 -5
- package/dist/project/mcpPackage.d.ts +3 -0
- package/dist/project/mcpPackage.js +55 -0
- package/dist/project/pathPolicy.d.ts +1 -6
- package/dist/project/pathPolicy.js +1 -6
- package/dist/project/tokens.d.ts +2 -12
- package/dist/project/tokens.js +4 -15
- package/dist/transport/editor.d.ts +1 -12
- package/dist/transport/editor.js +2 -13
- package/dist/transport/index.d.ts +0 -5
- package/dist/transport/index.js +0 -5
- package/dist/transport/routes.d.ts +0 -5
- package/dist/transport/routes.js +0 -5
- package/package.json +16 -5
- package/dist/inspector/canvas/measurementProjection.d.ts +0 -8
- package/dist/inspector/canvas/measurementProjection.js +0 -16
- package/dist/inspector/changes/changesLog.d.ts +0 -49
- package/dist/inspector/changes/changesLog.js +0 -255
- package/dist/inspector/changes/draftChanges.d.ts +0 -58
- package/dist/inspector/changes/draftChanges.js +0 -304
- package/dist/inspector/conformance/projection.d.ts +0 -2
- package/dist/inspector/conformance/projection.js +0 -3
- package/dist/inspector/inline-text/textChangeBoundary.d.ts +0 -6
- package/dist/inspector/inline-text/textChangeBoundary.js +0 -1
- package/dist/inspector/overlay/InspectorOverlay.d.ts +0 -5
- package/dist/inspector/overlay/InspectorOverlay.js +0 -332
- package/dist/inspector/overlay/elementSelector.d.ts +0 -1
- package/dist/inspector/overlay/elementSelector.js +0 -111
- package/dist/inspector/sketch/SketchChanges.d.ts +0 -2
- package/dist/inspector/sketch/SketchChanges.js +0 -72
- package/dist/inspector/sketch/SketchEntryButton.d.ts +0 -4
- package/dist/inspector/sketch/SketchEntryButton.js +0 -11
- package/dist/inspector/sketch/SketchLayersPanel.d.ts +0 -2
- package/dist/inspector/sketch/SketchLayersPanel.js +0 -71
- package/dist/inspector/styleEditors/InsetSection.d.ts +0 -15
- package/dist/inspector/styleEditors/InsetSection.js +0 -15
- package/dist/inspector/styleEditors/PositionInsets.d.ts +0 -15
- package/dist/inspector/styleEditors/PositionInsets.js +0 -12
- package/dist/inspector/tokens/TokenDropdown.d.ts +0 -13
- package/dist/inspector/tokens/TokenDropdown.js +0 -59
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { computeSpecificityCore } from "./selectorSemantics.js";
|
|
2
|
+
import { resolveNestedSelector } from "./nestedSelectors.js";
|
|
3
|
+
import { adoptedStylesheetKey, STATE_PREVIEW_SHEET_ID } from "../../runtime/ownedStylesheets.js";
|
|
4
|
+
import { INTERACTION_CURSOR_PROPERTY } from "../../ui/customCursors.js";
|
|
2
5
|
const revisionRecords = new WeakMap();
|
|
3
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
|
+
}
|
|
4
12
|
const documentResolutionSessions = new WeakMap();
|
|
5
13
|
const documentResolutionReferences = new WeakMap();
|
|
6
14
|
const registeredElements = new WeakSet();
|
|
@@ -12,10 +20,6 @@ function notifyDocumentRevision(doc) {
|
|
|
12
20
|
const revisions = documentRevisions(doc);
|
|
13
21
|
documentRevisionListeners.get(doc)?.forEach((cb) => cb({ ...revisions }));
|
|
14
22
|
}
|
|
15
|
-
/**
|
|
16
|
-
* Subscribes to cascade revisions for one document. This is the narrow
|
|
17
|
-
* document-scoped seam used by the browser inspection Module.
|
|
18
|
-
*/
|
|
19
23
|
export function subscribeDocumentRevision(doc, cb) {
|
|
20
24
|
let listeners = documentRevisionListeners.get(doc);
|
|
21
25
|
if (!listeners) {
|
|
@@ -30,12 +34,7 @@ export function subscribeDocumentRevision(doc, cb) {
|
|
|
30
34
|
}
|
|
31
35
|
};
|
|
32
36
|
}
|
|
33
|
-
/**
|
|
34
|
-
* Elements whose attribute changes can affect a cached cascade outcome. The
|
|
35
|
-
* observer only counts attribute mutations against registered elements so
|
|
36
|
-
* unrelated host churn (React commits, hover states, animations) cannot bump
|
|
37
|
-
* the element revision. Registration is idempotent.
|
|
38
|
-
*/
|
|
37
|
+
/** Only attribute mutations on registered elements bump the element revision; unrelated host churn is ignored. */
|
|
39
38
|
export function registerResolutionElement(el) {
|
|
40
39
|
registeredElements.add(el);
|
|
41
40
|
}
|
|
@@ -46,7 +45,6 @@ export function registerResolutionLineage(element) {
|
|
|
46
45
|
current = current.parentElement;
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
|
-
/** Releases the observer, listener, and cached state owned by one document. */
|
|
50
48
|
export function disposeDocumentResolution(doc) {
|
|
51
49
|
const session = documentResolutionSessions.get(doc);
|
|
52
50
|
if (session) {
|
|
@@ -60,14 +58,7 @@ export function disposeDocumentResolution(doc) {
|
|
|
60
58
|
documentResolutionSessions.delete(doc);
|
|
61
59
|
}
|
|
62
60
|
documentResolutionReferences.delete(doc);
|
|
63
|
-
//
|
|
64
|
-
// resurrects stale revision-keyed caches in property resolution, token
|
|
65
|
-
// availability, and rule matching: an entry written at
|
|
66
|
-
// (0,0) before disposal matches immediately after disposal at (0,0), even
|
|
67
|
-
// though the CSSOM changed while no observer was attached. Bump instead so
|
|
68
|
-
// every pre-disposal cache entry misses, then let the next
|
|
69
|
-
// documentRevisions() observe from the bumped baseline. Only bump when a
|
|
70
|
-
// 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.
|
|
71
62
|
if (session) {
|
|
72
63
|
const record = revisionRecords.get(doc);
|
|
73
64
|
if (record) {
|
|
@@ -76,6 +67,7 @@ export function disposeDocumentResolution(doc) {
|
|
|
76
67
|
}
|
|
77
68
|
}
|
|
78
69
|
ruleSnapshots.delete(doc);
|
|
70
|
+
bumpPageSheetEpoch(doc);
|
|
79
71
|
documentRevisionListeners.get(doc)?.clear();
|
|
80
72
|
documentRevisionListeners.delete(doc);
|
|
81
73
|
}
|
|
@@ -132,19 +124,35 @@ const MANAGED_SHEET_ID = "nudge-ui-styles";
|
|
|
132
124
|
function isManagedStylesheetNode(node) {
|
|
133
125
|
return isStylesheetNode(node) && node.id === MANAGED_SHEET_ID;
|
|
134
126
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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.
|
|
140
|
+
const RENDERER_INLINE_CURSOR_PROPERTIES = ["cursor", INTERACTION_CURSOR_PROPERTY];
|
|
141
|
+
function styleTextWithoutCursor(doc, text) {
|
|
142
|
+
const scratch = doc.createElement("div");
|
|
143
|
+
scratch.style.cssText = text ?? "";
|
|
144
|
+
for (const property of RENDERER_INLINE_CURSOR_PROPERTIES)
|
|
145
|
+
scratch.style.removeProperty(property);
|
|
146
|
+
return scratch.style.cssText;
|
|
147
|
+
}
|
|
148
|
+
function isCursorOnlyStyleChange(target, oldValue) {
|
|
149
|
+
const doc = target.ownerDocument;
|
|
150
|
+
return styleTextWithoutCursor(doc, oldValue) === styleTextWithoutCursor(doc, target.getAttribute("style"));
|
|
151
|
+
}
|
|
142
152
|
function isProbeMutation(record) {
|
|
143
153
|
if (record.type === "attributes") {
|
|
144
154
|
const target = record.target;
|
|
145
|
-
// Stylesheet attributes change
|
|
146
|
-
// the stylesheet element has never been registered as a resolution target.
|
|
147
|
-
// 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.
|
|
148
156
|
if (isStylesheetNode(target)) {
|
|
149
157
|
const name = record.attributeName ?? "";
|
|
150
158
|
if (isManagedStylesheetNode(target))
|
|
@@ -152,23 +160,21 @@ function isProbeMutation(record) {
|
|
|
152
160
|
return name.startsWith("data-nudge-ui");
|
|
153
161
|
}
|
|
154
162
|
const name = record.attributeName ?? "";
|
|
155
|
-
//
|
|
156
|
-
// Ignore them before the registry check so hovering an unregistered canvas
|
|
157
|
-
// 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.
|
|
158
164
|
if (name === "data-renderer-id")
|
|
159
165
|
return true;
|
|
160
166
|
if (!registeredElements.has(target))
|
|
161
167
|
return true;
|
|
162
168
|
return name.startsWith("data-nudge-ui")
|
|
163
|
-
|| CONTAINER_PROBE_MARKER.test(name)
|
|
169
|
+
|| CONTAINER_PROBE_MARKER.test(name)
|
|
170
|
+
|| (name === "style" && isCursorOnlyStyleChange(target, record.oldValue));
|
|
164
171
|
}
|
|
165
172
|
if (record.type === "characterData") {
|
|
166
173
|
return isProbeNode(record.target) && !isManagedStylesheetNode(record.target.parentElement);
|
|
167
174
|
}
|
|
168
175
|
if (isProbeNode(record.target) && !isManagedStylesheetNode(record.target))
|
|
169
176
|
return true;
|
|
170
|
-
// Removed nodes are already disconnected, so their ancestor chain
|
|
171
|
-
// 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.
|
|
172
178
|
const nodes = [...record.addedNodes, ...record.removedNodes];
|
|
173
179
|
if (nodes.some(isManagedStylesheetNode))
|
|
174
180
|
return false;
|
|
@@ -180,10 +186,7 @@ export function documentRevisions(doc) {
|
|
|
180
186
|
record = { element: 0, stylesheet: 0 };
|
|
181
187
|
revisionRecords.set(doc, record);
|
|
182
188
|
}
|
|
183
|
-
// A disposed document keeps its
|
|
184
|
-
// disposeDocumentResolution) but loses its observer session. Recreate the
|
|
185
|
-
// session so later mutations are observed from the bumped baseline instead
|
|
186
|
-
// 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.
|
|
187
190
|
if (documentResolutionSessions.get(doc))
|
|
188
191
|
return record;
|
|
189
192
|
const session = {
|
|
@@ -193,9 +196,7 @@ export function documentRevisions(doc) {
|
|
|
193
196
|
resizeListener: null,
|
|
194
197
|
};
|
|
195
198
|
documentResolutionSessions.set(doc, session);
|
|
196
|
-
//
|
|
197
|
-
// not a property in every TypeScript Window declaration used by consumers.
|
|
198
|
-
// 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.
|
|
199
200
|
const viewWithObserver = session.view;
|
|
200
201
|
const Observer = viewWithObserver?.MutationObserver
|
|
201
202
|
?? (typeof MutationObserver !== "undefined" ? MutationObserver : undefined);
|
|
@@ -210,11 +211,14 @@ export function documentRevisions(doc) {
|
|
|
210
211
|
record.element++;
|
|
211
212
|
if (relevant.some(changesStylesheet))
|
|
212
213
|
record.stylesheet++;
|
|
214
|
+
if (relevant.some(changesPageStylesheet))
|
|
215
|
+
bumpPageSheetEpoch(doc);
|
|
213
216
|
notifyDocumentRevision(doc);
|
|
214
217
|
});
|
|
215
218
|
session.observer = observer;
|
|
216
219
|
observer.observe(root, {
|
|
217
220
|
attributes: true,
|
|
221
|
+
attributeOldValue: true,
|
|
218
222
|
childList: true,
|
|
219
223
|
characterData: true,
|
|
220
224
|
subtree: true,
|
|
@@ -224,6 +228,7 @@ export function documentRevisions(doc) {
|
|
|
224
228
|
return;
|
|
225
229
|
record.element++;
|
|
226
230
|
record.stylesheet++;
|
|
231
|
+
bumpPageSheetEpoch(doc);
|
|
227
232
|
notifyDocumentRevision(doc);
|
|
228
233
|
};
|
|
229
234
|
session.resizeListener = resizeListener;
|
|
@@ -234,8 +239,16 @@ export function documentRevisions(doc) {
|
|
|
234
239
|
function stylesheetRevision(doc) {
|
|
235
240
|
return documentRevisions(doc).stylesheet;
|
|
236
241
|
}
|
|
237
|
-
/** Invalidates CSSOM-derived snapshots after programmatic stylesheet edits. */
|
|
238
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) {
|
|
239
252
|
const record = documentRevisions(doc);
|
|
240
253
|
record.element++;
|
|
241
254
|
record.stylesheet++;
|
|
@@ -249,13 +262,7 @@ function isStyleRuleInDocument(rule, doc) {
|
|
|
249
262
|
return rule.type === (doc.defaultView?.CSSRule.STYLE_RULE ?? 1)
|
|
250
263
|
&& "selectorText" in rule && "style" in rule;
|
|
251
264
|
}
|
|
252
|
-
/**
|
|
253
|
-
* Reads the declarations the browser accepted for a style rule. This is the
|
|
254
|
-
* semantic source for authored values; it intentionally does not inspect the
|
|
255
|
-
* stylesheet element's original text. CSSOM may expose a shorthand as empty
|
|
256
|
-
* longhand entries through indexed enumeration, so prefer its serialized
|
|
257
|
-
* declaration block and use enumeration as a compatibility fallback.
|
|
258
|
-
*/
|
|
265
|
+
/** Prefers the serialized declaration block; enumeration is a fallback because a shorthand can enumerate empty longhands. */
|
|
259
266
|
export function declarationsFromCssom(style) {
|
|
260
267
|
const declarations = parseCssomDeclarations(style.cssText);
|
|
261
268
|
const seen = new Set(declarations.map((declaration) => declaration.property));
|
|
@@ -378,13 +385,13 @@ function contextForRule(cssText, record) {
|
|
|
378
385
|
return params ? { kind: "media", params } : null;
|
|
379
386
|
}
|
|
380
387
|
if (/^\s*@container\b/i.test(cssText)) {
|
|
381
|
-
//
|
|
382
|
-
// engines. Fall back to the serialised prelude so named, style, and newer
|
|
383
|
-
// 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.
|
|
384
389
|
const containerName = record.containerName?.trim();
|
|
385
|
-
const
|
|
386
|
-
|
|
387
|
-
|
|
390
|
+
const condition = record.conditionText?.trim() ?? "";
|
|
391
|
+
const hasName = Boolean(containerName) && containerName !== "none";
|
|
392
|
+
const conditionNamed = hasName && condition.startsWith(containerName)
|
|
393
|
+
&& /^(?:$|[\s(])/.test(condition.slice(containerName.length));
|
|
394
|
+
const fromInterfaces = hasName && !conditionNamed ? `${containerName} ${condition}`.trim() : condition;
|
|
388
395
|
const params = fromInterfaces || atRuleParams(cssText, "container");
|
|
389
396
|
return params ? { kind: "container", params } : null;
|
|
390
397
|
}
|
|
@@ -397,83 +404,84 @@ function contextForRule(cssText, record) {
|
|
|
397
404
|
function isNestedDeclarations(rule, doc) {
|
|
398
405
|
if (isStyleRuleInDocument(rule, doc) || !("style" in rule) || "selectorText" in rule)
|
|
399
406
|
return false;
|
|
400
|
-
// Chromium
|
|
401
|
-
// @media block as CSSNestedDeclarations. Its public type is not yet in
|
|
402
|
-
// 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.
|
|
403
408
|
return !/^\s*@/.test(rule.cssText ?? "") && typeof rule.style === "object";
|
|
404
409
|
}
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
if (
|
|
409
|
-
return
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
};
|
|
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;
|
|
414
418
|
}
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
const
|
|
420
|
-
|
|
421
|
-
if (!normalized)
|
|
422
|
-
return undefined;
|
|
423
|
-
if (!layerOrder.has(normalized))
|
|
424
|
-
layerOrder.set(normalized, layerOrder.size);
|
|
425
|
-
return normalized;
|
|
426
|
-
};
|
|
419
|
+
return true;
|
|
420
|
+
}
|
|
421
|
+
function walkSheet(rules, doc) {
|
|
422
|
+
const events = [];
|
|
423
|
+
const media = new Map();
|
|
424
|
+
const view = doc.defaultView;
|
|
427
425
|
const nestedLayerName = (parent, child) => {
|
|
428
426
|
const normalized = child.trim();
|
|
429
427
|
if (!normalized)
|
|
430
428
|
return parent;
|
|
431
|
-
|
|
429
|
+
const name = parent ? `${parent}.${normalized}` : normalized;
|
|
430
|
+
events.push({ layer: name });
|
|
431
|
+
return name;
|
|
432
432
|
};
|
|
433
|
-
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) => {
|
|
434
442
|
for (const rule of Array.from(rules)) {
|
|
435
|
-
const serializedRule = rule.cssText ?? "";
|
|
436
|
-
const layerStatement = /^\s*@layer\s+([^;{]+)\s*;/i.exec(serializedRule);
|
|
437
|
-
if (layerStatement && !("cssRules" in rule)) {
|
|
438
|
-
layerStatement[1].split(",").forEach((name) => nestedLayerName(layer, name));
|
|
439
|
-
continue;
|
|
440
|
-
}
|
|
441
443
|
if (isStyleRuleInDocument(rule, doc)) {
|
|
442
444
|
try {
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
445
|
+
const selectorText = inheritedSelector
|
|
446
|
+
? resolveNestedSelector(rule.selectorText, inheritedSelector)
|
|
447
|
+
: rule.selectorText;
|
|
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
|
+
} });
|
|
454
456
|
const nested = rule.cssRules;
|
|
455
457
|
if (nested?.length)
|
|
456
|
-
walkRules(nested, active, layer, atRules,
|
|
458
|
+
walkRules(nested, active, layer, atRules, selectorText);
|
|
457
459
|
}
|
|
458
460
|
catch {
|
|
459
461
|
continue;
|
|
460
462
|
}
|
|
463
|
+
continue;
|
|
461
464
|
}
|
|
462
|
-
|
|
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)) {
|
|
463
474
|
if (!inheritedSelector)
|
|
464
475
|
continue;
|
|
465
476
|
try {
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
layerOrder: layer ? layerOrder.get(layer) : undefined,
|
|
475
|
-
atRules: atRules.length > 0 ? atRules : undefined,
|
|
476
|
-
});
|
|
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
|
+
} });
|
|
477
485
|
}
|
|
478
486
|
catch {
|
|
479
487
|
continue;
|
|
@@ -483,24 +491,20 @@ export function collectRules(doc) {
|
|
|
483
491
|
try {
|
|
484
492
|
const record = rule;
|
|
485
493
|
let childActive = active;
|
|
486
|
-
const cssText =
|
|
494
|
+
const cssText = serializedRule;
|
|
487
495
|
const isMedia = /^\s*@media\b/i.test(cssText);
|
|
488
496
|
const isSupports = /^\s*@supports\b/i.test(cssText);
|
|
489
497
|
const isLayer = /^\s*@layer\b/i.test(cssText);
|
|
490
|
-
const view = doc.defaultView;
|
|
491
498
|
if (isMedia && record.conditionText)
|
|
492
|
-
childActive = active && (
|
|
499
|
+
childActive = active && mediaMatches(record.conditionText);
|
|
493
500
|
else if (isSupports && record.conditionText)
|
|
494
|
-
childActive = active && (
|
|
495
|
-
// A container query
|
|
496
|
-
// it cannot be answered while walking a document-level stylesheet.
|
|
497
|
-
// Resolution evaluates its retained context against the selected
|
|
498
|
-
// 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.
|
|
499
503
|
const context = contextForRule(cssText, record);
|
|
500
504
|
const childLayer = isLayer
|
|
501
505
|
? nestedLayerName(layer, record.name ?? cssText.slice(6, cssText.indexOf("{")).trim())
|
|
502
506
|
: layer;
|
|
503
|
-
walkRules(record.cssRules, childActive, childLayer, context ? [...atRules, context] : atRules, inheritedSelector
|
|
507
|
+
walkRules(record.cssRules, childActive, childLayer, context ? [...atRules, context] : atRules, inheritedSelector);
|
|
504
508
|
}
|
|
505
509
|
catch {
|
|
506
510
|
continue;
|
|
@@ -508,21 +512,81 @@ export function collectRules(doc) {
|
|
|
508
512
|
}
|
|
509
513
|
}
|
|
510
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
|
+
};
|
|
511
564
|
const stylesheetNodes = Array.from(doc.querySelectorAll('style, link[rel~="stylesheet"]'));
|
|
512
565
|
for (const [index, sheet] of Array.from(doc.styleSheets).entries()) {
|
|
513
566
|
try {
|
|
514
567
|
// jsdom does not currently expose CSSStyleSheet.ownerNode; the document
|
|
515
568
|
// stylesheet list and stylesheet element list retain the same order.
|
|
516
569
|
const owner = sheet.ownerNode ?? stylesheetNodes[index] ?? null;
|
|
570
|
+
if (owner?.id === STATE_PREVIEW_SHEET_ID)
|
|
571
|
+
continue;
|
|
517
572
|
const source = owner?.dataset?.viteDevId
|
|
518
573
|
?? sheet.href
|
|
519
574
|
?? (owner?.id ? `#${owner.id}` : `stylesheet:${index + 1}`);
|
|
520
|
-
|
|
575
|
+
const inspectorOwned = typeof owner?.hasAttribute === "function" && owner.hasAttribute("data-nudge-ui");
|
|
576
|
+
append(sheetEvents(sheet, !inspectorOwned), source);
|
|
521
577
|
}
|
|
522
578
|
catch {
|
|
523
579
|
inaccessible = true;
|
|
524
580
|
}
|
|
525
581
|
}
|
|
582
|
+
// Adopted sheets cascade after document stylesheets. Under a strict
|
|
583
|
+
// style-src policy they also hold the inspector's own managed rules.
|
|
584
|
+
for (const [index, sheet] of Array.from(doc.adoptedStyleSheets ?? []).entries()) {
|
|
585
|
+
const key = adoptedStylesheetKey(doc, sheet);
|
|
586
|
+
if (key === STATE_PREVIEW_SHEET_ID)
|
|
587
|
+
continue;
|
|
588
|
+
append(sheetEvents(sheet, key === null), key ? `#${key}` : `adopted:${index + 1}`);
|
|
589
|
+
}
|
|
526
590
|
const snapshot = { revision, rules: out, layerOrder, inaccessible };
|
|
527
591
|
ruleSnapshots.set(doc, snapshot);
|
|
528
592
|
return snapshot;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** `:is(parent)` keeps nesting's maximum parent-list specificity without expanding every combination. */
|
|
2
|
+
export function resolveNestedSelector(selector, parent) {
|
|
3
|
+
const subject = `:is(${parent})`;
|
|
4
|
+
const branches = [];
|
|
5
|
+
let branch = "";
|
|
6
|
+
let hasNesting = false;
|
|
7
|
+
let parentheses = 0;
|
|
8
|
+
let brackets = 0;
|
|
9
|
+
let quote = null;
|
|
10
|
+
const finishBranch = () => {
|
|
11
|
+
branches.push(hasNesting ? branch.trim() : `${subject} ${branch.trim()}`);
|
|
12
|
+
branch = "";
|
|
13
|
+
hasNesting = false;
|
|
14
|
+
};
|
|
15
|
+
for (let index = 0; index < selector.length; index++) {
|
|
16
|
+
const character = selector[index];
|
|
17
|
+
if (character === "\\") {
|
|
18
|
+
branch += character + (selector[++index] ?? "");
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (quote) {
|
|
22
|
+
branch += character;
|
|
23
|
+
if (character === quote)
|
|
24
|
+
quote = null;
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (character === '"' || character === "'") {
|
|
28
|
+
quote = character;
|
|
29
|
+
}
|
|
30
|
+
else if (character === "/" && selector[index + 1] === "*") {
|
|
31
|
+
const end = selector.indexOf("*/", index + 2);
|
|
32
|
+
if (end < 0)
|
|
33
|
+
return "";
|
|
34
|
+
branch += selector.slice(index, end + 2);
|
|
35
|
+
index = end + 1;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
else if (character === "[") {
|
|
39
|
+
brackets++;
|
|
40
|
+
}
|
|
41
|
+
else if (character === "]") {
|
|
42
|
+
brackets--;
|
|
43
|
+
}
|
|
44
|
+
else if (brackets === 0) {
|
|
45
|
+
if (character === "(")
|
|
46
|
+
parentheses++;
|
|
47
|
+
else if (character === ")")
|
|
48
|
+
parentheses--;
|
|
49
|
+
else if (character === "&") {
|
|
50
|
+
branch += subject;
|
|
51
|
+
hasNesting = true;
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
else if (character === "," && parentheses === 0) {
|
|
55
|
+
finishBranch();
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
branch += character;
|
|
60
|
+
}
|
|
61
|
+
finishBranch();
|
|
62
|
+
return branches.join(", ");
|
|
63
|
+
}
|
|
@@ -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 {};
|