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,19 +1,19 @@
|
|
|
1
|
+
export interface VarReference {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly fallback?: string;
|
|
4
|
+
}
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* not public Interface: they split structure, they do not interpret meaning.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Balanced `var()` scanning. Handles nested parentheses and takes the first
|
|
8
|
-
* top-level comma as the fallback separator.
|
|
6
|
+
* Parses a value that is exactly one `var()` reference. The fallback may
|
|
7
|
+
* contain nested parentheses; trailing text is rejected rather than swallowed.
|
|
9
8
|
*/
|
|
9
|
+
export declare function parseSingleVarReference(value: string): VarReference | null;
|
|
10
|
+
export declare function isSingleVarReference(value: string): boolean;
|
|
11
|
+
export declare function isCalcExpression(value: string): boolean;
|
|
12
|
+
/** Scans balanced `var()` calls; the first top-level comma separates the fallback. */
|
|
10
13
|
export declare function extractVarCalls(value: string): Array<{
|
|
11
14
|
name: string;
|
|
12
15
|
fallback?: string;
|
|
13
16
|
}>;
|
|
14
|
-
/** Index of the first top-level `/` in a value, or -1 when none exists. */
|
|
15
17
|
export declare function topLevelSlashIndex(value: string): number;
|
|
16
|
-
/** Splits CSS values at top-level combinators or an optional delimiter. */
|
|
17
18
|
export declare function splitTopLevel(s: string, sep?: string): string[];
|
|
18
|
-
/** Splits a value at top-level whitespace, honoring quotes and nesting. */
|
|
19
19
|
export declare function splitTopLevelWhitespace(value: string): string[];
|
|
@@ -1,12 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* not public Interface: they split structure, they do not interpret meaning.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Balanced `var()` scanning. Handles nested parentheses and takes the first
|
|
8
|
-
* top-level comma as the fallback separator.
|
|
2
|
+
* Parses a value that is exactly one `var()` reference. The fallback may
|
|
3
|
+
* contain nested parentheses; trailing text is rejected rather than swallowed.
|
|
9
4
|
*/
|
|
5
|
+
export function parseSingleVarReference(value) {
|
|
6
|
+
const trimmed = value.trim();
|
|
7
|
+
if (!/^var\(/i.test(trimmed))
|
|
8
|
+
return null;
|
|
9
|
+
let depth = 0;
|
|
10
|
+
let comma = -1;
|
|
11
|
+
for (let index = 3; index < trimmed.length; index++) {
|
|
12
|
+
const char = trimmed[index];
|
|
13
|
+
if (char === "(") {
|
|
14
|
+
depth++;
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
if (char === ")") {
|
|
18
|
+
depth--;
|
|
19
|
+
if (depth !== 0)
|
|
20
|
+
continue;
|
|
21
|
+
if (index !== trimmed.length - 1)
|
|
22
|
+
return null;
|
|
23
|
+
const body = trimmed.slice(4, index);
|
|
24
|
+
const name = (comma < 0 ? body : body.slice(0, comma - 4)).trim();
|
|
25
|
+
if (!/^--[\w-]+$/.test(name))
|
|
26
|
+
return null;
|
|
27
|
+
const fallback = comma < 0 ? undefined : body.slice(comma - 3).trim();
|
|
28
|
+
return fallback ? { name, fallback } : { name };
|
|
29
|
+
}
|
|
30
|
+
if (char === "," && depth === 1 && comma < 0)
|
|
31
|
+
comma = index;
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
export function isSingleVarReference(value) {
|
|
36
|
+
return parseSingleVarReference(value) !== null;
|
|
37
|
+
}
|
|
38
|
+
export function isCalcExpression(value) {
|
|
39
|
+
return /\bcalc\s*\(/i.test(value);
|
|
40
|
+
}
|
|
41
|
+
/** Scans balanced `var()` calls; the first top-level comma separates the fallback. */
|
|
10
42
|
export function extractVarCalls(value) {
|
|
11
43
|
const calls = [];
|
|
12
44
|
let i = 0;
|
|
@@ -37,7 +69,6 @@ export function extractVarCalls(value) {
|
|
|
37
69
|
}
|
|
38
70
|
return calls;
|
|
39
71
|
}
|
|
40
|
-
/** Index of the first top-level `/` in a value, or -1 when none exists. */
|
|
41
72
|
export function topLevelSlashIndex(value) {
|
|
42
73
|
let depth = 0;
|
|
43
74
|
for (let index = 0; index < value.length; index++) {
|
|
@@ -51,7 +82,6 @@ export function topLevelSlashIndex(value) {
|
|
|
51
82
|
}
|
|
52
83
|
return -1;
|
|
53
84
|
}
|
|
54
|
-
/** Splits CSS values at top-level combinators or an optional delimiter. */
|
|
55
85
|
export function splitTopLevel(s, sep) {
|
|
56
86
|
const parts = [];
|
|
57
87
|
let depth = 0;
|
|
@@ -66,7 +96,6 @@ export function splitTopLevel(s, sep) {
|
|
|
66
96
|
start = i + 1;
|
|
67
97
|
}
|
|
68
98
|
else if (depth === 0 && !sep && (s[i] === " " || s[i] === ">" || s[i] === "+" || s[i] === "~")) {
|
|
69
|
-
// Only split on combinators that have non-space around them.
|
|
70
99
|
if (i > start)
|
|
71
100
|
parts.push(s.slice(start, i).trim());
|
|
72
101
|
start = i + 1;
|
|
@@ -77,7 +106,6 @@ export function splitTopLevel(s, sep) {
|
|
|
77
106
|
parts.push(last);
|
|
78
107
|
return parts;
|
|
79
108
|
}
|
|
80
|
-
/** Splits a value at top-level whitespace, honoring quotes and nesting. */
|
|
81
109
|
export function splitTopLevelWhitespace(value) {
|
|
82
110
|
const parts = [];
|
|
83
111
|
let depth = 0;
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Supported `font` shorthand decomposition (plan slice 3.5).
|
|
3
|
-
*
|
|
4
|
-
* One browser-safe Module decomposes the unambiguous typography longhands
|
|
5
|
-
* affected by a `font` shorthand — family, size, style, weight, and
|
|
6
|
-
* line-height. Omitted optional components are represented by their shorthand
|
|
7
|
-
* reset value. System-font shorthands, percentage-sized variants, and complex
|
|
8
|
-
* family/function forms stay raw so the author's meaning is never guessed.
|
|
9
|
-
*/
|
|
10
1
|
export declare const FONT_SYSTEM_KEYWORDS: Set<string>;
|
|
11
2
|
export declare const FONT_SIZE_KEYWORDS: Set<string>;
|
|
12
3
|
export declare const FONT_WEIGHT_KEYWORDS: Set<string>;
|
|
@@ -18,18 +9,11 @@ export interface FontShorthandParts {
|
|
|
18
9
|
"font-weight": string;
|
|
19
10
|
"line-height": string;
|
|
20
11
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Splits a font shorthand without losing quoted family names or functions.
|
|
23
|
-
* The slash is a token only at top level, which lets us distinguish the
|
|
24
|
-
* optional `font-size / line-height` portion from a slash in a URL/function.
|
|
25
|
-
*/
|
|
12
|
+
/** The slash is a token only at top level, so URLs and functions survive. */
|
|
26
13
|
export declare function splitFontShorthand(value: string): string[];
|
|
27
14
|
export declare function isFontSize(value: string): boolean;
|
|
28
15
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* because a font shorthand resets them; dropping those reset rows would let
|
|
32
|
-
* earlier declarations survive the cascade incorrectly. System-font
|
|
33
|
-
* shorthands and percentage-sized variants remain raw.
|
|
16
|
+
* Omitted optional components project as their shorthand reset value; dropping
|
|
17
|
+
* those rows would let earlier declarations survive the cascade.
|
|
34
18
|
*/
|
|
35
19
|
export declare function parseFontShorthand(value: string): FontShorthandParts | null;
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Supported `font` shorthand decomposition (plan slice 3.5).
|
|
3
|
-
*
|
|
4
|
-
* One browser-safe Module decomposes the unambiguous typography longhands
|
|
5
|
-
* affected by a `font` shorthand — family, size, style, weight, and
|
|
6
|
-
* line-height. Omitted optional components are represented by their shorthand
|
|
7
|
-
* reset value. System-font shorthands, percentage-sized variants, and complex
|
|
8
|
-
* family/function forms stay raw so the author's meaning is never guessed.
|
|
9
|
-
*/
|
|
10
1
|
export const FONT_SYSTEM_KEYWORDS = new Set([
|
|
11
2
|
"caption", "icon", "menu", "message-box", "small-caption", "status-bar",
|
|
12
3
|
]);
|
|
@@ -16,11 +7,7 @@ export const FONT_SIZE_KEYWORDS = new Set([
|
|
|
16
7
|
]);
|
|
17
8
|
export const FONT_WEIGHT_KEYWORDS = new Set(["normal", "bold", "bolder", "lighter"]);
|
|
18
9
|
export const FONT_STYLE_KEYWORDS = new Set(["normal", "italic", "oblique"]);
|
|
19
|
-
/**
|
|
20
|
-
* Splits a font shorthand without losing quoted family names or functions.
|
|
21
|
-
* The slash is a token only at top level, which lets us distinguish the
|
|
22
|
-
* optional `font-size / line-height` portion from a slash in a URL/function.
|
|
23
|
-
*/
|
|
10
|
+
/** The slash is a token only at top level, so URLs and functions survive. */
|
|
24
11
|
export function splitFontShorthand(value) {
|
|
25
12
|
const parts = [];
|
|
26
13
|
let start = -1;
|
|
@@ -73,11 +60,8 @@ export function isFontSize(value) {
|
|
|
73
60
|
|| /^(?:[+-]?(?:\d*\.)?\d+(?:[a-z]+|%)|(?:var|calc|min|max|clamp|env)\()/i.test(value);
|
|
74
61
|
}
|
|
75
62
|
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* because a font shorthand resets them; dropping those reset rows would let
|
|
79
|
-
* earlier declarations survive the cascade incorrectly. System-font
|
|
80
|
-
* shorthands and percentage-sized variants remain raw.
|
|
63
|
+
* Omitted optional components project as their shorthand reset value; dropping
|
|
64
|
+
* those rows would let earlier declarations survive the cascade.
|
|
81
65
|
*/
|
|
82
66
|
export function parseFontShorthand(value) {
|
|
83
67
|
const source = value.trim();
|
|
@@ -88,8 +72,8 @@ export function parseFontShorthand(value) {
|
|
|
88
72
|
if (sizeIndex < 0)
|
|
89
73
|
return null;
|
|
90
74
|
const fontSize = parts[sizeIndex];
|
|
91
|
-
//
|
|
92
|
-
//
|
|
75
|
+
// A leading percentage may be font-stretch, not the required size; keep this
|
|
76
|
+
// uncommon form raw rather than choose arbitrarily.
|
|
93
77
|
if (/^[+-]?(?:\d*\.)?\d+%$/.test(fontSize) && sizeIndex > 0)
|
|
94
78
|
return null;
|
|
95
79
|
let cursor = sizeIndex + 1;
|
|
@@ -115,10 +99,8 @@ export function parseFontShorthand(value) {
|
|
|
115
99
|
weight = part;
|
|
116
100
|
continue;
|
|
117
101
|
}
|
|
118
|
-
//
|
|
119
|
-
//
|
|
120
|
-
// projection. Keep the whole shorthand conservative instead of dropping
|
|
121
|
-
// their meaning.
|
|
102
|
+
// Components outside this supported projection keep the whole shorthand
|
|
103
|
+
// conservative instead of dropping their meaning.
|
|
122
104
|
return null;
|
|
123
105
|
}
|
|
124
106
|
return {
|
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Browser-safe value-semantics seam for `nudge-ui/css`.
|
|
3
|
-
*
|
|
4
|
-
* The Interface has three conceptual operations: interpret one authored value,
|
|
5
|
-
* select compatible tokens, and apply a meaning-preserving edit. Token, color,
|
|
6
|
-
* property-family, and structured parsers remain internal Implementation seams.
|
|
7
|
-
* Framework-specific attribution arrives as explicit Adapter facts in the
|
|
8
|
-
* interpretation context.
|
|
9
|
-
*
|
|
10
|
-
* Browser-safe contract: this module imports only the shared model and must
|
|
11
|
-
* never pull React, Vite, PostCSS, Node, or filesystem code into a bundle.
|
|
12
|
-
*/
|
|
13
1
|
export { interpretValue } from "./structuredValues.js";
|
|
2
|
+
export { isCalcExpression, isSingleVarReference, parseSingleVarReference } from "./cssSyntax.js";
|
|
14
3
|
export type { StructuredField as InterpretedValueField, StructuredValuesContext as ValueSemanticsContext } from "./structuredValues.js";
|
|
15
4
|
export type { Directionality } from "./boxSemantics.js";
|
|
16
5
|
export type { AliasAttribution, AliasInnerResult, TokenInterpretationContext, } from "./tokenInterpretation.js";
|
|
@@ -1,15 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Browser-safe value-semantics seam for `nudge-ui/css`.
|
|
3
|
-
*
|
|
4
|
-
* The Interface has three conceptual operations: interpret one authored value,
|
|
5
|
-
* select compatible tokens, and apply a meaning-preserving edit. Token, color,
|
|
6
|
-
* property-family, and structured parsers remain internal Implementation seams.
|
|
7
|
-
* Framework-specific attribution arrives as explicit Adapter facts in the
|
|
8
|
-
* interpretation context.
|
|
9
|
-
*
|
|
10
|
-
* Browser-safe contract: this module imports only the shared model and must
|
|
11
|
-
* never pull React, Vite, PostCSS, Node, or filesystem code into a bundle.
|
|
12
|
-
*/
|
|
13
1
|
export { interpretValue } from "./structuredValues.js";
|
|
2
|
+
export { isCalcExpression, isSingleVarReference, parseSingleVarReference } from "./cssSyntax.js";
|
|
14
3
|
export { selectTokens, TOKEN_GROUP_LABELS, TOKEN_GROUP_ORDER, } from "./propertyPolicy.js";
|
|
15
4
|
export { applyValueEdit, normalizeOpacityPercent } from "./colorSemantics.js";
|
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Property/value policy (plan slice 3.3).
|
|
3
|
-
*
|
|
4
|
-
* One implementation owns capability classification, property→semantic-slot
|
|
5
|
-
* knowledge, token presentation grouping, and compatible-token candidate
|
|
6
|
-
* selection for value semantics. Eligibility always uses the resolved concrete
|
|
7
|
-
* value plus browser grammar; a token name is a presentation preference and
|
|
8
|
-
* never grants eligibility.
|
|
9
|
-
*
|
|
10
|
-
* Browser-safe contract: this module imports only the shared model and must
|
|
11
|
-
* never pull React, Vite, PostCSS, Node, or filesystem code into a bundle.
|
|
12
|
-
*/
|
|
13
1
|
import type { ColorValueFacts, EditCapability, TokenEntry } from "../model/index.js";
|
|
14
2
|
declare global {
|
|
15
3
|
interface Window {
|
|
@@ -19,9 +7,7 @@ declare global {
|
|
|
19
7
|
};
|
|
20
8
|
}
|
|
21
9
|
}
|
|
22
|
-
/** Semantic slot vocabulary for a CSS property. */
|
|
23
10
|
export type TokenSemanticSlot = "color" | "length" | "radius" | "font-family" | "font-size" | "font-weight" | "line-height" | "letter-spacing" | "shadow" | "opacity";
|
|
24
|
-
/** Presentation category for token pickers and catalog rows. */
|
|
25
11
|
export type TokenGroup = "color" | "spacing" | "radius" | "typography" | "shadow" | "generic";
|
|
26
12
|
export declare const TOKEN_GROUP_LABELS: {
|
|
27
13
|
color: string;
|
|
@@ -32,7 +18,6 @@ export declare const TOKEN_GROUP_LABELS: {
|
|
|
32
18
|
generic: string;
|
|
33
19
|
};
|
|
34
20
|
export declare const TOKEN_GROUP_ORDER: TokenGroup[];
|
|
35
|
-
/** Browser grammar is injectable so the policy stays unit-testable. */
|
|
36
21
|
export interface CssValueGrammar {
|
|
37
22
|
supports(property: string, value: string): boolean;
|
|
38
23
|
}
|
|
@@ -49,9 +34,8 @@ export interface TokenCandidate {
|
|
|
49
34
|
isCurrent: boolean;
|
|
50
35
|
}
|
|
51
36
|
export interface TokenCompatibilityRequest {
|
|
52
|
-
/**
|
|
37
|
+
/** Resolves custom properties in this element's cascade. */
|
|
53
38
|
element?: HTMLElement;
|
|
54
|
-
/** The outer CSS property being edited. */
|
|
55
39
|
property: string;
|
|
56
40
|
/** A scalar slot inside a composite property, such as the color in a shadow. */
|
|
57
41
|
slot?: TokenSemanticSlot;
|
|
@@ -72,47 +56,16 @@ export interface TokenSelection {
|
|
|
72
56
|
candidates: TokenCandidate[];
|
|
73
57
|
preferredGroup: TokenGroup;
|
|
74
58
|
}
|
|
75
|
-
/**
|
|
76
|
-
* Property knowledge lives here rather than in every picker. It supplies a
|
|
77
|
-
* presentation preference and validation slot; it never filters a candidate
|
|
78
|
-
* merely because of that candidate's name.
|
|
79
|
-
*/
|
|
59
|
+
/** Property knowledge lives here rather than in every picker: a presentation preference and validation slot, never a name-based filter. */
|
|
80
60
|
export declare function semanticSlotForProperty(property: string): TokenSemanticSlot | null;
|
|
81
61
|
export declare function groupForProperty(property: string, slot?: TokenSemanticSlot): TokenGroup;
|
|
82
|
-
/**
|
|
83
|
-
* Edit-capability classification for a property and its authored value.
|
|
84
|
-
* Preserves the resolver's original precedence exactly: raw functions first,
|
|
85
|
-
* then spacing families, border structure, colors, atomic var(), composites,
|
|
86
|
-
* then literal atomic values.
|
|
87
|
-
*/
|
|
62
|
+
/** Precedence is load-bearing and must match the resolver's. */
|
|
88
63
|
export declare function classifyEditCapability(property: string, value: string): EditCapability;
|
|
89
|
-
/**
|
|
90
|
-
* Name-prefix presentation hint. This is a display preference only: it never
|
|
91
|
-
* makes an invalid value eligible for a slot. `value` is a secondary hint used
|
|
92
|
-
* for concrete values with an unfamiliar name.
|
|
93
|
-
*/
|
|
64
|
+
/** Presentation hint only; a name never makes an invalid value eligible for a slot. */
|
|
94
65
|
export declare function classifyToken(name: string, value?: string): TokenGroup;
|
|
95
|
-
/**
|
|
96
|
-
* Host-realm grammar factory. Uses the element's window CSS when available,
|
|
97
|
-
* then `globalThis.CSS`, and falls back to a conservative non-browser matcher.
|
|
98
|
-
*/
|
|
99
66
|
export declare function browserCssGrammar(element?: HTMLElement): CssValueGrammar;
|
|
100
|
-
/**
|
|
101
|
-
* Presentation may use a name to make familiar token sets easier to scan, but
|
|
102
|
-
* a name never grants eligibility. Unfamiliar concrete colors still group as
|
|
103
|
-
* Color via the same CSS grammar used by the candidate selector.
|
|
104
|
-
*/
|
|
105
67
|
export declare function presentationForToken(entry: TokenEntry, grammar?: CssValueGrammar): TokenPresentation;
|
|
106
|
-
/**
|
|
107
|
-
* The single candidate-selection seam for every token-editing control and the
|
|
108
|
-
* inspection bridge. Concrete values are checked in the selected element's
|
|
109
|
-
* cascade, then the browser grammar decides eligibility. Presentation labels
|
|
110
|
-
* only rank results.
|
|
111
|
-
*/
|
|
68
|
+
/** The single candidate-selection seam; presentation labels only rank results. */
|
|
112
69
|
export declare function getCompatibleTokenCandidates(request: TokenCompatibilityRequest): TokenCandidate[];
|
|
113
|
-
/**
|
|
114
|
-
* The public token-selection operation. With a property it returns only
|
|
115
|
-
* browser-compatible candidates; without one it returns presentation metadata
|
|
116
|
-
* for inventory rows without inventing eligibility.
|
|
117
|
-
*/
|
|
70
|
+
/** Without a property, returns presentation metadata only — never invents eligibility. */
|
|
118
71
|
export declare function selectTokens(request: TokenSelectionRequest): TokenSelection;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { interpretColorValue } from "./colorSemantics.js";
|
|
2
|
+
import { isSingleVarReference } from "./cssSyntax.js";
|
|
2
3
|
export const TOKEN_GROUP_LABELS = {
|
|
3
4
|
color: "Color",
|
|
4
5
|
spacing: "Spacing",
|
|
@@ -68,11 +69,7 @@ const SLOT_PROPERTIES = {
|
|
|
68
69
|
function normaliseProperty(property) {
|
|
69
70
|
return property.trim().toLowerCase();
|
|
70
71
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Property knowledge lives here rather than in every picker. It supplies a
|
|
73
|
-
* presentation preference and validation slot; it never filters a candidate
|
|
74
|
-
* merely because of that candidate's name.
|
|
75
|
-
*/
|
|
72
|
+
/** Property knowledge lives here rather than in every picker: a presentation preference and validation slot, never a name-based filter. */
|
|
76
73
|
export function semanticSlotForProperty(property) {
|
|
77
74
|
const normalized = normaliseProperty(property);
|
|
78
75
|
if (COLOR_PROPERTIES.has(normalized) || /(^|-)color$/.test(normalized))
|
|
@@ -114,18 +111,12 @@ export function groupForProperty(property, slot) {
|
|
|
114
111
|
}
|
|
115
112
|
return "generic";
|
|
116
113
|
}
|
|
117
|
-
/**
|
|
118
|
-
* Edit-capability classification for a property and its authored value.
|
|
119
|
-
* Preserves the resolver's original precedence exactly: raw functions first,
|
|
120
|
-
* then spacing families, border structure, colors, atomic var(), composites,
|
|
121
|
-
* then literal atomic values.
|
|
122
|
-
*/
|
|
114
|
+
/** Precedence is load-bearing and must match the resolver's. */
|
|
123
115
|
export function classifyEditCapability(property, value) {
|
|
124
116
|
const p = property.toLowerCase();
|
|
125
117
|
const v = value.trim().toLowerCase();
|
|
126
|
-
//
|
|
127
|
-
//
|
|
128
|
-
// spacing property. The computed value is still available as a preview.
|
|
118
|
+
// A numeric side control cannot represent these functions faithfully, so
|
|
119
|
+
// the authored expression stays raw even on a spacing property.
|
|
129
120
|
if (/\b(?:min|max|clamp|env|anchor-size)\s*\(/.test(v))
|
|
130
121
|
return "raw";
|
|
131
122
|
if (["margin", "padding", "inset", "inset-block", "inset-inline"].includes(p)
|
|
@@ -135,10 +126,10 @@ export function classifyEditCapability(property, value) {
|
|
|
135
126
|
return "structured";
|
|
136
127
|
if (p === "color" || /(^|-)color$/.test(p) || p === "background-color" || p === "fill" || p === "stroke")
|
|
137
128
|
return "color";
|
|
138
|
-
if (
|
|
129
|
+
if (isSingleVarReference(v))
|
|
139
130
|
return "atomic";
|
|
140
131
|
if (p === "font" || /(gradient|shadow|transform|transition|animation|grid|background)/.test(p)
|
|
141
|
-
|| (v.includes(",") &&
|
|
132
|
+
|| (v.includes(",") && !isSingleVarReference(v)))
|
|
142
133
|
return "composite";
|
|
143
134
|
if (/\b(min|max|clamp|color-mix)\s*\(/.test(v))
|
|
144
135
|
return "raw";
|
|
@@ -147,11 +138,7 @@ export function classifyEditCapability(property, value) {
|
|
|
147
138
|
return "atomic";
|
|
148
139
|
return "raw";
|
|
149
140
|
}
|
|
150
|
-
/**
|
|
151
|
-
* Name-prefix presentation hint. This is a display preference only: it never
|
|
152
|
-
* makes an invalid value eligible for a slot. `value` is a secondary hint used
|
|
153
|
-
* for concrete values with an unfamiliar name.
|
|
154
|
-
*/
|
|
141
|
+
/** Presentation hint only; a name never makes an invalid value eligible for a slot. */
|
|
155
142
|
export function classifyToken(name, value = "") {
|
|
156
143
|
if (name.startsWith("--color-"))
|
|
157
144
|
return "color";
|
|
@@ -177,15 +164,17 @@ function tokenVariableName(entry) {
|
|
|
177
164
|
function hasUnresolvedVariable(value) {
|
|
178
165
|
return /\bvar\s*\(/i.test(value);
|
|
179
166
|
}
|
|
180
|
-
|
|
167
|
+
/** Hoisted so one request resolves each token against a single computed style. */
|
|
168
|
+
function elementStyle(element) {
|
|
169
|
+
const view = element?.ownerDocument.defaultView;
|
|
170
|
+
return element && view && typeof view.getComputedStyle === "function" ? view.getComputedStyle(element) : null;
|
|
171
|
+
}
|
|
172
|
+
function resolveValueInElement(entry, style) {
|
|
181
173
|
const variableName = tokenVariableName(entry);
|
|
182
|
-
if (
|
|
183
|
-
const
|
|
184
|
-
if (
|
|
185
|
-
|
|
186
|
-
if (computed)
|
|
187
|
-
return computed;
|
|
188
|
-
}
|
|
174
|
+
if (style && variableName.startsWith("--")) {
|
|
175
|
+
const computed = style.getPropertyValue(variableName).trim();
|
|
176
|
+
if (computed)
|
|
177
|
+
return computed;
|
|
189
178
|
}
|
|
190
179
|
return entry.value.trim();
|
|
191
180
|
}
|
|
@@ -204,11 +193,7 @@ function isColor(value) {
|
|
|
204
193
|
function isOpacity(value) {
|
|
205
194
|
return /^[+-]?(?:\d+\.?\d*|\.\d+)(?:%)?$/.test(value.trim());
|
|
206
195
|
}
|
|
207
|
-
/**
|
|
208
|
-
* Modern browsers provide CSS.supports. The small fallback keeps non-browser
|
|
209
|
-
* unit environments conservative and never treats a var() expression as a
|
|
210
|
-
* resolved value.
|
|
211
|
-
*/
|
|
196
|
+
/** Conservative fallback for non-browser environments that lack CSS.supports. */
|
|
212
197
|
function fallbackSupports(property, value) {
|
|
213
198
|
const normalized = normaliseProperty(property);
|
|
214
199
|
if (COLOR_PROPERTIES.has(normalized) || /(^|-)color$/.test(normalized))
|
|
@@ -229,19 +214,34 @@ function fallbackSupports(property, value) {
|
|
|
229
214
|
return isLength(value);
|
|
230
215
|
return false;
|
|
231
216
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
217
|
+
const SUPPORTS_CACHE_LIMIT = 20_000;
|
|
218
|
+
const supportsCaches = new WeakMap();
|
|
219
|
+
/** Cached per CSS object: pickers repeat the same questions for every field on every selection. */
|
|
220
|
+
function cachedSupports(css, property, value) {
|
|
221
|
+
if (typeof css.supports !== "function")
|
|
222
|
+
return null;
|
|
223
|
+
let cache = supportsCaches.get(css);
|
|
224
|
+
if (!cache) {
|
|
225
|
+
cache = new Map();
|
|
226
|
+
supportsCaches.set(css, cache);
|
|
227
|
+
}
|
|
228
|
+
const key = `${property}\n${value}`;
|
|
229
|
+
let supported = cache.get(key);
|
|
230
|
+
if (supported === undefined) {
|
|
231
|
+
if (cache.size >= SUPPORTS_CACHE_LIMIT)
|
|
232
|
+
cache.clear();
|
|
233
|
+
supported = css.supports(property, value);
|
|
234
|
+
cache.set(key, supported);
|
|
235
|
+
}
|
|
236
|
+
return supported;
|
|
237
|
+
}
|
|
236
238
|
export function browserCssGrammar(element) {
|
|
237
239
|
const css = browserCss(element);
|
|
238
240
|
return {
|
|
239
241
|
supports(property, value) {
|
|
240
242
|
if (hasUnresolvedVariable(value) || !value.trim())
|
|
241
243
|
return false;
|
|
242
|
-
|
|
243
|
-
return css.supports(property, value);
|
|
244
|
-
return fallbackSupports(property, value);
|
|
244
|
+
return (css ? cachedSupports(css, property, value) : null) ?? fallbackSupports(property, value);
|
|
245
245
|
},
|
|
246
246
|
};
|
|
247
247
|
}
|
|
@@ -259,11 +259,6 @@ function nameHint(name) {
|
|
|
259
259
|
return "spacing";
|
|
260
260
|
return null;
|
|
261
261
|
}
|
|
262
|
-
/**
|
|
263
|
-
* Presentation may use a name to make familiar token sets easier to scan, but
|
|
264
|
-
* a name never grants eligibility. Unfamiliar concrete colors still group as
|
|
265
|
-
* Color via the same CSS grammar used by the candidate selector.
|
|
266
|
-
*/
|
|
267
262
|
export function presentationForToken(entry, grammar = browserCssGrammar()) {
|
|
268
263
|
const value = entry.value.trim();
|
|
269
264
|
const group = !hasUnresolvedVariable(value) && grammar.supports("color", value)
|
|
@@ -290,20 +285,16 @@ function compareCandidates(preferred) {
|
|
|
290
285
|
return left.entry.name.localeCompare(right.entry.name);
|
|
291
286
|
};
|
|
292
287
|
}
|
|
293
|
-
/**
|
|
294
|
-
* The single candidate-selection seam for every token-editing control and the
|
|
295
|
-
* inspection bridge. Concrete values are checked in the selected element's
|
|
296
|
-
* cascade, then the browser grammar decides eligibility. Presentation labels
|
|
297
|
-
* only rank results.
|
|
298
|
-
*/
|
|
288
|
+
/** The single candidate-selection seam; presentation labels only rank results. */
|
|
299
289
|
export function getCompatibleTokenCandidates(request) {
|
|
300
290
|
const grammar = request.grammar ?? browserCssGrammar(request.element);
|
|
301
291
|
const slot = request.slot ?? semanticSlotForProperty(request.property) ?? undefined;
|
|
302
292
|
const property = validationProperty(request.property, slot);
|
|
303
293
|
const preferredGroup = groupForProperty(request.property, slot);
|
|
294
|
+
const style = elementStyle(request.element);
|
|
304
295
|
return request.entries
|
|
305
296
|
.map((entry) => {
|
|
306
|
-
const resolvedValue = resolveValueInElement(entry,
|
|
297
|
+
const resolvedValue = resolveValueInElement(entry, style);
|
|
307
298
|
const presentation = presentationForToken({ ...entry, value: resolvedValue }, grammar);
|
|
308
299
|
return {
|
|
309
300
|
entry,
|
|
@@ -317,11 +308,7 @@ export function getCompatibleTokenCandidates(request) {
|
|
|
317
308
|
&& grammar.supports(property, candidate.resolvedValue)))
|
|
318
309
|
.sort(compareCandidates(preferredGroup));
|
|
319
310
|
}
|
|
320
|
-
/**
|
|
321
|
-
* The public token-selection operation. With a property it returns only
|
|
322
|
-
* browser-compatible candidates; without one it returns presentation metadata
|
|
323
|
-
* for inventory rows without inventing eligibility.
|
|
324
|
-
*/
|
|
311
|
+
/** Without a property, returns presentation metadata only — never invents eligibility. */
|
|
325
312
|
export function selectTokens(request) {
|
|
326
313
|
if (request.property) {
|
|
327
314
|
const slot = request.slot ?? semanticSlotForProperty(request.property) ?? undefined;
|
|
@@ -338,9 +325,10 @@ export function selectTokens(request) {
|
|
|
338
325
|
};
|
|
339
326
|
}
|
|
340
327
|
const grammar = request.grammar ?? browserCssGrammar(request.element);
|
|
328
|
+
const style = elementStyle(request.element);
|
|
341
329
|
return {
|
|
342
330
|
candidates: request.entries.map((entry) => {
|
|
343
|
-
const resolvedValue = resolveValueInElement(entry,
|
|
331
|
+
const resolvedValue = resolveValueInElement(entry, style);
|
|
344
332
|
const presentation = presentationForToken({ ...entry, value: resolvedValue }, grammar);
|
|
345
333
|
return {
|
|
346
334
|
entry,
|
|
@@ -1,30 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Structured and box value interpretation (plan slice 3.5).
|
|
3
|
-
*
|
|
4
|
-
* One browser-safe Module turns an authored CSSOM value for a box/border/
|
|
5
|
-
* radius/font property into a structured projection tree: the physical sides,
|
|
6
|
-
* border longhands, radius corners, or font longhands it expands to, each with
|
|
7
|
-
* source-property provenance and its own token interpretation.
|
|
8
|
-
*
|
|
9
|
-
* One interpretation tree: each distinct authored component is token-interpreted
|
|
10
|
-
* once and every projected field that carries that component reuses the same
|
|
11
|
-
* interpretation (tokenName, tokens, opacity, modifiers, cycle). A border color
|
|
12
|
-
* token, a multi-value spacing token, or a radius token is therefore resolved
|
|
13
|
-
* once per declaration, not once per projected longhand.
|
|
14
|
-
*
|
|
15
|
-
* Conservative fallbacks: ambiguous borders, slash-separated radius forms,
|
|
16
|
-
* complex fonts, and everything outside the supported families stay a single
|
|
17
|
-
* raw/composite row with the resolution's existing capability classification.
|
|
18
|
-
*
|
|
19
|
-
* Browser-safe contract: this module imports only the shared model and the
|
|
20
|
-
* other value-semantics Modules. Directionality is an explicit input fact; it
|
|
21
|
-
* never walks the DOM or CSSOM.
|
|
22
|
-
*/
|
|
23
1
|
import type { BorderStructure, ColorOpacity, EditCapability, OpacityValue, TokenReference, ValueModifier } from "../model/index.js";
|
|
24
2
|
import { type TokenInterpretationContext, type TokenValueInterpretation } from "./tokenInterpretation.js";
|
|
25
3
|
import { type Directionality } from "./boxSemantics.js";
|
|
26
4
|
export type { Directionality } from "./boxSemantics.js";
|
|
27
|
-
/** One projected longhand row from the structured interpretation. */
|
|
28
5
|
export interface StructuredField {
|
|
29
6
|
property: string;
|
|
30
7
|
/** The authored value projected to this field (per-side/corner/longhand). */
|
|
@@ -42,23 +19,12 @@ export interface StructuredField {
|
|
|
42
19
|
structure?: BorderStructure;
|
|
43
20
|
diagnostic?: string;
|
|
44
21
|
}
|
|
45
|
-
/** Explicit, DOM-free facts the structured interpretation needs. */
|
|
46
22
|
export interface StructuredValuesContext {
|
|
47
|
-
/** Token table plus the integration's token-interpretation policies. */
|
|
48
23
|
tokenContext: TokenInterpretationContext;
|
|
49
|
-
/**
|
|
50
|
-
* Writing-mode/direction facts for logical→physical mapping. Absent →
|
|
51
|
-
* `ltr` / `horizontal-tb`.
|
|
52
|
-
*/
|
|
24
|
+
/** Writing-mode/direction facts for logical→physical mapping; defaults to `ltr`/`horizontal-tb`. */
|
|
53
25
|
directionality?: Directionality;
|
|
54
26
|
}
|
|
55
|
-
/**
|
|
56
|
-
* Interprets one authored value for a property into a structured projection
|
|
57
|
-
* tree. Returns the projected fields, or a single conservative raw/composite
|
|
58
|
-
* field when the value cannot be decomposed faithfully. The declared order of
|
|
59
|
-
* the families mirrors CSS projection precedence: logical sides, border, font,
|
|
60
|
-
* border-radius corners, gap, physical spacing, then the raw fallback.
|
|
61
|
-
*/
|
|
27
|
+
/** Values that cannot be decomposed faithfully collapse to one conservative raw/composite field; families are checked in CSS precedence order. */
|
|
62
28
|
export declare function interpretValue(property: string, authored: string, ctx: StructuredValuesContext): StructuredField[];
|
|
63
|
-
/** @internal Use
|
|
29
|
+
/** @internal Use `interpretValue` in production. */
|
|
64
30
|
export declare const interpretStructuredValue: typeof interpretValue;
|