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,153 @@
1
+ import { applyRules, verifyPreview } from "../projection/managedStylesheet.js";
2
+ import { projectInspectorValues } from "../spacing/projection.js";
3
+ import { createBrowserCssInspection } from "../inspection/browserCssInspection.js";
4
+ /**
5
+ * Mounts one data-led fixture and runs it through the same CSSOM resolver used
6
+ * by the inspector. The caller owns assertions; this module only owns setup,
7
+ * teardown, and the public inspection result.
8
+ */
9
+ export function runConformanceFixture(fixture, doc = document) {
10
+ const style = doc.createElement("style");
11
+ style.dataset.conformanceFixture = fixture.id;
12
+ style.textContent = fixture.css;
13
+ doc.head.appendChild(style);
14
+ const mount = doc.createElement("div");
15
+ mount.dataset.conformanceFixture = fixture.id;
16
+ mount.innerHTML = fixture.markup;
17
+ doc.body.appendChild(mount);
18
+ const selected = mount.querySelector(fixture.selected);
19
+ if (!selected)
20
+ throw new Error(`Conformance fixture ${fixture.id} selected no element: ${fixture.selected}`);
21
+ const inspection = createBrowserCssInspection({
22
+ document: doc,
23
+ tokenKnowledge: {
24
+ definitions: fixture.catalog,
25
+ entries: fixture.catalog.map((definition) => ({
26
+ name: definition.name,
27
+ cssName: definition.cssName,
28
+ value: definition.declarations[0]?.value ?? "",
29
+ source: definition.declarations[0]?.source ?? "",
30
+ adapter: definition.adapter,
31
+ origin: definition.origin,
32
+ editable: definition.editable,
33
+ })),
34
+ generation: fixture.id,
35
+ },
36
+ });
37
+ const rows = inspection.inspectTokens(doc.documentElement).inventory;
38
+ const properties = [...inspection.inspect(selected).properties];
39
+ const projection = projectInspectorValues(selected, properties);
40
+ let preview = null;
41
+ if (fixture.expected.preview) {
42
+ applyRules([{ selector: fixture.selected, declarations: { [fixture.expected.preview.property]: fixture.expected.preview.value } }]);
43
+ preview = verifyPreview(selected, fixture.expected.preview.property, fixture.expected.preview.value);
44
+ }
45
+ return {
46
+ fixture: fixture.id,
47
+ selected,
48
+ catalog: rows,
49
+ properties,
50
+ projection,
51
+ preview,
52
+ cleanup() {
53
+ inspection.dispose();
54
+ style.remove();
55
+ mount.remove();
56
+ if (doc.getElementById("nudge-ui-styles"))
57
+ doc.getElementById("nudge-ui-styles")?.remove();
58
+ },
59
+ };
60
+ }
61
+ export function assertConformanceFixture(result, fixture) {
62
+ const failures = [];
63
+ for (const expected of fixture.expected.catalog) {
64
+ const row = result.catalog.find((candidate) => candidate.definition.name === expected.name || candidate.definition.cssName === expected.name);
65
+ if (!row)
66
+ failures.push(`${fixture.id}: missing catalog entry ${expected.name}`);
67
+ if (row && expected.value !== undefined && row.authoredValue !== expected.value)
68
+ failures.push(`${fixture.id}: catalog ${expected.name} authored value was ${row.authoredValue}, expected ${expected.value}`);
69
+ if (row && expected.adapter !== undefined && row.definition.adapter !== expected.adapter)
70
+ failures.push(`${fixture.id}: catalog ${expected.name} adapter was ${row.definition.adapter}, expected ${expected.adapter}`);
71
+ if (row && expected.origin !== undefined && row.definition.origin !== expected.origin)
72
+ failures.push(`${fixture.id}: catalog ${expected.name} origin was ${row.definition.origin}, expected ${expected.origin}`);
73
+ }
74
+ for (const [property, expected] of Object.entries(fixture.expected.properties)) {
75
+ const actual = result.properties.find((candidate) => candidate.property === property);
76
+ if (!actual) {
77
+ failures.push(`${fixture.id}: missing property ${property}`);
78
+ continue;
79
+ }
80
+ if (actual.authored !== expected.authored)
81
+ failures.push(`${fixture.id}: ${property} authored value was ${actual.authored}, expected ${expected.authored}`);
82
+ const actualTokens = (actual.tokens ?? []).map((token) => token.name);
83
+ if (expected.tokens && JSON.stringify(actualTokens) !== JSON.stringify(expected.tokens))
84
+ failures.push(`${fixture.id}: ${property} tokens were ${actualTokens.join(", ")}, expected ${expected.tokens.join(", ")}`);
85
+ if (expected.opacity !== undefined && actual.opacity?.value !== expected.opacity)
86
+ failures.push(`${fixture.id}: ${property} opacity was ${actual.opacity?.value}, expected ${expected.opacity}`);
87
+ if (expected.opacityToken !== undefined && (actual.opacity?.tokenName ?? null) !== expected.opacityToken)
88
+ failures.push(`${fixture.id}: ${property} opacity token was ${actual.opacity?.tokenName ?? null}, expected ${expected.opacityToken}`);
89
+ if (expected.computed !== undefined && actual.computed !== expected.computed)
90
+ failures.push(`${fixture.id}: ${property} computed value was ${actual.computed}, expected ${expected.computed}`);
91
+ if (actual.capability !== expected.capability)
92
+ failures.push(`${fixture.id}: ${property} capability was ${actual.capability}, expected ${expected.capability}`);
93
+ if (expected.confidence && actual.confidence !== expected.confidence)
94
+ failures.push(`${fixture.id}: ${property} confidence was ${actual.confidence}, expected ${expected.confidence}`);
95
+ if (expected.structure) {
96
+ if (!actual.structure) {
97
+ failures.push(`${fixture.id}: ${property} was missing structured border values`);
98
+ }
99
+ else {
100
+ for (const [component, value] of Object.entries(expected.structure)) {
101
+ // SAFETY: Object.entries on a typed structure yields the known width/style/color component keys.
102
+ if (actual.structure[component] !== value) {
103
+ // SAFETY: Object.entries on a typed structure yields the known width/style/color component keys.
104
+ failures.push(`${fixture.id}: ${property} ${component} was ${actual.structure[component]}, expected ${value}`);
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
110
+ for (const [group, expectedGroup] of Object.entries(fixture.expected.projection?.spacing ?? {})) {
111
+ // SAFETY: Object.entries on the spacing projection group yields ProjectionGroup keys.
112
+ const actualGroup = result.projection.spacing[group];
113
+ if (!actualGroup) {
114
+ failures.push(`${fixture.id}: missing ${group} inspector projection`);
115
+ continue;
116
+ }
117
+ if (expectedGroup.linked !== undefined && actualGroup.linked !== expectedGroup.linked) {
118
+ failures.push(`${fixture.id}: ${group} linked state was ${actualGroup.linked}, expected ${expectedGroup.linked}`);
119
+ }
120
+ for (const [axis, expectedAxis] of Object.entries(expectedGroup.axes ?? {})) {
121
+ // SAFETY: Object.entries on axis data yields ProjectionAxis keys.
122
+ const actualAxis = actualGroup.axes[axis];
123
+ if (!actualAxis) {
124
+ failures.push(`${fixture.id}: missing ${group}-${axis} inspector axis`);
125
+ continue;
126
+ }
127
+ if (actualAxis.state !== expectedAxis.state) {
128
+ failures.push(`${fixture.id}: ${group}-${axis} state was ${actualAxis.state}, expected ${expectedAxis.state}`);
129
+ }
130
+ }
131
+ for (const [side, expectedField] of Object.entries(expectedGroup.fields)) {
132
+ // SAFETY: Object.entries on fields yields ProjectionSide keys.
133
+ const actualField = actualGroup.fields[side];
134
+ if (!actualField) {
135
+ failures.push(`${fixture.id}: missing ${group}-${side} inspector field`);
136
+ continue;
137
+ }
138
+ if (actualField.value !== expectedField.value)
139
+ failures.push(`${fixture.id}: ${group}-${side} value was ${actualField.value}, expected ${expectedField.value}`);
140
+ if (expectedField.authoredValue !== undefined && actualField.authoredValue !== expectedField.authoredValue)
141
+ failures.push(`${fixture.id}: ${group}-${side} authored value was ${actualField.authoredValue}, expected ${expectedField.authoredValue}`);
142
+ if (expectedField.tokenName !== undefined && actualField.tokenName !== expectedField.tokenName)
143
+ failures.push(`${fixture.id}: ${group}-${side} token was ${actualField.tokenName}, expected ${expectedField.tokenName}`);
144
+ if (expectedField.sourceProperty !== undefined && actualField.sourceProperty !== expectedField.sourceProperty)
145
+ failures.push(`${fixture.id}: ${group}-${side} source property was ${actualField.sourceProperty}, expected ${expectedField.sourceProperty}`);
146
+ }
147
+ }
148
+ if (fixture.expected.preview && !result.preview)
149
+ failures.push(`${fixture.id}: preview was not run`);
150
+ if (fixture.expected.preview?.computed !== undefined && result.preview?.computedValue !== fixture.expected.preview.computed)
151
+ failures.push(`${fixture.id}: preview computed value was ${result.preview?.computedValue}, expected ${fixture.expected.preview.computed}`);
152
+ return failures;
153
+ }
@@ -0,0 +1,2 @@
1
+ export { projectInspectorValues, projectionSides, } from "../spacing/projection.js";
2
+ export type { InspectorAxisProjection, InspectorFieldProjection, InspectorProjection, InspectorSpacingProjection, ProjectionAxis, ProjectionGroup, ProjectionSide, ProjectionState, } from "../spacing/projection.js";
@@ -0,0 +1,3 @@
1
+ // Compatibility re-export. Production callers use the spacing module directly;
2
+ // existing conformance consumers can keep their import while the seam moves.
3
+ export { projectInspectorValues, projectionSides, } from "../spacing/projection.js";
@@ -0,0 +1,6 @@
1
+ import type { ConformanceFixture } from "./fixture.js";
2
+ /**
3
+ * Shared spacing corpus. Unit tests run every case through the fixture runner;
4
+ * browser tests select representative cases where real CSSOM behaviour matters.
5
+ */
6
+ export declare const SPACING_CASES: ConformanceFixture[];
@@ -0,0 +1,417 @@
1
+ function token(cssName, value, source) {
2
+ return {
3
+ cssName,
4
+ name: cssName,
5
+ declarations: [{ value, source, important: false, context: { selector: ":root" } }],
6
+ };
7
+ }
8
+ const SPACE_4 = token("--space-4", "16px", "fixtures/spacing.css:2");
9
+ const SPACE_ALIAS = token("--space-alias", "var(--space-4)", "fixtures/spacing.css:3");
10
+ function boxProperties(values, capability = "box-sides") {
11
+ return Object.fromEntries(Object.entries(values).map(([property, authored]) => [property, { authored, capability }]));
12
+ }
13
+ /**
14
+ * Shared spacing corpus. Unit tests run every case through the fixture runner;
15
+ * browser tests select representative cases where real CSSOM behaviour matters.
16
+ */
17
+ export const SPACING_CASES = [
18
+ {
19
+ id: "spacing-physical-four-value",
20
+ css: ".subject { padding: 8px 16px 24px 32px; }",
21
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:1:1"></div>',
22
+ selected: ".subject",
23
+ catalog: [],
24
+ expected: {
25
+ catalog: [],
26
+ properties: {
27
+ "padding-top": { authored: "8px", capability: "box-sides" },
28
+ "padding-right": { authored: "16px", capability: "box-sides" },
29
+ "padding-bottom": { authored: "24px", capability: "box-sides" },
30
+ "padding-left": { authored: "32px", capability: "box-sides" },
31
+ },
32
+ projection: {
33
+ spacing: {
34
+ padding: {
35
+ linked: false,
36
+ axes: { horizontal: { state: "mixed" }, vertical: { state: "mixed" } },
37
+ fields: {},
38
+ },
39
+ },
40
+ },
41
+ },
42
+ },
43
+ {
44
+ id: "spacing-logical-token",
45
+ css: `:root { --space-4: 16px; }
46
+ .subject { padding-inline: var(--space-4); margin-block: 8px 0; }`,
47
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:2:1"></div>',
48
+ selected: ".subject",
49
+ catalog: [SPACE_4],
50
+ expected: {
51
+ catalog: [{ name: "--space-4", value: "16px" }],
52
+ properties: {
53
+ "padding-left": { authored: "var(--space-4)", tokens: ["--space-4"], capability: "box-sides" },
54
+ "padding-right": { authored: "var(--space-4)", tokens: ["--space-4"], capability: "box-sides" },
55
+ "margin-top": { authored: "8px", capability: "box-sides" },
56
+ "margin-bottom": { authored: "0", capability: "box-sides" },
57
+ },
58
+ projection: {
59
+ spacing: {
60
+ padding: {
61
+ linked: false,
62
+ axes: { horizontal: { state: "shared" } },
63
+ fields: {
64
+ left: { authoredValue: "var(--space-4)", tokenName: "--space-4", sourceProperty: "padding-inline", value: "16px" },
65
+ right: { authoredValue: "var(--space-4)", tokenName: "--space-4", sourceProperty: "padding-inline", value: "16px" },
66
+ },
67
+ },
68
+ },
69
+ },
70
+ },
71
+ },
72
+ {
73
+ id: "spacing-authored-mixed-computed-equal",
74
+ css: `:root { --space-4: 16px; }
75
+ .subject { padding: 16px 16px 16px var(--space-4); }`,
76
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:3:1"></div>',
77
+ selected: ".subject",
78
+ catalog: [SPACE_4],
79
+ expected: {
80
+ catalog: [{ name: "--space-4", value: "16px" }],
81
+ properties: {
82
+ "padding-top": { authored: "16px", tokens: [], capability: "box-sides" },
83
+ "padding-right": { authored: "16px", tokens: [], capability: "box-sides" },
84
+ "padding-left": { authored: "var(--space-4)", tokens: ["--space-4"], capability: "box-sides" },
85
+ },
86
+ projection: {
87
+ spacing: {
88
+ padding: {
89
+ linked: false,
90
+ axes: { horizontal: { state: "mixed" }, vertical: { state: "shared" } },
91
+ fields: {},
92
+ },
93
+ },
94
+ },
95
+ },
96
+ },
97
+ {
98
+ id: "spacing-alias-token",
99
+ css: `:root { --space-4: 16px; --space-alias: var(--space-4); }
100
+ .subject { margin: var(--space-alias); }`,
101
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:4:1"></div>',
102
+ selected: ".subject",
103
+ catalog: [SPACE_4, SPACE_ALIAS],
104
+ expected: {
105
+ catalog: [{ name: "--space-4", value: "16px" }, { name: "--space-alias", value: "var(--space-4)" }],
106
+ properties: {
107
+ "margin-top": { authored: "var(--space-alias)", tokens: ["--space-alias"], capability: "box-sides" },
108
+ "margin-left": { authored: "var(--space-alias)", tokens: ["--space-alias"], capability: "box-sides" },
109
+ },
110
+ projection: {
111
+ spacing: {
112
+ margin: {
113
+ linked: true,
114
+ axes: { horizontal: { state: "shared" }, vertical: { state: "shared" } },
115
+ fields: {},
116
+ },
117
+ },
118
+ },
119
+ },
120
+ },
121
+ {
122
+ id: "spacing-functional-raw",
123
+ css: ".subject { padding: clamp(8px, 2vw, 24px); }",
124
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:5:1"></div>',
125
+ selected: ".subject",
126
+ catalog: [],
127
+ expected: {
128
+ catalog: [],
129
+ properties: {
130
+ "padding-top": { authored: "clamp(8px, 2vw, 24px)", capability: "raw" },
131
+ },
132
+ },
133
+ },
134
+ {
135
+ id: "spacing-physical-one-value-literal",
136
+ css: ".subject { margin: 12px; }",
137
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:6:1"></div>',
138
+ selected: ".subject",
139
+ catalog: [],
140
+ expected: {
141
+ catalog: [],
142
+ properties: boxProperties({
143
+ "margin-top": "12px",
144
+ "margin-right": "12px",
145
+ "margin-bottom": "12px",
146
+ "margin-left": "12px",
147
+ }),
148
+ projection: {
149
+ spacing: { margin: { linked: true, axes: { horizontal: { state: "shared" }, vertical: { state: "shared" } }, fields: {} } },
150
+ },
151
+ },
152
+ },
153
+ {
154
+ id: "spacing-physical-two-value",
155
+ css: ".subject { padding: 8px 16px; }",
156
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:7:1"></div>',
157
+ selected: ".subject",
158
+ catalog: [],
159
+ expected: {
160
+ catalog: [],
161
+ properties: boxProperties({ "padding-top": "8px", "padding-right": "16px", "padding-bottom": "8px", "padding-left": "16px" }),
162
+ projection: {
163
+ spacing: { padding: { linked: false, axes: { horizontal: { state: "shared" }, vertical: { state: "shared" } }, fields: {} } },
164
+ },
165
+ },
166
+ },
167
+ {
168
+ id: "spacing-physical-three-value",
169
+ css: ".subject { margin: 4px 8px 12px; }",
170
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:8:1"></div>',
171
+ selected: ".subject",
172
+ catalog: [],
173
+ expected: {
174
+ catalog: [],
175
+ properties: boxProperties({ "margin-top": "4px", "margin-right": "8px", "margin-bottom": "12px", "margin-left": "8px" }),
176
+ projection: {
177
+ spacing: { margin: { linked: false, axes: { horizontal: { state: "shared" }, vertical: { state: "mixed" } }, fields: {} } },
178
+ },
179
+ },
180
+ },
181
+ {
182
+ id: "spacing-physical-longhands",
183
+ css: ".subject { padding-top: 2px; padding-right: 5px; padding-bottom: 7px; padding-left: 9px; }",
184
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:9:1"></div>',
185
+ selected: ".subject",
186
+ catalog: [],
187
+ expected: {
188
+ catalog: [],
189
+ properties: boxProperties({ "padding-top": "2px", "padding-right": "5px", "padding-bottom": "7px", "padding-left": "9px" }),
190
+ projection: {
191
+ spacing: { padding: { linked: false, axes: { horizontal: { state: "mixed" }, vertical: { state: "mixed" } }, fields: {} } },
192
+ },
193
+ },
194
+ },
195
+ {
196
+ id: "spacing-physical-shorthand-longhand-override",
197
+ css: ".subject { margin: 4px 8px; margin-left: 20px; }",
198
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:10:1"></div>',
199
+ selected: ".subject",
200
+ catalog: [],
201
+ expected: {
202
+ catalog: [],
203
+ properties: boxProperties({ "margin-top": "4px", "margin-right": "8px", "margin-bottom": "4px", "margin-left": "20px" }),
204
+ projection: {
205
+ spacing: { margin: { linked: false, axes: { horizontal: { state: "mixed" }, vertical: { state: "shared" } }, fields: {} } },
206
+ },
207
+ },
208
+ },
209
+ {
210
+ id: "spacing-physical-negative-margin",
211
+ css: ".subject { margin: -8px -4px 0; }",
212
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:11:1"></div>',
213
+ selected: ".subject",
214
+ catalog: [],
215
+ expected: {
216
+ catalog: [],
217
+ properties: boxProperties({ "margin-top": "-8px", "margin-right": "-4px", "margin-bottom": "0", "margin-left": "-4px" }),
218
+ projection: {
219
+ spacing: { margin: { linked: false, axes: { horizontal: { state: "shared" }, vertical: { state: "mixed" } }, fields: {} } },
220
+ },
221
+ },
222
+ },
223
+ {
224
+ id: "spacing-physical-varied-units",
225
+ css: ".subject { padding: 1rem 2em 3% 4vw; }",
226
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:12:1"></div>',
227
+ selected: ".subject",
228
+ catalog: [],
229
+ expected: {
230
+ catalog: [],
231
+ properties: boxProperties({ "padding-top": "1rem", "padding-right": "2em", "padding-bottom": "3%", "padding-left": "4vw" }),
232
+ projection: {
233
+ spacing: { padding: { linked: false, axes: { horizontal: { state: "mixed" }, vertical: { state: "mixed" } }, fields: {} } },
234
+ },
235
+ },
236
+ },
237
+ {
238
+ id: "spacing-logical-start-end-ltr",
239
+ css: ".subject { direction: ltr; padding-inline-start: 10px; padding-inline-end: 14px; margin-block-start: 4px; margin-block-end: 8px; }",
240
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:13:1"></div>',
241
+ selected: ".subject",
242
+ catalog: [],
243
+ expected: {
244
+ catalog: [],
245
+ properties: boxProperties({ "padding-left": "10px", "padding-right": "14px", "margin-top": "4px", "margin-bottom": "8px" }),
246
+ projection: {
247
+ spacing: {
248
+ padding: { linked: false, axes: { horizontal: { state: "mixed" } }, fields: {} },
249
+ margin: { linked: false, axes: { vertical: { state: "mixed" } }, fields: {} },
250
+ },
251
+ },
252
+ },
253
+ },
254
+ {
255
+ id: "spacing-logical-direction-ltr",
256
+ css: ".subject { direction: ltr; padding-inline: 6px 12px; }",
257
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:14:1"></div>',
258
+ selected: ".subject",
259
+ catalog: [],
260
+ expected: {
261
+ catalog: [],
262
+ properties: boxProperties({ "padding-left": "6px", "padding-right": "12px" }),
263
+ projection: {
264
+ spacing: { padding: { linked: false, axes: { horizontal: { state: "mixed" } }, fields: {} } },
265
+ },
266
+ },
267
+ },
268
+ {
269
+ id: "spacing-logical-direction-rtl",
270
+ css: ".subject { direction: rtl; padding-inline: 6px 12px; }",
271
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:15:1"></div>',
272
+ selected: ".subject",
273
+ catalog: [],
274
+ expected: {
275
+ catalog: [],
276
+ properties: boxProperties({ "padding-right": "6px", "padding-left": "12px" }),
277
+ projection: {
278
+ spacing: { padding: { linked: false, axes: { horizontal: { state: "mixed" } }, fields: {} } },
279
+ },
280
+ },
281
+ },
282
+ {
283
+ id: "spacing-logical-vertical-rl",
284
+ css: ".subject { writing-mode: vertical-rl; margin-block: 6px 10px; }",
285
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:16:1"></div>',
286
+ selected: ".subject",
287
+ catalog: [],
288
+ expected: {
289
+ catalog: [],
290
+ properties: boxProperties({ "margin-right": "6px", "margin-left": "10px" }),
291
+ projection: {
292
+ spacing: { margin: { linked: false, axes: { horizontal: { state: "mixed" } }, fields: {} } },
293
+ },
294
+ },
295
+ },
296
+ {
297
+ id: "spacing-logical-inline-block-shorthands",
298
+ css: ".subject { padding-block: 5px 9px; margin-inline: 2px; }",
299
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:17:1"></div>',
300
+ selected: ".subject",
301
+ catalog: [],
302
+ expected: {
303
+ catalog: [],
304
+ properties: boxProperties({ "padding-top": "5px", "padding-bottom": "9px", "margin-left": "2px", "margin-right": "2px" }),
305
+ projection: {
306
+ spacing: {
307
+ padding: { linked: false, axes: { vertical: { state: "mixed" } }, fields: {} },
308
+ margin: { linked: false, axes: { horizontal: { state: "shared" } }, fields: {} },
309
+ },
310
+ },
311
+ },
312
+ },
313
+ {
314
+ id: "spacing-logical-physical-override",
315
+ css: ".subject { direction: ltr; padding-inline: 12px; padding-left: 4px; }",
316
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:18:1"></div>',
317
+ selected: ".subject",
318
+ catalog: [],
319
+ expected: {
320
+ catalog: [],
321
+ properties: boxProperties({ "padding-left": "4px", "padding-right": "12px" }),
322
+ projection: {
323
+ spacing: { padding: { linked: false, axes: { horizontal: { state: "mixed" } }, fields: {} } },
324
+ },
325
+ },
326
+ },
327
+ {
328
+ id: "spacing-logical-reset-then-logical",
329
+ css: ".subject { padding: 0; padding-inline: 16px; }",
330
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:19:1"></div>',
331
+ selected: ".subject",
332
+ catalog: [],
333
+ expected: {
334
+ catalog: [],
335
+ properties: boxProperties({ "padding-top": "0", "padding-right": "16px", "padding-bottom": "0", "padding-left": "16px" }),
336
+ projection: {
337
+ spacing: { padding: { linked: false, axes: { horizontal: { state: "shared" }, vertical: { state: "shared" } }, fields: {} } },
338
+ },
339
+ },
340
+ },
341
+ {
342
+ id: "spacing-logical-start-end-rtl",
343
+ css: ".subject { direction: rtl; padding-inline-start: 10px; padding-inline-end: 14px; }",
344
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:20:1"></div>',
345
+ selected: ".subject",
346
+ catalog: [],
347
+ expected: {
348
+ catalog: [],
349
+ properties: boxProperties({ "padding-right": "10px", "padding-left": "14px" }),
350
+ projection: {
351
+ spacing: { padding: { linked: false, axes: { horizontal: { state: "mixed" } }, fields: {} } },
352
+ },
353
+ },
354
+ },
355
+ {
356
+ id: "spacing-token-fallback",
357
+ css: ":root { --space-4: 16px; }\n.subject { padding: var(--space-4, 20px); }",
358
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:21:1"></div>',
359
+ selected: ".subject",
360
+ catalog: [SPACE_4],
361
+ expected: {
362
+ catalog: [{ name: "--space-4", value: "16px" }],
363
+ properties: {
364
+ "padding-top": { authored: "var(--space-4, 20px)", tokens: ["--space-4"], capability: "box-sides" },
365
+ "padding-right": { authored: "var(--space-4, 20px)", tokens: ["--space-4"], capability: "box-sides" },
366
+ "padding-bottom": { authored: "var(--space-4, 20px)", tokens: ["--space-4"], capability: "box-sides" },
367
+ "padding-left": { authored: "var(--space-4, 20px)", tokens: ["--space-4"], capability: "box-sides" },
368
+ },
369
+ },
370
+ },
371
+ {
372
+ id: "spacing-token-calc",
373
+ css: ":root { --space-4: 16px; }\n.subject { padding: calc(var(--space-4) * 2); }",
374
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:22:1"></div>',
375
+ selected: ".subject",
376
+ catalog: [SPACE_4],
377
+ expected: {
378
+ catalog: [{ name: "--space-4", value: "16px" }],
379
+ properties: {
380
+ "padding-top": { authored: "calc(var(--space-4) * 2)", tokens: ["--space-4"], capability: "box-sides" },
381
+ "padding-right": { authored: "calc(var(--space-4) * 2)", tokens: ["--space-4"], capability: "box-sides" },
382
+ "padding-bottom": { authored: "calc(var(--space-4) * 2)", tokens: ["--space-4"], capability: "box-sides" },
383
+ "padding-left": { authored: "calc(var(--space-4) * 2)", tokens: ["--space-4"], capability: "box-sides" },
384
+ },
385
+ },
386
+ },
387
+ {
388
+ id: "spacing-auto-margin",
389
+ css: ".subject { margin: 0 auto; }",
390
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:23:1"></div>',
391
+ selected: ".subject",
392
+ catalog: [],
393
+ expected: {
394
+ catalog: [],
395
+ properties: boxProperties({ "margin-top": "0", "margin-right": "auto", "margin-bottom": "0", "margin-left": "auto" }),
396
+ projection: {
397
+ spacing: { margin: { linked: false, axes: { horizontal: { state: "shared" }, vertical: { state: "shared" } }, fields: {} } },
398
+ },
399
+ },
400
+ },
401
+ {
402
+ id: "spacing-unknown-value",
403
+ css: ".subject { padding: var(--missing-space); }",
404
+ markup: '<div class="subject" data-cid="SpacingCase" data-src="fixtures/spacing.tsx:24:1"></div>',
405
+ selected: ".subject",
406
+ catalog: [],
407
+ expected: {
408
+ catalog: [],
409
+ properties: boxProperties({
410
+ "padding-top": "var(--missing-space)",
411
+ "padding-right": "var(--missing-space)",
412
+ "padding-bottom": "var(--missing-space)",
413
+ "padding-left": "var(--missing-space)",
414
+ }),
415
+ },
416
+ },
417
+ ];
@@ -0,0 +1,7 @@
1
+ import type { ConformanceFixture } from "./fixture.js";
2
+ /**
3
+ * Framework-neutral typography corpus. The fixture runner asserts authored
4
+ * CSS and capability independently from browser-computed output; the gallery
5
+ * lets a human exercise the same cases through the real inspector.
6
+ */
7
+ export declare const TYPOGRAPHY_CASES: ConformanceFixture[];