@alloy-js/core 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/babel.config.cjs +4 -1
  3. package/dist/src/binder.d.ts +20 -13
  4. package/dist/src/binder.d.ts.map +1 -1
  5. package/dist/src/binder.js +33 -15
  6. package/dist/src/binder.js.map +1 -1
  7. package/dist/src/code.d.ts +2 -2
  8. package/dist/src/code.d.ts.map +1 -1
  9. package/dist/src/code.js +4 -4
  10. package/dist/src/code.js.map +1 -1
  11. package/dist/src/components/Block.d.ts +25 -0
  12. package/dist/src/components/Block.d.ts.map +1 -0
  13. package/dist/src/components/Block.js +25 -0
  14. package/dist/src/components/Block.js.map +1 -0
  15. package/dist/src/components/Declaration.d.ts +1 -1
  16. package/dist/src/components/Declaration.d.ts.map +1 -1
  17. package/dist/src/components/Declaration.js +4 -0
  18. package/dist/src/components/Declaration.js.map +1 -1
  19. package/dist/src/components/For.d.ts +44 -0
  20. package/dist/src/components/For.d.ts.map +1 -0
  21. package/dist/src/components/For.js +41 -0
  22. package/dist/src/components/For.js.map +1 -0
  23. package/dist/src/components/Indent.d.ts +6 -10
  24. package/dist/src/components/Indent.d.ts.map +1 -1
  25. package/dist/src/components/Indent.js +7 -18
  26. package/dist/src/components/Indent.js.map +1 -1
  27. package/dist/src/components/List.d.ts +38 -0
  28. package/dist/src/components/List.d.ts.map +1 -0
  29. package/dist/src/components/List.js +40 -0
  30. package/dist/src/components/List.js.map +1 -0
  31. package/dist/src/components/MemberDeclaration.d.ts +1 -1
  32. package/dist/src/components/MemberDeclaration.d.ts.map +1 -1
  33. package/dist/src/components/MemberDeclaration.js.map +1 -1
  34. package/dist/src/components/MemberName.d.ts +1 -1
  35. package/dist/src/components/MemberName.d.ts.map +1 -1
  36. package/dist/src/components/MemberName.js +1 -1
  37. package/dist/src/components/MemberName.js.map +1 -1
  38. package/dist/src/components/MemberScope.d.ts +1 -1
  39. package/dist/src/components/MemberScope.d.ts.map +1 -1
  40. package/dist/src/components/MemberScope.js.map +1 -1
  41. package/dist/src/components/Name.d.ts +1 -1
  42. package/dist/src/components/Name.d.ts.map +1 -1
  43. package/dist/src/components/Name.js +1 -1
  44. package/dist/src/components/Name.js.map +1 -1
  45. package/dist/src/components/Output.d.ts +3 -2
  46. package/dist/src/components/Output.d.ts.map +1 -1
  47. package/dist/src/components/Output.js +12 -2
  48. package/dist/src/components/Output.js.map +1 -1
  49. package/dist/src/components/Scope.d.ts +1 -1
  50. package/dist/src/components/Scope.d.ts.map +1 -1
  51. package/dist/src/components/Scope.js.map +1 -1
  52. package/dist/src/components/Show.d.ts +8 -0
  53. package/dist/src/components/Show.d.ts.map +1 -0
  54. package/dist/src/components/Show.js +4 -0
  55. package/dist/src/components/Show.js.map +1 -0
  56. package/dist/src/components/SourceDirectory.d.ts +2 -2
  57. package/dist/src/components/SourceDirectory.d.ts.map +1 -1
  58. package/dist/src/components/SourceDirectory.js +1 -0
  59. package/dist/src/components/SourceDirectory.js.map +1 -1
  60. package/dist/src/components/SourceFile.d.ts +4 -8
  61. package/dist/src/components/SourceFile.d.ts.map +1 -1
  62. package/dist/src/components/SourceFile.js +6 -13
  63. package/dist/src/components/SourceFile.js.map +1 -1
  64. package/dist/src/components/StatementList.d.ts +9 -0
  65. package/dist/src/components/StatementList.d.ts.map +1 -0
  66. package/dist/src/components/StatementList.js +17 -0
  67. package/dist/src/components/StatementList.js.map +1 -0
  68. package/dist/src/components/Switch.d.ts +41 -0
  69. package/dist/src/components/Switch.d.ts.map +1 -0
  70. package/dist/src/components/Switch.js +41 -0
  71. package/dist/src/components/Switch.js.map +1 -0
  72. package/dist/src/components/Wrap.d.ts +20 -0
  73. package/dist/src/components/Wrap.d.ts.map +1 -0
  74. package/dist/src/components/Wrap.js +15 -0
  75. package/dist/src/components/Wrap.js.map +1 -0
  76. package/dist/src/components/index.d.ts +8 -1
  77. package/dist/src/components/index.d.ts.map +1 -1
  78. package/dist/src/components/index.js +7 -0
  79. package/dist/src/components/index.js.map +1 -1
  80. package/dist/src/components/stc/index.d.ts +89 -18
  81. package/dist/src/components/stc/index.d.ts.map +1 -1
  82. package/dist/src/components/stc/index.js +17 -1
  83. package/dist/src/components/stc/index.js.map +1 -1
  84. package/dist/src/context/index.d.ts +0 -1
  85. package/dist/src/context/index.d.ts.map +1 -1
  86. package/dist/src/context/index.js +0 -1
  87. package/dist/src/context/index.js.map +1 -1
  88. package/dist/src/context/member-declaration.d.ts +1 -0
  89. package/dist/src/context/member-declaration.d.ts.map +1 -1
  90. package/dist/src/context/member-declaration.js +4 -1
  91. package/dist/src/context/member-declaration.js.map +1 -1
  92. package/dist/src/context.d.ts.map +1 -1
  93. package/dist/src/context.js +3 -3
  94. package/dist/src/context.js.map +1 -1
  95. package/dist/src/index.browser.d.ts +3 -0
  96. package/dist/src/index.browser.d.ts.map +1 -0
  97. package/dist/src/index.browser.js +3 -0
  98. package/dist/src/index.browser.js.map +1 -0
  99. package/dist/src/index.d.ts +2 -0
  100. package/dist/src/index.d.ts.map +1 -1
  101. package/dist/src/index.js +2 -0
  102. package/dist/src/index.js.map +1 -1
  103. package/dist/src/jsx-runtime.d.ts +151 -7
  104. package/dist/src/jsx-runtime.d.ts.map +1 -1
  105. package/dist/src/jsx-runtime.js +113 -12
  106. package/dist/src/jsx-runtime.js.map +1 -1
  107. package/dist/src/render.d.ts +107 -132
  108. package/dist/src/render.d.ts.map +1 -1
  109. package/dist/src/render.js +272 -178
  110. package/dist/src/render.js.map +1 -1
  111. package/dist/src/stc.d.ts +14 -0
  112. package/dist/src/stc.d.ts.map +1 -0
  113. package/dist/src/stc.js +52 -0
  114. package/dist/src/stc.js.map +1 -0
  115. package/dist/src/tap.d.ts +19 -0
  116. package/dist/src/tap.d.ts.map +1 -0
  117. package/dist/src/tap.js +39 -0
  118. package/dist/src/tap.js.map +1 -0
  119. package/dist/src/utils.d.ts +22 -15
  120. package/dist/src/utils.d.ts.map +1 -1
  121. package/dist/src/utils.js +95 -59
  122. package/dist/src/utils.js.map +1 -1
  123. package/dist/test/browser-build.test.d.ts +2 -0
  124. package/dist/test/browser-build.test.d.ts.map +1 -0
  125. package/dist/test/components/block.test.d.ts +2 -0
  126. package/dist/test/components/block.test.d.ts.map +1 -0
  127. package/dist/test/components/declaration.test.d.ts +2 -0
  128. package/dist/test/components/declaration.test.d.ts.map +1 -0
  129. package/dist/test/components/list.test.d.ts +2 -0
  130. package/dist/test/components/list.test.d.ts.map +1 -0
  131. package/dist/test/components/wrap.test.d.ts +2 -0
  132. package/dist/test/components/wrap.test.d.ts.map +1 -0
  133. package/dist/test/control-flow/for.test.d.ts +2 -0
  134. package/dist/test/control-flow/for.test.d.ts.map +1 -0
  135. package/dist/test/control-flow/match.test.d.ts +2 -0
  136. package/dist/test/control-flow/match.test.d.ts.map +1 -0
  137. package/dist/test/control-flow/show.test.d.ts +2 -0
  138. package/dist/test/control-flow/show.test.d.ts.map +1 -0
  139. package/dist/test/reactivity/cleanup.test.d.ts +2 -0
  140. package/dist/test/reactivity/cleanup.test.d.ts.map +1 -0
  141. package/dist/test/reactivity/memo.test.d.ts +2 -0
  142. package/dist/test/reactivity/memo.test.d.ts.map +1 -0
  143. package/dist/test/reactivity/untrack.test.d.ts +2 -0
  144. package/dist/test/reactivity/untrack.test.d.ts.map +1 -0
  145. package/dist/test/rendering/formatting.test.d.ts +2 -0
  146. package/dist/test/rendering/formatting.test.d.ts.map +1 -0
  147. package/dist/test/rendering/memoization.test.d.ts +2 -0
  148. package/dist/test/rendering/memoization.test.d.ts.map +1 -0
  149. package/dist/test/split-props.test.d.ts +2 -0
  150. package/dist/test/split-props.test.d.ts.map +1 -0
  151. package/dist/test/stc.test.d.ts.map +1 -1
  152. package/dist/test/utils.test.d.ts.map +1 -1
  153. package/dist/testing/extend-expect.js +4 -4
  154. package/dist/testing/extend-expect.js.map +1 -1
  155. package/dist/testing/render.d.ts +2 -3
  156. package/dist/testing/render.d.ts.map +1 -1
  157. package/dist/testing/render.js +2 -4
  158. package/dist/testing/render.js.map +1 -1
  159. package/dist/tsconfig.tsbuildinfo +1 -1
  160. package/package.json +8 -9
  161. package/src/binder.ts +60 -50
  162. package/src/code.ts +17 -12
  163. package/src/components/Block.tsx +44 -0
  164. package/src/components/Declaration.tsx +10 -4
  165. package/src/components/For.tsx +81 -0
  166. package/src/components/Indent.tsx +20 -27
  167. package/src/components/List.tsx +94 -0
  168. package/src/components/MemberDeclaration.tsx +9 -6
  169. package/src/components/MemberScope.tsx +4 -2
  170. package/src/components/Output.tsx +27 -14
  171. package/src/components/Scope.tsx +4 -2
  172. package/src/components/Show.tsx +11 -0
  173. package/src/components/SourceDirectory.tsx +6 -2
  174. package/src/components/SourceFile.tsx +13 -17
  175. package/src/components/StatementList.tsx +16 -0
  176. package/src/components/Switch.tsx +62 -0
  177. package/src/components/Wrap.tsx +29 -0
  178. package/src/components/index.tsx +8 -1
  179. package/src/components/stc/index.ts +18 -1
  180. package/src/context/index.ts +0 -1
  181. package/src/context/member-declaration.ts +9 -1
  182. package/src/context.ts +2 -3
  183. package/src/index.browser.ts +2 -0
  184. package/src/index.ts +2 -0
  185. package/src/jsx-runtime.ts +265 -23
  186. package/src/render.ts +382 -200
  187. package/src/stc.ts +95 -0
  188. package/src/tap.ts +69 -0
  189. package/src/utils.ts +162 -95
  190. package/temp/api.json +8042 -1886
  191. package/test/browser-build.test.ts +91 -0
  192. package/test/children.test.tsx +8 -10
  193. package/test/components/block.test.tsx +48 -0
  194. package/test/components/declaration.test.tsx +37 -0
  195. package/test/components/list.test.tsx +91 -0
  196. package/test/components/slot.test.tsx +31 -25
  197. package/test/components/source-file.test.tsx +11 -31
  198. package/test/components/wrap.test.tsx +42 -0
  199. package/test/control-flow/for.test.tsx +194 -0
  200. package/test/control-flow/match.test.tsx +49 -0
  201. package/test/control-flow/show.test.tsx +25 -0
  202. package/test/name-policy.test.tsx +5 -5
  203. package/test/reactivity/cleanup.test.tsx +91 -0
  204. package/test/reactivity/memo.test.tsx +17 -0
  205. package/test/reactivity/ref-rendering.test.tsx +3 -8
  206. package/test/reactivity/test.test.tsx +7 -6
  207. package/test/reactivity/untrack.test.ts +33 -0
  208. package/test/rendering/basic.test.tsx +25 -47
  209. package/test/rendering/code.test.tsx +3 -3
  210. package/test/rendering/formatting.test.tsx +487 -0
  211. package/test/rendering/indent.test.tsx +42 -529
  212. package/test/rendering/memoization.test.tsx +30 -0
  213. package/test/split-props.test.ts +87 -0
  214. package/test/stc.test.tsx +29 -8
  215. package/test/symbols.test.ts +132 -3
  216. package/test/utils.test.tsx +129 -20
  217. package/testing/extend-expect.ts +14 -4
  218. package/testing/render.ts +2 -4
  219. package/testing/vitest.d.ts +6 -1
  220. package/vitest.config.ts +1 -1
  221. package/dist/src/context/indent.d.ts +0 -5
  222. package/dist/src/context/indent.d.ts.map +0 -1
  223. package/dist/src/context/indent.js +0 -8
  224. package/dist/src/context/indent.js.map +0 -1
  225. package/dist/test/rendering/linebreaks.test.d.ts +0 -2
  226. package/dist/test/rendering/linebreaks.test.d.ts.map +0 -1
  227. package/src/context/indent.ts +0 -17
  228. package/test/rendering/linebreaks.test.tsx +0 -72
package/CHANGELOG.md CHANGED
@@ -1,5 +1,58 @@
1
1
  # Changelog - @alloy-js/core
2
2
 
3
+ ## 0.6.0
4
+
5
+ ### Bug Fixes
6
+
7
+ - [#54](https://github.com/alloy-framework/alloy/pull/54) Fix browser mappings
8
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Export missing STC components.
9
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Properly handle reactive updates in the children of a context Provider.
10
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Fix cleanup of root contexts when cleanup is invoked from another context.
11
+
12
+ ### Features
13
+
14
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added a List component which renders its immediate children with configurable joiner and ender text.
15
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added StatementList component for rendering lists of statements separated by semicolons and newlines.
16
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) The For component can now take a memo for its `each` prop.
17
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) The For component now takes various list-related boolean props for controlling the joiner and ender text.
18
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) The Indent component no longer includes a trailing line break by default in order to allow subsequent blocks to set their own indent level. The old behavior can be had by passing the `trailingBreak` boolean prop.
19
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) The Indent component can now configure its line break style (soft, hard, literal, or line).
20
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added support for the various formatting intrinsic elements.
21
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added `splitProps` utility which can split props into two or more separate props objects while handling reactivity. Useful to pass subsets of props to child components.
22
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) The various rendering and printing APIs now take print options `tabWidth`, `useTabs`, and `printWidth` to control formatting behavior.
23
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added `sti` function to create a wrapper around an intrinsic element similar to how `stc` works for components.
24
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) `mapJoin` can now be given `Children` for its joiner and ender props.
25
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) `children` and `childrenArray` now have a `preserveFragments` option which doesn't flatten fragments, allowing components like `List` to treat fragments as list items.
26
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added Block component for rendering an indented block with configurable opening text, closing text, and line breaks.
27
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added Show component for conditionally rendering child components. Similar to using the `&&` pattern but can be easier to read in some cases.
28
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added Wrap component for conditionally wrapping its children in another component.
29
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Add `For` component to iterate over a provided array and render a component for each element.
30
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Add `Switch` component to conditionally render content.
31
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Add support to the binder for deleting symbols.
32
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) The `Declaration` component will now delete its symbol when its removed from the tree.
33
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Don't re-render unchanged elements when doing reactive updates.
34
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Add `createCustomContext` to allow establishing a custom reactive context during render.
35
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Add `findKeyedChildren` which finds multiple children with the given key.
36
+
37
+ ### Breaking Changes
38
+
39
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) The Output component no longer takes an `indent` prop. Instead, provide `tabWidth`, `useTabs`, and `printWidth` to control indentation behavior.
40
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) The SourceFile component no longer takes an `indent` prop. Instead, provide `tabWidth, `useTabs`, and `printWidth` to control indentation behavior.
41
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) IndentContext has been removed. The rendering process no longer requires this information, indentation is handled during printing.
42
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Tightened the types of `Child` and `Children`. `Child` can no longer be an array of itself.
43
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added support for formatting primitives to produce formatted output. This includes elements like `group` and `fill` for attempting to fit text on a single line, `hbr`, `sbr`, `lbr`, and `br` for introducing line breaks, `align` for padding output, and more. All the built-in components have been updated to generate nicely formatted code.
44
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) `mapJoin` now properly handles reactive sources. To support this, the array source must be wrapped in a callback. For example, `mapJoin(someArray, ...)` needs to be updated to `mapJoin(() => someArray, ...)`. The return value of `mapJoin` is now a memo rather than an array.
45
+
46
+
47
+ ## 0.5.0
48
+
49
+ ### Features
50
+
51
+ - [#50](https://github.com/alloy-framework/alloy/pull/50) Add support for adding refkeys to symbols after symbol creation.
52
+ - [#50](https://github.com/alloy-framework/alloy/pull/50) Improve types of JSX elements so typescript and editors can provide accurate errors when providing props to components. For example, component props can be unions of props interfaces, enabling an overload-like pattern.
53
+ - [#50](https://github.com/alloy-framework/alloy/pull/50) Add Tappers, which allow getting a reference to contexts provided by nested components from a parent component. Useful for allowing nested components to create things like symbols when the parent component merely needs access to it but doesn't care how its created.
54
+
55
+
3
56
  ## 0.4.0
4
57
 
5
58
  ### Features
package/babel.config.cjs CHANGED
@@ -1,4 +1,7 @@
1
1
  module.exports = {
2
2
  sourceMaps: true,
3
- presets: ["@babel/preset-typescript", "@alloy-js/babel-preset"],
3
+ presets: [
4
+ "@babel/preset-typescript",
5
+ ["@alloy-js/babel-preset"],
6
+ ],
4
7
  };
@@ -182,6 +182,19 @@ export interface OutputScope {
182
182
  */
183
183
  getSymbolNames(): Set<string>;
184
184
  }
185
+ export type CreateSymbolOptions<T extends OutputSymbol = OutputSymbol> = {
186
+ name: string;
187
+ scope?: OutputScope;
188
+ refkey?: Refkey;
189
+ flags?: OutputSymbolFlags;
190
+ } & Omit<T, keyof OutputSymbol>;
191
+ export type CreateScopeOptions<T extends OutputScope = OutputScope> = {
192
+ kind: T["kind"];
193
+ name: string;
194
+ parent?: OutputScope | undefined;
195
+ flags?: OutputScopeFlags;
196
+ owner?: OutputSymbol;
197
+ } & Omit<T, keyof OutputScope>;
185
198
  /**
186
199
  * The binder tracks all output scopes and symbols. Scopes are nested containers
187
200
  * for symbols.
@@ -200,23 +213,17 @@ export interface Binder {
200
213
  * Create a new scope. The scope will be added to the parent scope's children.
201
214
  * The returned scope object is reactive.
202
215
  */
203
- createScope<T extends OutputScope>(args: {
204
- kind: T["kind"];
205
- name: string;
206
- parent?: OutputScope | undefined;
207
- flags?: OutputScopeFlags;
208
- owner?: OutputSymbol;
209
- } & Omit<T, keyof OutputScope>): T;
216
+ createScope<T extends OutputScope>(args: CreateScopeOptions<T>): T;
210
217
  /**
211
218
  * Create a new symbol. The symbol will be added to the parent scope's symbols.
212
219
  * The returned symbol object is reactive.
213
220
  */
214
- createSymbol<T extends OutputSymbol>(args: {
215
- name: string;
216
- scope?: OutputScope;
217
- refkey?: unknown;
218
- flags?: OutputSymbolFlags;
219
- } & Omit<T, keyof OutputSymbol>): T;
221
+ createSymbol<T extends OutputSymbol>(args: CreateSymbolOptions<T>): T;
222
+ /**
223
+ * Delete the given symbol. The symbol will be removed from its parent's
224
+ * scope. Any resolutions to this symbol will become undefined.
225
+ */
226
+ deleteSymbol(symbol: OutputSymbol): void;
220
227
  /**
221
228
  * Instantiate the static members of a symbol into the instance members of
222
229
  * another symbol.
@@ -1 +1 @@
1
- {"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../src/binder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../src/binder.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { computed, effect, reactive, ref, shallowRef } from "@vue/reactivity";
2
+ import { useBinder } from "./context/binder.js";
2
3
  import { useMemberScope } from "./context/member-scope.js";
3
4
  import { useScope } from "./context/scope.js";
4
5
  import { memo, untrack } from "./jsx-runtime.js";
@@ -114,6 +115,7 @@ export function createOutputBinder(options = {}) {
114
115
  const binder = {
115
116
  createScope,
116
117
  createSymbol,
118
+ deleteSymbol,
117
119
  resolveDeclarationByKey,
118
120
  addStaticMembersToSymbol,
119
121
  addInstanceMembersToSymbol,
@@ -241,9 +243,18 @@ export function createOutputBinder(options = {}) {
241
243
  scope.symbols.add(symbol);
242
244
  scope.symbolsByRefkey.set(symbol.refkey, symbol);
243
245
  deconflict(symbol);
244
- notifyRefkey(refkey, symbol);
246
+ notifyRefkey(symbol);
245
247
  return symbol;
246
248
  }
249
+ function deleteSymbol(symbol) {
250
+ symbol.scope.symbols.delete(symbol);
251
+ if (!refkey) {
252
+ return;
253
+ }
254
+ const resolution = waitingDeclarations.get(symbol.refkey);
255
+ if (!resolution) return;
256
+ resolution.value = undefined;
257
+ }
247
258
  function instantiateSymbolInto(source, target) {
248
259
  if (~source.flags & OutputSymbolFlags.InstanceMemberContainer) {
249
260
  throw new Error("Can only instantiate symbols with instance members");
@@ -391,20 +402,27 @@ export function createOutputBinder(options = {}) {
391
402
  }
392
403
  return computed(() => cb(declSignal.value));
393
404
  }
394
- function notifyRefkey(refkey, symbol) {
395
- if (!refkey) return;
396
- knownDeclarations.set(refkey, symbol);
397
- if (waitingDeclarations.has(refkey)) {
398
- const signal = waitingDeclarations.get(refkey);
399
- signal.value = symbol;
400
- }
401
- const waitingScope = waitingSymbolNames.get(symbol.scope);
402
- if (waitingScope) {
403
- const waitingName = waitingScope.get(symbol.name);
404
- if (waitingName) {
405
- waitingName.value = symbol;
405
+ function notifyRefkey(symbol) {
406
+ effect(() => {
407
+ const refkey = symbol.refkey;
408
+ if (!refkey) return;
409
+
410
+ // notify those waiting for this refkey
411
+ knownDeclarations.set(refkey, symbol);
412
+ if (waitingDeclarations.has(refkey)) {
413
+ const signal = waitingDeclarations.get(refkey);
414
+ signal.value = symbol;
406
415
  }
407
- }
416
+
417
+ // notify those waiting for this symbol name
418
+ const waitingScope = waitingSymbolNames.get(symbol.scope);
419
+ if (waitingScope) {
420
+ const waitingName = waitingScope.get(symbol.name);
421
+ if (waitingName) {
422
+ waitingName.value = symbol;
423
+ }
424
+ }
425
+ });
408
426
  }
409
427
  function findSymbolName(scope, name) {
410
428
  return untrack(() => {
@@ -496,7 +514,7 @@ export function createOutputBinder(options = {}) {
496
514
  * is declared, the ref will be updated with the resolution result.
497
515
  */
498
516
  export function resolve(refkey) {
499
- const scope = useScope();
517
+ const scope = useScope() ?? useBinder().globalScope;
500
518
  const memberScope = useMemberScope();
501
519
  const binder = scope.binder;
502
520
  return binder.resolveDeclarationByKey(scope, memberScope?.instanceMembers, refkey);
@@ -1 +1 @@
1
- {"version":3,"file":"binder.js","names":["computed","effect","reactive","ref","shallowRef","useMemberScope","useScope","memo","untrack","refkey","OutputSymbolFlags","OutputScopeFlags","createOutputBinder","options","binder","createScope","createSymbol","resolveDeclarationByKey","addStaticMembersToSymbol","addInstanceMembersToSymbol","instantiateSymbolInto","findSymbolName","findScopeName","resolveFQN","globalScope","undefined","globalSymbols","Set","kind","name","symbols","symbolsByRefkey","Map","children","parent","flags","None","getSymbolNames","symbolNames","knownDeclarations","waitingDeclarations","waitingSymbolNames","waitingScopeNames","args","owner","rest","MemberScope","Error","parentScope","scope","add","has","waiting","get","value","useDefaultScope","Member","StaticMemberScope","InstanceMember","StaticMember","symbol","originalName","InstanceMemberContainer","instanceMemberScope","InstanceMemberScope","StaticMemberContainer","staticMemberScope","set","deconflict","notifyRefkey","source","target","sym","currentScope","currentMemberScope","key","targetDeclaration","buildResult","waitForRefkey","targetDeclarationBase","pathUp","pathDown","memberPath","commonScope","scopeChain","targetChain","scopeAndMemberChain","currentChain","diffStart","slice","length","at","result","currentSymbol","unshift","startScope","chain","existingNames","filter","nameConflictResolver","i","cb","declSignal","signal","waitingScope","waitingName","symRef","child","scopeRef","findScopeOrSymbolName","fqn","parts","match","base","op","resolve","memberScope","instanceMembers","createSymbolsSymbol","Symbol","getSymbolCreator","creator","getSymbolCreatorSymbol","names","values","staticMembers"],"sources":["../../src/binder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"binder.js","names":["computed","effect","reactive","ref","shallowRef","useBinder","useMemberScope","useScope","memo","untrack","refkey","OutputSymbolFlags","OutputScopeFlags","createOutputBinder","options","binder","createScope","createSymbol","deleteSymbol","resolveDeclarationByKey","addStaticMembersToSymbol","addInstanceMembersToSymbol","instantiateSymbolInto","findSymbolName","findScopeName","resolveFQN","globalScope","undefined","globalSymbols","Set","kind","name","symbols","symbolsByRefkey","Map","children","parent","flags","None","getSymbolNames","symbolNames","knownDeclarations","waitingDeclarations","waitingSymbolNames","waitingScopeNames","args","owner","rest","MemberScope","Error","parentScope","scope","add","has","waiting","get","value","useDefaultScope","Member","StaticMemberScope","InstanceMember","StaticMember","symbol","originalName","InstanceMemberContainer","instanceMemberScope","InstanceMemberScope","StaticMemberContainer","staticMemberScope","set","deconflict","notifyRefkey","delete","resolution","source","target","sym","currentScope","currentMemberScope","key","targetDeclaration","buildResult","waitForRefkey","targetDeclarationBase","pathUp","pathDown","memberPath","commonScope","scopeChain","targetChain","scopeAndMemberChain","currentChain","diffStart","slice","length","at","result","currentSymbol","unshift","startScope","chain","existingNames","filter","nameConflictResolver","i","cb","declSignal","signal","waitingScope","waitingName","symRef","child","scopeRef","findScopeOrSymbolName","fqn","parts","match","base","op","resolve","memberScope","instanceMembers","createSymbolsSymbol","Symbol","getSymbolCreator","creator","getSymbolCreatorSymbol","names","values","staticMembers"],"sources":["../../src/binder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- import { Child } from "@alloy-js/core";
2
- export declare function code(template: TemplateStringsArray, ...substitutions: Child[]): Child[];
1
+ import { Child, Children } from "./jsx-runtime.js";
2
+ export declare function code(template: TemplateStringsArray, ...substitutions: Children[]): Child[];
3
3
  //# sourceMappingURL=code.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/code.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAU,MAAM,gBAAgB,CAAC;AAO/C,wBAAgB,IAAI,CAClB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,KAAK,EAAE,WA6E1B"}
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMnD,wBAAgB,IAAI,CAClB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,WAkF7B"}
package/dist/src/code.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // this code is split into a tokenizer and a parser of sorts because I feel like
2
2
  // it should be psosible to share logic between this and the babel transform, but
3
3
  // this is an exercise for the future.
4
- import { Indent } from "@alloy-js/core";
4
+ import { hbr, indent } from "./components/stc/index.js";
5
5
  export function code(template, ...substitutions) {
6
6
  const indentNodes = [{
7
7
  kind: "indent",
@@ -25,10 +25,11 @@ export function code(template, ...substitutions) {
25
25
  }
26
26
  popIndent();
27
27
  flushLines();
28
+ return childNodesFor(indentNodes[0]);
28
29
  function childNodesFor(indentNode) {
29
30
  return indentNode.children.map(child => {
30
31
  if (typeof child === "object" && child !== null && child.kind === "indent") {
31
- return () => Indent({
32
+ return indent({
32
33
  children: childNodesFor(child)
33
34
  });
34
35
  } else {
@@ -36,7 +37,6 @@ export function code(template, ...substitutions) {
36
37
  }
37
38
  });
38
39
  }
39
- return childNodesFor(indentNodes[0]);
40
40
  function pushIndent() {
41
41
  flushLines();
42
42
  const newIndent = {
@@ -61,7 +61,7 @@ export function code(template, ...substitutions) {
61
61
  }
62
62
  function flushLines() {
63
63
  const currentIndent = indentNodes.at(-1);
64
- currentIndent.children.push(currentIndent.pendingLines.join("\n"));
64
+ currentIndent.children.push(...currentIndent.pendingLines.map((str, index) => index < currentIndent.pendingLines.length - 1 ? [str, hbr()] : [str]).flat());
65
65
  currentIndent.pendingLines = [];
66
66
  }
67
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"code.js","names":["Indent","code","template","substitutions","indentNodes","kind","children","pendingLines","child","childTokens","indentationLevel","length","pushIndent","popIndent","currentIndent","at","push","line","flushLines","value","childNodesFor","indentNode","map","newIndent","times","i","pop","join","newline","indentStack","level","literalIndent","processLiteralString","undefined","pos","lines","split","lineTokens","match","shift","trimStart","lineNum","entries","lineIndent","startIndent"],"sources":["../../src/code.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"code.js","names":["hbr","indent","code","template","substitutions","indentNodes","kind","children","pendingLines","child","childTokens","indentationLevel","length","pushIndent","popIndent","currentIndent","at","push","line","flushLines","value","childNodesFor","indentNode","map","newIndent","times","i","pop","str","index","flat","newline","indentStack","level","literalIndent","processLiteralString","undefined","pos","lines","split","lineTokens","match","shift","trimStart","lineNum","entries","lineIndent","startIndent"],"sources":["../../src/code.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import { Children } from "@alloy-js/core";
2
+ export interface BlockProps {
3
+ /**
4
+ * The opening punctuation of the block. Defaults to "\{".
5
+ */
6
+ opener?: string;
7
+ /**
8
+ * The closing punctuation of the block. Defaults to "\}".
9
+ */
10
+ closer?: string;
11
+ /**
12
+ * Whether the block starts on a new line. When true, a hardline is added
13
+ * prior to the block.
14
+ */
15
+ newline?: boolean;
16
+ /** The block's contents */
17
+ children?: Children;
18
+ }
19
+ /**
20
+ * Create an indented block of source text. The block has `opener` text which is
21
+ * added prior to the block, which defaults to "\{", and `closer` text which is
22
+ * added after the block, which defaults to "\}".
23
+ */
24
+ export declare function Block(props: BlockProps): Children;
25
+ //# sourceMappingURL=Block.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/components/Block.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmC,MAAM,gBAAgB,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,YAetC"}
@@ -0,0 +1,25 @@
1
+ import { createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
3
+ import { memo as _$memo } from "@alloy-js/core/jsx-runtime";
4
+ import { childrenArray, computed, Indent } from "@alloy-js/core";
5
+ /**
6
+ * Create an indented block of source text. The block has `opener` text which is
7
+ * added prior to the block, which defaults to "\{", and `closer` text which is
8
+ * added after the block, which defaults to "\}".
9
+ */
10
+ export function Block(props) {
11
+ const childCount = computed(() => childrenArray(() => props.children).length);
12
+ return _$createIntrinsic("group", {
13
+ get children() {
14
+ return [_$memo(() => _$memo(() => !!props.newline)() && _$createIntrinsic("br", {})), _$memo(() => props.opener ?? "{"), _$createComponent(Indent, {
15
+ get ["break"]() {
16
+ return childCount.value > 0 ? "hard" : "soft";
17
+ },
18
+ get children() {
19
+ return props.children;
20
+ }
21
+ }), _$memo(() => _$memo(() => childCount.value > 0)() ? _$createIntrinsic("hbr", {}) : _$createIntrinsic("sbr", {})), _$memo(() => props.closer ?? "}")];
22
+ }
23
+ });
24
+ }
25
+ //# sourceMappingURL=Block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Block.js","names":["childrenArray","computed","Indent","Block","props","childCount","children","length","_$createIntrinsic","_$memo","newline","opener","_$createComponent","break","value","closer"],"sources":["../../../src/components/Block.tsx"],"sourcesContent":[null],"mappings":";;;AAAA,SAAmBA,aAAa,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,gBAAgB;AAuB1E;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,KAAKA,CAACC,KAAiB,EAAE;EACvC,MAAMC,UAAU,GAAGJ,QAAQ,CAAC,MAAMD,aAAa,CAAC,MAAMI,KAAK,CAACE,QAAQ,CAAC,CAACC,MAAM,CAAC;EAC7E,OAAAC,iBAAA;IAAA,IAAAF,SAAA;MAAA,QAAAG,MAAA,OAEKA,MAAA,SAAAL,KAAK,CAACM,OAAO,OAAAF,iBAAA,UAAU,GAAAC,MAAA,OACvBL,KAAK,CAACO,MAAM,IAAI,GAAG,GAAAC,iBAAA,CACnBV,MAAM;QAAA,aAAAW,CAAA;UAAA,OAAQR,UAAU,CAACS,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM;QAAA;QAAA,IAAAR,SAAA;UAAA,OAClDF,KAAK,CAACE,QAAQ;QAAA;MAAA,IAAAG,MAAA,OAEhBA,MAAA,OAAAJ,UAAU,CAACS,KAAK,GAAG,CAAC,MAAAN,iBAAA,cAAAA,iBAAA,WAEZ,GAAAC,MAAA,OACRL,KAAK,CAACW,MAAM,IAAI,GAAG;IAAA;EAAA;AAG1B","ignoreList":[]}
@@ -25,5 +25,5 @@ export interface DeclarationProps {
25
25
  *
26
26
  * @see {@link BinderContext}
27
27
  */
28
- export declare function Declaration(props: DeclarationProps): any;
28
+ export declare function Declaration(props: DeclarationProps): Children;
29
29
  //# sourceMappingURL=Declaration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Declaration.d.ts","sourceRoot":"","sources":["../../../src/components/Declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAU,MAAM,cAAc,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,OAoBlD"}
1
+ {"version":3,"file":"Declaration.d.ts","sourceRoot":"","sources":["../../../src/components/Declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,EAAE,QAAQ,EAAa,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAU,MAAM,cAAc,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,YA0BlD"}
@@ -3,6 +3,7 @@ import { memo as _$memo } from "@alloy-js/core/jsx-runtime";
3
3
  import { useContext } from "../context.js";
4
4
  import { BinderContext } from "../context/binder.js";
5
5
  import { DeclarationContext } from "../context/declaration.js";
6
+ import { onCleanup } from "../jsx-runtime.js";
6
7
  import { refkey } from "../refkey.js";
7
8
  /**
8
9
  * Declares a symbol in the current scope for this component's children.
@@ -36,6 +37,9 @@ export function Declaration(props) {
36
37
  name: props.name,
37
38
  refkey: rk
38
39
  });
40
+ onCleanup(() => {
41
+ binder.deleteSymbol(declaration);
42
+ });
39
43
  }
40
44
  return _$createComponent(DeclarationContext.Provider, {
41
45
  value: declaration,
@@ -1 +1 @@
1
- {"version":3,"file":"Declaration.js","names":["useContext","BinderContext","DeclarationContext","refkey","Declaration","props","binder","Error","declaration","symbol","rk","name","createSymbol","_$createComponent","Provider","value","children"],"sources":["../../../src/components/Declaration.tsx"],"sourcesContent":[null],"mappings":";;AACA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,kBAAkB,QAAQ,2BAA2B;AAE9D,SAAiBC,MAAM,QAAQ,cAAc;AAS7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,MAAMC,MAAM,GAAGN,UAAU,CAACC,aAAa,CAAC;EACxC,IAAI,CAACK,MAAM,EAAE;IACX,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EAEA,IAAIC,WAAW;EACf,IAAIH,KAAK,CAACI,MAAM,EAAE;IAChBD,WAAW,GAAGH,KAAK,CAACI,MAAM;EAC5B,CAAC,MAAM;IACL,MAAMC,EAAE,GAAGL,KAAK,CAACF,MAAM,GAAGE,KAAK,CAACF,MAAM,GAAGA,MAAM,CAACE,KAAK,CAACM,IAAI,CAAC;IAC3DH,WAAW,GAAGF,MAAM,CAACM,YAAY,CAAC;MAChCD,IAAI,EAAEN,KAAK,CAACM,IAAK;MACjBR,MAAM,EAAEO;IACV,CAAC,CAAC;EACJ;EAEA,OAAAG,iBAAA,CAAQX,kBAAkB,CAACY,QAAQ;IAACC,KAAK,EAAEP,WAAW;IAAA,IAAAQ,SAAA;MAAA,OACnDX,KAAK,CAACW,QAAQ;IAAA;EAAA;AAEnB","ignoreList":[]}
1
+ {"version":3,"file":"Declaration.js","names":["useContext","BinderContext","DeclarationContext","onCleanup","refkey","Declaration","props","binder","Error","declaration","symbol","rk","name","createSymbol","deleteSymbol","_$createComponent","Provider","value","children"],"sources":["../../../src/components/Declaration.tsx"],"sourcesContent":[null],"mappings":";;AACA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,kBAAkB,QAAQ,2BAA2B;AAC9D,SAAmBC,SAAS,QAAQ,mBAAmB;AACvD,SAAiBC,MAAM,QAAQ,cAAc;AAS7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,MAAMC,MAAM,GAAGP,UAAU,CAACC,aAAa,CAAC;EACxC,IAAI,CAACM,MAAM,EAAE;IACX,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EAEA,IAAIC,WAAW;EACf,IAAIH,KAAK,CAACI,MAAM,EAAE;IAChBD,WAAW,GAAGH,KAAK,CAACI,MAAM;EAC5B,CAAC,MAAM;IACL,MAAMC,EAAE,GAAGL,KAAK,CAACF,MAAM,GAAGE,KAAK,CAACF,MAAM,GAAGA,MAAM,CAACE,KAAK,CAACM,IAAI,CAAC;IAC3DH,WAAW,GAAGF,MAAM,CAACM,YAAY,CAAC;MAChCD,IAAI,EAAEN,KAAK,CAACM,IAAK;MACjBR,MAAM,EAAEO;IACV,CAAC,CAAC;IAEFR,SAAS,CAAC,MAAM;MACdI,MAAM,CAACO,YAAY,CAACL,WAAY,CAAC;IACnC,CAAC,CAAC;EACJ;EAEA,OAAAM,iBAAA,CACGb,kBAAkB,CAACc,QAAQ;IAACC,KAAK,EAAER,WAAW;IAAA,IAAAS,SAAA;MAAA,OAC5CZ,KAAK,CAACY,QAAQ;IAAA;EAAA;AAGrB","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ import { Children } from "@alloy-js/core/jsx-runtime";
2
+ import { Ref } from "@vue/reactivity";
3
+ import { BaseListProps } from "./List.jsx";
4
+ export type ForCallbackArgs<T> = T extends Ref<infer U> ? ForCallbackArgs<U> : T extends () => infer U ? ForCallbackArgs<U> : T extends (infer U)[] ? [value: U] : T extends Map<infer U, infer V> ? [key: U, value: V] : T extends Set<infer U> ? [value: U] : [];
5
+ export interface ForProps<T extends ForSupportedCollections | (() => ForSupportedCollections) | Ref<ForSupportedCollections>, U extends Children> extends BaseListProps {
6
+ /**
7
+ * The array to iterate over.
8
+ */
9
+ each: T;
10
+ /**
11
+ * A function to call for each item.
12
+ */
13
+ children: (...args: [...ForCallbackArgs<T>, index: number]) => U;
14
+ }
15
+ export type ForSupportedCollections = any[] | Map<any, any> | Set<any>;
16
+ /**
17
+ * The For component iterates over the provided array and invokes the child
18
+ * callback for each item. It can optionally be provided with a `joiner` which
19
+ * is placed between each item, and an `ender` which is placed after the last
20
+ * item when there is at least one item.
21
+ *
22
+ * @example
23
+ *
24
+ * ```tsx
25
+ * const items = ["apple", "pear", "plum"];
26
+ * return <For each={items}>
27
+ * {(item) => <>Fruit: {item}</>}
28
+ * </For>
29
+ * ```
30
+ *
31
+ * @remarks
32
+ *
33
+ * When the `each` prop is a reactive (e.g. a reactive array, or ref to an
34
+ * array), `For` will automatically update when the array changes. When doing
35
+ * so, it will attempt to avoid re-rendering items which have not changed. For
36
+ * example, when appending an item to a reactive array, existing items will not
37
+ * be re-rendered. Note that presently the implementation is fairly simple -
38
+ * when making modifications to the middle of an array it likely that every
39
+ * element after the modification will be rerendered.
40
+ *
41
+ * @see {@link (mapJoin:1)} for mapping arrays to elements outside of JSX templates.
42
+ */
43
+ export declare function For<T extends ForSupportedCollections | (() => ForSupportedCollections) | Ref<ForSupportedCollections>, U extends Children>(props: ForProps<T, U>): () => any;
44
+ //# sourceMappingURL=For.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"For.d.ts","sourceRoot":"","sources":["../../../src/components/For.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAQ,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAS,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAA8B,MAAM,YAAY,CAAC;AAEvE,MAAM,MAAM,eAAe,CAAC,CAAC,IAC3B,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GACzC,CAAC,SAAS,MAAM,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAC5C,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAClC,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,GACpD,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GACnC,EAAE,CAAC;AAEP,MAAM,WAAW,QAAQ,CACvB,CAAC,SACG,uBAAuB,GACvB,CAAC,MAAM,uBAAuB,CAAC,GAC/B,GAAG,CAAC,uBAAuB,CAAC,EAChC,CAAC,SAAS,QAAQ,CAClB,SAAQ,aAAa;IACrB;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC;IAER;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;CAClE;AAED,MAAM,MAAM,uBAAuB,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACvE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,GAAG,CACjB,CAAC,SACG,uBAAuB,GACvB,CAAC,MAAM,uBAAuB,CAAC,GAC/B,GAAG,CAAC,uBAAuB,CAAC,EAChC,CAAC,SAAS,QAAQ,EAClB,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,aAetB"}
@@ -0,0 +1,41 @@
1
+ import { memo } from "@alloy-js/core/jsx-runtime";
2
+ import { isRef } from "@vue/reactivity";
3
+ import { mapJoin } from "../utils.js";
4
+ import { baseListPropsToMapJoinArgs } from "./List.js";
5
+ /**
6
+ * The For component iterates over the provided array and invokes the child
7
+ * callback for each item. It can optionally be provided with a `joiner` which
8
+ * is placed between each item, and an `ender` which is placed after the last
9
+ * item when there is at least one item.
10
+ *
11
+ * @example
12
+ *
13
+ * ```tsx
14
+ * const items = ["apple", "pear", "plum"];
15
+ * return <For each={items}>
16
+ * {(item) => <>Fruit: {item}</>}
17
+ * </For>
18
+ * ```
19
+ *
20
+ * @remarks
21
+ *
22
+ * When the `each` prop is a reactive (e.g. a reactive array, or ref to an
23
+ * array), `For` will automatically update when the array changes. When doing
24
+ * so, it will attempt to avoid re-rendering items which have not changed. For
25
+ * example, when appending an item to a reactive array, existing items will not
26
+ * be re-rendered. Note that presently the implementation is fairly simple -
27
+ * when making modifications to the middle of an array it likely that every
28
+ * element after the modification will be rerendered.
29
+ *
30
+ * @see {@link (mapJoin:1)} for mapping arrays to elements outside of JSX templates.
31
+ */
32
+ export function For(props) {
33
+ const cb = props.children;
34
+ const options = baseListPropsToMapJoinArgs(props);
35
+ options.skipFalsy = true;
36
+ return memo(() => {
37
+ const maybeRef = props.each;
38
+ return mapJoin(typeof maybeRef === "function" ? maybeRef : () => isRef(maybeRef) ? maybeRef.value : maybeRef, cb, options);
39
+ });
40
+ }
41
+ //# sourceMappingURL=For.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"For.js","names":["memo","isRef","mapJoin","baseListPropsToMapJoinArgs","For","props","cb","children","options","skipFalsy","maybeRef","each","value"],"sources":["../../../src/components/For.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAmBA,IAAI,QAAQ,4BAA4B;AAC3D,SAASC,KAAK,QAAa,iBAAiB;AAC5C,SAASC,OAAO,QAAQ,aAAa;AACrC,SAAwBC,0BAA0B;AA6BlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,GAAGA,CAMjBC,KAAqB,EAAE;EACvB,MAAMC,EAAE,GAAGD,KAAK,CAACE,QAAQ;EACzB,MAAMC,OAAO,GAAGL,0BAA0B,CAACE,KAAK,CAAC;EACjDG,OAAO,CAACC,SAAS,GAAG,IAAI;EACxB,OAAOT,IAAI,CAAC,MAAM;IAChB,MAAMU,QAAQ,GAAGL,KAAK,CAACM,IAAI;IAE3B,OAAQT,OAAO,CACb,OAAOQ,QAAQ,KAAK,UAAU,GAAGA,QAAQ,GACvC,MAAOT,KAAK,CAACS,QAAQ,CAAC,GAAGA,QAAQ,CAACE,KAAK,GAAGF,QAC3C,EACDJ,EAAE,EACFE,OACF,CAAC;EACH,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1,13 +1,9 @@
1
- import { Children } from "../jsx-runtime.js";
1
+ import { Children } from "@alloy-js/core/jsx-runtime";
2
2
  export interface IndentProps {
3
- children?: Children;
4
- indent?: string;
3
+ children: Children;
4
+ nobreak?: boolean;
5
+ break?: "space" | "soft" | "hard";
6
+ trailingBreak?: boolean;
5
7
  }
6
- export interface IndentState {
7
- level: number;
8
- indent: string;
9
- indentString: string;
10
- noLeading?: boolean;
11
- }
12
- export declare function Indent(props: IndentProps): any;
8
+ export declare function Indent(props: IndentProps): Children;
13
9
  //# sourceMappingURL=Indent.d.ts.map