nudge-ui 0.2.5 → 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 (575) hide show
  1. package/dist/cli/agentCommand.d.ts +0 -1
  2. package/dist/cli/agentCommand.js +0 -1
  3. package/dist/client.mjs +238 -122
  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 +13 -64
  94. package/dist/hosts/projectBridge.d.ts +0 -2
  95. package/dist/hosts/projectBridge.js +0 -2
  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 +1 -6
  125. package/dist/inspector/agent/activity.d.ts +1 -1
  126. package/dist/inspector/agent/activity.js +1 -1
  127. package/dist/inspector/agent/client.d.ts +2 -26
  128. package/dist/inspector/agent/client.js +17 -64
  129. package/dist/inspector/agent/connectionStatus.d.ts +0 -1
  130. package/dist/inspector/agent/connectionStatus.js +0 -1
  131. package/dist/inspector/agent/httpTransport.d.ts +0 -8
  132. package/dist/inspector/agent/httpTransport.js +21 -39
  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 +2 -19
  136. package/dist/inspector/agent/verification.js +7 -43
  137. package/dist/inspector/boot.d.ts +3 -1
  138. package/dist/inspector/boot.js +12 -20
  139. package/dist/inspector/canvas/AgentActivityOverlay.d.ts +1 -1
  140. package/dist/inspector/canvas/AgentActivityOverlay.js +1 -1
  141. package/dist/inspector/canvas/CanvasCard.js +7 -14
  142. package/dist/inspector/canvas/CanvasElementOverlay.js +117 -50
  143. package/dist/inspector/canvas/CanvasWorkspace.js +15 -29
  144. package/dist/inspector/canvas/PageCard.d.ts +0 -1
  145. package/dist/inspector/canvas/PageCard.js +0 -1
  146. package/dist/inspector/canvas/SketchToolOptions.d.ts +0 -1
  147. package/dist/inspector/canvas/SketchToolOptions.js +0 -6
  148. package/dist/inspector/canvas/ToolOptionsDrawer.d.ts +1 -6
  149. package/dist/inspector/canvas/ToolOptionsDrawer.js +2 -8
  150. package/dist/inspector/canvas/activeCanvasDocument.d.ts +0 -2
  151. package/dist/inspector/canvas/activeCanvasDocument.js +0 -2
  152. package/dist/inspector/canvas/agentPresentation.d.ts +2 -13
  153. package/dist/inspector/canvas/agentPresentation.js +3 -14
  154. package/dist/inspector/canvas/canvasFrame.d.ts +2 -6
  155. package/dist/inspector/canvas/canvasFrame.js +1 -2
  156. package/dist/inspector/canvas/canvasResize.d.ts +1 -6
  157. package/dist/inspector/canvas/canvasResize.js +1 -6
  158. package/dist/inspector/canvas/canvasStore.d.ts +4 -12
  159. package/dist/inspector/canvas/canvasStore.js +12 -26
  160. package/dist/inspector/canvas/frameConnection.d.ts +1 -7
  161. package/dist/inspector/canvas/frameContent.d.ts +0 -1
  162. package/dist/inspector/canvas/frameLifecycle.d.ts +12 -0
  163. package/dist/inspector/canvas/frameLifecycle.js +11 -0
  164. package/dist/inspector/canvas/frameProtocol.d.ts +5 -40
  165. package/dist/inspector/canvas/frameProtocol.js +1 -24
  166. package/dist/inspector/canvas/frameScrollbarStyles.d.ts +0 -1
  167. package/dist/inspector/canvas/frameScrollbarStyles.js +0 -1
  168. package/dist/inspector/canvas/layout.d.ts +10 -22
  169. package/dist/inspector/canvas/layout.js +0 -3
  170. package/dist/inspector/canvas/normalizeUrl.js +1 -8
  171. package/dist/inspector/canvas/pageSurface.d.ts +1 -6
  172. package/dist/inspector/canvas/pageSurface.js +1 -6
  173. package/dist/inspector/canvas/projection.d.ts +4 -25
  174. package/dist/inspector/canvas/projection.js +22 -72
  175. package/dist/inspector/canvas/rendererBootstrap.d.ts +8 -1
  176. package/dist/inspector/canvas/rendererBootstrap.js +6 -14
  177. package/dist/inspector/canvas/rendererCidIndex.d.ts +0 -5
  178. package/dist/inspector/canvas/rendererCidIndex.js +0 -5
  179. package/dist/inspector/canvas/rendererElementSelector.js +29 -27
  180. package/dist/inspector/canvas/rendererMessageRouter.d.ts +0 -1
  181. package/dist/inspector/canvas/rendererMessageRouter.js +0 -1
  182. package/dist/inspector/canvas/rendererSelectionProxy.d.ts +1 -5
  183. package/dist/inspector/canvas/rendererSelectionProxy.js +2 -7
  184. package/dist/inspector/canvas/rendererStylesheet.d.ts +0 -1
  185. package/dist/inspector/canvas/rendererStylesheet.js +9 -2
  186. package/dist/inspector/canvas/resizeHandleScale.d.ts +1 -10
  187. package/dist/inspector/canvas/resizeHandleScale.js +1 -10
  188. package/dist/inspector/canvas/sessionStore.d.ts +1 -7
  189. package/dist/inspector/canvas/sessionStore.js +21 -34
  190. package/dist/inspector/canvas/staleChangeDetector.js +1 -4
  191. package/dist/inspector/canvas/toolbarScale.d.ts +1 -4
  192. package/dist/inspector/canvas/toolbarScale.js +1 -4
  193. package/dist/inspector/canvas/useCanvasLayoutAnimation.d.ts +0 -1
  194. package/dist/inspector/canvas/useCanvasLayoutAnimation.js +0 -1
  195. package/dist/inspector/canvas/viewStore.js +1 -1
  196. package/dist/inspector/canvas/wheelPan.d.ts +1 -1
  197. package/dist/inspector/canvas/wheelPan.js +1 -1
  198. package/dist/inspector/canvas/workspaceLease.d.ts +1 -5
  199. package/dist/inspector/canvas/workspaceLease.js +1 -7
  200. package/dist/inspector/changes/codecs.js +2 -1
  201. package/dist/inspector/changes/draftPreview.d.ts +1 -6
  202. package/dist/inspector/changes/draftPreview.js +15 -30
  203. package/dist/inspector/changes/editModel.d.ts +3 -13
  204. package/dist/inspector/changes/editModel.js +1 -2
  205. package/dist/inspector/changes/managedStyleProjection.js +4 -14
  206. package/dist/inspector/changes/model.d.ts +0 -5
  207. package/dist/inspector/changes/model.js +1 -8
  208. package/dist/inspector/changes/previewDiagnostics.d.ts +2 -12
  209. package/dist/inspector/changes/previewDiagnostics.js +4 -20
  210. package/dist/inspector/changes/previewVerification.d.ts +25 -0
  211. package/dist/inspector/changes/previewVerification.js +34 -0
  212. package/dist/inspector/changes/structuralTypes.d.ts +2 -4
  213. package/dist/inspector/changes/types.d.ts +3 -10
  214. package/dist/inspector/clientManifest.d.ts +17 -6
  215. package/dist/inspector/clientManifest.js +16 -3
  216. package/dist/inspector/comments/CommentsOverlay.js +48 -7
  217. package/dist/inspector/comments/element.d.ts +1 -2
  218. package/dist/inspector/comments/element.js +1 -2
  219. package/dist/inspector/comments/store.d.ts +1 -1
  220. package/dist/inspector/comments/store.js +1 -1
  221. package/dist/inspector/comments/verification.d.ts +8 -2
  222. package/dist/inspector/comments/verification.js +18 -10
  223. package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +8 -0
  224. package/dist/inspector/componentSemantics/ComponentPropsSection.js +10 -7
  225. package/dist/inspector/componentSemantics/adapterRegistry.d.ts +2 -9
  226. package/dist/inspector/componentSemantics/adapterRegistry.js +2 -9
  227. package/dist/inspector/componentSemantics/changeModel.js +2 -4
  228. package/dist/inspector/componentSemantics/react/callsites.d.ts +28 -0
  229. package/dist/inspector/componentSemantics/react/callsites.js +261 -0
  230. package/dist/inspector/componentSemantics/react/devtoolsHook.d.ts +23 -0
  231. package/dist/inspector/componentSemantics/react/devtoolsHook.js +71 -0
  232. package/dist/inspector/componentSemantics/react/fibers.d.ts +17 -0
  233. package/dist/inspector/componentSemantics/react/fibers.js +30 -0
  234. package/dist/inspector/componentSemantics/{reactRuntime.d.ts → react/runtime.d.ts} +3 -2
  235. package/dist/inspector/componentSemantics/{reactRuntime.js → react/runtime.js} +70 -53
  236. package/dist/inspector/componentSemantics/runtimeBridge.d.ts +2 -18
  237. package/dist/inspector/componentSemantics/runtimeBridge.js +5 -19
  238. package/dist/inspector/componentSemantics/textBinding.d.ts +1 -9
  239. package/dist/inspector/componentSemantics/textBinding.js +16 -42
  240. package/dist/inspector/componentSemantics/types.d.ts +8 -27
  241. package/dist/inspector/componentSemantics/types.js +0 -1
  242. package/dist/inspector/conformance/borderCases.d.ts +0 -5
  243. package/dist/inspector/conformance/borderCases.js +0 -5
  244. package/dist/inspector/conformance/colorCases.d.ts +0 -6
  245. package/dist/inspector/conformance/colorCases.js +0 -6
  246. package/dist/inspector/conformance/fixture.d.ts +1 -5
  247. package/dist/inspector/conformance/fixture.js +1 -5
  248. package/dist/inspector/conformance/spacingCases.d.ts +0 -4
  249. package/dist/inspector/conformance/spacingCases.js +0 -4
  250. package/dist/inspector/conformance/typographyCases.d.ts +0 -5
  251. package/dist/inspector/conformance/typographyCases.js +0 -5
  252. package/dist/inspector/drafts/draftStore.d.ts +7 -21
  253. package/dist/inspector/drafts/draftStore.js +15 -5
  254. package/dist/inspector/drafts/model.d.ts +7 -15
  255. package/dist/inspector/drafts/model.js +0 -2
  256. package/dist/inspector/drafts/store.d.ts +1 -8
  257. package/dist/inspector/drafts/store.js +3 -10
  258. package/dist/inspector/editScope.d.ts +0 -1
  259. package/dist/inspector/editScope.js +0 -1
  260. package/dist/inspector/inline-text/inlineTextDiagnostics.d.ts +0 -2
  261. package/dist/inspector/inline-text/inlineTextDiagnostics.js +0 -2
  262. package/dist/inspector/inline-text/inlineTextEditor.d.ts +2 -8
  263. package/dist/inspector/inline-text/inlineTextEditor.js +26 -79
  264. package/dist/inspector/inline-text/inlineTextLifecycle.js +1 -6
  265. package/dist/inspector/inline-text/textEditChange.d.ts +0 -1
  266. package/dist/inspector/inspection/bridge.d.ts +2 -6
  267. package/dist/inspector/inspection/bridge.js +4 -12
  268. package/dist/inspector/inspection/browserCssInspection.d.ts +4 -11
  269. package/dist/inspector/inspection/browserCssInspection.js +4 -8
  270. package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +0 -7
  271. package/dist/inspector/inspection/browserCssInspectionRegistry.js +1 -16
  272. package/dist/inspector/inspection/selectionProperty.d.ts +1 -6
  273. package/dist/inspector/inspection/selectionProperty.js +1 -5
  274. package/dist/inspector/inspection/useBrowserCssInspection.d.ts +1 -5
  275. package/dist/inspector/inspection/useBrowserCssInspection.js +5 -21
  276. package/dist/inspector/iterations/capture.d.ts +0 -1
  277. package/dist/inspector/iterations/capture.js +4 -9
  278. package/dist/inspector/iterations/client.d.ts +0 -1
  279. package/dist/inspector/iterations/client.js +0 -1
  280. package/dist/inspector/iterations/coordinator.d.ts +0 -1
  281. package/dist/inspector/iterations/coordinator.js +0 -1
  282. package/dist/inspector/iterations/prompt.d.ts +0 -1
  283. package/dist/inspector/iterations/prompt.js +0 -1
  284. package/dist/inspector/overlay/DomNavigator.d.ts +3 -1
  285. package/dist/inspector/overlay/DomNavigator.js +39 -15
  286. package/dist/inspector/overlay/DropGuideOverlay.d.ts +0 -1
  287. package/dist/inspector/overlay/DropGuideOverlay.js +0 -1
  288. package/dist/inspector/overlay/MeasurementGuideOverlay.d.ts +1 -8
  289. package/dist/inspector/overlay/MeasurementGuideOverlay.js +1 -5
  290. package/dist/inspector/overlay/clickPolicy.d.ts +3 -14
  291. package/dist/inspector/overlay/clickPolicy.js +3 -14
  292. package/dist/inspector/overlay/dropGuide.d.ts +0 -3
  293. package/dist/inspector/overlay/dropGuide.js +0 -3
  294. package/dist/inspector/overlay/frameThrottle.d.ts +0 -1
  295. package/dist/inspector/overlay/frameThrottle.js +0 -1
  296. package/dist/inspector/overlay/interactionStyles.d.ts +1 -1
  297. package/dist/inspector/overlay/interactionStyles.js +2 -8
  298. package/dist/inspector/overlay/measurementGeometry.js +4 -12
  299. package/dist/inspector/overlay/selectedGeometry.d.ts +1 -6
  300. package/dist/inspector/overlay/selectedGeometry.js +1 -8
  301. package/dist/inspector/overlay/spacingGestures.d.ts +14 -21
  302. package/dist/inspector/overlay/spacingGestures.js +151 -31
  303. package/dist/inspector/overlay/structuralGestures.d.ts +2 -9
  304. package/dist/inspector/overlay/structuralGestures.js +1 -4
  305. package/dist/inspector/pageInspector.d.ts +4 -13
  306. package/dist/inspector/pageInspector.js +25 -32
  307. package/dist/inspector/projection/cssEscapes.d.ts +0 -1
  308. package/dist/inspector/projection/cssEscapes.js +2 -4
  309. package/dist/inspector/projection/draftProjection.d.ts +2 -14
  310. package/dist/inspector/projection/draftProjection.js +1 -8
  311. package/dist/inspector/projection/managedStylesheet.d.ts +1 -7
  312. package/dist/inspector/projection/managedStylesheet.js +4 -22
  313. package/dist/inspector/projection/renderedInstance.d.ts +5 -28
  314. package/dist/inspector/projection/renderedInstance.js +6 -32
  315. package/dist/inspector/projection/structuralProjection.d.ts +7 -39
  316. package/dist/inspector/projection/structuralProjection.js +17 -52
  317. package/dist/inspector/projection/textProjection.d.ts +2 -14
  318. package/dist/inspector/projection/textProjection.js +17 -70
  319. package/dist/inspector/prompt/PromptSettingsDialog.d.ts +0 -1
  320. package/dist/inspector/prompt/PromptSettingsDialog.js +0 -1
  321. package/dist/inspector/prompt/clipboardHandoff.d.ts +1 -9
  322. package/dist/inspector/prompt/clipboardHandoff.js +1 -9
  323. package/dist/inspector/prompt/generatePrompt.d.ts +1 -1
  324. package/dist/inspector/prompt/generatePrompt.js +10 -25
  325. package/dist/inspector/prompt/promptSettings.d.ts +0 -3
  326. package/dist/inspector/prompt/promptSettings.js +0 -3
  327. package/dist/inspector/runtime/devFlag.d.ts +2 -25
  328. package/dist/inspector/runtime/devFlag.js +4 -31
  329. package/dist/inspector/runtime/documentStylesheetOrder.d.ts +0 -2
  330. package/dist/inspector/runtime/editorShell.d.ts +0 -1
  331. package/dist/inspector/runtime/editorShell.js +0 -1
  332. package/dist/inspector/runtime/inspectorStorage.d.ts +1 -7
  333. package/dist/inspector/runtime/inspectorStorage.js +1 -6
  334. package/dist/inspector/runtime/ownedStylesheets.d.ts +2 -8
  335. package/dist/inspector/runtime/ownedStylesheets.js +2 -8
  336. package/dist/inspector/runtime/runtimeConfig.d.ts +12 -86
  337. package/dist/inspector/runtime/runtimeConfig.js +9 -50
  338. package/dist/inspector/runtime/runtimeIdentityClaims.d.ts +3 -13
  339. package/dist/inspector/runtime/runtimeIdentityClaims.js +9 -19
  340. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +4 -36
  341. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +7 -40
  342. package/dist/inspector/runtime/useRuntimeConfig.d.ts +1 -8
  343. package/dist/inspector/runtime/useRuntimeConfig.js +1 -8
  344. package/dist/inspector/selection/editScope.d.ts +1 -7
  345. package/dist/inspector/selection/editScope.js +2 -12
  346. package/dist/inspector/selection/editTarget.d.ts +1 -5
  347. package/dist/inspector/selection/hierarchy.d.ts +11 -11
  348. package/dist/inspector/selection/hierarchy.js +42 -24
  349. package/dist/inspector/selection/selectionStore.d.ts +0 -3
  350. package/dist/inspector/selection/selectionStore.js +5 -16
  351. package/dist/inspector/selection/sourceSite.d.ts +1 -5
  352. package/dist/inspector/selection/sourceSite.js +2 -8
  353. package/dist/inspector/selection/styleSelection.d.ts +1 -5
  354. package/dist/inspector/selection/styleSelection.js +1 -5
  355. package/dist/inspector/session/lifecycle.d.ts +1 -9
  356. package/dist/inspector/session/lifecycle.js +0 -1
  357. package/dist/inspector/session/sessionContext.d.ts +0 -4
  358. package/dist/inspector/session/sessionContext.js +0 -4
  359. package/dist/inspector/session/sessionFactory.d.ts +0 -9
  360. package/dist/inspector/session/sessionFactory.js +0 -6
  361. package/dist/inspector/settings/SettingsDialog.d.ts +0 -1
  362. package/dist/inspector/settings/SettingsDialog.js +5 -3
  363. package/dist/inspector/shell/AgentStatusButton.d.ts +3 -2
  364. package/dist/inspector/shell/AgentStatusButton.js +5 -5
  365. package/dist/inspector/shell/ChangesLog.js +3 -4
  366. package/dist/inspector/shell/CopyPromptButton.d.ts +2 -1
  367. package/dist/inspector/shell/CopyPromptButton.js +12 -11
  368. package/dist/inspector/shell/InspectorEditors.d.ts +16 -0
  369. package/dist/inspector/shell/InspectorEditors.js +14 -0
  370. package/dist/inspector/shell/InspectorPanel.d.ts +12 -0
  371. package/dist/inspector/shell/InspectorPanel.js +8 -0
  372. package/dist/inspector/shell/InspectorSelection.d.ts +24 -0
  373. package/dist/inspector/shell/InspectorSelection.js +20 -0
  374. package/dist/inspector/shell/InspectorShell.js +26 -48
  375. package/dist/inspector/shell/NudgeLogoIcon.d.ts +5 -0
  376. package/dist/inspector/shell/NudgeLogoIcon.js +5 -0
  377. package/dist/inspector/shell/PeekOriginalButton.d.ts +0 -5
  378. package/dist/inspector/shell/PeekOriginalButton.js +0 -5
  379. package/dist/inspector/shell/PeekOriginalIcon.d.ts +0 -5
  380. package/dist/inspector/shell/PeekOriginalIcon.js +0 -5
  381. package/dist/inspector/shell/PromptActionButton.d.ts +21 -0
  382. package/dist/inspector/shell/PromptActionButton.js +14 -0
  383. package/dist/inspector/shell/elementName.d.ts +5 -0
  384. package/dist/inspector/shell/elementName.js +29 -0
  385. package/dist/inspector/shell/interactionStatePreview.d.ts +1 -4
  386. package/dist/inspector/shell/interactionStatePreview.js +3 -8
  387. package/dist/inspector/shell/originalPreview.d.ts +1 -6
  388. package/dist/inspector/shell/originalPreview.js +1 -6
  389. package/dist/inspector/shell/stateValue.d.ts +1 -2
  390. package/dist/inspector/shell/stateValue.js +2 -5
  391. package/dist/inspector/shell/styleState.d.ts +1 -2
  392. package/dist/inspector/shell/styleState.js +1 -2
  393. package/dist/inspector/sketch/SketchEditor.js +0 -1
  394. package/dist/inspector/sketch/SketchFrameOverlay.js +8 -12
  395. package/dist/inspector/sketch/SketchOverlay.js +5 -6
  396. package/dist/inspector/sketch/SketchPromptPanel.d.ts +0 -1
  397. package/dist/inspector/sketch/SketchPromptPanel.js +0 -1
  398. package/dist/inspector/sketch/SketchWorkspace.js +2 -4
  399. package/dist/inspector/sketch/capture.d.ts +12 -3
  400. package/dist/inspector/sketch/capture.js +12 -11
  401. package/dist/inspector/sketch/copySketch.d.ts +1 -7
  402. package/dist/inspector/sketch/copySketch.js +2 -11
  403. package/dist/inspector/sketch/drawingTools.d.ts +1 -3
  404. package/dist/inspector/sketch/drawingTools.js +1 -2
  405. package/dist/inspector/sketch/frameHeading.d.ts +1 -7
  406. package/dist/inspector/sketch/frameHeading.js +1 -8
  407. package/dist/inspector/sketch/freehand.d.ts +0 -1
  408. package/dist/inspector/sketch/freehand.js +0 -1
  409. package/dist/inspector/sketch/geometry.d.ts +1 -6
  410. package/dist/inspector/sketch/geometry.js +1 -6
  411. package/dist/inspector/sketch/handoff.js +0 -1
  412. package/dist/inspector/sketch/history.d.ts +1 -5
  413. package/dist/inspector/sketch/history.js +1 -4
  414. package/dist/inspector/sketch/interaction.d.ts +2 -2
  415. package/dist/inspector/sketch/interaction.js +2 -2
  416. package/dist/inspector/sketch/model.d.ts +2 -9
  417. package/dist/inspector/sketch/model.js +2 -19
  418. package/dist/inspector/sketch/persistence.d.ts +0 -1
  419. package/dist/inspector/sketch/persistence.js +2 -2
  420. package/dist/inspector/sketch/raster.d.ts +1 -4
  421. package/dist/inspector/sketch/raster.js +2 -8
  422. package/dist/inspector/sketch/store.js +2 -3
  423. package/dist/inspector/sketch/videoFrames.js +2 -3
  424. package/dist/inspector/spacing/projection.d.ts +0 -8
  425. package/dist/inspector/spacing/projection.js +38 -20
  426. package/dist/inspector/styleEditors/BackgroundEditor.js +1 -1
  427. package/dist/inspector/styleEditors/BorderEditor.js +1 -6
  428. package/dist/inspector/styleEditors/ChildPlacement.d.ts +12 -0
  429. package/dist/inspector/styleEditors/ChildPlacement.js +9 -0
  430. package/dist/inspector/styleEditors/FlexControls.d.ts +35 -0
  431. package/dist/inspector/styleEditors/FlexControls.js +158 -0
  432. package/dist/inspector/styleEditors/GapField.d.ts +5 -2
  433. package/dist/inspector/styleEditors/GapField.js +3 -4
  434. package/dist/inspector/styleEditors/GridChildSection.d.ts +0 -5
  435. package/dist/inspector/styleEditors/GridChildSection.js +0 -5
  436. package/dist/inspector/styleEditors/GridPicker.d.ts +1 -1
  437. package/dist/inspector/styleEditors/GridPicker.js +2 -4
  438. package/dist/inspector/styleEditors/GridSection.d.ts +10 -8
  439. package/dist/inspector/styleEditors/GridSection.js +22 -9
  440. package/dist/inspector/styleEditors/GridValueField.d.ts +1 -5
  441. package/dist/inspector/styleEditors/GridValueField.js +2 -8
  442. package/dist/inspector/styleEditors/ImageBackgroundEditor.d.ts +0 -1
  443. package/dist/inspector/styleEditors/ImageBackgroundEditor.js +0 -1
  444. package/dist/inspector/styleEditors/LayoutBlockedIndicator.d.ts +0 -1
  445. package/dist/inspector/styleEditors/LayoutBlockedIndicator.js +0 -1
  446. package/dist/inspector/styleEditors/LayoutComboField.js +0 -5
  447. package/dist/inspector/styleEditors/LayoutModeRow.d.ts +14 -0
  448. package/dist/inspector/styleEditors/LayoutModeRow.js +60 -0
  449. package/dist/inspector/styleEditors/LayoutSection.d.ts +2 -2
  450. package/dist/inspector/styleEditors/LayoutSection.js +30 -356
  451. package/dist/inspector/styleEditors/OpacityEditor.js +7 -5
  452. package/dist/inspector/styleEditors/PositionControls.d.ts +18 -0
  453. package/dist/inspector/styleEditors/PositionControls.js +16 -0
  454. package/dist/inspector/styleEditors/SizeSection.d.ts +18 -0
  455. package/dist/inspector/styleEditors/SizeSection.js +71 -0
  456. package/dist/inspector/styleEditors/{SpacingBox.d.ts → SpacingField.d.ts} +3 -10
  457. package/dist/inspector/styleEditors/{SpacingBox.js → SpacingField.js} +15 -29
  458. package/dist/inspector/styleEditors/Typography.js +2 -4
  459. package/dist/inspector/styleEditors/borderModel.d.ts +1 -7
  460. package/dist/inspector/styleEditors/borderModel.js +2 -11
  461. package/dist/inspector/styleEditors/completeCssValue.d.ts +1 -5
  462. package/dist/inspector/styleEditors/completeCssValue.js +3 -13
  463. package/dist/inspector/styleEditors/fieldValue.d.ts +20 -0
  464. package/dist/inspector/styleEditors/fieldValue.js +26 -0
  465. package/dist/inspector/styleEditors/gradientValue.d.ts +1 -1
  466. package/dist/inspector/styleEditors/gradientValue.js +3 -2
  467. package/dist/inspector/styleEditors/gridChildModel.d.ts +7 -47
  468. package/dist/inspector/styleEditors/gridChildModel.js +6 -37
  469. package/dist/inspector/styleEditors/hiddenSizeOverrides.d.ts +5 -0
  470. package/dist/inspector/styleEditors/hiddenSizeOverrides.js +42 -0
  471. package/dist/inspector/styleEditors/inlineAuthored.d.ts +1 -8
  472. package/dist/inspector/styleEditors/inlineAuthored.js +3 -17
  473. package/dist/inspector/styleEditors/layoutMode.d.ts +15 -0
  474. package/dist/inspector/styleEditors/layoutMode.js +33 -0
  475. package/dist/inspector/styleEditors/layoutPreviewState.d.ts +0 -1
  476. package/dist/inspector/styleEditors/layoutPreviewState.js +0 -1
  477. package/dist/inspector/styleEditors/layoutValue.d.ts +2 -8
  478. package/dist/inspector/styleEditors/layoutValue.js +4 -12
  479. package/dist/inspector/styleEditors/nudgeValue.d.ts +1 -13
  480. package/dist/inspector/styleEditors/nudgeValue.js +1 -13
  481. package/dist/inspector/styleEditors/rowLookup.d.ts +1 -5
  482. package/dist/inspector/styleEditors/rowLookup.js +1 -5
  483. package/dist/inspector/styleEditors/stringRecord.d.ts +1 -2
  484. package/dist/inspector/styleEditors/stylePresence.d.ts +0 -2
  485. package/dist/inspector/styleEditors/stylePresence.js +1 -4
  486. package/dist/inspector/styleEditors/textRelevance.d.ts +1 -1
  487. package/dist/inspector/styleEditors/textRelevance.js +1 -1
  488. package/dist/inspector/styleEditors/useFieldVisibility.js +1 -2
  489. package/dist/inspector/styleEditors/useLayoutContext.d.ts +13 -0
  490. package/dist/inspector/styleEditors/useLayoutContext.js +53 -0
  491. package/dist/inspector/styleEditors/valuePolicy.d.ts +1 -5
  492. package/dist/inspector/styleEditors/valuePolicy.js +0 -1
  493. package/dist/inspector/testing.d.ts +1 -4
  494. package/dist/inspector/testing.js +1 -4
  495. package/dist/inspector/tokens/TokenChip.d.ts +1 -4
  496. package/dist/inspector/tokens/TokenChip.js +1 -4
  497. package/dist/inspector/tokens/TokenField.d.ts +4 -3
  498. package/dist/inspector/tokens/TokenField.js +19 -29
  499. package/dist/inspector/tokens/catalog.d.ts +2 -10
  500. package/dist/inspector/tokens/catalog.js +5 -12
  501. package/dist/inspector/tokens/dragPointerLock.d.ts +0 -1
  502. package/dist/inspector/tokens/dragPointerLock.js +2 -3
  503. package/dist/inspector/tokens/editActions.d.ts +1 -1
  504. package/dist/inspector/tokens/editActions.js +2 -4
  505. package/dist/inspector/tokens/resolution/cascade.d.ts +1 -5
  506. package/dist/inspector/tokens/resolution/cascade.js +1 -5
  507. package/dist/inspector/tokens/resolution/containerQueryEvaluator.d.ts +1 -5
  508. package/dist/inspector/tokens/resolution/containerQueryEvaluator.js +1 -5
  509. package/dist/inspector/tokens/resolution/cssomCollector.d.ts +4 -19
  510. package/dist/inspector/tokens/resolution/cssomCollector.js +151 -122
  511. package/dist/inspector/tokens/resolution/nestedSelectors.d.ts +1 -5
  512. package/dist/inspector/tokens/resolution/nestedSelectors.js +1 -5
  513. package/dist/inspector/tokens/resolution/ruleMatching.d.ts +4 -14
  514. package/dist/inspector/tokens/resolution/ruleMatching.js +121 -67
  515. package/dist/inspector/tokens/resolution/selectorSemantics.d.ts +3 -14
  516. package/dist/inspector/tokens/resolution/selectorSemantics.js +12 -27
  517. package/dist/inspector/tokens/resolution.d.ts +5 -24
  518. package/dist/inspector/tokens/resolution.js +16 -71
  519. package/dist/inspector/tokens/tokenAvailability.d.ts +2 -14
  520. package/dist/inspector/tokens/tokenAvailability.js +6 -38
  521. package/dist/inspector/tokens/valueSemanticsAdapter.d.ts +0 -1
  522. package/dist/inspector/tokens/valueSemanticsAdapter.js +18 -2
  523. package/dist/inspector/ui/AtRuleContext.d.ts +5 -5
  524. package/dist/inspector/ui/AtRuleContext.js +8 -6
  525. package/dist/inspector/ui/ControlSurface.d.ts +0 -4
  526. package/dist/inspector/ui/Disclosure.d.ts +0 -5
  527. package/dist/inspector/ui/Disclosure.js +0 -4
  528. package/dist/inspector/ui/InlineStyleWarning.d.ts +0 -1
  529. package/dist/inspector/ui/InspectorPopover.d.ts +1 -5
  530. package/dist/inspector/ui/InspectorPopover.js +1 -5
  531. package/dist/inspector/ui/SegmentedControl.d.ts +4 -4
  532. package/dist/inspector/ui/SegmentedControl.js +6 -4
  533. package/dist/inspector/ui/SideValuesField.d.ts +1 -6
  534. package/dist/inspector/ui/SideValuesField.js +2 -8
  535. package/dist/inspector/ui/Toast.d.ts +0 -4
  536. package/dist/inspector/ui/Toast.js +0 -4
  537. package/dist/inspector/ui/atRuleSegments.d.ts +13 -0
  538. package/dist/inspector/ui/atRuleSegments.js +34 -0
  539. package/dist/inspector/ui/classNames.d.ts +0 -1
  540. package/dist/inspector/ui/classNames.js +0 -1
  541. package/dist/inspector/ui/customCursors.d.ts +7 -1
  542. package/dist/inspector/ui/customCursors.js +2 -6
  543. package/dist/inspector/ui/styles.js +18 -20
  544. package/dist/inspector/workspace/controller.js +20 -1
  545. package/dist/inspector/workspace/handoff.d.ts +1 -5
  546. package/dist/inspector/workspace/handoff.js +1 -5
  547. package/dist/inspector/workspace/timeline.d.ts +5 -2
  548. package/dist/inspector/workspace/timeline.js +0 -1
  549. package/dist/internal/agent-protocol.d.ts +20 -42
  550. package/dist/internal/agent-protocol.js +18 -35
  551. package/dist/nudge-ui.mjs +75 -28
  552. package/dist/project/artifacts.js +24 -21
  553. package/dist/project/files.d.ts +0 -1
  554. package/dist/project/files.js +2 -9
  555. package/dist/project/identity.d.ts +1 -5
  556. package/dist/project/identity.js +1 -5
  557. package/dist/project/mcpPackage.d.ts +1 -6
  558. package/dist/project/mcpPackage.js +2 -7
  559. package/dist/project/pathPolicy.d.ts +1 -6
  560. package/dist/project/pathPolicy.js +1 -6
  561. package/dist/project/tokens.d.ts +2 -12
  562. package/dist/project/tokens.js +4 -15
  563. package/dist/transport/editor.d.ts +1 -12
  564. package/dist/transport/editor.js +2 -13
  565. package/dist/transport/index.d.ts +0 -5
  566. package/dist/transport/index.js +0 -5
  567. package/dist/transport/routes.d.ts +0 -5
  568. package/dist/transport/routes.js +0 -5
  569. package/package.json +5 -4
  570. package/dist/inspector/styleEditors/InsetSection.d.ts +0 -15
  571. package/dist/inspector/styleEditors/InsetSection.js +0 -15
  572. package/dist/inspector/styleEditors/PositionInsets.d.ts +0 -15
  573. package/dist/inspector/styleEditors/PositionInsets.js +0 -12
  574. package/dist/inspector/tokens/TokenDropdown.d.ts +0 -13
  575. package/dist/inspector/tokens/TokenDropdown.js +0 -59
@@ -1,19 +1,18 @@
1
1
  import { cloneElement, createElement, forwardRef, useEffect, useMemo, useSyncExternalStore, version as reactVersion, } from "react";
2
- import { registerHostRuntimeAdapter } from "./runtimeBridge.js";
3
- import { getNudgeUiRuntimeConfig } from "../runtime/runtimeConfig.js";
2
+ import { registerHostRuntimeAdapter } from "../runtimeBridge.js";
3
+ import { getNudgeUiRuntimeConfig } from "../../runtime/runtimeConfig.js";
4
+ import { findFiber, hostOutputCount, isHostOutput } from "./fibers.js";
5
+ import { canPreviewLive, invocationProps, replaceTaggedOverrides, resetTaggedCallsites, taggedCallsiteMultiplicity, taggedInvocationsAbove, taggedRootInvocations, } from "./callsites.js";
6
+ export { registerReactCallsites } from "./callsites.js";
4
7
  const BOUNDARY_MARKER = Symbol.for("nudge-ui.react-component-boundary");
5
8
  const EMPTY_OVERRIDE = Object.freeze({});
6
9
  const REACT_MAJOR_VERSION = Number.parseInt(reactVersion, 10);
7
- /** React work tags for host output that has no string element type. */
8
- const HOST_PORTAL_TAG = 4;
9
- const HOST_TEXT_TAG = 6;
10
10
  let overridesByCallsite = new Map();
11
11
  const listeners = new Set();
12
12
  /**
13
- * Mounted invocation accounting is runtime state, not canonical identity. A
14
- * boundary registers by its stable transformed callsite and unregisters on
15
- * unmount. This survives rerenders and React Strict Mode's effect probe, and
16
- * each Canvas iframe owns an independent registry/module instance.
13
+ * Mounted invocation accounting is runtime state, not canonical identity: a boundary
14
+ * registers by its stable transformed callsite and unregisters on unmount, surviving
15
+ * rerenders and React Strict Mode's effect probe.
17
16
  */
18
17
  const mountedCallsites = new Map();
19
18
  function registerMountedCallsite(callsiteId) {
@@ -30,7 +29,6 @@ function registerMountedCallsite(callsiteId) {
30
29
  mountedCallsites.delete(callsiteId);
31
30
  };
32
31
  }
33
- /** Returns null when this runtime has no mounted boundary for the callsite. */
34
32
  export function getReactCallsiteMultiplicity(callsiteId) {
35
33
  return mountedCallsites.get(callsiteId) ?? null;
36
34
  }
@@ -39,6 +37,7 @@ export function resetReactComponentRuntime() {
39
37
  mountedCallsites.clear();
40
38
  overridesByCallsite = new Map();
41
39
  listeners.clear();
40
+ resetTaggedCallsites();
42
41
  }
43
42
  function subscribe(listener) {
44
43
  listeners.add(listener);
@@ -119,9 +118,8 @@ const ReactComponentOverride = forwardRef(function ReactComponentOverride({ elem
119
118
  const props = {
120
119
  ...injectedProps,
121
120
  ...override,
121
+ ...(forwardedRef === null ? {} : { ref: mergedRef }),
122
122
  };
123
- if (forwardedRef !== null)
124
- props.ref = mergedRef;
125
123
  return cloneElement(element, props);
126
124
  });
127
125
  ReactComponentOverride[BOUNDARY_MARKER] = true;
@@ -131,26 +129,40 @@ function isBoundaryType(value) {
131
129
  return false;
132
130
  return Reflect.get(value, BOUNDARY_MARKER) === true;
133
131
  }
134
- function findFiber(element) {
135
- for (const key of Object.keys(element)) {
136
- if (/^__reactFiber\$/.test(key) || /^__reactInternalInstance\$/.test(key)) {
137
- return Reflect.get(element, key) ?? null;
138
- }
139
- }
140
- return null;
141
- }
142
132
  export function instrumentReactComponent(element, meta) {
143
133
  return createElement(ReactComponentOverride, { key: element.key ?? undefined, element, meta });
144
134
  }
135
+ function boundaryOf(fiber) {
136
+ if (!isBoundaryType(fiber.type))
137
+ return null;
138
+ // SAFETY: a boundary fiber's props are the `{ element, meta }` it was created with; both are checked below.
139
+ const props = (fiber.memoizedProps ?? {});
140
+ return props.meta && props.element ? { meta: props.meta, element: props.element } : null;
141
+ }
142
+ function nearestFirst(boundaries, tagged) {
143
+ const wrapped = new Set(boundaries.map((entry) => entry.callsiteId));
144
+ return [...boundaries, ...tagged.filter((entry) => !wrapped.has(entry.callsiteId))]
145
+ .sort((left, right) => left.depth - right.depth)
146
+ .map((entry) => entry.value);
147
+ }
148
+ /** Wrapped callsites answer through their boundary, others through their fiber's identity tag; both merge nearest first. */
145
149
  export function inspectReactComponentTargets(element) {
146
150
  if (!getNudgeUiRuntimeConfig().capabilities.componentSemantics)
147
151
  return [];
148
- const targets = [];
149
- let fiber = findFiber(element);
150
- while (fiber) {
151
- if (isBoundaryType(fiber.type) && fiber.memoizedProps?.meta && fiber.memoizedProps.element) {
152
- const { meta, element: sourceElement } = fiber.memoizedProps;
153
- targets.push({
152
+ const host = findFiber(element);
153
+ if (!host)
154
+ return [];
155
+ const boundaries = [];
156
+ let depth = 0;
157
+ for (let fiber = host; fiber; fiber = fiber.return ?? null, depth += 1) {
158
+ const boundary = boundaryOf(fiber);
159
+ if (!boundary)
160
+ continue;
161
+ const { meta, element: sourceElement } = boundary;
162
+ boundaries.push({
163
+ depth,
164
+ callsiteId: meta.callsiteId,
165
+ value: {
154
166
  framework: "react",
155
167
  meta,
156
168
  props: {
@@ -158,28 +170,21 @@ export function inspectReactComponentTargets(element) {
158
170
  ...overrideFor(meta.callsiteId),
159
171
  },
160
172
  mountedCount: getReactCallsiteMultiplicity(meta.callsiteId) ?? undefined,
161
- });
162
- }
163
- fiber = fiber.return ?? null;
173
+ },
174
+ });
164
175
  }
165
- return targets;
166
- }
167
- function isHostOutput(fiber) {
168
- return typeof fiber.type === "string" || fiber.tag === HOST_TEXT_TAG || fiber.tag === HOST_PORTAL_TAG;
169
- }
170
- /** Counts top-level host outputs below a fiber, stopping once there are two. */
171
- function hostOutputCount(fiber) {
172
- let count = 0;
173
- const visit = (parent) => {
174
- for (let child = parent.child ?? null; child && count < 2; child = child.sibling ?? null) {
175
- if (isHostOutput(child))
176
- count += 1;
177
- else
178
- visit(child);
179
- }
180
- };
181
- visit(fiber);
182
- return count;
176
+ const tagged = taggedInvocationsAbove(host).map((invocation) => ({
177
+ depth: invocation.depth,
178
+ callsiteId: invocation.meta.callsiteId,
179
+ value: {
180
+ framework: "react",
181
+ meta: invocation.meta,
182
+ props: invocationProps(invocation.fiber),
183
+ mountedCount: taggedCallsiteMultiplicity(invocation.meta.callsiteId, invocation.root) ?? undefined,
184
+ ...(canPreviewLive(invocation.root) ? {} : { livePreview: false }),
185
+ },
186
+ }));
187
+ return nearestFirst(boundaries, tagged);
183
188
  }
184
189
  export function inspectReactRootInvocations(element) {
185
190
  if (!getNudgeUiRuntimeConfig().capabilities.componentSemantics)
@@ -187,16 +192,27 @@ export function inspectReactRootInvocations(element) {
187
192
  const host = findFiber(element);
188
193
  if (!host)
189
194
  return null;
190
- const invocations = [];
195
+ const boundaries = [];
196
+ let depth = 0;
191
197
  for (let fiber = host.return ?? null; fiber && !isHostOutput(fiber); fiber = fiber.return ?? null) {
192
- if (!isBoundaryType(fiber.type) || !fiber.memoizedProps?.meta)
198
+ depth += 1;
199
+ const boundary = boundaryOf(fiber);
200
+ if (!boundary)
193
201
  continue;
194
202
  if (hostOutputCount(fiber) !== 1)
195
203
  break;
196
- const { callsiteId, componentName } = fiber.memoizedProps.meta;
197
- invocations.push({ callsiteId, componentName });
204
+ const { callsiteId, componentName } = boundary.meta;
205
+ boundaries.push({ depth, callsiteId, value: { callsiteId, componentName } });
198
206
  }
199
- return invocations;
207
+ const tagged = taggedRootInvocations(host).map(({ depth: taggedDepth, callsiteId, componentName }) => ({
208
+ depth: taggedDepth,
209
+ callsiteId,
210
+ value: { callsiteId, componentName },
211
+ }));
212
+ return nearestFirst(boundaries, tagged);
213
+ }
214
+ function callsiteMultiplicity(callsiteId) {
215
+ return getReactCallsiteMultiplicity(callsiteId) ?? taggedCallsiteMultiplicity(callsiteId);
200
216
  }
201
217
  export function replaceReactComponentOverrides(overrides) {
202
218
  if (!getNudgeUiRuntimeConfig().capabilities.componentSemantics)
@@ -209,6 +225,7 @@ export function replaceReactComponentOverrides(overrides) {
209
225
  props[override.prop] = override.value;
210
226
  next.set(override.callsiteId, props);
211
227
  }
228
+ replaceTaggedOverrides(next);
212
229
  if (sameOverrideProjection(next))
213
230
  return;
214
231
  overridesByCallsite = next;
@@ -218,7 +235,7 @@ export const reactComponentRuntimeAdapter = {
218
235
  framework: "react",
219
236
  inspect: inspectReactComponentTargets,
220
237
  replaceOverrides: replaceReactComponentOverrides,
221
- getCallsiteMultiplicity: getReactCallsiteMultiplicity,
238
+ getCallsiteMultiplicity: callsiteMultiplicity,
222
239
  rootInvocations: inspectReactRootInvocations,
223
240
  };
224
241
  registerHostRuntimeAdapter(reactComponentRuntimeAdapter);
@@ -1,27 +1,11 @@
1
1
  import type { ComponentOverride, ComponentRootInvocation, ComponentRuntimeAdapter, RuntimeComponentTarget } from "./types.js";
2
2
  export type { ComponentFramework, ComponentInvocationMeta, ComponentOverride, ComponentRootInvocation, ComponentRuntimeAdapter, RuntimeComponentTarget, } from "./types.js";
3
- /** Version of the page-global host runtime Adapter Interface. */
4
3
  export declare const NUDGE_UI_HOST_RUNTIME_VERSION = 1;
5
- /**
6
- * Registers a framework runtime Adapter in the host application's module graph.
7
- *
8
- * The registry lives on the page global because the self-contained inspector
9
- * client and the host Adapter intentionally have separate dependency graphs.
10
- * Registration replaces an older Adapter for the same framework so HMR does
11
- * not accumulate stale implementations.
12
- */
4
+ /** The registry lives on the page global because the inspector client and the host Adapter have separate dependency graphs. */
13
5
  export declare function registerHostRuntimeAdapter(adapter: ComponentRuntimeAdapter): () => void;
14
- /** Returns the active host runtime Adapters for the requested browser realm. */
15
6
  export declare function getHostRuntimeAdapters(ownerGlobal?: typeof globalThis): readonly ComponentRuntimeAdapter[];
16
- /** Stores the latest projection and sends it to every registered host Adapter. */
17
7
  export declare function replaceHostRuntimeAdapterOverrides(overrides: readonly ComponentOverride[]): void;
18
- /**
19
- * Copies a host Adapter result into the protocol's plain-data value space.
20
- * React elements, functions, and other reconciler-owned values never cross
21
- * the host/client seam.
22
- */
8
+ /** Reconciler-owned values never cross the host/client seam. */
23
9
  export declare function copyRuntimeTarget(target: RuntimeComponentTarget): RuntimeComponentTarget;
24
- /** Copies a host Adapter's root invocations into plain protocol data. */
25
10
  export declare function copyRootInvocations(invocations: readonly ComponentRootInvocation[]): ComponentRootInvocation[];
26
- /** Copies override commands before dispatching them into a host Adapter. */
27
11
  export declare function copyComponentOverrides(overrides: readonly ComponentOverride[]): ComponentOverride[];
@@ -1,5 +1,4 @@
1
1
  import { isComponentFramework } from "./types.js";
2
- /** Version of the page-global host runtime Adapter Interface. */
3
2
  export const NUDGE_UI_HOST_RUNTIME_VERSION = 1;
4
3
  const HOST_RUNTIME_KEY = Symbol.for("nudge-ui.host-runtime.v1");
5
4
  function registry() {
@@ -21,14 +20,7 @@ function registry() {
21
20
  target[HOST_RUNTIME_KEY] = created;
22
21
  return created;
23
22
  }
24
- /**
25
- * Registers a framework runtime Adapter in the host application's module graph.
26
- *
27
- * The registry lives on the page global because the self-contained inspector
28
- * client and the host Adapter intentionally have separate dependency graphs.
29
- * Registration replaces an older Adapter for the same framework so HMR does
30
- * not accumulate stale implementations.
31
- */
23
+ /** The registry lives on the page global because the inspector client and the host Adapter have separate dependency graphs. */
32
24
  export function registerHostRuntimeAdapter(adapter) {
33
25
  assertRuntimeAdapter(adapter);
34
26
  const hostRegistry = registry();
@@ -42,14 +34,14 @@ export function registerHostRuntimeAdapter(adapter) {
42
34
  }
43
35
  };
44
36
  }
45
- /** Returns the active host runtime Adapters for the requested browser realm. */
46
37
  export function getHostRuntimeAdapters(ownerGlobal = globalThis) {
47
38
  if (ownerGlobal === globalThis)
48
39
  return [...registry().adapters.values()];
40
+ // SAFETY: the symbol key is this module's private registry slot; symbol lookup works across realms.
49
41
  const current = ownerGlobal[HOST_RUNTIME_KEY];
50
42
  if (current === undefined)
51
43
  return [];
52
- const mapConstructor = Reflect.get(ownerGlobal, "Map");
44
+ const mapConstructor = ownerGlobal.Map;
53
45
  if (!mapConstructor
54
46
  || typeof current !== "object"
55
47
  || current === null
@@ -59,7 +51,6 @@ export function getHostRuntimeAdapters(ownerGlobal = globalThis) {
59
51
  }
60
52
  return [...(current.adapters.values())];
61
53
  }
62
- /** Stores the latest projection and sends it to every registered host Adapter. */
63
54
  export function replaceHostRuntimeAdapterOverrides(overrides) {
64
55
  const hostRegistry = registry();
65
56
  const frameworks = new Set([
@@ -76,11 +67,7 @@ export function replaceHostRuntimeAdapterOverrides(overrides) {
76
67
  hostRegistry.adapters.get(framework)?.replaceOverrides(copyComponentOverrides(projection));
77
68
  }
78
69
  }
79
- /**
80
- * Copies a host Adapter result into the protocol's plain-data value space.
81
- * React elements, functions, and other reconciler-owned values never cross
82
- * the host/client seam.
83
- */
70
+ /** Reconciler-owned values never cross the host/client seam. */
84
71
  export function copyRuntimeTarget(target) {
85
72
  assertRuntimeTarget(target);
86
73
  const props = {};
@@ -102,9 +89,9 @@ export function copyRuntimeTarget(target) {
102
89
  },
103
90
  props,
104
91
  ...(target.mountedCount === undefined ? {} : { mountedCount: target.mountedCount }),
92
+ ...(target.livePreview === false ? { livePreview: false } : {}),
105
93
  };
106
94
  }
107
- /** Copies a host Adapter's root invocations into plain protocol data. */
108
95
  export function copyRootInvocations(invocations) {
109
96
  if (!Array.isArray(invocations)) {
110
97
  throw new TypeError("Nudge UI received invalid root invocations from a host Adapter.");
@@ -121,7 +108,6 @@ export function copyRootInvocations(invocations) {
121
108
  return { callsiteId: invocation.callsiteId, componentName: invocation.componentName };
122
109
  });
123
110
  }
124
- /** Copies override commands before dispatching them into a host Adapter. */
125
111
  export function copyComponentOverrides(overrides) {
126
112
  return overrides.map((override) => {
127
113
  assertComponentOverride(override);
@@ -35,20 +35,16 @@ export interface TextBindingChoice {
35
35
  editableTarget: EditableComponentTarget;
36
36
  mountedCount: number;
37
37
  authoredAs: "literal" | "expression" | "spread" | "default";
38
- /** Durable target/source evidence for an item-only commit. */
39
38
  renderedTarget: TextProjectionTarget | null;
40
39
  renderedSource?: TextBindingRenderedSource;
41
40
  }
42
41
  export interface TextBindingCandidate {
43
42
  binding: TextEditBinding;
44
- /** Runtime target retained privately for semantic canonical records. */
45
43
  editableTarget?: EditableComponentTarget;
46
44
  element: HTMLElement;
47
45
  textNode: Text;
48
46
  before: string;
49
- /** Equal-priority semantic candidates are selected by the inline chooser. */
50
47
  bindingChoices?: TextBindingChoice[];
51
- /** Repeated literal invocations expose this scope choice before commit. */
52
48
  scope?: TextProjectionScope;
53
49
  scopeChoices?: TextProjectionScope[];
54
50
  mountedCount?: number;
@@ -57,11 +53,7 @@ export interface TextBindingCandidate {
57
53
  /** Existing inspector affordance hidden while its empty node is edited. */
58
54
  emptyProjectionMarker?: HTMLElement;
59
55
  }
60
- /**
61
- * Resolves only a confidently matched semantic string binding. Text nodes and
62
- * the temporary editor host are not identity: the returned component target is
63
- * the durable callsite used by the canonical component-prop record.
64
- */
56
+ /** Text nodes and the temporary editor host are not identity; the returned callsite is the durable one. */
65
57
  export declare function resolveTextBinding(element: HTMLElement, point?: {
66
58
  x: number;
67
59
  y: number;
@@ -34,9 +34,8 @@ function isApplicationEditingHost(element) {
34
34
  && host.getAttribute("contenteditable") !== "false";
35
35
  }
36
36
  function isApplicationEditingTextNode(element, textNode) {
37
- // `element.closest()` only checks the selected root. A tracked root can
38
- // contain an application-owned editing island, so inspect the text node's
39
- // complete ancestor chain as well.
37
+ // `element.closest()` only checks the selected root; an editing island can
38
+ // live deeper, so inspect the text node's own chain as well.
40
39
  const editingHost = textNode.parentElement?.closest("[contenteditable]");
41
40
  if (!editingHost)
42
41
  return false;
@@ -136,9 +135,8 @@ function mountedCountFor(element, target) {
136
135
  const mountedCount = callsiteMultiplicity(target);
137
136
  if (mountedCount !== null)
138
137
  return mountedCount;
139
- // Adapters written before multiplicity was introduced may still provide a
140
- // marker-backed inspection. Keep that compatibility fallback conservative:
141
- // it can prove one root, but it can never prove an arbitrary count.
138
+ // Compatibility fallback for adapters predating multiplicity: it can prove
139
+ // one root, never an arbitrary count.
142
140
  return hasUniqueInvocationEvidence(element, target.meta.callsiteId) ? 1 : null;
143
141
  }
144
142
  function candidatesForText(element, renderedText) {
@@ -188,10 +186,8 @@ function renderedTextCandidate(element, textNode, before, semantic, requireUniqu
188
186
  }
189
187
  const componentTarget = semantic?.target ?? inspectComponentTargets(element)[0];
190
188
  const semanticProperty = semantic?.property;
191
- // A component target is only source evidence when it is the callsite that
192
- // produced this exact DOM root. For text inside a child host element, the
193
- // nearest boundary is the enclosing component invocation, so the element's
194
- // own data-src must remain the prompt/change source.
189
+ // A component target is source evidence only when its callsite produced this
190
+ // exact DOM root; otherwise the element's own data-src remains the source.
195
191
  const elementDataSrc = element.getAttribute("data-src");
196
192
  const elementSource = parseRenderedSource(elementDataSrc ?? "");
197
193
  const matchingComponentTarget = componentTarget
@@ -239,7 +235,6 @@ function renderedTextCandidate(element, textNode, before, semantic, requireUniqu
239
235
  element,
240
236
  textNode,
241
237
  before,
242
- // Keep this private metadata on the candidate for canonical source data.
243
238
  renderedSource: {
244
239
  file: source.file,
245
240
  line: source.line,
@@ -290,11 +285,6 @@ function parseRenderedSource(src) {
290
285
  return { file: src, line: 0, column: 0 };
291
286
  return { file: match[1] ?? src, line: Number(match[2]), column: Number(match[3]) };
292
287
  }
293
- /**
294
- * Compatibility evidence for adapters that predate the mounted-count seam.
295
- * React itself reports multiplicity through the runtime Adapter registry; this
296
- * fallback is only a one-root proof and is never used to pick an occurrence.
297
- */
298
288
  function hasUniqueInvocationEvidence(element, callsiteId) {
299
289
  const nodes = Array.from(element.ownerDocument.querySelectorAll("[data-cid]"));
300
290
  const matches = new Set();
@@ -325,11 +315,7 @@ function hasUniqueInvocationEvidence(element, callsiteId) {
325
315
  }
326
316
  return roots === 1;
327
317
  }
328
- /**
329
- * Resolves only a confidently matched semantic string binding. Text nodes and
330
- * the temporary editor host are not identity: the returned component target is
331
- * the durable callsite used by the canonical component-prop record.
332
- */
318
+ /** Text nodes and the temporary editor host are not identity; the returned callsite is the durable one. */
333
319
  export function resolveTextBinding(element, point) {
334
320
  if (isApplicationEditingHost(element)) {
335
321
  return {
@@ -338,10 +324,8 @@ export function resolveTextBinding(element, point) {
338
324
  message: "Application-owned editing surfaces are not managed by the inspector.",
339
325
  };
340
326
  }
341
- // Hard-dangerous hosts are rejected before adapter inspection. Descendant
342
- // markup is intentionally not included: a confident semantic component
343
- // binding may still own a nested text node, while rendered fallback keeps
344
- // its stricter direct-leaf requirement.
327
+ // Descendant markup is intentionally not included: a semantic binding may still own a
328
+ // nested text node, while the rendered fallback keeps its stricter direct-leaf rule.
345
329
  if (isUnsafeTextHost(element)) {
346
330
  return {
347
331
  kind: "rejected",
@@ -398,9 +382,7 @@ export function resolveTextBinding(element, point) {
398
382
  renderedSource: rendered?.source,
399
383
  };
400
384
  });
401
- // Multiple equal-priority candidates are not rejected or guessed. The
402
- // session exposes these choices to the inline chooser and blocks commit
403
- // until the user picks one.
385
+ // Equal-priority candidates are handed to the inline chooser, never guessed.
404
386
  if (choices.length > 1) {
405
387
  return {
406
388
  binding: firstBinding,
@@ -422,16 +404,13 @@ export function resolveTextBinding(element, point) {
422
404
  const authoredAs = authoredAsFor(match.target, match.property);
423
405
  const binding = targetBinding(match.target, match.property);
424
406
  if (match.mountedCount > 1 && authoredAs !== "literal") {
425
- // Expressions/spreads are source-logic intent. A semantic callsite
426
- // override would fan out to every item, so retain one durable text target
427
- // and tell the prompt to update the data/source logic.
407
+ // Expressions/spreads are source-logic intent; a callsite override would
408
+ // fan out to every item, so keep one durable text target instead.
428
409
  return renderedTextCandidate(element, textNode, before, match);
429
410
  }
430
411
  if (match.mountedCount > 1 && authoredAs === "literal") {
431
- // Validate the selected output with the same bounded before-text evidence
432
- // used by the durable projection. The source-site option remains safe even
433
- // when identical outputs make an instance impossible to distinguish, but
434
- // an item-only session is never allowed to guess.
412
+ // Item-only scope must validate against the same bounded before-text
413
+ // evidence as the durable projection; source-site stays safe either way.
435
414
  const rendered = renderedTextCandidate(element, textNode, before, match, false);
436
415
  if (!("kind" in rendered)) {
437
416
  return {
@@ -443,10 +422,8 @@ export function resolveTextBinding(element, point) {
443
422
  scopeChoices: ["rendered-instance", "source-site"],
444
423
  };
445
424
  }
446
- // An unsafe/missing rendered-text projection only removes the item-scoped
447
- // option. The explicit all-output source-site edit is still a safe
448
- // canonical component-prop change and must not be rejected because the
449
- // DOM fallback cannot capture bounded instance evidence.
425
+ // A missing rendered projection only removes the item-scoped option; the
426
+ // all-output source-site edit is still a safe canonical change.
450
427
  return {
451
428
  binding,
452
429
  editableTarget: match.target,
@@ -458,9 +435,6 @@ export function resolveTextBinding(element, point) {
458
435
  scopeChoices: ["source-site"],
459
436
  };
460
437
  }
461
- // Unique invocation (mountedCount === 1): the callsite is unambiguous, so
462
- // the source-site edit is always safe and no scope choice is offered. The
463
- // mountedCount > 1 cases all returned above.
464
438
  return {
465
439
  binding,
466
440
  editableTarget: match.target,
@@ -1,16 +1,13 @@
1
1
  import type { RuntimeProps } from "./runtimeTypes.js";
2
2
  import type { EditScope } from "../editScope.js";
3
+ import type { ComponentInvocationMeta } from "../../compiler/componentContractTypes.js";
3
4
  export type ComponentPropValue = string | number | boolean;
4
5
  export type AuthoredPropKind = "literal" | "expression" | "spread" | "default";
5
6
  export declare const COMPONENT_FRAMEWORKS: readonly ["react"];
6
7
  export type ComponentFramework = (typeof COMPONENT_FRAMEWORKS)[number];
7
8
  export type ComponentChangeScope = EditScope;
8
- /** Returns whether a host value names a supported component framework. */
9
9
  export declare function isComponentFramework(value: string): value is ComponentFramework;
10
- /**
11
- * Bounded evidence for the rendered invocation that a text edit started from.
12
- * This is deliberately JSON data, never a DOM node or a React fiber.
13
- */
10
+ /** Deliberately JSON data, never a DOM node or a React fiber. */
14
11
  export interface ComponentInvocationEvidence {
15
12
  occurrence: number;
16
13
  props: string | null;
@@ -40,26 +37,18 @@ export interface ComponentChangeRecord {
40
37
  before: ComponentPropBaseline;
41
38
  after: ComponentPropValue;
42
39
  authoredAs: AuthoredPropKind;
43
- /** `source-site` is the historical/default semantic projection scope. */
44
40
  scope?: ComponentChangeScope;
45
- /** Present when an inline scope decision was made from one rendered item. */
46
41
  evidence?: ComponentInvocationEvidence;
47
42
  }
48
- export interface ComponentInvocationMeta {
49
- callsiteId: string;
50
- componentId: string;
51
- componentName: string;
52
- file: string;
53
- line: number;
54
- column: number;
55
- authoredProps: Record<string, Exclude<AuthoredPropKind, "default">>;
56
- }
43
+ /** The compiler owns this wire format; the runtime only reads it. */
44
+ export type { ComponentInvocationMeta };
57
45
  export interface RuntimeComponentTarget {
58
46
  framework: ComponentFramework;
59
47
  meta: ComponentInvocationMeta;
60
48
  props: RuntimeProps;
61
- /** Adapter-reported mounted invocation count for this callsite. */
62
49
  mountedCount?: number;
50
+ /** False when the runtime cannot render a prop change (the change still reaches the prompt); absent means live. */
51
+ livePreview?: boolean;
63
52
  }
64
53
  /** A component invocation whose entire rendered output is one DOM element. */
65
54
  export interface ComponentRootInvocation {
@@ -92,16 +81,8 @@ export interface ComponentRuntimeAdapter {
92
81
  framework: ComponentFramework;
93
82
  inspect(element: HTMLElement): RuntimeComponentTarget[];
94
83
  replaceOverrides(overrides: ComponentOverride[]): void;
95
- /**
96
- * Return the number of currently mounted invocations for a callsite. A
97
- * runtime that cannot prove this must return null/undefined so callers can
98
- * fail closed instead of broadening a semantic override.
99
- */
84
+ /** A runtime that cannot prove the count must return null so callers fail closed. */
100
85
  getCallsiteMultiplicity?(callsiteId: string): number | null | undefined;
101
- /**
102
- * Return, nearest first, the invocations whose entire rendered output is
103
- * this element. A runtime that cannot read the element's ancestry must
104
- * return null so structural identity fails closed.
105
- */
86
+ /** Nearest first; null when the runtime cannot read the element's ancestry, so structural identity fails closed. */
106
87
  rootInvocations?(element: HTMLElement): ComponentRootInvocation[] | null;
107
88
  }
@@ -1,5 +1,4 @@
1
1
  export const COMPONENT_FRAMEWORKS = ["react"];
2
- /** Returns whether a host value names a supported component framework. */
3
2
  export function isComponentFramework(value) {
4
3
  return COMPONENT_FRAMEWORKS.some((framework) => framework === value);
5
4
  }
@@ -1,7 +1,2 @@
1
1
  import type { ConformanceFixture } from "./fixture.js";
2
- /**
3
- * Framework-neutral border corpus. Covers shorthand decomposition into width,
4
- * style, and color longhands (including omitted CSS initials), side-specific
5
- * shorthands, token attribution, border-radius, and true raw fallbacks.
6
- */
7
2
  export declare const BORDER_CASES: ConformanceFixture[];
@@ -21,11 +21,6 @@ function structuredProps(authored, structure, properties) {
21
21
  },
22
22
  ]));
23
23
  }
24
- /**
25
- * Framework-neutral border corpus. Covers shorthand decomposition into width,
26
- * style, and color longhands (including omitted CSS initials), side-specific
27
- * shorthands, token attribution, border-radius, and true raw fallbacks.
28
- */
29
24
  export const BORDER_CASES = [
30
25
  {
31
26
  id: "border-shorthand-literal",
@@ -1,8 +1,2 @@
1
1
  import type { ConformanceFixture } from "./fixture.js";
2
- /**
3
- * Framework-neutral color corpus covering `color` and `background-color`.
4
- * Each fixture asserts authored CSS values and capability against the
5
- * inspector's resolution pipeline. The gallery lets a human exercise the
6
- * same cases through the real inspector UI.
7
- */
8
2
  export declare const COLOR_CASES: ConformanceFixture[];
@@ -14,12 +14,6 @@ const COLOR_ACCENT = token("--color-accent", "oklch(63% .2 25)", "fixtures/color
14
14
  const COLOR_PRIMARY = token("--color-primary", "#2563eb", "fixtures/color.css:7");
15
15
  const COLOR_DANGER = token("--color-danger", "#dc2626", "fixtures/color.css:8");
16
16
  const OPACITY_MUTED = token("--opacity-muted", "0.35", "fixtures/color.css:9");
17
- /**
18
- * Framework-neutral color corpus covering `color` and `background-color`.
19
- * Each fixture asserts authored CSS values and capability against the
20
- * inspector's resolution pipeline. The gallery lets a human exercise the
21
- * same cases through the real inspector UI.
22
- */
23
17
  export const COLOR_CASES = [
24
18
  {
25
19
  id: "color-named-keywords",
@@ -59,10 +59,6 @@ export interface ConformanceResult {
59
59
  preview: PreviewResult | null;
60
60
  cleanup(): void;
61
61
  }
62
- /**
63
- * Mounts one data-led fixture and runs it through the same CSSOM resolver used
64
- * by the inspector. The caller owns assertions; this module only owns setup,
65
- * teardown, and the public inspection result.
66
- */
62
+ /** Runs a fixture through the same CSSOM resolver the inspector uses; the caller owns assertions. */
67
63
  export declare function runConformanceFixture(fixture: ConformanceFixture, doc?: Document): ConformanceResult;
68
64
  export declare function assertConformanceFixture(result: ConformanceResult, fixture: ConformanceFixture): string[];
@@ -1,11 +1,7 @@
1
1
  import { applyRules, verifyPreview } from "../projection/managedStylesheet.js";
2
2
  import { projectInspectorValues } from "../spacing/projection.js";
3
3
  import { createBrowserCssInspection } from "../inspection/browserCssInspection.js";
4
- /**
5
- * Mounts one data-led fixture and runs it through the same CSSOM resolver used
6
- * by the inspector. The caller owns assertions; this module only owns setup,
7
- * teardown, and the public inspection result.
8
- */
4
+ /** Runs a fixture through the same CSSOM resolver the inspector uses; the caller owns assertions. */
9
5
  export function runConformanceFixture(fixture, doc = document) {
10
6
  const style = doc.createElement("style");
11
7
  style.dataset.conformanceFixture = fixture.id;
@@ -1,6 +1,2 @@
1
1
  import type { ConformanceFixture } from "./fixture.js";
2
- /**
3
- * Shared spacing corpus. Unit tests run every case through the fixture runner;
4
- * browser tests select representative cases where real CSSOM behaviour matters.
5
- */
6
2
  export declare const SPACING_CASES: ConformanceFixture[];
@@ -10,10 +10,6 @@ const SPACE_ALIAS = token("--space-alias", "var(--space-4)", "fixtures/spacing.c
10
10
  function boxProperties(values, capability = "box-sides") {
11
11
  return Object.fromEntries(Object.entries(values).map(([property, authored]) => [property, { authored, capability }]));
12
12
  }
13
- /**
14
- * Shared spacing corpus. Unit tests run every case through the fixture runner;
15
- * browser tests select representative cases where real CSSOM behaviour matters.
16
- */
17
13
  export const SPACING_CASES = [
18
14
  {
19
15
  id: "spacing-physical-four-value",