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,10 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
3
|
import { IconLinkOff } from "@tabler/icons-react";
|
|
4
|
-
import { applyValueEdit, normalizeOpacityPercent, selectTokens, } from "../../css/value-semantics/index.js";
|
|
4
|
+
import { applyValueEdit, isCalcExpression, normalizeOpacityPercent, selectTokens, } from "../../css/value-semantics/index.js";
|
|
5
5
|
import { promoteToToken, swapToken } from "./editActions.js";
|
|
6
6
|
import { setStyle } from "./editActions.js";
|
|
7
7
|
import { completeCssValue } from "../styleEditors/completeCssValue.js";
|
|
8
|
+
import { deriveActiveTokenName, isExpressionRow } from "../styleEditors/fieldValue.js";
|
|
8
9
|
import { canNudgeCssValueByDrag, nudgeCssValue, nudgeCssValueByDrag, nudgeOpacityValue, supportsDragNudge, } from "../styleEditors/nudgeValue.js";
|
|
9
10
|
import { valuePolicyFor } from "../styleEditors/valuePolicy.js";
|
|
10
11
|
import { IconButton } from "../ui/IconButton.js";
|
|
@@ -16,10 +17,11 @@ import { Tooltip } from "../ui/Tooltip.js";
|
|
|
16
17
|
import { cx } from "../ui/classNames.js";
|
|
17
18
|
import { TokenChip } from "./TokenChip.js";
|
|
18
19
|
import { startDragPointerLock } from "./dragPointerLock.js";
|
|
19
|
-
import { createChangeHistoryGroup } from "../
|
|
20
|
+
import { createChangeHistoryGroup } from "../workspace/timeline.js";
|
|
20
21
|
import { isMultiTarget } from "../selection/editTarget.js";
|
|
21
22
|
import { inlineBlockedBy } from "../styleEditors/inlineAuthored.js";
|
|
22
23
|
import { InlineStyleWarning } from "../ui/InlineStyleWarning.js";
|
|
24
|
+
import { isMacPlatform } from "../shell/shortcuts.js";
|
|
23
25
|
const NON_COLOR_FACTS = { hasEmbeddedAlpha: false, isExpression: false, opacityEditable: false };
|
|
24
26
|
function colorFacts(value) {
|
|
25
27
|
return selectTokens({
|
|
@@ -77,7 +79,7 @@ function releasePointerCapture(state) {
|
|
|
77
79
|
// The browser may release capture before pointerup/pointercancel arrives.
|
|
78
80
|
}
|
|
79
81
|
}
|
|
80
|
-
/**
|
|
82
|
+
/** First family in a CSS family list; commas inside var() fallbacks are ignored. */
|
|
81
83
|
function primaryFontFamily(value) {
|
|
82
84
|
let depth = 0;
|
|
83
85
|
let quote = null;
|
|
@@ -202,11 +204,7 @@ export function TokenValueField(props) {
|
|
|
202
204
|
const showOpacity = isColor && !activeTokenHasEmbeddedAlpha
|
|
203
205
|
&& authoredColor.opacityEditable
|
|
204
206
|
&& (Boolean(activeTokenName) || attributionTokens.length === 0 || Boolean(opacity));
|
|
205
|
-
//
|
|
206
|
-
// three CSS.supports calls per token, so classifying per token per render
|
|
207
|
-
// (chip mode is unbounded; raw mode runs per keystroke) dominates this
|
|
208
|
-
// field's render cost. Map misses fall back to direct classification for
|
|
209
|
-
// synthetic entries that are not part of the catalog list.
|
|
207
|
+
// Classification costs up to three CSS.supports calls per token, so it runs once per entries change.
|
|
210
208
|
const groupByTokenName = useMemo(() => {
|
|
211
209
|
const groups = new Map();
|
|
212
210
|
for (const entry of entries)
|
|
@@ -235,6 +233,10 @@ export function TokenValueField(props) {
|
|
|
235
233
|
return Array.from(new Set(suggestions));
|
|
236
234
|
}, [suggestions]);
|
|
237
235
|
function handleSuggestionSelect(value) {
|
|
236
|
+
if (value === DETACH_VALUE) {
|
|
237
|
+
handleDelink();
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
238
240
|
const rawSuggestion = decodeRawSuggestion(value);
|
|
239
241
|
if (rawSuggestion !== null) {
|
|
240
242
|
selectedFromPopover.current = true;
|
|
@@ -264,8 +266,7 @@ export function TokenValueField(props) {
|
|
|
264
266
|
onCommitRaw(formatted);
|
|
265
267
|
}
|
|
266
268
|
function handleDelink() {
|
|
267
|
-
//
|
|
268
|
-
// it should preserve the complete authored color expression and its alpha.
|
|
269
|
+
// Unlinking must preserve the complete authored color expression and its alpha.
|
|
269
270
|
const value = opacity ? committedValue : activeToken?.value || resolvedValue || committedValue;
|
|
270
271
|
setActiveTokenName(null);
|
|
271
272
|
setRawValue(value);
|
|
@@ -467,9 +468,20 @@ export function TokenValueField(props) {
|
|
|
467
468
|
if (activeToken) {
|
|
468
469
|
const chipValue = chipVariant === "small" ? stripCssUnit(activeToken.value) : activeToken.name;
|
|
469
470
|
const embedColorSwatch = isColor && chipVariant !== "small";
|
|
470
|
-
return (_jsxs("span", { className: cx("token-field", isColor && "token-field--color", embedColorSwatch && "token-field--color-chip", blockedBy !== null && "token-field--blocked", className), "data-test": "token-field", "data-property": property, "aria-disabled": fieldDisabled || undefined, "aria-label": label, children: [renderLeading(), embedColorSwatch ? null : colorControlEl, _jsxs(TokenChip, { size: chipVariant, "data-group": groupByTokenName.get(activeToken.name) ?? tokenGroup(activeToken), children: [_jsx(PopoverListbox, { query: "", value: activeToken.name, open: isTokenPickerOpen, trigger: (_jsxs(TokenChip.Picker, { children: [embedColorSwatch ? colorControlEl : null, _jsx(TokenChip.Label, { title: chipVariant === "small" ? activeToken.name : undefined, children: chipValue })] })), triggerClassName: "token-chip__trigger", triggerDataTest: "token-chip", triggerAriaLabel: `Change ${property} token`, searchable: true, searchPlaceholder: "Search tokens\u2026", searchAriaLabel: "Search tokens",
|
|
471
|
+
return (_jsxs("span", { className: cx("token-field", isColor && "token-field--color", embedColorSwatch && "token-field--color-chip", blockedBy !== null && "token-field--blocked", className), "data-test": "token-field", "data-property": property, "aria-disabled": fieldDisabled || undefined, "aria-label": label, children: [renderLeading(), embedColorSwatch ? null : colorControlEl, _jsxs(TokenChip, { size: chipVariant, "data-group": groupByTokenName.get(activeToken.name) ?? tokenGroup(activeToken), children: [_jsx(PopoverListbox, { query: "", value: activeToken.name, open: isTokenPickerOpen, trigger: (_jsxs(TokenChip.Picker, { children: [embedColorSwatch ? colorControlEl : null, _jsx(TokenChip.Label, { title: chipVariant === "small" ? activeToken.name : undefined, children: chipValue })] })), triggerClassName: "token-chip__trigger", triggerDataTest: "token-chip", triggerAriaLabel: `Change ${property} token`, searchable: true, searchPlaceholder: "Search tokens\u2026", searchAriaLabel: "Search tokens", searchOnKeyDown: (event) => {
|
|
472
|
+
if (fieldDisabled || !isDetachKey(event))
|
|
473
|
+
return;
|
|
474
|
+
event.preventDefault();
|
|
475
|
+
event.stopPropagation();
|
|
476
|
+
setTokenPickerOpen(false);
|
|
477
|
+
handleDelink();
|
|
478
|
+
}, items: [
|
|
479
|
+
detachItem(),
|
|
480
|
+
...rawSuggestionItems,
|
|
481
|
+
...relevantTokens.map((entry) => tokenSuggestion(entry, groupByTokenName)),
|
|
482
|
+
], onQueryChange: () => undefined, onOpenChange: setTokenPickerOpen, disabled: fieldDisabled, onSelect: (value) => {
|
|
471
483
|
handleSuggestionSelect(value);
|
|
472
|
-
} }), _jsx(TokenChip.Action, { children: _jsx(Tooltip, { stableTrigger: true, children: _jsx(IconButton, { variant: "quiet", size: "compact", style: { borderRadius: "var(--radius-4)" }, label: "
|
|
484
|
+
} }), chipVariant === "small" ? null : (_jsx(TokenChip.Action, { children: _jsx(Tooltip, { stableTrigger: true, children: _jsx(IconButton, { variant: "quiet", size: "compact", style: { borderRadius: "var(--radius-4)" }, label: "Detach token", "data-test": "delink-btn", disabled: fieldDisabled, onClick: handleDelink, children: _jsx(IconLinkOff, { size: 14, stroke: 1.75, "aria-hidden": "true" }) }) }) }))] }), opacityControl, _jsx(AtRuleIndicator, { atRules: fieldAtRules }), trailing ? _jsx("span", { className: "token-field__trailing", children: trailing }) : null, _jsx(InlineStyleWarning, { blockedBy: blockedBy, dataTest: inlineWarningDataTest, tooltipDataTest: inlineWarningTooltipDataTest })] }));
|
|
473
485
|
}
|
|
474
486
|
const showPopover = isFocused && (filteredTokens.length > 0 || availableSuggestions.length > 0);
|
|
475
487
|
return (_jsxs("span", { className: cx("token-field", "token-field--raw", isColor && "token-field--color", blockedBy !== null && "token-field--blocked", className), "data-test": "token-field", "data-property": property, "aria-disabled": fieldDisabled || undefined, "aria-label": label, children: [renderLeading(), colorControlEl, _jsx(PopoverListbox, { query: rawValue, value: null, open: showPopover, placeholder: property, inputRef: inputRef, inputAppearance: "embedded", inputDataTest: inputDataTest, inputOnFocus: () => {
|
|
@@ -494,7 +506,7 @@ function arrowDirection(key) {
|
|
|
494
506
|
return null;
|
|
495
507
|
}
|
|
496
508
|
export function TokenField(props) {
|
|
497
|
-
const { property, semanticSlot, tokenRow, selection, initialValue, displayValue, domElement: el, editTarget, entries, suggestions, inputDataTest, onAfterEdit, editMetadata, leading, trailing, className, label, chipVariant, formatRawValue: formatRawValueProp, disabled = false, mixed = false, attributionTokens, inlineWarningDataTest, inlineWarningTooltipDataTest, } = props;
|
|
509
|
+
const { property, semanticSlot, tokenRow, selection, initialValue, displayValue, domElement: el, editTarget, entries, suggestions, inputDataTest, onAfterEdit, editMetadata, leading, trailing, className, label, chipVariant, formatRawValue: formatRawValueProp, disabled = false, mixed = false, attributionTokens, inlineWarningDataTest, inlineWarningTooltipDataTest, interceptRaw, } = props;
|
|
498
510
|
const selectedProperty = selection && selection.elements.length > 1
|
|
499
511
|
? selection.getProperty(property)
|
|
500
512
|
: null;
|
|
@@ -510,25 +522,18 @@ export function TokenField(props) {
|
|
|
510
522
|
&& tokenRow.opacity.tokenName !== tokenRow.tokenName
|
|
511
523
|
? tokenRow.tokenName
|
|
512
524
|
: null;
|
|
513
|
-
const expression =
|
|
514
|
-
|| tokenRow.modifiers?.some((modifier) => modifier.kind === "alpha")
|
|
515
|
-
|| tokenRow.color?.isExpression));
|
|
525
|
+
const expression = isExpressionRow(tokenRow ?? null);
|
|
516
526
|
const authored = tokenRow?.authored ?? tokenRow?.declaredValue ?? "";
|
|
517
|
-
const isCalcAuthored =
|
|
518
|
-
const
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
: tokenBackedOpacityName
|
|
524
|
-
|
|
525
|
-
? null
|
|
526
|
-
: selectedProperty ? selectedTokenName : tokenRow?.tokenName ?? null);
|
|
527
|
+
const isCalcAuthored = isCalcExpression(authored);
|
|
528
|
+
const activeTokenName = deriveActiveTokenName({
|
|
529
|
+
row: tokenRow ?? null,
|
|
530
|
+
selectedProperty,
|
|
531
|
+
mixed: effectiveMixed,
|
|
532
|
+
authored,
|
|
533
|
+
override: tokenBackedOpacityName,
|
|
534
|
+
});
|
|
527
535
|
const fallbackValue = initialValue ?? structuredBorderValue(property, tokenRow) ?? computedRaw(el, property);
|
|
528
|
-
//
|
|
529
|
-
// chip so the UI shows the resolved pixel value, not the internal
|
|
530
|
-
// multiplier token (e.g. --spacing). The authored expression stays
|
|
531
|
-
// accessible via the row for diagnostics.
|
|
536
|
+
// Suppress the chip for calc()-derived values so the UI shows the resolved pixel value, not the internal multiplier token.
|
|
532
537
|
const authoredOrComputed = tokenBackedOpacityName
|
|
533
538
|
? authored
|
|
534
539
|
: expression || (!activeTokenName && !isCalcAuthored)
|
|
@@ -544,8 +549,7 @@ export function TokenField(props) {
|
|
|
544
549
|
: null;
|
|
545
550
|
let resolvedValue = tokenRow?.propertyOpacity?.value ?? tokenRow?.resolvedValue ?? committedValue;
|
|
546
551
|
if (property === "background-color") {
|
|
547
|
-
// Background rows can
|
|
548
|
-
// its color before passing it to the color control, preserving alpha.
|
|
552
|
+
// Background rows can carry the full computed shorthand; the color control needs its color part.
|
|
549
553
|
const style = el.ownerDocument.createElement("span").style;
|
|
550
554
|
style.background = resolvedValue;
|
|
551
555
|
resolvedValue = style.backgroundColor || resolvedValue;
|
|
@@ -559,6 +563,8 @@ export function TokenField(props) {
|
|
|
559
563
|
return formatRawValueProp(value);
|
|
560
564
|
return completeCssValue(value.trim(), valuePolicyFor(property));
|
|
561
565
|
}, onCommitRaw: (value) => {
|
|
566
|
+
if (interceptRaw?.(value))
|
|
567
|
+
return;
|
|
562
568
|
if (setStyle(editTarget ?? el, property, value, effectiveMetadata))
|
|
563
569
|
onAfterEdit?.();
|
|
564
570
|
}, onCommitOpacity: (value) => {
|
|
@@ -606,6 +612,21 @@ function tokenSuggestion(entry, groups) {
|
|
|
606
612
|
};
|
|
607
613
|
}
|
|
608
614
|
const RAW_SUGGESTION_PREFIX = "\u0000raw:";
|
|
615
|
+
const DETACH_VALUE = "\u0000detach";
|
|
616
|
+
function detachItem() {
|
|
617
|
+
return {
|
|
618
|
+
value: DETACH_VALUE,
|
|
619
|
+
label: "Detach token",
|
|
620
|
+
"data-test": "detach-token-item",
|
|
621
|
+
leading: _jsx(IconLinkOff, { size: 14, stroke: 1.75, "aria-hidden": "true" }),
|
|
622
|
+
trailing: _jsx("kbd", { className: "token-shortcut", children: isMacPlatform() ? "⌫" : "Del" }),
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
function isDetachKey(event) {
|
|
626
|
+
return (event.key === "Backspace" || event.key === "Delete")
|
|
627
|
+
&& event.currentTarget.value === ""
|
|
628
|
+
&& !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
|
|
629
|
+
}
|
|
609
630
|
function rawSuggestion(value) {
|
|
610
631
|
return {
|
|
611
632
|
value: `${RAW_SUGGESTION_PREFIX}${value}`,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, useState } from "react";
|
|
3
|
-
import { isTokenChange
|
|
3
|
+
import { isTokenChange } from "../changes/types.js";
|
|
4
|
+
import { useChanges } from "../drafts/store.js";
|
|
4
5
|
import { TextInput } from "../ui/TextInput.js";
|
|
5
6
|
import { ControlSurface } from "../ui/ControlSurface.js";
|
|
6
7
|
import { Disclosure } from "../ui/Disclosure.js";
|
|
@@ -25,16 +25,7 @@ export interface TokenRuntime {
|
|
|
25
25
|
layerOrder(name: string): number | undefined;
|
|
26
26
|
}
|
|
27
27
|
export declare function isTokenContextActive(context: TokenContext, runtime: TokenRuntime): boolean;
|
|
28
|
-
/**
|
|
29
|
-
* Strips host-declared structural scoping markers from a selector so
|
|
30
|
-
* human-facing labels present only author vocabulary (ADR-0011). The marker
|
|
31
|
-
* grammar — Astro's `[data-astro-cid-<hash>]` attribute selectors or
|
|
32
|
-
* `.astro-<hash>` classes, a future Vue/Svelte equivalent — is declared by
|
|
33
|
-
* the host Adapter through the runtime configuration; the raw selector is
|
|
34
|
-
* retained in `context.selector` so resolution keeps matching the rendered
|
|
35
|
-
* DOM. A `:where(...)` wrapper left empty by the removals disappears
|
|
36
|
-
* entirely.
|
|
37
|
-
*/
|
|
28
|
+
/** Strips host-declared scoping markers for labels; `context.selector` keeps the raw selector for matching. */
|
|
38
29
|
export declare function humanizeSelector(selector: string, scopingPattern: RegExp | null): string;
|
|
39
30
|
export declare function contextLabel(context: TokenContext): string;
|
|
40
31
|
export declare function sourceParts(source: string): {
|
|
@@ -46,6 +37,7 @@ export declare function selectorForContext(context: TokenContext): string;
|
|
|
46
37
|
export declare function classifyCatalogToken(name: string, value?: string): TokenCatalogGroup;
|
|
47
38
|
export declare function buildTokenCatalogRows(catalog: TokenDefinition[], root?: HTMLElement, suppliedRuntime?: TokenRuntime): TokenCatalogRow[];
|
|
48
39
|
export declare function filterTokenRows(rows: readonly TokenCatalogRow[], query: string): TokenCatalogRow[];
|
|
40
|
+
/** An alias is a whole-string reference with no fallback; a fallback changes the value. */
|
|
49
41
|
export declare function aliasName(value: string): string | null;
|
|
50
42
|
export declare function createsAliasCycle(tokenName: string, candidateName: string, authoredValues: ReadonlyMap<string, string>): boolean;
|
|
51
43
|
export declare function compatibleTokenNames(row: TokenCatalogRow, rows: readonly TokenCatalogRow[]): Set<string>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getScopingSelectorPattern } from "../runtime/runtimeConfig.js";
|
|
2
2
|
import { getElementComputedStyle, getElementWindow } from "../runtime/domRealm.js";
|
|
3
3
|
import { selectTokens } from "../../css/value-semantics/index.js";
|
|
4
|
+
import { parseSingleVarReference } from "../../css/value-semantics/cssSyntax.js";
|
|
4
5
|
import { cascadeLayerOrder } from "./resolution/cssomCollector.js";
|
|
5
6
|
import { compareAuthorCascade } from "./resolution/cascade.js";
|
|
6
7
|
import { computeSpecificityCore } from "./resolution/selectorSemantics.js";
|
|
@@ -83,16 +84,7 @@ function pickWinningDeclaration(declarations, runtime) {
|
|
|
83
84
|
});
|
|
84
85
|
return winner;
|
|
85
86
|
}
|
|
86
|
-
/**
|
|
87
|
-
* Strips host-declared structural scoping markers from a selector so
|
|
88
|
-
* human-facing labels present only author vocabulary (ADR-0011). The marker
|
|
89
|
-
* grammar — Astro's `[data-astro-cid-<hash>]` attribute selectors or
|
|
90
|
-
* `.astro-<hash>` classes, a future Vue/Svelte equivalent — is declared by
|
|
91
|
-
* the host Adapter through the runtime configuration; the raw selector is
|
|
92
|
-
* retained in `context.selector` so resolution keeps matching the rendered
|
|
93
|
-
* DOM. A `:where(...)` wrapper left empty by the removals disappears
|
|
94
|
-
* entirely.
|
|
95
|
-
*/
|
|
87
|
+
/** Strips host-declared scoping markers for labels; `context.selector` keeps the raw selector for matching. */
|
|
96
88
|
export function humanizeSelector(selector, scopingPattern) {
|
|
97
89
|
const stripped = scopingPattern === null ? selector : selector.replace(scopingPattern, "");
|
|
98
90
|
return stripped
|
|
@@ -160,9 +152,10 @@ export function filterTokenRows(rows, query) {
|
|
|
160
152
|
|| row.definition.cssName.toLowerCase().includes(needle)
|
|
161
153
|
|| row.definition.declarations.some((declaration) => declaration.value.toLowerCase().includes(needle)));
|
|
162
154
|
}
|
|
163
|
-
|
|
155
|
+
/** An alias is a whole-string reference with no fallback; a fallback changes the value. */
|
|
164
156
|
export function aliasName(value) {
|
|
165
|
-
|
|
157
|
+
const reference = parseSingleVarReference(value);
|
|
158
|
+
return reference && reference.fallback === undefined ? reference.name : null;
|
|
166
159
|
}
|
|
167
160
|
export function createsAliasCycle(tokenName, candidateName, authoredValues) {
|
|
168
161
|
const visited = new Set([tokenName]);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { showLockedDragCursor } from "../ui/dragCursor.js";
|
|
2
|
-
/** Keeps mouse drags relative, including when the handle is inside a shadow root. */
|
|
3
2
|
export function startDragPointerLock(handle, point, onMove, onEnd) {
|
|
4
3
|
const doc = handle.ownerDocument;
|
|
5
4
|
const root = handle.getRootNode();
|
|
@@ -45,7 +44,7 @@ export function startDragPointerLock(handle, point, onMove, onEnd) {
|
|
|
45
44
|
doc.addEventListener("pointerlockchange", onLockChange);
|
|
46
45
|
doc.addEventListener("pointerlockerror", onLockError);
|
|
47
46
|
try {
|
|
48
|
-
// Older implementations return void
|
|
47
|
+
// Older implementations return void; a rejection still leaves pointer-capture dragging.
|
|
49
48
|
const request = handle.requestPointerLock();
|
|
50
49
|
if (request)
|
|
51
50
|
void request.catch(onLockError);
|
|
@@ -62,7 +61,7 @@ export function startDragPointerLock(handle, point, onMove, onEnd) {
|
|
|
62
61
|
doc.removeEventListener("mouseup", onMouseUp);
|
|
63
62
|
if (isLocked())
|
|
64
63
|
doc.exitPointerLock();
|
|
65
|
-
// A request can
|
|
64
|
+
// A pending request can acquire the lock after mouse-up; release that late lock too.
|
|
66
65
|
if (!pending)
|
|
67
66
|
removeLockListeners();
|
|
68
67
|
},
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { TokenEntry } from "../../css/model/index.js";
|
|
2
|
-
import type { ElementChangeRecord } from "../changes/
|
|
2
|
+
import type { ElementChangeRecord } from "../changes/types.js";
|
|
3
3
|
import { type EditTarget } from "../selection/editTarget.js";
|
|
4
|
-
export type { ChangeRecord } from "../changes/
|
|
5
|
-
export { getPendingRules, getChangesList as getChangeRecords, clearActiveDraft as resetPendingRules } from "../
|
|
4
|
+
export type { ChangeRecord } from "../changes/types.js";
|
|
5
|
+
export { getPendingRules, getChangesList as getChangeRecords, clearActiveDraft as resetPendingRules } from "../drafts/store.js";
|
|
6
6
|
export interface StyleEditMetadata {
|
|
7
7
|
sourceProperty?: string;
|
|
8
8
|
sourceAuthoredValue?: string;
|
|
9
9
|
}
|
|
10
|
-
/**
|
|
10
|
+
/** True only when a write can address every element in the target. */
|
|
11
11
|
export declare function canEditStyles(target: EditTarget): boolean;
|
|
12
12
|
export declare function buildSelector(cid: string, src: string): string | null;
|
|
13
13
|
export declare function swapToken(target: EditTarget, property: string, newToken: TokenEntry, oldToken: TokenEntry | null, metadata?: StyleEditMetadata): ElementChangeRecord | null;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { parseDataSrc } from "../selection/resolveSelection.js";
|
|
2
|
-
import { appendChanges
|
|
2
|
+
import { appendChanges } from "../drafts/store.js";
|
|
3
3
|
import { canPlanBatchEditScopes, planBatchEditScopes, selectorForElement, sourceSiteSelector } from "../selection/editScope.js";
|
|
4
4
|
import { getActiveStyleState, selectorForInteractionState } from "../shell/styleState.js";
|
|
5
5
|
import { getStateStyleValue } from "../shell/stateValue.js";
|
|
6
|
-
import { boundRuntimeEvidence, isRuntimeCreatedElement, isRuntimeGeneratedSource, normalizeRuntimeTag, normalizeRuntimeText, } from "../runtime/staticHtmlRuntimeIdentity.js";
|
|
6
|
+
import { boundRuntimeEvidence, isRuntimeCreatedElement, isRuntimeGeneratedSource, normalizeRuntimeTag, normalizeRuntimeText, runtimeDomPath, } from "../runtime/staticHtmlRuntimeIdentity.js";
|
|
7
7
|
import { targetElements } from "../selection/editTarget.js";
|
|
8
8
|
import { changeKey } from "../changes/model.js";
|
|
9
9
|
function boundedRenderedText(el) {
|
|
@@ -18,6 +18,8 @@ function sourceFields(el) {
|
|
|
18
18
|
text: boundedRenderedText(el),
|
|
19
19
|
props: boundRuntimeEvidence(el.getAttribute("data-cprops")),
|
|
20
20
|
ariaLabel: boundRuntimeEvidence(el.getAttribute("aria-label")),
|
|
21
|
+
domPath: runtimeDomPath(el),
|
|
22
|
+
elementId: boundRuntimeEvidence(el.id || null),
|
|
21
23
|
});
|
|
22
24
|
if (isRuntimeCreatedElement(el) || isRuntimeGeneratedSource(src)) {
|
|
23
25
|
return {
|
|
@@ -28,9 +30,7 @@ function sourceFields(el) {
|
|
|
28
30
|
};
|
|
29
31
|
}
|
|
30
32
|
if (!parsed) {
|
|
31
|
-
//
|
|
32
|
-
// example Astro dev-annotation degraded mode. Prompts must say the
|
|
33
|
-
// location is unknown instead of rendering a fabricated `file:0`.
|
|
33
|
+
// Unannotated authored markup (e.g. Astro degraded mode): prompts must report an unknown location, never a fabricated `file:0`.
|
|
34
34
|
return {
|
|
35
35
|
file: "",
|
|
36
36
|
line: 0,
|
|
@@ -45,11 +45,15 @@ function sourceFields(el) {
|
|
|
45
45
|
sourceEvidence: {
|
|
46
46
|
tagName: normalizeRuntimeTag(el.tagName),
|
|
47
47
|
props: boundRuntimeEvidence(el.getAttribute("data-cprops")),
|
|
48
|
+
text: boundedRenderedText(el),
|
|
49
|
+
ariaLabel: boundRuntimeEvidence(el.getAttribute("aria-label")),
|
|
50
|
+
domPath: runtimeDomPath(el),
|
|
51
|
+
elementId: boundRuntimeEvidence(el.id || null),
|
|
48
52
|
},
|
|
49
53
|
};
|
|
50
54
|
}
|
|
51
|
-
export { getPendingRules, getChangesList as getChangeRecords, clearActiveDraft as resetPendingRules } from "../
|
|
52
|
-
/**
|
|
55
|
+
export { getPendingRules, getChangesList as getChangeRecords, clearActiveDraft as resetPendingRules } from "../drafts/store.js";
|
|
56
|
+
/** True only when a write can address every element in the target. */
|
|
53
57
|
export function canEditStyles(target) {
|
|
54
58
|
return canPlanBatchEditScopes(targetElements(target));
|
|
55
59
|
}
|
|
@@ -6,9 +6,5 @@ export interface AuthorCascadePriority {
|
|
|
6
6
|
specificity: number;
|
|
7
7
|
sourceOrder: number;
|
|
8
8
|
}
|
|
9
|
-
/**
|
|
10
|
-
* Compares declarations from the author origin. Positive means `a` wins.
|
|
11
|
-
* Normal declarations prefer unlayered rules and later layers; important
|
|
12
|
-
* declarations reverse both relationships as required by the CSS cascade.
|
|
13
|
-
*/
|
|
9
|
+
/** Positive means `a` wins; important declarations reverse layer precedence per the CSS cascade. */
|
|
14
10
|
export declare function compareAuthorCascade(a: AuthorCascadePriority, b: AuthorCascadePriority): number;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Compares declarations from the author origin. Positive means `a` wins.
|
|
3
|
-
* Normal declarations prefer unlayered rules and later layers; important
|
|
4
|
-
* declarations reverse both relationships as required by the CSS cascade.
|
|
5
|
-
*/
|
|
1
|
+
/** Positive means `a` wins; important declarations reverse layer precedence per the CSS cascade. */
|
|
6
2
|
export function compareAuthorCascade(a, b) {
|
|
7
3
|
const aImportant = Boolean(a.important);
|
|
8
4
|
const bImportant = Boolean(b.important);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface ContainerQueryPair {
|
|
2
|
+
element: HTMLElement;
|
|
3
|
+
/** Outer-to-inner conditions, including container names. */
|
|
4
|
+
conditions: readonly string[];
|
|
5
|
+
}
|
|
6
|
+
export interface ContainerQueryEvaluator {
|
|
7
|
+
prefetch(pairs: readonly ContainerQueryPair[]): void;
|
|
8
|
+
matches(element: HTMLElement, conditions: readonly string[]): boolean;
|
|
9
|
+
}
|
|
10
|
+
/** Each pair gets its own probe property so inherited values cannot answer another element's query; nothing survives a batch. */
|
|
11
|
+
export declare function createContainerQueryEvaluator(doc: Document): ContainerQueryEvaluator;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { countInspectionWork } from "../../inspection/performanceDiagnostics.js";
|
|
2
|
+
import { adoptStylesheet, allowsStyleElements, releaseAdoptedStylesheet } from "../../runtime/ownedStylesheets.js";
|
|
3
|
+
const PROBE_SHEET_KEY = "nudge-ui-container-probe";
|
|
4
|
+
let nextProbeId = 0;
|
|
5
|
+
/** Each pair gets its own probe property so inherited values cannot answer another element's query; nothing survives a batch. */
|
|
6
|
+
export function createContainerQueryEvaluator(doc) {
|
|
7
|
+
const results = new WeakMap();
|
|
8
|
+
const key = (conditions) => JSON.stringify(conditions);
|
|
9
|
+
function prefetch(pairs) {
|
|
10
|
+
const pending = [];
|
|
11
|
+
for (const pair of pairs) {
|
|
12
|
+
if (pair.element.ownerDocument !== doc)
|
|
13
|
+
throw new TypeError("Container query target belongs to another document.");
|
|
14
|
+
if (pair.conditions.length === 0)
|
|
15
|
+
continue;
|
|
16
|
+
let values = results.get(pair.element);
|
|
17
|
+
if (!values) {
|
|
18
|
+
values = new Map();
|
|
19
|
+
results.set(pair.element, values);
|
|
20
|
+
}
|
|
21
|
+
const conditionKey = key(pair.conditions);
|
|
22
|
+
if (values.has(conditionKey))
|
|
23
|
+
continue;
|
|
24
|
+
// Reserve the pair before collecting the rest of this batch.
|
|
25
|
+
values.set(conditionKey, false);
|
|
26
|
+
const id = ++nextProbeId;
|
|
27
|
+
pending.push({ ...pair, key: conditionKey, marker: `data-container-probe-${id}`, property: `--nudge-container-probe-${id}` });
|
|
28
|
+
}
|
|
29
|
+
if (!doc.head || pending.length === 0)
|
|
30
|
+
return;
|
|
31
|
+
const cssText = pending.map(({ conditions, marker, property }) => {
|
|
32
|
+
let rule = `[${marker}] { ${property}: 1 !important; }`;
|
|
33
|
+
for (let index = conditions.length - 1; index >= 0; index--) {
|
|
34
|
+
rule = `@container ${conditions[index]} { ${rule} }`;
|
|
35
|
+
}
|
|
36
|
+
return rule;
|
|
37
|
+
}).join("\n");
|
|
38
|
+
const sheet = allowsStyleElements(doc) ? doc.createElement("style") : null;
|
|
39
|
+
countInspectionWork(doc, "probePairs", pending.length);
|
|
40
|
+
countInspectionWork(doc, "probeBatches");
|
|
41
|
+
try {
|
|
42
|
+
for (const pair of pending)
|
|
43
|
+
pair.element.setAttribute(pair.marker, "");
|
|
44
|
+
if (sheet) {
|
|
45
|
+
sheet.setAttribute("data-nudge-ui", "container-probe");
|
|
46
|
+
sheet.textContent = cssText;
|
|
47
|
+
doc.head.append(sheet);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
adoptStylesheet(doc, PROBE_SHEET_KEY, cssText);
|
|
51
|
+
}
|
|
52
|
+
const styles = new Map();
|
|
53
|
+
for (const pair of pending) {
|
|
54
|
+
let style = styles.get(pair.element);
|
|
55
|
+
if (!style) {
|
|
56
|
+
style = doc.defaultView?.getComputedStyle(pair.element);
|
|
57
|
+
if (style)
|
|
58
|
+
styles.set(pair.element, style);
|
|
59
|
+
}
|
|
60
|
+
results.get(pair.element).set(pair.key, style?.getPropertyValue(pair.property).trim() === "1");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
if (sheet)
|
|
65
|
+
sheet.remove();
|
|
66
|
+
else
|
|
67
|
+
releaseAdoptedStylesheet(doc, PROBE_SHEET_KEY);
|
|
68
|
+
for (const pair of pending)
|
|
69
|
+
pair.element.removeAttribute(pair.marker);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
prefetch,
|
|
74
|
+
matches(element, conditions) {
|
|
75
|
+
countInspectionWork(doc, "containerChecks");
|
|
76
|
+
if (conditions.length === 0)
|
|
77
|
+
return true;
|
|
78
|
+
prefetch([{ element, conditions }]);
|
|
79
|
+
return results.get(element)?.get(key(conditions)) ?? false;
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
@@ -3,32 +3,17 @@ export interface DocumentRevisions {
|
|
|
3
3
|
element: number;
|
|
4
4
|
stylesheet: number;
|
|
5
5
|
}
|
|
6
|
-
/**
|
|
7
|
-
* Subscribes to cascade revisions for one document. This is the narrow
|
|
8
|
-
* document-scoped seam used by the browser inspection Module.
|
|
9
|
-
*/
|
|
10
6
|
export declare function subscribeDocumentRevision(doc: Document, cb: (revisions: Readonly<DocumentRevisions>) => void): () => void;
|
|
11
|
-
/**
|
|
12
|
-
* Elements whose attribute changes can affect a cached cascade outcome. The
|
|
13
|
-
* observer only counts attribute mutations against registered elements so
|
|
14
|
-
* unrelated host churn (React commits, hover states, animations) cannot bump
|
|
15
|
-
* the element revision. Registration is idempotent.
|
|
16
|
-
*/
|
|
7
|
+
/** Only attribute mutations on registered elements bump the element revision; unrelated host churn is ignored. */
|
|
17
8
|
export declare function registerResolutionElement(el: Element): void;
|
|
18
9
|
export declare function registerResolutionLineage(element: HTMLElement): void;
|
|
19
|
-
/** Releases the observer, listener, and cached state owned by one document. */
|
|
20
10
|
export declare function disposeDocumentResolution(doc: Document): void;
|
|
21
11
|
export declare function retainDocumentResolution(doc: Document): () => void;
|
|
22
12
|
export declare function documentRevisions(doc: Document): DocumentRevisions;
|
|
23
|
-
/** Invalidates CSSOM-derived snapshots after programmatic stylesheet edits. */
|
|
24
13
|
export declare function invalidateStyleResolutionCache(doc?: Document): void;
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
* stylesheet element's original text. CSSOM may expose a shorthand as empty
|
|
29
|
-
* longhand entries through indexed enumeration, so prefer its serialized
|
|
30
|
-
* declaration block and use enumeration as a compatibility fallback.
|
|
31
|
-
*/
|
|
14
|
+
/** Inspector-only invalidation; page sheets are re-read only if their objects changed. */
|
|
15
|
+
export declare function invalidateOwnedStyleResolution(doc?: Document): void;
|
|
16
|
+
/** Prefers the serialized declaration block; enumeration is a fallback because a shorthand can enumerate empty longhands. */
|
|
32
17
|
export declare function declarationsFromCssom(style: CSSStyleDeclaration): StyleDeclaration[];
|
|
33
18
|
export declare function collectRules(doc: Document): {
|
|
34
19
|
revision: number;
|