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,19 +1,19 @@
1
+ export interface VarReference {
2
+ readonly name: string;
3
+ readonly fallback?: string;
4
+ }
1
5
  /**
2
- * Low-level, browser-safe CSS value splitting helpers shared by the
3
- * value-semantics Modules (plan slice 3.4). These are internal parsing seams,
4
- * not public Interface: they split structure, they do not interpret meaning.
5
- */
6
- /**
7
- * Balanced `var()` scanning. Handles nested parentheses and takes the first
8
- * top-level comma as the fallback separator.
6
+ * Parses a value that is exactly one `var()` reference. The fallback may
7
+ * contain nested parentheses; trailing text is rejected rather than swallowed.
9
8
  */
9
+ export declare function parseSingleVarReference(value: string): VarReference | null;
10
+ export declare function isSingleVarReference(value: string): boolean;
11
+ export declare function isCalcExpression(value: string): boolean;
12
+ /** Scans balanced `var()` calls; the first top-level comma separates the fallback. */
10
13
  export declare function extractVarCalls(value: string): Array<{
11
14
  name: string;
12
15
  fallback?: string;
13
16
  }>;
14
- /** Index of the first top-level `/` in a value, or -1 when none exists. */
15
17
  export declare function topLevelSlashIndex(value: string): number;
16
- /** Splits CSS values at top-level combinators or an optional delimiter. */
17
18
  export declare function splitTopLevel(s: string, sep?: string): string[];
18
- /** Splits a value at top-level whitespace, honoring quotes and nesting. */
19
19
  export declare function splitTopLevelWhitespace(value: string): string[];
@@ -1,12 +1,44 @@
1
1
  /**
2
- * Low-level, browser-safe CSS value splitting helpers shared by the
3
- * value-semantics Modules (plan slice 3.4). These are internal parsing seams,
4
- * not public Interface: they split structure, they do not interpret meaning.
5
- */
6
- /**
7
- * Balanced `var()` scanning. Handles nested parentheses and takes the first
8
- * top-level comma as the fallback separator.
2
+ * Parses a value that is exactly one `var()` reference. The fallback may
3
+ * contain nested parentheses; trailing text is rejected rather than swallowed.
9
4
  */
5
+ export function parseSingleVarReference(value) {
6
+ const trimmed = value.trim();
7
+ if (!/^var\(/i.test(trimmed))
8
+ return null;
9
+ let depth = 0;
10
+ let comma = -1;
11
+ for (let index = 3; index < trimmed.length; index++) {
12
+ const char = trimmed[index];
13
+ if (char === "(") {
14
+ depth++;
15
+ continue;
16
+ }
17
+ if (char === ")") {
18
+ depth--;
19
+ if (depth !== 0)
20
+ continue;
21
+ if (index !== trimmed.length - 1)
22
+ return null;
23
+ const body = trimmed.slice(4, index);
24
+ const name = (comma < 0 ? body : body.slice(0, comma - 4)).trim();
25
+ if (!/^--[\w-]+$/.test(name))
26
+ return null;
27
+ const fallback = comma < 0 ? undefined : body.slice(comma - 3).trim();
28
+ return fallback ? { name, fallback } : { name };
29
+ }
30
+ if (char === "," && depth === 1 && comma < 0)
31
+ comma = index;
32
+ }
33
+ return null;
34
+ }
35
+ export function isSingleVarReference(value) {
36
+ return parseSingleVarReference(value) !== null;
37
+ }
38
+ export function isCalcExpression(value) {
39
+ return /\bcalc\s*\(/i.test(value);
40
+ }
41
+ /** Scans balanced `var()` calls; the first top-level comma separates the fallback. */
10
42
  export function extractVarCalls(value) {
11
43
  const calls = [];
12
44
  let i = 0;
@@ -37,7 +69,6 @@ export function extractVarCalls(value) {
37
69
  }
38
70
  return calls;
39
71
  }
40
- /** Index of the first top-level `/` in a value, or -1 when none exists. */
41
72
  export function topLevelSlashIndex(value) {
42
73
  let depth = 0;
43
74
  for (let index = 0; index < value.length; index++) {
@@ -51,7 +82,6 @@ export function topLevelSlashIndex(value) {
51
82
  }
52
83
  return -1;
53
84
  }
54
- /** Splits CSS values at top-level combinators or an optional delimiter. */
55
85
  export function splitTopLevel(s, sep) {
56
86
  const parts = [];
57
87
  let depth = 0;
@@ -66,7 +96,6 @@ export function splitTopLevel(s, sep) {
66
96
  start = i + 1;
67
97
  }
68
98
  else if (depth === 0 && !sep && (s[i] === " " || s[i] === ">" || s[i] === "+" || s[i] === "~")) {
69
- // Only split on combinators that have non-space around them.
70
99
  if (i > start)
71
100
  parts.push(s.slice(start, i).trim());
72
101
  start = i + 1;
@@ -77,7 +106,6 @@ export function splitTopLevel(s, sep) {
77
106
  parts.push(last);
78
107
  return parts;
79
108
  }
80
- /** Splits a value at top-level whitespace, honoring quotes and nesting. */
81
109
  export function splitTopLevelWhitespace(value) {
82
110
  const parts = [];
83
111
  let depth = 0;
@@ -1,12 +1,3 @@
1
- /**
2
- * Supported `font` shorthand decomposition (plan slice 3.5).
3
- *
4
- * One browser-safe Module decomposes the unambiguous typography longhands
5
- * affected by a `font` shorthand — family, size, style, weight, and
6
- * line-height. Omitted optional components are represented by their shorthand
7
- * reset value. System-font shorthands, percentage-sized variants, and complex
8
- * family/function forms stay raw so the author's meaning is never guessed.
9
- */
10
1
  export declare const FONT_SYSTEM_KEYWORDS: Set<string>;
11
2
  export declare const FONT_SIZE_KEYWORDS: Set<string>;
12
3
  export declare const FONT_WEIGHT_KEYWORDS: Set<string>;
@@ -18,18 +9,11 @@ export interface FontShorthandParts {
18
9
  "font-weight": string;
19
10
  "line-height": string;
20
11
  }
21
- /**
22
- * Splits a font shorthand without losing quoted family names or functions.
23
- * The slash is a token only at top level, which lets us distinguish the
24
- * optional `font-size / line-height` portion from a slash in a URL/function.
25
- */
12
+ /** The slash is a token only at top level, so URLs and functions survive. */
26
13
  export declare function splitFontShorthand(value: string): string[];
27
14
  export declare function isFontSize(value: string): boolean;
28
15
  /**
29
- * Returns the supported typography longhands affected by an unambiguous
30
- * `font` shorthand. Omitted optional components are projected as `normal`
31
- * because a font shorthand resets them; dropping those reset rows would let
32
- * earlier declarations survive the cascade incorrectly. System-font
33
- * shorthands and percentage-sized variants remain raw.
16
+ * Omitted optional components project as their shorthand reset value; dropping
17
+ * those rows would let earlier declarations survive the cascade.
34
18
  */
35
19
  export declare function parseFontShorthand(value: string): FontShorthandParts | null;
@@ -1,12 +1,3 @@
1
- /**
2
- * Supported `font` shorthand decomposition (plan slice 3.5).
3
- *
4
- * One browser-safe Module decomposes the unambiguous typography longhands
5
- * affected by a `font` shorthand — family, size, style, weight, and
6
- * line-height. Omitted optional components are represented by their shorthand
7
- * reset value. System-font shorthands, percentage-sized variants, and complex
8
- * family/function forms stay raw so the author's meaning is never guessed.
9
- */
10
1
  export const FONT_SYSTEM_KEYWORDS = new Set([
11
2
  "caption", "icon", "menu", "message-box", "small-caption", "status-bar",
12
3
  ]);
@@ -16,11 +7,7 @@ export const FONT_SIZE_KEYWORDS = new Set([
16
7
  ]);
17
8
  export const FONT_WEIGHT_KEYWORDS = new Set(["normal", "bold", "bolder", "lighter"]);
18
9
  export const FONT_STYLE_KEYWORDS = new Set(["normal", "italic", "oblique"]);
19
- /**
20
- * Splits a font shorthand without losing quoted family names or functions.
21
- * The slash is a token only at top level, which lets us distinguish the
22
- * optional `font-size / line-height` portion from a slash in a URL/function.
23
- */
10
+ /** The slash is a token only at top level, so URLs and functions survive. */
24
11
  export function splitFontShorthand(value) {
25
12
  const parts = [];
26
13
  let start = -1;
@@ -73,11 +60,8 @@ export function isFontSize(value) {
73
60
  || /^(?:[+-]?(?:\d*\.)?\d+(?:[a-z]+|%)|(?:var|calc|min|max|clamp|env)\()/i.test(value);
74
61
  }
75
62
  /**
76
- * Returns the supported typography longhands affected by an unambiguous
77
- * `font` shorthand. Omitted optional components are projected as `normal`
78
- * because a font shorthand resets them; dropping those reset rows would let
79
- * earlier declarations survive the cascade incorrectly. System-font
80
- * shorthands and percentage-sized variants remain raw.
63
+ * Omitted optional components project as their shorthand reset value; dropping
64
+ * those rows would let earlier declarations survive the cascade.
81
65
  */
82
66
  export function parseFontShorthand(value) {
83
67
  const source = value.trim();
@@ -88,8 +72,8 @@ export function parseFontShorthand(value) {
88
72
  if (sizeIndex < 0)
89
73
  return null;
90
74
  const fontSize = parts[sizeIndex];
91
- // Percentages may be a preceding font-stretch component or the required
92
- // size. Keep this uncommon form raw rather than choose arbitrarily.
75
+ // A leading percentage may be font-stretch, not the required size; keep this
76
+ // uncommon form raw rather than choose arbitrarily.
93
77
  if (/^[+-]?(?:\d*\.)?\d+%$/.test(fontSize) && sizeIndex > 0)
94
78
  return null;
95
79
  let cursor = sizeIndex + 1;
@@ -115,10 +99,8 @@ export function parseFontShorthand(value) {
115
99
  weight = part;
116
100
  continue;
117
101
  }
118
- // Variant, stretch, angle-bearing oblique, duplicate, and unknown prefix
119
- // components are valid in wider font grammar but outside this supported
120
- // projection. Keep the whole shorthand conservative instead of dropping
121
- // their meaning.
102
+ // Components outside this supported projection keep the whole shorthand
103
+ // conservative instead of dropping their meaning.
122
104
  return null;
123
105
  }
124
106
  return {
@@ -1,16 +1,5 @@
1
- /**
2
- * Browser-safe value-semantics seam for `nudge-ui/css`.
3
- *
4
- * The Interface has three conceptual operations: interpret one authored value,
5
- * select compatible tokens, and apply a meaning-preserving edit. Token, color,
6
- * property-family, and structured parsers remain internal Implementation seams.
7
- * Framework-specific attribution arrives as explicit Adapter facts in the
8
- * interpretation context.
9
- *
10
- * Browser-safe contract: this module imports only the shared model and must
11
- * never pull React, Vite, PostCSS, Node, or filesystem code into a bundle.
12
- */
13
1
  export { interpretValue } from "./structuredValues.js";
2
+ export { isCalcExpression, isSingleVarReference, parseSingleVarReference } from "./cssSyntax.js";
14
3
  export type { StructuredField as InterpretedValueField, StructuredValuesContext as ValueSemanticsContext } from "./structuredValues.js";
15
4
  export type { Directionality } from "./boxSemantics.js";
16
5
  export type { AliasAttribution, AliasInnerResult, TokenInterpretationContext, } from "./tokenInterpretation.js";
@@ -1,15 +1,4 @@
1
- /**
2
- * Browser-safe value-semantics seam for `nudge-ui/css`.
3
- *
4
- * The Interface has three conceptual operations: interpret one authored value,
5
- * select compatible tokens, and apply a meaning-preserving edit. Token, color,
6
- * property-family, and structured parsers remain internal Implementation seams.
7
- * Framework-specific attribution arrives as explicit Adapter facts in the
8
- * interpretation context.
9
- *
10
- * Browser-safe contract: this module imports only the shared model and must
11
- * never pull React, Vite, PostCSS, Node, or filesystem code into a bundle.
12
- */
13
1
  export { interpretValue } from "./structuredValues.js";
2
+ export { isCalcExpression, isSingleVarReference, parseSingleVarReference } from "./cssSyntax.js";
14
3
  export { selectTokens, TOKEN_GROUP_LABELS, TOKEN_GROUP_ORDER, } from "./propertyPolicy.js";
15
4
  export { applyValueEdit, normalizeOpacityPercent } from "./colorSemantics.js";
@@ -1,15 +1,3 @@
1
- /**
2
- * Property/value policy (plan slice 3.3).
3
- *
4
- * One implementation owns capability classification, property→semantic-slot
5
- * knowledge, token presentation grouping, and compatible-token candidate
6
- * selection for value semantics. Eligibility always uses the resolved concrete
7
- * value plus browser grammar; a token name is a presentation preference and
8
- * never grants eligibility.
9
- *
10
- * Browser-safe contract: this module imports only the shared model and must
11
- * never pull React, Vite, PostCSS, Node, or filesystem code into a bundle.
12
- */
13
1
  import type { ColorValueFacts, EditCapability, TokenEntry } from "../model/index.js";
14
2
  declare global {
15
3
  interface Window {
@@ -19,9 +7,7 @@ declare global {
19
7
  };
20
8
  }
21
9
  }
22
- /** Semantic slot vocabulary for a CSS property. */
23
10
  export type TokenSemanticSlot = "color" | "length" | "radius" | "font-family" | "font-size" | "font-weight" | "line-height" | "letter-spacing" | "shadow" | "opacity";
24
- /** Presentation category for token pickers and catalog rows. */
25
11
  export type TokenGroup = "color" | "spacing" | "radius" | "typography" | "shadow" | "generic";
26
12
  export declare const TOKEN_GROUP_LABELS: {
27
13
  color: string;
@@ -32,7 +18,6 @@ export declare const TOKEN_GROUP_LABELS: {
32
18
  generic: string;
33
19
  };
34
20
  export declare const TOKEN_GROUP_ORDER: TokenGroup[];
35
- /** Browser grammar is injectable so the policy stays unit-testable. */
36
21
  export interface CssValueGrammar {
37
22
  supports(property: string, value: string): boolean;
38
23
  }
@@ -49,9 +34,8 @@ export interface TokenCandidate {
49
34
  isCurrent: boolean;
50
35
  }
51
36
  export interface TokenCompatibilityRequest {
52
- /** The selected host element, used to resolve custom properties in its cascade. */
37
+ /** Resolves custom properties in this element's cascade. */
53
38
  element?: HTMLElement;
54
- /** The outer CSS property being edited. */
55
39
  property: string;
56
40
  /** A scalar slot inside a composite property, such as the color in a shadow. */
57
41
  slot?: TokenSemanticSlot;
@@ -72,47 +56,16 @@ export interface TokenSelection {
72
56
  candidates: TokenCandidate[];
73
57
  preferredGroup: TokenGroup;
74
58
  }
75
- /**
76
- * Property knowledge lives here rather than in every picker. It supplies a
77
- * presentation preference and validation slot; it never filters a candidate
78
- * merely because of that candidate's name.
79
- */
59
+ /** Property knowledge lives here rather than in every picker: a presentation preference and validation slot, never a name-based filter. */
80
60
  export declare function semanticSlotForProperty(property: string): TokenSemanticSlot | null;
81
61
  export declare function groupForProperty(property: string, slot?: TokenSemanticSlot): TokenGroup;
82
- /**
83
- * Edit-capability classification for a property and its authored value.
84
- * Preserves the resolver's original precedence exactly: raw functions first,
85
- * then spacing families, border structure, colors, atomic var(), composites,
86
- * then literal atomic values.
87
- */
62
+ /** Precedence is load-bearing and must match the resolver's. */
88
63
  export declare function classifyEditCapability(property: string, value: string): EditCapability;
89
- /**
90
- * Name-prefix presentation hint. This is a display preference only: it never
91
- * makes an invalid value eligible for a slot. `value` is a secondary hint used
92
- * for concrete values with an unfamiliar name.
93
- */
64
+ /** Presentation hint only; a name never makes an invalid value eligible for a slot. */
94
65
  export declare function classifyToken(name: string, value?: string): TokenGroup;
95
- /**
96
- * Host-realm grammar factory. Uses the element's window CSS when available,
97
- * then `globalThis.CSS`, and falls back to a conservative non-browser matcher.
98
- */
99
66
  export declare function browserCssGrammar(element?: HTMLElement): CssValueGrammar;
100
- /**
101
- * Presentation may use a name to make familiar token sets easier to scan, but
102
- * a name never grants eligibility. Unfamiliar concrete colors still group as
103
- * Color via the same CSS grammar used by the candidate selector.
104
- */
105
67
  export declare function presentationForToken(entry: TokenEntry, grammar?: CssValueGrammar): TokenPresentation;
106
- /**
107
- * The single candidate-selection seam for every token-editing control and the
108
- * inspection bridge. Concrete values are checked in the selected element's
109
- * cascade, then the browser grammar decides eligibility. Presentation labels
110
- * only rank results.
111
- */
68
+ /** The single candidate-selection seam; presentation labels only rank results. */
112
69
  export declare function getCompatibleTokenCandidates(request: TokenCompatibilityRequest): TokenCandidate[];
113
- /**
114
- * The public token-selection operation. With a property it returns only
115
- * browser-compatible candidates; without one it returns presentation metadata
116
- * for inventory rows without inventing eligibility.
117
- */
70
+ /** Without a property, returns presentation metadata only — never invents eligibility. */
118
71
  export declare function selectTokens(request: TokenSelectionRequest): TokenSelection;
@@ -1,4 +1,5 @@
1
1
  import { interpretColorValue } from "./colorSemantics.js";
2
+ import { isSingleVarReference } from "./cssSyntax.js";
2
3
  export const TOKEN_GROUP_LABELS = {
3
4
  color: "Color",
4
5
  spacing: "Spacing",
@@ -68,11 +69,7 @@ const SLOT_PROPERTIES = {
68
69
  function normaliseProperty(property) {
69
70
  return property.trim().toLowerCase();
70
71
  }
71
- /**
72
- * Property knowledge lives here rather than in every picker. It supplies a
73
- * presentation preference and validation slot; it never filters a candidate
74
- * merely because of that candidate's name.
75
- */
72
+ /** Property knowledge lives here rather than in every picker: a presentation preference and validation slot, never a name-based filter. */
76
73
  export function semanticSlotForProperty(property) {
77
74
  const normalized = normaliseProperty(property);
78
75
  if (COLOR_PROPERTIES.has(normalized) || /(^|-)color$/.test(normalized))
@@ -114,18 +111,12 @@ export function groupForProperty(property, slot) {
114
111
  }
115
112
  return "generic";
116
113
  }
117
- /**
118
- * Edit-capability classification for a property and its authored value.
119
- * Preserves the resolver's original precedence exactly: raw functions first,
120
- * then spacing families, border structure, colors, atomic var(), composites,
121
- * then literal atomic values.
122
- */
114
+ /** Precedence is load-bearing and must match the resolver's. */
123
115
  export function classifyEditCapability(property, value) {
124
116
  const p = property.toLowerCase();
125
117
  const v = value.trim().toLowerCase();
126
- // Functions whose authored expression cannot be represented faithfully by
127
- // a numeric side control remain raw even when the property itself is a
128
- // spacing property. The computed value is still available as a preview.
118
+ // A numeric side control cannot represent these functions faithfully, so
119
+ // the authored expression stays raw even on a spacing property.
129
120
  if (/\b(?:min|max|clamp|env|anchor-size)\s*\(/.test(v))
130
121
  return "raw";
131
122
  if (["margin", "padding", "inset", "inset-block", "inset-inline"].includes(p)
@@ -135,10 +126,10 @@ export function classifyEditCapability(property, value) {
135
126
  return "structured";
136
127
  if (p === "color" || /(^|-)color$/.test(p) || p === "background-color" || p === "fill" || p === "stroke")
137
128
  return "color";
138
- if (/^var\(\s*--[\w-]+(?:\s*,[\s\S]*)?\s*\)$/.test(v))
129
+ if (isSingleVarReference(v))
139
130
  return "atomic";
140
131
  if (p === "font" || /(gradient|shadow|transform|transition|animation|grid|background)/.test(p)
141
- || (v.includes(",") && !/^var\(\s*--[\w-]+(?:\s*,[\s\S]*)?\s*\)$/.test(v)))
132
+ || (v.includes(",") && !isSingleVarReference(v)))
142
133
  return "composite";
143
134
  if (/\b(min|max|clamp|color-mix)\s*\(/.test(v))
144
135
  return "raw";
@@ -147,11 +138,7 @@ export function classifyEditCapability(property, value) {
147
138
  return "atomic";
148
139
  return "raw";
149
140
  }
150
- /**
151
- * Name-prefix presentation hint. This is a display preference only: it never
152
- * makes an invalid value eligible for a slot. `value` is a secondary hint used
153
- * for concrete values with an unfamiliar name.
154
- */
141
+ /** Presentation hint only; a name never makes an invalid value eligible for a slot. */
155
142
  export function classifyToken(name, value = "") {
156
143
  if (name.startsWith("--color-"))
157
144
  return "color";
@@ -177,15 +164,17 @@ function tokenVariableName(entry) {
177
164
  function hasUnresolvedVariable(value) {
178
165
  return /\bvar\s*\(/i.test(value);
179
166
  }
180
- function resolveValueInElement(entry, element) {
167
+ /** Hoisted so one request resolves each token against a single computed style. */
168
+ function elementStyle(element) {
169
+ const view = element?.ownerDocument.defaultView;
170
+ return element && view && typeof view.getComputedStyle === "function" ? view.getComputedStyle(element) : null;
171
+ }
172
+ function resolveValueInElement(entry, style) {
181
173
  const variableName = tokenVariableName(entry);
182
- if (element && variableName.startsWith("--")) {
183
- const view = element.ownerDocument.defaultView;
184
- if (view && typeof view.getComputedStyle === "function") {
185
- const computed = view.getComputedStyle(element).getPropertyValue(variableName).trim();
186
- if (computed)
187
- return computed;
188
- }
174
+ if (style && variableName.startsWith("--")) {
175
+ const computed = style.getPropertyValue(variableName).trim();
176
+ if (computed)
177
+ return computed;
189
178
  }
190
179
  return entry.value.trim();
191
180
  }
@@ -204,11 +193,7 @@ function isColor(value) {
204
193
  function isOpacity(value) {
205
194
  return /^[+-]?(?:\d+\.?\d*|\.\d+)(?:%)?$/.test(value.trim());
206
195
  }
207
- /**
208
- * Modern browsers provide CSS.supports. The small fallback keeps non-browser
209
- * unit environments conservative and never treats a var() expression as a
210
- * resolved value.
211
- */
196
+ /** Conservative fallback for non-browser environments that lack CSS.supports. */
212
197
  function fallbackSupports(property, value) {
213
198
  const normalized = normaliseProperty(property);
214
199
  if (COLOR_PROPERTIES.has(normalized) || /(^|-)color$/.test(normalized))
@@ -229,19 +214,34 @@ function fallbackSupports(property, value) {
229
214
  return isLength(value);
230
215
  return false;
231
216
  }
232
- /**
233
- * Host-realm grammar factory. Uses the element's window CSS when available,
234
- * then `globalThis.CSS`, and falls back to a conservative non-browser matcher.
235
- */
217
+ const SUPPORTS_CACHE_LIMIT = 20_000;
218
+ const supportsCaches = new WeakMap();
219
+ /** Cached per CSS object: pickers repeat the same questions for every field on every selection. */
220
+ function cachedSupports(css, property, value) {
221
+ if (typeof css.supports !== "function")
222
+ return null;
223
+ let cache = supportsCaches.get(css);
224
+ if (!cache) {
225
+ cache = new Map();
226
+ supportsCaches.set(css, cache);
227
+ }
228
+ const key = `${property}\n${value}`;
229
+ let supported = cache.get(key);
230
+ if (supported === undefined) {
231
+ if (cache.size >= SUPPORTS_CACHE_LIMIT)
232
+ cache.clear();
233
+ supported = css.supports(property, value);
234
+ cache.set(key, supported);
235
+ }
236
+ return supported;
237
+ }
236
238
  export function browserCssGrammar(element) {
237
239
  const css = browserCss(element);
238
240
  return {
239
241
  supports(property, value) {
240
242
  if (hasUnresolvedVariable(value) || !value.trim())
241
243
  return false;
242
- if (typeof css?.supports === "function")
243
- return css.supports(property, value);
244
- return fallbackSupports(property, value);
244
+ return (css ? cachedSupports(css, property, value) : null) ?? fallbackSupports(property, value);
245
245
  },
246
246
  };
247
247
  }
@@ -259,11 +259,6 @@ function nameHint(name) {
259
259
  return "spacing";
260
260
  return null;
261
261
  }
262
- /**
263
- * Presentation may use a name to make familiar token sets easier to scan, but
264
- * a name never grants eligibility. Unfamiliar concrete colors still group as
265
- * Color via the same CSS grammar used by the candidate selector.
266
- */
267
262
  export function presentationForToken(entry, grammar = browserCssGrammar()) {
268
263
  const value = entry.value.trim();
269
264
  const group = !hasUnresolvedVariable(value) && grammar.supports("color", value)
@@ -290,20 +285,16 @@ function compareCandidates(preferred) {
290
285
  return left.entry.name.localeCompare(right.entry.name);
291
286
  };
292
287
  }
293
- /**
294
- * The single candidate-selection seam for every token-editing control and the
295
- * inspection bridge. Concrete values are checked in the selected element's
296
- * cascade, then the browser grammar decides eligibility. Presentation labels
297
- * only rank results.
298
- */
288
+ /** The single candidate-selection seam; presentation labels only rank results. */
299
289
  export function getCompatibleTokenCandidates(request) {
300
290
  const grammar = request.grammar ?? browserCssGrammar(request.element);
301
291
  const slot = request.slot ?? semanticSlotForProperty(request.property) ?? undefined;
302
292
  const property = validationProperty(request.property, slot);
303
293
  const preferredGroup = groupForProperty(request.property, slot);
294
+ const style = elementStyle(request.element);
304
295
  return request.entries
305
296
  .map((entry) => {
306
- const resolvedValue = resolveValueInElement(entry, request.element);
297
+ const resolvedValue = resolveValueInElement(entry, style);
307
298
  const presentation = presentationForToken({ ...entry, value: resolvedValue }, grammar);
308
299
  return {
309
300
  entry,
@@ -317,11 +308,7 @@ export function getCompatibleTokenCandidates(request) {
317
308
  && grammar.supports(property, candidate.resolvedValue)))
318
309
  .sort(compareCandidates(preferredGroup));
319
310
  }
320
- /**
321
- * The public token-selection operation. With a property it returns only
322
- * browser-compatible candidates; without one it returns presentation metadata
323
- * for inventory rows without inventing eligibility.
324
- */
311
+ /** Without a property, returns presentation metadata only — never invents eligibility. */
325
312
  export function selectTokens(request) {
326
313
  if (request.property) {
327
314
  const slot = request.slot ?? semanticSlotForProperty(request.property) ?? undefined;
@@ -338,9 +325,10 @@ export function selectTokens(request) {
338
325
  };
339
326
  }
340
327
  const grammar = request.grammar ?? browserCssGrammar(request.element);
328
+ const style = elementStyle(request.element);
341
329
  return {
342
330
  candidates: request.entries.map((entry) => {
343
- const resolvedValue = resolveValueInElement(entry, request.element);
331
+ const resolvedValue = resolveValueInElement(entry, style);
344
332
  const presentation = presentationForToken({ ...entry, value: resolvedValue }, grammar);
345
333
  return {
346
334
  entry,
@@ -1,2 +1 @@
1
- /** A read-only string-array map used for physical side and corner expansion. */
2
1
  export type StringArrayMap = Record<string, readonly string[]>;
@@ -1,30 +1,7 @@
1
- /**
2
- * Structured and box value interpretation (plan slice 3.5).
3
- *
4
- * One browser-safe Module turns an authored CSSOM value for a box/border/
5
- * radius/font property into a structured projection tree: the physical sides,
6
- * border longhands, radius corners, or font longhands it expands to, each with
7
- * source-property provenance and its own token interpretation.
8
- *
9
- * One interpretation tree: each distinct authored component is token-interpreted
10
- * once and every projected field that carries that component reuses the same
11
- * interpretation (tokenName, tokens, opacity, modifiers, cycle). A border color
12
- * token, a multi-value spacing token, or a radius token is therefore resolved
13
- * once per declaration, not once per projected longhand.
14
- *
15
- * Conservative fallbacks: ambiguous borders, slash-separated radius forms,
16
- * complex fonts, and everything outside the supported families stay a single
17
- * raw/composite row with the resolution's existing capability classification.
18
- *
19
- * Browser-safe contract: this module imports only the shared model and the
20
- * other value-semantics Modules. Directionality is an explicit input fact; it
21
- * never walks the DOM or CSSOM.
22
- */
23
1
  import type { BorderStructure, ColorOpacity, EditCapability, OpacityValue, TokenReference, ValueModifier } from "../model/index.js";
24
2
  import { type TokenInterpretationContext, type TokenValueInterpretation } from "./tokenInterpretation.js";
25
3
  import { type Directionality } from "./boxSemantics.js";
26
4
  export type { Directionality } from "./boxSemantics.js";
27
- /** One projected longhand row from the structured interpretation. */
28
5
  export interface StructuredField {
29
6
  property: string;
30
7
  /** The authored value projected to this field (per-side/corner/longhand). */
@@ -42,23 +19,12 @@ export interface StructuredField {
42
19
  structure?: BorderStructure;
43
20
  diagnostic?: string;
44
21
  }
45
- /** Explicit, DOM-free facts the structured interpretation needs. */
46
22
  export interface StructuredValuesContext {
47
- /** Token table plus the integration's token-interpretation policies. */
48
23
  tokenContext: TokenInterpretationContext;
49
- /**
50
- * Writing-mode/direction facts for logical→physical mapping. Absent →
51
- * `ltr` / `horizontal-tb`.
52
- */
24
+ /** Writing-mode/direction facts for logical→physical mapping; defaults to `ltr`/`horizontal-tb`. */
53
25
  directionality?: Directionality;
54
26
  }
55
- /**
56
- * Interprets one authored value for a property into a structured projection
57
- * tree. Returns the projected fields, or a single conservative raw/composite
58
- * field when the value cannot be decomposed faithfully. The declared order of
59
- * the families mirrors CSS projection precedence: logical sides, border, font,
60
- * border-radius corners, gap, physical spacing, then the raw fallback.
61
- */
27
+ /** Values that cannot be decomposed faithfully collapse to one conservative raw/composite field; families are checked in CSS precedence order. */
62
28
  export declare function interpretValue(property: string, authored: string, ctx: StructuredValuesContext): StructuredField[];
63
- /** @internal Use the package-level `interpretValue` Interface in production. */
29
+ /** @internal Use `interpretValue` in production. */
64
30
  export declare const interpretStructuredValue: typeof interpretValue;