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,30 +1,21 @@
1
1
  import { readTailwindV4AlphaUtility, tailwindV4AlphaExpression } from "../../css/dialects/index.js";
2
2
  import { getElementComputedStyle } from "../runtime/domRealm.js";
3
+ import { createContainerQueryEvaluator } from "./resolution/containerQueryEvaluator.js";
3
4
  import { collectRules as collectCssomRules, documentRevisions as getDocumentRevisions, registerResolutionLineage, } from "./resolution/cssomCollector.js";
4
- import { createRuleMatcher, matchRuleForElement } from "./resolution/ruleMatching.js";
5
+ import { createRuleMatcher, matchRuleForElement, prewarmRuleMatching } from "./resolution/ruleMatching.js";
5
6
  import { compareAuthorCascade } from "./resolution/cascade.js";
6
7
  import { interpretValue, normalizeOpacityPercent, } from "../../css/value-semantics/index.js";
7
8
  import { createInspectorValueContext, inspectorTokenOrigin } from "./valueSemanticsAdapter.js";
8
9
  export { getAvailableInteractionStates, resetSourceSiteMatchCache, sourceSiteMatchCacheSize } from "./resolution/ruleMatching.js";
9
- export { buildTokenTable, getTokenTable, getAvailableTokenEntriesForElement, getAvailableTokenCatalog } from "./tokenAvailability.js";
10
+ export { buildTokenTable, getAvailableTokenEntriesForElement, getAvailableTokenCatalog } from "./tokenAvailability.js";
10
11
  export { invalidateStyleResolutionCache } from "./resolution/cssomCollector.js";
11
- /**
12
- * Builds (or reuses) the document's CSSOM rule snapshot ahead of a resolution
13
- * sweep. Idempotent: the walk runs once per stylesheet revision and is a cache
14
- * hit afterwards, so a scheduler can warm it in its own frame to keep the
15
- * subsequent resolution sweep's blocking time small.
16
- */
12
+ /** Idempotent per stylesheet revision; warms the snapshot ahead of a sweep so its blocking time stays small. */
17
13
  export function prewarmCssomRuleSnapshot(doc) {
18
- collectCssomRules(doc);
14
+ prewarmRuleMatching(collectCssomRules(doc).rules);
19
15
  }
20
16
  const MAX_PROPERTIES = 100;
21
17
  const EMPTY_LOCAL_ALIASES = new Map();
22
- /**
23
- * Returns true when a `calc()` expression is safe to treat as a simple
24
- * numeric value. We exclude percentages, viewport units, and font-relative
25
- * units because those depend on context the browser cannot freeze into a
26
- * single pixel value safely.
27
- */
18
+ /** Excludes context-dependent units (%, vw, em, ...) that cannot be frozen into one safe pixel value. */
28
19
  function canBecomeNumeric(value) {
29
20
  const v = value.trim();
30
21
  if (/\b(?:min|max|clamp|env|anchor-size)\s*\(/i.test(v))
@@ -55,11 +46,6 @@ function candidateMatchesPainted(el, row, painted) {
55
46
  return false;
56
47
  return normalizeInElementContext(el, row.property, row.declaredValue) === painted.trim();
57
48
  }
58
- /**
59
- * Resolves one authored value through the value-semantics Module using the
60
- * inspector's integration context. Value semantics remains the sole
61
- * interpretation authority.
62
- */
63
49
  function resolveTokenValue(value, tokenTable, localAliases = EMPTY_LOCAL_ALIASES) {
64
50
  return interpretValue("--nudge-ui-token", value, createInspectorValueContext(tokenTable, localAliases))[0];
65
51
  }
@@ -75,13 +61,7 @@ function elementDirectionality(el) {
75
61
  function isLogicalBoxProperty(property) {
76
62
  return /^(?:margin|padding|inset)-(?:inline|block)(?:-(?:start|end))?$/i.test(property);
77
63
  }
78
- /**
79
- * Coordinates cascade facts with the value-semantics Module. All property-family
80
- * decomposition (logical sides, border, font, radius corners, physical spacing)
81
- * lives in `interpretValue`; this function only supplies the token
82
- * context and directionality facts, then projects the Module's fields onto the
83
- * `ResolvedDeclaration` shape.
84
- */
64
+ /** Decomposition lives in `interpretValue`; this supplies the token context and projects its fields. */
85
65
  function resolveDeclaration(declaration, tokenTable, localAliases = EMPTY_LOCAL_ALIASES, directionality) {
86
66
  const fields = interpretValue(declaration.property, declaration.value, createInspectorValueContext(tokenTable, localAliases, directionality));
87
67
  return fields.map((field) => ({
@@ -126,51 +106,15 @@ function hydratePropertyOpacityRows(rows, computed) {
126
106
  function capabilityFor(property, value, tokenTable) {
127
107
  return interpretValue(property, value, createInspectorValueContext(tokenTable))[0].capability;
128
108
  }
129
- let containerProbeSequence = 0;
130
- /**
131
- * Container conditions are element-relative. CSSOM exposes their text but has
132
- * no `matches` API, so ask the browser by applying an inert custom property to
133
- * the selected element inside an equivalent temporary @container wrapper.
134
- */
135
- function matchesContainerQuery(el, params) {
136
- const doc = el.ownerDocument;
137
- if (!doc.head || !params)
138
- return false;
139
- const id = ++containerProbeSequence;
140
- const marker = `data-container-probe-${id}`;
141
- const property = `--container-probe-${id}`;
142
- const style = doc.createElement("style");
143
- style.setAttribute("data-nudge-ui", "container-probe");
144
- style.textContent = `@container ${params} { [${marker}] { ${property}: 1; } }`;
145
- el.setAttribute(marker, "");
146
- doc.head.appendChild(style);
147
- try {
148
- return getElementComputedStyle(el).getPropertyValue(property).trim() === "1";
149
- }
150
- catch {
151
- return false;
152
- }
153
- finally {
154
- style.remove();
155
- el.removeAttribute(marker);
156
- }
157
- }
158
- function atRulesApplyToElement(el, atRules) {
109
+ function atRulesApplyToElement(el, atRules, evaluator) {
159
110
  const view = el.ownerDocument.defaultView;
160
- return (atRules ?? []).every((atRule) => {
161
- if (atRule.kind === "container")
162
- return matchesContainerQuery(el, atRule.params);
163
- if (atRule.kind === "supports")
164
- return view?.CSS?.supports(atRule.params) ?? false;
165
- return true;
166
- });
111
+ if ((atRules ?? []).some((rule) => rule.kind === "supports" && !view?.CSS?.supports(rule.params)))
112
+ return false;
113
+ const conditions = (atRules ?? []).filter((rule) => rule.kind === "container").map((rule) => rule.params);
114
+ return conditions.length === 0 || evaluator.matches(el, conditions);
167
115
  }
168
- function collectLocalAliases(el, rules, ruleApplies) {
169
- // Custom properties inherit independently of the property being resolved.
170
- // Resolve the winning declaration separately for each element in the
171
- // ancestor chain, then let the nearest declaration override inherited ones.
172
- // This covers local aliases such as --color-error and inherited page tokens
173
- // such as --color-ink without widening the build-time global catalog.
116
+ function collectLocalAliases(el, rules) {
117
+ // Custom properties inherit independently, so each ancestor resolves its own winner and the nearest declaration wins.
174
118
  const lineage = [];
175
119
  let current = el;
176
120
  while (current) {
@@ -179,15 +123,18 @@ function collectLocalAliases(el, rules, ruleApplies) {
179
123
  }
180
124
  const aliases = new Map();
181
125
  for (const element of lineage.reverse()) {
126
+ const ruleApplies = makeRuleApplies(element);
182
127
  const candidates = new Map();
183
128
  rules.forEach((rule, index) => {
184
129
  if (rule.active === false)
185
130
  return;
186
- if (!ruleApplies(rule))
187
- return;
188
131
  const match = matchRuleForElement(element, { rule, selectorText: rule.selectorText });
189
132
  if (!match)
190
133
  return;
134
+ if (!rule.declarations.some((declaration) => declaration.property.startsWith("--")))
135
+ return;
136
+ if (!ruleApplies(rule))
137
+ return;
191
138
  const sourceOrder = rule.sourceOrder ?? index;
192
139
  const { specificity } = match;
193
140
  for (const declaration of rule.declarations) {
@@ -207,9 +154,7 @@ function collectLocalAliases(el, rules, ruleApplies) {
207
154
  }
208
155
  }
209
156
  });
210
- // Inline custom properties are also inherited by descendants. They are
211
- // explicit cascade winners for their element, so include them at inline
212
- // specificity without changing the managed-style rule contract.
157
+ // Inline custom properties are inherited too; at inline specificity they are explicit cascade winners.
213
158
  for (const property of Array.from(element.style)) {
214
159
  if (!property.startsWith("--"))
215
160
  continue;
@@ -230,7 +175,7 @@ function collectLocalAliases(el, rules, ruleApplies) {
230
175
  }
231
176
  return aliases;
232
177
  }
233
- function makeRuleApplies(el) {
178
+ function makeRuleApplies(el, evaluator = createContainerQueryEvaluator(el.ownerDocument)) {
234
179
  const matchingContexts = new Map();
235
180
  return (rule) => {
236
181
  const atRules = rule.atRules;
@@ -240,99 +185,95 @@ function makeRuleApplies(el) {
240
185
  const cached = matchingContexts.get(key);
241
186
  if (cached !== undefined)
242
187
  return cached;
243
- const result = atRulesApplyToElement(el, atRules);
188
+ const result = atRulesApplyToElement(el, atRules, evaluator);
244
189
  matchingContexts.set(key, result);
245
190
  return result;
246
191
  };
247
192
  }
248
- /**
249
- * One matching pass over the rules for the element and its ancestors, with the
250
- * selector-match results shared between the element's own resolution and the
251
- * inherited phase. Local aliases are collected per element so no ancestor
252
- * re-walks the lineage × rules.
253
- */
254
- function resolveLineage(el, matcher) {
255
- const lineage = [];
256
- let current = el;
257
- while (current) {
258
- lineage.push(current);
259
- current = current.parentElement;
193
+ function relevantAncestorRule(rule) {
194
+ return rule.declarations.some(({ property }) => property.startsWith("--") || INHERITED_PROPERTIES.has(property));
195
+ }
196
+ function lineageElements(el) {
197
+ const elements = [];
198
+ for (let current = el; current; current = current.parentElement)
199
+ elements.unshift(current);
200
+ return elements;
201
+ }
202
+ function queryPairs(el, matcher) {
203
+ const pairs = [];
204
+ for (const element of lineageElements(el)) {
205
+ for (const { rule } of matcher.matchesForElement(element).matched) {
206
+ if (element !== el && !relevantAncestorRule(rule))
207
+ continue;
208
+ if (rule.declarations.length === 0)
209
+ continue;
210
+ if (rule.atRules?.some((context) => context.kind === "supports" && !element.ownerDocument.defaultView?.CSS?.supports(context.params)))
211
+ continue;
212
+ const conditions = (rule.atRules ?? []).filter((context) => context.kind === "container").map((context) => context.params);
213
+ if (conditions.length > 0)
214
+ pairs.push({ element, conditions });
215
+ }
260
216
  }
261
- lineage.reverse();
262
- const selectorMatches = new Map();
263
- const allSelectorMatches = new Map();
264
- for (const element of lineage) {
265
- const { matched, allMatched } = matcher.matchesForElement(element);
266
- selectorMatches.set(element, matched);
267
- allSelectorMatches.set(element, allMatched);
217
+ return pairs;
218
+ }
219
+ /** Prepares both cascades together so a selection refresh inserts one probe sheet. */
220
+ export function prefetchContainerQueries(elements, state, evaluator) {
221
+ const pairs = [];
222
+ for (const element of elements) {
223
+ const { rules } = collectCssomRules(element.ownerDocument);
224
+ pairs.push(...queryPairs(element, createRuleMatcher(rules, state)));
225
+ if (state === "base")
226
+ pairs.push(...queryPairs(element, createRuleMatcher(rules, "stable")));
268
227
  }
228
+ evaluator.prefetch(pairs);
229
+ }
230
+ function resolveLineage(el, matcher, evaluator) {
231
+ const lineage = lineageElements(el);
232
+ evaluator.prefetch(queryPairs(el, matcher));
269
233
  const byElement = new Map();
270
- for (let index = 0; index < lineage.length; index++) {
271
- const element = lineage[index];
272
- const ruleApplies = makeRuleApplies(element);
273
- const aliases = new Map();
274
- for (const lineageElement of lineage.slice(0, index + 1)) {
275
- const candidates = new Map();
276
- for (const match of selectorMatches.get(lineageElement) ?? []) {
277
- if (!ruleApplies(match.rule))
278
- continue;
279
- const sourceOrder = match.rule.sourceOrder ?? 0;
280
- for (const declaration of match.rule.declarations) {
281
- if (!declaration.property.startsWith("--"))
282
- continue;
283
- const candidate = {
284
- value: declaration.value.trim(),
285
- important: declaration.important,
286
- layer: match.rule.layer,
287
- layerOrder: match.rule.layerOrder,
288
- specificity: match.specificity,
289
- sourceOrder,
290
- };
291
- const previous = candidates.get(declaration.property);
292
- if (!previous || compareAuthorCascade(candidate, previous) >= 0) {
293
- candidates.set(declaration.property, candidate);
294
- }
295
- }
296
- }
297
- for (const property of Array.from(lineageElement.style)) {
298
- if (!property.startsWith("--"))
234
+ const inheritedAliases = new Map();
235
+ for (const element of lineage) {
236
+ const ruleApplies = makeRuleApplies(element, evaluator);
237
+ const { matched: selectorMatches, allMatched } = matcher.matchesForElement(element);
238
+ const matched = selectorMatches.filter(({ rule }) => (element === el || relevantAncestorRule(rule)) && rule.declarations.length > 0 && ruleApplies(rule));
239
+ const candidates = new Map();
240
+ for (const match of matched) {
241
+ // Conditions are evaluated against the declaration's own element; descendants inherit the alias, not the condition.
242
+ for (const declaration of match.rule.declarations) {
243
+ if (!declaration.property.startsWith("--"))
299
244
  continue;
300
245
  const candidate = {
301
- value: lineageElement.style.getPropertyValue(property).trim(),
302
- important: lineageElement.style.getPropertyPriority(property) === "important",
303
- inline: true,
304
- specificity: 100000000,
305
- sourceOrder: Number.MAX_SAFE_INTEGER,
246
+ value: declaration.value.trim(), important: declaration.important,
247
+ layer: match.rule.layer, layerOrder: match.rule.layerOrder,
248
+ specificity: match.specificity, sourceOrder: match.rule.sourceOrder ?? 0,
306
249
  };
307
- const previous = candidates.get(property);
308
- if (!previous || compareAuthorCascade(candidate, previous) >= 0) {
309
- candidates.set(property, candidate);
310
- }
250
+ const previous = candidates.get(declaration.property);
251
+ if (!previous || compareAuthorCascade(candidate, previous) >= 0)
252
+ candidates.set(declaration.property, candidate);
311
253
  }
312
- for (const [name, candidate] of candidates)
313
- aliases.set(name, candidate.value);
314
254
  }
315
- const matched = [];
316
- for (const match of selectorMatches.get(element) ?? []) {
317
- if (!ruleApplies(match.rule))
255
+ for (const property of Array.from(element.style)) {
256
+ if (!property.startsWith("--"))
318
257
  continue;
319
- matched.push(match);
258
+ const candidate = {
259
+ value: element.style.getPropertyValue(property).trim(),
260
+ important: element.style.getPropertyPriority(property) === "important", inline: true,
261
+ specificity: 100000000, sourceOrder: Number.MAX_SAFE_INTEGER,
262
+ };
263
+ const previous = candidates.get(property);
264
+ if (!previous || compareAuthorCascade(candidate, previous) >= 0)
265
+ candidates.set(property, candidate);
320
266
  }
321
- byElement.set(element, {
322
- element,
323
- matched,
324
- allMatched: allSelectorMatches.get(element) ?? matched,
325
- aliases,
326
- });
267
+ for (const [name, candidate] of candidates)
268
+ inheritedAliases.set(name, candidate.value);
269
+ byElement.set(element, { element, matched, allMatched, aliases: new Map(inheritedAliases) });
327
270
  }
328
271
  return { lineage, byElement };
329
272
  }
330
273
  function rowsFromMatches(el, matched, aliases, tokenTable, allMatched = matched) {
331
274
  const map = new Map();
332
275
  const mediaCandidatesByProperty = new Map();
333
- // Sort by source order ascending so rules are processed lowest-first.
334
- // Map.set() naturally overwrites: higher specificity rules processed later win,
335
- // and equal-specificity rules get "last in stylesheet order wins" (stable sort).
276
+ // Ascending source order with Map.set overwrite gives later-wins for equal specificity; relies on a stable sort.
336
277
  const sorted = [...matched].sort((a, b) => (a.rule.sourceOrder ?? 0) - (b.rule.sourceOrder ?? 0));
337
278
  const needsDirectionality = sorted.some(({ rule }) => rule.declarations.some(({ property }) => isLogicalBoxProperty(property)));
338
279
  const directionality = needsDirectionality ? elementDirectionality(el) : undefined;
@@ -432,12 +373,7 @@ function rowsFromMatches(el, matched, aliases, tokenTable, allMatched = matched)
432
373
  }
433
374
  return rows;
434
375
  }
435
- /**
436
- * Package-private cascade fixture seam. This exercises selector, layer,
437
- * importance, and interaction-state coordination while still crossing the
438
- * public value-semantics Interface through `resolveDeclaration`.
439
- * It is intentionally absent from the package exports.
440
- */
376
+ /** Test-only cascade fixture seam, intentionally absent from the package exports. */
441
377
  export function resolveRuleFixture(el, rules, tokenTable) {
442
378
  const ruleApplies = makeRuleApplies(el);
443
379
  const matched = [];
@@ -453,7 +389,7 @@ export function resolveRuleFixture(el, rules, tokenTable) {
453
389
  continue;
454
390
  matched.push(match);
455
391
  }
456
- const localAliases = collectLocalAliases(el, rules, ruleApplies);
392
+ const localAliases = collectLocalAliases(el, rules);
457
393
  return rowsFromMatches(el, matched, localAliases, tokenTable, allMatched);
458
394
  }
459
395
  function compareCandidate(a, b) {
@@ -553,8 +489,7 @@ function annotatePaintedValues(el, result, computed, inaccessible, mode) {
553
489
  for (const prop of result) {
554
490
  const cv = computed.getPropertyValue(prop.property);
555
491
  if (cv && !/\b(?:var|calc)\s*\(/.test(cv)) {
556
- // A hypothetical state retains its authored value while `computed`
557
- // records what the browser is painting. Live and base use painted values.
492
+ // Hypothetical states keep the authored value; live/base take the painted value.
558
493
  if (mode === "live" || mode === "base" || !prop.resolvedValue)
559
494
  prop.resolvedValue = cv;
560
495
  prop.computed = cv;
@@ -569,15 +504,14 @@ function annotatePaintedValues(el, result, computed, inaccessible, mode) {
569
504
  }
570
505
  }
571
506
  }
572
- export function getResolvedProperties(el, tokenTable) {
507
+ export function getResolvedProperties(el, tokenTable, evaluator = createContainerQueryEvaluator(el.ownerDocument)) {
573
508
  const doc = el.ownerDocument ?? document;
574
509
  const { rules, inaccessible } = collectCssomRules(doc);
575
- const lineage = resolveLineage(el, createRuleMatcher(rules, "live"));
510
+ const lineage = resolveLineage(el, createRuleMatcher(rules, "live"), evaluator);
576
511
  return resolveMatchedProperties(el, tokenTable, lineage, inaccessible, "live");
577
512
  }
578
513
  function applyInlineDeclarations(el, result, tokenTable, computed, inaccessible) {
579
- // Inline declarations participate in the cascade and are explicit evidence,
580
- // but token attribution is only exact when the authored inline value uses a known token.
514
+ // Inline declarations are explicit evidence, but attribution is exact only for a known token.
581
515
  const inlineProperties = Array.from(el.style);
582
516
  const directionality = inlineProperties.some(isLogicalBoxProperty)
583
517
  ? directionalityFromComputed(el, computed)
@@ -624,10 +558,7 @@ function applyInlineDeclarations(el, result, tokenTable, computed, inaccessible)
624
558
  }
625
559
  }
626
560
  function promoteNumericCalcRows(result, tokenTable) {
627
- // When a calc() expression only references static tokens the browser has
628
- // already resolved it to a pixel value. Reclassify the row so the UI
629
- // shows the pixel value instead of the raw calc() string and allows
630
- // numeric editing (nudge / token swap).
561
+ // A static-token calc() is already resolved to a pixel value; reclassify so the UI allows numeric editing.
631
562
  for (const prop of result) {
632
563
  if (prop.capability !== "raw" || prop.diagnostic)
633
564
  continue;
@@ -640,13 +571,8 @@ function promoteNumericCalcRows(result, tokenTable) {
640
571
  prop.capability = capabilityFor(prop.property, numeric, tokenTable);
641
572
  }
642
573
  }
643
- /**
644
- * Resolve the authored cascade for a chosen interaction state without relying
645
- * on the pointer's current location. This is intentionally attribution-first:
646
- * values with no authored declaration still fall back to the browser's live
647
- * computed value in the field layer.
648
- */
649
- export function getResolvedPropertiesForState(el, tokenTable, state) {
574
+ /** Authored cascade for a chosen interaction state, independent of the pointer's live paint. */
575
+ export function getResolvedPropertiesForState(el, tokenTable, state, evaluator = createContainerQueryEvaluator(el.ownerDocument)) {
650
576
  const doc = el.ownerDocument ?? document;
651
577
  const revisions = getDocumentRevisions(doc);
652
578
  const { rules, inaccessible } = collectCssomRules(doc);
@@ -659,13 +585,14 @@ export function getResolvedPropertiesForState(el, tokenTable, state) {
659
585
  }
660
586
  const cached = snapshots.get(state);
661
587
  if (cached
588
+ && queryPairs(el, matcher).length === 0
662
589
  && cached.elementRevision === revisions.element
663
590
  && cached.stylesheetRevision === revisions.stylesheet
664
591
  && cached.tokenTable === tokenTable
665
592
  && cached.dynamicMatchKey === dynamicMatchKey) {
666
593
  return cached.rows;
667
594
  }
668
- const lineage = resolveLineage(el, matcher);
595
+ const lineage = resolveLineage(el, matcher, evaluator);
669
596
  const rows = resolveMatchedProperties(el, tokenTable, lineage, inaccessible, state);
670
597
  registerResolutionLineage(el);
671
598
  snapshots.set(state, {
@@ -678,12 +605,8 @@ export function getResolvedPropertiesForState(el, tokenTable, state) {
678
605
  return rows;
679
606
  }
680
607
  const stableTokenCache = new WeakMap();
681
- /**
682
- * Resolves the cascade with transient interaction selectors removed. Used when
683
- * an editor must stay linked to the stable token beneath a live :hover/:focus
684
- * paint. Memoized per (element, revisions, tokenTable).
685
- */
686
- export function getResolvedPropertiesStable(el, tokenTable) {
608
+ /** Cascade with transient interaction selectors removed, so an editor stays linked to the token beneath a live :hover/:focus paint. */
609
+ export function getResolvedPropertiesStable(el, tokenTable, evaluator = createContainerQueryEvaluator(el.ownerDocument)) {
687
610
  const doc = el.ownerDocument ?? document;
688
611
  const revisions = getDocumentRevisions(doc);
689
612
  const { rules, inaccessible } = collectCssomRules(doc);
@@ -691,13 +614,14 @@ export function getResolvedPropertiesStable(el, tokenTable) {
691
614
  const dynamicMatchKey = matcher.dynamicMatchKey(el);
692
615
  const cached = stableTokenCache.get(el);
693
616
  if (cached
617
+ && queryPairs(el, matcher).length === 0
694
618
  && cached.elementRevision === revisions.element
695
619
  && cached.stylesheetRevision === revisions.stylesheet
696
620
  && cached.tokenTable === tokenTable
697
621
  && cached.dynamicMatchKey === dynamicMatchKey) {
698
622
  return cached.rows;
699
623
  }
700
- const lineage = resolveLineage(el, matcher);
624
+ const lineage = resolveLineage(el, matcher, evaluator);
701
625
  const rows = resolveMatchedProperties(el, tokenTable, lineage, inaccessible, "stable");
702
626
  stableTokenCache.set(el, {
703
627
  elementRevision: revisions.element,
@@ -1,18 +1,6 @@
1
1
  import type { TokenDefinition, TokenEntry, TokenTable } from "../../css/model/index.js";
2
2
  export declare function buildTokenTable(entries: readonly TokenEntry[]): TokenTable;
3
- export declare function getTokenTable(): TokenTable;
4
- /**
5
- * The build-time catalog is intentionally an inventory of every project token.
6
- * Element edits must instead use only custom properties resolved in that
7
- * element's cascade; a token defined by a lazy stylesheet is not usable until
8
- * that stylesheet is attached to the document. Entries are cached per element
9
- * until the element or stylesheet revision changes; the derived table reuses
10
- * `buildTokenTable`'s input-identity memo.
11
- */
3
+ /** Element edits may use only custom properties resolved in this element's cascade; cached until the element or stylesheet revision changes. */
12
4
  export declare function getAvailableTokenEntriesForElement(el: HTMLElement, definitions?: readonly TokenDefinition[]): TokenEntry[];
13
- /**
14
- * Produces the page catalog used by the global Tokens settings section. When
15
- * the document exposes mappable source identities, declarations from unloaded
16
- * CSS files are removed. Opaque compiled URLs leave the adapter catalog intact.
17
- */
5
+ /** Page catalog for the global Tokens section; declarations from unloaded CSS files are dropped when source identities are mappable. */
18
6
  export declare function getAvailableTokenCatalog(root?: HTMLElement, definitions?: readonly TokenDefinition[]): TokenDefinition[];
@@ -17,16 +17,6 @@ export function buildTokenTable(entries) {
17
17
  tokenTableMemo.set(entries, table);
18
18
  return table;
19
19
  }
20
- let tableCache = null;
21
- let tableSource = null;
22
- export function getTokenTable() {
23
- const { tokens } = getNudgeUiRuntimeConfig();
24
- if (tableCache !== null && tableSource === tokens)
25
- return tableCache;
26
- tableCache = buildTokenTable(tokens);
27
- tableSource = tokens;
28
- return tableCache;
29
- }
30
20
  function isCustomPropertyToken(definition) {
31
21
  return definition.cssName.startsWith("--");
32
22
  }
@@ -43,14 +33,7 @@ function entryFromDefinition(definition, value) {
43
33
  };
44
34
  }
45
35
  const tokenEntriesCache = new WeakMap();
46
- /**
47
- * The build-time catalog is intentionally an inventory of every project token.
48
- * Element edits must instead use only custom properties resolved in that
49
- * element's cascade; a token defined by a lazy stylesheet is not usable until
50
- * that stylesheet is attached to the document. Entries are cached per element
51
- * until the element or stylesheet revision changes; the derived table reuses
52
- * `buildTokenTable`'s input-identity memo.
53
- */
36
+ /** Element edits may use only custom properties resolved in this element's cascade; cached until the element or stylesheet revision changes. */
54
37
  export function getAvailableTokenEntriesForElement(el, definitions = getNudgeUiRuntimeConfig().tokenCatalog) {
55
38
  const revisions = getDocumentRevisions(el.ownerDocument ?? document);
56
39
  const cached = tokenEntriesCache.get(el);
@@ -63,8 +46,7 @@ export function getAvailableTokenEntriesForElement(el, definitions = getNudgeUiR
63
46
  const computed = getElementComputedStyle(el);
64
47
  const available = definitions.flatMap((definition) => {
65
48
  if (!isCustomPropertyToken(definition)) {
66
- // Literal adapters (for example Tailwind v3) do not have a browser
67
- // custom property to probe. Their adapter owns their availability.
49
+ // Literal adapters (e.g. Tailwind v3) have no custom property to probe; the adapter owns their availability.
68
50
  return [entryFromDefinition(definition, definition.declarations[0]?.value ?? "")];
69
51
  }
70
52
  const value = computed.getPropertyValue(definition.cssName).trim();
@@ -83,10 +65,7 @@ export function getAvailableTokenEntriesForElement(el, definitions = getNudgeUiR
83
65
  });
84
66
  return entries;
85
67
  }
86
- /**
87
- * Replaces build-time token declaration hints with declarations serialized by
88
- * the browser from the stylesheets currently attached to this document.
89
- */
68
+ /** Replaces build-time declaration hints with declarations serialized from the attached stylesheets. */
90
69
  function hydrateTokenCatalogFromCssom(definitions, doc = document) {
91
70
  const needsHydration = (definition) => definition.declarations.length === 0
92
71
  || (definition.adapter === "vanilla-extract" && definition.declarations.every((declaration) => declaration.value.trim() === `var(${definition.cssName})`
@@ -160,13 +139,7 @@ function isLoadedCssSource(source, loadedSources) {
160
139
  || loaded.endsWith(`/${normalizedFile}`)
161
140
  || normalizedFile.endsWith(`/${loaded}`));
162
141
  }
163
- /**
164
- * Returns stylesheet identities only when the browser gave us a complete,
165
- * authored-source mapping. A compiled host can expose a mixture of source-like
166
- * and opaque CSS URLs; treating the mapped subset as complete would make
167
- * declarations behind the opaque URLs look lazy even while their variables are
168
- * live in the document.
169
- */
142
+ /** Identities only for a complete authored-source mapping; a mapped subset cannot stand in for opaque compiled URLs. */
170
143
  function confidentlyLoadedStylesheetSources(definitions, loadedSources) {
171
144
  const cssSources = definitions.flatMap((definition) => definition.declarations
172
145
  .map((declaration) => declaration.source)
@@ -178,17 +151,12 @@ function confidentlyLoadedStylesheetSources(definitions, loadedSources) {
178
151
  known.add(loaded.path);
179
152
  continue;
180
153
  }
181
- // One opaque compiled URL can contain any authored declaration, so the
182
- // document does not provide enough evidence to remove unloaded sources.
154
+ // One opaque compiled URL can contain any authored declaration, so unloaded sources cannot be ruled out.
183
155
  return [];
184
156
  }
185
157
  return [...known];
186
158
  }
187
- /**
188
- * Produces the page catalog used by the global Tokens settings section. When
189
- * the document exposes mappable source identities, declarations from unloaded
190
- * CSS files are removed. Opaque compiled URLs leave the adapter catalog intact.
191
- */
159
+ /** Page catalog for the global Tokens section; declarations from unloaded CSS files are dropped when source identities are mappable. */
192
160
  export function getAvailableTokenCatalog(root = document.documentElement, definitions = getNudgeUiRuntimeConfig().tokenCatalog) {
193
161
  const computed = getElementComputedStyle(root);
194
162
  const hydrated = hydrateTokenCatalogFromCssom(definitions, root.ownerDocument ?? document);
@@ -1,3 +1,3 @@
1
- import type { TokenChangeRecord } from "../changes/changesLog.js";
1
+ import type { TokenChangeRecord } from "../changes/types.js";
2
2
  import type { TokenCatalogRow } from "./catalog.js";
3
3
  export declare function setGlobalTokenValue(row: TokenCatalogRow, value: string): TokenChangeRecord | null;
@@ -1,4 +1,4 @@
1
- import { appendChange } from "../changes/changesLog.js";
1
+ import { appendChange } from "../drafts/store.js";
2
2
  export function setGlobalTokenValue(row, value) {
3
3
  const nextValue = value.trim();
4
4
  if (!row.activeDeclaration || !nextValue)
@@ -2,5 +2,4 @@ import type { TokenEntry } from "../../css/model/index.js";
2
2
  import type { TokenOrigin, TokenTable } from "../../css/model/index.js";
3
3
  import type { Directionality, ValueSemanticsContext } from "../../css/value-semantics/index.js";
4
4
  export declare function inspectorTokenOrigin(entry: TokenEntry | undefined): TokenOrigin;
5
- /** Inspector Adapter for framework-specific token attribution facts. */
6
5
  export declare function createInspectorValueContext(tokenTable: TokenTable, localAliases?: ReadonlyMap<string, string>, directionality?: Directionality): ValueSemanticsContext;
@@ -21,11 +21,28 @@ function colorTuple(value) {
21
21
  const rgb = /^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)/.exec(trimmed);
22
22
  return rgb ? [rgb[1], rgb[2], rgb[3]].map((part) => String(Math.round(Number(part)))).join(",") : null;
23
23
  }
24
+ const frameworkColorIndexes = new WeakMap();
25
+ /** First Tailwind v3 token per color tuple. */
26
+ function frameworkColorIndex(tokenTable) {
27
+ let index = frameworkColorIndexes.get(tokenTable);
28
+ if (index)
29
+ return index;
30
+ index = new Map();
31
+ for (const entry of Object.values(tokenTable)) {
32
+ if (entry.adapter !== "tailwind-v3")
33
+ continue;
34
+ const tuple = colorTuple(entry.value);
35
+ if (tuple && !index.has(tuple))
36
+ index.set(tuple, entry);
37
+ }
38
+ frameworkColorIndexes.set(tokenTable, index);
39
+ return index;
40
+ }
24
41
  function directFrameworkColor(value, tokenTable) {
25
42
  const tuple = colorTuple(value);
26
43
  if (!tuple)
27
44
  return undefined;
28
- return Object.values(tokenTable).find((entry) => entry.adapter === "tailwind-v3" && colorTuple(entry.value) === tuple);
45
+ return frameworkColorIndex(tokenTable).get(tuple);
29
46
  }
30
47
  function twLocalAliasPolicy(ref, inner) {
31
48
  if (!ref.startsWith("--tw-")) {
@@ -53,7 +70,6 @@ function twLocalAliasPolicy(ref, inner) {
53
70
  cycle: inner.cycle,
54
71
  };
55
72
  }
56
- /** Inspector Adapter for framework-specific token attribution facts. */
57
73
  export function createInspectorValueContext(tokenTable, localAliases = EMPTY_LOCAL_ALIASES, directionality) {
58
74
  return {
59
75
  tokenContext: {
@@ -4,15 +4,15 @@ export interface AtRuleContextProviderProps {
4
4
  rows: readonly ResolvedProperty[];
5
5
  children?: ReactNode;
6
6
  }
7
- /**
8
- * Makes the active conditional source context available to fields that only
9
- * receive a property name (not their resolved property row) as props.
10
- */
7
+ /** Fields that only receive a property name read their conditional context here. */
11
8
  export declare function AtRuleContextProvider({ rows, children }: AtRuleContextProviderProps): ReactElement;
12
9
  export declare function useFieldAtRules(property: string): readonly AtRuleCandidate[];
13
10
  export interface AtRuleIndicatorProps {
14
11
  atRules?: readonly (AtRuleContext | AtRuleCandidate)[];
15
12
  className?: string;
16
13
  }
17
- /** Compact, field-level attribution for the conditional rule that currently wins. */
14
+ /**
15
+ * A ruler along the field's left edge: one segment per conditional rule plus the base, with the
16
+ * declaration currently winning the cascade highlighted. Hovering it lists the rules.
17
+ */
18
18
  export declare function AtRuleIndicator({ atRules, className }: AtRuleIndicatorProps): ReactElement | null;