nudge-ui 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/dist/cli/agentCommand.d.ts +0 -1
  2. package/dist/cli/agentCommand.js +0 -1
  3. package/dist/client.mjs +238 -122
  4. package/dist/compiler/ast.d.ts +0 -6
  5. package/dist/compiler/ast.js +0 -5
  6. package/dist/compiler/componentContractTypes.d.ts +11 -5
  7. package/dist/compiler/componentContracts.js +3 -9
  8. package/dist/compiler/componentInstrumentation.d.ts +2 -13
  9. package/dist/compiler/componentInstrumentation.js +3 -12
  10. package/dist/compiler/componentPolicyResolution.d.ts +3 -22
  11. package/dist/compiler/componentPolicyResolution.js +6 -38
  12. package/dist/compiler/identityAttributes.d.ts +2 -0
  13. package/dist/compiler/identityAttributes.js +2 -0
  14. package/dist/compiler/index.d.ts +0 -1
  15. package/dist/compiler/index.js +0 -1
  16. package/dist/compiler/packageComponentContracts.d.ts +10 -19
  17. package/dist/compiler/packageComponentContracts.js +60 -43
  18. package/dist/compiler/reactComponentProtocols.d.ts +0 -7
  19. package/dist/compiler/reactComponentProtocols.js +0 -7
  20. package/dist/compiler/reactIdentity.d.ts +2 -2
  21. package/dist/compiler/reactIdentity.js +41 -43
  22. package/dist/compiler/sourcePaths.d.ts +4 -8
  23. package/dist/compiler/sourcePaths.js +6 -8
  24. package/dist/css/dialects/index.d.ts +2 -21
  25. package/dist/css/dialects/index.js +2 -9
  26. package/dist/css/dialects/tailwind.d.ts +2 -16
  27. package/dist/css/dialects/tailwind.js +2 -25
  28. package/dist/css/dialects/vanillaExtract.d.ts +1 -9
  29. package/dist/css/dialects/vanillaExtract.js +0 -1
  30. package/dist/css/index.d.ts +0 -8
  31. package/dist/css/index.js +0 -8
  32. package/dist/css/model/index.d.ts +6 -38
  33. package/dist/css/model/index.js +0 -9
  34. package/dist/css/token-inventory/index.d.ts +0 -23
  35. package/dist/css/token-inventory/index.js +0 -23
  36. package/dist/css/token-inventory/inventory.js +4 -16
  37. package/dist/css/token-inventory/parseStylesheet.d.ts +1 -9
  38. package/dist/css/token-inventory/parseStylesheet.js +5 -42
  39. package/dist/css/token-inventory/policy.d.ts +2 -39
  40. package/dist/css/token-inventory/policy.js +2 -39
  41. package/dist/css/token-inventory/types.d.ts +2 -15
  42. package/dist/css/value-semantics/borderSemantics.d.ts +1 -8
  43. package/dist/css/value-semantics/borderSemantics.js +5 -23
  44. package/dist/css/value-semantics/boxSemantics.d.ts +2 -25
  45. package/dist/css/value-semantics/boxSemantics.js +1 -7
  46. package/dist/css/value-semantics/colorSemantics.d.ts +6 -60
  47. package/dist/css/value-semantics/colorSemantics.js +9 -40
  48. package/dist/css/value-semantics/cssSyntax.d.ts +10 -10
  49. package/dist/css/value-semantics/cssSyntax.js +39 -11
  50. package/dist/css/value-semantics/fontSemantics.d.ts +3 -19
  51. package/dist/css/value-semantics/fontSemantics.js +7 -25
  52. package/dist/css/value-semantics/index.d.ts +1 -12
  53. package/dist/css/value-semantics/index.js +1 -12
  54. package/dist/css/value-semantics/propertyPolicy.d.ts +6 -53
  55. package/dist/css/value-semantics/propertyPolicy.js +47 -59
  56. package/dist/css/value-semantics/stringMaps.d.ts +0 -1
  57. package/dist/css/value-semantics/structuredValues.d.ts +3 -37
  58. package/dist/css/value-semantics/structuredValues.js +6 -17
  59. package/dist/css/value-semantics/tokenInterpretation.d.ts +8 -50
  60. package/dist/css/value-semantics/tokenInterpretation.js +7 -21
  61. package/dist/hosts/astro/astroRuntimeConfig.d.ts +0 -1
  62. package/dist/hosts/astro/astroRuntimeConfig.js +0 -1
  63. package/dist/hosts/astro/clientAsset.d.ts +1 -5
  64. package/dist/hosts/astro/clientAsset.js +1 -5
  65. package/dist/hosts/astro/clientTransport.d.ts +0 -1
  66. package/dist/hosts/astro/clientTransport.js +4 -9
  67. package/dist/hosts/astro/integration.d.ts +2 -28
  68. package/dist/hosts/astro/integration.js +7 -36
  69. package/dist/hosts/astro/markdownIdentity.d.ts +0 -3
  70. package/dist/hosts/astro/markdownIdentity.js +0 -3
  71. package/dist/hosts/astro/middleware.d.ts +1 -12
  72. package/dist/hosts/astro/middleware.js +1 -12
  73. package/dist/hosts/astro/projectContext.d.ts +1 -9
  74. package/dist/hosts/astro/projectContext.js +2 -11
  75. package/dist/hosts/astro/responseInstrumentation.d.ts +4 -33
  76. package/dist/hosts/astro/responseInstrumentation.js +5 -34
  77. package/dist/hosts/environment.d.ts +0 -8
  78. package/dist/hosts/environment.js +0 -1
  79. package/dist/hosts/next/index.js +1 -3
  80. package/dist/hosts/next/loader.d.ts +5 -44
  81. package/dist/hosts/next/loader.js +22 -103
  82. package/dist/hosts/next/loaders/identity-loader.cjs +111 -65
  83. package/dist/hosts/next/loaders/loader-plugin.cjs +111 -65
  84. package/dist/hosts/next/manifest.d.ts +2 -16
  85. package/dist/hosts/next/manifest.js +18 -20
  86. package/dist/hosts/next/mount.d.ts +1 -11
  87. package/dist/hosts/next/mount.js +1 -11
  88. package/dist/hosts/next/repositoryScope.d.ts +2 -17
  89. package/dist/hosts/next/repositoryScope.js +2 -17
  90. package/dist/hosts/next/sidecar.d.ts +0 -13
  91. package/dist/hosts/next/sidecar.js +25 -110
  92. package/dist/hosts/next/wrapper.d.ts +0 -31
  93. package/dist/hosts/next/wrapper.js +13 -64
  94. package/dist/hosts/projectBridge.d.ts +0 -2
  95. package/dist/hosts/projectBridge.js +0 -2
  96. package/dist/hosts/reactRendererCapture.d.ts +2 -0
  97. package/dist/hosts/reactRendererCapture.js +12 -0
  98. package/dist/hosts/static/cli.d.ts +0 -4
  99. package/dist/hosts/static/cli.js +0 -3
  100. package/dist/hosts/static/html/bootstrap.d.ts +1 -18
  101. package/dist/hosts/static/html/bootstrap.js +2 -14
  102. package/dist/hosts/static/manifest.d.ts +2 -15
  103. package/dist/hosts/static/manifest.js +5 -18
  104. package/dist/hosts/static/server.d.ts +4 -38
  105. package/dist/hosts/static/server.js +17 -67
  106. package/dist/hosts/vite/index.d.ts +0 -10
  107. package/dist/hosts/vite/index.js +0 -10
  108. package/dist/hosts/vite/react.d.ts +4 -17
  109. package/dist/hosts/vite/react.js +18 -35
  110. package/dist/hosts/vite/tokens/activeStylesheets.d.ts +1 -10
  111. package/dist/hosts/vite/tokens/activeStylesheets.js +3 -8
  112. package/dist/hosts/vite/tokens/fileMap.d.ts +0 -1
  113. package/dist/hosts/vite/tokens/viteStylesheetArtifacts.d.ts +2 -15
  114. package/dist/hosts/vite/tokens/viteStylesheetArtifacts.js +3 -10
  115. package/dist/hosts/vite/vite.d.ts +5 -26
  116. package/dist/hosts/vite/vite.js +44 -80
  117. package/dist/html/dom.d.ts +0 -1
  118. package/dist/html/dom.js +0 -1
  119. package/dist/html/identity.d.ts +1 -15
  120. package/dist/html/identity.js +1 -8
  121. package/dist/html/insertions.d.ts +2 -8
  122. package/dist/html/insertions.js +1 -1
  123. package/dist/inspector/agent/McpConnectionDialog.d.ts +1 -6
  124. package/dist/inspector/agent/McpConnectionDialog.js +1 -6
  125. package/dist/inspector/agent/activity.d.ts +1 -1
  126. package/dist/inspector/agent/activity.js +1 -1
  127. package/dist/inspector/agent/client.d.ts +2 -26
  128. package/dist/inspector/agent/client.js +17 -64
  129. package/dist/inspector/agent/connectionStatus.d.ts +0 -1
  130. package/dist/inspector/agent/connectionStatus.js +0 -1
  131. package/dist/inspector/agent/httpTransport.d.ts +0 -8
  132. package/dist/inspector/agent/httpTransport.js +21 -39
  133. package/dist/inspector/agent/protocol.d.ts +1 -10
  134. package/dist/inspector/agent/protocol.js +1 -9
  135. package/dist/inspector/agent/verification.d.ts +2 -19
  136. package/dist/inspector/agent/verification.js +7 -43
  137. package/dist/inspector/boot.d.ts +3 -1
  138. package/dist/inspector/boot.js +12 -20
  139. package/dist/inspector/canvas/AgentActivityOverlay.d.ts +1 -1
  140. package/dist/inspector/canvas/AgentActivityOverlay.js +1 -1
  141. package/dist/inspector/canvas/CanvasCard.js +7 -14
  142. package/dist/inspector/canvas/CanvasElementOverlay.js +117 -50
  143. package/dist/inspector/canvas/CanvasWorkspace.js +15 -29
  144. package/dist/inspector/canvas/PageCard.d.ts +0 -1
  145. package/dist/inspector/canvas/PageCard.js +0 -1
  146. package/dist/inspector/canvas/SketchToolOptions.d.ts +0 -1
  147. package/dist/inspector/canvas/SketchToolOptions.js +0 -6
  148. package/dist/inspector/canvas/ToolOptionsDrawer.d.ts +1 -6
  149. package/dist/inspector/canvas/ToolOptionsDrawer.js +2 -8
  150. package/dist/inspector/canvas/activeCanvasDocument.d.ts +0 -2
  151. package/dist/inspector/canvas/activeCanvasDocument.js +0 -2
  152. package/dist/inspector/canvas/agentPresentation.d.ts +2 -13
  153. package/dist/inspector/canvas/agentPresentation.js +3 -14
  154. package/dist/inspector/canvas/canvasFrame.d.ts +2 -6
  155. package/dist/inspector/canvas/canvasFrame.js +1 -2
  156. package/dist/inspector/canvas/canvasResize.d.ts +1 -6
  157. package/dist/inspector/canvas/canvasResize.js +1 -6
  158. package/dist/inspector/canvas/canvasStore.d.ts +4 -12
  159. package/dist/inspector/canvas/canvasStore.js +12 -26
  160. package/dist/inspector/canvas/frameConnection.d.ts +1 -7
  161. package/dist/inspector/canvas/frameContent.d.ts +0 -1
  162. package/dist/inspector/canvas/frameLifecycle.d.ts +12 -0
  163. package/dist/inspector/canvas/frameLifecycle.js +11 -0
  164. package/dist/inspector/canvas/frameProtocol.d.ts +5 -40
  165. package/dist/inspector/canvas/frameProtocol.js +1 -24
  166. package/dist/inspector/canvas/frameScrollbarStyles.d.ts +0 -1
  167. package/dist/inspector/canvas/frameScrollbarStyles.js +0 -1
  168. package/dist/inspector/canvas/layout.d.ts +10 -22
  169. package/dist/inspector/canvas/layout.js +0 -3
  170. package/dist/inspector/canvas/normalizeUrl.js +1 -8
  171. package/dist/inspector/canvas/pageSurface.d.ts +1 -6
  172. package/dist/inspector/canvas/pageSurface.js +1 -6
  173. package/dist/inspector/canvas/projection.d.ts +4 -25
  174. package/dist/inspector/canvas/projection.js +22 -72
  175. package/dist/inspector/canvas/rendererBootstrap.d.ts +8 -1
  176. package/dist/inspector/canvas/rendererBootstrap.js +6 -14
  177. package/dist/inspector/canvas/rendererCidIndex.d.ts +0 -5
  178. package/dist/inspector/canvas/rendererCidIndex.js +0 -5
  179. package/dist/inspector/canvas/rendererElementSelector.js +29 -27
  180. package/dist/inspector/canvas/rendererMessageRouter.d.ts +0 -1
  181. package/dist/inspector/canvas/rendererMessageRouter.js +0 -1
  182. package/dist/inspector/canvas/rendererSelectionProxy.d.ts +1 -5
  183. package/dist/inspector/canvas/rendererSelectionProxy.js +2 -7
  184. package/dist/inspector/canvas/rendererStylesheet.d.ts +0 -1
  185. package/dist/inspector/canvas/rendererStylesheet.js +9 -2
  186. package/dist/inspector/canvas/resizeHandleScale.d.ts +1 -10
  187. package/dist/inspector/canvas/resizeHandleScale.js +1 -10
  188. package/dist/inspector/canvas/sessionStore.d.ts +1 -7
  189. package/dist/inspector/canvas/sessionStore.js +21 -34
  190. package/dist/inspector/canvas/staleChangeDetector.js +1 -4
  191. package/dist/inspector/canvas/toolbarScale.d.ts +1 -4
  192. package/dist/inspector/canvas/toolbarScale.js +1 -4
  193. package/dist/inspector/canvas/useCanvasLayoutAnimation.d.ts +0 -1
  194. package/dist/inspector/canvas/useCanvasLayoutAnimation.js +0 -1
  195. package/dist/inspector/canvas/viewStore.js +1 -1
  196. package/dist/inspector/canvas/wheelPan.d.ts +1 -1
  197. package/dist/inspector/canvas/wheelPan.js +1 -1
  198. package/dist/inspector/canvas/workspaceLease.d.ts +1 -5
  199. package/dist/inspector/canvas/workspaceLease.js +1 -7
  200. package/dist/inspector/changes/codecs.js +2 -1
  201. package/dist/inspector/changes/draftPreview.d.ts +1 -6
  202. package/dist/inspector/changes/draftPreview.js +15 -30
  203. package/dist/inspector/changes/editModel.d.ts +3 -13
  204. package/dist/inspector/changes/editModel.js +1 -2
  205. package/dist/inspector/changes/managedStyleProjection.js +4 -14
  206. package/dist/inspector/changes/model.d.ts +0 -5
  207. package/dist/inspector/changes/model.js +1 -8
  208. package/dist/inspector/changes/previewDiagnostics.d.ts +2 -12
  209. package/dist/inspector/changes/previewDiagnostics.js +4 -20
  210. package/dist/inspector/changes/previewVerification.d.ts +25 -0
  211. package/dist/inspector/changes/previewVerification.js +34 -0
  212. package/dist/inspector/changes/structuralTypes.d.ts +2 -4
  213. package/dist/inspector/changes/types.d.ts +3 -10
  214. package/dist/inspector/clientManifest.d.ts +17 -6
  215. package/dist/inspector/clientManifest.js +16 -3
  216. package/dist/inspector/comments/CommentsOverlay.js +48 -7
  217. package/dist/inspector/comments/element.d.ts +1 -2
  218. package/dist/inspector/comments/element.js +1 -2
  219. package/dist/inspector/comments/store.d.ts +1 -1
  220. package/dist/inspector/comments/store.js +1 -1
  221. package/dist/inspector/comments/verification.d.ts +8 -2
  222. package/dist/inspector/comments/verification.js +18 -10
  223. package/dist/inspector/componentSemantics/ComponentPropsSection.d.ts +8 -0
  224. package/dist/inspector/componentSemantics/ComponentPropsSection.js +10 -7
  225. package/dist/inspector/componentSemantics/adapterRegistry.d.ts +2 -9
  226. package/dist/inspector/componentSemantics/adapterRegistry.js +2 -9
  227. package/dist/inspector/componentSemantics/changeModel.js +2 -4
  228. package/dist/inspector/componentSemantics/react/callsites.d.ts +28 -0
  229. package/dist/inspector/componentSemantics/react/callsites.js +261 -0
  230. package/dist/inspector/componentSemantics/react/devtoolsHook.d.ts +23 -0
  231. package/dist/inspector/componentSemantics/react/devtoolsHook.js +71 -0
  232. package/dist/inspector/componentSemantics/react/fibers.d.ts +17 -0
  233. package/dist/inspector/componentSemantics/react/fibers.js +30 -0
  234. package/dist/inspector/componentSemantics/{reactRuntime.d.ts → react/runtime.d.ts} +3 -2
  235. package/dist/inspector/componentSemantics/{reactRuntime.js → react/runtime.js} +70 -53
  236. package/dist/inspector/componentSemantics/runtimeBridge.d.ts +2 -18
  237. package/dist/inspector/componentSemantics/runtimeBridge.js +5 -19
  238. package/dist/inspector/componentSemantics/textBinding.d.ts +1 -9
  239. package/dist/inspector/componentSemantics/textBinding.js +16 -42
  240. package/dist/inspector/componentSemantics/types.d.ts +8 -27
  241. package/dist/inspector/componentSemantics/types.js +0 -1
  242. package/dist/inspector/conformance/borderCases.d.ts +0 -5
  243. package/dist/inspector/conformance/borderCases.js +0 -5
  244. package/dist/inspector/conformance/colorCases.d.ts +0 -6
  245. package/dist/inspector/conformance/colorCases.js +0 -6
  246. package/dist/inspector/conformance/fixture.d.ts +1 -5
  247. package/dist/inspector/conformance/fixture.js +1 -5
  248. package/dist/inspector/conformance/spacingCases.d.ts +0 -4
  249. package/dist/inspector/conformance/spacingCases.js +0 -4
  250. package/dist/inspector/conformance/typographyCases.d.ts +0 -5
  251. package/dist/inspector/conformance/typographyCases.js +0 -5
  252. package/dist/inspector/drafts/draftStore.d.ts +7 -21
  253. package/dist/inspector/drafts/draftStore.js +15 -5
  254. package/dist/inspector/drafts/model.d.ts +7 -15
  255. package/dist/inspector/drafts/model.js +0 -2
  256. package/dist/inspector/drafts/store.d.ts +1 -8
  257. package/dist/inspector/drafts/store.js +3 -10
  258. package/dist/inspector/editScope.d.ts +0 -1
  259. package/dist/inspector/editScope.js +0 -1
  260. package/dist/inspector/inline-text/inlineTextDiagnostics.d.ts +0 -2
  261. package/dist/inspector/inline-text/inlineTextDiagnostics.js +0 -2
  262. package/dist/inspector/inline-text/inlineTextEditor.d.ts +2 -8
  263. package/dist/inspector/inline-text/inlineTextEditor.js +26 -79
  264. package/dist/inspector/inline-text/inlineTextLifecycle.js +1 -6
  265. package/dist/inspector/inline-text/textEditChange.d.ts +0 -1
  266. package/dist/inspector/inspection/bridge.d.ts +2 -6
  267. package/dist/inspector/inspection/bridge.js +4 -12
  268. package/dist/inspector/inspection/browserCssInspection.d.ts +4 -11
  269. package/dist/inspector/inspection/browserCssInspection.js +4 -8
  270. package/dist/inspector/inspection/browserCssInspectionRegistry.d.ts +0 -7
  271. package/dist/inspector/inspection/browserCssInspectionRegistry.js +1 -16
  272. package/dist/inspector/inspection/selectionProperty.d.ts +1 -6
  273. package/dist/inspector/inspection/selectionProperty.js +1 -5
  274. package/dist/inspector/inspection/useBrowserCssInspection.d.ts +1 -5
  275. package/dist/inspector/inspection/useBrowserCssInspection.js +5 -21
  276. package/dist/inspector/iterations/capture.d.ts +0 -1
  277. package/dist/inspector/iterations/capture.js +4 -9
  278. package/dist/inspector/iterations/client.d.ts +0 -1
  279. package/dist/inspector/iterations/client.js +0 -1
  280. package/dist/inspector/iterations/coordinator.d.ts +0 -1
  281. package/dist/inspector/iterations/coordinator.js +0 -1
  282. package/dist/inspector/iterations/prompt.d.ts +0 -1
  283. package/dist/inspector/iterations/prompt.js +0 -1
  284. package/dist/inspector/overlay/DomNavigator.d.ts +3 -1
  285. package/dist/inspector/overlay/DomNavigator.js +39 -15
  286. package/dist/inspector/overlay/DropGuideOverlay.d.ts +0 -1
  287. package/dist/inspector/overlay/DropGuideOverlay.js +0 -1
  288. package/dist/inspector/overlay/MeasurementGuideOverlay.d.ts +1 -8
  289. package/dist/inspector/overlay/MeasurementGuideOverlay.js +1 -5
  290. package/dist/inspector/overlay/clickPolicy.d.ts +3 -14
  291. package/dist/inspector/overlay/clickPolicy.js +3 -14
  292. package/dist/inspector/overlay/dropGuide.d.ts +0 -3
  293. package/dist/inspector/overlay/dropGuide.js +0 -3
  294. package/dist/inspector/overlay/frameThrottle.d.ts +0 -1
  295. package/dist/inspector/overlay/frameThrottle.js +0 -1
  296. package/dist/inspector/overlay/interactionStyles.d.ts +1 -1
  297. package/dist/inspector/overlay/interactionStyles.js +2 -8
  298. package/dist/inspector/overlay/measurementGeometry.js +4 -12
  299. package/dist/inspector/overlay/selectedGeometry.d.ts +1 -6
  300. package/dist/inspector/overlay/selectedGeometry.js +1 -8
  301. package/dist/inspector/overlay/spacingGestures.d.ts +14 -21
  302. package/dist/inspector/overlay/spacingGestures.js +151 -31
  303. package/dist/inspector/overlay/structuralGestures.d.ts +2 -9
  304. package/dist/inspector/overlay/structuralGestures.js +1 -4
  305. package/dist/inspector/pageInspector.d.ts +4 -13
  306. package/dist/inspector/pageInspector.js +25 -32
  307. package/dist/inspector/projection/cssEscapes.d.ts +0 -1
  308. package/dist/inspector/projection/cssEscapes.js +2 -4
  309. package/dist/inspector/projection/draftProjection.d.ts +2 -14
  310. package/dist/inspector/projection/draftProjection.js +1 -8
  311. package/dist/inspector/projection/managedStylesheet.d.ts +1 -7
  312. package/dist/inspector/projection/managedStylesheet.js +4 -22
  313. package/dist/inspector/projection/renderedInstance.d.ts +5 -28
  314. package/dist/inspector/projection/renderedInstance.js +6 -32
  315. package/dist/inspector/projection/structuralProjection.d.ts +7 -39
  316. package/dist/inspector/projection/structuralProjection.js +17 -52
  317. package/dist/inspector/projection/textProjection.d.ts +2 -14
  318. package/dist/inspector/projection/textProjection.js +17 -70
  319. package/dist/inspector/prompt/PromptSettingsDialog.d.ts +0 -1
  320. package/dist/inspector/prompt/PromptSettingsDialog.js +0 -1
  321. package/dist/inspector/prompt/clipboardHandoff.d.ts +1 -9
  322. package/dist/inspector/prompt/clipboardHandoff.js +1 -9
  323. package/dist/inspector/prompt/generatePrompt.d.ts +1 -1
  324. package/dist/inspector/prompt/generatePrompt.js +10 -25
  325. package/dist/inspector/prompt/promptSettings.d.ts +0 -3
  326. package/dist/inspector/prompt/promptSettings.js +0 -3
  327. package/dist/inspector/runtime/devFlag.d.ts +2 -25
  328. package/dist/inspector/runtime/devFlag.js +4 -31
  329. package/dist/inspector/runtime/documentStylesheetOrder.d.ts +0 -2
  330. package/dist/inspector/runtime/editorShell.d.ts +0 -1
  331. package/dist/inspector/runtime/editorShell.js +0 -1
  332. package/dist/inspector/runtime/inspectorStorage.d.ts +1 -7
  333. package/dist/inspector/runtime/inspectorStorage.js +1 -6
  334. package/dist/inspector/runtime/ownedStylesheets.d.ts +2 -8
  335. package/dist/inspector/runtime/ownedStylesheets.js +2 -8
  336. package/dist/inspector/runtime/runtimeConfig.d.ts +12 -86
  337. package/dist/inspector/runtime/runtimeConfig.js +9 -50
  338. package/dist/inspector/runtime/runtimeIdentityClaims.d.ts +3 -13
  339. package/dist/inspector/runtime/runtimeIdentityClaims.js +9 -19
  340. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.d.ts +4 -36
  341. package/dist/inspector/runtime/staticHtmlRuntimeIdentity.js +7 -40
  342. package/dist/inspector/runtime/useRuntimeConfig.d.ts +1 -8
  343. package/dist/inspector/runtime/useRuntimeConfig.js +1 -8
  344. package/dist/inspector/selection/editScope.d.ts +1 -7
  345. package/dist/inspector/selection/editScope.js +2 -12
  346. package/dist/inspector/selection/editTarget.d.ts +1 -5
  347. package/dist/inspector/selection/hierarchy.d.ts +11 -11
  348. package/dist/inspector/selection/hierarchy.js +42 -24
  349. package/dist/inspector/selection/selectionStore.d.ts +0 -3
  350. package/dist/inspector/selection/selectionStore.js +5 -16
  351. package/dist/inspector/selection/sourceSite.d.ts +1 -5
  352. package/dist/inspector/selection/sourceSite.js +2 -8
  353. package/dist/inspector/selection/styleSelection.d.ts +1 -5
  354. package/dist/inspector/selection/styleSelection.js +1 -5
  355. package/dist/inspector/session/lifecycle.d.ts +1 -9
  356. package/dist/inspector/session/lifecycle.js +0 -1
  357. package/dist/inspector/session/sessionContext.d.ts +0 -4
  358. package/dist/inspector/session/sessionContext.js +0 -4
  359. package/dist/inspector/session/sessionFactory.d.ts +0 -9
  360. package/dist/inspector/session/sessionFactory.js +0 -6
  361. package/dist/inspector/settings/SettingsDialog.d.ts +0 -1
  362. package/dist/inspector/settings/SettingsDialog.js +5 -3
  363. package/dist/inspector/shell/AgentStatusButton.d.ts +3 -2
  364. package/dist/inspector/shell/AgentStatusButton.js +5 -5
  365. package/dist/inspector/shell/ChangesLog.js +3 -4
  366. package/dist/inspector/shell/CopyPromptButton.d.ts +2 -1
  367. package/dist/inspector/shell/CopyPromptButton.js +12 -11
  368. package/dist/inspector/shell/InspectorEditors.d.ts +16 -0
  369. package/dist/inspector/shell/InspectorEditors.js +14 -0
  370. package/dist/inspector/shell/InspectorPanel.d.ts +12 -0
  371. package/dist/inspector/shell/InspectorPanel.js +8 -0
  372. package/dist/inspector/shell/InspectorSelection.d.ts +24 -0
  373. package/dist/inspector/shell/InspectorSelection.js +20 -0
  374. package/dist/inspector/shell/InspectorShell.js +26 -48
  375. package/dist/inspector/shell/NudgeLogoIcon.d.ts +5 -0
  376. package/dist/inspector/shell/NudgeLogoIcon.js +5 -0
  377. package/dist/inspector/shell/PeekOriginalButton.d.ts +0 -5
  378. package/dist/inspector/shell/PeekOriginalButton.js +0 -5
  379. package/dist/inspector/shell/PeekOriginalIcon.d.ts +0 -5
  380. package/dist/inspector/shell/PeekOriginalIcon.js +0 -5
  381. package/dist/inspector/shell/PromptActionButton.d.ts +21 -0
  382. package/dist/inspector/shell/PromptActionButton.js +14 -0
  383. package/dist/inspector/shell/elementName.d.ts +5 -0
  384. package/dist/inspector/shell/elementName.js +29 -0
  385. package/dist/inspector/shell/interactionStatePreview.d.ts +1 -4
  386. package/dist/inspector/shell/interactionStatePreview.js +3 -8
  387. package/dist/inspector/shell/originalPreview.d.ts +1 -6
  388. package/dist/inspector/shell/originalPreview.js +1 -6
  389. package/dist/inspector/shell/stateValue.d.ts +1 -2
  390. package/dist/inspector/shell/stateValue.js +2 -5
  391. package/dist/inspector/shell/styleState.d.ts +1 -2
  392. package/dist/inspector/shell/styleState.js +1 -2
  393. package/dist/inspector/sketch/SketchEditor.js +0 -1
  394. package/dist/inspector/sketch/SketchFrameOverlay.js +8 -12
  395. package/dist/inspector/sketch/SketchOverlay.js +5 -6
  396. package/dist/inspector/sketch/SketchPromptPanel.d.ts +0 -1
  397. package/dist/inspector/sketch/SketchPromptPanel.js +0 -1
  398. package/dist/inspector/sketch/SketchWorkspace.js +2 -4
  399. package/dist/inspector/sketch/capture.d.ts +12 -3
  400. package/dist/inspector/sketch/capture.js +12 -11
  401. package/dist/inspector/sketch/copySketch.d.ts +1 -7
  402. package/dist/inspector/sketch/copySketch.js +2 -11
  403. package/dist/inspector/sketch/drawingTools.d.ts +1 -3
  404. package/dist/inspector/sketch/drawingTools.js +1 -2
  405. package/dist/inspector/sketch/frameHeading.d.ts +1 -7
  406. package/dist/inspector/sketch/frameHeading.js +1 -8
  407. package/dist/inspector/sketch/freehand.d.ts +0 -1
  408. package/dist/inspector/sketch/freehand.js +0 -1
  409. package/dist/inspector/sketch/geometry.d.ts +1 -6
  410. package/dist/inspector/sketch/geometry.js +1 -6
  411. package/dist/inspector/sketch/handoff.js +0 -1
  412. package/dist/inspector/sketch/history.d.ts +1 -5
  413. package/dist/inspector/sketch/history.js +1 -4
  414. package/dist/inspector/sketch/interaction.d.ts +2 -2
  415. package/dist/inspector/sketch/interaction.js +2 -2
  416. package/dist/inspector/sketch/model.d.ts +2 -9
  417. package/dist/inspector/sketch/model.js +2 -19
  418. package/dist/inspector/sketch/persistence.d.ts +0 -1
  419. package/dist/inspector/sketch/persistence.js +2 -2
  420. package/dist/inspector/sketch/raster.d.ts +1 -4
  421. package/dist/inspector/sketch/raster.js +2 -8
  422. package/dist/inspector/sketch/store.js +2 -3
  423. package/dist/inspector/sketch/videoFrames.js +2 -3
  424. package/dist/inspector/spacing/projection.d.ts +0 -8
  425. package/dist/inspector/spacing/projection.js +38 -20
  426. package/dist/inspector/styleEditors/BackgroundEditor.js +1 -1
  427. package/dist/inspector/styleEditors/BorderEditor.js +1 -6
  428. package/dist/inspector/styleEditors/ChildPlacement.d.ts +12 -0
  429. package/dist/inspector/styleEditors/ChildPlacement.js +9 -0
  430. package/dist/inspector/styleEditors/FlexControls.d.ts +35 -0
  431. package/dist/inspector/styleEditors/FlexControls.js +158 -0
  432. package/dist/inspector/styleEditors/GapField.d.ts +5 -2
  433. package/dist/inspector/styleEditors/GapField.js +3 -4
  434. package/dist/inspector/styleEditors/GridChildSection.d.ts +0 -5
  435. package/dist/inspector/styleEditors/GridChildSection.js +0 -5
  436. package/dist/inspector/styleEditors/GridPicker.d.ts +1 -1
  437. package/dist/inspector/styleEditors/GridPicker.js +2 -4
  438. package/dist/inspector/styleEditors/GridSection.d.ts +10 -8
  439. package/dist/inspector/styleEditors/GridSection.js +22 -9
  440. package/dist/inspector/styleEditors/GridValueField.d.ts +1 -5
  441. package/dist/inspector/styleEditors/GridValueField.js +2 -8
  442. package/dist/inspector/styleEditors/ImageBackgroundEditor.d.ts +0 -1
  443. package/dist/inspector/styleEditors/ImageBackgroundEditor.js +0 -1
  444. package/dist/inspector/styleEditors/LayoutBlockedIndicator.d.ts +0 -1
  445. package/dist/inspector/styleEditors/LayoutBlockedIndicator.js +0 -1
  446. package/dist/inspector/styleEditors/LayoutComboField.js +0 -5
  447. package/dist/inspector/styleEditors/LayoutModeRow.d.ts +14 -0
  448. package/dist/inspector/styleEditors/LayoutModeRow.js +60 -0
  449. package/dist/inspector/styleEditors/LayoutSection.d.ts +2 -2
  450. package/dist/inspector/styleEditors/LayoutSection.js +30 -356
  451. package/dist/inspector/styleEditors/OpacityEditor.js +7 -5
  452. package/dist/inspector/styleEditors/PositionControls.d.ts +18 -0
  453. package/dist/inspector/styleEditors/PositionControls.js +16 -0
  454. package/dist/inspector/styleEditors/SizeSection.d.ts +18 -0
  455. package/dist/inspector/styleEditors/SizeSection.js +71 -0
  456. package/dist/inspector/styleEditors/{SpacingBox.d.ts → SpacingField.d.ts} +3 -10
  457. package/dist/inspector/styleEditors/{SpacingBox.js → SpacingField.js} +15 -29
  458. package/dist/inspector/styleEditors/Typography.js +2 -4
  459. package/dist/inspector/styleEditors/borderModel.d.ts +1 -7
  460. package/dist/inspector/styleEditors/borderModel.js +2 -11
  461. package/dist/inspector/styleEditors/completeCssValue.d.ts +1 -5
  462. package/dist/inspector/styleEditors/completeCssValue.js +3 -13
  463. package/dist/inspector/styleEditors/fieldValue.d.ts +20 -0
  464. package/dist/inspector/styleEditors/fieldValue.js +26 -0
  465. package/dist/inspector/styleEditors/gradientValue.d.ts +1 -1
  466. package/dist/inspector/styleEditors/gradientValue.js +3 -2
  467. package/dist/inspector/styleEditors/gridChildModel.d.ts +7 -47
  468. package/dist/inspector/styleEditors/gridChildModel.js +6 -37
  469. package/dist/inspector/styleEditors/hiddenSizeOverrides.d.ts +5 -0
  470. package/dist/inspector/styleEditors/hiddenSizeOverrides.js +42 -0
  471. package/dist/inspector/styleEditors/inlineAuthored.d.ts +1 -8
  472. package/dist/inspector/styleEditors/inlineAuthored.js +3 -17
  473. package/dist/inspector/styleEditors/layoutMode.d.ts +15 -0
  474. package/dist/inspector/styleEditors/layoutMode.js +33 -0
  475. package/dist/inspector/styleEditors/layoutPreviewState.d.ts +0 -1
  476. package/dist/inspector/styleEditors/layoutPreviewState.js +0 -1
  477. package/dist/inspector/styleEditors/layoutValue.d.ts +2 -8
  478. package/dist/inspector/styleEditors/layoutValue.js +4 -12
  479. package/dist/inspector/styleEditors/nudgeValue.d.ts +1 -13
  480. package/dist/inspector/styleEditors/nudgeValue.js +1 -13
  481. package/dist/inspector/styleEditors/rowLookup.d.ts +1 -5
  482. package/dist/inspector/styleEditors/rowLookup.js +1 -5
  483. package/dist/inspector/styleEditors/stringRecord.d.ts +1 -2
  484. package/dist/inspector/styleEditors/stylePresence.d.ts +0 -2
  485. package/dist/inspector/styleEditors/stylePresence.js +1 -4
  486. package/dist/inspector/styleEditors/textRelevance.d.ts +1 -1
  487. package/dist/inspector/styleEditors/textRelevance.js +1 -1
  488. package/dist/inspector/styleEditors/useFieldVisibility.js +1 -2
  489. package/dist/inspector/styleEditors/useLayoutContext.d.ts +13 -0
  490. package/dist/inspector/styleEditors/useLayoutContext.js +53 -0
  491. package/dist/inspector/styleEditors/valuePolicy.d.ts +1 -5
  492. package/dist/inspector/styleEditors/valuePolicy.js +0 -1
  493. package/dist/inspector/testing.d.ts +1 -4
  494. package/dist/inspector/testing.js +1 -4
  495. package/dist/inspector/tokens/TokenChip.d.ts +1 -4
  496. package/dist/inspector/tokens/TokenChip.js +1 -4
  497. package/dist/inspector/tokens/TokenField.d.ts +4 -3
  498. package/dist/inspector/tokens/TokenField.js +19 -29
  499. package/dist/inspector/tokens/catalog.d.ts +2 -10
  500. package/dist/inspector/tokens/catalog.js +5 -12
  501. package/dist/inspector/tokens/dragPointerLock.d.ts +0 -1
  502. package/dist/inspector/tokens/dragPointerLock.js +2 -3
  503. package/dist/inspector/tokens/editActions.d.ts +1 -1
  504. package/dist/inspector/tokens/editActions.js +2 -4
  505. package/dist/inspector/tokens/resolution/cascade.d.ts +1 -5
  506. package/dist/inspector/tokens/resolution/cascade.js +1 -5
  507. package/dist/inspector/tokens/resolution/containerQueryEvaluator.d.ts +1 -5
  508. package/dist/inspector/tokens/resolution/containerQueryEvaluator.js +1 -5
  509. package/dist/inspector/tokens/resolution/cssomCollector.d.ts +4 -19
  510. package/dist/inspector/tokens/resolution/cssomCollector.js +151 -122
  511. package/dist/inspector/tokens/resolution/nestedSelectors.d.ts +1 -5
  512. package/dist/inspector/tokens/resolution/nestedSelectors.js +1 -5
  513. package/dist/inspector/tokens/resolution/ruleMatching.d.ts +4 -14
  514. package/dist/inspector/tokens/resolution/ruleMatching.js +121 -67
  515. package/dist/inspector/tokens/resolution/selectorSemantics.d.ts +3 -14
  516. package/dist/inspector/tokens/resolution/selectorSemantics.js +12 -27
  517. package/dist/inspector/tokens/resolution.d.ts +5 -24
  518. package/dist/inspector/tokens/resolution.js +16 -71
  519. package/dist/inspector/tokens/tokenAvailability.d.ts +2 -14
  520. package/dist/inspector/tokens/tokenAvailability.js +6 -38
  521. package/dist/inspector/tokens/valueSemanticsAdapter.d.ts +0 -1
  522. package/dist/inspector/tokens/valueSemanticsAdapter.js +18 -2
  523. package/dist/inspector/ui/AtRuleContext.d.ts +5 -5
  524. package/dist/inspector/ui/AtRuleContext.js +8 -6
  525. package/dist/inspector/ui/ControlSurface.d.ts +0 -4
  526. package/dist/inspector/ui/Disclosure.d.ts +0 -5
  527. package/dist/inspector/ui/Disclosure.js +0 -4
  528. package/dist/inspector/ui/InlineStyleWarning.d.ts +0 -1
  529. package/dist/inspector/ui/InspectorPopover.d.ts +1 -5
  530. package/dist/inspector/ui/InspectorPopover.js +1 -5
  531. package/dist/inspector/ui/SegmentedControl.d.ts +4 -4
  532. package/dist/inspector/ui/SegmentedControl.js +6 -4
  533. package/dist/inspector/ui/SideValuesField.d.ts +1 -6
  534. package/dist/inspector/ui/SideValuesField.js +2 -8
  535. package/dist/inspector/ui/Toast.d.ts +0 -4
  536. package/dist/inspector/ui/Toast.js +0 -4
  537. package/dist/inspector/ui/atRuleSegments.d.ts +13 -0
  538. package/dist/inspector/ui/atRuleSegments.js +34 -0
  539. package/dist/inspector/ui/classNames.d.ts +0 -1
  540. package/dist/inspector/ui/classNames.js +0 -1
  541. package/dist/inspector/ui/customCursors.d.ts +7 -1
  542. package/dist/inspector/ui/customCursors.js +2 -6
  543. package/dist/inspector/ui/styles.js +18 -20
  544. package/dist/inspector/workspace/controller.js +20 -1
  545. package/dist/inspector/workspace/handoff.d.ts +1 -5
  546. package/dist/inspector/workspace/handoff.js +1 -5
  547. package/dist/inspector/workspace/timeline.d.ts +5 -2
  548. package/dist/inspector/workspace/timeline.js +0 -1
  549. package/dist/internal/agent-protocol.d.ts +20 -42
  550. package/dist/internal/agent-protocol.js +18 -35
  551. package/dist/nudge-ui.mjs +75 -28
  552. package/dist/project/artifacts.js +24 -21
  553. package/dist/project/files.d.ts +0 -1
  554. package/dist/project/files.js +2 -9
  555. package/dist/project/identity.d.ts +1 -5
  556. package/dist/project/identity.js +1 -5
  557. package/dist/project/mcpPackage.d.ts +1 -6
  558. package/dist/project/mcpPackage.js +2 -7
  559. package/dist/project/pathPolicy.d.ts +1 -6
  560. package/dist/project/pathPolicy.js +1 -6
  561. package/dist/project/tokens.d.ts +2 -12
  562. package/dist/project/tokens.js +4 -15
  563. package/dist/transport/editor.d.ts +1 -12
  564. package/dist/transport/editor.js +2 -13
  565. package/dist/transport/index.d.ts +0 -5
  566. package/dist/transport/index.js +0 -5
  567. package/dist/transport/routes.d.ts +0 -5
  568. package/dist/transport/routes.js +0 -5
  569. package/package.json +5 -4
  570. package/dist/inspector/styleEditors/InsetSection.d.ts +0 -15
  571. package/dist/inspector/styleEditors/InsetSection.js +0 -15
  572. package/dist/inspector/styleEditors/PositionInsets.d.ts +0 -15
  573. package/dist/inspector/styleEditors/PositionInsets.js +0 -12
  574. package/dist/inspector/tokens/TokenDropdown.d.ts +0 -13
  575. package/dist/inspector/tokens/TokenDropdown.js +0 -59
@@ -3,6 +3,7 @@ import { posix } from "node:path";
3
3
  import { elementName, isNode, jsxMemberName, parseModule, SKIP_KEYS, } from "./ast.js";
4
4
  import { createComponentInstrumentationPolicy, } from "./componentInstrumentation.js";
5
5
  import { relativePath, stripModuleExtension } from "./sourcePaths.js";
6
+ import { IDENTITY_ATTRIBUTES } from "./identityAttributes.js";
6
7
  export const DEFAULT_COMPONENT_RUNTIME_MODULE = "nudge-ui/internal/component-runtime";
7
8
  const PARSEABLE_EXT = /\.(tsx|jsx)$/;
8
9
  const EXPRESSION_SCOPE_TYPES = new Set([
@@ -10,15 +11,12 @@ const EXPRESSION_SCOPE_TYPES = new Set([
10
11
  "ArrowFunctionExpression",
11
12
  "ClassExpression",
12
13
  ]);
13
- // Scopes that contribute an id to the scope stack: declarations push their
14
- // own name; expressions are pushed at their VariableDeclarator binding, or
15
- // here by their own id (may be null) when anonymous.
16
14
  const ALL_SCOPE_TYPES = new Set([
17
15
  "FunctionDeclaration",
18
16
  "ClassDeclaration",
19
17
  ...EXPRESSION_SCOPE_TYPES,
20
18
  ]);
21
- const IDENTITY_ATTRS = new Set(["data-cid", "data-src", "data-cprops"]);
19
+ const IDENTITY_ATTRS = new Set(IDENTITY_ATTRIBUTES);
22
20
  function isComponentName(name) {
23
21
  return /^[A-Z]/.test(name);
24
22
  }
@@ -78,9 +76,7 @@ function serialiseAttribute(attr) {
78
76
  if (expr.type === "BooleanLiteral") {
79
77
  return `${key}:${expr.value ? "true" : "false"}`;
80
78
  }
81
- // Inline function expressions are rendered as `fn(key)` per PLAN.md.
82
- // Bare identifiers are omitted (they may reference any type — PLAN.md's
83
- // canonical example omits `onClick={handleClick}`).
79
+ // Inline functions render as `fn(key)`; bare identifiers and other expressions are omitted.
84
80
  if (expr.type === "ArrowFunctionExpression" ||
85
81
  expr.type === "FunctionExpression") {
86
82
  return `${key}:fn(${key})`;
@@ -135,11 +131,7 @@ function authoredPropKinds(attrs, children = []) {
135
131
  result.children = childKind;
136
132
  return result;
137
133
  }
138
- /**
139
- * Preserve the authored shape of primitive JSX children in invocation
140
- * metadata. This is metadata for the dev runtime only; it does not add a
141
- * production attribute or wrapper to the application output.
142
- */
134
+ /** Dev-runtime metadata only; nothing here reaches production output. */
143
135
  function authoredChildrenKind(children) {
144
136
  if (children.length === 0)
145
137
  return null;
@@ -193,9 +185,7 @@ function walkChildren(node, scopeStack, ms, relPath, options, state, allowCompon
193
185
  if (Array.isArray(value)) {
194
186
  for (const child of value) {
195
187
  if (isNode(child)) {
196
- // A component can inspect its children or slot props before React
197
- // renders them. Preserve those element values unless the receiving
198
- // interface explicitly promises to render them.
188
+ // A component may inspect children or slot props before rendering them; only promised slots are traversed.
199
189
  const renderedChild = !customElement
200
190
  || (key === "children" && state.componentPolicy.rendersChildren(componentName))
201
191
  || (key === "attributes" && state.componentPolicy.rendersProp(componentName, elementName(child.name) ?? ""))
@@ -210,8 +200,7 @@ function walkChildren(node, scopeStack, ms, relPath, options, state, allowCompon
210
200
  }
211
201
  }
212
202
  function walk(node, parent, scopeStack, ms, relPath, options, state, allowComponentWrapping) {
213
- // A function/class expression bound to a variable inherits the variable's
214
- // name as its component name (arrows have no own id).
203
+ // A function/class expression inherits the variable's name as its component name (arrows have no own id).
215
204
  if (node.type === "VariableDeclarator") {
216
205
  const init = node.init ?? null;
217
206
  const varName = node.id?.name ?? null;
@@ -223,13 +212,12 @@ function walk(node, parent, scopeStack, ms, relPath, options, state, allowCompon
223
212
  }
224
213
  }
225
214
  if (ALL_SCOPE_TYPES.has(node.type)) {
226
- // Named/anonymous function and class scopes: push their own id (may be null).
227
215
  scopeStack.push(getScopeName(node));
228
216
  walkChildren(node, scopeStack, ms, relPath, options, state, allowComponentWrapping);
229
217
  scopeStack.pop();
230
218
  return;
231
219
  }
232
- if (node.type === "JSXElement" && options.instrumentComponents && allowComponentWrapping) {
220
+ if (node.type === "JSXElement" && options.instrumentComponents) {
233
221
  const opening = node.openingElement;
234
222
  const openingName = opening?.name;
235
223
  const componentName = elementName(openingName);
@@ -238,14 +226,11 @@ function walk(node, parent, scopeStack, ms, relPath, options, state, allowCompon
238
226
  const loc = openingName?.loc;
239
227
  const line = loc?.start?.line;
240
228
  const column = loc?.start?.column;
229
+ const attrs = opening?.attributes ?? [];
241
230
  if (componentName
242
231
  && (isComponentName(componentName) || componentName.includes("."))
243
- && state.componentPolicy.canWrap(componentName)
244
- && typeof start === "number"
245
- && typeof end === "number"
246
232
  && typeof line === "number"
247
233
  && typeof column === "number") {
248
- const attrs = opening?.attributes ?? [];
249
234
  const meta = {
250
235
  callsiteId: `${relPath}:${line}:${column + 1}`,
251
236
  componentId: state.componentPolicy.componentId(componentName)
@@ -256,25 +241,28 @@ function walk(node, parent, scopeStack, ms, relPath, options, state, allowCompon
256
241
  column: column + 1,
257
242
  authoredProps: authoredPropKinds(attrs, node.children ?? []),
258
243
  };
259
- const needsExpression = parent?.type === "JSXElement" || parent?.type === "JSXFragment";
260
- // appendRight preserves insertion order when two JSX siblings have no
261
- // whitespace between them. At the shared `</First><Second>` boundary,
262
- // the first component's closing wrapper must be emitted before the
263
- // second component's opening wrapper.
264
- ms.appendRight(start, `${needsExpression ? "{" : ""}__nudgeUiInstrumentComponent(`);
265
- ms.appendRight(end, `, ${JSON.stringify(meta)})${needsExpression ? "}" : ""}`);
266
- state.changed = true;
267
- state.instrumentedComponents = true;
244
+ if (allowComponentWrapping
245
+ && state.componentPolicy.canWrap(componentName)
246
+ && typeof start === "number"
247
+ && typeof end === "number") {
248
+ const needsExpression = parent?.type === "JSXElement" || parent?.type === "JSXFragment";
249
+ // appendRight preserves insertion order at a shared `</First><Second>` boundary.
250
+ ms.appendRight(start, `${needsExpression ? "{" : ""}__nudgeUiInstrumentComponent(`);
251
+ ms.appendRight(end, `, ${JSON.stringify(meta)})${needsExpression ? "}" : ""}`);
252
+ state.changed = true;
253
+ state.instrumentedComponents = true;
254
+ }
255
+ else if (!hasAttr(attrs, "data-src")) {
256
+ // Not safe to wrap; the injected `data-src` still reaches the component's props, which is all the runtime needs to name it.
257
+ state.registeredCallsites.push(meta);
258
+ state.changed = true;
259
+ }
268
260
  }
269
261
  }
270
262
  if (node.type === "JSXOpeningElement") {
271
263
  const attrs = node.attributes ?? [];
272
264
  const nameNode = node.name;
273
- // TypeScript JSX type arguments sit between the component name and its
274
- // attributes (`<Button<Props> size="small" />`). Injecting immediately
275
- // after the name would produce the invalid `<Button data-cid...<Props>`
276
- // shape, so place identity attributes after the complete type argument
277
- // list when one is present.
265
+ // JSX type arguments (`<Button<Props> size="small" />`) must stay adjacent to the name, so attributes go after the complete type argument list.
278
266
  const typeArguments = node.typeArguments ??
279
267
  node.typeParameters;
280
268
  const end = typeArguments?.end ??
@@ -321,19 +309,29 @@ export function injectIdentity(code, id, root, options = {}) {
321
309
  changed: false,
322
310
  instrumentedComponents: false,
323
311
  componentPolicy: createComponentInstrumentationPolicy(ast, options),
312
+ registeredCallsites: [],
324
313
  };
325
314
  walk(ast, null, [], ms, relPath, options, state, true);
326
315
  if (!state.changed)
327
316
  return null;
328
- if (state.instrumentedComponents) {
329
- const runtimeModule = options.componentRuntimeModule ?? DEFAULT_COMPONENT_RUNTIME_MODULE;
330
- ms.prepend(`import { instrumentReactComponent as __nudgeUiInstrumentComponent } from ${JSON.stringify(runtimeModule)};\n`);
331
- }
317
+ const prelude = componentRuntimePrelude(options.componentRuntimeModule ?? DEFAULT_COMPONENT_RUNTIME_MODULE, state);
318
+ if (prelude)
319
+ ms.prepend(prelude);
332
320
  return {
333
321
  code: ms.toString(),
334
322
  map: ms.generateMap({ source: id, hires: true }),
323
+ prelude,
335
324
  };
336
325
  }
337
- export function injectDataCid(code, id, root) {
338
- return injectIdentity(code, id, root);
326
+ function componentRuntimePrelude(runtimeModule, state) {
327
+ const bindings = [
328
+ ...(state.instrumentedComponents ? ["instrumentReactComponent as __nudgeUiInstrumentComponent"] : []),
329
+ ...(state.registeredCallsites.length > 0 ? ["registerReactCallsites as __nudgeUiRegisterCallsites"] : []),
330
+ ];
331
+ if (bindings.length === 0)
332
+ return null;
333
+ const registration = state.registeredCallsites.length > 0
334
+ ? ` __nudgeUiRegisterCallsites(${JSON.stringify(state.registeredCallsites)});`
335
+ : "";
336
+ return `import { ${bindings.join(", ")} } from ${JSON.stringify(runtimeModule)};${registration}\n`;
339
337
  }
@@ -1,12 +1,8 @@
1
- /** Strip a TypeScript or JavaScript module extension from a resolved path. */
2
1
  export declare function stripModuleExtension(value: string): string;
3
2
  /**
4
- * Project-relative source path used by `data-src`, callsite identity, and
5
- * catalog keys.
6
- *
7
- * A file outside the project root (an authored workspace package) keeps a
8
- * `../`-prefixed relative path, so identity stays unique across packages and
9
- * machine paths never reach the DOM or a prompt. Every host Adapter reads this
10
- * function so their identity strings cannot drift.
3
+ * The one component identity format: extensionless module source, a `#` marker,
4
+ * then the export name. Identity and policy both match on this exact string.
11
5
  */
6
+ export declare function componentIdentity(moduleSource: string, exportName: string): string;
7
+ /** Project-relative identity path; files outside the root keep a `../` prefix so ids stay unique and machine paths never reach the DOM or a prompt. */
12
8
  export declare function relativePath(id: string, root?: string): string;
@@ -1,17 +1,15 @@
1
1
  import { posix } from "node:path";
2
- /** Strip a TypeScript or JavaScript module extension from a resolved path. */
3
2
  export function stripModuleExtension(value) {
4
3
  return value.replace(/\.(?:d\.)?[cm]?[jt]sx?$/, "");
5
4
  }
6
5
  /**
7
- * Project-relative source path used by `data-src`, callsite identity, and
8
- * catalog keys.
9
- *
10
- * A file outside the project root (an authored workspace package) keeps a
11
- * `../`-prefixed relative path, so identity stays unique across packages and
12
- * machine paths never reach the DOM or a prompt. Every host Adapter reads this
13
- * function so their identity strings cannot drift.
6
+ * The one component identity format: extensionless module source, a `#` marker,
7
+ * then the export name. Identity and policy both match on this exact string.
14
8
  */
9
+ export function componentIdentity(moduleSource, exportName) {
10
+ return `${stripModuleExtension(moduleSource)}#${exportName}`;
11
+ }
12
+ /** Project-relative identity path; files outside the root keep a `../` prefix so ids stay unique and machine paths never reach the DOM or a prompt. */
15
13
  export function relativePath(id, root) {
16
14
  if (root) {
17
15
  const rootPrefix = root.endsWith("/") ? root : `${root}/`;
@@ -2,43 +2,28 @@ import type { TokenCatalogDiagnostic } from "../model/index.js";
2
2
  import type { InventoryDiagnostic, TokenContribution } from "../token-inventory/types.js";
3
3
  export * from "./tailwind.js";
4
4
  export * from "./vanillaExtract.js";
5
- /**
6
- * Host-neutral interpretation of CSS dialects. Hosts see very different things
7
- * — a Vite host watches the whole transform pipeline, a static-file host only
8
- * reads `.css` off disk — so each supplies the evidence it can observe and this
9
- * module turns exactly that into token knowledge. It is pure, so the same
10
- * evidence yields the same tokens on every host and dialect behaviour can be
11
- * tested without a build tool. A host that observes less reports less through
12
- * `DialectObservation` rather than quietly producing a thinner catalog.
13
- */
14
5
  export type DialectName = "tailwind-v3" | "tailwind-v4" | "vanilla-extract";
15
6
  export interface TailwindV3Evidence {
16
7
  readonly config: unknown;
17
- /** Path recorded on the resulting tokens. */
18
8
  readonly source?: string;
19
9
  }
20
- /** A theme contract written inline in host configuration. */
21
10
  export interface InlineThemeContractEvidence {
22
11
  readonly contract: unknown;
23
- /** Compiled values by custom-property name, when the host observed the CSS. */
12
+ /** Only when the host observed the emitted CSS. */
24
13
  readonly cssValues?: Readonly<Record<string, string>>;
25
14
  readonly source?: string;
26
15
  }
27
- /** A theme contract loaded from a published module. */
28
16
  export interface PublishedThemeContractEvidence {
29
17
  /** Separates "never looked" from "looked and found nothing"; only the latter clears a held contract. */
30
18
  readonly attempted: boolean;
31
19
  readonly contract: unknown;
32
- /** Whether the contract came from a dependency rather than project source. */
33
20
  readonly fromPackage?: boolean;
34
21
  readonly prefix?: string;
35
22
  readonly source?: string;
36
23
  readonly diagnostics?: readonly TokenCatalogDiagnostic[];
37
24
  }
38
- /** Everything a host managed to observe about the project's dialects. */
39
25
  export interface DialectEvidence {
40
26
  readonly tailwindV3?: TailwindV3Evidence;
41
- /** True when any observed stylesheet carried Tailwind v4 markers. */
42
27
  readonly tailwindV4Css?: boolean;
43
28
  readonly inlineThemeContract?: InlineThemeContractEvidence;
44
29
  readonly publishedThemeContract?: PublishedThemeContractEvidence;
@@ -54,9 +39,5 @@ export interface DialectInterpretation {
54
39
  readonly contributions: readonly TokenContribution[];
55
40
  readonly observed: readonly DialectObservation[];
56
41
  }
57
- /**
58
- * Every contribution is emitted on every call, empty when a dialect has no
59
- * evidence: they are id-keyed and replaceable, so omitting one would leave
60
- * stale facts in the inventory rather than clearing them.
61
- */
42
+ /** Emitted even with no evidence: contributions are id-keyed, so omitting one would leave stale facts. */
62
43
  export declare function interpretDialects(evidence?: DialectEvidence): DialectInterpretation;
@@ -2,11 +2,7 @@ import { isTailwindV3Config, readTailwindV3Config, tailwindV4Relabelling } from
2
2
  import { readThemeContract } from "./vanillaExtract.js";
3
3
  export * from "./tailwind.js";
4
4
  export * from "./vanillaExtract.js";
5
- /**
6
- * Every contribution is emitted on every call, empty when a dialect has no
7
- * evidence: they are id-keyed and replaceable, so omitting one would leave
8
- * stale facts in the inventory rather than clearing them.
9
- */
5
+ /** Emitted even with no evidence: contributions are id-keyed, so omitting one would leave stale facts. */
10
6
  export function interpretDialects(evidence = {}) {
11
7
  const observed = [];
12
8
  const tailwindV3Tokens = readTailwindV3Evidence(evidence.tailwindV3);
@@ -54,10 +50,7 @@ function readInlineContract(evidence) {
54
50
  ...(evidence.cssValues === undefined ? {} : { cssValues: evidence.cssValues }),
55
51
  });
56
52
  }
57
- /**
58
- * Contributes identity only: the emitted CSS stays authoritative on value,
59
- * cascade, and editability, so entries carry no declarations and merge by CSS name.
60
- */
53
+ /** Contributes identity only: the emitted CSS stays authoritative on value and editability. */
61
54
  function readPublishedContract(evidence) {
62
55
  const empty = { id: "vanilla-extract-contract", order: 1 };
63
56
  if (evidence === undefined || !evidence.attempted)
@@ -1,30 +1,18 @@
1
1
  import type { TokenEntry } from "../model/index.js";
2
2
  import type { TokenContribution } from "../token-inventory/types.js";
3
- /** Markers proving a stylesheet participates in Tailwind v4. */
4
3
  export declare function detectTailwindV4(css: string): boolean;
5
- /**
6
- * v4 tokens reach the CSS whether authored or Tailwind-generated, and the
7
- * generic parser cannot tell those apart. Authored `@theme` entries stay
8
- * project-owned and editable; generated ones are framework-owned and are not.
9
- */
4
+ /** The generic parser cannot tell authored from generated v4 tokens, so this corrects provenance and editability. */
10
5
  export declare function tailwindV4Relabelling(): TokenContribution;
11
6
  /** A color utility that applies alpha to a catalog token, e.g. `bg-brand/40`. */
12
7
  export interface TailwindAlphaUtility {
13
8
  readonly utility: string;
14
- /** The base catalog token the utility draws its color from. */
15
9
  readonly baseName: string;
16
10
  /** Normalized alpha, always percent-suffixed. */
17
11
  readonly alpha: string;
18
12
  }
19
- /**
20
- * Null when the class is not an alpha utility. The build-time catalog and the
21
- * browser runtime both parse this and must agree, or an edit gets attributed
22
- * to the wrong token.
23
- */
13
+ /** Parsed by both the build-time catalog and the browser runtime, which must agree on attribution. */
24
14
  export declare function readTailwindV4AlphaUtility(className: string): TailwindAlphaUtility | null;
25
- /** The CSS Tailwind v4 emits for an alpha utility. */
26
15
  export declare function tailwindV4AlphaExpression(baseCssName: string, alpha: string): string;
27
- /** The parts of a v3 config that carry design tokens. */
28
16
  export interface TailwindV3Config {
29
17
  theme?: {
30
18
  colors?: Record<string, unknown>;
@@ -40,7 +28,5 @@ export interface TailwindV3Config {
40
28
  plugins?: unknown[];
41
29
  [key: string]: unknown;
42
30
  }
43
- /** Distinguishes a v3 config object from a v4 one, which has no `theme` key. */
44
31
  export declare function isTailwindV3Config(config: unknown): config is TailwindV3Config;
45
- /** Flattens a v3 config's theme into token entries, applying `theme.extend`. */
46
32
  export declare function readTailwindV3Config(config: TailwindV3Config, source?: string): TokenEntry[];
@@ -1,26 +1,10 @@
1
- /**
2
- * Tailwind's two major versions keep tokens in different places, so they get
3
- * separate treatment rather than a shared "Tailwind" concept. v3 keeps them in
4
- * a JavaScript config and compiles literal values into utilities, making the
5
- * config the only source of authored names. v4 declares them as custom
6
- * properties in `@theme`, so parsed CSS is the source of truth and this module
7
- * only corrects provenance the generic parser cannot infer.
8
- */
9
1
  function isRecord(value) {
10
2
  return typeof value === "object" && value !== null && !Array.isArray(value);
11
3
  }
12
- // ---------------------------------------------------------------------------
13
- // Tailwind v4
14
- // ---------------------------------------------------------------------------
15
- /** Markers proving a stylesheet participates in Tailwind v4. */
16
4
  export function detectTailwindV4(css) {
17
5
  return /@(?:import\s+["']tailwindcss|theme\b)/i.test(css) || /--tw-[\w-]+/.test(css);
18
6
  }
19
- /**
20
- * v4 tokens reach the CSS whether authored or Tailwind-generated, and the
21
- * generic parser cannot tell those apart. Authored `@theme` entries stay
22
- * project-owned and editable; generated ones are framework-owned and are not.
23
- */
7
+ /** The generic parser cannot tell authored from generated v4 tokens, so this corrects provenance and editability. */
24
8
  export function tailwindV4Relabelling() {
25
9
  return {
26
10
  id: "tailwind-v4-naming",
@@ -32,11 +16,7 @@ export function tailwindV4Relabelling() {
32
16
  };
33
17
  }
34
18
  const V4_ALPHA_UTILITY = /^bg-([\w-]+)\/(\d{1,3}%?)$/;
35
- /**
36
- * Null when the class is not an alpha utility. The build-time catalog and the
37
- * browser runtime both parse this and must agree, or an edit gets attributed
38
- * to the wrong token.
39
- */
19
+ /** Parsed by both the build-time catalog and the browser runtime, which must agree on attribution. */
40
20
  export function readTailwindV4AlphaUtility(className) {
41
21
  const match = V4_ALPHA_UTILITY.exec(className.trim());
42
22
  const color = match?.[1];
@@ -48,11 +28,9 @@ export function readTailwindV4AlphaUtility(className) {
48
28
  return null;
49
29
  return { utility: className, baseName: `--color-${color}`, alpha: `${numeric}%` };
50
30
  }
51
- /** The CSS Tailwind v4 emits for an alpha utility. */
52
31
  export function tailwindV4AlphaExpression(baseCssName, alpha) {
53
32
  return `color-mix(in oklab, var(${baseCssName}) ${alpha}, transparent)`;
54
33
  }
55
- /** Distinguishes a v3 config object from a v4 one, which has no `theme` key. */
56
34
  export function isTailwindV3Config(config) {
57
35
  return isRecord(config)
58
36
  && isRecord(config.theme)
@@ -109,7 +87,6 @@ function sectionEntries(values, section, source, path = []) {
109
87
  }
110
88
  return entries;
111
89
  }
112
- /** Flattens a v3 config's theme into token entries, applying `theme.extend`. */
113
90
  export function readTailwindV3Config(config, source = "tailwind.config.js") {
114
91
  return TOKEN_SECTIONS.flatMap((section) => {
115
92
  const base = isRecord(config.theme?.[section]) ? config.theme[section] : {};
@@ -1,20 +1,12 @@
1
1
  import type { TokenEntry } from "../model/index.js";
2
- /**
3
- * vanilla-extract generates the custom-property names, so the contract is the
4
- * only place the authored path (`theme.color.brand`) survives. Reading it is
5
- * how a host recovers names the emitted CSS cannot supply.
6
- */
7
- /** A compiled contract: nested objects whose leaves are `var()` references. */
2
+ /** vanilla-extract generates custom-property names, so the contract is the only source of the authored path. */
8
3
  export type ThemeContract = Record<string, unknown>;
9
4
  export interface ReadThemeContractOptions {
10
- /** Prefix for generated token paths. Defaults to `theme`. */
11
5
  readonly prefix?: string;
12
- /** Source label recorded on every entry. */
13
6
  readonly source: string;
14
7
  readonly origin: TokenEntry["origin"];
15
8
  readonly editable: boolean;
16
9
  /** Omit when the host did not observe the emitted CSS; entries then keep their `var()` reference. */
17
10
  readonly cssValues?: Readonly<Record<string, string>>;
18
11
  }
19
- /** Flattens a contract into token entries keyed by their authored path. */
20
12
  export declare function readThemeContract(contract: unknown, options: ReadThemeContractOptions): TokenEntry[];
@@ -3,7 +3,6 @@ const CONTRACT_REFERENCE = /^var\(\s*(--[\w-]+)(?:\s*,[\s\S]*)?\)$/;
3
3
  function isRecord(value) {
4
4
  return typeof value === "object" && value !== null && !Array.isArray(value);
5
5
  }
6
- /** Flattens a contract into token entries keyed by their authored path. */
7
6
  export function readThemeContract(contract, options) {
8
7
  const entries = [];
9
8
  const walk = (value, path) => {
@@ -1,10 +1,2 @@
1
- /**
2
- * `nudge-ui/css` — shared, browser-safe CSS/token knowledge.
3
- *
4
- * Root entry re-exports the browser-safe subpaths only. The Node/build-time
5
- * token-inventory subpath arrives in Stage 2 and must NOT be reachable from
6
- * this entry so importing value semantics cannot pull PostCSS or filesystem
7
- * assumptions into the inspector bundle.
8
- */
9
1
  export * from "./model/index.js";
10
2
  export * from "./value-semantics/index.js";
package/dist/css/index.js CHANGED
@@ -1,10 +1,2 @@
1
- /**
2
- * `nudge-ui/css` — shared, browser-safe CSS/token knowledge.
3
- *
4
- * Root entry re-exports the browser-safe subpaths only. The Node/build-time
5
- * token-inventory subpath arrives in Stage 2 and must NOT be reachable from
6
- * this entry so importing value semantics cannot pull PostCSS or filesystem
7
- * assumptions into the inspector bundle.
8
- */
9
1
  export * from "./model/index.js";
10
2
  export * from "./value-semantics/index.js";
@@ -1,15 +1,4 @@
1
- /**
2
- * Shared CSS/token knowledge types for `nudge-ui/css`.
3
- *
4
- * This module is the browser-safe shared model consumed by the runtime
5
- * inspector (`nudge-ui/internal/inspector`), the Vite adapter transport
6
- * (`virtual:design-tokens`), and — in later slices — the token inventory
7
- * Module. It MUST NOT import React, Vite, PostCSS, Node, or filesystem code;
8
- * the import-graph test in `src/importGraph.test.ts` enforces that contract.
9
- */
10
- /** Provenance of a token entry or definition. */
11
1
  export type TokenOrigin = "project" | "package" | "framework" | "generated" | "runtime";
12
- /** How faithfully an authored value can be edited by the inspector. */
13
2
  export type EditCapability = "atomic" | "color" | "box-sides" | "structured" | "composite" | "raw";
14
3
  export interface TokenReference {
15
4
  name: string;
@@ -26,7 +15,6 @@ export interface ColorOpacity {
26
15
  tokenName: string | null;
27
16
  token?: TokenReference;
28
17
  }
29
- /** The effective opacity of an element's `opacity` property. */
30
18
  export interface OpacityValue {
31
19
  value: string;
32
20
  authoredValue: string;
@@ -35,7 +23,7 @@ export interface OpacityValue {
35
23
  /** False when the authored expression cannot be rewritten losslessly. */
36
24
  editable: boolean;
37
25
  }
38
- /** UI-relevant color facts derived by value semantics, never by React fields. */
26
+ /** Derived by value semantics, never by React fields. */
39
27
  export interface ColorValueFacts {
40
28
  /** The authored or resolved color already carries an alpha channel. */
41
29
  hasEmbeddedAlpha: boolean;
@@ -63,19 +51,12 @@ export interface AttributionEvidence {
63
51
  inaccessibleStylesheet?: boolean;
64
52
  reason: string;
65
53
  }
66
- /**
67
- * A token as published by the Vite transport or materialized by a styling
68
- * adapter. `name` is the human/design name, `cssName` is the CSS custom
69
- * property implementation name; they may differ and must not be conflated.
70
- */
54
+ /** `name` is the human/design name, `cssName` the custom-property implementation name; they may differ and must not be conflated. */
71
55
  export interface TokenEntry {
72
56
  name: string;
73
57
  value: string;
74
58
  source: string;
75
- /**
76
- * CSS to place in a managed preview when this token has no CSS custom
77
- * property. Tailwind v3 config tokens compile to literals, for example.
78
- */
59
+ /** Managed-preview CSS for tokens with no custom property (e.g. Tailwind v3 config literals). */
79
60
  cssValue?: string;
80
61
  adapter?: string;
81
62
  cssName?: string;
@@ -83,10 +64,7 @@ export interface TokenEntry {
83
64
  editable?: boolean;
84
65
  }
85
66
  export type TokenContextWrapperKind = "media" | "supports" | "scope" | "layer";
86
- /**
87
- * An ordered source wrapper around a token declaration. Keeping one stack
88
- * retains nesting and interleaving, including repeated wrapper kinds.
89
- */
67
+ /** One ordered stack preserves nesting and interleaving, including repeated kinds. */
90
68
  export interface TokenContextWrapper {
91
69
  kind: TokenContextWrapperKind;
92
70
  params: string;
@@ -113,7 +91,6 @@ export interface TokenDefinition {
113
91
  origin?: TokenOrigin;
114
92
  editable?: boolean;
115
93
  }
116
- /** Diagnostic codes emitted by token sources and the token inventory Module. */
117
94
  export type TokenCatalogDiagnosticCode = "vanilla-extract-contract-unresolved" | "vanilla-extract-contract-missing-export" | "vanilla-extract-contract-unsupported-shape" | "stylesheet-unreadable" | "stylesheet-unresolved" | "stylesheet-unsupported" | "stylesheet-parse-failed" | "transform-observation-failed" | "token-order-unresolved";
118
95
  export interface TokenCatalogDiagnostic {
119
96
  code: TokenCatalogDiagnosticCode;
@@ -137,7 +114,6 @@ export interface AtRuleContext {
137
114
  /** The CSSOM-normalised prelude, without the leading `@kind`. */
138
115
  params: string;
139
116
  }
140
- /** A conditional wrapper that participates in a property's source candidates. */
141
117
  export interface AtRuleCandidate extends AtRuleContext {
142
118
  /** True when this context belongs to the declaration currently winning the cascade. */
143
119
  active: boolean;
@@ -155,16 +131,12 @@ export interface MatchedRule {
155
131
  active?: boolean;
156
132
  atRules?: AtRuleContext[];
157
133
  }
158
- /** One attributed, resolvable property on the inspected element. */
159
134
  export interface ResolvedProperty {
160
135
  property: string;
161
136
  tokenName: string | null;
162
137
  declaredValue: string;
163
138
  resolvedValue: string;
164
- /**
165
- * CSSOM-declared serialization used by the UI as the authored expression.
166
- * This preserves CSS meaning, not the source file's exact spelling.
167
- */
139
+ /** CSSOM serialization used as the authored expression; preserves CSS meaning, not source spelling. */
168
140
  authored?: string;
169
141
  sourceProperty?: string;
170
142
  computed?: string;
@@ -177,11 +149,7 @@ export interface ResolvedProperty {
177
149
  resolvedTokenValue?: string;
178
150
  diagnostic?: string;
179
151
  structure?: BorderStructure;
180
- /**
181
- * Conditional source wrappers that apply to the declaration currently
182
- * attributed to this field. These include responsive, container, and
183
- * capability conditions which can affect the winning declaration.
184
- */
152
+ /** Conditional wrappers affecting the declaration attributed to this field. */
185
153
  atRules?: AtRuleContext[];
186
154
  /** All media-query contexts found on declarations for this property. */
187
155
  atRuleCandidates?: AtRuleCandidate[];
@@ -1,10 +1 @@
1
- /**
2
- * Shared CSS/token knowledge types for `nudge-ui/css`.
3
- *
4
- * This module is the browser-safe shared model consumed by the runtime
5
- * inspector (`nudge-ui/internal/inspector`), the Vite adapter transport
6
- * (`virtual:design-tokens`), and — in later slices — the token inventory
7
- * Module. It MUST NOT import React, Vite, PostCSS, Node, or filesystem code;
8
- * the import-graph test in `src/importGraph.test.ts` enforces that contract.
9
- */
10
1
  export {};
@@ -1,26 +1,3 @@
1
- /**
2
- * `nudge-ui/css/token-inventory` — Node/build-time stylesheet parsing and
3
- * aggregation.
4
- *
5
- * This subpath is intentionally NOT browser-safe (see the import-graph test):
6
- * importing it pulls PostCSS into the consumer. Node consumers use it directly
7
- * through `nudge-ui/css/token-inventory`; the root `nudge-ui/css`
8
- * entry stays browser-safe and never re-exports this module.
9
- *
10
- * The deep Interface is `createTokenInventory()` — feed ordered stylesheet
11
- * artifacts and Adapter literal tokens, read immutable deterministic snapshots.
12
- * Parsing and policy remain internal seams used by the engine and direct tests.
13
- *
14
- * ## Deletion test
15
- *
16
- * This Module earns its seam: deleting it would force the Vite Adapter to
17
- * re-own PostCSS parsing, authored/transformed reconciliation, declaration
18
- * identity and ordering, project/package/generated provenance, contribution
19
- * merging, structured diagnostics, and the generation fingerprint that
20
- * `BrowserTokenKnowledge` uses to refresh inspection sessions. The Adapter
21
- * would also have to re-solve the determinism/no-op guarantees that keep
22
- * equivalent HMR event batches from churning the snapshot.
23
- */
24
1
  export { createTokenInventory } from "./inventory.js";
25
2
  export type { TokenInventory } from "./inventory.js";
26
3
  export type { ArtifactProvenance, ArtifactStage, TokenDefinitionRelabelling, ArtifactDiagnosticInput, InventoryContribution, InventoryDiagnostic, InventoryOrderEvidence, InventorySnapshot, InventoryTokenDeclaration, InventoryTokenDefinition, StylesheetArtifact, TokenContribution, } from "./types.js";
@@ -1,24 +1 @@
1
- /**
2
- * `nudge-ui/css/token-inventory` — Node/build-time stylesheet parsing and
3
- * aggregation.
4
- *
5
- * This subpath is intentionally NOT browser-safe (see the import-graph test):
6
- * importing it pulls PostCSS into the consumer. Node consumers use it directly
7
- * through `nudge-ui/css/token-inventory`; the root `nudge-ui/css`
8
- * entry stays browser-safe and never re-exports this module.
9
- *
10
- * The deep Interface is `createTokenInventory()` — feed ordered stylesheet
11
- * artifacts and Adapter literal tokens, read immutable deterministic snapshots.
12
- * Parsing and policy remain internal seams used by the engine and direct tests.
13
- *
14
- * ## Deletion test
15
- *
16
- * This Module earns its seam: deleting it would force the Vite Adapter to
17
- * re-own PostCSS parsing, authored/transformed reconciliation, declaration
18
- * identity and ordering, project/package/generated provenance, contribution
19
- * merging, structured diagnostics, and the generation fingerprint that
20
- * `BrowserTokenKnowledge` uses to refresh inspection sessions. The Adapter
21
- * would also have to re-solve the determinism/no-op guarantees that keep
22
- * equivalent HMR event batches from churning the snapshot.
23
- */
24
1
  export { createTokenInventory } from "./inventory.js";