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.
Files changed (510) hide show
  1. package/README.md +66 -0
  2. package/bin/nudge-ui.mjs +7 -0
  3. package/dist/LICENSE +21 -0
  4. package/dist/client.mjs +261 -0
  5. package/dist/compiler/ast.d.ts +18 -0
  6. package/dist/compiler/ast.js +75 -0
  7. package/dist/compiler/componentContractTypes.d.ts +19 -0
  8. package/dist/compiler/componentContractTypes.js +1 -0
  9. package/dist/compiler/componentContracts.d.ts +2 -0
  10. package/dist/compiler/componentContracts.js +260 -0
  11. package/dist/compiler/componentInstrumentation.d.ts +32 -0
  12. package/dist/compiler/componentInstrumentation.js +140 -0
  13. package/dist/compiler/componentPolicyResolution.d.ts +71 -0
  14. package/dist/compiler/componentPolicyResolution.js +388 -0
  15. package/dist/compiler/index.d.ts +9 -0
  16. package/dist/compiler/index.js +9 -0
  17. package/dist/compiler/packageComponentContracts.d.ts +32 -0
  18. package/dist/compiler/packageComponentContracts.js +308 -0
  19. package/dist/compiler/reactComponentProtocols.d.ts +145 -0
  20. package/dist/compiler/reactComponentProtocols.js +47 -0
  21. package/dist/compiler/reactIdentity.d.ts +15 -0
  22. package/dist/compiler/reactIdentity.js +339 -0
  23. package/dist/compiler/sourcePaths.d.ts +12 -0
  24. package/dist/compiler/sourcePaths.js +27 -0
  25. package/dist/css/dialects/index.d.ts +62 -0
  26. package/dist/css/dialects/index.js +103 -0
  27. package/dist/css/dialects/tailwind.d.ts +46 -0
  28. package/dist/css/dialects/tailwind.js +119 -0
  29. package/dist/css/dialects/vanillaExtract.d.ts +20 -0
  30. package/dist/css/dialects/vanillaExtract.js +32 -0
  31. package/dist/css/index.d.ts +10 -0
  32. package/dist/css/index.js +10 -0
  33. package/dist/css/model/index.d.ts +190 -0
  34. package/dist/css/model/index.js +10 -0
  35. package/dist/css/token-inventory/index.d.ts +26 -0
  36. package/dist/css/token-inventory/index.js +24 -0
  37. package/dist/css/token-inventory/inventory.d.ts +8 -0
  38. package/dist/css/token-inventory/inventory.js +421 -0
  39. package/dist/css/token-inventory/parseStylesheet.d.ts +16 -0
  40. package/dist/css/token-inventory/parseStylesheet.js +155 -0
  41. package/dist/css/token-inventory/policy.d.ts +47 -0
  42. package/dist/css/token-inventory/policy.js +50 -0
  43. package/dist/css/token-inventory/types.d.ts +97 -0
  44. package/dist/css/token-inventory/types.js +1 -0
  45. package/dist/css/value-semantics/borderSemantics.d.ts +28 -0
  46. package/dist/css/value-semantics/borderSemantics.js +91 -0
  47. package/dist/css/value-semantics/boxSemantics.d.ts +37 -0
  48. package/dist/css/value-semantics/boxSemantics.js +71 -0
  49. package/dist/css/value-semantics/colorSemantics.d.ts +99 -0
  50. package/dist/css/value-semantics/colorSemantics.js +526 -0
  51. package/dist/css/value-semantics/cssSyntax.d.ts +19 -0
  52. package/dist/css/value-semantics/cssSyntax.js +111 -0
  53. package/dist/css/value-semantics/fontSemantics.d.ts +35 -0
  54. package/dist/css/value-semantics/fontSemantics.js +131 -0
  55. package/dist/css/value-semantics/index.d.ts +20 -0
  56. package/dist/css/value-semantics/index.js +15 -0
  57. package/dist/css/value-semantics/propertyPolicy.d.ts +118 -0
  58. package/dist/css/value-semantics/propertyPolicy.js +356 -0
  59. package/dist/css/value-semantics/stringMaps.d.ts +2 -0
  60. package/dist/css/value-semantics/stringMaps.js +1 -0
  61. package/dist/css/value-semantics/structuredValues.d.ts +64 -0
  62. package/dist/css/value-semantics/structuredValues.js +250 -0
  63. package/dist/css/value-semantics/tokenInterpretation.d.ts +90 -0
  64. package/dist/css/value-semantics/tokenInterpretation.js +193 -0
  65. package/dist/css/virtual-design-tokens.d.ts +17 -0
  66. package/dist/hosts/astro/astroRuntimeConfig.d.ts +12 -0
  67. package/dist/hosts/astro/astroRuntimeConfig.js +26 -0
  68. package/dist/hosts/astro/clientAsset.d.ts +12 -0
  69. package/dist/hosts/astro/clientAsset.js +51 -0
  70. package/dist/hosts/astro/clientTransport.d.ts +3 -0
  71. package/dist/hosts/astro/clientTransport.js +57 -0
  72. package/dist/hosts/astro/index.d.ts +3 -0
  73. package/dist/hosts/astro/index.js +2 -0
  74. package/dist/hosts/astro/integration.d.ts +35 -0
  75. package/dist/hosts/astro/integration.js +96 -0
  76. package/dist/hosts/astro/middleware.d.ts +13 -0
  77. package/dist/hosts/astro/middleware.js +22 -0
  78. package/dist/hosts/astro/projectContext.d.ts +11 -0
  79. package/dist/hosts/astro/projectContext.js +34 -0
  80. package/dist/hosts/astro/responseInstrumentation.d.ts +41 -0
  81. package/dist/hosts/astro/responseInstrumentation.js +80 -0
  82. package/dist/hosts/next/index.d.ts +4 -0
  83. package/dist/hosts/next/index.js +7 -0
  84. package/dist/hosts/next/loader.d.ts +66 -0
  85. package/dist/hosts/next/loader.js +346 -0
  86. package/dist/hosts/next/loaders/identity-loader.cjs +228257 -0
  87. package/dist/hosts/next/loaders/loader-plugin.cjs +228257 -0
  88. package/dist/hosts/next/manifest.d.ts +38 -0
  89. package/dist/hosts/next/manifest.js +30 -0
  90. package/dist/hosts/next/mount.d.ts +12 -0
  91. package/dist/hosts/next/mount.js +23 -0
  92. package/dist/hosts/next/repositoryScope.d.ts +20 -0
  93. package/dist/hosts/next/repositoryScope.js +33 -0
  94. package/dist/hosts/next/sidecar.d.ts +27 -0
  95. package/dist/hosts/next/sidecar.js +526 -0
  96. package/dist/hosts/next/wrapper.d.ts +67 -0
  97. package/dist/hosts/next/wrapper.js +310 -0
  98. package/dist/hosts/static/cli.d.ts +12 -0
  99. package/dist/hosts/static/cli.js +77 -0
  100. package/dist/hosts/static/html/bootstrap.d.ts +27 -0
  101. package/dist/hosts/static/html/bootstrap.js +93 -0
  102. package/dist/hosts/static/index.d.ts +4 -0
  103. package/dist/hosts/static/index.js +4 -0
  104. package/dist/hosts/static/manifest.d.ts +18 -0
  105. package/dist/hosts/static/manifest.js +51 -0
  106. package/dist/hosts/static/server.d.ts +72 -0
  107. package/dist/hosts/static/server.js +554 -0
  108. package/dist/hosts/vite/index.d.ts +20 -0
  109. package/dist/hosts/vite/index.js +48 -0
  110. package/dist/hosts/vite/react.d.ts +67 -0
  111. package/dist/hosts/vite/react.js +231 -0
  112. package/dist/hosts/vite/tokens/activeStylesheets.d.ts +28 -0
  113. package/dist/hosts/vite/tokens/activeStylesheets.js +70 -0
  114. package/dist/hosts/vite/tokens/fileMap.d.ts +2 -0
  115. package/dist/hosts/vite/tokens/fileMap.js +1 -0
  116. package/dist/hosts/vite/tokens/viteStylesheetArtifacts.d.ts +46 -0
  117. package/dist/hosts/vite/tokens/viteStylesheetArtifacts.js +104 -0
  118. package/dist/hosts/vite/virtual/design-tokens.d.ts +9 -0
  119. package/dist/hosts/vite/virtual/design-tokens.js +7 -0
  120. package/dist/hosts/vite/virtual-design-tokens.d.ts +1 -0
  121. package/dist/hosts/vite/vite.d.ts +62 -0
  122. package/dist/hosts/vite/vite.js +854 -0
  123. package/dist/html/dom.d.ts +13 -0
  124. package/dist/html/dom.js +46 -0
  125. package/dist/html/identity.d.ts +40 -0
  126. package/dist/html/identity.js +196 -0
  127. package/dist/html/insertions.d.ts +26 -0
  128. package/dist/html/insertions.js +59 -0
  129. package/dist/inspector/agent/McpConnectionDialog.d.ts +26 -0
  130. package/dist/inspector/agent/McpConnectionDialog.js +135 -0
  131. package/dist/inspector/agent/client.d.ts +98 -0
  132. package/dist/inspector/agent/client.js +728 -0
  133. package/dist/inspector/agent/connectionStatus.d.ts +13 -0
  134. package/dist/inspector/agent/connectionStatus.js +35 -0
  135. package/dist/inspector/agent/httpTransport.d.ts +21 -0
  136. package/dist/inspector/agent/httpTransport.js +347 -0
  137. package/dist/inspector/agent/protocol.d.ts +95 -0
  138. package/dist/inspector/agent/protocol.js +9 -0
  139. package/dist/inspector/agent/verification.d.ts +39 -0
  140. package/dist/inspector/agent/verification.js +207 -0
  141. package/dist/inspector/canvas/CanvasCard.d.ts +10 -0
  142. package/dist/inspector/canvas/CanvasCard.js +275 -0
  143. package/dist/inspector/canvas/CanvasElementOverlay.d.ts +2 -0
  144. package/dist/inspector/canvas/CanvasElementOverlay.js +301 -0
  145. package/dist/inspector/canvas/CanvasWorkspace.d.ts +2 -0
  146. package/dist/inspector/canvas/CanvasWorkspace.js +301 -0
  147. package/dist/inspector/canvas/LockedWorkspaceNotice.d.ts +6 -0
  148. package/dist/inspector/canvas/LockedWorkspaceNotice.js +17 -0
  149. package/dist/inspector/canvas/StaleChangeIndicator.d.ts +7 -0
  150. package/dist/inspector/canvas/StaleChangeIndicator.js +43 -0
  151. package/dist/inspector/canvas/agentPresentation.d.ts +87 -0
  152. package/dist/inspector/canvas/agentPresentation.js +421 -0
  153. package/dist/inspector/canvas/canvasGestures.d.ts +12 -0
  154. package/dist/inspector/canvas/canvasGestures.js +21 -0
  155. package/dist/inspector/canvas/canvasStore.d.ts +108 -0
  156. package/dist/inspector/canvas/canvasStore.js +448 -0
  157. package/dist/inspector/canvas/frameProtocol.d.ts +231 -0
  158. package/dist/inspector/canvas/frameProtocol.js +165 -0
  159. package/dist/inspector/canvas/linkEligibility.d.ts +8 -0
  160. package/dist/inspector/canvas/linkEligibility.js +68 -0
  161. package/dist/inspector/canvas/measurementProjection.d.ts +8 -0
  162. package/dist/inspector/canvas/measurementProjection.js +16 -0
  163. package/dist/inspector/canvas/normalizeUrl.d.ts +7 -0
  164. package/dist/inspector/canvas/normalizeUrl.js +27 -0
  165. package/dist/inspector/canvas/projection.d.ts +41 -0
  166. package/dist/inspector/canvas/projection.js +232 -0
  167. package/dist/inspector/canvas/rendererBootstrap.d.ts +4 -0
  168. package/dist/inspector/canvas/rendererBootstrap.js +410 -0
  169. package/dist/inspector/canvas/rendererCidIndex.d.ts +11 -0
  170. package/dist/inspector/canvas/rendererCidIndex.js +21 -0
  171. package/dist/inspector/canvas/rendererElementSelector.d.ts +2 -0
  172. package/dist/inspector/canvas/rendererElementSelector.js +378 -0
  173. package/dist/inspector/canvas/rendererSelectionProxy.d.ts +2 -0
  174. package/dist/inspector/canvas/rendererSelectionProxy.js +61 -0
  175. package/dist/inspector/canvas/rendererStylesheet.d.ts +16 -0
  176. package/dist/inspector/canvas/rendererStylesheet.js +221 -0
  177. package/dist/inspector/canvas/resizeHandleScale.d.ts +13 -0
  178. package/dist/inspector/canvas/resizeHandleScale.js +20 -0
  179. package/dist/inspector/canvas/roleDetection.d.ts +5 -0
  180. package/dist/inspector/canvas/roleDetection.js +21 -0
  181. package/dist/inspector/canvas/sessionStore.d.ts +71 -0
  182. package/dist/inspector/canvas/sessionStore.js +453 -0
  183. package/dist/inspector/canvas/staleChangeDetector.d.ts +11 -0
  184. package/dist/inspector/canvas/staleChangeDetector.js +217 -0
  185. package/dist/inspector/canvas/toolbarScale.d.ts +7 -0
  186. package/dist/inspector/canvas/toolbarScale.js +11 -0
  187. package/dist/inspector/canvas/workspaceLease.d.ts +26 -0
  188. package/dist/inspector/canvas/workspaceLease.js +214 -0
  189. package/dist/inspector/changes/changesLog.d.ts +46 -0
  190. package/dist/inspector/changes/changesLog.js +209 -0
  191. package/dist/inspector/changes/codecs.d.ts +98 -0
  192. package/dist/inspector/changes/codecs.js +389 -0
  193. package/dist/inspector/changes/editModel.d.ts +74 -0
  194. package/dist/inspector/changes/editModel.js +120 -0
  195. package/dist/inspector/changes/managedStyleProjection.d.ts +6 -0
  196. package/dist/inspector/changes/managedStyleProjection.js +109 -0
  197. package/dist/inspector/changes/model.d.ts +13 -0
  198. package/dist/inspector/changes/model.js +163 -0
  199. package/dist/inspector/changes/presentation.d.ts +14 -0
  200. package/dist/inspector/changes/presentation.js +81 -0
  201. package/dist/inspector/changes/previewDiagnostics.d.ts +39 -0
  202. package/dist/inspector/changes/previewDiagnostics.js +172 -0
  203. package/dist/inspector/changes/structuralTypes.d.ts +35 -0
  204. package/dist/inspector/changes/structuralTypes.js +1 -0
  205. package/dist/inspector/changes/types.d.ts +76 -0
  206. package/dist/inspector/changes/types.js +16 -0
  207. package/dist/inspector/changes/workspaceChanges.d.ts +43 -0
  208. package/dist/inspector/changes/workspaceChanges.js +239 -0
  209. package/dist/inspector/clientManifest.d.ts +24 -0
  210. package/dist/inspector/clientManifest.js +69 -0
  211. package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +5 -0
  212. package/dist/inspector/componentSemantics/ComponentPropsSection.js +44 -0
  213. package/dist/inspector/componentSemantics/adapterRegistry.d.ts +11 -0
  214. package/dist/inspector/componentSemantics/adapterRegistry.js +75 -0
  215. package/dist/inspector/componentSemantics/boundaries.d.ts +2 -0
  216. package/dist/inspector/componentSemantics/boundaries.js +10 -0
  217. package/dist/inspector/componentSemantics/changeAction.d.ts +3 -0
  218. package/dist/inspector/componentSemantics/changeAction.js +6 -0
  219. package/dist/inspector/componentSemantics/changeModel.d.ts +8 -0
  220. package/dist/inspector/componentSemantics/changeModel.js +60 -0
  221. package/dist/inspector/componentSemantics/index.d.ts +4 -0
  222. package/dist/inspector/componentSemantics/index.js +2 -0
  223. package/dist/inspector/componentSemantics/reactRuntime.d.ts +10 -0
  224. package/dist/inspector/componentSemantics/reactRuntime.js +186 -0
  225. package/dist/inspector/componentSemantics/runtimeBridge.d.ts +25 -0
  226. package/dist/inspector/componentSemantics/runtimeBridge.js +161 -0
  227. package/dist/inspector/componentSemantics/runtimeTypes.d.ts +2 -0
  228. package/dist/inspector/componentSemantics/runtimeTypes.js +1 -0
  229. package/dist/inspector/componentSemantics/textBinding.d.ts +69 -0
  230. package/dist/inspector/componentSemantics/textBinding.js +514 -0
  231. package/dist/inspector/componentSemantics/types.d.ts +96 -0
  232. package/dist/inspector/componentSemantics/types.js +5 -0
  233. package/dist/inspector/conformance/borderCases.d.ts +7 -0
  234. package/dist/inspector/conformance/borderCases.js +428 -0
  235. package/dist/inspector/conformance/colorCases.d.ts +8 -0
  236. package/dist/inspector/conformance/colorCases.js +470 -0
  237. package/dist/inspector/conformance/fixture.d.ts +68 -0
  238. package/dist/inspector/conformance/fixture.js +153 -0
  239. package/dist/inspector/conformance/projection.d.ts +2 -0
  240. package/dist/inspector/conformance/projection.js +3 -0
  241. package/dist/inspector/conformance/spacingCases.d.ts +6 -0
  242. package/dist/inspector/conformance/spacingCases.js +417 -0
  243. package/dist/inspector/conformance/typographyCases.d.ts +7 -0
  244. package/dist/inspector/conformance/typographyCases.js +174 -0
  245. package/dist/inspector/editScope.d.ts +4 -0
  246. package/dist/inspector/editScope.js +5 -0
  247. package/dist/inspector/index.d.ts +20 -0
  248. package/dist/inspector/index.js +236 -0
  249. package/dist/inspector/inline-text/inlineTextEditor.d.ts +74 -0
  250. package/dist/inspector/inline-text/inlineTextEditor.js +1207 -0
  251. package/dist/inspector/inline-text/inlineTextLifecycle.d.ts +2 -0
  252. package/dist/inspector/inline-text/inlineTextLifecycle.js +17 -0
  253. package/dist/inspector/inline-text/textChangeBoundary.d.ts +6 -0
  254. package/dist/inspector/inline-text/textChangeBoundary.js +1 -0
  255. package/dist/inspector/inspection/bridge.d.ts +72 -0
  256. package/dist/inspector/inspection/bridge.js +134 -0
  257. package/dist/inspector/inspection/browserCssInspection.d.ts +74 -0
  258. package/dist/inspector/inspection/browserCssInspection.js +317 -0
  259. package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +12 -0
  260. package/dist/inspector/inspection/browserCssInspectionRegistry.js +66 -0
  261. package/dist/inspector/inspection/selectionProperty.d.ts +32 -0
  262. package/dist/inspector/inspection/selectionProperty.js +33 -0
  263. package/dist/inspector/inspection/useBrowserCssInspection.d.ts +20 -0
  264. package/dist/inspector/inspection/useBrowserCssInspection.js +159 -0
  265. package/dist/inspector/overlay/DropGuideOverlay.d.ts +17 -0
  266. package/dist/inspector/overlay/DropGuideOverlay.js +17 -0
  267. package/dist/inspector/overlay/InspectorOverlay.d.ts +5 -0
  268. package/dist/inspector/overlay/InspectorOverlay.js +328 -0
  269. package/dist/inspector/overlay/MeasurementGuideOverlay.d.ts +19 -0
  270. package/dist/inspector/overlay/MeasurementGuideOverlay.js +40 -0
  271. package/dist/inspector/overlay/clickPolicy.d.ts +7 -0
  272. package/dist/inspector/overlay/clickPolicy.js +13 -0
  273. package/dist/inspector/overlay/dropGuide.d.ts +22 -0
  274. package/dist/inspector/overlay/dropGuide.js +48 -0
  275. package/dist/inspector/overlay/elementSelector.d.ts +1 -0
  276. package/dist/inspector/overlay/elementSelector.js +100 -0
  277. package/dist/inspector/overlay/frameThrottle.d.ts +10 -0
  278. package/dist/inspector/overlay/frameThrottle.js +38 -0
  279. package/dist/inspector/overlay/interactionStyles.d.ts +3 -0
  280. package/dist/inspector/overlay/interactionStyles.js +70 -0
  281. package/dist/inspector/overlay/measurementGeometry.d.ts +25 -0
  282. package/dist/inspector/overlay/measurementGeometry.js +104 -0
  283. package/dist/inspector/overlay/overlayGeometry.d.ts +40 -0
  284. package/dist/inspector/overlay/overlayGeometry.js +59 -0
  285. package/dist/inspector/overlay/selectedGeometry.d.ts +7 -0
  286. package/dist/inspector/overlay/selectedGeometry.js +51 -0
  287. package/dist/inspector/overlay/structuralGestures.d.ts +28 -0
  288. package/dist/inspector/overlay/structuralGestures.js +180 -0
  289. package/dist/inspector/projection/cssEscapes.d.ts +3 -0
  290. package/dist/inspector/projection/cssEscapes.js +20 -0
  291. package/dist/inspector/projection/managedStylesheet.d.ts +33 -0
  292. package/dist/inspector/projection/managedStylesheet.js +240 -0
  293. package/dist/inspector/projection/renderedInstance.d.ts +56 -0
  294. package/dist/inspector/projection/renderedInstance.js +306 -0
  295. package/dist/inspector/projection/structuralProjection.d.ts +93 -0
  296. package/dist/inspector/projection/structuralProjection.js +560 -0
  297. package/dist/inspector/projection/structuralProjectionBoundary.d.ts +5 -0
  298. package/dist/inspector/projection/structuralProjectionBoundary.js +65 -0
  299. package/dist/inspector/projection/textProjection.d.ts +53 -0
  300. package/dist/inspector/projection/textProjection.js +705 -0
  301. package/dist/inspector/projection/workspaceProjection.d.ts +43 -0
  302. package/dist/inspector/projection/workspaceProjection.js +58 -0
  303. package/dist/inspector/prompt/PromptSettingsDialog.d.ts +15 -0
  304. package/dist/inspector/prompt/PromptSettingsDialog.js +17 -0
  305. package/dist/inspector/prompt/clipboardHandoff.d.ts +34 -0
  306. package/dist/inspector/prompt/clipboardHandoff.js +212 -0
  307. package/dist/inspector/prompt/copyToClipboard.d.ts +1 -0
  308. package/dist/inspector/prompt/copyToClipboard.js +34 -0
  309. package/dist/inspector/prompt/detectFramework.d.ts +6 -0
  310. package/dist/inspector/prompt/detectFramework.js +4 -0
  311. package/dist/inspector/prompt/generatePrompt.d.ts +7 -0
  312. package/dist/inspector/prompt/generatePrompt.js +391 -0
  313. package/dist/inspector/prompt/promptSettings.d.ts +8 -0
  314. package/dist/inspector/prompt/promptSettings.js +28 -0
  315. package/dist/inspector/runtime/devFlag.d.ts +28 -0
  316. package/dist/inspector/runtime/devFlag.js +50 -0
  317. package/dist/inspector/runtime/documentStylesheetOrder.d.ts +19 -0
  318. package/dist/inspector/runtime/documentStylesheetOrder.js +89 -0
  319. package/dist/inspector/runtime/domRealm.d.ts +4 -0
  320. package/dist/inspector/runtime/domRealm.js +11 -0
  321. package/dist/inspector/runtime/runtimeConfig.d.ts +119 -0
  322. package/dist/inspector/runtime/runtimeConfig.js +276 -0
  323. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +32 -0
  324. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +149 -0
  325. package/dist/inspector/runtime/useRuntimeConfig.d.ts +10 -0
  326. package/dist/inspector/runtime/useRuntimeConfig.js +13 -0
  327. package/dist/inspector/selection/editScope.d.ts +32 -0
  328. package/dist/inspector/selection/editScope.js +140 -0
  329. package/dist/inspector/selection/editTarget.d.ts +8 -0
  330. package/dist/inspector/selection/editTarget.js +11 -0
  331. package/dist/inspector/selection/hierarchy.d.ts +7 -0
  332. package/dist/inspector/selection/hierarchy.js +42 -0
  333. package/dist/inspector/selection/resolveSelection.d.ts +10 -0
  334. package/dist/inspector/selection/resolveSelection.js +60 -0
  335. package/dist/inspector/selection/selectionStore.d.ts +41 -0
  336. package/dist/inspector/selection/selectionStore.js +262 -0
  337. package/dist/inspector/selection/selectionTarget.d.ts +5 -0
  338. package/dist/inspector/selection/selectionTarget.js +50 -0
  339. package/dist/inspector/selection/sourceSite.d.ts +2 -0
  340. package/dist/inspector/selection/sourceSite.js +12 -0
  341. package/dist/inspector/selection/styleSelection.d.ts +22 -0
  342. package/dist/inspector/selection/styleSelection.js +104 -0
  343. package/dist/inspector/session/index.d.ts +3 -0
  344. package/dist/inspector/session/index.js +2 -0
  345. package/dist/inspector/session/lifecycle.d.ts +22 -0
  346. package/dist/inspector/session/lifecycle.js +63 -0
  347. package/dist/inspector/session/sessionContext.d.ts +21 -0
  348. package/dist/inspector/session/sessionContext.js +28 -0
  349. package/dist/inspector/session/sessionFactory.d.ts +29 -0
  350. package/dist/inspector/session/sessionFactory.js +73 -0
  351. package/dist/inspector/settings/SettingsDialog.d.ts +12 -0
  352. package/dist/inspector/settings/SettingsDialog.js +46 -0
  353. package/dist/inspector/shell/AppShell.d.ts +2 -0
  354. package/dist/inspector/shell/AppShell.js +9 -0
  355. package/dist/inspector/shell/ChangesLog.d.ts +6 -0
  356. package/dist/inspector/shell/ChangesLog.js +92 -0
  357. package/dist/inspector/shell/CopyPromptButton.d.ts +9 -0
  358. package/dist/inspector/shell/CopyPromptButton.js +159 -0
  359. package/dist/inspector/shell/DomNavigation.d.ts +8 -0
  360. package/dist/inspector/shell/DomNavigation.js +30 -0
  361. package/dist/inspector/shell/EmptyState.d.ts +2 -0
  362. package/dist/inspector/shell/EmptyState.js +15 -0
  363. package/dist/inspector/shell/InspectorShell.d.ts +11 -0
  364. package/dist/inspector/shell/InspectorShell.js +268 -0
  365. package/dist/inspector/shell/openStore.d.ts +6 -0
  366. package/dist/inspector/shell/openStore.js +29 -0
  367. package/dist/inspector/shell/panelLayout.d.ts +2 -0
  368. package/dist/inspector/shell/panelLayout.js +29 -0
  369. package/dist/inspector/shell/shortcuts.d.ts +3 -0
  370. package/dist/inspector/shell/shortcuts.js +25 -0
  371. package/dist/inspector/shell/stateValue.d.ts +3 -0
  372. package/dist/inspector/shell/stateValue.js +34 -0
  373. package/dist/inspector/shell/styleState.d.ts +7 -0
  374. package/dist/inspector/shell/styleState.js +13 -0
  375. package/dist/inspector/spacing/projection.d.ts +43 -0
  376. package/dist/inspector/spacing/projection.js +136 -0
  377. package/dist/inspector/styleEditors/AppearanceSection.d.ts +13 -0
  378. package/dist/inspector/styleEditors/AppearanceSection.js +6 -0
  379. package/dist/inspector/styleEditors/AspectRatioField.d.ts +17 -0
  380. package/dist/inspector/styleEditors/AspectRatioField.js +10 -0
  381. package/dist/inspector/styleEditors/BorderEditor.d.ts +13 -0
  382. package/dist/inspector/styleEditors/BorderEditor.js +295 -0
  383. package/dist/inspector/styleEditors/BorderRadiusEditor.d.ts +14 -0
  384. package/dist/inspector/styleEditors/BorderRadiusEditor.js +108 -0
  385. package/dist/inspector/styleEditors/BoxShadowEditor.d.ts +13 -0
  386. package/dist/inspector/styleEditors/BoxShadowEditor.js +13 -0
  387. package/dist/inspector/styleEditors/ColorPicker.d.ts +15 -0
  388. package/dist/inspector/styleEditors/ColorPicker.js +73 -0
  389. package/dist/inspector/styleEditors/GapField.d.ts +17 -0
  390. package/dist/inspector/styleEditors/GapField.js +12 -0
  391. package/dist/inspector/styleEditors/GridChildSection.d.ts +14 -0
  392. package/dist/inspector/styleEditors/GridChildSection.js +91 -0
  393. package/dist/inspector/styleEditors/GridPicker.d.ts +13 -0
  394. package/dist/inspector/styleEditors/GridPicker.js +179 -0
  395. package/dist/inspector/styleEditors/GridSection.d.ts +17 -0
  396. package/dist/inspector/styleEditors/GridSection.js +27 -0
  397. package/dist/inspector/styleEditors/GridValueField.d.ts +17 -0
  398. package/dist/inspector/styleEditors/GridValueField.js +70 -0
  399. package/dist/inspector/styleEditors/InsetSection.d.ts +15 -0
  400. package/dist/inspector/styleEditors/InsetSection.js +15 -0
  401. package/dist/inspector/styleEditors/LayoutBlockedIndicator.d.ts +6 -0
  402. package/dist/inspector/styleEditors/LayoutBlockedIndicator.js +6 -0
  403. package/dist/inspector/styleEditors/LayoutComboField.d.ts +18 -0
  404. package/dist/inspector/styleEditors/LayoutComboField.js +138 -0
  405. package/dist/inspector/styleEditors/LayoutDropdown.d.ts +14 -0
  406. package/dist/inspector/styleEditors/LayoutDropdown.js +34 -0
  407. package/dist/inspector/styleEditors/LayoutSection.d.ts +13 -0
  408. package/dist/inspector/styleEditors/LayoutSection.js +342 -0
  409. package/dist/inspector/styleEditors/OpacityEditor.d.ts +13 -0
  410. package/dist/inspector/styleEditors/OpacityEditor.js +34 -0
  411. package/dist/inspector/styleEditors/PositionInsets.d.ts +15 -0
  412. package/dist/inspector/styleEditors/PositionInsets.js +12 -0
  413. package/dist/inspector/styleEditors/SpacingBox.d.ts +29 -0
  414. package/dist/inspector/styleEditors/SpacingBox.js +189 -0
  415. package/dist/inspector/styleEditors/Typography.d.ts +13 -0
  416. package/dist/inspector/styleEditors/Typography.js +137 -0
  417. package/dist/inspector/styleEditors/completeCssValue.d.ts +8 -0
  418. package/dist/inspector/styleEditors/completeCssValue.js +34 -0
  419. package/dist/inspector/styleEditors/gridChildModel.d.ts +74 -0
  420. package/dist/inspector/styleEditors/gridChildModel.js +138 -0
  421. package/dist/inspector/styleEditors/layoutValue.d.ts +24 -0
  422. package/dist/inspector/styleEditors/layoutValue.js +103 -0
  423. package/dist/inspector/styleEditors/nudgeValue.d.ts +8 -0
  424. package/dist/inspector/styleEditors/nudgeValue.js +71 -0
  425. package/dist/inspector/styleEditors/rowLookup.d.ts +11 -0
  426. package/dist/inspector/styleEditors/rowLookup.js +13 -0
  427. package/dist/inspector/styleEditors/stringRecord.d.ts +4 -0
  428. package/dist/inspector/styleEditors/stringRecord.js +1 -0
  429. package/dist/inspector/styleEditors/valuePolicy.d.ts +20 -0
  430. package/dist/inspector/styleEditors/valuePolicy.js +82 -0
  431. package/dist/inspector/testing.d.ts +10 -0
  432. package/dist/inspector/testing.js +9 -0
  433. package/dist/inspector/tokens/TokenChip.d.ts +24 -0
  434. package/dist/inspector/tokens/TokenChip.js +23 -0
  435. package/dist/inspector/tokens/TokenDropdown.d.ts +13 -0
  436. package/dist/inspector/tokens/TokenDropdown.js +59 -0
  437. package/dist/inspector/tokens/TokenField.d.ts +68 -0
  438. package/dist/inspector/tokens/TokenField.js +485 -0
  439. package/dist/inspector/tokens/TokenLabel.d.ts +7 -0
  440. package/dist/inspector/tokens/TokenLabel.js +23 -0
  441. package/dist/inspector/tokens/TokensPanel.d.ts +5 -0
  442. package/dist/inspector/tokens/TokensPanel.js +47 -0
  443. package/dist/inspector/tokens/catalog.d.ts +51 -0
  444. package/dist/inspector/tokens/catalog.js +184 -0
  445. package/dist/inspector/tokens/editActions.d.ts +35 -0
  446. package/dist/inspector/tokens/editActions.js +164 -0
  447. package/dist/inspector/tokens/resolution/cascade.d.ts +14 -0
  448. package/dist/inspector/tokens/resolution/cascade.js +31 -0
  449. package/dist/inspector/tokens/resolution/cssomCollector.d.ts +43 -0
  450. package/dist/inspector/tokens/resolution/cssomCollector.js +528 -0
  451. package/dist/inspector/tokens/resolution/selectorSemantics.d.ts +12 -0
  452. package/dist/inspector/tokens/resolution/selectorSemantics.js +106 -0
  453. package/dist/inspector/tokens/resolution.d.ts +56 -0
  454. package/dist/inspector/tokens/resolution.js +1401 -0
  455. package/dist/inspector/tokens/tokenEdits.d.ts +3 -0
  456. package/dist/inspector/tokens/tokenEdits.js +22 -0
  457. package/dist/inspector/tokens/valueSemanticsAdapter.d.ts +6 -0
  458. package/dist/inspector/tokens/valueSemanticsAdapter.js +68 -0
  459. package/dist/inspector/ui/AtRuleContext.d.ts +18 -0
  460. package/dist/inspector/ui/AtRuleContext.js +54 -0
  461. package/dist/inspector/ui/Button.d.ts +9 -0
  462. package/dist/inspector/ui/Button.js +4 -0
  463. package/dist/inspector/ui/ColorSwatch.d.ts +7 -0
  464. package/dist/inspector/ui/ColorSwatch.js +6 -0
  465. package/dist/inspector/ui/ControlSurface.d.ts +14 -0
  466. package/dist/inspector/ui/ControlSurface.js +10 -0
  467. package/dist/inspector/ui/FieldRow.d.ts +14 -0
  468. package/dist/inspector/ui/FieldRow.js +15 -0
  469. package/dist/inspector/ui/IconButton.d.ts +14 -0
  470. package/dist/inspector/ui/IconButton.js +5 -0
  471. package/dist/inspector/ui/InspectorPopover.d.ts +17 -0
  472. package/dist/inspector/ui/InspectorPopover.js +13 -0
  473. package/dist/inspector/ui/PopoverListbox.d.ts +37 -0
  474. package/dist/inspector/ui/PopoverListbox.js +21 -0
  475. package/dist/inspector/ui/SegmentedControl.d.ts +24 -0
  476. package/dist/inspector/ui/SegmentedControl.js +16 -0
  477. package/dist/inspector/ui/Select.d.ts +25 -0
  478. package/dist/inspector/ui/Select.js +56 -0
  479. package/dist/inspector/ui/SideValuesField.d.ts +44 -0
  480. package/dist/inspector/ui/SideValuesField.js +76 -0
  481. package/dist/inspector/ui/StatusCallout.d.ts +9 -0
  482. package/dist/inspector/ui/StatusCallout.js +4 -0
  483. package/dist/inspector/ui/TextInput.d.ts +12 -0
  484. package/dist/inspector/ui/TextInput.js +5 -0
  485. package/dist/inspector/ui/ToggleButton.d.ts +11 -0
  486. package/dist/inspector/ui/ToggleButton.js +6 -0
  487. package/dist/inspector/ui/assets/grid.svg +14 -0
  488. package/dist/inspector/ui/css.d.ts +9 -0
  489. package/dist/inspector/ui/labels.d.ts +1 -0
  490. package/dist/inspector/ui/labels.js +7 -0
  491. package/dist/inspector/ui/styles.d.ts +1 -0
  492. package/dist/inspector/ui/styles.js +68 -0
  493. package/dist/inspector/virtual-modules.d.ts +7 -0
  494. package/dist/inspector/vite-env.d.ts +10 -0
  495. package/dist/internal/agent-protocol.d.ts +232 -0
  496. package/dist/internal/agent-protocol.js +237 -0
  497. package/dist/nudge-ui.mjs +15722 -0
  498. package/dist/project/files.d.ts +19 -0
  499. package/dist/project/files.js +226 -0
  500. package/dist/project/identity.d.ts +6 -0
  501. package/dist/project/identity.js +19 -0
  502. package/dist/project/pathPolicy.d.ts +8 -0
  503. package/dist/project/pathPolicy.js +12 -0
  504. package/dist/project/tokens.d.ts +36 -0
  505. package/dist/project/tokens.js +223 -0
  506. package/dist/transport/index.d.ts +8 -0
  507. package/dist/transport/index.js +8 -0
  508. package/dist/transport/routes.d.ts +13 -0
  509. package/dist/transport/routes.js +16 -0
  510. package/package.json +137 -0
@@ -0,0 +1,388 @@
1
+ import { childNodes, identifier, isNode, jsxMemberName, parseModule, } from "./ast.js";
2
+ import { stripModuleExtension } from "./sourcePaths.js";
3
+ /** Merge a host's protocol additions over a shared compatibility catalog. */
4
+ export function mergeComponentModuleProtocols(defaults, overrides) {
5
+ if (!overrides)
6
+ return defaults;
7
+ const merged = { ...defaults };
8
+ for (const [source, override] of Object.entries(overrides)) {
9
+ if (!override)
10
+ continue;
11
+ const fallback = defaults[source];
12
+ merged[source] = {
13
+ ...fallback,
14
+ ...override,
15
+ exports: {
16
+ ...fallback?.exports,
17
+ ...override.exports,
18
+ },
19
+ };
20
+ }
21
+ return merged;
22
+ }
23
+ /** A resolution failure that carries only the reason a host reports. */
24
+ function unresolved(code) {
25
+ return { resolved: false, code };
26
+ }
27
+ const MAX_REEXPORT_DEPTH = 24;
28
+ /**
29
+ * Analyses are a pure function of module source, so a content-addressed cache
30
+ * is correct across HMR without host-specific invalidation: an edited file
31
+ * simply misses and is re-analysed, while every unchanged re-export target
32
+ * skips its parse. Without this, policy resolution reparses every reachable
33
+ * module on every transform.
34
+ */
35
+ const ANALYSIS_CACHE_LIMIT = 128;
36
+ const analysisCache = new Map();
37
+ function analyseModuleSource(code) {
38
+ const cached = analysisCache.get(code);
39
+ if (cached !== undefined)
40
+ return cached;
41
+ const ast = parseModule(code);
42
+ const analysis = ast ? analyseModule(ast) : null;
43
+ if (analysisCache.size >= ANALYSIS_CACHE_LIMIT) {
44
+ const oldest = analysisCache.keys().next();
45
+ if (!oldest.done)
46
+ analysisCache.delete(oldest.value);
47
+ }
48
+ analysisCache.set(code, analysis);
49
+ return analysis;
50
+ }
51
+ /**
52
+ * Resolve the imported JSX values used by one source file.
53
+ *
54
+ * The compiler owns syntax and re-export traversal. The host Adapter owns all
55
+ * build-tool resolution, source ownership, and stable path decisions.
56
+ */
57
+ export async function resolveHostComponentPolicy(code, importer, adapter, options = {}) {
58
+ const analysis = analyseModuleSource(code);
59
+ if (!analysis) {
60
+ return { components: {}, diagnostics: [] };
61
+ }
62
+ const components = {};
63
+ const diagnostics = [];
64
+ const tracer = createTracer(adapter, options);
65
+ for (const componentName of analysis.importedJsxNames) {
66
+ const reference = importedReference(componentName, analysis.imports);
67
+ if (!reference)
68
+ continue;
69
+ const result = await tracer.request(reference.source, reference.exportName, importer);
70
+ if (result.resolved) {
71
+ components[componentName] = result.protocol;
72
+ continue;
73
+ }
74
+ diagnostics.push({
75
+ code: result.code,
76
+ componentName,
77
+ source: reference.source,
78
+ exportName: reference.exportName,
79
+ });
80
+ }
81
+ return { components, diagnostics };
82
+ }
83
+ /** Depth-first pre-order traversal of every node in a tree. */
84
+ function visit(node, callback) {
85
+ callback(node);
86
+ for (const child of childNodes(node))
87
+ visit(child, callback);
88
+ }
89
+ function analyseModule(ast) {
90
+ const program = isNode(ast.program) ? ast.program : ast;
91
+ const imports = new Map();
92
+ const declarations = new Map();
93
+ const exports = new Map();
94
+ const exportAll = [];
95
+ for (const statement of program.body ?? []) {
96
+ if (statement.type === "ImportDeclaration") {
97
+ recordImports(statement, imports);
98
+ continue;
99
+ }
100
+ recordDeclaration(statement, declarations);
101
+ if (statement.type === "ExportDefaultDeclaration") {
102
+ const declaration = statement.declaration;
103
+ if (isNode(declaration)) {
104
+ const localName = identifier(declaration);
105
+ exports.set("default", localName
106
+ ? { kind: "local", localName }
107
+ : { kind: "definition", node: declaration });
108
+ }
109
+ continue;
110
+ }
111
+ if (statement.type === "ExportAllDeclaration") {
112
+ const source = isNode(statement.source) ? String(statement.source.value ?? "") : "";
113
+ if (source)
114
+ exportAll.push(source);
115
+ continue;
116
+ }
117
+ if (statement.type !== "ExportNamedDeclaration")
118
+ continue;
119
+ const source = isNode(statement.source) ? String(statement.source.value ?? "") : null;
120
+ const declaration = isNode(statement.declaration) ? statement.declaration : null;
121
+ if (declaration) {
122
+ recordDeclaration(declaration, declarations);
123
+ for (const name of declaredNames(declaration)) {
124
+ exports.set(name, { kind: "local", localName: name });
125
+ }
126
+ }
127
+ for (const specifier of statement.specifiers ?? []) {
128
+ const exportedName = identifier(specifier.exported);
129
+ const localName = identifier(specifier.local);
130
+ if (!exportedName || !localName)
131
+ continue;
132
+ exports.set(exportedName, source
133
+ ? { kind: "request", source, exportName: localName }
134
+ : { kind: "local", localName });
135
+ }
136
+ }
137
+ return {
138
+ imports,
139
+ declarations,
140
+ exports,
141
+ exportAll,
142
+ importedJsxNames: collectImportedJsxNames(ast, imports),
143
+ };
144
+ }
145
+ function recordImports(statement, imports) {
146
+ if (statement.importKind === "type" || !isNode(statement.source))
147
+ return;
148
+ const source = String(statement.source.value ?? "");
149
+ for (const specifier of statement.specifiers ?? []) {
150
+ if (specifier.importKind === "type")
151
+ continue;
152
+ const localName = identifier(specifier.local);
153
+ if (!localName)
154
+ continue;
155
+ imports.set(localName, {
156
+ source,
157
+ exportName: specifier.type === "ImportDefaultSpecifier" ? "default" : identifier(specifier.imported) ?? "*",
158
+ namespace: specifier.type === "ImportNamespaceSpecifier",
159
+ });
160
+ }
161
+ }
162
+ function recordDeclaration(statement, declarations) {
163
+ if (statement.type === "FunctionDeclaration" || statement.type === "ClassDeclaration") {
164
+ const name = identifier(statement.id);
165
+ if (name)
166
+ declarations.set(name, statement);
167
+ return;
168
+ }
169
+ if (statement.type !== "VariableDeclaration")
170
+ return;
171
+ for (const declaration of statement.declarations ?? []) {
172
+ const name = identifier(declaration.id);
173
+ if (name)
174
+ declarations.set(name, declaration);
175
+ }
176
+ }
177
+ function declaredNames(declaration) {
178
+ if (declaration.type === "FunctionDeclaration" || declaration.type === "ClassDeclaration") {
179
+ const name = identifier(declaration.id);
180
+ return name ? [name] : [];
181
+ }
182
+ if (declaration.type !== "VariableDeclaration")
183
+ return [];
184
+ return (declaration.declarations ?? [])
185
+ .map((item) => identifier(item.id))
186
+ .filter((name) => name !== null);
187
+ }
188
+ function collectImportedJsxNames(ast, imports) {
189
+ const names = new Set();
190
+ visit(ast, (node) => {
191
+ if (node.type !== "JSXOpeningElement")
192
+ return;
193
+ const name = jsxMemberName(node.name);
194
+ const root = name?.split(".")[0];
195
+ if (name && root && /^[A-Z]/.test(root) && imports.has(root))
196
+ names.add(name);
197
+ });
198
+ return [...names].sort();
199
+ }
200
+ function importedReference(componentName, imports) {
201
+ const [root, ...members] = componentName.split(".");
202
+ const binding = root ? imports.get(root) : undefined;
203
+ if (!binding)
204
+ return null;
205
+ const exportName = binding.namespace
206
+ ? members.join(".")
207
+ : [binding.exportName, ...members].filter(Boolean).join(".");
208
+ if (!exportName || exportName === "*")
209
+ return null;
210
+ return { source: binding.source, exportName };
211
+ }
212
+ /**
213
+ * Trace authored imports to the protocol of the component they name.
214
+ *
215
+ * The tracer closes over the host Adapter and the protocol catalog, so each
216
+ * step carries only its request, the module it sits in, and its trace state.
217
+ */
218
+ function createTracer(adapter, options) {
219
+ async function request(source, exportName, importer, state) {
220
+ const declared = declaredProtocol(source, exportName, options);
221
+ if (declared)
222
+ return resolvedProtocol(source, exportName, declared);
223
+ if (state.depth >= MAX_REEXPORT_DEPTH)
224
+ return unresolved("component-export-unresolved");
225
+ let resolvedId;
226
+ try {
227
+ resolvedId = await adapter.resolve(source, importer);
228
+ }
229
+ catch {
230
+ resolvedId = null;
231
+ }
232
+ if (!resolvedId)
233
+ return unresolved("component-import-unresolved");
234
+ if (!adapter.isProjectSource(resolvedId))
235
+ return unresolved("component-protocol-unknown");
236
+ const canonicalSource = stripModuleExtension(adapter.sourcePath(resolvedId));
237
+ const canonicalProtocol = declaredProtocol(canonicalSource, exportName, options);
238
+ if (canonicalProtocol)
239
+ return resolvedProtocol(canonicalSource, exportName, canonicalProtocol);
240
+ const visitKey = `${resolvedId}\0${exportName}`;
241
+ if (state.visited.has(visitKey))
242
+ return unresolved("component-export-unresolved");
243
+ const moduleSource = await adapter.read(resolvedId);
244
+ if (moduleSource === null)
245
+ return unresolved("component-export-unresolved");
246
+ const analysis = analyseModuleSource(moduleSource);
247
+ if (!analysis)
248
+ return unresolved("component-export-unresolved");
249
+ return resolveExport({ analysis, moduleId: resolvedId, canonicalSource }, exportName, { visited: new Set(state.visited).add(visitKey), depth: state.depth + 1 });
250
+ }
251
+ async function resolveExport(module, exportName, state) {
252
+ const target = module.analysis.exports.get(exportName);
253
+ if (target?.kind === "request") {
254
+ return request(target.source, target.exportName, module.moduleId, state);
255
+ }
256
+ if (target?.kind === "definition") {
257
+ return followReference(expressionReference(target.node, module.analysis.imports), module, exportName, state);
258
+ }
259
+ if (target?.kind === "local") {
260
+ return resolveLocal(module, target.localName, exportName, state);
261
+ }
262
+ const candidates = [];
263
+ for (const source of module.analysis.exportAll) {
264
+ const candidate = await request(source, exportName, module.moduleId, state);
265
+ if (candidate.resolved)
266
+ candidates.push(candidate);
267
+ }
268
+ if (candidates.length === 1)
269
+ return candidates[0];
270
+ return unresolved("component-export-unresolved");
271
+ }
272
+ async function resolveLocal(module, localName, exportedName, state) {
273
+ const imported = module.analysis.imports.get(localName);
274
+ if (imported && !imported.namespace) {
275
+ return request(imported.source, imported.exportName, module.moduleId, state);
276
+ }
277
+ const declaration = module.analysis.declarations.get(localName);
278
+ if (!declaration)
279
+ return unresolved("component-export-unresolved");
280
+ if (declaration.type !== "VariableDeclarator") {
281
+ return projectProtocol(module.canonicalSource, exportedName);
282
+ }
283
+ return followReference(expressionReference(declaration.init, module.analysis.imports), module, exportedName, state);
284
+ }
285
+ function followReference(reference, module, exportedName, state) {
286
+ if (!reference)
287
+ return projectProtocol(module.canonicalSource, exportedName);
288
+ if (reference.kind === "local") {
289
+ return resolveLocal(module, reference.localName, exportedName, state);
290
+ }
291
+ return request(reference.source, reference.exportName, module.moduleId, state);
292
+ }
293
+ return {
294
+ /** Resolve one authored import to the protocol of the component it names. */
295
+ request: (source, exportName, importer) => request(source, exportName, importer, { visited: new Set(), depth: 0 }),
296
+ };
297
+ }
298
+ function expressionReference(expression, imports) {
299
+ let current = isNode(expression) ? expression : null;
300
+ while (current && ["TSAsExpression", "TSTypeAssertion", "TSNonNullExpression"].includes(current.type)) {
301
+ current = isNode(current.expression) ? current.expression : null;
302
+ }
303
+ if (!current)
304
+ return null;
305
+ if (current.type === "Identifier") {
306
+ const name = identifier(current);
307
+ if (!name)
308
+ return null;
309
+ const imported = imports.get(name);
310
+ return imported && !imported.namespace
311
+ ? { kind: "request", source: imported.source, exportName: imported.exportName }
312
+ : { kind: "local", localName: name };
313
+ }
314
+ if (current.type !== "MemberExpression")
315
+ return null;
316
+ const object = identifier(current.object);
317
+ const property = identifier(current.property);
318
+ const imported = object ? imports.get(object) : undefined;
319
+ if (!imported || !property)
320
+ return null;
321
+ return {
322
+ kind: "request",
323
+ source: imported.source,
324
+ exportName: imported.namespace ? property : `${imported.exportName}.${property}`,
325
+ };
326
+ }
327
+ function declaredProtocol(source, exportName, options) {
328
+ const moduleProtocol = options.moduleProtocols?.[source];
329
+ const normalizedExportName = exportName.replace(/^default\./, "");
330
+ const protocol = moduleProtocol?.exports?.[exportName]
331
+ ?? moduleProtocol?.exports?.[normalizedExportName]
332
+ ?? moduleProtocol?.default;
333
+ if (protocol)
334
+ return protocol;
335
+ return options.compatibleComponentImports?.[source]?.includes(exportName) === true
336
+ ? { wrap: true }
337
+ : null;
338
+ }
339
+ function resolvedProtocol(source, exportName, protocol) {
340
+ return {
341
+ resolved: true,
342
+ protocol: {
343
+ ...protocol,
344
+ componentId: `${stripModuleExtension(source)}#${exportName}`,
345
+ },
346
+ };
347
+ }
348
+ /**
349
+ * Default protocol for a component that resolves to project-owned source.
350
+ *
351
+ * The inspected codebase owns the definition, so replacing the element type is
352
+ * safe and its authored `children` may be traversed. Named JSX props stay
353
+ * opaque: only a host-declared protocol can promise that a named slot renders
354
+ * its contents.
355
+ */
356
+ function projectProtocol(source, exportName) {
357
+ return resolvedProtocol(source, exportName, { wrap: true, slots: { children: "rendered" } });
358
+ }
359
+ /**
360
+ * Roll per-component diagnostics up so a host emits one warning per package
361
+ * instead of one per skipped export.
362
+ */
363
+ export function groupComponentPolicyDiagnostics(diagnostics, maxNames = 5) {
364
+ const groups = new Map();
365
+ for (const diagnostic of diagnostics) {
366
+ const key = `${diagnostic.code}\0${diagnostic.source}`;
367
+ const group = groups.get(key);
368
+ if (group)
369
+ group.push(diagnostic);
370
+ else
371
+ groups.set(key, [diagnostic]);
372
+ }
373
+ return [...groups].map(([key, group]) => ({
374
+ key,
375
+ source: group[0].source,
376
+ componentNames: group.slice(0, maxNames).map((diagnostic) => diagnostic.componentName),
377
+ total: group.length,
378
+ }));
379
+ }
380
+ /** Host-facing warning text for one grouped diagnostic. */
381
+ export function formatComponentPolicyWarning(grouped, location, hint = "Add componentProtocols metadata to opt in compatible package exports.") {
382
+ const names = grouped.componentNames.join(", ");
383
+ const remainder = grouped.total > grouped.componentNames.length
384
+ ? ` and ${grouped.total - grouped.componentNames.length} more`
385
+ : "";
386
+ return `[nudge-ui] Semantic instrumentation skipped ${grouped.source} in ${location} `
387
+ + `(${names}${remainder}). ${hint}`;
388
+ }
@@ -0,0 +1,9 @@
1
+ /** Host-neutral source compilers used by framework adapters. */
2
+ export * from "./reactIdentity.js";
3
+ export * from "./componentInstrumentation.js";
4
+ export * from "./componentPolicyResolution.js";
5
+ export * from "./reactComponentProtocols.js";
6
+ export * from "./componentContractTypes.js";
7
+ export * from "./componentContracts.js";
8
+ export * from "./packageComponentContracts.js";
9
+ export { relativePath } from "./sourcePaths.js";
@@ -0,0 +1,9 @@
1
+ /** Host-neutral source compilers used by framework adapters. */
2
+ export * from "./reactIdentity.js";
3
+ export * from "./componentInstrumentation.js";
4
+ export * from "./componentPolicyResolution.js";
5
+ export * from "./reactComponentProtocols.js";
6
+ export * from "./componentContractTypes.js";
7
+ export * from "./componentContracts.js";
8
+ export * from "./packageComponentContracts.js";
9
+ export { relativePath } from "./sourcePaths.js";
@@ -0,0 +1,32 @@
1
+ import ts from "typescript";
2
+ import type { ComponentContract } from "./componentContractTypes.js";
3
+ /**
4
+ * Identifies a package import from the host module that uses it.
5
+ *
6
+ * The host path is intentional: TypeScript uses it as the resolution anchor,
7
+ * so the same module specifier can resolve to a different installed package in
8
+ * each application. The returned contract identity always uses the import
9
+ * specifier, never an absolute node_modules path.
10
+ */
11
+ export interface PackageContractContext {
12
+ hostFile: string;
13
+ moduleSpecifier: string;
14
+ compilerOptions?: ts.CompilerOptions;
15
+ }
16
+ export interface PackageContractCatalogContext {
17
+ hostFile: string;
18
+ moduleSpecifiers: readonly string[];
19
+ compilerOptions?: ts.CompilerOptions;
20
+ }
21
+ /** Returns bare modules whose imported bindings are rendered as JSX. */
22
+ export declare function collectPackageComponentModules(code: string, fileName: string): string[];
23
+ /**
24
+ * Extracts scalar controls from component exports in an installed package.
25
+ *
26
+ * It follows TypeScript's resolved module graph, including barrel re-exports
27
+ * and declaration-file aliases, rather than trying to parse one declaration
28
+ * file in isolation.
29
+ */
30
+ export declare function extractPackageComponentContracts(context: PackageContractContext): ComponentContract[];
31
+ /** Extracts several package modules through one declaration-only program. */
32
+ export declare function extractPackageComponentContractCatalog(context: PackageContractCatalogContext): ComponentContract[];