nudge-ui 0.2.0
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/README.md +66 -0
- package/bin/nudge-ui.mjs +7 -0
- package/dist/LICENSE +21 -0
- package/dist/client.mjs +261 -0
- package/dist/compiler/ast.d.ts +18 -0
- package/dist/compiler/ast.js +75 -0
- package/dist/compiler/componentContractTypes.d.ts +19 -0
- package/dist/compiler/componentContractTypes.js +1 -0
- package/dist/compiler/componentContracts.d.ts +2 -0
- package/dist/compiler/componentContracts.js +260 -0
- package/dist/compiler/componentInstrumentation.d.ts +32 -0
- package/dist/compiler/componentInstrumentation.js +140 -0
- package/dist/compiler/componentPolicyResolution.d.ts +71 -0
- package/dist/compiler/componentPolicyResolution.js +388 -0
- package/dist/compiler/index.d.ts +9 -0
- package/dist/compiler/index.js +9 -0
- package/dist/compiler/packageComponentContracts.d.ts +32 -0
- package/dist/compiler/packageComponentContracts.js +308 -0
- package/dist/compiler/reactComponentProtocols.d.ts +145 -0
- package/dist/compiler/reactComponentProtocols.js +47 -0
- package/dist/compiler/reactIdentity.d.ts +15 -0
- package/dist/compiler/reactIdentity.js +339 -0
- package/dist/compiler/sourcePaths.d.ts +12 -0
- package/dist/compiler/sourcePaths.js +27 -0
- package/dist/css/dialects/index.d.ts +62 -0
- package/dist/css/dialects/index.js +103 -0
- package/dist/css/dialects/tailwind.d.ts +46 -0
- package/dist/css/dialects/tailwind.js +119 -0
- package/dist/css/dialects/vanillaExtract.d.ts +20 -0
- package/dist/css/dialects/vanillaExtract.js +32 -0
- package/dist/css/index.d.ts +10 -0
- package/dist/css/index.js +10 -0
- package/dist/css/model/index.d.ts +190 -0
- package/dist/css/model/index.js +10 -0
- package/dist/css/token-inventory/index.d.ts +26 -0
- package/dist/css/token-inventory/index.js +24 -0
- package/dist/css/token-inventory/inventory.d.ts +8 -0
- package/dist/css/token-inventory/inventory.js +421 -0
- package/dist/css/token-inventory/parseStylesheet.d.ts +16 -0
- package/dist/css/token-inventory/parseStylesheet.js +155 -0
- package/dist/css/token-inventory/policy.d.ts +47 -0
- package/dist/css/token-inventory/policy.js +50 -0
- package/dist/css/token-inventory/types.d.ts +97 -0
- package/dist/css/token-inventory/types.js +1 -0
- package/dist/css/value-semantics/borderSemantics.d.ts +28 -0
- package/dist/css/value-semantics/borderSemantics.js +91 -0
- package/dist/css/value-semantics/boxSemantics.d.ts +37 -0
- package/dist/css/value-semantics/boxSemantics.js +71 -0
- package/dist/css/value-semantics/colorSemantics.d.ts +99 -0
- package/dist/css/value-semantics/colorSemantics.js +526 -0
- package/dist/css/value-semantics/cssSyntax.d.ts +19 -0
- package/dist/css/value-semantics/cssSyntax.js +111 -0
- package/dist/css/value-semantics/fontSemantics.d.ts +35 -0
- package/dist/css/value-semantics/fontSemantics.js +131 -0
- package/dist/css/value-semantics/index.d.ts +20 -0
- package/dist/css/value-semantics/index.js +15 -0
- package/dist/css/value-semantics/propertyPolicy.d.ts +118 -0
- package/dist/css/value-semantics/propertyPolicy.js +356 -0
- package/dist/css/value-semantics/stringMaps.d.ts +2 -0
- package/dist/css/value-semantics/stringMaps.js +1 -0
- package/dist/css/value-semantics/structuredValues.d.ts +64 -0
- package/dist/css/value-semantics/structuredValues.js +250 -0
- package/dist/css/value-semantics/tokenInterpretation.d.ts +90 -0
- package/dist/css/value-semantics/tokenInterpretation.js +193 -0
- package/dist/css/virtual-design-tokens.d.ts +17 -0
- package/dist/hosts/astro/astroRuntimeConfig.d.ts +12 -0
- package/dist/hosts/astro/astroRuntimeConfig.js +26 -0
- package/dist/hosts/astro/clientAsset.d.ts +12 -0
- package/dist/hosts/astro/clientAsset.js +51 -0
- package/dist/hosts/astro/clientTransport.d.ts +3 -0
- package/dist/hosts/astro/clientTransport.js +57 -0
- package/dist/hosts/astro/index.d.ts +3 -0
- package/dist/hosts/astro/index.js +2 -0
- package/dist/hosts/astro/integration.d.ts +35 -0
- package/dist/hosts/astro/integration.js +96 -0
- package/dist/hosts/astro/middleware.d.ts +13 -0
- package/dist/hosts/astro/middleware.js +22 -0
- package/dist/hosts/astro/projectContext.d.ts +11 -0
- package/dist/hosts/astro/projectContext.js +34 -0
- package/dist/hosts/astro/responseInstrumentation.d.ts +41 -0
- package/dist/hosts/astro/responseInstrumentation.js +80 -0
- package/dist/hosts/next/index.d.ts +4 -0
- package/dist/hosts/next/index.js +7 -0
- package/dist/hosts/next/loader.d.ts +66 -0
- package/dist/hosts/next/loader.js +346 -0
- package/dist/hosts/next/loaders/identity-loader.cjs +228257 -0
- package/dist/hosts/next/loaders/loader-plugin.cjs +228257 -0
- package/dist/hosts/next/manifest.d.ts +38 -0
- package/dist/hosts/next/manifest.js +30 -0
- package/dist/hosts/next/mount.d.ts +12 -0
- package/dist/hosts/next/mount.js +23 -0
- package/dist/hosts/next/repositoryScope.d.ts +20 -0
- package/dist/hosts/next/repositoryScope.js +33 -0
- package/dist/hosts/next/sidecar.d.ts +27 -0
- package/dist/hosts/next/sidecar.js +526 -0
- package/dist/hosts/next/wrapper.d.ts +67 -0
- package/dist/hosts/next/wrapper.js +310 -0
- package/dist/hosts/static/cli.d.ts +12 -0
- package/dist/hosts/static/cli.js +77 -0
- package/dist/hosts/static/html/bootstrap.d.ts +27 -0
- package/dist/hosts/static/html/bootstrap.js +93 -0
- package/dist/hosts/static/index.d.ts +4 -0
- package/dist/hosts/static/index.js +4 -0
- package/dist/hosts/static/manifest.d.ts +18 -0
- package/dist/hosts/static/manifest.js +51 -0
- package/dist/hosts/static/server.d.ts +72 -0
- package/dist/hosts/static/server.js +554 -0
- package/dist/hosts/vite/index.d.ts +20 -0
- package/dist/hosts/vite/index.js +48 -0
- package/dist/hosts/vite/react.d.ts +67 -0
- package/dist/hosts/vite/react.js +231 -0
- package/dist/hosts/vite/tokens/activeStylesheets.d.ts +28 -0
- package/dist/hosts/vite/tokens/activeStylesheets.js +70 -0
- package/dist/hosts/vite/tokens/fileMap.d.ts +2 -0
- package/dist/hosts/vite/tokens/fileMap.js +1 -0
- package/dist/hosts/vite/tokens/viteStylesheetArtifacts.d.ts +46 -0
- package/dist/hosts/vite/tokens/viteStylesheetArtifacts.js +104 -0
- package/dist/hosts/vite/virtual/design-tokens.d.ts +9 -0
- package/dist/hosts/vite/virtual/design-tokens.js +7 -0
- package/dist/hosts/vite/virtual-design-tokens.d.ts +1 -0
- package/dist/hosts/vite/vite.d.ts +62 -0
- package/dist/hosts/vite/vite.js +854 -0
- package/dist/html/dom.d.ts +13 -0
- package/dist/html/dom.js +46 -0
- package/dist/html/identity.d.ts +40 -0
- package/dist/html/identity.js +196 -0
- package/dist/html/insertions.d.ts +26 -0
- package/dist/html/insertions.js +59 -0
- package/dist/inspector/agent/McpConnectionDialog.d.ts +26 -0
- package/dist/inspector/agent/McpConnectionDialog.js +135 -0
- package/dist/inspector/agent/client.d.ts +98 -0
- package/dist/inspector/agent/client.js +728 -0
- package/dist/inspector/agent/connectionStatus.d.ts +13 -0
- package/dist/inspector/agent/connectionStatus.js +35 -0
- package/dist/inspector/agent/httpTransport.d.ts +21 -0
- package/dist/inspector/agent/httpTransport.js +347 -0
- package/dist/inspector/agent/protocol.d.ts +95 -0
- package/dist/inspector/agent/protocol.js +9 -0
- package/dist/inspector/agent/verification.d.ts +39 -0
- package/dist/inspector/agent/verification.js +207 -0
- package/dist/inspector/canvas/CanvasCard.d.ts +10 -0
- package/dist/inspector/canvas/CanvasCard.js +275 -0
- package/dist/inspector/canvas/CanvasElementOverlay.d.ts +2 -0
- package/dist/inspector/canvas/CanvasElementOverlay.js +301 -0
- package/dist/inspector/canvas/CanvasWorkspace.d.ts +2 -0
- package/dist/inspector/canvas/CanvasWorkspace.js +301 -0
- package/dist/inspector/canvas/LockedWorkspaceNotice.d.ts +6 -0
- package/dist/inspector/canvas/LockedWorkspaceNotice.js +17 -0
- package/dist/inspector/canvas/StaleChangeIndicator.d.ts +7 -0
- package/dist/inspector/canvas/StaleChangeIndicator.js +43 -0
- package/dist/inspector/canvas/agentPresentation.d.ts +87 -0
- package/dist/inspector/canvas/agentPresentation.js +421 -0
- package/dist/inspector/canvas/canvasGestures.d.ts +12 -0
- package/dist/inspector/canvas/canvasGestures.js +21 -0
- package/dist/inspector/canvas/canvasStore.d.ts +108 -0
- package/dist/inspector/canvas/canvasStore.js +448 -0
- package/dist/inspector/canvas/frameProtocol.d.ts +231 -0
- package/dist/inspector/canvas/frameProtocol.js +165 -0
- package/dist/inspector/canvas/linkEligibility.d.ts +8 -0
- package/dist/inspector/canvas/linkEligibility.js +68 -0
- package/dist/inspector/canvas/measurementProjection.d.ts +8 -0
- package/dist/inspector/canvas/measurementProjection.js +16 -0
- package/dist/inspector/canvas/normalizeUrl.d.ts +7 -0
- package/dist/inspector/canvas/normalizeUrl.js +27 -0
- package/dist/inspector/canvas/projection.d.ts +41 -0
- package/dist/inspector/canvas/projection.js +232 -0
- package/dist/inspector/canvas/rendererBootstrap.d.ts +4 -0
- package/dist/inspector/canvas/rendererBootstrap.js +410 -0
- package/dist/inspector/canvas/rendererCidIndex.d.ts +11 -0
- package/dist/inspector/canvas/rendererCidIndex.js +21 -0
- package/dist/inspector/canvas/rendererElementSelector.d.ts +2 -0
- package/dist/inspector/canvas/rendererElementSelector.js +378 -0
- package/dist/inspector/canvas/rendererSelectionProxy.d.ts +2 -0
- package/dist/inspector/canvas/rendererSelectionProxy.js +61 -0
- package/dist/inspector/canvas/rendererStylesheet.d.ts +16 -0
- package/dist/inspector/canvas/rendererStylesheet.js +221 -0
- package/dist/inspector/canvas/resizeHandleScale.d.ts +13 -0
- package/dist/inspector/canvas/resizeHandleScale.js +20 -0
- package/dist/inspector/canvas/roleDetection.d.ts +5 -0
- package/dist/inspector/canvas/roleDetection.js +21 -0
- package/dist/inspector/canvas/sessionStore.d.ts +71 -0
- package/dist/inspector/canvas/sessionStore.js +453 -0
- package/dist/inspector/canvas/staleChangeDetector.d.ts +11 -0
- package/dist/inspector/canvas/staleChangeDetector.js +217 -0
- package/dist/inspector/canvas/toolbarScale.d.ts +7 -0
- package/dist/inspector/canvas/toolbarScale.js +11 -0
- package/dist/inspector/canvas/workspaceLease.d.ts +26 -0
- package/dist/inspector/canvas/workspaceLease.js +214 -0
- package/dist/inspector/changes/changesLog.d.ts +46 -0
- package/dist/inspector/changes/changesLog.js +209 -0
- package/dist/inspector/changes/codecs.d.ts +98 -0
- package/dist/inspector/changes/codecs.js +389 -0
- package/dist/inspector/changes/editModel.d.ts +74 -0
- package/dist/inspector/changes/editModel.js +120 -0
- package/dist/inspector/changes/managedStyleProjection.d.ts +6 -0
- package/dist/inspector/changes/managedStyleProjection.js +109 -0
- package/dist/inspector/changes/model.d.ts +13 -0
- package/dist/inspector/changes/model.js +163 -0
- package/dist/inspector/changes/presentation.d.ts +14 -0
- package/dist/inspector/changes/presentation.js +81 -0
- package/dist/inspector/changes/previewDiagnostics.d.ts +39 -0
- package/dist/inspector/changes/previewDiagnostics.js +172 -0
- package/dist/inspector/changes/structuralTypes.d.ts +35 -0
- package/dist/inspector/changes/structuralTypes.js +1 -0
- package/dist/inspector/changes/types.d.ts +76 -0
- package/dist/inspector/changes/types.js +16 -0
- package/dist/inspector/changes/workspaceChanges.d.ts +43 -0
- package/dist/inspector/changes/workspaceChanges.js +239 -0
- package/dist/inspector/clientManifest.d.ts +24 -0
- package/dist/inspector/clientManifest.js +69 -0
- package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +5 -0
- package/dist/inspector/componentSemantics/ComponentPropsSection.js +44 -0
- package/dist/inspector/componentSemantics/adapterRegistry.d.ts +11 -0
- package/dist/inspector/componentSemantics/adapterRegistry.js +75 -0
- package/dist/inspector/componentSemantics/boundaries.d.ts +2 -0
- package/dist/inspector/componentSemantics/boundaries.js +10 -0
- package/dist/inspector/componentSemantics/changeAction.d.ts +3 -0
- package/dist/inspector/componentSemantics/changeAction.js +6 -0
- package/dist/inspector/componentSemantics/changeModel.d.ts +8 -0
- package/dist/inspector/componentSemantics/changeModel.js +60 -0
- package/dist/inspector/componentSemantics/index.d.ts +4 -0
- package/dist/inspector/componentSemantics/index.js +2 -0
- package/dist/inspector/componentSemantics/reactRuntime.d.ts +10 -0
- package/dist/inspector/componentSemantics/reactRuntime.js +186 -0
- package/dist/inspector/componentSemantics/runtimeBridge.d.ts +25 -0
- package/dist/inspector/componentSemantics/runtimeBridge.js +161 -0
- package/dist/inspector/componentSemantics/runtimeTypes.d.ts +2 -0
- package/dist/inspector/componentSemantics/runtimeTypes.js +1 -0
- package/dist/inspector/componentSemantics/textBinding.d.ts +69 -0
- package/dist/inspector/componentSemantics/textBinding.js +514 -0
- package/dist/inspector/componentSemantics/types.d.ts +96 -0
- package/dist/inspector/componentSemantics/types.js +5 -0
- package/dist/inspector/conformance/borderCases.d.ts +7 -0
- package/dist/inspector/conformance/borderCases.js +428 -0
- package/dist/inspector/conformance/colorCases.d.ts +8 -0
- package/dist/inspector/conformance/colorCases.js +470 -0
- package/dist/inspector/conformance/fixture.d.ts +68 -0
- package/dist/inspector/conformance/fixture.js +153 -0
- package/dist/inspector/conformance/projection.d.ts +2 -0
- package/dist/inspector/conformance/projection.js +3 -0
- package/dist/inspector/conformance/spacingCases.d.ts +6 -0
- package/dist/inspector/conformance/spacingCases.js +417 -0
- package/dist/inspector/conformance/typographyCases.d.ts +7 -0
- package/dist/inspector/conformance/typographyCases.js +174 -0
- package/dist/inspector/editScope.d.ts +4 -0
- package/dist/inspector/editScope.js +5 -0
- package/dist/inspector/index.d.ts +20 -0
- package/dist/inspector/index.js +236 -0
- package/dist/inspector/inline-text/inlineTextEditor.d.ts +74 -0
- package/dist/inspector/inline-text/inlineTextEditor.js +1207 -0
- package/dist/inspector/inline-text/inlineTextLifecycle.d.ts +2 -0
- package/dist/inspector/inline-text/inlineTextLifecycle.js +17 -0
- package/dist/inspector/inline-text/textChangeBoundary.d.ts +6 -0
- package/dist/inspector/inline-text/textChangeBoundary.js +1 -0
- package/dist/inspector/inspection/bridge.d.ts +72 -0
- package/dist/inspector/inspection/bridge.js +134 -0
- package/dist/inspector/inspection/browserCssInspection.d.ts +74 -0
- package/dist/inspector/inspection/browserCssInspection.js +317 -0
- package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +12 -0
- package/dist/inspector/inspection/browserCssInspectionRegistry.js +66 -0
- package/dist/inspector/inspection/selectionProperty.d.ts +32 -0
- package/dist/inspector/inspection/selectionProperty.js +33 -0
- package/dist/inspector/inspection/useBrowserCssInspection.d.ts +20 -0
- package/dist/inspector/inspection/useBrowserCssInspection.js +159 -0
- package/dist/inspector/overlay/DropGuideOverlay.d.ts +17 -0
- package/dist/inspector/overlay/DropGuideOverlay.js +17 -0
- package/dist/inspector/overlay/InspectorOverlay.d.ts +5 -0
- package/dist/inspector/overlay/InspectorOverlay.js +328 -0
- package/dist/inspector/overlay/MeasurementGuideOverlay.d.ts +19 -0
- package/dist/inspector/overlay/MeasurementGuideOverlay.js +40 -0
- package/dist/inspector/overlay/clickPolicy.d.ts +7 -0
- package/dist/inspector/overlay/clickPolicy.js +13 -0
- package/dist/inspector/overlay/dropGuide.d.ts +22 -0
- package/dist/inspector/overlay/dropGuide.js +48 -0
- package/dist/inspector/overlay/elementSelector.d.ts +1 -0
- package/dist/inspector/overlay/elementSelector.js +100 -0
- package/dist/inspector/overlay/frameThrottle.d.ts +10 -0
- package/dist/inspector/overlay/frameThrottle.js +38 -0
- package/dist/inspector/overlay/interactionStyles.d.ts +3 -0
- package/dist/inspector/overlay/interactionStyles.js +70 -0
- package/dist/inspector/overlay/measurementGeometry.d.ts +25 -0
- package/dist/inspector/overlay/measurementGeometry.js +104 -0
- package/dist/inspector/overlay/overlayGeometry.d.ts +40 -0
- package/dist/inspector/overlay/overlayGeometry.js +59 -0
- package/dist/inspector/overlay/selectedGeometry.d.ts +7 -0
- package/dist/inspector/overlay/selectedGeometry.js +51 -0
- package/dist/inspector/overlay/structuralGestures.d.ts +28 -0
- package/dist/inspector/overlay/structuralGestures.js +180 -0
- package/dist/inspector/projection/cssEscapes.d.ts +3 -0
- package/dist/inspector/projection/cssEscapes.js +20 -0
- package/dist/inspector/projection/managedStylesheet.d.ts +33 -0
- package/dist/inspector/projection/managedStylesheet.js +240 -0
- package/dist/inspector/projection/renderedInstance.d.ts +56 -0
- package/dist/inspector/projection/renderedInstance.js +306 -0
- package/dist/inspector/projection/structuralProjection.d.ts +93 -0
- package/dist/inspector/projection/structuralProjection.js +560 -0
- package/dist/inspector/projection/structuralProjectionBoundary.d.ts +5 -0
- package/dist/inspector/projection/structuralProjectionBoundary.js +65 -0
- package/dist/inspector/projection/textProjection.d.ts +53 -0
- package/dist/inspector/projection/textProjection.js +705 -0
- package/dist/inspector/projection/workspaceProjection.d.ts +43 -0
- package/dist/inspector/projection/workspaceProjection.js +58 -0
- package/dist/inspector/prompt/PromptSettingsDialog.d.ts +15 -0
- package/dist/inspector/prompt/PromptSettingsDialog.js +17 -0
- package/dist/inspector/prompt/clipboardHandoff.d.ts +34 -0
- package/dist/inspector/prompt/clipboardHandoff.js +212 -0
- package/dist/inspector/prompt/copyToClipboard.d.ts +1 -0
- package/dist/inspector/prompt/copyToClipboard.js +34 -0
- package/dist/inspector/prompt/detectFramework.d.ts +6 -0
- package/dist/inspector/prompt/detectFramework.js +4 -0
- package/dist/inspector/prompt/generatePrompt.d.ts +7 -0
- package/dist/inspector/prompt/generatePrompt.js +391 -0
- package/dist/inspector/prompt/promptSettings.d.ts +8 -0
- package/dist/inspector/prompt/promptSettings.js +28 -0
- package/dist/inspector/runtime/devFlag.d.ts +28 -0
- package/dist/inspector/runtime/devFlag.js +50 -0
- package/dist/inspector/runtime/documentStylesheetOrder.d.ts +19 -0
- package/dist/inspector/runtime/documentStylesheetOrder.js +89 -0
- package/dist/inspector/runtime/domRealm.d.ts +4 -0
- package/dist/inspector/runtime/domRealm.js +11 -0
- package/dist/inspector/runtime/runtimeConfig.d.ts +119 -0
- package/dist/inspector/runtime/runtimeConfig.js +276 -0
- package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +32 -0
- package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +149 -0
- package/dist/inspector/runtime/useRuntimeConfig.d.ts +10 -0
- package/dist/inspector/runtime/useRuntimeConfig.js +13 -0
- package/dist/inspector/selection/editScope.d.ts +32 -0
- package/dist/inspector/selection/editScope.js +140 -0
- package/dist/inspector/selection/editTarget.d.ts +8 -0
- package/dist/inspector/selection/editTarget.js +11 -0
- package/dist/inspector/selection/hierarchy.d.ts +7 -0
- package/dist/inspector/selection/hierarchy.js +42 -0
- package/dist/inspector/selection/resolveSelection.d.ts +10 -0
- package/dist/inspector/selection/resolveSelection.js +60 -0
- package/dist/inspector/selection/selectionStore.d.ts +41 -0
- package/dist/inspector/selection/selectionStore.js +262 -0
- package/dist/inspector/selection/selectionTarget.d.ts +5 -0
- package/dist/inspector/selection/selectionTarget.js +50 -0
- package/dist/inspector/selection/sourceSite.d.ts +2 -0
- package/dist/inspector/selection/sourceSite.js +12 -0
- package/dist/inspector/selection/styleSelection.d.ts +22 -0
- package/dist/inspector/selection/styleSelection.js +104 -0
- package/dist/inspector/session/index.d.ts +3 -0
- package/dist/inspector/session/index.js +2 -0
- package/dist/inspector/session/lifecycle.d.ts +22 -0
- package/dist/inspector/session/lifecycle.js +63 -0
- package/dist/inspector/session/sessionContext.d.ts +21 -0
- package/dist/inspector/session/sessionContext.js +28 -0
- package/dist/inspector/session/sessionFactory.d.ts +29 -0
- package/dist/inspector/session/sessionFactory.js +73 -0
- package/dist/inspector/settings/SettingsDialog.d.ts +12 -0
- package/dist/inspector/settings/SettingsDialog.js +46 -0
- package/dist/inspector/shell/AppShell.d.ts +2 -0
- package/dist/inspector/shell/AppShell.js +9 -0
- package/dist/inspector/shell/ChangesLog.d.ts +6 -0
- package/dist/inspector/shell/ChangesLog.js +92 -0
- package/dist/inspector/shell/CopyPromptButton.d.ts +9 -0
- package/dist/inspector/shell/CopyPromptButton.js +159 -0
- package/dist/inspector/shell/DomNavigation.d.ts +8 -0
- package/dist/inspector/shell/DomNavigation.js +30 -0
- package/dist/inspector/shell/EmptyState.d.ts +2 -0
- package/dist/inspector/shell/EmptyState.js +15 -0
- package/dist/inspector/shell/InspectorShell.d.ts +11 -0
- package/dist/inspector/shell/InspectorShell.js +268 -0
- package/dist/inspector/shell/openStore.d.ts +6 -0
- package/dist/inspector/shell/openStore.js +29 -0
- package/dist/inspector/shell/panelLayout.d.ts +2 -0
- package/dist/inspector/shell/panelLayout.js +29 -0
- package/dist/inspector/shell/shortcuts.d.ts +3 -0
- package/dist/inspector/shell/shortcuts.js +25 -0
- package/dist/inspector/shell/stateValue.d.ts +3 -0
- package/dist/inspector/shell/stateValue.js +34 -0
- package/dist/inspector/shell/styleState.d.ts +7 -0
- package/dist/inspector/shell/styleState.js +13 -0
- package/dist/inspector/spacing/projection.d.ts +43 -0
- package/dist/inspector/spacing/projection.js +136 -0
- package/dist/inspector/styleEditors/AppearanceSection.d.ts +13 -0
- package/dist/inspector/styleEditors/AppearanceSection.js +6 -0
- package/dist/inspector/styleEditors/AspectRatioField.d.ts +17 -0
- package/dist/inspector/styleEditors/AspectRatioField.js +10 -0
- package/dist/inspector/styleEditors/BorderEditor.d.ts +13 -0
- package/dist/inspector/styleEditors/BorderEditor.js +295 -0
- package/dist/inspector/styleEditors/BorderRadiusEditor.d.ts +14 -0
- package/dist/inspector/styleEditors/BorderRadiusEditor.js +108 -0
- package/dist/inspector/styleEditors/BoxShadowEditor.d.ts +13 -0
- package/dist/inspector/styleEditors/BoxShadowEditor.js +13 -0
- package/dist/inspector/styleEditors/ColorPicker.d.ts +15 -0
- package/dist/inspector/styleEditors/ColorPicker.js +73 -0
- package/dist/inspector/styleEditors/GapField.d.ts +17 -0
- package/dist/inspector/styleEditors/GapField.js +12 -0
- package/dist/inspector/styleEditors/GridChildSection.d.ts +14 -0
- package/dist/inspector/styleEditors/GridChildSection.js +91 -0
- package/dist/inspector/styleEditors/GridPicker.d.ts +13 -0
- package/dist/inspector/styleEditors/GridPicker.js +179 -0
- package/dist/inspector/styleEditors/GridSection.d.ts +17 -0
- package/dist/inspector/styleEditors/GridSection.js +27 -0
- package/dist/inspector/styleEditors/GridValueField.d.ts +17 -0
- package/dist/inspector/styleEditors/GridValueField.js +70 -0
- package/dist/inspector/styleEditors/InsetSection.d.ts +15 -0
- package/dist/inspector/styleEditors/InsetSection.js +15 -0
- package/dist/inspector/styleEditors/LayoutBlockedIndicator.d.ts +6 -0
- package/dist/inspector/styleEditors/LayoutBlockedIndicator.js +6 -0
- package/dist/inspector/styleEditors/LayoutComboField.d.ts +18 -0
- package/dist/inspector/styleEditors/LayoutComboField.js +138 -0
- package/dist/inspector/styleEditors/LayoutDropdown.d.ts +14 -0
- package/dist/inspector/styleEditors/LayoutDropdown.js +34 -0
- package/dist/inspector/styleEditors/LayoutSection.d.ts +13 -0
- package/dist/inspector/styleEditors/LayoutSection.js +342 -0
- package/dist/inspector/styleEditors/OpacityEditor.d.ts +13 -0
- package/dist/inspector/styleEditors/OpacityEditor.js +34 -0
- package/dist/inspector/styleEditors/PositionInsets.d.ts +15 -0
- package/dist/inspector/styleEditors/PositionInsets.js +12 -0
- package/dist/inspector/styleEditors/SpacingBox.d.ts +29 -0
- package/dist/inspector/styleEditors/SpacingBox.js +189 -0
- package/dist/inspector/styleEditors/Typography.d.ts +13 -0
- package/dist/inspector/styleEditors/Typography.js +137 -0
- package/dist/inspector/styleEditors/completeCssValue.d.ts +8 -0
- package/dist/inspector/styleEditors/completeCssValue.js +34 -0
- package/dist/inspector/styleEditors/gridChildModel.d.ts +74 -0
- package/dist/inspector/styleEditors/gridChildModel.js +138 -0
- package/dist/inspector/styleEditors/layoutValue.d.ts +24 -0
- package/dist/inspector/styleEditors/layoutValue.js +103 -0
- package/dist/inspector/styleEditors/nudgeValue.d.ts +8 -0
- package/dist/inspector/styleEditors/nudgeValue.js +71 -0
- package/dist/inspector/styleEditors/rowLookup.d.ts +11 -0
- package/dist/inspector/styleEditors/rowLookup.js +13 -0
- package/dist/inspector/styleEditors/stringRecord.d.ts +4 -0
- package/dist/inspector/styleEditors/stringRecord.js +1 -0
- package/dist/inspector/styleEditors/valuePolicy.d.ts +20 -0
- package/dist/inspector/styleEditors/valuePolicy.js +82 -0
- package/dist/inspector/testing.d.ts +10 -0
- package/dist/inspector/testing.js +9 -0
- package/dist/inspector/tokens/TokenChip.d.ts +24 -0
- package/dist/inspector/tokens/TokenChip.js +23 -0
- package/dist/inspector/tokens/TokenDropdown.d.ts +13 -0
- package/dist/inspector/tokens/TokenDropdown.js +59 -0
- package/dist/inspector/tokens/TokenField.d.ts +68 -0
- package/dist/inspector/tokens/TokenField.js +485 -0
- package/dist/inspector/tokens/TokenLabel.d.ts +7 -0
- package/dist/inspector/tokens/TokenLabel.js +23 -0
- package/dist/inspector/tokens/TokensPanel.d.ts +5 -0
- package/dist/inspector/tokens/TokensPanel.js +47 -0
- package/dist/inspector/tokens/catalog.d.ts +51 -0
- package/dist/inspector/tokens/catalog.js +184 -0
- package/dist/inspector/tokens/editActions.d.ts +35 -0
- package/dist/inspector/tokens/editActions.js +164 -0
- package/dist/inspector/tokens/resolution/cascade.d.ts +14 -0
- package/dist/inspector/tokens/resolution/cascade.js +31 -0
- package/dist/inspector/tokens/resolution/cssomCollector.d.ts +43 -0
- package/dist/inspector/tokens/resolution/cssomCollector.js +528 -0
- package/dist/inspector/tokens/resolution/selectorSemantics.d.ts +12 -0
- package/dist/inspector/tokens/resolution/selectorSemantics.js +106 -0
- package/dist/inspector/tokens/resolution.d.ts +56 -0
- package/dist/inspector/tokens/resolution.js +1401 -0
- package/dist/inspector/tokens/tokenEdits.d.ts +3 -0
- package/dist/inspector/tokens/tokenEdits.js +22 -0
- package/dist/inspector/tokens/valueSemanticsAdapter.d.ts +6 -0
- package/dist/inspector/tokens/valueSemanticsAdapter.js +68 -0
- package/dist/inspector/ui/AtRuleContext.d.ts +18 -0
- package/dist/inspector/ui/AtRuleContext.js +54 -0
- package/dist/inspector/ui/Button.d.ts +9 -0
- package/dist/inspector/ui/Button.js +4 -0
- package/dist/inspector/ui/ColorSwatch.d.ts +7 -0
- package/dist/inspector/ui/ColorSwatch.js +6 -0
- package/dist/inspector/ui/ControlSurface.d.ts +14 -0
- package/dist/inspector/ui/ControlSurface.js +10 -0
- package/dist/inspector/ui/FieldRow.d.ts +14 -0
- package/dist/inspector/ui/FieldRow.js +15 -0
- package/dist/inspector/ui/IconButton.d.ts +14 -0
- package/dist/inspector/ui/IconButton.js +5 -0
- package/dist/inspector/ui/InspectorPopover.d.ts +17 -0
- package/dist/inspector/ui/InspectorPopover.js +13 -0
- package/dist/inspector/ui/PopoverListbox.d.ts +37 -0
- package/dist/inspector/ui/PopoverListbox.js +21 -0
- package/dist/inspector/ui/SegmentedControl.d.ts +24 -0
- package/dist/inspector/ui/SegmentedControl.js +16 -0
- package/dist/inspector/ui/Select.d.ts +25 -0
- package/dist/inspector/ui/Select.js +56 -0
- package/dist/inspector/ui/SideValuesField.d.ts +44 -0
- package/dist/inspector/ui/SideValuesField.js +76 -0
- package/dist/inspector/ui/StatusCallout.d.ts +9 -0
- package/dist/inspector/ui/StatusCallout.js +4 -0
- package/dist/inspector/ui/TextInput.d.ts +12 -0
- package/dist/inspector/ui/TextInput.js +5 -0
- package/dist/inspector/ui/ToggleButton.d.ts +11 -0
- package/dist/inspector/ui/ToggleButton.js +6 -0
- package/dist/inspector/ui/assets/grid.svg +14 -0
- package/dist/inspector/ui/css.d.ts +9 -0
- package/dist/inspector/ui/labels.d.ts +1 -0
- package/dist/inspector/ui/labels.js +7 -0
- package/dist/inspector/ui/styles.d.ts +1 -0
- package/dist/inspector/ui/styles.js +68 -0
- package/dist/inspector/virtual-modules.d.ts +7 -0
- package/dist/inspector/vite-env.d.ts +10 -0
- package/dist/internal/agent-protocol.d.ts +232 -0
- package/dist/internal/agent-protocol.js +237 -0
- package/dist/nudge-ui.mjs +15722 -0
- package/dist/project/files.d.ts +19 -0
- package/dist/project/files.js +226 -0
- package/dist/project/identity.d.ts +6 -0
- package/dist/project/identity.js +19 -0
- package/dist/project/pathPolicy.d.ts +8 -0
- package/dist/project/pathPolicy.js +12 -0
- package/dist/project/tokens.d.ts +36 -0
- package/dist/project/tokens.js +223 -0
- package/dist/transport/index.d.ts +8 -0
- package/dist/transport/index.js +8 -0
- package/dist/transport/routes.d.ts +13 -0
- package/dist/transport/routes.js +16 -0
- package/package.json +137 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import { dirname, relative, resolve } from "node:path";
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
function isBareModuleSpecifier(value) {
|
|
4
|
+
return value !== ""
|
|
5
|
+
&& !value.startsWith(".")
|
|
6
|
+
&& !value.startsWith("/")
|
|
7
|
+
&& !value.startsWith("\0")
|
|
8
|
+
&& !value.startsWith("virtual:");
|
|
9
|
+
}
|
|
10
|
+
function rootJsxIdentifier(tagName) {
|
|
11
|
+
let current = tagName;
|
|
12
|
+
while (ts.isPropertyAccessExpression(current))
|
|
13
|
+
current = current.expression;
|
|
14
|
+
return ts.isIdentifier(current) ? current.text : null;
|
|
15
|
+
}
|
|
16
|
+
/** Returns bare modules whose imported bindings are rendered as JSX. */
|
|
17
|
+
export function collectPackageComponentModules(code, fileName) {
|
|
18
|
+
const source = ts.createSourceFile(fileName, code, ts.ScriptTarget.Latest, true, fileName.endsWith("x") ? ts.ScriptKind.TSX : ts.ScriptKind.JSX);
|
|
19
|
+
const modulesByBinding = new Map();
|
|
20
|
+
for (const statement of source.statements) {
|
|
21
|
+
if (!ts.isImportDeclaration(statement)
|
|
22
|
+
|| !ts.isStringLiteral(statement.moduleSpecifier)
|
|
23
|
+
|| !isBareModuleSpecifier(statement.moduleSpecifier.text))
|
|
24
|
+
continue;
|
|
25
|
+
const moduleSpecifier = statement.moduleSpecifier.text;
|
|
26
|
+
const clause = statement.importClause;
|
|
27
|
+
if (clause?.name)
|
|
28
|
+
modulesByBinding.set(clause.name.text, moduleSpecifier);
|
|
29
|
+
const bindings = clause?.namedBindings;
|
|
30
|
+
if (bindings && ts.isNamespaceImport(bindings)) {
|
|
31
|
+
modulesByBinding.set(bindings.name.text, moduleSpecifier);
|
|
32
|
+
}
|
|
33
|
+
else if (bindings && ts.isNamedImports(bindings)) {
|
|
34
|
+
for (const element of bindings.elements) {
|
|
35
|
+
if (!element.isTypeOnly)
|
|
36
|
+
modulesByBinding.set(element.name.text, moduleSpecifier);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const modules = new Set();
|
|
41
|
+
const visit = (node) => {
|
|
42
|
+
if (ts.isJsxOpeningElement(node) || ts.isJsxSelfClosingElement(node)) {
|
|
43
|
+
const binding = rootJsxIdentifier(node.tagName);
|
|
44
|
+
const moduleSpecifier = binding ? modulesByBinding.get(binding) : undefined;
|
|
45
|
+
if (moduleSpecifier)
|
|
46
|
+
modules.add(moduleSpecifier);
|
|
47
|
+
}
|
|
48
|
+
ts.forEachChild(node, visit);
|
|
49
|
+
};
|
|
50
|
+
visit(source);
|
|
51
|
+
return [...modules].sort();
|
|
52
|
+
}
|
|
53
|
+
const DEFAULT_COMPILER_OPTIONS = {
|
|
54
|
+
allowJs: false,
|
|
55
|
+
jsx: ts.JsxEmit.ReactJSX,
|
|
56
|
+
module: ts.ModuleKind.ESNext,
|
|
57
|
+
moduleResolution: ts.ModuleResolutionKind.Bundler,
|
|
58
|
+
noEmit: true,
|
|
59
|
+
skipLibCheck: true,
|
|
60
|
+
strictNullChecks: true,
|
|
61
|
+
target: ts.ScriptTarget.ES2022,
|
|
62
|
+
};
|
|
63
|
+
const STRUCTURAL_PROP_NAMES = new Set([
|
|
64
|
+
"children",
|
|
65
|
+
"className",
|
|
66
|
+
"href",
|
|
67
|
+
"id",
|
|
68
|
+
"ref",
|
|
69
|
+
"role",
|
|
70
|
+
"src",
|
|
71
|
+
"style",
|
|
72
|
+
]);
|
|
73
|
+
function symbolName(symbol) {
|
|
74
|
+
if (!symbol)
|
|
75
|
+
return null;
|
|
76
|
+
return symbol.getName();
|
|
77
|
+
}
|
|
78
|
+
function typeName(type) {
|
|
79
|
+
return symbolName(type.aliasSymbol) ?? symbolName(type.getSymbol());
|
|
80
|
+
}
|
|
81
|
+
function typeArguments(checker, type) {
|
|
82
|
+
if (!(type.flags & ts.TypeFlags.Object))
|
|
83
|
+
return [];
|
|
84
|
+
return checker.getTypeArguments(type);
|
|
85
|
+
}
|
|
86
|
+
function isNamedType(type, name) {
|
|
87
|
+
return typeName(type) === name;
|
|
88
|
+
}
|
|
89
|
+
function isUndefined(type) {
|
|
90
|
+
return (type.flags & (ts.TypeFlags.Undefined | ts.TypeFlags.Void)) !== 0;
|
|
91
|
+
}
|
|
92
|
+
function definedTypes(type) {
|
|
93
|
+
return (type.isUnion() ? type.types : [type]).filter((member) => !isUndefined(member));
|
|
94
|
+
}
|
|
95
|
+
function literalValue(type) {
|
|
96
|
+
if (type.flags & ts.TypeFlags.StringLiteral)
|
|
97
|
+
return type.value;
|
|
98
|
+
if (type.flags & ts.TypeFlags.NumberLiteral)
|
|
99
|
+
return type.value;
|
|
100
|
+
if (type.flags & ts.TypeFlags.BooleanLiteral) {
|
|
101
|
+
return type.intrinsicName === "true";
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
function conditionalObjectMatches(type, checker, location, accepts) {
|
|
106
|
+
if (!(type.flags & ts.TypeFlags.Object))
|
|
107
|
+
return false;
|
|
108
|
+
if (checker.getIndexTypeOfType(type, ts.IndexKind.String)
|
|
109
|
+
|| checker.getIndexTypeOfType(type, ts.IndexKind.Number))
|
|
110
|
+
return false;
|
|
111
|
+
const properties = checker.getPropertiesOfType(type);
|
|
112
|
+
if (properties.length === 0)
|
|
113
|
+
return false;
|
|
114
|
+
return properties.every((property) => {
|
|
115
|
+
const propertyType = checker.getTypeOfSymbolAtLocation(property, location);
|
|
116
|
+
const propertyMembers = definedTypes(propertyType);
|
|
117
|
+
return propertyMembers.length > 0 && propertyMembers.every(accepts);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
function literalOptions(members, checker, location) {
|
|
121
|
+
const values = members
|
|
122
|
+
.map(literalValue)
|
|
123
|
+
.filter((value) => value !== null);
|
|
124
|
+
// A public prop can accept a finite scalar vocabulary as well as a
|
|
125
|
+
// responsive/conditional object. The Inspector only offers this select when
|
|
126
|
+
// the current runtime value is scalar, so retain valid scalar alternatives
|
|
127
|
+
// without pretending the object form is itself editable here.
|
|
128
|
+
if (values.length < 2)
|
|
129
|
+
return null;
|
|
130
|
+
const primitive = typeof values[0];
|
|
131
|
+
if (!values.every((value) => typeof value === primitive))
|
|
132
|
+
return null;
|
|
133
|
+
const allowed = new Set(values.map((value) => `${typeof value}:${String(value)}`));
|
|
134
|
+
if (!members.every((member) => {
|
|
135
|
+
const value = literalValue(member);
|
|
136
|
+
if (value !== null)
|
|
137
|
+
return allowed.has(`${typeof value}:${String(value)}`);
|
|
138
|
+
return conditionalObjectMatches(member, checker, location, (propertyMember) => {
|
|
139
|
+
const propertyValue = literalValue(propertyMember);
|
|
140
|
+
return propertyValue !== null
|
|
141
|
+
&& allowed.has(`${typeof propertyValue}:${String(propertyValue)}`);
|
|
142
|
+
});
|
|
143
|
+
}))
|
|
144
|
+
return null;
|
|
145
|
+
return values;
|
|
146
|
+
}
|
|
147
|
+
function isBooleanType(members, checker, location) {
|
|
148
|
+
const scalarMembers = members.filter((member) => (member.flags & (ts.TypeFlags.Boolean | ts.TypeFlags.BooleanLiteral)) !== 0);
|
|
149
|
+
if (scalarMembers.length === 0)
|
|
150
|
+
return false;
|
|
151
|
+
if (!members.every((member) => scalarMembers.includes(member)
|
|
152
|
+
|| conditionalObjectMatches(member, checker, location, (propertyMember) => (propertyMember.flags & (ts.TypeFlags.Boolean | ts.TypeFlags.BooleanLiteral)) !== 0)))
|
|
153
|
+
return false;
|
|
154
|
+
if (scalarMembers.some((member) => (member.flags & ts.TypeFlags.Boolean) !== 0))
|
|
155
|
+
return true;
|
|
156
|
+
const values = new Set(scalarMembers.map(literalValue));
|
|
157
|
+
return values.has(false) && values.has(true);
|
|
158
|
+
}
|
|
159
|
+
function propContract(symbol, checker, location) {
|
|
160
|
+
const name = symbol.getName();
|
|
161
|
+
if (!name || STRUCTURAL_PROP_NAMES.has(name) || name.startsWith("aria") || name.startsWith("data")) {
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
const types = definedTypes(checker.getTypeOfSymbolAtLocation(symbol, location));
|
|
165
|
+
if (isBooleanType(types, checker, location)) {
|
|
166
|
+
return {
|
|
167
|
+
name,
|
|
168
|
+
control: "boolean",
|
|
169
|
+
options: [false, true],
|
|
170
|
+
optional: (symbol.flags & ts.SymbolFlags.Optional) !== 0,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
const options = literalOptions(types, checker, location);
|
|
174
|
+
if (options) {
|
|
175
|
+
return {
|
|
176
|
+
name,
|
|
177
|
+
control: "select",
|
|
178
|
+
options,
|
|
179
|
+
optional: (symbol.flags & ts.SymbolFlags.Optional) !== 0,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
if (types.length === 1 && (types[0].flags & ts.TypeFlags.String)) {
|
|
183
|
+
return {
|
|
184
|
+
name,
|
|
185
|
+
control: "text",
|
|
186
|
+
options: [],
|
|
187
|
+
optional: (symbol.flags & ts.SymbolFlags.Optional) !== 0,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
function packageName(moduleSpecifier) {
|
|
193
|
+
const parts = moduleSpecifier.split("/");
|
|
194
|
+
return moduleSpecifier.startsWith("@")
|
|
195
|
+
? parts.slice(0, 2).join("/")
|
|
196
|
+
: parts[0] ?? moduleSpecifier;
|
|
197
|
+
}
|
|
198
|
+
function packageRootFor(resolvedModule, moduleSpecifier) {
|
|
199
|
+
const normalized = resolvedModule.replaceAll("\\", "/");
|
|
200
|
+
const marker = `/node_modules/${packageName(moduleSpecifier)}/`;
|
|
201
|
+
const markerStart = normalized.lastIndexOf(marker);
|
|
202
|
+
if (markerStart >= 0)
|
|
203
|
+
return normalized.slice(0, markerStart + marker.length - 1);
|
|
204
|
+
return dirname(resolvedModule);
|
|
205
|
+
}
|
|
206
|
+
function isInside(root, fileName) {
|
|
207
|
+
const relativeFile = relative(resolve(root), resolve(fileName));
|
|
208
|
+
return relativeFile === ""
|
|
209
|
+
|| (relativeFile !== ".." && !relativeFile.startsWith(".." + "/") && !relativeFile.startsWith(".." + "\\"));
|
|
210
|
+
}
|
|
211
|
+
function packageDeclaredSymbols(propsType, checker, packageRoot) {
|
|
212
|
+
return checker.getPropertiesOfType(propsType).filter((symbol) => symbol.getDeclarations()?.some((declaration) => isInside(packageRoot, declaration.getSourceFile().fileName)) ?? false);
|
|
213
|
+
}
|
|
214
|
+
function propsTypeFromComponent(componentType, checker, location) {
|
|
215
|
+
if (isNamedType(componentType, "ForwardRefExoticComponent")) {
|
|
216
|
+
return typeArguments(checker, componentType)[0] ?? null;
|
|
217
|
+
}
|
|
218
|
+
const signature = componentType.getCallSignatures()
|
|
219
|
+
.find((candidate) => candidate.parameters.length > 0);
|
|
220
|
+
const props = signature?.parameters[0];
|
|
221
|
+
if (props)
|
|
222
|
+
return checker.getTypeOfSymbolAtLocation(props, location);
|
|
223
|
+
return null;
|
|
224
|
+
}
|
|
225
|
+
function componentContract(exportName, symbol, checker, packageRoot, moduleSpecifier) {
|
|
226
|
+
if (exportName !== "default" && !/^[A-Z]/.test(exportName))
|
|
227
|
+
return null;
|
|
228
|
+
const target = symbol.flags & ts.SymbolFlags.Alias
|
|
229
|
+
? checker.getAliasedSymbol(symbol)
|
|
230
|
+
: symbol;
|
|
231
|
+
const declaration = target.valueDeclaration ?? target.declarations?.[0];
|
|
232
|
+
if (!declaration)
|
|
233
|
+
return null;
|
|
234
|
+
const componentType = checker.getTypeOfSymbolAtLocation(target, declaration);
|
|
235
|
+
const propsType = propsTypeFromComponent(componentType, checker, declaration);
|
|
236
|
+
if (!propsType)
|
|
237
|
+
return null;
|
|
238
|
+
const props = packageDeclaredSymbols(propsType, checker, packageRoot)
|
|
239
|
+
.map((prop) => propContract(prop, checker, declaration))
|
|
240
|
+
.filter((prop) => prop !== null);
|
|
241
|
+
if (props.length === 0)
|
|
242
|
+
return null;
|
|
243
|
+
return {
|
|
244
|
+
componentId: `${moduleSpecifier}#${exportName}`,
|
|
245
|
+
name: exportName,
|
|
246
|
+
file: moduleSpecifier,
|
|
247
|
+
props,
|
|
248
|
+
provenance: "typescript",
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Extracts scalar controls from component exports in an installed package.
|
|
253
|
+
*
|
|
254
|
+
* It follows TypeScript's resolved module graph, including barrel re-exports
|
|
255
|
+
* and declaration-file aliases, rather than trying to parse one declaration
|
|
256
|
+
* file in isolation.
|
|
257
|
+
*/
|
|
258
|
+
export function extractPackageComponentContracts(context) {
|
|
259
|
+
return extractPackageComponentContractCatalog({
|
|
260
|
+
hostFile: context.hostFile,
|
|
261
|
+
moduleSpecifiers: [context.moduleSpecifier],
|
|
262
|
+
compilerOptions: context.compilerOptions,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
/** Extracts several package modules through one declaration-only program. */
|
|
266
|
+
export function extractPackageComponentContractCatalog(context) {
|
|
267
|
+
const compilerOptions = { ...DEFAULT_COMPILER_OPTIONS, ...context.compilerOptions };
|
|
268
|
+
const moduleSpecifiers = [...new Set(context.moduleSpecifiers)].sort();
|
|
269
|
+
if (moduleSpecifiers.length === 0)
|
|
270
|
+
return [];
|
|
271
|
+
const virtualFile = resolve(dirname(context.hostFile), "__nudge_ui_package_contracts__.tsx");
|
|
272
|
+
const virtualSource = moduleSpecifiers
|
|
273
|
+
.map((moduleSpecifier, index) => `import * as __nudgeUiPackage${index} from ${JSON.stringify(moduleSpecifier)};`)
|
|
274
|
+
.join("\n");
|
|
275
|
+
const host = ts.createCompilerHost(compilerOptions);
|
|
276
|
+
const getSourceFile = host.getSourceFile.bind(host);
|
|
277
|
+
host.fileExists = (fileName) => fileName === virtualFile || ts.sys.fileExists(fileName);
|
|
278
|
+
host.readFile = (fileName) => fileName === virtualFile ? virtualSource : ts.sys.readFile(fileName);
|
|
279
|
+
host.getSourceFile = (fileName, languageVersion, onError, shouldCreateNewSourceFile) => fileName === virtualFile
|
|
280
|
+
? ts.createSourceFile(fileName, virtualSource, languageVersion, true, ts.ScriptKind.TSX)
|
|
281
|
+
: getSourceFile(fileName, languageVersion, onError, shouldCreateNewSourceFile);
|
|
282
|
+
const program = ts.createProgram({
|
|
283
|
+
rootNames: [virtualFile],
|
|
284
|
+
options: compilerOptions,
|
|
285
|
+
host,
|
|
286
|
+
});
|
|
287
|
+
const checker = program.getTypeChecker();
|
|
288
|
+
return moduleSpecifiers.flatMap((moduleSpecifier) => {
|
|
289
|
+
const resolution = ts.resolveModuleName(moduleSpecifier, virtualFile, compilerOptions, host).resolvedModule;
|
|
290
|
+
if (!resolution)
|
|
291
|
+
return [];
|
|
292
|
+
const sourceFile = program.getSourceFile(resolution.resolvedFileName);
|
|
293
|
+
if (!sourceFile)
|
|
294
|
+
return [];
|
|
295
|
+
const moduleSymbol = checker.getSymbolAtLocation(sourceFile);
|
|
296
|
+
if (!moduleSymbol)
|
|
297
|
+
return [];
|
|
298
|
+
const packageRoot = packageRootFor(resolution.resolvedFileName, moduleSpecifier);
|
|
299
|
+
return checker.getExportsOfModule(moduleSymbol)
|
|
300
|
+
.map((symbol) => {
|
|
301
|
+
const exportName = symbolName(symbol);
|
|
302
|
+
return exportName
|
|
303
|
+
? componentContract(exportName, symbol, checker, packageRoot, moduleSpecifier)
|
|
304
|
+
: null;
|
|
305
|
+
})
|
|
306
|
+
.filter((contract) => contract !== null);
|
|
307
|
+
});
|
|
308
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter-independent React compatibility data.
|
|
3
|
+
*
|
|
4
|
+
* Library names live in this replaceable catalog rather than in compiler
|
|
5
|
+
* control flow. Hosts may extend or replace these facts as their ecosystem
|
|
6
|
+
* support grows.
|
|
7
|
+
*/
|
|
8
|
+
export declare const defaultReactComponentProtocols: {
|
|
9
|
+
react: {
|
|
10
|
+
default: {
|
|
11
|
+
readonly wrap: false;
|
|
12
|
+
};
|
|
13
|
+
exports: {
|
|
14
|
+
Fragment: {
|
|
15
|
+
readonly wrap: false;
|
|
16
|
+
readonly slots: {
|
|
17
|
+
readonly children: "rendered";
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
StrictMode: {
|
|
21
|
+
readonly wrap: false;
|
|
22
|
+
readonly slots: {
|
|
23
|
+
readonly children: "rendered";
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
Profiler: {
|
|
27
|
+
readonly wrap: false;
|
|
28
|
+
readonly slots: {
|
|
29
|
+
readonly children: "rendered";
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
Suspense: {
|
|
33
|
+
wrap: false;
|
|
34
|
+
slots: {
|
|
35
|
+
children: "rendered";
|
|
36
|
+
fallback: "rendered";
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
"react-router": {
|
|
42
|
+
readonly default: {
|
|
43
|
+
readonly wrap: false;
|
|
44
|
+
};
|
|
45
|
+
readonly exports: {
|
|
46
|
+
readonly BrowserRouter: {
|
|
47
|
+
readonly wrap: false;
|
|
48
|
+
readonly slots: {
|
|
49
|
+
readonly children: "rendered";
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
readonly HashRouter: {
|
|
53
|
+
readonly wrap: false;
|
|
54
|
+
readonly slots: {
|
|
55
|
+
readonly children: "rendered";
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
readonly MemoryRouter: {
|
|
59
|
+
readonly wrap: false;
|
|
60
|
+
readonly slots: {
|
|
61
|
+
readonly children: "rendered";
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
readonly Router: {
|
|
65
|
+
readonly wrap: false;
|
|
66
|
+
readonly slots: {
|
|
67
|
+
readonly children: "rendered";
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
readonly StaticRouter: {
|
|
71
|
+
readonly wrap: false;
|
|
72
|
+
readonly slots: {
|
|
73
|
+
readonly children: "rendered";
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
readonly Routes: {
|
|
77
|
+
readonly wrap: false;
|
|
78
|
+
readonly slots: {
|
|
79
|
+
readonly children: "rendered";
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
readonly Route: {
|
|
83
|
+
readonly wrap: false;
|
|
84
|
+
readonly slots: {
|
|
85
|
+
readonly children: "rendered";
|
|
86
|
+
readonly element: "rendered";
|
|
87
|
+
readonly errorElement: "rendered";
|
|
88
|
+
readonly hydrateFallbackElement: "rendered";
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
"react-router-dom": {
|
|
94
|
+
readonly default: {
|
|
95
|
+
readonly wrap: false;
|
|
96
|
+
};
|
|
97
|
+
readonly exports: {
|
|
98
|
+
readonly BrowserRouter: {
|
|
99
|
+
readonly wrap: false;
|
|
100
|
+
readonly slots: {
|
|
101
|
+
readonly children: "rendered";
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
readonly HashRouter: {
|
|
105
|
+
readonly wrap: false;
|
|
106
|
+
readonly slots: {
|
|
107
|
+
readonly children: "rendered";
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
readonly MemoryRouter: {
|
|
111
|
+
readonly wrap: false;
|
|
112
|
+
readonly slots: {
|
|
113
|
+
readonly children: "rendered";
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
readonly Router: {
|
|
117
|
+
readonly wrap: false;
|
|
118
|
+
readonly slots: {
|
|
119
|
+
readonly children: "rendered";
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
readonly StaticRouter: {
|
|
123
|
+
readonly wrap: false;
|
|
124
|
+
readonly slots: {
|
|
125
|
+
readonly children: "rendered";
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
readonly Routes: {
|
|
129
|
+
readonly wrap: false;
|
|
130
|
+
readonly slots: {
|
|
131
|
+
readonly children: "rendered";
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
readonly Route: {
|
|
135
|
+
readonly wrap: false;
|
|
136
|
+
readonly slots: {
|
|
137
|
+
readonly children: "rendered";
|
|
138
|
+
readonly element: "rendered";
|
|
139
|
+
readonly errorElement: "rendered";
|
|
140
|
+
readonly hydrateFallbackElement: "rendered";
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
const PRESERVE = { wrap: false };
|
|
2
|
+
const RENDERED_CHILDREN = { wrap: false, slots: { children: "rendered" } };
|
|
3
|
+
/**
|
|
4
|
+
* Adapter-independent React compatibility data.
|
|
5
|
+
*
|
|
6
|
+
* Library names live in this replaceable catalog rather than in compiler
|
|
7
|
+
* control flow. Hosts may extend or replace these facts as their ecosystem
|
|
8
|
+
* support grows.
|
|
9
|
+
*/
|
|
10
|
+
export const defaultReactComponentProtocols = {
|
|
11
|
+
react: {
|
|
12
|
+
default: PRESERVE,
|
|
13
|
+
exports: {
|
|
14
|
+
Fragment: RENDERED_CHILDREN,
|
|
15
|
+
StrictMode: RENDERED_CHILDREN,
|
|
16
|
+
Profiler: RENDERED_CHILDREN,
|
|
17
|
+
Suspense: {
|
|
18
|
+
wrap: false,
|
|
19
|
+
slots: { children: "rendered", fallback: "rendered" },
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
"react-router": routerProtocols(),
|
|
24
|
+
"react-router-dom": routerProtocols(),
|
|
25
|
+
};
|
|
26
|
+
function routerProtocols() {
|
|
27
|
+
return {
|
|
28
|
+
default: PRESERVE,
|
|
29
|
+
exports: {
|
|
30
|
+
BrowserRouter: RENDERED_CHILDREN,
|
|
31
|
+
HashRouter: RENDERED_CHILDREN,
|
|
32
|
+
MemoryRouter: RENDERED_CHILDREN,
|
|
33
|
+
Router: RENDERED_CHILDREN,
|
|
34
|
+
StaticRouter: RENDERED_CHILDREN,
|
|
35
|
+
Routes: RENDERED_CHILDREN,
|
|
36
|
+
Route: {
|
|
37
|
+
wrap: false,
|
|
38
|
+
slots: {
|
|
39
|
+
children: "rendered",
|
|
40
|
+
element: "rendered",
|
|
41
|
+
errorElement: "rendered",
|
|
42
|
+
hydrateFallbackElement: "rendered",
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type SourceMap } from "magic-string";
|
|
2
|
+
import { type ComponentInstrumentationOptions } from "./componentInstrumentation.js";
|
|
3
|
+
export type { ComponentInstrumentationOptions } from "./componentInstrumentation.js";
|
|
4
|
+
export interface InjectResult {
|
|
5
|
+
code: string;
|
|
6
|
+
map: SourceMap | null;
|
|
7
|
+
}
|
|
8
|
+
export interface InjectIdentityOptions extends ComponentInstrumentationOptions {
|
|
9
|
+
instrumentComponents?: boolean;
|
|
10
|
+
/** Module specifier emitted for the host-owned semantic runtime. */
|
|
11
|
+
componentRuntimeModule?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const DEFAULT_COMPONENT_RUNTIME_MODULE = "nudge-ui/internal/component-runtime";
|
|
14
|
+
export declare function injectIdentity(code: string, id: string, root?: string, options?: InjectIdentityOptions): InjectResult | null;
|
|
15
|
+
export declare function injectDataCid(code: string, id: string, root?: string): InjectResult | null;
|