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
@@ -0,0 +1,335 @@
1
+ /** Loads the inspector into a page without a host Adapter; everything a host normally supplies is derived from the live document. */
2
+ import { bootstrapNudgeUi, configureNudgeUiRuntime, getNudgeUiRuntimeConfig, isCanvasRenderer, readNudgeUiEditorTarget, setInspectorOpen, unmountInspector, } from "./index.js";
3
+ import { CANVAS_RENDERER_ATTR } from "./canvas/roleDetection.js";
4
+ import { releaseLease } from "./canvas/workspaceLease.js";
5
+ import { enablePageSurface } from "./canvas/pageSurface.js";
6
+ import { setNudgeUiHostDevFlag } from "./runtime/devFlag.js";
7
+ import { configureInspectorStorage } from "./runtime/inspectorStorage.js";
8
+ import { configureSketchStorage } from "./sketch/persistence.js";
9
+ import { preferAdoptedStylesheets } from "./runtime/ownedStylesheets.js";
10
+ import { enableInspectionPerformanceDiagnostics } from "./inspection/performanceDiagnostics.js";
11
+ import { installLazyRuntimeIdentity } from "./runtime/staticHtmlRuntimeIdentity.js";
12
+ import { createTokenInventory } from "../css/token-inventory/inventory.js";
13
+ export { createMirroredStorage } from "./runtime/inspectorStorage.js";
14
+ export { isSketchDocument, isSketchHandoffRecord } from "./sketch/model.js";
15
+ const MOUNT_ID = "nudge-ui-root";
16
+ const LOADED_FLAG = "__NUDGE_UI_PAGE_INSPECTOR__";
17
+ const COMPUTED_ROOT_ID = "computed:root";
18
+ function isNudgeOwnedSheet(sheet) {
19
+ const owner = sheet.ownerNode;
20
+ return owner instanceof Element && owner.hasAttribute("data-nudge-ui");
21
+ }
22
+ function sheetId(sheet, index, base) {
23
+ const owner = sheet.ownerNode;
24
+ const viteId = owner instanceof HTMLElement ? owner.dataset.viteDevId : undefined;
25
+ if (viteId)
26
+ return viteId;
27
+ if (sheet.href) {
28
+ const url = new URL(sheet.href, base);
29
+ return url.origin === new URL(base).origin ? url.pathname : url.href;
30
+ }
31
+ return `inline-style-${index + 1}`;
32
+ }
33
+ function serializeRules(sheet) {
34
+ return Array.from(sheet.cssRules, (rule) => rule.cssText).join("\n");
35
+ }
36
+ async function collectSheet(sheet, index, base) {
37
+ const id = sheetId(sheet, index, base);
38
+ try {
39
+ return { id, content: serializeRules(sheet) };
40
+ }
41
+ catch {
42
+ if (!sheet.href)
43
+ return { id, readError: "stylesheet rules are not readable" };
44
+ }
45
+ try {
46
+ const response = await fetch(sheet.href, { mode: "cors", credentials: "omit" });
47
+ if (!response.ok)
48
+ return { id, readError: `HTTP ${response.status}` };
49
+ return { id, content: await response.text() };
50
+ }
51
+ catch {
52
+ return { id, readError: "cross-origin stylesheet without CORS access" };
53
+ }
54
+ }
55
+ /** Root custom properties missing from readable stylesheets: CORS-blocked sheets, rejected scoped rules, or JS-set variables. */
56
+ function computedRootDeclarations(doc, definedNames) {
57
+ const declarations = [];
58
+ const view = doc.defaultView ?? window;
59
+ for (const element of [doc.documentElement, doc.body]) {
60
+ if (!element)
61
+ continue;
62
+ const style = view.getComputedStyle(element);
63
+ for (let index = 0; index < style.length; index += 1) {
64
+ const name = style.item(index);
65
+ if (!name.startsWith("--") || definedNames.has(name))
66
+ continue;
67
+ const value = style.getPropertyValue(name).trim();
68
+ if (!value)
69
+ continue;
70
+ definedNames.add(name);
71
+ declarations.push(` ${name}: ${value};`);
72
+ }
73
+ }
74
+ return declarations.length > 0 ? `:root {\n${declarations.join("\n")}\n}` : null;
75
+ }
76
+ function mapDiagnostic(diagnostic) {
77
+ return {
78
+ code: diagnostic.code,
79
+ message: diagnostic.message,
80
+ module: diagnostic.module ?? diagnostic.artifact ?? "document",
81
+ ...(diagnostic.exportName !== undefined ? { exportName: diagnostic.exportName } : {}),
82
+ };
83
+ }
84
+ async function collectDocumentTokens(doc) {
85
+ const sheets = Array.from(doc.styleSheets).filter((sheet) => !isNudgeOwnedSheet(sheet));
86
+ const collected = await Promise.all(sheets.map((sheet, index) => collectSheet(sheet, index, doc.location.href)));
87
+ const inventory = createTokenInventory();
88
+ for (const [order, sheet] of collected.entries()) {
89
+ const artifact = {
90
+ buildTool: "browser",
91
+ id: sheet.id,
92
+ stage: "authored",
93
+ provenance: "project",
94
+ order,
95
+ ...(sheet.content !== undefined ? { content: sheet.content } : {}),
96
+ ...(sheet.readError ? {
97
+ diagnostics: [{
98
+ code: "stylesheet-unreadable",
99
+ message: `Stylesheet "${sheet.id}" could not be read: ${sheet.readError}`,
100
+ module: sheet.id,
101
+ }],
102
+ } : {}),
103
+ };
104
+ inventory.apply(artifact);
105
+ }
106
+ const definedNames = new Set(inventory.snapshot().definitions.map((definition) => definition.cssName));
107
+ const computed = computedRootDeclarations(doc, definedNames);
108
+ if (computed) {
109
+ inventory.apply({
110
+ buildTool: "browser",
111
+ id: COMPUTED_ROOT_ID,
112
+ stage: "authored",
113
+ provenance: "project",
114
+ order: -1,
115
+ content: computed,
116
+ });
117
+ }
118
+ const snapshot = inventory.snapshot();
119
+ return {
120
+ tokenCatalog: snapshot.definitions.map((definition) => ({
121
+ ...definition,
122
+ declarations: definition.declarations.map((declaration) => ({
123
+ id: declaration.id,
124
+ order: declaration.order,
125
+ value: declaration.value,
126
+ source: declaration.source,
127
+ important: declaration.important,
128
+ context: declaration.context,
129
+ })),
130
+ })),
131
+ tokens: snapshot.tokens,
132
+ tokenDiagnostics: snapshot.diagnostics.map(mapDiagnostic),
133
+ tokenGeneration: `browser:${snapshot.generation}`,
134
+ };
135
+ }
136
+ const NO_TOKENS = { tokenCatalog: [], tokens: [], tokenDiagnostics: [], tokenGeneration: "" };
137
+ function runtimeConfig(tokens, unavailableReason) {
138
+ return {
139
+ projectId: `page:${location.origin}`,
140
+ host: "static-html",
141
+ framework: "HTML",
142
+ stylingSystem: "CSS custom properties",
143
+ capabilities: { canvas: !unavailableReason, componentSemantics: false, domNavigation: !unavailableReason },
144
+ features: { canvasIterations: false, mcp: false, ...(unavailableReason ? { sketch: false } : {}) },
145
+ ...(unavailableReason ? { inspectionUnavailableReason: unavailableReason } : {}),
146
+ componentContracts: [],
147
+ ...tokens,
148
+ };
149
+ }
150
+ function createMount() {
151
+ const mount = document.createElement("div");
152
+ mount.id = MOUNT_ID;
153
+ document.body.append(mount);
154
+ return mount;
155
+ }
156
+ /** Mounts the inspector and returns a toggle that fully unmounts and remounts it. */
157
+ function mountPageInspector() {
158
+ let mount = null;
159
+ let removeIdentityListeners = null;
160
+ const enable = () => {
161
+ setNudgeUiHostDevFlag(true);
162
+ removeIdentityListeners = installLazyRuntimeIdentity(document);
163
+ mount = createMount();
164
+ bootstrapNudgeUi(mount);
165
+ setInspectorOpen(true);
166
+ };
167
+ const disable = (target) => {
168
+ unmountInspector();
169
+ removeIdentityListeners?.();
170
+ removeIdentityListeners = null;
171
+ releaseLease();
172
+ setInspectorOpen(false);
173
+ setNudgeUiHostDevFlag(false);
174
+ target.remove();
175
+ mount = null;
176
+ };
177
+ enable();
178
+ return () => {
179
+ if (mount)
180
+ disable(mount);
181
+ else
182
+ enable();
183
+ };
184
+ }
185
+ /** Replaces the page content with the iframe editor; the caller loads the inspector into its renderer frames. */
186
+ function mountEditor(onRendererFrameLoad) {
187
+ // The editor never owns the tab title; it shows the application's own title.
188
+ const pageTitle = document.title;
189
+ document.head.replaceChildren();
190
+ document.body.replaceChildren();
191
+ for (const element of [document.documentElement, document.body]) {
192
+ element.removeAttribute("style");
193
+ element.removeAttribute("hidden");
194
+ element.removeAttribute("inert");
195
+ }
196
+ document.title = pageTitle;
197
+ const layout = new CSSStyleSheet();
198
+ layout.replaceSync(`html, body, #${MOUNT_ID} { display: block; width: 100%; height: 100%; margin: 0; overflow: hidden; }`);
199
+ document.adoptedStyleSheets = [layout];
200
+ // A parsed meta policy remains active even after the original head is removed.
201
+ document.addEventListener("securitypolicyviolation", (event) => {
202
+ if (event.disposition !== "enforce" || event.effectiveDirective !== "frame-src")
203
+ return;
204
+ if (getNudgeUiRuntimeConfig().inspectionUnavailableReason)
205
+ return;
206
+ configureNudgeUiRuntime(runtimeConfig(NO_TOKENS, "its security policy"));
207
+ });
208
+ setNudgeUiHostDevFlag(true);
209
+ const mount = createMount();
210
+ bootstrapNudgeUi(mount);
211
+ setInspectorOpen(true);
212
+ // Storage hydration can delay the controller mount; watch its host now.
213
+ const root = mount.shadowRoot ?? mount.attachShadow({ mode: "open" });
214
+ const frames = () => root.querySelectorAll(`iframe[${CANVAS_RENDERER_ATTR}]`);
215
+ const applicationDocument = (frame) => {
216
+ const frameDocument = frame.contentDocument;
217
+ return frameDocument && frameDocument.location.href !== "about:blank" ? frameDocument : null;
218
+ };
219
+ // A frame's `load` waits for every image, so renderers start once the DOM is ready.
220
+ const announced = new WeakSet();
221
+ const announceReadyDocuments = () => {
222
+ for (const frame of frames()) {
223
+ const frameDocument = applicationDocument(frame);
224
+ if (!frameDocument || frameDocument.readyState === "loading" || announced.has(frameDocument))
225
+ continue;
226
+ announced.add(frameDocument);
227
+ onRendererFrameLoad?.();
228
+ }
229
+ };
230
+ // Mirrors the primary application frame's title, which follows its navigation.
231
+ const syncApplicationTitle = () => {
232
+ for (const frame of frames()) {
233
+ const frameTitle = applicationDocument(frame)?.title;
234
+ if (frameTitle) {
235
+ if (document.title !== frameTitle)
236
+ document.title = frameTitle;
237
+ return;
238
+ }
239
+ }
240
+ };
241
+ window.setInterval(() => {
242
+ announceReadyDocuments();
243
+ syncApplicationTitle();
244
+ }, 100);
245
+ // Script-built styles exist only in the application frames, not in this document.
246
+ const collectFrameTokens = (frame) => {
247
+ const frameDocument = applicationDocument(frame);
248
+ if (!frameDocument)
249
+ return;
250
+ void collectDocumentTokens(frameDocument).then((tokens) => {
251
+ if (getNudgeUiRuntimeConfig().inspectionUnavailableReason)
252
+ return;
253
+ if (tokens.tokenGeneration !== getNudgeUiRuntimeConfig().tokenGeneration) {
254
+ configureNudgeUiRuntime(runtimeConfig(tokens));
255
+ }
256
+ });
257
+ };
258
+ const watched = new WeakSet();
259
+ const watch = () => {
260
+ for (const frame of frames()) {
261
+ if (watched.has(frame))
262
+ continue;
263
+ watched.add(frame);
264
+ frame.addEventListener("load", () => collectFrameTokens(frame));
265
+ collectFrameTokens(frame);
266
+ }
267
+ };
268
+ new MutationObserver(watch).observe(root, { childList: true, subtree: true });
269
+ watch();
270
+ }
271
+ function exitEditor() {
272
+ location.replace(readNudgeUiEditorTarget(location.href) ?? location.href);
273
+ }
274
+ /** A second bundle copy in the same window toggles the first instance, whose stores own the UI. */
275
+ export async function startPageInspector(options = {}) {
276
+ const target = window;
277
+ const loaded = target[LOADED_FLAG];
278
+ if (loaded) {
279
+ loaded.toggle();
280
+ return;
281
+ }
282
+ const editor = options.surface === "editor" && readNudgeUiEditorTarget(location.href) !== null;
283
+ let toggle = editor ? exitEditor : null;
284
+ target[LOADED_FLAG] = {
285
+ surface: editor ? "editor" : "page",
286
+ toggle: () => toggle?.(),
287
+ enablePerformanceDiagnostics: () => enableInspectionPerformanceDiagnostics(document),
288
+ };
289
+ if (options.storage)
290
+ configureInspectorStorage(options.storage);
291
+ if (options.sketchStorage)
292
+ configureSketchStorage(options.sketchStorage);
293
+ if (options.adoptStylesheets)
294
+ preferAdoptedStylesheets();
295
+ const tokens = options.unavailableReason ? NO_TOKENS : await collectDocumentTokens(document);
296
+ configureNudgeUiRuntime(runtimeConfig(tokens, options.unavailableReason));
297
+ if (editor) {
298
+ mountEditor(options.onRendererFrameLoad);
299
+ }
300
+ else {
301
+ if (!options.unavailableReason)
302
+ enablePageSurface();
303
+ toggle = mountPageInspector();
304
+ }
305
+ console.info(`[nudge-ui] Inspector loaded in ${editor ? "editor" : "page"} mode with ${tokens.tokenCatalog.length} tokens`
306
+ + (tokens.tokenDiagnostics.length > 0 ? ` and ${tokens.tokenDiagnostics.length} stylesheet diagnostics.` : "."), tokens.tokenDiagnostics);
307
+ }
308
+ /** Only acts inside an editor Canvas frame that has no renderer yet. */
309
+ export function startCanvasRenderer(options = {}) {
310
+ const target = window;
311
+ if (!isCanvasRenderer() || target[LOADED_FLAG])
312
+ return;
313
+ target[LOADED_FLAG] = {
314
+ surface: "renderer",
315
+ toggle: () => undefined,
316
+ enablePerformanceDiagnostics: () => enableInspectionPerformanceDiagnostics(document),
317
+ };
318
+ if (options.adoptStylesheets)
319
+ preferAdoptedStylesheets();
320
+ setNudgeUiHostDevFlag(true);
321
+ installLazyRuntimeIdentity(document);
322
+ configureNudgeUiRuntime(runtimeConfig(NO_TOKENS));
323
+ bootstrapNudgeUi(createMount());
324
+ // Renderers inspect their own elements, so they need this document's tokens.
325
+ const collectTokens = () => {
326
+ void collectDocumentTokens(document).then((tokens) => {
327
+ if (tokens.tokenGeneration !== getNudgeUiRuntimeConfig().tokenGeneration) {
328
+ configureNudgeUiRuntime(runtimeConfig(tokens));
329
+ }
330
+ });
331
+ };
332
+ collectTokens();
333
+ if (document.readyState !== "complete")
334
+ window.addEventListener("load", collectTokens, { once: true });
335
+ }
@@ -1,3 +1,2 @@
1
- /** CSS-string escaping for selectors assembled from runtime DOM metadata. */
2
1
  export declare function escapeCssString(value: string): string;
3
2
  export declare function escapeAttrValue(value: string): string;
@@ -1,8 +1,6 @@
1
- /** CSS-string escaping for selectors assembled from runtime DOM metadata. */
2
1
  export function escapeCssString(value) {
3
- // Keep ordinary source selectors readable and byte-compatible. Once a
4
- // string contains a quote, backslash, or control character, hex-escape the
5
- // complete value so punctuation cannot terminate the CSS string early.
2
+ // Keep ordinary selectors byte-compatible; a value containing a quote,
3
+ // backslash, or control character is hex-escaped whole to prevent an early string end.
6
4
  if (!/["\\\0-\x1f\x7f]/.test(value))
7
5
  return value;
8
6
  let escaped = "";
@@ -3,7 +3,8 @@ import type { RenderedInstanceOverride } from "../changes/editModel.js";
3
3
  import { type StructuralChange } from "./structuralProjection.js";
4
4
  import type { ComponentOverride } from "../componentSemantics/types.js";
5
5
  import { type TextContentChangeRecord } from "../changes/types.js";
6
- import type { DraftContents } from "../changes/draftChanges.js";
6
+ import type { DraftContents } from "../drafts/model.js";
7
+ import { type RuntimeIdentityClaim } from "../runtime/runtimeIdentityClaims.js";
7
8
  export interface DraftProjectionSource extends DraftContents {
8
9
  readonly revision: number;
9
10
  }
@@ -14,7 +15,6 @@ export interface CompiledManagedStyles {
14
15
  export interface SerializedManagedStyles {
15
16
  readonly css: string;
16
17
  }
17
- /** A complete, read-only projection for one document-local runtime. */
18
18
  export interface DraftProjectionPlan<ManagedStyles> {
19
19
  readonly sourceRevision: number;
20
20
  readonly managedStyles: ManagedStyles;
@@ -22,9 +22,11 @@ export interface DraftProjectionPlan<ManagedStyles> {
22
22
  readonly structuralChanges: readonly StructuralChange[];
23
23
  readonly textContentChanges: readonly TextContentChangeRecord[];
24
24
  readonly componentOverrides: readonly ComponentOverride[];
25
+ /** Omitted by hold-to-view-original plans, which keep the attached identities. */
26
+ readonly runtimeIdentities?: readonly RuntimeIdentityClaim[];
25
27
  }
26
- /** Applies every projection dimension to one document-local runtime. */
27
28
  export interface DocumentProjectionAdapter<ManagedStyles> {
29
+ applyRuntimeIdentities(claims: readonly RuntimeIdentityClaim[]): void;
28
30
  applyStructural(changes: readonly StructuralChange[]): void;
29
31
  applyRenderedInstances(overrides: readonly RenderedInstanceOverride[]): void;
30
32
  applyText(changes: readonly TextContentChangeRecord[]): void;
@@ -32,12 +34,6 @@ export interface DocumentProjectionAdapter<ManagedStyles> {
32
34
  applyManagedStyles(styles: ManagedStyles): void;
33
35
  }
34
36
  export declare function compileDraftProjection(snapshot: DraftProjectionSource): DraftProjectionPlan<CompiledManagedStyles>;
35
- /**
36
- * Replaces one document projection in the required order.
37
- *
38
- * Structural intent is applied first because later rendered-instance evidence
39
- * can depend on the restored element order. Managed CSS is applied last so
40
- * selectors can use the document-local instance markers installed above.
41
- */
37
+ /** Order matters: identities first (selectors resolve by them), then structural, then managed CSS last (selectors use the instance markers above). */
42
38
  export declare function applyDraftProjection<ManagedStyles>(adapter: DocumentProjectionAdapter<ManagedStyles>, plan: DraftProjectionPlan<ManagedStyles>): void;
43
39
  export declare function applyHostDraftProjection(plan: DraftProjectionPlan<CompiledManagedStyles>): void;
@@ -6,6 +6,7 @@ import { replaceComponentOverrideProjection } from "../componentSemantics/index.
6
6
  import { componentChangeToOverride } from "../componentSemantics/changeModel.js";
7
7
  import { isComponentChange } from "../changes/types.js";
8
8
  import { buildManagedStyleRules } from "../changes/managedStyleProjection.js";
9
+ import { applyRuntimeIdentityClaims, collectRuntimeIdentityClaims, } from "../runtime/runtimeIdentityClaims.js";
9
10
  export function compileDraftProjection(snapshot) {
10
11
  const changes = [...snapshot.changes];
11
12
  const rules = buildManagedStyleRules(changes);
@@ -22,16 +23,13 @@ export function compileDraftProjection(snapshot) {
22
23
  .filter(isComponentChange)
23
24
  .map(componentChangeToOverride)
24
25
  .filter((override) => override !== null),
26
+ runtimeIdentities: collectRuntimeIdentityClaims(snapshot),
25
27
  };
26
28
  }
27
- /**
28
- * Replaces one document projection in the required order.
29
- *
30
- * Structural intent is applied first because later rendered-instance evidence
31
- * can depend on the restored element order. Managed CSS is applied last so
32
- * selectors can use the document-local instance markers installed above.
33
- */
29
+ /** Order matters: identities first (selectors resolve by them), then structural, then managed CSS last (selectors use the instance markers above). */
34
30
  export function applyDraftProjection(adapter, plan) {
31
+ if (plan.runtimeIdentities)
32
+ adapter.applyRuntimeIdentities(plan.runtimeIdentities);
35
33
  adapter.applyStructural(plan.structuralChanges);
36
34
  adapter.applyRenderedInstances(plan.instanceOverrides);
37
35
  adapter.applyText(plan.textContentChanges);
@@ -39,6 +37,9 @@ export function applyDraftProjection(adapter, plan) {
39
37
  adapter.applyManagedStyles(plan.managedStyles);
40
38
  }
41
39
  const hostDocumentProjectionAdapter = {
40
+ applyRuntimeIdentities: (claims) => {
41
+ applyRuntimeIdentityClaims(document, claims);
42
+ },
42
43
  applyStructural: (changes) => {
43
44
  applyStructuralProjection(document, changes);
44
45
  },
@@ -20,14 +20,8 @@ export interface PreviewResult {
20
20
  }
21
21
  export declare function ensureManagedSheet(): void;
22
22
  export declare function rulesToCssText(rules: StyleRule[]): string;
23
- /** Synchronous serialized view of the rules currently projected into the managed sheet. */
24
23
  export declare function getManagedSheetText(): string;
25
- /**
26
- * Replaces the managed sheet with the canonical projection. Keeping the
27
- * serialized rules authoritative avoids stale CSSStyleRule references when a
28
- * framework dev server reparses or reattaches style nodes during a render.
29
- */
24
+ /** Serialized rules stay authoritative to avoid stale CSSStyleRule references when a framework reparses style nodes. */
30
25
  export declare function applyRules(rules: StyleRule[]): void;
31
- /** Verify what the browser painted after the managed sheet was projected. */
32
26
  export declare function verifyPreview(el: HTMLElement | null, property: string, requestedValue: string): PreviewResult;
33
27
  export declare function removeManagedSheet(): void;
@@ -2,6 +2,7 @@ import { getElementComputedStyle } from "../runtime/domRealm.js";
2
2
  import { notifyBrowserStylesheetChange } from "../inspection/browserCssInspectionRegistry.js";
3
3
  import { escapeAttrValue, escapeCssString } from "./cssEscapes.js";
4
4
  import { isNudgeUiDev } from "../runtime/devFlag.js";
5
+ import { adoptStylesheet, allowsStyleElements, releaseAdoptedStylesheet } from "../runtime/ownedStylesheets.js";
5
6
  export { escapeAttrValue, escapeCssString } from "./cssEscapes.js";
6
7
  const SHEET_ID = "nudge-ui-styles";
7
8
  let managedHeadGuardDocument = null;
@@ -25,6 +26,12 @@ function installManagedHeadGuard(doc) {
25
26
  }
26
27
  export function ensureManagedSheet() {
27
28
  const doc = document;
29
+ if (!allowsStyleElements(doc)) {
30
+ // Adopted sheets already cascade after every document stylesheet.
31
+ adoptStylesheet(doc, SHEET_ID, rulesToCssText(managedRules));
32
+ exposeManagedSheetText(doc);
33
+ return;
34
+ }
28
35
  // SAFETY: getElementById returns an Element; the managed style element is created as HTMLStyleElement when missing.
29
36
  let el = doc.getElementById(SHEET_ID);
30
37
  if (!el) {
@@ -35,9 +42,7 @@ export function ensureManagedSheet() {
35
42
  }
36
43
  let sheet = el.sheet;
37
44
  if (!sheet) {
38
- // A browser may reject a newly-authored conditional rule (or a test DOM may
39
- // not implement it). Recreate the managed element so later clear/revert
40
- // operations can always recover instead of leaving history wedged.
45
+ // Recreate the element when the browser rejects the sheet so clear/revert can still recover.
41
46
  el.remove();
42
47
  el = doc.createElement("style");
43
48
  el.id = SHEET_ID;
@@ -53,8 +58,10 @@ export function ensureManagedSheet() {
53
58
  rehydrateManagedSheet(doc, el);
54
59
  }
55
60
  installManagedHeadGuard(doc);
61
+ exposeManagedSheetText(doc);
62
+ }
63
+ function exposeManagedSheetText(doc) {
56
64
  if (isNudgeUiDev() && doc.defaultView) {
57
- // Keep the canonical CSS available to dev diagnostics.
58
65
  doc.defaultView.__nudgeUiGetManagedSheetText = getManagedSheetText;
59
66
  }
60
67
  }
@@ -88,18 +95,12 @@ export function rulesToCssText(rules) {
88
95
  }
89
96
  return lines.join("\n");
90
97
  }
91
- /** Canonical rules retained so a framework can rehydrate a moved style node. */
98
+ /** Retained so a framework can rehydrate a moved style node. */
92
99
  let managedRules = [];
93
- /** Synchronous serialized view of the rules currently projected into the managed sheet. */
94
100
  export function getManagedSheetText() {
95
101
  return rulesToCssText(managedRules);
96
102
  }
97
- /**
98
- * Rehydrate the CSSOM after moving the managed style element in <head>.
99
- *
100
- * Some browsers replace the CSSStyleSheet when that element is reattached.
101
- * Rewriting the canonical text keeps the new sheet and the model aligned.
102
- */
103
+ /** Some browsers replace the CSSStyleSheet when the style element is reattached, so rewrite the canonical text. */
103
104
  function rehydrateManagedSheet(doc, el) {
104
105
  const sheet = el.sheet;
105
106
  if (!sheet)
@@ -120,20 +121,25 @@ function rehydrateManagedSheet(doc, el) {
120
121
  failedRehydrationCssText = el.sheet.cssRules.length === rules.length ? null : cssText;
121
122
  notifyBrowserStylesheetChange(doc);
122
123
  }
123
- /**
124
- * Writes the canonical projection to the managed style element and retains a
125
- * copy for rehydration if a framework moves or reparses that element.
126
- */
127
124
  function rebuildSheetText(rules) {
128
- // SAFETY: getElementById returns an Element; the managed style element is created as HTMLStyleElement when missing.
129
- const el = document.getElementById(SHEET_ID);
130
- if (!el)
131
- return;
132
125
  const desired = rules.map((rule) => ({
133
126
  ...rule,
134
127
  declarations: { ...rule.declarations },
135
128
  }));
136
129
  const cssText = rulesToCssText(desired);
130
+ if (!allowsStyleElements(document)) {
131
+ const rulesChanged = rulesToCssText(managedRules) !== cssText;
132
+ managedRules = desired;
133
+ if (!rulesChanged)
134
+ return;
135
+ adoptStylesheet(document, SHEET_ID, cssText);
136
+ notifyBrowserStylesheetChange(document);
137
+ return;
138
+ }
139
+ // SAFETY: getElementById returns an Element; the managed style element is created as HTMLStyleElement when missing.
140
+ const el = document.getElementById(SHEET_ID);
141
+ if (!el)
142
+ return;
137
143
  const rulesChanged = rulesToCssText(managedRules) !== cssText;
138
144
  const shouldRetryDroppedRules = el.sheet !== null
139
145
  && el.sheet.cssRules.length !== desired.length
@@ -147,11 +153,7 @@ function rebuildSheetText(rules) {
147
153
  : null;
148
154
  notifyBrowserStylesheetChange(document);
149
155
  }
150
- /**
151
- * Replaces the managed sheet with the canonical projection. Keeping the
152
- * serialized rules authoritative avoids stale CSSStyleRule references when a
153
- * framework dev server reparses or reattaches style nodes during a render.
154
- */
156
+ /** Serialized rules stay authoritative to avoid stale CSSStyleRule references when a framework reparses style nodes. */
155
157
  export function applyRules(rules) {
156
158
  ensureManagedSheet();
157
159
  const desired = [];
@@ -194,7 +196,6 @@ function hasImportantAuthorRule(el, property) {
194
196
  }
195
197
  return false;
196
198
  }
197
- /** Verify what the browser painted after the managed sheet was projected. */
198
199
  export function verifyPreview(el, property, requestedValue) {
199
200
  if (!el || !el.isConnected) {
200
201
  return { requestedValue, computedValue: "", status: "conflict", reason: "target-missing" };
@@ -237,6 +238,7 @@ export function removeManagedSheet() {
237
238
  const el = document.getElementById(SHEET_ID);
238
239
  if (el)
239
240
  el.remove();
241
+ releaseAdoptedStylesheet(document, SHEET_ID);
240
242
  managedRules = [];
241
243
  failedRehydrationCssText = null;
242
244
  notifyBrowserStylesheetChange(document);
@@ -18,50 +18,27 @@ export interface DocumentProjectionReport {
18
18
  export interface RenderedInstanceChangeDiagnostic extends DocumentProjectionReport {
19
19
  document: "Inspect" | `Canvas ${string}`;
20
20
  }
21
- /** Captures conservative, serializable identity at the moment of the action. */
22
21
  export declare function captureRenderedInstance(el: HTMLElement): RenderedInstanceRef | null;
23
- /**
24
- * Resolves exactly one element, or declines to apply. Occurrence documents the
25
- * captured placement, but structural previews can legitimately change it.
26
- * Evidence, narrowed by a recorded invocation when present, must therefore
27
- * identify one current candidate before an edit can be applied.
28
- */
22
+ /** Occurrence documents captured placement, but structural previews can change it; evidence must identify exactly one current candidate. */
29
23
  export declare function resolveRenderedInstance(doc: Document, ref: RenderedInstanceRef): ResolutionResult;
30
- /**
31
- * Resolves a reference whose source position may have moved since capture.
32
- * A relocated site still renders matching authored evidence, so an evidence
33
- * miss there is reported as ambiguous rather than as proof of absence.
34
- */
24
+ /** A relocated site still renders matching evidence, so an evidence miss is reported as ambiguous, not missing. */
35
25
  export declare function resolveMovedRenderedInstance(doc: Document, ref: RenderedInstanceRef): ResolutionResult;
36
- /**
37
- * Captures identity for a structural target. When evidence matches several
38
- * identical outputs, the nearest component invocation whose entire output is
39
- * this element can still identify it. Otherwise the evidence-only reference
40
- * is returned and resolves as ambiguous.
41
- */
26
+ /** Falls back to the nearest component invocation when evidence matches several identical outputs. */
42
27
  export declare function captureStructuralTarget(el: HTMLElement): RenderedInstanceRef | null;
43
- /** Checks stable source/evidence fields without treating a post-move ordinal as identity. */
28
+ /** Ignores the ordinal, which is not identity after a move. */
44
29
  export declare function matchesRenderedInstanceEvidence(el: HTMLElement, ref: RenderedInstanceRef): boolean;
45
- /** Builds an instance override without changing the element's transient edit scope. */
46
30
  export declare function buildRenderedInstanceOverride(el: HTMLElement): RenderedInstanceOverride | null;
47
- /** Creates a serializable override for identity that was already validated. */
48
31
  export declare function buildRenderedInstanceOverrideForTarget(target: RenderedInstanceRef): RenderedInstanceOverride;
49
32
  export declare function createRenderedInstanceOverride(el: HTMLElement): RenderedInstanceOverride | null;
50
- /** Returns an active transient target or the canonical target projected here. */
51
33
  export declare function getRenderedInstanceOverride(el: HTMLElement): RenderedInstanceOverride | null;
52
34
  export declare function clearRenderedInstanceOverride(el: HTMLElement): RenderedInstanceOverride | null;
53
35
  export declare function instanceSelector(override: RenderedInstanceOverride): string | null;
54
- /** Extracts the distinct canonical targets which renderers must resolve. */
55
36
  export declare function collectRenderedInstanceOverrides(changes: ReadonlyArray<unknown>): RenderedInstanceOverride[];
56
- /**
57
- * The document-projection adapter only applies a new canonical snapshot. A
58
- * later reconciliation changes diagnostics but never starts a reapply loop.
59
- */
37
+ /** A later reconciliation changes diagnostics but never starts a reapply loop. */
60
38
  export declare function applyRenderedInstanceProjection(doc: Document, overrides: ReadonlyArray<RenderedInstanceOverride>): DocumentProjectionReport[];
61
39
  /** Registers controller-owned overrides without projecting them into the editor shell. */
62
40
  export declare function setCanonicalRenderedInstanceOverrides(overrides: ReadonlyArray<RenderedInstanceOverride>): void;
63
41
  export declare function getRenderedInstanceProjectionReports(doc: Document): readonly DocumentProjectionReport[];
64
- /** Diagnostics arrive independently when a renderer reports or React reconciles. */
65
42
  export declare function subscribeRenderedInstanceDiagnostics(listener: () => void): () => void;
66
43
  export declare function getRenderedInstanceDiagnosticRevision(): number;
67
44
  export declare function recordCanvasRenderedInstanceProjectionReports(cardId: string, revision: number, reports: readonly DocumentProjectionReport[], projection?: FrameProjection): void;