@alloy-js/core 0.5.0 → 0.7.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 (212) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/babel.config.cjs +4 -1
  3. package/dist/src/binder.d.ts +8 -2
  4. package/dist/src/binder.d.ts.map +1 -1
  5. package/dist/src/binder.js +41 -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.map +1 -1
  16. package/dist/src/components/Declaration.js +4 -0
  17. package/dist/src/components/Declaration.js.map +1 -1
  18. package/dist/src/components/For.d.ts +44 -0
  19. package/dist/src/components/For.d.ts.map +1 -0
  20. package/dist/src/components/For.js +41 -0
  21. package/dist/src/components/For.js.map +1 -0
  22. package/dist/src/components/Indent.d.ts +5 -9
  23. package/dist/src/components/Indent.d.ts.map +1 -1
  24. package/dist/src/components/Indent.js +7 -18
  25. package/dist/src/components/Indent.js.map +1 -1
  26. package/dist/src/components/List.d.ts +38 -0
  27. package/dist/src/components/List.d.ts.map +1 -0
  28. package/dist/src/components/List.js +40 -0
  29. package/dist/src/components/List.js.map +1 -0
  30. package/dist/src/components/MemberDeclaration.d.ts.map +1 -1
  31. package/dist/src/components/MemberDeclaration.js.map +1 -1
  32. package/dist/src/components/MemberName.js +1 -1
  33. package/dist/src/components/MemberName.js.map +1 -1
  34. package/dist/src/components/MemberScope.d.ts.map +1 -1
  35. package/dist/src/components/MemberScope.js.map +1 -1
  36. package/dist/src/components/Name.js +1 -1
  37. package/dist/src/components/Name.js.map +1 -1
  38. package/dist/src/components/Output.d.ts +2 -1
  39. package/dist/src/components/Output.d.ts.map +1 -1
  40. package/dist/src/components/Output.js +9 -1
  41. package/dist/src/components/Output.js.map +1 -1
  42. package/dist/src/components/Scope.d.ts.map +1 -1
  43. package/dist/src/components/Scope.js.map +1 -1
  44. package/dist/src/components/Show.d.ts +8 -0
  45. package/dist/src/components/Show.d.ts.map +1 -0
  46. package/dist/src/components/Show.js +4 -0
  47. package/dist/src/components/Show.js.map +1 -0
  48. package/dist/src/components/SourceDirectory.d.ts.map +1 -1
  49. package/dist/src/components/SourceDirectory.js +1 -0
  50. package/dist/src/components/SourceDirectory.js.map +1 -1
  51. package/dist/src/components/SourceFile.d.ts +2 -6
  52. package/dist/src/components/SourceFile.d.ts.map +1 -1
  53. package/dist/src/components/SourceFile.js +6 -13
  54. package/dist/src/components/SourceFile.js.map +1 -1
  55. package/dist/src/components/StatementList.d.ts +9 -0
  56. package/dist/src/components/StatementList.d.ts.map +1 -0
  57. package/dist/src/components/StatementList.js +17 -0
  58. package/dist/src/components/StatementList.js.map +1 -0
  59. package/dist/src/components/Switch.d.ts +41 -0
  60. package/dist/src/components/Switch.d.ts.map +1 -0
  61. package/dist/src/components/Switch.js +41 -0
  62. package/dist/src/components/Switch.js.map +1 -0
  63. package/dist/src/components/Wrap.d.ts +20 -0
  64. package/dist/src/components/Wrap.d.ts.map +1 -0
  65. package/dist/src/components/Wrap.js +15 -0
  66. package/dist/src/components/Wrap.js.map +1 -0
  67. package/dist/src/components/index.d.ts +8 -1
  68. package/dist/src/components/index.d.ts.map +1 -1
  69. package/dist/src/components/index.js +7 -0
  70. package/dist/src/components/index.js.map +1 -1
  71. package/dist/src/components/stc/index.d.ts +77 -6
  72. package/dist/src/components/stc/index.d.ts.map +1 -1
  73. package/dist/src/components/stc/index.js +17 -1
  74. package/dist/src/components/stc/index.js.map +1 -1
  75. package/dist/src/context/index.d.ts +0 -1
  76. package/dist/src/context/index.d.ts.map +1 -1
  77. package/dist/src/context/index.js +0 -1
  78. package/dist/src/context/index.js.map +1 -1
  79. package/dist/src/context.d.ts.map +1 -1
  80. package/dist/src/context.js +3 -3
  81. package/dist/src/context.js.map +1 -1
  82. package/dist/src/index.browser.d.ts +3 -0
  83. package/dist/src/index.browser.d.ts.map +1 -0
  84. package/dist/src/index.browser.js +3 -0
  85. package/dist/src/index.browser.js.map +1 -0
  86. package/dist/src/index.d.ts +1 -0
  87. package/dist/src/index.d.ts.map +1 -1
  88. package/dist/src/index.js +1 -0
  89. package/dist/src/index.js.map +1 -1
  90. package/dist/src/jsx-runtime.d.ts +139 -8
  91. package/dist/src/jsx-runtime.d.ts.map +1 -1
  92. package/dist/src/jsx-runtime.js +102 -12
  93. package/dist/src/jsx-runtime.js.map +1 -1
  94. package/dist/src/render.d.ts +107 -132
  95. package/dist/src/render.d.ts.map +1 -1
  96. package/dist/src/render.js +281 -177
  97. package/dist/src/render.js.map +1 -1
  98. package/dist/src/stc.d.ts +14 -0
  99. package/dist/src/stc.d.ts.map +1 -0
  100. package/dist/src/stc.js +52 -0
  101. package/dist/src/stc.js.map +1 -0
  102. package/dist/src/utils.d.ts +22 -15
  103. package/dist/src/utils.d.ts.map +1 -1
  104. package/dist/src/utils.js +95 -59
  105. package/dist/src/utils.js.map +1 -1
  106. package/dist/src/write-output.js +3 -3
  107. package/dist/src/write-output.js.map +1 -1
  108. package/dist/test/browser-build.test.d.ts +2 -0
  109. package/dist/test/browser-build.test.d.ts.map +1 -0
  110. package/dist/test/components/block.test.d.ts +2 -0
  111. package/dist/test/components/block.test.d.ts.map +1 -0
  112. package/dist/test/components/declaration.test.d.ts +2 -0
  113. package/dist/test/components/declaration.test.d.ts.map +1 -0
  114. package/dist/test/components/list.test.d.ts +2 -0
  115. package/dist/test/components/list.test.d.ts.map +1 -0
  116. package/dist/test/components/wrap.test.d.ts +2 -0
  117. package/dist/test/components/wrap.test.d.ts.map +1 -0
  118. package/dist/test/control-flow/for.test.d.ts +2 -0
  119. package/dist/test/control-flow/for.test.d.ts.map +1 -0
  120. package/dist/test/control-flow/match.test.d.ts +2 -0
  121. package/dist/test/control-flow/match.test.d.ts.map +1 -0
  122. package/dist/test/control-flow/show.test.d.ts +2 -0
  123. package/dist/test/control-flow/show.test.d.ts.map +1 -0
  124. package/dist/test/reactivity/cleanup.test.d.ts +2 -0
  125. package/dist/test/reactivity/cleanup.test.d.ts.map +1 -0
  126. package/dist/test/reactivity/memo.test.d.ts +2 -0
  127. package/dist/test/reactivity/memo.test.d.ts.map +1 -0
  128. package/dist/test/reactivity/untrack.test.d.ts +2 -0
  129. package/dist/test/reactivity/untrack.test.d.ts.map +1 -0
  130. package/dist/test/rendering/formatting.test.d.ts +2 -0
  131. package/dist/test/rendering/formatting.test.d.ts.map +1 -0
  132. package/dist/test/rendering/memoization.test.d.ts +2 -0
  133. package/dist/test/rendering/memoization.test.d.ts.map +1 -0
  134. package/dist/test/split-props.test.d.ts +2 -0
  135. package/dist/test/split-props.test.d.ts.map +1 -0
  136. package/dist/test/stc.test.d.ts.map +1 -1
  137. package/dist/test/utils.test.d.ts.map +1 -1
  138. package/dist/testing/extend-expect.js +4 -4
  139. package/dist/testing/extend-expect.js.map +1 -1
  140. package/dist/testing/render.d.ts +2 -3
  141. package/dist/testing/render.d.ts.map +1 -1
  142. package/dist/testing/render.js +2 -4
  143. package/dist/testing/render.js.map +1 -1
  144. package/dist/tsconfig.tsbuildinfo +1 -1
  145. package/package.json +6 -8
  146. package/src/binder.ts +54 -18
  147. package/src/code.ts +17 -12
  148. package/src/components/Block.tsx +44 -0
  149. package/src/components/Declaration.tsx +10 -4
  150. package/src/components/For.tsx +81 -0
  151. package/src/components/Indent.tsx +20 -27
  152. package/src/components/List.tsx +94 -0
  153. package/src/components/MemberDeclaration.tsx +9 -6
  154. package/src/components/MemberScope.tsx +4 -2
  155. package/src/components/Output.tsx +25 -13
  156. package/src/components/Scope.tsx +4 -2
  157. package/src/components/Show.tsx +11 -0
  158. package/src/components/SourceDirectory.tsx +5 -1
  159. package/src/components/SourceFile.tsx +12 -16
  160. package/src/components/StatementList.tsx +16 -0
  161. package/src/components/Switch.tsx +62 -0
  162. package/src/components/Wrap.tsx +29 -0
  163. package/src/components/index.tsx +8 -1
  164. package/src/components/stc/index.ts +18 -1
  165. package/src/context/index.ts +0 -1
  166. package/src/context.ts +2 -3
  167. package/src/index.browser.ts +2 -0
  168. package/src/index.ts +1 -0
  169. package/src/jsx-runtime.ts +245 -23
  170. package/src/render.ts +392 -198
  171. package/src/stc.ts +95 -0
  172. package/src/utils.ts +162 -95
  173. package/src/write-output.ts +3 -3
  174. package/temp/api.json +8407 -3301
  175. package/test/browser-build.test.ts +91 -0
  176. package/test/children.test.tsx +8 -10
  177. package/test/components/block.test.tsx +48 -0
  178. package/test/components/declaration.test.tsx +37 -0
  179. package/test/components/list.test.tsx +91 -0
  180. package/test/components/slot.test.tsx +31 -25
  181. package/test/components/source-file.test.tsx +11 -31
  182. package/test/components/wrap.test.tsx +42 -0
  183. package/test/control-flow/for.test.tsx +194 -0
  184. package/test/control-flow/match.test.tsx +49 -0
  185. package/test/control-flow/show.test.tsx +25 -0
  186. package/test/name-policy.test.tsx +5 -5
  187. package/test/reactivity/cleanup.test.tsx +91 -0
  188. package/test/reactivity/memo.test.tsx +17 -0
  189. package/test/reactivity/ref-rendering.test.tsx +3 -8
  190. package/test/reactivity/test.test.tsx +7 -6
  191. package/test/reactivity/untrack.test.ts +33 -0
  192. package/test/rendering/basic.test.tsx +25 -47
  193. package/test/rendering/code.test.tsx +3 -3
  194. package/test/rendering/formatting.test.tsx +487 -0
  195. package/test/rendering/indent.test.tsx +42 -529
  196. package/test/rendering/memoization.test.tsx +30 -0
  197. package/test/split-props.test.ts +87 -0
  198. package/test/stc.test.tsx +29 -8
  199. package/test/symbols.test.ts +87 -8
  200. package/test/utils.test.tsx +129 -20
  201. package/testing/extend-expect.ts +14 -4
  202. package/testing/render.ts +2 -4
  203. package/testing/vitest.d.ts +6 -1
  204. package/vitest.config.ts +1 -1
  205. package/dist/src/context/indent.d.ts +0 -5
  206. package/dist/src/context/indent.d.ts.map +0 -1
  207. package/dist/src/context/indent.js +0 -8
  208. package/dist/src/context/indent.js.map +0 -1
  209. package/dist/test/rendering/linebreaks.test.d.ts +0 -2
  210. package/dist/test/rendering/linebreaks.test.d.ts.map +0 -1
  211. package/src/context/indent.ts +0 -17
  212. package/test/rendering/linebreaks.test.tsx +0 -72
package/CHANGELOG.md CHANGED
@@ -1,5 +1,60 @@
1
1
  # Changelog - @alloy-js/core
2
2
 
3
+ ## 0.7.0
4
+
5
+ ### Bug Fixes
6
+
7
+ - [#62](https://github.com/alloy-framework/alloy/pull/62) Fix writeOutput failing to make new files
8
+
9
+ ### Breaking Changes
10
+
11
+ - [#61](https://github.com/alloy-framework/alloy/pull/61) Symbols now allow for multiple refkeys. The `refkey` property has been removed, however the refkey prop remains on declaration components and the refkey option remains for the binder's createSymbol, so the breakage should be limited to code which interacts directly with symbols."
12
+
13
+
14
+ ## 0.6.0
15
+
16
+ ### Bug Fixes
17
+
18
+ - [#54](https://github.com/alloy-framework/alloy/pull/54) Fix browser mappings
19
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Export missing STC components.
20
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Properly handle reactive updates in the children of a context Provider.
21
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Fix cleanup of root contexts when cleanup is invoked from another context.
22
+
23
+ ### Features
24
+
25
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added a List component which renders its immediate children with configurable joiner and ender text.
26
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added StatementList component for rendering lists of statements separated by semicolons and newlines.
27
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) The For component can now take a memo for its `each` prop.
28
+ - [#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.
29
+ - [#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.
30
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) The Indent component can now configure its line break style (soft, hard, literal, or line).
31
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added support for the various formatting intrinsic elements.
32
+ - [#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.
33
+ - [#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.
34
+ - [#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.
35
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) `mapJoin` can now be given `Children` for its joiner and ender props.
36
+ - [#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.
37
+ - [#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.
38
+ - [#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.
39
+ - [#56](https://github.com/alloy-framework/alloy/pull/56) Added Wrap component for conditionally wrapping its children in another component.
40
+ - [#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.
41
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Add `Switch` component to conditionally render content.
42
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Add support to the binder for deleting symbols.
43
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) The `Declaration` component will now delete its symbol when its removed from the tree.
44
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Don't re-render unchanged elements when doing reactive updates.
45
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Add `createCustomContext` to allow establishing a custom reactive context during render.
46
+ - [#55](https://github.com/alloy-framework/alloy/pull/55) Add `findKeyedChildren` which finds multiple children with the given key.
47
+
48
+ ### Breaking Changes
49
+
50
+ - [#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.
51
+ - [#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.
52
+ - [#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.
53
+ - [#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.
54
+ - [#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.
55
+ - [#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.
56
+
57
+
3
58
  ## 0.5.0
4
59
 
5
60
  ### 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
  };
@@ -74,9 +74,9 @@ export interface OutputSymbol {
74
74
  */
75
75
  binder: Binder;
76
76
  /**
77
- * A unique value that references this symbol.
77
+ * The unique values that reference this symbol.
78
78
  */
79
- refkey: Refkey;
79
+ refkeys: Refkey[];
80
80
  /**
81
81
  * The instance members available on this symbol.
82
82
  *
@@ -186,6 +186,7 @@ export type CreateSymbolOptions<T extends OutputSymbol = OutputSymbol> = {
186
186
  name: string;
187
187
  scope?: OutputScope;
188
188
  refkey?: Refkey;
189
+ refkeys?: Refkey[];
189
190
  flags?: OutputSymbolFlags;
190
191
  } & Omit<T, keyof OutputSymbol>;
191
192
  export type CreateScopeOptions<T extends OutputScope = OutputScope> = {
@@ -219,6 +220,11 @@ export interface Binder {
219
220
  * The returned symbol object is reactive.
220
221
  */
221
222
  createSymbol<T extends OutputSymbol>(args: CreateSymbolOptions<T>): T;
223
+ /**
224
+ * Delete the given symbol. The symbol will be removed from its parent's
225
+ * scope. Any resolutions to this symbol will become undefined.
226
+ */
227
+ deleteSymbol(symbol: OutputSymbol): void;
222
228
  /**
223
229
  * Instantiate the static members of a symbol into the instance members of
224
230
  * 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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"}
@@ -115,6 +115,7 @@ export function createOutputBinder(options = {}) {
115
115
  const binder = {
116
116
  createScope,
117
117
  createSymbol,
118
+ deleteSymbol,
118
119
  resolveDeclarationByKey,
119
120
  addStaticMembersToSymbol,
120
121
  addInstanceMembersToSymbol,
@@ -198,9 +199,17 @@ export function createOutputBinder(options = {}) {
198
199
  name,
199
200
  scope = useDefaultScope(args.flags),
200
201
  refkey,
202
+ refkeys,
201
203
  flags = OutputSymbolFlags.None,
202
204
  ...rest
203
205
  } = args;
206
+ const allRefkeys = [];
207
+ if (refkey) {
208
+ allRefkeys.push(refkey);
209
+ }
210
+ if (refkeys) {
211
+ allRefkeys.push(...refkeys);
212
+ }
204
213
  if (!scope) {
205
214
  throw new Error("No scope was provided and no scope could be found in context");
206
215
  }
@@ -216,7 +225,7 @@ export function createOutputBinder(options = {}) {
216
225
  originalName: name,
217
226
  name: name,
218
227
  scope,
219
- refkey,
228
+ refkeys: allRefkeys,
220
229
  binder,
221
230
  flags,
222
231
  ...rest
@@ -240,11 +249,24 @@ export function createOutputBinder(options = {}) {
240
249
  });
241
250
  }
242
251
  scope.symbols.add(symbol);
243
- scope.symbolsByRefkey.set(symbol.refkey, symbol);
252
+ for (const refkey of allRefkeys) {
253
+ scope.symbolsByRefkey.set(refkey, symbol);
254
+ }
244
255
  deconflict(symbol);
245
256
  notifyRefkey(symbol);
246
257
  return symbol;
247
258
  }
259
+ function deleteSymbol(symbol) {
260
+ symbol.scope.symbols.delete(symbol);
261
+ if (!refkey) {
262
+ return;
263
+ }
264
+ for (const refkey of symbol.refkeys) {
265
+ const resolution = waitingDeclarations.get(refkey);
266
+ if (!resolution) return;
267
+ resolution.value = undefined;
268
+ }
269
+ }
248
270
  function instantiateSymbolInto(source, target) {
249
271
  if (~source.flags & OutputSymbolFlags.InstanceMemberContainer) {
250
272
  throw new Error("Can only instantiate symbols with instance members");
@@ -258,7 +280,8 @@ export function createOutputBinder(options = {}) {
258
280
  createSymbol({
259
281
  name: sym.name,
260
282
  scope: target.instanceMemberScope,
261
- refkey: refkey(target.refkey, sym.refkey),
283
+ // todo: fix this or change this or something??
284
+ refkeys: [refkey(target.refkeys[0], sym.refkeys[0])],
262
285
  flags: sym.flags | OutputSymbolFlags.InstanceMember
263
286
  });
264
287
  }
@@ -394,18 +417,21 @@ export function createOutputBinder(options = {}) {
394
417
  }
395
418
  function notifyRefkey(symbol) {
396
419
  effect(() => {
397
- const refkey = symbol.refkey;
398
- if (!refkey) return;
399
- knownDeclarations.set(refkey, symbol);
400
- if (waitingDeclarations.has(refkey)) {
401
- const signal = waitingDeclarations.get(refkey);
402
- signal.value = symbol;
403
- }
404
- const waitingScope = waitingSymbolNames.get(symbol.scope);
405
- if (waitingScope) {
406
- const waitingName = waitingScope.get(symbol.name);
407
- if (waitingName) {
408
- waitingName.value = symbol;
420
+ for (const refkey of symbol.refkeys) {
421
+ // notify those waiting for this refkey
422
+ knownDeclarations.set(refkey, symbol);
423
+ if (waitingDeclarations.has(refkey)) {
424
+ const signal = waitingDeclarations.get(refkey);
425
+ signal.value = symbol;
426
+ }
427
+
428
+ // notify those waiting for this symbol name
429
+ const waitingScope = waitingSymbolNames.get(symbol.scope);
430
+ if (waitingScope) {
431
+ const waitingName = waitingScope.get(symbol.name);
432
+ if (waitingName) {
433
+ waitingName.value = symbol;
434
+ }
409
435
  }
410
436
  }
411
437
  });
@@ -1 +1 @@
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","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","refkeys","allRefkeys","push","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":"AAAA,SACEA,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACRC,GAAG,EAGHC,UAAU,QACL,iBAAiB;AACxB,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,SAASC,cAAc,QAAQ,2BAA2B;AAC1D,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,IAAI,EAAEC,OAAO,QAAQ,kBAAkB;AAChD,SAASC,MAAM,QAAgB,aAAa;AAG5C;AACA;AACA;AACA,WAAYC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAjBA,iBAAiB,CAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;;AAsC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA0DA;AACA;AACA;AACA,WAAYC,gBAAgB,0BAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;;AAoB5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAuEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkGA;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;AACA;AACA;;AAuCA,OAAO,SAASC,kBAAkBA,CAACC,OAAsB,GAAG,CAAC,CAAC,EAAU;EACtE,MAAMC,MAAc,GAAG;IACrBC,WAAW;IACXC,YAAY;IACZC,YAAY;IACZC,uBAAuB;IACvBC,wBAAwB;IACxBC,0BAA0B;IAC1BC,qBAAqB;IACrBC,cAAc;IACdC,aAAa;IACbC,UAAU,EAAEA,UAAiB;IAC7BC,WAAW,EAAEC;EACf,CAAC;EAED,MAAMC,aAAa,GAAG1B,QAAQ,CAAC,IAAI2B,GAAG,CAAe,CAAC,CAAC;EAEvDd,MAAM,CAACW,WAAW,GAAGxB,QAAQ,CAAC;IAC5B4B,IAAI,EAAE,QAAQ;IACdC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE,IAAIH,GAAG,CAAC,CAAC;IAClBI,eAAe,EAAE,IAAIC,GAAG,CAAC,CAAC;IAC1BC,QAAQ,EAAE,IAAIN,GAAG,CAAC,CAAC;IACnBO,MAAM,EAAET,SAAS;IACjBZ,MAAM;IACNsB,KAAK,EAAEzB,gBAAgB,CAAC0B,IAAI;IAC5BC,cAAc,EAAEC,WAAW,CAACZ,aAAa;EAC3C,CAAC,CAAC;EAEF,MAAMa,iBAAiB,GAAG,IAAIP,GAAG,CAAuB,CAAC;EACzD,MAAMQ,mBAAmB,GAAG,IAAIR,GAAG,CAAwC,CAAC;EAC5E,MAAMS,kBAAkB,GAAG,IAAIT,GAAG,CAGhC,CAAC;EACH,MAAMU,iBAAiB,GAAG,IAAIV,GAAG,CAG/B,CAAC;EAEH,OAAOnB,MAAM;EAEb,SAASC,WAAWA,CAAwB6B,IAA2B,EAAK;IAC1E,MAAM;MACJf,IAAI;MACJC,IAAI;MACJK,MAAM;MACNU,KAAK;MACLT,KAAK,GAAGzB,gBAAgB,CAAC0B,IAAI;MAC7B,GAAGS;IACL,CAAC,GAAGF,IAAI;IAER,IAAIR,KAAK,GAAGzB,gBAAgB,CAACoC,WAAW,EAAE;MACxC,IAAI,CAACF,KAAK,EAAE;QACV,MAAM,IAAIG,KAAK,CAAC,kCAAkC,CAAC;MACrD;IACF;;IAEA;IACA;IACA,IAAIC,WAAoC;IACxC,IAAId,MAAM,EAAE;MACVc,WAAW,GAAGd,MAAM;IACtB,CAAC,MAAM,IAAIC,KAAK,GAAGzB,gBAAgB,CAACoC,WAAW,EAAE;MAC/CE,WAAW,GAAGvB,SAAS;IACzB,CAAC,MAAM;MACLuB,WAAW,GAAG3C,QAAQ,CAAC,CAAC,IAAIQ,MAAM,CAACW,WAAW;IAChD;IAEA,MAAMM,OAAO,GAAG9B,QAAQ,CAAC,IAAI2B,GAAG,CAAe,CAAC,CAAC;IACjD,MAAMI,eAAe,GAAG/B,QAAQ,CAAC,IAAIgC,GAAG,CAAuB,CAAC,CAAC;IACjE,MAAMiB,KAAQ,GAAGjD,QAAQ,CAAC;MACxB4B,IAAI,EAAEA,IAAI;MACVC,IAAI,EAAEA,IAAI;MACVC,OAAO;MACPC,eAAe;MACfE,QAAQ,EAAE,IAAIN,GAAG,CAAC,CAAC;MACnBO,MAAM,EAAEc,WAAW;MACnBb,KAAK;MACLS,KAAK;MACL/B,MAAM;MACN,GAAGgC,IAAI;MACPR,cAAc,EAAEC,WAAW,CAACR,OAAO;IACrC,CAAC,CAAM;IAEP,IAAIkB,WAAW,EAAE;MACfA,WAAW,CAACf,QAAQ,CAACiB,GAAG,CAACD,KAAK,CAAC;IACjC;IAEA,IAAIP,iBAAiB,CAACS,GAAG,CAACH,WAAY,CAAC,EAAE;MACvC,MAAMI,OAAO,GAAGV,iBAAiB,CAACW,GAAG,CAACL,WAAY,CAAC;MACnD,IAAII,OAAO,EAAED,GAAG,CAACtB,IAAI,CAAC,EAAE;QACtB,MAAM5B,GAAG,GAAGmD,OAAO,CAACC,GAAG,CAACxB,IAAI,CAAE;QAC9B5B,GAAG,CAACqD,KAAK,GAAGL,KAAK;MACnB;IACF;IAEA,OAAOA,KAAK;EACd;EAEA,SAASlC,YAAYA,CACnB4B,IAA4B,EACzB;IACH,MAAM;MACJd,IAAI;MACJoB,KAAK,GAAGM,eAAe,CAACZ,IAAI,CAACR,KAAK,CAAC;MACnC3B,MAAM;MACNgD,OAAO;MACPrB,KAAK,GAAG1B,iBAAiB,CAAC2B,IAAI;MAC9B,GAAGS;IACL,CAAC,GAAGF,IAAI;IAER,MAAMc,UAAU,GAAG,EAAE;IACrB,IAAIjD,MAAM,EAAE;MACViD,UAAU,CAACC,IAAI,CAAClD,MAAM,CAAC;IACzB;IAEA,IAAIgD,OAAO,EAAE;MACXC,UAAU,CAACC,IAAI,CAAC,GAAGF,OAAO,CAAC;IAC7B;IAEA,IAAI,CAACP,KAAK,EAAE;MACV,MAAM,IAAIF,KAAK,CACb,8DACF,CAAC;IACH;IAEA,IACEZ,KAAK,GAAG1B,iBAAiB,CAACkD,MAAM,IAChC,CAACV,KAAK,CAACd,KAAK,GAAGzB,gBAAgB,CAACoC,WAAW,MAAM,CAAC,EAClD;MACA,MAAM,IAAIC,KAAK,CAAC,kDAAkD,CAAC;IACrE;IAEA,IAAIE,KAAK,CAACd,KAAK,GAAGzB,gBAAgB,CAACkD,iBAAiB,EAAE;MACpD,IACE,CAACzB,KAAK,GAAG1B,iBAAiB,CAACoD,cAAc,IACzC,CAAC1B,KAAK,GAAG1B,iBAAiB,CAACqD,YAAY,EACvC;QACA,MAAM,IAAIf,KAAK,CACb,4HACF,CAAC;MACH;IACF;IAEA,MAAMgB,MAAM,GAAG/D,QAAQ,CAAC;MACtBgE,YAAY,EAAEnC,IAAI;MAClBA,IAAI,EAAEA,IAAI;MACVoB,KAAK;MACLO,OAAO,EAAEC,UAAU;MACnB5C,MAAM;MACNsB,KAAK;MACL,GAAGU;IACL,CAAC,CAAM;IAEP,IAAIF,IAAI,CAACR,KAAK,IAAIQ,IAAI,CAACR,KAAK,GAAG1B,iBAAiB,CAACwD,uBAAuB,EAAE;MACxEF,MAAM,CAACG,mBAAmB,GAAGpD,WAAW,CAAC;QACvCc,IAAI,EAAE,QAAQ;QACdC,IAAI,EAAE,kBAAkB;QACxBK,MAAM,EAAET,SAAS;QACjBmB,KAAK,EAAEmB,MAAM;QACb5B,KAAK,EAAEzB,gBAAgB,CAACyD;MAC1B,CAAC,CAAC;IACJ;IAEA,IAAIxB,IAAI,CAACR,KAAK,IAAIQ,IAAI,CAACR,KAAK,GAAG1B,iBAAiB,CAAC2D,qBAAqB,EAAE;MACtEL,MAAM,CAACM,iBAAiB,GAAGvD,WAAW,CAAC;QACrCc,IAAI,EAAE,QAAQ;QACdC,IAAI,EAAE,gBAAgB;QACtBK,MAAM,EAAET,SAAS;QACjBmB,KAAK,EAAEmB,MAAM;QACb5B,KAAK,EAAEzB,gBAAgB,CAACkD;MAC1B,CAAC,CAAC;IACJ;IAEAX,KAAK,CAACnB,OAAO,CAACoB,GAAG,CAACa,MAAM,CAAC;IACzB,KAAK,MAAMvD,MAAM,IAAIiD,UAAU,EAAE;MAC/BR,KAAK,CAAClB,eAAe,CAACuC,GAAG,CAAC9D,MAAM,EAAEuD,MAAM,CAAC;IAC3C;IAEAQ,UAAU,CAACR,MAAM,CAAC;IAClBS,YAAY,CAACT,MAAM,CAAC;IAEpB,OAAOA,MAAM;EACf;EAEA,SAAS/C,YAAYA,CAAC+C,MAAoB,EAAE;IAC1CA,MAAM,CAACd,KAAK,CAACnB,OAAO,CAAC2C,MAAM,CAACV,MAAM,CAAC;IAEnC,IAAI,CAACvD,MAAM,EAAE;MACX;IACF;IAEA,KAAK,MAAMA,MAAM,IAAIuD,MAAM,CAACP,OAAO,EAAE;MACnC,MAAMkB,UAAU,GAAGlC,mBAAmB,CAACa,GAAG,CAAC7C,MAAM,CAAC;MAClD,IAAI,CAACkE,UAAU,EAAE;MACjBA,UAAU,CAACpB,KAAK,GAAG7B,SAAS;IAC9B;EACF;EAEA,SAASL,qBAAqBA,CAACuD,MAAoB,EAAEC,MAAoB,EAAE;IACzE,IAAI,CAACD,MAAM,CAACxC,KAAK,GAAG1B,iBAAiB,CAACwD,uBAAuB,EAAE;MAC7D,MAAM,IAAIlB,KAAK,CAAC,oDAAoD,CAAC;IACvE;IAEA5B,0BAA0B,CAACyD,MAAM,CAAC;IAElC7E,MAAM,CAAC,MAAM;MACX,KAAK,MAAM8E,GAAG,IAAIF,MAAM,CAACT,mBAAmB,CAAEpC,OAAO,EAAE;QACrD,IAAI8C,MAAM,CAACV,mBAAmB,CAAEpC,OAAO,CAACqB,GAAG,CAAC0B,GAAG,CAAC,EAAE;UAChD;QACF;QAEA9D,YAAY,CAAC;UACXc,IAAI,EAAEgD,GAAG,CAAChD,IAAI;UACdoB,KAAK,EAAE2B,MAAM,CAACV,mBAAoB;UAClC;UACAV,OAAO,EAAE,CAAChD,MAAM,CAACoE,MAAM,CAACpB,OAAO,CAAC,CAAC,CAAC,EAAEqB,GAAG,CAACrB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;UACpDrB,KAAK,EAAE0C,GAAG,CAAC1C,KAAK,GAAG1B,iBAAiB,CAACoD;QACvC,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ;EAEA,SAAS3C,wBAAwBA,CAAC6C,MAAoB,EAAE;IACtD,IAAIA,MAAM,CAAC5B,KAAK,GAAG1B,iBAAiB,CAAC2D,qBAAqB,EAAE;MAC1D;MACA;IACF;IAEAL,MAAM,CAAC5B,KAAK,IAAI1B,iBAAiB,CAAC2D,qBAAqB;IACvDL,MAAM,CAACM,iBAAiB,GAAGvD,WAAW,CAAC;MACrCc,IAAI,EAAE,QAAQ;MACdC,IAAI,EAAE,gBAAgB;MACtBK,MAAM,EAAET,SAAS;MACjBmB,KAAK,EAAEmB,MAAM;MACb5B,KAAK,EAAEzB,gBAAgB,CAACkD;IAC1B,CAAC,CAAC;EACJ;EAEA,SAASzC,0BAA0BA,CAAC4C,MAAoB,EAAE;IACxD,IAAIA,MAAM,CAAC5B,KAAK,GAAG1B,iBAAiB,CAACwD,uBAAuB,EAAE;MAC5D;MACA;IACF;IAEAF,MAAM,CAAC5B,KAAK,IAAI1B,iBAAiB,CAACwD,uBAAuB;IACzDF,MAAM,CAACG,mBAAmB,GAAGpD,WAAW,CAAC;MACvCc,IAAI,EAAE,QAAQ;MACdC,IAAI,EAAE,kBAAkB;MACxBK,MAAM,EAAET,SAAS;MACjBmB,KAAK,EAAEmB,MAAM;MACb5B,KAAK,EAAEzB,gBAAgB,CAACyD;IAC1B,CAAC,CAAC;EACJ;EAEA,SAASlD,uBAAuBA,CAI9B6D,YAAgC,EAChCC,kBAAsC,EACtCC,GAAW,EACyC;IACpD,MAAMC,iBAAiB,GAAG1C,iBAAiB,CAACc,GAAG,CAAC2B,GAAG,CAAC;IAEpD,IAAIC,iBAAiB,EAAE;MACrB;MACA,OAAO/E,UAAU,CACfgF,WAAW,CAACJ,YAAY,EAAEC,kBAAkB,EAAEE,iBAAiB,CACjE,CAAC;IACH,CAAC,MAAM;MACL,OAAOE,aAAa,CAACH,GAAG,EAAGjB,MAAM,IAAK;QACpC,IAAIA,MAAM,EAAE;UACV,OAAOmB,WAAW,CAACJ,YAAY,EAAEC,kBAAkB,EAAEhB,MAAM,CAAC;QAC9D,CAAC,MAAM;UACL,OAAOtC,SAAS;QAClB;MACF,CAAC,CAAC;IACJ;EACF;EAEA,SAASyD,WAAWA,CAIlBJ,YAAgC,EAChCC,kBAAsC,EACtCK,qBAA8B,EACK;IACnC,IAAIA,qBAAqB,CAACjD,KAAK,GAAG1B,iBAAiB,CAACoD,cAAc,EAAE;MAClE,IAAIuB,qBAAqB,CAACnC,KAAK,KAAK8B,kBAAkB,EAAE;QACtD,MAAM,IAAIhC,KAAK,CACb,6DACF,CAAC;MACH;;MAEA;MACA,OAAO;QACLsC,MAAM,EAAE,EAAE;QACVC,QAAQ,EAAE,EAAE;QACZC,UAAU,EAAE,CAACH,qBAAqB,CAAC;QACnCI,WAAW,EAAET,kBAAkB;QAC/BE,iBAAiB,EAAEG;MACrB,CAAC;IACH;IAEA,MAAM;MAAEG,UAAU;MAAEE,UAAU,EAAEC;IAAY,CAAC,GAAGC,mBAAmB,CAGjEP,qBAAqB,CAAC;IACxB,MAAMQ,YAAY,GAAGH,UAAU,CAACX,YAAY,CAAC;IAC7C,IAAIe,SAAS,GAAG,CAAC;IACjB,OACEH,WAAW,CAACG,SAAS,CAAC,IACtBD,YAAY,CAACC,SAAS,CAAC,IACvBH,WAAW,CAACG,SAAS,CAAC,KAAKD,YAAY,CAACC,SAAS,CAAC,EAClD;MACAA,SAAS,EAAE;IACb;IAEA,MAAMR,MAAM,GAAGO,YAAY,CAACE,KAAK,CAACD,SAAS,CAAC;IAC5C,MAAMP,QAAQ,GAAGI,WAAW,CAACI,KAAK,CAACD,SAAS,CAAC;IAC7C,MAAML,WAAW,GAAGE,WAAW,CAACG,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI;IAEtD,OAAO;MACLR,MAAM;MACNC,QAAQ;MACRC,UAAU;MACVC,WAAW;MACXP,iBAAiB,EACfM,UAAU,IAAIA,UAAU,CAACQ,MAAM,GAAG,CAAC,GACjCR,UAAU,CAACS,EAAE,CAAC,CAAC,CAAC,GAChBZ;IACN,CAAC;EACH;EAEA,SAASO,mBAAmBA,CAG1B5B,MAAe,EAAE;IACjB,MAAMkC,MAAM,GAAG;MACbV,UAAU,EAAE,EAAe;MAC3BE,UAAU,EAAE;IACd,CAAC;IAED,IAAIS,aAAa,GAAGnC,MAAM;IAC1B,OAAOmC,aAAa,CAAC/D,KAAK,GAAG1B,iBAAiB,CAACqD,YAAY,EAAE;MAC3DmC,MAAM,CAACV,UAAU,CAACY,OAAO,CAACD,aAAa,CAAC;MACxCA,aAAa,GAAGA,aAAa,CAACjD,KAAK,CAACL,KAAiB;IACvD;IAEA,IAAImB,MAAM,CAAC5B,KAAK,GAAG1B,iBAAiB,CAACqD,YAAY,EAAE;MACjDmC,MAAM,CAACV,UAAU,CAACY,OAAO,CAACD,aAAa,CAAC;IAC1C;IAEA,MAAME,UAAU,GAAGF,aAAa,CAACjD,KAAe;IAChDgD,MAAM,CAACR,UAAU,GAAGA,UAAU,CAACW,UAAU,CAAC;IAE1C,OAAOH,MAAM;EACf;EAEA,SAASR,UAAUA,CAA6BxC,KAAyB,EAAE;IACzE,MAAMoD,KAAK,GAAG,EAAE;IAChB,OAAOpD,KAAK,EAAE;MACZoD,KAAK,CAACF,OAAO,CAAClD,KAAK,CAAC;MACpBA,KAAK,GAAGA,KAAK,CAACf,MAAgB;IAChC;IAEA,OAAOmE,KAAK;EACd;EAEA,SAAS9B,UAAUA,CAACR,MAAoB,EAAE;IACxC,MAAMd,KAAK,GAAGc,MAAM,CAACd,KAAK;IAC1B,MAAMqD,aAAa,GAAG,CAAC,GAAGrD,KAAK,CAACnB,OAAO,CAAC,CAACyE,MAAM,CAC5C1B,GAAG,IAAKA,GAAG,CAACb,YAAY,KAAKD,MAAM,CAAClC,IACvC,CAAC;IAED,IAAIyE,aAAa,CAACP,MAAM,GAAG,CAAC,EAAE;MAC5B;IACF;IAEA,IAAInF,OAAO,CAAC4F,oBAAoB,EAAE;MAChC5F,OAAO,CAAC4F,oBAAoB,CAACzC,MAAM,CAAClC,IAAI,EAAEyE,aAAa,CAAC;IAC1D,CAAC,MAAM;MACL;MACA,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,aAAa,CAACP,MAAM,EAAEU,CAAC,EAAE,EAAE;QAC7CH,aAAa,CAACG,CAAC,CAAC,CAAC5E,IAAI,GAAGyE,aAAa,CAACG,CAAC,CAAC,CAACzC,YAAY,GAAG,GAAG,IAAIyC,CAAC,GAAG,CAAC,CAAC;MACvE;IACF;EACF;EAEA,SAAStB,aAAaA,CAIpB3E,MAAc,EACdkG,EAEkD,EACS;IAC3D,IAAIC,UAAU;IACd,IAAInE,mBAAmB,CAACW,GAAG,CAAC3C,MAAM,CAAC,EAAE;MACnCmG,UAAU,GAAGnE,mBAAmB,CAACa,GAAG,CAAC7C,MAAM,CAAyB;IACtE,CAAC,MAAM;MACLmG,UAAU,GAAGzG,UAAU,CAAC,CAAC;MACzBsC,mBAAmB,CAAC8B,GAAG,CAAC9D,MAAM,EAAEmG,UAAU,CAAC;IAC7C;IAEA,OAAO7G,QAAQ,CAAC,MAAM4G,EAAE,CAACC,UAAU,CAACrD,KAAK,CAAC,CAAC;EAC7C;EAEA,SAASkB,YAAYA,CAACT,MAAoB,EAAQ;IAChDhE,MAAM,CAAC,MAAM;MACX,KAAK,MAAMS,MAAM,IAAIuD,MAAM,CAACP,OAAO,EAAE;QACnC;QACAjB,iBAAiB,CAAC+B,GAAG,CAAC9D,MAAM,EAAEuD,MAAM,CAAC;QACrC,IAAIvB,mBAAmB,CAACW,GAAG,CAAC3C,MAAM,CAAC,EAAE;UACnC,MAAMoG,MAAM,GAAGpE,mBAAmB,CAACa,GAAG,CAAC7C,MAAM,CAAE;UAC/CoG,MAAM,CAACtD,KAAK,GAAGS,MAAM;QACvB;;QAEA;QACA,MAAM8C,YAAY,GAAGpE,kBAAkB,CAACY,GAAG,CAACU,MAAM,CAACd,KAAK,CAAC;QACzD,IAAI4D,YAAY,EAAE;UAChB,MAAMC,WAAW,GAAGD,YAAY,CAACxD,GAAG,CAACU,MAAM,CAAClC,IAAI,CAAC;UACjD,IAAIiF,WAAW,EAAE;YACfA,WAAW,CAACxD,KAAK,GAAGS,MAAM;UAC5B;QACF;MACF;IACF,CAAC,CAAC;EACJ;EAEA,SAAS1C,cAAcA,CACrB4B,KAA8B,EAC9BpB,IAAY,EACc;IAC1B,OAAOtB,OAAO,CAAC,MAAM;MACnB0C,KAAK,KAAKpC,MAAM,CAACW,WAAW;MAC5B,KAAK,MAAMqD,GAAG,IAAI5B,KAAK,CAACnB,OAAO,EAAE;QAC/B,IAAI+C,GAAG,CAAChD,IAAI,KAAKA,IAAI,EAAE;UACrB,OAAO3B,UAAU,CAAC2E,GAAG,CAAC;QACxB;MACF;MAEA,MAAMkC,MAAM,GAAG7G,UAAU,CAA2BuB,SAAS,CAAC;MAC9D,IAAI,CAACgB,kBAAkB,CAACU,GAAG,CAACF,KAAK,CAAC,EAAE;QAClCR,kBAAkB,CAAC6B,GAAG,CAACrB,KAAK,EAAE,IAAIjB,GAAG,CAAC,CAAC,CAAC;MAC1C;MACA,MAAMoB,OAAO,GAAGX,kBAAkB,CAACY,GAAG,CAACJ,KAAK,CAAE;MAC9CG,OAAO,CAACkB,GAAG,CAACzC,IAAI,EAAEkF,MAAM,CAAC;MACzB,OAAOA,MAAM;IACf,CAAC,CAAC;EACJ;EAEA,SAASzF,aAAaA,CACpB2B,KAA8B,EAC9BpB,IAAY,EACa;IACzB,OAAOtB,OAAO,CAAC,MAAM;MACnB0C,KAAK,KAAKpC,MAAM,CAACW,WAAW;MAC5B,KAAK,MAAMwF,KAAK,IAAI/D,KAAK,CAAChB,QAAQ,EAAE;QAClC,IAAI+E,KAAK,CAACnF,IAAI,KAAKA,IAAI,EAAE;UACvB,OAAO5B,GAAG,CAAC+G,KAAK,CAAC;QACnB;MACF;MAEA,MAAMC,QAAQ,GAAG/G,UAAU,CAA0BuB,SAAS,CAAC;MAC/D,IAAI,CAACiB,iBAAiB,CAACS,GAAG,CAACF,KAAK,CAAC,EAAE;QACjCP,iBAAiB,CAAC4B,GAAG,CAACrB,KAAK,EAAE,IAAIjB,GAAG,CAAC,CAAC,CAAC;MACzC;MACA,MAAMoB,OAAO,GAAGV,iBAAiB,CAACW,GAAG,CAACJ,KAAK,CAAE;MAC7CG,OAAO,CAACkB,GAAG,CAACzC,IAAI,EAAEoF,QAAQ,CAAC;MAE3B,OAAOA,QAAQ;IACjB,CAAC,CAAC;EACJ;EAEA,SAASC,qBAAqBA,CAACjE,KAAkB,EAAEpB,IAAY,EAAE;IAC/D,OAAOtB,OAAO,CAAC,MAAM;MACnB,OAAOT,QAAQ,CAAC,MAAM;QACpB,OACEuB,cAAc,CAAC4B,KAAK,EAAEpB,IAAI,CAAC,CAACyB,KAAK,IAAIhC,aAAa,CAAC2B,KAAK,EAAEpB,IAAI,CAAC,CAACyB,KAAK;MAEzE,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA,SAAS/B,UAAUA,CACjB4F,GAAW,EACkC;IAC7C,MAAMC,KAAK,GAAGD,GAAG,CAACE,KAAK,CAAC,cAAc,CAAC;IACvC,IAAI,CAACD,KAAK,EAAE,OAAOnH,GAAG,CAACwB,SAAS,CAAC;IACjC,IAAI2F,KAAK,CAACrB,MAAM,KAAK,CAAC,EAAE,OAAO9F,GAAG,CAACwB,SAAS,CAAC;IAE7C2F,KAAK,CAACjB,OAAO,CAAC,GAAG,CAAC;IAElB,OAAOrG,QAAQ,CAAC,MAAM;MACpB,IAAIwH,IAA4C,GAAGzG,MAAM,CAACW,WAAW;MAErE,KAAK,IAAIiF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGW,KAAK,CAACrB,MAAM,EAAEU,CAAC,IAAI,CAAC,EAAE;QACxC,IAAIa,IAAI,KAAK7F,SAAS,EAAE;UACtB;QACF;QAEA,MAAM8F,EAAE,GAAGH,KAAK,CAACX,CAAC,CAAC;QACnB,MAAM5E,IAAI,GAAGuF,KAAK,CAACX,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAIc,EAAE,KAAK,GAAG,EAAE;UACd,IAAI,cAAc,IAAID,IAAI,EAAE;YAC1B,IAAI,CAACA,IAAI,CAACjD,iBAAiB,EAAE;cAC3B,OAAO5C,SAAS;YAClB;YAEA6F,IAAI,GAAGjG,cAAc,CAClBiG,IAAI,CAAkBjD,iBAAiB,EACxCxC,IACF,CAAC,CAACyB,KAAK;UACT,CAAC,MAAM;YACLgE,IAAI,GAAGJ,qBAAqB,CAACI,IAAI,EAAEzF,IAAI,CAAC,CAACyB,KAAK;UAChD;QACF,CAAC,MAAM,IAAIiE,EAAE,KAAK,GAAG,EAAE;UACrB,IAAI,cAAc,IAAID,IAAI,EAAE;YAC1B,IAAI,CAACA,IAAI,CAACpD,mBAAmB,EAAE;cAC7B,OAAOzC,SAAS;YAClB;YACA6F,IAAI,GAAGjG,cAAc,CAClBiG,IAAI,CAAkBpD,mBAAmB,EAC1CrC,IACF,CAAC,CAACyB,KAAK;UACT,CAAC,MAAM;YACL,OAAO7B,SAAS;UAClB;QACF;MACF;MAEA,OAAO6F,IAAI;IACb,CAAC,CAAC;EACJ;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,OAAOA,CAGrBhH,MAAc,EAA0C;EACxD,MAAMyC,KAAK,GAAG5C,QAAQ,CAAC,CAAC,IAAIF,SAAS,CAAC,CAAC,CAACqB,WAAW;EACnD,MAAMiG,WAAW,GAAGrH,cAAc,CAAC,CAAC;EACpC,MAAMS,MAAM,GAAGoC,KAAK,CAACpC,MAAM;EAE3B,OAAOA,MAAM,CAACI,uBAAuB,CACnCgC,KAAK,EACLwE,WAAW,EAAEC,eAAe,EAC5BlH,MACF,CAAC;AACH;AAEA,MAAMmH,mBAAkC,GAAGC,MAAM,CAAC,CAAC;AACnD,OAAO,SAASC,gBAAgBA,CAC9BC,OAAsB,EACqB;EAC3C,OAAOA,OAAO,CAACH,mBAAmB,CAAC;AACrC;AAEA,OAAO,SAASI,sBAAsBA,CAAA,EAA+B;EACnE,OAAOJ,mBAAmB;AAC5B;AAMA,SAASrF,WAAWA,CAACR,OAA0B,EAAqB;EAClE,OAAOxB,IAAI,CAAC,MAAM;IAChB,MAAM0H,KAAK,GAAG,IAAIrG,GAAG,CAAS,CAAC;IAC/B,KAAK,MAAMkD,GAAG,IAAI/C,OAAO,CAACmG,MAAM,CAAC,CAAC,EAAE;MAClCD,KAAK,CAAC9E,GAAG,CAAC2B,GAAG,CAAChD,IAAI,CAAC;IACrB;IAEA,OAAOmG,KAAK;EACd,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASzE,eAAeA,CAC7BpB,KAAwB,GAAG1B,iBAAiB,CAAC2B,IAAI,EACjD;EACA,IAAI,CAACD,KAAK,GAAG1B,iBAAiB,CAACkD,MAAM,MAAM,CAAC,EAAE;IAC5C,OAAOtD,QAAQ,CAAC,CAAC;EACnB,CAAC,MAAM;IACL,MAAMoH,WAAW,GAAGrH,cAAc,CAAC,CAAC;IACpC,IAAI,CAACqH,WAAW,EAAE;MAChB,MAAM,IAAI1E,KAAK,CAAC,sDAAsD,CAAC;IACzE;IACA,IAAIZ,KAAK,GAAG1B,iBAAiB,CAACoD,cAAc,EAAE;MAC5C,OAAO4D,WAAW,CAACC,eAAe;IACpC,CAAC,MAAM;MACL,OAAOD,WAAW,CAACS,aAAa;IAClC;EACF;AACF","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":[]}
@@ -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,YAoBlD"}
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;
5
- }
6
- export interface IndentState {
7
- level: number;
8
- indent: string;
9
- indentString: string;
10
- noLeading?: boolean;
3
+ children: Children;
4
+ nobreak?: boolean;
5
+ break?: "space" | "soft" | "hard";
6
+ trailingBreak?: boolean;
11
7
  }
12
8
  export declare function Indent(props: IndentProps): Children;
13
9
  //# sourceMappingURL=Indent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Indent.d.ts","sourceRoot":"","sources":["../../../src/components/Indent.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,YAgBxC"}
1
+ {"version":3,"file":"Indent.d.ts","sourceRoot":"","sources":["../../../src/components/Indent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AACD,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,YAiBxC"}