nudge-ui 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/dist/cli/agentCommand.d.ts +0 -1
  2. package/dist/cli/agentCommand.js +0 -1
  3. package/dist/client.mjs +238 -122
  4. package/dist/compiler/ast.d.ts +0 -6
  5. package/dist/compiler/ast.js +0 -5
  6. package/dist/compiler/componentContractTypes.d.ts +11 -5
  7. package/dist/compiler/componentContracts.js +3 -9
  8. package/dist/compiler/componentInstrumentation.d.ts +2 -13
  9. package/dist/compiler/componentInstrumentation.js +3 -12
  10. package/dist/compiler/componentPolicyResolution.d.ts +3 -22
  11. package/dist/compiler/componentPolicyResolution.js +6 -38
  12. package/dist/compiler/identityAttributes.d.ts +2 -0
  13. package/dist/compiler/identityAttributes.js +2 -0
  14. package/dist/compiler/index.d.ts +0 -1
  15. package/dist/compiler/index.js +0 -1
  16. package/dist/compiler/packageComponentContracts.d.ts +10 -19
  17. package/dist/compiler/packageComponentContracts.js +60 -43
  18. package/dist/compiler/reactComponentProtocols.d.ts +0 -7
  19. package/dist/compiler/reactComponentProtocols.js +0 -7
  20. package/dist/compiler/reactIdentity.d.ts +2 -2
  21. package/dist/compiler/reactIdentity.js +41 -43
  22. package/dist/compiler/sourcePaths.d.ts +4 -8
  23. package/dist/compiler/sourcePaths.js +6 -8
  24. package/dist/css/dialects/index.d.ts +2 -21
  25. package/dist/css/dialects/index.js +2 -9
  26. package/dist/css/dialects/tailwind.d.ts +2 -16
  27. package/dist/css/dialects/tailwind.js +2 -25
  28. package/dist/css/dialects/vanillaExtract.d.ts +1 -9
  29. package/dist/css/dialects/vanillaExtract.js +0 -1
  30. package/dist/css/index.d.ts +0 -8
  31. package/dist/css/index.js +0 -8
  32. package/dist/css/model/index.d.ts +6 -38
  33. package/dist/css/model/index.js +0 -9
  34. package/dist/css/token-inventory/index.d.ts +0 -23
  35. package/dist/css/token-inventory/index.js +0 -23
  36. package/dist/css/token-inventory/inventory.js +4 -16
  37. package/dist/css/token-inventory/parseStylesheet.d.ts +1 -9
  38. package/dist/css/token-inventory/parseStylesheet.js +5 -42
  39. package/dist/css/token-inventory/policy.d.ts +2 -39
  40. package/dist/css/token-inventory/policy.js +2 -39
  41. package/dist/css/token-inventory/types.d.ts +2 -15
  42. package/dist/css/value-semantics/borderSemantics.d.ts +1 -8
  43. package/dist/css/value-semantics/borderSemantics.js +5 -23
  44. package/dist/css/value-semantics/boxSemantics.d.ts +2 -25
  45. package/dist/css/value-semantics/boxSemantics.js +1 -7
  46. package/dist/css/value-semantics/colorSemantics.d.ts +6 -60
  47. package/dist/css/value-semantics/colorSemantics.js +9 -40
  48. package/dist/css/value-semantics/cssSyntax.d.ts +10 -10
  49. package/dist/css/value-semantics/cssSyntax.js +39 -11
  50. package/dist/css/value-semantics/fontSemantics.d.ts +3 -19
  51. package/dist/css/value-semantics/fontSemantics.js +7 -25
  52. package/dist/css/value-semantics/index.d.ts +1 -12
  53. package/dist/css/value-semantics/index.js +1 -12
  54. package/dist/css/value-semantics/propertyPolicy.d.ts +6 -53
  55. package/dist/css/value-semantics/propertyPolicy.js +47 -59
  56. package/dist/css/value-semantics/stringMaps.d.ts +0 -1
  57. package/dist/css/value-semantics/structuredValues.d.ts +3 -37
  58. package/dist/css/value-semantics/structuredValues.js +6 -17
  59. package/dist/css/value-semantics/tokenInterpretation.d.ts +8 -50
  60. package/dist/css/value-semantics/tokenInterpretation.js +7 -21
  61. package/dist/hosts/astro/astroRuntimeConfig.d.ts +0 -1
  62. package/dist/hosts/astro/astroRuntimeConfig.js +0 -1
  63. package/dist/hosts/astro/clientAsset.d.ts +1 -5
  64. package/dist/hosts/astro/clientAsset.js +1 -5
  65. package/dist/hosts/astro/clientTransport.d.ts +0 -1
  66. package/dist/hosts/astro/clientTransport.js +4 -9
  67. package/dist/hosts/astro/integration.d.ts +2 -28
  68. package/dist/hosts/astro/integration.js +7 -36
  69. package/dist/hosts/astro/markdownIdentity.d.ts +0 -3
  70. package/dist/hosts/astro/markdownIdentity.js +0 -3
  71. package/dist/hosts/astro/middleware.d.ts +1 -12
  72. package/dist/hosts/astro/middleware.js +1 -12
  73. package/dist/hosts/astro/projectContext.d.ts +1 -9
  74. package/dist/hosts/astro/projectContext.js +2 -11
  75. package/dist/hosts/astro/responseInstrumentation.d.ts +4 -33
  76. package/dist/hosts/astro/responseInstrumentation.js +5 -34
  77. package/dist/hosts/environment.d.ts +0 -8
  78. package/dist/hosts/environment.js +0 -1
  79. package/dist/hosts/next/index.js +1 -3
  80. package/dist/hosts/next/loader.d.ts +5 -44
  81. package/dist/hosts/next/loader.js +22 -103
  82. package/dist/hosts/next/loaders/identity-loader.cjs +111 -65
  83. package/dist/hosts/next/loaders/loader-plugin.cjs +111 -65
  84. package/dist/hosts/next/manifest.d.ts +2 -16
  85. package/dist/hosts/next/manifest.js +18 -20
  86. package/dist/hosts/next/mount.d.ts +1 -11
  87. package/dist/hosts/next/mount.js +1 -11
  88. package/dist/hosts/next/repositoryScope.d.ts +2 -17
  89. package/dist/hosts/next/repositoryScope.js +2 -17
  90. package/dist/hosts/next/sidecar.d.ts +0 -13
  91. package/dist/hosts/next/sidecar.js +25 -110
  92. package/dist/hosts/next/wrapper.d.ts +0 -31
  93. package/dist/hosts/next/wrapper.js +13 -64
  94. package/dist/hosts/projectBridge.d.ts +0 -2
  95. package/dist/hosts/projectBridge.js +0 -2
  96. package/dist/hosts/reactRendererCapture.d.ts +2 -0
  97. package/dist/hosts/reactRendererCapture.js +12 -0
  98. package/dist/hosts/static/cli.d.ts +0 -4
  99. package/dist/hosts/static/cli.js +0 -3
  100. package/dist/hosts/static/html/bootstrap.d.ts +1 -18
  101. package/dist/hosts/static/html/bootstrap.js +2 -14
  102. package/dist/hosts/static/manifest.d.ts +2 -15
  103. package/dist/hosts/static/manifest.js +5 -18
  104. package/dist/hosts/static/server.d.ts +4 -38
  105. package/dist/hosts/static/server.js +17 -67
  106. package/dist/hosts/vite/index.d.ts +0 -10
  107. package/dist/hosts/vite/index.js +0 -10
  108. package/dist/hosts/vite/react.d.ts +4 -17
  109. package/dist/hosts/vite/react.js +18 -35
  110. package/dist/hosts/vite/tokens/activeStylesheets.d.ts +1 -10
  111. package/dist/hosts/vite/tokens/activeStylesheets.js +3 -8
  112. package/dist/hosts/vite/tokens/fileMap.d.ts +0 -1
  113. package/dist/hosts/vite/tokens/viteStylesheetArtifacts.d.ts +2 -15
  114. package/dist/hosts/vite/tokens/viteStylesheetArtifacts.js +3 -10
  115. package/dist/hosts/vite/vite.d.ts +5 -26
  116. package/dist/hosts/vite/vite.js +44 -80
  117. package/dist/html/dom.d.ts +0 -1
  118. package/dist/html/dom.js +0 -1
  119. package/dist/html/identity.d.ts +1 -15
  120. package/dist/html/identity.js +1 -8
  121. package/dist/html/insertions.d.ts +2 -8
  122. package/dist/html/insertions.js +1 -1
  123. package/dist/inspector/agent/McpConnectionDialog.d.ts +1 -6
  124. package/dist/inspector/agent/McpConnectionDialog.js +1 -6
  125. package/dist/inspector/agent/activity.d.ts +1 -1
  126. package/dist/inspector/agent/activity.js +1 -1
  127. package/dist/inspector/agent/client.d.ts +2 -26
  128. package/dist/inspector/agent/client.js +17 -64
  129. package/dist/inspector/agent/connectionStatus.d.ts +0 -1
  130. package/dist/inspector/agent/connectionStatus.js +0 -1
  131. package/dist/inspector/agent/httpTransport.d.ts +0 -8
  132. package/dist/inspector/agent/httpTransport.js +21 -39
  133. package/dist/inspector/agent/protocol.d.ts +1 -10
  134. package/dist/inspector/agent/protocol.js +1 -9
  135. package/dist/inspector/agent/verification.d.ts +2 -19
  136. package/dist/inspector/agent/verification.js +7 -43
  137. package/dist/inspector/boot.d.ts +3 -1
  138. package/dist/inspector/boot.js +12 -20
  139. package/dist/inspector/canvas/AgentActivityOverlay.d.ts +1 -1
  140. package/dist/inspector/canvas/AgentActivityOverlay.js +1 -1
  141. package/dist/inspector/canvas/CanvasCard.js +7 -14
  142. package/dist/inspector/canvas/CanvasElementOverlay.js +117 -50
  143. package/dist/inspector/canvas/CanvasWorkspace.js +15 -29
  144. package/dist/inspector/canvas/PageCard.d.ts +0 -1
  145. package/dist/inspector/canvas/PageCard.js +0 -1
  146. package/dist/inspector/canvas/SketchToolOptions.d.ts +0 -1
  147. package/dist/inspector/canvas/SketchToolOptions.js +0 -6
  148. package/dist/inspector/canvas/ToolOptionsDrawer.d.ts +1 -6
  149. package/dist/inspector/canvas/ToolOptionsDrawer.js +2 -8
  150. package/dist/inspector/canvas/activeCanvasDocument.d.ts +0 -2
  151. package/dist/inspector/canvas/activeCanvasDocument.js +0 -2
  152. package/dist/inspector/canvas/agentPresentation.d.ts +2 -13
  153. package/dist/inspector/canvas/agentPresentation.js +3 -14
  154. package/dist/inspector/canvas/canvasFrame.d.ts +2 -6
  155. package/dist/inspector/canvas/canvasFrame.js +1 -2
  156. package/dist/inspector/canvas/canvasResize.d.ts +1 -6
  157. package/dist/inspector/canvas/canvasResize.js +1 -6
  158. package/dist/inspector/canvas/canvasStore.d.ts +4 -12
  159. package/dist/inspector/canvas/canvasStore.js +12 -26
  160. package/dist/inspector/canvas/frameConnection.d.ts +1 -7
  161. package/dist/inspector/canvas/frameContent.d.ts +0 -1
  162. package/dist/inspector/canvas/frameLifecycle.d.ts +12 -0
  163. package/dist/inspector/canvas/frameLifecycle.js +11 -0
  164. package/dist/inspector/canvas/frameProtocol.d.ts +5 -40
  165. package/dist/inspector/canvas/frameProtocol.js +1 -24
  166. package/dist/inspector/canvas/frameScrollbarStyles.d.ts +0 -1
  167. package/dist/inspector/canvas/frameScrollbarStyles.js +0 -1
  168. package/dist/inspector/canvas/layout.d.ts +10 -22
  169. package/dist/inspector/canvas/layout.js +0 -3
  170. package/dist/inspector/canvas/normalizeUrl.js +1 -8
  171. package/dist/inspector/canvas/pageSurface.d.ts +1 -6
  172. package/dist/inspector/canvas/pageSurface.js +1 -6
  173. package/dist/inspector/canvas/projection.d.ts +4 -25
  174. package/dist/inspector/canvas/projection.js +22 -72
  175. package/dist/inspector/canvas/rendererBootstrap.d.ts +8 -1
  176. package/dist/inspector/canvas/rendererBootstrap.js +6 -14
  177. package/dist/inspector/canvas/rendererCidIndex.d.ts +0 -5
  178. package/dist/inspector/canvas/rendererCidIndex.js +0 -5
  179. package/dist/inspector/canvas/rendererElementSelector.js +29 -27
  180. package/dist/inspector/canvas/rendererMessageRouter.d.ts +0 -1
  181. package/dist/inspector/canvas/rendererMessageRouter.js +0 -1
  182. package/dist/inspector/canvas/rendererSelectionProxy.d.ts +1 -5
  183. package/dist/inspector/canvas/rendererSelectionProxy.js +2 -7
  184. package/dist/inspector/canvas/rendererStylesheet.d.ts +0 -1
  185. package/dist/inspector/canvas/rendererStylesheet.js +9 -2
  186. package/dist/inspector/canvas/resizeHandleScale.d.ts +1 -10
  187. package/dist/inspector/canvas/resizeHandleScale.js +1 -10
  188. package/dist/inspector/canvas/sessionStore.d.ts +1 -7
  189. package/dist/inspector/canvas/sessionStore.js +21 -34
  190. package/dist/inspector/canvas/staleChangeDetector.js +1 -4
  191. package/dist/inspector/canvas/toolbarScale.d.ts +1 -4
  192. package/dist/inspector/canvas/toolbarScale.js +1 -4
  193. package/dist/inspector/canvas/useCanvasLayoutAnimation.d.ts +0 -1
  194. package/dist/inspector/canvas/useCanvasLayoutAnimation.js +0 -1
  195. package/dist/inspector/canvas/viewStore.js +1 -1
  196. package/dist/inspector/canvas/wheelPan.d.ts +1 -1
  197. package/dist/inspector/canvas/wheelPan.js +1 -1
  198. package/dist/inspector/canvas/workspaceLease.d.ts +1 -5
  199. package/dist/inspector/canvas/workspaceLease.js +1 -7
  200. package/dist/inspector/changes/codecs.js +2 -1
  201. package/dist/inspector/changes/draftPreview.d.ts +1 -6
  202. package/dist/inspector/changes/draftPreview.js +15 -30
  203. package/dist/inspector/changes/editModel.d.ts +3 -13
  204. package/dist/inspector/changes/editModel.js +1 -2
  205. package/dist/inspector/changes/managedStyleProjection.js +4 -14
  206. package/dist/inspector/changes/model.d.ts +0 -5
  207. package/dist/inspector/changes/model.js +1 -8
  208. package/dist/inspector/changes/previewDiagnostics.d.ts +2 -12
  209. package/dist/inspector/changes/previewDiagnostics.js +4 -20
  210. package/dist/inspector/changes/previewVerification.d.ts +25 -0
  211. package/dist/inspector/changes/previewVerification.js +34 -0
  212. package/dist/inspector/changes/structuralTypes.d.ts +2 -4
  213. package/dist/inspector/changes/types.d.ts +3 -10
  214. package/dist/inspector/clientManifest.d.ts +17 -6
  215. package/dist/inspector/clientManifest.js +16 -3
  216. package/dist/inspector/comments/CommentsOverlay.js +48 -7
  217. package/dist/inspector/comments/element.d.ts +1 -2
  218. package/dist/inspector/comments/element.js +1 -2
  219. package/dist/inspector/comments/store.d.ts +1 -1
  220. package/dist/inspector/comments/store.js +1 -1
  221. package/dist/inspector/comments/verification.d.ts +8 -2
  222. package/dist/inspector/comments/verification.js +18 -10
  223. package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +8 -0
  224. package/dist/inspector/componentSemantics/ComponentPropsSection.js +10 -7
  225. package/dist/inspector/componentSemantics/adapterRegistry.d.ts +2 -9
  226. package/dist/inspector/componentSemantics/adapterRegistry.js +2 -9
  227. package/dist/inspector/componentSemantics/changeModel.js +2 -4
  228. package/dist/inspector/componentSemantics/react/callsites.d.ts +28 -0
  229. package/dist/inspector/componentSemantics/react/callsites.js +261 -0
  230. package/dist/inspector/componentSemantics/react/devtoolsHook.d.ts +23 -0
  231. package/dist/inspector/componentSemantics/react/devtoolsHook.js +71 -0
  232. package/dist/inspector/componentSemantics/react/fibers.d.ts +17 -0
  233. package/dist/inspector/componentSemantics/react/fibers.js +30 -0
  234. package/dist/inspector/componentSemantics/{reactRuntime.d.ts → react/runtime.d.ts} +3 -2
  235. package/dist/inspector/componentSemantics/{reactRuntime.js → react/runtime.js} +70 -53
  236. package/dist/inspector/componentSemantics/runtimeBridge.d.ts +2 -18
  237. package/dist/inspector/componentSemantics/runtimeBridge.js +5 -19
  238. package/dist/inspector/componentSemantics/textBinding.d.ts +1 -9
  239. package/dist/inspector/componentSemantics/textBinding.js +16 -42
  240. package/dist/inspector/componentSemantics/types.d.ts +8 -27
  241. package/dist/inspector/componentSemantics/types.js +0 -1
  242. package/dist/inspector/conformance/borderCases.d.ts +0 -5
  243. package/dist/inspector/conformance/borderCases.js +0 -5
  244. package/dist/inspector/conformance/colorCases.d.ts +0 -6
  245. package/dist/inspector/conformance/colorCases.js +0 -6
  246. package/dist/inspector/conformance/fixture.d.ts +1 -5
  247. package/dist/inspector/conformance/fixture.js +1 -5
  248. package/dist/inspector/conformance/spacingCases.d.ts +0 -4
  249. package/dist/inspector/conformance/spacingCases.js +0 -4
  250. package/dist/inspector/conformance/typographyCases.d.ts +0 -5
  251. package/dist/inspector/conformance/typographyCases.js +0 -5
  252. package/dist/inspector/drafts/draftStore.d.ts +7 -21
  253. package/dist/inspector/drafts/draftStore.js +15 -5
  254. package/dist/inspector/drafts/model.d.ts +7 -15
  255. package/dist/inspector/drafts/model.js +0 -2
  256. package/dist/inspector/drafts/store.d.ts +1 -8
  257. package/dist/inspector/drafts/store.js +3 -10
  258. package/dist/inspector/editScope.d.ts +0 -1
  259. package/dist/inspector/editScope.js +0 -1
  260. package/dist/inspector/inline-text/inlineTextDiagnostics.d.ts +0 -2
  261. package/dist/inspector/inline-text/inlineTextDiagnostics.js +0 -2
  262. package/dist/inspector/inline-text/inlineTextEditor.d.ts +2 -8
  263. package/dist/inspector/inline-text/inlineTextEditor.js +26 -79
  264. package/dist/inspector/inline-text/inlineTextLifecycle.js +1 -6
  265. package/dist/inspector/inline-text/textEditChange.d.ts +0 -1
  266. package/dist/inspector/inspection/bridge.d.ts +2 -6
  267. package/dist/inspector/inspection/bridge.js +4 -12
  268. package/dist/inspector/inspection/browserCssInspection.d.ts +4 -11
  269. package/dist/inspector/inspection/browserCssInspection.js +4 -8
  270. package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +0 -7
  271. package/dist/inspector/inspection/browserCssInspectionRegistry.js +1 -16
  272. package/dist/inspector/inspection/selectionProperty.d.ts +1 -6
  273. package/dist/inspector/inspection/selectionProperty.js +1 -5
  274. package/dist/inspector/inspection/useBrowserCssInspection.d.ts +1 -5
  275. package/dist/inspector/inspection/useBrowserCssInspection.js +5 -21
  276. package/dist/inspector/iterations/capture.d.ts +0 -1
  277. package/dist/inspector/iterations/capture.js +4 -9
  278. package/dist/inspector/iterations/client.d.ts +0 -1
  279. package/dist/inspector/iterations/client.js +0 -1
  280. package/dist/inspector/iterations/coordinator.d.ts +0 -1
  281. package/dist/inspector/iterations/coordinator.js +0 -1
  282. package/dist/inspector/iterations/prompt.d.ts +0 -1
  283. package/dist/inspector/iterations/prompt.js +0 -1
  284. package/dist/inspector/overlay/DomNavigator.d.ts +3 -1
  285. package/dist/inspector/overlay/DomNavigator.js +39 -15
  286. package/dist/inspector/overlay/DropGuideOverlay.d.ts +0 -1
  287. package/dist/inspector/overlay/DropGuideOverlay.js +0 -1
  288. package/dist/inspector/overlay/MeasurementGuideOverlay.d.ts +1 -8
  289. package/dist/inspector/overlay/MeasurementGuideOverlay.js +1 -5
  290. package/dist/inspector/overlay/clickPolicy.d.ts +3 -14
  291. package/dist/inspector/overlay/clickPolicy.js +3 -14
  292. package/dist/inspector/overlay/dropGuide.d.ts +0 -3
  293. package/dist/inspector/overlay/dropGuide.js +0 -3
  294. package/dist/inspector/overlay/frameThrottle.d.ts +0 -1
  295. package/dist/inspector/overlay/frameThrottle.js +0 -1
  296. package/dist/inspector/overlay/interactionStyles.d.ts +1 -1
  297. package/dist/inspector/overlay/interactionStyles.js +2 -8
  298. package/dist/inspector/overlay/measurementGeometry.js +4 -12
  299. package/dist/inspector/overlay/selectedGeometry.d.ts +1 -6
  300. package/dist/inspector/overlay/selectedGeometry.js +1 -8
  301. package/dist/inspector/overlay/spacingGestures.d.ts +14 -21
  302. package/dist/inspector/overlay/spacingGestures.js +151 -31
  303. package/dist/inspector/overlay/structuralGestures.d.ts +2 -9
  304. package/dist/inspector/overlay/structuralGestures.js +1 -4
  305. package/dist/inspector/pageInspector.d.ts +4 -13
  306. package/dist/inspector/pageInspector.js +25 -32
  307. package/dist/inspector/projection/cssEscapes.d.ts +0 -1
  308. package/dist/inspector/projection/cssEscapes.js +2 -4
  309. package/dist/inspector/projection/draftProjection.d.ts +2 -14
  310. package/dist/inspector/projection/draftProjection.js +1 -8
  311. package/dist/inspector/projection/managedStylesheet.d.ts +1 -7
  312. package/dist/inspector/projection/managedStylesheet.js +4 -22
  313. package/dist/inspector/projection/renderedInstance.d.ts +5 -28
  314. package/dist/inspector/projection/renderedInstance.js +6 -32
  315. package/dist/inspector/projection/structuralProjection.d.ts +7 -39
  316. package/dist/inspector/projection/structuralProjection.js +17 -52
  317. package/dist/inspector/projection/textProjection.d.ts +2 -14
  318. package/dist/inspector/projection/textProjection.js +17 -70
  319. package/dist/inspector/prompt/PromptSettingsDialog.d.ts +0 -1
  320. package/dist/inspector/prompt/PromptSettingsDialog.js +0 -1
  321. package/dist/inspector/prompt/clipboardHandoff.d.ts +1 -9
  322. package/dist/inspector/prompt/clipboardHandoff.js +1 -9
  323. package/dist/inspector/prompt/generatePrompt.d.ts +1 -1
  324. package/dist/inspector/prompt/generatePrompt.js +10 -25
  325. package/dist/inspector/prompt/promptSettings.d.ts +0 -3
  326. package/dist/inspector/prompt/promptSettings.js +0 -3
  327. package/dist/inspector/runtime/devFlag.d.ts +2 -25
  328. package/dist/inspector/runtime/devFlag.js +4 -31
  329. package/dist/inspector/runtime/documentStylesheetOrder.d.ts +0 -2
  330. package/dist/inspector/runtime/editorShell.d.ts +0 -1
  331. package/dist/inspector/runtime/editorShell.js +0 -1
  332. package/dist/inspector/runtime/inspectorStorage.d.ts +1 -7
  333. package/dist/inspector/runtime/inspectorStorage.js +1 -6
  334. package/dist/inspector/runtime/ownedStylesheets.d.ts +2 -8
  335. package/dist/inspector/runtime/ownedStylesheets.js +2 -8
  336. package/dist/inspector/runtime/runtimeConfig.d.ts +12 -86
  337. package/dist/inspector/runtime/runtimeConfig.js +9 -50
  338. package/dist/inspector/runtime/runtimeIdentityClaims.d.ts +3 -13
  339. package/dist/inspector/runtime/runtimeIdentityClaims.js +9 -19
  340. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +4 -36
  341. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +7 -40
  342. package/dist/inspector/runtime/useRuntimeConfig.d.ts +1 -8
  343. package/dist/inspector/runtime/useRuntimeConfig.js +1 -8
  344. package/dist/inspector/selection/editScope.d.ts +1 -7
  345. package/dist/inspector/selection/editScope.js +2 -12
  346. package/dist/inspector/selection/editTarget.d.ts +1 -5
  347. package/dist/inspector/selection/hierarchy.d.ts +11 -11
  348. package/dist/inspector/selection/hierarchy.js +42 -24
  349. package/dist/inspector/selection/selectionStore.d.ts +0 -3
  350. package/dist/inspector/selection/selectionStore.js +5 -16
  351. package/dist/inspector/selection/sourceSite.d.ts +1 -5
  352. package/dist/inspector/selection/sourceSite.js +2 -8
  353. package/dist/inspector/selection/styleSelection.d.ts +1 -5
  354. package/dist/inspector/selection/styleSelection.js +1 -5
  355. package/dist/inspector/session/lifecycle.d.ts +1 -9
  356. package/dist/inspector/session/lifecycle.js +0 -1
  357. package/dist/inspector/session/sessionContext.d.ts +0 -4
  358. package/dist/inspector/session/sessionContext.js +0 -4
  359. package/dist/inspector/session/sessionFactory.d.ts +0 -9
  360. package/dist/inspector/session/sessionFactory.js +0 -6
  361. package/dist/inspector/settings/SettingsDialog.d.ts +0 -1
  362. package/dist/inspector/settings/SettingsDialog.js +5 -3
  363. package/dist/inspector/shell/AgentStatusButton.d.ts +3 -2
  364. package/dist/inspector/shell/AgentStatusButton.js +5 -5
  365. package/dist/inspector/shell/ChangesLog.js +3 -4
  366. package/dist/inspector/shell/CopyPromptButton.d.ts +2 -1
  367. package/dist/inspector/shell/CopyPromptButton.js +12 -11
  368. package/dist/inspector/shell/InspectorEditors.d.ts +16 -0
  369. package/dist/inspector/shell/InspectorEditors.js +14 -0
  370. package/dist/inspector/shell/InspectorPanel.d.ts +12 -0
  371. package/dist/inspector/shell/InspectorPanel.js +8 -0
  372. package/dist/inspector/shell/InspectorSelection.d.ts +24 -0
  373. package/dist/inspector/shell/InspectorSelection.js +20 -0
  374. package/dist/inspector/shell/InspectorShell.js +26 -48
  375. package/dist/inspector/shell/NudgeLogoIcon.d.ts +5 -0
  376. package/dist/inspector/shell/NudgeLogoIcon.js +5 -0
  377. package/dist/inspector/shell/PeekOriginalButton.d.ts +0 -5
  378. package/dist/inspector/shell/PeekOriginalButton.js +0 -5
  379. package/dist/inspector/shell/PeekOriginalIcon.d.ts +0 -5
  380. package/dist/inspector/shell/PeekOriginalIcon.js +0 -5
  381. package/dist/inspector/shell/PromptActionButton.d.ts +21 -0
  382. package/dist/inspector/shell/PromptActionButton.js +14 -0
  383. package/dist/inspector/shell/elementName.d.ts +5 -0
  384. package/dist/inspector/shell/elementName.js +29 -0
  385. package/dist/inspector/shell/interactionStatePreview.d.ts +1 -4
  386. package/dist/inspector/shell/interactionStatePreview.js +3 -8
  387. package/dist/inspector/shell/originalPreview.d.ts +1 -6
  388. package/dist/inspector/shell/originalPreview.js +1 -6
  389. package/dist/inspector/shell/stateValue.d.ts +1 -2
  390. package/dist/inspector/shell/stateValue.js +2 -5
  391. package/dist/inspector/shell/styleState.d.ts +1 -2
  392. package/dist/inspector/shell/styleState.js +1 -2
  393. package/dist/inspector/sketch/SketchEditor.js +0 -1
  394. package/dist/inspector/sketch/SketchFrameOverlay.js +8 -12
  395. package/dist/inspector/sketch/SketchOverlay.js +5 -6
  396. package/dist/inspector/sketch/SketchPromptPanel.d.ts +0 -1
  397. package/dist/inspector/sketch/SketchPromptPanel.js +0 -1
  398. package/dist/inspector/sketch/SketchWorkspace.js +2 -4
  399. package/dist/inspector/sketch/capture.d.ts +12 -3
  400. package/dist/inspector/sketch/capture.js +12 -11
  401. package/dist/inspector/sketch/copySketch.d.ts +1 -7
  402. package/dist/inspector/sketch/copySketch.js +2 -11
  403. package/dist/inspector/sketch/drawingTools.d.ts +1 -3
  404. package/dist/inspector/sketch/drawingTools.js +1 -2
  405. package/dist/inspector/sketch/frameHeading.d.ts +1 -7
  406. package/dist/inspector/sketch/frameHeading.js +1 -8
  407. package/dist/inspector/sketch/freehand.d.ts +0 -1
  408. package/dist/inspector/sketch/freehand.js +0 -1
  409. package/dist/inspector/sketch/geometry.d.ts +1 -6
  410. package/dist/inspector/sketch/geometry.js +1 -6
  411. package/dist/inspector/sketch/handoff.js +0 -1
  412. package/dist/inspector/sketch/history.d.ts +1 -5
  413. package/dist/inspector/sketch/history.js +1 -4
  414. package/dist/inspector/sketch/interaction.d.ts +2 -2
  415. package/dist/inspector/sketch/interaction.js +2 -2
  416. package/dist/inspector/sketch/model.d.ts +2 -9
  417. package/dist/inspector/sketch/model.js +2 -19
  418. package/dist/inspector/sketch/persistence.d.ts +0 -1
  419. package/dist/inspector/sketch/persistence.js +2 -2
  420. package/dist/inspector/sketch/raster.d.ts +1 -4
  421. package/dist/inspector/sketch/raster.js +2 -8
  422. package/dist/inspector/sketch/store.js +2 -3
  423. package/dist/inspector/sketch/videoFrames.js +2 -3
  424. package/dist/inspector/spacing/projection.d.ts +0 -8
  425. package/dist/inspector/spacing/projection.js +38 -20
  426. package/dist/inspector/styleEditors/BackgroundEditor.js +1 -1
  427. package/dist/inspector/styleEditors/BorderEditor.js +1 -6
  428. package/dist/inspector/styleEditors/ChildPlacement.d.ts +12 -0
  429. package/dist/inspector/styleEditors/ChildPlacement.js +9 -0
  430. package/dist/inspector/styleEditors/FlexControls.d.ts +35 -0
  431. package/dist/inspector/styleEditors/FlexControls.js +158 -0
  432. package/dist/inspector/styleEditors/GapField.d.ts +5 -2
  433. package/dist/inspector/styleEditors/GapField.js +3 -4
  434. package/dist/inspector/styleEditors/GridChildSection.d.ts +0 -5
  435. package/dist/inspector/styleEditors/GridChildSection.js +0 -5
  436. package/dist/inspector/styleEditors/GridPicker.d.ts +1 -1
  437. package/dist/inspector/styleEditors/GridPicker.js +2 -4
  438. package/dist/inspector/styleEditors/GridSection.d.ts +10 -8
  439. package/dist/inspector/styleEditors/GridSection.js +22 -9
  440. package/dist/inspector/styleEditors/GridValueField.d.ts +1 -5
  441. package/dist/inspector/styleEditors/GridValueField.js +2 -8
  442. package/dist/inspector/styleEditors/ImageBackgroundEditor.d.ts +0 -1
  443. package/dist/inspector/styleEditors/ImageBackgroundEditor.js +0 -1
  444. package/dist/inspector/styleEditors/LayoutBlockedIndicator.d.ts +0 -1
  445. package/dist/inspector/styleEditors/LayoutBlockedIndicator.js +0 -1
  446. package/dist/inspector/styleEditors/LayoutComboField.js +0 -5
  447. package/dist/inspector/styleEditors/LayoutModeRow.d.ts +14 -0
  448. package/dist/inspector/styleEditors/LayoutModeRow.js +60 -0
  449. package/dist/inspector/styleEditors/LayoutSection.d.ts +2 -2
  450. package/dist/inspector/styleEditors/LayoutSection.js +30 -356
  451. package/dist/inspector/styleEditors/OpacityEditor.js +7 -5
  452. package/dist/inspector/styleEditors/PositionControls.d.ts +18 -0
  453. package/dist/inspector/styleEditors/PositionControls.js +16 -0
  454. package/dist/inspector/styleEditors/SizeSection.d.ts +18 -0
  455. package/dist/inspector/styleEditors/SizeSection.js +71 -0
  456. package/dist/inspector/styleEditors/{SpacingBox.d.ts → SpacingField.d.ts} +3 -10
  457. package/dist/inspector/styleEditors/{SpacingBox.js → SpacingField.js} +15 -29
  458. package/dist/inspector/styleEditors/Typography.js +2 -4
  459. package/dist/inspector/styleEditors/borderModel.d.ts +1 -7
  460. package/dist/inspector/styleEditors/borderModel.js +2 -11
  461. package/dist/inspector/styleEditors/completeCssValue.d.ts +1 -5
  462. package/dist/inspector/styleEditors/completeCssValue.js +3 -13
  463. package/dist/inspector/styleEditors/fieldValue.d.ts +20 -0
  464. package/dist/inspector/styleEditors/fieldValue.js +26 -0
  465. package/dist/inspector/styleEditors/gradientValue.d.ts +1 -1
  466. package/dist/inspector/styleEditors/gradientValue.js +3 -2
  467. package/dist/inspector/styleEditors/gridChildModel.d.ts +7 -47
  468. package/dist/inspector/styleEditors/gridChildModel.js +6 -37
  469. package/dist/inspector/styleEditors/hiddenSizeOverrides.d.ts +5 -0
  470. package/dist/inspector/styleEditors/hiddenSizeOverrides.js +42 -0
  471. package/dist/inspector/styleEditors/inlineAuthored.d.ts +1 -8
  472. package/dist/inspector/styleEditors/inlineAuthored.js +3 -17
  473. package/dist/inspector/styleEditors/layoutMode.d.ts +15 -0
  474. package/dist/inspector/styleEditors/layoutMode.js +33 -0
  475. package/dist/inspector/styleEditors/layoutPreviewState.d.ts +0 -1
  476. package/dist/inspector/styleEditors/layoutPreviewState.js +0 -1
  477. package/dist/inspector/styleEditors/layoutValue.d.ts +2 -8
  478. package/dist/inspector/styleEditors/layoutValue.js +4 -12
  479. package/dist/inspector/styleEditors/nudgeValue.d.ts +1 -13
  480. package/dist/inspector/styleEditors/nudgeValue.js +1 -13
  481. package/dist/inspector/styleEditors/rowLookup.d.ts +1 -5
  482. package/dist/inspector/styleEditors/rowLookup.js +1 -5
  483. package/dist/inspector/styleEditors/stringRecord.d.ts +1 -2
  484. package/dist/inspector/styleEditors/stylePresence.d.ts +0 -2
  485. package/dist/inspector/styleEditors/stylePresence.js +1 -4
  486. package/dist/inspector/styleEditors/textRelevance.d.ts +1 -1
  487. package/dist/inspector/styleEditors/textRelevance.js +1 -1
  488. package/dist/inspector/styleEditors/useFieldVisibility.js +1 -2
  489. package/dist/inspector/styleEditors/useLayoutContext.d.ts +13 -0
  490. package/dist/inspector/styleEditors/useLayoutContext.js +53 -0
  491. package/dist/inspector/styleEditors/valuePolicy.d.ts +1 -5
  492. package/dist/inspector/styleEditors/valuePolicy.js +0 -1
  493. package/dist/inspector/testing.d.ts +1 -4
  494. package/dist/inspector/testing.js +1 -4
  495. package/dist/inspector/tokens/TokenChip.d.ts +1 -4
  496. package/dist/inspector/tokens/TokenChip.js +1 -4
  497. package/dist/inspector/tokens/TokenField.d.ts +4 -3
  498. package/dist/inspector/tokens/TokenField.js +19 -29
  499. package/dist/inspector/tokens/catalog.d.ts +2 -10
  500. package/dist/inspector/tokens/catalog.js +5 -12
  501. package/dist/inspector/tokens/dragPointerLock.d.ts +0 -1
  502. package/dist/inspector/tokens/dragPointerLock.js +2 -3
  503. package/dist/inspector/tokens/editActions.d.ts +1 -1
  504. package/dist/inspector/tokens/editActions.js +2 -4
  505. package/dist/inspector/tokens/resolution/cascade.d.ts +1 -5
  506. package/dist/inspector/tokens/resolution/cascade.js +1 -5
  507. package/dist/inspector/tokens/resolution/containerQueryEvaluator.d.ts +1 -5
  508. package/dist/inspector/tokens/resolution/containerQueryEvaluator.js +1 -5
  509. package/dist/inspector/tokens/resolution/cssomCollector.d.ts +4 -19
  510. package/dist/inspector/tokens/resolution/cssomCollector.js +151 -122
  511. package/dist/inspector/tokens/resolution/nestedSelectors.d.ts +1 -5
  512. package/dist/inspector/tokens/resolution/nestedSelectors.js +1 -5
  513. package/dist/inspector/tokens/resolution/ruleMatching.d.ts +4 -14
  514. package/dist/inspector/tokens/resolution/ruleMatching.js +121 -67
  515. package/dist/inspector/tokens/resolution/selectorSemantics.d.ts +3 -14
  516. package/dist/inspector/tokens/resolution/selectorSemantics.js +12 -27
  517. package/dist/inspector/tokens/resolution.d.ts +5 -24
  518. package/dist/inspector/tokens/resolution.js +16 -71
  519. package/dist/inspector/tokens/tokenAvailability.d.ts +2 -14
  520. package/dist/inspector/tokens/tokenAvailability.js +6 -38
  521. package/dist/inspector/tokens/valueSemanticsAdapter.d.ts +0 -1
  522. package/dist/inspector/tokens/valueSemanticsAdapter.js +18 -2
  523. package/dist/inspector/ui/AtRuleContext.d.ts +5 -5
  524. package/dist/inspector/ui/AtRuleContext.js +8 -6
  525. package/dist/inspector/ui/ControlSurface.d.ts +0 -4
  526. package/dist/inspector/ui/Disclosure.d.ts +0 -5
  527. package/dist/inspector/ui/Disclosure.js +0 -4
  528. package/dist/inspector/ui/InlineStyleWarning.d.ts +0 -1
  529. package/dist/inspector/ui/InspectorPopover.d.ts +1 -5
  530. package/dist/inspector/ui/InspectorPopover.js +1 -5
  531. package/dist/inspector/ui/SegmentedControl.d.ts +4 -4
  532. package/dist/inspector/ui/SegmentedControl.js +6 -4
  533. package/dist/inspector/ui/SideValuesField.d.ts +1 -6
  534. package/dist/inspector/ui/SideValuesField.js +2 -8
  535. package/dist/inspector/ui/Toast.d.ts +0 -4
  536. package/dist/inspector/ui/Toast.js +0 -4
  537. package/dist/inspector/ui/atRuleSegments.d.ts +13 -0
  538. package/dist/inspector/ui/atRuleSegments.js +34 -0
  539. package/dist/inspector/ui/classNames.d.ts +0 -1
  540. package/dist/inspector/ui/classNames.js +0 -1
  541. package/dist/inspector/ui/customCursors.d.ts +7 -1
  542. package/dist/inspector/ui/customCursors.js +2 -6
  543. package/dist/inspector/ui/styles.js +18 -20
  544. package/dist/inspector/workspace/controller.js +20 -1
  545. package/dist/inspector/workspace/handoff.d.ts +1 -5
  546. package/dist/inspector/workspace/handoff.js +1 -5
  547. package/dist/inspector/workspace/timeline.d.ts +5 -2
  548. package/dist/inspector/workspace/timeline.js +0 -1
  549. package/dist/internal/agent-protocol.d.ts +20 -42
  550. package/dist/internal/agent-protocol.js +18 -35
  551. package/dist/nudge-ui.mjs +75 -28
  552. package/dist/project/artifacts.js +24 -21
  553. package/dist/project/files.d.ts +0 -1
  554. package/dist/project/files.js +2 -9
  555. package/dist/project/identity.d.ts +1 -5
  556. package/dist/project/identity.js +1 -5
  557. package/dist/project/mcpPackage.d.ts +1 -6
  558. package/dist/project/mcpPackage.js +2 -7
  559. package/dist/project/pathPolicy.d.ts +1 -6
  560. package/dist/project/pathPolicy.js +1 -6
  561. package/dist/project/tokens.d.ts +2 -12
  562. package/dist/project/tokens.js +4 -15
  563. package/dist/transport/editor.d.ts +1 -12
  564. package/dist/transport/editor.js +2 -13
  565. package/dist/transport/index.d.ts +0 -5
  566. package/dist/transport/index.js +0 -5
  567. package/dist/transport/routes.d.ts +0 -5
  568. package/dist/transport/routes.js +0 -5
  569. package/package.json +5 -4
  570. package/dist/inspector/styleEditors/InsetSection.d.ts +0 -15
  571. package/dist/inspector/styleEditors/InsetSection.js +0 -15
  572. package/dist/inspector/styleEditors/PositionInsets.d.ts +0 -15
  573. package/dist/inspector/styleEditors/PositionInsets.js +0 -12
  574. package/dist/inspector/tokens/TokenDropdown.d.ts +0 -13
  575. package/dist/inspector/tokens/TokenDropdown.js +0 -59
@@ -1,6 +1,5 @@
1
1
  import { HTML_ARTIFACT_REVISION_ATTRIBUTE } from "../../transport/artifacts.js";
2
2
  import { FRAME_SCROLLBAR_STYLE_ID } from "../canvas/frameScrollbarStyles.js";
3
- /** Captures the visible DOM of a same-origin frame as a script-free HTML iteration. */
4
3
  export async function captureHtmlIteration(frame) {
5
4
  const source = frame.contentDocument;
6
5
  const view = frame.contentWindow;
@@ -19,11 +18,9 @@ export async function captureHtmlIteration(frame) {
19
18
  const copied = copiedElements[index];
20
19
  if (sourceElement.nodeType !== 1 || copied.nodeType !== 1)
21
20
  continue;
22
- // Renderer IDs belong to the source iframe's node registry. The iteration's
23
- // fresh registry can reuse those values for different nodes.
21
+ // Renderer IDs belong to the source iframe's registry; the iteration's fresh registry can reuse them for different nodes.
24
22
  copied.removeAttribute("data-renderer-id");
25
- // Preserve authored inline values (percentages, variables, and calc), rather
26
- // than replacing them with computed dimensions at the capture viewport.
23
+ // Keep authored inline values (percentages, variables, calc) instead of computed dimensions.
27
24
  const inline = copied.getAttribute("style");
28
25
  if (inline)
29
26
  copied.setAttribute("style", await resolveCssUrls(inline, source.baseURI, assets));
@@ -100,8 +97,7 @@ async function captureStylesheets(document, copy, sourceElements, copiedElements
100
97
  css = await response.text();
101
98
  }
102
99
  catch {
103
- // Keep the stylesheet link when CORS prevents embedding it. Its URL
104
- // still resolves against the original base and retains responsiveness.
100
+ // Keep the stylesheet link when CORS prevents embedding it; its URL still resolves against the original base.
105
101
  continue;
106
102
  }
107
103
  }
@@ -112,8 +108,7 @@ async function captureStylesheets(document, copy, sourceElements, copiedElements
112
108
  }
113
109
  }
114
110
  style.textContent = await resolveCssUrls(css, sheet.href ?? document.baseURI, assets);
115
- // Captured edits become the iteration's base. The renderer must create its own
116
- // managed stylesheet for new edits instead of clearing these captured rules.
111
+ // Captured edits become the iteration's base; the renderer must create its own managed stylesheet for new edits.
117
112
  if (style.id === "nudge-ui-styles") {
118
113
  style.removeAttribute("id");
119
114
  style.removeAttribute("data-nudge-ui");
@@ -2,7 +2,6 @@ import type { CanvasFrame } from "../canvas/canvasFrame.js";
2
2
  import { type HtmlArtifactRevision } from "../../transport/artifacts.js";
3
3
  export declare function artifactDocumentUrl(id: string): string;
4
4
  export declare function readHtmlArtifactRevision(id: string): Promise<HtmlArtifactRevision>;
5
- /** Checks the editing base before saving and promoting a captured document. */
6
5
  export declare function commitHtmlArtifact(id: string, expected: HtmlArtifactRevision, html?: string): Promise<HtmlArtifactRevision>;
7
6
  export declare function createHtmlArtifact(frame: CanvasFrame, sourceUrl: string, title: string, capturedHtml?: string): Promise<string>;
8
7
  export declare function removeHtmlArtifact(id: string): Promise<void>;
@@ -13,7 +13,6 @@ export async function readHtmlArtifactRevision(id) {
13
13
  throw new Error("The HTML iteration returned an invalid revision.");
14
14
  return revision;
15
15
  }
16
- /** Checks the editing base before saving and promoting a captured document. */
17
16
  export async function commitHtmlArtifact(id, expected, html) {
18
17
  const response = await fetch(`${NUDGE_UI_ARTIFACTS_PATH}/${id}/commit`, {
19
18
  method: "POST",
@@ -6,7 +6,6 @@ export interface HtmlIterationStorage {
6
6
  readRevision(id: string): Promise<HtmlArtifactRevision>;
7
7
  commit(id: string, expected: HtmlArtifactRevision, html?: string): Promise<HtmlArtifactRevision>;
8
8
  }
9
- /** Owns save ordering, draft settlement, and external document promotion. */
10
9
  export declare function createHtmlIterationCoordinator(storage: HtmlIterationStorage): {
11
10
  prepare(cardId: string, artifactId: string, baseRevision: string, capture: () => Promise<string>): Promise<DraftContents>;
12
11
  refresh(cardId: string, artifactId: string, baseRevision: string, available: () => boolean): Promise<boolean>;
@@ -6,7 +6,6 @@ import { projectDraftToDocument, isCanvasProjectionRevisionCurrent, projectToAll
6
6
  import { isInlineTextEditingActive } from "../inline-text/inlineTextEditor.js";
7
7
  import { captureHtmlIteration } from "./capture.js";
8
8
  import { artifactDocumentUrl, commitHtmlArtifact, readHtmlArtifactRevision } from "./client.js";
9
- /** Owns save ordering, draft settlement, and external document promotion. */
10
9
  export function createHtmlIterationCoordinator(storage) {
11
10
  const operations = new Map();
12
11
  async function serialize(id, operation) {
@@ -1,3 +1,2 @@
1
- /** Defines the edit destination for every HTML-iteration handoff, including fallback copies. */
2
1
  export declare function htmlIterationPrompt(id: string, changes: string, noInspectorChanges: boolean, hasSketches: boolean, customInstructions?: string): string;
3
2
  export declare function htmlIterationImplementationPrompt(id: string, label: string, page: string, changes: string): string;
@@ -1,5 +1,4 @@
1
1
  import { withPromptContext } from "../prompt/promptDocument.js";
2
- /** Defines the edit destination for every HTML-iteration handoff, including fallback copies. */
3
2
  export function htmlIterationPrompt(id, changes, noInspectorChanges, hasSketches, customInstructions = "") {
4
3
  const directory = `.nudge/artifacts/${id}`;
5
4
  return withPromptContext([
@@ -6,5 +6,7 @@ export interface DomNavigatorProps {
6
6
  hierarchy: HTMLElement[];
7
7
  anchor: Rect;
8
8
  project: (element: HTMLElement) => Rect | null;
9
+ /** The selection is a component or shares its source with other elements. */
10
+ linked?: boolean;
9
11
  }
10
- export declare function DomNavigator({ selected, hierarchy, anchor, project }: DomNavigatorProps): ReactElement | null;
12
+ export declare function DomNavigator({ selected, hierarchy, anchor, project, linked }: DomNavigatorProps): ReactElement | null;
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
- import { IconMenu2 } from "@tabler/icons-react";
3
+ import { IconChevronDown, IconChevronRight, IconMenu2 } from "@tabler/icons-react";
4
4
  import { Popover as BasePopover } from "@base-ui/react/popover";
5
5
  import { setSelectedElement } from "../selection/selectionStore.js";
6
- import { computeNavigationNodes } from "../selection/hierarchy.js";
6
+ import { computeNavigationParents, computeTrackedChildren, hasTrackedChildren } from "../selection/hierarchy.js";
7
7
  import { resolveSelectionFromElement } from "../selection/resolveSelection.js";
8
8
  import { portalContainer } from "../ui/portalContainer.js";
9
9
  import { cx } from "../ui/classNames.js";
@@ -19,28 +19,52 @@ function selectNode(node) {
19
19
  if (resolved)
20
20
  setSelectedElement(resolved);
21
21
  }
22
- export function DomNavigator({ selected, hierarchy, anchor, project }) {
23
- const nodes = computeNavigationNodes(selected.domElement, hierarchy);
24
- const parents = nodes.filter((node) => node.direction === "up");
25
- const children = nodes.filter((node) => node.direction === "down");
22
+ export function DomNavigator({ selected, hierarchy, anchor, project, linked = false }) {
23
+ const children = computeTrackedChildren(selected.domElement);
24
+ const parents = computeNavigationParents(hierarchy, children.elements.length > 0);
26
25
  const [expanded, setExpanded] = useState(false);
27
26
  const [hovered, setHovered] = useState(null);
28
- if (nodes.length === 0)
27
+ const [opened, setOpened] = useState(new Set());
28
+ if (parents.length === 0 && children.elements.length === 0)
29
29
  return null;
30
30
  const preview = hovered ? project(hovered) : null;
31
31
  const setOpen = (next) => {
32
32
  setExpanded(next);
33
- if (!next)
33
+ if (!next) {
34
34
  setHovered(null);
35
+ setOpened(new Set());
36
+ }
35
37
  };
36
- const renderItem = (node, depth) => {
37
- const current = node === null;
38
- const element = current ? selected.domElement : node.element;
39
- return (_jsx("button", { type: "button", className: cx("dom-navigator__item", current && "dom-navigator__item--selected"), "data-test": "dom-navigator-item", "data-current": current ? "true" : undefined, "data-direction": node?.direction, "data-depth": depth, "data-cid": element.getAttribute("data-cid") ?? undefined, style: { paddingLeft: `calc(var(--space-8) + ${depth * 16}px)` }, role: "menuitem", "aria-current": current ? "true" : undefined, onMouseEnter: () => setHovered(current ? null : element), onClick: () => {
38
+ const toggleOpened = (element) => {
39
+ setOpened((current) => {
40
+ const next = new Set(current);
41
+ if (!next.delete(element))
42
+ next.add(element);
43
+ return next;
44
+ });
45
+ };
46
+ const renderItem = (key, element, depth) => {
47
+ const current = element === null;
48
+ const target = element ?? selected.domElement;
49
+ return (_jsx("button", { type: "button", className: cx("dom-navigator__item", current && "dom-navigator__item--selected"), "data-test": "dom-navigator-item", "data-current": current ? "true" : undefined, "data-depth": depth, "data-cid": target.getAttribute("data-cid") ?? undefined, style: { paddingLeft: `calc(var(--space-8) + ${depth * 16}px)` }, role: "menuitem", "aria-current": current ? "true" : undefined, onMouseEnter: () => setHovered(current ? null : target), onClick: () => {
40
50
  if (!current)
41
- selectNode(element);
51
+ selectNode(target);
42
52
  setOpen(false);
43
- }, children: _jsx("span", { children: nodeDescription(element) }) }, current ? "current" : `${node.direction}-${node.depth}-${element.getAttribute("data-cid") ?? element.localName}`));
53
+ }, children: _jsx("span", { children: nodeDescription(target) }) }, key));
44
54
  };
45
- return (_jsxs(_Fragment, { children: [preview ? _jsx("div", { className: "dom-navigator-preview", "data-test": "dom-navigator-preview", style: preview, "aria-hidden": "true" }) : null, _jsx("div", { className: "dom-navigator", "data-test": "dom-navigator", "aria-label": "DOM navigator", style: { left: Math.max(4, anchor.left), top: Math.max(4, anchor.top - 28) }, children: _jsxs(BasePopover.Root, { open: expanded, onOpenChange: setOpen, children: [_jsx(BasePopover.Trigger, { render: _jsx("button", { type: "button", className: "dom-navigator__trigger", "data-test": "dom-navigator-trigger", "aria-label": "Open DOM navigator", "aria-haspopup": "menu", "aria-expanded": expanded, onMouseEnter: () => setHovered(null) }), children: _jsx(IconMenu2, { size: 14, "aria-hidden": "true" }) }), _jsx("span", { className: "dom-navigator__label", children: nodeDescription(selected.domElement) }), _jsx(BasePopover.Portal, { container: portalContainer(), children: _jsx(BasePopover.Positioner, { className: "dom-navigator__positioner", side: "top", align: "start", sideOffset: 4, children: _jsxs(BasePopover.Popup, { className: "dom-navigator__menu", role: "menu", "aria-label": "DOM navigator", onMouseLeave: () => setHovered(null), children: [parents.slice().reverse().map((node) => renderItem(node, parents.length - node.depth)), renderItem(null, parents.length), children.map((node) => renderItem(node, parents.length + node.depth))] }) }) })] }) })] }));
55
+ const renderChildren = (list, depth, path) => [
56
+ ...list.elements.flatMap((element, index) => {
57
+ const key = `${path}/${index}`;
58
+ const nested = opened.has(element) ? computeTrackedChildren(element) : null;
59
+ const expandable = hasTrackedChildren(element);
60
+ return [
61
+ _jsxs("div", { className: "dom-navigator__row", "data-test": "dom-navigator-row", children: [expandable ? (_jsx("button", { type: "button", className: "dom-navigator__expander", "data-test": "dom-navigator-expander", "aria-label": `${nested ? "Collapse" : "Expand"} ${nodeDescription(element)}`, "aria-expanded": nested !== null, style: { left: `calc(var(--space-4) + ${(depth - 1) * 16}px)` }, onMouseEnter: () => setHovered(null), onClick: () => toggleOpened(element), children: nested ? _jsx(IconChevronDown, { size: 12, "aria-hidden": "true" }) : _jsx(IconChevronRight, { size: 12, "aria-hidden": "true" }) })) : null, renderItem(key, element, depth)] }, key),
62
+ ...(nested ? renderChildren(nested, depth + 1, key) : []),
63
+ ];
64
+ }),
65
+ ...(list.hidden > 0
66
+ ? [(_jsxs("div", { className: "dom-navigator__more", "data-test": "dom-navigator-more", style: { paddingLeft: `calc(var(--space-8) + ${depth * 16}px)` }, children: ["+", list.hidden, " more"] }, `${path}/more`))]
67
+ : []),
68
+ ];
69
+ return (_jsxs(_Fragment, { children: [preview ? _jsx("div", { className: "dom-navigator-preview", "data-test": "dom-navigator-preview", style: preview, "aria-hidden": "true" }) : null, _jsx("div", { className: "dom-navigator", "data-test": "dom-navigator", "data-linked": linked ? "true" : undefined, "aria-label": "DOM navigator", style: { left: Math.max(4, anchor.left), top: Math.max(4, anchor.top - 28) }, children: _jsxs(BasePopover.Root, { open: expanded, onOpenChange: setOpen, children: [_jsx(BasePopover.Trigger, { render: _jsx("button", { type: "button", className: "dom-navigator__trigger", "data-test": "dom-navigator-trigger", "aria-label": "Open DOM navigator", "aria-haspopup": "menu", "aria-expanded": expanded, onMouseEnter: () => setHovered(null) }), children: _jsx(IconMenu2, { size: 14, "aria-hidden": "true" }) }), _jsx("span", { className: "dom-navigator__label", children: nodeDescription(selected.domElement) }), _jsx(BasePopover.Portal, { container: portalContainer(), children: _jsx(BasePopover.Positioner, { className: "dom-navigator__positioner", side: "top", align: "start", sideOffset: 4, children: _jsxs(BasePopover.Popup, { className: "dom-navigator__menu", role: "menu", "aria-label": "DOM navigator", onMouseLeave: () => setHovered(null), children: [parents.slice().reverse().map((element, index) => renderItem(`up-${index}`, element, index)), renderItem("current", null, parents.length), renderChildren(children, parents.length + 1, "down")] }) }) })] }) })] }));
46
70
  }
@@ -12,6 +12,5 @@ interface DropGuideOverlayProps {
12
12
  targetClassName?: string;
13
13
  targetTestId?: string;
14
14
  }
15
- /** Shared visual wrapper; each view only supplies its projected viewport geometry. */
16
15
  export declare function DropGuideOverlay({ guide, lineClassName, lineTestId, targetClassName, targetTestId, }: DropGuideOverlayProps): ReactElement | null;
17
16
  export {};
@@ -9,7 +9,6 @@ function fixedRect(rect) {
9
9
  pointerEvents: "none",
10
10
  };
11
11
  }
12
- /** Shared visual wrapper; each view only supplies its projected viewport geometry. */
13
12
  export function DropGuideOverlay({ guide, lineClassName, lineTestId, targetClassName, targetTestId, }) {
14
13
  if (!guide)
15
14
  return null;
@@ -2,18 +2,11 @@ import { type ReactElement } from "react";
2
2
  import type { Rect } from "./overlayGeometry.js";
3
3
  import type { MeasurementSegment } from "./measurementGeometry.js";
4
4
  interface MeasurementGuideOverlayProps {
5
- /** The selected element in the overlay's screen coordinate system. */
6
5
  selectedRect: Rect;
7
- /** The viewport that alignment guides should span. */
8
6
  guideViewport?: Rect;
9
- /** Measurement geometry in the overlay's screen coordinate system. */
10
7
  segments: MeasurementSegment[];
11
8
  testId?: string;
12
9
  }
13
- /**
14
- * Renders measurement geometry over a viewport. The Inspect surface passes
15
- * browser coordinates directly; Canvas projects iframe-local coordinates into
16
- * the same screen coordinate system before rendering here.
17
- */
10
+ /** Geometry arrives in the overlay's screen coordinates; Canvas projects iframe-local coordinates before rendering here. */
18
11
  export declare function MeasurementGuideOverlay({ selectedRect, guideViewport, segments, testId, }: MeasurementGuideOverlayProps): ReactElement;
19
12
  export {};
@@ -1,10 +1,6 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from "react";
3
- /**
4
- * Renders measurement geometry over a viewport. The Inspect surface passes
5
- * browser coordinates directly; Canvas projects iframe-local coordinates into
6
- * the same screen coordinate system before rendering here.
7
- */
3
+ /** Geometry arrives in the overlay's screen coordinates; Canvas projects iframe-local coordinates before rendering here. */
8
4
  export function MeasurementGuideOverlay({ selectedRect, guideViewport, segments, testId = "measurement-overlay", }) {
9
5
  const [windowViewport, setWindowViewport] = useState(() => ({
10
6
  width: window.innerWidth,
@@ -1,23 +1,12 @@
1
1
  export type ClickModifiers = Pick<MouseEvent, "ctrlKey" | "metaKey" | "shiftKey">;
2
- /**
3
- * Press and release gestures that application widgets use to open menus,
4
- * dialogs, and popovers before any `click` fires. The Design tool keeps them
5
- * from reaching the application.
6
- */
2
+ /** Press/release gestures widgets use to open menus and popovers before any `click` fires. */
7
3
  export declare const APPLICATION_GESTURE_EVENTS: readonly ["pointerdown", "pointerup", "mousedown", "mouseup", "touchstart", "touchend", "auxclick", "contextmenu"];
8
4
  /** Command/Ctrl-click selects the deepest tracked element unless Shift is held. */
9
5
  export declare function isDeepSelectionClick(event: ClickModifiers): boolean;
10
- /**
11
- * Only input from a person becomes inspector selection. Script events such
12
- * as `element.click()` keep reaching the application.
13
- */
6
+ /** Synthetic events like `element.click()` keep reaching the application. */
14
7
  export declare function isUserClick(event: Pick<Event, "isTrusted">): boolean;
15
8
  /** The active inline text editor needs native press events for caret placement. */
16
9
  export declare function isInlineEditorTarget(target: EventTarget | null): boolean;
17
- /**
18
- * Keeps an application press gesture from reaching application listeners.
19
- * Listeners on the document itself, including the inspector's own, still run.
20
- */
10
+ /** Document-level listeners, including the inspector's own, still run. */
21
11
  export declare function blockApplicationGesture(event: Event): void;
22
- /** Prevent an inspected application click from reaching the host application. */
23
12
  export declare function blockApplicationClick(event: MouseEvent): void;
@@ -1,8 +1,4 @@
1
- /**
2
- * Press and release gestures that application widgets use to open menus,
3
- * dialogs, and popovers before any `click` fires. The Design tool keeps them
4
- * from reaching the application.
5
- */
1
+ /** Press/release gestures widgets use to open menus and popovers before any `click` fires. */
6
2
  export const APPLICATION_GESTURE_EVENTS = [
7
3
  "pointerdown",
8
4
  "pointerup",
@@ -17,10 +13,7 @@ export const APPLICATION_GESTURE_EVENTS = [
17
13
  export function isDeepSelectionClick(event) {
18
14
  return (event.ctrlKey || event.metaKey) && !event.shiftKey;
19
15
  }
20
- /**
21
- * Only input from a person becomes inspector selection. Script events such
22
- * as `element.click()` keep reaching the application.
23
- */
16
+ /** Synthetic events like `element.click()` keep reaching the application. */
24
17
  export function isUserClick(event) {
25
18
  return event.isTrusted;
26
19
  }
@@ -30,14 +23,10 @@ export function isInlineEditorTarget(target) {
30
23
  && target instanceof Element
31
24
  && target.closest('[data-inline-editor="true"]') !== null;
32
25
  }
33
- /**
34
- * Keeps an application press gesture from reaching application listeners.
35
- * Listeners on the document itself, including the inspector's own, still run.
36
- */
26
+ /** Document-level listeners, including the inspector's own, still run. */
37
27
  export function blockApplicationGesture(event) {
38
28
  event.stopPropagation();
39
29
  }
40
- /** Prevent an inspected application click from reaching the host application. */
41
30
  export function blockApplicationClick(event) {
42
31
  event.preventDefault();
43
32
  event.stopPropagation();
@@ -14,9 +14,6 @@ export interface DropGuide {
14
14
  line: DropGuideRect;
15
15
  target: DropGuideRect;
16
16
  }
17
- /** Publishes one guide model from a DOM insertion location. */
18
17
  export declare function showDropGuide(owner: DropGuideOwner, document: Document, drop: DropLocation): void;
19
- /** Clears only the guide belonging to the caller, preserving another active view. */
20
18
  export declare function clearDropGuide(owner: DropGuideOwner): void;
21
- /** Subscribes a visual adapter to its guide without exposing shared mutable state. */
22
19
  export declare function useDropGuide(owner: DropGuideOwner): DropGuide | null;
@@ -17,7 +17,6 @@ function sameRect(left, right) {
17
17
  && left.width === right.width
18
18
  && left.height === right.height;
19
19
  }
20
- /** Publishes one guide model from a DOM insertion location. */
21
20
  export function showDropGuide(owner, document, drop) {
22
21
  const target = drop.parent.getBoundingClientRect();
23
22
  const nextGuide = {
@@ -35,14 +34,12 @@ export function showDropGuide(owner, document, drop) {
35
34
  currentGuide = nextGuide;
36
35
  notify();
37
36
  }
38
- /** Clears only the guide belonging to the caller, preserving another active view. */
39
37
  export function clearDropGuide(owner) {
40
38
  if (currentGuide?.owner !== owner)
41
39
  return;
42
40
  currentGuide = null;
43
41
  notify();
44
42
  }
45
- /** Subscribes a visual adapter to its guide without exposing shared mutable state. */
46
43
  export function useDropGuide(owner) {
47
44
  return useSyncExternalStore(subscribe, () => snapshotFor(owner), () => null);
48
45
  }
@@ -2,7 +2,6 @@ export interface FrameScheduler {
2
2
  request(callback: FrameRequestCallback): number;
3
3
  cancel(handle: number): void;
4
4
  }
5
- /** Retains only the newest value and performs at most one update per frame. */
6
5
  export declare function createFrameThrottle<T>(run: (value: T) => void, scheduler?: FrameScheduler): {
7
6
  schedule(value: T): void;
8
7
  flush: () => void;
@@ -2,7 +2,6 @@ const browserScheduler = {
2
2
  request: (callback) => requestAnimationFrame(callback),
3
3
  cancel: (handle) => cancelAnimationFrame(handle),
4
4
  };
5
- /** Retains only the newest value and performs at most one update per frame. */
6
5
  export function createFrameThrottle(run, scheduler = browserScheduler) {
7
6
  let handle = 0;
8
7
  let latest = null;
@@ -1,3 +1,3 @@
1
1
  export declare function isInteractionStylesInstalled(doc?: Document): boolean;
2
- /** Installs temporary interaction affordances without mutating tracked nodes. */
2
+ /** Installs affordances via a stylesheet, leaving tracked nodes untouched. */
3
3
  export declare function installInteractionStyles(doc?: Document): () => void;
@@ -20,13 +20,7 @@ const INTERACTION_CSS = `
20
20
  outline: 0 !important;
21
21
  }
22
22
 
23
- /*
24
- * An empty rendered-text projection has no glyph for the browser to hit
25
- * test. The projection module inserts this inspector-owned slot beside the
26
- * original empty Text node. It is intentionally borderless: the blue fill
27
- * is the affordance, while the normal selected-element outline remains a
28
- * separate overlay.
29
- */
23
+ /* Inspector-owned hit target for empty text projections, which have no glyph to hit test. */
30
24
  [data-empty-text] {
31
25
  display: inline-block !important;
32
26
  width: 0.75em !important;
@@ -46,7 +40,7 @@ const INTERACTION_CSS = `
46
40
  export function isInteractionStylesInstalled(doc = document) {
47
41
  return interactionStyleDocuments.has(doc);
48
42
  }
49
- /** Installs temporary interaction affordances without mutating tracked nodes. */
43
+ /** Installs affordances via a stylesheet, leaving tracked nodes untouched. */
50
44
  export function installInteractionStyles(doc = document) {
51
45
  if (!allowsStyleElements(doc))
52
46
  return installAdoptedInteractionStyles(doc);
@@ -22,11 +22,7 @@ function centerFromBounds(range) {
22
22
  function hasLength(from, to) {
23
23
  return Math.abs(to - from) > EPSILON;
24
24
  }
25
- /**
26
- * Finds the labelled ruler(s) for one axis. A positive gap gets a single
27
- * nearest-edge ruler. On overlap, the measurement changes to the hovered
28
- * element's far edge; containment has two meaningful inset measurements.
29
- */
25
+ /** On overlap the ruler switches to the hovered element's far edge; containment gets two inset measurements. */
30
26
  function getAxisRulers(selected, hovered, selectedInner, hoveredInner) {
31
27
  if (selected.max < hovered.min - EPSILON) {
32
28
  return [{ selectedEdge: selected.max, hoveredEdge: hovered.min }];
@@ -56,8 +52,8 @@ function getAxisRulers(selected, hovered, selectedInner, hoveredInner) {
56
52
  { selectedEdge: selected.max, hoveredEdge: hoveredInner.max },
57
53
  ].filter((ruler) => hasLength(ruler.selectedEdge, ruler.hoveredEdge));
58
54
  }
59
- // The boxes partially overlap. Measure from the selected outside edge to
60
- // the hover's far edge rather than rendering a zero or negative gap.
55
+ // Partially overlapping boxes measure from the selected outside edge to the
56
+ // hover's far edge rather than a zero or negative gap.
61
57
  if (centerFromBounds(selected) >= centerFromBounds(hovered)) {
62
58
  return [{ selectedEdge: selected.min, hoveredEdge: hovered.min }];
63
59
  }
@@ -74,11 +70,7 @@ function createSegment(id, kind, axis, from, to, cross) {
74
70
  ...(kind === "ruler" ? { distance: Math.abs(to - from) } : {}),
75
71
  };
76
72
  }
77
- /**
78
- * Solid rulers always run through the selected element's centerline. If the
79
- * centerline does not meet the hovered edge, a perpendicular dotted extension
80
- * starts at that hovered edge and joins the ruler.
81
- */
73
+ /** A perpendicular dotted extension joins the centerline ruler when it misses the hovered edge. */
82
74
  function appendPrimaryRulers(segments, selected, hovered, axis, options) {
83
75
  const crossAxis = axis === "horizontal" ? "vertical" : "horizontal";
84
76
  const cross = center(selected, crossAxis);
@@ -1,7 +1,2 @@
1
- /**
2
- * Watches the small set of browser events that can change a selected element's
3
- * viewport rect without changing its selection identity. Structural gestures
4
- * can move a selected element between containers, so the child-list observer
5
- * follows the element's current parent after each mutation.
6
- */
1
+ /** Follows the element's current parent after mutations, since gestures can move it between containers. */
7
2
  export declare function observeSelectedGeometry(element: HTMLElement, onChange: () => void): () => void;
@@ -1,14 +1,7 @@
1
1
  import { getElementWindow } from "../runtime/domRealm.js";
2
- /**
3
- * Watches the small set of browser events that can change a selected element's
4
- * viewport rect without changing its selection identity. Structural gestures
5
- * can move a selected element between containers, so the child-list observer
6
- * follows the element's current parent after each mutation.
7
- */
2
+ /** Follows the element's current parent after mutations, since gestures can move it between containers. */
8
3
  export function observeSelectedGeometry(element, onChange) {
9
4
  const view = getElementWindow(element);
10
- // getElementWindow returns the cross-realm Window interface, while the
11
- // project-wide browser global also carries the observer constructors.
12
5
  // SAFETY: view is a same-realm Window, and the runtime realm exposes the observer constructors as project-wide globals.
13
6
  const { ResizeObserver: ResizeObserverCtor, MutationObserver: MutationObserverCtor } = view;
14
7
  let frame = null;
@@ -1,13 +1,13 @@
1
1
  import type { Rect } from "./overlayGeometry.js";
2
- export type PaddingSide = "top" | "right" | "bottom" | "left";
3
- export type SpacingKind = "padding" | "gap";
2
+ export type BoxSide = "top" | "right" | "bottom" | "left";
3
+ export type SpacingKind = "padding" | "margin" | "gap";
4
4
  export type SpacingAxis = "horizontal" | "vertical";
5
5
  export type SpacingDragAxis = "x" | "y";
6
- export type SpacingProperty = `padding-${PaddingSide}` | "row-gap" | "column-gap";
6
+ export type SpacingProperty = `padding-${BoxSide}` | `margin-${BoxSide}` | "row-gap" | "column-gap";
7
7
  export interface SpacingGuideData {
8
8
  kind: SpacingKind;
9
9
  property: SpacingProperty;
10
- side: PaddingSide | null;
10
+ side: BoxSide | null;
11
11
  axis: SpacingAxis;
12
12
  dragAxis: SpacingDragAxis;
13
13
  value: number;
@@ -16,7 +16,7 @@ export interface SpacingGuideData {
16
16
  guide: Rect;
17
17
  affectedGuides: Rect[];
18
18
  affectedAreas: Rect[];
19
- /** A 16px-thick pointer target centred on the visible, up-to-40px guide handle. */
19
+ /** Pointer target centred on the visible guide handle. */
20
20
  hit: Rect;
21
21
  }
22
22
  export interface SpacingAffordance extends SpacingGuideData {
@@ -25,26 +25,19 @@ export interface SpacingAffordance extends SpacingGuideData {
25
25
  export interface SpacingDescriptor {
26
26
  kind: SpacingKind;
27
27
  property: SpacingProperty;
28
- side: PaddingSide | null;
28
+ side: BoxSide | null;
29
29
  }
30
30
  export declare const SPACING_GUIDE_HANDLE_LENGTH = 40;
31
- /** Finds the spacing target under a document-local pointer location. */
32
31
  export declare function getSpacingAffordanceAtPoint(doc: Document, x: number, y: number): SpacingAffordance | null;
33
- /** Finds the spacing target whose visible padding or gap area contains the
34
- * pointer, even when the pointer is outside the drag handle. Hover previews use
35
- * this; drags and the resize cursor still require the handle hit from
36
- * getSpacingAffordanceAtPoint. */
32
+ /** Hover previews use this; drags and the resize cursor require the handle from getSpacingAffordanceAtPoint. */
37
33
  export declare function getSpacingHoverAtPoint(doc: Document, x: number, y: number): SpacingAffordance | null;
38
- /** Re-resolves a renderer-reported spacing descriptor in its owner document. */
34
+ export declare function getElementSpacingHandleAtPoint(doc: Document, element: HTMLElement, x: number, y: number): SpacingAffordance | null;
35
+ export declare function getElementSpacingAtPoint(doc: Document, element: HTMLElement, x: number, y: number): {
36
+ handle: SpacingAffordance | null;
37
+ area: SpacingAffordance | null;
38
+ };
39
39
  export declare function getSpacingAffordanceForDescriptor(element: HTMLElement, descriptor: SpacingDescriptor): SpacingAffordance | null;
40
- /**
41
- * Calculates a direct-manipulation value, optionally stepping changes by 8px.
42
- * While Shift is held the value snaps to a step anchor: the first displacement
43
- * picks the nearest multiple of 8 from the authored value in the drag
44
- * direction (ties resolve upward), and further movement adds whole 8px steps
45
- * from that anchor, so the result is always a multiple of 8 once the drag
46
- * moves. At the exact start point the authored value is preserved.
47
- */
40
+ /** With Shift, snaps to a multiple of 8 from the authored value in the drag direction. */
48
41
  export declare function spacingValueForDrag(affordance: Pick<SpacingAffordance, "dragAxis" | "direction" | "value">, start: {
49
42
  x: number;
50
43
  y: number;
@@ -53,5 +46,5 @@ export declare function spacingValueForDrag(affordance: Pick<SpacingAffordance,
53
46
  y: number;
54
47
  }, shiftKey?: boolean): number;
55
48
  export declare function spacingValueCss(value: number): string;
56
- /** Serializes the stable part of an affordance for renderer-to-controller messages. */
49
+ /** The stable subset sent across the renderer boundary. */
57
50
  export declare function toSpacingDescriptor(affordance: SpacingAffordance): SpacingDescriptor;