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,6 +1,6 @@
1
1
  import { INTERACTION_STATES } from "../../shell/styleState.js";
2
2
  import { collectRules as collectCssomRules, documentRevisions as getDocumentRevisions } from "./cssomCollector.js";
3
- import { computeSpecificity, hasSelectorPseudoClass, isElementSensitiveSelector, canMatchSelectorSubject, selectorPseudoClasses, splitSelectorAtTopLevel, } from "./selectorSemantics.js";
3
+ import { computeSpecificity, hasSelectorPseudoClass, isElementSensitiveSelector, canMatchSelectorSubject, selectorPseudoClasses, selectorSubjectClass, splitSelectorAtTopLevel, } from "./selectorSemantics.js";
4
4
  const TRANSIENT_PSEUDO_CLASSES = new Set([
5
5
  "hover",
6
6
  "active",
@@ -11,7 +11,22 @@ const TRANSIENT_PSEUDO_CLASSES = new Set([
11
11
  "target",
12
12
  ]);
13
13
  const INTERACTION_PSEUDO_CLASSES = new Set(INTERACTION_STATES);
14
+ /** Per-branch transform, so a stateful branch such as `.b:active` cannot drop a plain sibling branch. */
15
+ function transformSelectorBranches(selector, transformBranch) {
16
+ if (!selector.includes(","))
17
+ return transformBranch(selector);
18
+ const kept = splitSelectorAtTopLevel(selector, ",")
19
+ .map((branch) => transformBranch(branch.trim()))
20
+ .filter((branch) => branch !== null && branch.length > 0);
21
+ return kept.length > 0 ? kept.join(", ") : null;
22
+ }
14
23
  function selectorForState(selector, state) {
24
+ return transformSelectorBranches(selector, (branch) => branchForState(branch, state));
25
+ }
26
+ function stableSelector(selector) {
27
+ return transformSelectorBranches(selector, (branch) => hasSelectorPseudoClass(branch, TRANSIENT_PSEUDO_CLASSES) ? null : branch);
28
+ }
29
+ function branchForState(selector, state) {
15
30
  const pseudoClasses = selectorPseudoClasses(selector)
16
31
  .filter(({ name }) => INTERACTION_PSEUDO_CLASSES.has(name));
17
32
  const states = new Set(pseudoClasses.map(({ name }) => name));
@@ -19,9 +34,7 @@ function selectorForState(selector, state) {
19
34
  return states.size === 0 ? selector : null;
20
35
  if (!states.has(state))
21
36
  return states.size === 0 ? selector : null;
22
- // CSSOM cannot ask the browser whether a hypothetical pseudo-class matches.
23
- // Removing interaction pseudo-classes gives the authored rule a stable
24
- // element match for inspection. The real rule remains untouched.
37
+ // CSSOM cannot test a hypothetical pseudo-class, so strip it for a stable element match; the real rule is untouched.
25
38
  let transformed = selector;
26
39
  for (let index = pseudoClasses.length - 1; index >= 0; index--) {
27
40
  const pseudoClass = pseudoClasses[index];
@@ -30,12 +43,28 @@ function selectorForState(selector, state) {
30
43
  return transformed;
31
44
  }
32
45
  function specificityForBranch(rule, branch) {
33
- // Single-branch selectors reuse the specificity collected from CSSOM; the
34
- // matched branch is the whole selector. Multi-branch selectors need the
35
- // matched branch's own weight, so recompute per branch.
46
+ // Multi-branch selectors need the matched branch's own weight; a single branch reuses the CSSOM specificity.
36
47
  return rule.selectorText.includes(",") ? computeSpecificity(branch) : rule.specificity;
37
48
  }
38
49
  const transformedRulesMemo = new WeakMap();
50
+ // Lists change per revision but selectors rarely do, so transformed selectors are cached by text.
51
+ const TRANSFORMED_SELECTOR_CACHE_MAX = 32_768;
52
+ const transformedSelectorMemo = new Map();
53
+ function transformSelector(selectorText, transform) {
54
+ let byText = transformedSelectorMemo.get(transform);
55
+ if (!byText) {
56
+ byText = new Map();
57
+ transformedSelectorMemo.set(transform, byText);
58
+ }
59
+ const cached = byText.get(selectorText);
60
+ if (cached !== undefined)
61
+ return cached;
62
+ const transformed = transform === "stable" ? stableSelector(selectorText) : selectorForState(selectorText, transform);
63
+ if (byText.size >= TRANSFORMED_SELECTOR_CACHE_MAX)
64
+ byText.clear();
65
+ byText.set(selectorText, transformed);
66
+ return transformed;
67
+ }
39
68
  function rulesForTransform(rules, transform) {
40
69
  let byTransform = transformedRulesMemo.get(rules);
41
70
  if (!byTransform) {
@@ -49,20 +78,90 @@ function rulesForTransform(rules, transform) {
49
78
  if (transform === "live") {
50
79
  transformed = rules.map((rule) => ({ rule, selectorText: rule.selectorText }));
51
80
  }
52
- else if (transform === "stable") {
53
- transformed = rules
54
- .filter((rule) => !hasSelectorPseudoClass(rule.selectorText, TRANSIENT_PSEUDO_CLASSES))
55
- .map((rule) => ({ rule, selectorText: rule.selectorText }));
56
- }
57
81
  else {
58
82
  transformed = rules.flatMap((rule) => {
59
- const selectorText = selectorForState(rule.selectorText, transform);
83
+ const selectorText = transformSelector(rule.selectorText, transform);
60
84
  return selectorText ? [{ rule, selectorText }] : [];
61
85
  });
62
86
  }
63
87
  byTransform.set(transform, transformed);
64
88
  return transformed;
65
89
  }
90
+ const subjectClassIndexMemo = new WeakMap();
91
+ const SUBJECT_CLASS_KEYS_CACHE_MAX = 32_768;
92
+ const subjectClassKeysMemo = new Map();
93
+ /** One required class per branch, or null when some branch requires none. */
94
+ function subjectClassKeys(selectorText) {
95
+ const cached = subjectClassKeysMemo.get(selectorText);
96
+ if (cached !== undefined)
97
+ return cached;
98
+ const keys = new Set();
99
+ let indexed = true;
100
+ for (const branch of splitSelectorAtTopLevel(selectorText, ",")) {
101
+ const className = selectorSubjectClass(branch.trim());
102
+ if (className === null) {
103
+ indexed = false;
104
+ break;
105
+ }
106
+ keys.add(className);
107
+ }
108
+ const result = indexed ? [...keys] : null;
109
+ if (subjectClassKeysMemo.size >= SUBJECT_CLASS_KEYS_CACHE_MAX)
110
+ subjectClassKeysMemo.clear();
111
+ subjectClassKeysMemo.set(selectorText, result);
112
+ return result;
113
+ }
114
+ function subjectClassIndex(entries) {
115
+ const cached = subjectClassIndexMemo.get(entries);
116
+ if (cached)
117
+ return cached;
118
+ const byClass = new Map();
119
+ const unindexed = [];
120
+ entries.forEach((entry, index) => {
121
+ const keys = subjectClassKeys(entry.selectorText);
122
+ if (keys === null) {
123
+ unindexed.push(index);
124
+ return;
125
+ }
126
+ for (const key of keys) {
127
+ const bucket = byClass.get(key);
128
+ if (bucket)
129
+ bucket.push(index);
130
+ else
131
+ byClass.set(key, [index]);
132
+ }
133
+ });
134
+ const built = { byClass, unindexed, unindexedEntries: unindexed.map((index) => entries[index]) };
135
+ subjectClassIndexMemo.set(entries, built);
136
+ return built;
137
+ }
138
+ /** Entries that can match `el`, in original order; only skips branches `canMatchSelectorSubject` would reject anyway. */
139
+ function candidateEntries(entries, el) {
140
+ const index = subjectClassIndex(entries);
141
+ if (el.classList.length === 0 || index.byClass.size === 0)
142
+ return index.unindexedEntries;
143
+ let picked = null;
144
+ for (const className of el.classList) {
145
+ const bucket = index.byClass.get(className);
146
+ if (!bucket)
147
+ continue;
148
+ picked ??= [...index.unindexed];
149
+ for (const entryIndex of bucket)
150
+ picked.push(entryIndex);
151
+ }
152
+ if (!picked)
153
+ return index.unindexedEntries;
154
+ picked.sort((left, right) => left - right);
155
+ const candidates = [];
156
+ let previous = -1;
157
+ for (const entryIndex of picked) {
158
+ if (entryIndex === previous)
159
+ continue;
160
+ previous = entryIndex;
161
+ candidates.push(entries[entryIndex]);
162
+ }
163
+ return candidates;
164
+ }
66
165
  const sourceSiteMatchBucketsMemo = new WeakMap();
67
166
  function sourceSiteMatchBuckets(rules, transform) {
68
167
  let byTransform = sourceSiteMatchBucketsMemo.get(rules);
@@ -86,24 +185,15 @@ const SOURCE_SITE_CACHE_MAX = 4096;
86
185
  let sourceSiteMatchCaches = new WeakMap();
87
186
  let sourceSiteMatchCacheEntries = 0;
88
187
  const concreteElementMatchCaches = new WeakMap();
89
- // The all-rules sweep shares the active sweep's revision cache for stable
90
- // selectors. Element-sensitive selectors stay fresh because browser state can
91
- // change without a mutation observed by the registry.
92
188
  const allMatchesMemo = new WeakMap();
93
- /** Test-only cache reset. */
94
189
  export function resetSourceSiteMatchCache() {
95
190
  sourceSiteMatchCaches = new WeakMap();
96
191
  sourceSiteMatchCacheEntries = 0;
97
192
  }
98
- /** Test-only cache size. */
99
193
  export function sourceSiteMatchCacheSize() {
100
194
  return sourceSiteMatchCacheEntries;
101
195
  }
102
- /**
103
- * Captures selector-relevant state without serializing the whole document.
104
- * Element and ancestor attributes cover the common source-site selectors while
105
- * child/sibling-sensitive selectors are handled conservatively below.
106
- */
196
+ /** Selector-relevant element and ancestor attributes, without serializing the whole document. */
107
197
  function sourceSiteContextKey(el) {
108
198
  const lineage = [];
109
199
  let current = el;
@@ -118,12 +208,7 @@ function sourceSiteContextKey(el) {
118
208
  }
119
209
  return lineage.join("\u0001");
120
210
  }
121
- /**
122
- * Source-site identity key for the matched-rule cache. The element's class is
123
- * part of the key because sibling instances of a source site can carry
124
- * different classes (for example rows in a large list), which changes which
125
- * rules match even though their `data-cid`/`data-src` are identical.
126
- */
211
+ /** `data-cid`/`data-src` are identical across sibling instances, so the class is part of the key. */
127
212
  function sourceSiteKey(el, transform) {
128
213
  const cid = el.getAttribute("data-cid") ?? "";
129
214
  const src = el.getAttribute("data-src") ?? "";
@@ -139,14 +224,10 @@ export function matchRuleForElement(el, entry) {
139
224
  rule: entry.rule,
140
225
  selectorText: entry.selectorText,
141
226
  branch,
142
- specificity: specificityForBranch({ ...entry.rule, selectorText: entry.selectorText }, branch),
227
+ specificity: specificityForBranch(entry.rule, branch),
143
228
  };
144
229
  }
145
- /**
146
- * Captures the current match outcome for selectors whose truth can change
147
- * without a document revision. This keeps the expensive resolved-row cache
148
- * usable while invalidating it when states such as `checked` actually change.
149
- */
230
+ /** Match key for selectors whose truth can change without a document revision. */
150
231
  function elementSensitiveMatchKey(el, rules, transform, sensitiveMatchesByElement) {
151
232
  const entries = sourceSiteMatchBuckets(rules, transform).elementSensitive;
152
233
  if (entries.length === 0)
@@ -156,7 +237,7 @@ function elementSensitiveMatchKey(el, rules, transform, sensitiveMatchesByElemen
156
237
  let depth = 0;
157
238
  while (current) {
158
239
  const elementMatches = [];
159
- for (const entry of entries) {
240
+ for (const entry of candidateEntries(entries, current)) {
160
241
  const match = matchRuleForElement(current, entry);
161
242
  if (!match)
162
243
  continue;
@@ -173,24 +254,20 @@ function sensitiveMatchesForElement(el, buckets, matchesByElement) {
173
254
  const cached = matchesByElement.get(el);
174
255
  if (cached)
175
256
  return cached;
176
- const matched = buckets.elementSensitive.flatMap((entry) => {
257
+ const matched = candidateEntries(buckets.elementSensitive, el).flatMap((entry) => {
177
258
  const match = matchRuleForElement(el, entry);
178
259
  return match ? [match] : [];
179
260
  });
180
261
  matchesByElement.set(el, matched);
181
262
  return matched;
182
263
  }
183
- /**
184
- * Matches transformed rules against one element. Stable source-site identities
185
- * reuse revision-keyed matches; unstable identities and relationship-sensitive
186
- * selectors are matched on each call.
187
- */
264
+ /** Stable source-site identities reuse revision-keyed matches; unstable identities and relationship-sensitive selectors match per call. */
188
265
  function getCachedElementMatches(el, rules, transform, sensitiveMatchesByElement = new Map()) {
189
266
  const buckets = sourceSiteMatchBuckets(rules, transform);
190
267
  const { cacheable, elementSensitive } = buckets;
191
268
  const collect = (entries) => {
192
269
  const matched = [];
193
- for (const entry of entries) {
270
+ for (const entry of candidateEntries(entries, el)) {
194
271
  if (entry.rule.active === false)
195
272
  continue;
196
273
  const match = matchRuleForElement(el, entry);
@@ -259,29 +336,24 @@ function getCachedElementMatches(el, rules, transform, sensitiveMatchesByElement
259
336
  matched: cachedMatches,
260
337
  });
261
338
  }
262
- // Browser state such as `checked` or `target` can change without a DOM or
263
- // stylesheet revision, so element-sensitive matches must stay fresh.
339
+ // Browser state (:checked, :target) can change without a revision, so element-sensitive matches stay fresh.
264
340
  const elementMatches = elementSensitive.length > 0
265
341
  ? sensitiveMatchesForElement(el, buckets, sensitiveMatchesByElement).filter((match) => match.rule.active !== false)
266
342
  : [];
267
343
  return elementMatches.length === 0 ? cachedMatches : [...cachedMatches, ...elementMatches];
268
344
  }
269
- /**
270
- * Matches selectors without applying conditional wrappers. The result retains
271
- * inactive media alternatives for attribution, while transient selectors and
272
- * the `live` transform retain their freshness requirements.
273
- */
345
+ /** Keeps inactive media alternatives for attribution; transient and `live` matches keep their freshness requirements. */
274
346
  function getAllElementMatches(el, rules, transform, sensitiveMatchesByElement = new Map()) {
275
347
  const buckets = sourceSiteMatchBuckets(rules, transform);
276
348
  if (transform === "live") {
277
- const cacheableMatches = buckets.cacheable.flatMap((entry) => {
349
+ const cacheableMatches = candidateEntries(buckets.cacheable, el).flatMap((entry) => {
278
350
  const match = matchRuleForElement(el, entry);
279
351
  return match ? [match] : [];
280
352
  });
281
353
  return [...cacheableMatches, ...sensitiveMatchesForElement(el, buckets, sensitiveMatchesByElement)];
282
354
  }
283
355
  const { cacheable, elementSensitive } = buckets;
284
- const collect = (entries) => entries.flatMap((entry) => {
356
+ const collect = (entries) => candidateEntries(entries, el).flatMap((entry) => {
285
357
  const match = matchRuleForElement(el, entry);
286
358
  return match ? [match] : [];
287
359
  });
@@ -314,13 +386,9 @@ function getAllElementMatches(el, rules, transform, sensitiveMatchesByElement =
314
386
  : [];
315
387
  return sensitiveMatches.length === 0 ? cachedMatches : [...cachedMatches, ...sensitiveMatches];
316
388
  }
317
- // Branch splits repeat across sweeps, so memoize them for the finite selector
318
- // set in a stylesheet snapshot.
319
- const SELECTOR_SPLIT_CACHE_MAX = 8192;
389
+ // Branch splits repeat across sweeps over a finite selector set, so memoize them.
390
+ const SELECTOR_SPLIT_CACHE_MAX = 32_768;
320
391
  const selectorSplitMemo = new Map();
321
- // Branch matches are reusable for state-independent selectors. Transient
322
- // selectors stay uncached because their state is not represented by document
323
- // revisions.
324
392
  const ELEMENT_BRANCH_CACHE_MAX = 16384;
325
393
  const elementBranchMemo = new WeakMap();
326
394
  function isBranchMemoizable(selectorText) {
@@ -375,7 +443,6 @@ function matchingSelectorBranch(el, selectorText) {
375
443
  }
376
444
  return branch;
377
445
  }
378
- /** Creates a matcher for one CSSOM snapshot. */
379
446
  export function createRuleMatcher(rules, transform) {
380
447
  const sensitiveMatches = new Map();
381
448
  return {
@@ -386,10 +453,7 @@ export function createRuleMatcher(rules, transform) {
386
453
  }),
387
454
  };
388
455
  }
389
- /**
390
- * Interaction states whose pseudo-class appears in the snapshot. Skipping
391
- * absent states avoids a full match sweep after each stylesheet revision.
392
- */
456
+ /** States whose pseudo-class appears in the snapshot, so absent states skip a full match sweep. */
393
457
  const statesWithPseudoInSnapshot = new WeakMap();
394
458
  function statesWithPseudoInSelectors(rules) {
395
459
  let present = statesWithPseudoInSnapshot.get(rules);
@@ -406,6 +470,15 @@ function statesWithPseudoInSelectors(rules) {
406
470
  }
407
471
  return present;
408
472
  }
473
+ /** Warms transforms, buckets, and class indexes so an idle frame pays their parsing cost. */
474
+ export function prewarmRuleMatching(rules) {
475
+ const transforms = ["base", "stable", "live", ...statesWithPseudoInSelectors(rules)];
476
+ for (const transform of new Set(transforms)) {
477
+ const { cacheable, elementSensitive } = sourceSiteMatchBuckets(rules, transform);
478
+ subjectClassIndex(cacheable);
479
+ subjectClassIndex(elementSensitive);
480
+ }
481
+ }
409
482
  export function getAvailableInteractionStates(el) {
410
483
  const doc = el.ownerDocument ?? document;
411
484
  const { rules } = collectCssomRules(doc);
@@ -1,15 +1,7 @@
1
1
  export declare function splitSelectorAtTopLevel(selector: string, separator?: string): string[];
2
- /** Test-only specificity cache size. */
3
2
  export declare function specificityComputationCount(): number;
4
- /** Test-only specificity cache reset. */
5
3
  export declare function resetSpecificityMemo(): void;
6
- /**
7
- * Computes the cascade weight for a selector without asking the DOM to match
8
- * it. Results are memoized per selector string for the resolution paths that
9
- * still recompute branch specificity (multi-branch selectors).
10
- */
11
4
  export declare function computeSpecificity(selectorText: string): number;
12
- /** Unmemoized implementation used by equivalence tests. */
13
5
  export declare function computeSpecificityCore(selectorText: string): number;
14
6
  export interface SelectorPseudoClass {
15
7
  name: string;
@@ -19,10 +11,7 @@ export interface SelectorPseudoClass {
19
11
  export declare function selectorPseudoClasses(selector: string): readonly SelectorPseudoClass[];
20
12
  export declare function hasSelectorPseudoClass(selector: string, names: ReadonlySet<string>): boolean;
21
13
  export declare function isElementSensitiveSelector(selector: string): boolean;
22
- /**
23
- * Rejects selectors whose rightmost compound requires a class the element
24
- * does not have. This is a conservative prefilter: it only returns false for
25
- * an impossible positive class requirement and leaves all other selectors to
26
- * the browser's selector engine.
27
- */
14
+ /** Class the selector's subject (rightmost compound) requires, or null when it requires none. */
15
+ export declare function selectorSubjectClass(selector: string): string | null;
16
+ /** Conservative prefilter: false only for an impossible required subject class; everything else goes to the browser engine. */
28
17
  export declare function canMatchSelectorSubject(el: Element, selector: string): boolean;
@@ -41,23 +41,16 @@ export function splitSelectorAtTopLevel(selector, separator) {
41
41
  parts.push(last);
42
42
  return parts;
43
43
  }
44
- const SPECIFICITY_MEMO_LIMIT = 10_000;
44
+ const SPECIFICITY_MEMO_LIMIT = 32_768;
45
45
  const specificityMemo = new Map();
46
46
  let specificityComputations = 0;
47
- /** Test-only specificity cache size. */
48
47
  export function specificityComputationCount() {
49
48
  return specificityComputations;
50
49
  }
51
- /** Test-only specificity cache reset. */
52
50
  export function resetSpecificityMemo() {
53
51
  specificityMemo.clear();
54
52
  specificityComputations = 0;
55
53
  }
56
- /**
57
- * Computes the cascade weight for a selector without asking the DOM to match
58
- * it. Results are memoized per selector string for the resolution paths that
59
- * still recompute branch specificity (multi-branch selectors).
60
- */
61
54
  export function computeSpecificity(selectorText) {
62
55
  const cached = specificityMemo.get(selectorText);
63
56
  if (cached !== undefined)
@@ -69,7 +62,6 @@ export function computeSpecificity(selectorText) {
69
62
  specificityMemo.set(selectorText, result);
70
63
  return result;
71
64
  }
72
- /** Unmemoized implementation used by equivalence tests. */
73
65
  export function computeSpecificityCore(selectorText) {
74
66
  const selector = selectorText.trim();
75
67
  const commaParts = splitSelectorAtTopLevel(selector, ",");
@@ -104,7 +96,7 @@ export function computeSpecificityCore(selectorText) {
104
96
  }
105
97
  return idCount * 1000000 + classCount * 10000 + elementCount * 100;
106
98
  }
107
- const SELECTOR_PSEUDO_CLASS_CACHE_MAX = 16_384;
99
+ const SELECTOR_PSEUDO_CLASS_CACHE_MAX = 32_768;
108
100
  const selectorPseudoClassMemo = new Map();
109
101
  export function selectorPseudoClasses(selector) {
110
102
  const cached = selectorPseudoClassMemo.get(selector);
@@ -164,7 +156,7 @@ export function hasSelectorPseudoClass(selector, names) {
164
156
  }
165
157
  const STATIC_SELECTOR_FUNCTIONS = new Set(["is", "where", "not"]);
166
158
  const STATIC_PSEUDO_CLASSES = new Set(["host", "root"]);
167
- const SELECTOR_SENSITIVITY_CACHE_MAX = 16_384;
159
+ const SELECTOR_SENSITIVITY_CACHE_MAX = 32_768;
168
160
  const selectorSensitivityMemo = new Map();
169
161
  function selectorFunctionEnd(selector, openingIndex) {
170
162
  let parentheses = 0;
@@ -249,8 +241,7 @@ function computeElementSensitiveSelector(selector) {
249
241
  attributeDepth--;
250
242
  continue;
251
243
  }
252
- // Tailwind escapes utility variants such as `.sm\\:text-red-500`. The
253
- // escaped colon is part of the class name, not a pseudo-class boundary.
244
+ // Tailwind escapes variants (`.sm\\:text-red-500`); an escaped colon is part of the class, not a pseudo boundary.
254
245
  if (escaped) {
255
246
  escaped = false;
256
247
  continue;
@@ -270,9 +261,7 @@ function computeElementSensitiveSelector(selector) {
270
261
  const pseudoElement = selector[index + 1] === ":";
271
262
  const pseudo = /^[A-Za-z-]+/.exec(selector.slice(index + (pseudoElement ? 2 : 1)))?.[0];
272
263
  if (pseudoElement) {
273
- // Pseudo-elements do not change whether the originating element matches
274
- // a selector. Continue scanning after the name so a real pseudo-class
275
- // elsewhere in the selector remains element-sensitive.
264
+ // Pseudo-elements do not make the originating element element-sensitive; keep scanning after the name.
276
265
  if (!pseudo)
277
266
  return true;
278
267
  index += pseudo.length + 1;
@@ -297,10 +286,7 @@ function computeElementSensitiveSelector(selector) {
297
286
  index = end;
298
287
  continue;
299
288
  }
300
- // :root and :host are represented by the complete ancestor/document
301
- // context. Other pseudo-classes can vary per concrete element without an
302
- // attribute or sibling mutation (for example :checked, :visited, and
303
- // :target), so keep them in the element-sensitive bucket.
289
+ // :root/:host are covered by ancestor context; other pseudo-classes (:checked, :visited, :target) can vary per element, so keep them element-sensitive.
304
290
  if (STATIC_PSEUDO_CLASSES.has(pseudoName))
305
291
  continue;
306
292
  return true;
@@ -402,7 +388,7 @@ function unescapeCssIdentifier(value) {
402
388
  })
403
389
  .replace(/\\(.)/g, "$1");
404
390
  }
405
- const SELECTOR_CLASS_REQUIREMENTS_CACHE_MAX = 16_384;
391
+ const SELECTOR_CLASS_REQUIREMENTS_CACHE_MAX = 32_768;
406
392
  const selectorClassRequirementsMemo = new Map();
407
393
  function selectorClassRequirements(selector) {
408
394
  const cached = selectorClassRequirementsMemo.get(selector);
@@ -469,12 +455,11 @@ function selectorClassRequirements(selector) {
469
455
  selectorClassRequirementsMemo.set(selector, requirements);
470
456
  return requirements;
471
457
  }
472
- /**
473
- * Rejects selectors whose rightmost compound requires a class the element
474
- * does not have. This is a conservative prefilter: it only returns false for
475
- * an impossible positive class requirement and leaves all other selectors to
476
- * the browser's selector engine.
477
- */
458
+ /** Class the selector's subject (rightmost compound) requires, or null when it requires none. */
459
+ export function selectorSubjectClass(selector) {
460
+ return selectorClassRequirements(selector)[0] ?? null;
461
+ }
462
+ /** Conservative prefilter: false only for an impossible required subject class; everything else goes to the browser engine. */
478
463
  export function canMatchSelectorSubject(el, selector) {
479
464
  return selectorClassRequirements(selector).every((className) => el.classList.contains(className));
480
465
  }
@@ -1,33 +1,17 @@
1
1
  import type { InteractionState } from "../shell/styleState.js";
2
+ import { type ContainerQueryEvaluator } from "./resolution/containerQueryEvaluator.js";
2
3
  import type { MatchedRule, ResolvedProperty, TokenTable } from "../../css/model/index.js";
3
4
  export { getAvailableInteractionStates, resetSourceSiteMatchCache, sourceSiteMatchCacheSize } from "./resolution/ruleMatching.js";
4
- export { buildTokenTable, getTokenTable, getAvailableTokenEntriesForElement, getAvailableTokenCatalog } from "./tokenAvailability.js";
5
+ export { buildTokenTable, getAvailableTokenEntriesForElement, getAvailableTokenCatalog } from "./tokenAvailability.js";
5
6
  export { invalidateStyleResolutionCache } from "./resolution/cssomCollector.js";
6
- /**
7
- * Builds (or reuses) the document's CSSOM rule snapshot ahead of a resolution
8
- * sweep. Idempotent: the walk runs once per stylesheet revision and is a cache
9
- * hit afterwards, so a scheduler can warm it in its own frame to keep the
10
- * subsequent resolution sweep's blocking time small.
11
- */
7
+ /** Idempotent per stylesheet revision; warms the snapshot ahead of a sweep so its blocking time stays small. */
12
8
  export declare function prewarmCssomRuleSnapshot(doc: Document): void;
13
- /**
14
- * Package-private cascade fixture seam. This exercises selector, layer,
15
- * importance, and interaction-state coordination while still crossing the
16
- * public value-semantics Interface through `resolveDeclaration`.
17
- * It is intentionally absent from the package exports.
18
- */
9
+ /** Prepares both cascades together so a selection refresh inserts one probe sheet. */
10
+ export declare function prefetchContainerQueries(elements: readonly HTMLElement[], state: InteractionState, evaluator: ContainerQueryEvaluator): void;
11
+ /** Test-only cascade fixture seam, intentionally absent from the package exports. */
19
12
  export declare function resolveRuleFixture(el: HTMLElement, rules: MatchedRule[], tokenTable: TokenTable): ResolvedProperty[];
20
- export declare function getResolvedProperties(el: HTMLElement, tokenTable: TokenTable): ResolvedProperty[];
21
- /**
22
- * Resolve the authored cascade for a chosen interaction state without relying
23
- * on the pointer's current location. This is intentionally attribution-first:
24
- * values with no authored declaration still fall back to the browser's live
25
- * computed value in the field layer.
26
- */
27
- export declare function getResolvedPropertiesForState(el: HTMLElement, tokenTable: TokenTable, state: InteractionState): ResolvedProperty[];
28
- /**
29
- * Resolves the cascade with transient interaction selectors removed. Used when
30
- * an editor must stay linked to the stable token beneath a live :hover/:focus
31
- * paint. Memoized per (element, revisions, tokenTable).
32
- */
33
- export declare function getResolvedPropertiesStable(el: HTMLElement, tokenTable: TokenTable): ResolvedProperty[];
13
+ export declare function getResolvedProperties(el: HTMLElement, tokenTable: TokenTable, evaluator?: ContainerQueryEvaluator): ResolvedProperty[];
14
+ /** Authored cascade for a chosen interaction state, independent of the pointer's live paint. */
15
+ export declare function getResolvedPropertiesForState(el: HTMLElement, tokenTable: TokenTable, state: InteractionState, evaluator?: ContainerQueryEvaluator): ResolvedProperty[];
16
+ /** Cascade with transient interaction selectors removed, so an editor stays linked to the token beneath a live :hover/:focus paint. */
17
+ export declare function getResolvedPropertiesStable(el: HTMLElement, tokenTable: TokenTable, evaluator?: ContainerQueryEvaluator): ResolvedProperty[];