@alloy-js/core 0.23.0-dev.12 → 0.23.0-dev.15

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 (521) hide show
  1. package/api-extractor.json +1 -8
  2. package/api-extractor.testing.json +19 -0
  3. package/dist/dev/src/binder.js +108 -1
  4. package/dist/dev/src/binder.js.map +1 -1
  5. package/dist/dev/src/components/Block.js +17 -5
  6. package/dist/dev/src/components/Block.js.map +1 -1
  7. package/dist/dev/src/components/List.js +1 -1
  8. package/dist/dev/src/components/List.js.map +1 -1
  9. package/dist/dev/src/components/MemberDeclaration.js +6 -6
  10. package/dist/dev/src/components/MemberName.js +7 -0
  11. package/dist/dev/src/components/MemberName.js.map +1 -1
  12. package/dist/dev/src/components/MemberScope.js +7 -2
  13. package/dist/dev/src/components/MemberScope.js.map +1 -1
  14. package/dist/dev/src/components/Output.js +4 -4
  15. package/dist/dev/src/components/Output.js.map +1 -1
  16. package/dist/dev/src/components/Scope.js +7 -1
  17. package/dist/dev/src/components/Scope.js.map +1 -1
  18. package/dist/dev/src/components/SourceFile.js +3 -3
  19. package/dist/dev/src/components/SourceFile.js.map +1 -1
  20. package/dist/dev/src/context/binder.js +5 -0
  21. package/dist/dev/src/context/binder.js.map +1 -1
  22. package/dist/dev/src/context/format-options.js +14 -1
  23. package/dist/dev/src/context/format-options.js.map +1 -1
  24. package/dist/dev/src/context/scope.js +5 -0
  25. package/dist/dev/src/context/scope.js.map +1 -1
  26. package/dist/dev/src/context/source-directory.js +9 -0
  27. package/dist/dev/src/context/source-directory.js.map +1 -1
  28. package/dist/dev/src/debug/cli.js +3 -2
  29. package/dist/dev/src/debug/cli.js.map +1 -1
  30. package/dist/dev/src/debug/source-map.browser.js +24 -0
  31. package/dist/dev/src/debug/source-map.browser.js.map +1 -0
  32. package/dist/dev/src/debug/trace.js +7 -6
  33. package/dist/dev/src/debug/trace.js.map +1 -1
  34. package/dist/dev/src/host/node-host.browser.js +21 -0
  35. package/dist/dev/src/host/node-host.browser.js.map +1 -0
  36. package/dist/dev/src/host/node-host.js +20 -0
  37. package/dist/dev/src/host/node-host.js.map +1 -0
  38. package/dist/dev/src/library-symbol-reference.js +54 -0
  39. package/dist/dev/src/library-symbol-reference.js.map +1 -1
  40. package/dist/dev/src/name-policy.js +27 -0
  41. package/dist/dev/src/name-policy.js.map +1 -1
  42. package/dist/dev/src/reactivity.js +16 -0
  43. package/dist/dev/src/reactivity.js.map +1 -1
  44. package/dist/dev/src/render-stack.js +4 -3
  45. package/dist/dev/src/render-stack.js.map +1 -1
  46. package/dist/dev/src/render.js.map +1 -1
  47. package/dist/dev/src/symbols/output-scope.js +34 -1
  48. package/dist/dev/src/symbols/output-scope.js.map +1 -1
  49. package/dist/dev/src/symbols/output-space.js +15 -0
  50. package/dist/dev/src/symbols/output-space.js.map +1 -1
  51. package/dist/dev/src/symbols/output-symbol.js +81 -11
  52. package/dist/dev/src/symbols/output-symbol.js.map +1 -1
  53. package/dist/dev/src/symbols/symbol-slot.js +7 -0
  54. package/dist/dev/src/symbols/symbol-slot.js.map +1 -1
  55. package/dist/dev/src/symbols/symbol-slot.test.js +27 -2
  56. package/dist/dev/src/symbols/symbol-slot.test.js.map +1 -1
  57. package/dist/dev/src/write-output.js +6 -5
  58. package/dist/dev/src/write-output.js.map +1 -1
  59. package/dist/dev/test/browser-build.test.js +67 -68
  60. package/dist/dev/test/browser-build.test.js.map +1 -1
  61. package/dist/dev/testing/create-test-wrapper.js +59 -5
  62. package/dist/dev/testing/create-test-wrapper.js.map +1 -1
  63. package/dist/dev/testing/extend-expect.js +20 -0
  64. package/dist/dev/testing/extend-expect.js.map +1 -1
  65. package/dist/dev/testing/index.js +1 -1
  66. package/dist/dev/testing/index.js.map +1 -1
  67. package/dist/dev/testing/render.js +11 -0
  68. package/dist/dev/testing/render.js.map +1 -1
  69. package/dist/src/binder.d.ts +107 -3
  70. package/dist/src/binder.d.ts.map +1 -1
  71. package/dist/src/binder.js +108 -1
  72. package/dist/src/binder.js.map +1 -1
  73. package/dist/src/components/Block.d.ts +12 -0
  74. package/dist/src/components/Block.d.ts.map +1 -1
  75. package/dist/src/components/Block.js +12 -0
  76. package/dist/src/components/Block.js.map +1 -1
  77. package/dist/src/components/List.d.ts +11 -1
  78. package/dist/src/components/List.d.ts.map +1 -1
  79. package/dist/src/components/List.js.map +1 -1
  80. package/dist/src/components/MemberDeclaration.d.ts +6 -6
  81. package/dist/src/components/MemberDeclaration.js +6 -6
  82. package/dist/src/components/MemberName.d.ts +6 -0
  83. package/dist/src/components/MemberName.d.ts.map +1 -1
  84. package/dist/src/components/MemberName.js +7 -0
  85. package/dist/src/components/MemberName.js.map +1 -1
  86. package/dist/src/components/MemberScope.d.ts +5 -0
  87. package/dist/src/components/MemberScope.d.ts.map +1 -1
  88. package/dist/src/components/MemberScope.js +5 -0
  89. package/dist/src/components/MemberScope.js.map +1 -1
  90. package/dist/src/components/Output.d.ts +4 -2
  91. package/dist/src/components/Output.d.ts.map +1 -1
  92. package/dist/src/components/Output.js.map +1 -1
  93. package/dist/src/components/Scope.d.ts +6 -0
  94. package/dist/src/components/Scope.d.ts.map +1 -1
  95. package/dist/src/components/Scope.js +6 -0
  96. package/dist/src/components/Scope.js.map +1 -1
  97. package/dist/src/components/SourceFile.d.ts +22 -2
  98. package/dist/src/components/SourceFile.d.ts.map +1 -1
  99. package/dist/src/components/SourceFile.js.map +1 -1
  100. package/dist/src/context/binder.d.ts +4 -0
  101. package/dist/src/context/binder.d.ts.map +1 -1
  102. package/dist/src/context/binder.js +5 -0
  103. package/dist/src/context/binder.js.map +1 -1
  104. package/dist/src/context/format-options.d.ts +14 -1
  105. package/dist/src/context/format-options.d.ts.map +1 -1
  106. package/dist/src/context/format-options.js +14 -1
  107. package/dist/src/context/format-options.js.map +1 -1
  108. package/dist/src/context/scope.d.ts +4 -0
  109. package/dist/src/context/scope.d.ts.map +1 -1
  110. package/dist/src/context/scope.js +5 -0
  111. package/dist/src/context/scope.js.map +1 -1
  112. package/dist/src/context/source-directory.d.ts +9 -0
  113. package/dist/src/context/source-directory.d.ts.map +1 -1
  114. package/dist/src/context/source-directory.js +9 -0
  115. package/dist/src/context/source-directory.js.map +1 -1
  116. package/dist/src/debug/cli.d.ts.map +1 -1
  117. package/dist/src/debug/cli.js +3 -2
  118. package/dist/src/debug/cli.js.map +1 -1
  119. package/dist/src/debug/source-map.browser.d.ts +16 -0
  120. package/dist/src/debug/source-map.browser.d.ts.map +1 -0
  121. package/dist/src/debug/source-map.browser.js +24 -0
  122. package/dist/src/debug/source-map.browser.js.map +1 -0
  123. package/dist/src/debug/trace.d.ts.map +1 -1
  124. package/dist/src/debug/trace.js +7 -6
  125. package/dist/src/debug/trace.js.map +1 -1
  126. package/dist/src/host/node-host.browser.d.ts +11 -0
  127. package/dist/src/host/node-host.browser.d.ts.map +1 -0
  128. package/dist/src/host/node-host.browser.js +21 -0
  129. package/dist/src/host/node-host.browser.js.map +1 -0
  130. package/dist/src/host/node-host.d.ts +11 -0
  131. package/dist/src/host/node-host.d.ts.map +1 -0
  132. package/dist/src/host/node-host.js +20 -0
  133. package/dist/src/host/node-host.js.map +1 -0
  134. package/dist/src/library-symbol-reference.d.ts +52 -0
  135. package/dist/src/library-symbol-reference.d.ts.map +1 -1
  136. package/dist/src/library-symbol-reference.js +54 -0
  137. package/dist/src/library-symbol-reference.js.map +1 -1
  138. package/dist/src/name-policy.d.ts +30 -3
  139. package/dist/src/name-policy.d.ts.map +1 -1
  140. package/dist/src/name-policy.js +27 -0
  141. package/dist/src/name-policy.js.map +1 -1
  142. package/dist/src/reactivity.d.ts +15 -0
  143. package/dist/src/reactivity.d.ts.map +1 -1
  144. package/dist/src/reactivity.js +16 -0
  145. package/dist/src/reactivity.js.map +1 -1
  146. package/dist/src/render-stack.d.ts.map +1 -1
  147. package/dist/src/render-stack.js +4 -3
  148. package/dist/src/render-stack.js.map +1 -1
  149. package/dist/src/render.d.ts +2 -0
  150. package/dist/src/render.d.ts.map +1 -1
  151. package/dist/src/render.js.map +1 -1
  152. package/dist/src/symbols/output-scope.d.ts +33 -1
  153. package/dist/src/symbols/output-scope.d.ts.map +1 -1
  154. package/dist/src/symbols/output-scope.js +34 -1
  155. package/dist/src/symbols/output-scope.js.map +1 -1
  156. package/dist/src/symbols/output-space.d.ts +12 -0
  157. package/dist/src/symbols/output-space.d.ts.map +1 -1
  158. package/dist/src/symbols/output-space.js +15 -0
  159. package/dist/src/symbols/output-space.js.map +1 -1
  160. package/dist/src/symbols/output-symbol.d.ts +93 -12
  161. package/dist/src/symbols/output-symbol.d.ts.map +1 -1
  162. package/dist/src/symbols/output-symbol.js +81 -11
  163. package/dist/src/symbols/output-symbol.js.map +1 -1
  164. package/dist/src/symbols/symbol-slot.d.ts.map +1 -1
  165. package/dist/src/symbols/symbol-slot.js +7 -0
  166. package/dist/src/symbols/symbol-slot.js.map +1 -1
  167. package/dist/src/symbols/symbol-slot.test.js +18 -1
  168. package/dist/src/symbols/symbol-slot.test.js.map +1 -1
  169. package/dist/src/write-output.d.ts.map +1 -1
  170. package/dist/src/write-output.js +6 -5
  171. package/dist/src/write-output.js.map +1 -1
  172. package/dist/test/browser-build.test.js +67 -68
  173. package/dist/test/browser-build.test.js.map +1 -1
  174. package/dist/testing/create-test-wrapper.d.ts +75 -2
  175. package/dist/testing/create-test-wrapper.d.ts.map +1 -1
  176. package/dist/testing/create-test-wrapper.js +55 -1
  177. package/dist/testing/create-test-wrapper.js.map +1 -1
  178. package/dist/testing/extend-expect.d.ts +26 -0
  179. package/dist/testing/extend-expect.d.ts.map +1 -1
  180. package/dist/testing/extend-expect.js +20 -0
  181. package/dist/testing/extend-expect.js.map +1 -1
  182. package/dist/testing/index.d.ts +1 -1
  183. package/dist/testing/index.d.ts.map +1 -1
  184. package/dist/testing/index.js +1 -1
  185. package/dist/testing/index.js.map +1 -1
  186. package/dist/testing/render.d.ts +9 -0
  187. package/dist/testing/render.d.ts.map +1 -1
  188. package/dist/testing/render.js +11 -0
  189. package/dist/testing/render.js.map +1 -1
  190. package/dist/tsconfig.tsbuildinfo +1 -1
  191. package/docs/api/components/AppendRegion.md +83 -0
  192. package/docs/api/components/Block.md +49 -0
  193. package/docs/api/components/CopyFile.md +26 -0
  194. package/docs/api/components/Declaration.md +85 -0
  195. package/docs/api/components/For.md +91 -0
  196. package/docs/api/components/Indent.md +40 -0
  197. package/docs/api/components/List.md +68 -0
  198. package/docs/api/components/MemberDeclaration.md +89 -0
  199. package/docs/api/components/MemberName.md +21 -0
  200. package/docs/api/components/MemberScope.md +81 -0
  201. package/docs/api/components/Name.md +19 -0
  202. package/docs/api/components/Output.md +62 -0
  203. package/docs/api/components/Prose.md +29 -0
  204. package/docs/api/components/ReferenceOrContent.md +28 -0
  205. package/docs/api/components/Scope.md +83 -0
  206. package/docs/api/components/Show.md +32 -0
  207. package/docs/api/components/SourceDirectory.md +28 -0
  208. package/docs/api/components/SourceFile.md +60 -0
  209. package/docs/api/components/StatementList.md +29 -0
  210. package/docs/api/components/Switch.md +42 -0
  211. package/docs/api/components/TemplateFile.md +71 -0
  212. package/docs/api/components/TemplateVariable.md +57 -0
  213. package/docs/api/components/UpdateFile.md +56 -0
  214. package/docs/api/components/Wrap.md +40 -0
  215. package/docs/api/components/createAccessExpression.md +55 -0
  216. package/docs/api/components/index.md +27 -0
  217. package/docs/api/contexts/Assignment-context.md +43 -0
  218. package/docs/api/contexts/Binder-context.md +22 -0
  219. package/docs/api/contexts/Declaration-context.md +15 -0
  220. package/docs/api/contexts/Member-context.md +17 -0
  221. package/docs/api/contexts/MemberDeclaration-context.md +24 -0
  222. package/docs/api/contexts/NamePolicy-context.md +18 -0
  223. package/docs/api/contexts/Scope-context.md +20 -0
  224. package/docs/api/contexts/SourceDirectory-context.md +26 -0
  225. package/docs/api/contexts/SourceFile-context.md +19 -0
  226. package/docs/api/contexts/index.md +11 -0
  227. package/docs/api/functions/attachDiagnosticsCollector.md +18 -0
  228. package/docs/api/functions/baseListPropsToMapJoinArgs.md +20 -0
  229. package/docs/api/functions/children.md +27 -0
  230. package/docs/api/functions/childrenArray.md +25 -0
  231. package/docs/api/functions/code.md +25 -0
  232. package/docs/api/functions/computed.md +18 -0
  233. package/docs/api/functions/createComponent.md +20 -0
  234. package/docs/api/functions/createContentSlot.md +33 -0
  235. package/docs/api/functions/createContext.md +19 -0
  236. package/docs/api/functions/createCustomContext.md +18 -0
  237. package/docs/api/functions/createDeclarationTap.md +20 -0
  238. package/docs/api/functions/createFileResource.md +35 -0
  239. package/docs/api/functions/createFormatOptionsContextFor.md +28 -0
  240. package/docs/api/functions/createIntrinsic.md +19 -0
  241. package/docs/api/functions/createMemberTap.md +20 -0
  242. package/docs/api/functions/createNamePolicy.md +37 -0
  243. package/docs/api/functions/createNamedContext.md +19 -0
  244. package/docs/api/functions/createOutputBinder.md +24 -0
  245. package/docs/api/functions/createRenderTreeHook.md +19 -0
  246. package/docs/api/functions/createResource.md +77 -0
  247. package/docs/api/functions/createScope.md +35 -0
  248. package/docs/api/functions/createScopeTap.md +20 -0
  249. package/docs/api/functions/createSourceFileTap.md +20 -0
  250. package/docs/api/functions/createSymbol.md +25 -0
  251. package/docs/api/functions/createSymbolSlot.md +19 -0
  252. package/docs/api/functions/createTap.md +55 -0
  253. package/docs/api/functions/decl.md +20 -0
  254. package/docs/api/functions/defaultProps.md +21 -0
  255. package/docs/api/functions/effect.md +26 -0
  256. package/docs/api/functions/emitDiagnostic.md +18 -0
  257. package/docs/api/functions/emitSymbol.md +18 -0
  258. package/docs/api/functions/ensureIsEmpty.md +20 -0
  259. package/docs/api/functions/findCurrentEffectId.md +19 -0
  260. package/docs/api/functions/findKeyedChild.md +19 -0
  261. package/docs/api/functions/findKeyedChildren.md +19 -0
  262. package/docs/api/functions/findUnkeyedChildren.md +18 -0
  263. package/docs/api/functions/formatReactivePropertyLabel.md +21 -0
  264. package/docs/api/functions/getAssignmentSymbol.md +19 -0
  265. package/docs/api/functions/getContext.md +17 -0
  266. package/docs/api/functions/getContextForRenderNode.md +18 -0
  267. package/docs/api/functions/getDiagnosticsForTree.md +18 -0
  268. package/docs/api/functions/getEffectDebugId.md +18 -0
  269. package/docs/api/functions/getElementCache.md +17 -0
  270. package/docs/api/functions/getReactiveCreationLocation.md +18 -0
  271. package/docs/api/functions/getSymbolCreator.md +18 -0
  272. package/docs/api/functions/getSymbolCreatorSymbol.md +17 -0
  273. package/docs/api/functions/index.md +105 -0
  274. package/docs/api/functions/inspectRefkey.md +18 -0
  275. package/docs/api/functions/instantiateTakenMembersTo.md +20 -0
  276. package/docs/api/functions/isComponentCreator.md +19 -0
  277. package/docs/api/functions/isCustomContext.md +18 -0
  278. package/docs/api/functions/isIntrinsicElement.md +18 -0
  279. package/docs/api/functions/isKeyedChild.md +18 -0
  280. package/docs/api/functions/isLibrarySymbolReference.md +18 -0
  281. package/docs/api/functions/isMemberRefkey.md +18 -0
  282. package/docs/api/functions/isNamekey.md +18 -0
  283. package/docs/api/functions/isPrintHook.md +18 -0
  284. package/docs/api/functions/isRefkey.md +18 -0
  285. package/docs/api/functions/isRefkeyable.md +18 -0
  286. package/docs/api/functions/isRenderableObject.md +20 -0
  287. package/docs/api/functions/isSymbolRefkey.md +18 -0
  288. package/docs/api/functions/join.md +33 -0
  289. package/docs/api/functions/mapJoin.md +106 -0
  290. package/docs/api/functions/memberRefkey.md +27 -0
  291. package/docs/api/functions/memo.md +29 -0
  292. package/docs/api/functions/mergeProps.md +64 -0
  293. package/docs/api/functions/moveTakenMembersTo.md +18 -0
  294. package/docs/api/functions/namekey.md +41 -0
  295. package/docs/api/functions/nextReactiveId.md +19 -0
  296. package/docs/api/functions/notifyContentState.md +17 -0
  297. package/docs/api/functions/onCleanup.md +26 -0
  298. package/docs/api/functions/printTree.md +31 -0
  299. package/docs/api/functions/reactivePropertyRefId.md +21 -0
  300. package/docs/api/functions/ref.md +21 -0
  301. package/docs/api/functions/refId.md +18 -0
  302. package/docs/api/functions/refkey.md +24 -0
  303. package/docs/api/functions/render.md +31 -0
  304. package/docs/api/functions/renderAsync.md +31 -0
  305. package/docs/api/functions/renderTree.md +18 -0
  306. package/docs/api/functions/reportDiagnostics.md +18 -0
  307. package/docs/api/functions/resetRefIdCounter.md +17 -0
  308. package/docs/api/functions/resolve.md +31 -0
  309. package/docs/api/functions/root.md +25 -0
  310. package/docs/api/functions/shallowReactive.md +18 -0
  311. package/docs/api/functions/shallowRef.md +21 -0
  312. package/docs/api/functions/sourceFilesForTree.md +31 -0
  313. package/docs/api/functions/splitProps.md +19 -0
  314. package/docs/api/functions/stc.md +18 -0
  315. package/docs/api/functions/sti.md +18 -0
  316. package/docs/api/functions/symbolForRefkey.md +24 -0
  317. package/docs/api/functions/taggedComponent.md +19 -0
  318. package/docs/api/functions/takeSymbols.md +18 -0
  319. package/docs/api/functions/text.md +19 -0
  320. package/docs/api/functions/toRef.md +20 -0
  321. package/docs/api/functions/toRefkey.md +18 -0
  322. package/docs/api/functions/toRefs.md +20 -0
  323. package/docs/api/functions/traverseOutput.md +21 -0
  324. package/docs/api/functions/unresolvedRefkey.md +18 -0
  325. package/docs/api/functions/untrack.md +18 -0
  326. package/docs/api/functions/useContext.md +18 -0
  327. package/docs/api/functions/useFormatOptions.md +18 -0
  328. package/docs/api/functions/useMemberContext.md +17 -0
  329. package/docs/api/functions/useMemberScope.md +17 -0
  330. package/docs/api/functions/writeOutput.md +21 -0
  331. package/docs/api/index.md +9 -0
  332. package/docs/api/testing/functions/createTestWrapper.md +70 -0
  333. package/docs/api/testing/functions/d.md +21 -0
  334. package/docs/api/testing/functions/dedent.md +18 -0
  335. package/docs/api/testing/functions/index.md +6 -0
  336. package/docs/api/testing/functions/renderToString.md +20 -0
  337. package/docs/api/testing/index.md +4 -0
  338. package/docs/api/testing/types/TestWrapper.md +10 -0
  339. package/docs/api/testing/types/ToRenderToOptions.md +24 -0
  340. package/docs/api/testing/types/index.md +4 -0
  341. package/docs/api/types/AlignIntrinsicElement.md +5 -0
  342. package/docs/api/types/AppendRegionProps.md +5 -0
  343. package/docs/api/types/BaseListProps.md +21 -0
  344. package/docs/api/types/BasePartProps.md +10 -0
  345. package/docs/api/types/BasicScope.md +15 -0
  346. package/docs/api/types/BasicSymbol.md +18 -0
  347. package/docs/api/types/Binder.md +18 -0
  348. package/docs/api/types/BinderOptions.md +7 -0
  349. package/docs/api/types/BrIntrinsicElement.md +5 -0
  350. package/docs/api/types/BreakParentIntrinsicElement.md +5 -0
  351. package/docs/api/types/Child.md +5 -0
  352. package/docs/api/types/Children.md +5 -0
  353. package/docs/api/types/ChildrenOptions.md +7 -0
  354. package/docs/api/types/CommonFormatOptions.md +8 -0
  355. package/docs/api/types/Component.md +8 -0
  356. package/docs/api/types/ComponentContext.md +11 -0
  357. package/docs/api/types/ComponentCreator.md +11 -0
  358. package/docs/api/types/ComponentDefinition.md +7 -0
  359. package/docs/api/types/ContentOutputFile.md +10 -0
  360. package/docs/api/types/ContentSlot.md +12 -0
  361. package/docs/api/types/Context.md +19 -0
  362. package/docs/api/types/ContextProviderProps.md +8 -0
  363. package/docs/api/types/CopyFileContext.md +8 -0
  364. package/docs/api/types/CopyOutputFile.md +9 -0
  365. package/docs/api/types/CustomContext.md +10 -0
  366. package/docs/api/types/CustomContextChildrenCallback.md +5 -0
  367. package/docs/api/types/DeclarationProps.md +5 -0
  368. package/docs/api/types/DedentIntrinsicElement.md +5 -0
  369. package/docs/api/types/DedentToRootIntrinsicElement.md +5 -0
  370. package/docs/api/types/Diagnostic.md +11 -0
  371. package/docs/api/types/DiagnosticHandle.md +7 -0
  372. package/docs/api/types/DiagnosticInput.md +10 -0
  373. package/docs/api/types/DiagnosticSeverity.md +5 -0
  374. package/docs/api/types/DiagnosticStackEntry.md +9 -0
  375. package/docs/api/types/DiagnosticsCollector.md +8 -0
  376. package/docs/api/types/Disposable_2.md +7 -0
  377. package/docs/api/types/EffectDebugOptions.md +8 -0
  378. package/docs/api/types/EffectOptions.md +7 -0
  379. package/docs/api/types/ElementCache.md +5 -0
  380. package/docs/api/types/ElementCacheKey.md +5 -0
  381. package/docs/api/types/FillIntrinsicElement.md +5 -0
  382. package/docs/api/types/ForCallbackArgs.md +5 -0
  383. package/docs/api/types/ForSupportedCollections.md +5 -0
  384. package/docs/api/types/GroupIntrinsicElement.md +5 -0
  385. package/docs/api/types/HardlineIntrinsicElement.md +5 -0
  386. package/docs/api/types/HbrIntrinsicElement.md +5 -0
  387. package/docs/api/types/IfBreakIntrinsicElement.md +5 -0
  388. package/docs/api/types/IndentIfBreakIntrinsicElement.md +5 -0
  389. package/docs/api/types/IndentIntrinsicElement.md +5 -0
  390. package/docs/api/types/IntrinsicElement.md +5 -0
  391. package/docs/api/types/IntrinsicElementBase.md +9 -0
  392. package/docs/api/types/IntrinsicElements.md +26 -0
  393. package/docs/api/types/JoinOptions.md +9 -0
  394. package/docs/api/types/LbrIntrinsicElement.md +5 -0
  395. package/docs/api/types/LibrarySymbolReference.md +13 -0
  396. package/docs/api/types/LineIntrinsicElement.md +5 -0
  397. package/docs/api/types/LineSuffixBoundaryIntrinsicElement.md +5 -0
  398. package/docs/api/types/LineSuffixIntrinsicElement.md +5 -0
  399. package/docs/api/types/LiterallineIntrinsicElement.md +5 -0
  400. package/docs/api/types/MakeChildrenOptional.md +7 -0
  401. package/docs/api/types/MarkAsRootIntrinsicElement.md +5 -0
  402. package/docs/api/types/MatchProps.md +9 -0
  403. package/docs/api/types/MemberDeclarationProps.md +5 -0
  404. package/docs/api/types/MemberDescriptor.md +10 -0
  405. package/docs/api/types/MemberRefkey.md +10 -0
  406. package/docs/api/types/MemberResolutionContext.md +10 -0
  407. package/docs/api/types/MemberResolver.md +32 -0
  408. package/docs/api/types/MemberScopeProps.md +5 -0
  409. package/docs/api/types/Metadata.md +5 -0
  410. package/docs/api/types/NameConflictResolver.md +27 -0
  411. package/docs/api/types/NamePolicy.md +8 -0
  412. package/docs/api/types/NamePolicyGetter.md +9 -0
  413. package/docs/api/types/Namekey.md +10 -0
  414. package/docs/api/types/NamekeyOptions.md +8 -0
  415. package/docs/api/types/OnReactiveSetAddCallback.md +5 -0
  416. package/docs/api/types/OnReactiveSetDeleteCallback.md +5 -0
  417. package/docs/api/types/OutputDeclarationSpace.md +13 -0
  418. package/docs/api/types/OutputDirectory.md +59 -0
  419. package/docs/api/types/OutputFile.md +5 -0
  420. package/docs/api/types/OutputFileBase.md +8 -0
  421. package/docs/api/types/OutputMemberSpace.md +13 -0
  422. package/docs/api/types/OutputScope.md +33 -0
  423. package/docs/api/types/OutputScopeOptions.md +9 -0
  424. package/docs/api/types/OutputSpace.md +7 -0
  425. package/docs/api/types/OutputSymbol.md +76 -0
  426. package/docs/api/types/OutputSymbolOptions.md +16 -0
  427. package/docs/api/types/OutputVisitor.md +10 -0
  428. package/docs/api/types/PrintHook.md +10 -0
  429. package/docs/api/types/PrintTreeOptions.md +11 -0
  430. package/docs/api/types/Props.md +5 -0
  431. package/docs/api/types/ReactiveUnionSet.md +20 -0
  432. package/docs/api/types/ReactiveUnionSetOptions.md +8 -0
  433. package/docs/api/types/Refkey.md +5 -0
  434. package/docs/api/types/Refkeyable.md +5 -0
  435. package/docs/api/types/RefkeyableObject.md +7 -0
  436. package/docs/api/types/RenderableObject.md +9 -0
  437. package/docs/api/types/RenderedTextTree.md +5 -0
  438. package/docs/api/types/ResolutionResult.md +39 -0
  439. package/docs/api/types/ResolveDeclarationByKeyOptions.md +7 -0
  440. package/docs/api/types/Resource.md +11 -0
  441. package/docs/api/types/RootOptions.md +7 -0
  442. package/docs/api/types/SbrIntrinsicElement.md +5 -0
  443. package/docs/api/types/ScopeProps.md +5 -0
  444. package/docs/api/types/SoftlineIntrinsicElement.md +5 -0
  445. package/docs/api/types/SourceLocation.md +9 -0
  446. package/docs/api/types/SplitProps.md +12 -0
  447. package/docs/api/types/StcComponentCreator.md +9 -0
  448. package/docs/api/types/StcSignature.md +5 -0
  449. package/docs/api/types/StiComponentCreator.md +9 -0
  450. package/docs/api/types/StiSignature.md +7 -0
  451. package/docs/api/types/SymbolCreator.md +15 -0
  452. package/docs/api/types/SymbolRefkey.md +9 -0
  453. package/docs/api/types/SymbolSlot.md +12 -0
  454. package/docs/api/types/SymbolTable.md +15 -0
  455. package/docs/api/types/TakeSymbolCallback.md +7 -0
  456. package/docs/api/types/TakeSymbolsCallback.md +7 -0
  457. package/docs/api/types/Tap.md +11 -0
  458. package/docs/api/types/TapHandler.md +9 -0
  459. package/docs/api/types/Tapper.md +9 -0
  460. package/docs/api/types/TemplateVariableProps.md +5 -0
  461. package/docs/api/types/index.md +122 -0
  462. package/docs/api/variables/FormatOptions.md +5 -0
  463. package/docs/api/variables/Match.md +7 -0
  464. package/docs/api/variables/REFKEYABLE.md +5 -0
  465. package/docs/api/variables/RENDERABLE.md +5 -0
  466. package/docs/api/variables/TO_SYMBOL.md +39 -0
  467. package/docs/api/variables/contextsByKey.md +5 -0
  468. package/docs/api/variables/index.md +11 -0
  469. package/docs/api/variables/intrinsicElementKey.md +5 -0
  470. package/docs/api/variables/matchTag.md +5 -0
  471. package/docs/api/variables/printHookTag.md +7 -0
  472. package/docs/components.md +97 -0
  473. package/docs/context.md +67 -0
  474. package/docs/control-flow.md +5 -0
  475. package/docs/debugging.md +105 -0
  476. package/docs/formatting.md +99 -0
  477. package/docs/guides/language-package-guide.md +593 -0
  478. package/docs/guides/references-and-refkeys.md +210 -0
  479. package/docs/guides/style-guide.md +244 -0
  480. package/docs/index.md +22 -0
  481. package/docs/reactivity.md +68 -0
  482. package/docs/rendering.md +41 -0
  483. package/docs/symbols-and-scopes.md +180 -0
  484. package/package.json +8 -4
  485. package/src/binder.ts +107 -3
  486. package/src/components/Block.tsx +12 -0
  487. package/src/components/List.tsx +11 -1
  488. package/src/components/MemberDeclaration.tsx +6 -6
  489. package/src/components/MemberName.tsx +6 -0
  490. package/src/components/MemberScope.tsx +5 -0
  491. package/src/components/Output.tsx +4 -1
  492. package/src/components/Scope.tsx +6 -0
  493. package/src/components/SourceFile.tsx +22 -2
  494. package/src/context/binder.ts +4 -0
  495. package/src/context/format-options.ts +14 -1
  496. package/src/context/scope.ts +4 -0
  497. package/src/context/source-directory.ts +9 -0
  498. package/src/debug/cli.ts +3 -2
  499. package/src/debug/source-map.browser.ts +30 -0
  500. package/src/debug/trace.ts +7 -6
  501. package/src/host/node-host.browser.ts +23 -0
  502. package/src/host/node-host.ts +22 -0
  503. package/src/library-symbol-reference.ts +52 -0
  504. package/src/name-policy.ts +30 -3
  505. package/src/reactivity.ts +15 -0
  506. package/src/render-stack.ts +4 -3
  507. package/src/render.ts +2 -0
  508. package/src/symbols/output-scope.ts +33 -1
  509. package/src/symbols/output-space.ts +13 -0
  510. package/src/symbols/output-symbol.ts +93 -12
  511. package/src/symbols/symbol-slot.test.tsx +28 -1
  512. package/src/symbols/symbol-slot.tsx +8 -0
  513. package/src/write-output.ts +6 -5
  514. package/temp/api-testing.json +673 -0
  515. package/temp/api.json +48 -47
  516. package/test/browser-build.test.ts +71 -78
  517. package/testing/create-test-wrapper.tsx +81 -2
  518. package/testing/extend-expect.ts +22 -1
  519. package/testing/index.ts +1 -1
  520. package/testing/render.ts +9 -0
  521. package/testing/vitest.d.ts +3 -8
@@ -0,0 +1,62 @@
1
+ # Output
2
+
3
+ This component is the root component for all your emitted output. Place your various [SourceDirectory](../sourcedirectory/) and [SourceFile](../sourcefile/) components inside [`Output`](Output.md) to create directories and files in your output directory.
4
+
5
+ * jsx
6
+
7
+ ```tsx
8
+ import { Output } from "@alloy-js/core";
9
+
10
+
11
+ <Output
12
+ basePath="string"
13
+ externals={SymbolCreator[]}
14
+ insertFinalNewLine
15
+ nameConflictResolver={NameConflictResolver}
16
+ namePolicy={NamePolicy<string>}
17
+ noFlush
18
+ printWidth={number}
19
+ tabWidth={number}
20
+ useTabs
21
+ >
22
+ {children}
23
+ </Output>
24
+ ```
25
+
26
+ * stc
27
+
28
+ ```ts
29
+ import { Output } from "@alloy-js/core/stc";
30
+
31
+
32
+ Output({
33
+ basePath: string,
34
+ externals: SymbolCreator[],
35
+ insertFinalNewLine: boolean,
36
+ nameConflictResolver: NameConflictResolver,
37
+ namePolicy: NamePolicy<string>,
38
+ noFlush: boolean,
39
+ printWidth: number,
40
+ tabWidth: number,
41
+ useTabs: boolean,
42
+ }).children(children)
43
+ ```
44
+
45
+ ## Props
46
+
47
+ | | | |
48
+ | -------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
49
+ | basePath | optional string | The base path for the output contents. Defaults to ”.“ |
50
+ | children | optional [Children](../../types/children/) | |
51
+ | externals | optional [SymbolCreator](../../types/symbolcreator/)\[] | External libraries whose symbols should be available for reference. |
52
+ | insertFinalNewLine | optional boolean | If files should end with a final new line. |
53
+ | nameConflictResolver | optional [NameConflictResolver](../../types/nameconflictresolver/) | Policy for handling multiple symbols declared with the same name. |
54
+ | namePolicy | optional [NamePolicy](../../types/namepolicy/)\<string> | Name policy to use for this output. |
55
+ | noFlush | optional boolean | Skip flushing scheduled jobs before printing. |
56
+ | printWidth | optional number | The number of characters the printer will wrap on. Defaults to 100 characters. |
57
+ | tabWidth | optional number | The number of spaces to use for indentation. Defaults to 2 spaces. |
58
+ | useTabs | optional boolean | Whether to use tabs instead of spaces for indentation. Defaults to false. |
59
+
60
+ ## See also
61
+
62
+ * [NamePolicy context](../../contexts/namepolicy-context/)
@@ -0,0 +1,29 @@
1
+ # Prose
2
+
3
+ Create a block of text which will break once a word exceeds the configured line width. The children are expected to be strings, and a is added between each word.
4
+
5
+ * jsx
6
+
7
+ ```tsx
8
+ import { Prose } from "@alloy-js/core";
9
+
10
+
11
+ <Prose >
12
+ {children}
13
+ </Prose>
14
+ ```
15
+
16
+ * stc
17
+
18
+ ```ts
19
+ import { Prose } from "@alloy-js/core/stc";
20
+
21
+
22
+ Prose({ }).children(children)
23
+ ```
24
+
25
+ ## Props
26
+
27
+ | | | |
28
+ | -------- | --------------------------------- | - |
29
+ | children | [Children](../../types/children/) | |
@@ -0,0 +1,28 @@
1
+ # ReferenceOrContent
2
+
3
+ * jsx
4
+
5
+ ```tsx
6
+ import { ReferenceOrContent } from "@alloy-js/core";
7
+
8
+
9
+ <ReferenceOrContent refkey={Refkey}>
10
+ {children}
11
+ </ReferenceOrContent>
12
+ ```
13
+
14
+ * stc
15
+
16
+ ```ts
17
+ import { ReferenceOrContent } from "@alloy-js/core/stc";
18
+
19
+
20
+ ReferenceOrContent({ refkey: Refkey }).children(children)
21
+ ```
22
+
23
+ ## Props
24
+
25
+ | | | |
26
+ | -------- | --------------------------------- | - |
27
+ | children | [Children](../../types/children/) | |
28
+ | refkey | [Refkey](../../types/refkey/) | |
@@ -0,0 +1,83 @@
1
+ # Scope
2
+
3
+ Declare a scope for this component’s children. Any symbols and scopes declared in the children of this component will be in this scope.
4
+
5
+ ## Overload 1
6
+
7
+ Declare a scope by providing an already created scope. The scope is merely exposed via [Scope context](../../contexts/scope-context/).
8
+
9
+ * jsx
10
+
11
+ ```tsx
12
+ import { Scope } from "@alloy-js/core";
13
+
14
+
15
+ <Scope value={OutputScope}>
16
+ {children}
17
+ </Scope>
18
+ ```
19
+
20
+ * stc
21
+
22
+ ```ts
23
+ import { Scope } from "@alloy-js/core/stc";
24
+
25
+
26
+ Scope({ value: OutputScope }).children(children)
27
+ ```
28
+
29
+ ### Props
30
+
31
+ | | | |
32
+ | -------- | ------------------------------------------ | --------------------------------------------------------------- |
33
+ | children | optional [Children](../../types/children/) | |
34
+ | value | [OutputScope](../../types/outputscope/) | The scope to use. If not provided, a new scope will be created. |
35
+
36
+ ## Overload 2
37
+
38
+ Create a scope by providing a name and optional metadata.
39
+
40
+ * jsx
41
+
42
+ ```tsx
43
+ import { Scope } from "@alloy-js/core";
44
+
45
+
46
+ <Scope
47
+ metadata={Record<string, unknown>}
48
+ name="string"
49
+ ownerSymbol={OutputSymbol}
50
+ >
51
+ {children}
52
+ </Scope>
53
+ ```
54
+
55
+ * stc
56
+
57
+ ```ts
58
+ import { Scope } from "@alloy-js/core/stc";
59
+
60
+
61
+ Scope({
62
+ metadata: Record<string, unknown>,
63
+ name: string,
64
+ ownerSymbol: OutputSymbol,
65
+ }).children(children)
66
+ ```
67
+
68
+ ### Props
69
+
70
+ | | | |
71
+ | ----------- | -------------------------------------------------- | --------------------------------------------------------------------------- |
72
+ | children | optional [Children](../../types/children/) | |
73
+ | metadata | optional Record\<string, unknown> | Additional metadata for the scope. |
74
+ | name | optional string | The name of this scope. |
75
+ | ownerSymbol | optional [OutputSymbol](../../types/outputsymbol/) | Create a member scope with the owner symbol providing the in-scope symbols. |
76
+
77
+ ## Remarks
78
+
79
+ When called with `name` (without `value`), this creates a [`BasicScope`](../types/BasicScope.md). The parent scope must also be a [`BasicScope`](../types/BasicScope.md); for custom scope types, create your scope and pass it via the `value` prop instead.
80
+
81
+ ## See also
82
+
83
+ * [Scope context](../../contexts/scope-context/)
@@ -0,0 +1,32 @@
1
+ # Show
2
+
3
+ * jsx
4
+
5
+ ```tsx
6
+ import { Show } from "@alloy-js/core";
7
+
8
+
9
+ <Show fallback={Children} when={boolean | undefined | null}>
10
+ {children}
11
+ </Show>
12
+ ```
13
+
14
+ * stc
15
+
16
+ ```ts
17
+ import { Show } from "@alloy-js/core/stc";
18
+
19
+
20
+ Show({
21
+ fallback: Children,
22
+ when: boolean | undefined | null,
23
+ }).children(children)
24
+ ```
25
+
26
+ ## Props
27
+
28
+ | | | |
29
+ | -------- | ------------------------------------------ | - |
30
+ | children | [Children](../../types/children/) | |
31
+ | fallback | optional [Children](../../types/children/) | |
32
+ | when | boolean \| undefined \| null | |
@@ -0,0 +1,28 @@
1
+ # SourceDirectory
2
+
3
+ * jsx
4
+
5
+ ```tsx
6
+ import { SourceDirectory } from "@alloy-js/core";
7
+
8
+
9
+ <SourceDirectory path="string">
10
+ {children}
11
+ </SourceDirectory>
12
+ ```
13
+
14
+ * stc
15
+
16
+ ```ts
17
+ import { SourceDirectory } from "@alloy-js/core/stc";
18
+
19
+
20
+ SourceDirectory({ path: string }).children(children)
21
+ ```
22
+
23
+ ## Props
24
+
25
+ | | | |
26
+ | -------- | ------------------------------------------ | - |
27
+ | children | optional [Children](../../types/children/) | |
28
+ | path | string | |
@@ -0,0 +1,60 @@
1
+ # SourceFile
2
+
3
+ * jsx
4
+
5
+ ```tsx
6
+ import { SourceFile } from "@alloy-js/core";
7
+
8
+
9
+ <SourceFile
10
+ filetype="string"
11
+ header={Children}
12
+ insertFinalNewLine
13
+ noFlush
14
+ path="string"
15
+ printWidth={number}
16
+ reference={ComponentDefinition<{
17
+ refkey: Refkey;
18
+ }>}
19
+ tabWidth={number}
20
+ useTabs
21
+ >
22
+ {children}
23
+ </SourceFile>
24
+ ```
25
+
26
+ * stc
27
+
28
+ ```ts
29
+ import { SourceFile } from "@alloy-js/core/stc";
30
+
31
+
32
+ SourceFile({
33
+ filetype: string,
34
+ header: Children,
35
+ insertFinalNewLine: boolean,
36
+ noFlush: boolean,
37
+ path: string,
38
+ printWidth: number,
39
+ reference: ComponentDefinition<{
40
+ refkey: Refkey;
41
+ }>,
42
+ tabWidth: number,
43
+ useTabs: boolean,
44
+ }).children(children)
45
+ ```
46
+
47
+ ## Props
48
+
49
+ | | | |
50
+ | ------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
51
+ | children | optional [Children](../../types/children/) | |
52
+ | filetype | string | The type of contents in this file. This is a metadata hint only. It does not trigger formatting or content processing. The value is forwarded to debug tooling and the [`ContentOutputFile`](../types/ContentOutputFile.md) output metadata. |
53
+ | header | optional [Children](../../types/children/) | Content rendered before the file body, separated from it by a hard line break. The separator is emitted whenever `header` is not `undefined` — including when it is an empty string or a component that renders nothing. To suppress both the header and the separator, omit this prop entirely. |
54
+ | insertFinalNewLine | optional boolean | If files should end with a final new line. |
55
+ | noFlush | optional boolean | Skip flushing scheduled jobs before printing. |
56
+ | path | string | The path of this file relative to its parent directory |
57
+ | printWidth | optional number | The number of characters the printer will wrap on. Defaults to 100 characters. |
58
+ | reference | optional [ComponentDefinition](../../types/componentdefinition/)<{ refkey: [Refkey](../../types/refkey/); }> | The component to use to render refkeys references within the file’s contents. |
59
+ | tabWidth | optional number | The number of spaces to use for indentation. Defaults to 2 spaces. |
60
+ | useTabs | optional boolean | Whether to use tabs instead of spaces for indentation. Defaults to false. |
@@ -0,0 +1,29 @@
1
+ # StatementList
2
+
3
+ Join child elements with semicolons and hardlines.
4
+
5
+ * jsx
6
+
7
+ ```tsx
8
+ import { StatementList } from "@alloy-js/core";
9
+
10
+
11
+ <StatementList >
12
+ {children}
13
+ </StatementList>
14
+ ```
15
+
16
+ * stc
17
+
18
+ ```ts
19
+ import { StatementList } from "@alloy-js/core/stc";
20
+
21
+
22
+ StatementList({ }).children(children)
23
+ ```
24
+
25
+ ## Props
26
+
27
+ | | | |
28
+ | -------- | --------------------------------- | - |
29
+ | children | [Children](../../types/children/) | |
@@ -0,0 +1,42 @@
1
+ # Switch
2
+
3
+ Conditionally render blocks of content based on the `when` prop of nested [Match](../../variables/match/) components.
4
+
5
+ * jsx
6
+
7
+ ```tsx
8
+ import { Switch } from "@alloy-js/core";
9
+
10
+
11
+ <Switch >
12
+ {children}
13
+ </Switch>
14
+ ```
15
+
16
+ * stc
17
+
18
+ ```ts
19
+ import { Switch } from "@alloy-js/core/stc";
20
+
21
+
22
+ Switch({ }).children(children)
23
+ ```
24
+
25
+ ## Props
26
+
27
+ | | | |
28
+ | -------- | --------------------------------- | - |
29
+ | children | [Children](../../types/children/) | |
30
+
31
+ ## Example
32
+
33
+ ```tsx
34
+ <Switch>
35
+ <Match when={someCondition}>
36
+ <div>Condition met!</div>
37
+ </Match>
38
+ <Match else>
39
+ <div>Condition not met!</div>
40
+ </Match>
41
+ </Switch>
42
+ ```
@@ -0,0 +1,71 @@
1
+ # TemplateFile
2
+
3
+ A component that reads a template file and replaces variable placeholders with actual values.
4
+
5
+ Template files can contain variable placeholders in the format `{{ variable_name }}` which will be replaced with values from [`TemplateVariable`](TemplateVariable.md) children components. Whitespace around variable names is ignored, so `{{ name }}`, `{{name}}`, and `{{ name }}` are all equivalent.
6
+
7
+ * jsx
8
+
9
+ ```tsx
10
+ import { TemplateFile } from "@alloy-js/core";
11
+
12
+
13
+ <TemplateFile path="string" src="string">
14
+ {children}
15
+ </TemplateFile>
16
+ ```
17
+
18
+ * stc
19
+
20
+ ```ts
21
+ import { TemplateFile } from "@alloy-js/core/stc";
22
+
23
+
24
+ TemplateFile({ path: string, src: string }).children(children)
25
+ ```
26
+
27
+ ## Props
28
+
29
+ | | | |
30
+ | -------- | ------------------------------------------ | ------------------------------------------- |
31
+ | children | optional [Children](../../types/children/) | Template variable children components. |
32
+ | path | string | The path to write the compiled template to. |
33
+ | src | string | The file path of the template. |
34
+
35
+ ## Examples
36
+
37
+ Basic usage with template variables:
38
+
39
+ ```tsx
40
+ // Template file content (greeting.txt):
41
+ // "Hello {{ name }}! You are {{ age }} years old."
42
+
43
+ <TemplateFile src="greeting.txt" path="output.txt">
44
+ <TemplateVariable name="name" value="John" />
45
+ <TemplateVariable name="age" value="25" />
46
+ </TemplateFile>
47
+ ```
48
+
49
+ Using children instead of value prop:
50
+
51
+ ```tsx
52
+ // Template file content (welcome.txt):
53
+ // "Welcome {{ greeting }}!"
54
+
55
+ <TemplateFile src="welcome.txt" path="output.txt">
56
+ <TemplateVariable name="greeting">Hello World</TemplateVariable>
57
+ </TemplateFile>
58
+ ```
59
+
60
+ Complex template with multiple variables:
61
+
62
+ ```tsx
63
+ // Template file content (profile.txt):
64
+ // "Name: {{ name }}\nAge: {{ age }}\nLocation: {{ location }}"
65
+
66
+ <TemplateFile src="profile.txt" path="profile-output.txt">
67
+ <TemplateVariable name="name" value="Alice" />
68
+ <TemplateVariable name="age">30</TemplateVariable>
69
+ <TemplateVariable name="location" value="New York" />
70
+ </TemplateFile>
71
+ ```
@@ -0,0 +1,57 @@
1
+ # TemplateVariable
2
+
3
+ ## Overload 1
4
+
5
+ * jsx
6
+
7
+ ```tsx
8
+ import { TemplateVariable } from "@alloy-js/core";
9
+
10
+
11
+ <TemplateVariable name="string">
12
+ {children}
13
+ </TemplateVariable>
14
+ ```
15
+
16
+ * stc
17
+
18
+ ```ts
19
+ import { TemplateVariable } from "@alloy-js/core/stc";
20
+
21
+
22
+ TemplateVariable({ name: string }).children(children)
23
+ ```
24
+
25
+ ### Props
26
+
27
+ | | | |
28
+ | -------- | --------------------------------- | -------------------------- |
29
+ | children | [Children](../../types/children/) | The value of the variable. |
30
+ | name | string | The name of the variable. |
31
+
32
+ ## Overload 2
33
+
34
+ * jsx
35
+
36
+ ```tsx
37
+ import { TemplateVariable } from "@alloy-js/core";
38
+
39
+
40
+ <TemplateVariable name="string" value="string" />
41
+ ```
42
+
43
+ * stc
44
+
45
+ ```ts
46
+ import { TemplateVariable } from "@alloy-js/core/stc";
47
+
48
+
49
+ TemplateVariable({ name: string, value: string }).children(children)
50
+ ```
51
+
52
+ ### Props
53
+
54
+ | | | |
55
+ | ----- | ------ | -------------------------- |
56
+ | name | string | The name of the variable. |
57
+ | value | string | The value of the variable. |
@@ -0,0 +1,56 @@
1
+ # UpdateFile
2
+
3
+ A component for updating existing files or initializing new files.
4
+
5
+ This component allows you to read the current contents of a file and generate new content based on those contents. If the file doesn’t exist, it can use default content from either a file path or inline content.
6
+
7
+ Props for the UpdateFile component.
8
+
9
+ * jsx
10
+
11
+ ```tsx
12
+ import { UpdateFile } from "@alloy-js/core";
13
+
14
+
15
+ <UpdateFile
16
+ defaultContent={Children}
17
+ defaultContentPath="string"
18
+ path="string"
19
+ >
20
+ {children}
21
+ </UpdateFile>
22
+ ```
23
+
24
+ * stc
25
+
26
+ ```ts
27
+ import { UpdateFile } from "@alloy-js/core/stc";
28
+
29
+
30
+ UpdateFile({
31
+ defaultContent: Children,
32
+ defaultContentPath: string,
33
+ path: string,
34
+ }).children(children)
35
+ ```
36
+
37
+ ## Props
38
+
39
+ | | | |
40
+ | ------------------ | ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
41
+ | children | (currentContents: string \| null) => [Children](../../types/children/) | Function that receives the current file contents and returns the new content |
42
+ | defaultContent | optional [Children](../../types/children/) | Optional default content to use when the target file doesn’t exist |
43
+ | defaultContentPath | optional string | Optional path to a file containing default content to use when the target file doesn’t exist |
44
+ | path | string | The relative path to the file to update or create |
45
+
46
+ ## Example
47
+
48
+ ```tsx
49
+ <UpdateFile path="config.json" defaultContent="{}">
50
+ {(currentContents) => {
51
+ const config = currentContents ? JSON.parse(currentContents) : {};
52
+ config.newProperty = "value";
53
+ return JSON.stringify(config, null, 2);
54
+ }}
55
+ </UpdateFile>
56
+ ```
@@ -0,0 +1,40 @@
1
+ # Wrap
2
+
3
+ Conditionally wrap the children of this component with the component given to `with` and passing `props` to it.
4
+
5
+ * jsx
6
+
7
+ ```tsx
8
+ import { Wrap } from "@alloy-js/core";
9
+
10
+
11
+ <Wrap
12
+ props={Omit<TProps, "children">}
13
+ when
14
+ with={ComponentDefinition<TProps>}
15
+ >
16
+ {children}
17
+ </Wrap>
18
+ ```
19
+
20
+ * stc
21
+
22
+ ```ts
23
+ import { Wrap } from "@alloy-js/core/stc";
24
+
25
+
26
+ Wrap({
27
+ props: Omit<TProps, "children">,
28
+ when: boolean,
29
+ with: ComponentDefinition<TProps>,
30
+ }).children(children)
31
+ ```
32
+
33
+ ## Props
34
+
35
+ | | | |
36
+ | -------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
37
+ | children | [Children](../../types/children/) | Children to be wrapped. |
38
+ | props | optional Omit\<TProps, “children”> | Props to pass to the wrapper component. |
39
+ | when | boolean | When true, the children will be wrapped with the provided component. Otherwise, the children will be rendered as is. |
40
+ | with | [ComponentDefinition](../../types/componentdefinition/)\<TProps> | Component to be used for wrapping. |