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,30 +1,21 @@
|
|
|
1
1
|
import { readTailwindV4AlphaUtility, tailwindV4AlphaExpression } from "../../css/dialects/index.js";
|
|
2
2
|
import { getElementComputedStyle } from "../runtime/domRealm.js";
|
|
3
|
+
import { createContainerQueryEvaluator } from "./resolution/containerQueryEvaluator.js";
|
|
3
4
|
import { collectRules as collectCssomRules, documentRevisions as getDocumentRevisions, registerResolutionLineage, } from "./resolution/cssomCollector.js";
|
|
4
|
-
import { createRuleMatcher, matchRuleForElement } from "./resolution/ruleMatching.js";
|
|
5
|
+
import { createRuleMatcher, matchRuleForElement, prewarmRuleMatching } from "./resolution/ruleMatching.js";
|
|
5
6
|
import { compareAuthorCascade } from "./resolution/cascade.js";
|
|
6
7
|
import { interpretValue, normalizeOpacityPercent, } from "../../css/value-semantics/index.js";
|
|
7
8
|
import { createInspectorValueContext, inspectorTokenOrigin } from "./valueSemanticsAdapter.js";
|
|
8
9
|
export { getAvailableInteractionStates, resetSourceSiteMatchCache, sourceSiteMatchCacheSize } from "./resolution/ruleMatching.js";
|
|
9
|
-
export { buildTokenTable,
|
|
10
|
+
export { buildTokenTable, getAvailableTokenEntriesForElement, getAvailableTokenCatalog } from "./tokenAvailability.js";
|
|
10
11
|
export { invalidateStyleResolutionCache } from "./resolution/cssomCollector.js";
|
|
11
|
-
/**
|
|
12
|
-
* Builds (or reuses) the document's CSSOM rule snapshot ahead of a resolution
|
|
13
|
-
* sweep. Idempotent: the walk runs once per stylesheet revision and is a cache
|
|
14
|
-
* hit afterwards, so a scheduler can warm it in its own frame to keep the
|
|
15
|
-
* subsequent resolution sweep's blocking time small.
|
|
16
|
-
*/
|
|
12
|
+
/** Idempotent per stylesheet revision; warms the snapshot ahead of a sweep so its blocking time stays small. */
|
|
17
13
|
export function prewarmCssomRuleSnapshot(doc) {
|
|
18
|
-
collectCssomRules(doc);
|
|
14
|
+
prewarmRuleMatching(collectCssomRules(doc).rules);
|
|
19
15
|
}
|
|
20
16
|
const MAX_PROPERTIES = 100;
|
|
21
17
|
const EMPTY_LOCAL_ALIASES = new Map();
|
|
22
|
-
/**
|
|
23
|
-
* Returns true when a `calc()` expression is safe to treat as a simple
|
|
24
|
-
* numeric value. We exclude percentages, viewport units, and font-relative
|
|
25
|
-
* units because those depend on context the browser cannot freeze into a
|
|
26
|
-
* single pixel value safely.
|
|
27
|
-
*/
|
|
18
|
+
/** Excludes context-dependent units (%, vw, em, ...) that cannot be frozen into one safe pixel value. */
|
|
28
19
|
function canBecomeNumeric(value) {
|
|
29
20
|
const v = value.trim();
|
|
30
21
|
if (/\b(?:min|max|clamp|env|anchor-size)\s*\(/i.test(v))
|
|
@@ -55,11 +46,6 @@ function candidateMatchesPainted(el, row, painted) {
|
|
|
55
46
|
return false;
|
|
56
47
|
return normalizeInElementContext(el, row.property, row.declaredValue) === painted.trim();
|
|
57
48
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Resolves one authored value through the value-semantics Module using the
|
|
60
|
-
* inspector's integration context. Value semantics remains the sole
|
|
61
|
-
* interpretation authority.
|
|
62
|
-
*/
|
|
63
49
|
function resolveTokenValue(value, tokenTable, localAliases = EMPTY_LOCAL_ALIASES) {
|
|
64
50
|
return interpretValue("--nudge-ui-token", value, createInspectorValueContext(tokenTable, localAliases))[0];
|
|
65
51
|
}
|
|
@@ -75,13 +61,7 @@ function elementDirectionality(el) {
|
|
|
75
61
|
function isLogicalBoxProperty(property) {
|
|
76
62
|
return /^(?:margin|padding|inset)-(?:inline|block)(?:-(?:start|end))?$/i.test(property);
|
|
77
63
|
}
|
|
78
|
-
/**
|
|
79
|
-
* Coordinates cascade facts with the value-semantics Module. All property-family
|
|
80
|
-
* decomposition (logical sides, border, font, radius corners, physical spacing)
|
|
81
|
-
* lives in `interpretValue`; this function only supplies the token
|
|
82
|
-
* context and directionality facts, then projects the Module's fields onto the
|
|
83
|
-
* `ResolvedDeclaration` shape.
|
|
84
|
-
*/
|
|
64
|
+
/** Decomposition lives in `interpretValue`; this supplies the token context and projects its fields. */
|
|
85
65
|
function resolveDeclaration(declaration, tokenTable, localAliases = EMPTY_LOCAL_ALIASES, directionality) {
|
|
86
66
|
const fields = interpretValue(declaration.property, declaration.value, createInspectorValueContext(tokenTable, localAliases, directionality));
|
|
87
67
|
return fields.map((field) => ({
|
|
@@ -126,51 +106,15 @@ function hydratePropertyOpacityRows(rows, computed) {
|
|
|
126
106
|
function capabilityFor(property, value, tokenTable) {
|
|
127
107
|
return interpretValue(property, value, createInspectorValueContext(tokenTable))[0].capability;
|
|
128
108
|
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Container conditions are element-relative. CSSOM exposes their text but has
|
|
132
|
-
* no `matches` API, so ask the browser by applying an inert custom property to
|
|
133
|
-
* the selected element inside an equivalent temporary @container wrapper.
|
|
134
|
-
*/
|
|
135
|
-
function matchesContainerQuery(el, params) {
|
|
136
|
-
const doc = el.ownerDocument;
|
|
137
|
-
if (!doc.head || !params)
|
|
138
|
-
return false;
|
|
139
|
-
const id = ++containerProbeSequence;
|
|
140
|
-
const marker = `data-container-probe-${id}`;
|
|
141
|
-
const property = `--container-probe-${id}`;
|
|
142
|
-
const style = doc.createElement("style");
|
|
143
|
-
style.setAttribute("data-nudge-ui", "container-probe");
|
|
144
|
-
style.textContent = `@container ${params} { [${marker}] { ${property}: 1; } }`;
|
|
145
|
-
el.setAttribute(marker, "");
|
|
146
|
-
doc.head.appendChild(style);
|
|
147
|
-
try {
|
|
148
|
-
return getElementComputedStyle(el).getPropertyValue(property).trim() === "1";
|
|
149
|
-
}
|
|
150
|
-
catch {
|
|
151
|
-
return false;
|
|
152
|
-
}
|
|
153
|
-
finally {
|
|
154
|
-
style.remove();
|
|
155
|
-
el.removeAttribute(marker);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
function atRulesApplyToElement(el, atRules) {
|
|
109
|
+
function atRulesApplyToElement(el, atRules, evaluator) {
|
|
159
110
|
const view = el.ownerDocument.defaultView;
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
return view?.CSS?.supports(atRule.params) ?? false;
|
|
165
|
-
return true;
|
|
166
|
-
});
|
|
111
|
+
if ((atRules ?? []).some((rule) => rule.kind === "supports" && !view?.CSS?.supports(rule.params)))
|
|
112
|
+
return false;
|
|
113
|
+
const conditions = (atRules ?? []).filter((rule) => rule.kind === "container").map((rule) => rule.params);
|
|
114
|
+
return conditions.length === 0 || evaluator.matches(el, conditions);
|
|
167
115
|
}
|
|
168
|
-
function collectLocalAliases(el, rules
|
|
169
|
-
// Custom properties inherit independently
|
|
170
|
-
// Resolve the winning declaration separately for each element in the
|
|
171
|
-
// ancestor chain, then let the nearest declaration override inherited ones.
|
|
172
|
-
// This covers local aliases such as --color-error and inherited page tokens
|
|
173
|
-
// such as --color-ink without widening the build-time global catalog.
|
|
116
|
+
function collectLocalAliases(el, rules) {
|
|
117
|
+
// Custom properties inherit independently, so each ancestor resolves its own winner and the nearest declaration wins.
|
|
174
118
|
const lineage = [];
|
|
175
119
|
let current = el;
|
|
176
120
|
while (current) {
|
|
@@ -179,15 +123,18 @@ function collectLocalAliases(el, rules, ruleApplies) {
|
|
|
179
123
|
}
|
|
180
124
|
const aliases = new Map();
|
|
181
125
|
for (const element of lineage.reverse()) {
|
|
126
|
+
const ruleApplies = makeRuleApplies(element);
|
|
182
127
|
const candidates = new Map();
|
|
183
128
|
rules.forEach((rule, index) => {
|
|
184
129
|
if (rule.active === false)
|
|
185
130
|
return;
|
|
186
|
-
if (!ruleApplies(rule))
|
|
187
|
-
return;
|
|
188
131
|
const match = matchRuleForElement(element, { rule, selectorText: rule.selectorText });
|
|
189
132
|
if (!match)
|
|
190
133
|
return;
|
|
134
|
+
if (!rule.declarations.some((declaration) => declaration.property.startsWith("--")))
|
|
135
|
+
return;
|
|
136
|
+
if (!ruleApplies(rule))
|
|
137
|
+
return;
|
|
191
138
|
const sourceOrder = rule.sourceOrder ?? index;
|
|
192
139
|
const { specificity } = match;
|
|
193
140
|
for (const declaration of rule.declarations) {
|
|
@@ -207,9 +154,7 @@ function collectLocalAliases(el, rules, ruleApplies) {
|
|
|
207
154
|
}
|
|
208
155
|
}
|
|
209
156
|
});
|
|
210
|
-
// Inline custom properties are
|
|
211
|
-
// explicit cascade winners for their element, so include them at inline
|
|
212
|
-
// specificity without changing the managed-style rule contract.
|
|
157
|
+
// Inline custom properties are inherited too; at inline specificity they are explicit cascade winners.
|
|
213
158
|
for (const property of Array.from(element.style)) {
|
|
214
159
|
if (!property.startsWith("--"))
|
|
215
160
|
continue;
|
|
@@ -230,7 +175,7 @@ function collectLocalAliases(el, rules, ruleApplies) {
|
|
|
230
175
|
}
|
|
231
176
|
return aliases;
|
|
232
177
|
}
|
|
233
|
-
function makeRuleApplies(el) {
|
|
178
|
+
function makeRuleApplies(el, evaluator = createContainerQueryEvaluator(el.ownerDocument)) {
|
|
234
179
|
const matchingContexts = new Map();
|
|
235
180
|
return (rule) => {
|
|
236
181
|
const atRules = rule.atRules;
|
|
@@ -240,99 +185,95 @@ function makeRuleApplies(el) {
|
|
|
240
185
|
const cached = matchingContexts.get(key);
|
|
241
186
|
if (cached !== undefined)
|
|
242
187
|
return cached;
|
|
243
|
-
const result = atRulesApplyToElement(el, atRules);
|
|
188
|
+
const result = atRulesApplyToElement(el, atRules, evaluator);
|
|
244
189
|
matchingContexts.set(key, result);
|
|
245
190
|
return result;
|
|
246
191
|
};
|
|
247
192
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
193
|
+
function relevantAncestorRule(rule) {
|
|
194
|
+
return rule.declarations.some(({ property }) => property.startsWith("--") || INHERITED_PROPERTIES.has(property));
|
|
195
|
+
}
|
|
196
|
+
function lineageElements(el) {
|
|
197
|
+
const elements = [];
|
|
198
|
+
for (let current = el; current; current = current.parentElement)
|
|
199
|
+
elements.unshift(current);
|
|
200
|
+
return elements;
|
|
201
|
+
}
|
|
202
|
+
function queryPairs(el, matcher) {
|
|
203
|
+
const pairs = [];
|
|
204
|
+
for (const element of lineageElements(el)) {
|
|
205
|
+
for (const { rule } of matcher.matchesForElement(element).matched) {
|
|
206
|
+
if (element !== el && !relevantAncestorRule(rule))
|
|
207
|
+
continue;
|
|
208
|
+
if (rule.declarations.length === 0)
|
|
209
|
+
continue;
|
|
210
|
+
if (rule.atRules?.some((context) => context.kind === "supports" && !element.ownerDocument.defaultView?.CSS?.supports(context.params)))
|
|
211
|
+
continue;
|
|
212
|
+
const conditions = (rule.atRules ?? []).filter((context) => context.kind === "container").map((context) => context.params);
|
|
213
|
+
if (conditions.length > 0)
|
|
214
|
+
pairs.push({ element, conditions });
|
|
215
|
+
}
|
|
260
216
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
217
|
+
return pairs;
|
|
218
|
+
}
|
|
219
|
+
/** Prepares both cascades together so a selection refresh inserts one probe sheet. */
|
|
220
|
+
export function prefetchContainerQueries(elements, state, evaluator) {
|
|
221
|
+
const pairs = [];
|
|
222
|
+
for (const element of elements) {
|
|
223
|
+
const { rules } = collectCssomRules(element.ownerDocument);
|
|
224
|
+
pairs.push(...queryPairs(element, createRuleMatcher(rules, state)));
|
|
225
|
+
if (state === "base")
|
|
226
|
+
pairs.push(...queryPairs(element, createRuleMatcher(rules, "stable")));
|
|
268
227
|
}
|
|
228
|
+
evaluator.prefetch(pairs);
|
|
229
|
+
}
|
|
230
|
+
function resolveLineage(el, matcher, evaluator) {
|
|
231
|
+
const lineage = lineageElements(el);
|
|
232
|
+
evaluator.prefetch(queryPairs(el, matcher));
|
|
269
233
|
const byElement = new Map();
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
const ruleApplies = makeRuleApplies(element);
|
|
273
|
-
const
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
for (const declaration of match.rule.declarations) {
|
|
281
|
-
if (!declaration.property.startsWith("--"))
|
|
282
|
-
continue;
|
|
283
|
-
const candidate = {
|
|
284
|
-
value: declaration.value.trim(),
|
|
285
|
-
important: declaration.important,
|
|
286
|
-
layer: match.rule.layer,
|
|
287
|
-
layerOrder: match.rule.layerOrder,
|
|
288
|
-
specificity: match.specificity,
|
|
289
|
-
sourceOrder,
|
|
290
|
-
};
|
|
291
|
-
const previous = candidates.get(declaration.property);
|
|
292
|
-
if (!previous || compareAuthorCascade(candidate, previous) >= 0) {
|
|
293
|
-
candidates.set(declaration.property, candidate);
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
for (const property of Array.from(lineageElement.style)) {
|
|
298
|
-
if (!property.startsWith("--"))
|
|
234
|
+
const inheritedAliases = new Map();
|
|
235
|
+
for (const element of lineage) {
|
|
236
|
+
const ruleApplies = makeRuleApplies(element, evaluator);
|
|
237
|
+
const { matched: selectorMatches, allMatched } = matcher.matchesForElement(element);
|
|
238
|
+
const matched = selectorMatches.filter(({ rule }) => (element === el || relevantAncestorRule(rule)) && rule.declarations.length > 0 && ruleApplies(rule));
|
|
239
|
+
const candidates = new Map();
|
|
240
|
+
for (const match of matched) {
|
|
241
|
+
// Conditions are evaluated against the declaration's own element; descendants inherit the alias, not the condition.
|
|
242
|
+
for (const declaration of match.rule.declarations) {
|
|
243
|
+
if (!declaration.property.startsWith("--"))
|
|
299
244
|
continue;
|
|
300
245
|
const candidate = {
|
|
301
|
-
value:
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
specificity: 100000000,
|
|
305
|
-
sourceOrder: Number.MAX_SAFE_INTEGER,
|
|
246
|
+
value: declaration.value.trim(), important: declaration.important,
|
|
247
|
+
layer: match.rule.layer, layerOrder: match.rule.layerOrder,
|
|
248
|
+
specificity: match.specificity, sourceOrder: match.rule.sourceOrder ?? 0,
|
|
306
249
|
};
|
|
307
|
-
const previous = candidates.get(property);
|
|
308
|
-
if (!previous || compareAuthorCascade(candidate, previous) >= 0)
|
|
309
|
-
candidates.set(property, candidate);
|
|
310
|
-
}
|
|
250
|
+
const previous = candidates.get(declaration.property);
|
|
251
|
+
if (!previous || compareAuthorCascade(candidate, previous) >= 0)
|
|
252
|
+
candidates.set(declaration.property, candidate);
|
|
311
253
|
}
|
|
312
|
-
for (const [name, candidate] of candidates)
|
|
313
|
-
aliases.set(name, candidate.value);
|
|
314
254
|
}
|
|
315
|
-
const
|
|
316
|
-
|
|
317
|
-
if (!ruleApplies(match.rule))
|
|
255
|
+
for (const property of Array.from(element.style)) {
|
|
256
|
+
if (!property.startsWith("--"))
|
|
318
257
|
continue;
|
|
319
|
-
|
|
258
|
+
const candidate = {
|
|
259
|
+
value: element.style.getPropertyValue(property).trim(),
|
|
260
|
+
important: element.style.getPropertyPriority(property) === "important", inline: true,
|
|
261
|
+
specificity: 100000000, sourceOrder: Number.MAX_SAFE_INTEGER,
|
|
262
|
+
};
|
|
263
|
+
const previous = candidates.get(property);
|
|
264
|
+
if (!previous || compareAuthorCascade(candidate, previous) >= 0)
|
|
265
|
+
candidates.set(property, candidate);
|
|
320
266
|
}
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
allMatched: allSelectorMatches.get(element) ?? matched,
|
|
325
|
-
aliases,
|
|
326
|
-
});
|
|
267
|
+
for (const [name, candidate] of candidates)
|
|
268
|
+
inheritedAliases.set(name, candidate.value);
|
|
269
|
+
byElement.set(element, { element, matched, allMatched, aliases: new Map(inheritedAliases) });
|
|
327
270
|
}
|
|
328
271
|
return { lineage, byElement };
|
|
329
272
|
}
|
|
330
273
|
function rowsFromMatches(el, matched, aliases, tokenTable, allMatched = matched) {
|
|
331
274
|
const map = new Map();
|
|
332
275
|
const mediaCandidatesByProperty = new Map();
|
|
333
|
-
//
|
|
334
|
-
// Map.set() naturally overwrites: higher specificity rules processed later win,
|
|
335
|
-
// and equal-specificity rules get "last in stylesheet order wins" (stable sort).
|
|
276
|
+
// Ascending source order with Map.set overwrite gives later-wins for equal specificity; relies on a stable sort.
|
|
336
277
|
const sorted = [...matched].sort((a, b) => (a.rule.sourceOrder ?? 0) - (b.rule.sourceOrder ?? 0));
|
|
337
278
|
const needsDirectionality = sorted.some(({ rule }) => rule.declarations.some(({ property }) => isLogicalBoxProperty(property)));
|
|
338
279
|
const directionality = needsDirectionality ? elementDirectionality(el) : undefined;
|
|
@@ -432,12 +373,7 @@ function rowsFromMatches(el, matched, aliases, tokenTable, allMatched = matched)
|
|
|
432
373
|
}
|
|
433
374
|
return rows;
|
|
434
375
|
}
|
|
435
|
-
/**
|
|
436
|
-
* Package-private cascade fixture seam. This exercises selector, layer,
|
|
437
|
-
* importance, and interaction-state coordination while still crossing the
|
|
438
|
-
* public value-semantics Interface through `resolveDeclaration`.
|
|
439
|
-
* It is intentionally absent from the package exports.
|
|
440
|
-
*/
|
|
376
|
+
/** Test-only cascade fixture seam, intentionally absent from the package exports. */
|
|
441
377
|
export function resolveRuleFixture(el, rules, tokenTable) {
|
|
442
378
|
const ruleApplies = makeRuleApplies(el);
|
|
443
379
|
const matched = [];
|
|
@@ -453,7 +389,7 @@ export function resolveRuleFixture(el, rules, tokenTable) {
|
|
|
453
389
|
continue;
|
|
454
390
|
matched.push(match);
|
|
455
391
|
}
|
|
456
|
-
const localAliases = collectLocalAliases(el, rules
|
|
392
|
+
const localAliases = collectLocalAliases(el, rules);
|
|
457
393
|
return rowsFromMatches(el, matched, localAliases, tokenTable, allMatched);
|
|
458
394
|
}
|
|
459
395
|
function compareCandidate(a, b) {
|
|
@@ -553,8 +489,7 @@ function annotatePaintedValues(el, result, computed, inaccessible, mode) {
|
|
|
553
489
|
for (const prop of result) {
|
|
554
490
|
const cv = computed.getPropertyValue(prop.property);
|
|
555
491
|
if (cv && !/\b(?:var|calc)\s*\(/.test(cv)) {
|
|
556
|
-
//
|
|
557
|
-
// records what the browser is painting. Live and base use painted values.
|
|
492
|
+
// Hypothetical states keep the authored value; live/base take the painted value.
|
|
558
493
|
if (mode === "live" || mode === "base" || !prop.resolvedValue)
|
|
559
494
|
prop.resolvedValue = cv;
|
|
560
495
|
prop.computed = cv;
|
|
@@ -569,15 +504,14 @@ function annotatePaintedValues(el, result, computed, inaccessible, mode) {
|
|
|
569
504
|
}
|
|
570
505
|
}
|
|
571
506
|
}
|
|
572
|
-
export function getResolvedProperties(el, tokenTable) {
|
|
507
|
+
export function getResolvedProperties(el, tokenTable, evaluator = createContainerQueryEvaluator(el.ownerDocument)) {
|
|
573
508
|
const doc = el.ownerDocument ?? document;
|
|
574
509
|
const { rules, inaccessible } = collectCssomRules(doc);
|
|
575
|
-
const lineage = resolveLineage(el, createRuleMatcher(rules, "live"));
|
|
510
|
+
const lineage = resolveLineage(el, createRuleMatcher(rules, "live"), evaluator);
|
|
576
511
|
return resolveMatchedProperties(el, tokenTable, lineage, inaccessible, "live");
|
|
577
512
|
}
|
|
578
513
|
function applyInlineDeclarations(el, result, tokenTable, computed, inaccessible) {
|
|
579
|
-
// Inline declarations
|
|
580
|
-
// but token attribution is only exact when the authored inline value uses a known token.
|
|
514
|
+
// Inline declarations are explicit evidence, but attribution is exact only for a known token.
|
|
581
515
|
const inlineProperties = Array.from(el.style);
|
|
582
516
|
const directionality = inlineProperties.some(isLogicalBoxProperty)
|
|
583
517
|
? directionalityFromComputed(el, computed)
|
|
@@ -624,10 +558,7 @@ function applyInlineDeclarations(el, result, tokenTable, computed, inaccessible)
|
|
|
624
558
|
}
|
|
625
559
|
}
|
|
626
560
|
function promoteNumericCalcRows(result, tokenTable) {
|
|
627
|
-
//
|
|
628
|
-
// already resolved it to a pixel value. Reclassify the row so the UI
|
|
629
|
-
// shows the pixel value instead of the raw calc() string and allows
|
|
630
|
-
// numeric editing (nudge / token swap).
|
|
561
|
+
// A static-token calc() is already resolved to a pixel value; reclassify so the UI allows numeric editing.
|
|
631
562
|
for (const prop of result) {
|
|
632
563
|
if (prop.capability !== "raw" || prop.diagnostic)
|
|
633
564
|
continue;
|
|
@@ -640,13 +571,8 @@ function promoteNumericCalcRows(result, tokenTable) {
|
|
|
640
571
|
prop.capability = capabilityFor(prop.property, numeric, tokenTable);
|
|
641
572
|
}
|
|
642
573
|
}
|
|
643
|
-
/**
|
|
644
|
-
|
|
645
|
-
* on the pointer's current location. This is intentionally attribution-first:
|
|
646
|
-
* values with no authored declaration still fall back to the browser's live
|
|
647
|
-
* computed value in the field layer.
|
|
648
|
-
*/
|
|
649
|
-
export function getResolvedPropertiesForState(el, tokenTable, state) {
|
|
574
|
+
/** Authored cascade for a chosen interaction state, independent of the pointer's live paint. */
|
|
575
|
+
export function getResolvedPropertiesForState(el, tokenTable, state, evaluator = createContainerQueryEvaluator(el.ownerDocument)) {
|
|
650
576
|
const doc = el.ownerDocument ?? document;
|
|
651
577
|
const revisions = getDocumentRevisions(doc);
|
|
652
578
|
const { rules, inaccessible } = collectCssomRules(doc);
|
|
@@ -659,13 +585,14 @@ export function getResolvedPropertiesForState(el, tokenTable, state) {
|
|
|
659
585
|
}
|
|
660
586
|
const cached = snapshots.get(state);
|
|
661
587
|
if (cached
|
|
588
|
+
&& queryPairs(el, matcher).length === 0
|
|
662
589
|
&& cached.elementRevision === revisions.element
|
|
663
590
|
&& cached.stylesheetRevision === revisions.stylesheet
|
|
664
591
|
&& cached.tokenTable === tokenTable
|
|
665
592
|
&& cached.dynamicMatchKey === dynamicMatchKey) {
|
|
666
593
|
return cached.rows;
|
|
667
594
|
}
|
|
668
|
-
const lineage = resolveLineage(el, matcher);
|
|
595
|
+
const lineage = resolveLineage(el, matcher, evaluator);
|
|
669
596
|
const rows = resolveMatchedProperties(el, tokenTable, lineage, inaccessible, state);
|
|
670
597
|
registerResolutionLineage(el);
|
|
671
598
|
snapshots.set(state, {
|
|
@@ -678,12 +605,8 @@ export function getResolvedPropertiesForState(el, tokenTable, state) {
|
|
|
678
605
|
return rows;
|
|
679
606
|
}
|
|
680
607
|
const stableTokenCache = new WeakMap();
|
|
681
|
-
/**
|
|
682
|
-
|
|
683
|
-
* an editor must stay linked to the stable token beneath a live :hover/:focus
|
|
684
|
-
* paint. Memoized per (element, revisions, tokenTable).
|
|
685
|
-
*/
|
|
686
|
-
export function getResolvedPropertiesStable(el, tokenTable) {
|
|
608
|
+
/** Cascade with transient interaction selectors removed, so an editor stays linked to the token beneath a live :hover/:focus paint. */
|
|
609
|
+
export function getResolvedPropertiesStable(el, tokenTable, evaluator = createContainerQueryEvaluator(el.ownerDocument)) {
|
|
687
610
|
const doc = el.ownerDocument ?? document;
|
|
688
611
|
const revisions = getDocumentRevisions(doc);
|
|
689
612
|
const { rules, inaccessible } = collectCssomRules(doc);
|
|
@@ -691,13 +614,14 @@ export function getResolvedPropertiesStable(el, tokenTable) {
|
|
|
691
614
|
const dynamicMatchKey = matcher.dynamicMatchKey(el);
|
|
692
615
|
const cached = stableTokenCache.get(el);
|
|
693
616
|
if (cached
|
|
617
|
+
&& queryPairs(el, matcher).length === 0
|
|
694
618
|
&& cached.elementRevision === revisions.element
|
|
695
619
|
&& cached.stylesheetRevision === revisions.stylesheet
|
|
696
620
|
&& cached.tokenTable === tokenTable
|
|
697
621
|
&& cached.dynamicMatchKey === dynamicMatchKey) {
|
|
698
622
|
return cached.rows;
|
|
699
623
|
}
|
|
700
|
-
const lineage = resolveLineage(el, matcher);
|
|
624
|
+
const lineage = resolveLineage(el, matcher, evaluator);
|
|
701
625
|
const rows = resolveMatchedProperties(el, tokenTable, lineage, inaccessible, "stable");
|
|
702
626
|
stableTokenCache.set(el, {
|
|
703
627
|
elementRevision: revisions.element,
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
import type { TokenDefinition, TokenEntry, TokenTable } from "../../css/model/index.js";
|
|
2
2
|
export declare function buildTokenTable(entries: readonly TokenEntry[]): TokenTable;
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* The build-time catalog is intentionally an inventory of every project token.
|
|
6
|
-
* Element edits must instead use only custom properties resolved in that
|
|
7
|
-
* element's cascade; a token defined by a lazy stylesheet is not usable until
|
|
8
|
-
* that stylesheet is attached to the document. Entries are cached per element
|
|
9
|
-
* until the element or stylesheet revision changes; the derived table reuses
|
|
10
|
-
* `buildTokenTable`'s input-identity memo.
|
|
11
|
-
*/
|
|
3
|
+
/** Element edits may use only custom properties resolved in this element's cascade; cached until the element or stylesheet revision changes. */
|
|
12
4
|
export declare function getAvailableTokenEntriesForElement(el: HTMLElement, definitions?: readonly TokenDefinition[]): TokenEntry[];
|
|
13
|
-
/**
|
|
14
|
-
* Produces the page catalog used by the global Tokens settings section. When
|
|
15
|
-
* the document exposes mappable source identities, declarations from unloaded
|
|
16
|
-
* CSS files are removed. Opaque compiled URLs leave the adapter catalog intact.
|
|
17
|
-
*/
|
|
5
|
+
/** Page catalog for the global Tokens section; declarations from unloaded CSS files are dropped when source identities are mappable. */
|
|
18
6
|
export declare function getAvailableTokenCatalog(root?: HTMLElement, definitions?: readonly TokenDefinition[]): TokenDefinition[];
|
|
@@ -17,16 +17,6 @@ export function buildTokenTable(entries) {
|
|
|
17
17
|
tokenTableMemo.set(entries, table);
|
|
18
18
|
return table;
|
|
19
19
|
}
|
|
20
|
-
let tableCache = null;
|
|
21
|
-
let tableSource = null;
|
|
22
|
-
export function getTokenTable() {
|
|
23
|
-
const { tokens } = getNudgeUiRuntimeConfig();
|
|
24
|
-
if (tableCache !== null && tableSource === tokens)
|
|
25
|
-
return tableCache;
|
|
26
|
-
tableCache = buildTokenTable(tokens);
|
|
27
|
-
tableSource = tokens;
|
|
28
|
-
return tableCache;
|
|
29
|
-
}
|
|
30
20
|
function isCustomPropertyToken(definition) {
|
|
31
21
|
return definition.cssName.startsWith("--");
|
|
32
22
|
}
|
|
@@ -43,14 +33,7 @@ function entryFromDefinition(definition, value) {
|
|
|
43
33
|
};
|
|
44
34
|
}
|
|
45
35
|
const tokenEntriesCache = new WeakMap();
|
|
46
|
-
/**
|
|
47
|
-
* The build-time catalog is intentionally an inventory of every project token.
|
|
48
|
-
* Element edits must instead use only custom properties resolved in that
|
|
49
|
-
* element's cascade; a token defined by a lazy stylesheet is not usable until
|
|
50
|
-
* that stylesheet is attached to the document. Entries are cached per element
|
|
51
|
-
* until the element or stylesheet revision changes; the derived table reuses
|
|
52
|
-
* `buildTokenTable`'s input-identity memo.
|
|
53
|
-
*/
|
|
36
|
+
/** Element edits may use only custom properties resolved in this element's cascade; cached until the element or stylesheet revision changes. */
|
|
54
37
|
export function getAvailableTokenEntriesForElement(el, definitions = getNudgeUiRuntimeConfig().tokenCatalog) {
|
|
55
38
|
const revisions = getDocumentRevisions(el.ownerDocument ?? document);
|
|
56
39
|
const cached = tokenEntriesCache.get(el);
|
|
@@ -63,8 +46,7 @@ export function getAvailableTokenEntriesForElement(el, definitions = getNudgeUiR
|
|
|
63
46
|
const computed = getElementComputedStyle(el);
|
|
64
47
|
const available = definitions.flatMap((definition) => {
|
|
65
48
|
if (!isCustomPropertyToken(definition)) {
|
|
66
|
-
// Literal adapters (
|
|
67
|
-
// custom property to probe. Their adapter owns their availability.
|
|
49
|
+
// Literal adapters (e.g. Tailwind v3) have no custom property to probe; the adapter owns their availability.
|
|
68
50
|
return [entryFromDefinition(definition, definition.declarations[0]?.value ?? "")];
|
|
69
51
|
}
|
|
70
52
|
const value = computed.getPropertyValue(definition.cssName).trim();
|
|
@@ -83,10 +65,7 @@ export function getAvailableTokenEntriesForElement(el, definitions = getNudgeUiR
|
|
|
83
65
|
});
|
|
84
66
|
return entries;
|
|
85
67
|
}
|
|
86
|
-
/**
|
|
87
|
-
* Replaces build-time token declaration hints with declarations serialized by
|
|
88
|
-
* the browser from the stylesheets currently attached to this document.
|
|
89
|
-
*/
|
|
68
|
+
/** Replaces build-time declaration hints with declarations serialized from the attached stylesheets. */
|
|
90
69
|
function hydrateTokenCatalogFromCssom(definitions, doc = document) {
|
|
91
70
|
const needsHydration = (definition) => definition.declarations.length === 0
|
|
92
71
|
|| (definition.adapter === "vanilla-extract" && definition.declarations.every((declaration) => declaration.value.trim() === `var(${definition.cssName})`
|
|
@@ -160,13 +139,7 @@ function isLoadedCssSource(source, loadedSources) {
|
|
|
160
139
|
|| loaded.endsWith(`/${normalizedFile}`)
|
|
161
140
|
|| normalizedFile.endsWith(`/${loaded}`));
|
|
162
141
|
}
|
|
163
|
-
/**
|
|
164
|
-
* Returns stylesheet identities only when the browser gave us a complete,
|
|
165
|
-
* authored-source mapping. A compiled host can expose a mixture of source-like
|
|
166
|
-
* and opaque CSS URLs; treating the mapped subset as complete would make
|
|
167
|
-
* declarations behind the opaque URLs look lazy even while their variables are
|
|
168
|
-
* live in the document.
|
|
169
|
-
*/
|
|
142
|
+
/** Identities only for a complete authored-source mapping; a mapped subset cannot stand in for opaque compiled URLs. */
|
|
170
143
|
function confidentlyLoadedStylesheetSources(definitions, loadedSources) {
|
|
171
144
|
const cssSources = definitions.flatMap((definition) => definition.declarations
|
|
172
145
|
.map((declaration) => declaration.source)
|
|
@@ -178,17 +151,12 @@ function confidentlyLoadedStylesheetSources(definitions, loadedSources) {
|
|
|
178
151
|
known.add(loaded.path);
|
|
179
152
|
continue;
|
|
180
153
|
}
|
|
181
|
-
// One opaque compiled URL can contain any authored declaration, so
|
|
182
|
-
// document does not provide enough evidence to remove unloaded sources.
|
|
154
|
+
// One opaque compiled URL can contain any authored declaration, so unloaded sources cannot be ruled out.
|
|
183
155
|
return [];
|
|
184
156
|
}
|
|
185
157
|
return [...known];
|
|
186
158
|
}
|
|
187
|
-
/**
|
|
188
|
-
* Produces the page catalog used by the global Tokens settings section. When
|
|
189
|
-
* the document exposes mappable source identities, declarations from unloaded
|
|
190
|
-
* CSS files are removed. Opaque compiled URLs leave the adapter catalog intact.
|
|
191
|
-
*/
|
|
159
|
+
/** Page catalog for the global Tokens section; declarations from unloaded CSS files are dropped when source identities are mappable. */
|
|
192
160
|
export function getAvailableTokenCatalog(root = document.documentElement, definitions = getNudgeUiRuntimeConfig().tokenCatalog) {
|
|
193
161
|
const computed = getElementComputedStyle(root);
|
|
194
162
|
const hydrated = hydrateTokenCatalogFromCssom(definitions, root.ownerDocument ?? document);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { TokenChangeRecord } from "../changes/
|
|
1
|
+
import type { TokenChangeRecord } from "../changes/types.js";
|
|
2
2
|
import type { TokenCatalogRow } from "./catalog.js";
|
|
3
3
|
export declare function setGlobalTokenValue(row: TokenCatalogRow, value: string): TokenChangeRecord | null;
|
|
@@ -2,5 +2,4 @@ import type { TokenEntry } from "../../css/model/index.js";
|
|
|
2
2
|
import type { TokenOrigin, TokenTable } from "../../css/model/index.js";
|
|
3
3
|
import type { Directionality, ValueSemanticsContext } from "../../css/value-semantics/index.js";
|
|
4
4
|
export declare function inspectorTokenOrigin(entry: TokenEntry | undefined): TokenOrigin;
|
|
5
|
-
/** Inspector Adapter for framework-specific token attribution facts. */
|
|
6
5
|
export declare function createInspectorValueContext(tokenTable: TokenTable, localAliases?: ReadonlyMap<string, string>, directionality?: Directionality): ValueSemanticsContext;
|
|
@@ -21,11 +21,28 @@ function colorTuple(value) {
|
|
|
21
21
|
const rgb = /^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)/.exec(trimmed);
|
|
22
22
|
return rgb ? [rgb[1], rgb[2], rgb[3]].map((part) => String(Math.round(Number(part)))).join(",") : null;
|
|
23
23
|
}
|
|
24
|
+
const frameworkColorIndexes = new WeakMap();
|
|
25
|
+
/** First Tailwind v3 token per color tuple. */
|
|
26
|
+
function frameworkColorIndex(tokenTable) {
|
|
27
|
+
let index = frameworkColorIndexes.get(tokenTable);
|
|
28
|
+
if (index)
|
|
29
|
+
return index;
|
|
30
|
+
index = new Map();
|
|
31
|
+
for (const entry of Object.values(tokenTable)) {
|
|
32
|
+
if (entry.adapter !== "tailwind-v3")
|
|
33
|
+
continue;
|
|
34
|
+
const tuple = colorTuple(entry.value);
|
|
35
|
+
if (tuple && !index.has(tuple))
|
|
36
|
+
index.set(tuple, entry);
|
|
37
|
+
}
|
|
38
|
+
frameworkColorIndexes.set(tokenTable, index);
|
|
39
|
+
return index;
|
|
40
|
+
}
|
|
24
41
|
function directFrameworkColor(value, tokenTable) {
|
|
25
42
|
const tuple = colorTuple(value);
|
|
26
43
|
if (!tuple)
|
|
27
44
|
return undefined;
|
|
28
|
-
return
|
|
45
|
+
return frameworkColorIndex(tokenTable).get(tuple);
|
|
29
46
|
}
|
|
30
47
|
function twLocalAliasPolicy(ref, inner) {
|
|
31
48
|
if (!ref.startsWith("--tw-")) {
|
|
@@ -53,7 +70,6 @@ function twLocalAliasPolicy(ref, inner) {
|
|
|
53
70
|
cycle: inner.cycle,
|
|
54
71
|
};
|
|
55
72
|
}
|
|
56
|
-
/** Inspector Adapter for framework-specific token attribution facts. */
|
|
57
73
|
export function createInspectorValueContext(tokenTable, localAliases = EMPTY_LOCAL_ALIASES, directionality) {
|
|
58
74
|
return {
|
|
59
75
|
tokenContext: {
|
|
@@ -4,15 +4,15 @@ export interface AtRuleContextProviderProps {
|
|
|
4
4
|
rows: readonly ResolvedProperty[];
|
|
5
5
|
children?: ReactNode;
|
|
6
6
|
}
|
|
7
|
-
/**
|
|
8
|
-
* Makes the active conditional source context available to fields that only
|
|
9
|
-
* receive a property name (not their resolved property row) as props.
|
|
10
|
-
*/
|
|
7
|
+
/** Fields that only receive a property name read their conditional context here. */
|
|
11
8
|
export declare function AtRuleContextProvider({ rows, children }: AtRuleContextProviderProps): ReactElement;
|
|
12
9
|
export declare function useFieldAtRules(property: string): readonly AtRuleCandidate[];
|
|
13
10
|
export interface AtRuleIndicatorProps {
|
|
14
11
|
atRules?: readonly (AtRuleContext | AtRuleCandidate)[];
|
|
15
12
|
className?: string;
|
|
16
13
|
}
|
|
17
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* A ruler along the field's left edge: one segment per conditional rule plus the base, with the
|
|
16
|
+
* declaration currently winning the cascade highlighted. Hovering it lists the rules.
|
|
17
|
+
*/
|
|
18
18
|
export declare function AtRuleIndicator({ atRules, className }: AtRuleIndicatorProps): ReactElement | null;
|