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,41 +1,15 @@
1
1
  import { instrumentRenderedHtml } from "../../html/identity.js";
2
2
  const HTML_MEDIA_TYPE_PATTERN = /^text\/html$/i;
3
- /**
4
- * Measures `Content-Length` in bytes without assuming a Node global; the
5
- * middleware itself may run on any runtime that serves Astro's dev server.
6
- */
3
+ // Measures Content-Length in bytes without assuming a Node global; the middleware may run on any runtime.
7
4
  const HTML_BYTE_LENGTH_ENCODER = new TextEncoder();
8
- /**
9
- * Classifies a response Content-Type header. Only `text/html` responses
10
- * (with optional parameters such as charset) are eligible for identity
11
- * instrumentation; everything else must pass through untouched.
12
- */
5
+ /** Only `text/html` (with optional parameters such as charset) is eligible; everything else passes through untouched. */
13
6
  export function isHtmlContentType(contentType) {
14
7
  if (contentType === undefined)
15
8
  return false;
16
9
  const mediaType = contentType.split(";", 1)[0]?.trim() ?? "";
17
10
  return HTML_MEDIA_TYPE_PATTERN.test(mediaType);
18
11
  }
19
- /**
20
- * Instruments one rendered dev response at the Astro middleware seam
21
- * (ADR-0011).
22
- *
23
- * HTML bodies are materialized once, transformed through the identity Module,
24
- * and re-emitted as a new `Response` whose headers carry a corrected
25
- * `Content-Length`; every other response is returned by reference with its
26
- * stream untouched. If the body read or instrumentation throws, the original
27
- * response forwards so identity extraction can never break a dev page load —
28
- * a failed read returns the original response by reference (its stream is the
29
- * only remaining representation), while a failed transform returns a fresh
30
- * `Response` over the already-materialized body. Diagnostics always
31
- * accompany the result so callers can surface degraded identity.
32
- *
33
- * @param response The response produced downstream (the rendered page).
34
- * @param projectRoot Project root used to relativize annotation paths.
35
- * @param instrument Identity transform to apply; defaults to the real
36
- * `instrumentRenderedHtml`. Tests inject a failing implementation to exercise
37
- * the catch branch.
38
- */
12
+ /** HTML bodies are materialized once to re-emit with a corrected Content-Length; every other response is returned by reference, stream untouched. */
39
13
  export async function instrumentAstroResponse(response, projectRoot, instrument = instrumentRenderedHtml) {
40
14
  const contentType = response.headers.get("content-type") ?? undefined;
41
15
  if (!isHtmlContentType(contentType))
@@ -47,9 +21,7 @@ export async function instrumentAstroResponse(response, projectRoot, instrument
47
21
  source = await response.text();
48
22
  }
49
23
  catch {
50
- // The body read itself failed; the original response is the only
51
- // remaining representation of the body, so forward it by reference
52
- // instead of rejecting into the middleware chain.
24
+ // Forward the original response by reference: its stream is the only remaining body.
53
25
  return { response, diagnostics: [] };
54
26
  }
55
27
  try {
@@ -66,8 +38,7 @@ export async function instrumentAstroResponse(response, projectRoot, instrument
66
38
  };
67
39
  }
68
40
  catch {
69
- // Identity extraction must never break a dev page load; forward the
70
- // untouched body instead.
41
+ // Identity extraction must never break a dev page load; forward the untouched body.
71
42
  return {
72
43
  response: new Response(source, {
73
44
  status: response.status,
@@ -1,13 +1,5 @@
1
- /**
2
- * The `NUDGE_UI` environment switch shared by every development host.
3
- *
4
- * - `0`, `false`, or `off` disables the host Adapter for that run.
5
- * - `1`, `true`, or `on` also opens the editor in automated browsers, which
6
- * otherwise receive the plain application.
7
- */
8
1
  export type NudgeUiEnvironmentSwitch = "off" | "on" | null;
9
2
  export declare function readNudgeUiEnvironmentSwitch(env?: Readonly<Record<string, string | undefined>>): NudgeUiEnvironmentSwitch;
10
- /** An explicit `enabled: false` or `NUDGE_UI=0` disables the Adapter. */
11
3
  export declare function isNudgeUiEnabled(enabled: boolean | undefined, env?: Readonly<Record<string, string | undefined>>): boolean;
12
4
  /** Manifest fields derived from the environment at request time. */
13
5
  export declare function automationManifestFields(env?: Readonly<Record<string, string | undefined>>): {
@@ -6,7 +6,6 @@ export function readNudgeUiEnvironmentSwitch(env = process.env) {
6
6
  return "on";
7
7
  return null;
8
8
  }
9
- /** An explicit `enabled: false` or `NUDGE_UI=0` disables the Adapter. */
10
9
  export function isNudgeUiEnabled(enabled, env = process.env) {
11
10
  return enabled !== false && readNudgeUiEnvironmentSwitch(env) !== "off";
12
11
  }
@@ -2,6 +2,4 @@ export { withNudgeUi, } from "./wrapper.js";
2
2
  export { buildManifest, nextjsProjectId } from "./manifest.js";
3
3
  export { ensureSidecar, clearStaleSidecarState, } from "./sidecar.js";
4
4
  export { transformNextModuleSource, hasUseClientDirective, directivePrologueEnd, instrumentRootLayout, } from "./loader.js";
5
- // `./loader-plugin.cts` is the compiler-facing entry; it is CommonJS by
6
- // contract (see its header) and is therefore not re-exported through this
7
- // ESM surface.
5
+ // `./loader-plugin.cts` is CommonJS by contract and deliberately not re-exported through this ESM surface.
@@ -1,66 +1,27 @@
1
1
  import type { SourceMap } from "magic-string";
2
2
  import type { HostComponentPolicy } from "../../compiler/componentPolicyResolution.js";
3
3
  export interface NextModuleTransformOptions {
4
- /**
5
- * Project root used to compute project-relative `data-src` values. Matches
6
- * the Vite Adapter's semantics: paths outside the root fall back to the
7
- * absolute path with its leading slash stripped.
8
- */
4
+ /** Paths outside the project root fall back to the absolute path with its leading slash stripped (matches Vite). */
9
5
  root?: string;
10
- /**
11
- * Directory name of the Pages Router route root. Modules resolved under it
12
- * are client components even without a `"use client"` directive.
13
- */
6
+ /** Pages Router route root; modules under it are client components even without a `"use client"` directive. */
14
7
  pagesDir?: string;
15
- /** Import provenance and slot policy resolved by the Next host Adapter. */
16
8
  hostPolicy?: HostComponentPolicy;
17
- /** Whether this module belongs to the Adapter's explicit semantic source scope. */
18
9
  instrumentComponents?: boolean;
19
- /** Module specifier resolved by the Next host for semantic boundaries. */
20
10
  componentRuntimeModule?: string;
21
11
  }
22
12
  export interface NextModuleTransformResult {
23
13
  code: string;
24
14
  map: SourceMap | null;
25
- /** True when the module qualifies as a client component (directive or Pages Router rule). */
26
15
  clientComponent: boolean;
27
- /** True when a root-layout mount element was appended. */
28
16
  layoutInstrumented: boolean;
29
17
  }
30
- /**
31
- * Transforms one application module for development rendering, or returns
32
- * `null` when nothing applies and the caller must serve the original bytes.
33
- *
34
- * `moduleId` is an absolute or project-relative path; only path shapes are
35
- * inspected, never the filesystem.
36
- */
18
+ /** Returns `null` when nothing applies and the caller must serve the original bytes; `moduleId` is inspected as a path only, never as the filesystem. */
37
19
  export declare function transformNextModuleSource(source: string, moduleId: string, options?: NextModuleTransformOptions): NextModuleTransformResult | null;
38
- /**
39
- * Detects a module-level `"use client"` directive without a full parse.
40
- *
41
- * Only comments, whitespace, a shebang, and other directive prologues may
42
- * precede it; anything else ends the directive prologue per the ECMAScript
43
- * spec, which keeps the scan exact rather than a loose substring search.
44
- */
45
20
  export declare function hasUseClientDirective(source: string): boolean;
46
- /**
47
- * Appends the inspector mount as the last child of a literal rendered `<body>`
48
- * element. The server-rendered script must be in the initial document so it
49
- * does not rely on hydration of a client component in the root layout. A
50
- * layout with no literal body is left unchanged rather than emitting an
51
- * invalid direct child of `<html>`.
52
- *
53
- * Idempotence: the aliased mount import doubles as the marker — a module that
54
- * already carries it is left untouched, so running the loader twice (as
55
- * Turbopack does across react-server and client conditions) cannot stack
56
- * duplicates.
57
- */
21
+ /** Appends the mount as the last child of a literal `<body>` so the script ships in the initial document; a module that already carries the aliased import is left untouched. */
58
22
  export declare function instrumentRootLayout(source: string): {
59
23
  code: string;
60
24
  map: SourceMap;
61
25
  } | null;
62
- /**
63
- * Offset just past the directive prologue (shebang, comments, directive
64
- * statements) — the only legal insertion point for new import statements.
65
- */
26
+ /** Offset just past the directive prologue — the only legal insertion point for new imports. */
66
27
  export declare function directivePrologueEnd(source: string): number;
@@ -2,51 +2,20 @@ import { parse } from "@babel/parser";
2
2
  import MagicString from "magic-string";
3
3
  import { posix } from "node:path";
4
4
  import { injectIdentity } from "../../compiler/reactIdentity.js";
5
- /**
6
- * Pure Next.js identity-loader Module (ADR-0010).
7
- *
8
- * Wraps the shared `injectIdentity` Module with Next-specific policy:
9
- *
10
- * - client-component detection gates the semantic runtime import (directive
11
- * scan, Pages Router rule); server-component modules receive identity
12
- * attributes only and fail closed;
13
- * - `<html>`-rendering App Router root layouts receive a dev-only server
14
- * script inside `<body>` that bootstraps the inspector;
15
- * - excluded paths are rejected before any parse work happens.
16
- *
17
- * The transform is deterministic by contract: Turbopack compiles each module
18
- * once per environment (react-server and client conditions), so identical
19
- * input must produce identical output across repeated runs.
20
- */
21
- /** Extensions whose sources can carry JSX and therefore identity targets. */
22
5
  const APP_SOURCE_EXT = /\.([cm]?[jt]sx?)$/i;
23
- /** Parseable-by-the-shared-Module extensions (must contain JSX). */
24
6
  const JSX_SOURCE_EXT = /\.(tsx|jsx)$/;
25
- /** Directory segments never instrumented (build output and dependencies). */
26
7
  const EXCLUDED_SEGMENTS = /(^|\/)(node_modules|\.next)\//i;
27
8
  const MOUNT_LOCAL_NAME = "__NudgeUiMountElement";
28
9
  const NEXT_COMPONENT_RUNTIME_MODULE = "nudge-ui/internal/component-runtime";
29
10
  const MOUNT_IMPORT = `import { createElement as __NudgeUiCreateElement } from "react";\n`
30
11
  + `import { NudgeUiMount as ${MOUNT_LOCAL_NAME} } from "nudge-ui/internal/next/mount";\n`;
31
- // The mount renders through an expression container invoking createElement
32
- // rather than through a JSX element: a bare `{Component}` would hand React
33
- // the function itself ("Functions are not valid as a React child"), while an
34
- // element `<Cmp />` would be visible to later identity passes. A
35
- // `createElement(...)` call produces no JSX nodes — nothing to attribute or
36
- // wrap — while still yielding a real element for React to render.
12
+ // Rendered through createElement rather than as a JSX element: a bare `{Component}` is not
13
+ // a valid React child, and a `<Cmp />` element would be visible to later identity passes.
37
14
  const MOUNT_JSX = `\n {__NudgeUiCreateElement(${MOUNT_LOCAL_NAME})}\n `;
38
- /**
39
- * Transforms one application module for development rendering, or returns
40
- * `null` when nothing applies and the caller must serve the original bytes.
41
- *
42
- * `moduleId` is an absolute or project-relative path; only path shapes are
43
- * inspected, never the filesystem.
44
- */
15
+ /** Returns `null` when nothing applies and the caller must serve the original bytes; `moduleId` is inspected as a path only, never as the filesystem. */
45
16
  export function transformNextModuleSource(source, moduleId, options = {}) {
46
- // ADR-0002 phase gate, defense-in-depth beneath the wrapper: Next sets
47
- // NEXT_PHASE per invocation, so even a misconfigured
48
- // NODE_ENV=development production build refuses every transform here.
49
- // Absent phases still transform — exotic dev harnesses keep working.
17
+ // Defense-in-depth beneath the wrapper: Next sets NEXT_PHASE per invocation, so even a
18
+ // misconfigured production build refuses every transform here; absent phases still transform.
50
19
  if (process.env.NEXT_PHASE === "phase-production-build")
51
20
  return null;
52
21
  const normalized = moduleId.split("\\").join("/");
@@ -64,12 +33,9 @@ export function transformNextModuleSource(source, moduleId, options = {}) {
64
33
  let map = identity ? identity.map : null;
65
34
  let layoutInstrumented = false;
66
35
  if (identity && clientComponent) {
67
- // The shared Module PREPENDS the runtime import, which is fine under
68
- // Vite but fatal under SWC: a module starting with an import is no
69
- // longer a directive prologue, so Next rejects the file ("use client
70
- // must be placed before other expressions"). Relocate the prepended
71
- // import to just past the directive prologue.
72
- code = relocatePrependedRuntimeImport(code, options.componentRuntimeModule ?? NEXT_COMPONENT_RUNTIME_MODULE);
36
+ // The shared module prepends the runtime import, which SWC rejects ahead of a
37
+ // `"use client"` directive; relocate it past the directive prologue.
38
+ code = relocatePrependedRuntimePrelude(code, identity.prelude);
73
39
  }
74
40
  if (isAppRootLayoutPath(normalized)) {
75
41
  const mounted = instrumentRootLayout(code);
@@ -81,39 +47,23 @@ export function transformNextModuleSource(source, moduleId, options = {}) {
81
47
  }
82
48
  if (!identity && !layoutInstrumented)
83
49
  return null;
84
- // When both passes ran, the layout map is composed against the identity
85
- // pass's output rather than the original source. Dev-only tooling tolerates
86
- // this v1 simplification; the identity map (the one prompts rely on) is
87
- // always against the original bytes because the layout pass runs after it.
50
+ // When both passes ran, the layout map is composed against the identity pass's output
51
+ // rather than the original source; the identity map prompts rely on stays against original bytes.
88
52
  return { code, map, clientComponent, layoutInstrumented };
89
53
  }
90
- /**
91
- * Moves the shared Module's prepended runtime import past the directive
92
- * prologue when the source began with one. Sources without a leading
93
- * directive are returned untouched (the import is already first).
94
- */
95
- function relocatePrependedRuntimeImport(code, runtimeModule) {
96
- const runtimeImport = `import { instrumentReactComponent as __nudgeUiInstrumentComponent } from ${JSON.stringify(runtimeModule)};\n`;
97
- if (!code.startsWith(runtimeImport))
54
+ function relocatePrependedRuntimePrelude(code, prelude) {
55
+ if (!prelude || !code.startsWith(prelude))
98
56
  return code;
99
- const rest = code.slice(runtimeImport.length);
57
+ const rest = code.slice(prelude.length);
100
58
  const insertAt = directivePrologueEnd(rest);
101
- return rest.slice(0, insertAt) + runtimeImport + rest.slice(insertAt);
59
+ return rest.slice(0, insertAt) + prelude + rest.slice(insertAt);
102
60
  }
103
- /**
104
- * True when the module resolves inside the Pages Router directory, anchored
105
- * to the router root: only `pages/**` or `src/pages/**` count. An App Router
106
- * route nested at `app/pages/Card.tsx` is a server component and MUST NOT
107
- * match — wrapping it with the client runtime would break the RSC graph.
108
- *
109
- * `pagesDir` may itself contain slashes ("src/pages") for exotic layouts.
110
- */
61
+ /** Only `pages/**` and `src/pages/**` count: an App Router route at `app/pages/Card.tsx` must not match, or wrapping it breaks the RSC graph. */
111
62
  function isPagesRouterModule(normalizedId, options) {
112
63
  const pagesDir = (options.pagesDir ?? "pages").split("\\").join("/").replace(/^\/+|\/+$/g, "");
113
64
  if (pagesDir.length === 0)
114
65
  return false;
115
- // Anchor against the project root when known; without a root we cannot
116
- // distinguish router roots from same-named directories, so fail closed.
66
+ // Anchor against the project root when known; without a root, same-named directories cannot be ruled out, so fail closed.
117
67
  const root = options.root ? options.root.split("\\").join("/").replace(/\/+$/, "") : null;
118
68
  const relative = root
119
69
  ? normalizedId.startsWith(`${root}/`)
@@ -127,11 +77,7 @@ function isPagesRouterModule(normalizedId, options) {
127
77
  || (relative.startsWith("src/")
128
78
  && (relative.slice(4) === pagesDir || relative.slice(4).startsWith(`${pagesDir}/`)));
129
79
  }
130
- /**
131
- * True for App Router layout modules. Route groups nest more `app` segments
132
- * (`app/(marketing)/layout.tsx`), so any `app` ancestor segment counts; the
133
- * `<html>` guard decides whether a mount actually belongs.
134
- */
80
+ /** Any `app` ancestor segment counts because route groups nest (`app/(marketing)/layout.tsx`); the `<html>` guard decides whether a mount belongs. */
135
81
  function isAppRootLayoutPath(normalizedId) {
136
82
  if (!JSX_SOURCE_EXT.test(normalizedId))
137
83
  return false;
@@ -140,17 +86,9 @@ function isAppRootLayoutPath(normalizedId) {
140
86
  return false;
141
87
  return parsed.dir === "app" || parsed.dir.endsWith("/app") || parsed.dir.includes("/app/");
142
88
  }
143
- /**
144
- * Detects a module-level `"use client"` directive without a full parse.
145
- *
146
- * Only comments, whitespace, a shebang, and other directive prologues may
147
- * precede it; anything else ends the directive prologue per the ECMAScript
148
- * spec, which keeps the scan exact rather than a loose substring search.
149
- */
150
89
  export function hasUseClientDirective(source) {
151
90
  let index = 0;
152
91
  const length = source.length;
153
- // A shebang may precede the directive prologue.
154
92
  if (source.startsWith("#!")) {
155
93
  const lineEnd = source.indexOf("\n", index);
156
94
  if (lineEnd === -1)
@@ -200,15 +138,13 @@ export function hasUseClientDirective(source) {
200
138
  return false;
201
139
  if (literal === "use client")
202
140
  return true;
203
- // Another directive prologue ("use strict", "use server", …) may still
204
- // be followed by the target directive; anything else ends the scan.
141
+ // Other directive prologues may still be followed by `"use client"`; anything else ends the scan.
205
142
  let after = cursor + 1;
206
143
  while (after < length && /\s/.test(source.charAt(after)))
207
144
  after += 1;
208
145
  if (source.charAt(after) === ";")
209
146
  after += 1;
210
- // A directive must be its own statement; a string expression used as a
211
- // value would be followed by other tokens on the same statement.
147
+ // A directive must be its own statement — a string used as a value continues with other tokens.
212
148
  if (after < length && !/[\n\r;]/.test(source.charAt(after)) && source[after - 1] !== ";") {
213
149
  return false;
214
150
  }
@@ -219,18 +155,7 @@ export function hasUseClientDirective(source) {
219
155
  }
220
156
  return false;
221
157
  }
222
- /**
223
- * Appends the inspector mount as the last child of a literal rendered `<body>`
224
- * element. The server-rendered script must be in the initial document so it
225
- * does not rely on hydration of a client component in the root layout. A
226
- * layout with no literal body is left unchanged rather than emitting an
227
- * invalid direct child of `<html>`.
228
- *
229
- * Idempotence: the aliased mount import doubles as the marker — a module that
230
- * already carries it is left untouched, so running the loader twice (as
231
- * Turbopack does across react-server and client conditions) cannot stack
232
- * duplicates.
233
- */
158
+ /** Appends the mount as the last child of a literal `<body>` so the script ships in the initial document; a module that already carries the aliased import is left untouched. */
234
159
  export function instrumentRootLayout(source) {
235
160
  if (source.includes(MOUNT_LOCAL_NAME))
236
161
  return null;
@@ -251,17 +176,12 @@ export function instrumentRootLayout(source) {
251
176
  if (!bodyElement?.closingElement?.start)
252
177
  return null;
253
178
  const ms = new MagicString(source);
254
- // The import must land after any directive prologue: prepending ahead of a
255
- // `"use client"` directive would strip it of prologue status and silently
256
- // change the module's compilation environment.
179
+ // Must land after any directive prologue, or a leading `"use client"` loses prologue status.
257
180
  ms.appendLeft(directivePrologueEnd(source), MOUNT_IMPORT);
258
181
  ms.appendLeft(bodyElement.closingElement.start, MOUNT_JSX);
259
182
  return { code: ms.toString(), map: ms.generateMap({ hires: true }) };
260
183
  }
261
- /**
262
- * Offset just past the directive prologue (shebang, comments, directive
263
- * statements) — the only legal insertion point for new import statements.
264
- */
184
+ /** Offset just past the directive prologue — the only legal insertion point for new imports. */
265
185
  export function directivePrologueEnd(source) {
266
186
  let index = 0;
267
187
  const length = source.length;
@@ -303,7 +223,6 @@ export function directivePrologueEnd(source) {
303
223
  break;
304
224
  cursor += 1;
305
225
  }
306
- // Consume the statement terminator of this directive, then continue.
307
226
  let after = cursor + 1;
308
227
  while (after < length && /\s/.test(source.charAt(after)))
309
228
  after += 1;