@alloy-js/core 0.23.0-dev.8 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (992) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/api-extractor.json +1 -8
  3. package/api-extractor.testing.json +19 -0
  4. package/dist/dev/src/binder.js +595 -0
  5. package/dist/dev/src/binder.js.map +1 -0
  6. package/dist/dev/src/code.js +181 -0
  7. package/dist/dev/src/code.js.map +1 -0
  8. package/dist/dev/src/components/AccessExpression.js +230 -0
  9. package/dist/dev/src/components/AccessExpression.js.map +1 -0
  10. package/dist/dev/src/components/AccessExpression.test.js +237 -0
  11. package/dist/dev/src/components/AccessExpression.test.js.map +1 -0
  12. package/dist/dev/src/components/AppendFile.js +246 -0
  13. package/dist/dev/src/components/AppendFile.js.map +1 -0
  14. package/dist/dev/src/components/Block.js +78 -0
  15. package/dist/dev/src/components/Block.js.map +1 -0
  16. package/dist/dev/src/components/CopyFile.js +16 -0
  17. package/dist/dev/src/components/CopyFile.js.map +1 -0
  18. package/dist/dev/src/components/Declaration.js +70 -0
  19. package/dist/dev/src/components/Declaration.js.map +1 -0
  20. package/dist/dev/src/components/For.js +40 -0
  21. package/dist/dev/src/components/For.js.map +1 -0
  22. package/dist/dev/src/components/Indent.js +37 -0
  23. package/dist/dev/src/components/Indent.js.map +1 -0
  24. package/dist/dev/src/components/List.js +29 -0
  25. package/dist/dev/src/components/List.js.map +1 -0
  26. package/dist/dev/src/components/MemberDeclaration.js +70 -0
  27. package/dist/dev/src/components/MemberDeclaration.js.map +1 -0
  28. package/dist/dev/src/components/MemberName.js +18 -0
  29. package/dist/dev/src/components/MemberName.js.map +1 -0
  30. package/dist/dev/src/components/MemberScope.js +62 -0
  31. package/dist/dev/src/components/MemberScope.js.map +1 -0
  32. package/dist/dev/src/components/Name.js +11 -0
  33. package/dist/dev/src/components/Name.js.map +1 -0
  34. package/dist/dev/src/components/Output.js +72 -0
  35. package/dist/dev/src/components/Output.js.map +1 -0
  36. package/dist/dev/src/components/Prose.js +32 -0
  37. package/dist/dev/src/components/Prose.js.map +1 -0
  38. package/dist/dev/src/components/ReferenceOrContent.js +12 -0
  39. package/dist/dev/src/components/ReferenceOrContent.js.map +1 -0
  40. package/dist/dev/src/components/Scope.js +56 -0
  41. package/dist/dev/src/components/Scope.js.map +1 -0
  42. package/dist/dev/src/components/Show.js +4 -0
  43. package/dist/dev/src/components/Show.js.map +1 -0
  44. package/dist/dev/src/components/SourceDirectory.js +41 -0
  45. package/dist/dev/src/components/SourceDirectory.js.map +1 -0
  46. package/dist/dev/src/components/SourceFile.js +52 -0
  47. package/dist/dev/src/components/SourceFile.js.map +1 -0
  48. package/dist/dev/src/components/StatementList.js +20 -0
  49. package/dist/dev/src/components/StatementList.js.map +1 -0
  50. package/dist/dev/src/components/Switch.js +42 -0
  51. package/dist/dev/src/components/Switch.js.map +1 -0
  52. package/dist/dev/src/components/TemplateFile.js +153 -0
  53. package/dist/dev/src/components/TemplateFile.js.map +1 -0
  54. package/dist/dev/src/components/UpdateFile.js +71 -0
  55. package/dist/dev/src/components/UpdateFile.js.map +1 -0
  56. package/dist/dev/src/components/Wrap.js +18 -0
  57. package/dist/dev/src/components/Wrap.js.map +1 -0
  58. package/dist/dev/src/components/index.js +25 -0
  59. package/dist/dev/src/components/index.js.map +1 -0
  60. package/dist/dev/src/components/stc/index.js +27 -0
  61. package/dist/dev/src/components/stc/index.js.map +1 -0
  62. package/dist/dev/src/components/stc/sti.js +10 -0
  63. package/dist/dev/src/components/stc/sti.js.map +1 -0
  64. package/dist/dev/src/content-slot.js +78 -0
  65. package/dist/dev/src/content-slot.js.map +1 -0
  66. package/dist/dev/src/content-slot.test.js +89 -0
  67. package/dist/dev/src/content-slot.test.js.map +1 -0
  68. package/dist/dev/src/context/assignment.js +46 -0
  69. package/dist/dev/src/context/assignment.js.map +1 -0
  70. package/dist/dev/src/context/binder.js +17 -0
  71. package/dist/dev/src/context/binder.js.map +1 -0
  72. package/dist/dev/src/context/declaration.js +3 -0
  73. package/dist/dev/src/context/declaration.js.map +1 -0
  74. package/dist/dev/src/context/format-options.js +45 -0
  75. package/dist/dev/src/context/format-options.js.map +1 -0
  76. package/dist/dev/src/context/index.js +11 -0
  77. package/dist/dev/src/context/index.js.map +1 -0
  78. package/dist/dev/src/context/member-declaration.js +11 -0
  79. package/dist/dev/src/context/member-declaration.js.map +1 -0
  80. package/dist/dev/src/context/member-scope.js +12 -0
  81. package/dist/dev/src/context/member-scope.js.map +1 -0
  82. package/dist/dev/src/context/name-policy.js +13 -0
  83. package/dist/dev/src/context/name-policy.js.map +1 -0
  84. package/dist/dev/src/context/scope.js +18 -0
  85. package/dist/dev/src/context/scope.js.map +1 -0
  86. package/dist/dev/src/context/source-directory.js +12 -0
  87. package/dist/dev/src/context/source-directory.js.map +1 -0
  88. package/dist/dev/src/context/source-file.js +3 -0
  89. package/dist/dev/src/context/source-file.js.map +1 -0
  90. package/dist/dev/src/context.js +47 -0
  91. package/dist/dev/src/context.js.map +1 -0
  92. package/dist/dev/src/debug/cli.js +164 -0
  93. package/dist/dev/src/debug/cli.js.map +1 -0
  94. package/dist/dev/src/debug/diagnostics-broadcast.test.js +100 -0
  95. package/dist/dev/src/debug/diagnostics-broadcast.test.js.map +1 -0
  96. package/dist/dev/src/debug/diagnostics.test.js +50 -0
  97. package/dist/dev/src/debug/diagnostics.test.js.map +1 -0
  98. package/dist/dev/src/debug/effects.js +293 -0
  99. package/dist/dev/src/debug/effects.js.map +1 -0
  100. package/dist/dev/src/debug/effects.test.js +280 -0
  101. package/dist/dev/src/debug/effects.test.js.map +1 -0
  102. package/dist/dev/src/debug/files.js +29 -0
  103. package/dist/dev/src/debug/files.js.map +1 -0
  104. package/dist/dev/src/debug/files.test.js +78 -0
  105. package/dist/dev/src/debug/files.test.js.map +1 -0
  106. package/dist/dev/src/debug/index.js +71 -0
  107. package/dist/dev/src/debug/index.js.map +1 -0
  108. package/dist/dev/src/debug/message-format.test.js +836 -0
  109. package/dist/dev/src/debug/message-format.test.js.map +1 -0
  110. package/dist/dev/src/debug/render-tree-orphans.test.js +365 -0
  111. package/dist/dev/src/debug/render-tree-orphans.test.js.map +1 -0
  112. package/dist/dev/src/debug/render.js +479 -0
  113. package/dist/dev/src/debug/render.js.map +1 -0
  114. package/dist/dev/src/debug/render.test.js +363 -0
  115. package/dist/dev/src/debug/render.test.js.map +1 -0
  116. package/dist/dev/src/debug/serialize.js +70 -0
  117. package/dist/dev/src/debug/serialize.js.map +1 -0
  118. package/dist/dev/src/debug/source-map.browser.js +24 -0
  119. package/dist/dev/src/debug/source-map.browser.js.map +1 -0
  120. package/dist/dev/src/debug/source-map.js +111 -0
  121. package/dist/dev/src/debug/source-map.js.map +1 -0
  122. package/dist/dev/src/debug/symbols.js +196 -0
  123. package/dist/dev/src/debug/symbols.js.map +1 -0
  124. package/dist/dev/src/debug/symbols.test.js +93 -0
  125. package/dist/dev/src/debug/symbols.test.js.map +1 -0
  126. package/dist/dev/src/debug/trace-writer.js +674 -0
  127. package/dist/dev/src/debug/trace-writer.js.map +1 -0
  128. package/dist/dev/src/debug/trace.js +460 -0
  129. package/dist/dev/src/debug/trace.js.map +1 -0
  130. package/dist/dev/src/devtools/devtools-protocol.js +2 -0
  131. package/dist/dev/src/devtools/devtools-protocol.js.map +1 -0
  132. package/dist/dev/src/devtools/devtools-server.browser.js +36 -0
  133. package/dist/dev/src/devtools/devtools-server.browser.js.map +1 -0
  134. package/dist/dev/src/devtools/devtools-server.js +458 -0
  135. package/dist/dev/src/devtools/devtools-server.js.map +1 -0
  136. package/dist/dev/src/devtools/devtools-transport.js +114 -0
  137. package/dist/dev/src/devtools/devtools-transport.js.map +1 -0
  138. package/dist/dev/src/devtools-entry.browser.js +2 -0
  139. package/dist/dev/src/devtools-entry.browser.js.map +1 -0
  140. package/dist/dev/src/devtools-entry.js +2 -0
  141. package/dist/dev/src/devtools-entry.js.map +1 -0
  142. package/dist/dev/src/diagnostics.js +97 -0
  143. package/dist/dev/src/diagnostics.js.map +1 -0
  144. package/dist/dev/src/host/alloy-host.browser.js +32 -0
  145. package/dist/dev/src/host/alloy-host.browser.js.map +1 -0
  146. package/dist/dev/src/host/alloy-host.js +144 -0
  147. package/dist/dev/src/host/alloy-host.js.map +1 -0
  148. package/dist/dev/src/host/interface.js +2 -0
  149. package/dist/dev/src/host/interface.js.map +1 -0
  150. package/dist/dev/src/host/node-host.browser.js +21 -0
  151. package/dist/dev/src/host/node-host.browser.js.map +1 -0
  152. package/dist/dev/src/host/node-host.js +20 -0
  153. package/dist/dev/src/host/node-host.js.map +1 -0
  154. package/dist/dev/src/index.browser.js +3 -0
  155. package/dist/dev/src/index.browser.js.map +1 -0
  156. package/dist/dev/src/index.js +27 -0
  157. package/dist/dev/src/index.js.map +1 -0
  158. package/dist/dev/src/inspect.browser.js +6 -0
  159. package/dist/dev/src/inspect.browser.js.map +1 -0
  160. package/dist/dev/src/inspect.js +2 -0
  161. package/dist/dev/src/inspect.js.map +1 -0
  162. package/dist/dev/src/jsx-runtime.js +17 -0
  163. package/dist/dev/src/jsx-runtime.js.map +1 -0
  164. package/dist/dev/src/library-symbol-reference.js +59 -0
  165. package/dist/dev/src/library-symbol-reference.js.map +1 -0
  166. package/dist/dev/src/name-policy.js +51 -0
  167. package/dist/dev/src/name-policy.js.map +1 -0
  168. package/dist/dev/src/pretty-string/pretty-string.js +100 -0
  169. package/dist/dev/src/pretty-string/pretty-string.js.map +1 -0
  170. package/dist/dev/src/pretty-string/pretty-string.test.js +38 -0
  171. package/dist/dev/src/pretty-string/pretty-string.test.js.map +1 -0
  172. package/dist/dev/src/print-hook.js +10 -0
  173. package/dist/dev/src/print-hook.js.map +1 -0
  174. package/dist/dev/src/props-combinators.js +109 -0
  175. package/dist/dev/src/props-combinators.js.map +1 -0
  176. package/dist/dev/src/reactive-union-set.js +213 -0
  177. package/dist/dev/src/reactive-union-set.js.map +1 -0
  178. package/dist/dev/src/reactivity.js +452 -0
  179. package/dist/dev/src/reactivity.js.map +1 -0
  180. package/dist/dev/src/refkey.js +167 -0
  181. package/dist/dev/src/refkey.js.map +1 -0
  182. package/dist/dev/src/render-stack.js +252 -0
  183. package/dist/dev/src/render-stack.js.map +1 -0
  184. package/dist/dev/src/render.js +872 -0
  185. package/dist/dev/src/render.js.map +1 -0
  186. package/dist/dev/src/resource.js +124 -0
  187. package/dist/dev/src/resource.js.map +1 -0
  188. package/dist/dev/src/runtime/component.js +41 -0
  189. package/dist/dev/src/runtime/component.js.map +1 -0
  190. package/dist/dev/src/runtime/intrinsic.js +12 -0
  191. package/dist/dev/src/runtime/intrinsic.js.map +1 -0
  192. package/dist/dev/src/scheduler.js +217 -0
  193. package/dist/dev/src/scheduler.js.map +1 -0
  194. package/dist/dev/src/stc.js +40 -0
  195. package/dist/dev/src/stc.js.map +1 -0
  196. package/dist/dev/src/sti.js +31 -0
  197. package/dist/dev/src/sti.js.map +1 -0
  198. package/dist/dev/src/symbols/basic-scope.js +21 -0
  199. package/dist/dev/src/symbols/basic-scope.js.map +1 -0
  200. package/dist/dev/src/symbols/basic-symbol.js +34 -0
  201. package/dist/dev/src/symbols/basic-symbol.js.map +1 -0
  202. package/dist/dev/src/symbols/decl.js +26 -0
  203. package/dist/dev/src/symbols/decl.js.map +1 -0
  204. package/dist/dev/src/symbols/index.js +10 -0
  205. package/dist/dev/src/symbols/index.js.map +1 -0
  206. package/dist/dev/src/symbols/output-scope.js +235 -0
  207. package/dist/dev/src/symbols/output-scope.js.map +1 -0
  208. package/dist/dev/src/symbols/output-space.js +51 -0
  209. package/dist/dev/src/symbols/output-space.js.map +1 -0
  210. package/dist/dev/src/symbols/output-symbol.js +644 -0
  211. package/dist/dev/src/symbols/output-symbol.js.map +1 -0
  212. package/dist/dev/src/symbols/symbol-flow.js +106 -0
  213. package/dist/dev/src/symbols/symbol-flow.js.map +1 -0
  214. package/dist/dev/src/symbols/symbol-slot.js +75 -0
  215. package/dist/dev/src/symbols/symbol-slot.js.map +1 -0
  216. package/dist/dev/src/symbols/symbol-slot.test.js +68 -0
  217. package/dist/dev/src/symbols/symbol-slot.test.js.map +1 -0
  218. package/dist/dev/src/symbols/symbol-table.js +103 -0
  219. package/dist/dev/src/symbols/symbol-table.js.map +1 -0
  220. package/dist/dev/src/tap.js +109 -0
  221. package/dist/dev/src/tap.js.map +1 -0
  222. package/dist/dev/src/trace.js +2 -0
  223. package/dist/dev/src/trace.js.map +1 -0
  224. package/dist/dev/src/tracer.js +180 -0
  225. package/dist/dev/src/tracer.js.map +1 -0
  226. package/dist/dev/src/utils.js +487 -0
  227. package/dist/dev/src/utils.js.map +1 -0
  228. package/dist/dev/src/write-output.js +48 -0
  229. package/dist/dev/src/write-output.js.map +1 -0
  230. package/dist/dev/test/browser-build.test.js +85 -0
  231. package/dist/dev/test/browser-build.test.js.map +1 -0
  232. package/dist/dev/test/children.test.js +44 -0
  233. package/dist/dev/test/children.test.js.map +1 -0
  234. package/dist/dev/test/components/append-file.test.js +394 -0
  235. package/dist/dev/test/components/append-file.test.js.map +1 -0
  236. package/dist/dev/test/components/block.test.js +83 -0
  237. package/dist/dev/test/components/block.test.js.map +1 -0
  238. package/dist/dev/test/components/copy-file.test.js +119 -0
  239. package/dist/dev/test/components/copy-file.test.js.map +1 -0
  240. package/dist/dev/test/components/declaration.test.js +40 -0
  241. package/dist/dev/test/components/declaration.test.js.map +1 -0
  242. package/dist/dev/test/components/list.test.js +250 -0
  243. package/dist/dev/test/components/list.test.js.map +1 -0
  244. package/dist/dev/test/components/prose.test.js +42 -0
  245. package/dist/dev/test/components/prose.test.js.map +1 -0
  246. package/dist/dev/test/components/reference-or-content.test.js +246 -0
  247. package/dist/dev/test/components/reference-or-content.test.js.map +1 -0
  248. package/dist/dev/test/components/source-file.test.js +271 -0
  249. package/dist/dev/test/components/source-file.test.js.map +1 -0
  250. package/dist/dev/test/components/template-file.test.js +200 -0
  251. package/dist/dev/test/components/template-file.test.js.map +1 -0
  252. package/dist/dev/test/components/update-file.test.js +210 -0
  253. package/dist/dev/test/components/update-file.test.js.map +1 -0
  254. package/dist/dev/test/components/wrap.test.js +48 -0
  255. package/dist/dev/test/components/wrap.test.js.map +1 -0
  256. package/dist/dev/test/control-flow/for.test.js +318 -0
  257. package/dist/dev/test/control-flow/for.test.js.map +1 -0
  258. package/dist/dev/test/control-flow/match.test.js +112 -0
  259. package/dist/dev/test/control-flow/match.test.js.map +1 -0
  260. package/dist/dev/test/control-flow/show.test.js +38 -0
  261. package/dist/dev/test/control-flow/show.test.js.map +1 -0
  262. package/dist/dev/test/lazy-isempty.test.js +121 -0
  263. package/dist/dev/test/lazy-isempty.test.js.map +1 -0
  264. package/dist/dev/test/name-policy.test.js +28 -0
  265. package/dist/dev/test/name-policy.test.js.map +1 -0
  266. package/dist/dev/test/props-with-defaults.test.js +94 -0
  267. package/dist/dev/test/props-with-defaults.test.js.map +1 -0
  268. package/dist/dev/test/reactive-union-set-disposers.test.js +98 -0
  269. package/dist/dev/test/reactive-union-set-disposers.test.js.map +1 -0
  270. package/dist/dev/test/reactive-union-set.test.js +171 -0
  271. package/dist/dev/test/reactive-union-set.test.js.map +1 -0
  272. package/dist/dev/test/reactivity/circular-reactives.test.js +62 -0
  273. package/dist/dev/test/reactivity/circular-reactives.test.js.map +1 -0
  274. package/dist/dev/test/reactivity/cleanup.test.js +96 -0
  275. package/dist/dev/test/reactivity/cleanup.test.js.map +1 -0
  276. package/dist/dev/test/reactivity/memo.test.js +17 -0
  277. package/dist/dev/test/reactivity/memo.test.js.map +1 -0
  278. package/dist/dev/test/reactivity/ref-rendering.test.js +38 -0
  279. package/dist/dev/test/reactivity/ref-rendering.test.js.map +1 -0
  280. package/dist/dev/test/reactivity/shallow-reactive.test.js +56 -0
  281. package/dist/dev/test/reactivity/shallow-reactive.test.js.map +1 -0
  282. package/dist/dev/test/reactivity/test.test.js +74 -0
  283. package/dist/dev/test/reactivity/test.test.js.map +1 -0
  284. package/dist/dev/test/reactivity/untrack.test.js +27 -0
  285. package/dist/dev/test/reactivity/untrack.test.js.map +1 -0
  286. package/dist/dev/test/refkey.test.js +36 -0
  287. package/dist/dev/test/refkey.test.js.map +1 -0
  288. package/dist/dev/test/rendering/basic.test.js +194 -0
  289. package/dist/dev/test/rendering/basic.test.js.map +1 -0
  290. package/dist/dev/test/rendering/code.test.js +64 -0
  291. package/dist/dev/test/rendering/code.test.js.map +1 -0
  292. package/dist/dev/test/rendering/formatting.test.js +797 -0
  293. package/dist/dev/test/rendering/formatting.test.js.map +1 -0
  294. package/dist/dev/test/rendering/indent.test.js +183 -0
  295. package/dist/dev/test/rendering/indent.test.js.map +1 -0
  296. package/dist/dev/test/rendering/memoization.test.js +37 -0
  297. package/dist/dev/test/rendering/memoization.test.js.map +1 -0
  298. package/dist/dev/test/rendering/print-render-stack.test.js +287 -0
  299. package/dist/dev/test/rendering/print-render-stack.test.js.map +1 -0
  300. package/dist/dev/test/rendering/refkeys.test.js +37 -0
  301. package/dist/dev/test/rendering/refkeys.test.js.map +1 -0
  302. package/dist/dev/test/scheduler-extended.test.js +96 -0
  303. package/dist/dev/test/scheduler-extended.test.js.map +1 -0
  304. package/dist/dev/test/scheduler.test.js +46 -0
  305. package/dist/dev/test/scheduler.test.js.map +1 -0
  306. package/dist/dev/test/split-props.test.js +78 -0
  307. package/dist/dev/test/split-props.test.js.map +1 -0
  308. package/dist/dev/test/stc.test.js +35 -0
  309. package/dist/dev/test/stc.test.js.map +1 -0
  310. package/dist/dev/test/symbols/deconflicted-name.test.js +120 -0
  311. package/dist/dev/test/symbols/deconflicted-name.test.js.map +1 -0
  312. package/dist/dev/test/symbols/output-scope.test.js +221 -0
  313. package/dist/dev/test/symbols/output-scope.test.js.map +1 -0
  314. package/dist/dev/test/symbols/output-symbol.test.js +202 -0
  315. package/dist/dev/test/symbols/output-symbol.test.js.map +1 -0
  316. package/dist/dev/test/symbols/resolution.test.js +487 -0
  317. package/dist/dev/test/symbols/resolution.test.js.map +1 -0
  318. package/dist/dev/test/symbols/symbol-table.test.js +15 -0
  319. package/dist/dev/test/symbols/symbol-table.test.js.map +1 -0
  320. package/dist/dev/test/symbols/utils.js +26 -0
  321. package/dist/dev/test/symbols/utils.js.map +1 -0
  322. package/dist/dev/test/utils.test.js +317 -0
  323. package/dist/dev/test/utils.test.js.map +1 -0
  324. package/dist/dev/testing/create-test-wrapper.js +130 -0
  325. package/dist/dev/testing/create-test-wrapper.js.map +1 -0
  326. package/dist/dev/testing/devtools-utils.js +162 -0
  327. package/dist/dev/testing/devtools-utils.js.map +1 -0
  328. package/dist/dev/testing/extend-expect.js +187 -0
  329. package/dist/dev/testing/extend-expect.js.map +1 -0
  330. package/dist/dev/testing/extend-expect.test.js +234 -0
  331. package/dist/dev/testing/extend-expect.test.js.map +1 -0
  332. package/dist/dev/testing/index.js +4 -0
  333. package/dist/dev/testing/index.js.map +1 -0
  334. package/dist/dev/testing/render.js +34 -0
  335. package/dist/dev/testing/render.js.map +1 -0
  336. package/dist/dev/testing/vitest.d.js +14 -0
  337. package/dist/dev/testing/vitest.d.js.map +1 -0
  338. package/dist/devtools/index.html +29 -17
  339. package/dist/src/binder.d.ts +107 -3
  340. package/dist/src/binder.d.ts.map +1 -1
  341. package/dist/src/binder.js +113 -1
  342. package/dist/src/binder.js.map +1 -1
  343. package/dist/src/components/AccessExpression.d.ts +78 -0
  344. package/dist/src/components/AccessExpression.d.ts.map +1 -0
  345. package/dist/src/components/AccessExpression.js +218 -0
  346. package/dist/src/components/AccessExpression.js.map +1 -0
  347. package/dist/src/components/AccessExpression.test.d.ts +2 -0
  348. package/dist/src/components/AccessExpression.test.d.ts.map +1 -0
  349. package/dist/src/components/AccessExpression.test.js +137 -0
  350. package/dist/src/components/AccessExpression.test.js.map +1 -0
  351. package/dist/src/components/Block.d.ts +12 -0
  352. package/dist/src/components/Block.d.ts.map +1 -1
  353. package/dist/src/components/Block.js +12 -0
  354. package/dist/src/components/Block.js.map +1 -1
  355. package/dist/src/components/For.d.ts.map +1 -1
  356. package/dist/src/components/For.js +1 -1
  357. package/dist/src/components/For.js.map +1 -1
  358. package/dist/src/components/List.d.ts +11 -1
  359. package/dist/src/components/List.d.ts.map +1 -1
  360. package/dist/src/components/List.js +1 -1
  361. package/dist/src/components/List.js.map +1 -1
  362. package/dist/src/components/MemberDeclaration.d.ts +6 -6
  363. package/dist/src/components/MemberDeclaration.js +6 -6
  364. package/dist/src/components/MemberName.d.ts +6 -0
  365. package/dist/src/components/MemberName.d.ts.map +1 -1
  366. package/dist/src/components/MemberName.js +7 -0
  367. package/dist/src/components/MemberName.js.map +1 -1
  368. package/dist/src/components/MemberScope.d.ts +5 -0
  369. package/dist/src/components/MemberScope.d.ts.map +1 -1
  370. package/dist/src/components/MemberScope.js +5 -0
  371. package/dist/src/components/MemberScope.js.map +1 -1
  372. package/dist/src/components/Output.d.ts +4 -2
  373. package/dist/src/components/Output.d.ts.map +1 -1
  374. package/dist/src/components/Output.js.map +1 -1
  375. package/dist/src/components/Prose.js +2 -2
  376. package/dist/src/components/Prose.js.map +1 -1
  377. package/dist/src/components/Scope.d.ts +6 -0
  378. package/dist/src/components/Scope.d.ts.map +1 -1
  379. package/dist/src/components/Scope.js +8 -0
  380. package/dist/src/components/Scope.js.map +1 -1
  381. package/dist/src/components/SourceDirectory.d.ts.map +1 -1
  382. package/dist/src/components/SourceDirectory.js +1 -2
  383. package/dist/src/components/SourceDirectory.js.map +1 -1
  384. package/dist/src/components/SourceFile.d.ts +22 -2
  385. package/dist/src/components/SourceFile.d.ts.map +1 -1
  386. package/dist/src/components/SourceFile.js.map +1 -1
  387. package/dist/src/components/Switch.d.ts.map +1 -1
  388. package/dist/src/components/Switch.js +1 -1
  389. package/dist/src/components/Switch.js.map +1 -1
  390. package/dist/src/components/index.d.ts +1 -0
  391. package/dist/src/components/index.d.ts.map +1 -1
  392. package/dist/src/components/index.js +1 -0
  393. package/dist/src/components/index.js.map +1 -1
  394. package/dist/src/content-slot.js +2 -2
  395. package/dist/src/content-slot.js.map +1 -1
  396. package/dist/src/context/binder.d.ts +4 -0
  397. package/dist/src/context/binder.d.ts.map +1 -1
  398. package/dist/src/context/binder.js +5 -0
  399. package/dist/src/context/binder.js.map +1 -1
  400. package/dist/src/context/format-options.d.ts +14 -1
  401. package/dist/src/context/format-options.d.ts.map +1 -1
  402. package/dist/src/context/format-options.js +14 -1
  403. package/dist/src/context/format-options.js.map +1 -1
  404. package/dist/src/context/scope.d.ts +4 -0
  405. package/dist/src/context/scope.d.ts.map +1 -1
  406. package/dist/src/context/scope.js +5 -0
  407. package/dist/src/context/scope.js.map +1 -1
  408. package/dist/src/context/source-directory.d.ts +9 -0
  409. package/dist/src/context/source-directory.d.ts.map +1 -1
  410. package/dist/src/context/source-directory.js +9 -0
  411. package/dist/src/context/source-directory.js.map +1 -1
  412. package/dist/src/context.js +2 -2
  413. package/dist/src/context.js.map +1 -1
  414. package/dist/src/debug/cli.d.ts.map +1 -1
  415. package/dist/src/debug/cli.js +3 -2
  416. package/dist/src/debug/cli.js.map +1 -1
  417. package/dist/src/debug/diagnostics-broadcast.test.d.ts +2 -0
  418. package/dist/src/debug/diagnostics-broadcast.test.d.ts.map +1 -0
  419. package/dist/src/debug/diagnostics-broadcast.test.js +100 -0
  420. package/dist/src/debug/diagnostics-broadcast.test.js.map +1 -0
  421. package/dist/src/debug/diagnostics.test.js +3 -2
  422. package/dist/src/debug/diagnostics.test.js.map +1 -1
  423. package/dist/src/debug/effects.d.ts +16 -4
  424. package/dist/src/debug/effects.d.ts.map +1 -1
  425. package/dist/src/debug/effects.js +119 -54
  426. package/dist/src/debug/effects.js.map +1 -1
  427. package/dist/src/debug/effects.test.js +206 -36
  428. package/dist/src/debug/effects.test.js.map +1 -1
  429. package/dist/src/debug/files.d.ts.map +1 -1
  430. package/dist/src/debug/files.js +7 -18
  431. package/dist/src/debug/files.js.map +1 -1
  432. package/dist/src/debug/files.test.js +13 -36
  433. package/dist/src/debug/files.test.js.map +1 -1
  434. package/dist/src/debug/index.d.ts +6 -3
  435. package/dist/src/debug/index.d.ts.map +1 -1
  436. package/dist/src/debug/index.js +6 -3
  437. package/dist/src/debug/index.js.map +1 -1
  438. package/dist/src/debug/message-format.test.d.ts +2 -0
  439. package/dist/src/debug/message-format.test.d.ts.map +1 -0
  440. package/dist/src/debug/message-format.test.js +700 -0
  441. package/dist/src/debug/message-format.test.js.map +1 -0
  442. package/dist/src/debug/render-tree-orphans.test.d.ts +2 -0
  443. package/dist/src/debug/render-tree-orphans.test.d.ts.map +1 -0
  444. package/dist/src/debug/render-tree-orphans.test.js +297 -0
  445. package/dist/src/debug/render-tree-orphans.test.js.map +1 -0
  446. package/dist/src/debug/render.d.ts.map +1 -1
  447. package/dist/src/debug/render.js +91 -131
  448. package/dist/src/debug/render.js.map +1 -1
  449. package/dist/src/debug/render.test.js +91 -128
  450. package/dist/src/debug/render.test.js.map +1 -1
  451. package/dist/src/debug/source-map.browser.d.ts +16 -0
  452. package/dist/src/debug/source-map.browser.d.ts.map +1 -0
  453. package/dist/src/debug/source-map.browser.js +24 -0
  454. package/dist/src/debug/source-map.browser.js.map +1 -0
  455. package/dist/src/debug/source-map.d.ts +22 -0
  456. package/dist/src/debug/source-map.d.ts.map +1 -0
  457. package/dist/src/debug/source-map.js +111 -0
  458. package/dist/src/debug/source-map.js.map +1 -0
  459. package/dist/src/debug/symbols.d.ts +7 -0
  460. package/dist/src/debug/symbols.d.ts.map +1 -1
  461. package/dist/src/debug/symbols.js +46 -14
  462. package/dist/src/debug/symbols.js.map +1 -1
  463. package/dist/src/debug/symbols.test.js +15 -26
  464. package/dist/src/debug/symbols.test.js.map +1 -1
  465. package/dist/src/debug/trace-writer.d.ts +56 -0
  466. package/dist/src/debug/trace-writer.d.ts.map +1 -0
  467. package/dist/src/debug/trace-writer.js +674 -0
  468. package/dist/src/debug/trace-writer.js.map +1 -0
  469. package/dist/src/debug/trace.d.ts +10 -10
  470. package/dist/src/debug/trace.d.ts.map +1 -1
  471. package/dist/src/debug/trace.js +41 -24
  472. package/dist/src/debug/trace.js.map +1 -1
  473. package/dist/src/devtools/devtools-protocol.d.ts +318 -161
  474. package/dist/src/devtools/devtools-protocol.d.ts.map +1 -1
  475. package/dist/src/devtools/devtools-server.browser.d.ts +1 -5
  476. package/dist/src/devtools/devtools-server.browser.d.ts.map +1 -1
  477. package/dist/src/devtools/devtools-server.browser.js +3 -3
  478. package/dist/src/devtools/devtools-server.browser.js.map +1 -1
  479. package/dist/src/devtools/devtools-server.d.ts +5 -6
  480. package/dist/src/devtools/devtools-server.d.ts.map +1 -1
  481. package/dist/src/devtools/devtools-server.js +227 -25
  482. package/dist/src/devtools/devtools-server.js.map +1 -1
  483. package/dist/src/devtools/devtools-transport.d.ts +2 -2
  484. package/dist/src/devtools/devtools-transport.d.ts.map +1 -1
  485. package/dist/src/devtools/devtools-transport.js +2 -2
  486. package/dist/src/devtools/devtools-transport.js.map +1 -1
  487. package/dist/src/devtools-entry.browser.d.ts +1 -1
  488. package/dist/src/devtools-entry.browser.d.ts.map +1 -1
  489. package/dist/src/devtools-entry.browser.js.map +1 -1
  490. package/dist/src/devtools-entry.d.ts +1 -1
  491. package/dist/src/devtools-entry.d.ts.map +1 -1
  492. package/dist/src/devtools-entry.js.map +1 -1
  493. package/dist/src/diagnostics.d.ts +1 -1
  494. package/dist/src/diagnostics.d.ts.map +1 -1
  495. package/dist/src/diagnostics.js +27 -19
  496. package/dist/src/diagnostics.js.map +1 -1
  497. package/dist/src/host/node-host.browser.d.ts +11 -0
  498. package/dist/src/host/node-host.browser.d.ts.map +1 -0
  499. package/dist/src/host/node-host.browser.js +21 -0
  500. package/dist/src/host/node-host.browser.js.map +1 -0
  501. package/dist/src/host/node-host.d.ts +11 -0
  502. package/dist/src/host/node-host.d.ts.map +1 -0
  503. package/dist/src/host/node-host.js +20 -0
  504. package/dist/src/host/node-host.js.map +1 -0
  505. package/dist/src/index.d.ts +1 -1
  506. package/dist/src/index.d.ts.map +1 -1
  507. package/dist/src/index.js +1 -1
  508. package/dist/src/index.js.map +1 -1
  509. package/dist/src/library-symbol-reference.d.ts +52 -0
  510. package/dist/src/library-symbol-reference.d.ts.map +1 -1
  511. package/dist/src/library-symbol-reference.js +54 -0
  512. package/dist/src/library-symbol-reference.js.map +1 -1
  513. package/dist/src/name-policy.d.ts +30 -3
  514. package/dist/src/name-policy.d.ts.map +1 -1
  515. package/dist/src/name-policy.js +27 -0
  516. package/dist/src/name-policy.js.map +1 -1
  517. package/dist/src/reactive-union-set.d.ts.map +1 -1
  518. package/dist/src/reactive-union-set.js +13 -3
  519. package/dist/src/reactive-union-set.js.map +1 -1
  520. package/dist/src/reactivity.d.ts +60 -6
  521. package/dist/src/reactivity.d.ts.map +1 -1
  522. package/dist/src/reactivity.js +302 -155
  523. package/dist/src/reactivity.js.map +1 -1
  524. package/dist/src/render-stack.d.ts +1 -0
  525. package/dist/src/render-stack.d.ts.map +1 -1
  526. package/dist/src/render-stack.js +8 -3
  527. package/dist/src/render-stack.js.map +1 -1
  528. package/dist/src/render.d.ts +2 -0
  529. package/dist/src/render.d.ts.map +1 -1
  530. package/dist/src/render.js +90 -34
  531. package/dist/src/render.js.map +1 -1
  532. package/dist/src/scheduler.d.ts +10 -0
  533. package/dist/src/scheduler.d.ts.map +1 -1
  534. package/dist/src/scheduler.js +115 -21
  535. package/dist/src/scheduler.js.map +1 -1
  536. package/dist/src/symbols/output-scope.d.ts +33 -1
  537. package/dist/src/symbols/output-scope.d.ts.map +1 -1
  538. package/dist/src/symbols/output-scope.js +36 -3
  539. package/dist/src/symbols/output-scope.js.map +1 -1
  540. package/dist/src/symbols/output-space.d.ts +12 -0
  541. package/dist/src/symbols/output-space.d.ts.map +1 -1
  542. package/dist/src/symbols/output-space.js +15 -0
  543. package/dist/src/symbols/output-space.js.map +1 -1
  544. package/dist/src/symbols/output-symbol.d.ts +128 -12
  545. package/dist/src/symbols/output-symbol.d.ts.map +1 -1
  546. package/dist/src/symbols/output-symbol.js +160 -20
  547. package/dist/src/symbols/output-symbol.js.map +1 -1
  548. package/dist/src/symbols/symbol-flow.d.ts.map +1 -1
  549. package/dist/src/symbols/symbol-flow.js +2 -2
  550. package/dist/src/symbols/symbol-flow.js.map +1 -1
  551. package/dist/src/symbols/symbol-slot.d.ts.map +1 -1
  552. package/dist/src/symbols/symbol-slot.js +7 -0
  553. package/dist/src/symbols/symbol-slot.js.map +1 -1
  554. package/dist/src/symbols/symbol-slot.test.js +18 -1
  555. package/dist/src/symbols/symbol-slot.test.js.map +1 -1
  556. package/dist/src/symbols/symbol-table.d.ts.map +1 -1
  557. package/dist/src/symbols/symbol-table.js +13 -3
  558. package/dist/src/symbols/symbol-table.js.map +1 -1
  559. package/dist/src/utils.d.ts.map +1 -1
  560. package/dist/src/utils.js +12 -9
  561. package/dist/src/utils.js.map +1 -1
  562. package/dist/src/write-output.d.ts.map +1 -1
  563. package/dist/src/write-output.js +6 -5
  564. package/dist/src/write-output.js.map +1 -1
  565. package/dist/test/browser-build.test.js +66 -67
  566. package/dist/test/browser-build.test.js.map +1 -1
  567. package/dist/test/lazy-isempty.test.d.ts +2 -0
  568. package/dist/test/lazy-isempty.test.d.ts.map +1 -0
  569. package/dist/test/lazy-isempty.test.js +89 -0
  570. package/dist/test/lazy-isempty.test.js.map +1 -0
  571. package/dist/test/reactive-union-set-disposers.test.d.ts +2 -0
  572. package/dist/test/reactive-union-set-disposers.test.d.ts.map +1 -0
  573. package/dist/test/reactive-union-set-disposers.test.js +98 -0
  574. package/dist/test/reactive-union-set-disposers.test.js.map +1 -0
  575. package/dist/test/reactivity/shallow-reactive.test.d.ts +2 -0
  576. package/dist/test/reactivity/shallow-reactive.test.d.ts.map +1 -0
  577. package/dist/test/reactivity/shallow-reactive.test.js +56 -0
  578. package/dist/test/reactivity/shallow-reactive.test.js.map +1 -0
  579. package/dist/test/scheduler-extended.test.d.ts +2 -0
  580. package/dist/test/scheduler-extended.test.d.ts.map +1 -0
  581. package/dist/test/scheduler-extended.test.js +96 -0
  582. package/dist/test/scheduler-extended.test.js.map +1 -0
  583. package/dist/test/scheduler.test.d.ts +2 -0
  584. package/dist/test/scheduler.test.d.ts.map +1 -0
  585. package/dist/test/scheduler.test.js +46 -0
  586. package/dist/test/scheduler.test.js.map +1 -0
  587. package/dist/test/symbols/deconflicted-name.test.d.ts +2 -0
  588. package/dist/test/symbols/deconflicted-name.test.d.ts.map +1 -0
  589. package/dist/test/symbols/deconflicted-name.test.js +120 -0
  590. package/dist/test/symbols/deconflicted-name.test.js.map +1 -0
  591. package/dist/test/symbols/output-scope.test.js +41 -0
  592. package/dist/test/symbols/output-scope.test.js.map +1 -1
  593. package/dist/testing/create-test-wrapper.d.ts +75 -2
  594. package/dist/testing/create-test-wrapper.d.ts.map +1 -1
  595. package/dist/testing/create-test-wrapper.js +55 -1
  596. package/dist/testing/create-test-wrapper.js.map +1 -1
  597. package/dist/testing/devtools-utils.d.ts +12 -3
  598. package/dist/testing/devtools-utils.d.ts.map +1 -1
  599. package/dist/testing/devtools-utils.js +26 -4
  600. package/dist/testing/devtools-utils.js.map +1 -1
  601. package/dist/testing/extend-expect.d.ts +26 -0
  602. package/dist/testing/extend-expect.d.ts.map +1 -1
  603. package/dist/testing/extend-expect.js +20 -0
  604. package/dist/testing/extend-expect.js.map +1 -1
  605. package/dist/testing/index.d.ts +1 -1
  606. package/dist/testing/index.d.ts.map +1 -1
  607. package/dist/testing/index.js +1 -1
  608. package/dist/testing/index.js.map +1 -1
  609. package/dist/testing/render.d.ts +9 -0
  610. package/dist/testing/render.d.ts.map +1 -1
  611. package/dist/testing/render.js +11 -0
  612. package/dist/testing/render.js.map +1 -1
  613. package/dist/testing/vitest.d.js +12 -0
  614. package/dist/testing/vitest.d.js.map +1 -1
  615. package/dist/tsconfig.tsbuildinfo +1 -1
  616. package/docs/api/components/AppendRegion.md +83 -0
  617. package/docs/api/components/Block.md +49 -0
  618. package/docs/api/components/CopyFile.md +26 -0
  619. package/docs/api/components/Declaration.md +85 -0
  620. package/docs/api/components/For.md +91 -0
  621. package/docs/api/components/Indent.md +40 -0
  622. package/docs/api/components/List.md +68 -0
  623. package/docs/api/components/MemberDeclaration.md +89 -0
  624. package/docs/api/components/MemberName.md +21 -0
  625. package/docs/api/components/MemberScope.md +81 -0
  626. package/docs/api/components/Name.md +19 -0
  627. package/docs/api/components/Output.md +62 -0
  628. package/docs/api/components/Prose.md +29 -0
  629. package/docs/api/components/ReferenceOrContent.md +28 -0
  630. package/docs/api/components/Scope.md +83 -0
  631. package/docs/api/components/Show.md +32 -0
  632. package/docs/api/components/SourceDirectory.md +28 -0
  633. package/docs/api/components/SourceFile.md +60 -0
  634. package/docs/api/components/StatementList.md +29 -0
  635. package/docs/api/components/Switch.md +42 -0
  636. package/docs/api/components/TemplateFile.md +71 -0
  637. package/docs/api/components/TemplateVariable.md +57 -0
  638. package/docs/api/components/UpdateFile.md +56 -0
  639. package/docs/api/components/Wrap.md +40 -0
  640. package/docs/api/components/createAccessExpression.md +55 -0
  641. package/docs/api/components/index.md +27 -0
  642. package/docs/api/contexts/Assignment-context.md +43 -0
  643. package/docs/api/contexts/Binder-context.md +22 -0
  644. package/docs/api/contexts/Declaration-context.md +15 -0
  645. package/docs/api/contexts/Member-context.md +17 -0
  646. package/docs/api/contexts/MemberDeclaration-context.md +24 -0
  647. package/docs/api/contexts/NamePolicy-context.md +18 -0
  648. package/docs/api/contexts/Scope-context.md +20 -0
  649. package/docs/api/contexts/SourceDirectory-context.md +26 -0
  650. package/docs/api/contexts/SourceFile-context.md +19 -0
  651. package/docs/api/contexts/index.md +11 -0
  652. package/docs/api/functions/attachDiagnosticsCollector.md +18 -0
  653. package/docs/api/functions/baseListPropsToMapJoinArgs.md +20 -0
  654. package/docs/api/functions/children.md +27 -0
  655. package/docs/api/functions/childrenArray.md +25 -0
  656. package/docs/api/functions/code.md +25 -0
  657. package/docs/api/functions/computed.md +18 -0
  658. package/docs/api/functions/createComponent.md +20 -0
  659. package/docs/api/functions/createContentSlot.md +33 -0
  660. package/docs/api/functions/createContext.md +19 -0
  661. package/docs/api/functions/createCustomContext.md +18 -0
  662. package/docs/api/functions/createDeclarationTap.md +20 -0
  663. package/docs/api/functions/createFileResource.md +35 -0
  664. package/docs/api/functions/createFormatOptionsContextFor.md +28 -0
  665. package/docs/api/functions/createIntrinsic.md +19 -0
  666. package/docs/api/functions/createMemberTap.md +20 -0
  667. package/docs/api/functions/createNamePolicy.md +37 -0
  668. package/docs/api/functions/createNamedContext.md +19 -0
  669. package/docs/api/functions/createOutputBinder.md +24 -0
  670. package/docs/api/functions/createRenderTreeHook.md +19 -0
  671. package/docs/api/functions/createResource.md +77 -0
  672. package/docs/api/functions/createScope.md +35 -0
  673. package/docs/api/functions/createScopeTap.md +20 -0
  674. package/docs/api/functions/createSourceFileTap.md +20 -0
  675. package/docs/api/functions/createSymbol.md +25 -0
  676. package/docs/api/functions/createSymbolSlot.md +19 -0
  677. package/docs/api/functions/createTap.md +55 -0
  678. package/docs/api/functions/decl.md +20 -0
  679. package/docs/api/functions/defaultProps.md +21 -0
  680. package/docs/api/functions/effect.md +26 -0
  681. package/docs/api/functions/emitDiagnostic.md +18 -0
  682. package/docs/api/functions/emitSymbol.md +18 -0
  683. package/docs/api/functions/ensureIsEmpty.md +20 -0
  684. package/docs/api/functions/findCurrentEffectId.md +19 -0
  685. package/docs/api/functions/findKeyedChild.md +19 -0
  686. package/docs/api/functions/findKeyedChildren.md +19 -0
  687. package/docs/api/functions/findUnkeyedChildren.md +18 -0
  688. package/docs/api/functions/formatReactivePropertyLabel.md +21 -0
  689. package/docs/api/functions/getAssignmentSymbol.md +19 -0
  690. package/docs/api/functions/getContext.md +17 -0
  691. package/docs/api/functions/getContextForRenderNode.md +18 -0
  692. package/docs/api/functions/getDiagnosticsForTree.md +18 -0
  693. package/docs/api/functions/getEffectDebugId.md +18 -0
  694. package/docs/api/functions/getElementCache.md +17 -0
  695. package/docs/api/functions/getReactiveCreationLocation.md +18 -0
  696. package/docs/api/functions/getSymbolCreator.md +18 -0
  697. package/docs/api/functions/getSymbolCreatorSymbol.md +17 -0
  698. package/docs/api/functions/index.md +105 -0
  699. package/docs/api/functions/inspectRefkey.md +18 -0
  700. package/docs/api/functions/instantiateTakenMembersTo.md +20 -0
  701. package/docs/api/functions/isComponentCreator.md +19 -0
  702. package/docs/api/functions/isCustomContext.md +18 -0
  703. package/docs/api/functions/isIntrinsicElement.md +18 -0
  704. package/docs/api/functions/isKeyedChild.md +18 -0
  705. package/docs/api/functions/isLibrarySymbolReference.md +18 -0
  706. package/docs/api/functions/isMemberRefkey.md +18 -0
  707. package/docs/api/functions/isNamekey.md +18 -0
  708. package/docs/api/functions/isPrintHook.md +18 -0
  709. package/docs/api/functions/isRefkey.md +18 -0
  710. package/docs/api/functions/isRefkeyable.md +18 -0
  711. package/docs/api/functions/isRenderableObject.md +20 -0
  712. package/docs/api/functions/isSymbolRefkey.md +18 -0
  713. package/docs/api/functions/join.md +33 -0
  714. package/docs/api/functions/mapJoin.md +106 -0
  715. package/docs/api/functions/memberRefkey.md +27 -0
  716. package/docs/api/functions/memo.md +29 -0
  717. package/docs/api/functions/mergeProps.md +64 -0
  718. package/docs/api/functions/moveTakenMembersTo.md +18 -0
  719. package/docs/api/functions/namekey.md +41 -0
  720. package/docs/api/functions/nextReactiveId.md +19 -0
  721. package/docs/api/functions/notifyContentState.md +17 -0
  722. package/docs/api/functions/onCleanup.md +26 -0
  723. package/docs/api/functions/printTree.md +31 -0
  724. package/docs/api/functions/reactivePropertyRefId.md +21 -0
  725. package/docs/api/functions/ref.md +21 -0
  726. package/docs/api/functions/refId.md +18 -0
  727. package/docs/api/functions/refkey.md +24 -0
  728. package/docs/api/functions/render.md +31 -0
  729. package/docs/api/functions/renderAsync.md +31 -0
  730. package/docs/api/functions/renderTree.md +18 -0
  731. package/docs/api/functions/reportDiagnostics.md +18 -0
  732. package/docs/api/functions/resetRefIdCounter.md +17 -0
  733. package/docs/api/functions/resolve.md +31 -0
  734. package/docs/api/functions/root.md +25 -0
  735. package/docs/api/functions/shallowReactive.md +18 -0
  736. package/docs/api/functions/shallowRef.md +21 -0
  737. package/docs/api/functions/sourceFilesForTree.md +31 -0
  738. package/docs/api/functions/splitProps.md +19 -0
  739. package/docs/api/functions/stc.md +18 -0
  740. package/docs/api/functions/sti.md +18 -0
  741. package/docs/api/functions/symbolForRefkey.md +24 -0
  742. package/docs/api/functions/taggedComponent.md +19 -0
  743. package/docs/api/functions/takeSymbols.md +18 -0
  744. package/docs/api/functions/text.md +19 -0
  745. package/docs/api/functions/toRef.md +20 -0
  746. package/docs/api/functions/toRefkey.md +18 -0
  747. package/docs/api/functions/toRefs.md +20 -0
  748. package/docs/api/functions/traverseOutput.md +21 -0
  749. package/docs/api/functions/unresolvedRefkey.md +18 -0
  750. package/docs/api/functions/untrack.md +18 -0
  751. package/docs/api/functions/useContext.md +18 -0
  752. package/docs/api/functions/useFormatOptions.md +18 -0
  753. package/docs/api/functions/useMemberContext.md +17 -0
  754. package/docs/api/functions/useMemberScope.md +17 -0
  755. package/docs/api/functions/writeOutput.md +21 -0
  756. package/docs/api/index.md +9 -0
  757. package/docs/api/testing/functions/createTestWrapper.md +70 -0
  758. package/docs/api/testing/functions/d.md +21 -0
  759. package/docs/api/testing/functions/dedent.md +18 -0
  760. package/docs/api/testing/functions/index.md +6 -0
  761. package/docs/api/testing/functions/renderToString.md +20 -0
  762. package/docs/api/testing/index.md +4 -0
  763. package/docs/api/testing/types/TestWrapper.md +10 -0
  764. package/docs/api/testing/types/ToRenderToOptions.md +24 -0
  765. package/docs/api/testing/types/index.md +4 -0
  766. package/docs/api/types/AlignIntrinsicElement.md +5 -0
  767. package/docs/api/types/AppendRegionProps.md +5 -0
  768. package/docs/api/types/BaseListProps.md +21 -0
  769. package/docs/api/types/BasePartProps.md +10 -0
  770. package/docs/api/types/BasicScope.md +15 -0
  771. package/docs/api/types/BasicSymbol.md +18 -0
  772. package/docs/api/types/Binder.md +18 -0
  773. package/docs/api/types/BinderOptions.md +7 -0
  774. package/docs/api/types/BrIntrinsicElement.md +5 -0
  775. package/docs/api/types/BreakParentIntrinsicElement.md +5 -0
  776. package/docs/api/types/Child.md +5 -0
  777. package/docs/api/types/Children.md +5 -0
  778. package/docs/api/types/ChildrenOptions.md +7 -0
  779. package/docs/api/types/CommonFormatOptions.md +8 -0
  780. package/docs/api/types/Component.md +8 -0
  781. package/docs/api/types/ComponentContext.md +11 -0
  782. package/docs/api/types/ComponentCreator.md +11 -0
  783. package/docs/api/types/ComponentDefinition.md +7 -0
  784. package/docs/api/types/ContentOutputFile.md +10 -0
  785. package/docs/api/types/ContentSlot.md +12 -0
  786. package/docs/api/types/Context.md +19 -0
  787. package/docs/api/types/ContextProviderProps.md +8 -0
  788. package/docs/api/types/CopyFileContext.md +8 -0
  789. package/docs/api/types/CopyOutputFile.md +9 -0
  790. package/docs/api/types/CustomContext.md +10 -0
  791. package/docs/api/types/CustomContextChildrenCallback.md +5 -0
  792. package/docs/api/types/DeclarationProps.md +5 -0
  793. package/docs/api/types/DedentIntrinsicElement.md +5 -0
  794. package/docs/api/types/DedentToRootIntrinsicElement.md +5 -0
  795. package/docs/api/types/Diagnostic.md +11 -0
  796. package/docs/api/types/DiagnosticHandle.md +7 -0
  797. package/docs/api/types/DiagnosticInput.md +10 -0
  798. package/docs/api/types/DiagnosticSeverity.md +5 -0
  799. package/docs/api/types/DiagnosticStackEntry.md +9 -0
  800. package/docs/api/types/DiagnosticsCollector.md +8 -0
  801. package/docs/api/types/Disposable_2.md +7 -0
  802. package/docs/api/types/EffectDebugOptions.md +8 -0
  803. package/docs/api/types/EffectOptions.md +7 -0
  804. package/docs/api/types/ElementCache.md +5 -0
  805. package/docs/api/types/ElementCacheKey.md +5 -0
  806. package/docs/api/types/FillIntrinsicElement.md +5 -0
  807. package/docs/api/types/ForCallbackArgs.md +5 -0
  808. package/docs/api/types/ForSupportedCollections.md +5 -0
  809. package/docs/api/types/GroupIntrinsicElement.md +5 -0
  810. package/docs/api/types/HardlineIntrinsicElement.md +5 -0
  811. package/docs/api/types/HbrIntrinsicElement.md +5 -0
  812. package/docs/api/types/IfBreakIntrinsicElement.md +5 -0
  813. package/docs/api/types/IndentIfBreakIntrinsicElement.md +5 -0
  814. package/docs/api/types/IndentIntrinsicElement.md +5 -0
  815. package/docs/api/types/IntrinsicElement.md +5 -0
  816. package/docs/api/types/IntrinsicElementBase.md +9 -0
  817. package/docs/api/types/IntrinsicElements.md +26 -0
  818. package/docs/api/types/JoinOptions.md +9 -0
  819. package/docs/api/types/LbrIntrinsicElement.md +5 -0
  820. package/docs/api/types/LibrarySymbolReference.md +13 -0
  821. package/docs/api/types/LineIntrinsicElement.md +5 -0
  822. package/docs/api/types/LineSuffixBoundaryIntrinsicElement.md +5 -0
  823. package/docs/api/types/LineSuffixIntrinsicElement.md +5 -0
  824. package/docs/api/types/LiterallineIntrinsicElement.md +5 -0
  825. package/docs/api/types/MakeChildrenOptional.md +7 -0
  826. package/docs/api/types/MarkAsRootIntrinsicElement.md +5 -0
  827. package/docs/api/types/MatchProps.md +9 -0
  828. package/docs/api/types/MemberDeclarationProps.md +5 -0
  829. package/docs/api/types/MemberDescriptor.md +10 -0
  830. package/docs/api/types/MemberRefkey.md +10 -0
  831. package/docs/api/types/MemberResolutionContext.md +10 -0
  832. package/docs/api/types/MemberResolver.md +32 -0
  833. package/docs/api/types/MemberScopeProps.md +5 -0
  834. package/docs/api/types/Metadata.md +5 -0
  835. package/docs/api/types/NameConflictResolver.md +27 -0
  836. package/docs/api/types/NamePolicy.md +8 -0
  837. package/docs/api/types/NamePolicyGetter.md +9 -0
  838. package/docs/api/types/Namekey.md +10 -0
  839. package/docs/api/types/NamekeyOptions.md +8 -0
  840. package/docs/api/types/OnReactiveSetAddCallback.md +5 -0
  841. package/docs/api/types/OnReactiveSetDeleteCallback.md +5 -0
  842. package/docs/api/types/OutputDeclarationSpace.md +13 -0
  843. package/docs/api/types/OutputDirectory.md +59 -0
  844. package/docs/api/types/OutputFile.md +5 -0
  845. package/docs/api/types/OutputFileBase.md +8 -0
  846. package/docs/api/types/OutputMemberSpace.md +13 -0
  847. package/docs/api/types/OutputScope.md +33 -0
  848. package/docs/api/types/OutputScopeOptions.md +9 -0
  849. package/docs/api/types/OutputSpace.md +7 -0
  850. package/docs/api/types/OutputSymbol.md +78 -0
  851. package/docs/api/types/OutputSymbolOptions.md +16 -0
  852. package/docs/api/types/OutputVisitor.md +10 -0
  853. package/docs/api/types/PrintHook.md +10 -0
  854. package/docs/api/types/PrintTreeOptions.md +11 -0
  855. package/docs/api/types/Props.md +5 -0
  856. package/docs/api/types/ReactiveUnionSet.md +20 -0
  857. package/docs/api/types/ReactiveUnionSetOptions.md +8 -0
  858. package/docs/api/types/Refkey.md +5 -0
  859. package/docs/api/types/Refkeyable.md +5 -0
  860. package/docs/api/types/RefkeyableObject.md +7 -0
  861. package/docs/api/types/RenderableObject.md +9 -0
  862. package/docs/api/types/RenderedTextTree.md +5 -0
  863. package/docs/api/types/ResolutionResult.md +39 -0
  864. package/docs/api/types/ResolveDeclarationByKeyOptions.md +7 -0
  865. package/docs/api/types/Resource.md +11 -0
  866. package/docs/api/types/RootOptions.md +7 -0
  867. package/docs/api/types/SbrIntrinsicElement.md +5 -0
  868. package/docs/api/types/ScopeProps.md +5 -0
  869. package/docs/api/types/SoftlineIntrinsicElement.md +5 -0
  870. package/docs/api/types/SourceLocation.md +9 -0
  871. package/docs/api/types/SplitProps.md +12 -0
  872. package/docs/api/types/StcComponentCreator.md +9 -0
  873. package/docs/api/types/StcSignature.md +5 -0
  874. package/docs/api/types/StiComponentCreator.md +9 -0
  875. package/docs/api/types/StiSignature.md +7 -0
  876. package/docs/api/types/SymbolCreator.md +15 -0
  877. package/docs/api/types/SymbolRefkey.md +9 -0
  878. package/docs/api/types/SymbolSlot.md +12 -0
  879. package/docs/api/types/SymbolTable.md +15 -0
  880. package/docs/api/types/TakeSymbolCallback.md +7 -0
  881. package/docs/api/types/TakeSymbolsCallback.md +7 -0
  882. package/docs/api/types/Tap.md +11 -0
  883. package/docs/api/types/TapHandler.md +9 -0
  884. package/docs/api/types/Tapper.md +9 -0
  885. package/docs/api/types/TemplateVariableProps.md +5 -0
  886. package/docs/api/types/index.md +122 -0
  887. package/docs/api/variables/FormatOptions.md +5 -0
  888. package/docs/api/variables/Match.md +7 -0
  889. package/docs/api/variables/REFKEYABLE.md +5 -0
  890. package/docs/api/variables/RENDERABLE.md +5 -0
  891. package/docs/api/variables/TO_SYMBOL.md +39 -0
  892. package/docs/api/variables/contextsByKey.md +5 -0
  893. package/docs/api/variables/index.md +11 -0
  894. package/docs/api/variables/intrinsicElementKey.md +5 -0
  895. package/docs/api/variables/matchTag.md +5 -0
  896. package/docs/api/variables/printHookTag.md +7 -0
  897. package/docs/components.md +97 -0
  898. package/docs/context.md +67 -0
  899. package/docs/control-flow.md +5 -0
  900. package/docs/debugging.md +105 -0
  901. package/docs/formatting.md +99 -0
  902. package/docs/guides/language-package-guide.md +593 -0
  903. package/docs/guides/references-and-refkeys.md +210 -0
  904. package/docs/guides/style-guide.md +244 -0
  905. package/docs/index.md +22 -0
  906. package/docs/reactivity.md +68 -0
  907. package/docs/rendering.md +41 -0
  908. package/docs/symbols-and-scopes.md +180 -0
  909. package/package.json +16 -6
  910. package/src/binder.ts +154 -41
  911. package/src/components/AccessExpression.test.tsx +132 -0
  912. package/src/components/AccessExpression.tsx +344 -0
  913. package/src/components/Block.tsx +12 -0
  914. package/src/components/For.tsx +14 -10
  915. package/src/components/List.tsx +18 -5
  916. package/src/components/MemberDeclaration.tsx +6 -6
  917. package/src/components/MemberName.tsx +6 -0
  918. package/src/components/MemberScope.tsx +5 -0
  919. package/src/components/Output.tsx +4 -1
  920. package/src/components/Prose.tsx +1 -1
  921. package/src/components/Scope.tsx +8 -0
  922. package/src/components/SourceDirectory.tsx +1 -2
  923. package/src/components/SourceFile.tsx +22 -2
  924. package/src/components/Switch.tsx +11 -7
  925. package/src/components/index.tsx +1 -0
  926. package/src/content-slot.tsx +2 -2
  927. package/src/context/binder.ts +4 -0
  928. package/src/context/format-options.ts +14 -1
  929. package/src/context/scope.ts +4 -0
  930. package/src/context/source-directory.ts +9 -0
  931. package/src/context.ts +3 -3
  932. package/src/debug/cli.ts +3 -2
  933. package/src/debug/diagnostics-broadcast.test.tsx +98 -0
  934. package/src/debug/diagnostics.test.tsx +3 -2
  935. package/src/debug/effects.test.tsx +241 -36
  936. package/src/debug/effects.ts +202 -64
  937. package/src/debug/files.test.tsx +15 -35
  938. package/src/debug/files.ts +11 -11
  939. package/src/debug/index.ts +6 -0
  940. package/src/debug/message-format.test.tsx +759 -0
  941. package/src/debug/render-tree-orphans.test.tsx +344 -0
  942. package/src/debug/render.test.tsx +96 -118
  943. package/src/debug/render.ts +196 -125
  944. package/src/debug/source-map.browser.ts +30 -0
  945. package/src/debug/source-map.ts +135 -0
  946. package/src/debug/symbols.test.tsx +19 -20
  947. package/src/debug/symbols.ts +107 -15
  948. package/src/debug/trace-writer.ts +984 -0
  949. package/src/debug/trace.ts +46 -32
  950. package/src/devtools/devtools-protocol.ts +361 -176
  951. package/src/devtools/devtools-server.browser.ts +4 -9
  952. package/src/devtools/devtools-server.ts +226 -33
  953. package/src/devtools/devtools-transport.ts +4 -4
  954. package/src/devtools-entry.browser.ts +11 -15
  955. package/src/devtools-entry.ts +9 -15
  956. package/src/diagnostics.ts +44 -22
  957. package/src/host/node-host.browser.ts +23 -0
  958. package/src/host/node-host.ts +22 -0
  959. package/src/index.ts +0 -1
  960. package/src/library-symbol-reference.ts +52 -0
  961. package/src/name-policy.ts +30 -3
  962. package/src/reactive-union-set.ts +14 -3
  963. package/src/reactivity.ts +354 -171
  964. package/src/render-stack.ts +9 -3
  965. package/src/render.ts +116 -38
  966. package/src/scheduler.ts +167 -24
  967. package/src/symbols/output-scope.ts +34 -3
  968. package/src/symbols/output-space.ts +13 -0
  969. package/src/symbols/output-symbol.ts +186 -24
  970. package/src/symbols/symbol-flow.ts +8 -2
  971. package/src/symbols/symbol-slot.test.tsx +28 -1
  972. package/src/symbols/symbol-slot.tsx +8 -0
  973. package/src/symbols/symbol-table.ts +13 -3
  974. package/src/utils.tsx +9 -8
  975. package/src/write-output.ts +6 -5
  976. package/temp/api-testing.json +673 -0
  977. package/temp/api.json +1333 -100
  978. package/test/browser-build.test.ts +71 -78
  979. package/test/lazy-isempty.test.tsx +106 -0
  980. package/test/reactive-union-set-disposers.test.tsx +112 -0
  981. package/test/reactivity/shallow-reactive.test.tsx +60 -0
  982. package/test/scheduler-extended.test.tsx +122 -0
  983. package/test/scheduler.test.tsx +50 -0
  984. package/test/symbols/deconflicted-name.test.ts +120 -0
  985. package/test/symbols/output-scope.test.ts +38 -0
  986. package/testing/create-test-wrapper.tsx +81 -2
  987. package/testing/devtools-utils.ts +46 -4
  988. package/testing/extend-expect.ts +22 -1
  989. package/testing/index.ts +1 -1
  990. package/testing/render.ts +9 -0
  991. package/testing/vitest.d.ts +18 -3
  992. package/vitest.config.ts +8 -0
package/temp/api.json CHANGED
@@ -138,6 +138,448 @@
138
138
  "name": "",
139
139
  "preserveMemberOrder": false,
140
140
  "members": [
141
+ {
142
+ "kind": "Interface",
143
+ "canonicalReference": "@alloy-js/core!AccessExpressionConfig:interface",
144
+ "docComment": "/**\n * Configuration for creating a language-specific access expression component.\n *\n * @typeParam TPartProps - The Part component's props type (extends BasePartProps)\n *\n * @typeParam TPart - The descriptor type that formatPart receives\n */\n",
145
+ "excerptTokens": [
146
+ {
147
+ "kind": "Content",
148
+ "text": "export interface AccessExpressionConfig<TPartProps extends "
149
+ },
150
+ {
151
+ "kind": "Reference",
152
+ "text": "BasePartProps",
153
+ "canonicalReference": "@alloy-js/core!BasePartProps:interface"
154
+ },
155
+ {
156
+ "kind": "Content",
157
+ "text": ", TPart> "
158
+ }
159
+ ],
160
+ "fileUrlPath": "src/components/AccessExpression.tsx",
161
+ "releaseTag": "Public",
162
+ "typeParameters": [
163
+ {
164
+ "typeParameterName": "TPartProps",
165
+ "constraintTokenRange": {
166
+ "startIndex": 1,
167
+ "endIndex": 2
168
+ },
169
+ "defaultTypeTokenRange": {
170
+ "startIndex": 0,
171
+ "endIndex": 0
172
+ }
173
+ },
174
+ {
175
+ "typeParameterName": "TPart",
176
+ "constraintTokenRange": {
177
+ "startIndex": 0,
178
+ "endIndex": 0
179
+ },
180
+ "defaultTypeTokenRange": {
181
+ "startIndex": 0,
182
+ "endIndex": 0
183
+ }
184
+ }
185
+ ],
186
+ "name": "AccessExpressionConfig",
187
+ "preserveMemberOrder": false,
188
+ "members": [
189
+ {
190
+ "kind": "MethodSignature",
191
+ "canonicalReference": "@alloy-js/core!AccessExpressionConfig#canUseCallChains:member(1)",
192
+ "docComment": "/**\n * Additional check for whether call chain formatting should be used.\n * Called only when `isCallPart` is provided and more than one call is detected.\n * Return false to force linear formatting (e.g., TypeScript disables call\n * chains when any part has `await`).\n * Defaults to `() => true`.\n */\n",
193
+ "excerptTokens": [
194
+ {
195
+ "kind": "Content",
196
+ "text": "canUseCallChains?(parts: "
197
+ },
198
+ {
199
+ "kind": "Content",
200
+ "text": "TPart[]"
201
+ },
202
+ {
203
+ "kind": "Content",
204
+ "text": "): "
205
+ },
206
+ {
207
+ "kind": "Content",
208
+ "text": "boolean"
209
+ },
210
+ {
211
+ "kind": "Content",
212
+ "text": ";"
213
+ }
214
+ ],
215
+ "isOptional": true,
216
+ "returnTypeTokenRange": {
217
+ "startIndex": 3,
218
+ "endIndex": 4
219
+ },
220
+ "releaseTag": "Public",
221
+ "overloadIndex": 1,
222
+ "parameters": [
223
+ {
224
+ "parameterName": "parts",
225
+ "parameterTypeTokenRange": {
226
+ "startIndex": 1,
227
+ "endIndex": 2
228
+ },
229
+ "isOptional": false
230
+ }
231
+ ],
232
+ "name": "canUseCallChains"
233
+ },
234
+ {
235
+ "kind": "MethodSignature",
236
+ "canonicalReference": "@alloy-js/core!AccessExpressionConfig#createDescriptor:member(1)",
237
+ "docComment": "/**\n * Convert Part props + resolved symbol into a plain descriptor object.\n * Called once per Part during children processing. The returned descriptor\n * is wrapped in a computed + getter delegation for reactive optimization.\n */\n",
238
+ "excerptTokens": [
239
+ {
240
+ "kind": "Content",
241
+ "text": "createDescriptor(props: "
242
+ },
243
+ {
244
+ "kind": "Content",
245
+ "text": "TPartProps"
246
+ },
247
+ {
248
+ "kind": "Content",
249
+ "text": ", symbol: "
250
+ },
251
+ {
252
+ "kind": "Reference",
253
+ "text": "OutputSymbol",
254
+ "canonicalReference": "@alloy-js/core!OutputSymbol:class"
255
+ },
256
+ {
257
+ "kind": "Content",
258
+ "text": " | undefined"
259
+ },
260
+ {
261
+ "kind": "Content",
262
+ "text": ", first: "
263
+ },
264
+ {
265
+ "kind": "Content",
266
+ "text": "boolean"
267
+ },
268
+ {
269
+ "kind": "Content",
270
+ "text": "): "
271
+ },
272
+ {
273
+ "kind": "Content",
274
+ "text": "TPart"
275
+ },
276
+ {
277
+ "kind": "Content",
278
+ "text": ";"
279
+ }
280
+ ],
281
+ "isOptional": false,
282
+ "returnTypeTokenRange": {
283
+ "startIndex": 8,
284
+ "endIndex": 9
285
+ },
286
+ "releaseTag": "Public",
287
+ "overloadIndex": 1,
288
+ "parameters": [
289
+ {
290
+ "parameterName": "props",
291
+ "parameterTypeTokenRange": {
292
+ "startIndex": 1,
293
+ "endIndex": 2
294
+ },
295
+ "isOptional": false
296
+ },
297
+ {
298
+ "parameterName": "symbol",
299
+ "parameterTypeTokenRange": {
300
+ "startIndex": 3,
301
+ "endIndex": 5
302
+ },
303
+ "isOptional": false
304
+ },
305
+ {
306
+ "parameterName": "first",
307
+ "parameterTypeTokenRange": {
308
+ "startIndex": 6,
309
+ "endIndex": 7
310
+ },
311
+ "isOptional": false
312
+ }
313
+ ],
314
+ "name": "createDescriptor"
315
+ },
316
+ {
317
+ "kind": "MethodSignature",
318
+ "canonicalReference": "@alloy-js/core!AccessExpressionConfig#formatPart:member(1)",
319
+ "docComment": "/**\n * Format a non-first part given its descriptor and the previous part.\n * Returns JSX children for that segment (e.g., `.foo`, `?.bar`, `[idx]`, `(args)`).\n * `inCallChain` is true when rendering inside a chunked call chain.\n */\n",
320
+ "excerptTokens": [
321
+ {
322
+ "kind": "Content",
323
+ "text": "formatPart(part: "
324
+ },
325
+ {
326
+ "kind": "Content",
327
+ "text": "TPart"
328
+ },
329
+ {
330
+ "kind": "Content",
331
+ "text": ", prevPart: "
332
+ },
333
+ {
334
+ "kind": "Content",
335
+ "text": "TPart"
336
+ },
337
+ {
338
+ "kind": "Content",
339
+ "text": ", inCallChain: "
340
+ },
341
+ {
342
+ "kind": "Content",
343
+ "text": "boolean"
344
+ },
345
+ {
346
+ "kind": "Content",
347
+ "text": "): "
348
+ },
349
+ {
350
+ "kind": "Reference",
351
+ "text": "Children",
352
+ "canonicalReference": "@alloy-js/core!Children:type"
353
+ },
354
+ {
355
+ "kind": "Content",
356
+ "text": ";"
357
+ }
358
+ ],
359
+ "isOptional": false,
360
+ "returnTypeTokenRange": {
361
+ "startIndex": 7,
362
+ "endIndex": 8
363
+ },
364
+ "releaseTag": "Public",
365
+ "overloadIndex": 1,
366
+ "parameters": [
367
+ {
368
+ "parameterName": "part",
369
+ "parameterTypeTokenRange": {
370
+ "startIndex": 1,
371
+ "endIndex": 2
372
+ },
373
+ "isOptional": false
374
+ },
375
+ {
376
+ "parameterName": "prevPart",
377
+ "parameterTypeTokenRange": {
378
+ "startIndex": 3,
379
+ "endIndex": 4
380
+ },
381
+ "isOptional": false
382
+ },
383
+ {
384
+ "parameterName": "inCallChain",
385
+ "parameterTypeTokenRange": {
386
+ "startIndex": 5,
387
+ "endIndex": 6
388
+ },
389
+ "isOptional": false
390
+ }
391
+ ],
392
+ "name": "formatPart"
393
+ },
394
+ {
395
+ "kind": "MethodSignature",
396
+ "canonicalReference": "@alloy-js/core!AccessExpressionConfig#getBase:member(1)",
397
+ "docComment": "/**\n * Extract the base content from the first part (the leftmost identifier).\n */\n",
398
+ "excerptTokens": [
399
+ {
400
+ "kind": "Content",
401
+ "text": "getBase(part: "
402
+ },
403
+ {
404
+ "kind": "Content",
405
+ "text": "TPart"
406
+ },
407
+ {
408
+ "kind": "Content",
409
+ "text": "): "
410
+ },
411
+ {
412
+ "kind": "Reference",
413
+ "text": "Children",
414
+ "canonicalReference": "@alloy-js/core!Children:type"
415
+ },
416
+ {
417
+ "kind": "Content",
418
+ "text": ";"
419
+ }
420
+ ],
421
+ "isOptional": false,
422
+ "returnTypeTokenRange": {
423
+ "startIndex": 3,
424
+ "endIndex": 4
425
+ },
426
+ "releaseTag": "Public",
427
+ "overloadIndex": 1,
428
+ "parameters": [
429
+ {
430
+ "parameterName": "part",
431
+ "parameterTypeTokenRange": {
432
+ "startIndex": 1,
433
+ "endIndex": 2
434
+ },
435
+ "isOptional": false
436
+ }
437
+ ],
438
+ "name": "getBase"
439
+ },
440
+ {
441
+ "kind": "MethodSignature",
442
+ "canonicalReference": "@alloy-js/core!AccessExpressionConfig#isCallPart:member(1)",
443
+ "docComment": "/**\n * Identify which parts are function calls, for call chain detection.\n * When provided, the factory uses the chunked call chain algorithm\n * (line breaks after each call group) when more than one call is detected.\n * When omitted, the expression is always formatted linearly.\n */\n",
444
+ "excerptTokens": [
445
+ {
446
+ "kind": "Content",
447
+ "text": "isCallPart?(part: "
448
+ },
449
+ {
450
+ "kind": "Content",
451
+ "text": "TPart"
452
+ },
453
+ {
454
+ "kind": "Content",
455
+ "text": "): "
456
+ },
457
+ {
458
+ "kind": "Content",
459
+ "text": "boolean"
460
+ },
461
+ {
462
+ "kind": "Content",
463
+ "text": ";"
464
+ }
465
+ ],
466
+ "isOptional": true,
467
+ "returnTypeTokenRange": {
468
+ "startIndex": 3,
469
+ "endIndex": 4
470
+ },
471
+ "releaseTag": "Public",
472
+ "overloadIndex": 1,
473
+ "parameters": [
474
+ {
475
+ "parameterName": "part",
476
+ "parameterTypeTokenRange": {
477
+ "startIndex": 1,
478
+ "endIndex": 2
479
+ },
480
+ "isOptional": false
481
+ }
482
+ ],
483
+ "name": "isCallPart"
484
+ },
485
+ {
486
+ "kind": "MethodSignature",
487
+ "canonicalReference": "@alloy-js/core!AccessExpressionConfig#wrapPartResult:member(1)",
488
+ "docComment": "/**\n * Post-process the accumulated expression after each part in linear\n * (non-call-chain) mode. Use this for language-specific wrapping like\n * TypeScript's `await` which wraps the entire expression so far.\n * Defaults to identity (returns expression unchanged).\n */\n",
489
+ "excerptTokens": [
490
+ {
491
+ "kind": "Content",
492
+ "text": "wrapPartResult?(expression: "
493
+ },
494
+ {
495
+ "kind": "Reference",
496
+ "text": "Children",
497
+ "canonicalReference": "@alloy-js/core!Children:type"
498
+ },
499
+ {
500
+ "kind": "Content",
501
+ "text": ", part: "
502
+ },
503
+ {
504
+ "kind": "Content",
505
+ "text": "TPart"
506
+ },
507
+ {
508
+ "kind": "Content",
509
+ "text": ", index: "
510
+ },
511
+ {
512
+ "kind": "Content",
513
+ "text": "number"
514
+ },
515
+ {
516
+ "kind": "Content",
517
+ "text": ", isLast: "
518
+ },
519
+ {
520
+ "kind": "Content",
521
+ "text": "boolean"
522
+ },
523
+ {
524
+ "kind": "Content",
525
+ "text": "): "
526
+ },
527
+ {
528
+ "kind": "Reference",
529
+ "text": "Children",
530
+ "canonicalReference": "@alloy-js/core!Children:type"
531
+ },
532
+ {
533
+ "kind": "Content",
534
+ "text": ";"
535
+ }
536
+ ],
537
+ "isOptional": true,
538
+ "returnTypeTokenRange": {
539
+ "startIndex": 9,
540
+ "endIndex": 10
541
+ },
542
+ "releaseTag": "Public",
543
+ "overloadIndex": 1,
544
+ "parameters": [
545
+ {
546
+ "parameterName": "expression",
547
+ "parameterTypeTokenRange": {
548
+ "startIndex": 1,
549
+ "endIndex": 2
550
+ },
551
+ "isOptional": false
552
+ },
553
+ {
554
+ "parameterName": "part",
555
+ "parameterTypeTokenRange": {
556
+ "startIndex": 3,
557
+ "endIndex": 4
558
+ },
559
+ "isOptional": false
560
+ },
561
+ {
562
+ "parameterName": "index",
563
+ "parameterTypeTokenRange": {
564
+ "startIndex": 5,
565
+ "endIndex": 6
566
+ },
567
+ "isOptional": false
568
+ },
569
+ {
570
+ "parameterName": "isLast",
571
+ "parameterTypeTokenRange": {
572
+ "startIndex": 7,
573
+ "endIndex": 8
574
+ },
575
+ "isOptional": false
576
+ }
577
+ ],
578
+ "name": "wrapPartResult"
579
+ }
580
+ ],
581
+ "extendsTokenRanges": []
582
+ },
141
583
  {
142
584
  "kind": "TypeAlias",
143
585
  "canonicalReference": "@alloy-js/core!AlignIntrinsicElement:type",
@@ -854,7 +1296,7 @@
854
1296
  {
855
1297
  "kind": "PropertySignature",
856
1298
  "canonicalReference": "@alloy-js/core!BaseListProps#enderPunctuation:member",
857
- "docComment": "/**\n * Place the join punctuation at the end, but without a line break.\n */\n",
1299
+ "docComment": "/**\n * Place the join punctuation at the end, without a line break. The punctuation\n * is emitted unconditionally in flat and broken modes.\n *\n * To add trailing punctuation only in broken mode, use `ender` with `<ifBreak>`\n * inside a `<group>` with a non-hardline joiner (e.g. `line`):\n *\n * ```tsx\n * <group>\n * <List comma line ender={<ifBreak>,</ifBreak>}>...</List>\n * </group>\n * ```\n *\n */\n",
858
1300
  "excerptTokens": [
859
1301
  {
860
1302
  "kind": "Content",
@@ -1095,28 +1537,102 @@
1095
1537
  "canonicalReference": "@alloy-js/core!JoinOptions:interface"
1096
1538
  },
1097
1539
  {
1098
- "kind": "Content",
1099
- "text": ";"
1100
- }
1101
- ],
1102
- "fileUrlPath": "src/utils.tsx",
1103
- "returnTypeTokenRange": {
1104
- "startIndex": 3,
1105
- "endIndex": 4
1106
- },
1107
- "releaseTag": "Public",
1108
- "overloadIndex": 1,
1109
- "parameters": [
1110
- {
1111
- "parameterName": "props",
1112
- "parameterTypeTokenRange": {
1540
+ "kind": "Content",
1541
+ "text": ";"
1542
+ }
1543
+ ],
1544
+ "fileUrlPath": "src/utils.tsx",
1545
+ "returnTypeTokenRange": {
1546
+ "startIndex": 3,
1547
+ "endIndex": 4
1548
+ },
1549
+ "releaseTag": "Public",
1550
+ "overloadIndex": 1,
1551
+ "parameters": [
1552
+ {
1553
+ "parameterName": "props",
1554
+ "parameterTypeTokenRange": {
1555
+ "startIndex": 1,
1556
+ "endIndex": 2
1557
+ },
1558
+ "isOptional": false
1559
+ }
1560
+ ],
1561
+ "name": "baseListPropsToMapJoinArgs"
1562
+ },
1563
+ {
1564
+ "kind": "Interface",
1565
+ "canonicalReference": "@alloy-js/core!BasePartProps:interface",
1566
+ "docComment": "/**\n * Base props that all language-specific Part components must include.\n * Language packages extend this with additional props.\n */\n",
1567
+ "excerptTokens": [
1568
+ {
1569
+ "kind": "Content",
1570
+ "text": "export interface BasePartProps "
1571
+ }
1572
+ ],
1573
+ "fileUrlPath": "src/components/AccessExpression.tsx",
1574
+ "releaseTag": "Public",
1575
+ "name": "BasePartProps",
1576
+ "preserveMemberOrder": false,
1577
+ "members": [
1578
+ {
1579
+ "kind": "PropertySignature",
1580
+ "canonicalReference": "@alloy-js/core!BasePartProps#refkey:member",
1581
+ "docComment": "",
1582
+ "excerptTokens": [
1583
+ {
1584
+ "kind": "Content",
1585
+ "text": "refkey?: "
1586
+ },
1587
+ {
1588
+ "kind": "Reference",
1589
+ "text": "Refkeyable",
1590
+ "canonicalReference": "@alloy-js/core!Refkeyable:type"
1591
+ },
1592
+ {
1593
+ "kind": "Content",
1594
+ "text": ";"
1595
+ }
1596
+ ],
1597
+ "isReadonly": false,
1598
+ "isOptional": true,
1599
+ "releaseTag": "Public",
1600
+ "name": "refkey",
1601
+ "propertyTypeTokenRange": {
1602
+ "startIndex": 1,
1603
+ "endIndex": 2
1604
+ }
1605
+ },
1606
+ {
1607
+ "kind": "PropertySignature",
1608
+ "canonicalReference": "@alloy-js/core!BasePartProps#symbol:member",
1609
+ "docComment": "",
1610
+ "excerptTokens": [
1611
+ {
1612
+ "kind": "Content",
1613
+ "text": "symbol?: "
1614
+ },
1615
+ {
1616
+ "kind": "Reference",
1617
+ "text": "OutputSymbol",
1618
+ "canonicalReference": "@alloy-js/core!OutputSymbol:class"
1619
+ },
1620
+ {
1621
+ "kind": "Content",
1622
+ "text": ";"
1623
+ }
1624
+ ],
1625
+ "isReadonly": false,
1626
+ "isOptional": true,
1627
+ "releaseTag": "Public",
1628
+ "name": "symbol",
1629
+ "propertyTypeTokenRange": {
1113
1630
  "startIndex": 1,
1114
1631
  "endIndex": 2
1115
- },
1116
- "isOptional": false
1632
+ }
1117
1633
  }
1118
1634
  ],
1119
- "name": "baseListPropsToMapJoinArgs"
1635
+ "extendsTokenRanges": []
1120
1636
  },
1121
1637
  {
1122
1638
  "kind": "Class",
@@ -2010,7 +2526,7 @@
2010
2526
  {
2011
2527
  "kind": "Function",
2012
2528
  "canonicalReference": "@alloy-js/core!Block:function(1)",
2013
- "docComment": "/**\n * Create an indented block of source text. The block has `opener` text which is\n * added prior to the block, which defaults to `\"{\"`, and `closer` text which is\n * added after the block, which defaults to `\"}\"`.\n */\n",
2529
+ "docComment": "/**\n * Create an indented block of source text. The block has `opener` text which is\n * added prior to the block, which defaults to `\"{\"`, and `closer` text which is\n * added after the block, which defaults to `\"}\"`.\n *\n * @remarks\n *\n *\n *\n * When `children` is empty, `Block` renders as `{}` (opener immediately followed\n * by closer) with no indented content — no explicit empty check is needed before\n * passing children.\n *\n * @example\n * ```tsx\n * // Safe even when props.members is empty — renders `{}`\n * <Block>{props.members}</Block>\n * ```\n *\n */\n",
2014
2530
  "excerptTokens": [
2015
2531
  {
2016
2532
  "kind": "Content",
@@ -3634,6 +4150,33 @@
3634
4150
  "name": "Context",
3635
4151
  "preserveMemberOrder": false,
3636
4152
  "members": [
4153
+ {
4154
+ "kind": "PropertySignature",
4155
+ "canonicalReference": "@alloy-js/core!Context#_lastEmpty:member",
4156
+ "docComment": "/**\n * Cheap boolean tracking the last propagated empty state.\n * Used by notifyContentState() for early-return optimization\n * without requiring a reactive ref on every context.\n */\n",
4157
+ "excerptTokens": [
4158
+ {
4159
+ "kind": "Content",
4160
+ "text": "_lastEmpty: "
4161
+ },
4162
+ {
4163
+ "kind": "Content",
4164
+ "text": "boolean"
4165
+ },
4166
+ {
4167
+ "kind": "Content",
4168
+ "text": ";"
4169
+ }
4170
+ ],
4171
+ "isReadonly": false,
4172
+ "isOptional": false,
4173
+ "releaseTag": "Public",
4174
+ "name": "_lastEmpty",
4175
+ "propertyTypeTokenRange": {
4176
+ "startIndex": 1,
4177
+ "endIndex": 2
4178
+ }
4179
+ },
3637
4180
  {
3638
4181
  "kind": "PropertySignature",
3639
4182
  "canonicalReference": "@alloy-js/core!Context#childrenWithContent:member",
@@ -3732,7 +4275,7 @@
3732
4275
  "excerptTokens": [
3733
4276
  {
3734
4277
  "kind": "Content",
3735
- "text": "disposables: "
4278
+ "text": "disposables?: "
3736
4279
  },
3737
4280
  {
3738
4281
  "kind": "Reference",
@@ -3749,7 +4292,7 @@
3749
4292
  }
3750
4293
  ],
3751
4294
  "isReadonly": false,
3752
- "isOptional": false,
4295
+ "isOptional": true,
3753
4296
  "releaseTag": "Public",
3754
4297
  "name": "disposables",
3755
4298
  "propertyTypeTokenRange": {
@@ -3764,7 +4307,7 @@
3764
4307
  "excerptTokens": [
3765
4308
  {
3766
4309
  "kind": "Content",
3767
- "text": "elementCache: "
4310
+ "text": "elementCache?: "
3768
4311
  },
3769
4312
  {
3770
4313
  "kind": "Reference",
@@ -3777,7 +4320,7 @@
3777
4320
  }
3778
4321
  ],
3779
4322
  "isReadonly": false,
3780
- "isOptional": false,
4323
+ "isOptional": true,
3781
4324
  "releaseTag": "Public",
3782
4325
  "name": "elementCache",
3783
4326
  "propertyTypeTokenRange": {
@@ -3785,10 +4328,37 @@
3785
4328
  "endIndex": 2
3786
4329
  }
3787
4330
  },
4331
+ {
4332
+ "kind": "PropertySignature",
4333
+ "canonicalReference": "@alloy-js/core!Context#id:member",
4334
+ "docComment": "/**\n * Monotonic numeric ID for trace/debug correlation.\n */\n",
4335
+ "excerptTokens": [
4336
+ {
4337
+ "kind": "Content",
4338
+ "text": "id: "
4339
+ },
4340
+ {
4341
+ "kind": "Content",
4342
+ "text": "number"
4343
+ },
4344
+ {
4345
+ "kind": "Content",
4346
+ "text": ";"
4347
+ }
4348
+ ],
4349
+ "isReadonly": false,
4350
+ "isOptional": false,
4351
+ "releaseTag": "Public",
4352
+ "name": "id",
4353
+ "propertyTypeTokenRange": {
4354
+ "startIndex": 1,
4355
+ "endIndex": 2
4356
+ }
4357
+ },
3788
4358
  {
3789
4359
  "kind": "PropertySignature",
3790
4360
  "canonicalReference": "@alloy-js/core!Context#isEmpty:member",
3791
- "docComment": "/**\n * A ref that indicates whether the component is empty.\n */\n",
4361
+ "docComment": "/**\n * A ref that indicates whether the component is empty.\n * Only allocated when reactively observed (ContentSlot, mapJoin).\n */\n",
3792
4362
  "excerptTokens": [
3793
4363
  {
3794
4364
  "kind": "Content",
@@ -4368,6 +4938,129 @@
4368
4938
  }
4369
4939
  ]
4370
4940
  },
4941
+ {
4942
+ "kind": "Function",
4943
+ "canonicalReference": "@alloy-js/core!createAccessExpression:function(1)",
4944
+ "docComment": "/**\n * Create a language-specific access/member expression component pair.\n *\n * Returns `{ Expression, Part }` where:\n * - `Expression` is the main component that collects Part children and renders the chain\n * - `Part` is a no-op component whose props are consumed by Expression\n *\n * The factory handles:\n * - Children collection and Part filtering\n * - Symbol resolution (refkey → symbol via binder, single computed per part)\n * - Reactive optimization (getter delegation over single computed per part)\n * - Flattening nested Expression instances\n * - `takeSymbols()` to prevent symbol leakage\n * - Call chain detection and chunked formatting algorithm\n */\n",
4945
+ "excerptTokens": [
4946
+ {
4947
+ "kind": "Content",
4948
+ "text": "export declare function createAccessExpression<TPartProps extends "
4949
+ },
4950
+ {
4951
+ "kind": "Reference",
4952
+ "text": "BasePartProps",
4953
+ "canonicalReference": "@alloy-js/core!BasePartProps:interface"
4954
+ },
4955
+ {
4956
+ "kind": "Content",
4957
+ "text": ", TPart extends "
4958
+ },
4959
+ {
4960
+ "kind": "Reference",
4961
+ "text": "Record",
4962
+ "canonicalReference": "!Record:type"
4963
+ },
4964
+ {
4965
+ "kind": "Content",
4966
+ "text": "<string, unknown>"
4967
+ },
4968
+ {
4969
+ "kind": "Content",
4970
+ "text": ">(config: "
4971
+ },
4972
+ {
4973
+ "kind": "Reference",
4974
+ "text": "AccessExpressionConfig",
4975
+ "canonicalReference": "@alloy-js/core!AccessExpressionConfig:interface"
4976
+ },
4977
+ {
4978
+ "kind": "Content",
4979
+ "text": "<TPartProps, TPart>"
4980
+ },
4981
+ {
4982
+ "kind": "Content",
4983
+ "text": "): "
4984
+ },
4985
+ {
4986
+ "kind": "Content",
4987
+ "text": "{\n Expression: (props: {\n children: "
4988
+ },
4989
+ {
4990
+ "kind": "Reference",
4991
+ "text": "Children",
4992
+ "canonicalReference": "@alloy-js/core!Children:type"
4993
+ },
4994
+ {
4995
+ "kind": "Content",
4996
+ "text": ";\n }) => "
4997
+ },
4998
+ {
4999
+ "kind": "Reference",
5000
+ "text": "Children",
5001
+ "canonicalReference": "@alloy-js/core!Children:type"
5002
+ },
5003
+ {
5004
+ "kind": "Content",
5005
+ "text": ";\n Part: (_props: TPartProps) => void;\n registerOuterComponent: (component: "
5006
+ },
5007
+ {
5008
+ "kind": "Reference",
5009
+ "text": "ComponentDefinition",
5010
+ "canonicalReference": "@alloy-js/core!ComponentDefinition:interface"
5011
+ },
5012
+ {
5013
+ "kind": "Content",
5014
+ "text": "<any>) => void;\n}"
5015
+ },
5016
+ {
5017
+ "kind": "Content",
5018
+ "text": ";"
5019
+ }
5020
+ ],
5021
+ "fileUrlPath": "src/components/AccessExpression.tsx",
5022
+ "returnTypeTokenRange": {
5023
+ "startIndex": 9,
5024
+ "endIndex": 16
5025
+ },
5026
+ "releaseTag": "Public",
5027
+ "overloadIndex": 1,
5028
+ "parameters": [
5029
+ {
5030
+ "parameterName": "config",
5031
+ "parameterTypeTokenRange": {
5032
+ "startIndex": 6,
5033
+ "endIndex": 8
5034
+ },
5035
+ "isOptional": false
5036
+ }
5037
+ ],
5038
+ "typeParameters": [
5039
+ {
5040
+ "typeParameterName": "TPartProps",
5041
+ "constraintTokenRange": {
5042
+ "startIndex": 1,
5043
+ "endIndex": 2
5044
+ },
5045
+ "defaultTypeTokenRange": {
5046
+ "startIndex": 0,
5047
+ "endIndex": 0
5048
+ }
5049
+ },
5050
+ {
5051
+ "typeParameterName": "TPart",
5052
+ "constraintTokenRange": {
5053
+ "startIndex": 3,
5054
+ "endIndex": 5
5055
+ },
5056
+ "defaultTypeTokenRange": {
5057
+ "startIndex": 0,
5058
+ "endIndex": 0
5059
+ }
5060
+ }
5061
+ ],
5062
+ "name": "createAccessExpression"
5063
+ },
4371
5064
  {
4372
5065
  "kind": "Function",
4373
5066
  "canonicalReference": "@alloy-js/core!createAssignmentContext:function(1)",
@@ -4844,7 +5537,7 @@
4844
5537
  {
4845
5538
  "kind": "Function",
4846
5539
  "canonicalReference": "@alloy-js/core!createFormatOptionsContextFor:function(1)",
4847
- "docComment": "/**\n * Create a format options context for a specific file type\n */\n",
5540
+ "docComment": "/**\n * Create a format options context for a specific file type. Returns a\n * `Provider` component and a `useFormatOptions` hook.\n *\n * @remarks\n *\n *\n *\n * Merge precedence: `defaults` (lowest) → Provider `value` → `overrides`\n * argument to `useFormatOptions()` (highest). Undefined override values are\n * ignored.\n */\n",
4848
5541
  "excerptTokens": [
4849
5542
  {
4850
5543
  "kind": "Content",
@@ -5207,7 +5900,7 @@
5207
5900
  {
5208
5901
  "kind": "Function",
5209
5902
  "canonicalReference": "@alloy-js/core!createNamePolicy:function(1)",
5210
- "docComment": "",
5903
+ "docComment": "/**\n * Creates a name policy that transforms symbol names based on element kind.\n *\n * @remarks\n *\n *\n * `element` identifies the kind of declaration (e.g., `\"value\"`, `\"type\"`).\n * The set of valid element strings is defined by the language package.\n *\n * When `element` is `undefined` (outside a declaration context), {@link NamePolicy.getName}\n * and {@link NamePolicy.for} short-circuit and return the original name unchanged — the\n * namer callback is **not** invoked. The namer therefore always receives a defined `T`.\n * This means names outside a declaration context cannot be transformed by the policy.\n *\n * @example\n * ```ts\n * const policy = createNamePolicy((name, element) => {\n * if (element === \"value\") return toCamelCase(name);\n * if (element === \"type\") return toPascalCase(name);\n * return name;\n * });\n * <Output namePolicy={policy}>...</Output>\n * ```\n *\n */\n",
5211
5904
  "excerptTokens": [
5212
5905
  {
5213
5906
  "kind": "Content",
@@ -5223,7 +5916,7 @@
5223
5916
  },
5224
5917
  {
5225
5918
  "kind": "Content",
5226
- "text": "(name: string, elements: T) => string"
5919
+ "text": "(name: string, element: T) => string"
5227
5920
  },
5228
5921
  {
5229
5922
  "kind": "Content",
@@ -5587,7 +6280,7 @@
5587
6280
  {
5588
6281
  "kind": "Function",
5589
6282
  "canonicalReference": "@alloy-js/core!createScope:function(1)",
5590
- "docComment": "",
6283
+ "docComment": "/**\n * Construct a scope instance and register it with devtools. Prefer this over\n * calling `new` directly so that debugging tools can track the scope.\n *\n * @remarks\n *\n *\n *\n * Inside a component, obtain the current scope with `useScope()` and pass it\n * as the `parentScope` constructor argument so the new scope is wired into\n * the scope tree.\n *\n * @param ctor - The scope subclass constructor.\n *\n * @param args - Positional arguments forwarded directly to the scope\n * constructor; see {@link OutputScope} for the base-class constructor\n * signature.\n *\n * @example\n * ```tsx\n * function MyScope(props) {\n * const parentScope = useScope();\n * const scope = createScope(MyScope, \"scope-name\", parentScope);\n * return <Scope value={scope}>{props.children}</Scope>;\n * }\n * ```\n *\n */\n",
5591
6284
  "excerptTokens": [
5592
6285
  {
5593
6286
  "kind": "Content",
@@ -5848,7 +6541,7 @@
5848
6541
  {
5849
6542
  "kind": "Function",
5850
6543
  "canonicalReference": "@alloy-js/core!createSymbol:function(1)",
5851
- "docComment": "",
6544
+ "docComment": "/**\n * Construct a symbol instance and register it with devtools. Prefer this over\n * calling `new` directly so that debugging tools can track the symbol.\n *\n * @remarks\n *\n *\n *\n * Binder registration (via `useBinder()` + `notifySymbolCreated()`) happens\n * inside the `OutputSymbol` constructor regardless of whether you use\n * `createSymbol` or `new`. This helper only adds devtools registration.\n *\n * @param ctor - The symbol subclass constructor.\n *\n * @param args - Arguments forwarded to the constructor.\n */\n",
5852
6545
  "excerptTokens": [
5853
6546
  {
5854
6547
  "kind": "Content",
@@ -7718,57 +8411,108 @@
7718
8411
  },
7719
8412
  {
7720
8413
  "kind": "Content",
7721
- "text": " | "
8414
+ "text": " | "
8415
+ },
8416
+ {
8417
+ "kind": "Reference",
8418
+ "text": "Ref",
8419
+ "canonicalReference": "@vue/reactivity!Ref:interface"
8420
+ },
8421
+ {
8422
+ "kind": "Content",
8423
+ "text": "<"
8424
+ },
8425
+ {
8426
+ "kind": "Reference",
8427
+ "text": "OutputSymbol",
8428
+ "canonicalReference": "@alloy-js/core!OutputSymbol:class"
8429
+ },
8430
+ {
8431
+ "kind": "Content",
8432
+ "text": " | undefined>"
8433
+ },
8434
+ {
8435
+ "kind": "Content",
8436
+ "text": "): "
8437
+ },
8438
+ {
8439
+ "kind": "Content",
8440
+ "text": "void"
8441
+ },
8442
+ {
8443
+ "kind": "Content",
8444
+ "text": ";"
8445
+ }
8446
+ ],
8447
+ "fileUrlPath": "src/symbols/symbol-flow.ts",
8448
+ "returnTypeTokenRange": {
8449
+ "startIndex": 8,
8450
+ "endIndex": 9
8451
+ },
8452
+ "releaseTag": "Public",
8453
+ "overloadIndex": 1,
8454
+ "parameters": [
8455
+ {
8456
+ "parameterName": "symbol",
8457
+ "parameterTypeTokenRange": {
8458
+ "startIndex": 1,
8459
+ "endIndex": 7
8460
+ },
8461
+ "isOptional": false
8462
+ }
8463
+ ],
8464
+ "name": "emitSymbol"
8465
+ },
8466
+ {
8467
+ "kind": "Function",
8468
+ "canonicalReference": "@alloy-js/core!ensureIsEmpty:function(1)",
8469
+ "docComment": "/**\n * Ensure that a context has an isEmpty ref, creating one if needed.\n * Only call this when you need to reactively observe isEmpty (e.g.,\n * ContentSlot, mapJoin). Most contexts don't need an isEmpty ref.\n */\n",
8470
+ "excerptTokens": [
8471
+ {
8472
+ "kind": "Content",
8473
+ "text": "export declare function ensureIsEmpty(context: "
7722
8474
  },
7723
8475
  {
7724
8476
  "kind": "Reference",
7725
- "text": "Ref",
7726
- "canonicalReference": "@vue/reactivity!Ref:interface"
8477
+ "text": "Context",
8478
+ "canonicalReference": "@alloy-js/core!Context:interface"
7727
8479
  },
7728
8480
  {
7729
8481
  "kind": "Content",
7730
- "text": "<"
8482
+ "text": "): "
7731
8483
  },
7732
8484
  {
7733
8485
  "kind": "Reference",
7734
- "text": "OutputSymbol",
7735
- "canonicalReference": "@alloy-js/core!OutputSymbol:class"
7736
- },
7737
- {
7738
- "kind": "Content",
7739
- "text": " | undefined>"
7740
- },
7741
- {
7742
- "kind": "Content",
7743
- "text": "): "
8486
+ "text": "Ref",
8487
+ "canonicalReference": "@vue/reactivity!Ref:interface"
7744
8488
  },
7745
8489
  {
7746
8490
  "kind": "Content",
7747
- "text": "void"
8491
+ "text": "<boolean>"
7748
8492
  },
7749
8493
  {
7750
8494
  "kind": "Content",
7751
8495
  "text": ";"
7752
8496
  }
7753
8497
  ],
7754
- "fileUrlPath": "src/symbols/symbol-flow.ts",
8498
+ "fileUrlPath": "src/reactivity.ts",
7755
8499
  "returnTypeTokenRange": {
7756
- "startIndex": 8,
7757
- "endIndex": 9
8500
+ "startIndex": 3,
8501
+ "endIndex": 5
7758
8502
  },
7759
8503
  "releaseTag": "Public",
7760
8504
  "overloadIndex": 1,
7761
8505
  "parameters": [
7762
8506
  {
7763
- "parameterName": "symbol",
8507
+ "parameterName": "context",
7764
8508
  "parameterTypeTokenRange": {
7765
8509
  "startIndex": 1,
7766
- "endIndex": 7
8510
+ "endIndex": 2
7767
8511
  },
7768
8512
  "isOptional": false
7769
8513
  }
7770
8514
  ],
7771
- "name": "emitSymbol"
8515
+ "name": "ensureIsEmpty"
7772
8516
  },
7773
8517
  {
7774
8518
  "kind": "TypeAlias",
@@ -7801,6 +8545,34 @@
7801
8545
  "endIndex": 3
7802
8546
  }
7803
8547
  },
8548
+ {
8549
+ "kind": "Function",
8550
+ "canonicalReference": "@alloy-js/core!findCurrentEffectId:function(1)",
8551
+ "docComment": "/**\n * Walk up the context owner chain to find the nearest effect ID.\n * Used to attribute reactive mutations to the effect that caused them.\n */\n",
8552
+ "excerptTokens": [
8553
+ {
8554
+ "kind": "Content",
8555
+ "text": "export declare function findCurrentEffectId(): "
8556
+ },
8557
+ {
8558
+ "kind": "Content",
8559
+ "text": "number | undefined"
8560
+ },
8561
+ {
8562
+ "kind": "Content",
8563
+ "text": ";"
8564
+ }
8565
+ ],
8566
+ "fileUrlPath": "src/reactivity.ts",
8567
+ "returnTypeTokenRange": {
8568
+ "startIndex": 1,
8569
+ "endIndex": 2
8570
+ },
8571
+ "releaseTag": "Public",
8572
+ "overloadIndex": 1,
8573
+ "parameters": [],
8574
+ "name": "findCurrentEffectId"
8575
+ },
7804
8576
  {
7805
8577
  "kind": "Function",
7806
8578
  "canonicalReference": "@alloy-js/core!findKeyedChild:function(1)",
@@ -8282,6 +9054,67 @@
8282
9054
  "endIndex": 8
8283
9055
  }
8284
9056
  },
9057
+ {
9058
+ "kind": "Function",
9059
+ "canonicalReference": "@alloy-js/core!formatReactivePropertyLabel:function(1)",
9060
+ "docComment": "/**\n * Build a human-readable label for a reactive property like `symbolName.prop`.\n */\n",
9061
+ "excerptTokens": [
9062
+ {
9063
+ "kind": "Content",
9064
+ "text": "export declare function formatReactivePropertyLabel(target: "
9065
+ },
9066
+ {
9067
+ "kind": "Content",
9068
+ "text": "object"
9069
+ },
9070
+ {
9071
+ "kind": "Content",
9072
+ "text": ", key: "
9073
+ },
9074
+ {
9075
+ "kind": "Content",
9076
+ "text": "string | number"
9077
+ },
9078
+ {
9079
+ "kind": "Content",
9080
+ "text": "): "
9081
+ },
9082
+ {
9083
+ "kind": "Content",
9084
+ "text": "string"
9085
+ },
9086
+ {
9087
+ "kind": "Content",
9088
+ "text": ";"
9089
+ }
9090
+ ],
9091
+ "fileUrlPath": "src/reactivity.ts",
9092
+ "returnTypeTokenRange": {
9093
+ "startIndex": 5,
9094
+ "endIndex": 6
9095
+ },
9096
+ "releaseTag": "Public",
9097
+ "overloadIndex": 1,
9098
+ "parameters": [
9099
+ {
9100
+ "parameterName": "target",
9101
+ "parameterTypeTokenRange": {
9102
+ "startIndex": 1,
9103
+ "endIndex": 2
9104
+ },
9105
+ "isOptional": false
9106
+ },
9107
+ {
9108
+ "parameterName": "key",
9109
+ "parameterTypeTokenRange": {
9110
+ "startIndex": 3,
9111
+ "endIndex": 4
9112
+ },
9113
+ "isOptional": false
9114
+ }
9115
+ ],
9116
+ "name": "formatReactivePropertyLabel"
9117
+ },
8285
9118
  {
8286
9119
  "kind": "Interface",
8287
9120
  "canonicalReference": "@alloy-js/core!ForProps:interface",
@@ -8702,6 +9535,51 @@
8702
9535
  ],
8703
9536
  "name": "getDiagnosticsForTree"
8704
9537
  },
9538
+ {
9539
+ "kind": "Function",
9540
+ "canonicalReference": "@alloy-js/core!getEffectDebugId:function(1)",
9541
+ "docComment": "",
9542
+ "excerptTokens": [
9543
+ {
9544
+ "kind": "Content",
9545
+ "text": "export declare function getEffectDebugId(effect: "
9546
+ },
9547
+ {
9548
+ "kind": "Content",
9549
+ "text": "object"
9550
+ },
9551
+ {
9552
+ "kind": "Content",
9553
+ "text": "): "
9554
+ },
9555
+ {
9556
+ "kind": "Content",
9557
+ "text": "number | undefined"
9558
+ },
9559
+ {
9560
+ "kind": "Content",
9561
+ "text": ";"
9562
+ }
9563
+ ],
9564
+ "fileUrlPath": "src/reactivity.ts",
9565
+ "returnTypeTokenRange": {
9566
+ "startIndex": 3,
9567
+ "endIndex": 4
9568
+ },
9569
+ "releaseTag": "Public",
9570
+ "overloadIndex": 1,
9571
+ "parameters": [
9572
+ {
9573
+ "parameterName": "effect",
9574
+ "parameterTypeTokenRange": {
9575
+ "startIndex": 1,
9576
+ "endIndex": 2
9577
+ },
9578
+ "isOptional": false
9579
+ }
9580
+ ],
9581
+ "name": "getEffectDebugId"
9582
+ },
8705
9583
  {
8706
9584
  "kind": "Function",
8707
9585
  "canonicalReference": "@alloy-js/core!getElementCache:function(1)",
@@ -8713,8 +9591,12 @@
8713
9591
  },
8714
9592
  {
8715
9593
  "kind": "Reference",
8716
- "text": "ElementCache",
8717
- "canonicalReference": "@alloy-js/core!ElementCache:type"
9594
+ "text": "Map",
9595
+ "canonicalReference": "!Map:interface"
9596
+ },
9597
+ {
9598
+ "kind": "Content",
9599
+ "text": "<any, any>"
8718
9600
  },
8719
9601
  {
8720
9602
  "kind": "Content",
@@ -8724,13 +9606,67 @@
8724
9606
  "fileUrlPath": "src/reactivity.ts",
8725
9607
  "returnTypeTokenRange": {
8726
9608
  "startIndex": 1,
8727
- "endIndex": 2
9609
+ "endIndex": 3
8728
9610
  },
8729
9611
  "releaseTag": "Public",
8730
9612
  "overloadIndex": 1,
8731
9613
  "parameters": [],
8732
9614
  "name": "getElementCache"
8733
9615
  },
9616
+ {
9617
+ "kind": "Function",
9618
+ "canonicalReference": "@alloy-js/core!getReactiveCreationLocation:function(1)",
9619
+ "docComment": "",
9620
+ "excerptTokens": [
9621
+ {
9622
+ "kind": "Content",
9623
+ "text": "export declare function getReactiveCreationLocation(target: "
9624
+ },
9625
+ {
9626
+ "kind": "Content",
9627
+ "text": "object"
9628
+ },
9629
+ {
9630
+ "kind": "Content",
9631
+ "text": "): "
9632
+ },
9633
+ {
9634
+ "kind": "Content",
9635
+ "text": "import(\"./devtools-entry.browser.js\")."
9636
+ },
9637
+ {
9638
+ "kind": "Reference",
9639
+ "text": "SourceLocation",
9640
+ "canonicalReference": "@alloy-js/core!~SourceLocation:interface"
9641
+ },
9642
+ {
9643
+ "kind": "Content",
9644
+ "text": " | undefined"
9645
+ },
9646
+ {
9647
+ "kind": "Content",
9648
+ "text": ";"
9649
+ }
9650
+ ],
9651
+ "fileUrlPath": "src/reactivity.ts",
9652
+ "returnTypeTokenRange": {
9653
+ "startIndex": 3,
9654
+ "endIndex": 6
9655
+ },
9656
+ "releaseTag": "Public",
9657
+ "overloadIndex": 1,
9658
+ "parameters": [
9659
+ {
9660
+ "parameterName": "target",
9661
+ "parameterTypeTokenRange": {
9662
+ "startIndex": 1,
9663
+ "endIndex": 2
9664
+ },
9665
+ "isOptional": false
9666
+ }
9667
+ ],
9668
+ "name": "getReactiveCreationLocation"
9669
+ },
8734
9670
  {
8735
9671
  "kind": "Function",
8736
9672
  "canonicalReference": "@alloy-js/core!getSymbolCreator:function(1)",
@@ -11338,7 +12274,7 @@
11338
12274
  {
11339
12275
  "kind": "Interface",
11340
12276
  "canonicalReference": "@alloy-js/core!LibrarySymbolReference:interface",
11341
- "docComment": "",
12277
+ "docComment": "/**\n * An object that acts as a lazy reference to an external library symbol.\n * Implements {@link REFKEYABLE} and `[TO_SYMBOL]()`.\n *\n * Use {@link isLibrarySymbolReference} to test whether an unknown value is a\n * library symbol reference.\n */\n",
11342
12278
  "excerptTokens": [
11343
12279
  {
11344
12280
  "kind": "Content",
@@ -12398,7 +13334,7 @@
12398
13334
  {
12399
13335
  "kind": "Function",
12400
13336
  "canonicalReference": "@alloy-js/core!MemberDeclaration:function(1)",
12401
- "docComment": "/**\n * Declares a symbol in the current member scope for this component's children.\n *\n * @remarks\n *\n *\n *\n * This component must be called in one of two ways: with a name and an optional\n * refkey, or else passing in the symbol. When called with a name and refkey, a\n * symbol will be created in the current scope (provided by\n * {@link MemberDeclarationContext}) with that name and refkey. If a refkey is not\n * provided, `refkey(props.name)` is used.\n *\n * When called with a symbol, that symbol is merely exposed via\n * {@link MemberDeclarationContext}. It is assumed that the caller of this component\n * has created the symbol with the `createSymbol` API on the\n * {@link BinderContext}.\n *\n * @see\n *\n * {@link BinderContext}\n */\n",
13337
+ "docComment": "/**\n * Declares a symbol in the current member scope for this component's children.\n *\n * @remarks\n *\n *\n *\n * This component must be called in one of two ways: with a name and an optional\n * refkey, or else passing in the symbol. When called with a name and refkey, a\n * `BasicSymbol` will be created in the current member space. When called with a\n * `name`, the owning scope must be a `BasicScope`; for custom scope/symbol\n * types, pass a pre-created `symbol` instead.\n *\n * When called with a symbol, that symbol is merely exposed via\n * {@link MemberDeclarationContext} (not {@link DeclarationContext}). Use\n * {@link MemberName} (not `<Name />`) to render the declared member's name.\n *\n * @see\n *\n * {@link BinderContext}\n *\n * @see\n *\n * {@link MemberName}\n */\n",
12402
13338
  "excerptTokens": [
12403
13339
  {
12404
13340
  "kind": "Content",
@@ -12843,7 +13779,7 @@
12843
13779
  {
12844
13780
  "kind": "Function",
12845
13781
  "canonicalReference": "@alloy-js/core!MemberName:function(1)",
12846
- "docComment": "",
13782
+ "docComment": "/**\n * Renders the name of the current member declaration from\n * {@link MemberDeclarationContext}. Use this inside a\n * {@link MemberDeclaration} component instead of `<Name />`, which reads from\n * the top-level {@link DeclarationContext}.\n */\n",
12847
13783
  "excerptTokens": [
12848
13784
  {
12849
13785
  "kind": "Content",
@@ -13143,7 +14079,7 @@
13143
14079
  {
13144
14080
  "kind": "Interface",
13145
14081
  "canonicalReference": "@alloy-js/core!MemberResolver:interface",
13146
- "docComment": "",
14082
+ "docComment": "/**\n * A callback that performs access-control filtering during member resolution.\n *\n * @remarks\n *\n *\n *\n * When provided to {@link ResolveDeclarationByKeyOptions}, it entirely replaces\n * the default checks (ownership assertion and `isMemberSymbol` assertion).\n *\n * **Contract:**\n * - **Return `void`** to accept the member.\n * - **Throw an error** to reject the member — the error propagates to the caller,\n * matching the behavior of the default checks.\n *\n * @example\n * ```ts\n * const resolver: MemberResolver<MyScope, MySymbol> = (owner, member, ctx) => {\n * if (member.isPrivate && !ctx.isMemberAccess) {\n * throw new Error(`${member.name} is not accessible here`);\n * }\n * };\n * ```\n *\n * @see\n *\n * {@link MemberResolutionContext} for available context properties.\n */\n",
13147
14083
  "excerptTokens": [
13148
14084
  {
13149
14085
  "kind": "Content",
@@ -13283,7 +14219,7 @@
13283
14219
  {
13284
14220
  "kind": "Function",
13285
14221
  "canonicalReference": "@alloy-js/core!MemberScope:function(1)",
13286
- "docComment": "/**\n * Declare a member scope, which is a lexical scope whose symbols are provided\n * by the owner symbol.\n *\n * @remarks\n *\n *\n *\n * This is used to create members of a symbol, e.g. for class members and the\n * like. In some languages, this scope may provide symbols which are can be\n * referenced lexically, but in other languages, these members may not be in\n * scope and instead must be referenced via the owner symbol itself.\n */\n",
14222
+ "docComment": "/**\n * Declare a member scope, which is a lexical scope whose symbols are provided\n * by the owner symbol.\n *\n * @remarks\n *\n *\n *\n * This is used to create members of a symbol, e.g. for class members and the\n * like. In some languages, this scope may provide symbols which are can be\n * referenced lexically, but in other languages, these members may not be in\n * scope and instead must be referenced via the owner symbol itself.\n *\n * When called with `name` (without `value`), this delegates to `<Scope>` which\n * creates a `BasicScope`. The same restriction applies: the parent scope must\n * be a `BasicScope`. For custom scope types, create your scope and pass it via\n * the `value` prop.\n */\n",
13287
14223
  "excerptTokens": [
13288
14224
  {
13289
14225
  "kind": "Content",
@@ -13573,7 +14509,7 @@
13573
14509
  {
13574
14510
  "kind": "Function",
13575
14511
  "canonicalReference": "@alloy-js/core!memo:function(1)",
13576
- "docComment": "",
14512
+ "docComment": "/**\n * Returns a getter caching the result of `fn`. Re-evaluates when reactive\n * dependencies change. See the [Reactivity docs](../../reactivity.md) for details.\n *\n * @param fn - Function to memoize.\n *\n * @param equal - Skip updates when value is unchanged.\n *\n * @param name - Debug label for traces.\n *\n * @returns A zero-argument getter returning the cached value.\n *\n * @example\n * ```ts\n * const fullName = memo(() => `${first.value} ${last.value}`);\n * fullName(); // cached; re-evaluates when first or last changes\n * ```\n *\n */\n",
13577
14513
  "excerptTokens": [
13578
14514
  {
13579
14515
  "kind": "Content",
@@ -13591,6 +14527,14 @@
13591
14527
  "kind": "Content",
13592
14528
  "text": "boolean"
13593
14529
  },
14530
+ {
14531
+ "kind": "Content",
14532
+ "text": ", name?: "
14533
+ },
14534
+ {
14535
+ "kind": "Content",
14536
+ "text": "string"
14537
+ },
13594
14538
  {
13595
14539
  "kind": "Content",
13596
14540
  "text": "): "
@@ -13606,8 +14550,8 @@
13606
14550
  ],
13607
14551
  "fileUrlPath": "src/reactivity.ts",
13608
14552
  "returnTypeTokenRange": {
13609
- "startIndex": 5,
13610
- "endIndex": 6
14553
+ "startIndex": 7,
14554
+ "endIndex": 8
13611
14555
  },
13612
14556
  "releaseTag": "Public",
13613
14557
  "overloadIndex": 1,
@@ -13627,6 +14571,14 @@
13627
14571
  "endIndex": 4
13628
14572
  },
13629
14573
  "isOptional": true
14574
+ },
14575
+ {
14576
+ "parameterName": "name",
14577
+ "parameterTypeTokenRange": {
14578
+ "startIndex": 5,
14579
+ "endIndex": 6
14580
+ },
14581
+ "isOptional": true
13630
14582
  }
13631
14583
  ],
13632
14584
  "typeParameters": [
@@ -14088,7 +15040,7 @@
14088
15040
  {
14089
15041
  "kind": "Interface",
14090
15042
  "canonicalReference": "@alloy-js/core!NameConflictResolver:interface",
14091
- "docComment": "",
15043
+ "docComment": "/**\n * A callable interface invoked by the binder when two or more symbols in the\n * same scope share a name. The resolver mutates symbol names to eliminate\n * conflicts (e.g., appending `_2`, `_3`).\n *\n * @remarks\n *\n *\n * The resolver is called with the shared `name` and all symbols in the scope\n * that have that original name. Rename a symbol by assigning to `symbol.name`.\n * Symbols with `ignoreNameConflict: true` are excluded. The default resolver\n * keeps the first symbol unchanged and renames subsequent ones\n * `originalName + \"_2\"`, `originalName + \"_3\"`, etc.\n *\n * Assigned names pass through the active name policy before being stored;\n * design suffixes to produce the correct final name after policy\n * transformation, or set `ignoreNamePolicy` on the symbol after resolution.\n *\n * Conflict detection is keyed on `originalName`\n * (see {@link OutputSymbol.originalName}). Symbols that differ in original\n * name but normalize to the same policy-applied name are never detected as\n * conflicting.\n *\n * @example\n * ```ts\n * const resolver: NameConflictResolver = (name, symbols) => {\n * for (let i = 1; i < symbols.length; i++) {\n * symbols[i].name = symbols[i].originalName + \"_\" + (i + 1);\n * }\n * };\n * ```\n *\n */\n",
14092
15044
  "excerptTokens": [
14093
15045
  {
14094
15046
  "kind": "Content",
@@ -14458,7 +15410,7 @@
14458
15410
  {
14459
15411
  "kind": "MethodSignature",
14460
15412
  "canonicalReference": "@alloy-js/core!NamePolicy#for:member(1)",
14461
- "docComment": "/**\n * Get a function that takes a name and applies the naming policy to it.\n */\n",
15413
+ "docComment": "/**\n * Get a function that takes a name and applies the naming policy to it.\n * When `element` is `undefined`, returns an identity function.\n */\n",
14462
15414
  "excerptTokens": [
14463
15415
  {
14464
15416
  "kind": "Content",
@@ -14504,7 +15456,7 @@
14504
15456
  {
14505
15457
  "kind": "MethodSignature",
14506
15458
  "canonicalReference": "@alloy-js/core!NamePolicy#getName:member(1)",
14507
- "docComment": "/**\n * Apply the language policy to the provided name for the provided element\n * type.\n */\n",
15459
+ "docComment": "/**\n * Apply the language policy to the provided name for the provided element type.\n * When `element` is `undefined`, returns `originalName` unchanged.\n */\n",
14508
15460
  "excerptTokens": [
14509
15461
  {
14510
15462
  "kind": "Content",
@@ -14605,7 +15557,7 @@
14605
15557
  {
14606
15558
  "kind": "Interface",
14607
15559
  "canonicalReference": "@alloy-js/core!NamePolicyGetter:interface",
14608
- "docComment": "",
15560
+ "docComment": "/**\n * A function that transforms a name according to a naming policy for a\n * specific element kind. Obtained from {@link NamePolicy.for}.\n */\n",
14609
15561
  "excerptTokens": [
14610
15562
  {
14611
15563
  "kind": "Content",
@@ -14663,6 +15615,34 @@
14663
15615
  ],
14664
15616
  "extendsTokenRanges": []
14665
15617
  },
15618
+ {
15619
+ "kind": "Function",
15620
+ "canonicalReference": "@alloy-js/core!nextReactiveId:function(1)",
15621
+ "docComment": "/**\n * Allocate a unique reactive target ID from the same counter space as ref IDs.\n */\n",
15622
+ "excerptTokens": [
15623
+ {
15624
+ "kind": "Content",
15625
+ "text": "export declare function nextReactiveId(): "
15626
+ },
15627
+ {
15628
+ "kind": "Content",
15629
+ "text": "number"
15630
+ },
15631
+ {
15632
+ "kind": "Content",
15633
+ "text": ";"
15634
+ }
15635
+ ],
15636
+ "fileUrlPath": "src/reactivity.ts",
15637
+ "returnTypeTokenRange": {
15638
+ "startIndex": 1,
15639
+ "endIndex": 2
15640
+ },
15641
+ "releaseTag": "Public",
15642
+ "overloadIndex": 1,
15643
+ "parameters": [],
15644
+ "name": "nextReactiveId"
15645
+ },
14666
15646
  {
14667
15647
  "kind": "Function",
14668
15648
  "canonicalReference": "@alloy-js/core!notifyContentState:function(1)",
@@ -14865,7 +15845,7 @@
14865
15845
  {
14866
15846
  "kind": "Class",
14867
15847
  "canonicalReference": "@alloy-js/core!OutputDeclarationSpace:class",
14868
- "docComment": "",
15848
+ "docComment": "/**\n * A symbol table attached to an {@link OutputScope}. Holds lexical declarations\n * visible within that scope (e.g., \"types\" or \"values\" in a TypeScript module).\n */\n",
14869
15849
  "excerptTokens": [
14870
15850
  {
14871
15851
  "kind": "Content",
@@ -15121,7 +16101,7 @@
15121
16101
  {
15122
16102
  "kind": "PropertySignature",
15123
16103
  "canonicalReference": "@alloy-js/core!OutputDirectory#path:member",
15124
- "docComment": "",
16104
+ "docComment": "/**\n * Full path from the output root, e.g. `\"generated-client/src\"`. Do not prepend parent directory paths when walking the tree.\n */\n",
15125
16105
  "excerptTokens": [
15126
16106
  {
15127
16107
  "kind": "Content",
@@ -15229,7 +16209,7 @@
15229
16209
  {
15230
16210
  "kind": "PropertySignature",
15231
16211
  "canonicalReference": "@alloy-js/core!OutputFileBase#path:member",
15232
- "docComment": "",
16212
+ "docComment": "/**\n * Full path from the output root, e.g. `\"generated-client/src/models.ext\"`. Do not prepend parent directory paths when walking the tree.\n */\n",
15233
16213
  "excerptTokens": [
15234
16214
  {
15235
16215
  "kind": "Content",
@@ -15259,7 +16239,7 @@
15259
16239
  {
15260
16240
  "kind": "Class",
15261
16241
  "canonicalReference": "@alloy-js/core!OutputMemberSpace:class",
15262
- "docComment": "",
16242
+ "docComment": "/**\n * A symbol table attached to an {@link OutputSymbol}. Holds member declarations\n * belonging to that symbol (e.g., \"static\" or \"instance\" members of a class).\n */\n",
15263
16243
  "excerptTokens": [
15264
16244
  {
15265
16245
  "kind": "Content",
@@ -15539,15 +16519,16 @@
15539
16519
  {
15540
16520
  "kind": "PropertySignature",
15541
16521
  "canonicalReference": "@alloy-js/core!OutputProps#nameConflictResolver:member",
15542
- "docComment": "/**\n * Policy for handling multiple symbols declared with the same name.\n */\n",
16522
+ "docComment": "/**\n * Policy for handling multiple symbols declared with the same name.\n *\n * @see\n *\n * {@link NameConflictResolver}\n */\n",
15543
16523
  "excerptTokens": [
15544
16524
  {
15545
16525
  "kind": "Content",
15546
16526
  "text": "nameConflictResolver?: "
15547
16527
  },
15548
16528
  {
15549
- "kind": "Content",
15550
- "text": "(name: string, symbols: any[]) => void"
16529
+ "kind": "Reference",
16530
+ "text": "NameConflictResolver",
16531
+ "canonicalReference": "@alloy-js/core!NameConflictResolver:interface"
15551
16532
  },
15552
16533
  {
15553
16534
  "kind": "Content",
@@ -15701,7 +16682,7 @@
15701
16682
  {
15702
16683
  "kind": "Constructor",
15703
16684
  "canonicalReference": "@alloy-js/core!OutputScope:constructor(1)",
15704
- "docComment": "/**\n * Constructs a new instance of the `OutputScope` class\n */\n",
16685
+ "docComment": "/**\n * Subclasses must forward all three positional arguments to `super`. See\n * {@link createScope} for the preferred instantiation path.\n *\n * @param name - A descriptive name for this scope (used in debugging and\n * diagnostics).\n *\n * @param parentScope - The parent scope in the scope tree, or `undefined`\n * for root scopes. Inside a component, obtain this via `useScope()`.\n *\n * @param options - Additional scope options; see {@link OutputScopeOptions}.\n *\n * @example\n * ```ts\n * class MyScope extends OutputScope {\n * constructor(\n * name: string,\n * parent: OutputScope | undefined,\n * options?: OutputScopeOptions,\n * ) {\n * super(name, parent, options);\n * }\n * }\n *\n * // Inside a component:\n * const scope = createScope(MyScope, \"my-scope\", useScope());\n * ```\n *\n */\n",
15705
16686
  "excerptTokens": [
15706
16687
  {
15707
16688
  "kind": "Content",
@@ -15885,7 +16866,7 @@
15885
16866
  {
15886
16867
  "kind": "Property",
15887
16868
  "canonicalReference": "@alloy-js/core!OutputScope.declarationSpaces:member",
15888
- "docComment": "",
16869
+ "docComment": "/**\n * The declaration space keys for this scope type. Subclasses override this\n * to declare which declaration spaces are created on construction (e.g.,\n * `[\"types\", \"values\"]`).\n */\n",
15889
16870
  "excerptTokens": [
15890
16871
  {
15891
16872
  "kind": "Content",
@@ -16154,7 +17135,7 @@
16154
17135
  {
16155
17136
  "kind": "Method",
16156
17137
  "canonicalReference": "@alloy-js/core!OutputScope#spaceFor:member(1)",
16157
- "docComment": "/**\n * Get the declaration space for the given key.\n */\n",
17138
+ "docComment": "/**\n * Get the declaration space for the given key (e.g., `\"types\"`, `\"values\"`).\n * Returns `undefined` when no space with that key exists on this scope.\n */\n",
16158
17139
  "excerptTokens": [
16159
17140
  {
16160
17141
  "kind": "Content",
@@ -16382,7 +17363,7 @@
16382
17363
  {
16383
17364
  "kind": "TypeAlias",
16384
17365
  "canonicalReference": "@alloy-js/core!OutputSpace:type",
16385
- "docComment": "",
17366
+ "docComment": "/**\n * A symbol table that belongs to either a scope (declaration space) or a symbol\n * (member space).\n */\n",
16386
17367
  "excerptTokens": [
16387
17368
  {
16388
17369
  "kind": "Content",
@@ -16418,7 +17399,7 @@
16418
17399
  {
16419
17400
  "kind": "Class",
16420
17401
  "canonicalReference": "@alloy-js/core!OutputSymbol:class",
16421
- "docComment": "/**\n * An output symbol is a named entity that can be referenced in your output\n * code.\n *\n * @remarks\n *\n *\n *\n * This class is the base implementation of symbol. Most languages will have\n * subtypes that provide additional metadata. Symbols are reactive values, so\n * you can observe changes to their properties in a reactive context.\n */\n",
17402
+ "docComment": "/**\n * An output symbol is a named entity that can be referenced in your output\n * code.\n *\n * @remarks\n *\n *\n *\n * This is an abstract base class. Language packages must subclass it and\n * implement the abstract {@link OutputSymbol.copy | copy()} method, which\n * creates a clone that tracks the original's name and flags.\n *\n * Subtypes typically add language-specific properties (e.g., accessibility,\n * static/abstract flags). Symbols are reactive values, so you can observe\n * changes to their properties in a reactive context.\n *\n * To construct a scopeless external library symbol — one that resolves via\n * refkey but does not appear in any declaration space — pass `undefined` as\n * the `spaces` constructor argument and supply `{ binder }` in `options`.\n * See {@link OutputSymbolOptions} (`binder` option) and {@link TO_SYMBOL}.\n *\n * @example\n *\n *\n *\n * ```ts\n * import { createSymbol, OutputSymbol, OutputSpace } from \"@alloy-js/core\";\n *\n * class MySymbol extends OutputSymbol {\n * copy() {\n * // getCopyOptions() already includes binder\n * const opts = this.getCopyOptions();\n * const sym = createSymbol(MySymbol, this.name, undefined, opts);\n * this.initializeCopy(sym);\n * return sym;\n * }\n * }\n *\n * // name: string | Namekey; spaces: OutputSpace | OutputSpace[] | undefined; options: OutputSymbolOptions\n * const sym = createSymbol(MySymbol, namekey, scope.symbols, { binder });\n *\n * // Construct a scopeless external library symbol (resolves via refkey only):\n * const extSym = createSymbol(MySymbol, namekey, undefined, { binder });\n * ```\n *\n */\n",
16422
17403
  "excerptTokens": [
16423
17404
  {
16424
17405
  "kind": "Content",
@@ -16513,7 +17494,7 @@
16513
17494
  {
16514
17495
  "kind": "Constructor",
16515
17496
  "canonicalReference": "@alloy-js/core!OutputSymbol:constructor(1)",
16516
- "docComment": "/**\n * Constructs a new instance of the `OutputSymbol` class\n */\n",
17497
+ "docComment": "/**\n * Constructs a new instance of the `OutputSymbol` class\n *\n * @param name - The symbol name, or a {@link Namekey} carrying name and\n * options (e.g., `ignoreNamePolicy`).\n *\n * @param spaces - The declaration or member space(s) this symbol belongs to.\n * Pass `undefined` for scopeless external library symbols (see `binder` option).\n *\n * @param options - Additional symbol options (binder, refkeys, metadata,\n * type, name policy, etc.).\n */\n",
16517
17498
  "excerptTokens": [
16518
17499
  {
16519
17500
  "kind": "Content",
@@ -16664,10 +17645,40 @@
16664
17645
  "isProtected": false,
16665
17646
  "isAbstract": false
16666
17647
  },
17648
+ {
17649
+ "kind": "Property",
17650
+ "canonicalReference": "@alloy-js/core!OutputSymbol#canonicalName:member",
17651
+ "docComment": "/**\n * The canonical requested name for this symbol: the result of applying the\n * symbol's name policy to its {@link OutputSymbol.originalName | originalName}, or the original name\n * itself when no policy applies. This is the name the symbol would carry if\n * there were no conflicts, and is stable across the symbol's lifetime (it\n * depends only on the immutable `originalName` and the name policy).\n *\n * Used by {@link SymbolTable} as the grouping key for name-conflict\n * resolution, so that symbols whose original names normalize to the same\n * policy-applied name (e.g. `foo_bar` and `fooBar` under camelCase) are\n * recognized as conflicting.\n */\n",
17652
+ "excerptTokens": [
17653
+ {
17654
+ "kind": "Content",
17655
+ "text": "get canonicalName(): "
17656
+ },
17657
+ {
17658
+ "kind": "Content",
17659
+ "text": "string"
17660
+ },
17661
+ {
17662
+ "kind": "Content",
17663
+ "text": ";"
17664
+ }
17665
+ ],
17666
+ "isReadonly": true,
17667
+ "isOptional": false,
17668
+ "releaseTag": "Public",
17669
+ "name": "canonicalName",
17670
+ "propertyTypeTokenRange": {
17671
+ "startIndex": 1,
17672
+ "endIndex": 2
17673
+ },
17674
+ "isStatic": false,
17675
+ "isProtected": false,
17676
+ "isAbstract": false
17677
+ },
16667
17678
  {
16668
17679
  "kind": "Method",
16669
17680
  "canonicalReference": "@alloy-js/core!OutputSymbol#copy:member(1)",
16670
- "docComment": "/**\n * Makes a copy of this symbol which will update the name and flags\n * of the clone when the original symbol is updated.\n *\n * @remarks\n *\n *\n *\n * This is used to create a symbol that is a copy of this symbol, but\n * with a different scope. Changes to the copy will not affect the\n * original symbol, and changes to the original symbol's name and flags\n * will overwrite the copy's name and flags.\n *\n * @param newScope - The scope to use for the copy.\n */\n",
17681
+ "docComment": "/**\n * Create a clone of this symbol whose name and flags reactively track the\n * original.\n *\n * @remarks\n *\n *\n *\n * Called by `SymbolTable.copyTo` during scope/space transfers.\n * Subclasses implement cloning logic and call `getCopyOptions` for\n * base options and `initializeCopy` to wire up member copying and\n * name tracking.\n *\n * **Space registration contract:** The returned clone must not be registered\n * in any space on exit. `copyToSpace()` calls this method and assigns the\n * space afterward.\n */\n",
16671
17682
  "excerptTokens": [
16672
17683
  {
16673
17684
  "kind": "Content",
@@ -16748,7 +17759,7 @@
16748
17759
  {
16749
17760
  "kind": "Method",
16750
17761
  "canonicalReference": "@alloy-js/core!OutputSymbol#copyToSpace:member(1)",
16751
- "docComment": "",
17762
+ "docComment": "/**\n * Copy this symbol into the given space. Calls {@link OutputSymbol.copy} and places\n * the result in `space`, then returns the copy.\n *\n * @param space - The space to place the copy in.\n *\n * @returns The copy of this symbol, now belonging to `space`.\n */\n",
16752
17763
  "excerptTokens": [
16753
17764
  {
16754
17765
  "kind": "Content",
@@ -16862,6 +17873,36 @@
16862
17873
  "isProtected": false,
16863
17874
  "isAbstract": false
16864
17875
  },
17876
+ {
17877
+ "kind": "Property",
17878
+ "canonicalReference": "@alloy-js/core!OutputSymbol#deconflictedName:member",
17879
+ "docComment": "/**\n * The name assigned by a name-conflict resolver, or `undefined` when the\n * symbol is not currently renamed by conflict resolution.\n *\n * Resolvers should assign to this slot (rather than `name`) to record that a\n * rename exists only because of a conflict. On re-deconfliction (e.g. after\n * a conflicting symbol is removed), resolvers clear this slot by assigning\n * `undefined`; the effective {@link OutputSymbol.name | name} then falls back to the\n * user-assigned name, which in turn falls back to the original name.\n *\n * Name policy is applied to values written here (unless `ignoreNamePolicy`\n * is true), matching `name`'s behavior.\n *\n *\n * @reactive\n */\n",
17880
+ "excerptTokens": [
17881
+ {
17882
+ "kind": "Content",
17883
+ "text": "get deconflictedName(): "
17884
+ },
17885
+ {
17886
+ "kind": "Content",
17887
+ "text": "string | undefined"
17888
+ },
17889
+ {
17890
+ "kind": "Content",
17891
+ "text": ";\n\nset deconflictedName(value: string | undefined);"
17892
+ }
17893
+ ],
17894
+ "isReadonly": false,
17895
+ "isOptional": false,
17896
+ "releaseTag": "Public",
17897
+ "name": "deconflictedName",
17898
+ "propertyTypeTokenRange": {
17899
+ "startIndex": 1,
17900
+ "endIndex": 2
17901
+ },
17902
+ "isStatic": false,
17903
+ "isProtected": false,
17904
+ "isAbstract": false
17905
+ },
16865
17906
  {
16866
17907
  "kind": "Method",
16867
17908
  "canonicalReference": "@alloy-js/core!OutputSymbol#delete:member(1)",
@@ -17074,7 +18115,7 @@
17074
18115
  {
17075
18116
  "kind": "Method",
17076
18117
  "canonicalReference": "@alloy-js/core!OutputSymbol#initializeCopy:member(1)",
17077
- "docComment": "",
18118
+ "docComment": "/**\n * Wires up reactive member-space copying and name tracking from this symbol\n * to its `copy`.\n *\n * @remarks\n *\n *\n *\n * Iterates each member space and calls `copyTo` on the corresponding space\n * on `copy`. Then installs a reactive watcher so that any future change to\n * `this.name` is immediately mirrored onto `copy.name`.\n *\n * **Must be called by every `copy()` override** before the override returns.\n * Pair with `getCopyOptions` to supply the base constructor options.\n */\n",
17078
18119
  "excerptTokens": [
17079
18120
  {
17080
18121
  "kind": "Content",
@@ -17361,7 +18402,7 @@
17361
18402
  {
17362
18403
  "kind": "Property",
17363
18404
  "canonicalReference": "@alloy-js/core!OutputSymbol.memberSpaces:member",
17364
- "docComment": "",
18405
+ "docComment": "/**\n * The member space keys for this symbol type. Subclasses override this to\n * declare which member spaces are created on construction (e.g.,\n * `[\"static\", \"instance\"]`).\n */\n",
17365
18406
  "excerptTokens": [
17366
18407
  {
17367
18408
  "kind": "Content",
@@ -17515,7 +18556,7 @@
17515
18556
  {
17516
18557
  "kind": "Property",
17517
18558
  "canonicalReference": "@alloy-js/core!OutputSymbol#name:member",
17518
- "docComment": "/**\n * The name of this symbol.\n *\n *\n * @reactive\n */\n",
18559
+ "docComment": "/**\n * The name of this symbol. Assigning to this property applies the active\n * name policy (unless `ignoreNamePolicy` is true) before storing the value.\n *\n * The effective name is computed as `deconflictedName ?? userName`, so if a\n * name-conflict resolver has assigned a {@link OutputSymbol.deconflictedName | deconflictedName}, that value\n * is returned here; otherwise the value most recently assigned to `name` is\n * returned.\n *\n *\n * @reactive\n */\n",
17519
18560
  "excerptTokens": [
17520
18561
  {
17521
18562
  "kind": "Content",
@@ -17973,7 +19014,7 @@
17973
19014
  {
17974
19015
  "kind": "PropertySignature",
17975
19016
  "canonicalReference": "@alloy-js/core!OutputSymbolOptions#binder:member",
17976
- "docComment": "/**\n * The binder instance associated with this symbol. Symbol updates and changes\n * will be reported to this binder. This binder will be able to find this\n * symbol via its refkey and other means. Without a binder, this symbol will\n * be unbound, which means it cannot be referenced by refkey.\n */\n",
19017
+ "docComment": "/**\n * The binder instance associated with this symbol. Symbol updates and changes\n * will be reported to this binder. This binder will be able to find this\n * symbol via its refkey and other means. Without a binder, this symbol will\n * be unbound, which means it cannot be referenced by refkey.\n *\n * @remarks\n *\n *\n *\n * When constructing an external library symbol, pass `{ binder }` here to\n * ensure the symbol is registered with the binder. See {@link TO_SYMBOL} for\n * the full implementation protocol.\n */\n",
17977
19018
  "excerptTokens": [
17978
19019
  {
17979
19020
  "kind": "Content",
@@ -18055,7 +19096,7 @@
18055
19096
  {
18056
19097
  "kind": "PropertySignature",
18057
19098
  "canonicalReference": "@alloy-js/core!OutputSymbolOptions#lazyMemberInitializer:member",
18058
- "docComment": "/**\n * Provide a function which lazy-initializes members when an enumeration of members are needed.\n */\n",
19099
+ "docComment": "/**\n * Provide a function which lazy-initializes members the first time\n * `resolveMemberByName()` is called on this symbol. Called at most once.\n *\n * @remarks\n *\n *\n *\n * Only `resolveMemberByName()` triggers this callback — iterating\n * `OutputMemberSpace` directly does not. The callback fires regardless of\n * whether the symbol belongs to any scope, so it is safe to use on scopeless\n * external library symbols.\n */\n",
18059
19100
  "excerptTokens": [
18060
19101
  {
18061
19102
  "kind": "Content",
@@ -18943,6 +19984,67 @@
18943
19984
  ],
18944
19985
  "extendsTokenRanges": []
18945
19986
  },
19987
+ {
19988
+ "kind": "Function",
19989
+ "canonicalReference": "@alloy-js/core!reactivePropertyRefId:function(1)",
19990
+ "docComment": "/**\n * Get a stable ref ID for a property of a reactive object.\n * Each (target, key) pair gets a unique positive ID from the same counter as refs.\n */\n",
19991
+ "excerptTokens": [
19992
+ {
19993
+ "kind": "Content",
19994
+ "text": "export declare function reactivePropertyRefId(target: "
19995
+ },
19996
+ {
19997
+ "kind": "Content",
19998
+ "text": "object"
19999
+ },
20000
+ {
20001
+ "kind": "Content",
20002
+ "text": ", key: "
20003
+ },
20004
+ {
20005
+ "kind": "Content",
20006
+ "text": "string | number"
20007
+ },
20008
+ {
20009
+ "kind": "Content",
20010
+ "text": "): "
20011
+ },
20012
+ {
20013
+ "kind": "Content",
20014
+ "text": "number"
20015
+ },
20016
+ {
20017
+ "kind": "Content",
20018
+ "text": ";"
20019
+ }
20020
+ ],
20021
+ "fileUrlPath": "src/reactivity.ts",
20022
+ "returnTypeTokenRange": {
20023
+ "startIndex": 5,
20024
+ "endIndex": 6
20025
+ },
20026
+ "releaseTag": "Public",
20027
+ "overloadIndex": 1,
20028
+ "parameters": [
20029
+ {
20030
+ "parameterName": "target",
20031
+ "parameterTypeTokenRange": {
20032
+ "startIndex": 1,
20033
+ "endIndex": 2
20034
+ },
20035
+ "isOptional": false
20036
+ },
20037
+ {
20038
+ "parameterName": "key",
20039
+ "parameterTypeTokenRange": {
20040
+ "startIndex": 3,
20041
+ "endIndex": 4
20042
+ },
20043
+ "isOptional": false
20044
+ }
20045
+ ],
20046
+ "name": "reactivePropertyRefId"
20047
+ },
18946
20048
  {
18947
20049
  "kind": "Class",
18948
20050
  "canonicalReference": "@alloy-js/core!ReactiveUnionSet:class",
@@ -19679,6 +20781,14 @@
19679
20781
  "kind": "Content",
19680
20782
  "text": "T"
19681
20783
  },
20784
+ {
20785
+ "kind": "Content",
20786
+ "text": ", options?: "
20787
+ },
20788
+ {
20789
+ "kind": "Content",
20790
+ "text": "{\n isInfrastructure?: boolean;\n}"
20791
+ },
19682
20792
  {
19683
20793
  "kind": "Content",
19684
20794
  "text": "): "
@@ -19699,8 +20809,8 @@
19699
20809
  ],
19700
20810
  "fileUrlPath": "src/reactivity.ts",
19701
20811
  "returnTypeTokenRange": {
19702
- "startIndex": 3,
19703
- "endIndex": 5
20812
+ "startIndex": 5,
20813
+ "endIndex": 7
19704
20814
  },
19705
20815
  "releaseTag": "Public",
19706
20816
  "overloadIndex": 1,
@@ -19712,6 +20822,14 @@
19712
20822
  "endIndex": 2
19713
20823
  },
19714
20824
  "isOptional": true
20825
+ },
20826
+ {
20827
+ "parameterName": "options",
20828
+ "parameterTypeTokenRange": {
20829
+ "startIndex": 3,
20830
+ "endIndex": 4
20831
+ },
20832
+ "isOptional": true
19715
20833
  }
19716
20834
  ],
19717
20835
  "typeParameters": [
@@ -20693,10 +21811,38 @@
20693
21811
  ],
20694
21812
  "name": "reportDiagnostics"
20695
21813
  },
21814
+ {
21815
+ "kind": "Function",
21816
+ "canonicalReference": "@alloy-js/core!resetRefIdCounter:function(1)",
21817
+ "docComment": "",
21818
+ "excerptTokens": [
21819
+ {
21820
+ "kind": "Content",
21821
+ "text": "export declare function resetRefIdCounter(): "
21822
+ },
21823
+ {
21824
+ "kind": "Content",
21825
+ "text": "void"
21826
+ },
21827
+ {
21828
+ "kind": "Content",
21829
+ "text": ";"
21830
+ }
21831
+ ],
21832
+ "fileUrlPath": "src/reactivity.ts",
21833
+ "returnTypeTokenRange": {
21834
+ "startIndex": 1,
21835
+ "endIndex": 2
21836
+ },
21837
+ "releaseTag": "Public",
21838
+ "overloadIndex": 1,
21839
+ "parameters": [],
21840
+ "name": "resetRefIdCounter"
21841
+ },
20696
21842
  {
20697
21843
  "kind": "Interface",
20698
21844
  "canonicalReference": "@alloy-js/core!ResolutionResult:interface",
20699
- "docComment": "/**\n * A successful resolution of a refkey.\n *\n * @example\n *\n *\n *\n * Let's say we have the following scopes and symbols:\n *\n * ```\n * scope: global scope\n * ├── scope: namespace scope 1\n * │ └── symbol: foo\n * │ └── static members\n * │ └── symbol: bar\n * └── scope: namespace scope 2\n * └── (resolve bar from here)\n * ```\n *\n *\n * When we resolve the refkey for `bar` from within `namespace scope 2`, we will get the following\n * resolution result:\n *\n * * **targetDeclaration**: symbol bar, the symbol we resolved.\n * * **commonScope**: global scope, because this is the most specific scope that contains both the declaration and the reference.\n * * **pathUp**: [namespace scope 2], because this is the scope between the reference and the common scope.\n * * **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration\n * * **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.\n */\n",
21845
+ "docComment": "/**\n * A successful resolution of a refkey.\n *\n * @example\n *\n *\n *\n * Let's say we have the following scopes and symbols:\n *\n * ```\n * scope: global scope\n * ├── scope: namespace scope 1\n * │ └── symbol: foo\n * │ └── static members\n * │ └── symbol: bar\n * └── scope: namespace scope 2\n * └── (resolve bar from here)\n * ```\n *\n *\n * When we resolve the refkey for `bar` from within `namespace scope 2`, we will get the following\n * resolution result:\n *\n * * **targetDeclaration**: symbol bar, the symbol we resolved.\n * * **commonScope**: global scope, because this is the most specific scope that contains both the declaration and the reference.\n * * **pathUp**: [namespace scope 2], because this is the scope between the reference and the common scope.\n * * **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration\n * * **memberPath**: [bar]\n * * **lexicalDeclaration**: foo\n * For deeper chains (e.g., foo.bar.baz where bar and baz are member symbols, foo is not): memberPath = [bar, baz], lexicalDeclaration = foo.\n */\n",
20700
21846
  "excerptTokens": [
20701
21847
  {
20702
21848
  "kind": "Content",
@@ -20861,7 +22007,7 @@
20861
22007
  {
20862
22008
  "kind": "PropertySignature",
20863
22009
  "canonicalReference": "@alloy-js/core!ResolutionResult#memberPath:member",
20864
- "docComment": "/**\n * When resolving a member symbol, this is the path of symbols that lead from\n * the lexical declaration to the member symbol.\n */\n",
22010
+ "docComment": "/**\n * Member symbols from the lexical declaration (exclusive) to the resolved symbol\n * (inclusive). Empty when resolving a non-member symbol.\n */\n",
20865
22011
  "excerptTokens": [
20866
22012
  {
20867
22013
  "kind": "Content",
@@ -21469,7 +22615,7 @@
21469
22615
  {
21470
22616
  "kind": "Function",
21471
22617
  "canonicalReference": "@alloy-js/core!Scope:function(1)",
21472
- "docComment": "/**\n * Declare a scope for this component's children. Any symbols and scopes\n * declared in the children of this component will be in this scope.\n *\n * @see\n *\n * {@link ScopeContext}\n */\n",
22618
+ "docComment": "/**\n * Declare a scope for this component's children. Any symbols and scopes\n * declared in the children of this component will be in this scope.\n *\n * @remarks\n *\n *\n *\n * When called with `name` (without `value`), this creates a `BasicScope`. The\n * parent scope must also be a `BasicScope`; for custom scope types, create your\n * scope and pass it via the `value` prop instead.\n *\n * @see\n *\n * {@link ScopeContext}\n */\n",
21473
22619
  "excerptTokens": [
21474
22620
  {
21475
22621
  "kind": "Content",
@@ -21793,6 +22939,77 @@
21793
22939
  ],
21794
22940
  "extendsTokenRanges": []
21795
22941
  },
22942
+ {
22943
+ "kind": "Function",
22944
+ "canonicalReference": "@alloy-js/core!shallowReactive:function(1)",
22945
+ "docComment": "",
22946
+ "excerptTokens": [
22947
+ {
22948
+ "kind": "Content",
22949
+ "text": "export declare function shallowReactive<T extends "
22950
+ },
22951
+ {
22952
+ "kind": "Content",
22953
+ "text": "object"
22954
+ },
22955
+ {
22956
+ "kind": "Content",
22957
+ "text": ">(target: "
22958
+ },
22959
+ {
22960
+ "kind": "Content",
22961
+ "text": "T"
22962
+ },
22963
+ {
22964
+ "kind": "Content",
22965
+ "text": "): "
22966
+ },
22967
+ {
22968
+ "kind": "Reference",
22969
+ "text": "ShallowReactive",
22970
+ "canonicalReference": "@vue/reactivity!ShallowReactive:type"
22971
+ },
22972
+ {
22973
+ "kind": "Content",
22974
+ "text": "<T>"
22975
+ },
22976
+ {
22977
+ "kind": "Content",
22978
+ "text": ";"
22979
+ }
22980
+ ],
22981
+ "fileUrlPath": "src/reactivity.ts",
22982
+ "returnTypeTokenRange": {
22983
+ "startIndex": 5,
22984
+ "endIndex": 7
22985
+ },
22986
+ "releaseTag": "Public",
22987
+ "overloadIndex": 1,
22988
+ "parameters": [
22989
+ {
22990
+ "parameterName": "target",
22991
+ "parameterTypeTokenRange": {
22992
+ "startIndex": 3,
22993
+ "endIndex": 4
22994
+ },
22995
+ "isOptional": false
22996
+ }
22997
+ ],
22998
+ "typeParameters": [
22999
+ {
23000
+ "typeParameterName": "T",
23001
+ "constraintTokenRange": {
23002
+ "startIndex": 1,
23003
+ "endIndex": 2
23004
+ },
23005
+ "defaultTypeTokenRange": {
23006
+ "startIndex": 0,
23007
+ "endIndex": 0
23008
+ }
23009
+ }
23010
+ ],
23011
+ "name": "shallowReactive"
23012
+ },
21796
23013
  {
21797
23014
  "kind": "Function",
21798
23015
  "canonicalReference": "@alloy-js/core!shallowRef:function(1)",
@@ -21806,6 +23023,14 @@
21806
23023
  "kind": "Content",
21807
23024
  "text": "T"
21808
23025
  },
23026
+ {
23027
+ "kind": "Content",
23028
+ "text": ", options?: "
23029
+ },
23030
+ {
23031
+ "kind": "Content",
23032
+ "text": "{\n label?: string;\n}"
23033
+ },
21809
23034
  {
21810
23035
  "kind": "Content",
21811
23036
  "text": "): "
@@ -21826,8 +23051,8 @@
21826
23051
  ],
21827
23052
  "fileUrlPath": "src/reactivity.ts",
21828
23053
  "returnTypeTokenRange": {
21829
- "startIndex": 3,
21830
- "endIndex": 5
23054
+ "startIndex": 5,
23055
+ "endIndex": 7
21831
23056
  },
21832
23057
  "releaseTag": "Public",
21833
23058
  "overloadIndex": 1,
@@ -21839,6 +23064,14 @@
21839
23064
  "endIndex": 2
21840
23065
  },
21841
23066
  "isOptional": true
23067
+ },
23068
+ {
23069
+ "parameterName": "options",
23070
+ "parameterTypeTokenRange": {
23071
+ "startIndex": 3,
23072
+ "endIndex": 4
23073
+ },
23074
+ "isOptional": true
21842
23075
  }
21843
23076
  ],
21844
23077
  "typeParameters": [
@@ -22252,7 +23485,7 @@
22252
23485
  {
22253
23486
  "kind": "Variable",
22254
23487
  "canonicalReference": "@alloy-js/core!SourceDirectoryContext:var",
22255
- "docComment": "",
23488
+ "docComment": "/**\n * Always provided by `<Output>` — `useContext(SourceDirectoryContext)` is\n * never `undefined` inside an `<Output>` tree. At the root of the tree,\n * `path` equals the `basePath` prop on `<Output>` (default `\"./\"`); nested\n * `<SourceDirectory>` components update `path` relative to their parent.\n *\n * @see\n *\n * {@link Output}\n *\n * @see\n *\n * {@link SourceDirectory}\n */\n",
22256
23489
  "excerptTokens": [
22257
23490
  {
22258
23491
  "kind": "Content",
@@ -22611,7 +23844,7 @@
22611
23844
  {
22612
23845
  "kind": "PropertySignature",
22613
23846
  "canonicalReference": "@alloy-js/core!SourceFileProps#filetype:member",
22614
- "docComment": "/**\n * The type of contents in this file.\n */\n",
23847
+ "docComment": "/**\n * The type of contents in this file.\n *\n * @remarks\n *\n *\n * This is a metadata hint only. It does not trigger formatting or content\n * processing. The value is forwarded to debug tooling and the\n * `ContentOutputFile` output metadata.\n */\n",
22615
23848
  "excerptTokens": [
22616
23849
  {
22617
23850
  "kind": "Content",
@@ -22638,7 +23871,7 @@
22638
23871
  {
22639
23872
  "kind": "PropertySignature",
22640
23873
  "canonicalReference": "@alloy-js/core!SourceFileProps#header:member",
22641
- "docComment": "/**\n * The header of the file. This is rendered before the contents of the file.\n * This is useful for adding license headers or other metadata to the file.\n */\n",
23874
+ "docComment": "/**\n * Content rendered before the file body, separated from it by a hard line\n * break. The separator is emitted whenever `header` is not `undefined` —\n * including when it is an empty string or a component that renders nothing.\n * To suppress both the header and the separator, omit this prop entirely.\n *\n * @example\n * ```tsx\n * // Omitting `header` suppresses both header and separator:\n * <SourceFile filetype=\"txt\" path=\"output/data.txt\">\n * {children}\n * </SourceFile>\n *\n * // An empty string still emits the separator newline:\n * <SourceFile filetype=\"txt\" path=\"output/data.txt\" header=\"\">\n * {children}\n * </SourceFile>\n * ```\n *\n */\n",
22642
23875
  "excerptTokens": [
22643
23876
  {
22644
23877
  "kind": "Content",
@@ -23867,7 +25100,7 @@
23867
25100
  {
23868
25101
  "kind": "Interface",
23869
25102
  "canonicalReference": "@alloy-js/core!SymbolCreator:interface",
23870
- "docComment": "",
25103
+ "docComment": "/**\n * An object that can register symbols into a binder. Pass instances to the\n * `externals` prop of `<Output>` to make library symbols resolvable.\n *\n * @remarks\n *\n *\n * `SymbolCreator` is a low-level core mechanism for eager symbol registration.\n * The recommended pattern for language packages is lazy self-registration:\n * implement `[TO_SYMBOL]()` on descriptors to call `useBinder()`, create and\n * cache symbols per binder via a `WeakMap`, and register them into the\n * appropriate scope automatically. This approach does not require `externals`.\n * See the C# package's `createLibrary()` for a reference implementation.\n *\n * See {@link TO_SYMBOL} and {@link REFKEYABLE}.\n */\n",
23871
25104
  "excerptTokens": [
23872
25105
  {
23873
25106
  "kind": "Content",
@@ -25697,7 +26930,7 @@
25697
26930
  {
25698
26931
  "kind": "Variable",
25699
26932
  "canonicalReference": "@alloy-js/core!TO_SYMBOL:var",
25700
- "docComment": "",
26933
+ "docComment": "/**\n * Well-known symbol for the lazy-symbol-creation protocol used by external\n * library descriptors. Objects implementing `[TO_SYMBOL]()` are recognized as\n * {@link LibrarySymbolReference} values that can be passed anywhere a refkey\n * is accepted.\n *\n * @remarks\n *\n *\n *\n * Implement `[TO_SYMBOL]()` on a descriptor object to register it as a\n * referenceable library symbol. Inside the method:\n *\n * 1. Call {@link useBinder} to get the current binder context.\n * 2. Look up (or create) the symbol for that binder in a\n * `WeakMap<object, OutputSymbol>` (use a sentinel object for the\n * no-binder case, since `WeakMap` keys must be objects).\n * 3. On first creation, construct the symbol and register it into the\n * appropriate space for your library, passing `{ binder }`\n * (see {@link OutputSymbolOptions.binder}).\n *\n * The method is called by language package code each time the descriptor is\n * used as a reference (e.g. inside `ref()`). It is NOT called by the binder\n * itself.\n *\n * @example\n *\n *\n *\n * ```ts\n * const defaultKey = {};\n * const symbols = new WeakMap<object, MySymbol>();\n * const descriptor: LibrarySymbolReference = {\n * [REFKEYABLE]() {\n * return descriptor[TO_SYMBOL]().refkeys[0];\n * },\n * [TO_SYMBOL]() {\n * const binder = useBinder();\n * const key = binder ?? defaultKey;\n * let sym = symbols.get(key);\n * if (!sym) {\n * sym = new MySymbol(\"SomeType\", space, { binder });\n * symbols.set(key, sym);\n * }\n * return sym;\n * },\n * };\n * ```\n *\n */\n",
25701
26934
  "excerptTokens": [
25702
26935
  {
25703
26936
  "kind": "Content",
@@ -26315,7 +27548,7 @@
26315
27548
  {
26316
27549
  "kind": "Function",
26317
27550
  "canonicalReference": "@alloy-js/core!useBinder:function(1)",
26318
- "docComment": "",
27551
+ "docComment": "/**\n * Returns the current {@link Binder} from context, or `undefined` if no\n * binder is available. The binder is provided by the {@link Output} component.\n */\n",
26319
27552
  "excerptTokens": [
26320
27553
  {
26321
27554
  "kind": "Content",
@@ -26595,7 +27828,7 @@
26595
27828
  {
26596
27829
  "kind": "Function",
26597
27830
  "canonicalReference": "@alloy-js/core!useScope:function(1)",
26598
- "docComment": "",
27831
+ "docComment": "/**\n * Returns the current {@link OutputScope} from context. Must be called inside\n * a component that is a descendant of a `<Scope>` provider.\n */\n",
26599
27832
  "excerptTokens": [
26600
27833
  {
26601
27834
  "kind": "Content",