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
@@ -18,8 +18,7 @@ function boxEdges(element) {
18
18
  bottom: bottomOf(rect),
19
19
  };
20
20
  }
21
- // Computed style resolves to px in browsers, so drag math normalizes to px.
22
- // An authored rem/% is intentionally rewritten as px on commit.
21
+ // Computed style is px; an authored rem/% is intentionally rewritten as px on commit.
23
22
  function numberValue(value) {
24
23
  const parsed = Number.parseFloat(value);
25
24
  return Number.isFinite(parsed) ? Math.max(0, parsed) : 0;
@@ -32,6 +31,12 @@ function boxModel(element) {
32
31
  bottom: numberValue(style.paddingBottom),
33
32
  left: numberValue(style.paddingLeft),
34
33
  };
34
+ const margin = {
35
+ top: numberValue(style.marginTop),
36
+ right: numberValue(style.marginRight),
37
+ bottom: numberValue(style.marginBottom),
38
+ left: numberValue(style.marginLeft),
39
+ };
35
40
  const border = {
36
41
  top: numberValue(style.borderTopWidth),
37
42
  right: numberValue(style.borderRightWidth),
@@ -51,7 +56,7 @@ function boxModel(element) {
51
56
  right: inner.right - padding.right,
52
57
  bottom: inner.bottom - padding.bottom,
53
58
  };
54
- return { outer, inner, content, padding };
59
+ return { outer, inner, content, padding, margin };
55
60
  }
56
61
  function containsPoint(rect, x, y) {
57
62
  return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;
@@ -143,14 +148,93 @@ function paddingAffordanceAtPoint(element, x, y) {
143
148
  const model = boxModel(element);
144
149
  if (!containsPoint(model.outer, x, y))
145
150
  return null;
146
- const sides = ["top", "right", "bottom", "left"];
147
- for (const side of sides) {
151
+ for (const side of SIDES) {
148
152
  const affordance = paddingAffordanceForSide(element, side, model);
149
153
  if (affordance && containsRectPoint(affordance.hit, x, y))
150
154
  return affordance;
151
155
  }
152
156
  return null;
153
157
  }
158
+ const MARGIN_CONFIG = {
159
+ top: { axis: "horizontal", dragAxis: "y", direction: -1 },
160
+ right: { axis: "vertical", dragAxis: "x", direction: 1 },
161
+ bottom: { axis: "horizontal", dragAxis: "y", direction: 1 },
162
+ left: { axis: "vertical", dragAxis: "x", direction: -1 },
163
+ };
164
+ const SIDES = ["top", "right", "bottom", "left"];
165
+ /** Children further than this from the pointer are skipped before their styles are read. */
166
+ const MARGIN_SCAN_DISTANCE = 512;
167
+ /** The margin band sits outside the border box, so a drag outward (away from the element) grows it. */
168
+ function marginAffordanceForSide(element, side, model = boxModel(element)) {
169
+ const { outer, margin } = model;
170
+ const value = margin[side];
171
+ if (value <= EPSILON)
172
+ return null;
173
+ const config = MARGIN_CONFIG[side];
174
+ const width = Math.max(0, outer.right - outer.left);
175
+ const height = Math.max(0, outer.bottom - outer.top);
176
+ const guide = config.axis === "horizontal"
177
+ ? { left: outer.left, top: (side === "top" ? outer.top - value / 2 : outer.bottom + value / 2) - 1, width, height: 2 }
178
+ : { left: (side === "left" ? outer.left - value / 2 : outer.right + value / 2) - 1, top: outer.top, width: 2, height };
179
+ const area = config.axis === "horizontal"
180
+ ? { left: outer.left, top: side === "top" ? outer.top - value : outer.bottom, width, height: value }
181
+ : { left: side === "left" ? outer.left - value : outer.right, top: outer.top, width: value, height };
182
+ return {
183
+ kind: "margin",
184
+ property: `margin-${side}`,
185
+ side,
186
+ axis: config.axis,
187
+ dragAxis: config.dragAxis,
188
+ value,
189
+ cursor: config.axis === "horizontal" ? "ns-resize" : "ew-resize",
190
+ guide,
191
+ affectedGuides: [guide],
192
+ affectedAreas: [area],
193
+ hit: guideHit(guide, config.axis),
194
+ direction: config.direction,
195
+ element,
196
+ };
197
+ }
198
+ function isTrackedElement(element, constructor) {
199
+ return element instanceof constructor && element.hasAttribute("data-cid");
200
+ }
201
+ function isNearPoint(rect, x, y) {
202
+ return x >= rect.left - MARGIN_SCAN_DISTANCE
203
+ && x <= rightOf(rect) + MARGIN_SCAN_DISTANCE
204
+ && y >= rect.top - MARGIN_SCAN_DISTANCE
205
+ && y <= bottomOf(rect) + MARGIN_SCAN_DISTANCE;
206
+ }
207
+ /**
208
+ * A margin lies outside its element, so the pointer over it hits the parent: the
209
+ * element's own margins and its tracked children's margins are both candidates.
210
+ */
211
+ function marginAffordanceAtPoint(element, x, y, includeChildren, match) {
212
+ const HTMLElementConstructor = element.ownerDocument.defaultView?.HTMLElement;
213
+ if (!HTMLElementConstructor)
214
+ return null;
215
+ const owners = [
216
+ element,
217
+ ...(includeChildren
218
+ ? Array.from(element.children).filter((child) => isTrackedElement(child, HTMLElementConstructor))
219
+ : []),
220
+ ];
221
+ for (const owner of owners) {
222
+ if (owner !== element && !isNearPoint(owner.getBoundingClientRect(), x, y))
223
+ continue;
224
+ const model = boxModel(owner);
225
+ for (const side of SIDES) {
226
+ const affordance = marginAffordanceForSide(owner, side, model);
227
+ if (!affordance)
228
+ continue;
229
+ const hit = match === "handle"
230
+ ? containsRectPoint(affordance.hit, x, y)
231
+ : affordance.affectedAreas.some((area) => containsRectPoint(area, x, y));
232
+ if (hit)
233
+ return affordance;
234
+ }
235
+ }
236
+ return null;
237
+ }
154
238
  function overlap(startA, endA, startB, endB) {
155
239
  return Math.min(endA, endB) - Math.max(startA, startB) > EPSILON;
156
240
  }
@@ -263,15 +347,12 @@ function gapDragHit(segment) {
263
347
  const orientation = segment.axis === "horizontal" ? "vertical" : "horizontal";
264
348
  return guideHit(gapGuide(segment), orientation);
265
349
  }
266
- /** Matches the padding bar whose visible area contains the pointer, whether or
267
- * not the point is inside the drag handle. Returns the first side by the same
268
- * priority order as the drag affordances so both paths agree on overlaps. */
350
+ /** Matches the padding bar's visible area; same side priority as the drag handles. */
269
351
  function paddingAffordanceInAreaAtPoint(element, x, y) {
270
352
  const model = boxModel(element);
271
353
  if (!containsPoint(model.outer, x, y))
272
354
  return null;
273
- const sides = ["top", "right", "bottom", "left"];
274
- for (const side of sides) {
355
+ for (const side of SIDES) {
275
356
  const affordance = paddingAffordanceForSide(element, side, model);
276
357
  if (affordance
277
358
  && affordance.affectedAreas.some((area) => containsRectPoint(area, x, y))) {
@@ -280,9 +361,7 @@ function paddingAffordanceInAreaAtPoint(element, x, y) {
280
361
  }
281
362
  return null;
282
363
  }
283
- /** Matches a layout gap whose visible area contains the pointer, whether or not
284
- * the point is inside the drag handle. Shares segment priority and geometry
285
- * with gapAffordanceAtPoint so hover and drag agree on crossed gap properties. */
364
+ /** Matches a layout gap's visible area; shares segment priority with gapAffordanceAtPoint. */
286
365
  function gapAffordanceInAreaAtPoint(element, x, y) {
287
366
  const segments = gapSegments(element);
288
367
  if (segments.length === 0)
@@ -314,9 +393,7 @@ function gapValue(style, property) {
314
393
  || (property === "row-gap" ? style.rowGap : style.columnGap);
315
394
  if (direct.trim())
316
395
  return numberValue(direct);
317
- // jsdom and a few older browser CSSOM implementations expose `gap` but not
318
- // the longhands through getPropertyValue(). Keep the gesture model aligned
319
- // with the browser's shorthand fallback in those realms.
396
+ // jsdom and some CSSOM implementations expose only the `gap` shorthand.
320
397
  const shorthand = style.getPropertyValue("gap") || style.gap;
321
398
  const values = shorthand.trim().split(/\s+/).filter(Boolean);
322
399
  if (values.length === 0)
@@ -344,7 +421,6 @@ function trackedElementsAtPoint(doc, x, y) {
344
421
  }
345
422
  return result;
346
423
  }
347
- /** Finds the spacing target under a document-local pointer location. */
348
424
  export function getSpacingAffordanceAtPoint(doc, x, y) {
349
425
  const candidates = trackedElementsAtPoint(doc, x, y);
350
426
  for (const element of candidates) {
@@ -352,6 +428,11 @@ export function getSpacingAffordanceAtPoint(doc, x, y) {
352
428
  if (padding)
353
429
  return padding;
354
430
  }
431
+ for (const [index, element] of candidates.entries()) {
432
+ const margin = marginAffordanceAtPoint(element, x, y, index === 0, "handle");
433
+ if (margin)
434
+ return margin;
435
+ }
355
436
  for (const element of candidates) {
356
437
  const gap = gapAffordanceAtPoint(element, x, y);
357
438
  if (gap)
@@ -359,10 +440,7 @@ export function getSpacingAffordanceAtPoint(doc, x, y) {
359
440
  }
360
441
  return null;
361
442
  }
362
- /** Finds the spacing target whose visible padding or gap area contains the
363
- * pointer, even when the pointer is outside the drag handle. Hover previews use
364
- * this; drags and the resize cursor still require the handle hit from
365
- * getSpacingAffordanceAtPoint. */
443
+ /** Hover previews use this; drags and the resize cursor require the handle from getSpacingAffordanceAtPoint. */
366
444
  export function getSpacingHoverAtPoint(doc, x, y) {
367
445
  const candidates = trackedElementsAtPoint(doc, x, y);
368
446
  for (const element of candidates) {
@@ -370,6 +448,11 @@ export function getSpacingHoverAtPoint(doc, x, y) {
370
448
  if (padding)
371
449
  return padding;
372
450
  }
451
+ for (const [index, element] of candidates.entries()) {
452
+ const margin = marginAffordanceAtPoint(element, x, y, index === 0, "area");
453
+ if (margin)
454
+ return margin;
455
+ }
373
456
  for (const element of candidates) {
374
457
  const gap = gapAffordanceInAreaAtPoint(element, x, y);
375
458
  if (gap)
@@ -377,7 +460,45 @@ export function getSpacingHoverAtPoint(doc, x, y) {
377
460
  }
378
461
  return null;
379
462
  }
380
- /** Re-resolves a renderer-reported spacing descriptor in its owner document. */
463
+ /** Only descendants of `element` can win: candidates run innermost first and padding beats gaps. */
464
+ function affordanceForElement(candidates, element, padding, margin, gap) {
465
+ const index = candidates.indexOf(element);
466
+ if (index < 0)
467
+ return null;
468
+ for (let candidate = 0; candidate <= index; candidate++) {
469
+ const match = padding(candidates[candidate]);
470
+ if (match)
471
+ return match.element === element ? match : null;
472
+ }
473
+ // A margin belongs to a child of the hovered element (or to the element itself), so its owner may differ from `element`.
474
+ const marginMatch = margin(element, candidates[0] === element);
475
+ if (marginMatch)
476
+ return marginMatch;
477
+ let gapMatch = null;
478
+ for (let candidate = 0; candidate <= index && !gapMatch; candidate++) {
479
+ gapMatch = gap(candidates[candidate]);
480
+ }
481
+ if (gapMatch?.element !== element)
482
+ return null;
483
+ for (let candidate = index + 1; candidate < candidates.length; candidate++) {
484
+ if (padding(candidates[candidate]))
485
+ return null;
486
+ }
487
+ return gapMatch;
488
+ }
489
+ function elementSpacingHandle(candidates, element, x, y) {
490
+ return affordanceForElement(candidates, element, (candidate) => paddingAffordanceAtPoint(candidate, x, y), (candidate, includeChildren) => marginAffordanceAtPoint(candidate, x, y, includeChildren, "handle"), (candidate) => gapAffordanceAtPoint(candidate, x, y));
491
+ }
492
+ export function getElementSpacingHandleAtPoint(doc, element, x, y) {
493
+ return elementSpacingHandle(trackedElementsAtPoint(doc, x, y), element, x, y);
494
+ }
495
+ export function getElementSpacingAtPoint(doc, element, x, y) {
496
+ const candidates = trackedElementsAtPoint(doc, x, y);
497
+ return {
498
+ handle: elementSpacingHandle(candidates, element, x, y),
499
+ area: affordanceForElement(candidates, element, (candidate) => paddingAffordanceInAreaAtPoint(candidate, x, y), (candidate, includeChildren) => marginAffordanceAtPoint(candidate, x, y, includeChildren, "area"), (candidate) => gapAffordanceInAreaAtPoint(candidate, x, y)),
500
+ };
501
+ }
381
502
  export function getSpacingAffordanceForDescriptor(element, descriptor) {
382
503
  if (descriptor.kind === "padding") {
383
504
  const side = descriptor.side;
@@ -385,6 +506,12 @@ export function getSpacingAffordanceForDescriptor(element, descriptor) {
385
506
  return null;
386
507
  return paddingAffordanceForSide(element, side);
387
508
  }
509
+ if (descriptor.kind === "margin") {
510
+ const side = descriptor.side;
511
+ if (!side || descriptor.property !== `margin-${side}`)
512
+ return null;
513
+ return marginAffordanceForSide(element, side);
514
+ }
388
515
  if (descriptor.property !== "row-gap" && descriptor.property !== "column-gap")
389
516
  return null;
390
517
  const segment = gapSegments(element).find((candidate) => candidate.property === descriptor.property);
@@ -393,14 +520,7 @@ export function getSpacingAffordanceForDescriptor(element, descriptor) {
393
520
  const guide = gapGuide(segment);
394
521
  return gapAffordanceAtPoint(element, guide.left + guide.width / 2, guide.top + guide.height / 2, descriptor.property);
395
522
  }
396
- /**
397
- * Calculates a direct-manipulation value, optionally stepping changes by 8px.
398
- * While Shift is held the value snaps to a step anchor: the first displacement
399
- * picks the nearest multiple of 8 from the authored value in the drag
400
- * direction (ties resolve upward), and further movement adds whole 8px steps
401
- * from that anchor, so the result is always a multiple of 8 once the drag
402
- * moves. At the exact start point the authored value is preserved.
403
- */
523
+ /** With Shift, snaps to a multiple of 8 from the authored value in the drag direction. */
404
524
  export function spacingValueForDrag(affordance, start, point, shiftKey = false) {
405
525
  const delta = affordance.dragAxis === "x" ? point.x - start.x : point.y - start.y;
406
526
  const signedDelta = delta * affordance.direction;
@@ -418,7 +538,7 @@ export function spacingValueForDrag(affordance, start, point, shiftKey = false)
418
538
  export function spacingValueCss(value) {
419
539
  return `${Math.max(0, Math.round(value))}px`;
420
540
  }
421
- /** Serializes the stable part of an affordance for renderer-to-controller messages. */
541
+ /** The stable subset sent across the renderer boundary. */
422
542
  export function toSpacingDescriptor(affordance) {
423
543
  return {
424
544
  kind: affordance.kind,
@@ -1,11 +1,7 @@
1
1
  import type { SelectedElement } from "../selection/selectionStore.js";
2
2
  import { type StructuralDelete, type StructuralMove } from "../projection/structuralProjection.js";
3
3
  export type StructuralNudgeKey = "ArrowUp" | "ArrowDown" | "ArrowLeft" | "ArrowRight";
4
- /**
5
- * A temporary, document-local insertion point. It is intentionally not a
6
- * structural record: `moveElement` captures durable rendered-instance refs
7
- * before handing the canonical action to structuralProjection.
8
- */
4
+ /** Temporary, document-local insertion point; canonical moves capture durable rendered-instance refs instead. */
9
5
  export interface DropLocation {
10
6
  parent: HTMLElement;
11
7
  before: Node | null;
@@ -15,14 +11,11 @@ export interface DropLocation {
15
11
  width: number;
16
12
  height: number;
17
13
  }
18
- /** Conservative HTML guard shared with canonical capture and document replay. */
14
+ /** Delegates to the guard shared with canonical capture and document replay. */
19
15
  export declare function canContainElement(parent: HTMLElement, child: HTMLElement): boolean;
20
- /** Derives a safe insertion point; its nodes never leave this gesture module. */
21
16
  export declare function getDropLocationForElement(dragged: HTMLElement, target: HTMLElement, beforeTarget: boolean, preferContainer?: boolean): DropLocation | null;
22
17
  export declare function getDropLocationAtPoint(doc: Document, dragged: HTMLElement, x: number, y: number): DropLocation | null;
23
- /** Capture the move as canonical intent, then preview it in an inline host. */
24
18
  export declare function moveElement(node: HTMLElement, destination: DropLocation): StructuralMove | null;
25
19
  /** Reorder only same-parent siblings; horizontal movement needs a flex row. */
26
20
  export declare function nudgeElement(node: HTMLElement, key: StructuralNudgeKey): StructuralMove | null;
27
- /** Capture delete intent, then preview it in an inline host. */
28
21
  export declare function deleteElement(selected: SelectedElement): StructuralDelete | null;
@@ -1,6 +1,6 @@
1
1
  import { applyStructuralProjection, canContainElement as canContainStructuralElement, createStructuralDelete, createStructuralMove, getStructuralMoveLegality, getStructuralChanges, } from "../projection/structuralProjection.js";
2
2
  import { isEditorShellDocument } from "../runtime/editorShell.js";
3
- /** Conservative HTML guard shared with canonical capture and document replay. */
3
+ /** Delegates to the guard shared with canonical capture and document replay. */
4
4
  export function canContainElement(parent, child) {
5
5
  return canContainStructuralElement(parent, child);
6
6
  }
@@ -96,7 +96,6 @@ function flexRowChildAtTarget(dragged, target) {
96
96
  }
97
97
  return null;
98
98
  }
99
- /** Derives a safe insertion point; its nodes never leave this gesture module. */
100
99
  export function getDropLocationForElement(dragged, target, beforeTarget, preferContainer = true) {
101
100
  if (target === dragged || dragged.contains(target))
102
101
  return null;
@@ -147,7 +146,6 @@ function projectInlineHost(node) {
147
146
  return;
148
147
  applyStructuralProjection(document, getStructuralChanges());
149
148
  }
150
- /** Capture the move as canonical intent, then preview it in an inline host. */
151
149
  export function moveElement(node, destination) {
152
150
  if (!getStructuralMoveLegality(node, destination).valid)
153
151
  return null;
@@ -170,7 +168,6 @@ export function nudgeElement(node, key) {
170
168
  const before = moveEarlier ? sibling : sibling.nextElementSibling;
171
169
  return moveElement(node, { parent, before, ...lineFor(parent, before) });
172
170
  }
173
- /** Capture delete intent, then preview it in an inline host. */
174
171
  export function deleteElement(selected) {
175
172
  const node = selected.domElement;
176
173
  if (!node.parentElement || !node.isConnected)
@@ -3,6 +3,7 @@ import { type SketchStorage } from "./sketch/persistence.js";
3
3
  export type { InspectorStorage } from "./runtime/inspectorStorage.js";
4
4
  export { createMirroredStorage } from "./runtime/inspectorStorage.js";
5
5
  export type { SketchPersistenceSnapshot, SketchStorage, SketchStorageChange } from "./sketch/persistence.js";
6
+ export { isSketchDocument, isSketchHandoffRecord } from "./sketch/model.js";
6
7
  export type { SketchDocument, SketchHandoffRecord } from "./sketch/model.js";
7
8
  export interface PageInspectorOptions {
8
9
  /** Replaces `localStorage` for comments, drafts, and Canvas state. */
@@ -11,10 +12,7 @@ export interface PageInspectorOptions {
11
12
  sketchStorage?: SketchStorage;
12
13
  /** Skips the `<style>` policy probe and always uses constructable stylesheets. */
13
14
  adoptStylesheets?: boolean;
14
- /**
15
- * `"editor"` turns a document whose URL carries the editor marker into the
16
- * iframe editor; otherwise the page itself is the only Canvas card.
17
- */
15
+ /** `"editor"` requires the editor URL marker; otherwise the page itself is the only Canvas card. */
18
16
  surface?: "editor" | "page";
19
17
  /** Shows a short error instead of enabling inspection on an unsupported page. */
20
18
  unavailableReason?: string;
@@ -29,14 +27,7 @@ export interface PageInspectorHandle {
29
27
  /** Starts the `window.__nudgeUiPerformance` counters for this document. */
30
28
  enablePerformanceDiagnostics(): void;
31
29
  }
32
- /**
33
- * Starts the inspector on the current page. Running a second bundle copy in
34
- * the same window toggles the first instance instead, because only the first
35
- * copy's stores drive the UI.
36
- */
30
+ /** A second bundle copy in the same window toggles the first instance, whose stores own the UI. */
37
31
  export declare function startPageInspector(options?: PageInspectorOptions): Promise<void>;
38
- /**
39
- * Starts the renderer in an editor's Canvas frame. Does nothing in any other
40
- * document, or when the frame already runs one.
41
- */
32
+ /** Only acts inside an editor Canvas frame that has no renderer yet. */
42
33
  export declare function startCanvasRenderer(options?: Pick<PageInspectorOptions, "adoptStylesheets">): void;
@@ -1,13 +1,4 @@
1
- /**
2
- * Entry for loading the inspector into any page without a host Adapter.
3
- *
4
- * Everything a host normally supplies is derived from the live document:
5
- * runtime identity is assigned lazily under the pointer, and tokens come from
6
- * readable stylesheets plus the root's computed custom properties. Source
7
- * locations, component semantics, iterations, and the agent bridge are
8
- * unavailable. In editor mode the application runs in Canvas frames;
9
- * otherwise the page itself is the only Canvas card.
10
- */
1
+ /** Loads the inspector into a page without a host Adapter; everything a host normally supplies is derived from the live document. */
11
2
  import { bootstrapNudgeUi, configureNudgeUiRuntime, getNudgeUiRuntimeConfig, isCanvasRenderer, readNudgeUiEditorTarget, setInspectorOpen, unmountInspector, } from "./index.js";
12
3
  import { CANVAS_RENDERER_ATTR } from "./canvas/roleDetection.js";
13
4
  import { releaseLease } from "./canvas/workspaceLease.js";
@@ -20,6 +11,7 @@ import { enableInspectionPerformanceDiagnostics } from "./inspection/performance
20
11
  import { installLazyRuntimeIdentity } from "./runtime/staticHtmlRuntimeIdentity.js";
21
12
  import { createTokenInventory } from "../css/token-inventory/inventory.js";
22
13
  export { createMirroredStorage } from "./runtime/inspectorStorage.js";
14
+ export { isSketchDocument, isSketchHandoffRecord } from "./sketch/model.js";
23
15
  const MOUNT_ID = "nudge-ui-root";
24
16
  const LOADED_FLAG = "__NUDGE_UI_PAGE_INSPECTOR__";
25
17
  const COMPUTED_ROOT_ID = "computed:root";
@@ -60,11 +52,7 @@ async function collectSheet(sheet, index, base) {
60
52
  return { id, readError: "cross-origin stylesheet without CORS access" };
61
53
  }
62
54
  }
63
- /**
64
- * Custom properties visible on the root element but absent from readable
65
- * stylesheets: definitions in cross-origin sheets without CORS, scoped theme
66
- * rules the inventory rejects, or variables set from JavaScript.
67
- */
55
+ /** Root custom properties missing from readable stylesheets: CORS-blocked sheets, rejected scoped rules, or JS-set variables. */
68
56
  function computedRootDeclarations(doc, definedNames) {
69
57
  const declarations = [];
70
58
  const view = doc.defaultView ?? window;
@@ -153,7 +141,7 @@ function runtimeConfig(tokens, unavailableReason) {
153
141
  framework: "HTML",
154
142
  stylingSystem: "CSS custom properties",
155
143
  capabilities: { canvas: !unavailableReason, componentSemantics: false, domNavigation: !unavailableReason },
156
- features: { canvasIterations: false, ...(unavailableReason ? { sketch: false } : {}) },
144
+ features: { canvasIterations: false, mcp: false, ...(unavailableReason ? { sketch: false } : {}) },
157
145
  ...(unavailableReason ? { inspectionUnavailableReason: unavailableReason } : {}),
158
146
  componentContracts: [],
159
147
  ...tokens,
@@ -194,11 +182,10 @@ function mountPageInspector() {
194
182
  enable();
195
183
  };
196
184
  }
197
- /**
198
- * Replaces the page's content with the iframe editor. The application runs in
199
- * Canvas renderer frames, which the caller loads the inspector into.
200
- */
185
+ /** Replaces the page content with the iframe editor; the caller loads the inspector into its renderer frames. */
201
186
  function mountEditor(onRendererFrameLoad) {
187
+ // The editor never owns the tab title; it shows the application's own title.
188
+ const pageTitle = document.title;
202
189
  document.head.replaceChildren();
203
190
  document.body.replaceChildren();
204
191
  for (const element of [document.documentElement, document.body]) {
@@ -206,7 +193,7 @@ function mountEditor(onRendererFrameLoad) {
206
193
  element.removeAttribute("hidden");
207
194
  element.removeAttribute("inert");
208
195
  }
209
- document.title = "Nudge UI";
196
+ document.title = pageTitle;
210
197
  const layout = new CSSStyleSheet();
211
198
  layout.replaceSync(`html, body, #${MOUNT_ID} { display: block; width: 100%; height: 100%; margin: 0; overflow: hidden; }`);
212
199
  document.adoptedStyleSheets = [layout];
@@ -240,7 +227,21 @@ function mountEditor(onRendererFrameLoad) {
240
227
  onRendererFrameLoad?.();
241
228
  }
242
229
  };
243
- window.setInterval(announceReadyDocuments, 100);
230
+ // Mirrors the primary application frame's title, which follows its navigation.
231
+ const syncApplicationTitle = () => {
232
+ for (const frame of frames()) {
233
+ const frameTitle = applicationDocument(frame)?.title;
234
+ if (frameTitle) {
235
+ if (document.title !== frameTitle)
236
+ document.title = frameTitle;
237
+ return;
238
+ }
239
+ }
240
+ };
241
+ window.setInterval(() => {
242
+ announceReadyDocuments();
243
+ syncApplicationTitle();
244
+ }, 100);
244
245
  // Script-built styles exist only in the application frames, not in this document.
245
246
  const collectFrameTokens = (frame) => {
246
247
  const frameDocument = applicationDocument(frame);
@@ -267,15 +268,10 @@ function mountEditor(onRendererFrameLoad) {
267
268
  new MutationObserver(watch).observe(root, { childList: true, subtree: true });
268
269
  watch();
269
270
  }
270
- /** Leaves the editor by loading the application URL it frames. */
271
271
  function exitEditor() {
272
272
  location.replace(readNudgeUiEditorTarget(location.href) ?? location.href);
273
273
  }
274
- /**
275
- * Starts the inspector on the current page. Running a second bundle copy in
276
- * the same window toggles the first instance instead, because only the first
277
- * copy's stores drive the UI.
278
- */
274
+ /** A second bundle copy in the same window toggles the first instance, whose stores own the UI. */
279
275
  export async function startPageInspector(options = {}) {
280
276
  const target = window;
281
277
  const loaded = target[LOADED_FLAG];
@@ -309,10 +305,7 @@ export async function startPageInspector(options = {}) {
309
305
  console.info(`[nudge-ui] Inspector loaded in ${editor ? "editor" : "page"} mode with ${tokens.tokenCatalog.length} tokens`
310
306
  + (tokens.tokenDiagnostics.length > 0 ? ` and ${tokens.tokenDiagnostics.length} stylesheet diagnostics.` : "."), tokens.tokenDiagnostics);
311
307
  }
312
- /**
313
- * Starts the renderer in an editor's Canvas frame. Does nothing in any other
314
- * document, or when the frame already runs one.
315
- */
308
+ /** Only acts inside an editor Canvas frame that has no renderer yet. */
316
309
  export function startCanvasRenderer(options = {}) {
317
310
  const target = window;
318
311
  if (!isCanvasRenderer() || target[LOADED_FLAG])
@@ -1,3 +1,2 @@
1
- /** CSS-string escaping for selectors assembled from runtime DOM metadata. */
2
1
  export declare function escapeCssString(value: string): string;
3
2
  export declare function escapeAttrValue(value: string): string;
@@ -1,8 +1,6 @@
1
- /** CSS-string escaping for selectors assembled from runtime DOM metadata. */
2
1
  export function escapeCssString(value) {
3
- // Keep ordinary source selectors readable and byte-compatible. Once a
4
- // string contains a quote, backslash, or control character, hex-escape the
5
- // complete value so punctuation cannot terminate the CSS string early.
2
+ // Keep ordinary selectors byte-compatible; a value containing a quote,
3
+ // backslash, or control character is hex-escaped whole to prevent an early string end.
6
4
  if (!/["\\\0-\x1f\x7f]/.test(value))
7
5
  return value;
8
6
  let escaped = "";
@@ -15,7 +15,6 @@ export interface CompiledManagedStyles {
15
15
  export interface SerializedManagedStyles {
16
16
  readonly css: string;
17
17
  }
18
- /** A complete, read-only projection for one document-local runtime. */
19
18
  export interface DraftProjectionPlan<ManagedStyles> {
20
19
  readonly sourceRevision: number;
21
20
  readonly managedStyles: ManagedStyles;
@@ -23,13 +22,9 @@ export interface DraftProjectionPlan<ManagedStyles> {
23
22
  readonly structuralChanges: readonly StructuralChange[];
24
23
  readonly textContentChanges: readonly TextContentChangeRecord[];
25
24
  readonly componentOverrides: readonly ComponentOverride[];
26
- /**
27
- * Generated identities the saved edits refer to. Omitted by plans that
28
- * only hide edits (hold-to-view-original), which keep the attached ones.
29
- */
25
+ /** Omitted by hold-to-view-original plans, which keep the attached identities. */
30
26
  readonly runtimeIdentities?: readonly RuntimeIdentityClaim[];
31
27
  }
32
- /** Applies every projection dimension to one document-local runtime. */
33
28
  export interface DocumentProjectionAdapter<ManagedStyles> {
34
29
  applyRuntimeIdentities(claims: readonly RuntimeIdentityClaim[]): void;
35
30
  applyStructural(changes: readonly StructuralChange[]): void;
@@ -39,13 +34,6 @@ export interface DocumentProjectionAdapter<ManagedStyles> {
39
34
  applyManagedStyles(styles: ManagedStyles): void;
40
35
  }
41
36
  export declare function compileDraftProjection(snapshot: DraftProjectionSource): DraftProjectionPlan<CompiledManagedStyles>;
42
- /**
43
- * Replaces one document projection in the required order.
44
- *
45
- * Generated identities are attached first: every selector and resolver below
46
- * looks elements up by them. Structural intent follows because later rendered-instance evidence
47
- * can depend on the restored element order. Managed CSS is applied last so
48
- * selectors can use the document-local instance markers installed above.
49
- */
37
+ /** Order matters: identities first (selectors resolve by them), then structural, then managed CSS last (selectors use the instance markers above). */
50
38
  export declare function applyDraftProjection<ManagedStyles>(adapter: DocumentProjectionAdapter<ManagedStyles>, plan: DraftProjectionPlan<ManagedStyles>): void;
51
39
  export declare function applyHostDraftProjection(plan: DraftProjectionPlan<CompiledManagedStyles>): void;
@@ -26,14 +26,7 @@ export function compileDraftProjection(snapshot) {
26
26
  runtimeIdentities: collectRuntimeIdentityClaims(snapshot),
27
27
  };
28
28
  }
29
- /**
30
- * Replaces one document projection in the required order.
31
- *
32
- * Generated identities are attached first: every selector and resolver below
33
- * looks elements up by them. Structural intent follows because later rendered-instance evidence
34
- * can depend on the restored element order. Managed CSS is applied last so
35
- * selectors can use the document-local instance markers installed above.
36
- */
29
+ /** Order matters: identities first (selectors resolve by them), then structural, then managed CSS last (selectors use the instance markers above). */
37
30
  export function applyDraftProjection(adapter, plan) {
38
31
  if (plan.runtimeIdentities)
39
32
  adapter.applyRuntimeIdentities(plan.runtimeIdentities);
@@ -20,14 +20,8 @@ export interface PreviewResult {
20
20
  }
21
21
  export declare function ensureManagedSheet(): void;
22
22
  export declare function rulesToCssText(rules: StyleRule[]): string;
23
- /** Synchronous serialized view of the rules currently projected into the managed sheet. */
24
23
  export declare function getManagedSheetText(): string;
25
- /**
26
- * Replaces the managed sheet with the canonical projection. Keeping the
27
- * serialized rules authoritative avoids stale CSSStyleRule references when a
28
- * framework dev server reparses or reattaches style nodes during a render.
29
- */
24
+ /** Serialized rules stay authoritative to avoid stale CSSStyleRule references when a framework reparses style nodes. */
30
25
  export declare function applyRules(rules: StyleRule[]): void;
31
- /** Verify what the browser painted after the managed sheet was projected. */
32
26
  export declare function verifyPreview(el: HTMLElement | null, property: string, requestedValue: string): PreviewResult;
33
27
  export declare function removeManagedSheet(): void;