nudge-ui 0.2.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (642) hide show
  1. package/dist/cli/agentCommand.d.ts +0 -1
  2. package/dist/cli/agentCommand.js +4 -29
  3. package/dist/client.mjs +987 -221
  4. package/dist/compiler/ast.d.ts +0 -6
  5. package/dist/compiler/ast.js +0 -5
  6. package/dist/compiler/componentContractTypes.d.ts +11 -5
  7. package/dist/compiler/componentContracts.js +3 -9
  8. package/dist/compiler/componentInstrumentation.d.ts +2 -13
  9. package/dist/compiler/componentInstrumentation.js +3 -12
  10. package/dist/compiler/componentPolicyResolution.d.ts +3 -22
  11. package/dist/compiler/componentPolicyResolution.js +6 -38
  12. package/dist/compiler/identityAttributes.d.ts +2 -0
  13. package/dist/compiler/identityAttributes.js +2 -0
  14. package/dist/compiler/index.d.ts +0 -1
  15. package/dist/compiler/index.js +0 -1
  16. package/dist/compiler/packageComponentContracts.d.ts +10 -19
  17. package/dist/compiler/packageComponentContracts.js +60 -43
  18. package/dist/compiler/reactComponentProtocols.d.ts +0 -7
  19. package/dist/compiler/reactComponentProtocols.js +0 -7
  20. package/dist/compiler/reactIdentity.d.ts +2 -2
  21. package/dist/compiler/reactIdentity.js +41 -43
  22. package/dist/compiler/sourcePaths.d.ts +4 -8
  23. package/dist/compiler/sourcePaths.js +6 -8
  24. package/dist/css/dialects/index.d.ts +2 -21
  25. package/dist/css/dialects/index.js +2 -9
  26. package/dist/css/dialects/tailwind.d.ts +2 -16
  27. package/dist/css/dialects/tailwind.js +2 -25
  28. package/dist/css/dialects/vanillaExtract.d.ts +1 -9
  29. package/dist/css/dialects/vanillaExtract.js +0 -1
  30. package/dist/css/index.d.ts +0 -8
  31. package/dist/css/index.js +0 -8
  32. package/dist/css/model/index.d.ts +6 -38
  33. package/dist/css/model/index.js +0 -9
  34. package/dist/css/token-inventory/index.d.ts +0 -23
  35. package/dist/css/token-inventory/index.js +0 -23
  36. package/dist/css/token-inventory/inventory.js +4 -16
  37. package/dist/css/token-inventory/parseStylesheet.d.ts +1 -9
  38. package/dist/css/token-inventory/parseStylesheet.js +5 -42
  39. package/dist/css/token-inventory/policy.d.ts +2 -39
  40. package/dist/css/token-inventory/policy.js +2 -39
  41. package/dist/css/token-inventory/types.d.ts +2 -15
  42. package/dist/css/value-semantics/borderSemantics.d.ts +1 -8
  43. package/dist/css/value-semantics/borderSemantics.js +5 -23
  44. package/dist/css/value-semantics/boxSemantics.d.ts +2 -25
  45. package/dist/css/value-semantics/boxSemantics.js +1 -7
  46. package/dist/css/value-semantics/colorSemantics.d.ts +6 -60
  47. package/dist/css/value-semantics/colorSemantics.js +9 -40
  48. package/dist/css/value-semantics/cssSyntax.d.ts +10 -10
  49. package/dist/css/value-semantics/cssSyntax.js +39 -11
  50. package/dist/css/value-semantics/fontSemantics.d.ts +3 -19
  51. package/dist/css/value-semantics/fontSemantics.js +7 -25
  52. package/dist/css/value-semantics/index.d.ts +1 -12
  53. package/dist/css/value-semantics/index.js +1 -12
  54. package/dist/css/value-semantics/propertyPolicy.d.ts +6 -53
  55. package/dist/css/value-semantics/propertyPolicy.js +47 -59
  56. package/dist/css/value-semantics/stringMaps.d.ts +0 -1
  57. package/dist/css/value-semantics/structuredValues.d.ts +3 -37
  58. package/dist/css/value-semantics/structuredValues.js +6 -17
  59. package/dist/css/value-semantics/tokenInterpretation.d.ts +8 -50
  60. package/dist/css/value-semantics/tokenInterpretation.js +7 -21
  61. package/dist/hosts/astro/astroRuntimeConfig.d.ts +0 -1
  62. package/dist/hosts/astro/astroRuntimeConfig.js +0 -1
  63. package/dist/hosts/astro/clientAsset.d.ts +1 -5
  64. package/dist/hosts/astro/clientAsset.js +1 -5
  65. package/dist/hosts/astro/clientTransport.d.ts +0 -1
  66. package/dist/hosts/astro/clientTransport.js +4 -9
  67. package/dist/hosts/astro/integration.d.ts +2 -28
  68. package/dist/hosts/astro/integration.js +7 -36
  69. package/dist/hosts/astro/markdownIdentity.d.ts +0 -3
  70. package/dist/hosts/astro/markdownIdentity.js +0 -3
  71. package/dist/hosts/astro/middleware.d.ts +1 -12
  72. package/dist/hosts/astro/middleware.js +1 -12
  73. package/dist/hosts/astro/projectContext.d.ts +1 -9
  74. package/dist/hosts/astro/projectContext.js +2 -11
  75. package/dist/hosts/astro/responseInstrumentation.d.ts +4 -33
  76. package/dist/hosts/astro/responseInstrumentation.js +5 -34
  77. package/dist/hosts/environment.d.ts +0 -8
  78. package/dist/hosts/environment.js +0 -1
  79. package/dist/hosts/next/index.js +1 -3
  80. package/dist/hosts/next/loader.d.ts +5 -44
  81. package/dist/hosts/next/loader.js +22 -103
  82. package/dist/hosts/next/loaders/identity-loader.cjs +111 -65
  83. package/dist/hosts/next/loaders/loader-plugin.cjs +111 -65
  84. package/dist/hosts/next/manifest.d.ts +2 -16
  85. package/dist/hosts/next/manifest.js +18 -20
  86. package/dist/hosts/next/mount.d.ts +1 -11
  87. package/dist/hosts/next/mount.js +1 -11
  88. package/dist/hosts/next/repositoryScope.d.ts +2 -17
  89. package/dist/hosts/next/repositoryScope.js +2 -17
  90. package/dist/hosts/next/sidecar.d.ts +0 -13
  91. package/dist/hosts/next/sidecar.js +25 -110
  92. package/dist/hosts/next/wrapper.d.ts +0 -31
  93. package/dist/hosts/next/wrapper.js +14 -71
  94. package/dist/hosts/projectBridge.d.ts +0 -2
  95. package/dist/hosts/projectBridge.js +3 -19
  96. package/dist/hosts/reactRendererCapture.d.ts +2 -0
  97. package/dist/hosts/reactRendererCapture.js +12 -0
  98. package/dist/hosts/static/cli.d.ts +0 -4
  99. package/dist/hosts/static/cli.js +0 -3
  100. package/dist/hosts/static/html/bootstrap.d.ts +1 -18
  101. package/dist/hosts/static/html/bootstrap.js +2 -14
  102. package/dist/hosts/static/manifest.d.ts +2 -15
  103. package/dist/hosts/static/manifest.js +5 -18
  104. package/dist/hosts/static/server.d.ts +4 -38
  105. package/dist/hosts/static/server.js +17 -67
  106. package/dist/hosts/vite/index.d.ts +0 -10
  107. package/dist/hosts/vite/index.js +0 -10
  108. package/dist/hosts/vite/react.d.ts +4 -17
  109. package/dist/hosts/vite/react.js +18 -35
  110. package/dist/hosts/vite/tokens/activeStylesheets.d.ts +1 -10
  111. package/dist/hosts/vite/tokens/activeStylesheets.js +3 -8
  112. package/dist/hosts/vite/tokens/fileMap.d.ts +0 -1
  113. package/dist/hosts/vite/tokens/viteStylesheetArtifacts.d.ts +2 -15
  114. package/dist/hosts/vite/tokens/viteStylesheetArtifacts.js +3 -10
  115. package/dist/hosts/vite/vite.d.ts +5 -26
  116. package/dist/hosts/vite/vite.js +44 -80
  117. package/dist/html/dom.d.ts +0 -1
  118. package/dist/html/dom.js +0 -1
  119. package/dist/html/identity.d.ts +1 -15
  120. package/dist/html/identity.js +1 -8
  121. package/dist/html/insertions.d.ts +2 -8
  122. package/dist/html/insertions.js +1 -1
  123. package/dist/inspector/agent/McpConnectionDialog.d.ts +1 -6
  124. package/dist/inspector/agent/McpConnectionDialog.js +8 -9
  125. package/dist/inspector/agent/activity.d.ts +2 -2
  126. package/dist/inspector/agent/activity.js +4 -3
  127. package/dist/inspector/agent/client.d.ts +3 -27
  128. package/dist/inspector/agent/client.js +43 -91
  129. package/dist/inspector/agent/connectionStatus.d.ts +3 -2
  130. package/dist/inspector/agent/connectionStatus.js +25 -1
  131. package/dist/inspector/agent/httpTransport.d.ts +0 -8
  132. package/dist/inspector/agent/httpTransport.js +42 -176
  133. package/dist/inspector/agent/protocol.d.ts +1 -10
  134. package/dist/inspector/agent/protocol.js +1 -9
  135. package/dist/inspector/agent/verification.d.ts +3 -20
  136. package/dist/inspector/agent/verification.js +10 -43
  137. package/dist/inspector/boot.d.ts +5 -0
  138. package/dist/inspector/boot.js +289 -0
  139. package/dist/inspector/canvas/AgentActivityOverlay.d.ts +3 -2
  140. package/dist/inspector/canvas/AgentActivityOverlay.js +7 -4
  141. package/dist/inspector/canvas/CanvasCard.js +26 -24
  142. package/dist/inspector/canvas/CanvasElementOverlay.js +196 -174
  143. package/dist/inspector/canvas/CanvasToolbar.js +2 -1
  144. package/dist/inspector/canvas/CanvasWorkspace.js +87 -124
  145. package/dist/inspector/canvas/LockedWorkspaceNotice.d.ts +3 -2
  146. package/dist/inspector/canvas/LockedWorkspaceNotice.js +10 -6
  147. package/dist/inspector/canvas/PageCard.d.ts +9 -0
  148. package/dist/inspector/canvas/PageCard.js +50 -0
  149. package/dist/inspector/canvas/SketchToolOptions.d.ts +4 -0
  150. package/dist/inspector/canvas/SketchToolOptions.js +80 -0
  151. package/dist/inspector/canvas/StaleChangeIndicator.d.ts +1 -1
  152. package/dist/inspector/canvas/StaleChangeIndicator.js +1 -1
  153. package/dist/inspector/canvas/ToolOptionsDrawer.d.ts +16 -0
  154. package/dist/inspector/canvas/ToolOptionsDrawer.js +71 -0
  155. package/dist/inspector/canvas/activeCanvasDocument.d.ts +3 -4
  156. package/dist/inspector/canvas/activeCanvasDocument.js +0 -2
  157. package/dist/inspector/canvas/agentPresentation.d.ts +2 -13
  158. package/dist/inspector/canvas/agentPresentation.js +3 -14
  159. package/dist/inspector/canvas/assets/eraser.svg +28 -0
  160. package/dist/inspector/canvas/assets/pen.svg +25 -0
  161. package/dist/inspector/canvas/canvasFrame.d.ts +12 -0
  162. package/dist/inspector/canvas/canvasFrame.js +9 -0
  163. package/dist/inspector/canvas/canvasGestures.d.ts +0 -1
  164. package/dist/inspector/canvas/canvasGestures.js +0 -6
  165. package/dist/inspector/canvas/canvasResize.d.ts +1 -6
  166. package/dist/inspector/canvas/canvasResize.js +1 -6
  167. package/dist/inspector/canvas/canvasStore.d.ts +5 -7
  168. package/dist/inspector/canvas/canvasStore.js +42 -21
  169. package/dist/inspector/canvas/frameConnection.d.ts +42 -0
  170. package/dist/inspector/canvas/frameConnection.js +73 -0
  171. package/dist/inspector/canvas/frameContent.d.ts +0 -1
  172. package/dist/inspector/canvas/frameLifecycle.d.ts +12 -0
  173. package/dist/inspector/canvas/frameLifecycle.js +11 -0
  174. package/dist/inspector/canvas/frameProtocol.d.ts +20 -38
  175. package/dist/inspector/canvas/frameProtocol.js +37 -24
  176. package/dist/inspector/canvas/frameScrollbarStyles.d.ts +0 -1
  177. package/dist/inspector/canvas/frameScrollbarStyles.js +0 -1
  178. package/dist/inspector/canvas/layout.d.ts +10 -22
  179. package/dist/inspector/canvas/layout.js +0 -3
  180. package/dist/inspector/canvas/normalizeUrl.js +1 -8
  181. package/dist/inspector/canvas/pageSurface.d.ts +6 -0
  182. package/dist/inspector/canvas/pageSurface.js +29 -0
  183. package/dist/inspector/canvas/projection.d.ts +14 -25
  184. package/dist/inspector/canvas/projection.js +64 -87
  185. package/dist/inspector/canvas/rendererBootstrap.d.ts +8 -1
  186. package/dist/inspector/canvas/rendererBootstrap.js +10 -15
  187. package/dist/inspector/canvas/rendererCidIndex.d.ts +0 -5
  188. package/dist/inspector/canvas/rendererCidIndex.js +0 -5
  189. package/dist/inspector/canvas/rendererElementSelector.js +38 -28
  190. package/dist/inspector/canvas/rendererMessageRouter.d.ts +4 -6
  191. package/dist/inspector/canvas/rendererMessageRouter.js +12 -17
  192. package/dist/inspector/canvas/rendererSelectionProxy.d.ts +3 -1
  193. package/dist/inspector/canvas/rendererSelectionProxy.js +7 -40
  194. package/dist/inspector/canvas/rendererStylesheet.d.ts +0 -1
  195. package/dist/inspector/canvas/rendererStylesheet.js +23 -1
  196. package/dist/inspector/canvas/resizeHandleScale.d.ts +1 -10
  197. package/dist/inspector/canvas/resizeHandleScale.js +1 -10
  198. package/dist/inspector/canvas/sessionStore.d.ts +3 -9
  199. package/dist/inspector/canvas/sessionStore.js +33 -43
  200. package/dist/inspector/canvas/staleChangeDetector.d.ts +1 -1
  201. package/dist/inspector/canvas/staleChangeDetector.js +11 -26
  202. package/dist/inspector/canvas/toolbarScale.d.ts +1 -4
  203. package/dist/inspector/canvas/toolbarScale.js +1 -4
  204. package/dist/inspector/canvas/useCanvasLayoutAnimation.d.ts +0 -1
  205. package/dist/inspector/canvas/useCanvasLayoutAnimation.js +0 -1
  206. package/dist/inspector/canvas/viewStore.js +1 -1
  207. package/dist/inspector/canvas/wheelPan.d.ts +1 -1
  208. package/dist/inspector/canvas/wheelPan.js +1 -1
  209. package/dist/inspector/canvas/workspaceLease.d.ts +1 -5
  210. package/dist/inspector/canvas/workspaceLease.js +1 -7
  211. package/dist/inspector/changes/codecs.d.ts +1 -0
  212. package/dist/inspector/changes/codecs.js +21 -5
  213. package/dist/inspector/changes/draftPreview.d.ts +7 -0
  214. package/dist/inspector/changes/draftPreview.js +118 -0
  215. package/dist/inspector/changes/editModel.d.ts +11 -13
  216. package/dist/inspector/changes/editModel.js +9 -4
  217. package/dist/inspector/changes/managedStyleProjection.js +6 -15
  218. package/dist/inspector/changes/model.d.ts +0 -5
  219. package/dist/inspector/changes/model.js +1 -8
  220. package/dist/inspector/changes/previewDiagnostics.d.ts +2 -12
  221. package/dist/inspector/changes/previewDiagnostics.js +5 -21
  222. package/dist/inspector/changes/previewVerification.d.ts +25 -0
  223. package/dist/inspector/changes/previewVerification.js +34 -0
  224. package/dist/inspector/changes/structuralTypes.d.ts +2 -4
  225. package/dist/inspector/changes/types.d.ts +11 -8
  226. package/dist/inspector/clientManifest.d.ts +17 -6
  227. package/dist/inspector/clientManifest.js +16 -3
  228. package/dist/inspector/comments/CommentsOverlay.js +66 -23
  229. package/dist/inspector/comments/element.d.ts +1 -2
  230. package/dist/inspector/comments/element.js +1 -2
  231. package/dist/inspector/comments/store.d.ts +1 -1
  232. package/dist/inspector/comments/store.js +4 -3
  233. package/dist/inspector/comments/verification.d.ts +8 -2
  234. package/dist/inspector/comments/verification.js +19 -11
  235. package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +8 -0
  236. package/dist/inspector/componentSemantics/ComponentPropsSection.js +12 -8
  237. package/dist/inspector/componentSemantics/adapterRegistry.d.ts +2 -9
  238. package/dist/inspector/componentSemantics/adapterRegistry.js +2 -9
  239. package/dist/inspector/componentSemantics/changeAction.js +1 -1
  240. package/dist/inspector/componentSemantics/changeModel.js +2 -4
  241. package/dist/inspector/componentSemantics/react/callsites.d.ts +28 -0
  242. package/dist/inspector/componentSemantics/react/callsites.js +261 -0
  243. package/dist/inspector/componentSemantics/react/devtoolsHook.d.ts +23 -0
  244. package/dist/inspector/componentSemantics/react/devtoolsHook.js +71 -0
  245. package/dist/inspector/componentSemantics/react/fibers.d.ts +17 -0
  246. package/dist/inspector/componentSemantics/react/fibers.js +30 -0
  247. package/dist/inspector/componentSemantics/{reactRuntime.d.ts → react/runtime.d.ts} +3 -2
  248. package/dist/inspector/componentSemantics/{reactRuntime.js → react/runtime.js} +70 -53
  249. package/dist/inspector/componentSemantics/runtimeBridge.d.ts +2 -18
  250. package/dist/inspector/componentSemantics/runtimeBridge.js +5 -19
  251. package/dist/inspector/componentSemantics/textBinding.d.ts +2 -11
  252. package/dist/inspector/componentSemantics/textBinding.js +20 -87
  253. package/dist/inspector/componentSemantics/types.d.ts +8 -27
  254. package/dist/inspector/componentSemantics/types.js +0 -1
  255. package/dist/inspector/conformance/borderCases.d.ts +0 -5
  256. package/dist/inspector/conformance/borderCases.js +0 -5
  257. package/dist/inspector/conformance/colorCases.d.ts +0 -6
  258. package/dist/inspector/conformance/colorCases.js +0 -6
  259. package/dist/inspector/conformance/fixture.d.ts +1 -5
  260. package/dist/inspector/conformance/fixture.js +1 -5
  261. package/dist/inspector/conformance/spacingCases.d.ts +0 -4
  262. package/dist/inspector/conformance/spacingCases.js +0 -4
  263. package/dist/inspector/conformance/typographyCases.d.ts +0 -5
  264. package/dist/inspector/conformance/typographyCases.js +0 -5
  265. package/dist/inspector/drafts/draftStore.d.ts +95 -0
  266. package/dist/inspector/drafts/draftStore.js +461 -0
  267. package/dist/inspector/drafts/model.d.ts +14 -14
  268. package/dist/inspector/drafts/model.js +4 -2
  269. package/dist/inspector/drafts/store.d.ts +47 -16
  270. package/dist/inspector/drafts/store.js +137 -170
  271. package/dist/inspector/editScope.d.ts +0 -1
  272. package/dist/inspector/editScope.js +0 -1
  273. package/dist/inspector/index.d.ts +2 -4
  274. package/dist/inspector/index.js +2 -264
  275. package/dist/inspector/inline-text/inlineTextDiagnostics.d.ts +0 -2
  276. package/dist/inspector/inline-text/inlineTextDiagnostics.js +0 -2
  277. package/dist/inspector/inline-text/inlineTextEditor.d.ts +3 -9
  278. package/dist/inspector/inline-text/inlineTextEditor.js +27 -81
  279. package/dist/inspector/inline-text/inlineTextLifecycle.js +1 -6
  280. package/dist/inspector/inline-text/textEditChange.d.ts +1 -2
  281. package/dist/inspector/inspection/bridge.d.ts +3 -7
  282. package/dist/inspector/inspection/bridge.js +6 -13
  283. package/dist/inspector/inspection/browserCssInspection.d.ts +12 -11
  284. package/dist/inspector/inspection/browserCssInspection.js +32 -14
  285. package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +0 -7
  286. package/dist/inspector/inspection/browserCssInspectionRegistry.js +1 -16
  287. package/dist/inspector/inspection/inspectionSnapshot.d.ts +6 -0
  288. package/dist/inspector/inspection/inspectionSnapshot.js +10 -0
  289. package/dist/inspector/inspection/performanceDiagnostics.d.ts +18 -0
  290. package/dist/inspector/inspection/performanceDiagnostics.js +31 -0
  291. package/dist/inspector/inspection/selectionProperty.d.ts +1 -6
  292. package/dist/inspector/inspection/selectionProperty.js +1 -5
  293. package/dist/inspector/inspection/useBrowserCssInspection.d.ts +1 -5
  294. package/dist/inspector/inspection/useBrowserCssInspection.js +22 -59
  295. package/dist/inspector/iterations/capture.d.ts +2 -2
  296. package/dist/inspector/iterations/capture.js +4 -9
  297. package/dist/inspector/iterations/client.d.ts +2 -2
  298. package/dist/inspector/iterations/client.js +0 -1
  299. package/dist/inspector/iterations/coordinator.d.ts +4 -4
  300. package/dist/inspector/iterations/coordinator.js +5 -4
  301. package/dist/inspector/iterations/prompt.d.ts +0 -1
  302. package/dist/inspector/iterations/prompt.js +9 -9
  303. package/dist/inspector/overlay/DomNavigator.d.ts +3 -1
  304. package/dist/inspector/overlay/DomNavigator.js +39 -15
  305. package/dist/inspector/overlay/DropGuideOverlay.d.ts +0 -1
  306. package/dist/inspector/overlay/DropGuideOverlay.js +0 -1
  307. package/dist/inspector/overlay/MeasurementGuideOverlay.d.ts +1 -8
  308. package/dist/inspector/overlay/MeasurementGuideOverlay.js +1 -5
  309. package/dist/inspector/overlay/clickPolicy.d.ts +3 -14
  310. package/dist/inspector/overlay/clickPolicy.js +3 -14
  311. package/dist/inspector/overlay/dropGuide.d.ts +0 -3
  312. package/dist/inspector/overlay/dropGuide.js +0 -3
  313. package/dist/inspector/overlay/frameThrottle.d.ts +0 -1
  314. package/dist/inspector/overlay/frameThrottle.js +0 -1
  315. package/dist/inspector/overlay/interactionStyles.d.ts +1 -1
  316. package/dist/inspector/overlay/interactionStyles.js +19 -8
  317. package/dist/inspector/overlay/measurementGeometry.js +4 -12
  318. package/dist/inspector/overlay/selectedGeometry.d.ts +1 -6
  319. package/dist/inspector/overlay/selectedGeometry.js +1 -8
  320. package/dist/inspector/overlay/spacingGestures.d.ts +14 -21
  321. package/dist/inspector/overlay/spacingGestures.js +151 -31
  322. package/dist/inspector/overlay/structuralGestures.d.ts +2 -9
  323. package/dist/inspector/overlay/structuralGestures.js +1 -4
  324. package/dist/inspector/pageInspector.d.ts +33 -0
  325. package/dist/inspector/pageInspector.js +335 -0
  326. package/dist/inspector/projection/cssEscapes.d.ts +0 -1
  327. package/dist/inspector/projection/cssEscapes.js +2 -4
  328. package/dist/inspector/projection/draftProjection.d.ts +6 -10
  329. package/dist/inspector/projection/draftProjection.js +8 -7
  330. package/dist/inspector/projection/managedStylesheet.d.ts +1 -7
  331. package/dist/inspector/projection/managedStylesheet.js +28 -26
  332. package/dist/inspector/projection/renderedInstance.d.ts +5 -28
  333. package/dist/inspector/projection/renderedInstance.js +13 -33
  334. package/dist/inspector/projection/structuralProjection.d.ts +7 -48
  335. package/dist/inspector/projection/structuralProjection.js +31 -96
  336. package/dist/inspector/projection/textProjection.d.ts +7 -13
  337. package/dist/inspector/projection/textProjection.js +35 -80
  338. package/dist/inspector/prompt/PromptSettingsDialog.d.ts +0 -1
  339. package/dist/inspector/prompt/PromptSettingsDialog.js +0 -1
  340. package/dist/inspector/prompt/clipboardHandoff.d.ts +1 -0
  341. package/dist/inspector/prompt/clipboardHandoff.js +34 -16
  342. package/dist/inspector/prompt/generatePrompt.d.ts +2 -2
  343. package/dist/inspector/prompt/generatePrompt.js +247 -166
  344. package/dist/inspector/prompt/promptDocument.d.ts +3 -0
  345. package/dist/inspector/prompt/promptDocument.js +8 -0
  346. package/dist/inspector/prompt/promptSettings.d.ts +0 -3
  347. package/dist/inspector/prompt/promptSettings.js +7 -8
  348. package/dist/inspector/runtime/devFlag.d.ts +2 -25
  349. package/dist/inspector/runtime/devFlag.js +4 -31
  350. package/dist/inspector/runtime/documentStylesheetOrder.d.ts +0 -2
  351. package/dist/inspector/runtime/editorShell.d.ts +0 -1
  352. package/dist/inspector/runtime/editorShell.js +0 -1
  353. package/dist/inspector/runtime/inspectorStorage.d.ts +11 -0
  354. package/dist/inspector/runtime/inspectorStorage.js +37 -0
  355. package/dist/inspector/runtime/ownedStylesheets.d.ts +14 -0
  356. package/dist/inspector/runtime/ownedStylesheets.js +66 -0
  357. package/dist/inspector/runtime/runtimeConfig.d.ts +14 -84
  358. package/dist/inspector/runtime/runtimeConfig.js +18 -50
  359. package/dist/inspector/runtime/runtimeIdentityClaims.d.ts +19 -0
  360. package/dist/inspector/runtime/runtimeIdentityClaims.js +178 -0
  361. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +6 -23
  362. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +103 -52
  363. package/dist/inspector/runtime/useRuntimeConfig.d.ts +1 -8
  364. package/dist/inspector/runtime/useRuntimeConfig.js +1 -8
  365. package/dist/inspector/selection/editScope.d.ts +2 -7
  366. package/dist/inspector/selection/editScope.js +15 -14
  367. package/dist/inspector/selection/editTarget.d.ts +1 -5
  368. package/dist/inspector/selection/hierarchy.d.ts +11 -11
  369. package/dist/inspector/selection/hierarchy.js +42 -24
  370. package/dist/inspector/selection/selectionStore.d.ts +0 -3
  371. package/dist/inspector/selection/selectionStore.js +5 -16
  372. package/dist/inspector/selection/sourceSite.d.ts +1 -5
  373. package/dist/inspector/selection/sourceSite.js +2 -8
  374. package/dist/inspector/selection/styleSelection.d.ts +1 -5
  375. package/dist/inspector/selection/styleSelection.js +1 -5
  376. package/dist/inspector/session/lifecycle.d.ts +1 -9
  377. package/dist/inspector/session/lifecycle.js +0 -1
  378. package/dist/inspector/session/sessionContext.d.ts +0 -4
  379. package/dist/inspector/session/sessionContext.js +0 -4
  380. package/dist/inspector/session/sessionFactory.d.ts +0 -9
  381. package/dist/inspector/session/sessionFactory.js +0 -6
  382. package/dist/inspector/settings/SettingsDialog.d.ts +0 -1
  383. package/dist/inspector/settings/SettingsDialog.js +5 -3
  384. package/dist/inspector/shell/AgentStatusButton.d.ts +3 -2
  385. package/dist/inspector/shell/AgentStatusButton.js +7 -7
  386. package/dist/inspector/shell/AppShell.js +6 -2
  387. package/dist/inspector/shell/ChangesLog.js +29 -12
  388. package/dist/inspector/shell/CopyPromptButton.d.ts +2 -1
  389. package/dist/inspector/shell/CopyPromptButton.js +62 -55
  390. package/dist/inspector/shell/EmptyState.js +3 -3
  391. package/dist/inspector/shell/InspectorEditors.d.ts +16 -0
  392. package/dist/inspector/shell/InspectorEditors.js +14 -0
  393. package/dist/inspector/shell/InspectorPanel.d.ts +12 -0
  394. package/dist/inspector/shell/InspectorPanel.js +8 -0
  395. package/dist/inspector/shell/InspectorSelection.d.ts +24 -0
  396. package/dist/inspector/shell/InspectorSelection.js +20 -0
  397. package/dist/inspector/shell/InspectorShell.d.ts +0 -3
  398. package/dist/inspector/shell/InspectorShell.js +44 -58
  399. package/dist/inspector/shell/NudgeLogoIcon.d.ts +5 -0
  400. package/dist/inspector/shell/NudgeLogoIcon.js +5 -0
  401. package/dist/inspector/shell/PeekOriginalButton.d.ts +0 -5
  402. package/dist/inspector/shell/PeekOriginalButton.js +3 -8
  403. package/dist/inspector/shell/PeekOriginalIcon.d.ts +0 -5
  404. package/dist/inspector/shell/PeekOriginalIcon.js +0 -5
  405. package/dist/inspector/shell/PromptActionButton.d.ts +21 -0
  406. package/dist/inspector/shell/PromptActionButton.js +14 -0
  407. package/dist/inspector/shell/elementName.d.ts +5 -0
  408. package/dist/inspector/shell/elementName.js +29 -0
  409. package/dist/inspector/shell/interactionStatePreview.d.ts +6 -0
  410. package/dist/inspector/shell/interactionStatePreview.js +107 -0
  411. package/dist/inspector/shell/originalPreview.d.ts +1 -5
  412. package/dist/inspector/shell/originalPreview.js +5 -37
  413. package/dist/inspector/shell/stateValue.d.ts +1 -2
  414. package/dist/inspector/shell/stateValue.js +4 -8
  415. package/dist/inspector/shell/styleState.d.ts +1 -2
  416. package/dist/inspector/shell/styleState.js +1 -2
  417. package/dist/inspector/sketch/SketchEditor.js +5 -5
  418. package/dist/inspector/sketch/SketchFrameOverlay.d.ts +2 -1
  419. package/dist/inspector/sketch/SketchFrameOverlay.js +13 -16
  420. package/dist/inspector/sketch/SketchOverlay.d.ts +3 -5
  421. package/dist/inspector/sketch/SketchOverlay.js +138 -263
  422. package/dist/inspector/sketch/SketchPromptPanel.d.ts +1 -2
  423. package/dist/inspector/sketch/SketchPromptPanel.js +8 -2
  424. package/dist/inspector/sketch/SketchThumbnail.d.ts +5 -0
  425. package/dist/inspector/sketch/SketchThumbnail.js +18 -0
  426. package/dist/inspector/sketch/SketchWorkspace.d.ts +1 -2
  427. package/dist/inspector/sketch/SketchWorkspace.js +70 -37
  428. package/dist/inspector/sketch/capture.d.ts +12 -3
  429. package/dist/inspector/sketch/capture.js +31 -14
  430. package/dist/inspector/sketch/copySketch.d.ts +4 -0
  431. package/dist/inspector/sketch/copySketch.js +43 -0
  432. package/dist/inspector/sketch/drawingTools.d.ts +15 -0
  433. package/dist/inspector/sketch/drawingTools.js +46 -0
  434. package/dist/inspector/sketch/frameHeading.d.ts +3 -0
  435. package/dist/inspector/sketch/frameHeading.js +23 -0
  436. package/dist/inspector/sketch/freehand.d.ts +0 -1
  437. package/dist/inspector/sketch/freehand.js +3 -4
  438. package/dist/inspector/sketch/geometry.d.ts +2 -1
  439. package/dist/inspector/sketch/geometry.js +15 -1
  440. package/dist/inspector/sketch/handoff.js +0 -1
  441. package/dist/inspector/sketch/history.d.ts +26 -0
  442. package/dist/inspector/sketch/history.js +55 -0
  443. package/dist/inspector/sketch/interaction.d.ts +3 -5
  444. package/dist/inspector/sketch/interaction.js +8 -11
  445. package/dist/inspector/sketch/model.d.ts +33 -6
  446. package/dist/inspector/sketch/model.js +101 -63
  447. package/dist/inspector/sketch/persistence.d.ts +14 -1
  448. package/dist/inspector/sketch/persistence.js +64 -8
  449. package/dist/inspector/sketch/raster.d.ts +3 -2
  450. package/dist/inspector/sketch/raster.js +40 -20
  451. package/dist/inspector/sketch/store.d.ts +1 -1
  452. package/dist/inspector/sketch/store.js +3 -4
  453. package/dist/inspector/sketch/videoFrames.d.ts +6 -0
  454. package/dist/inspector/sketch/videoFrames.js +80 -0
  455. package/dist/inspector/spacing/projection.d.ts +0 -8
  456. package/dist/inspector/spacing/projection.js +38 -20
  457. package/dist/inspector/styleEditors/BackgroundEditor.js +3 -2
  458. package/dist/inspector/styleEditors/BorderEditor.js +30 -135
  459. package/dist/inspector/styleEditors/BorderRadiusEditor.js +8 -3
  460. package/dist/inspector/styleEditors/ChildPlacement.d.ts +12 -0
  461. package/dist/inspector/styleEditors/ChildPlacement.js +9 -0
  462. package/dist/inspector/styleEditors/FlexControls.d.ts +35 -0
  463. package/dist/inspector/styleEditors/FlexControls.js +158 -0
  464. package/dist/inspector/styleEditors/GapField.d.ts +5 -2
  465. package/dist/inspector/styleEditors/GapField.js +3 -4
  466. package/dist/inspector/styleEditors/GridChildSection.d.ts +0 -5
  467. package/dist/inspector/styleEditors/GridChildSection.js +0 -5
  468. package/dist/inspector/styleEditors/GridPicker.d.ts +1 -1
  469. package/dist/inspector/styleEditors/GridPicker.js +2 -4
  470. package/dist/inspector/styleEditors/GridSection.d.ts +10 -8
  471. package/dist/inspector/styleEditors/GridSection.js +22 -9
  472. package/dist/inspector/styleEditors/GridValueField.d.ts +1 -5
  473. package/dist/inspector/styleEditors/GridValueField.js +2 -8
  474. package/dist/inspector/styleEditors/ImageBackgroundEditor.d.ts +0 -1
  475. package/dist/inspector/styleEditors/ImageBackgroundEditor.js +1 -2
  476. package/dist/inspector/styleEditors/LayoutBlockedIndicator.d.ts +0 -1
  477. package/dist/inspector/styleEditors/LayoutBlockedIndicator.js +0 -1
  478. package/dist/inspector/styleEditors/LayoutComboField.js +0 -5
  479. package/dist/inspector/styleEditors/LayoutModeRow.d.ts +14 -0
  480. package/dist/inspector/styleEditors/LayoutModeRow.js +60 -0
  481. package/dist/inspector/styleEditors/LayoutSection.d.ts +2 -2
  482. package/dist/inspector/styleEditors/LayoutSection.js +30 -356
  483. package/dist/inspector/styleEditors/OpacityEditor.js +7 -5
  484. package/dist/inspector/styleEditors/PositionControls.d.ts +18 -0
  485. package/dist/inspector/styleEditors/PositionControls.js +16 -0
  486. package/dist/inspector/styleEditors/SizeSection.d.ts +18 -0
  487. package/dist/inspector/styleEditors/SizeSection.js +71 -0
  488. package/dist/inspector/styleEditors/{SpacingBox.d.ts → SpacingField.d.ts} +3 -10
  489. package/dist/inspector/styleEditors/{SpacingBox.js → SpacingField.js} +15 -29
  490. package/dist/inspector/styleEditors/Typography.js +2 -4
  491. package/dist/inspector/styleEditors/borderModel.d.ts +36 -0
  492. package/dist/inspector/styleEditors/borderModel.js +105 -0
  493. package/dist/inspector/styleEditors/completeCssValue.d.ts +1 -5
  494. package/dist/inspector/styleEditors/completeCssValue.js +3 -13
  495. package/dist/inspector/styleEditors/fieldValue.d.ts +20 -0
  496. package/dist/inspector/styleEditors/fieldValue.js +26 -0
  497. package/dist/inspector/styleEditors/gradientValue.d.ts +1 -1
  498. package/dist/inspector/styleEditors/gradientValue.js +3 -2
  499. package/dist/inspector/styleEditors/gridChildModel.d.ts +7 -47
  500. package/dist/inspector/styleEditors/gridChildModel.js +6 -37
  501. package/dist/inspector/styleEditors/hiddenSizeOverrides.d.ts +5 -0
  502. package/dist/inspector/styleEditors/hiddenSizeOverrides.js +42 -0
  503. package/dist/inspector/styleEditors/inlineAuthored.d.ts +1 -8
  504. package/dist/inspector/styleEditors/inlineAuthored.js +3 -17
  505. package/dist/inspector/styleEditors/layoutMode.d.ts +15 -0
  506. package/dist/inspector/styleEditors/layoutMode.js +33 -0
  507. package/dist/inspector/styleEditors/layoutPreviewState.d.ts +0 -1
  508. package/dist/inspector/styleEditors/layoutPreviewState.js +0 -1
  509. package/dist/inspector/styleEditors/layoutValue.d.ts +2 -8
  510. package/dist/inspector/styleEditors/layoutValue.js +6 -15
  511. package/dist/inspector/styleEditors/nudgeValue.d.ts +1 -13
  512. package/dist/inspector/styleEditors/nudgeValue.js +1 -13
  513. package/dist/inspector/styleEditors/rowLookup.d.ts +1 -5
  514. package/dist/inspector/styleEditors/rowLookup.js +1 -5
  515. package/dist/inspector/styleEditors/stringRecord.d.ts +1 -2
  516. package/dist/inspector/styleEditors/stylePresence.d.ts +0 -2
  517. package/dist/inspector/styleEditors/stylePresence.js +1 -4
  518. package/dist/inspector/styleEditors/textRelevance.d.ts +1 -1
  519. package/dist/inspector/styleEditors/textRelevance.js +1 -1
  520. package/dist/inspector/styleEditors/useFieldVisibility.js +1 -2
  521. package/dist/inspector/styleEditors/useLayoutContext.d.ts +13 -0
  522. package/dist/inspector/styleEditors/useLayoutContext.js +53 -0
  523. package/dist/inspector/styleEditors/valuePolicy.d.ts +1 -5
  524. package/dist/inspector/styleEditors/valuePolicy.js +0 -1
  525. package/dist/inspector/testing.d.ts +1 -4
  526. package/dist/inspector/testing.js +1 -4
  527. package/dist/inspector/tokens/TokenChip.d.ts +1 -4
  528. package/dist/inspector/tokens/TokenChip.js +1 -4
  529. package/dist/inspector/tokens/TokenField.d.ts +4 -3
  530. package/dist/inspector/tokens/TokenField.js +53 -32
  531. package/dist/inspector/tokens/TokensPanel.js +2 -1
  532. package/dist/inspector/tokens/catalog.d.ts +2 -10
  533. package/dist/inspector/tokens/catalog.js +5 -12
  534. package/dist/inspector/tokens/dragPointerLock.d.ts +0 -1
  535. package/dist/inspector/tokens/dragPointerLock.js +2 -3
  536. package/dist/inspector/tokens/editActions.d.ts +4 -4
  537. package/dist/inspector/tokens/editActions.js +11 -7
  538. package/dist/inspector/tokens/resolution/cascade.d.ts +1 -5
  539. package/dist/inspector/tokens/resolution/cascade.js +1 -5
  540. package/dist/inspector/tokens/resolution/containerQueryEvaluator.d.ts +11 -0
  541. package/dist/inspector/tokens/resolution/containerQueryEvaluator.js +82 -0
  542. package/dist/inspector/tokens/resolution/cssomCollector.d.ts +4 -19
  543. package/dist/inspector/tokens/resolution/cssomCollector.js +186 -122
  544. package/dist/inspector/tokens/resolution/nestedSelectors.d.ts +2 -0
  545. package/dist/inspector/tokens/resolution/nestedSelectors.js +63 -0
  546. package/dist/inspector/tokens/resolution/ruleMatching.d.ts +4 -14
  547. package/dist/inspector/tokens/resolution/ruleMatching.js +136 -63
  548. package/dist/inspector/tokens/resolution/selectorSemantics.d.ts +3 -14
  549. package/dist/inspector/tokens/resolution/selectorSemantics.js +12 -27
  550. package/dist/inspector/tokens/resolution.d.ts +11 -27
  551. package/dist/inspector/tokens/resolution.js +105 -181
  552. package/dist/inspector/tokens/tokenAvailability.d.ts +2 -14
  553. package/dist/inspector/tokens/tokenAvailability.js +6 -38
  554. package/dist/inspector/tokens/tokenEdits.d.ts +1 -1
  555. package/dist/inspector/tokens/tokenEdits.js +1 -1
  556. package/dist/inspector/tokens/valueSemanticsAdapter.d.ts +0 -1
  557. package/dist/inspector/tokens/valueSemanticsAdapter.js +18 -2
  558. package/dist/inspector/ui/AtRuleContext.d.ts +5 -5
  559. package/dist/inspector/ui/AtRuleContext.js +8 -6
  560. package/dist/inspector/ui/ControlSurface.d.ts +0 -4
  561. package/dist/inspector/ui/Disclosure.d.ts +0 -5
  562. package/dist/inspector/ui/Disclosure.js +0 -4
  563. package/dist/inspector/ui/InlineStyleWarning.d.ts +0 -1
  564. package/dist/inspector/ui/InlineStyleWarning.js +2 -2
  565. package/dist/inspector/ui/InspectorPopover.d.ts +1 -5
  566. package/dist/inspector/ui/InspectorPopover.js +1 -5
  567. package/dist/inspector/ui/InspectorStyle.d.ts +8 -0
  568. package/dist/inspector/ui/InspectorStyle.js +26 -0
  569. package/dist/inspector/ui/PopoverListbox.d.ts +2 -1
  570. package/dist/inspector/ui/PopoverListbox.js +3 -3
  571. package/dist/inspector/ui/SegmentedControl.d.ts +4 -4
  572. package/dist/inspector/ui/SegmentedControl.js +6 -4
  573. package/dist/inspector/ui/SideValuesField.d.ts +1 -6
  574. package/dist/inspector/ui/SideValuesField.js +2 -8
  575. package/dist/inspector/ui/Toast.d.ts +10 -0
  576. package/dist/inspector/ui/Toast.js +26 -0
  577. package/dist/inspector/ui/assets/canvasIllustration.d.ts +2 -0
  578. package/dist/inspector/ui/assets/canvasIllustration.js +21 -0
  579. package/dist/inspector/ui/assets/gridIllustration.d.ts +2 -0
  580. package/dist/inspector/ui/assets/{grid.svg → gridIllustration.js} +3 -2
  581. package/dist/inspector/ui/atRuleSegments.d.ts +13 -0
  582. package/dist/inspector/ui/atRuleSegments.js +34 -0
  583. package/dist/inspector/ui/classNames.d.ts +0 -1
  584. package/dist/inspector/ui/classNames.js +0 -1
  585. package/dist/inspector/ui/customCursors.d.ts +11 -0
  586. package/dist/inspector/ui/customCursors.js +29 -7
  587. package/dist/inspector/ui/styles.js +25 -25
  588. package/dist/inspector/workspace/commands.js +1 -2
  589. package/dist/inspector/workspace/controller.js +20 -2
  590. package/dist/inspector/workspace/handoff.d.ts +1 -5
  591. package/dist/inspector/workspace/handoff.js +4 -7
  592. package/dist/inspector/workspace/sentItems.d.ts +3 -6
  593. package/dist/inspector/workspace/sentItems.js +6 -24
  594. package/dist/inspector/workspace/timeline.d.ts +28 -11
  595. package/dist/inspector/workspace/timeline.js +117 -96
  596. package/dist/internal/agent-protocol.d.ts +53 -38
  597. package/dist/internal/agent-protocol.js +151 -42
  598. package/dist/nudge-ui.mjs +155 -92
  599. package/dist/project/artifacts.js +24 -21
  600. package/dist/project/files.d.ts +0 -1
  601. package/dist/project/files.js +2 -9
  602. package/dist/project/identity.d.ts +1 -5
  603. package/dist/project/identity.js +1 -5
  604. package/dist/project/mcpPackage.d.ts +3 -0
  605. package/dist/project/mcpPackage.js +55 -0
  606. package/dist/project/pathPolicy.d.ts +1 -6
  607. package/dist/project/pathPolicy.js +1 -6
  608. package/dist/project/tokens.d.ts +2 -12
  609. package/dist/project/tokens.js +4 -15
  610. package/dist/transport/editor.d.ts +1 -12
  611. package/dist/transport/editor.js +2 -13
  612. package/dist/transport/index.d.ts +0 -5
  613. package/dist/transport/index.js +0 -5
  614. package/dist/transport/routes.d.ts +0 -5
  615. package/dist/transport/routes.js +0 -5
  616. package/package.json +16 -5
  617. package/dist/inspector/canvas/measurementProjection.d.ts +0 -8
  618. package/dist/inspector/canvas/measurementProjection.js +0 -16
  619. package/dist/inspector/changes/changesLog.d.ts +0 -49
  620. package/dist/inspector/changes/changesLog.js +0 -255
  621. package/dist/inspector/changes/draftChanges.d.ts +0 -58
  622. package/dist/inspector/changes/draftChanges.js +0 -304
  623. package/dist/inspector/conformance/projection.d.ts +0 -2
  624. package/dist/inspector/conformance/projection.js +0 -3
  625. package/dist/inspector/inline-text/textChangeBoundary.d.ts +0 -6
  626. package/dist/inspector/inline-text/textChangeBoundary.js +0 -1
  627. package/dist/inspector/overlay/InspectorOverlay.d.ts +0 -5
  628. package/dist/inspector/overlay/InspectorOverlay.js +0 -332
  629. package/dist/inspector/overlay/elementSelector.d.ts +0 -1
  630. package/dist/inspector/overlay/elementSelector.js +0 -111
  631. package/dist/inspector/sketch/SketchChanges.d.ts +0 -2
  632. package/dist/inspector/sketch/SketchChanges.js +0 -72
  633. package/dist/inspector/sketch/SketchEntryButton.d.ts +0 -4
  634. package/dist/inspector/sketch/SketchEntryButton.js +0 -11
  635. package/dist/inspector/sketch/SketchLayersPanel.d.ts +0 -2
  636. package/dist/inspector/sketch/SketchLayersPanel.js +0 -71
  637. package/dist/inspector/styleEditors/InsetSection.d.ts +0 -15
  638. package/dist/inspector/styleEditors/InsetSection.js +0 -15
  639. package/dist/inspector/styleEditors/PositionInsets.d.ts +0 -15
  640. package/dist/inspector/styleEditors/PositionInsets.js +0 -12
  641. package/dist/inspector/tokens/TokenDropdown.d.ts +0 -13
  642. package/dist/inspector/tokens/TokenDropdown.js +0 -59
@@ -1,268 +1,6 @@
1
- import { startWorkspaceController } from "./workspace/controller.js";
2
- import { createElement } from "react";
3
- import { createRoot } from "react-dom/client";
4
- import { InspectorShell, toggleInspector, setInspectorOpen } from "./shell/InspectorShell.js";
5
- import { setSelectedElement } from "./selection/selectionStore.js";
6
- import { removeManagedSheet } from "./projection/managedStylesheet.js";
7
- import { isInspectorToggleShortcut, isOriginalPreviewShortcut, SEND_PROMPT_HOTKEY_EVENT, } from "./shell/shortcuts.js";
8
- import { isCanvasRenderer } from "./canvas/roleDetection.js";
9
- import { isKeyboardShortcutMessage } from "./canvas/frameProtocol.js";
10
- import { subscribeCanvasRendererMessages } from "./canvas/rendererMessageRouter.js";
11
- import { bootstrapRenderer } from "./canvas/rendererBootstrap.js";
12
- import { setRestoreCount, } from "./canvas/sessionStore.js";
13
- import { getChangesList } from "./changes/changesLog.js";
14
- import { acquireLease, enableWriteGuard, hasWriteLease, subscribeOwnership, } from "./canvas/workspaceLease.js";
15
- import { cancelStaleDetection, startStaleDetection } from "./canvas/staleChangeDetector.js";
16
- import { LockedWorkspaceNotice } from "./canvas/LockedWorkspaceNotice.js";
17
- import { AppShell } from "./shell/AppShell.js";
18
- import { installInspectionBridge } from "./inspection/bridge.js";
19
- import { releaseDocumentProjection, getStructuralChanges } from "./projection/structuralProjection.js";
20
- import { cancelInlineTextEdit } from "./inline-text/inlineTextEditor.js";
21
- import { configureNudgeUiRuntime, getNudgeUiRuntimeConfig, isDemoRuntime } from "./runtime/runtimeConfig.js";
22
- import { setCanvasMode } from "./canvas/viewStore.js";
23
- import { isNudgeUiDev, setNudgeUiHostDevFlag } from "./runtime/devFlag.js";
24
- import { clearClipboardHandoff, } from "./prompt/clipboardHandoff.js";
25
- import { createWorkspace, InspectorSessionProvider, } from "./session/index.js";
26
- import { clearSketchClipboardHandoff } from "./sketch/handoff.js";
27
- import { cancelSketchInteraction, isSketchInteractionActive } from "./sketch/interaction.js";
28
- import { setOriginalPreviewActive } from "./shell/originalPreview.js";
29
- import { initializeSketchStore } from "./sketch/store.js";
1
+ export { bootstrapNudgeUi, mountInspector, unmountInspector } from "./boot.js";
30
2
  export { resolveNudgeUiClientEntry } from "../transport/editor.js";
31
- let hostElement = null;
32
- let reactRoot = null;
33
- let lockedRoot = null;
34
- const workspace = createWorkspace();
35
- let inspectorSession = null;
36
- let rendererBootstrapHandle = null;
37
- let workspaceController = null;
38
- let unsubscribeOwnership = null;
39
- let removeInspectionBridge = null;
40
- let keyboardPeekHeld = false;
41
- function onKeydown(e) {
42
- if (isSketchInteractionActive())
43
- return;
44
- if (isInspectorToggleShortcut(e)) {
45
- toggleInspector();
46
- e.preventDefault();
47
- return;
48
- }
49
- if (isOriginalPreviewShortcut(e)) {
50
- keyboardPeekHeld = true;
51
- setOriginalPreviewActive(true);
52
- e.preventDefault();
53
- }
54
- }
55
- function onKeyup(e) {
56
- // Release only a keyboard-started peek so a button-held preview survives
57
- // unrelated Backslash keyups (e.g. the panel-toggle shortcuts pressed
58
- // mid-hold). A guarded keydown never sets the flag, so this stays a no-op
59
- // for keyups without a matching hold.
60
- if (e.code === "Backslash" && keyboardPeekHeld) {
61
- keyboardPeekHeld = false;
62
- setOriginalPreviewActive(false);
63
- }
64
- }
65
- function onRendererKeyboardShortcut(message, identity) {
66
- if (!isKeyboardShortcutMessage(message, identity))
67
- return;
68
- if (message.code === "KeyS" && message.phase === "keydown") {
69
- window.dispatchEvent(new Event(SEND_PROMPT_HOTKEY_EVENT));
70
- return;
71
- }
72
- if (message.code !== "Backslash")
73
- return;
74
- if (message.phase === "keydown") {
75
- keyboardPeekHeld = true;
76
- setOriginalPreviewActive(true);
77
- }
78
- else if (keyboardPeekHeld) {
79
- keyboardPeekHeld = false;
80
- setOriginalPreviewActive(false);
81
- }
82
- }
83
- function disposeInspectorSession() {
84
- const session = inspectorSession;
85
- inspectorSession = null;
86
- session?.dispose();
87
- }
88
- export function bootstrapNudgeUi(inspectorHost) {
89
- const runtimeConfig = getNudgeUiRuntimeConfig();
90
- const explicitDemo = isDemoRuntime();
91
- if (!isNudgeUiDev() && !explicitDemo)
92
- return;
93
- if (explicitDemo) {
94
- rendererBootstrapHandle?.teardown();
95
- rendererBootstrapHandle = null;
96
- // ADR-0014: only the configured demo runtime opens the shared dev gate
97
- // for its own document. The bundle mode name alone must never flip it,
98
- // so every build without both opt-ins stays governed by ADR-0002.
99
- setNudgeUiHostDevFlag(true);
100
- if (runtimeConfig.capabilities.canvas && isCanvasRenderer()) {
101
- rendererBootstrapHandle = bootstrapRenderer() ?? null;
102
- return;
103
- }
104
- // The public demo shares the iframe editor while keeping the write lease,
105
- // persistence, and agent bridge disabled.
106
- setCanvasMode("canvas");
107
- workspaceController?.dispose();
108
- workspaceController = startWorkspaceController();
109
- mountInspector(inspectorHost);
110
- setInspectorOpen(false);
111
- return;
112
- }
113
- if (!runtimeConfig.capabilities.canvas) {
114
- // A project can be reopened with a runtime that does not expose Canvas.
115
- // Clear any stale in-memory mode before mounting the static inspector.
116
- setCanvasMode("inspect");
117
- }
118
- rendererBootstrapHandle?.teardown();
119
- rendererBootstrapHandle = null;
120
- removeInspectionBridge?.();
121
- removeInspectionBridge = installInspectionBridge();
122
- if (getNudgeUiRuntimeConfig().capabilities.canvas && isCanvasRenderer()) {
123
- rendererBootstrapHandle = bootstrapRenderer() ?? null;
124
- return;
125
- }
126
- enableWriteGuard();
127
- const leaseGranted = acquireLease();
128
- if (!leaseGranted) {
129
- mountLockedNotice(inspectorHost);
130
- return;
131
- }
132
- startController(inspectorHost);
133
- }
134
- function startController(inspectorHost) {
135
- if (!hasWriteLease()) {
136
- mountLockedNotice(inspectorHost);
137
- return;
138
- }
139
- if (lockedRoot) {
140
- lockedRoot.unmount();
141
- lockedRoot = null;
142
- }
143
- void initializeSketchStore(getNudgeUiRuntimeConfig().projectId).catch(() => undefined);
144
- unsubscribeOwnership?.();
145
- unsubscribeOwnership = subscribeOwnership((hasLease) => {
146
- if (!hasLease) {
147
- workspaceController?.dispose();
148
- workspaceController = null;
149
- mountLockedNotice(inspectorHost);
150
- }
151
- });
152
- workspaceController?.dispose();
153
- const result = startWorkspaceController();
154
- workspaceController = result;
155
- if (result.restored) {
156
- setRestoreCount(getChangesList().length + getStructuralChanges().length);
157
- const restored = getChangesList();
158
- if (restored.length > 0) {
159
- startStaleDetection(restored);
160
- }
161
- }
162
- if (getNudgeUiRuntimeConfig().capabilities.canvas) {
163
- // Normal controllers always host the iframe workspace. Hydration runs
164
- // first so this mode change cannot discard cards, camera, or edits.
165
- setCanvasMode("canvas");
166
- }
167
- mountInspector(inspectorHost);
168
- }
169
- function mountLockedNotice(host) {
170
- if (reactRoot) {
171
- reactRoot.unmount();
172
- reactRoot = null;
173
- }
174
- try {
175
- disposeInspectorSession();
176
- }
177
- finally {
178
- cancelStaleDetection();
179
- setInspectorOpen(false);
180
- cancelInlineTextEdit();
181
- cancelSketchInteraction();
182
- clearSketchClipboardHandoff();
183
- setSelectedElement(null);
184
- removeManagedSheet();
185
- releaseDocumentProjection(document);
186
- hostElement = null;
187
- unsubscribeOwnership?.();
188
- unsubscribeOwnership = null;
189
- }
190
- const shadow = host.shadowRoot ?? host.attachShadow({ mode: "open" });
191
- if (!lockedRoot) {
192
- lockedRoot = createRoot(shadow);
193
- }
194
- lockedRoot.render(createElement(LockedWorkspaceNotice, {
195
- onTakeover: () => startController(host),
196
- }));
197
- }
198
- export function mountInspector(host) {
199
- const demo = isDemoRuntime();
200
- if (!demo && !hasWriteLease())
201
- return;
202
- const runtimeConfig = getNudgeUiRuntimeConfig();
203
- if (runtimeConfig.capabilities.domNavigation !== true) {
204
- configureNudgeUiRuntime({
205
- ...runtimeConfig,
206
- capabilities: { ...runtimeConfig.capabilities, domNavigation: true },
207
- });
208
- }
209
- if (lockedRoot) {
210
- lockedRoot.unmount();
211
- lockedRoot = null;
212
- }
213
- if (!hostElement)
214
- hostElement = host;
215
- const shadow = host.shadowRoot ?? host.attachShadow({ mode: "open" });
216
- if (!reactRoot) {
217
- reactRoot = createRoot(shadow);
218
- inspectorSession = workspace.createInspectorSession(host);
219
- inspectorSession.registerCleanup(() => window.removeEventListener("keydown", onKeydown));
220
- inspectorSession.registerCleanup(() => window.removeEventListener("keyup", onKeyup));
221
- inspectorSession.registerCleanup(subscribeCanvasRendererMessages(({ identity, message }) => {
222
- onRendererKeyboardShortcut(message, identity);
223
- }));
224
- reactRoot.render(createElement(InspectorSessionProvider, { inspector: inspectorSession, documentSession: null }, createElement(AppShell)));
225
- window.addEventListener("keydown", onKeydown);
226
- window.addEventListener("keyup", onKeyup);
227
- }
228
- setInspectorOpen(true);
229
- }
230
- export function unmountInspector() {
231
- rendererBootstrapHandle?.teardown();
232
- rendererBootstrapHandle = null;
233
- workspaceController?.dispose();
234
- workspaceController = null;
235
- unsubscribeOwnership?.();
236
- unsubscribeOwnership = null;
237
- if (lockedRoot) {
238
- lockedRoot.unmount();
239
- lockedRoot = null;
240
- }
241
- cancelStaleDetection();
242
- cancelInlineTextEdit();
243
- cancelSketchInteraction();
244
- setSelectedElement(null);
245
- if (reactRoot) {
246
- reactRoot.unmount();
247
- reactRoot = null;
248
- }
249
- try {
250
- disposeInspectorSession();
251
- }
252
- finally {
253
- // Document-session cleanup already releases host projection when a
254
- // session exists; release directly as well so projection applied outside
255
- // a session (gestures, workspace projection) cannot leak across unmount.
256
- releaseDocumentProjection(document);
257
- clearClipboardHandoff();
258
- clearSketchClipboardHandoff();
259
- removeManagedSheet();
260
- removeInspectionBridge?.();
261
- removeInspectionBridge = null;
262
- hostElement = null;
263
- }
264
- }
265
- export { toggleInspector, setInspectorOpen } from "./shell/InspectorShell.js";
3
+ export { toggleInspector, setInspectorOpen } from "./shell/openStore.js";
266
4
  export { InspectorShell } from "./shell/InspectorShell.js";
267
5
  export { detectFramework } from "./prompt/detectFramework.js";
268
6
  export { installStaticHtmlRuntimeIdentity, isRuntimeGeneratedSource, RUNTIME_ELEMENT_CID_PREFIX, RUNTIME_UNKNOWN_SOURCE_PREFIX, } from "./runtime/staticHtmlRuntimeIdentity.js";
@@ -4,7 +4,5 @@ export declare function getInlineTextDiagnostics(): readonly InlineTextDiagnosti
4
4
  export declare function getInlineTextDiagnostic(): InlineTextDiagnostic | null;
5
5
  export declare function subscribeInlineTextDiagnostics(listener: () => void): () => void;
6
6
  export declare function useInlineTextDiagnostic(): InlineTextDiagnostic | null;
7
- /** Clear the current diagnostic, optionally only when it belongs to a frame. */
8
7
  export declare function clearInlineTextDiagnostics(ownerDocument?: Document): void;
9
- /** Keep feedback for the target that was just selected, but clear stale feedback. */
10
8
  export declare function clearInlineTextDiagnosticsForSelection(selectedElements: readonly HTMLElement[]): void;
@@ -43,7 +43,6 @@ export function useInlineTextDiagnostic() {
43
43
  useSyncExternalStore(subscribeInlineTextDiagnostics, () => revision, () => revision);
44
44
  return getInlineTextDiagnostic();
45
45
  }
46
- /** Clear the current diagnostic, optionally only when it belongs to a frame. */
47
46
  export function clearInlineTextDiagnostics(ownerDocument) {
48
47
  const current = diagnostics.at(-1);
49
48
  if (!current)
@@ -53,7 +52,6 @@ export function clearInlineTextDiagnostics(ownerDocument) {
53
52
  diagnostics = [];
54
53
  notify();
55
54
  }
56
- /** Keep feedback for the target that was just selected, but clear stale feedback. */
57
55
  export function clearInlineTextDiagnosticsForSelection(selectedElements) {
58
56
  const current = diagnostics.at(-1);
59
57
  if (!current)
@@ -1,6 +1,6 @@
1
1
  import { type TextBindingChoice, type TextEditBinding, type TextEditRejection, type TextEditRejectionReason } from "../componentSemantics/textBinding.js";
2
2
  import type { ChangeRecord } from "../changes/types.js";
3
- import type { TextProjectionScope } from "./textChangeBoundary.js";
3
+ import type { TextProjectionScope } from "../changes/editModel.js";
4
4
  export type { TextEditBinding, TextEditRejection } from "../componentSemantics/textBinding.js";
5
5
  export type { TextBindingCandidate } from "../componentSemantics/textBinding.js";
6
6
  export interface InlineTextSession {
@@ -37,7 +37,6 @@ export declare function getInlineTextSession(): InlineTextSession | null;
37
37
  export declare function useInlineTextSession(): InlineTextSession | null;
38
38
  export declare function isInlineTextEditingActive(): boolean;
39
39
  export declare function cancelInlineTextEdit(): void;
40
- /** End a session owned by a document/frame that is about to be disposed. */
41
40
  export declare function disposeInlineTextEdit(reason?: "frame-disposed" | "route-disposed", ownerDocument?: Document): void;
42
41
  export type InlineTextEditIntent = {
43
42
  kind: "pointer-down";
@@ -55,15 +54,10 @@ export type InlineTextEditIntent = {
55
54
  y: number;
56
55
  };
57
56
  };
58
- /**
59
- * Handle one native interaction while keeping session-transition policy
60
- * local. Pointer-down preserves double-click intent across the first click's
61
- * blur commit, even when canonical projection replaces the target DOM.
62
- */
57
+ /** Pointer-down preserves double-click intent across the first click's blur commit. */
63
58
  export declare function handleInlineTextEditIntent(intent: InlineTextEditIntent): InlineTextInteractionDisposition;
64
59
  export declare const inlineTextEditor: InlineTextEditor;
65
- /** Re-enter an existing canonical rendered-text projection through its empty
66
- * inspector affordance. This never guesses a new DOM target or source node. */
60
+ /** Re-enters an existing projection; never guesses a new DOM target or source node. */
67
61
  export declare function beginInlineTextEditFromEmptyProjection(marker: HTMLElement): InlineTextSession | TextEditRejection;
68
62
  export declare function beginInlineTextEdit(element: HTMLElement, point?: {
69
63
  x: number;
@@ -1,6 +1,5 @@
1
- import { canEditDraft } from "../changes/draftChanges.js";
1
+ import { appendChange, canEditDraft } from "../drafts/store.js";
2
2
  import { useSyncExternalStore } from "react";
3
- import { appendChange } from "../changes/changesLog.js";
4
3
  import { registerInlineTextClearHandler } from "./inlineTextLifecycle.js";
5
4
  import { isNudgeUiDev } from "../runtime/devFlag.js";
6
5
  import { initialTextEditDecision, chooseTextEditBinding, getTextEditScopeChoices, getTextEditBinding, prepareTextEditChange, } from "./textEditChange.js";
@@ -12,8 +11,7 @@ const listeners = new Set();
12
11
  let activeSession = null;
13
12
  let activeSessionDocument = null;
14
13
  let pendingEditIntent = null;
15
- // This remains armed if blur replaces the DOM between the second pointer-down
16
- // and dblclick; only the next handoff attempt or explicit teardown consumes it.
14
+ // Stays armed if blur replaces the DOM between the second pointer-down and dblclick; the next handoff attempt or teardown consumes it.
17
15
  let handoffPointerArmed = false;
18
16
  let pendingReplayScheduled = false;
19
17
  let sessionRevision = 0;
@@ -52,7 +50,6 @@ export function cancelInlineTextEdit() {
52
50
  else
53
51
  clearInlineTextDiagnostics();
54
52
  }
55
- /** End a session owned by a document/frame that is about to be disposed. */
56
53
  export function disposeInlineTextEdit(reason = "frame-disposed", ownerDocument) {
57
54
  if (!ownerDocument) {
58
55
  discardPendingInlineTextEdit();
@@ -135,11 +132,7 @@ function schedulePendingInlineTextEdit() {
135
132
  drainPendingInlineTextEdit();
136
133
  });
137
134
  }
138
- /**
139
- * Request inline editing from a document gesture. This is the interaction
140
- * seam: it owns active-session handoff so gesture routers never discard a
141
- * valid target switch merely because another draft is settling.
142
- */
135
+ /** Owns active-session handoff so gesture routers never discard a valid target switch. */
143
136
  function requestInlineTextEdit(target, point) {
144
137
  if (activeSession) {
145
138
  const hitTarget = target.ownerDocument.elementFromPoint?.(point.x, point.y);
@@ -148,10 +141,7 @@ function requestInlineTextEdit(target, point) {
148
141
  return "stop-propagation";
149
142
  }
150
143
  }
151
- // Application-owned contenteditable surfaces must retain native editing
152
- // semantics. They are intentionally rejected by text binding, but that
153
- // rejection must not become an inspector-level suppression when another
154
- // inline edit is already active.
144
+ // Application-owned contenteditable surfaces keep native editing semantics; their binding rejection must not become an inspector-level suppression.
155
145
  if (isApplicationOwnedEditingSurface(target))
156
146
  return "pass-through";
157
147
  const intent = {
@@ -171,11 +161,7 @@ function requestInlineTextEdit(target, point) {
171
161
  drainPendingInlineTextEdit();
172
162
  return "suppress";
173
163
  }
174
- /**
175
- * Handle one native interaction while keeping session-transition policy
176
- * local. Pointer-down preserves double-click intent across the first click's
177
- * blur commit, even when canonical projection replaces the target DOM.
178
- */
164
+ /** Pointer-down preserves double-click intent across the first click's blur commit. */
179
165
  export function handleInlineTextEditIntent(intent) {
180
166
  if (intent.kind === "double-click") {
181
167
  return requestInlineTextEdit(intent.target, intent.point);
@@ -222,9 +208,7 @@ function restoreSelection(doc, snapshot) {
222
208
  selection.addRange(range);
223
209
  }
224
210
  catch {
225
- // A framework rerender can invalidate a saved range between cleanup
226
- // and restoration. Removing the transient selection is safer than
227
- // retaining a range in a detached editing wrapper.
211
+ // A framework rerender can invalidate a saved range; dropping the selection beats keeping a range in a detached wrapper.
228
212
  selection.removeAllRanges();
229
213
  }
230
214
  }
@@ -241,14 +225,11 @@ function restoreDraft(candidate, host, text, ownership) {
241
225
  if (!hostIsOwned(candidate, host, ownership))
242
226
  return false;
243
227
  const original = candidate.textNode;
244
- // Normal typing replaces the original node inside the wrapper, leaving it
245
- // detached. If reconciliation moved that node into another live tree,
246
- // never move it back into the captured position.
228
+ // Typing detaches the original node inside the wrapper; if reconciliation moved it into another live tree, never move it back.
247
229
  if (original.isConnected && original.parentNode !== host)
248
230
  return false;
249
231
  original.nodeValue = text;
250
- // Keep the original Text node and replace only the transient wrapper. This
251
- // preserves every sibling/descendant of an icon-plus-label host.
232
+ // Replacing only the transient wrapper preserves siblings/descendants of an icon-plus-label host.
252
233
  host.replaceWith(original);
253
234
  return true;
254
235
  }
@@ -269,8 +250,7 @@ function rangeInsideHost(host, range) {
269
250
  if (!isNodeInsideHost(host, range.startContainer)
270
251
  || !isNodeInsideHost(host, range.endContainer))
271
252
  return false;
272
- // A host ancestor contains the common ancestor whenever both endpoints are
273
- // inside it; StaticRange does not expose commonAncestorContainer.
253
+ // Endpoints inside the host imply the common ancestor is too; StaticRange does not expose commonAncestorContainer.
274
254
  return true;
275
255
  }
276
256
  function selectionInsideHost(host) {
@@ -412,8 +392,7 @@ function makeSession(candidate) {
412
392
  const originalParent = candidate.textNode.parentNode;
413
393
  const originalNextSibling = candidate.textNode.nextSibling;
414
394
  if (!originalParent) {
415
- // `resolveTextBinding` only returns connected text nodes, but keep this
416
- // boundary defensive if a framework mutates between resolution and wrap.
395
+ // resolveTextBinding returns connected text nodes, but a framework can mutate between resolution and wrap.
417
396
  throw new Error("Inline text target lost its parent before editing began.");
418
397
  }
419
398
  const ownership = { parent: originalParent, nextSibling: originalNextSibling };
@@ -424,12 +403,7 @@ function makeSession(candidate) {
424
403
  host.setAttribute("contenteditable", "plaintext-only");
425
404
  host.contentEditable = "plaintext-only";
426
405
  candidate.textNode.replaceWith(host);
427
- // An empty Text node is retained for exact restoration, but leaving it as
428
- // the first child of a native contenteditable makes Chromium insert the
429
- // first character beside it. The input handler then has to coalesce two
430
- // text nodes and the browser resets the caret to the start, reversing the
431
- // visible draft. Let the empty editor start childless; restoreDraft still
432
- // puts the captured node back at the owned insertion point on exit.
406
+ // A leading empty Text node makes Chromium insert the first character beside it and reset the caret; start childless and let restoreDraft put the node back on exit.
433
407
  if (candidate.before.length > 0)
434
408
  host.append(candidate.textNode);
435
409
  let finished = false;
@@ -487,8 +461,7 @@ function makeSession(candidate) {
487
461
  if (finished)
488
462
  return;
489
463
  const restoreFocus = editorOwnsFocus();
490
- // A moved/reordered host has no safe insertion point. Remove only the
491
- // temporary wrapper; never reinsert the original node into a new tree.
464
+ // A moved host has no safe insertion point: remove the wrapper, never reinsert the original node.
492
465
  if (host.isConnected)
493
466
  host.remove();
494
467
  finish("app-reconciled", "cancelled", discardedDraft, restoreFocus);
@@ -554,9 +527,7 @@ function makeSession(candidate) {
554
527
  }
555
528
  }
556
529
  }
557
- // A cancelled/unchanged re-entry keeps the same affordance. A committed
558
- // non-empty value is synchronously reconciled by the text projection,
559
- // which removes it after this session cleanup.
530
+ // Restore the affordance on cancel/unchanged; a committed non-empty value is removed by projection reconciliation.
560
531
  if (candidate.emptyProjectionMarker?.isConnected) {
561
532
  candidate.emptyProjectionMarker.hidden = false;
562
533
  }
@@ -567,8 +538,7 @@ function makeSession(candidate) {
567
538
  if (finished)
568
539
  return;
569
540
  if (event.isComposing || composing) {
570
- // Enter/Escape belong to the IME until compositionend. Keeping the
571
- // session alive makes the composition one canonical edit.
541
+ // Enter/Escape belong to the IME until compositionend; keeping the session alive makes the composition one canonical edit.
572
542
  event.stopPropagation();
573
543
  if (event.key === "Enter" || event.key === "Escape" || event.key === "Esc") {
574
544
  event.preventDefault();
@@ -593,10 +563,7 @@ function makeSession(candidate) {
593
563
  session.cancel();
594
564
  return;
595
565
  }
596
- // Keep inspector keyboard authority out of the draft while allowing the
597
- // browser to handle ordinary typing and caret movement natively. The
598
- // listener is scoped to this host so it does not intercept native input
599
- // before the contenteditable target sees it.
566
+ // Keep inspector shortcuts out of the draft while native typing and caret movement still run.
600
567
  event.stopPropagation();
601
568
  }
602
569
  function onBlur() {
@@ -605,8 +572,7 @@ function makeSession(candidate) {
605
572
  blurPending = true;
606
573
  if (composing)
607
574
  return;
608
- // Deferring one macrotask lets Escape cancel a browser blur that occurs
609
- // while a contenteditable host is handling the key event.
575
+ // Deferring one macrotask lets Escape cancel a blur that fires while the host handles the key event.
610
576
  blurCommitHandle = setTimeout(() => {
611
577
  blurCommitHandle = null;
612
578
  if (!finished) {
@@ -619,8 +585,7 @@ function makeSession(candidate) {
619
585
  if (finished)
620
586
  return;
621
587
  const rejectBeforeInput = (reason) => {
622
- // Some browsers still deliver input after a non-cancelable beforeinput.
623
- // Remember the safe plain draft so that onInput can undo that mutation.
588
+ // Some browsers still deliver input after a non-cancelable beforeinput; remember the safe draft so onInput can undo it.
624
589
  if (!event.cancelable)
625
590
  rejectedNextInput = reason;
626
591
  if (event.cancelable)
@@ -738,9 +703,7 @@ function makeSession(candidate) {
738
703
  event.stopPropagation();
739
704
  if (blurPending && !finished) {
740
705
  blurPending = false;
741
- // Browsers may dispatch the final insertCompositionText/input after
742
- // compositionend. Commit on the next macrotask so those final chars are
743
- // part of this one canonical edit.
706
+ // Browsers may dispatch the final composition input after compositionend; commit on the next macrotask to include it.
744
707
  compositionFinalizeHandle = setTimeout(() => {
745
708
  compositionFinalizeHandle = null;
746
709
  if (!finished && !composing)
@@ -753,16 +716,14 @@ function makeSession(candidate) {
753
716
  return;
754
717
  const selection = doc.getSelection?.();
755
718
  if (!selection || selection.rangeCount === 0) {
756
- // A panel click can clear the page selection before blur; let blur own
757
- // the normal commit path unless the editing host still owns focus.
719
+ // A panel click can clear the page selection before blur; let blur own the commit path unless the host still owns focus.
758
720
  if (doc.activeElement === host)
759
721
  endLifecycle("selection-removed");
760
722
  return;
761
723
  }
762
724
  if (selection && selection.rangeCount > 0 && selectionInsideHost(host))
763
725
  return;
764
- // A removed selection/host is a lifecycle end, not a text operation. The
765
- // original node is restored only while its owning host is still connected.
726
+ // A removed selection/host is a lifecycle end, not a text operation.
766
727
  if (!host.isConnected || !candidate.element.isConnected) {
767
728
  endLifecycle(!host.isConnected ? "host-removed" : "selection-removed");
768
729
  return;
@@ -778,9 +739,7 @@ function makeSession(candidate) {
778
739
  if (!OwnerNode || !(target instanceof OwnerNode))
779
740
  return;
780
741
  if (host.contains(target)) {
781
- // All down/up events must reach the native editing host so caret and
782
- // drag-selection behavior remains intact. The click itself is held so
783
- // the app cannot activate the surrounding button/link.
742
+ // Down/up events must reach the host so caret and drag-selection work; the click is held so the app cannot activate the surrounding button/link.
784
743
  if (event.type === "mousedown" || event.type === "mouseup"
785
744
  || event.type === "pointerdown" || event.type === "pointerup")
786
745
  return;
@@ -791,9 +750,7 @@ function makeSession(candidate) {
791
750
  const inspectorRoot = doc.getElementById("nudge-ui-root");
792
751
  if (inspectorRoot && (target === inspectorRoot || inspectorRoot.contains(target)))
793
752
  return;
794
- // At the document boundary, application actions are suspended for the
795
- // duration of the draft. Inspector controls live in the scoped shadow
796
- // host above and remain usable.
753
+ // Outside the inspector root, application actions are suspended for the duration of the draft.
797
754
  if (event.type !== "mousedown" && event.type !== "mouseup"
798
755
  && event.type !== "pointerdown" && event.type !== "pointerup") {
799
756
  event.preventDefault();
@@ -801,9 +758,7 @@ function makeSession(candidate) {
801
758
  event.stopPropagation();
802
759
  }
803
760
  function suppressHostPointer(event) {
804
- // Keep the native default (focus transfer, caret placement, and drag
805
- // selection) while preventing an application ancestor from observing the
806
- // temporary host's pointer sequence.
761
+ // Keep native defaults; only stop an application ancestor from observing the host's pointer sequence.
807
762
  event.stopPropagation();
808
763
  }
809
764
  function onFrameDisposed() {
@@ -850,9 +805,6 @@ function makeSession(candidate) {
850
805
  }
851
806
  }
852
807
  else if (host.isConnected) {
853
- // A reconciliation can move the temporary host before removing the
854
- // original root. It no longer has an owned insertion point, so remove
855
- // the wrapper rather than leaking an editor into the new tree.
856
808
  host.remove();
857
809
  }
858
810
  finish(reason, "cancelled", discardedDraft, restoreFocus);
@@ -915,17 +867,14 @@ function makeSession(candidate) {
915
867
  endLifecycle("app-reconciled", after);
916
868
  return null;
917
869
  }
918
- // Always remove the temporary host before appending the canonical
919
- // change. The React Adapter must own the permanent preview.
870
+ // Remove the temporary host before appending the change: the React Adapter must own the permanent preview.
920
871
  const restoreFocus = editorOwnsFocus();
921
872
  if (!restoreDraft(candidate, host, candidate.before, ownership)) {
922
873
  cancelForReconciliation();
923
874
  return null;
924
875
  }
925
876
  if (change?.kind === "text-content" && editDecision.scope === "rendered-instance") {
926
- // The second text value is alternate evidence for re-entry after a
927
- // previous projection. Validation happens after unwrapping because a
928
- // mounted draft can make another identical root look unique.
877
+ // candidate.before is alternate evidence for re-entry; validate after unwrapping, when a mounted draft can make another identical root look unique.
929
878
  const resolved = resolveTextProjectionTarget(doc, change.target, candidate.before);
930
879
  if (resolved.status !== "resolved") {
931
880
  if (!resumeDraft(after))
@@ -1027,8 +976,7 @@ export const inlineTextEditor = {
1027
976
  return makeSession(candidate);
1028
977
  },
1029
978
  };
1030
- /** Re-enter an existing canonical rendered-text projection through its empty
1031
- * inspector affordance. This never guesses a new DOM target or source node. */
979
+ /** Re-enters an existing projection; never guesses a new DOM target or source node. */
1032
980
  export function beginInlineTextEditFromEmptyProjection(marker) {
1033
981
  if (!canEditDraft()) {
1034
982
  return { kind: "rejected", reason: "editing-active", message: "Wait for the iteration to finish saving before editing text." };
@@ -1050,9 +998,7 @@ export function beginInlineTextEditFromEmptyProjection(marker) {
1050
998
  const candidate = resolveEmptyProjectionCandidate(marker);
1051
999
  if (isTextEditRejection(candidate))
1052
1000
  return recordTextEditRejection(marker, candidate);
1053
- // Hide the affordance while its retained empty Text node is wrapped by the
1054
- // native editor. The marker is restored on cancel and removed by projection
1055
- // reconciliation on a successful non-empty commit.
1001
+ // Hide the affordance while the editor wraps its empty Text node; cancel restores it, a non-empty commit removes it via reconciliation.
1056
1002
  marker.hidden = true;
1057
1003
  try {
1058
1004
  return makeSession(candidate);
@@ -1,9 +1,4 @@
1
- /**
2
- * A tiny lifecycle seam keeps canonical-history clearing independent from the
3
- * editor implementation. The editor registers its active-session disposer;
4
- * changesLog can then cancel it without importing the editor back through a
5
- * circular module edge.
6
- */
1
+ // Keeps canonical-history clearing independent of the editor without importing it back through a circular edge.
7
2
  import { clearInlineTextDiagnostics } from "./inlineTextDiagnostics.js";
8
3
  let clearHandler = null;
9
4
  export function registerInlineTextClearHandler(handler) {
@@ -1,7 +1,6 @@
1
1
  import type { TextBindingCandidate, TextEditBinding } from "../componentSemantics/textBinding.js";
2
2
  import type { ChangeRecord } from "../changes/types.js";
3
- import type { TextProjectionScope, TextProjectionTarget } from "./textChangeBoundary.js";
4
- /** Binding and scope decisions, independent of native editor lifecycle state. */
3
+ import type { TextProjectionScope, TextProjectionTarget } from "../changes/editModel.js";
5
4
  export interface TextEditDecision {
6
5
  bindingIndex: number | null;
7
6
  scope: TextProjectionScope;