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,97 @@
1
+ /**
2
+ * Token inventory contracts: artifact input, normalized styling contributions,
3
+ * diagnostics, and immutable snapshots.
4
+ *
5
+ * This Node/build-time seam is intentionally absent from the browser-safe
6
+ * `nudge-ui/css` export graph.
7
+ */
8
+ import type { TokenCatalogDiagnosticCode, TokenDefinition, TokenDeclaration, TokenEntry, TokenOrigin } from "../model/index.js";
9
+ export type ArtifactStage = "authored" | "transformed";
10
+ export type ArtifactProvenance = TokenOrigin;
11
+ /** One authored or transformed observation supplied by a build-tool Adapter. */
12
+ export interface StylesheetArtifact {
13
+ readonly buildTool: string;
14
+ readonly id: string;
15
+ readonly stage: ArtifactStage;
16
+ readonly provenance: ArtifactProvenance;
17
+ /** Authoritative stylesheet/import order, only when the Adapter can prove it. */
18
+ readonly order?: number;
19
+ /** Deterministic scan rank when browser/cascade order is not known. */
20
+ readonly discoveryOrder?: number;
21
+ readonly content?: string;
22
+ /** Generic styling-system label propagated onto reconciled non-package rows. */
23
+ readonly adapter?: string;
24
+ /** A recoverable transformed-observation failure; authored facts are retained. */
25
+ readonly failed?: boolean;
26
+ /** Adapter failures associated with this observation. */
27
+ readonly diagnostics?: readonly ArtifactDiagnosticInput[];
28
+ }
29
+ export interface ArtifactDiagnosticInput {
30
+ readonly code: TokenCatalogDiagnosticCode;
31
+ readonly message: string;
32
+ readonly module?: string;
33
+ readonly exportName?: string;
34
+ }
35
+ export interface InventoryDiagnostic {
36
+ readonly code: TokenCatalogDiagnosticCode;
37
+ readonly message: string;
38
+ readonly artifact?: string;
39
+ readonly module?: string;
40
+ readonly exportName?: string;
41
+ }
42
+ export type InventoryOrderEvidence = {
43
+ readonly kind: "stylesheet";
44
+ readonly index: number;
45
+ } | {
46
+ readonly kind: "discovery";
47
+ readonly index: number;
48
+ };
49
+ export type InventoryContribution = {
50
+ readonly kind: "stylesheet";
51
+ readonly buildTool: string;
52
+ readonly id: string;
53
+ readonly stage: ArtifactStage;
54
+ readonly provenance: ArtifactProvenance;
55
+ readonly editable: boolean;
56
+ readonly orderEvidence: InventoryOrderEvidence;
57
+ } | {
58
+ readonly kind: "adapter";
59
+ readonly id: string;
60
+ readonly provenance?: TokenOrigin;
61
+ readonly editable?: boolean;
62
+ readonly order: number;
63
+ };
64
+ export interface InventoryTokenDeclaration extends Omit<TokenDeclaration, "order"> {
65
+ readonly order: number;
66
+ readonly contribution: InventoryContribution;
67
+ }
68
+ export interface InventoryTokenDefinition extends Omit<TokenDefinition, "declarations"> {
69
+ readonly declarations: readonly InventoryTokenDeclaration[];
70
+ }
71
+ /** Declarative metadata rewrite for matching aggregated definitions. */
72
+ export interface TokenDefinitionRelabelling {
73
+ readonly adapter: string;
74
+ readonly fromOrigin: TokenOrigin;
75
+ readonly origin?: TokenOrigin;
76
+ readonly editable?: boolean;
77
+ }
78
+ /**
79
+ * A normalized styling contribution. Re-applying the same `id` replaces its
80
+ * prior facts; contribution order is explicit or deterministically id-based.
81
+ */
82
+ export interface TokenContribution {
83
+ readonly id: string;
84
+ readonly tokens?: readonly TokenEntry[];
85
+ /** Metadata/declaration enrichment for active definitions with matching cssName. */
86
+ readonly definitions?: readonly TokenDefinition[];
87
+ /** Deterministic metadata rewrites, matched by adapter and current origin. */
88
+ readonly relabellings?: readonly TokenDefinitionRelabelling[];
89
+ readonly diagnostics?: readonly InventoryDiagnostic[];
90
+ readonly order?: number;
91
+ }
92
+ export interface InventorySnapshot {
93
+ readonly generation: string;
94
+ readonly definitions: readonly InventoryTokenDefinition[];
95
+ readonly tokens: readonly TokenEntry[];
96
+ readonly diagnostics: readonly InventoryDiagnostic[];
97
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ import { type TokenInterpretationContext, type TokenValueInterpretation } from "./tokenInterpretation.js";
2
+ export declare const BORDER_STYLES: Set<string>;
3
+ export declare const BORDER_WIDTHS: Set<string>;
4
+ export declare const COLOR_KEYWORDS: Set<string>;
5
+ export declare const BORDER_CSS_WIDE: Set<string>;
6
+ /** CSS initial values for omitted `border` / `border-*` shorthand components. */
7
+ export declare const BORDER_INITIAL: {
8
+ readonly width: "medium";
9
+ readonly style: "none";
10
+ readonly color: "currentcolor";
11
+ };
12
+ /** Width/style/color components of a decomposable border value. */
13
+ export interface BorderComponents {
14
+ width: string;
15
+ style: string;
16
+ color: string;
17
+ widthResult: TokenValueInterpretation;
18
+ styleResult: TokenValueInterpretation;
19
+ colorResult: TokenValueInterpretation;
20
+ }
21
+ /**
22
+ * Conservative border-shorthand classification: splits the authored value
23
+ * into width/style/color components with CSS initial values for omitted parts,
24
+ * and interprets each distinct component once. Returns null when the value
25
+ * cannot be decomposed faithfully (ambiguous component order, image layers,
26
+ * non-token slash forms, css-wide keywords, or multi-value junk).
27
+ */
28
+ export declare function parseBorderComponents(value: string, tokenContext: TokenInterpretationContext): BorderComponents | null;
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Border shorthand structure (plan slice 3.5).
3
+ *
4
+ * One browser-safe Module owns the conservative `border` / `border-side`
5
+ * shorthand decomposition: width/style/color parts, CSS initial values for
6
+ * omitted components, css-wide-keyword rejection, and the explicit rejection
7
+ * of image layers, non-token slash forms, and ambiguous component counts.
8
+ *
9
+ * Browser-safe contract: this module imports only the shared model and the
10
+ * value-semantics token interpreter. It never touches the DOM or CSSOM.
11
+ */
12
+ import { splitTopLevelWhitespace } from "./cssSyntax.js";
13
+ import { interpretTokenValue, } from "./tokenInterpretation.js";
14
+ export const BORDER_STYLES = new Set(["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]);
15
+ export const BORDER_WIDTHS = new Set(["thin", "medium", "thick"]);
16
+ export const COLOR_KEYWORDS = new Set(["transparent", "currentcolor", "black", "silver", "gray", "white", "maroon", "red", "purple", "fuchsia", "green", "lime", "olive", "yellow", "navy", "blue", "teal", "aqua", "orange"]);
17
+ export const BORDER_CSS_WIDE = new Set(["inherit", "initial", "unset", "revert", "revert-layer"]);
18
+ /** CSS initial values for omitted `border` / `border-*` shorthand components. */
19
+ export const BORDER_INITIAL = { width: "medium", style: "none", color: "currentcolor" };
20
+ /**
21
+ * Conservative border-shorthand classification: splits the authored value
22
+ * into width/style/color components with CSS initial values for omitted parts,
23
+ * and interprets each distinct component once. Returns null when the value
24
+ * cannot be decomposed faithfully (ambiguous component order, image layers,
25
+ * non-token slash forms, css-wide keywords, or multi-value junk).
26
+ */
27
+ export function parseBorderComponents(value, tokenContext) {
28
+ const trimmed = value.trim();
29
+ if (!trimmed || BORDER_CSS_WIDE.has(trimmed.toLowerCase()))
30
+ return null;
31
+ const parts = splitTopLevelWhitespace(trimmed);
32
+ // One to three components in any order; more is multi-value / junk.
33
+ if (parts.length === 0 || parts.length > 3)
34
+ return null;
35
+ let width = "";
36
+ let style = "";
37
+ let color = "";
38
+ const interpretations = new Map();
39
+ const interpret = (component) => {
40
+ const cached = interpretations.get(component);
41
+ if (cached)
42
+ return cached;
43
+ const result = interpretTokenValue(component, tokenContext);
44
+ interpretations.set(component, result);
45
+ return result;
46
+ };
47
+ for (const part of parts) {
48
+ // Reject image layers and non-token slash forms (e.g. `red / 10%`).
49
+ if (/^(?:url|image|cross-fade|element|image-set|linear-gradient|radial-gradient|conic-gradient|repeating-linear-gradient|repeating-radial-gradient|repeating-conic-gradient)\(/i.test(part)) {
50
+ return null;
51
+ }
52
+ if (part.includes("/") && !/^var\(/i.test(part))
53
+ return null;
54
+ const isVariable = /^var\(\s*--[\w-]+(?:\s*,[\s\S]*)?\s*\)$/i.test(part);
55
+ const interpreted = isVariable ? interpret(part).resolvedValue.trim() : part;
56
+ // A custom property can substitute an entire shorthand. If its grammar is
57
+ // unresolved or expands to multiple components, assigning it to one slot
58
+ // would invent structure that the authored declaration does not prove.
59
+ if (isVariable && (/^var\(/i.test(interpreted) || splitTopLevelWhitespace(interpreted).length !== 1))
60
+ return null;
61
+ const candidate = interpreted.toLowerCase();
62
+ const isWidth = BORDER_WIDTHS.has(candidate)
63
+ || /^(?:0|[+-]?(?:\d*\.)?\d+(?:px|rem|em|%)?)$/i.test(interpreted);
64
+ const isStyle = BORDER_STYLES.has(candidate);
65
+ const isColor = COLOR_KEYWORDS.has(candidate)
66
+ || /^(?:#|rgb\(|rgba\(|hsl\(|hsla\(|hwb\(|lab\(|lch\(|oklab\(|oklch\(|color\(|color-mix\()/i.test(interpreted);
67
+ if (!width && isWidth)
68
+ width = part;
69
+ else if (!style && isStyle)
70
+ style = part;
71
+ else if (!color && isColor)
72
+ color = part;
73
+ else
74
+ return null;
75
+ }
76
+ // Omitted components take the CSS initial for that longhand (not inherited).
77
+ if (!width)
78
+ width = BORDER_INITIAL.width;
79
+ if (!style)
80
+ style = BORDER_INITIAL.style;
81
+ if (!color)
82
+ color = BORDER_INITIAL.color;
83
+ return {
84
+ width,
85
+ style,
86
+ color,
87
+ widthResult: interpret(width),
88
+ styleResult: interpret(style),
89
+ colorResult: interpret(color),
90
+ };
91
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Box and spacing value semantics (plan slice 3.5).
3
+ *
4
+ * One browser-safe Module owns physical and logical box-value expansion:
5
+ * 1–4 value shorthand expansion for `margin`/`padding`/`inset`, two-value
6
+ * expansion for `gap`, border-radius corner names, and the logical→physical
7
+ * side mapping. The logical mapping is a pure function over an explicit
8
+ * `Directionality` fact supplied by the integration (browser CSS inspection
9
+ * reads direction/writing-mode from the selected element); this module never
10
+ * touches the DOM or CSSOM.
11
+ */
12
+ import type { StringArrayMap } from "./stringMaps.js";
13
+ export declare const SPACING_SIDES: StringArrayMap;
14
+ /** CSS `gap` shorthand order: row gap, then column gap. */
15
+ export declare const GAP_AXES: StringArrayMap;
16
+ export declare const BORDER_RADIUS_CORNERS: StringArrayMap;
17
+ /**
18
+ * Explicit, DOM-free writing facts for logical→physical side mapping. The
19
+ * integration reads `direction` and `writing-mode` from the selected element's
20
+ * computed style and passes them here; the neutral Module applies them.
21
+ */
22
+ export interface Directionality {
23
+ /** CSS `direction` value, e.g. `"ltr"` or `"rtl"`. */
24
+ direction: string;
25
+ /** CSS `writing-mode` value, e.g. `"horizontal-tb"` or `"vertical-rl"`. */
26
+ writingMode: string;
27
+ }
28
+ export declare function expandFourValueShorthand<T>(values: readonly T[]): [T, T, T, T] | null;
29
+ export declare function expandTwoValueShorthand<T>(values: readonly T[]): [T, T] | null;
30
+ /**
31
+ * Maps a logical `margin`/`padding`/`inset` property (inline/block forms,
32
+ * with optional start/end edges) to the physical sides it paints, using the
33
+ * element's writing-mode/direction facts. Returns null for non-logical
34
+ * properties. Without directionality the mapping assumes `ltr` /
35
+ * `horizontal-tb`, matching the resolver's element-less behaviour.
36
+ */
37
+ export declare function logicalPhysicalSides(property: string, directionality?: Directionality): string[] | null;
@@ -0,0 +1,71 @@
1
+ export const SPACING_SIDES = {
2
+ margin: ["margin-top", "margin-right", "margin-bottom", "margin-left"],
3
+ padding: ["padding-top", "padding-right", "padding-bottom", "padding-left"],
4
+ inset: ["top", "right", "bottom", "left"],
5
+ };
6
+ /** CSS `gap` shorthand order: row gap, then column gap. */
7
+ export const GAP_AXES = {
8
+ gap: ["row-gap", "column-gap"],
9
+ };
10
+ export const BORDER_RADIUS_CORNERS = {
11
+ "border-radius": [
12
+ "border-top-left-radius",
13
+ "border-top-right-radius",
14
+ "border-bottom-right-radius",
15
+ "border-bottom-left-radius",
16
+ ],
17
+ };
18
+ export function expandFourValueShorthand(values) {
19
+ if (values.length === 0 || values.length > 4)
20
+ return null;
21
+ const top = values[0];
22
+ const right = values[1] ?? top;
23
+ const bottom = values[2] ?? top;
24
+ const left = values[3] ?? right;
25
+ if (values.length === 3)
26
+ return [top, right, bottom, right];
27
+ if (values.length === 2)
28
+ return [top, right, top, right];
29
+ return [top, right, bottom, left];
30
+ }
31
+ export function expandTwoValueShorthand(values) {
32
+ if (values.length === 0 || values.length > 2)
33
+ return null;
34
+ return values.length === 1 ? [values[0], values[0]] : [values[0], values[1]];
35
+ }
36
+ /**
37
+ * Maps a logical `margin`/`padding`/`inset` property (inline/block forms,
38
+ * with optional start/end edges) to the physical sides it paints, using the
39
+ * element's writing-mode/direction facts. Returns null for non-logical
40
+ * properties. Without directionality the mapping assumes `ltr` /
41
+ * `horizontal-tb`, matching the resolver's element-less behaviour.
42
+ */
43
+ export function logicalPhysicalSides(property, directionality) {
44
+ const match = /^(margin|padding|inset)-(inline|block)(?:-(start|end))?$/.exec(property.toLowerCase());
45
+ if (!match)
46
+ return null;
47
+ const [family, axis, edge] = [match[1], match[2], match[3]];
48
+ const physicalPrefix = family === "inset" ? "" : `${family}-`;
49
+ const direction = directionality?.direction || "ltr";
50
+ const writingMode = directionality?.writingMode || "horizontal-tb";
51
+ const vertical = writingMode.startsWith("vertical") || writingMode.startsWith("sideways");
52
+ let sides;
53
+ if (!vertical) {
54
+ sides = axis === "inline"
55
+ ? direction === "rtl" ? [`${physicalPrefix}right`, `${physicalPrefix}left`] : [`${physicalPrefix}left`, `${physicalPrefix}right`]
56
+ : [`${physicalPrefix}top`, `${physicalPrefix}bottom`];
57
+ }
58
+ else if (axis === "block") {
59
+ sides = writingMode.includes("-rl")
60
+ ? [`${physicalPrefix}right`, `${physicalPrefix}left`]
61
+ : [`${physicalPrefix}left`, `${physicalPrefix}right`];
62
+ }
63
+ else {
64
+ const ltrStartsAtBottom = writingMode === "sideways-lr";
65
+ const startsAtBottom = direction === "rtl" ? !ltrStartsAtBottom : ltrStartsAtBottom;
66
+ sides = startsAtBottom
67
+ ? [`${physicalPrefix}bottom`, `${physicalPrefix}top`]
68
+ : [`${physicalPrefix}top`, `${physicalPrefix}bottom`];
69
+ }
70
+ return edge ? [edge === "start" ? sides[0] : sides[1]] : sides;
71
+ }
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Color value semantics (plan slice 3.4).
3
+ *
4
+ * One browser-safe Module owns color format recognition, embedded-alpha
5
+ * detection, opacity modifier interpretation, `color-mix()` handling, color
6
+ * token replacement, and meaning-preserving opacity edits. Interpretation
7
+ * takes explicit token knowledge (a token table, local aliases, and an
8
+ * optional token-reference resolver) and never touches the DOM or CSSOM.
9
+ *
10
+ * Interface invariants:
11
+ * - interpretation never throws on arbitrary input;
12
+ * - edits either preserve the authored meaning or return an explicit
13
+ * `ok: false` result — never a plausible but lossy string;
14
+ * - token-plus-alpha and opacity-token distinctions survive swaps;
15
+ * - framework-specific attribution (Tailwind v3 direct literals and `--tw-*`
16
+ * aliases) stays behind the injected `resolveTokenReference` context.
17
+ */
18
+ import type { ColorOpacity, ColorValueFacts, TokenEntry, TokenReference, TokenTable } from "../model/index.js";
19
+ /** The resolved facts about one token-backed component of a color expression. */
20
+ export interface ColorComponentResolution {
21
+ tokenName: string | null;
22
+ resolvedValue: string;
23
+ tokens: TokenReference[];
24
+ }
25
+ /** Explicit, DOM-free facts the color interpretation needs. */
26
+ export interface ColorSemanticsContext {
27
+ /** Resolved token table (custom-property name → entry). */
28
+ tokenTable: TokenTable;
29
+ /** Local aliases collected from the selected element's cascade. */
30
+ localAliases?: ReadonlyMap<string, string>;
31
+ /**
32
+ * Resolves a `var()` component (for example an opacity token) to its
33
+ * concrete value and attribution. Supplied by the token interpretation so
34
+ * alias and framework attribution stay in one place. Absent → token-backed
35
+ * components fall back to local aliases, fallbacks, or the raw text.
36
+ */
37
+ resolveTokenReference?: (value: string) => ColorComponentResolution | null;
38
+ }
39
+ /**
40
+ * A meaning-preserving color edit. `ok: true` carries the rewritten value;
41
+ * `ok: false` reports explicitly that the transformation cannot be
42
+ * represented faithfully. Callers must treat `ok: false` as "no change".
43
+ */
44
+ export type ColorEditResult = {
45
+ ok: true;
46
+ value: string;
47
+ } | {
48
+ ok: false;
49
+ reason: "unsupported" | "invalid-opacity";
50
+ };
51
+ /** One high-level color interpretation consumed by token interpretation and UI projection. */
52
+ export interface ColorValueInterpretation {
53
+ opacity?: ColorOpacity;
54
+ facts: ColorValueFacts;
55
+ }
56
+ /**
57
+ * Normalizes an authored opacity to a clamped percent string. Accepts `%`
58
+ * and `0..1` forms; returns null when the input is not a parseable opacity.
59
+ */
60
+ export declare function normalizeOpacityPercent(value: string): string | null;
61
+ /**
62
+ * Interprets the alpha component of one authored color value. Returns a
63
+ * `ColorOpacity` when the value carries a recognized alpha channel (hex,
64
+ * rgb/hsl, or color-mix against transparent), and undefined otherwise.
65
+ */
66
+ export declare function interpretColorOpacity(value: string, ctx: ColorSemanticsContext): ColorOpacity | undefined;
67
+ /** Returns whether a color value carries its own alpha channel. */
68
+ export declare function colorValueHasEmbeddedAlpha(value: string): boolean;
69
+ /** Interprets UI-relevant color shape through the value-semantics seam. */
70
+ export declare function interpretColorValue(value: string, ctx: ColorSemanticsContext): ColorValueInterpretation;
71
+ /**
72
+ * Rewrites the alpha of a supported color expression to a normalized opacity
73
+ * percent. Hex alpha channels are rewritten digit-for-digit, rgb/hsl slash or
74
+ * comma alpha is replaced, `color-mix(... transparent)` reconciles its
75
+ * percentage (or its 100−p mirror), and a bare `var()` wraps into
76
+ * `color-mix(in srgb, var(...) <pct>, transparent)` — unwrapping back to the
77
+ * plain `var()` when the opacity reaches 100%. Unsupported value shapes and
78
+ * unparseable opacities return an explicit `ok: false`.
79
+ */
80
+ export declare function applyColorOpacity(value: string, opacity: string): ColorEditResult;
81
+ /**
82
+ * Replaces only the color token in a separable color expression. Keeping this
83
+ * separate from a plain token swap preserves authored alpha modifiers, for
84
+ * example Tailwind's `color-mix(... var(--color-red-500) 10%, transparent)`
85
+ * keeps its `10%` when the color token changes.
86
+ */
87
+ export declare function applyColorTokenReplacement(value: string, oldToken: TokenEntry, newToken: TokenEntry): ColorEditResult;
88
+ export type ValueEditRequest = {
89
+ kind: "color-opacity";
90
+ authored: string;
91
+ opacity: string;
92
+ } | {
93
+ kind: "color-token";
94
+ authored: string;
95
+ currentToken: TokenEntry;
96
+ nextToken: TokenEntry;
97
+ };
98
+ /** The public meaning-preserving edit operation for supported value edits. */
99
+ export declare function applyValueEdit(request: ValueEditRequest): ColorEditResult;