nudge-ui 0.2.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (642) hide show
  1. package/dist/cli/agentCommand.d.ts +0 -1
  2. package/dist/cli/agentCommand.js +4 -29
  3. package/dist/client.mjs +987 -221
  4. package/dist/compiler/ast.d.ts +0 -6
  5. package/dist/compiler/ast.js +0 -5
  6. package/dist/compiler/componentContractTypes.d.ts +11 -5
  7. package/dist/compiler/componentContracts.js +3 -9
  8. package/dist/compiler/componentInstrumentation.d.ts +2 -13
  9. package/dist/compiler/componentInstrumentation.js +3 -12
  10. package/dist/compiler/componentPolicyResolution.d.ts +3 -22
  11. package/dist/compiler/componentPolicyResolution.js +6 -38
  12. package/dist/compiler/identityAttributes.d.ts +2 -0
  13. package/dist/compiler/identityAttributes.js +2 -0
  14. package/dist/compiler/index.d.ts +0 -1
  15. package/dist/compiler/index.js +0 -1
  16. package/dist/compiler/packageComponentContracts.d.ts +10 -19
  17. package/dist/compiler/packageComponentContracts.js +60 -43
  18. package/dist/compiler/reactComponentProtocols.d.ts +0 -7
  19. package/dist/compiler/reactComponentProtocols.js +0 -7
  20. package/dist/compiler/reactIdentity.d.ts +2 -2
  21. package/dist/compiler/reactIdentity.js +41 -43
  22. package/dist/compiler/sourcePaths.d.ts +4 -8
  23. package/dist/compiler/sourcePaths.js +6 -8
  24. package/dist/css/dialects/index.d.ts +2 -21
  25. package/dist/css/dialects/index.js +2 -9
  26. package/dist/css/dialects/tailwind.d.ts +2 -16
  27. package/dist/css/dialects/tailwind.js +2 -25
  28. package/dist/css/dialects/vanillaExtract.d.ts +1 -9
  29. package/dist/css/dialects/vanillaExtract.js +0 -1
  30. package/dist/css/index.d.ts +0 -8
  31. package/dist/css/index.js +0 -8
  32. package/dist/css/model/index.d.ts +6 -38
  33. package/dist/css/model/index.js +0 -9
  34. package/dist/css/token-inventory/index.d.ts +0 -23
  35. package/dist/css/token-inventory/index.js +0 -23
  36. package/dist/css/token-inventory/inventory.js +4 -16
  37. package/dist/css/token-inventory/parseStylesheet.d.ts +1 -9
  38. package/dist/css/token-inventory/parseStylesheet.js +5 -42
  39. package/dist/css/token-inventory/policy.d.ts +2 -39
  40. package/dist/css/token-inventory/policy.js +2 -39
  41. package/dist/css/token-inventory/types.d.ts +2 -15
  42. package/dist/css/value-semantics/borderSemantics.d.ts +1 -8
  43. package/dist/css/value-semantics/borderSemantics.js +5 -23
  44. package/dist/css/value-semantics/boxSemantics.d.ts +2 -25
  45. package/dist/css/value-semantics/boxSemantics.js +1 -7
  46. package/dist/css/value-semantics/colorSemantics.d.ts +6 -60
  47. package/dist/css/value-semantics/colorSemantics.js +9 -40
  48. package/dist/css/value-semantics/cssSyntax.d.ts +10 -10
  49. package/dist/css/value-semantics/cssSyntax.js +39 -11
  50. package/dist/css/value-semantics/fontSemantics.d.ts +3 -19
  51. package/dist/css/value-semantics/fontSemantics.js +7 -25
  52. package/dist/css/value-semantics/index.d.ts +1 -12
  53. package/dist/css/value-semantics/index.js +1 -12
  54. package/dist/css/value-semantics/propertyPolicy.d.ts +6 -53
  55. package/dist/css/value-semantics/propertyPolicy.js +47 -59
  56. package/dist/css/value-semantics/stringMaps.d.ts +0 -1
  57. package/dist/css/value-semantics/structuredValues.d.ts +3 -37
  58. package/dist/css/value-semantics/structuredValues.js +6 -17
  59. package/dist/css/value-semantics/tokenInterpretation.d.ts +8 -50
  60. package/dist/css/value-semantics/tokenInterpretation.js +7 -21
  61. package/dist/hosts/astro/astroRuntimeConfig.d.ts +0 -1
  62. package/dist/hosts/astro/astroRuntimeConfig.js +0 -1
  63. package/dist/hosts/astro/clientAsset.d.ts +1 -5
  64. package/dist/hosts/astro/clientAsset.js +1 -5
  65. package/dist/hosts/astro/clientTransport.d.ts +0 -1
  66. package/dist/hosts/astro/clientTransport.js +4 -9
  67. package/dist/hosts/astro/integration.d.ts +2 -28
  68. package/dist/hosts/astro/integration.js +7 -36
  69. package/dist/hosts/astro/markdownIdentity.d.ts +0 -3
  70. package/dist/hosts/astro/markdownIdentity.js +0 -3
  71. package/dist/hosts/astro/middleware.d.ts +1 -12
  72. package/dist/hosts/astro/middleware.js +1 -12
  73. package/dist/hosts/astro/projectContext.d.ts +1 -9
  74. package/dist/hosts/astro/projectContext.js +2 -11
  75. package/dist/hosts/astro/responseInstrumentation.d.ts +4 -33
  76. package/dist/hosts/astro/responseInstrumentation.js +5 -34
  77. package/dist/hosts/environment.d.ts +0 -8
  78. package/dist/hosts/environment.js +0 -1
  79. package/dist/hosts/next/index.js +1 -3
  80. package/dist/hosts/next/loader.d.ts +5 -44
  81. package/dist/hosts/next/loader.js +22 -103
  82. package/dist/hosts/next/loaders/identity-loader.cjs +111 -65
  83. package/dist/hosts/next/loaders/loader-plugin.cjs +111 -65
  84. package/dist/hosts/next/manifest.d.ts +2 -16
  85. package/dist/hosts/next/manifest.js +18 -20
  86. package/dist/hosts/next/mount.d.ts +1 -11
  87. package/dist/hosts/next/mount.js +1 -11
  88. package/dist/hosts/next/repositoryScope.d.ts +2 -17
  89. package/dist/hosts/next/repositoryScope.js +2 -17
  90. package/dist/hosts/next/sidecar.d.ts +0 -13
  91. package/dist/hosts/next/sidecar.js +25 -110
  92. package/dist/hosts/next/wrapper.d.ts +0 -31
  93. package/dist/hosts/next/wrapper.js +14 -71
  94. package/dist/hosts/projectBridge.d.ts +0 -2
  95. package/dist/hosts/projectBridge.js +3 -19
  96. package/dist/hosts/reactRendererCapture.d.ts +2 -0
  97. package/dist/hosts/reactRendererCapture.js +12 -0
  98. package/dist/hosts/static/cli.d.ts +0 -4
  99. package/dist/hosts/static/cli.js +0 -3
  100. package/dist/hosts/static/html/bootstrap.d.ts +1 -18
  101. package/dist/hosts/static/html/bootstrap.js +2 -14
  102. package/dist/hosts/static/manifest.d.ts +2 -15
  103. package/dist/hosts/static/manifest.js +5 -18
  104. package/dist/hosts/static/server.d.ts +4 -38
  105. package/dist/hosts/static/server.js +17 -67
  106. package/dist/hosts/vite/index.d.ts +0 -10
  107. package/dist/hosts/vite/index.js +0 -10
  108. package/dist/hosts/vite/react.d.ts +4 -17
  109. package/dist/hosts/vite/react.js +18 -35
  110. package/dist/hosts/vite/tokens/activeStylesheets.d.ts +1 -10
  111. package/dist/hosts/vite/tokens/activeStylesheets.js +3 -8
  112. package/dist/hosts/vite/tokens/fileMap.d.ts +0 -1
  113. package/dist/hosts/vite/tokens/viteStylesheetArtifacts.d.ts +2 -15
  114. package/dist/hosts/vite/tokens/viteStylesheetArtifacts.js +3 -10
  115. package/dist/hosts/vite/vite.d.ts +5 -26
  116. package/dist/hosts/vite/vite.js +44 -80
  117. package/dist/html/dom.d.ts +0 -1
  118. package/dist/html/dom.js +0 -1
  119. package/dist/html/identity.d.ts +1 -15
  120. package/dist/html/identity.js +1 -8
  121. package/dist/html/insertions.d.ts +2 -8
  122. package/dist/html/insertions.js +1 -1
  123. package/dist/inspector/agent/McpConnectionDialog.d.ts +1 -6
  124. package/dist/inspector/agent/McpConnectionDialog.js +8 -9
  125. package/dist/inspector/agent/activity.d.ts +2 -2
  126. package/dist/inspector/agent/activity.js +4 -3
  127. package/dist/inspector/agent/client.d.ts +3 -27
  128. package/dist/inspector/agent/client.js +43 -91
  129. package/dist/inspector/agent/connectionStatus.d.ts +3 -2
  130. package/dist/inspector/agent/connectionStatus.js +25 -1
  131. package/dist/inspector/agent/httpTransport.d.ts +0 -8
  132. package/dist/inspector/agent/httpTransport.js +42 -176
  133. package/dist/inspector/agent/protocol.d.ts +1 -10
  134. package/dist/inspector/agent/protocol.js +1 -9
  135. package/dist/inspector/agent/verification.d.ts +3 -20
  136. package/dist/inspector/agent/verification.js +10 -43
  137. package/dist/inspector/boot.d.ts +5 -0
  138. package/dist/inspector/boot.js +289 -0
  139. package/dist/inspector/canvas/AgentActivityOverlay.d.ts +3 -2
  140. package/dist/inspector/canvas/AgentActivityOverlay.js +7 -4
  141. package/dist/inspector/canvas/CanvasCard.js +26 -24
  142. package/dist/inspector/canvas/CanvasElementOverlay.js +196 -174
  143. package/dist/inspector/canvas/CanvasToolbar.js +2 -1
  144. package/dist/inspector/canvas/CanvasWorkspace.js +87 -124
  145. package/dist/inspector/canvas/LockedWorkspaceNotice.d.ts +3 -2
  146. package/dist/inspector/canvas/LockedWorkspaceNotice.js +10 -6
  147. package/dist/inspector/canvas/PageCard.d.ts +9 -0
  148. package/dist/inspector/canvas/PageCard.js +50 -0
  149. package/dist/inspector/canvas/SketchToolOptions.d.ts +4 -0
  150. package/dist/inspector/canvas/SketchToolOptions.js +80 -0
  151. package/dist/inspector/canvas/StaleChangeIndicator.d.ts +1 -1
  152. package/dist/inspector/canvas/StaleChangeIndicator.js +1 -1
  153. package/dist/inspector/canvas/ToolOptionsDrawer.d.ts +16 -0
  154. package/dist/inspector/canvas/ToolOptionsDrawer.js +71 -0
  155. package/dist/inspector/canvas/activeCanvasDocument.d.ts +3 -4
  156. package/dist/inspector/canvas/activeCanvasDocument.js +0 -2
  157. package/dist/inspector/canvas/agentPresentation.d.ts +2 -13
  158. package/dist/inspector/canvas/agentPresentation.js +3 -14
  159. package/dist/inspector/canvas/assets/eraser.svg +28 -0
  160. package/dist/inspector/canvas/assets/pen.svg +25 -0
  161. package/dist/inspector/canvas/canvasFrame.d.ts +12 -0
  162. package/dist/inspector/canvas/canvasFrame.js +9 -0
  163. package/dist/inspector/canvas/canvasGestures.d.ts +0 -1
  164. package/dist/inspector/canvas/canvasGestures.js +0 -6
  165. package/dist/inspector/canvas/canvasResize.d.ts +1 -6
  166. package/dist/inspector/canvas/canvasResize.js +1 -6
  167. package/dist/inspector/canvas/canvasStore.d.ts +5 -7
  168. package/dist/inspector/canvas/canvasStore.js +42 -21
  169. package/dist/inspector/canvas/frameConnection.d.ts +42 -0
  170. package/dist/inspector/canvas/frameConnection.js +73 -0
  171. package/dist/inspector/canvas/frameContent.d.ts +0 -1
  172. package/dist/inspector/canvas/frameLifecycle.d.ts +12 -0
  173. package/dist/inspector/canvas/frameLifecycle.js +11 -0
  174. package/dist/inspector/canvas/frameProtocol.d.ts +20 -38
  175. package/dist/inspector/canvas/frameProtocol.js +37 -24
  176. package/dist/inspector/canvas/frameScrollbarStyles.d.ts +0 -1
  177. package/dist/inspector/canvas/frameScrollbarStyles.js +0 -1
  178. package/dist/inspector/canvas/layout.d.ts +10 -22
  179. package/dist/inspector/canvas/layout.js +0 -3
  180. package/dist/inspector/canvas/normalizeUrl.js +1 -8
  181. package/dist/inspector/canvas/pageSurface.d.ts +6 -0
  182. package/dist/inspector/canvas/pageSurface.js +29 -0
  183. package/dist/inspector/canvas/projection.d.ts +14 -25
  184. package/dist/inspector/canvas/projection.js +64 -87
  185. package/dist/inspector/canvas/rendererBootstrap.d.ts +8 -1
  186. package/dist/inspector/canvas/rendererBootstrap.js +10 -15
  187. package/dist/inspector/canvas/rendererCidIndex.d.ts +0 -5
  188. package/dist/inspector/canvas/rendererCidIndex.js +0 -5
  189. package/dist/inspector/canvas/rendererElementSelector.js +38 -28
  190. package/dist/inspector/canvas/rendererMessageRouter.d.ts +4 -6
  191. package/dist/inspector/canvas/rendererMessageRouter.js +12 -17
  192. package/dist/inspector/canvas/rendererSelectionProxy.d.ts +3 -1
  193. package/dist/inspector/canvas/rendererSelectionProxy.js +7 -40
  194. package/dist/inspector/canvas/rendererStylesheet.d.ts +0 -1
  195. package/dist/inspector/canvas/rendererStylesheet.js +23 -1
  196. package/dist/inspector/canvas/resizeHandleScale.d.ts +1 -10
  197. package/dist/inspector/canvas/resizeHandleScale.js +1 -10
  198. package/dist/inspector/canvas/sessionStore.d.ts +3 -9
  199. package/dist/inspector/canvas/sessionStore.js +33 -43
  200. package/dist/inspector/canvas/staleChangeDetector.d.ts +1 -1
  201. package/dist/inspector/canvas/staleChangeDetector.js +11 -26
  202. package/dist/inspector/canvas/toolbarScale.d.ts +1 -4
  203. package/dist/inspector/canvas/toolbarScale.js +1 -4
  204. package/dist/inspector/canvas/useCanvasLayoutAnimation.d.ts +0 -1
  205. package/dist/inspector/canvas/useCanvasLayoutAnimation.js +0 -1
  206. package/dist/inspector/canvas/viewStore.js +1 -1
  207. package/dist/inspector/canvas/wheelPan.d.ts +1 -1
  208. package/dist/inspector/canvas/wheelPan.js +1 -1
  209. package/dist/inspector/canvas/workspaceLease.d.ts +1 -5
  210. package/dist/inspector/canvas/workspaceLease.js +1 -7
  211. package/dist/inspector/changes/codecs.d.ts +1 -0
  212. package/dist/inspector/changes/codecs.js +21 -5
  213. package/dist/inspector/changes/draftPreview.d.ts +7 -0
  214. package/dist/inspector/changes/draftPreview.js +118 -0
  215. package/dist/inspector/changes/editModel.d.ts +11 -13
  216. package/dist/inspector/changes/editModel.js +9 -4
  217. package/dist/inspector/changes/managedStyleProjection.js +6 -15
  218. package/dist/inspector/changes/model.d.ts +0 -5
  219. package/dist/inspector/changes/model.js +1 -8
  220. package/dist/inspector/changes/previewDiagnostics.d.ts +2 -12
  221. package/dist/inspector/changes/previewDiagnostics.js +5 -21
  222. package/dist/inspector/changes/previewVerification.d.ts +25 -0
  223. package/dist/inspector/changes/previewVerification.js +34 -0
  224. package/dist/inspector/changes/structuralTypes.d.ts +2 -4
  225. package/dist/inspector/changes/types.d.ts +11 -8
  226. package/dist/inspector/clientManifest.d.ts +17 -6
  227. package/dist/inspector/clientManifest.js +16 -3
  228. package/dist/inspector/comments/CommentsOverlay.js +66 -23
  229. package/dist/inspector/comments/element.d.ts +1 -2
  230. package/dist/inspector/comments/element.js +1 -2
  231. package/dist/inspector/comments/store.d.ts +1 -1
  232. package/dist/inspector/comments/store.js +4 -3
  233. package/dist/inspector/comments/verification.d.ts +8 -2
  234. package/dist/inspector/comments/verification.js +19 -11
  235. package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +8 -0
  236. package/dist/inspector/componentSemantics/ComponentPropsSection.js +12 -8
  237. package/dist/inspector/componentSemantics/adapterRegistry.d.ts +2 -9
  238. package/dist/inspector/componentSemantics/adapterRegistry.js +2 -9
  239. package/dist/inspector/componentSemantics/changeAction.js +1 -1
  240. package/dist/inspector/componentSemantics/changeModel.js +2 -4
  241. package/dist/inspector/componentSemantics/react/callsites.d.ts +28 -0
  242. package/dist/inspector/componentSemantics/react/callsites.js +261 -0
  243. package/dist/inspector/componentSemantics/react/devtoolsHook.d.ts +23 -0
  244. package/dist/inspector/componentSemantics/react/devtoolsHook.js +71 -0
  245. package/dist/inspector/componentSemantics/react/fibers.d.ts +17 -0
  246. package/dist/inspector/componentSemantics/react/fibers.js +30 -0
  247. package/dist/inspector/componentSemantics/{reactRuntime.d.ts → react/runtime.d.ts} +3 -2
  248. package/dist/inspector/componentSemantics/{reactRuntime.js → react/runtime.js} +70 -53
  249. package/dist/inspector/componentSemantics/runtimeBridge.d.ts +2 -18
  250. package/dist/inspector/componentSemantics/runtimeBridge.js +5 -19
  251. package/dist/inspector/componentSemantics/textBinding.d.ts +2 -11
  252. package/dist/inspector/componentSemantics/textBinding.js +20 -87
  253. package/dist/inspector/componentSemantics/types.d.ts +8 -27
  254. package/dist/inspector/componentSemantics/types.js +0 -1
  255. package/dist/inspector/conformance/borderCases.d.ts +0 -5
  256. package/dist/inspector/conformance/borderCases.js +0 -5
  257. package/dist/inspector/conformance/colorCases.d.ts +0 -6
  258. package/dist/inspector/conformance/colorCases.js +0 -6
  259. package/dist/inspector/conformance/fixture.d.ts +1 -5
  260. package/dist/inspector/conformance/fixture.js +1 -5
  261. package/dist/inspector/conformance/spacingCases.d.ts +0 -4
  262. package/dist/inspector/conformance/spacingCases.js +0 -4
  263. package/dist/inspector/conformance/typographyCases.d.ts +0 -5
  264. package/dist/inspector/conformance/typographyCases.js +0 -5
  265. package/dist/inspector/drafts/draftStore.d.ts +95 -0
  266. package/dist/inspector/drafts/draftStore.js +461 -0
  267. package/dist/inspector/drafts/model.d.ts +14 -14
  268. package/dist/inspector/drafts/model.js +4 -2
  269. package/dist/inspector/drafts/store.d.ts +47 -16
  270. package/dist/inspector/drafts/store.js +137 -170
  271. package/dist/inspector/editScope.d.ts +0 -1
  272. package/dist/inspector/editScope.js +0 -1
  273. package/dist/inspector/index.d.ts +2 -4
  274. package/dist/inspector/index.js +2 -264
  275. package/dist/inspector/inline-text/inlineTextDiagnostics.d.ts +0 -2
  276. package/dist/inspector/inline-text/inlineTextDiagnostics.js +0 -2
  277. package/dist/inspector/inline-text/inlineTextEditor.d.ts +3 -9
  278. package/dist/inspector/inline-text/inlineTextEditor.js +27 -81
  279. package/dist/inspector/inline-text/inlineTextLifecycle.js +1 -6
  280. package/dist/inspector/inline-text/textEditChange.d.ts +1 -2
  281. package/dist/inspector/inspection/bridge.d.ts +3 -7
  282. package/dist/inspector/inspection/bridge.js +6 -13
  283. package/dist/inspector/inspection/browserCssInspection.d.ts +12 -11
  284. package/dist/inspector/inspection/browserCssInspection.js +32 -14
  285. package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +0 -7
  286. package/dist/inspector/inspection/browserCssInspectionRegistry.js +1 -16
  287. package/dist/inspector/inspection/inspectionSnapshot.d.ts +6 -0
  288. package/dist/inspector/inspection/inspectionSnapshot.js +10 -0
  289. package/dist/inspector/inspection/performanceDiagnostics.d.ts +18 -0
  290. package/dist/inspector/inspection/performanceDiagnostics.js +31 -0
  291. package/dist/inspector/inspection/selectionProperty.d.ts +1 -6
  292. package/dist/inspector/inspection/selectionProperty.js +1 -5
  293. package/dist/inspector/inspection/useBrowserCssInspection.d.ts +1 -5
  294. package/dist/inspector/inspection/useBrowserCssInspection.js +22 -59
  295. package/dist/inspector/iterations/capture.d.ts +2 -2
  296. package/dist/inspector/iterations/capture.js +4 -9
  297. package/dist/inspector/iterations/client.d.ts +2 -2
  298. package/dist/inspector/iterations/client.js +0 -1
  299. package/dist/inspector/iterations/coordinator.d.ts +4 -4
  300. package/dist/inspector/iterations/coordinator.js +5 -4
  301. package/dist/inspector/iterations/prompt.d.ts +0 -1
  302. package/dist/inspector/iterations/prompt.js +9 -9
  303. package/dist/inspector/overlay/DomNavigator.d.ts +3 -1
  304. package/dist/inspector/overlay/DomNavigator.js +39 -15
  305. package/dist/inspector/overlay/DropGuideOverlay.d.ts +0 -1
  306. package/dist/inspector/overlay/DropGuideOverlay.js +0 -1
  307. package/dist/inspector/overlay/MeasurementGuideOverlay.d.ts +1 -8
  308. package/dist/inspector/overlay/MeasurementGuideOverlay.js +1 -5
  309. package/dist/inspector/overlay/clickPolicy.d.ts +3 -14
  310. package/dist/inspector/overlay/clickPolicy.js +3 -14
  311. package/dist/inspector/overlay/dropGuide.d.ts +0 -3
  312. package/dist/inspector/overlay/dropGuide.js +0 -3
  313. package/dist/inspector/overlay/frameThrottle.d.ts +0 -1
  314. package/dist/inspector/overlay/frameThrottle.js +0 -1
  315. package/dist/inspector/overlay/interactionStyles.d.ts +1 -1
  316. package/dist/inspector/overlay/interactionStyles.js +19 -8
  317. package/dist/inspector/overlay/measurementGeometry.js +4 -12
  318. package/dist/inspector/overlay/selectedGeometry.d.ts +1 -6
  319. package/dist/inspector/overlay/selectedGeometry.js +1 -8
  320. package/dist/inspector/overlay/spacingGestures.d.ts +14 -21
  321. package/dist/inspector/overlay/spacingGestures.js +151 -31
  322. package/dist/inspector/overlay/structuralGestures.d.ts +2 -9
  323. package/dist/inspector/overlay/structuralGestures.js +1 -4
  324. package/dist/inspector/pageInspector.d.ts +33 -0
  325. package/dist/inspector/pageInspector.js +335 -0
  326. package/dist/inspector/projection/cssEscapes.d.ts +0 -1
  327. package/dist/inspector/projection/cssEscapes.js +2 -4
  328. package/dist/inspector/projection/draftProjection.d.ts +6 -10
  329. package/dist/inspector/projection/draftProjection.js +8 -7
  330. package/dist/inspector/projection/managedStylesheet.d.ts +1 -7
  331. package/dist/inspector/projection/managedStylesheet.js +28 -26
  332. package/dist/inspector/projection/renderedInstance.d.ts +5 -28
  333. package/dist/inspector/projection/renderedInstance.js +13 -33
  334. package/dist/inspector/projection/structuralProjection.d.ts +7 -48
  335. package/dist/inspector/projection/structuralProjection.js +31 -96
  336. package/dist/inspector/projection/textProjection.d.ts +7 -13
  337. package/dist/inspector/projection/textProjection.js +35 -80
  338. package/dist/inspector/prompt/PromptSettingsDialog.d.ts +0 -1
  339. package/dist/inspector/prompt/PromptSettingsDialog.js +0 -1
  340. package/dist/inspector/prompt/clipboardHandoff.d.ts +1 -0
  341. package/dist/inspector/prompt/clipboardHandoff.js +34 -16
  342. package/dist/inspector/prompt/generatePrompt.d.ts +2 -2
  343. package/dist/inspector/prompt/generatePrompt.js +247 -166
  344. package/dist/inspector/prompt/promptDocument.d.ts +3 -0
  345. package/dist/inspector/prompt/promptDocument.js +8 -0
  346. package/dist/inspector/prompt/promptSettings.d.ts +0 -3
  347. package/dist/inspector/prompt/promptSettings.js +7 -8
  348. package/dist/inspector/runtime/devFlag.d.ts +2 -25
  349. package/dist/inspector/runtime/devFlag.js +4 -31
  350. package/dist/inspector/runtime/documentStylesheetOrder.d.ts +0 -2
  351. package/dist/inspector/runtime/editorShell.d.ts +0 -1
  352. package/dist/inspector/runtime/editorShell.js +0 -1
  353. package/dist/inspector/runtime/inspectorStorage.d.ts +11 -0
  354. package/dist/inspector/runtime/inspectorStorage.js +37 -0
  355. package/dist/inspector/runtime/ownedStylesheets.d.ts +14 -0
  356. package/dist/inspector/runtime/ownedStylesheets.js +66 -0
  357. package/dist/inspector/runtime/runtimeConfig.d.ts +14 -84
  358. package/dist/inspector/runtime/runtimeConfig.js +18 -50
  359. package/dist/inspector/runtime/runtimeIdentityClaims.d.ts +19 -0
  360. package/dist/inspector/runtime/runtimeIdentityClaims.js +178 -0
  361. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +6 -23
  362. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +103 -52
  363. package/dist/inspector/runtime/useRuntimeConfig.d.ts +1 -8
  364. package/dist/inspector/runtime/useRuntimeConfig.js +1 -8
  365. package/dist/inspector/selection/editScope.d.ts +2 -7
  366. package/dist/inspector/selection/editScope.js +15 -14
  367. package/dist/inspector/selection/editTarget.d.ts +1 -5
  368. package/dist/inspector/selection/hierarchy.d.ts +11 -11
  369. package/dist/inspector/selection/hierarchy.js +42 -24
  370. package/dist/inspector/selection/selectionStore.d.ts +0 -3
  371. package/dist/inspector/selection/selectionStore.js +5 -16
  372. package/dist/inspector/selection/sourceSite.d.ts +1 -5
  373. package/dist/inspector/selection/sourceSite.js +2 -8
  374. package/dist/inspector/selection/styleSelection.d.ts +1 -5
  375. package/dist/inspector/selection/styleSelection.js +1 -5
  376. package/dist/inspector/session/lifecycle.d.ts +1 -9
  377. package/dist/inspector/session/lifecycle.js +0 -1
  378. package/dist/inspector/session/sessionContext.d.ts +0 -4
  379. package/dist/inspector/session/sessionContext.js +0 -4
  380. package/dist/inspector/session/sessionFactory.d.ts +0 -9
  381. package/dist/inspector/session/sessionFactory.js +0 -6
  382. package/dist/inspector/settings/SettingsDialog.d.ts +0 -1
  383. package/dist/inspector/settings/SettingsDialog.js +5 -3
  384. package/dist/inspector/shell/AgentStatusButton.d.ts +3 -2
  385. package/dist/inspector/shell/AgentStatusButton.js +7 -7
  386. package/dist/inspector/shell/AppShell.js +6 -2
  387. package/dist/inspector/shell/ChangesLog.js +29 -12
  388. package/dist/inspector/shell/CopyPromptButton.d.ts +2 -1
  389. package/dist/inspector/shell/CopyPromptButton.js +62 -55
  390. package/dist/inspector/shell/EmptyState.js +3 -3
  391. package/dist/inspector/shell/InspectorEditors.d.ts +16 -0
  392. package/dist/inspector/shell/InspectorEditors.js +14 -0
  393. package/dist/inspector/shell/InspectorPanel.d.ts +12 -0
  394. package/dist/inspector/shell/InspectorPanel.js +8 -0
  395. package/dist/inspector/shell/InspectorSelection.d.ts +24 -0
  396. package/dist/inspector/shell/InspectorSelection.js +20 -0
  397. package/dist/inspector/shell/InspectorShell.d.ts +0 -3
  398. package/dist/inspector/shell/InspectorShell.js +44 -58
  399. package/dist/inspector/shell/NudgeLogoIcon.d.ts +5 -0
  400. package/dist/inspector/shell/NudgeLogoIcon.js +5 -0
  401. package/dist/inspector/shell/PeekOriginalButton.d.ts +0 -5
  402. package/dist/inspector/shell/PeekOriginalButton.js +3 -8
  403. package/dist/inspector/shell/PeekOriginalIcon.d.ts +0 -5
  404. package/dist/inspector/shell/PeekOriginalIcon.js +0 -5
  405. package/dist/inspector/shell/PromptActionButton.d.ts +21 -0
  406. package/dist/inspector/shell/PromptActionButton.js +14 -0
  407. package/dist/inspector/shell/elementName.d.ts +5 -0
  408. package/dist/inspector/shell/elementName.js +29 -0
  409. package/dist/inspector/shell/interactionStatePreview.d.ts +6 -0
  410. package/dist/inspector/shell/interactionStatePreview.js +107 -0
  411. package/dist/inspector/shell/originalPreview.d.ts +1 -5
  412. package/dist/inspector/shell/originalPreview.js +5 -37
  413. package/dist/inspector/shell/stateValue.d.ts +1 -2
  414. package/dist/inspector/shell/stateValue.js +4 -8
  415. package/dist/inspector/shell/styleState.d.ts +1 -2
  416. package/dist/inspector/shell/styleState.js +1 -2
  417. package/dist/inspector/sketch/SketchEditor.js +5 -5
  418. package/dist/inspector/sketch/SketchFrameOverlay.d.ts +2 -1
  419. package/dist/inspector/sketch/SketchFrameOverlay.js +13 -16
  420. package/dist/inspector/sketch/SketchOverlay.d.ts +3 -5
  421. package/dist/inspector/sketch/SketchOverlay.js +138 -263
  422. package/dist/inspector/sketch/SketchPromptPanel.d.ts +1 -2
  423. package/dist/inspector/sketch/SketchPromptPanel.js +8 -2
  424. package/dist/inspector/sketch/SketchThumbnail.d.ts +5 -0
  425. package/dist/inspector/sketch/SketchThumbnail.js +18 -0
  426. package/dist/inspector/sketch/SketchWorkspace.d.ts +1 -2
  427. package/dist/inspector/sketch/SketchWorkspace.js +70 -37
  428. package/dist/inspector/sketch/capture.d.ts +12 -3
  429. package/dist/inspector/sketch/capture.js +31 -14
  430. package/dist/inspector/sketch/copySketch.d.ts +4 -0
  431. package/dist/inspector/sketch/copySketch.js +43 -0
  432. package/dist/inspector/sketch/drawingTools.d.ts +15 -0
  433. package/dist/inspector/sketch/drawingTools.js +46 -0
  434. package/dist/inspector/sketch/frameHeading.d.ts +3 -0
  435. package/dist/inspector/sketch/frameHeading.js +23 -0
  436. package/dist/inspector/sketch/freehand.d.ts +0 -1
  437. package/dist/inspector/sketch/freehand.js +3 -4
  438. package/dist/inspector/sketch/geometry.d.ts +2 -1
  439. package/dist/inspector/sketch/geometry.js +15 -1
  440. package/dist/inspector/sketch/handoff.js +0 -1
  441. package/dist/inspector/sketch/history.d.ts +26 -0
  442. package/dist/inspector/sketch/history.js +55 -0
  443. package/dist/inspector/sketch/interaction.d.ts +3 -5
  444. package/dist/inspector/sketch/interaction.js +8 -11
  445. package/dist/inspector/sketch/model.d.ts +33 -6
  446. package/dist/inspector/sketch/model.js +101 -63
  447. package/dist/inspector/sketch/persistence.d.ts +14 -1
  448. package/dist/inspector/sketch/persistence.js +64 -8
  449. package/dist/inspector/sketch/raster.d.ts +3 -2
  450. package/dist/inspector/sketch/raster.js +40 -20
  451. package/dist/inspector/sketch/store.d.ts +1 -1
  452. package/dist/inspector/sketch/store.js +3 -4
  453. package/dist/inspector/sketch/videoFrames.d.ts +6 -0
  454. package/dist/inspector/sketch/videoFrames.js +80 -0
  455. package/dist/inspector/spacing/projection.d.ts +0 -8
  456. package/dist/inspector/spacing/projection.js +38 -20
  457. package/dist/inspector/styleEditors/BackgroundEditor.js +3 -2
  458. package/dist/inspector/styleEditors/BorderEditor.js +30 -135
  459. package/dist/inspector/styleEditors/BorderRadiusEditor.js +8 -3
  460. package/dist/inspector/styleEditors/ChildPlacement.d.ts +12 -0
  461. package/dist/inspector/styleEditors/ChildPlacement.js +9 -0
  462. package/dist/inspector/styleEditors/FlexControls.d.ts +35 -0
  463. package/dist/inspector/styleEditors/FlexControls.js +158 -0
  464. package/dist/inspector/styleEditors/GapField.d.ts +5 -2
  465. package/dist/inspector/styleEditors/GapField.js +3 -4
  466. package/dist/inspector/styleEditors/GridChildSection.d.ts +0 -5
  467. package/dist/inspector/styleEditors/GridChildSection.js +0 -5
  468. package/dist/inspector/styleEditors/GridPicker.d.ts +1 -1
  469. package/dist/inspector/styleEditors/GridPicker.js +2 -4
  470. package/dist/inspector/styleEditors/GridSection.d.ts +10 -8
  471. package/dist/inspector/styleEditors/GridSection.js +22 -9
  472. package/dist/inspector/styleEditors/GridValueField.d.ts +1 -5
  473. package/dist/inspector/styleEditors/GridValueField.js +2 -8
  474. package/dist/inspector/styleEditors/ImageBackgroundEditor.d.ts +0 -1
  475. package/dist/inspector/styleEditors/ImageBackgroundEditor.js +1 -2
  476. package/dist/inspector/styleEditors/LayoutBlockedIndicator.d.ts +0 -1
  477. package/dist/inspector/styleEditors/LayoutBlockedIndicator.js +0 -1
  478. package/dist/inspector/styleEditors/LayoutComboField.js +0 -5
  479. package/dist/inspector/styleEditors/LayoutModeRow.d.ts +14 -0
  480. package/dist/inspector/styleEditors/LayoutModeRow.js +60 -0
  481. package/dist/inspector/styleEditors/LayoutSection.d.ts +2 -2
  482. package/dist/inspector/styleEditors/LayoutSection.js +30 -356
  483. package/dist/inspector/styleEditors/OpacityEditor.js +7 -5
  484. package/dist/inspector/styleEditors/PositionControls.d.ts +18 -0
  485. package/dist/inspector/styleEditors/PositionControls.js +16 -0
  486. package/dist/inspector/styleEditors/SizeSection.d.ts +18 -0
  487. package/dist/inspector/styleEditors/SizeSection.js +71 -0
  488. package/dist/inspector/styleEditors/{SpacingBox.d.ts → SpacingField.d.ts} +3 -10
  489. package/dist/inspector/styleEditors/{SpacingBox.js → SpacingField.js} +15 -29
  490. package/dist/inspector/styleEditors/Typography.js +2 -4
  491. package/dist/inspector/styleEditors/borderModel.d.ts +36 -0
  492. package/dist/inspector/styleEditors/borderModel.js +105 -0
  493. package/dist/inspector/styleEditors/completeCssValue.d.ts +1 -5
  494. package/dist/inspector/styleEditors/completeCssValue.js +3 -13
  495. package/dist/inspector/styleEditors/fieldValue.d.ts +20 -0
  496. package/dist/inspector/styleEditors/fieldValue.js +26 -0
  497. package/dist/inspector/styleEditors/gradientValue.d.ts +1 -1
  498. package/dist/inspector/styleEditors/gradientValue.js +3 -2
  499. package/dist/inspector/styleEditors/gridChildModel.d.ts +7 -47
  500. package/dist/inspector/styleEditors/gridChildModel.js +6 -37
  501. package/dist/inspector/styleEditors/hiddenSizeOverrides.d.ts +5 -0
  502. package/dist/inspector/styleEditors/hiddenSizeOverrides.js +42 -0
  503. package/dist/inspector/styleEditors/inlineAuthored.d.ts +1 -8
  504. package/dist/inspector/styleEditors/inlineAuthored.js +3 -17
  505. package/dist/inspector/styleEditors/layoutMode.d.ts +15 -0
  506. package/dist/inspector/styleEditors/layoutMode.js +33 -0
  507. package/dist/inspector/styleEditors/layoutPreviewState.d.ts +0 -1
  508. package/dist/inspector/styleEditors/layoutPreviewState.js +0 -1
  509. package/dist/inspector/styleEditors/layoutValue.d.ts +2 -8
  510. package/dist/inspector/styleEditors/layoutValue.js +6 -15
  511. package/dist/inspector/styleEditors/nudgeValue.d.ts +1 -13
  512. package/dist/inspector/styleEditors/nudgeValue.js +1 -13
  513. package/dist/inspector/styleEditors/rowLookup.d.ts +1 -5
  514. package/dist/inspector/styleEditors/rowLookup.js +1 -5
  515. package/dist/inspector/styleEditors/stringRecord.d.ts +1 -2
  516. package/dist/inspector/styleEditors/stylePresence.d.ts +0 -2
  517. package/dist/inspector/styleEditors/stylePresence.js +1 -4
  518. package/dist/inspector/styleEditors/textRelevance.d.ts +1 -1
  519. package/dist/inspector/styleEditors/textRelevance.js +1 -1
  520. package/dist/inspector/styleEditors/useFieldVisibility.js +1 -2
  521. package/dist/inspector/styleEditors/useLayoutContext.d.ts +13 -0
  522. package/dist/inspector/styleEditors/useLayoutContext.js +53 -0
  523. package/dist/inspector/styleEditors/valuePolicy.d.ts +1 -5
  524. package/dist/inspector/styleEditors/valuePolicy.js +0 -1
  525. package/dist/inspector/testing.d.ts +1 -4
  526. package/dist/inspector/testing.js +1 -4
  527. package/dist/inspector/tokens/TokenChip.d.ts +1 -4
  528. package/dist/inspector/tokens/TokenChip.js +1 -4
  529. package/dist/inspector/tokens/TokenField.d.ts +4 -3
  530. package/dist/inspector/tokens/TokenField.js +53 -32
  531. package/dist/inspector/tokens/TokensPanel.js +2 -1
  532. package/dist/inspector/tokens/catalog.d.ts +2 -10
  533. package/dist/inspector/tokens/catalog.js +5 -12
  534. package/dist/inspector/tokens/dragPointerLock.d.ts +0 -1
  535. package/dist/inspector/tokens/dragPointerLock.js +2 -3
  536. package/dist/inspector/tokens/editActions.d.ts +4 -4
  537. package/dist/inspector/tokens/editActions.js +11 -7
  538. package/dist/inspector/tokens/resolution/cascade.d.ts +1 -5
  539. package/dist/inspector/tokens/resolution/cascade.js +1 -5
  540. package/dist/inspector/tokens/resolution/containerQueryEvaluator.d.ts +11 -0
  541. package/dist/inspector/tokens/resolution/containerQueryEvaluator.js +82 -0
  542. package/dist/inspector/tokens/resolution/cssomCollector.d.ts +4 -19
  543. package/dist/inspector/tokens/resolution/cssomCollector.js +186 -122
  544. package/dist/inspector/tokens/resolution/nestedSelectors.d.ts +2 -0
  545. package/dist/inspector/tokens/resolution/nestedSelectors.js +63 -0
  546. package/dist/inspector/tokens/resolution/ruleMatching.d.ts +4 -14
  547. package/dist/inspector/tokens/resolution/ruleMatching.js +136 -63
  548. package/dist/inspector/tokens/resolution/selectorSemantics.d.ts +3 -14
  549. package/dist/inspector/tokens/resolution/selectorSemantics.js +12 -27
  550. package/dist/inspector/tokens/resolution.d.ts +11 -27
  551. package/dist/inspector/tokens/resolution.js +105 -181
  552. package/dist/inspector/tokens/tokenAvailability.d.ts +2 -14
  553. package/dist/inspector/tokens/tokenAvailability.js +6 -38
  554. package/dist/inspector/tokens/tokenEdits.d.ts +1 -1
  555. package/dist/inspector/tokens/tokenEdits.js +1 -1
  556. package/dist/inspector/tokens/valueSemanticsAdapter.d.ts +0 -1
  557. package/dist/inspector/tokens/valueSemanticsAdapter.js +18 -2
  558. package/dist/inspector/ui/AtRuleContext.d.ts +5 -5
  559. package/dist/inspector/ui/AtRuleContext.js +8 -6
  560. package/dist/inspector/ui/ControlSurface.d.ts +0 -4
  561. package/dist/inspector/ui/Disclosure.d.ts +0 -5
  562. package/dist/inspector/ui/Disclosure.js +0 -4
  563. package/dist/inspector/ui/InlineStyleWarning.d.ts +0 -1
  564. package/dist/inspector/ui/InlineStyleWarning.js +2 -2
  565. package/dist/inspector/ui/InspectorPopover.d.ts +1 -5
  566. package/dist/inspector/ui/InspectorPopover.js +1 -5
  567. package/dist/inspector/ui/InspectorStyle.d.ts +8 -0
  568. package/dist/inspector/ui/InspectorStyle.js +26 -0
  569. package/dist/inspector/ui/PopoverListbox.d.ts +2 -1
  570. package/dist/inspector/ui/PopoverListbox.js +3 -3
  571. package/dist/inspector/ui/SegmentedControl.d.ts +4 -4
  572. package/dist/inspector/ui/SegmentedControl.js +6 -4
  573. package/dist/inspector/ui/SideValuesField.d.ts +1 -6
  574. package/dist/inspector/ui/SideValuesField.js +2 -8
  575. package/dist/inspector/ui/Toast.d.ts +10 -0
  576. package/dist/inspector/ui/Toast.js +26 -0
  577. package/dist/inspector/ui/assets/canvasIllustration.d.ts +2 -0
  578. package/dist/inspector/ui/assets/canvasIllustration.js +21 -0
  579. package/dist/inspector/ui/assets/gridIllustration.d.ts +2 -0
  580. package/dist/inspector/ui/assets/{grid.svg → gridIllustration.js} +3 -2
  581. package/dist/inspector/ui/atRuleSegments.d.ts +13 -0
  582. package/dist/inspector/ui/atRuleSegments.js +34 -0
  583. package/dist/inspector/ui/classNames.d.ts +0 -1
  584. package/dist/inspector/ui/classNames.js +0 -1
  585. package/dist/inspector/ui/customCursors.d.ts +11 -0
  586. package/dist/inspector/ui/customCursors.js +29 -7
  587. package/dist/inspector/ui/styles.js +25 -25
  588. package/dist/inspector/workspace/commands.js +1 -2
  589. package/dist/inspector/workspace/controller.js +20 -2
  590. package/dist/inspector/workspace/handoff.d.ts +1 -5
  591. package/dist/inspector/workspace/handoff.js +4 -7
  592. package/dist/inspector/workspace/sentItems.d.ts +3 -6
  593. package/dist/inspector/workspace/sentItems.js +6 -24
  594. package/dist/inspector/workspace/timeline.d.ts +28 -11
  595. package/dist/inspector/workspace/timeline.js +117 -96
  596. package/dist/internal/agent-protocol.d.ts +53 -38
  597. package/dist/internal/agent-protocol.js +151 -42
  598. package/dist/nudge-ui.mjs +155 -92
  599. package/dist/project/artifacts.js +24 -21
  600. package/dist/project/files.d.ts +0 -1
  601. package/dist/project/files.js +2 -9
  602. package/dist/project/identity.d.ts +1 -5
  603. package/dist/project/identity.js +1 -5
  604. package/dist/project/mcpPackage.d.ts +3 -0
  605. package/dist/project/mcpPackage.js +55 -0
  606. package/dist/project/pathPolicy.d.ts +1 -6
  607. package/dist/project/pathPolicy.js +1 -6
  608. package/dist/project/tokens.d.ts +2 -12
  609. package/dist/project/tokens.js +4 -15
  610. package/dist/transport/editor.d.ts +1 -12
  611. package/dist/transport/editor.js +2 -13
  612. package/dist/transport/index.d.ts +0 -5
  613. package/dist/transport/index.js +0 -5
  614. package/dist/transport/routes.d.ts +0 -5
  615. package/dist/transport/routes.js +0 -5
  616. package/package.json +16 -5
  617. package/dist/inspector/canvas/measurementProjection.d.ts +0 -8
  618. package/dist/inspector/canvas/measurementProjection.js +0 -16
  619. package/dist/inspector/changes/changesLog.d.ts +0 -49
  620. package/dist/inspector/changes/changesLog.js +0 -255
  621. package/dist/inspector/changes/draftChanges.d.ts +0 -58
  622. package/dist/inspector/changes/draftChanges.js +0 -304
  623. package/dist/inspector/conformance/projection.d.ts +0 -2
  624. package/dist/inspector/conformance/projection.js +0 -3
  625. package/dist/inspector/inline-text/textChangeBoundary.d.ts +0 -6
  626. package/dist/inspector/inline-text/textChangeBoundary.js +0 -1
  627. package/dist/inspector/overlay/InspectorOverlay.d.ts +0 -5
  628. package/dist/inspector/overlay/InspectorOverlay.js +0 -332
  629. package/dist/inspector/overlay/elementSelector.d.ts +0 -1
  630. package/dist/inspector/overlay/elementSelector.js +0 -111
  631. package/dist/inspector/sketch/SketchChanges.d.ts +0 -2
  632. package/dist/inspector/sketch/SketchChanges.js +0 -72
  633. package/dist/inspector/sketch/SketchEntryButton.d.ts +0 -4
  634. package/dist/inspector/sketch/SketchEntryButton.js +0 -11
  635. package/dist/inspector/sketch/SketchLayersPanel.d.ts +0 -2
  636. package/dist/inspector/sketch/SketchLayersPanel.js +0 -71
  637. package/dist/inspector/styleEditors/InsetSection.d.ts +0 -15
  638. package/dist/inspector/styleEditors/InsetSection.js +0 -15
  639. package/dist/inspector/styleEditors/PositionInsets.d.ts +0 -15
  640. package/dist/inspector/styleEditors/PositionInsets.js +0 -12
  641. package/dist/inspector/tokens/TokenDropdown.d.ts +0 -13
  642. package/dist/inspector/tokens/TokenDropdown.js +0 -59
@@ -1,18 +1,12 @@
1
- /** The subset of Babel nodes needed by the host-neutral compiler. */
2
1
  export type SyntaxNode = {
3
2
  type: string;
4
3
  [key: string]: unknown;
5
4
  };
6
- /** Node keys that never hold children worth visiting. */
7
5
  export declare const SKIP_KEYS: Set<string>;
8
6
  export declare function isNode(value: unknown): value is SyntaxNode;
9
- /** Visit every child node with the property name it was reached through. */
10
7
  export declare function forEachChild(node: SyntaxNode, visit: (child: SyntaxNode, key: string) => void): void;
11
8
  export declare function childNodes(node: SyntaxNode): SyntaxNode[];
12
9
  export declare function identifier(node: unknown): string | null;
13
- /** Dotted name for a JSX element name: `A`, `A.B`, `A.B.C`. */
14
10
  export declare function jsxMemberName(node: unknown): string | null;
15
- /** Dotted name for an identifier expression or a JSX element name. */
16
11
  export declare function elementName(node: unknown): string | null;
17
- /** Parse module source, returning `null` when the source is not parseable. */
18
12
  export declare function parseModule(code: string): SyntaxNode | null;
@@ -1,5 +1,4 @@
1
1
  import { parse } from "@babel/parser";
2
- /** Node keys that never hold children worth visiting. */
3
2
  export const SKIP_KEYS = new Set([
4
3
  "type",
5
4
  "loc",
@@ -14,7 +13,6 @@ export const SKIP_KEYS = new Set([
14
13
  export function isNode(value) {
15
14
  return typeof value === "object" && value !== null && typeof Reflect.get(value, "type") === "string";
16
15
  }
17
- /** Visit every child node with the property name it was reached through. */
18
16
  export function forEachChild(node, visit) {
19
17
  for (const [key, value] of Object.entries(node)) {
20
18
  if (SKIP_KEYS.has(key))
@@ -41,7 +39,6 @@ export function identifier(node) {
41
39
  return null;
42
40
  return typeof node.name === "string" ? node.name : typeof node.value === "string" ? node.value : null;
43
41
  }
44
- /** Dotted name for a JSX element name: `A`, `A.B`, `A.B.C`. */
45
42
  export function jsxMemberName(node) {
46
43
  if (!isNode(node))
47
44
  return null;
@@ -53,7 +50,6 @@ export function jsxMemberName(node) {
53
50
  const property = jsxMemberName(node.property);
54
51
  return object && property ? `${object}.${property}` : null;
55
52
  }
56
- /** Dotted name for an identifier expression or a JSX element name. */
57
53
  export function elementName(node) {
58
54
  if (!isNode(node))
59
55
  return null;
@@ -61,7 +57,6 @@ export function elementName(node) {
61
57
  return typeof node.name === "string" ? node.name : null;
62
58
  return jsxMemberName(node);
63
59
  }
64
- /** Parse module source, returning `null` when the source is not parseable. */
65
60
  export function parseModule(code) {
66
61
  try {
67
62
  return parse(code, {
@@ -1,11 +1,6 @@
1
1
  export type ComponentPropValue = string | number | boolean;
2
2
  export interface ComponentPropContract {
3
3
  name: string;
4
- /**
5
- * `text` is deliberately separate from a select. Text edits are allowed to
6
- * choose an arbitrary string at runtime, while select controls are bounded
7
- * by their contract options.
8
- */
9
4
  control: "select" | "boolean" | "text";
10
5
  options: ComponentPropValue[];
11
6
  optional: boolean;
@@ -17,3 +12,14 @@ export interface ComponentContract {
17
12
  props: ComponentPropContract[];
18
13
  provenance: "typescript" | "package-manifest";
19
14
  }
15
+ /** How a prop was written at its callsite; `default` exists only at runtime, for omitted props. */
16
+ export type AuthoredInvocationPropKind = "literal" | "expression" | "spread";
17
+ export interface ComponentInvocationMeta {
18
+ callsiteId: string;
19
+ componentId: string;
20
+ componentName: string;
21
+ file: string;
22
+ line: number;
23
+ column: number;
24
+ authoredProps: Record<string, AuthoredInvocationPropKind>;
25
+ }
@@ -1,4 +1,5 @@
1
1
  import { parse } from "@babel/parser";
2
+ import { componentIdentity } from "./sourcePaths.js";
2
3
  function isNode(value) {
3
4
  return typeof value === "object"
4
5
  && value !== null
@@ -41,11 +42,6 @@ function literalValue(node) {
41
42
  }
42
43
  return null;
43
44
  }
44
- /**
45
- * These are the names that a component contract can confidently describe as
46
- * visible copy. The runtime still requires the current value to be a string
47
- * equal to the rendered text before offering an inline binding.
48
- */
49
45
  const STRUCTURAL_TEXT_PROPS = new Set([
50
46
  "id",
51
47
  "className",
@@ -75,9 +71,7 @@ function propertyContract(member) {
75
71
  const typeNode = unwrapTypeAnnotation(member.typeAnnotation);
76
72
  if (!name || !typeNode)
77
73
  return null;
78
- // Project contracts recognize all runtime string props. Structural and
79
- // implementation names are excluded here; package manifests can still
80
- // explicitly publish a text control for a project-specific visible prop.
74
+ // Structural names are excluded from text controls here; package manifests can still publish them explicitly.
81
75
  if (!isStructuralTextProp(name) && isTextType(typeNode)) {
82
76
  return {
83
77
  name,
@@ -190,7 +184,7 @@ function componentContract(name, propsType, declarations, file) {
190
184
  if (props.length === 0)
191
185
  return null;
192
186
  return {
193
- componentId: `${file.replace(/\.(?:d\.)?[cm]?[jt]sx?$/, "")}#${name}`,
187
+ componentId: componentIdentity(file, name),
194
188
  name,
195
189
  file,
196
190
  props,
@@ -1,15 +1,8 @@
1
1
  import { type SyntaxNode } from "./ast.js";
2
2
  export type { SyntaxNode } from "./ast.js";
3
3
  export interface ComponentInstrumentationOptions {
4
- /**
5
- * Package exports whose element type can be replaced by a semantic preview
6
- * wrapper. Keys are exact import specifiers; values are exported names
7
- * (`default` for a default import). Discovery of a prop contract does not
8
- * imply compatibility. Prefer `hostPolicy` when the host can resolve import
9
- * provenance and rendered slots.
10
- */
4
+ /** Exact specifier → exported names (`default` for a default import); a discovered contract alone never opts in. */
11
5
  compatibleComponentImports?: Readonly<Record<string, readonly string[]>>;
12
- /** Data-only import provenance and slot semantics resolved by the host Adapter. */
13
6
  hostPolicy?: import("./componentPolicyResolution.js").HostComponentPolicy;
14
7
  }
15
8
  export interface ComponentBinding {
@@ -24,9 +17,5 @@ export interface ComponentInstrumentationPolicy {
24
17
  rendersProp(componentName: string, prop: string): boolean;
25
18
  componentId(componentName: string): string | null;
26
19
  }
27
- /**
28
- * Classify bindings before editing JSX. Unknown and shadowed bindings are
29
- * deliberately excluded: losing a semantic control is safer than changing an
30
- * application's component protocol. Rendered DOM identity is independent.
31
- */
20
+ /** Unknown and shadowed bindings are deliberately excluded: losing a semantic control beats altering an app's protocol. */
32
21
  export declare function createComponentInstrumentationPolicy(ast: SyntaxNode, options: ComponentInstrumentationOptions): ComponentInstrumentationPolicy;
@@ -1,9 +1,5 @@
1
1
  import { childNodes, identifier, isNode } from "./ast.js";
2
- /**
3
- * Classify bindings before editing JSX. Unknown and shadowed bindings are
4
- * deliberately excluded: losing a semantic control is safer than changing an
5
- * application's component protocol. Rendered DOM identity is independent.
6
- */
2
+ /** Unknown and shadowed bindings are deliberately excluded: losing a semantic control beats altering an app's protocol. */
7
3
  export function createComponentInstrumentationPolicy(ast, options) {
8
4
  const bindings = new Map();
9
5
  const locals = new Set();
@@ -100,9 +96,7 @@ export function createComponentInstrumentationPolicy(ast, options) {
100
96
  childNodes(node).forEach(visit);
101
97
  };
102
98
  visit(program);
103
- // A definition authored in this module is project-owned by construction: no
104
- // host resolution applies, and its JSX children are authored here rather
105
- // than handed to an opaque third-party interface.
99
+ // Authored in this module, so its JSX children are not handed to an opaque third-party interface.
106
100
  const isProjectLocalComponent = (componentName) => {
107
101
  const [root, ...members] = componentName.split(".");
108
102
  if (!root || ambiguous.has(root))
@@ -118,10 +112,7 @@ export function createComponentInstrumentationPolicy(ast, options) {
118
112
  const resolved = options.hostPolicy?.components[componentName];
119
113
  if (resolved)
120
114
  return resolved.wrap;
121
- // No host policy: this is the direct-compiler path, where a package
122
- // export is only compatible when the caller names it explicitly. The
123
- // host-resolved policy traces re-exports and namespace members, so this
124
- // fallback deliberately matches on the authored import alone.
115
+ // Direct-compiler fallback: matches the authored import alone, unlike host resolution which traces re-exports.
125
116
  return options.compatibleComponentImports?.[binding.source]?.includes(binding.exportName) === true;
126
117
  },
127
118
  rendersChildren(componentName) {
@@ -1,15 +1,9 @@
1
1
  /** Whether replacing a JSX element type with the semantic boundary is safe. */
2
2
  export interface ComponentProtocol {
3
3
  readonly wrap: boolean;
4
- /**
5
- * JSX-valued slots where the compiler may apply each descendant's resolved
6
- * protocol. A component that resolves to project-owned source defaults to
7
- * `wrap: true` with `children: "rendered"`; every other slot stays opaque
8
- * until a host declares it.
9
- */
4
+ /** JSX-valued slots descendants may be instrumented through; undeclared slots stay opaque. */
10
5
  readonly slots?: Readonly<Record<string, "rendered" | "opaque">>;
11
6
  }
12
- /** Component protocols exported by one canonical module specifier. */
13
7
  export interface ComponentModuleProtocol {
14
8
  readonly default?: ComponentProtocol;
15
9
  readonly exports?: Readonly<Record<string, ComponentProtocol>>;
@@ -17,7 +11,6 @@ export interface ComponentModuleProtocol {
17
11
  export interface ComponentModuleProtocols {
18
12
  readonly [source: string]: ComponentModuleProtocol | undefined;
19
13
  }
20
- /** Build-tool operations needed to resolve an authored import to its defining module. */
21
14
  export interface ComponentModuleAdapter {
22
15
  resolve(specifier: string, importer: string): Promise<string | null>;
23
16
  read(id: string): Promise<string | null>;
@@ -35,7 +28,6 @@ export interface ComponentPolicyDiagnostic {
35
28
  readonly source: string;
36
29
  readonly exportName: string;
37
30
  }
38
- /** Data-only policy consumed by the source compiler after a host resolves imports. */
39
31
  export interface HostComponentPolicy {
40
32
  readonly components: Readonly<Record<string, ResolvedComponentProtocol>>;
41
33
  readonly diagnostics: readonly ComponentPolicyDiagnostic[];
@@ -45,16 +37,9 @@ export interface ResolveHostComponentPolicyOptions {
45
37
  /** Backwards-compatible shorthand: these exports may be wrapped but expose no rendered slots. */
46
38
  readonly compatibleComponentImports?: Readonly<Record<string, readonly string[]>>;
47
39
  }
48
- /** Merge a host's protocol additions over a shared compatibility catalog. */
49
40
  export declare function mergeComponentModuleProtocols(defaults: ComponentModuleProtocols, overrides: ComponentModuleProtocols | undefined): ComponentModuleProtocols;
50
- /**
51
- * Resolve the imported JSX values used by one source file.
52
- *
53
- * The compiler owns syntax and re-export traversal. The host Adapter owns all
54
- * build-tool resolution, source ownership, and stable path decisions.
55
- */
41
+ /** The compiler owns syntax and re-export traversal; the host Adapter owns build-tool resolution and path decisions. */
56
42
  export declare function resolveHostComponentPolicy(code: string, importer: string, adapter: ComponentModuleAdapter, options?: ResolveHostComponentPolicyOptions): Promise<HostComponentPolicy>;
57
- /** One actionable message per diagnostic code and source. */
58
43
  export interface GroupedComponentPolicyDiagnostic {
59
44
  /** Stable dedupe key for host-side "warn once" tracking. */
60
45
  readonly key: string;
@@ -62,10 +47,6 @@ export interface GroupedComponentPolicyDiagnostic {
62
47
  readonly componentNames: readonly string[];
63
48
  readonly total: number;
64
49
  }
65
- /**
66
- * Roll per-component diagnostics up so a host emits one warning per package
67
- * instead of one per skipped export.
68
- */
50
+ /** Rolls per-component diagnostics up so a host warns once per package, not once per skipped export. */
69
51
  export declare function groupComponentPolicyDiagnostics(diagnostics: readonly ComponentPolicyDiagnostic[], maxNames?: number): GroupedComponentPolicyDiagnostic[];
70
- /** Host-facing warning text for one grouped diagnostic. */
71
52
  export declare function formatComponentPolicyWarning(grouped: GroupedComponentPolicyDiagnostic, location: string, hint?: string): string;
@@ -1,6 +1,5 @@
1
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. */
2
+ import { componentIdentity, stripModuleExtension } from "./sourcePaths.js";
4
3
  export function mergeComponentModuleProtocols(defaults, overrides) {
5
4
  if (!overrides)
6
5
  return defaults;
@@ -20,18 +19,11 @@ export function mergeComponentModuleProtocols(defaults, overrides) {
20
19
  }
21
20
  return merged;
22
21
  }
23
- /** A resolution failure that carries only the reason a host reports. */
24
22
  function unresolved(code) {
25
23
  return { resolved: false, code };
26
24
  }
27
25
  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
- */
26
+ /** Keyed by module source, so the cache is correct across HMR without host-specific invalidation. */
35
27
  const ANALYSIS_CACHE_LIMIT = 128;
36
28
  const analysisCache = new Map();
37
29
  function analyseModuleSource(code) {
@@ -48,12 +40,7 @@ function analyseModuleSource(code) {
48
40
  analysisCache.set(code, analysis);
49
41
  return analysis;
50
42
  }
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
- */
43
+ /** The compiler owns syntax and re-export traversal; the host Adapter owns build-tool resolution and path decisions. */
57
44
  export async function resolveHostComponentPolicy(code, importer, adapter, options = {}) {
58
45
  const analysis = analyseModuleSource(code);
59
46
  if (!analysis) {
@@ -80,7 +67,6 @@ export async function resolveHostComponentPolicy(code, importer, adapter, option
80
67
  }
81
68
  return { components, diagnostics };
82
69
  }
83
- /** Depth-first pre-order traversal of every node in a tree. */
84
70
  function visit(node, callback) {
85
71
  callback(node);
86
72
  for (const child of childNodes(node))
@@ -209,12 +195,6 @@ function importedReference(componentName, imports) {
209
195
  return null;
210
196
  return { source: binding.source, exportName };
211
197
  }
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
198
  function createTracer(adapter, options) {
219
199
  async function request(source, exportName, importer, state) {
220
200
  const declared = declaredProtocol(source, exportName, options);
@@ -291,7 +271,6 @@ function createTracer(adapter, options) {
291
271
  return request(reference.source, reference.exportName, module.moduleId, state);
292
272
  }
293
273
  return {
294
- /** Resolve one authored import to the protocol of the component it names. */
295
274
  request: (source, exportName, importer) => request(source, exportName, importer, { visited: new Set(), depth: 0 }),
296
275
  };
297
276
  }
@@ -341,25 +320,15 @@ function resolvedProtocol(source, exportName, protocol) {
341
320
  resolved: true,
342
321
  protocol: {
343
322
  ...protocol,
344
- componentId: `${stripModuleExtension(source)}#${exportName}`,
323
+ componentId: componentIdentity(source, exportName),
345
324
  },
346
325
  };
347
326
  }
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
- */
327
+ /** Project-owned source is safe to wrap, but named JSX props stay opaque until a host promises they render. */
356
328
  function projectProtocol(source, exportName) {
357
329
  return resolvedProtocol(source, exportName, { wrap: true, slots: { children: "rendered" } });
358
330
  }
359
- /**
360
- * Roll per-component diagnostics up so a host emits one warning per package
361
- * instead of one per skipped export.
362
- */
331
+ /** Rolls per-component diagnostics up so a host warns once per package, not once per skipped export. */
363
332
  export function groupComponentPolicyDiagnostics(diagnostics, maxNames = 5) {
364
333
  const groups = new Map();
365
334
  for (const diagnostic of diagnostics) {
@@ -377,7 +346,6 @@ export function groupComponentPolicyDiagnostics(diagnostics, maxNames = 5) {
377
346
  total: group.length,
378
347
  }));
379
348
  }
380
- /** Host-facing warning text for one grouped diagnostic. */
381
349
  export function formatComponentPolicyWarning(grouped, location, hint = "Add componentProtocols metadata to opt in compatible package exports.") {
382
350
  const names = grouped.componentNames.join(", ");
383
351
  const remainder = grouped.total > grouped.componentNames.length
@@ -0,0 +1,2 @@
1
+ /** Compiler-injected attributes the runtime also reads back from component props. */
2
+ export declare const IDENTITY_ATTRIBUTES: readonly ["data-cid", "data-src", "data-cprops"];
@@ -0,0 +1,2 @@
1
+ /** Compiler-injected attributes the runtime also reads back from component props. */
2
+ export const IDENTITY_ATTRIBUTES = ["data-cid", "data-src", "data-cprops"];
@@ -1,4 +1,3 @@
1
- /** Host-neutral source compilers used by framework adapters. */
2
1
  export * from "./reactIdentity.js";
3
2
  export * from "./componentInstrumentation.js";
4
3
  export * from "./componentPolicyResolution.js";
@@ -1,4 +1,3 @@
1
- /** Host-neutral source compilers used by framework adapters. */
2
1
  export * from "./reactIdentity.js";
3
2
  export * from "./componentInstrumentation.js";
4
3
  export * from "./componentPolicyResolution.js";
@@ -1,32 +1,23 @@
1
1
  import ts from "typescript";
2
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
- */
3
+ /** hostFile is the resolution anchor; contract identity uses the specifier, never an absolute node_modules path. */
11
4
  export interface PackageContractContext {
12
5
  hostFile: string;
13
6
  moduleSpecifier: string;
14
7
  compilerOptions?: ts.CompilerOptions;
15
8
  }
9
+ export interface PackageComponentImport {
10
+ readonly moduleSpecifier: string;
11
+ readonly exportName: string;
12
+ }
16
13
  export interface PackageContractCatalogContext {
17
14
  hostFile: string;
18
- moduleSpecifiers: readonly string[];
15
+ /** Scoped to what the app renders: the catalog ships to the browser and icon-set packages export thousands. */
16
+ imports: readonly PackageComponentImport[];
19
17
  compilerOptions?: ts.CompilerOptions;
20
18
  }
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
- */
19
+ export declare function collectPackageComponentImports(code: string, fileName: string): PackageComponentImport[];
20
+ /** Follows TypeScript's resolved module graph (barrel re-exports, declaration aliases), not one file in isolation. */
30
21
  export declare function extractPackageComponentContracts(context: PackageContractContext): ComponentContract[];
31
- /** Extracts several package modules through one declaration-only program. */
22
+ /** Resolves every module through one declaration-only program. */
32
23
  export declare function extractPackageComponentContractCatalog(context: PackageContractCatalogContext): ComponentContract[];
@@ -1,5 +1,6 @@
1
1
  import { dirname, relative, resolve } from "node:path";
2
2
  import ts from "typescript";
3
+ import { componentIdentity } from "./sourcePaths.js";
3
4
  function isBareModuleSpecifier(value) {
4
5
  return value !== ""
5
6
  && !value.startsWith(".")
@@ -7,16 +8,18 @@ function isBareModuleSpecifier(value) {
7
8
  && !value.startsWith("\0")
8
9
  && !value.startsWith("virtual:");
9
10
  }
10
- function rootJsxIdentifier(tagName) {
11
+ function jsxTagReference(tagName) {
12
+ const members = [];
11
13
  let current = tagName;
12
- while (ts.isPropertyAccessExpression(current))
14
+ while (ts.isPropertyAccessExpression(current)) {
15
+ members.unshift(current.name.text);
13
16
  current = current.expression;
14
- return ts.isIdentifier(current) ? current.text : null;
17
+ }
18
+ return ts.isIdentifier(current) ? { binding: current.text, member: members[0] ?? null } : null;
15
19
  }
16
- /** Returns bare modules whose imported bindings are rendered as JSX. */
17
- export function collectPackageComponentModules(code, fileName) {
20
+ export function collectPackageComponentImports(code, fileName) {
18
21
  const source = ts.createSourceFile(fileName, code, ts.ScriptTarget.Latest, true, fileName.endsWith("x") ? ts.ScriptKind.TSX : ts.ScriptKind.JSX);
19
- const modulesByBinding = new Map();
22
+ const bindings = new Map();
20
23
  for (const statement of source.statements) {
21
24
  if (!ts.isImportDeclaration(statement)
22
25
  || !ts.isStringLiteral(statement.moduleSpecifier)
@@ -24,31 +27,44 @@ export function collectPackageComponentModules(code, fileName) {
24
27
  continue;
25
28
  const moduleSpecifier = statement.moduleSpecifier.text;
26
29
  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);
30
+ if (!clause || clause.isTypeOnly)
31
+ continue;
32
+ if (clause.name)
33
+ bindings.set(clause.name.text, { moduleSpecifier, exportName: "default" });
34
+ const named = clause.namedBindings;
35
+ if (named && ts.isNamespaceImport(named)) {
36
+ bindings.set(named.name.text, { moduleSpecifier, exportName: null });
32
37
  }
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);
38
+ else if (named && ts.isNamedImports(named)) {
39
+ for (const element of named.elements) {
40
+ if (element.isTypeOnly)
41
+ continue;
42
+ bindings.set(element.name.text, {
43
+ moduleSpecifier,
44
+ exportName: (element.propertyName ?? element.name).text,
45
+ });
37
46
  }
38
47
  }
39
48
  }
40
- const modules = new Set();
49
+ const imports = new Map();
41
50
  const visit = (node) => {
42
51
  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);
52
+ const reference = jsxTagReference(node.tagName);
53
+ const binding = reference ? bindings.get(reference.binding) : undefined;
54
+ const exportName = binding?.exportName ?? reference?.member ?? null;
55
+ if (binding && exportName) {
56
+ imports.set(`${binding.moduleSpecifier}#${exportName}`, {
57
+ moduleSpecifier: binding.moduleSpecifier,
58
+ exportName,
59
+ });
60
+ }
47
61
  }
48
62
  ts.forEachChild(node, visit);
49
63
  };
50
64
  visit(source);
51
- return [...modules].sort();
65
+ return [...imports]
66
+ .sort(([left], [right]) => left.localeCompare(right))
67
+ .map(([, value]) => value);
52
68
  }
53
69
  const DEFAULT_COMPILER_OPTIONS = {
54
70
  allowJs: false,
@@ -121,10 +137,7 @@ function literalOptions(members, checker, location) {
121
137
  const values = members
122
138
  .map(literalValue)
123
139
  .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.
140
+ // Conditional object forms keep their scalar alternatives valid without making the object itself editable.
128
141
  if (values.length < 2)
129
142
  return null;
130
143
  const primitive = typeof values[0];
@@ -241,34 +254,34 @@ function componentContract(exportName, symbol, checker, packageRoot, moduleSpeci
241
254
  if (props.length === 0)
242
255
  return null;
243
256
  return {
244
- componentId: `${moduleSpecifier}#${exportName}`,
257
+ componentId: componentIdentity(moduleSpecifier, exportName),
245
258
  name: exportName,
246
259
  file: moduleSpecifier,
247
260
  props,
248
261
  provenance: "typescript",
249
262
  };
250
263
  }
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
- */
264
+ /** Follows TypeScript's resolved module graph (barrel re-exports, declaration aliases), not one file in isolation. */
258
265
  export function extractPackageComponentContracts(context) {
259
- return extractPackageComponentContractCatalog({
260
- hostFile: context.hostFile,
261
- moduleSpecifiers: [context.moduleSpecifier],
262
- compilerOptions: context.compilerOptions,
263
- });
266
+ return extractContracts(context.hostFile, new Map([[context.moduleSpecifier, null]]), context.compilerOptions);
264
267
  }
265
- /** Extracts several package modules through one declaration-only program. */
268
+ /** Resolves every module through one declaration-only program. */
266
269
  export function extractPackageComponentContractCatalog(context) {
267
- const compilerOptions = { ...DEFAULT_COMPILER_OPTIONS, ...context.compilerOptions };
268
- const moduleSpecifiers = [...new Set(context.moduleSpecifiers)].sort();
270
+ const exportsByModule = new Map();
271
+ for (const { moduleSpecifier, exportName } of context.imports) {
272
+ const exportNames = exportsByModule.get(moduleSpecifier) ?? new Set();
273
+ exportNames.add(exportName);
274
+ exportsByModule.set(moduleSpecifier, exportNames);
275
+ }
276
+ return extractContracts(context.hostFile, exportsByModule, context.compilerOptions);
277
+ }
278
+ /** `null` export names describe every export of that module. */
279
+ function extractContracts(hostFile, exportsByModule, overrides) {
280
+ const compilerOptions = { ...DEFAULT_COMPILER_OPTIONS, ...overrides };
281
+ const moduleSpecifiers = [...exportsByModule.keys()].sort();
269
282
  if (moduleSpecifiers.length === 0)
270
283
  return [];
271
- const virtualFile = resolve(dirname(context.hostFile), "__nudge_ui_package_contracts__.tsx");
284
+ const virtualFile = resolve(dirname(hostFile), "__nudge_ui_package_contracts__.tsx");
272
285
  const virtualSource = moduleSpecifiers
273
286
  .map((moduleSpecifier, index) => `import * as __nudgeUiPackage${index} from ${JSON.stringify(moduleSpecifier)};`)
274
287
  .join("\n");
@@ -296,7 +309,11 @@ export function extractPackageComponentContractCatalog(context) {
296
309
  if (!moduleSymbol)
297
310
  return [];
298
311
  const packageRoot = packageRootFor(resolution.resolvedFileName, moduleSpecifier);
299
- return checker.getExportsOfModule(moduleSymbol)
312
+ const exportNames = exportsByModule.get(moduleSpecifier);
313
+ const symbols = exportNames
314
+ ? [...exportNames].sort().flatMap((exportName) => checker.tryGetMemberInModuleExports(exportName, moduleSymbol) ?? [])
315
+ : checker.getExportsOfModule(moduleSymbol);
316
+ return symbols
300
317
  .map((symbol) => {
301
318
  const exportName = symbolName(symbol);
302
319
  return exportName
@@ -1,10 +1,3 @@
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
1
  export declare const defaultReactComponentProtocols: {
9
2
  react: {
10
3
  default: {
@@ -1,12 +1,5 @@
1
1
  const PRESERVE = { wrap: false };
2
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
3
  export const defaultReactComponentProtocols = {
11
4
  react: {
12
5
  default: PRESERVE,
@@ -4,12 +4,12 @@ export type { ComponentInstrumentationOptions } from "./componentInstrumentation
4
4
  export interface InjectResult {
5
5
  code: string;
6
6
  map: SourceMap | null;
7
+ /** The exact single line prepended to bind the runtime, or null; hosts with a directive prologue relocate it. */
8
+ prelude: string | null;
7
9
  }
8
10
  export interface InjectIdentityOptions extends ComponentInstrumentationOptions {
9
11
  instrumentComponents?: boolean;
10
- /** Module specifier emitted for the host-owned semantic runtime. */
11
12
  componentRuntimeModule?: string;
12
13
  }
13
14
  export declare const DEFAULT_COMPONENT_RUNTIME_MODULE = "nudge-ui/internal/component-runtime";
14
15
  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;