nudge-ui 0.2.0

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 (510) hide show
  1. package/README.md +66 -0
  2. package/bin/nudge-ui.mjs +7 -0
  3. package/dist/LICENSE +21 -0
  4. package/dist/client.mjs +261 -0
  5. package/dist/compiler/ast.d.ts +18 -0
  6. package/dist/compiler/ast.js +75 -0
  7. package/dist/compiler/componentContractTypes.d.ts +19 -0
  8. package/dist/compiler/componentContractTypes.js +1 -0
  9. package/dist/compiler/componentContracts.d.ts +2 -0
  10. package/dist/compiler/componentContracts.js +260 -0
  11. package/dist/compiler/componentInstrumentation.d.ts +32 -0
  12. package/dist/compiler/componentInstrumentation.js +140 -0
  13. package/dist/compiler/componentPolicyResolution.d.ts +71 -0
  14. package/dist/compiler/componentPolicyResolution.js +388 -0
  15. package/dist/compiler/index.d.ts +9 -0
  16. package/dist/compiler/index.js +9 -0
  17. package/dist/compiler/packageComponentContracts.d.ts +32 -0
  18. package/dist/compiler/packageComponentContracts.js +308 -0
  19. package/dist/compiler/reactComponentProtocols.d.ts +145 -0
  20. package/dist/compiler/reactComponentProtocols.js +47 -0
  21. package/dist/compiler/reactIdentity.d.ts +15 -0
  22. package/dist/compiler/reactIdentity.js +339 -0
  23. package/dist/compiler/sourcePaths.d.ts +12 -0
  24. package/dist/compiler/sourcePaths.js +27 -0
  25. package/dist/css/dialects/index.d.ts +62 -0
  26. package/dist/css/dialects/index.js +103 -0
  27. package/dist/css/dialects/tailwind.d.ts +46 -0
  28. package/dist/css/dialects/tailwind.js +119 -0
  29. package/dist/css/dialects/vanillaExtract.d.ts +20 -0
  30. package/dist/css/dialects/vanillaExtract.js +32 -0
  31. package/dist/css/index.d.ts +10 -0
  32. package/dist/css/index.js +10 -0
  33. package/dist/css/model/index.d.ts +190 -0
  34. package/dist/css/model/index.js +10 -0
  35. package/dist/css/token-inventory/index.d.ts +26 -0
  36. package/dist/css/token-inventory/index.js +24 -0
  37. package/dist/css/token-inventory/inventory.d.ts +8 -0
  38. package/dist/css/token-inventory/inventory.js +421 -0
  39. package/dist/css/token-inventory/parseStylesheet.d.ts +16 -0
  40. package/dist/css/token-inventory/parseStylesheet.js +155 -0
  41. package/dist/css/token-inventory/policy.d.ts +47 -0
  42. package/dist/css/token-inventory/policy.js +50 -0
  43. package/dist/css/token-inventory/types.d.ts +97 -0
  44. package/dist/css/token-inventory/types.js +1 -0
  45. package/dist/css/value-semantics/borderSemantics.d.ts +28 -0
  46. package/dist/css/value-semantics/borderSemantics.js +91 -0
  47. package/dist/css/value-semantics/boxSemantics.d.ts +37 -0
  48. package/dist/css/value-semantics/boxSemantics.js +71 -0
  49. package/dist/css/value-semantics/colorSemantics.d.ts +99 -0
  50. package/dist/css/value-semantics/colorSemantics.js +526 -0
  51. package/dist/css/value-semantics/cssSyntax.d.ts +19 -0
  52. package/dist/css/value-semantics/cssSyntax.js +111 -0
  53. package/dist/css/value-semantics/fontSemantics.d.ts +35 -0
  54. package/dist/css/value-semantics/fontSemantics.js +131 -0
  55. package/dist/css/value-semantics/index.d.ts +20 -0
  56. package/dist/css/value-semantics/index.js +15 -0
  57. package/dist/css/value-semantics/propertyPolicy.d.ts +118 -0
  58. package/dist/css/value-semantics/propertyPolicy.js +356 -0
  59. package/dist/css/value-semantics/stringMaps.d.ts +2 -0
  60. package/dist/css/value-semantics/stringMaps.js +1 -0
  61. package/dist/css/value-semantics/structuredValues.d.ts +64 -0
  62. package/dist/css/value-semantics/structuredValues.js +250 -0
  63. package/dist/css/value-semantics/tokenInterpretation.d.ts +90 -0
  64. package/dist/css/value-semantics/tokenInterpretation.js +193 -0
  65. package/dist/css/virtual-design-tokens.d.ts +17 -0
  66. package/dist/hosts/astro/astroRuntimeConfig.d.ts +12 -0
  67. package/dist/hosts/astro/astroRuntimeConfig.js +26 -0
  68. package/dist/hosts/astro/clientAsset.d.ts +12 -0
  69. package/dist/hosts/astro/clientAsset.js +51 -0
  70. package/dist/hosts/astro/clientTransport.d.ts +3 -0
  71. package/dist/hosts/astro/clientTransport.js +57 -0
  72. package/dist/hosts/astro/index.d.ts +3 -0
  73. package/dist/hosts/astro/index.js +2 -0
  74. package/dist/hosts/astro/integration.d.ts +35 -0
  75. package/dist/hosts/astro/integration.js +96 -0
  76. package/dist/hosts/astro/middleware.d.ts +13 -0
  77. package/dist/hosts/astro/middleware.js +22 -0
  78. package/dist/hosts/astro/projectContext.d.ts +11 -0
  79. package/dist/hosts/astro/projectContext.js +34 -0
  80. package/dist/hosts/astro/responseInstrumentation.d.ts +41 -0
  81. package/dist/hosts/astro/responseInstrumentation.js +80 -0
  82. package/dist/hosts/next/index.d.ts +4 -0
  83. package/dist/hosts/next/index.js +7 -0
  84. package/dist/hosts/next/loader.d.ts +66 -0
  85. package/dist/hosts/next/loader.js +346 -0
  86. package/dist/hosts/next/loaders/identity-loader.cjs +228257 -0
  87. package/dist/hosts/next/loaders/loader-plugin.cjs +228257 -0
  88. package/dist/hosts/next/manifest.d.ts +38 -0
  89. package/dist/hosts/next/manifest.js +30 -0
  90. package/dist/hosts/next/mount.d.ts +12 -0
  91. package/dist/hosts/next/mount.js +23 -0
  92. package/dist/hosts/next/repositoryScope.d.ts +20 -0
  93. package/dist/hosts/next/repositoryScope.js +33 -0
  94. package/dist/hosts/next/sidecar.d.ts +27 -0
  95. package/dist/hosts/next/sidecar.js +526 -0
  96. package/dist/hosts/next/wrapper.d.ts +67 -0
  97. package/dist/hosts/next/wrapper.js +310 -0
  98. package/dist/hosts/static/cli.d.ts +12 -0
  99. package/dist/hosts/static/cli.js +77 -0
  100. package/dist/hosts/static/html/bootstrap.d.ts +27 -0
  101. package/dist/hosts/static/html/bootstrap.js +93 -0
  102. package/dist/hosts/static/index.d.ts +4 -0
  103. package/dist/hosts/static/index.js +4 -0
  104. package/dist/hosts/static/manifest.d.ts +18 -0
  105. package/dist/hosts/static/manifest.js +51 -0
  106. package/dist/hosts/static/server.d.ts +72 -0
  107. package/dist/hosts/static/server.js +554 -0
  108. package/dist/hosts/vite/index.d.ts +20 -0
  109. package/dist/hosts/vite/index.js +48 -0
  110. package/dist/hosts/vite/react.d.ts +67 -0
  111. package/dist/hosts/vite/react.js +231 -0
  112. package/dist/hosts/vite/tokens/activeStylesheets.d.ts +28 -0
  113. package/dist/hosts/vite/tokens/activeStylesheets.js +70 -0
  114. package/dist/hosts/vite/tokens/fileMap.d.ts +2 -0
  115. package/dist/hosts/vite/tokens/fileMap.js +1 -0
  116. package/dist/hosts/vite/tokens/viteStylesheetArtifacts.d.ts +46 -0
  117. package/dist/hosts/vite/tokens/viteStylesheetArtifacts.js +104 -0
  118. package/dist/hosts/vite/virtual/design-tokens.d.ts +9 -0
  119. package/dist/hosts/vite/virtual/design-tokens.js +7 -0
  120. package/dist/hosts/vite/virtual-design-tokens.d.ts +1 -0
  121. package/dist/hosts/vite/vite.d.ts +62 -0
  122. package/dist/hosts/vite/vite.js +854 -0
  123. package/dist/html/dom.d.ts +13 -0
  124. package/dist/html/dom.js +46 -0
  125. package/dist/html/identity.d.ts +40 -0
  126. package/dist/html/identity.js +196 -0
  127. package/dist/html/insertions.d.ts +26 -0
  128. package/dist/html/insertions.js +59 -0
  129. package/dist/inspector/agent/McpConnectionDialog.d.ts +26 -0
  130. package/dist/inspector/agent/McpConnectionDialog.js +135 -0
  131. package/dist/inspector/agent/client.d.ts +98 -0
  132. package/dist/inspector/agent/client.js +728 -0
  133. package/dist/inspector/agent/connectionStatus.d.ts +13 -0
  134. package/dist/inspector/agent/connectionStatus.js +35 -0
  135. package/dist/inspector/agent/httpTransport.d.ts +21 -0
  136. package/dist/inspector/agent/httpTransport.js +347 -0
  137. package/dist/inspector/agent/protocol.d.ts +95 -0
  138. package/dist/inspector/agent/protocol.js +9 -0
  139. package/dist/inspector/agent/verification.d.ts +39 -0
  140. package/dist/inspector/agent/verification.js +207 -0
  141. package/dist/inspector/canvas/CanvasCard.d.ts +10 -0
  142. package/dist/inspector/canvas/CanvasCard.js +275 -0
  143. package/dist/inspector/canvas/CanvasElementOverlay.d.ts +2 -0
  144. package/dist/inspector/canvas/CanvasElementOverlay.js +301 -0
  145. package/dist/inspector/canvas/CanvasWorkspace.d.ts +2 -0
  146. package/dist/inspector/canvas/CanvasWorkspace.js +301 -0
  147. package/dist/inspector/canvas/LockedWorkspaceNotice.d.ts +6 -0
  148. package/dist/inspector/canvas/LockedWorkspaceNotice.js +17 -0
  149. package/dist/inspector/canvas/StaleChangeIndicator.d.ts +7 -0
  150. package/dist/inspector/canvas/StaleChangeIndicator.js +43 -0
  151. package/dist/inspector/canvas/agentPresentation.d.ts +87 -0
  152. package/dist/inspector/canvas/agentPresentation.js +421 -0
  153. package/dist/inspector/canvas/canvasGestures.d.ts +12 -0
  154. package/dist/inspector/canvas/canvasGestures.js +21 -0
  155. package/dist/inspector/canvas/canvasStore.d.ts +108 -0
  156. package/dist/inspector/canvas/canvasStore.js +448 -0
  157. package/dist/inspector/canvas/frameProtocol.d.ts +231 -0
  158. package/dist/inspector/canvas/frameProtocol.js +165 -0
  159. package/dist/inspector/canvas/linkEligibility.d.ts +8 -0
  160. package/dist/inspector/canvas/linkEligibility.js +68 -0
  161. package/dist/inspector/canvas/measurementProjection.d.ts +8 -0
  162. package/dist/inspector/canvas/measurementProjection.js +16 -0
  163. package/dist/inspector/canvas/normalizeUrl.d.ts +7 -0
  164. package/dist/inspector/canvas/normalizeUrl.js +27 -0
  165. package/dist/inspector/canvas/projection.d.ts +41 -0
  166. package/dist/inspector/canvas/projection.js +232 -0
  167. package/dist/inspector/canvas/rendererBootstrap.d.ts +4 -0
  168. package/dist/inspector/canvas/rendererBootstrap.js +410 -0
  169. package/dist/inspector/canvas/rendererCidIndex.d.ts +11 -0
  170. package/dist/inspector/canvas/rendererCidIndex.js +21 -0
  171. package/dist/inspector/canvas/rendererElementSelector.d.ts +2 -0
  172. package/dist/inspector/canvas/rendererElementSelector.js +378 -0
  173. package/dist/inspector/canvas/rendererSelectionProxy.d.ts +2 -0
  174. package/dist/inspector/canvas/rendererSelectionProxy.js +61 -0
  175. package/dist/inspector/canvas/rendererStylesheet.d.ts +16 -0
  176. package/dist/inspector/canvas/rendererStylesheet.js +221 -0
  177. package/dist/inspector/canvas/resizeHandleScale.d.ts +13 -0
  178. package/dist/inspector/canvas/resizeHandleScale.js +20 -0
  179. package/dist/inspector/canvas/roleDetection.d.ts +5 -0
  180. package/dist/inspector/canvas/roleDetection.js +21 -0
  181. package/dist/inspector/canvas/sessionStore.d.ts +71 -0
  182. package/dist/inspector/canvas/sessionStore.js +453 -0
  183. package/dist/inspector/canvas/staleChangeDetector.d.ts +11 -0
  184. package/dist/inspector/canvas/staleChangeDetector.js +217 -0
  185. package/dist/inspector/canvas/toolbarScale.d.ts +7 -0
  186. package/dist/inspector/canvas/toolbarScale.js +11 -0
  187. package/dist/inspector/canvas/workspaceLease.d.ts +26 -0
  188. package/dist/inspector/canvas/workspaceLease.js +214 -0
  189. package/dist/inspector/changes/changesLog.d.ts +46 -0
  190. package/dist/inspector/changes/changesLog.js +209 -0
  191. package/dist/inspector/changes/codecs.d.ts +98 -0
  192. package/dist/inspector/changes/codecs.js +389 -0
  193. package/dist/inspector/changes/editModel.d.ts +74 -0
  194. package/dist/inspector/changes/editModel.js +120 -0
  195. package/dist/inspector/changes/managedStyleProjection.d.ts +6 -0
  196. package/dist/inspector/changes/managedStyleProjection.js +109 -0
  197. package/dist/inspector/changes/model.d.ts +13 -0
  198. package/dist/inspector/changes/model.js +163 -0
  199. package/dist/inspector/changes/presentation.d.ts +14 -0
  200. package/dist/inspector/changes/presentation.js +81 -0
  201. package/dist/inspector/changes/previewDiagnostics.d.ts +39 -0
  202. package/dist/inspector/changes/previewDiagnostics.js +172 -0
  203. package/dist/inspector/changes/structuralTypes.d.ts +35 -0
  204. package/dist/inspector/changes/structuralTypes.js +1 -0
  205. package/dist/inspector/changes/types.d.ts +76 -0
  206. package/dist/inspector/changes/types.js +16 -0
  207. package/dist/inspector/changes/workspaceChanges.d.ts +43 -0
  208. package/dist/inspector/changes/workspaceChanges.js +239 -0
  209. package/dist/inspector/clientManifest.d.ts +24 -0
  210. package/dist/inspector/clientManifest.js +69 -0
  211. package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +5 -0
  212. package/dist/inspector/componentSemantics/ComponentPropsSection.js +44 -0
  213. package/dist/inspector/componentSemantics/adapterRegistry.d.ts +11 -0
  214. package/dist/inspector/componentSemantics/adapterRegistry.js +75 -0
  215. package/dist/inspector/componentSemantics/boundaries.d.ts +2 -0
  216. package/dist/inspector/componentSemantics/boundaries.js +10 -0
  217. package/dist/inspector/componentSemantics/changeAction.d.ts +3 -0
  218. package/dist/inspector/componentSemantics/changeAction.js +6 -0
  219. package/dist/inspector/componentSemantics/changeModel.d.ts +8 -0
  220. package/dist/inspector/componentSemantics/changeModel.js +60 -0
  221. package/dist/inspector/componentSemantics/index.d.ts +4 -0
  222. package/dist/inspector/componentSemantics/index.js +2 -0
  223. package/dist/inspector/componentSemantics/reactRuntime.d.ts +10 -0
  224. package/dist/inspector/componentSemantics/reactRuntime.js +186 -0
  225. package/dist/inspector/componentSemantics/runtimeBridge.d.ts +25 -0
  226. package/dist/inspector/componentSemantics/runtimeBridge.js +161 -0
  227. package/dist/inspector/componentSemantics/runtimeTypes.d.ts +2 -0
  228. package/dist/inspector/componentSemantics/runtimeTypes.js +1 -0
  229. package/dist/inspector/componentSemantics/textBinding.d.ts +69 -0
  230. package/dist/inspector/componentSemantics/textBinding.js +514 -0
  231. package/dist/inspector/componentSemantics/types.d.ts +96 -0
  232. package/dist/inspector/componentSemantics/types.js +5 -0
  233. package/dist/inspector/conformance/borderCases.d.ts +7 -0
  234. package/dist/inspector/conformance/borderCases.js +428 -0
  235. package/dist/inspector/conformance/colorCases.d.ts +8 -0
  236. package/dist/inspector/conformance/colorCases.js +470 -0
  237. package/dist/inspector/conformance/fixture.d.ts +68 -0
  238. package/dist/inspector/conformance/fixture.js +153 -0
  239. package/dist/inspector/conformance/projection.d.ts +2 -0
  240. package/dist/inspector/conformance/projection.js +3 -0
  241. package/dist/inspector/conformance/spacingCases.d.ts +6 -0
  242. package/dist/inspector/conformance/spacingCases.js +417 -0
  243. package/dist/inspector/conformance/typographyCases.d.ts +7 -0
  244. package/dist/inspector/conformance/typographyCases.js +174 -0
  245. package/dist/inspector/editScope.d.ts +4 -0
  246. package/dist/inspector/editScope.js +5 -0
  247. package/dist/inspector/index.d.ts +20 -0
  248. package/dist/inspector/index.js +236 -0
  249. package/dist/inspector/inline-text/inlineTextEditor.d.ts +74 -0
  250. package/dist/inspector/inline-text/inlineTextEditor.js +1207 -0
  251. package/dist/inspector/inline-text/inlineTextLifecycle.d.ts +2 -0
  252. package/dist/inspector/inline-text/inlineTextLifecycle.js +17 -0
  253. package/dist/inspector/inline-text/textChangeBoundary.d.ts +6 -0
  254. package/dist/inspector/inline-text/textChangeBoundary.js +1 -0
  255. package/dist/inspector/inspection/bridge.d.ts +72 -0
  256. package/dist/inspector/inspection/bridge.js +134 -0
  257. package/dist/inspector/inspection/browserCssInspection.d.ts +74 -0
  258. package/dist/inspector/inspection/browserCssInspection.js +317 -0
  259. package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +12 -0
  260. package/dist/inspector/inspection/browserCssInspectionRegistry.js +66 -0
  261. package/dist/inspector/inspection/selectionProperty.d.ts +32 -0
  262. package/dist/inspector/inspection/selectionProperty.js +33 -0
  263. package/dist/inspector/inspection/useBrowserCssInspection.d.ts +20 -0
  264. package/dist/inspector/inspection/useBrowserCssInspection.js +159 -0
  265. package/dist/inspector/overlay/DropGuideOverlay.d.ts +17 -0
  266. package/dist/inspector/overlay/DropGuideOverlay.js +17 -0
  267. package/dist/inspector/overlay/InspectorOverlay.d.ts +5 -0
  268. package/dist/inspector/overlay/InspectorOverlay.js +328 -0
  269. package/dist/inspector/overlay/MeasurementGuideOverlay.d.ts +19 -0
  270. package/dist/inspector/overlay/MeasurementGuideOverlay.js +40 -0
  271. package/dist/inspector/overlay/clickPolicy.d.ts +7 -0
  272. package/dist/inspector/overlay/clickPolicy.js +13 -0
  273. package/dist/inspector/overlay/dropGuide.d.ts +22 -0
  274. package/dist/inspector/overlay/dropGuide.js +48 -0
  275. package/dist/inspector/overlay/elementSelector.d.ts +1 -0
  276. package/dist/inspector/overlay/elementSelector.js +100 -0
  277. package/dist/inspector/overlay/frameThrottle.d.ts +10 -0
  278. package/dist/inspector/overlay/frameThrottle.js +38 -0
  279. package/dist/inspector/overlay/interactionStyles.d.ts +3 -0
  280. package/dist/inspector/overlay/interactionStyles.js +70 -0
  281. package/dist/inspector/overlay/measurementGeometry.d.ts +25 -0
  282. package/dist/inspector/overlay/measurementGeometry.js +104 -0
  283. package/dist/inspector/overlay/overlayGeometry.d.ts +40 -0
  284. package/dist/inspector/overlay/overlayGeometry.js +59 -0
  285. package/dist/inspector/overlay/selectedGeometry.d.ts +7 -0
  286. package/dist/inspector/overlay/selectedGeometry.js +51 -0
  287. package/dist/inspector/overlay/structuralGestures.d.ts +28 -0
  288. package/dist/inspector/overlay/structuralGestures.js +180 -0
  289. package/dist/inspector/projection/cssEscapes.d.ts +3 -0
  290. package/dist/inspector/projection/cssEscapes.js +20 -0
  291. package/dist/inspector/projection/managedStylesheet.d.ts +33 -0
  292. package/dist/inspector/projection/managedStylesheet.js +240 -0
  293. package/dist/inspector/projection/renderedInstance.d.ts +56 -0
  294. package/dist/inspector/projection/renderedInstance.js +306 -0
  295. package/dist/inspector/projection/structuralProjection.d.ts +93 -0
  296. package/dist/inspector/projection/structuralProjection.js +560 -0
  297. package/dist/inspector/projection/structuralProjectionBoundary.d.ts +5 -0
  298. package/dist/inspector/projection/structuralProjectionBoundary.js +65 -0
  299. package/dist/inspector/projection/textProjection.d.ts +53 -0
  300. package/dist/inspector/projection/textProjection.js +705 -0
  301. package/dist/inspector/projection/workspaceProjection.d.ts +43 -0
  302. package/dist/inspector/projection/workspaceProjection.js +58 -0
  303. package/dist/inspector/prompt/PromptSettingsDialog.d.ts +15 -0
  304. package/dist/inspector/prompt/PromptSettingsDialog.js +17 -0
  305. package/dist/inspector/prompt/clipboardHandoff.d.ts +34 -0
  306. package/dist/inspector/prompt/clipboardHandoff.js +212 -0
  307. package/dist/inspector/prompt/copyToClipboard.d.ts +1 -0
  308. package/dist/inspector/prompt/copyToClipboard.js +34 -0
  309. package/dist/inspector/prompt/detectFramework.d.ts +6 -0
  310. package/dist/inspector/prompt/detectFramework.js +4 -0
  311. package/dist/inspector/prompt/generatePrompt.d.ts +7 -0
  312. package/dist/inspector/prompt/generatePrompt.js +391 -0
  313. package/dist/inspector/prompt/promptSettings.d.ts +8 -0
  314. package/dist/inspector/prompt/promptSettings.js +28 -0
  315. package/dist/inspector/runtime/devFlag.d.ts +28 -0
  316. package/dist/inspector/runtime/devFlag.js +50 -0
  317. package/dist/inspector/runtime/documentStylesheetOrder.d.ts +19 -0
  318. package/dist/inspector/runtime/documentStylesheetOrder.js +89 -0
  319. package/dist/inspector/runtime/domRealm.d.ts +4 -0
  320. package/dist/inspector/runtime/domRealm.js +11 -0
  321. package/dist/inspector/runtime/runtimeConfig.d.ts +119 -0
  322. package/dist/inspector/runtime/runtimeConfig.js +276 -0
  323. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +32 -0
  324. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +149 -0
  325. package/dist/inspector/runtime/useRuntimeConfig.d.ts +10 -0
  326. package/dist/inspector/runtime/useRuntimeConfig.js +13 -0
  327. package/dist/inspector/selection/editScope.d.ts +32 -0
  328. package/dist/inspector/selection/editScope.js +140 -0
  329. package/dist/inspector/selection/editTarget.d.ts +8 -0
  330. package/dist/inspector/selection/editTarget.js +11 -0
  331. package/dist/inspector/selection/hierarchy.d.ts +7 -0
  332. package/dist/inspector/selection/hierarchy.js +42 -0
  333. package/dist/inspector/selection/resolveSelection.d.ts +10 -0
  334. package/dist/inspector/selection/resolveSelection.js +60 -0
  335. package/dist/inspector/selection/selectionStore.d.ts +41 -0
  336. package/dist/inspector/selection/selectionStore.js +262 -0
  337. package/dist/inspector/selection/selectionTarget.d.ts +5 -0
  338. package/dist/inspector/selection/selectionTarget.js +50 -0
  339. package/dist/inspector/selection/sourceSite.d.ts +2 -0
  340. package/dist/inspector/selection/sourceSite.js +12 -0
  341. package/dist/inspector/selection/styleSelection.d.ts +22 -0
  342. package/dist/inspector/selection/styleSelection.js +104 -0
  343. package/dist/inspector/session/index.d.ts +3 -0
  344. package/dist/inspector/session/index.js +2 -0
  345. package/dist/inspector/session/lifecycle.d.ts +22 -0
  346. package/dist/inspector/session/lifecycle.js +63 -0
  347. package/dist/inspector/session/sessionContext.d.ts +21 -0
  348. package/dist/inspector/session/sessionContext.js +28 -0
  349. package/dist/inspector/session/sessionFactory.d.ts +29 -0
  350. package/dist/inspector/session/sessionFactory.js +73 -0
  351. package/dist/inspector/settings/SettingsDialog.d.ts +12 -0
  352. package/dist/inspector/settings/SettingsDialog.js +46 -0
  353. package/dist/inspector/shell/AppShell.d.ts +2 -0
  354. package/dist/inspector/shell/AppShell.js +9 -0
  355. package/dist/inspector/shell/ChangesLog.d.ts +6 -0
  356. package/dist/inspector/shell/ChangesLog.js +92 -0
  357. package/dist/inspector/shell/CopyPromptButton.d.ts +9 -0
  358. package/dist/inspector/shell/CopyPromptButton.js +159 -0
  359. package/dist/inspector/shell/DomNavigation.d.ts +8 -0
  360. package/dist/inspector/shell/DomNavigation.js +30 -0
  361. package/dist/inspector/shell/EmptyState.d.ts +2 -0
  362. package/dist/inspector/shell/EmptyState.js +15 -0
  363. package/dist/inspector/shell/InspectorShell.d.ts +11 -0
  364. package/dist/inspector/shell/InspectorShell.js +268 -0
  365. package/dist/inspector/shell/openStore.d.ts +6 -0
  366. package/dist/inspector/shell/openStore.js +29 -0
  367. package/dist/inspector/shell/panelLayout.d.ts +2 -0
  368. package/dist/inspector/shell/panelLayout.js +29 -0
  369. package/dist/inspector/shell/shortcuts.d.ts +3 -0
  370. package/dist/inspector/shell/shortcuts.js +25 -0
  371. package/dist/inspector/shell/stateValue.d.ts +3 -0
  372. package/dist/inspector/shell/stateValue.js +34 -0
  373. package/dist/inspector/shell/styleState.d.ts +7 -0
  374. package/dist/inspector/shell/styleState.js +13 -0
  375. package/dist/inspector/spacing/projection.d.ts +43 -0
  376. package/dist/inspector/spacing/projection.js +136 -0
  377. package/dist/inspector/styleEditors/AppearanceSection.d.ts +13 -0
  378. package/dist/inspector/styleEditors/AppearanceSection.js +6 -0
  379. package/dist/inspector/styleEditors/AspectRatioField.d.ts +17 -0
  380. package/dist/inspector/styleEditors/AspectRatioField.js +10 -0
  381. package/dist/inspector/styleEditors/BorderEditor.d.ts +13 -0
  382. package/dist/inspector/styleEditors/BorderEditor.js +295 -0
  383. package/dist/inspector/styleEditors/BorderRadiusEditor.d.ts +14 -0
  384. package/dist/inspector/styleEditors/BorderRadiusEditor.js +108 -0
  385. package/dist/inspector/styleEditors/BoxShadowEditor.d.ts +13 -0
  386. package/dist/inspector/styleEditors/BoxShadowEditor.js +13 -0
  387. package/dist/inspector/styleEditors/ColorPicker.d.ts +15 -0
  388. package/dist/inspector/styleEditors/ColorPicker.js +73 -0
  389. package/dist/inspector/styleEditors/GapField.d.ts +17 -0
  390. package/dist/inspector/styleEditors/GapField.js +12 -0
  391. package/dist/inspector/styleEditors/GridChildSection.d.ts +14 -0
  392. package/dist/inspector/styleEditors/GridChildSection.js +91 -0
  393. package/dist/inspector/styleEditors/GridPicker.d.ts +13 -0
  394. package/dist/inspector/styleEditors/GridPicker.js +179 -0
  395. package/dist/inspector/styleEditors/GridSection.d.ts +17 -0
  396. package/dist/inspector/styleEditors/GridSection.js +27 -0
  397. package/dist/inspector/styleEditors/GridValueField.d.ts +17 -0
  398. package/dist/inspector/styleEditors/GridValueField.js +70 -0
  399. package/dist/inspector/styleEditors/InsetSection.d.ts +15 -0
  400. package/dist/inspector/styleEditors/InsetSection.js +15 -0
  401. package/dist/inspector/styleEditors/LayoutBlockedIndicator.d.ts +6 -0
  402. package/dist/inspector/styleEditors/LayoutBlockedIndicator.js +6 -0
  403. package/dist/inspector/styleEditors/LayoutComboField.d.ts +18 -0
  404. package/dist/inspector/styleEditors/LayoutComboField.js +138 -0
  405. package/dist/inspector/styleEditors/LayoutDropdown.d.ts +14 -0
  406. package/dist/inspector/styleEditors/LayoutDropdown.js +34 -0
  407. package/dist/inspector/styleEditors/LayoutSection.d.ts +13 -0
  408. package/dist/inspector/styleEditors/LayoutSection.js +342 -0
  409. package/dist/inspector/styleEditors/OpacityEditor.d.ts +13 -0
  410. package/dist/inspector/styleEditors/OpacityEditor.js +34 -0
  411. package/dist/inspector/styleEditors/PositionInsets.d.ts +15 -0
  412. package/dist/inspector/styleEditors/PositionInsets.js +12 -0
  413. package/dist/inspector/styleEditors/SpacingBox.d.ts +29 -0
  414. package/dist/inspector/styleEditors/SpacingBox.js +189 -0
  415. package/dist/inspector/styleEditors/Typography.d.ts +13 -0
  416. package/dist/inspector/styleEditors/Typography.js +137 -0
  417. package/dist/inspector/styleEditors/completeCssValue.d.ts +8 -0
  418. package/dist/inspector/styleEditors/completeCssValue.js +34 -0
  419. package/dist/inspector/styleEditors/gridChildModel.d.ts +74 -0
  420. package/dist/inspector/styleEditors/gridChildModel.js +138 -0
  421. package/dist/inspector/styleEditors/layoutValue.d.ts +24 -0
  422. package/dist/inspector/styleEditors/layoutValue.js +103 -0
  423. package/dist/inspector/styleEditors/nudgeValue.d.ts +8 -0
  424. package/dist/inspector/styleEditors/nudgeValue.js +71 -0
  425. package/dist/inspector/styleEditors/rowLookup.d.ts +11 -0
  426. package/dist/inspector/styleEditors/rowLookup.js +13 -0
  427. package/dist/inspector/styleEditors/stringRecord.d.ts +4 -0
  428. package/dist/inspector/styleEditors/stringRecord.js +1 -0
  429. package/dist/inspector/styleEditors/valuePolicy.d.ts +20 -0
  430. package/dist/inspector/styleEditors/valuePolicy.js +82 -0
  431. package/dist/inspector/testing.d.ts +10 -0
  432. package/dist/inspector/testing.js +9 -0
  433. package/dist/inspector/tokens/TokenChip.d.ts +24 -0
  434. package/dist/inspector/tokens/TokenChip.js +23 -0
  435. package/dist/inspector/tokens/TokenDropdown.d.ts +13 -0
  436. package/dist/inspector/tokens/TokenDropdown.js +59 -0
  437. package/dist/inspector/tokens/TokenField.d.ts +68 -0
  438. package/dist/inspector/tokens/TokenField.js +485 -0
  439. package/dist/inspector/tokens/TokenLabel.d.ts +7 -0
  440. package/dist/inspector/tokens/TokenLabel.js +23 -0
  441. package/dist/inspector/tokens/TokensPanel.d.ts +5 -0
  442. package/dist/inspector/tokens/TokensPanel.js +47 -0
  443. package/dist/inspector/tokens/catalog.d.ts +51 -0
  444. package/dist/inspector/tokens/catalog.js +184 -0
  445. package/dist/inspector/tokens/editActions.d.ts +35 -0
  446. package/dist/inspector/tokens/editActions.js +164 -0
  447. package/dist/inspector/tokens/resolution/cascade.d.ts +14 -0
  448. package/dist/inspector/tokens/resolution/cascade.js +31 -0
  449. package/dist/inspector/tokens/resolution/cssomCollector.d.ts +43 -0
  450. package/dist/inspector/tokens/resolution/cssomCollector.js +528 -0
  451. package/dist/inspector/tokens/resolution/selectorSemantics.d.ts +12 -0
  452. package/dist/inspector/tokens/resolution/selectorSemantics.js +106 -0
  453. package/dist/inspector/tokens/resolution.d.ts +56 -0
  454. package/dist/inspector/tokens/resolution.js +1401 -0
  455. package/dist/inspector/tokens/tokenEdits.d.ts +3 -0
  456. package/dist/inspector/tokens/tokenEdits.js +22 -0
  457. package/dist/inspector/tokens/valueSemanticsAdapter.d.ts +6 -0
  458. package/dist/inspector/tokens/valueSemanticsAdapter.js +68 -0
  459. package/dist/inspector/ui/AtRuleContext.d.ts +18 -0
  460. package/dist/inspector/ui/AtRuleContext.js +54 -0
  461. package/dist/inspector/ui/Button.d.ts +9 -0
  462. package/dist/inspector/ui/Button.js +4 -0
  463. package/dist/inspector/ui/ColorSwatch.d.ts +7 -0
  464. package/dist/inspector/ui/ColorSwatch.js +6 -0
  465. package/dist/inspector/ui/ControlSurface.d.ts +14 -0
  466. package/dist/inspector/ui/ControlSurface.js +10 -0
  467. package/dist/inspector/ui/FieldRow.d.ts +14 -0
  468. package/dist/inspector/ui/FieldRow.js +15 -0
  469. package/dist/inspector/ui/IconButton.d.ts +14 -0
  470. package/dist/inspector/ui/IconButton.js +5 -0
  471. package/dist/inspector/ui/InspectorPopover.d.ts +17 -0
  472. package/dist/inspector/ui/InspectorPopover.js +13 -0
  473. package/dist/inspector/ui/PopoverListbox.d.ts +37 -0
  474. package/dist/inspector/ui/PopoverListbox.js +21 -0
  475. package/dist/inspector/ui/SegmentedControl.d.ts +24 -0
  476. package/dist/inspector/ui/SegmentedControl.js +16 -0
  477. package/dist/inspector/ui/Select.d.ts +25 -0
  478. package/dist/inspector/ui/Select.js +56 -0
  479. package/dist/inspector/ui/SideValuesField.d.ts +44 -0
  480. package/dist/inspector/ui/SideValuesField.js +76 -0
  481. package/dist/inspector/ui/StatusCallout.d.ts +9 -0
  482. package/dist/inspector/ui/StatusCallout.js +4 -0
  483. package/dist/inspector/ui/TextInput.d.ts +12 -0
  484. package/dist/inspector/ui/TextInput.js +5 -0
  485. package/dist/inspector/ui/ToggleButton.d.ts +11 -0
  486. package/dist/inspector/ui/ToggleButton.js +6 -0
  487. package/dist/inspector/ui/assets/grid.svg +14 -0
  488. package/dist/inspector/ui/css.d.ts +9 -0
  489. package/dist/inspector/ui/labels.d.ts +1 -0
  490. package/dist/inspector/ui/labels.js +7 -0
  491. package/dist/inspector/ui/styles.d.ts +1 -0
  492. package/dist/inspector/ui/styles.js +68 -0
  493. package/dist/inspector/virtual-modules.d.ts +7 -0
  494. package/dist/inspector/vite-env.d.ts +10 -0
  495. package/dist/internal/agent-protocol.d.ts +232 -0
  496. package/dist/internal/agent-protocol.js +237 -0
  497. package/dist/nudge-ui.mjs +15722 -0
  498. package/dist/project/files.d.ts +19 -0
  499. package/dist/project/files.js +226 -0
  500. package/dist/project/identity.d.ts +6 -0
  501. package/dist/project/identity.js +19 -0
  502. package/dist/project/pathPolicy.d.ts +8 -0
  503. package/dist/project/pathPolicy.js +12 -0
  504. package/dist/project/tokens.d.ts +36 -0
  505. package/dist/project/tokens.js +223 -0
  506. package/dist/transport/index.d.ts +8 -0
  507. package/dist/transport/index.js +8 -0
  508. package/dist/transport/routes.d.ts +13 -0
  509. package/dist/transport/routes.js +16 -0
  510. package/package.json +137 -0
@@ -0,0 +1,184 @@
1
+ import { getScopingSelectorPattern } from "../runtime/runtimeConfig.js";
2
+ import { getElementComputedStyle, getElementWindow } from "../runtime/domRealm.js";
3
+ import { selectTokens } from "../../css/value-semantics/index.js";
4
+ import { cascadeLayerOrder } from "./resolution/cssomCollector.js";
5
+ import { compareAuthorCascade } from "./resolution/cascade.js";
6
+ import { computeSpecificityCore } from "./resolution/selectorSemantics.js";
7
+ export { TOKEN_GROUP_LABELS, TOKEN_GROUP_ORDER } from "../../css/value-semantics/index.js";
8
+ function defaultRuntime(root) {
9
+ const ownerWindow = getElementWindow(root);
10
+ const ownerDocument = root.ownerDocument;
11
+ const ownerCss = ownerWindow.CSS;
12
+ return {
13
+ root,
14
+ mediaMatches: (query) => typeof ownerWindow.matchMedia === "function" ? ownerWindow.matchMedia(query).matches : false,
15
+ supports: (condition) => typeof ownerCss?.supports === "function" ? ownerCss.supports(condition) : false,
16
+ computedToken: (name) => getElementComputedStyle(root).getPropertyValue(name).trim(),
17
+ selectorMatches: (selector) => selector
18
+ .split(",")
19
+ .map((part) => part.trim())
20
+ .filter(Boolean)
21
+ .some((part) => {
22
+ try {
23
+ return root.matches(part);
24
+ }
25
+ catch {
26
+ return false;
27
+ }
28
+ }),
29
+ scopeMatches: (scope) => {
30
+ const start = scope.match(/^\s*\((.+)\)/)?.[1]?.trim();
31
+ if (!start)
32
+ return true;
33
+ try {
34
+ return root.matches(start) || root.closest(start) !== null || ownerDocument.querySelector(start) !== null;
35
+ }
36
+ catch {
37
+ return false;
38
+ }
39
+ },
40
+ layerOrder: (name) => cascadeLayerOrder(ownerDocument, name),
41
+ };
42
+ }
43
+ export function isTokenContextActive(context, runtime) {
44
+ if (context.selector && !runtime.selectorMatches(context.selector))
45
+ return false;
46
+ return (context.wrappers ?? []).every((wrapper) => {
47
+ if (wrapper.kind === "media")
48
+ return runtime.mediaMatches(wrapper.params);
49
+ if (wrapper.kind === "supports")
50
+ return runtime.supports(wrapper.params);
51
+ if (wrapper.kind === "scope")
52
+ return runtime.scopeMatches(wrapper.params);
53
+ return true;
54
+ });
55
+ }
56
+ function pickWinningDeclaration(declarations, runtime) {
57
+ const priority = (declaration, index) => {
58
+ const layers = (declaration.context.wrappers ?? [])
59
+ .filter((wrapper) => wrapper.kind === "layer")
60
+ .map((wrapper) => wrapper.params.trim())
61
+ .filter(Boolean);
62
+ const layer = layers.length > 0 ? layers.join(".") : undefined;
63
+ return {
64
+ important: declaration.important,
65
+ layer,
66
+ layerOrder: layer ? runtime.layerOrder(layer) : undefined,
67
+ specificity: declaration.context.selector
68
+ ? computeSpecificityCore(declaration.context.selector)
69
+ : 0,
70
+ sourceOrder: declaration.order ?? index,
71
+ };
72
+ };
73
+ let winner = null;
74
+ let winnerIndex = -1;
75
+ declarations.forEach((candidate, candidateIndex) => {
76
+ if (!isTokenContextActive(candidate.context, runtime))
77
+ return;
78
+ if (!winner
79
+ || compareAuthorCascade(priority(candidate, candidateIndex), priority(winner, winnerIndex)) >= 0) {
80
+ winner = candidate;
81
+ winnerIndex = candidateIndex;
82
+ }
83
+ });
84
+ return winner;
85
+ }
86
+ /**
87
+ * Strips host-declared structural scoping markers from a selector so
88
+ * human-facing labels present only author vocabulary (ADR-0011). The marker
89
+ * grammar — Astro's `[data-astro-cid-<hash>]` attribute selectors or
90
+ * `.astro-<hash>` classes, a future Vue/Svelte equivalent — is declared by
91
+ * the host Adapter through the runtime configuration; the raw selector is
92
+ * retained in `context.selector` so resolution keeps matching the rendered
93
+ * DOM. A `:where(...)` wrapper left empty by the removals disappears
94
+ * entirely.
95
+ */
96
+ export function humanizeSelector(selector, scopingPattern) {
97
+ const stripped = scopingPattern === null ? selector : selector.replace(scopingPattern, "");
98
+ return stripped
99
+ .replace(/:where\(\s*\)/g, "")
100
+ .replace(/\s+/g, " ")
101
+ .trim();
102
+ }
103
+ export function contextLabel(context) {
104
+ const labels = [];
105
+ if (context.selector && context.selector !== ":root") {
106
+ const selectorLabel = humanizeSelector(context.selector, getScopingSelectorPattern());
107
+ labels.push(selectorLabel === "" || selectorLabel === ":root" ? "Default" : selectorLabel);
108
+ }
109
+ else if (context.selector === ":root") {
110
+ labels.push("Default");
111
+ }
112
+ for (const wrapper of context.wrappers ?? []) {
113
+ labels.push(`@${wrapper.kind} ${wrapper.params}`);
114
+ }
115
+ return labels.join(" · ") || "Default";
116
+ }
117
+ export function sourceParts(source) {
118
+ const match = source.match(/^(.*):(\d+)$/);
119
+ return match ? { file: match[1], line: Number(match[2]) } : { file: source, line: 0 };
120
+ }
121
+ export function styleContext(context) {
122
+ const wrappers = context.wrappers?.map((wrapper) => ({ ...wrapper }));
123
+ return wrappers && wrappers.length > 0 ? { wrappers } : {};
124
+ }
125
+ export function selectorForContext(context) {
126
+ return context.selector?.trim() || ":root";
127
+ }
128
+ export function classifyCatalogToken(name, value = "") {
129
+ return selectTokens({ entries: [{ name, value, source: "" }] }).candidates[0]?.group ?? "generic";
130
+ }
131
+ export function buildTokenCatalogRows(catalog, root = document.documentElement, suppliedRuntime) {
132
+ const runtime = suppliedRuntime ?? defaultRuntime(root);
133
+ return catalog
134
+ .map((definition) => {
135
+ const activeDeclaration = pickWinningDeclaration(definition.declarations, runtime);
136
+ const source = activeDeclaration?.source ?? definition.declarations[0]?.source ?? "";
137
+ const parts = sourceParts(source);
138
+ const context = activeDeclaration?.context ?? {};
139
+ const authoredValue = activeDeclaration?.value ?? "";
140
+ return {
141
+ definition,
142
+ activeDeclaration,
143
+ authoredValue,
144
+ resolvedValue: activeDeclaration ? runtime.computedToken(definition.cssName) : "",
145
+ selector: selectorForContext(context),
146
+ styleContext: styleContext(context),
147
+ contextLabel: activeDeclaration ? contextLabel(context) : "Inactive in current theme",
148
+ file: parts.file,
149
+ line: parts.line,
150
+ group: classifyCatalogToken(definition.name || definition.cssName, authoredValue),
151
+ };
152
+ })
153
+ .sort((a, b) => a.definition.name.localeCompare(b.definition.name));
154
+ }
155
+ export function filterTokenRows(rows, query) {
156
+ const needle = query.trim().toLowerCase();
157
+ if (!needle)
158
+ return [...rows];
159
+ return rows.filter((row) => row.definition.name.toLowerCase().includes(needle)
160
+ || row.definition.cssName.toLowerCase().includes(needle)
161
+ || row.definition.declarations.some((declaration) => declaration.value.toLowerCase().includes(needle)));
162
+ }
163
+ const EXACT_ALIAS = /^var\(\s*(--[\w-]+)\s*\)$/;
164
+ export function aliasName(value) {
165
+ return value.trim().match(EXACT_ALIAS)?.[1] ?? null;
166
+ }
167
+ export function createsAliasCycle(tokenName, candidateName, authoredValues) {
168
+ const visited = new Set([tokenName]);
169
+ let current = candidateName;
170
+ while (current) {
171
+ if (visited.has(current))
172
+ return true;
173
+ visited.add(current);
174
+ current = aliasName(authoredValues.get(current) ?? "");
175
+ }
176
+ return false;
177
+ }
178
+ export function compatibleTokenNames(row, rows) {
179
+ const authored = new Map(rows.map((candidate) => [candidate.definition.cssName, candidate.authoredValue]));
180
+ return new Set(rows
181
+ .filter((candidate) => candidate.group === row.group)
182
+ .filter((candidate) => !createsAliasCycle(row.definition.cssName, candidate.definition.cssName, authored))
183
+ .map((candidate) => candidate.definition.cssName));
184
+ }
@@ -0,0 +1,35 @@
1
+ import type { TokenEntry } from "../../css/model/index.js";
2
+ import type { ElementChangeRecord } from "../changes/changesLog.js";
3
+ import { type EditTarget } from "../selection/editTarget.js";
4
+ export type { ChangeRecord } from "../changes/changesLog.js";
5
+ export { getPendingRules, getChangesList as getChangeRecords, clearWorkspace as resetPendingRules } from "../changes/changesLog.js";
6
+ export interface StyleEditMetadata {
7
+ sourceProperty?: string;
8
+ sourceAuthoredValue?: string;
9
+ }
10
+ /** Returns whether a style write can address every element in the target safely. */
11
+ export declare function canEditStyles(target: EditTarget): boolean;
12
+ export declare function buildSelector(cid: string, src: string): string | null;
13
+ export declare function swapToken(target: EditTarget, property: string, newToken: TokenEntry, oldToken: TokenEntry | null, metadata?: StyleEditMetadata): ElementChangeRecord | null;
14
+ export interface TokenSwap {
15
+ property: string;
16
+ newToken: TokenEntry;
17
+ oldToken: TokenEntry | null;
18
+ metadata?: StyleEditMetadata;
19
+ }
20
+ /** Applies several token swaps as one history batch. */
21
+ export declare function swapTokens(target: EditTarget, changes: readonly TokenSwap[]): ElementChangeRecord[];
22
+ export interface StyleDeclaration {
23
+ property: string;
24
+ value: string;
25
+ metadata?: StyleEditMetadata;
26
+ }
27
+ export interface ElementStyleEdit {
28
+ element: HTMLElement;
29
+ declarations: readonly StyleDeclaration[];
30
+ }
31
+ export declare function setStyle(target: EditTarget, property: string, value: string, metadata?: StyleEditMetadata): ElementChangeRecord | null;
32
+ export declare function setStyles(target: EditTarget, declarations: readonly StyleDeclaration[], metadata?: StyleEditMetadata): ElementChangeRecord[];
33
+ /** Applies element-specific declarations as one history batch. */
34
+ export declare function setElementStyles(edits: readonly ElementStyleEdit[]): ElementChangeRecord[];
35
+ export declare function promoteToToken(el: EditTarget, property: string, newToken: TokenEntry, metadata?: StyleEditMetadata): ElementChangeRecord | null;
@@ -0,0 +1,164 @@
1
+ import { parseDataSrc } from "../selection/resolveSelection.js";
2
+ import { appendChanges, } from "../changes/changesLog.js";
3
+ import { canPlanBatchEditScopes, planBatchEditScopes, selectorForElement, sourceSiteSelector } from "../selection/editScope.js";
4
+ import { getActiveStyleState, selectorForInteractionState } from "../shell/styleState.js";
5
+ import { getStateStyleValue } from "../shell/stateValue.js";
6
+ import { boundRuntimeEvidence, isRuntimeCreatedElement, isRuntimeGeneratedSource, normalizeRuntimeTag, normalizeRuntimeText, } from "../runtime/staticHtmlRuntimeIdentity.js";
7
+ import { targetElements } from "../selection/editTarget.js";
8
+ import { changeKey } from "../changes/model.js";
9
+ function boundedRenderedText(el) {
10
+ return normalizeRuntimeText(el.textContent);
11
+ }
12
+ function sourceFields(el) {
13
+ const src = el.getAttribute("data-src") ?? "";
14
+ const parsed = parseDataSrc(src);
15
+ const evidence = (reason) => ({
16
+ reason,
17
+ tagName: normalizeRuntimeTag(el.tagName),
18
+ text: boundedRenderedText(el),
19
+ props: boundRuntimeEvidence(el.getAttribute("data-cprops")),
20
+ ariaLabel: boundRuntimeEvidence(el.getAttribute("aria-label")),
21
+ });
22
+ if (isRuntimeCreatedElement(el) || isRuntimeGeneratedSource(src)) {
23
+ return {
24
+ file: "",
25
+ line: 0,
26
+ column: 0,
27
+ runtimeEvidence: evidence("runtime-created"),
28
+ };
29
+ }
30
+ if (!parsed) {
31
+ // Authored markup whose source annotation is absent or unusable — for
32
+ // example Astro dev-annotation degraded mode. Prompts must say the
33
+ // location is unknown instead of rendering a fabricated `file:0`.
34
+ return {
35
+ file: "",
36
+ line: 0,
37
+ column: 0,
38
+ runtimeEvidence: evidence("unannotated"),
39
+ };
40
+ }
41
+ return {
42
+ file: parsed.file,
43
+ line: parsed.line,
44
+ column: parsed.column,
45
+ };
46
+ }
47
+ export { getPendingRules, getChangesList as getChangeRecords, clearWorkspace as resetPendingRules } from "../changes/changesLog.js";
48
+ /** Returns whether a style write can address every element in the target safely. */
49
+ export function canEditStyles(target) {
50
+ return canPlanBatchEditScopes(targetElements(target));
51
+ }
52
+ export function buildSelector(cid, src) {
53
+ return sourceSiteSelector(cid, src);
54
+ }
55
+ function stateFields(el) {
56
+ const state = getActiveStyleState();
57
+ const selector = selectorForElement(el);
58
+ return { state, selector: selector ? selectorForInteractionState(selector, state) : null };
59
+ }
60
+ export function swapToken(target, property, newToken, oldToken, metadata) {
61
+ return swapTokens(target, [{ property, newToken, oldToken, metadata }])[0] ?? null;
62
+ }
63
+ /** Applies several token swaps as one history batch. */
64
+ export function swapTokens(target, changes) {
65
+ const elements = targetElements(target);
66
+ const scopePlan = planBatchEditScopes(elements);
67
+ if (!scopePlan)
68
+ return [];
69
+ const records = [];
70
+ const verificationTargets = new Map();
71
+ for (const el of elements) {
72
+ for (const change of changes) {
73
+ const cid = el.getAttribute("data-cid") ?? "";
74
+ const { selector, state } = stateFields(el);
75
+ if (!selector)
76
+ continue;
77
+ const source = sourceFields(el);
78
+ const record = {
79
+ cid,
80
+ file: source.file,
81
+ line: source.line,
82
+ column: source.column,
83
+ selector,
84
+ property: change.property,
85
+ ...change.metadata,
86
+ oldToken: change.oldToken,
87
+ newToken: change.newToken,
88
+ source: { file: source.file, line: source.line, component: cid },
89
+ runtimeEvidence: source.runtimeEvidence,
90
+ state,
91
+ ...scopePlan.get(el),
92
+ };
93
+ records.push(record);
94
+ verificationTargets.set(changeKey(record), el);
95
+ }
96
+ }
97
+ appendChanges(records, { verificationTargets });
98
+ return records;
99
+ }
100
+ function commitElementStyles(edits) {
101
+ if (edits.every(({ declarations }) => declarations.length === 0))
102
+ return [];
103
+ const elements = [...new Set(edits.map(({ element }) => element))];
104
+ const scopePlan = planBatchEditScopes(elements);
105
+ if (!scopePlan)
106
+ return [];
107
+ const records = [];
108
+ for (const { element, declarations } of edits) {
109
+ for (const declaration of declarations) {
110
+ const record = buildStyleRecord(element, scopePlan, declaration);
111
+ if (record)
112
+ records.push({ record, element });
113
+ }
114
+ }
115
+ const verificationTargets = new Map();
116
+ for (const { record, element } of records)
117
+ verificationTargets.set(changeKey(record), element);
118
+ appendChanges(records.map(({ record }) => record), { verificationTargets });
119
+ return records.map(({ record }) => record);
120
+ }
121
+ export function setStyle(target, property, value, metadata) {
122
+ return setStyles(target, [{ property, value, metadata }])[0] ?? null;
123
+ }
124
+ export function setStyles(target, declarations, metadata) {
125
+ const normalizedDeclarations = declarations.map((declaration) => ({
126
+ ...declaration,
127
+ metadata: declaration.metadata ?? metadata,
128
+ }));
129
+ return commitElementStyles(targetElements(target).map((element) => ({
130
+ element,
131
+ declarations: normalizedDeclarations,
132
+ })));
133
+ }
134
+ /** Applies element-specific declarations as one history batch. */
135
+ export function setElementStyles(edits) {
136
+ return commitElementStyles(edits);
137
+ }
138
+ function buildStyleRecord(el, scopePlan, { property, value, metadata }) {
139
+ const cid = el.getAttribute("data-cid") ?? "";
140
+ const { selector, state } = stateFields(el);
141
+ if (!selector)
142
+ return null;
143
+ const source = sourceFields(el);
144
+ return {
145
+ cid,
146
+ file: source.file,
147
+ line: source.line,
148
+ column: source.column,
149
+ selector,
150
+ property,
151
+ ...metadata,
152
+ oldToken: null,
153
+ newToken: null,
154
+ rawValue: value,
155
+ oldRawValue: getStateStyleValue(el, property) || undefined,
156
+ source: { file: source.file, line: source.line, component: cid },
157
+ runtimeEvidence: source.runtimeEvidence,
158
+ state,
159
+ ...scopePlan.get(el),
160
+ };
161
+ }
162
+ export function promoteToToken(el, property, newToken, metadata) {
163
+ return swapToken(el, property, newToken, null, metadata);
164
+ }
@@ -0,0 +1,14 @@
1
+ export interface AuthorCascadePriority {
2
+ important?: boolean;
3
+ inline?: boolean;
4
+ layer?: string;
5
+ layerOrder?: number;
6
+ specificity: number;
7
+ sourceOrder: number;
8
+ }
9
+ /**
10
+ * Compares declarations from the author origin. Positive means `a` wins.
11
+ * Normal declarations prefer unlayered rules and later layers; important
12
+ * declarations reverse both relationships as required by the CSS cascade.
13
+ */
14
+ export declare function compareAuthorCascade(a: AuthorCascadePriority, b: AuthorCascadePriority): number;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Compares declarations from the author origin. Positive means `a` wins.
3
+ * Normal declarations prefer unlayered rules and later layers; important
4
+ * declarations reverse both relationships as required by the CSS cascade.
5
+ */
6
+ export function compareAuthorCascade(a, b) {
7
+ const aImportant = Boolean(a.important);
8
+ const bImportant = Boolean(b.important);
9
+ if (aImportant !== bImportant)
10
+ return aImportant ? 1 : -1;
11
+ const aInline = Boolean(a.inline);
12
+ const bInline = Boolean(b.inline);
13
+ if (aInline !== bInline)
14
+ return aInline ? 1 : -1;
15
+ const aLayered = a.layer !== undefined;
16
+ const bLayered = b.layer !== undefined;
17
+ if (aLayered !== bLayered) {
18
+ if (aImportant)
19
+ return aLayered ? 1 : -1;
20
+ return aLayered ? -1 : 1;
21
+ }
22
+ if (aLayered && bLayered && a.layer !== b.layer) {
23
+ const aOrder = a.layerOrder ?? a.sourceOrder;
24
+ const bOrder = b.layerOrder ?? b.sourceOrder;
25
+ if (aOrder !== bOrder)
26
+ return aImportant ? bOrder - aOrder : aOrder - bOrder;
27
+ }
28
+ if (a.specificity !== b.specificity)
29
+ return a.specificity - b.specificity;
30
+ return a.sourceOrder - b.sourceOrder;
31
+ }
@@ -0,0 +1,43 @@
1
+ import type { MatchedRule, StyleDeclaration } from "../../../css/model/index.js";
2
+ export interface DocumentRevisions {
3
+ element: number;
4
+ stylesheet: number;
5
+ }
6
+ /**
7
+ * Subscribes to cascade revisions for one document. This is the narrow
8
+ * document-scoped seam used by the browser inspection Module.
9
+ */
10
+ export declare function subscribeDocumentRevision(doc: Document, cb: (revisions: Readonly<DocumentRevisions>) => void): () => void;
11
+ /**
12
+ * Elements whose attribute changes can affect a cached cascade outcome. The
13
+ * observer only counts attribute mutations against registered elements so
14
+ * unrelated host churn (React commits, hover states, animations) cannot bump
15
+ * the element revision. Registration is idempotent.
16
+ */
17
+ export declare function registerResolutionElement(el: Element): void;
18
+ /** Releases the observer, listener, and cached state owned by one document. */
19
+ export declare function disposeDocumentResolution(doc: Document): void;
20
+ /** Keeps one document's CSSOM observer alive for a browser inspection owner. */
21
+ export declare function retainDocumentResolution(doc: Document): () => void;
22
+ export declare function documentRevisions(doc: Document): DocumentRevisions;
23
+ /** Invalidates CSSOM-derived snapshots after programmatic stylesheet edits. */
24
+ export declare function invalidateStyleResolutionCache(doc?: Document): void;
25
+ /**
26
+ * Reads the declarations the browser accepted for a style rule. This is the
27
+ * semantic source for authored values; it intentionally does not inspect the
28
+ * stylesheet element's original text. CSSOM may expose a shorthand as empty
29
+ * longhand entries through indexed enumeration, so prefer its serialized
30
+ * declaration block and use enumeration as a compatibility fallback.
31
+ */
32
+ export declare function declarationsFromCssom(style: CSSStyleDeclaration): StyleDeclaration[];
33
+ export declare function collectRules(doc: Document): {
34
+ revision: number;
35
+ rules: MatchedRule[];
36
+ layerOrder: Map<string, number>;
37
+ inaccessible: boolean;
38
+ } | {
39
+ rules: MatchedRule[];
40
+ layerOrder: ReadonlyMap<string, number>;
41
+ inaccessible: boolean;
42
+ };
43
+ export declare function cascadeLayerOrder(doc: Document, name: string): number | undefined;