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,9 +1,10 @@
1
- import { getActiveDraftChanges, getDraftChanges } from "../changes/draftChanges.js";
1
+ import { getActiveDraftChanges, getDraftChanges } from "../drafts/store.js";
2
2
  import { inspectRootInvocations } from "../componentSemantics/adapterRegistry.js";
3
3
  import { escapeAttrValue } from "./cssEscapes.js";
4
4
  import { isNudgeUiDev } from "../runtime/devFlag.js";
5
5
  import { relocateSourceSite, sourceSiteSelector } from "../selection/sourceSite.js";
6
6
  import { isRenderedInstanceOverride } from "../changes/editModel.js";
7
+ import { boundRuntimeEvidence, isRuntimeGeneratedSource, normalizeRuntimeTag, runtimeDomPath } from "../runtime/staticHtmlRuntimeIdentity.js";
7
8
  export { isRenderedInstanceOverride, isRenderedInstanceRef } from "../changes/editModel.js";
8
9
  const PROJECTION_ATTR = "data-projection-instance";
9
10
  let nextOverrideId = 1;
@@ -28,7 +29,6 @@ function candidates(doc, sourceSite) {
28
29
  return [];
29
30
  }
30
31
  }
31
- /** Captures conservative, serializable identity at the moment of the action. */
32
32
  export function captureRenderedInstance(el) {
33
33
  const cid = el.getAttribute("data-cid") ?? "";
34
34
  const src = el.getAttribute("data-src") ?? "";
@@ -45,19 +45,18 @@ export function captureRenderedInstance(el) {
45
45
  props: el.getAttribute("data-cprops"),
46
46
  text: normalizedText(el),
47
47
  ariaLabel: el.getAttribute("aria-label"),
48
+ ...(isRuntimeGeneratedSource(src) ? {
49
+ tagName: normalizeRuntimeTag(el.tagName),
50
+ domPath: runtimeDomPath(el),
51
+ elementId: boundRuntimeEvidence(el.id || null),
52
+ } : {}),
48
53
  },
49
54
  };
50
55
  }
51
- /**
52
- * Resolves exactly one element, or declines to apply. Occurrence documents the
53
- * captured placement, but structural previews can legitimately change it.
54
- * Evidence, narrowed by a recorded invocation when present, must therefore
55
- * identify one current candidate before an edit can be applied.
56
- */
56
+ /** Occurrence documents captured placement, but structural previews can change it; evidence must identify exactly one current candidate. */
57
57
  export function resolveRenderedInstance(doc, ref) {
58
58
  const sourceCandidates = candidates(doc, ref.sourceSite);
59
59
  const { props, text, ariaLabel = null, invocation } = ref.locator;
60
- // An ordinal alone is not an identity for a repeated source site.
61
60
  if (!invocation && sourceCandidates.length > 1 && props === null && text === null && ariaLabel === null) {
62
61
  return { status: "ambiguous" };
63
62
  }
@@ -78,18 +77,12 @@ export function resolveRenderedInstance(doc, ref) {
78
77
  }
79
78
  if (matchingEvidence.length === 0)
80
79
  return { status: "missing" };
81
- // Evidence alone is never enough to choose between two identical rendered
82
- // outputs. This is particularly important for structural anchors: applying
83
- // one move to an arbitrary identical parent would reorder the wrong group.
80
+ // Evidence alone never chooses between identical outputs; an arbitrary pick would reorder the wrong group.
84
81
  if (matchingEvidence.length > 1)
85
82
  return { status: "ambiguous" };
86
83
  return { status: "resolved", element: matchingEvidence[0] };
87
84
  }
88
- /**
89
- * Resolves a reference whose source position may have moved since capture.
90
- * A relocated site still renders matching authored evidence, so an evidence
91
- * miss there is reported as ambiguous rather than as proof of absence.
92
- */
85
+ /** A relocated site still renders matching evidence, so an evidence miss is reported as ambiguous, not missing. */
93
86
  export function resolveMovedRenderedInstance(doc, ref) {
94
87
  const exact = resolveRenderedInstance(doc, ref);
95
88
  if (exact.status !== "missing")
@@ -101,12 +94,7 @@ export function resolveMovedRenderedInstance(doc, ref) {
101
94
  const moved = resolveRenderedInstance(doc, { ...ref, sourceSite });
102
95
  return moved.status === "missing" ? { status: "ambiguous" } : moved;
103
96
  }
104
- /**
105
- * Captures identity for a structural target. When evidence matches several
106
- * identical outputs, the nearest component invocation whose entire output is
107
- * this element can still identify it. Otherwise the evidence-only reference
108
- * is returned and resolves as ambiguous.
109
- */
97
+ /** Falls back to the nearest component invocation when evidence matches several identical outputs. */
110
98
  export function captureStructuralTarget(el) {
111
99
  const ref = captureRenderedInstance(el);
112
100
  if (!ref || resolveRenderedInstance(el.ownerDocument, ref).status !== "ambiguous")
@@ -119,7 +107,7 @@ export function captureStructuralTarget(el) {
119
107
  }
120
108
  return ref;
121
109
  }
122
- /** Checks stable source/evidence fields without treating a post-move ordinal as identity. */
110
+ /** Ignores the ordinal, which is not identity after a move. */
123
111
  export function matchesRenderedInstanceEvidence(el, ref) {
124
112
  const { props, text, ariaLabel = null } = ref.locator;
125
113
  return (el.getAttribute("data-cid") ?? "") === ref.sourceSite.cid
@@ -128,14 +116,12 @@ export function matchesRenderedInstanceEvidence(el, ref) {
128
116
  && normalizedText(el) === text
129
117
  && el.getAttribute("aria-label") === ariaLabel;
130
118
  }
131
- /** Builds an instance override without changing the element's transient edit scope. */
132
119
  export function buildRenderedInstanceOverride(el) {
133
120
  const target = captureRenderedInstance(el);
134
121
  if (!target)
135
122
  return null;
136
123
  return buildRenderedInstanceOverrideForTarget(target);
137
124
  }
138
- /** Creates a serializable override for identity that was already validated. */
139
125
  export function buildRenderedInstanceOverrideForTarget(target) {
140
126
  return {
141
127
  id: `override-${crypto.randomUUID?.() ?? nextOverrideId++}`,
@@ -149,7 +135,6 @@ export function createRenderedInstanceOverride(el) {
149
135
  transientTargets.set(el, override);
150
136
  return override;
151
137
  }
152
- /** Returns an active transient target or the canonical target projected here. */
153
138
  export function getRenderedInstanceOverride(el) {
154
139
  const transient = transientTargets.get(el);
155
140
  if (transient)
@@ -166,7 +151,6 @@ export function instanceSelector(override) {
166
151
  const source = sourceSiteSelector(override.target.sourceSite.cid, override.target.sourceSite.src);
167
152
  return source ? `${source}[${PROJECTION_ATTR}="${escapeAttrValue(override.id)}"]` : null;
168
153
  }
169
- /** Extracts the distinct canonical targets which renderers must resolve. */
170
154
  export function collectRenderedInstanceOverrides(changes) {
171
155
  const result = new Map();
172
156
  for (const change of changes) {
@@ -253,10 +237,7 @@ function getDocumentState(doc) {
253
237
  documentStates.set(doc, state);
254
238
  return state;
255
239
  }
256
- /**
257
- * The document-projection adapter only applies a new canonical snapshot. A
258
- * later reconciliation changes diagnostics but never starts a reapply loop.
259
- */
240
+ /** A later reconciliation changes diagnostics but never starts a reapply loop. */
260
241
  export function applyRenderedInstanceProjection(doc, overrides) {
261
242
  if (!isNudgeUiDev())
262
243
  return [];
@@ -294,7 +275,6 @@ export function setCanonicalRenderedInstanceOverrides(overrides) {
294
275
  export function getRenderedInstanceProjectionReports(doc) {
295
276
  return reportsByDocument.get(doc) ?? [];
296
277
  }
297
- /** Diagnostics arrive independently when a renderer reports or React reconciles. */
298
278
  export function subscribeRenderedInstanceDiagnostics(listener) {
299
279
  diagnosticListeners.add(listener);
300
280
  return () => diagnosticListeners.delete(listener);
@@ -1,13 +1,8 @@
1
1
  import type { FrameProjection } from "../canvas/projection.js";
2
2
  import type { StructuralChange, StructuralDelete, StructuralMove, StructuralProjectionReason, StructuralProjectionReport } from "../changes/structuralTypes.js";
3
3
  export { isStructuralChange, isStructuralDelete, isStructuralMove, isStructuralProjectionReport, } from "./structuralProjectionBoundary.js";
4
- /**
5
- * Controller-owned structural intent. It contains no DOM node, placeholder,
6
- * position, or renderer-local identity. Each document resolves a snapshot for
7
- * itself and keeps any physical preview artefacts private to that document.
8
- */
4
+ /** Canonical intent carries no DOM node, placeholder, or renderer-local identity; each document keeps its own preview artefacts. */
9
5
  export type { StructuralChange, StructuralDelete, StructuralMove, StructuralProjectionReason, StructuralProjectionReport, StructuralProjectionStatus, } from "../changes/structuralTypes.js";
10
- /** Conservative HTML containment policy shared by gesture and projection code. */
11
6
  export declare function canContainElement(parent: HTMLElement, child: HTMLElement): boolean;
12
7
  export type StructuralMoveLegality = {
13
8
  valid: true;
@@ -18,11 +13,7 @@ export type StructuralMoveLegality = {
18
13
  valid: false;
19
14
  reason: StructuralProjectionReason;
20
15
  };
21
- /**
22
- * Applies the one conservative move policy used by guide calculation, commit,
23
- * and resolved document projection. The returned elements are document-local
24
- * and must never be stored in canonical structural intent.
25
- */
16
+ /** Returned elements are document-local and must never be stored in canonical intent. */
26
17
  export declare function getStructuralMoveLegality(element: HTMLElement, destination: {
27
18
  parent: HTMLElement;
28
19
  before: Node | null;
@@ -32,65 +23,33 @@ export interface StructuralChangeDiagnostic extends StructuralProjectionReport {
32
23
  }
33
24
  /** Returns bounded view state used to verify a delete in the same rendered view. */
34
25
  export declare function documentStateKey(doc: Document, excluded?: HTMLElement): string | undefined;
35
- /** Captures a delete intent once, in the controller, at the user gesture. */
36
26
  export declare function createStructuralDelete(element: HTMLElement, id?: string): StructuralDelete | null;
37
- /**
38
- * Capture a move only when every address can be represented by durable
39
- * rendered-instance references. Local DOM positions are deliberately never a
40
- * fallback: a missed preview is safer than moving the wrong item.
41
- */
27
+ /** Local DOM positions are never a fallback: a missed preview beats moving the wrong item. */
42
28
  export declare function createStructuralMove(element: HTMLElement, destination: {
43
29
  parent: HTMLElement;
44
30
  before: Node | null;
45
31
  }, id?: string): StructuralMove | null;
46
32
  export declare function getStructuralChanges(): readonly StructuralChange[];
47
33
  export declare function getStructuralDeletes(): readonly StructuralDelete[];
48
- /** Revert removes one canonical intent and leaves every other intent intact. */
49
34
  export declare function revertStructuralChange(changeId: string): boolean;
50
- /**
51
- * Removes source-verified structural intents without leaving an undo path that
52
- * can recreate their browser-only previews.
53
- *
54
- * Agent completion can verify a subset of one dispatched snapshot. The
55
- * remaining records and their useful history stay intact while every verified
56
- * ID is pruned from canonical state, undo/redo snapshots, and Canvas reports.
57
- */
58
- export declare function reconcileVerifiedStructuralChanges(verifiedIds: ReadonlySet<string>): number;
59
35
  /** State changes drive controller-to-renderer projection. Diagnostics do not. */
60
36
  export declare function subscribeStructuralChanges(listener: () => void): () => void;
61
37
  /** Compatibility name retained while the controller moved to a full union. */
62
38
  export declare const subscribeStructuralDeletes: typeof subscribeStructuralChanges;
63
- /** Diagnostics change after host/frame resolution or a one-shot conflict check. */
64
39
  export declare function subscribeStructuralDiagnostics(listener: () => void): () => void;
65
- /** Monotonic snapshot for React consumers of document-local diagnostics. */
66
40
  export declare function getStructuralDiagnosticRevision(): number;
67
- /**
68
- * Apply one full controller snapshot to one document. Physical nodes and
69
- * placeholders stay in the document state only; history stays serializable in
70
- * the controller. A same snapshot never reapplies an overridden preview.
71
- */
41
+ /** Physical nodes stay document-local; an unchanged snapshot never reapplies an overridden preview. */
72
42
  export declare function applyStructuralProjection(doc: Document, snapshot: readonly StructuralChange[]): StructuralProjectionReport[];
73
- /** Compatibility entry point for the delete-only 0050 callers. */
43
+ /** Compatibility entry point for delete-only callers. */
74
44
  export declare function applyStructuralDeleteProjection(doc: Document, snapshot: readonly StructuralDelete[]): StructuralProjectionReport[];
75
45
  export declare function getStructuralProjectionReports(doc: Document): readonly StructuralProjectionReport[];
76
- /**
77
- * Frames may report only their document-local outcome. The controller owns
78
- * these reports and filters them against its current canonical change set.
79
- */
46
+ /** Frames report document-local outcomes; the controller filters them against its canonical change set. */
80
47
  export declare function recordCanvasStructuralProjectionReports(cardId: string, revision: number, reports: readonly StructuralProjectionReport[], projection?: FrameProjection): void;
81
48
  export declare function clearCanvasStructuralProjectionReports(cardId: string): void;
82
- /** Removes document-local reports for canonical intents that no longer exist. */
83
49
  export declare function pruneStructuralProjectionReports(changeIds: ReadonlySet<string>): void;
84
- /** Clears reports before restoring or clearing an atomic workspace snapshot. */
85
50
  export declare function clearStructuralProjectionReports(): void;
86
51
  export declare function getStructuralChangeDiagnostics(changeId: string): StructuralChangeDiagnostic[];
87
52
  /** Controller teardown/test hook. It is not a user-visible history operation. */
88
53
  export declare function resetStructuralDeleteProjection(): void;
89
- /**
90
- * Releases one document's structural projection without touching canonical
91
- * workspace intent. Applied deletes/moves owned by this document are restored
92
- * and the document observer is disconnected; the controller snapshot stays
93
- * intact so a later remount can re-project from canonical state. Register as
94
- * a document-session cleanup alongside disposeBrowserCssInspection.
95
- */
54
+ /** Restores this document's previews and disconnects its observer; canonical intent stays intact for a later remount. */
96
55
  export declare function releaseDocumentProjection(doc: Document): void;
@@ -1,7 +1,6 @@
1
- import { getActiveDraftChanges, getDraftChanges } from "../changes/draftChanges.js";
1
+ import { commitStructuralChange, getActiveDraftChanges, getDraftChanges, revertStructuralChange as revertDraftStructuralChange, subscribeActiveDraftChanges, } from "../drafts/store.js";
2
2
  import { captureRenderedInstance, captureStructuralTarget, matchesRenderedInstanceEvidence, resolveRenderedInstance, } from "./renderedInstance.js";
3
3
  import { isStructuralProjectionReport } from "./structuralProjectionBoundary.js";
4
- import { resetDraftChanges, draftChangeStore, } from "../changes/draftChanges.js";
5
4
  export { isStructuralChange, isStructuralDelete, isStructuralMove, isStructuralProjectionReport, } from "./structuralProjectionBoundary.js";
6
5
  const VOID_PARENT_TAGS = new Set([
7
6
  "area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param", "source", "track", "wbr",
@@ -24,7 +23,6 @@ function isUnsupportedWrappedFlexRow(element) {
24
23
  && (style.flexDirection || "row").startsWith("row")
25
24
  && Boolean(style.flexWrap && style.flexWrap !== "nowrap");
26
25
  }
27
- /** Conservative HTML containment policy shared by gesture and projection code. */
28
26
  export function canContainElement(parent, child) {
29
27
  const parentTag = parent.tagName.toLowerCase();
30
28
  if (VOID_PARENT_TAGS.has(parentTag)
@@ -34,11 +32,7 @@ export function canContainElement(parent, child) {
34
32
  return false;
35
33
  return !PHRASING_PARENT_TAGS.has(parentTag) || isPhrasingElement(child);
36
34
  }
37
- /**
38
- * Applies the one conservative move policy used by guide calculation, commit,
39
- * and resolved document projection. The returned elements are document-local
40
- * and must never be stored in canonical structural intent.
41
- */
35
+ /** Returned elements are document-local and must never be stored in canonical intent. */
42
36
  export function getStructuralMoveLegality(element, destination) {
43
37
  if (!element.isConnected)
44
38
  return { valid: false, reason: "target" };
@@ -109,8 +103,10 @@ function documentRoute(doc) {
109
103
  }
110
104
  }
111
105
  function stableStateValue(value, seen = new WeakSet()) {
112
- if (!value || typeof value !== "object")
106
+ if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean")
113
107
  return value;
108
+ if (typeof value !== "object")
109
+ return String(value);
114
110
  if (seen.has(value))
115
111
  return "[Circular]";
116
112
  seen.add(value);
@@ -173,14 +169,15 @@ export function documentStateKey(doc, excluded) {
173
169
  }
174
170
  }
175
171
  function cloneSnapshot(snapshot) {
176
- // Structural changes are small JSON-safe records. Cloning their top-level
177
- // array is enough: no operation mutates a change or its nested references.
172
+ // Shallow clone is enough: no operation mutates a change or its nested references.
178
173
  return [...snapshot];
179
174
  }
180
- function projectStructuralChanges(snapshot) {
181
- reprojectKnownDocuments(snapshot.structuralChanges);
175
+ /** The Draft store already re-projected the host; this covers every other known document. */
176
+ function projectStructuralChanges() {
177
+ const changes = getStructuralChanges();
178
+ for (const doc of documentStates.keys())
179
+ applyStructuralProjection(doc, changes);
182
180
  }
183
- /** Captures a delete intent once, in the controller, at the user gesture. */
184
181
  export function createStructuralDelete(element, id = structuralId()) {
185
182
  const target = captureStructuralTarget(element);
186
183
  if (!target)
@@ -194,16 +191,12 @@ export function createStructuralDelete(element, id = structuralId()) {
194
191
  ...(route ? { route } : {}),
195
192
  ...(state ? { state } : {}),
196
193
  };
197
- if (!draftChangeStore.commitStructuralChange(change))
194
+ if (!commitStructuralChange(change))
198
195
  return null;
199
- projectStructuralChanges(draftChangeStore.getSnapshot());
196
+ projectStructuralChanges();
200
197
  return change;
201
198
  }
202
- /**
203
- * Capture a move only when every address can be represented by durable
204
- * rendered-instance references. Local DOM positions are deliberately never a
205
- * fallback: a missed preview is safer than moving the wrong item.
206
- */
199
+ /** Local DOM positions are never a fallback: a missed preview beats moving the wrong item. */
207
200
  export function createStructuralMove(element, destination, id = structuralId()) {
208
201
  const legality = getStructuralMoveLegality(element, destination);
209
202
  if (!legality.valid)
@@ -237,60 +230,33 @@ export function createStructuralMove(element, destination, id = structuralId())
237
230
  : destinationChildren.length - (sameParent ? 1 : 0),
238
231
  },
239
232
  };
240
- if (!draftChangeStore.commitStructuralChange(change))
233
+ if (!commitStructuralChange(change))
241
234
  return null;
242
- projectStructuralChanges(draftChangeStore.getSnapshot());
235
+ projectStructuralChanges();
243
236
  return change;
244
237
  }
245
238
  export function getStructuralChanges() {
246
- return draftChangeStore.getSnapshot().structuralChanges;
239
+ return getActiveDraftChanges().structuralChanges;
247
240
  }
248
241
  export function getStructuralDeletes() {
249
242
  return getStructuralChanges().filter((change) => change.kind === "delete");
250
243
  }
251
- /** Revert removes one canonical intent and leaves every other intent intact. */
252
244
  export function revertStructuralChange(changeId) {
253
- const changed = draftChangeStore.revertStructuralChangeRecord(changeId);
245
+ const changed = revertDraftStructuralChange(changeId);
254
246
  if (changed)
255
- projectStructuralChanges(draftChangeStore.getSnapshot());
247
+ projectStructuralChanges();
256
248
  return changed;
257
249
  }
258
- /**
259
- * Removes source-verified structural intents without leaving an undo path that
260
- * can recreate their browser-only previews.
261
- *
262
- * Agent completion can verify a subset of one dispatched snapshot. The
263
- * remaining records and their useful history stay intact while every verified
264
- * ID is pruned from canonical state, undo/redo snapshots, and Canvas reports.
265
- */
266
- export function reconcileVerifiedStructuralChanges(verifiedIds) {
267
- if (verifiedIds.size === 0)
268
- return 0;
269
- const removed = draftChangeStore.reconcileActiveDraftChanges(new Set(), verifiedIds);
270
- if (removed === 0)
271
- return 0;
272
- projectStructuralChanges(draftChangeStore.getSnapshot());
273
- for (const [cardId, canvasReports] of reportsByCanvasCard) {
274
- reportsByCanvasCard.set(cardId, {
275
- ...canvasReports,
276
- reports: canvasReports.reports.filter((report) => !verifiedIds.has(report.changeId)),
277
- });
278
- }
279
- notifyDiagnostics();
280
- return removed;
281
- }
282
250
  /** State changes drive controller-to-renderer projection. Diagnostics do not. */
283
251
  export function subscribeStructuralChanges(listener) {
284
- return draftChangeStore.subscribe(listener);
252
+ return subscribeActiveDraftChanges(listener);
285
253
  }
286
254
  /** Compatibility name retained while the controller moved to a full union. */
287
255
  export const subscribeStructuralDeletes = subscribeStructuralChanges;
288
- /** Diagnostics change after host/frame resolution or a one-shot conflict check. */
289
256
  export function subscribeStructuralDiagnostics(listener) {
290
257
  diagnosticListeners.add(listener);
291
258
  return () => diagnosticListeners.delete(listener);
292
259
  }
293
- /** Monotonic snapshot for React consumers of document-local diagnostics. */
294
260
  export function getStructuralDiagnosticRevision() {
295
261
  return diagnosticRevision;
296
262
  }
@@ -311,6 +277,7 @@ function getDocumentState(doc) {
311
277
  return state;
312
278
  }
313
279
  function installDocumentObserver(doc, state) {
280
+ // SAFETY: attaches are read from the document's own realm so cross-origin frames use their own MutationObserver.
314
281
  const viewWithObserver = doc.defaultView;
315
282
  const Observer = viewWithObserver?.MutationObserver
316
283
  ?? (typeof MutationObserver !== "undefined" ? MutationObserver : undefined);
@@ -338,14 +305,10 @@ function scheduleValidation(doc, state) {
338
305
  state.validationQueued = true;
339
306
  queueMicrotask(() => {
340
307
  state.validationQueued = false;
341
- // A renderer can receive its projection before its application tree has
342
- // mounted. Retry unresolved records after that tree changes so a valid
343
- // late mount converges without requiring another controller message.
308
+ // Retry unresolved records when the tree changes so a late-mounting renderer converges without another controller message.
344
309
  if (hasUnresolvedAppliedChange(state)) {
345
310
  rebuildForSnapshot(doc, state, state.snapshot, false);
346
- // The replay is synchronous, so external renderer mutations cannot
347
- // interleave with it. Discard only the records produced by the replay;
348
- // future renderer mutations remain observed and can trigger another try.
311
+ // The replay is synchronous, so discarding its records only drops the replay's own mutations.
349
312
  state.observer?.takeRecords();
350
313
  storeReports(doc, reportsForSnapshot(state, state.snapshot));
351
314
  return;
@@ -379,8 +342,7 @@ function restoreApplied(local) {
379
342
  if (local.kind === "unresolved")
380
343
  return;
381
344
  if (local.kind === "delete") {
382
- // If React already replaced our placeholder, never reinsert the stale
383
- // detached node. The observer will (or already did) report overridden.
345
+ // Never reinsert a stale detached node when React already replaced our placeholder.
384
346
  if (local.placeholder.isConnected)
385
347
  local.placeholder.replaceWith(local.element);
386
348
  return;
@@ -391,8 +353,7 @@ function restoreApplied(local) {
391
353
  local.fromParent.insertBefore(local.element, anchor);
392
354
  }
393
355
  function rebuildForSnapshot(doc, state, snapshot, schedulePostReplayValidation = true) {
394
- // React may have changed a projected node before its mutation callback ran.
395
- // Validate synchronously so a rebuild never restores a framework-owned node.
356
+ // React may have changed a projected node before its mutation callback ran; validate before rebuilding.
396
357
  validateAppliedPreview(doc, state);
397
358
  const activeIds = new Set(snapshot.map((change) => change.id));
398
359
  const retainedOverrides = new Map();
@@ -400,9 +361,7 @@ function rebuildForSnapshot(doc, state, snapshot, schedulePostReplayValidation =
400
361
  if (local.status === "overridden" && activeIds.has(id))
401
362
  retainedOverrides.set(id, local);
402
363
  }
403
- // Undo in reverse application order, reconstructing this document's source
404
- // baseline before replaying the desired canonical sequence. This is what
405
- // makes reverting an earlier move correct when later moves remain.
364
+ // Undo in reverse order to reconstruct the source baseline; this is what makes reverting an earlier move correct when later moves remain.
406
365
  for (const id of [...state.appliedOrder].reverse()) {
407
366
  const local = state.applied.get(id);
408
367
  if (local && local.status !== "overridden")
@@ -418,8 +377,7 @@ function rebuildForSnapshot(doc, state, snapshot, schedulePostReplayValidation =
418
377
  continue;
419
378
  applyChangeToDocument(doc, state, change);
420
379
  }
421
- // Moves need to verify the final placement, after all later canonical
422
- // operations have replayed, rather than the transient first insertion.
380
+ // Verify the final placement after all later canonical operations replayed, not the transient first insertion.
423
381
  for (const local of state.applied.values()) {
424
382
  if (local.kind === "move" && local.status === "applied") {
425
383
  local.expectedParent = local.element.parentElement ?? local.expectedParent;
@@ -503,13 +461,6 @@ function validationStatus(local) {
503
461
  ? "applied"
504
462
  : "overridden";
505
463
  }
506
- /** Rebuild already-mounted document adapters from canonical data only. */
507
- function reprojectKnownDocuments(changes = getStructuralChanges()) {
508
- for (const [doc, state] of documentStates) {
509
- rebuildForSnapshot(doc, state, changes);
510
- storeReports(doc, reportsForSnapshot(state, state.snapshot));
511
- }
512
- }
513
464
  function validateAppliedPreview(doc, state) {
514
465
  let changed = false;
515
466
  for (const local of state.applied.values()) {
@@ -525,11 +476,7 @@ function validateAppliedPreview(doc, state) {
525
476
  return;
526
477
  storeReports(doc, reportsForSnapshot(state, state.snapshot));
527
478
  }
528
- /**
529
- * Apply one full controller snapshot to one document. Physical nodes and
530
- * placeholders stay in the document state only; history stays serializable in
531
- * the controller. A same snapshot never reapplies an overridden preview.
532
- */
479
+ /** Physical nodes stay document-local; an unchanged snapshot never reapplies an overridden preview. */
533
480
  export function applyStructuralProjection(doc, snapshot) {
534
481
  const state = getDocumentState(doc);
535
482
  const key = JSON.stringify(snapshot);
@@ -539,17 +486,14 @@ export function applyStructuralProjection(doc, snapshot) {
539
486
  storeReports(doc, reports);
540
487
  return reports;
541
488
  }
542
- /** Compatibility entry point for the delete-only 0050 callers. */
489
+ /** Compatibility entry point for delete-only callers. */
543
490
  export function applyStructuralDeleteProjection(doc, snapshot) {
544
491
  return applyStructuralProjection(doc, snapshot);
545
492
  }
546
493
  export function getStructuralProjectionReports(doc) {
547
494
  return reportsByDocument.get(doc) ?? [];
548
495
  }
549
- /**
550
- * Frames may report only their document-local outcome. The controller owns
551
- * these reports and filters them against its current canonical change set.
552
- */
496
+ /** Frames report document-local outcomes; the controller filters them against its canonical change set. */
553
497
  export function recordCanvasStructuralProjectionReports(cardId, revision, reports, projection) {
554
498
  if (!Number.isSafeInteger(revision) || revision < 0 || !reports.every(isStructuralProjectionReport))
555
499
  return;
@@ -572,7 +516,6 @@ export function clearCanvasStructuralProjectionReports(cardId) {
572
516
  return;
573
517
  notifyDiagnostics();
574
518
  }
575
- /** Removes document-local reports for canonical intents that no longer exist. */
576
519
  export function pruneStructuralProjectionReports(changeIds) {
577
520
  if (changeIds.size === 0)
578
521
  return;
@@ -584,7 +527,6 @@ export function pruneStructuralProjectionReports(changeIds) {
584
527
  }
585
528
  notifyDiagnostics();
586
529
  }
587
- /** Clears reports before restoring or clearing an atomic workspace snapshot. */
588
530
  export function clearStructuralProjectionReports() {
589
531
  reportsByCanvasCard.clear();
590
532
  reportsByDocument = new WeakMap();
@@ -619,16 +561,9 @@ export function resetStructuralDeleteProjection() {
619
561
  reportsByCanvasCard.clear();
620
562
  nextStructuralId = 1;
621
563
  diagnosticRevision = 0;
622
- resetDraftChanges();
623
564
  notifyDiagnostics();
624
565
  }
625
- /**
626
- * Releases one document's structural projection without touching canonical
627
- * workspace intent. Applied deletes/moves owned by this document are restored
628
- * and the document observer is disconnected; the controller snapshot stays
629
- * intact so a later remount can re-project from canonical state. Register as
630
- * a document-session cleanup alongside disposeBrowserCssInspection.
631
- */
566
+ /** Restores this document's previews and disconnects its observer; canonical intent stays intact for a later remount. */
632
567
  export function releaseDocumentProjection(doc) {
633
568
  const state = documentStates.get(doc);
634
569
  if (!state) {
@@ -1,8 +1,8 @@
1
1
  import type { FrameProjection } from "../canvas/projection.js";
2
- import { isTextProjectionTargetValue, type TextContentChangeRecord, type TextProjectionTarget, type TextProjectionScope, type TextBindingEvidence } from "../inline-text/textChangeBoundary.js";
2
+ import { isTextProjectionTargetValue, type TextContentChangeRecord, type TextProjectionTarget, type TextProjectionScope, type TextBindingEvidence } from "../changes/editModel.js";
3
3
  /** Strict JSON boundary guard for a text projection target. */
4
4
  export declare const isTextProjectionTarget: typeof isTextProjectionTargetValue;
5
- export type { TextProjectionTarget } from "../inline-text/textChangeBoundary.js";
5
+ export type { TextProjectionTarget } from "../changes/editModel.js";
6
6
  export type TextProjectionStatus = "applied" | "missing" | "ambiguous" | "overridden";
7
7
  export interface TextProjectionReport {
8
8
  changeId: string;
@@ -17,7 +17,6 @@ export interface TextContentProjectionDiagnostic extends TextProjectionReport {
17
17
  export declare const TEXT_PROJECTION_ATTR = "data-projection-text";
18
18
  /** Inspector-owned hit target for a projected text node whose value is empty. */
19
19
  export declare const EMPTY_TEXT_PROJECTION_ATTR = "data-empty-text";
20
- /** Inspector-owned exact-node evidence paired with EMPTY_TEXT_PROJECTION_ATTR. */
21
20
  export declare const EMPTY_TEXT_PROJECTION_PATH_ATTR = "data-empty-text-path";
22
21
  export type TextProjectionResolution = {
23
22
  status: "resolved";
@@ -27,22 +26,17 @@ export type TextProjectionResolution = {
27
26
  } | {
28
27
  status: "ambiguous";
29
28
  };
30
- /** Find the exact text node represented by a target, tolerating a changed
31
- * child path only when one bounded before/after text node remains unique. */
29
+ /** Tolerates a changed child path only when one before/after text node remains unique. */
32
30
  export declare function resolveTextProjectionTextNode(element: HTMLElement, target: Pick<TextProjectionTarget, "textNodePath"> & Partial<Pick<TextProjectionTarget, "beforeText">>, expectedText?: string | undefined): Text | null;
33
- /** Capture stable source/evidence identity without retaining a DOM reference. */
31
+ export declare function isUnsafeTextHost(element: Element): boolean;
32
+ export declare function isInApplicationEditingHost(element: Element): boolean;
33
+ export declare function hasSafeMixedDescendants(element: HTMLElement): boolean;
34
34
  export declare function captureTextProjectionTarget(element: HTMLElement, beforeText?: string, selectedTextNode?: Text): TextProjectionTarget | null;
35
- /**
36
- * Resolve against source identity and bounded evidence. Occurrence is kept as
37
- * presentation metadata only and is never used to choose among identical
38
- * repeated outputs.
39
- */
35
+ /** Occurrence is presentation metadata only; identical repeated outputs resolve as ambiguous. */
40
36
  export declare function resolveTextProjectionTarget(doc: Document, target: TextProjectionTarget, afterText?: string): TextProjectionResolution;
41
37
  export declare function textProjectionSelector(target: TextProjectionTarget): string | null;
42
38
  export declare function collectTextContentChanges(changes: ReadonlyArray<unknown>): TextContentChangeRecord[];
43
- /** Returns the canonical record represented by an inspector empty-text slot. */
44
39
  export declare function getTextContentChangeById(changeId: string): TextContentChangeRecord | null;
45
- /** Apply one controller-owned text snapshot to a document adapter. */
46
40
  export declare function applyTextContentProjection(doc: Document, changes: ReadonlyArray<TextContentChangeRecord>): TextProjectionReport[];
47
41
  /** Registers controller-owned text changes without projecting them into the editor shell. */
48
42
  export declare function setCanonicalTextContentChanges(changes: ReadonlyArray<TextContentChangeRecord>): void;