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
|
@@ -5,28 +5,19 @@ import { TokenField, TokenValueField } from "../tokens/TokenField.js";
|
|
|
5
5
|
import { IconButton } from "../ui/IconButton.js";
|
|
6
6
|
import { SideValuesField, SIDE_NAMES, MarginSideIndicator, } from "../ui/SideValuesField.js";
|
|
7
7
|
import { setStyles, swapTokens } from "../tokens/editActions.js";
|
|
8
|
+
import { isCalcExpression } from "../../css/value-semantics/index.js";
|
|
9
|
+
import { deriveActiveTokenName, isExpressionRow } from "./fieldValue.js";
|
|
8
10
|
import { completeCssValue } from "./completeCssValue.js";
|
|
9
11
|
import { valuePolicyFor } from "./valuePolicy.js";
|
|
10
12
|
import { projectInspectorValues, projectInspectorValuesForSelection, } from "../spacing/projection.js";
|
|
11
|
-
import { getStateStyleValue } from "../shell/stateValue.js";
|
|
12
13
|
import { isZeroCssValue } from "./stylePresence.js";
|
|
13
14
|
import { useFieldVisibility } from "./useFieldVisibility.js";
|
|
14
15
|
import { inlineBlockedBy } from "./inlineAuthored.js";
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const allEntries = entries ?? [];
|
|
19
|
-
const projection = selection
|
|
16
|
+
/** Values for one selection, projected from its computed styles or the shared selection model. */
|
|
17
|
+
export function projectSpacing(element, selection, tokenRows) {
|
|
18
|
+
return (selection
|
|
20
19
|
? projectInspectorValuesForSelection(selection)
|
|
21
|
-
: projectInspectorValues(
|
|
22
|
-
const showRelativeInset = selection
|
|
23
|
-
? selection.supportsRole("relative-position")
|
|
24
|
-
: (() => {
|
|
25
|
-
const value = getStateStyleValue(el, "position", "static").trim().toLowerCase();
|
|
26
|
-
return value === "relative" || value === "sticky";
|
|
27
|
-
})();
|
|
28
|
-
const editTarget = selection?.target ?? el;
|
|
29
|
-
return (_jsxs("div", { className: "editor", "data-test": "spacing-box", children: [_jsx("div", { className: "editor__title", children: "Spacing" }), _jsxs("div", { className: "spacing", children: [_jsx(SpacingField, { property: "padding", projection: projection.spacing.padding, domElement: el, editTarget: editTarget, selection: selection, entries: allEntries, tokenRows: tokenRows, onAfterEdit: onAfterEdit }), _jsx(SpacingField, { property: "margin", projection: projection.spacing.margin, domElement: el, editTarget: editTarget, selection: selection, entries: allEntries, tokenRows: tokenRows, onAfterEdit: onAfterEdit }), showRelativeInset ? _jsx(SpacingField, { property: "inset", projection: projection.spacing.inset, domElement: el, editTarget: editTarget, selection: selection, entries: allEntries, tokenRows: tokenRows, onAfterEdit: onAfterEdit }) : null] })] }));
|
|
20
|
+
: projectInspectorValues(element, tokenRows)).spacing;
|
|
30
21
|
}
|
|
31
22
|
export function SpacingField({ property, projection: spacingProjection, domElement: el, editTarget, selection, entries, tokenRows, onAfterEdit, showLabel = true, showEmptyState = true, suggestions, }) {
|
|
32
23
|
const pairDefinitions = [
|
|
@@ -40,12 +31,13 @@ export function SpacingField({ property, projection: spacingProjection, domEleme
|
|
|
40
31
|
return {
|
|
41
32
|
side,
|
|
42
33
|
icon: null,
|
|
43
|
-
control: (_jsx(TokenField, { property: sideName, selection: selection, tokenRow: findTokenRow(tokenRows, sideName), domElement: el, editTarget: editTarget, entries: entries, suggestions: suggestions,
|
|
34
|
+
control: (_jsx(TokenField, { property: sideName, selection: selection, tokenRow: findTokenRow(tokenRows, sideName), domElement: el, editTarget: editTarget, entries: entries, suggestions: suggestions, initialValue: property === "inset" ? "auto" : undefined, displayValue: property === "inset" && !field.tokenName
|
|
35
|
+
? field.authoredValue
|
|
36
|
+
: isCalcExpression(field.authoredValue) && field.value ? field.value : undefined, editMetadata: metadataFor(findTokenRow(tokenRows, sideName)), onAfterEdit: onAfterEdit, chipVariant: "small", leading: icon })),
|
|
44
37
|
};
|
|
45
38
|
});
|
|
46
39
|
const hasSpacing = SIDE_NAMES.some((side) => {
|
|
47
|
-
// Zero spacing is visually empty
|
|
48
|
-
// reset, a component rule, or a token. Open editors stay open below.
|
|
40
|
+
// Zero spacing is visually empty whatever its source; open editors stay open below.
|
|
49
41
|
const value = spacingProjection.fields[side].value.trim();
|
|
50
42
|
return value !== "" && !isZeroCssValue(value) && (property !== "inset" || value !== "auto");
|
|
51
43
|
});
|
|
@@ -88,14 +80,11 @@ function PairedTokenField({ displayProperty, sideProperties, domElement: el, edi
|
|
|
88
80
|
const row = pairTokenRow(displayProperty, axisProjection);
|
|
89
81
|
const groupMixed = axisProjection.fields.some((field) => field.value === "Mixed");
|
|
90
82
|
const valuesMatch = axisProjection.state === "shared" && !groupMixed;
|
|
91
|
-
const expression =
|
|
92
|
-
|| row.modifiers?.some((modifier) => modifier.kind === "alpha")));
|
|
83
|
+
const expression = isExpressionRow(row);
|
|
93
84
|
const calcAuthored = row?.authored ?? row?.declaredValue ?? "";
|
|
94
|
-
const isCalcAuthored =
|
|
95
|
-
const activeTokenName =
|
|
96
|
-
// Some browsers
|
|
97
|
-
// Keep the authored keyword visible because replacing it with that transient
|
|
98
|
-
// size would misrepresent the declaration and change the edit semantics.
|
|
85
|
+
const isCalcAuthored = isCalcExpression(calcAuthored);
|
|
86
|
+
const activeTokenName = deriveActiveTokenName({ row, mixed: !valuesMatch, authored: calcAuthored });
|
|
87
|
+
// Some browsers report the used pixel size for horizontal auto margins; keep the authored keyword.
|
|
99
88
|
const committedValue = groupMixed
|
|
100
89
|
? "Mixed"
|
|
101
90
|
: valuesMatch
|
|
@@ -130,10 +119,7 @@ function PairedTokenField({ displayProperty, sideProperties, domElement: el, edi
|
|
|
130
119
|
}, onUnlink: commitAxisValue, leading: leading, blockedBy: blockedBy }));
|
|
131
120
|
}
|
|
132
121
|
function fieldDisplayValue(field) {
|
|
133
|
-
return
|
|
134
|
-
}
|
|
135
|
-
function isCalcValue(value) {
|
|
136
|
-
return /\bcalc\s*\(/i.test(value);
|
|
122
|
+
return isCalcExpression(field.authoredValue) ? field.value : field.authoredValue.trim() || field.value;
|
|
137
123
|
}
|
|
138
124
|
function splitAxisValue(value) {
|
|
139
125
|
let depth = 0;
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useEffect, useState } from "react";
|
|
3
3
|
import { IconTextSize, IconAlignCenter, IconAlignLeft, IconAlignRight, IconLayoutAlignMiddle, IconLayoutAlignBottom, IconLayoutAlignTop, IconBaseline, IconChevronDown, IconItalic, IconLetterSpacing, IconTypography, } from "@tabler/icons-react";
|
|
4
4
|
import { findTokenRow, metadataFor } from "./rowLookup.js";
|
|
5
|
+
import { isExpressionRow } from "./fieldValue.js";
|
|
5
6
|
import { TokenField } from "../tokens/TokenField.js";
|
|
6
7
|
import { Select } from "../ui/Select.js";
|
|
7
8
|
import { SegmentedControl } from "../ui/SegmentedControl.js";
|
|
@@ -36,10 +37,7 @@ function TypographyTokenField(props) {
|
|
|
36
37
|
const tokenName = selectedProperty
|
|
37
38
|
? selectedProperty.token.kind === "common" ? selectedProperty.token.name : null
|
|
38
39
|
: tokenRow?.tokenName;
|
|
39
|
-
const hasTokenChip = Boolean(tokenName
|
|
40
|
-
&& tokenRow?.capability !== "raw"
|
|
41
|
-
&& tokenRow?.capability !== "composite"
|
|
42
|
-
&& !tokenRow?.modifiers?.some((modifier) => modifier.kind === "alpha"));
|
|
40
|
+
const hasTokenChip = Boolean(tokenName && !isExpressionRow(tokenRow));
|
|
43
41
|
return (_jsx(ControlSurface, { className: `typography__field typography__field--${property}`, children: _jsx(TokenField, { property: property, tokenRow: tokenRow, selection: selection, domElement: domElement, editTarget: editTarget, entries: entries, editMetadata: metadataFor(tokenRow), leading: icon, trailing: metric || hasTokenChip ? undefined : _jsx(IconChevronDown, { size: 17, stroke: 1.8, "aria-hidden": "true" }), label: label, chipVariant: chipVariant, onAfterEdit: onAfterEdit }) }));
|
|
44
42
|
}
|
|
45
43
|
const FONT_STYLE_OPTIONS = [
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ResolvedProperty } from "../../css/model/index.js";
|
|
2
|
+
import type { StyleDeclaration } from "../tokens/editActions.js";
|
|
3
|
+
export declare const BORDER_STYLES: readonly ["none", "hidden", "solid", "dashed", "dotted", "double", "groove", "ridge", "inset", "outset"];
|
|
4
|
+
export declare const BORDER_SIDES: readonly ["top", "right", "bottom", "left"];
|
|
5
|
+
export type BorderSide = (typeof BORDER_SIDES)[number];
|
|
6
|
+
export type BorderComponent = "width" | "style" | "color";
|
|
7
|
+
/** Reads a property's computed value for the inspected style state. */
|
|
8
|
+
export type ComputedStyleReader = (property: string, fallback: string) => string;
|
|
9
|
+
export interface BorderSource {
|
|
10
|
+
readonly rows: readonly ResolvedProperty[];
|
|
11
|
+
readonly computed: ComputedStyleReader;
|
|
12
|
+
}
|
|
13
|
+
export interface BorderEditorState {
|
|
14
|
+
readonly sidesLinked: boolean;
|
|
15
|
+
/** Editable only through a raw field. */
|
|
16
|
+
readonly rawShorthandRow: ResolvedProperty | null;
|
|
17
|
+
readonly linkedStyleDraws: boolean;
|
|
18
|
+
readonly linkedRows: Readonly<Record<BorderComponent, ResolvedProperty | null>>;
|
|
19
|
+
}
|
|
20
|
+
export type BorderIntent = {
|
|
21
|
+
readonly kind: "add";
|
|
22
|
+
} | {
|
|
23
|
+
readonly kind: "remove";
|
|
24
|
+
} | {
|
|
25
|
+
readonly kind: "link-sides";
|
|
26
|
+
} | {
|
|
27
|
+
readonly kind: "set-style";
|
|
28
|
+
readonly property: string;
|
|
29
|
+
readonly style: string;
|
|
30
|
+
};
|
|
31
|
+
export declare function borderProperty(component: BorderComponent, side?: BorderSide): string;
|
|
32
|
+
export declare function readBorderEditor(source: BorderSource, { group }: {
|
|
33
|
+
readonly group: boolean;
|
|
34
|
+
}): BorderEditorState;
|
|
35
|
+
export declare function hasVisibleBorder(computed: ComputedStyleReader): boolean;
|
|
36
|
+
export declare function borderDeclarations(source: BorderSource, intent: BorderIntent): StyleDeclaration[];
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { findTokenRow } from "./rowLookup.js";
|
|
2
|
+
import { isZeroCssValue } from "./stylePresence.js";
|
|
3
|
+
export const BORDER_STYLES = ["none", "hidden", "solid", "dashed", "dotted", "double", "groove", "ridge", "inset", "outset"];
|
|
4
|
+
export const BORDER_SIDES = ["top", "right", "bottom", "left"];
|
|
5
|
+
const BORDER_STYLE_SET = new Set(BORDER_STYLES);
|
|
6
|
+
const INVISIBLE_BORDER_STYLES = new Set(["none", "hidden"]);
|
|
7
|
+
const COMPONENT_FALLBACK = {
|
|
8
|
+
width: "0px",
|
|
9
|
+
style: "none",
|
|
10
|
+
color: "currentcolor",
|
|
11
|
+
};
|
|
12
|
+
export function borderProperty(component, side) {
|
|
13
|
+
return side ? `border-${side}-${component}` : `border-${component}`;
|
|
14
|
+
}
|
|
15
|
+
function isBorderStyle(value) {
|
|
16
|
+
return BORDER_STYLE_SET.has(value);
|
|
17
|
+
}
|
|
18
|
+
function sideProperties(component) {
|
|
19
|
+
return BORDER_SIDES.map((side) => borderProperty(component, side));
|
|
20
|
+
}
|
|
21
|
+
/** Precedence: structured shorthand parts, then authored text, then computed style. */
|
|
22
|
+
function borderComponentValue(source, component, property) {
|
|
23
|
+
const row = findTokenRow(source.rows, property);
|
|
24
|
+
const fallback = COMPONENT_FALLBACK[component];
|
|
25
|
+
const structured = row?.structure?.[component]?.trim();
|
|
26
|
+
if (component === "style") {
|
|
27
|
+
if (structured)
|
|
28
|
+
return structured.toLowerCase();
|
|
29
|
+
const authored = (row?.authored ?? row?.declaredValue ?? "").trim().toLowerCase();
|
|
30
|
+
if (isBorderStyle(authored))
|
|
31
|
+
return authored;
|
|
32
|
+
return (source.computed(property, fallback) || fallback).toLowerCase();
|
|
33
|
+
}
|
|
34
|
+
if (structured)
|
|
35
|
+
return structured;
|
|
36
|
+
return (row?.authored || row?.declaredValue || row?.resolvedValue || source.computed(property, fallback) || fallback).trim();
|
|
37
|
+
}
|
|
38
|
+
/** Width and color compare token bindings too, so a token on one side keeps sides apart. */
|
|
39
|
+
function sideSignature(source, component, property) {
|
|
40
|
+
const value = borderComponentValue(source, component, property).toLowerCase();
|
|
41
|
+
if (component === "style")
|
|
42
|
+
return value;
|
|
43
|
+
return `${value}|${findTokenRow(source.rows, property)?.tokenName ?? ""}`;
|
|
44
|
+
}
|
|
45
|
+
/** A lone shorthand row is linked by construction; per-side rows compare by structured parts. */
|
|
46
|
+
function componentLinked(source, component) {
|
|
47
|
+
const properties = sideProperties(component);
|
|
48
|
+
const hasShorthandRow = findTokenRow(source.rows, borderProperty(component)) !== null;
|
|
49
|
+
const hasSideRows = properties.some((property) => findTokenRow(source.rows, property) !== null);
|
|
50
|
+
if (hasShorthandRow && !hasSideRows)
|
|
51
|
+
return true;
|
|
52
|
+
return new Set(properties.map((property) => sideSignature(source, component, property))).size === 1;
|
|
53
|
+
}
|
|
54
|
+
function linkedRow(source, component) {
|
|
55
|
+
const shorthand = borderProperty(component);
|
|
56
|
+
const direct = findTokenRow(source.rows, shorthand);
|
|
57
|
+
if (direct)
|
|
58
|
+
return direct;
|
|
59
|
+
const top = findTokenRow(source.rows, borderProperty(component, "top"));
|
|
60
|
+
return top ? { ...top, property: shorthand } : null;
|
|
61
|
+
}
|
|
62
|
+
export function readBorderEditor(source, { group }) {
|
|
63
|
+
const borderRow = findTokenRow(source.rows, "border");
|
|
64
|
+
const hasStructuredRows = source.rows.some((row) => Boolean(row.structure));
|
|
65
|
+
return {
|
|
66
|
+
sidesLinked: !group
|
|
67
|
+
&& componentLinked(source, "width")
|
|
68
|
+
&& componentLinked(source, "style")
|
|
69
|
+
&& componentLinked(source, "color"),
|
|
70
|
+
rawShorthandRow: !group && borderRow && !borderRow.structure && !hasStructuredRows ? borderRow : null,
|
|
71
|
+
linkedStyleDraws: !INVISIBLE_BORDER_STYLES.has(borderComponentValue(source, "style", "border-style")),
|
|
72
|
+
linkedRows: {
|
|
73
|
+
width: linkedRow(source, "width"),
|
|
74
|
+
style: linkedRow(source, "style"),
|
|
75
|
+
color: linkedRow(source, "color"),
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export function hasVisibleBorder(computed) {
|
|
80
|
+
return BORDER_SIDES.some((side) => {
|
|
81
|
+
const style = computed(borderProperty("style", side), "none").toLowerCase();
|
|
82
|
+
if (INVISIBLE_BORDER_STYLES.has(style))
|
|
83
|
+
return false;
|
|
84
|
+
return !isZeroCssValue(computed(borderProperty("width", side), "0px"));
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
function linkSidesDeclarations(source) {
|
|
88
|
+
const components = ["style", "width", "color"];
|
|
89
|
+
return components.map((component) => ({
|
|
90
|
+
property: borderProperty(component),
|
|
91
|
+
value: borderComponentValue(source, component, borderProperty(component, "top")),
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
export function borderDeclarations(source, intent) {
|
|
95
|
+
switch (intent.kind) {
|
|
96
|
+
case "add":
|
|
97
|
+
return [{ property: "border", value: "1px solid" }];
|
|
98
|
+
case "remove":
|
|
99
|
+
return [{ property: "border", value: "0 solid" }];
|
|
100
|
+
case "link-sides":
|
|
101
|
+
return linkSidesDeclarations(source);
|
|
102
|
+
case "set-style":
|
|
103
|
+
return isBorderStyle(intent.style) ? [{ property: intent.property, value: intent.style }] : [];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import type { ValuePolicy } from "./valuePolicy.js";
|
|
2
2
|
export declare const CSS_NUMBER_SOURCE = "[+-]?(?:(?:\\d+\\.?\\d*)|(?:\\.\\d+))(?:e[+-]?\\d+)?";
|
|
3
|
-
/**
|
|
4
|
-
* Completes a bare numeric entry with its property's default unit. This is a
|
|
5
|
-
* commit-time formatter; it deliberately does not validate or reinterpret
|
|
6
|
-
* arbitrary CSS supplied by the user.
|
|
7
|
-
*/
|
|
3
|
+
/** Commit-time only; never validates or reinterprets arbitrary CSS input. */
|
|
8
4
|
export declare function completeCssValue(rawValue: string, policy: ValuePolicy): string;
|
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
//
|
|
2
|
-
// matches the entire value: units, functions, keywords, and compound values
|
|
3
|
-
// are all valid raw CSS and must be passed through unchanged.
|
|
4
|
-
// Exported as a source fragment so other editors (e.g. nudgeValue) build
|
|
5
|
-
// their number-aware patterns from the same single grammar definition.
|
|
1
|
+
// Exported as a source fragment for reuse in nudgeValue; matches only a complete CSS <number>.
|
|
6
2
|
export const CSS_NUMBER_SOURCE = "[+-]?(?:(?:\\d+\\.?\\d*)|(?:\\.\\d+))(?:e[+-]?\\d+)?";
|
|
7
3
|
const BARE_NUMBER = new RegExp(`^(?:${CSS_NUMBER_SOURCE})$`, "i");
|
|
8
|
-
/**
|
|
9
|
-
* Completes a bare numeric entry with its property's default unit. This is a
|
|
10
|
-
* commit-time formatter; it deliberately does not validate or reinterpret
|
|
11
|
-
* arbitrary CSS supplied by the user.
|
|
12
|
-
*/
|
|
4
|
+
/** Commit-time only; never validates or reinterprets arbitrary CSS input. */
|
|
13
5
|
export function completeCssValue(rawValue, policy) {
|
|
14
6
|
const value = rawValue.trim();
|
|
15
7
|
if (!BARE_NUMBER.test(value) || Number(value) === 0) {
|
|
@@ -17,9 +9,7 @@ export function completeCssValue(rawValue, policy) {
|
|
|
17
9
|
}
|
|
18
10
|
if (policy.kind === "line-height") {
|
|
19
11
|
const multiplier = Number(value);
|
|
20
|
-
//
|
|
21
|
-
// larger whole values conventionally represent a percentage (120). Keep
|
|
22
|
-
// both convenient forms while committing a single percentage value.
|
|
12
|
+
// Values up to 10 are multipliers (1.6); larger values are conventional percentages (120).
|
|
23
13
|
if (multiplier > 0 && multiplier <= 10) {
|
|
24
14
|
return `${formatPercentage(multiplier * 100)}%`;
|
|
25
15
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ResolvedProperty } from "../../css/model/index.js";
|
|
2
|
+
import type { SelectionProperty } from "../inspection/selectionProperty.js";
|
|
3
|
+
/**
|
|
4
|
+
* True when a row reports a value the inspector must treat as an expression,
|
|
5
|
+
* not as a token: raw CSS, a composite shorthand, an alpha modifier, or an
|
|
6
|
+
* authored color expression such as color-mix().
|
|
7
|
+
*/
|
|
8
|
+
export declare function isExpressionRow(row: ResolvedProperty | null): boolean;
|
|
9
|
+
export interface ActiveTokenInput {
|
|
10
|
+
readonly row: ResolvedProperty | null;
|
|
11
|
+
readonly selectedProperty?: SelectionProperty | null;
|
|
12
|
+
/** A multi-element selection that disagrees on this property shows "Mixed" and no chip. */
|
|
13
|
+
readonly mixed: boolean;
|
|
14
|
+
/** The authored CSS value; a calc() expression suppresses the chip. */
|
|
15
|
+
readonly authored?: string;
|
|
16
|
+
/** A property-specific token name that outranks the row (opacity's token-backed value). */
|
|
17
|
+
readonly override?: string | null;
|
|
18
|
+
}
|
|
19
|
+
/** The token a field should show as active, or null when the value is not token-backed. */
|
|
20
|
+
export declare function deriveActiveTokenName(input: ActiveTokenInput): string | null;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { isCalcExpression } from "../../css/value-semantics/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* True when a row reports a value the inspector must treat as an expression,
|
|
4
|
+
* not as a token: raw CSS, a composite shorthand, an alpha modifier, or an
|
|
5
|
+
* authored color expression such as color-mix().
|
|
6
|
+
*/
|
|
7
|
+
export function isExpressionRow(row) {
|
|
8
|
+
return Boolean(row && (row.capability === "raw"
|
|
9
|
+
|| row.capability === "composite"
|
|
10
|
+
|| row.modifiers?.some((modifier) => modifier.kind === "alpha")
|
|
11
|
+
|| row.color?.isExpression));
|
|
12
|
+
}
|
|
13
|
+
/** The token a field should show as active, or null when the value is not token-backed. */
|
|
14
|
+
export function deriveActiveTokenName(input) {
|
|
15
|
+
const { row, selectedProperty, mixed, authored = "", override } = input;
|
|
16
|
+
if (mixed)
|
|
17
|
+
return null;
|
|
18
|
+
if (override)
|
|
19
|
+
return override;
|
|
20
|
+
if (isExpressionRow(row) || isCalcExpression(authored))
|
|
21
|
+
return null;
|
|
22
|
+
if (selectedProperty) {
|
|
23
|
+
return selectedProperty.token.kind === "common" ? selectedProperty.token.name : null;
|
|
24
|
+
}
|
|
25
|
+
return row?.tokenName ?? null;
|
|
26
|
+
}
|
|
@@ -12,6 +12,6 @@ export interface GradientValue {
|
|
|
12
12
|
stops: GradientStop[];
|
|
13
13
|
}
|
|
14
14
|
export declare function defaultGradient(): GradientValue;
|
|
15
|
-
/**
|
|
15
|
+
/** Null for gradients the editor cannot represent; callers keep the raw CSS. */
|
|
16
16
|
export declare function parseGradient(value: string): GradientValue | null;
|
|
17
17
|
export declare function serializeGradient(gradient: GradientValue): string;
|
|
@@ -16,7 +16,7 @@ function angleDegrees(value) {
|
|
|
16
16
|
default: return number;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
/**
|
|
19
|
+
/** Null for gradients the editor cannot represent; callers keep the raw CSS. */
|
|
20
20
|
export function parseGradient(value) {
|
|
21
21
|
if (splitTopLevel(value, ",").length !== 1)
|
|
22
22
|
return null;
|
|
@@ -35,7 +35,7 @@ export function parseGradient(value) {
|
|
|
35
35
|
const direction = /^(to\s+(?:(?:left|right|top|bottom)(?:\s+|$)){1,2})/.exec(prelude)?.[0]?.trim();
|
|
36
36
|
if (direction) {
|
|
37
37
|
const directions = { top: 0, "top right": 45, "right top": 45, right: 90, "bottom right": 135, "right bottom": 135, bottom: 180, "bottom left": 225, "left bottom": 225, left: 270, "top left": 315, "left top": 315 };
|
|
38
|
-
// Corner directions depend on the element's aspect ratio
|
|
38
|
+
// Corner directions depend on the element's aspect ratio; keep them as CSS.
|
|
39
39
|
if (direction.slice(3).includes(" "))
|
|
40
40
|
return null;
|
|
41
41
|
angle = directions[direction.slice(3)] ?? 180;
|
|
@@ -102,6 +102,7 @@ export function parseGradient(value) {
|
|
|
102
102
|
}
|
|
103
103
|
start = end;
|
|
104
104
|
}
|
|
105
|
+
// SAFETY: interpolation above fills every null position, so each stop has a numeric position.
|
|
105
106
|
return { type, repeating: Boolean(match[1]), angle, prelude, stops: stops };
|
|
106
107
|
}
|
|
107
108
|
export function serializeGradient(gradient) {
|
|
@@ -2,72 +2,32 @@ import type { ChangeRecord } from "../tokens/editActions.js";
|
|
|
2
2
|
import { type EditTarget } from "../selection/editTarget.js";
|
|
3
3
|
/** One grid axis of a grid item: `column` maps to grid-column-*, `row` to grid-row-*. */
|
|
4
4
|
export type GridAxis = "column" | "row";
|
|
5
|
-
/**
|
|
6
|
-
* Alignment vocabulary for grid children. `default` defers to the container's
|
|
7
|
-
* `justify-items` / `align-items` (authored as `auto`); `fill` is `stretch`.
|
|
8
|
-
*/
|
|
9
5
|
export type GridChildAlignment = "auto" | "stretch" | "start" | "center" | "end";
|
|
10
6
|
export interface GridAxisPlacement {
|
|
11
|
-
/** Authored or computed start line token: "auto", a line number, or a named line. */
|
|
12
7
|
start: string;
|
|
13
|
-
/**
|
|
14
|
-
* Span when the placement is expressible as start + span N: the end side is
|
|
15
|
-
* `span N`, or both sides are definite positive line numbers. Null when the
|
|
16
|
-
* end side is auto, a negative line, or not derivable.
|
|
17
|
-
*/
|
|
8
|
+
/** Expressible as start + span N; null when the end side is auto, negative, or underivable. */
|
|
18
9
|
span: number | null;
|
|
19
10
|
}
|
|
20
11
|
export declare const GRID_CHILD_MAX_TRACKS = 12;
|
|
21
|
-
/** Parses a `span N` end-side token into N. */
|
|
22
12
|
export declare function parseSpanToken(value: string): number | null;
|
|
23
|
-
/**
|
|
24
|
-
* Reads one placement axis from authored CSS (preferred) falling back to
|
|
25
|
-
* computed CSS, which stays correct even when the authored rule uses the
|
|
26
|
-
* `grid-column` / `grid-row` shorthand.
|
|
27
|
-
*/
|
|
13
|
+
/** Computed CSS stays correct even when the authored rule uses the grid-column/grid-row shorthand. */
|
|
28
14
|
export declare function readGridAxisPlacement(el: HTMLElement, axis: GridAxis): GridAxisPlacement;
|
|
29
|
-
/**
|
|
30
|
-
* Commits one placement axis as managed longhands. The UI model is
|
|
31
|
-
* "start line + span", so editing either side recomposes both:
|
|
32
|
-
* a simple span is rewritten as `span N` (or `auto` for 1), while a negative
|
|
33
|
-
* end line ("to the last line") and plain auto ends are preserved untouched.
|
|
34
|
-
* `span: "keep"` re-commits the currently derived span, if any, so moving the
|
|
35
|
-
* start line keeps the item's size.
|
|
36
|
-
*/
|
|
15
|
+
/** `span: "keep"` re-commits the derived span so moving the start line keeps the item's size. */
|
|
37
16
|
export declare function commitGridAxisPlacement(target: EditTarget, axis: GridAxis, commit: {
|
|
38
17
|
start?: string;
|
|
39
18
|
span?: number | "keep";
|
|
40
19
|
}): ChangeRecord[];
|
|
41
|
-
/**
|
|
42
|
-
* Reads one self-alignment axis as a raw CSS token with `normal` mapped to
|
|
43
|
-
* `stretch`: on grid items `normal` has stretch behavior (except replaced
|
|
44
|
-
* elements), so labeling it "Parent default" would misdescribe the rendering
|
|
45
|
-
* and re-committing `auto` for it could change the layout. `auto` alone means
|
|
46
|
-
* the item defers to the container's `justify-items` / `align-items`.
|
|
47
|
-
*/
|
|
20
|
+
/** `normal` maps to `stretch`: that is its grid-item behavior, and re-committing `auto` would change layout. */
|
|
48
21
|
export declare function readGridChildAlignment(el: HTMLElement, axis: "h" | "v"): string;
|
|
49
|
-
/** Friendly alignment labels; `auto` resolves to the container's items alignment. */
|
|
50
22
|
export declare const GRID_CHILD_ALIGNMENT_OPTIONS: Array<{
|
|
51
23
|
value: GridChildAlignment;
|
|
52
24
|
label: string;
|
|
53
25
|
}>;
|
|
54
|
-
/**
|
|
55
|
-
* Commits one self-alignment axis. The alignment vocabulary is an open CSS
|
|
56
|
-
* set — the friendly pickers cover the common keywords while authored values
|
|
57
|
-
* such as `self-start` or `normal` round-trip verbatim — so this accepts any
|
|
58
|
-
* self-alignment token the UI puts in its options.
|
|
59
|
-
*/
|
|
26
|
+
/** Accepts any self-alignment token, not just the picker's keywords. */
|
|
60
27
|
export declare function commitGridChildAlignment(target: EditTarget, axis: "h" | "v", alignment: string): ChangeRecord[];
|
|
61
|
-
/**
|
|
62
|
-
* Resolved track count of the parent grid on one axis, when CSS makes it
|
|
63
|
-
* definite (auto-fill/auto-fit tracks cannot be counted). Caps at
|
|
64
|
-
* GRID_CHILD_MAX_TRACKS to bound generated line options.
|
|
65
|
-
*/
|
|
28
|
+
/** Null for auto-fill/auto-fit tracks, which CSS leaves indefinite. */
|
|
66
29
|
export declare function parentTrackCount(el: HTMLElement, axis: GridAxis): number | null;
|
|
67
|
-
/**
|
|
68
|
-
* Start-line options for one axis: Auto plus explicit line numbers. A grid
|
|
69
|
-
* with N tracks has N+1 lines, so the final start line is count + 1.
|
|
70
|
-
*/
|
|
30
|
+
/** A grid with N tracks has N+1 start lines. */
|
|
71
31
|
export declare function startLineOptions(trackCount: number | null): Array<{
|
|
72
32
|
value: string;
|
|
73
33
|
label: string;
|
|
@@ -12,16 +12,11 @@ function normalizeToken(value) {
|
|
|
12
12
|
function isLineNumber(value) {
|
|
13
13
|
return LINE_NUMBER.test(value);
|
|
14
14
|
}
|
|
15
|
-
/** Parses a `span N` end-side token into N. */
|
|
16
15
|
export function parseSpanToken(value) {
|
|
17
16
|
const match = SPAN_TOKEN.exec(value.trim());
|
|
18
17
|
return match ? Number(match[1]) : null;
|
|
19
18
|
}
|
|
20
|
-
/**
|
|
21
|
-
* Reads one placement axis from authored CSS (preferred) falling back to
|
|
22
|
-
* computed CSS, which stays correct even when the authored rule uses the
|
|
23
|
-
* `grid-column` / `grid-row` shorthand.
|
|
24
|
-
*/
|
|
19
|
+
/** Computed CSS stays correct even when the authored rule uses the grid-column/grid-row shorthand. */
|
|
25
20
|
export function readGridAxisPlacement(el, axis) {
|
|
26
21
|
const start = getLayoutValue(el, `grid-${axis}-start`);
|
|
27
22
|
const end = getLayoutValue(el, `grid-${axis}-end`);
|
|
@@ -42,14 +37,7 @@ export function readGridAxisPlacement(el, axis) {
|
|
|
42
37
|
}
|
|
43
38
|
return { start: startToken, span };
|
|
44
39
|
}
|
|
45
|
-
/**
|
|
46
|
-
* Commits one placement axis as managed longhands. The UI model is
|
|
47
|
-
* "start line + span", so editing either side recomposes both:
|
|
48
|
-
* a simple span is rewritten as `span N` (or `auto` for 1), while a negative
|
|
49
|
-
* end line ("to the last line") and plain auto ends are preserved untouched.
|
|
50
|
-
* `span: "keep"` re-commits the currently derived span, if any, so moving the
|
|
51
|
-
* start line keeps the item's size.
|
|
52
|
-
*/
|
|
40
|
+
/** `span: "keep"` re-commits the derived span so moving the start line keeps the item's size. */
|
|
53
41
|
export function commitGridAxisPlacement(target, axis, commit) {
|
|
54
42
|
const elements = targetElements(target);
|
|
55
43
|
const declarations = [];
|
|
@@ -77,20 +65,13 @@ export function commitGridAxisPlacement(target, axis, commit) {
|
|
|
77
65
|
declarations.push({ property: `grid-${axis}-end`, value: endValue });
|
|
78
66
|
return declarations.length > 0 ? setStyles(target, declarations) : [];
|
|
79
67
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Reads one self-alignment axis as a raw CSS token with `normal` mapped to
|
|
82
|
-
* `stretch`: on grid items `normal` has stretch behavior (except replaced
|
|
83
|
-
* elements), so labeling it "Parent default" would misdescribe the rendering
|
|
84
|
-
* and re-committing `auto` for it could change the layout. `auto` alone means
|
|
85
|
-
* the item defers to the container's `justify-items` / `align-items`.
|
|
86
|
-
*/
|
|
68
|
+
/** `normal` maps to `stretch`: that is its grid-item behavior, and re-committing `auto` would change layout. */
|
|
87
69
|
export function readGridChildAlignment(el, axis) {
|
|
88
70
|
const property = axis === "h" ? "justify-self" : "align-self";
|
|
89
71
|
const value = getLayoutValue(el, property);
|
|
90
72
|
const token = normalizeToken(value.authored ?? value.computed);
|
|
91
73
|
return token === "normal" ? "stretch" : token;
|
|
92
74
|
}
|
|
93
|
-
/** Friendly alignment labels; `auto` resolves to the container's items alignment. */
|
|
94
75
|
export const GRID_CHILD_ALIGNMENT_OPTIONS = [
|
|
95
76
|
{ value: "auto", label: "Parent default" },
|
|
96
77
|
{ value: "stretch", label: "Fill" },
|
|
@@ -98,22 +79,13 @@ export const GRID_CHILD_ALIGNMENT_OPTIONS = [
|
|
|
98
79
|
{ value: "center", label: "Center" },
|
|
99
80
|
{ value: "end", label: "End" },
|
|
100
81
|
];
|
|
101
|
-
/**
|
|
102
|
-
* Commits one self-alignment axis. The alignment vocabulary is an open CSS
|
|
103
|
-
* set — the friendly pickers cover the common keywords while authored values
|
|
104
|
-
* such as `self-start` or `normal` round-trip verbatim — so this accepts any
|
|
105
|
-
* self-alignment token the UI puts in its options.
|
|
106
|
-
*/
|
|
82
|
+
/** Accepts any self-alignment token, not just the picker's keywords. */
|
|
107
83
|
export function commitGridChildAlignment(target, axis, alignment) {
|
|
108
84
|
const property = axis === "h" ? "justify-self" : "align-self";
|
|
109
85
|
const record = setStyle(target, property, alignment);
|
|
110
86
|
return record ? [record] : [];
|
|
111
87
|
}
|
|
112
|
-
/**
|
|
113
|
-
* Resolved track count of the parent grid on one axis, when CSS makes it
|
|
114
|
-
* definite (auto-fill/auto-fit tracks cannot be counted). Caps at
|
|
115
|
-
* GRID_CHILD_MAX_TRACKS to bound generated line options.
|
|
116
|
-
*/
|
|
88
|
+
/** Null for auto-fill/auto-fit tracks, which CSS leaves indefinite. */
|
|
117
89
|
export function parentTrackCount(el, axis) {
|
|
118
90
|
const parent = el.parentElement;
|
|
119
91
|
if (!parent)
|
|
@@ -124,10 +96,7 @@ export function parentTrackCount(el, axis) {
|
|
|
124
96
|
return null;
|
|
125
97
|
return Math.min(count, GRID_CHILD_MAX_TRACKS);
|
|
126
98
|
}
|
|
127
|
-
/**
|
|
128
|
-
* Start-line options for one axis: Auto plus explicit line numbers. A grid
|
|
129
|
-
* with N tracks has N+1 lines, so the final start line is count + 1.
|
|
130
|
-
*/
|
|
99
|
+
/** A grid with N tracks has N+1 start lines. */
|
|
131
100
|
export function startLineOptions(trackCount) {
|
|
132
101
|
const lineCount = (trackCount ?? GRID_CHILD_MAX_TRACKS) + 1;
|
|
133
102
|
const options = [{ value: "auto", label: "Auto" }];
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { getStateStyleValue } from "../shell/stateValue.js";
|
|
2
|
+
import { meaningfulLayoutValue } from "./layoutValue.js";
|
|
3
|
+
/** Initial values of the properties tucked behind the size expander. */
|
|
4
|
+
const SIZE_DEFAULTS = {
|
|
5
|
+
"min-width": "0",
|
|
6
|
+
"min-height": "0",
|
|
7
|
+
"max-width": "none",
|
|
8
|
+
"max-height": "none",
|
|
9
|
+
"aspect-ratio": "auto",
|
|
10
|
+
};
|
|
11
|
+
const FLEX_CHILD_DEFAULTS = {
|
|
12
|
+
"flex-grow": "0",
|
|
13
|
+
"flex-shrink": "1",
|
|
14
|
+
"flex-basis": "auto",
|
|
15
|
+
"align-self": "auto",
|
|
16
|
+
order: "0",
|
|
17
|
+
};
|
|
18
|
+
const GRID_CHILD_DEFAULTS = {
|
|
19
|
+
"grid-column-start": "auto",
|
|
20
|
+
"grid-column-end": "auto",
|
|
21
|
+
"grid-row-start": "auto",
|
|
22
|
+
"grid-row-end": "auto",
|
|
23
|
+
"justify-self": "auto",
|
|
24
|
+
"align-self": "auto",
|
|
25
|
+
};
|
|
26
|
+
function normalize(value) {
|
|
27
|
+
const trimmed = value.trim().toLowerCase();
|
|
28
|
+
// `normal` is how browsers report an unset self-alignment; it behaves like `auto`.
|
|
29
|
+
if (trimmed === "normal")
|
|
30
|
+
return "auto";
|
|
31
|
+
return /^0(px|%|em|rem)?$/.test(trimmed) ? "0" : trimmed;
|
|
32
|
+
}
|
|
33
|
+
/** True when anything the size expander hides differs from its initial value, so the toggle can flag it. */
|
|
34
|
+
export function hasHiddenSizeOverrides(el, parent) {
|
|
35
|
+
const sizeChanged = Object.entries(SIZE_DEFAULTS)
|
|
36
|
+
.some(([property, initial]) => normalize(meaningfulLayoutValue(el, property)) !== initial);
|
|
37
|
+
if (sizeChanged)
|
|
38
|
+
return true;
|
|
39
|
+
const childDefaults = parent.flexChild ? FLEX_CHILD_DEFAULTS : parent.gridChild ? GRID_CHILD_DEFAULTS : null;
|
|
40
|
+
return childDefaults !== null && Object.entries(childDefaults)
|
|
41
|
+
.some(([property, initial]) => normalize(getStateStyleValue(el, property, initial)) !== initial);
|
|
42
|
+
}
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the inline-authored source when `el` carries the property — or a
|
|
3
|
-
* shorthand that sets it — in its `style` attribute. Managed previews can
|
|
4
|
-
* never beat inline styles in the cascade, so a non-null result means the
|
|
5
|
-
* field must present as blocked instead of accepting edits that silently
|
|
6
|
-
* revert (see `verifyPreview`'s "inline-style" conflict).
|
|
7
|
-
*/
|
|
1
|
+
/** Non-null means the field must present as blocked: previews cannot beat inline styles in the cascade. */
|
|
8
2
|
export declare function inlineAuthoredValue(el: HTMLElement, property: string): string | null;
|
|
9
|
-
/** First inline-authored source that blocks any of `properties` on any of `elements`. */
|
|
10
3
|
export declare function inlineBlockedBy(elements: readonly HTMLElement[], ...properties: readonly string[]): string | null;
|