@alloy-js/core 0.23.0-dev.9 → 0.23.1

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 (964) hide show
  1. package/CHANGELOG.md +42 -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.browser.js +14 -0
  93. package/dist/dev/src/debug/cli.browser.js.map +1 -0
  94. package/dist/dev/src/debug/cli.js +164 -0
  95. package/dist/dev/src/debug/cli.js.map +1 -0
  96. package/dist/dev/src/debug/diagnostics-broadcast.test.js +100 -0
  97. package/dist/dev/src/debug/diagnostics-broadcast.test.js.map +1 -0
  98. package/dist/dev/src/debug/diagnostics.test.js +50 -0
  99. package/dist/dev/src/debug/diagnostics.test.js.map +1 -0
  100. package/dist/dev/src/debug/effects.js +293 -0
  101. package/dist/dev/src/debug/effects.js.map +1 -0
  102. package/dist/dev/src/debug/effects.test.js +280 -0
  103. package/dist/dev/src/debug/effects.test.js.map +1 -0
  104. package/dist/dev/src/debug/files.js +29 -0
  105. package/dist/dev/src/debug/files.js.map +1 -0
  106. package/dist/dev/src/debug/files.test.js +78 -0
  107. package/dist/dev/src/debug/files.test.js.map +1 -0
  108. package/dist/dev/src/debug/index.js +71 -0
  109. package/dist/dev/src/debug/index.js.map +1 -0
  110. package/dist/dev/src/debug/message-format.test.js +836 -0
  111. package/dist/dev/src/debug/message-format.test.js.map +1 -0
  112. package/dist/dev/src/debug/render-tree-orphans.test.js +365 -0
  113. package/dist/dev/src/debug/render-tree-orphans.test.js.map +1 -0
  114. package/dist/dev/src/debug/render.js +479 -0
  115. package/dist/dev/src/debug/render.js.map +1 -0
  116. package/dist/dev/src/debug/render.test.js +363 -0
  117. package/dist/dev/src/debug/render.test.js.map +1 -0
  118. package/dist/dev/src/debug/serialize.js +70 -0
  119. package/dist/dev/src/debug/serialize.js.map +1 -0
  120. package/dist/dev/src/debug/source-map.browser.js +24 -0
  121. package/dist/dev/src/debug/source-map.browser.js.map +1 -0
  122. package/dist/dev/src/debug/source-map.js +111 -0
  123. package/dist/dev/src/debug/source-map.js.map +1 -0
  124. package/dist/dev/src/debug/symbols.js +196 -0
  125. package/dist/dev/src/debug/symbols.js.map +1 -0
  126. package/dist/dev/src/debug/symbols.test.js +93 -0
  127. package/dist/dev/src/debug/symbols.test.js.map +1 -0
  128. package/dist/dev/src/debug/trace-db.browser.js +11 -0
  129. package/dist/dev/src/debug/trace-db.browser.js.map +1 -0
  130. package/dist/dev/src/debug/trace-db.js +40 -0
  131. package/dist/dev/src/debug/trace-db.js.map +1 -0
  132. package/dist/dev/src/debug/trace-writer.js +653 -0
  133. package/dist/dev/src/debug/trace-writer.js.map +1 -0
  134. package/dist/dev/src/debug/trace.js +460 -0
  135. package/dist/dev/src/debug/trace.js.map +1 -0
  136. package/dist/dev/src/devtools/devtools-protocol.js +2 -0
  137. package/dist/dev/src/devtools/devtools-protocol.js.map +1 -0
  138. package/dist/dev/src/devtools/devtools-server.browser.js +36 -0
  139. package/dist/dev/src/devtools/devtools-server.browser.js.map +1 -0
  140. package/dist/dev/src/devtools/devtools-server.js +458 -0
  141. package/dist/dev/src/devtools/devtools-server.js.map +1 -0
  142. package/dist/dev/src/devtools/devtools-transport.js +114 -0
  143. package/dist/dev/src/devtools/devtools-transport.js.map +1 -0
  144. package/dist/dev/src/devtools-entry.browser.js +2 -0
  145. package/dist/dev/src/devtools-entry.browser.js.map +1 -0
  146. package/dist/dev/src/devtools-entry.js +2 -0
  147. package/dist/dev/src/devtools-entry.js.map +1 -0
  148. package/dist/dev/src/diagnostics.js +97 -0
  149. package/dist/dev/src/diagnostics.js.map +1 -0
  150. package/dist/dev/src/host/alloy-host.browser.js +32 -0
  151. package/dist/dev/src/host/alloy-host.browser.js.map +1 -0
  152. package/dist/dev/src/host/alloy-host.js +144 -0
  153. package/dist/dev/src/host/alloy-host.js.map +1 -0
  154. package/dist/dev/src/host/interface.js +2 -0
  155. package/dist/dev/src/host/interface.js.map +1 -0
  156. package/dist/dev/src/host/node-host.browser.js +21 -0
  157. package/dist/dev/src/host/node-host.browser.js.map +1 -0
  158. package/dist/dev/src/host/node-host.js +20 -0
  159. package/dist/dev/src/host/node-host.js.map +1 -0
  160. package/dist/dev/src/index.browser.js +3 -0
  161. package/dist/dev/src/index.browser.js.map +1 -0
  162. package/dist/dev/src/index.js +27 -0
  163. package/dist/dev/src/index.js.map +1 -0
  164. package/dist/dev/src/inspect.browser.js +6 -0
  165. package/dist/dev/src/inspect.browser.js.map +1 -0
  166. package/dist/dev/src/inspect.js +2 -0
  167. package/dist/dev/src/inspect.js.map +1 -0
  168. package/dist/dev/src/jsx-runtime.js +17 -0
  169. package/dist/dev/src/jsx-runtime.js.map +1 -0
  170. package/dist/dev/src/library-symbol-reference.js +59 -0
  171. package/dist/dev/src/library-symbol-reference.js.map +1 -0
  172. package/dist/dev/src/name-policy.js +51 -0
  173. package/dist/dev/src/name-policy.js.map +1 -0
  174. package/dist/dev/src/pretty-string/pretty-string.js +100 -0
  175. package/dist/dev/src/pretty-string/pretty-string.js.map +1 -0
  176. package/dist/dev/src/pretty-string/pretty-string.test.js +38 -0
  177. package/dist/dev/src/pretty-string/pretty-string.test.js.map +1 -0
  178. package/dist/dev/src/print-hook.js +10 -0
  179. package/dist/dev/src/print-hook.js.map +1 -0
  180. package/dist/dev/src/props-combinators.js +109 -0
  181. package/dist/dev/src/props-combinators.js.map +1 -0
  182. package/dist/dev/src/reactive-union-set.js +213 -0
  183. package/dist/dev/src/reactive-union-set.js.map +1 -0
  184. package/dist/dev/src/reactivity.js +452 -0
  185. package/dist/dev/src/reactivity.js.map +1 -0
  186. package/dist/dev/src/refkey.js +167 -0
  187. package/dist/dev/src/refkey.js.map +1 -0
  188. package/dist/dev/src/render-stack.js +252 -0
  189. package/dist/dev/src/render-stack.js.map +1 -0
  190. package/dist/dev/src/render.js +872 -0
  191. package/dist/dev/src/render.js.map +1 -0
  192. package/dist/dev/src/resource.js +124 -0
  193. package/dist/dev/src/resource.js.map +1 -0
  194. package/dist/dev/src/runtime/component.js +41 -0
  195. package/dist/dev/src/runtime/component.js.map +1 -0
  196. package/dist/dev/src/runtime/intrinsic.js +12 -0
  197. package/dist/dev/src/runtime/intrinsic.js.map +1 -0
  198. package/dist/dev/src/scheduler.js +217 -0
  199. package/dist/dev/src/scheduler.js.map +1 -0
  200. package/dist/dev/src/stc.js +40 -0
  201. package/dist/dev/src/stc.js.map +1 -0
  202. package/dist/dev/src/sti.js +31 -0
  203. package/dist/dev/src/sti.js.map +1 -0
  204. package/dist/dev/src/symbols/basic-scope.js +21 -0
  205. package/dist/dev/src/symbols/basic-scope.js.map +1 -0
  206. package/dist/dev/src/symbols/basic-symbol.js +34 -0
  207. package/dist/dev/src/symbols/basic-symbol.js.map +1 -0
  208. package/dist/dev/src/symbols/decl.js +26 -0
  209. package/dist/dev/src/symbols/decl.js.map +1 -0
  210. package/dist/dev/src/symbols/index.js +10 -0
  211. package/dist/dev/src/symbols/index.js.map +1 -0
  212. package/dist/dev/src/symbols/output-scope.js +235 -0
  213. package/dist/dev/src/symbols/output-scope.js.map +1 -0
  214. package/dist/dev/src/symbols/output-space.js +51 -0
  215. package/dist/dev/src/symbols/output-space.js.map +1 -0
  216. package/dist/dev/src/symbols/output-symbol.js +644 -0
  217. package/dist/dev/src/symbols/output-symbol.js.map +1 -0
  218. package/dist/dev/src/symbols/symbol-flow.js +106 -0
  219. package/dist/dev/src/symbols/symbol-flow.js.map +1 -0
  220. package/dist/dev/src/symbols/symbol-slot.js +75 -0
  221. package/dist/dev/src/symbols/symbol-slot.js.map +1 -0
  222. package/dist/dev/src/symbols/symbol-slot.test.js +68 -0
  223. package/dist/dev/src/symbols/symbol-slot.test.js.map +1 -0
  224. package/dist/dev/src/symbols/symbol-table.js +103 -0
  225. package/dist/dev/src/symbols/symbol-table.js.map +1 -0
  226. package/dist/dev/src/tap.js +109 -0
  227. package/dist/dev/src/tap.js.map +1 -0
  228. package/dist/dev/src/trace.js +2 -0
  229. package/dist/dev/src/trace.js.map +1 -0
  230. package/dist/dev/src/tracer.js +180 -0
  231. package/dist/dev/src/tracer.js.map +1 -0
  232. package/dist/dev/src/utils.js +487 -0
  233. package/dist/dev/src/utils.js.map +1 -0
  234. package/dist/dev/src/write-output.js +48 -0
  235. package/dist/dev/src/write-output.js.map +1 -0
  236. package/dist/dev/test/browser-build.test.js +146 -0
  237. package/dist/dev/test/browser-build.test.js.map +1 -0
  238. package/dist/dev/test/children.test.js +44 -0
  239. package/dist/dev/test/children.test.js.map +1 -0
  240. package/dist/dev/test/components/append-file.test.js +394 -0
  241. package/dist/dev/test/components/append-file.test.js.map +1 -0
  242. package/dist/dev/test/components/block.test.js +83 -0
  243. package/dist/dev/test/components/block.test.js.map +1 -0
  244. package/dist/dev/test/components/copy-file.test.js +119 -0
  245. package/dist/dev/test/components/copy-file.test.js.map +1 -0
  246. package/dist/dev/test/components/declaration.test.js +40 -0
  247. package/dist/dev/test/components/declaration.test.js.map +1 -0
  248. package/dist/dev/test/components/list.test.js +250 -0
  249. package/dist/dev/test/components/list.test.js.map +1 -0
  250. package/dist/dev/test/components/prose.test.js +42 -0
  251. package/dist/dev/test/components/prose.test.js.map +1 -0
  252. package/dist/dev/test/components/reference-or-content.test.js +246 -0
  253. package/dist/dev/test/components/reference-or-content.test.js.map +1 -0
  254. package/dist/dev/test/components/source-file.test.js +271 -0
  255. package/dist/dev/test/components/source-file.test.js.map +1 -0
  256. package/dist/dev/test/components/template-file.test.js +200 -0
  257. package/dist/dev/test/components/template-file.test.js.map +1 -0
  258. package/dist/dev/test/components/update-file.test.js +210 -0
  259. package/dist/dev/test/components/update-file.test.js.map +1 -0
  260. package/dist/dev/test/components/wrap.test.js +48 -0
  261. package/dist/dev/test/components/wrap.test.js.map +1 -0
  262. package/dist/dev/test/control-flow/for.test.js +318 -0
  263. package/dist/dev/test/control-flow/for.test.js.map +1 -0
  264. package/dist/dev/test/control-flow/match.test.js +112 -0
  265. package/dist/dev/test/control-flow/match.test.js.map +1 -0
  266. package/dist/dev/test/control-flow/show.test.js +38 -0
  267. package/dist/dev/test/control-flow/show.test.js.map +1 -0
  268. package/dist/dev/test/lazy-isempty.test.js +121 -0
  269. package/dist/dev/test/lazy-isempty.test.js.map +1 -0
  270. package/dist/dev/test/name-policy.test.js +28 -0
  271. package/dist/dev/test/name-policy.test.js.map +1 -0
  272. package/dist/dev/test/props-with-defaults.test.js +94 -0
  273. package/dist/dev/test/props-with-defaults.test.js.map +1 -0
  274. package/dist/dev/test/reactive-union-set-disposers.test.js +98 -0
  275. package/dist/dev/test/reactive-union-set-disposers.test.js.map +1 -0
  276. package/dist/dev/test/reactive-union-set.test.js +171 -0
  277. package/dist/dev/test/reactive-union-set.test.js.map +1 -0
  278. package/dist/dev/test/reactivity/circular-reactives.test.js +62 -0
  279. package/dist/dev/test/reactivity/circular-reactives.test.js.map +1 -0
  280. package/dist/dev/test/reactivity/cleanup.test.js +96 -0
  281. package/dist/dev/test/reactivity/cleanup.test.js.map +1 -0
  282. package/dist/dev/test/reactivity/memo.test.js +17 -0
  283. package/dist/dev/test/reactivity/memo.test.js.map +1 -0
  284. package/dist/dev/test/reactivity/ref-rendering.test.js +38 -0
  285. package/dist/dev/test/reactivity/ref-rendering.test.js.map +1 -0
  286. package/dist/dev/test/reactivity/shallow-reactive.test.js +56 -0
  287. package/dist/dev/test/reactivity/shallow-reactive.test.js.map +1 -0
  288. package/dist/dev/test/reactivity/test.test.js +74 -0
  289. package/dist/dev/test/reactivity/test.test.js.map +1 -0
  290. package/dist/dev/test/reactivity/untrack.test.js +27 -0
  291. package/dist/dev/test/reactivity/untrack.test.js.map +1 -0
  292. package/dist/dev/test/refkey.test.js +36 -0
  293. package/dist/dev/test/refkey.test.js.map +1 -0
  294. package/dist/dev/test/rendering/basic.test.js +194 -0
  295. package/dist/dev/test/rendering/basic.test.js.map +1 -0
  296. package/dist/dev/test/rendering/code.test.js +64 -0
  297. package/dist/dev/test/rendering/code.test.js.map +1 -0
  298. package/dist/dev/test/rendering/formatting.test.js +797 -0
  299. package/dist/dev/test/rendering/formatting.test.js.map +1 -0
  300. package/dist/dev/test/rendering/indent.test.js +183 -0
  301. package/dist/dev/test/rendering/indent.test.js.map +1 -0
  302. package/dist/dev/test/rendering/memoization.test.js +37 -0
  303. package/dist/dev/test/rendering/memoization.test.js.map +1 -0
  304. package/dist/dev/test/rendering/print-render-stack.test.js +287 -0
  305. package/dist/dev/test/rendering/print-render-stack.test.js.map +1 -0
  306. package/dist/dev/test/rendering/refkeys.test.js +37 -0
  307. package/dist/dev/test/rendering/refkeys.test.js.map +1 -0
  308. package/dist/dev/test/scheduler-extended.test.js +96 -0
  309. package/dist/dev/test/scheduler-extended.test.js.map +1 -0
  310. package/dist/dev/test/scheduler.test.js +46 -0
  311. package/dist/dev/test/scheduler.test.js.map +1 -0
  312. package/dist/dev/test/split-props.test.js +78 -0
  313. package/dist/dev/test/split-props.test.js.map +1 -0
  314. package/dist/dev/test/stc.test.js +35 -0
  315. package/dist/dev/test/stc.test.js.map +1 -0
  316. package/dist/dev/test/symbols/deconflicted-name.test.js +120 -0
  317. package/dist/dev/test/symbols/deconflicted-name.test.js.map +1 -0
  318. package/dist/dev/test/symbols/output-scope.test.js +221 -0
  319. package/dist/dev/test/symbols/output-scope.test.js.map +1 -0
  320. package/dist/dev/test/symbols/output-symbol.test.js +202 -0
  321. package/dist/dev/test/symbols/output-symbol.test.js.map +1 -0
  322. package/dist/dev/test/symbols/resolution.test.js +487 -0
  323. package/dist/dev/test/symbols/resolution.test.js.map +1 -0
  324. package/dist/dev/test/symbols/symbol-table.test.js +15 -0
  325. package/dist/dev/test/symbols/symbol-table.test.js.map +1 -0
  326. package/dist/dev/test/symbols/utils.js +26 -0
  327. package/dist/dev/test/symbols/utils.js.map +1 -0
  328. package/dist/dev/test/utils.test.js +317 -0
  329. package/dist/dev/test/utils.test.js.map +1 -0
  330. package/dist/dev/testing/create-test-wrapper.js +130 -0
  331. package/dist/dev/testing/create-test-wrapper.js.map +1 -0
  332. package/dist/dev/testing/devtools-utils.js +162 -0
  333. package/dist/dev/testing/devtools-utils.js.map +1 -0
  334. package/dist/dev/testing/extend-expect.js +187 -0
  335. package/dist/dev/testing/extend-expect.js.map +1 -0
  336. package/dist/dev/testing/extend-expect.test.js +234 -0
  337. package/dist/dev/testing/extend-expect.test.js.map +1 -0
  338. package/dist/dev/testing/index.js +4 -0
  339. package/dist/dev/testing/index.js.map +1 -0
  340. package/dist/dev/testing/render.js +34 -0
  341. package/dist/dev/testing/render.js.map +1 -0
  342. package/dist/dev/testing/vitest.d.js +14 -0
  343. package/dist/dev/testing/vitest.d.js.map +1 -0
  344. package/dist/devtools/index.html +29 -17
  345. package/dist/src/binder.d.ts +107 -3
  346. package/dist/src/binder.d.ts.map +1 -1
  347. package/dist/src/binder.js +113 -1
  348. package/dist/src/binder.js.map +1 -1
  349. package/dist/src/components/AccessExpression.d.ts +78 -0
  350. package/dist/src/components/AccessExpression.d.ts.map +1 -0
  351. package/dist/src/components/AccessExpression.js +218 -0
  352. package/dist/src/components/AccessExpression.js.map +1 -0
  353. package/dist/src/components/AccessExpression.test.d.ts +2 -0
  354. package/dist/src/components/AccessExpression.test.d.ts.map +1 -0
  355. package/dist/src/components/AccessExpression.test.js +137 -0
  356. package/dist/src/components/AccessExpression.test.js.map +1 -0
  357. package/dist/src/components/Block.d.ts +12 -0
  358. package/dist/src/components/Block.d.ts.map +1 -1
  359. package/dist/src/components/Block.js +12 -0
  360. package/dist/src/components/Block.js.map +1 -1
  361. package/dist/src/components/For.d.ts.map +1 -1
  362. package/dist/src/components/For.js +1 -1
  363. package/dist/src/components/For.js.map +1 -1
  364. package/dist/src/components/List.d.ts +11 -1
  365. package/dist/src/components/List.d.ts.map +1 -1
  366. package/dist/src/components/List.js +1 -1
  367. package/dist/src/components/List.js.map +1 -1
  368. package/dist/src/components/MemberDeclaration.d.ts +6 -6
  369. package/dist/src/components/MemberDeclaration.js +6 -6
  370. package/dist/src/components/MemberName.d.ts +6 -0
  371. package/dist/src/components/MemberName.d.ts.map +1 -1
  372. package/dist/src/components/MemberName.js +7 -0
  373. package/dist/src/components/MemberName.js.map +1 -1
  374. package/dist/src/components/MemberScope.d.ts +5 -0
  375. package/dist/src/components/MemberScope.d.ts.map +1 -1
  376. package/dist/src/components/MemberScope.js +5 -0
  377. package/dist/src/components/MemberScope.js.map +1 -1
  378. package/dist/src/components/Output.d.ts +4 -2
  379. package/dist/src/components/Output.d.ts.map +1 -1
  380. package/dist/src/components/Output.js.map +1 -1
  381. package/dist/src/components/Scope.d.ts +6 -0
  382. package/dist/src/components/Scope.d.ts.map +1 -1
  383. package/dist/src/components/Scope.js +6 -0
  384. package/dist/src/components/Scope.js.map +1 -1
  385. package/dist/src/components/SourceFile.d.ts +22 -2
  386. package/dist/src/components/SourceFile.d.ts.map +1 -1
  387. package/dist/src/components/SourceFile.js.map +1 -1
  388. package/dist/src/components/Switch.d.ts.map +1 -1
  389. package/dist/src/components/Switch.js +1 -1
  390. package/dist/src/components/Switch.js.map +1 -1
  391. package/dist/src/components/index.d.ts +1 -0
  392. package/dist/src/components/index.d.ts.map +1 -1
  393. package/dist/src/components/index.js +1 -0
  394. package/dist/src/components/index.js.map +1 -1
  395. package/dist/src/context/binder.d.ts +4 -0
  396. package/dist/src/context/binder.d.ts.map +1 -1
  397. package/dist/src/context/binder.js +5 -0
  398. package/dist/src/context/binder.js.map +1 -1
  399. package/dist/src/context/format-options.d.ts +14 -1
  400. package/dist/src/context/format-options.d.ts.map +1 -1
  401. package/dist/src/context/format-options.js +14 -1
  402. package/dist/src/context/format-options.js.map +1 -1
  403. package/dist/src/context/scope.d.ts +4 -0
  404. package/dist/src/context/scope.d.ts.map +1 -1
  405. package/dist/src/context/scope.js +5 -0
  406. package/dist/src/context/scope.js.map +1 -1
  407. package/dist/src/context/source-directory.d.ts +9 -0
  408. package/dist/src/context/source-directory.d.ts.map +1 -1
  409. package/dist/src/context/source-directory.js +9 -0
  410. package/dist/src/context/source-directory.js.map +1 -1
  411. package/dist/src/debug/cli.browser.d.ts +13 -0
  412. package/dist/src/debug/cli.browser.d.ts.map +1 -0
  413. package/dist/src/debug/cli.browser.js +14 -0
  414. package/dist/src/debug/cli.browser.js.map +1 -0
  415. package/dist/src/debug/cli.d.ts.map +1 -1
  416. package/dist/src/debug/cli.js +3 -2
  417. package/dist/src/debug/cli.js.map +1 -1
  418. package/dist/src/debug/diagnostics-broadcast.test.d.ts +2 -0
  419. package/dist/src/debug/diagnostics-broadcast.test.d.ts.map +1 -0
  420. package/dist/src/debug/diagnostics-broadcast.test.js +100 -0
  421. package/dist/src/debug/diagnostics-broadcast.test.js.map +1 -0
  422. package/dist/src/debug/diagnostics.test.js +3 -2
  423. package/dist/src/debug/diagnostics.test.js.map +1 -1
  424. package/dist/src/debug/effects.d.ts +12 -4
  425. package/dist/src/debug/effects.d.ts.map +1 -1
  426. package/dist/src/debug/effects.js +119 -54
  427. package/dist/src/debug/effects.js.map +1 -1
  428. package/dist/src/debug/effects.test.js +213 -41
  429. package/dist/src/debug/effects.test.js.map +1 -1
  430. package/dist/src/debug/files.d.ts.map +1 -1
  431. package/dist/src/debug/files.js +7 -18
  432. package/dist/src/debug/files.js.map +1 -1
  433. package/dist/src/debug/files.test.js +13 -36
  434. package/dist/src/debug/files.test.js.map +1 -1
  435. package/dist/src/debug/index.d.ts +4 -2
  436. package/dist/src/debug/index.d.ts.map +1 -1
  437. package/dist/src/debug/index.js +4 -2
  438. package/dist/src/debug/index.js.map +1 -1
  439. package/dist/src/debug/message-format.test.d.ts +2 -0
  440. package/dist/src/debug/message-format.test.d.ts.map +1 -0
  441. package/dist/src/debug/message-format.test.js +700 -0
  442. package/dist/src/debug/message-format.test.js.map +1 -0
  443. package/dist/src/debug/render-tree-orphans.test.d.ts +2 -0
  444. package/dist/src/debug/render-tree-orphans.test.d.ts.map +1 -0
  445. package/dist/src/debug/render-tree-orphans.test.js +297 -0
  446. package/dist/src/debug/render-tree-orphans.test.js.map +1 -0
  447. package/dist/src/debug/render.d.ts.map +1 -1
  448. package/dist/src/debug/render.js +91 -131
  449. package/dist/src/debug/render.js.map +1 -1
  450. package/dist/src/debug/render.test.js +91 -128
  451. package/dist/src/debug/render.test.js.map +1 -1
  452. package/dist/src/debug/source-map.browser.d.ts +16 -0
  453. package/dist/src/debug/source-map.browser.d.ts.map +1 -0
  454. package/dist/src/debug/source-map.browser.js +24 -0
  455. package/dist/src/debug/source-map.browser.js.map +1 -0
  456. package/dist/src/debug/source-map.d.ts +22 -0
  457. package/dist/src/debug/source-map.d.ts.map +1 -0
  458. package/dist/src/debug/source-map.js +111 -0
  459. package/dist/src/debug/source-map.js.map +1 -0
  460. package/dist/src/debug/symbols.d.ts +6 -5
  461. package/dist/src/debug/symbols.d.ts.map +1 -1
  462. package/dist/src/debug/symbols.js +46 -23
  463. package/dist/src/debug/symbols.js.map +1 -1
  464. package/dist/src/debug/symbols.test.js +15 -26
  465. package/dist/src/debug/symbols.test.js.map +1 -1
  466. package/dist/src/debug/trace-db.browser.d.ts +9 -0
  467. package/dist/src/debug/trace-db.browser.d.ts.map +1 -0
  468. package/dist/src/debug/trace-db.browser.js +11 -0
  469. package/dist/src/debug/trace-db.browser.js.map +1 -0
  470. package/dist/src/debug/trace-db.d.ts +16 -0
  471. package/dist/src/debug/trace-db.d.ts.map +1 -0
  472. package/dist/src/debug/trace-db.js +40 -0
  473. package/dist/src/debug/trace-db.js.map +1 -0
  474. package/dist/src/debug/trace-writer.d.ts +56 -0
  475. package/dist/src/debug/trace-writer.d.ts.map +1 -0
  476. package/dist/src/debug/trace-writer.js +653 -0
  477. package/dist/src/debug/trace-writer.js.map +1 -0
  478. package/dist/src/debug/trace.d.ts +10 -10
  479. package/dist/src/debug/trace.d.ts.map +1 -1
  480. package/dist/src/debug/trace.js +41 -24
  481. package/dist/src/debug/trace.js.map +1 -1
  482. package/dist/src/devtools/devtools-protocol.d.ts +318 -161
  483. package/dist/src/devtools/devtools-protocol.d.ts.map +1 -1
  484. package/dist/src/devtools/devtools-server.browser.d.ts +1 -5
  485. package/dist/src/devtools/devtools-server.browser.d.ts.map +1 -1
  486. package/dist/src/devtools/devtools-server.browser.js +3 -3
  487. package/dist/src/devtools/devtools-server.browser.js.map +1 -1
  488. package/dist/src/devtools/devtools-server.d.ts +5 -6
  489. package/dist/src/devtools/devtools-server.d.ts.map +1 -1
  490. package/dist/src/devtools/devtools-server.js +227 -25
  491. package/dist/src/devtools/devtools-server.js.map +1 -1
  492. package/dist/src/devtools/devtools-transport.d.ts +2 -2
  493. package/dist/src/devtools/devtools-transport.d.ts.map +1 -1
  494. package/dist/src/devtools/devtools-transport.js +2 -2
  495. package/dist/src/devtools/devtools-transport.js.map +1 -1
  496. package/dist/src/devtools-entry.browser.d.ts +1 -1
  497. package/dist/src/devtools-entry.browser.d.ts.map +1 -1
  498. package/dist/src/devtools-entry.browser.js.map +1 -1
  499. package/dist/src/devtools-entry.d.ts +1 -1
  500. package/dist/src/devtools-entry.d.ts.map +1 -1
  501. package/dist/src/devtools-entry.js.map +1 -1
  502. package/dist/src/diagnostics.d.ts +1 -1
  503. package/dist/src/diagnostics.d.ts.map +1 -1
  504. package/dist/src/diagnostics.js +27 -19
  505. package/dist/src/diagnostics.js.map +1 -1
  506. package/dist/src/host/node-host.browser.d.ts +11 -0
  507. package/dist/src/host/node-host.browser.d.ts.map +1 -0
  508. package/dist/src/host/node-host.browser.js +21 -0
  509. package/dist/src/host/node-host.browser.js.map +1 -0
  510. package/dist/src/host/node-host.d.ts +11 -0
  511. package/dist/src/host/node-host.d.ts.map +1 -0
  512. package/dist/src/host/node-host.js +20 -0
  513. package/dist/src/host/node-host.js.map +1 -0
  514. package/dist/src/library-symbol-reference.d.ts +52 -0
  515. package/dist/src/library-symbol-reference.d.ts.map +1 -1
  516. package/dist/src/library-symbol-reference.js +54 -0
  517. package/dist/src/library-symbol-reference.js.map +1 -1
  518. package/dist/src/name-policy.d.ts +30 -3
  519. package/dist/src/name-policy.d.ts.map +1 -1
  520. package/dist/src/name-policy.js +27 -0
  521. package/dist/src/name-policy.js.map +1 -1
  522. package/dist/src/reactivity.d.ts +28 -2
  523. package/dist/src/reactivity.d.ts.map +1 -1
  524. package/dist/src/reactivity.js +154 -45
  525. package/dist/src/reactivity.js.map +1 -1
  526. package/dist/src/render-stack.d.ts.map +1 -1
  527. package/dist/src/render-stack.js +4 -3
  528. package/dist/src/render-stack.js.map +1 -1
  529. package/dist/src/render.d.ts +2 -0
  530. package/dist/src/render.d.ts.map +1 -1
  531. package/dist/src/render.js +84 -30
  532. package/dist/src/render.js.map +1 -1
  533. package/dist/src/scheduler.d.ts +5 -0
  534. package/dist/src/scheduler.d.ts.map +1 -1
  535. package/dist/src/scheduler.js +94 -23
  536. package/dist/src/scheduler.js.map +1 -1
  537. package/dist/src/symbols/output-scope.d.ts +33 -1
  538. package/dist/src/symbols/output-scope.d.ts.map +1 -1
  539. package/dist/src/symbols/output-scope.js +34 -1
  540. package/dist/src/symbols/output-scope.js.map +1 -1
  541. package/dist/src/symbols/output-space.d.ts +12 -0
  542. package/dist/src/symbols/output-space.d.ts.map +1 -1
  543. package/dist/src/symbols/output-space.js +15 -0
  544. package/dist/src/symbols/output-space.js.map +1 -1
  545. package/dist/src/symbols/output-symbol.d.ts +128 -12
  546. package/dist/src/symbols/output-symbol.d.ts.map +1 -1
  547. package/dist/src/symbols/output-symbol.js +158 -18
  548. package/dist/src/symbols/output-symbol.js.map +1 -1
  549. package/dist/src/symbols/symbol-slot.d.ts.map +1 -1
  550. package/dist/src/symbols/symbol-slot.js +7 -0
  551. package/dist/src/symbols/symbol-slot.js.map +1 -1
  552. package/dist/src/symbols/symbol-slot.test.js +18 -1
  553. package/dist/src/symbols/symbol-slot.test.js.map +1 -1
  554. package/dist/src/symbols/symbol-table.d.ts.map +1 -1
  555. package/dist/src/symbols/symbol-table.js +13 -3
  556. package/dist/src/symbols/symbol-table.js.map +1 -1
  557. package/dist/src/utils.d.ts.map +1 -1
  558. package/dist/src/utils.js +11 -5
  559. package/dist/src/utils.js.map +1 -1
  560. package/dist/src/write-output.d.ts.map +1 -1
  561. package/dist/src/write-output.js +6 -5
  562. package/dist/src/write-output.js.map +1 -1
  563. package/dist/test/browser-build.test.js +128 -68
  564. package/dist/test/browser-build.test.js.map +1 -1
  565. package/dist/test/reactivity/shallow-reactive.test.js +4 -0
  566. package/dist/test/reactivity/shallow-reactive.test.js.map +1 -1
  567. package/dist/test/symbols/deconflicted-name.test.d.ts +2 -0
  568. package/dist/test/symbols/deconflicted-name.test.d.ts.map +1 -0
  569. package/dist/test/symbols/deconflicted-name.test.js +120 -0
  570. package/dist/test/symbols/deconflicted-name.test.js.map +1 -0
  571. package/dist/test/symbols/output-scope.test.js +41 -0
  572. package/dist/test/symbols/output-scope.test.js.map +1 -1
  573. package/dist/testing/create-test-wrapper.d.ts +75 -2
  574. package/dist/testing/create-test-wrapper.d.ts.map +1 -1
  575. package/dist/testing/create-test-wrapper.js +55 -1
  576. package/dist/testing/create-test-wrapper.js.map +1 -1
  577. package/dist/testing/devtools-utils.d.ts +12 -3
  578. package/dist/testing/devtools-utils.d.ts.map +1 -1
  579. package/dist/testing/devtools-utils.js +26 -4
  580. package/dist/testing/devtools-utils.js.map +1 -1
  581. package/dist/testing/extend-expect.d.ts +26 -0
  582. package/dist/testing/extend-expect.d.ts.map +1 -1
  583. package/dist/testing/extend-expect.js +20 -0
  584. package/dist/testing/extend-expect.js.map +1 -1
  585. package/dist/testing/index.d.ts +1 -1
  586. package/dist/testing/index.d.ts.map +1 -1
  587. package/dist/testing/index.js +1 -1
  588. package/dist/testing/index.js.map +1 -1
  589. package/dist/testing/render.d.ts +9 -0
  590. package/dist/testing/render.d.ts.map +1 -1
  591. package/dist/testing/render.js +11 -0
  592. package/dist/testing/render.js.map +1 -1
  593. package/dist/testing/vitest.d.js +12 -0
  594. package/dist/testing/vitest.d.js.map +1 -1
  595. package/dist/tsconfig.tsbuildinfo +1 -1
  596. package/docs/api/components/AppendRegion.md +83 -0
  597. package/docs/api/components/Block.md +49 -0
  598. package/docs/api/components/CopyFile.md +26 -0
  599. package/docs/api/components/Declaration.md +85 -0
  600. package/docs/api/components/For.md +91 -0
  601. package/docs/api/components/Indent.md +40 -0
  602. package/docs/api/components/List.md +68 -0
  603. package/docs/api/components/MemberDeclaration.md +89 -0
  604. package/docs/api/components/MemberName.md +21 -0
  605. package/docs/api/components/MemberScope.md +81 -0
  606. package/docs/api/components/Name.md +19 -0
  607. package/docs/api/components/Output.md +62 -0
  608. package/docs/api/components/Prose.md +29 -0
  609. package/docs/api/components/ReferenceOrContent.md +28 -0
  610. package/docs/api/components/Scope.md +83 -0
  611. package/docs/api/components/Show.md +32 -0
  612. package/docs/api/components/SourceDirectory.md +28 -0
  613. package/docs/api/components/SourceFile.md +60 -0
  614. package/docs/api/components/StatementList.md +29 -0
  615. package/docs/api/components/Switch.md +42 -0
  616. package/docs/api/components/TemplateFile.md +71 -0
  617. package/docs/api/components/TemplateVariable.md +57 -0
  618. package/docs/api/components/UpdateFile.md +56 -0
  619. package/docs/api/components/Wrap.md +40 -0
  620. package/docs/api/components/createAccessExpression.md +55 -0
  621. package/docs/api/components/index.md +27 -0
  622. package/docs/api/contexts/Assignment-context.md +43 -0
  623. package/docs/api/contexts/Binder-context.md +22 -0
  624. package/docs/api/contexts/Declaration-context.md +15 -0
  625. package/docs/api/contexts/Member-context.md +17 -0
  626. package/docs/api/contexts/MemberDeclaration-context.md +24 -0
  627. package/docs/api/contexts/NamePolicy-context.md +18 -0
  628. package/docs/api/contexts/Scope-context.md +20 -0
  629. package/docs/api/contexts/SourceDirectory-context.md +26 -0
  630. package/docs/api/contexts/SourceFile-context.md +19 -0
  631. package/docs/api/contexts/index.md +11 -0
  632. package/docs/api/functions/attachDiagnosticsCollector.md +18 -0
  633. package/docs/api/functions/baseListPropsToMapJoinArgs.md +20 -0
  634. package/docs/api/functions/children.md +27 -0
  635. package/docs/api/functions/childrenArray.md +25 -0
  636. package/docs/api/functions/code.md +25 -0
  637. package/docs/api/functions/computed.md +18 -0
  638. package/docs/api/functions/createComponent.md +20 -0
  639. package/docs/api/functions/createContentSlot.md +33 -0
  640. package/docs/api/functions/createContext.md +19 -0
  641. package/docs/api/functions/createCustomContext.md +18 -0
  642. package/docs/api/functions/createDeclarationTap.md +20 -0
  643. package/docs/api/functions/createFileResource.md +35 -0
  644. package/docs/api/functions/createFormatOptionsContextFor.md +28 -0
  645. package/docs/api/functions/createIntrinsic.md +19 -0
  646. package/docs/api/functions/createMemberTap.md +20 -0
  647. package/docs/api/functions/createNamePolicy.md +37 -0
  648. package/docs/api/functions/createNamedContext.md +19 -0
  649. package/docs/api/functions/createOutputBinder.md +24 -0
  650. package/docs/api/functions/createRenderTreeHook.md +19 -0
  651. package/docs/api/functions/createResource.md +77 -0
  652. package/docs/api/functions/createScope.md +35 -0
  653. package/docs/api/functions/createScopeTap.md +20 -0
  654. package/docs/api/functions/createSourceFileTap.md +20 -0
  655. package/docs/api/functions/createSymbol.md +25 -0
  656. package/docs/api/functions/createSymbolSlot.md +19 -0
  657. package/docs/api/functions/createTap.md +55 -0
  658. package/docs/api/functions/decl.md +20 -0
  659. package/docs/api/functions/defaultProps.md +21 -0
  660. package/docs/api/functions/effect.md +26 -0
  661. package/docs/api/functions/emitDiagnostic.md +18 -0
  662. package/docs/api/functions/emitSymbol.md +18 -0
  663. package/docs/api/functions/ensureIsEmpty.md +20 -0
  664. package/docs/api/functions/findCurrentEffectId.md +19 -0
  665. package/docs/api/functions/findKeyedChild.md +19 -0
  666. package/docs/api/functions/findKeyedChildren.md +19 -0
  667. package/docs/api/functions/findUnkeyedChildren.md +18 -0
  668. package/docs/api/functions/formatReactivePropertyLabel.md +21 -0
  669. package/docs/api/functions/getAssignmentSymbol.md +19 -0
  670. package/docs/api/functions/getContext.md +17 -0
  671. package/docs/api/functions/getContextForRenderNode.md +18 -0
  672. package/docs/api/functions/getDiagnosticsForTree.md +18 -0
  673. package/docs/api/functions/getEffectDebugId.md +18 -0
  674. package/docs/api/functions/getElementCache.md +17 -0
  675. package/docs/api/functions/getReactiveCreationLocation.md +18 -0
  676. package/docs/api/functions/getSymbolCreator.md +18 -0
  677. package/docs/api/functions/getSymbolCreatorSymbol.md +17 -0
  678. package/docs/api/functions/index.md +105 -0
  679. package/docs/api/functions/inspectRefkey.md +18 -0
  680. package/docs/api/functions/instantiateTakenMembersTo.md +20 -0
  681. package/docs/api/functions/isComponentCreator.md +19 -0
  682. package/docs/api/functions/isCustomContext.md +18 -0
  683. package/docs/api/functions/isIntrinsicElement.md +18 -0
  684. package/docs/api/functions/isKeyedChild.md +18 -0
  685. package/docs/api/functions/isLibrarySymbolReference.md +18 -0
  686. package/docs/api/functions/isMemberRefkey.md +18 -0
  687. package/docs/api/functions/isNamekey.md +18 -0
  688. package/docs/api/functions/isPrintHook.md +18 -0
  689. package/docs/api/functions/isRefkey.md +18 -0
  690. package/docs/api/functions/isRefkeyable.md +18 -0
  691. package/docs/api/functions/isRenderableObject.md +20 -0
  692. package/docs/api/functions/isSymbolRefkey.md +18 -0
  693. package/docs/api/functions/join.md +33 -0
  694. package/docs/api/functions/mapJoin.md +106 -0
  695. package/docs/api/functions/memberRefkey.md +27 -0
  696. package/docs/api/functions/memo.md +29 -0
  697. package/docs/api/functions/mergeProps.md +64 -0
  698. package/docs/api/functions/moveTakenMembersTo.md +18 -0
  699. package/docs/api/functions/namekey.md +41 -0
  700. package/docs/api/functions/nextReactiveId.md +19 -0
  701. package/docs/api/functions/notifyContentState.md +17 -0
  702. package/docs/api/functions/onCleanup.md +26 -0
  703. package/docs/api/functions/printTree.md +31 -0
  704. package/docs/api/functions/reactivePropertyRefId.md +21 -0
  705. package/docs/api/functions/ref.md +21 -0
  706. package/docs/api/functions/refId.md +18 -0
  707. package/docs/api/functions/refkey.md +24 -0
  708. package/docs/api/functions/render.md +31 -0
  709. package/docs/api/functions/renderAsync.md +31 -0
  710. package/docs/api/functions/renderTree.md +18 -0
  711. package/docs/api/functions/reportDiagnostics.md +18 -0
  712. package/docs/api/functions/resetRefIdCounter.md +17 -0
  713. package/docs/api/functions/resolve.md +31 -0
  714. package/docs/api/functions/root.md +25 -0
  715. package/docs/api/functions/shallowReactive.md +18 -0
  716. package/docs/api/functions/shallowRef.md +21 -0
  717. package/docs/api/functions/sourceFilesForTree.md +31 -0
  718. package/docs/api/functions/splitProps.md +19 -0
  719. package/docs/api/functions/stc.md +18 -0
  720. package/docs/api/functions/sti.md +18 -0
  721. package/docs/api/functions/symbolForRefkey.md +24 -0
  722. package/docs/api/functions/taggedComponent.md +19 -0
  723. package/docs/api/functions/takeSymbols.md +18 -0
  724. package/docs/api/functions/text.md +19 -0
  725. package/docs/api/functions/toRef.md +20 -0
  726. package/docs/api/functions/toRefkey.md +18 -0
  727. package/docs/api/functions/toRefs.md +20 -0
  728. package/docs/api/functions/traverseOutput.md +21 -0
  729. package/docs/api/functions/unresolvedRefkey.md +18 -0
  730. package/docs/api/functions/untrack.md +18 -0
  731. package/docs/api/functions/useContext.md +18 -0
  732. package/docs/api/functions/useFormatOptions.md +18 -0
  733. package/docs/api/functions/useMemberContext.md +17 -0
  734. package/docs/api/functions/useMemberScope.md +17 -0
  735. package/docs/api/functions/writeOutput.md +21 -0
  736. package/docs/api/index.md +9 -0
  737. package/docs/api/testing/functions/createTestWrapper.md +70 -0
  738. package/docs/api/testing/functions/d.md +21 -0
  739. package/docs/api/testing/functions/dedent.md +18 -0
  740. package/docs/api/testing/functions/index.md +6 -0
  741. package/docs/api/testing/functions/renderToString.md +20 -0
  742. package/docs/api/testing/index.md +4 -0
  743. package/docs/api/testing/types/TestWrapper.md +10 -0
  744. package/docs/api/testing/types/ToRenderToOptions.md +24 -0
  745. package/docs/api/testing/types/index.md +4 -0
  746. package/docs/api/types/AlignIntrinsicElement.md +5 -0
  747. package/docs/api/types/AppendRegionProps.md +5 -0
  748. package/docs/api/types/BaseListProps.md +21 -0
  749. package/docs/api/types/BasePartProps.md +10 -0
  750. package/docs/api/types/BasicScope.md +15 -0
  751. package/docs/api/types/BasicSymbol.md +18 -0
  752. package/docs/api/types/Binder.md +18 -0
  753. package/docs/api/types/BinderOptions.md +7 -0
  754. package/docs/api/types/BrIntrinsicElement.md +5 -0
  755. package/docs/api/types/BreakParentIntrinsicElement.md +5 -0
  756. package/docs/api/types/Child.md +5 -0
  757. package/docs/api/types/Children.md +5 -0
  758. package/docs/api/types/ChildrenOptions.md +7 -0
  759. package/docs/api/types/CommonFormatOptions.md +8 -0
  760. package/docs/api/types/Component.md +8 -0
  761. package/docs/api/types/ComponentContext.md +11 -0
  762. package/docs/api/types/ComponentCreator.md +11 -0
  763. package/docs/api/types/ComponentDefinition.md +7 -0
  764. package/docs/api/types/ContentOutputFile.md +10 -0
  765. package/docs/api/types/ContentSlot.md +12 -0
  766. package/docs/api/types/Context.md +19 -0
  767. package/docs/api/types/ContextProviderProps.md +8 -0
  768. package/docs/api/types/CopyFileContext.md +8 -0
  769. package/docs/api/types/CopyOutputFile.md +9 -0
  770. package/docs/api/types/CustomContext.md +10 -0
  771. package/docs/api/types/CustomContextChildrenCallback.md +5 -0
  772. package/docs/api/types/DeclarationProps.md +5 -0
  773. package/docs/api/types/DedentIntrinsicElement.md +5 -0
  774. package/docs/api/types/DedentToRootIntrinsicElement.md +5 -0
  775. package/docs/api/types/Diagnostic.md +11 -0
  776. package/docs/api/types/DiagnosticHandle.md +7 -0
  777. package/docs/api/types/DiagnosticInput.md +10 -0
  778. package/docs/api/types/DiagnosticSeverity.md +5 -0
  779. package/docs/api/types/DiagnosticStackEntry.md +9 -0
  780. package/docs/api/types/DiagnosticsCollector.md +8 -0
  781. package/docs/api/types/Disposable_2.md +7 -0
  782. package/docs/api/types/EffectDebugOptions.md +8 -0
  783. package/docs/api/types/EffectOptions.md +7 -0
  784. package/docs/api/types/ElementCache.md +5 -0
  785. package/docs/api/types/ElementCacheKey.md +5 -0
  786. package/docs/api/types/FillIntrinsicElement.md +5 -0
  787. package/docs/api/types/ForCallbackArgs.md +5 -0
  788. package/docs/api/types/ForSupportedCollections.md +5 -0
  789. package/docs/api/types/GroupIntrinsicElement.md +5 -0
  790. package/docs/api/types/HardlineIntrinsicElement.md +5 -0
  791. package/docs/api/types/HbrIntrinsicElement.md +5 -0
  792. package/docs/api/types/IfBreakIntrinsicElement.md +5 -0
  793. package/docs/api/types/IndentIfBreakIntrinsicElement.md +5 -0
  794. package/docs/api/types/IndentIntrinsicElement.md +5 -0
  795. package/docs/api/types/IntrinsicElement.md +5 -0
  796. package/docs/api/types/IntrinsicElementBase.md +9 -0
  797. package/docs/api/types/IntrinsicElements.md +26 -0
  798. package/docs/api/types/JoinOptions.md +9 -0
  799. package/docs/api/types/LbrIntrinsicElement.md +5 -0
  800. package/docs/api/types/LibrarySymbolReference.md +13 -0
  801. package/docs/api/types/LineIntrinsicElement.md +5 -0
  802. package/docs/api/types/LineSuffixBoundaryIntrinsicElement.md +5 -0
  803. package/docs/api/types/LineSuffixIntrinsicElement.md +5 -0
  804. package/docs/api/types/LiterallineIntrinsicElement.md +5 -0
  805. package/docs/api/types/MakeChildrenOptional.md +7 -0
  806. package/docs/api/types/MarkAsRootIntrinsicElement.md +5 -0
  807. package/docs/api/types/MatchProps.md +9 -0
  808. package/docs/api/types/MemberDeclarationProps.md +5 -0
  809. package/docs/api/types/MemberDescriptor.md +10 -0
  810. package/docs/api/types/MemberRefkey.md +10 -0
  811. package/docs/api/types/MemberResolutionContext.md +10 -0
  812. package/docs/api/types/MemberResolver.md +32 -0
  813. package/docs/api/types/MemberScopeProps.md +5 -0
  814. package/docs/api/types/Metadata.md +5 -0
  815. package/docs/api/types/NameConflictResolver.md +27 -0
  816. package/docs/api/types/NamePolicy.md +8 -0
  817. package/docs/api/types/NamePolicyGetter.md +9 -0
  818. package/docs/api/types/Namekey.md +10 -0
  819. package/docs/api/types/NamekeyOptions.md +8 -0
  820. package/docs/api/types/OnReactiveSetAddCallback.md +5 -0
  821. package/docs/api/types/OnReactiveSetDeleteCallback.md +5 -0
  822. package/docs/api/types/OutputDeclarationSpace.md +13 -0
  823. package/docs/api/types/OutputDirectory.md +59 -0
  824. package/docs/api/types/OutputFile.md +5 -0
  825. package/docs/api/types/OutputFileBase.md +8 -0
  826. package/docs/api/types/OutputMemberSpace.md +13 -0
  827. package/docs/api/types/OutputScope.md +33 -0
  828. package/docs/api/types/OutputScopeOptions.md +9 -0
  829. package/docs/api/types/OutputSpace.md +7 -0
  830. package/docs/api/types/OutputSymbol.md +78 -0
  831. package/docs/api/types/OutputSymbolOptions.md +16 -0
  832. package/docs/api/types/OutputVisitor.md +10 -0
  833. package/docs/api/types/PrintHook.md +10 -0
  834. package/docs/api/types/PrintTreeOptions.md +11 -0
  835. package/docs/api/types/Props.md +5 -0
  836. package/docs/api/types/ReactiveUnionSet.md +20 -0
  837. package/docs/api/types/ReactiveUnionSetOptions.md +8 -0
  838. package/docs/api/types/Refkey.md +5 -0
  839. package/docs/api/types/Refkeyable.md +5 -0
  840. package/docs/api/types/RefkeyableObject.md +7 -0
  841. package/docs/api/types/RenderableObject.md +9 -0
  842. package/docs/api/types/RenderedTextTree.md +5 -0
  843. package/docs/api/types/ResolutionResult.md +39 -0
  844. package/docs/api/types/ResolveDeclarationByKeyOptions.md +7 -0
  845. package/docs/api/types/Resource.md +11 -0
  846. package/docs/api/types/RootOptions.md +7 -0
  847. package/docs/api/types/SbrIntrinsicElement.md +5 -0
  848. package/docs/api/types/ScopeProps.md +5 -0
  849. package/docs/api/types/SoftlineIntrinsicElement.md +5 -0
  850. package/docs/api/types/SourceLocation.md +9 -0
  851. package/docs/api/types/SplitProps.md +12 -0
  852. package/docs/api/types/StcComponentCreator.md +9 -0
  853. package/docs/api/types/StcSignature.md +5 -0
  854. package/docs/api/types/StiComponentCreator.md +9 -0
  855. package/docs/api/types/StiSignature.md +7 -0
  856. package/docs/api/types/SymbolCreator.md +15 -0
  857. package/docs/api/types/SymbolRefkey.md +9 -0
  858. package/docs/api/types/SymbolSlot.md +12 -0
  859. package/docs/api/types/SymbolTable.md +15 -0
  860. package/docs/api/types/TakeSymbolCallback.md +7 -0
  861. package/docs/api/types/TakeSymbolsCallback.md +7 -0
  862. package/docs/api/types/Tap.md +11 -0
  863. package/docs/api/types/TapHandler.md +9 -0
  864. package/docs/api/types/Tapper.md +9 -0
  865. package/docs/api/types/TemplateVariableProps.md +5 -0
  866. package/docs/api/types/index.md +122 -0
  867. package/docs/api/variables/FormatOptions.md +5 -0
  868. package/docs/api/variables/Match.md +7 -0
  869. package/docs/api/variables/REFKEYABLE.md +5 -0
  870. package/docs/api/variables/RENDERABLE.md +5 -0
  871. package/docs/api/variables/TO_SYMBOL.md +39 -0
  872. package/docs/api/variables/contextsByKey.md +5 -0
  873. package/docs/api/variables/index.md +11 -0
  874. package/docs/api/variables/intrinsicElementKey.md +5 -0
  875. package/docs/api/variables/matchTag.md +5 -0
  876. package/docs/api/variables/printHookTag.md +7 -0
  877. package/docs/components.md +97 -0
  878. package/docs/context.md +67 -0
  879. package/docs/control-flow.md +5 -0
  880. package/docs/debugging.md +105 -0
  881. package/docs/formatting.md +99 -0
  882. package/docs/guides/language-package-guide.md +593 -0
  883. package/docs/guides/references-and-refkeys.md +210 -0
  884. package/docs/guides/style-guide.md +244 -0
  885. package/docs/index.md +22 -0
  886. package/docs/reactivity.md +68 -0
  887. package/docs/rendering.md +41 -0
  888. package/docs/symbols-and-scopes.md +180 -0
  889. package/package.json +21 -7
  890. package/src/binder.ts +154 -41
  891. package/src/components/AccessExpression.test.tsx +132 -0
  892. package/src/components/AccessExpression.tsx +344 -0
  893. package/src/components/Block.tsx +12 -0
  894. package/src/components/For.tsx +14 -10
  895. package/src/components/List.tsx +18 -5
  896. package/src/components/MemberDeclaration.tsx +6 -6
  897. package/src/components/MemberName.tsx +6 -0
  898. package/src/components/MemberScope.tsx +5 -0
  899. package/src/components/Output.tsx +4 -1
  900. package/src/components/Scope.tsx +6 -0
  901. package/src/components/SourceFile.tsx +22 -2
  902. package/src/components/Switch.tsx +11 -7
  903. package/src/components/index.tsx +1 -0
  904. package/src/context/binder.ts +4 -0
  905. package/src/context/format-options.ts +14 -1
  906. package/src/context/scope.ts +4 -0
  907. package/src/context/source-directory.ts +9 -0
  908. package/src/debug/cli.browser.ts +17 -0
  909. package/src/debug/cli.ts +3 -2
  910. package/src/debug/diagnostics-broadcast.test.tsx +98 -0
  911. package/src/debug/diagnostics.test.tsx +3 -2
  912. package/src/debug/effects.test.tsx +248 -36
  913. package/src/debug/effects.ts +198 -64
  914. package/src/debug/files.test.tsx +15 -35
  915. package/src/debug/files.ts +11 -11
  916. package/src/debug/index.ts +4 -0
  917. package/src/debug/message-format.test.tsx +759 -0
  918. package/src/debug/render-tree-orphans.test.tsx +344 -0
  919. package/src/debug/render.test.tsx +96 -118
  920. package/src/debug/render.ts +196 -125
  921. package/src/debug/source-map.browser.ts +30 -0
  922. package/src/debug/source-map.ts +135 -0
  923. package/src/debug/symbols.test.tsx +19 -20
  924. package/src/debug/symbols.ts +106 -23
  925. package/src/debug/trace-db.browser.ts +12 -0
  926. package/src/debug/trace-db.ts +42 -0
  927. package/src/debug/trace-writer.ts +962 -0
  928. package/src/debug/trace.ts +46 -32
  929. package/src/devtools/devtools-protocol.ts +361 -176
  930. package/src/devtools/devtools-server.browser.ts +4 -9
  931. package/src/devtools/devtools-server.ts +226 -33
  932. package/src/devtools/devtools-transport.ts +4 -4
  933. package/src/devtools-entry.browser.ts +11 -15
  934. package/src/devtools-entry.ts +9 -15
  935. package/src/diagnostics.ts +44 -22
  936. package/src/host/node-host.browser.ts +23 -0
  937. package/src/host/node-host.ts +22 -0
  938. package/src/library-symbol-reference.ts +52 -0
  939. package/src/name-policy.ts +30 -3
  940. package/src/reactivity.ts +179 -55
  941. package/src/render-stack.ts +4 -3
  942. package/src/render.ts +106 -30
  943. package/src/scheduler.ts +145 -26
  944. package/src/symbols/output-scope.ts +33 -1
  945. package/src/symbols/output-space.ts +13 -0
  946. package/src/symbols/output-symbol.ts +185 -22
  947. package/src/symbols/symbol-slot.test.tsx +28 -1
  948. package/src/symbols/symbol-slot.tsx +8 -0
  949. package/src/symbols/symbol-table.ts +13 -3
  950. package/src/utils.tsx +7 -4
  951. package/src/write-output.ts +6 -5
  952. package/temp/api-testing.json +673 -0
  953. package/temp/api.json +895 -73
  954. package/test/browser-build.test.ts +141 -76
  955. package/test/reactivity/shallow-reactive.test.tsx +4 -0
  956. package/test/symbols/deconflicted-name.test.ts +120 -0
  957. package/test/symbols/output-scope.test.ts +38 -0
  958. package/testing/create-test-wrapper.tsx +81 -2
  959. package/testing/devtools-utils.ts +46 -4
  960. package/testing/extend-expect.ts +22 -1
  961. package/testing/index.ts +1 -1
  962. package/testing/render.ts +9 -0
  963. package/testing/vitest.d.ts +18 -3
  964. package/vitest.config.ts +8 -0
@@ -0,0 +1,9 @@
1
+ # SourceLocation
2
+
3
+ ## Members
4
+
5
+ | | | |
6
+ | ------------ | ------ | - |
7
+ | columnNumber | number | |
8
+ | fileName | string | |
9
+ | lineNumber | number | |
@@ -0,0 +1,12 @@
1
+ # SplitProps
2
+
3
+ ```ts
4
+ type SplitProps<T, K extends (readonly (keyof T)[])[]> = [
5
+ ...{
6
+ [P in keyof K]: P extends `${number}` ? Pick<T, Extract<K[P], readonly (keyof T)[]>[number]> : never;
7
+ },
8
+ {
9
+ [P in keyof T as Exclude<P, K[number][number]>]: T[P];
10
+ }
11
+ ];
12
+ ```
@@ -0,0 +1,9 @@
1
+ # StcComponentCreator
2
+
3
+ ```ts
4
+ type StcComponentCreator<T> = ComponentCreator<T> & {
5
+ code(template: TemplateStringsArray, ...substitutions: Children[]): ComponentCreator<T>;
6
+ text(template: TemplateStringsArray, ...substitutions: Children[]): ComponentCreator<T>;
7
+ children(...children: Children[]): ComponentCreator<T>;
8
+ };
9
+ ```
@@ -0,0 +1,5 @@
1
+ # StcSignature
2
+
3
+ ```ts
4
+ type StcSignature<T extends {}> = (...args: unknown extends T ? [] : {} extends Omit<T, "children"> ? [props?: MakeChildrenOptional<T>] : [props: MakeChildrenOptional<T>]) => StcComponentCreator<T>;
5
+ ```
@@ -0,0 +1,9 @@
1
+ # StiComponentCreator
2
+
3
+ ```ts
4
+ type StiComponentCreator<T extends keyof IntrinsicElements> = (() => IntrinsicElementBase<T>) & {
5
+ code(template: TemplateStringsArray, ...substitutions: Children[]): () => IntrinsicElementBase<T>;
6
+ text(template: TemplateStringsArray, ...substitutions: Children[]): () => IntrinsicElementBase<T>;
7
+ children(...children: Children[]): () => IntrinsicElementBase<T>;
8
+ };
9
+ ```
@@ -0,0 +1,7 @@
1
+ # StiSignature
2
+
3
+ ```ts
4
+ type StiSignature<T extends keyof IntrinsicElements> = (...args: unknown extends T ? [] : {} extends Omit<IntrinsicElements[T], "children"> ? [
5
+ props?: IntrinsicElements[T]
6
+ ] : [props: IntrinsicElements[T]]) => StiComponentCreator<T>;
7
+ ```
@@ -0,0 +1,15 @@
1
+ # SymbolCreator
2
+
3
+ An object that can register symbols into a binder. Pass instances to the `externals` prop of `<Output>` to make library symbols resolvable.
4
+
5
+ ## Members
6
+
7
+ | | | |
8
+ | ---------------------- | ------------------------ | - |
9
+ | \[createSymbolsSymbol] | (binder: Binder) => void | |
10
+
11
+ ## Remarks
12
+
13
+ [`SymbolCreator`](SymbolCreator.md) is a low-level core mechanism for eager symbol registration. The recommended pattern for language packages is lazy self-registration: implement `[TO_SYMBOL]()` on descriptors to call `useBinder()`, create and cache symbols per binder via a `WeakMap`, and register them into the appropriate scope automatically. This approach does not require `externals`. See the C# package’s `createLibrary()` for a reference implementation.
14
+
15
+ See [TO\_SYMBOL](../../variables/to_symbol/) and [REFKEYABLE](../../variables/refkeyable/).
@@ -0,0 +1,9 @@
1
+ # SymbolRefkey
2
+
3
+ ## Members
4
+
5
+ Extends [RefkeyableObject](../refkeyableobject/)
6
+
7
+ | | | |
8
+ | --- | ------ | - |
9
+ | key | string | |
@@ -0,0 +1,12 @@
1
+ # SymbolSlot
2
+
3
+ ## Members
4
+
5
+ Extends [Component](../../../typescript/components/ensuretyperefcontext/)<{}>
6
+
7
+ | | | |
8
+ | ------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
9
+ | copyMembersTo | (baseSymbol: OutputSymbol) => void | Copy any members from taken symbols to the given symbol. |
10
+ | firstSymbol | Ref<[OutputSymbol](../outputsymbol/) \| undefined> | A ref for the first symbol taken by this slot. Undefined when the Slot component has not been rendered yet or has not taken any symbols. |
11
+ | moveMembersTo | (baseSymbol: OutputSymbol) => void | Move any members from transient taken symbols to the given symbol. |
12
+ | ref | Ref\<ShallowReactive\<Set<[OutputSymbol](../outputsymbol/)>> \| undefined> | A ref for the set of symbols taken by this slot. Undefined when the Slot component has not been rendered yet. |
@@ -0,0 +1,15 @@
1
+ # SymbolTable
2
+
3
+ ## Members
4
+
5
+ Extends [ReactiveUnionSet](../reactiveunionset/)<[OutputSymbol](../outputsymbol/)>
6
+
7
+ | | | |
8
+ | --------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
9
+ | constructor | (key: string, binder: Binder, options: { nameConflictResolver?: NameConflictResolver; }) | Constructs a new instance of the [`SymbolTable`](SymbolTable.md) class |
10
+ | binder | [Binder](../binder/) \| undefined | |
11
+ | copyTo | (target: SymbolTable, options: { createRefkeys?(sourceSymbol: OutputSymbol): Refkey\[]; }) => void | |
12
+ | key | string | The key of this symbol table, e.g. “static” or “instance”. |
13
+ | moveTo | (target: SymbolTable) => void | |
14
+ | symbolNames | ReadonlyMap\<string, [OutputSymbol](../outputsymbol/)> | |
15
+ | symbolsByRefkey | ReadonlyMap<[Refkey](../refkey/), [OutputSymbol](../outputsymbol/)> | The symbols defined within this scope, indexed by refkey. |
@@ -0,0 +1,7 @@
1
+ # TakeSymbolCallback
2
+
3
+ ## Members
4
+
5
+ | | | |
6
+ | -------------- | ------------------------------ | - |
7
+ | Call signature | (symbol: OutputSymbol) => void | |
@@ -0,0 +1,7 @@
1
+ # TakeSymbolsCallback
2
+
3
+ ## Members
4
+
5
+ | | | |
6
+ | -------------- | ------------------------------------- | - |
7
+ | Call signature | (symbols: Set\<OutputSymbol>) => void | |
@@ -0,0 +1,11 @@
1
+ # Tap
2
+
3
+ The return value of [createTap](../../functions/createtap/), this holds a reference to the tapped value. It will be undefined until the tapped value is initialized.
4
+
5
+ ## Members
6
+
7
+ Extends [ComponentDefinition](../componentdefinition/)
8
+
9
+ | | | |
10
+ | --- | --------------------------- | ------------------------ |
11
+ | ref | ShallowRef\<T \| undefined> | Ref for the tapped value |
@@ -0,0 +1,9 @@
1
+ # TapHandler
2
+
3
+ A function that is called when the tapped value is available.
4
+
5
+ ## Members
6
+
7
+ | | | |
8
+ | -------------- | ------------------ | - |
9
+ | Call signature | (value: T) => void | |
@@ -0,0 +1,9 @@
1
+ # Tapper
2
+
3
+ A function called when the Tap is rendered.
4
+
5
+ ## Members
6
+
7
+ | | | |
8
+ | -------------- | -------------------- | - |
9
+ | Call signature | () => T \| undefined | |
@@ -0,0 +1,5 @@
1
+ # TemplateVariableProps
2
+
3
+ ```ts
4
+ type TemplateVariableProps = TemplateVariablePropsWithChildren | TemplateVariablePropsWithValue;
5
+ ```
@@ -0,0 +1,122 @@
1
+ # core — types
2
+
3
+ - [AlignIntrinsicElement](AlignIntrinsicElement.md) — type AlignIntrinsicElement = IntrinsicElementBase<"align">;
4
+ - [AppendRegionProps](AppendRegionProps.md) — type AppendRegionProps = AppendRegionPropsWithChildren | AppendRegionPropsWithContent | AppendRegionPropsBase;
5
+ - [BaseListProps](BaseListProps.md) — <group>
6
+ - [BasePartProps](BasePartProps.md) — Base props that all language-specific Part components must include.
7
+ - [BasicScope](BasicScope.md) — BasicScope is a kind of OutputScope that has a single declaration space named `symbols`.
8
+ - [BasicSymbol](BasicSymbol.md) — BasicSymbol is a kind of OutputSymbol that has instance and static members.
9
+ - [Binder](Binder.md) — The binder tracks all output scopes and symbols.
10
+ - [BinderOptions](BinderOptions.md)
11
+ - [BreakParentIntrinsicElement](BreakParentIntrinsicElement.md) — type BreakParentIntrinsicElement = IntrinsicElementBase<"breakParent">;
12
+ - [BrIntrinsicElement](BrIntrinsicElement.md) — type BrIntrinsicElement = IntrinsicElementBase<"br">;
13
+ - [Child](Child.md) — type Child = RenderableObject | RefkeyableObject | string | boolean | number | undefined | null | void | (() => Children
14
+ - [Children](Children.md) — type Children = Child | Children[];
15
+ - [ChildrenOptions](ChildrenOptions.md)
16
+ - [CommonFormatOptions](CommonFormatOptions.md) — Extends [PrintTreeOptions](../printtreeoptions/)
17
+ - [Component](Component.md)
18
+ - [ComponentContext](ComponentContext.md)
19
+ - [ComponentCreator](ComponentCreator.md)
20
+ - [ComponentDefinition](ComponentDefinition.md)
21
+ - [ContentOutputFile](ContentOutputFile.md) — Extends [OutputFileBase](../outputfilebase/)
22
+ - [ContentSlot](ContentSlot.md)
23
+ - [Context](Context.md)
24
+ - [ContextProviderProps](ContextProviderProps.md)
25
+ - [CopyFileContext](CopyFileContext.md)
26
+ - [CopyOutputFile](CopyOutputFile.md) — Extends [OutputFileBase](../outputfilebase/)
27
+ - [CustomContext](CustomContext.md) — Create a custom reactive context for the children returned by the provided context.
28
+ - [CustomContextChildrenCallback](CustomContextChildrenCallback.md) — type CustomContextChildrenCallback = (child: Children) => void;
29
+ - [DeclarationProps](DeclarationProps.md) — type DeclarationProps = DeclarationPropsWithSymbol | DeclarationPropsWithInfo;
30
+ - [DedentIntrinsicElement](DedentIntrinsicElement.md) — type DedentIntrinsicElement = IntrinsicElementBase<"dedent">;
31
+ - [DedentToRootIntrinsicElement](DedentToRootIntrinsicElement.md) — type DedentToRootIntrinsicElement = IntrinsicElementBase<"dedentToRoot">;
32
+ - [Diagnostic](Diagnostic.md)
33
+ - [DiagnosticHandle](DiagnosticHandle.md)
34
+ - [DiagnosticInput](DiagnosticInput.md)
35
+ - [DiagnosticsCollector](DiagnosticsCollector.md)
36
+ - [DiagnosticSeverity](DiagnosticSeverity.md) — type DiagnosticSeverity = "info" | "warning" | "error";
37
+ - [DiagnosticStackEntry](DiagnosticStackEntry.md)
38
+ - [Disposable_2](Disposable_2.md)
39
+ - [EffectDebugOptions](EffectDebugOptions.md)
40
+ - [EffectOptions](EffectOptions.md)
41
+ - [ElementCache](ElementCache.md) — type ElementCache = Map<ElementCacheKey, RenderedTextTree>;
42
+ - [ElementCacheKey](ElementCacheKey.md) — type ElementCacheKey = ComponentCreator | (() => unknown) | CustomContext;
43
+ - [FillIntrinsicElement](FillIntrinsicElement.md) — type FillIntrinsicElement = IntrinsicElementBase<"fill">;
44
+ - [ForCallbackArgs](ForCallbackArgs.md) — type ForCallbackArgs<T> = number extends keyof T ?
45
+ - [ForSupportedCollections](ForSupportedCollections.md) — type ForSupportedCollections = readonly unknown[] | ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | IterableItera
46
+ - [GroupIntrinsicElement](GroupIntrinsicElement.md) — type GroupIntrinsicElement = IntrinsicElementBase<"group">;
47
+ - [HardlineIntrinsicElement](HardlineIntrinsicElement.md) — type HardlineIntrinsicElement = IntrinsicElementBase<"hardline">;
48
+ - [HbrIntrinsicElement](HbrIntrinsicElement.md) — type HbrIntrinsicElement = IntrinsicElementBase<"hbr">;
49
+ - [IfBreakIntrinsicElement](IfBreakIntrinsicElement.md) — type IfBreakIntrinsicElement = IntrinsicElementBase<"ifBreak">;
50
+ - [IndentIfBreakIntrinsicElement](IndentIfBreakIntrinsicElement.md) — type IndentIfBreakIntrinsicElement = IntrinsicElementBase<"indentIfBreak">;
51
+ - [IndentIntrinsicElement](IndentIntrinsicElement.md) — type IndentIntrinsicElement = IntrinsicElementBase<"indent">;
52
+ - [IntrinsicElement](IntrinsicElement.md) — type IntrinsicElement = IndentIntrinsicElement | IndentIfBreakIntrinsicElement | BrIntrinsicElement | LineIntrinsicEleme
53
+ - [IntrinsicElementBase](IntrinsicElementBase.md)
54
+ - [IntrinsicElements](IntrinsicElements.md)
55
+ - [JoinOptions](JoinOptions.md)
56
+ - [LbrIntrinsicElement](LbrIntrinsicElement.md) — type LbrIntrinsicElement = IntrinsicElementBase<"lbr">;
57
+ - [LibrarySymbolReference](LibrarySymbolReference.md) — An object that acts as a lazy reference to an external library symbol.
58
+ - [LineIntrinsicElement](LineIntrinsicElement.md) — type LineIntrinsicElement = IntrinsicElementBase<"line">;
59
+ - [LineSuffixBoundaryIntrinsicElement](LineSuffixBoundaryIntrinsicElement.md) — type LineSuffixBoundaryIntrinsicElement = IntrinsicElementBase<"lineSuffixBoundary">;
60
+ - [LineSuffixIntrinsicElement](LineSuffixIntrinsicElement.md) — type LineSuffixIntrinsicElement = IntrinsicElementBase<"lineSuffix">;
61
+ - [LiterallineIntrinsicElement](LiterallineIntrinsicElement.md) — type LiterallineIntrinsicElement = IntrinsicElementBase<"literalline">;
62
+ - [MakeChildrenOptional](MakeChildrenOptional.md) — type MakeChildrenOptional<T extends object> = T extends {
63
+ - [MarkAsRootIntrinsicElement](MarkAsRootIntrinsicElement.md) — type MarkAsRootIntrinsicElement = IntrinsicElementBase<"markAsRoot">;
64
+ - [MatchProps](MatchProps.md)
65
+ - [MemberDeclarationProps](MemberDeclarationProps.md) — type MemberDeclarationProps = MemberDeclarationPropsWithInfo | MemberDeclarationPropsWithSymbol;
66
+ - [MemberDescriptor](MemberDescriptor.md) — Describes a member in a member access chain, tracking both the symbol and whether this specific member was accessed via
67
+ - [MemberRefkey](MemberRefkey.md) — Extends [RefkeyableObject](../refkeyableobject/)
68
+ - [MemberResolutionContext](MemberResolutionContext.md) — The context for a member resolution.
69
+ - [MemberResolver](MemberResolver.md) — A callback that performs access-control filtering during member resolution.
70
+ - [MemberScopeProps](MemberScopeProps.md) — type MemberScopeProps = MemberScopePropsWithValue | MemberScopePropsWithInfo;
71
+ - [Metadata](Metadata.md) — type Metadata = object;
72
+ - [NameConflictResolver](NameConflictResolver.md) — A callable interface invoked by the binder when two or more symbols in the same scope share a name.
73
+ - [Namekey](Namekey.md) — Extends [SymbolRefkey](../symbolrefkey/)
74
+ - [NamekeyOptions](NamekeyOptions.md)
75
+ - [NamePolicy](NamePolicy.md)
76
+ - [NamePolicyGetter](NamePolicyGetter.md) — A function that transforms a name according to a naming policy for a specific element kind.
77
+ - [OnReactiveSetAddCallback](OnReactiveSetAddCallback.md) — type OnReactiveSetAddCallback<T> = (value: T) => T;
78
+ - [OnReactiveSetDeleteCallback](OnReactiveSetDeleteCallback.md) — type OnReactiveSetDeleteCallback<T> = (value: T) => void;
79
+ - [OutputDeclarationSpace](OutputDeclarationSpace.md) — A symbol table attached to an [OutputScope](../outputscope/).
80
+ - [OutputDirectory](OutputDirectory.md) — Turning components into source text involves three different trees produced sequentially:
81
+ - [OutputFile](OutputFile.md) — type OutputFile = ContentOutputFile | CopyOutputFile;
82
+ - [OutputFileBase](OutputFileBase.md)
83
+ - [OutputMemberSpace](OutputMemberSpace.md) — A symbol table attached to an [OutputSymbol](../outputsymbol/).
84
+ - [OutputScope](OutputScope.md) — A container of symbols accessible within some scope in your output code.
85
+ - [OutputScopeOptions](OutputScopeOptions.md)
86
+ - [OutputSpace](OutputSpace.md) — A symbol table that belongs to either a scope (declaration space) or a symbol (member space).
87
+ - [OutputSymbol](OutputSymbol.md) — An output symbol is a named entity that can be referenced in your output code.
88
+ - [OutputSymbolOptions](OutputSymbolOptions.md)
89
+ - [OutputVisitor](OutputVisitor.md) — A visitor to collect the output from [render](../../functions/render/).
90
+ - [PrintHook](PrintHook.md)
91
+ - [PrintTreeOptions](PrintTreeOptions.md)
92
+ - [Props](Props.md) — type Props = Record<string, any>;
93
+ - [ReactiveUnionSet](ReactiveUnionSet.md) — Extends Set\<T>
94
+ - [ReactiveUnionSetOptions](ReactiveUnionSetOptions.md)
95
+ - [Refkey](Refkey.md) — type Refkey = SymbolRefkey | MemberRefkey | Namekey;
96
+ - [Refkeyable](Refkeyable.md) — type Refkeyable = RefkeyableObject | Refkey;
97
+ - [RefkeyableObject](RefkeyableObject.md) — type RefkeyableObject = {
98
+ - [RenderableObject](RenderableObject.md) — A renderable object is any object that has an `[ay.RENDERABLE]` method that returns children.
99
+ - [RenderedTextTree](RenderedTextTree.md) — type RenderedTextTree = (string | RenderedTextTree | PrintHook)[];
100
+ - [ResolutionResult](ResolutionResult.md) — A successful resolution of a refkey.
101
+ - [ResolveDeclarationByKeyOptions](ResolveDeclarationByKeyOptions.md)
102
+ - [Resource](Resource.md) — Represents an external resource fetched asynchronously.
103
+ - [RootOptions](RootOptions.md)
104
+ - [SbrIntrinsicElement](SbrIntrinsicElement.md) — type SbrIntrinsicElement = IntrinsicElementBase<"sbr">;
105
+ - [ScopeProps](ScopeProps.md) — type ScopeProps = ScopePropsWithValue | ScopePropsWithInfo;
106
+ - [SoftlineIntrinsicElement](SoftlineIntrinsicElement.md) — type SoftlineIntrinsicElement = IntrinsicElementBase<"softline">;
107
+ - [SourceLocation](SourceLocation.md)
108
+ - [SplitProps](SplitProps.md) — type SplitProps<T, K extends (readonly (keyof T)[])[]> = [
109
+ - [StcComponentCreator](StcComponentCreator.md) — type StcComponentCreator<T> = ComponentCreator<T> & {
110
+ - [StcSignature](StcSignature.md) — type StcSignature<T extends {}> = (...args: unknown extends T ?
111
+ - [StiComponentCreator](StiComponentCreator.md) — type StiComponentCreator<T extends keyof IntrinsicElements> = (() => IntrinsicElementBase<T>) & {
112
+ - [StiSignature](StiSignature.md) — type StiSignature<T extends keyof IntrinsicElements> = (...args: unknown extends T ?
113
+ - [SymbolCreator](SymbolCreator.md) — An object that can register symbols into a binder.
114
+ - [SymbolRefkey](SymbolRefkey.md) — Extends [RefkeyableObject](../refkeyableobject/)
115
+ - [SymbolSlot](SymbolSlot.md) — Extends [Component](../../../typescript/components/ensuretyperefcontext/)<{}>
116
+ - [SymbolTable](SymbolTable.md) — Extends [ReactiveUnionSet](../reactiveunionset/)<[OutputSymbol](../outputsymbol/)>
117
+ - [TakeSymbolCallback](TakeSymbolCallback.md)
118
+ - [TakeSymbolsCallback](TakeSymbolsCallback.md)
119
+ - [Tap](Tap.md) — The return value of [createTap](../../functions/createtap/), this holds a reference to the tapped value.
120
+ - [TapHandler](TapHandler.md) — A function that is called when the tapped value is available.
121
+ - [Tapper](Tapper.md) — A function called when the Tap is rendered.
122
+ - [TemplateVariableProps](TemplateVariableProps.md) — type TemplateVariableProps = TemplateVariablePropsWithChildren | TemplateVariablePropsWithValue;
@@ -0,0 +1,5 @@
1
+ # FormatOptions
2
+
3
+ ```ts
4
+ FormatOptions: import("../index.js").ComponentDefinition<import("../context.js").ContextProviderProps<CommonFormatOptions>>
5
+ ```
@@ -0,0 +1,7 @@
1
+ # Match
2
+
3
+ The Match component is used inside of a [Switch](../../components/switch/) component to define conditionally rendered blocks of content.
4
+
5
+ ```ts
6
+ Match: import("../runtime/component.js").Component<MatchProps> & Required<Pick<import("../runtime/component.js").Component<MatchProps>, "tag">>
7
+ ```
@@ -0,0 +1,5 @@
1
+ # REFKEYABLE
2
+
3
+ ```ts
4
+ REFKEYABLE: unique symbol
5
+ ```
@@ -0,0 +1,5 @@
1
+ # RENDERABLE
2
+
3
+ ```ts
4
+ RENDERABLE: unique symbol
5
+ ```
@@ -0,0 +1,39 @@
1
+ # TO_SYMBOL
2
+
3
+ Well-known symbol for the lazy-symbol-creation protocol used by external library descriptors. Objects implementing `[TO_SYMBOL]()` are recognized as [LibrarySymbolReference](../../types/librarysymbolreference/) values that can be passed anywhere a refkey is accepted.
4
+
5
+ ```ts
6
+ TO_SYMBOL: unique symbol
7
+ ```
8
+
9
+ ## Remarks
10
+
11
+ Implement `[TO_SYMBOL]()` on a descriptor object to register it as a referenceable library symbol. Inside the method:
12
+
13
+ 1. Call [Binder context accessor](../../contexts/binder-context/) to get the current binder context.
14
+ 2. Look up (or create) the symbol for that binder in a `WeakMap<object, OutputSymbol>` (use a sentinel object for the no-binder case, since `WeakMap` keys must be objects).
15
+ 3. On first creation, construct the symbol and register it into the appropriate space for your library, passing `{ binder }` (see \[unresolved link]).
16
+
17
+ The method is called by language package code each time the descriptor is used as a reference (e.g. inside `ref()`). It is NOT called by the binder itself.
18
+
19
+ ## Example
20
+
21
+ ```ts
22
+ const defaultKey = {};
23
+ const symbols = new WeakMap<object, MySymbol>();
24
+ const descriptor: LibrarySymbolReference = {
25
+ [REFKEYABLE]() {
26
+ return descriptor[TO_SYMBOL]().refkeys[0];
27
+ },
28
+ [TO_SYMBOL]() {
29
+ const binder = useBinder();
30
+ const key = binder ?? defaultKey;
31
+ let sym = symbols.get(key);
32
+ if (!sym) {
33
+ sym = new MySymbol("SomeType", space, { binder });
34
+ symbols.set(key, sym);
35
+ }
36
+ return sym;
37
+ },
38
+ };
39
+ ```
@@ -0,0 +1,5 @@
1
+ # contextsByKey
2
+
3
+ ```ts
4
+ contextsByKey: Map<symbol, ComponentContext<any>>
5
+ ```
@@ -0,0 +1,11 @@
1
+ # core — variables
2
+
3
+ - [contextsByKey](contextsByKey.md) — contextsByKey: Map<symbol, ComponentContext<any>>
4
+ - [FormatOptions](FormatOptions.md) — FormatOptions: import("../index.js").ComponentDefinition<import("../context.js").ContextProviderProps<CommonFormatOption
5
+ - [intrinsicElementKey](intrinsicElementKey.md) — intrinsicElementKey: unique symbol
6
+ - [Match](Match.md) — The Match component is used inside of a [Switch](../../components/switch/) component to define conditionally rendered bl
7
+ - [matchTag](matchTag.md) — matchTag: unique symbol
8
+ - [printHookTag](printHookTag.md) — Print hook types and utilities.
9
+ - [REFKEYABLE](REFKEYABLE.md) — REFKEYABLE: unique symbol
10
+ - [RENDERABLE](RENDERABLE.md) — RENDERABLE: unique symbol
11
+ - [TO_SYMBOL](TO_SYMBOL.md) — Well-known symbol for the lazy-symbol-creation protocol used by external library descriptors.
@@ -0,0 +1,5 @@
1
+ # intrinsicElementKey
2
+
3
+ ```ts
4
+ intrinsicElementKey: unique symbol
5
+ ```
@@ -0,0 +1,5 @@
1
+ # matchTag
2
+
3
+ ```ts
4
+ matchTag: unique symbol
5
+ ```
@@ -0,0 +1,7 @@
1
+ # printHookTag
2
+
3
+ Print hook types and utilities. This is a separate file to avoid circular dependencies between render.ts and debug/render.ts.
4
+
5
+ ```ts
6
+ printHookTag: unique symbol
7
+ ```
@@ -0,0 +1,97 @@
1
+ # Components
2
+
3
+ Alloy uses a custom JSX transform similar to Solid.js. JSX compiles to `createComponent()` calls — components run once and return reactive [Children](api/types/Children.md).
4
+
5
+ ## Defining Components
6
+
7
+ ```tsx
8
+ import { Children } from "@alloy-js/core";
9
+
10
+ interface GreetingProps {
11
+ name: string;
12
+ }
13
+
14
+ function Greeting(props: GreetingProps) {
15
+ return <>Hello, {props.name}!</>;
16
+ }
17
+ ```
18
+
19
+ > **Important:** Do not destructure props. Props are reactive getters — destructuring breaks reactivity.
20
+
21
+ ## Children
22
+
23
+ [`Children`](api/types/Children.md) is the universal return type. It encompasses strings, numbers, `Ref` values, refkeys, arrays, [`ComponentCreator`](api/types/ComponentCreator.md)s, intrinsic elements, and objects implementing [`RENDERABLE`](api/variables/RENDERABLE.md).
24
+
25
+ `children` is a reserved prop for nested JSX content:
26
+
27
+ ```tsx
28
+ function Wrapper(props: { children?: Children }) {
29
+ return <>({props.children})</>;
30
+ }
31
+ ```
32
+
33
+ ### Children Utilities
34
+
35
+ - [`childrenArray(fn, options?)`](api/functions/childrenArray.md) — resolves `Children` into a flat array.
36
+ - [`findKeyedChild(children, tag)`](api/functions/findKeyedChild.md) — finds a tagged child by its tag symbol.
37
+ - [`findUnkeyedChildren(children)`](api/functions/findUnkeyedChildren.md) — returns all non-tagged children.
38
+
39
+ ### Tagged Children
40
+
41
+ [`taggedComponent(tag, component)`](api/functions/taggedComponent.md) marks a component with a symbol tag, enabling structured child decomposition:
42
+
43
+ ```tsx
44
+ const bodyTag = Symbol();
45
+ const Body = taggedComponent(bodyTag, (props: { children: Children }) => {
46
+ return props.children;
47
+ });
48
+
49
+ function MyComponent(props: { children: Children }) {
50
+ const kids = childrenArray(() => props.children);
51
+ const body = findKeyedChild(kids, bodyTag);
52
+ const rest = findUnkeyedChildren(kids);
53
+ return (
54
+ <>
55
+ {rest}
56
+ {body}
57
+ </>
58
+ );
59
+ }
60
+ ```
61
+
62
+ ## The RENDERABLE Protocol
63
+
64
+ Any object can participate in rendering by implementing [`[RENDERABLE](): Children`](api/variables/RENDERABLE.md).
65
+
66
+ ## Props Utilities
67
+
68
+ - [`mergeProps(...sources)`](api/functions/mergeProps.md) — reactive merge (last source wins).
69
+ - [`splitProps(props, ...keyGroups)`](api/functions/splitProps.md) — split by key groups, preserving reactivity.
70
+ - [`defaultProps(props, defaults)`](api/functions/defaultProps.md) — apply defaults, preserving reactive getters.
71
+
72
+ ## Taps
73
+
74
+ Taps let a parent component access context provided by its children. [`createTap()`](api/functions/createTap.md) returns a component and a reactive ref — render the component inside the child tree, read the ref from the parent. Specialized variants:
75
+
76
+ - [`createDeclarationTap()`](api/functions/createDeclarationTap.md) — taps [`DeclarationContext`](api/contexts/Declaration-context.md).
77
+ - [`createMemberTap()`](api/functions/createMemberTap.md) — taps [`MemberDeclarationContext`](api/contexts/MemberDeclaration-context.md).
78
+ - [`createScopeTap()`](api/functions/createScopeTap.md) — taps the current scope.
79
+ - [`createSourceFileTap()`](api/functions/createSourceFileTap.md) — taps [`SourceFileContext`](api/contexts/SourceFile-context.md).
80
+
81
+ ## `stc()` — Static Template Composition
82
+
83
+ [`stc(Component)`](api/functions/stc.md) wraps a component into a callable creator with `.code()`, `.text()`, and `.children()` methods. This enables fluent composition without JSX:
84
+
85
+ ```ts
86
+ const M = stc(MyComponent);
87
+
88
+ // These are equivalent:
89
+ M({ name: "hello" }).code`// ...`;
90
+ <MyComponent name="hello">// ...</MyComponent>
91
+ ```
92
+
93
+ - `.code(template)` — sets children via a code template literal.
94
+ - `.text(template)` — sets children via a text template literal.
95
+ - `.children(...children)` — sets children directly.
96
+
97
+ Language packages export stc-wrapped versions of key components from a `stc/` subpath.
@@ -0,0 +1,67 @@
1
+ # Context
2
+
3
+ Dependency injection through the component tree via the reactive owner chain, similar to React's Context API.
4
+
5
+ ## Creating a Context
6
+
7
+ ```ts
8
+ import { ComponentContext, createContext, useContext } from "@alloy-js/core";
9
+
10
+ interface SectionContext {
11
+ level: number;
12
+ }
13
+
14
+ const SectionContext: ComponentContext<SectionContext> =
15
+ createContext<SectionContext>({ level: 1 });
16
+ ```
17
+
18
+ See [`createContext`](api/functions/createContext.md), [`ComponentContext`](api/types/ComponentContext.md).
19
+
20
+ The argument is the default value when no provider is found.
21
+
22
+ ## Providing Values
23
+
24
+ ```tsx
25
+ <SectionContext.Provider value={{ level: 2 }}>
26
+ <MyComponent />
27
+ </SectionContext.Provider>
28
+ ```
29
+
30
+ ## Consuming Values
31
+
32
+ ```ts
33
+ function MyComponent() {
34
+ const section = useContext(SectionContext);
35
+ }
36
+ ```
37
+
38
+ [`useContext`](api/functions/useContext.md) walks the owner chain (not the JSX tree) to find the nearest provider.
39
+
40
+ ## Built-in Contexts
41
+
42
+ | Context | Provides | Set by |
43
+ | ------------------------------------------------------------------- | ------------------------------------- | ---------------------------------------------------------------------------- |
44
+ | [`BinderContext`](api/contexts/Binder-context.md) | The binder instance | [`<Output>`](api/components/Output.md) |
45
+ | [`ScopeContext`](api/contexts/Scope-context.md) | Current `OutputScope` | [`<Scope>`](api/components/Scope.md), [`<Output>`](api/components/Output.md) |
46
+ | [`DeclarationContext`](api/contexts/Declaration-context.md) | Current `OutputSymbol` being declared | [`<Declaration>`](api/components/Declaration.md) |
47
+ | [`MemberContext`](api/contexts/Member-context.md) | Owner symbol for new members | [`<MemberScope>`](api/components/MemberScope.md) |
48
+ | [`SourceFileContext`](api/contexts/SourceFile-context.md) | Current source file | [`<SourceFile>`](api/components/SourceFile.md) |
49
+ | [`SourceDirectoryContext`](api/contexts/SourceDirectory-context.md) | Current source directory | [`<SourceDirectory>`](api/components/SourceDirectory.md) |
50
+ | [`NamePolicyContext`](api/contexts/NamePolicy-context.md) | Name policy | [`<Output>`](api/components/Output.md) |
51
+
52
+ ## Format Options Context
53
+
54
+ [`createFormatOptionsContextFor<T>(filetype, defaults?)`](api/functions/createFormatOptionsContextFor.md) creates a provider/consumer pair for language-specific formatting options (e.g., brace style, indentation). Returns `{ Provider, useFormatOptions }`.
55
+
56
+ The `Provider` accepts a value typed as `T` (not `Partial<T>`), so TypeScript requires all non-optional fields. At runtime, the Provider value is spread-merged over `defaults`, overriding each key it supplies. Use `useFormatOptions(overrides?)` for per-call partial overrides — it accepts `Partial<T>` and merges onto current effective options. Undefined override values are ignored.
57
+
58
+ Merge precedence: `defaults` (lowest) → Provider `value` (full T) → `useFormatOptions(overrides?)` (highest).
59
+
60
+ ## Structuring Custom Contexts
61
+
62
+ When defining a new context, co-locate these pieces:
63
+
64
+ - **Interface** — the shape of the context value (e.g., `SourceFileContext`, `NamespaceContext`).
65
+ - **Context variable** — created with `createContext()` or `createNamedContext()`.
66
+ - **`use` function** — wraps `useContext()` with defaults (e.g., `useSourceFile()`, `useNamespaceContext()`).
67
+ - **Provider component** (when needed) — e.g., format options contexts.
@@ -0,0 +1,5 @@
1
+ # Control Flow
2
+
3
+ - [**`<Show>`**](api/components/Show.md) — conditional rendering. Renders `children` when `when` is truthy, otherwise `fallback`.
4
+ - [**`<For>`**](api/components/For.md) — iteration with joiner props (`comma`, `hardline`, etc.).
5
+ - [**`<Switch>`**](api/components/Switch.md) / [**`<Match>`**](api/variables/Match.md) — multi-branch conditional. Use `<Match else>` for default.