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
@@ -1,6 +1,2 @@
1
- /**
2
- * Names a project deterministically across restarts. The root is canonicalized
3
- * first, so a symlinked working directory resolves to the same project — and
4
- * therefore the same durable session — as its real path.
5
- */
1
+ /** The root is canonicalized first so a symlinked working directory names the same project as its real path. */
6
2
  export declare function createProjectId(host: string, root: string): string;
@@ -1,11 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { realpathSync } from "node:fs";
3
3
  const PROJECT_DIGEST_LENGTH = 24;
4
- /**
5
- * Names a project deterministically across restarts. The root is canonicalized
6
- * first, so a symlinked working directory resolves to the same project — and
7
- * therefore the same durable session — as its real path.
8
- */
4
+ /** The root is canonicalized first so a symlinked working directory names the same project as its real path. */
9
5
  export function createProjectId(host, root) {
10
6
  let canonical = root;
11
7
  try {
@@ -1,8 +1,3 @@
1
- /**
2
- * Locates the optional MCP package installed for an application. Only the
3
- * application's own dependency tree counts; a global or unrelated copy never
4
- * starts a bridge or answers diagnostics for this project.
5
- */
1
+ /** Only the application's own dependency tree counts; a global or unrelated copy never bridges this project. */
6
2
  export declare function findProjectMcpRoot(appRoot: string): string | null;
7
- /** Absolute path of the installed package's `nudge-mcp` executable entry. */
8
3
  export declare function projectMcpCliEntry(mcpRoot: string): string | null;
@@ -3,11 +3,7 @@ import { createRequire } from "node:module";
3
3
  import { dirname, join, parse } from "node:path";
4
4
  const MCP_PACKAGE = "@nudge-ui/mcp";
5
5
  const MCP_BIN = "nudge-mcp";
6
- /**
7
- * Locates the optional MCP package installed for an application. Only the
8
- * application's own dependency tree counts; a global or unrelated copy never
9
- * starts a bridge or answers diagnostics for this project.
10
- */
6
+ /** Only the application's own dependency tree counts; a global or unrelated copy never bridges this project. */
11
7
  export function findProjectMcpRoot(appRoot) {
12
8
  let directory = appRoot;
13
9
  const { root } = parse(directory);
@@ -28,7 +24,6 @@ export function findProjectMcpRoot(appRoot) {
28
24
  return null;
29
25
  }
30
26
  }
31
- /** Absolute path of the installed package's `nudge-mcp` executable entry. */
32
27
  export function projectMcpCliEntry(mcpRoot) {
33
28
  const bin = readManifest(join(mcpRoot, "package.json"))?.bin;
34
29
  const entry = typeof bin === "string" ? bin : isRecord(bin) ? bin[MCP_BIN] : undefined;
@@ -56,5 +51,5 @@ function isRecord(value) {
56
51
  return typeof value === "object" && value !== null && !Array.isArray(value);
57
52
  }
58
53
  function isPnpRuntime() {
59
- return typeof process.versions.pnp === "string";
54
+ return "pnp" in process.versions && typeof process.versions.pnp === "string";
60
55
  }
@@ -1,8 +1,3 @@
1
- /**
2
- * Dot-prefixed segments commonly hold credentials, source-control metadata, or
3
- * local tool state. Treating the whole segment as sensitive keeps one policy
4
- * across direct requests, symlink targets, token discovery, and file watching.
5
- */
1
+ /** Dot-prefixed segments may hold credentials or local tool state; one policy covers requests, symlinks, tokens, and watching. */
6
2
  export declare function isSensitiveProjectPath(projectPath: string): boolean;
7
- /** Returns whether a directory name is outside the standalone project view. */
8
3
  export declare function isExcludedDirectoryName(name: string): boolean;
@@ -1,12 +1,7 @@
1
- /**
2
- * Dot-prefixed segments commonly hold credentials, source-control metadata, or
3
- * local tool state. Treating the whole segment as sensitive keeps one policy
4
- * across direct requests, symlink targets, token discovery, and file watching.
5
- */
1
+ /** Dot-prefixed segments may hold credentials or local tool state; one policy covers requests, symlinks, tokens, and watching. */
6
2
  export function isSensitiveProjectPath(projectPath) {
7
3
  return projectPath.split(/[\\/]/).some((segment) => segment.startsWith("."));
8
4
  }
9
- /** Returns whether a directory name is outside the standalone project view. */
10
5
  export function isExcludedDirectoryName(name) {
11
6
  return name.startsWith(".") || name === "build" || name === "dist" || name === "node_modules";
12
7
  }
@@ -1,36 +1,26 @@
1
1
  import type { TokenCatalogDiagnostic, TokenDefinition, TokenEntry } from "../css/model/index.js";
2
- /** The serializable token knowledge published by the standalone manifest. */
3
2
  export interface ProjectTokenSnapshot {
4
3
  readonly tokenCatalog: readonly TokenDefinition[];
5
4
  readonly tokens: readonly TokenEntry[];
6
5
  readonly tokenDiagnostics: readonly TokenCatalogDiagnostic[];
7
6
  readonly tokenGeneration: string;
8
7
  }
9
- /** The placeholder used before and in place of a successful project scan. */
10
8
  export declare const EMPTY_PROJECT_TOKEN_SNAPSHOT: ProjectTokenSnapshot;
11
- /** A CSS file discovered below the project root before inventory parsing. */
12
9
  export interface ProjectCssArtifact {
13
10
  readonly absolutePath: string;
14
11
  readonly projectPath: string;
15
12
  readonly content?: string;
16
13
  readonly readError?: string;
17
14
  }
18
- /** Injectable so unreadable-file handling stays testable. */
19
15
  export type ProjectCssFileReader = (absolutePath: string) => string | Promise<string>;
20
- /** Options for the deterministic project CSS scan. */
21
16
  export interface ProjectTokenSnapshotOptions {
22
17
  readonly rootDirectory: string;
23
- /** Additional authored roots to include in the same deterministic inventory. */
24
18
  readonly additionalRootDirectories?: readonly string[];
25
19
  readonly readFile?: ProjectCssFileReader;
26
20
  /** Prefixed to the digest so two hosts scanning one project publish distinct generations. */
27
21
  readonly generationLabel: string;
28
22
  }
29
- /**
30
- * Files are sorted by project-relative POSIX path before receiving
31
- * discoveryOrder. Symlinks are followed only when their canonical target stays
32
- * below rootDirectory. Read and parse failures become diagnostics, never rejections.
33
- */
23
+ /** Sorted by project-relative POSIX path; symlinks only within root; read failures become diagnostics, never rejections. */
34
24
  export declare function createProjectTokenSnapshot(options: ProjectTokenSnapshotOptions): Promise<ProjectTokenSnapshot>;
35
- /** Exported as a seam so provenance and symlink confinement are testable without PostCSS. */
25
+ /** Exported for tests: provenance and symlink confinement without PostCSS. */
36
26
  export declare function discoverProjectCssArtifacts(rootDirectory: string, readFile?: ProjectCssFileReader): Promise<readonly ProjectCssArtifact[]>;
@@ -1,26 +1,16 @@
1
- /**
2
- * Node-only CSS token discovery for the static HTML host. Reports directory
3
- * order as discovery evidence only: a directory walk cannot prove the order in
4
- * which a browser applies stylesheets. Every filesystem operation is async so a
5
- * large tree never blocks the server's event loop.
6
- */
1
+ /** Directory order is discovery evidence only; a walk cannot prove the order a browser applies stylesheets. */
7
2
  import { createHash } from "node:crypto";
8
3
  import { readFile as readUtf8File, readdir, realpath, stat, } from "node:fs/promises";
9
4
  import { extname, isAbsolute, join, relative, resolve, sep } from "node:path";
10
5
  import { createTokenInventory, } from "../css/token-inventory/index.js";
11
6
  import { isExcludedDirectoryName, isSensitiveProjectPath } from "./pathPolicy.js";
12
- /** The placeholder used before and in place of a successful project scan. */
13
7
  export const EMPTY_PROJECT_TOKEN_SNAPSHOT = {
14
8
  tokenCatalog: [],
15
9
  tokens: [],
16
10
  tokenDiagnostics: [],
17
11
  tokenGeneration: "empty",
18
12
  };
19
- /**
20
- * Files are sorted by project-relative POSIX path before receiving
21
- * discoveryOrder. Symlinks are followed only when their canonical target stays
22
- * below rootDirectory. Read and parse failures become diagnostics, never rejections.
23
- */
13
+ /** Sorted by project-relative POSIX path; symlinks only within root; read failures become diagnostics, never rejections. */
24
14
  export async function createProjectTokenSnapshot(options) {
25
15
  const rootDirectory = await canonicalRoot(options.rootDirectory);
26
16
  const additionalRoots = (await Promise.all((options.additionalRootDirectories ?? []).map((directory) => canonicalOptionalRoot(directory)))).filter((root) => root !== null);
@@ -34,8 +24,7 @@ export async function createProjectTokenSnapshot(options) {
34
24
  if (seenFiles.has(canonicalPath))
35
25
  continue;
36
26
  seenFiles.add(canonicalPath);
37
- // Additional roots are expressed relative to the primary one so a single
38
- // inventory can merge their declarations without losing provenance.
27
+ // Additional roots are expressed relative to the primary so one inventory keeps provenance.
39
28
  artifacts.push({
40
29
  ...artifact,
41
30
  projectPath: index === 0
@@ -85,7 +74,7 @@ export async function createProjectTokenSnapshot(options) {
85
74
  tokenGeneration,
86
75
  };
87
76
  }
88
- /** Exported as a seam so provenance and symlink confinement are testable without PostCSS. */
77
+ /** Exported for tests: provenance and symlink confinement without PostCSS. */
89
78
  export async function discoverProjectCssArtifacts(rootDirectory, readFile = (absolutePath) => readUtf8File(absolutePath, "utf8")) {
90
79
  const root = await canonicalRoot(rootDirectory);
91
80
  const artifacts = [];
@@ -1,23 +1,13 @@
1
- /** Returns the editor URL for one same-origin application location. */
2
1
  export declare function createNudgeUiEditorUrl(applicationHref: string): string;
3
- /** Resolves the application URL carried by an editor URL. */
4
2
  export declare function readNudgeUiEditorTarget(editorHref: string): string | null;
5
3
  type RequestHeaderValue = string | readonly string[] | undefined;
6
- /** Returns whether a host request should receive the pure editor document. */
7
4
  export declare function isNudgeUiEditorDocumentRequest(requestHref: string, method: string | undefined, headers: Record<string, RequestHeaderValue> | undefined): boolean;
8
- /** Adds the persistent marker that bypasses editor entry for a plain app view. */
9
5
  export declare function createNudgeUiDirectUrl(applicationHref: string): string;
10
- /** Reads the public `nudge-ui=off` / `nudge-ui=on` switch from an application URL. */
11
6
  export declare function readNudgeUiQuerySwitch(href: string): "off" | "on" | null;
12
- /** Returns whether this application location explicitly bypasses editor entry. */
13
7
  export declare function isNudgeUiDirectUrl(href: string): boolean;
14
- /** Remembers that this browser tab was explicitly opened outside the editor. */
15
8
  export declare function rememberNudgeUiDirectTabIntent(): void;
16
- /** Remembers an explicit URL switch so later navigations in this tab keep it. */
17
9
  export declare function rememberNudgeUiTabSwitch(value: "off" | "on"): void;
18
- /** Returns whether this browser tab should remain outside the editor. */
19
10
  export declare function hasNudgeUiDirectTabIntent(): boolean;
20
- /** Returns whether this browser tab explicitly asked for the editor with `nudge-ui=on`. */
21
11
  export declare function hasNudgeUiForcedTabIntent(): boolean;
22
12
  export type NudgeUiClientEntry = {
23
13
  readonly kind: "bootstrap";
@@ -40,8 +30,7 @@ export interface NudgeUiClientEntryContext {
40
30
  /** `navigator.webdriver`: Playwright, Puppeteer, Selenium, and headless Chrome. */
41
31
  readonly automated?: boolean;
42
32
  }
43
- /** Chooses the browser-client role before any runtime manifest is fetched. */
33
+ /** Resolved before any runtime manifest is fetched. */
44
34
  export declare function resolveNudgeUiClientEntry(href: string, context: NudgeUiClientEntryContext): NudgeUiClientEntry;
45
- /** Renders the host-neutral editor document served by every development Adapter. */
46
35
  export declare function createNudgeUiEditorDocument(): string;
47
36
  export {};
@@ -2,7 +2,6 @@ import { NUDGE_UI_CLIENT_PATH, NUDGE_UI_ARTIFACTS_PATH, NUDGE_UI_DIRECT_QUERY_PA
2
2
  const TARGET_QUERY_PARAM = "url";
3
3
  const DIRECT_TAB_SESSION_KEY = "nudge-ui:direct-tab";
4
4
  const FORCED_TAB_SESSION_KEY = "nudge-ui:forced-tab";
5
- /** Returns the editor URL for one same-origin application location. */
6
5
  export function createNudgeUiEditorUrl(applicationHref) {
7
6
  const applicationUrl = new URL(applicationHref);
8
7
  assertApplicationUrl(applicationUrl);
@@ -23,7 +22,6 @@ export function createNudgeUiEditorUrl(applicationHref) {
23
22
  applicationUrl.hash = hash;
24
23
  return applicationUrl.href;
25
24
  }
26
- /** Resolves the application URL carried by an editor URL. */
27
25
  export function readNudgeUiEditorTarget(editorHref) {
28
26
  const editorUrl = new URL(editorHref);
29
27
  if (editorUrl.pathname !== NUDGE_UI_EDITOR_PATH) {
@@ -50,7 +48,6 @@ export function readNudgeUiEditorTarget(editorHref) {
50
48
  return null;
51
49
  }
52
50
  }
53
- /** Returns whether a host request should receive the pure editor document. */
54
51
  export function isNudgeUiEditorDocumentRequest(requestHref, method, headers) {
55
52
  const normalizedMethod = (method ?? "GET").toUpperCase();
56
53
  if (normalizedMethod !== "GET" && normalizedMethod !== "HEAD")
@@ -69,14 +66,12 @@ export function isNudgeUiEditorDocumentRequest(requestHref, method, headers) {
69
66
  return header("sec-fetch-dest").toLowerCase() === "document"
70
67
  || header("accept").toLowerCase().includes("text/html");
71
68
  }
72
- /** Adds the persistent marker that bypasses editor entry for a plain app view. */
73
69
  export function createNudgeUiDirectUrl(applicationHref) {
74
70
  const url = new URL(applicationHref);
75
71
  assertApplicationUrl(url);
76
72
  url.searchParams.set(NUDGE_UI_DIRECT_QUERY_PARAM, "1");
77
73
  return url.href;
78
74
  }
79
- /** Reads the public `nudge-ui=off` / `nudge-ui=on` switch from an application URL. */
80
75
  export function readNudgeUiQuerySwitch(href) {
81
76
  const url = new URL(href);
82
77
  const values = url.searchParams.getAll(NUDGE_UI_EDITOR_QUERY_PARAM);
@@ -85,15 +80,12 @@ export function readNudgeUiQuerySwitch(href) {
85
80
  }
86
81
  return values.includes(NUDGE_UI_ON_QUERY_VALUE) ? "on" : null;
87
82
  }
88
- /** Returns whether this application location explicitly bypasses editor entry. */
89
83
  export function isNudgeUiDirectUrl(href) {
90
84
  return readNudgeUiQuerySwitch(href) === "off";
91
85
  }
92
- /** Remembers that this browser tab was explicitly opened outside the editor. */
93
86
  export function rememberNudgeUiDirectTabIntent() {
94
87
  rememberNudgeUiTabSwitch("off");
95
88
  }
96
- /** Remembers an explicit URL switch so later navigations in this tab keep it. */
97
89
  export function rememberNudgeUiTabSwitch(value) {
98
90
  try {
99
91
  sessionStorage.setItem(value === "off" ? DIRECT_TAB_SESSION_KEY : FORCED_TAB_SESSION_KEY, "1");
@@ -103,11 +95,9 @@ export function rememberNudgeUiTabSwitch(value) {
103
95
  // Storage denial must not prevent the current page from honoring the switch.
104
96
  }
105
97
  }
106
- /** Returns whether this browser tab should remain outside the editor. */
107
98
  export function hasNudgeUiDirectTabIntent() {
108
99
  return readTabFlag(DIRECT_TAB_SESSION_KEY);
109
100
  }
110
- /** Returns whether this browser tab explicitly asked for the editor with `nudge-ui=on`. */
111
101
  export function hasNudgeUiForcedTabIntent() {
112
102
  return readTabFlag(FORCED_TAB_SESSION_KEY);
113
103
  }
@@ -119,7 +109,7 @@ function readTabFlag(key) {
119
109
  return false;
120
110
  }
121
111
  }
122
- /** Chooses the browser-client role before any runtime manifest is fetched. */
112
+ /** Resolved before any runtime manifest is fetched. */
123
113
  export function resolveNudgeUiClientEntry(href, context) {
124
114
  if (context.editorDocument || context.canvasRenderer)
125
115
  return { kind: "bootstrap" };
@@ -147,14 +137,13 @@ function assertApplicationUrl(url) {
147
137
  throw new TypeError("Nudge UI application URLs must be HTTP(S) URLs outside its reserved route namespace.");
148
138
  }
149
139
  }
150
- /** Renders the host-neutral editor document served by every development Adapter. */
151
140
  export function createNudgeUiEditorDocument() {
152
141
  return `<!doctype html>
153
142
  <html lang="en" data-nudge-ui-editor>
154
143
  <head>
155
144
  <meta charset="utf-8">
156
145
  <meta name="viewport" content="width=device-width, initial-scale=1">
157
- <title>Nudge UI</title>
146
+ <title></title>
158
147
  <style>html,body,#${NUDGE_UI_MOUNT_ID}{width:100%;height:100%;margin:0}body{overflow:hidden}</style>
159
148
  </head>
160
149
  <body>
@@ -1,8 +1,3 @@
1
- /**
2
- * The wire contract between any host and the browser client. Must stay
3
- * browser-safe: the inspector's mount components import these routes directly.
4
- * Anything needing Node belongs in `project/`.
5
- */
6
1
  export * from "./routes.js";
7
2
  export * from "./editor.js";
8
3
  /** Envelope version understood by the browser client. */
@@ -1,8 +1,3 @@
1
- /**
2
- * The wire contract between any host and the browser client. Must stay
3
- * browser-safe: the inspector's mount components import these routes directly.
4
- * Anything needing Node belongs in `project/`.
5
- */
6
1
  export * from "./routes.js";
7
2
  export * from "./editor.js";
8
3
  /** Envelope version understood by the browser client. */
@@ -1,8 +1,3 @@
1
- /**
2
- * The reserved URL namespace every host serves the inspector through. Hosts
3
- * own their own middleware and reload policy, but the paths are one contract:
4
- * the browser client is built once and requests the same URLs everywhere.
5
- */
6
1
  /** A host must not serve project files here. */
7
2
  export declare const NUDGE_UI_ROUTE_PREFIX = "/__nudge_ui__/";
8
3
  export declare const NUDGE_UI_MANIFEST_PATH = "/__nudge_ui__/manifest";
@@ -1,8 +1,3 @@
1
- /**
2
- * The reserved URL namespace every host serves the inspector through. Hosts
3
- * own their own middleware and reload policy, but the paths are one contract:
4
- * the browser client is built once and requests the same URLs everywhere.
5
- */
6
1
  /** A host must not serve project files here. */
7
2
  export const NUDGE_UI_ROUTE_PREFIX = "/__nudge_ui__/";
8
3
  export const NUDGE_UI_MANIFEST_PATH = `${NUDGE_UI_ROUTE_PREFIX}manifest`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nudge-ui",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "A design panel for your codebase. Development only.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -59,9 +59,9 @@
59
59
  "default": "./dist/inspector/index.js"
60
60
  },
61
61
  "./internal/component-runtime": {
62
- "types": "./dist/inspector/componentSemantics/reactRuntime.d.ts",
63
- "import": "./dist/inspector/componentSemantics/reactRuntime.js",
64
- "default": "./dist/inspector/componentSemantics/reactRuntime.js"
62
+ "types": "./dist/inspector/componentSemantics/react/runtime.d.ts",
63
+ "import": "./dist/inspector/componentSemantics/react/runtime.js",
64
+ "default": "./dist/inspector/componentSemantics/react/runtime.js"
65
65
  },
66
66
  "./internal/host-runtime": {
67
67
  "types": "./dist/inspector/componentSemantics/runtimeBridge.d.ts",
@@ -143,6 +143,7 @@
143
143
  "access": "public"
144
144
  },
145
145
  "scripts": {
146
+ "dev:client": "node scripts/watch-inspector-client.mjs",
146
147
  "build": "node ../../scripts/build-package.mjs && node ../../scripts/vendor-agent-protocol.mjs && node scripts/build-inspector-client.mjs && node scripts/build-next-loaders.mjs && node scripts/build-static-cli.mjs",
147
148
  "typecheck": "tsc --noEmit -p tsconfig.json",
148
149
  "test:unit": "vitest run --config vitest.unit.config.ts",
@@ -1,15 +0,0 @@
1
- import type { ReactElement } from "react";
2
- import type { TokenEntry } from "../../css/model/index.js";
3
- import type { ResolvedProperty } from "../../css/model/index.js";
4
- import type { SelectedElement } from "../selection/selectionStore.js";
5
- export interface InsetSectionProps {
6
- element: SelectedElement;
7
- entries?: TokenEntry[];
8
- tokenRows?: ResolvedProperty[];
9
- onAfterEdit?: () => void;
10
- }
11
- /**
12
- * Keeps the positioned-element inset editor available as a standalone
13
- * section for callers that render it outside SpacingBox.
14
- */
15
- export declare function InsetSection({ element, entries, tokenRows, onAfterEdit, }: InsetSectionProps): ReactElement | null;
@@ -1,15 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { getStateStyleValue } from "../shell/stateValue.js";
3
- import { projectInspectorValues } from "../spacing/projection.js";
4
- import { SpacingField } from "./SpacingBox.js";
5
- /**
6
- * Keeps the positioned-element inset editor available as a standalone
7
- * section for callers that render it outside SpacingBox.
8
- */
9
- export function InsetSection({ element, entries = [], tokenRows = [], onAfterEdit, }) {
10
- const el = element.domElement;
11
- const position = getStateStyleValue(el, "position", "static").trim().toLowerCase();
12
- if (position !== "relative" && position !== "sticky")
13
- return null;
14
- return (_jsx(SpacingField, { property: "inset", projection: projectInspectorValues(el, tokenRows).spacing.inset, domElement: el, entries: entries, tokenRows: tokenRows, onAfterEdit: onAfterEdit }));
15
- }
@@ -1,15 +0,0 @@
1
- import type { ReactElement } from "react";
2
- import type { TokenEntry } from "../../css/model/index.js";
3
- import type { ResolvedProperty } from "../../css/model/index.js";
4
- import type { EditTarget } from "../selection/editTarget.js";
5
- import type { StyleSelection } from "../selection/styleSelection.js";
6
- export interface PositionInsetsProps {
7
- domElement: HTMLElement;
8
- editTarget?: EditTarget;
9
- selection?: StyleSelection | null;
10
- entries?: TokenEntry[];
11
- tokenRows?: ResolvedProperty[];
12
- revision?: number;
13
- onAfterEdit?: () => void;
14
- }
15
- export declare function PositionInsets({ domElement: el, editTarget, selection, entries, tokenRows, onAfterEdit, }: PositionInsetsProps): ReactElement;
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { getNudgeUiTokenEntries } from "../runtime/runtimeConfig.js";
3
- import { projectInspectorValues, projectInspectorValuesForSelection } from "../spacing/projection.js";
4
- import { SpacingField } from "./SpacingBox.js";
5
- const OFFSET_PRESETS = ["auto", "0", "50%", "100%"];
6
- export function PositionInsets({ domElement: el, editTarget, selection, entries, tokenRows = [], onAfterEdit, }) {
7
- const allEntries = entries ?? getNudgeUiTokenEntries();
8
- const projection = selection
9
- ? projectInspectorValuesForSelection(selection)
10
- : projectInspectorValues(el, tokenRows);
11
- return (_jsxs("div", { className: "layout__group", "data-test": "layout-position", children: [_jsx("div", { className: "editor__title", children: "Position" }), _jsx(SpacingField, { property: "inset", projection: projection.spacing.inset, domElement: el, editTarget: editTarget, selection: selection, entries: allEntries, tokenRows: tokenRows, onAfterEdit: onAfterEdit, showLabel: false, showEmptyState: false, suggestions: OFFSET_PRESETS })] }));
12
- }
@@ -1,13 +0,0 @@
1
- import type { ReactElement } from "react";
2
- import type { TokenEntry } from "../../css/model/index.js";
3
- import type { ResolvedProperty } from "../../css/model/index.js";
4
- import type { CssValueGrammar, TokenSemanticSlot } from "../../css/value-semantics/index.js";
5
- export interface TokenDropdownProps {
6
- row: ResolvedProperty;
7
- domElement: HTMLElement;
8
- entries: TokenEntry[];
9
- slot?: TokenSemanticSlot;
10
- grammar?: CssValueGrammar;
11
- onAfterEdit?: () => void;
12
- }
13
- export declare function TokenDropdown(props: TokenDropdownProps): ReactElement;
@@ -1,59 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useMemo } from "react";
3
- import { swapToken, promoteToToken } from "./editActions.js";
4
- import { Select } from "../ui/Select.js";
5
- import { selectTokens, TOKEN_GROUP_LABELS, TOKEN_GROUP_ORDER, } from "../../css/value-semantics/index.js";
6
- function groupTokens(entries) {
7
- const map = new Map();
8
- for (const entry of entries) {
9
- const group = entry.group;
10
- let list = map.get(group);
11
- if (!list) {
12
- list = [];
13
- map.set(group, list);
14
- }
15
- list.push(entry);
16
- }
17
- return map;
18
- }
19
- export function TokenDropdown(props) {
20
- const { row, domElement, entries, slot, grammar, onAfterEdit } = props;
21
- const candidates = useMemo(() => selectTokens({
22
- element: domElement,
23
- property: row.property,
24
- slot,
25
- entries,
26
- currentToken: row.tokenName,
27
- grammar,
28
- }).candidates, [domElement, entries, grammar, row.property, row.tokenName, slot]);
29
- const grouped = useMemo(() => groupTokens(candidates), [candidates]);
30
- function handleSelect(value) {
31
- const chosen = candidates.find(({ entry }) => entry.name === value)?.entry;
32
- if (!chosen)
33
- return;
34
- const oldToken = row.tokenName
35
- ? entries.find((entry) => entry.name === row.tokenName || entry.cssName === row.tokenName) ?? null
36
- : null;
37
- swapToken(domElement, row.property, chosen, oldToken);
38
- onAfterEdit?.();
39
- }
40
- function handlePromote(value) {
41
- const chosen = entries.find((entry) => entry.name === value);
42
- if (!chosen)
43
- return;
44
- promoteToToken(domElement, row.property, chosen);
45
- onAfterEdit?.();
46
- }
47
- const hasToken = row.tokenName !== null;
48
- const selectValue = row.tokenName ?? "";
49
- const selectGroups = TOKEN_GROUP_ORDER.flatMap((group) => {
50
- const list = grouped.get(group);
51
- if (!list || list.length === 0)
52
- return [];
53
- return [{
54
- label: TOKEN_GROUP_LABELS[group],
55
- options: list.map(({ entry }) => ({ value: entry.name, label: entry.name })),
56
- }];
57
- });
58
- return (_jsx("span", { className: "token-dropdown", "data-test": "token-dropdown", children: hasToken ? (_jsx(Select, { "data-test": "token-select", value: selectValue, groups: selectGroups, searchable: true, searchPlaceholder: "Search", searchAriaLabel: "Search tokens", onValueChange: handleSelect })) : (_jsx("span", { className: "token-promote", "data-test": "token-promote", children: _jsx(Select, { "data-test": "token-promote-select", value: "", placeholder: "Replace with token\u2026", groups: selectGroups, searchable: true, searchPlaceholder: "Search", searchAriaLabel: "Search tokens", onValueChange: handlePromote }) })) }));
59
- }