@alloy-js/core 0.7.0 → 0.9.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 (131) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/babel.config.cjs +1 -4
  3. package/dist/src/binder.d.ts +14 -12
  4. package/dist/src/binder.d.ts.map +1 -1
  5. package/dist/src/binder.js +26 -23
  6. package/dist/src/binder.js.map +1 -1
  7. package/dist/src/code.d.ts +11 -2
  8. package/dist/src/code.d.ts.map +1 -1
  9. package/dist/src/code.js +27 -2
  10. package/dist/src/code.js.map +1 -1
  11. package/dist/src/components/Block.d.ts +2 -2
  12. package/dist/src/components/Block.d.ts.map +1 -1
  13. package/dist/src/components/Block.js +6 -5
  14. package/dist/src/components/Block.js.map +1 -1
  15. package/dist/src/components/Declaration.d.ts +31 -7
  16. package/dist/src/components/Declaration.d.ts.map +1 -1
  17. package/dist/src/components/Declaration.js +15 -7
  18. package/dist/src/components/Declaration.js.map +1 -1
  19. package/dist/src/components/For.d.ts +8 -2
  20. package/dist/src/components/For.d.ts.map +1 -1
  21. package/dist/src/components/For.js +2 -3
  22. package/dist/src/components/For.js.map +1 -1
  23. package/dist/src/components/Indent.d.ts +29 -1
  24. package/dist/src/components/Indent.d.ts.map +1 -1
  25. package/dist/src/components/Indent.js +7 -2
  26. package/dist/src/components/Indent.js.map +1 -1
  27. package/dist/src/components/List.d.ts +7 -3
  28. package/dist/src/components/List.d.ts.map +1 -1
  29. package/dist/src/components/List.js +1 -16
  30. package/dist/src/components/List.js.map +1 -1
  31. package/dist/src/components/MemberDeclaration.d.ts +35 -5
  32. package/dist/src/components/MemberDeclaration.d.ts.map +1 -1
  33. package/dist/src/components/MemberDeclaration.js +18 -7
  34. package/dist/src/components/MemberDeclaration.js.map +1 -1
  35. package/dist/src/components/MemberScope.d.ts +2 -0
  36. package/dist/src/components/MemberScope.d.ts.map +1 -1
  37. package/dist/src/components/MemberScope.js +2 -0
  38. package/dist/src/components/MemberScope.js.map +1 -1
  39. package/dist/src/components/Prose.d.ts +10 -0
  40. package/dist/src/components/Prose.d.ts.map +1 -0
  41. package/dist/src/components/Prose.js +23 -0
  42. package/dist/src/components/Prose.js.map +1 -0
  43. package/dist/src/components/Scope.d.ts +33 -2
  44. package/dist/src/components/Scope.d.ts.map +1 -1
  45. package/dist/src/components/Scope.js +20 -4
  46. package/dist/src/components/Scope.js.map +1 -1
  47. package/dist/src/components/SourceFile.d.ts +5 -0
  48. package/dist/src/components/SourceFile.d.ts.map +1 -1
  49. package/dist/src/components/SourceFile.js +10 -1
  50. package/dist/src/components/SourceFile.js.map +1 -1
  51. package/dist/src/components/index.d.ts +1 -0
  52. package/dist/src/components/index.d.ts.map +1 -1
  53. package/dist/src/components/index.js +1 -0
  54. package/dist/src/components/index.js.map +1 -1
  55. package/dist/src/components/stc/index.d.ts +19 -95
  56. package/dist/src/components/stc/index.d.ts.map +1 -1
  57. package/dist/src/components/stc/index.js +3 -6
  58. package/dist/src/components/stc/index.js.map +1 -1
  59. package/dist/src/components/stc/sti.d.ts +9 -0
  60. package/dist/src/components/stc/sti.d.ts.map +1 -0
  61. package/dist/src/components/stc/sti.js +10 -0
  62. package/dist/src/components/stc/sti.js.map +1 -0
  63. package/dist/src/context/assignment.d.ts +6 -0
  64. package/dist/src/context/assignment.d.ts.map +1 -1
  65. package/dist/src/context/assignment.js +7 -0
  66. package/dist/src/context/assignment.js.map +1 -1
  67. package/dist/src/context.d.ts +2 -0
  68. package/dist/src/context.d.ts.map +1 -1
  69. package/dist/src/context.js +12 -9
  70. package/dist/src/context.js.map +1 -1
  71. package/dist/src/index.d.ts +2 -1
  72. package/dist/src/index.d.ts.map +1 -1
  73. package/dist/src/index.js +2 -1
  74. package/dist/src/index.js.map +1 -1
  75. package/dist/src/jsx-runtime.d.ts +93 -2
  76. package/dist/src/jsx-runtime.d.ts.map +1 -1
  77. package/dist/src/jsx-runtime.js +51 -3
  78. package/dist/src/jsx-runtime.js.map +1 -1
  79. package/dist/src/stc.d.ts +5 -7
  80. package/dist/src/stc.d.ts.map +1 -1
  81. package/dist/src/stc.js +11 -23
  82. package/dist/src/stc.js.map +1 -1
  83. package/dist/src/sti.d.ts +11 -0
  84. package/dist/src/sti.d.ts.map +1 -0
  85. package/dist/src/sti.js +31 -0
  86. package/dist/src/sti.js.map +1 -0
  87. package/dist/src/tap.d.ts +69 -6
  88. package/dist/src/tap.d.ts.map +1 -1
  89. package/dist/src/tap.js +70 -0
  90. package/dist/src/tap.js.map +1 -1
  91. package/dist/src/utils.d.ts +5 -0
  92. package/dist/src/utils.d.ts.map +1 -1
  93. package/dist/src/utils.js +20 -0
  94. package/dist/src/utils.js.map +1 -1
  95. package/dist/test/components/prose.test.d.ts +2 -0
  96. package/dist/test/components/prose.test.d.ts.map +1 -0
  97. package/dist/test/props-with-defaults.test.d.ts +2 -0
  98. package/dist/test/props-with-defaults.test.d.ts.map +1 -0
  99. package/dist/tsconfig.tsbuildinfo +1 -1
  100. package/package.json +3 -3
  101. package/src/binder.ts +44 -29
  102. package/src/code.ts +37 -3
  103. package/src/components/Block.tsx +3 -6
  104. package/src/components/Declaration.tsx +43 -11
  105. package/src/components/For.tsx +16 -4
  106. package/src/components/Indent.tsx +38 -5
  107. package/src/components/List.tsx +14 -40
  108. package/src/components/MemberDeclaration.tsx +51 -12
  109. package/src/components/MemberScope.tsx +2 -0
  110. package/src/components/Prose.tsx +35 -0
  111. package/src/components/Scope.tsx +45 -5
  112. package/src/components/SourceFile.tsx +10 -0
  113. package/src/components/index.tsx +1 -0
  114. package/src/components/stc/index.ts +3 -6
  115. package/src/components/stc/sti.ts +10 -0
  116. package/src/context/assignment.ts +7 -1
  117. package/src/context.ts +15 -11
  118. package/src/index.ts +3 -0
  119. package/src/jsx-runtime.ts +168 -3
  120. package/src/stc.ts +38 -59
  121. package/src/sti.ts +63 -0
  122. package/src/tap.ts +69 -6
  123. package/src/{utils.ts → utils.tsx} +45 -0
  124. package/temp/api.json +1657 -440
  125. package/test/components/declaration.test.tsx +1 -1
  126. package/test/components/prose.test.tsx +36 -0
  127. package/test/components/source-file.test.tsx +17 -0
  128. package/test/control-flow/for.test.tsx +17 -0
  129. package/test/props-with-defaults.test.ts +97 -0
  130. package/test/symbols.test.ts +0 -25
  131. package/vitest.config.ts +2 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # Changelog - @alloy-js/core
2
2
 
3
+ ## 0.9.0
4
+
5
+ ### Features
6
+
7
+ - [#82](https://github.com/alloy-framework/alloy/pull/82) The For component's each prop now supports iterators.
8
+ - [#80](https://github.com/alloy-framework/alloy/pull/80) Add getSymbolForRefkey to binder.
9
+ - [#80](https://github.com/alloy-framework/alloy/pull/80) isComponentCreator now takes an optional Component parameter which allows you to check if a child is a specific component.
10
+ - [#80](https://github.com/alloy-framework/alloy/pull/80) Export `toRef` and `toRefs` utility functions for constructing refs from reactives.
11
+
12
+
13
+ ## 0.8.0
14
+
15
+ ### Bug Fixes
16
+
17
+ - [#76](https://github.com/alloy-framework/alloy/pull/76) No longer validates that instance member symbols are referenced inside the instance member scope. Languages may allow refernecing instance member symbols in a variety of ways (e.g. TypeScript allows referencing private instance symbols in a private instance symbol scope).
18
+
19
+ ### Features
20
+
21
+ - [#67](https://github.com/alloy-framework/alloy/pull/67) Add metadata record to symbols and scopes for applications to store arbitrary information about them. Various declaration and scope forms have an additional prop to set this metadata.
22
+ - [#67](https://github.com/alloy-framework/alloy/pull/67) Scope name is now optional. Many scopes don't have names.
23
+ - [#74](https://github.com/alloy-framework/alloy/pull/74) Add `defaultProps` to allow setting default prop values.
24
+ - [#66](https://github.com/alloy-framework/alloy/pull/66) Add `text` helper that processes a string template similar to a JSX template with respect to whitespace handling.
25
+ - [#66](https://github.com/alloy-framework/alloy/pull/66) Add `ProviderStc` to context for providing context inside string template components.
26
+ - [#68](https://github.com/alloy-framework/alloy/pull/68) Add `doubleHardline` as a list joiner boolean prop. Useful for markdown paragraphs or separating declarations with a blank line.
27
+ - [#69](https://github.com/alloy-framework/alloy/pull/69) Add SourceFile `header` prop.
28
+ - [#71](https://github.com/alloy-framework/alloy/pull/71) Add `skipFalsy` prop to `For` component for controlling whether to skip falsy values. Previously this defaulted to true, it now defaults to false (which likely just fixes bugs).
29
+ - [#78](https://github.com/alloy-framework/alloy/pull/78) Add `Prose` component for wrapping string paragraphs at the line width.
30
+
31
+ ### Breaking Changes
32
+
33
+ - [#67](https://github.com/alloy-framework/alloy/pull/67) Refkeys no longer default to `refkey(name)`. This behavior is just not very useful and leads to some very confusing behavior especially when multiple same-named symbols exist within a single emit. The old behavior can be achieved by passing the `refkey={refkey(name)}` prop, but this is not recommended.
34
+ - [#67](https://github.com/alloy-framework/alloy/pull/67) DeclarationProps, MemberDeclarationProps, and ScopeProps are now unions in order to properly type check and document the distinct usages of either passing a symbol or props necessary to construct a symbol. Anyone extending these interfaces will need to make a similar split.
35
+ - [#74](https://github.com/alloy-framework/alloy/pull/74) Remove plural `refkeys` prop. Can now pass an array for the `refkey` prop.
36
+ - [#68](https://github.com/alloy-framework/alloy/pull/68) Indent component no longer takes `break` prop. Instead, pass `hardline`, `softline`, `line`, or `literalline` boolean props.
37
+
38
+
3
39
  ## 0.7.0
4
40
 
5
41
  ### Bug Fixes
package/babel.config.cjs CHANGED
@@ -1,7 +1,4 @@
1
1
  module.exports = {
2
2
  sourceMaps: true,
3
- presets: [
4
- "@babel/preset-typescript",
5
- ["@alloy-js/babel-preset"],
6
- ],
3
+ presets: ["@babel/preset-typescript", ["@alloy-js/babel-preset"]],
7
4
  };
@@ -100,6 +100,10 @@ export interface OutputSymbol {
100
100
  * one static member symbol in the output (i.e., the symbol is unique).
101
101
  */
102
102
  staticMemberScope?: OutputScope;
103
+ /**
104
+ * Additional custom metadata about this symbol.
105
+ */
106
+ metadata: Record<string, unknown>;
103
107
  }
104
108
  /**
105
109
  * Flags that describe an output scope.
@@ -143,7 +147,7 @@ export interface OutputScope {
143
147
  * The kind of scope. Subtypes will likely provide a set of known scope kinds.
144
148
  * The kind is not used by the binder itself.
145
149
  */
146
- kind: string;
150
+ kind?: string;
147
151
  /**
148
152
  * The name of the scope.
149
153
  */
@@ -185,9 +189,9 @@ export interface OutputScope {
185
189
  export type CreateSymbolOptions<T extends OutputSymbol = OutputSymbol> = {
186
190
  name: string;
187
191
  scope?: OutputScope;
188
- refkey?: Refkey;
189
- refkeys?: Refkey[];
192
+ refkey?: Refkey | Refkey[];
190
193
  flags?: OutputSymbolFlags;
194
+ metadata?: Record<string, unknown>;
191
195
  } & Omit<T, keyof OutputSymbol>;
192
196
  export type CreateScopeOptions<T extends OutputScope = OutputScope> = {
193
197
  kind: T["kind"];
@@ -195,6 +199,7 @@ export type CreateScopeOptions<T extends OutputScope = OutputScope> = {
195
199
  parent?: OutputScope | undefined;
196
200
  flags?: OutputScopeFlags;
197
201
  owner?: OutputSymbol;
202
+ metadata?: Record<string, unknown>;
198
203
  } & Omit<T, keyof OutputScope>;
199
204
  /**
200
205
  * The binder tracks all output scopes and symbols. Scopes are nested containers
@@ -253,6 +258,7 @@ export interface Binder {
253
258
  * binder.
254
259
  */
255
260
  resolveDeclarationByKey<TScope extends OutputScope = OutputScope, TSymbol extends OutputSymbol = OutputSymbol>(currentScope: TScope | undefined, currentMemberScope: TScope | undefined, key: Refkey): Ref<ResolutionResult<TScope, TSymbol> | undefined>;
261
+ getSymbolForRefkey<TSymbol extends OutputSymbol>(refkey: Refkey): Ref<TSymbol | undefined>;
256
262
  /**
257
263
  * Find a symbol with a given name in the given scope. Returns a ref
258
264
  * for the symbol, such that when the symbol is available, the ref value
@@ -294,15 +300,11 @@ export interface Binder {
294
300
  * When we resolve the refkey for `bar` from within `namespace scope 2`, we will get the following
295
301
  * resolution result:
296
302
  *
297
- * **targetDeclaration**: symbol bar, the symbol we resolved.
298
- *
299
- * **commonScope**: global scope, because this is the most specific scope that contains both the declaration and the reference.
300
- *
301
- * **pathUp**: [namespace scope 2], because this is the scope between the reference and the common scope.
302
- *
303
- * **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration
304
- *
305
- * **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.
303
+ * * **targetDeclaration**: symbol bar, the symbol we resolved.
304
+ * * **commonScope**: global scope, because this is the most specific scope that contains both the declaration and the reference.
305
+ * * **pathUp**: [namespace scope 2], because this is the scope between the reference and the common scope.
306
+ * * **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration
307
+ * * **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.
306
308
  */
307
309
  export interface ResolutionResult<TScope extends OutputScope, TSymbol extends OutputSymbol> {
308
310
  /**
@@ -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":"AAAA,OAAO,EAKL,GAAG,EAGJ,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAAU,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,IAAI,IAAI;IAER;;;OAGG;IACH,uBAAuB,IAAS;IAEhC;;;OAGG;IACH,qBAAqB,IAAS;IAE9B;;OAEG;IACH,eAAe,IAAkD;IAEjE;;;OAGG;IACH,cAAc,IAAS;IAEvB;;;OAGG;IACH,YAAY,IAAS;IAErB;;OAEG;IACH,MAAM,KAAgC;CACvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,iBAAiB,CAAC;IAEzB;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAElC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAEhC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,IAAI,IAAI;IAER;;OAEG;IACH,iBAAiB,IAAS;IAE1B;;OAEG;IACH,mBAAmB,IAAS;IAE5B;;;OAGG;IACH,WAAW,IAA0C;CACtD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,gBAAgB,CAAC;IAExB;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAE3B;;OAEG;IACH,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAE3C;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAE3B;;OAEG;IACH,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAEhC;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,cAAc,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,YAAY,CAAC,CAAC;AAEhC,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI;IACpE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,WAAW,CAAC,CAAC;AAE/B;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEnE;;;OAGG;IACH,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEtE;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAEzC;;;;;;OAMG;IACH,qBAAqB,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IAE9E;;;;OAIG;IACH,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAErD;;;;OAIG;IACH,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAEvD;;;;;;OAMG;IACH,uBAAuB,CACrB,MAAM,SAAS,WAAW,GAAG,WAAW,EACxC,OAAO,SAAS,YAAY,GAAG,YAAY,EAE3C,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,GAAG,EAAE,MAAM,GACV,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;IAEtD,kBAAkB,CAAC,OAAO,SAAS,YAAY,EAC7C,MAAM,EAAE,MAAM,GACb,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAE5B;;;;OAIG;IACH,cAAc,CACZ,MAAM,SAAS,WAAW,GAAG,WAAW,EACxC,OAAO,SAAS,YAAY,GAAG,YAAY,EAE3C,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,IAAI,EAAE,MAAM,GACX,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAE5B,aAAa,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW,EACpD,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,IAAI,EAAE,MAAM,GACX,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE3B;;;;;;;OAOG;IACH,UAAU,CACR,MAAM,SAAS,WAAW,GAAG,WAAW,EACxC,OAAO,SAAS,YAAY,GAAG,YAAY,EAE3C,GAAG,EAAE,MAAM,GACV,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;IAErC;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,gBAAgB,CAC/B,MAAM,SAAS,WAAW,EAC1B,OAAO,SAAS,YAAY;IAE5B;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,aAAa;IAC5B,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CAqiBtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,MAAM,SAAS,WAAW,EAC1B,OAAO,SAAS,YAAY,EAC5B,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUxD;AAED,QAAA,MAAM,mBAAmB,EAAE,OAAO,MAAiB,CAAC;AACpD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,GACrB,aAAa,CAAC,OAAO,mBAAmB,CAAC,CAE3C;AAED,wBAAgB,sBAAsB,IAAI,OAAO,mBAAmB,CAEnE;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAaD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,KAAK,GAAE,iBAA0C,2BAelD"}
@@ -100,15 +100,11 @@ export let OutputScopeFlags = /*#__PURE__*/function (OutputScopeFlags) {
100
100
  * When we resolve the refkey for `bar` from within `namespace scope 2`, we will get the following
101
101
  * resolution result:
102
102
  *
103
- * **targetDeclaration**: symbol bar, the symbol we resolved.
104
- *
105
- * **commonScope**: global scope, because this is the most specific scope that contains both the declaration and the reference.
106
- *
107
- * **pathUp**: [namespace scope 2], because this is the scope between the reference and the common scope.
108
- *
109
- * **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration
110
- *
111
- * **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.
103
+ * * **targetDeclaration**: symbol bar, the symbol we resolved.
104
+ * * **commonScope**: global scope, because this is the most specific scope that contains both the declaration and the reference.
105
+ * * **pathUp**: [namespace scope 2], because this is the scope between the reference and the common scope.
106
+ * * **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration
107
+ * * **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.
112
108
  */
113
109
 
114
110
  export function createOutputBinder(options = {}) {
@@ -117,6 +113,7 @@ export function createOutputBinder(options = {}) {
117
113
  createSymbol,
118
114
  deleteSymbol,
119
115
  resolveDeclarationByKey,
116
+ getSymbolForRefkey,
120
117
  addStaticMembersToSymbol,
121
118
  addInstanceMembersToSymbol,
122
119
  instantiateSymbolInto,
@@ -149,6 +146,7 @@ export function createOutputBinder(options = {}) {
149
146
  parent,
150
147
  owner,
151
148
  flags = OutputScopeFlags.None,
149
+ metadata = {},
152
150
  ...rest
153
151
  } = args;
154
152
  if (flags & OutputScopeFlags.MemberScope) {
@@ -179,6 +177,7 @@ export function createOutputBinder(options = {}) {
179
177
  flags,
180
178
  owner,
181
179
  binder,
180
+ metadata,
182
181
  ...rest,
183
182
  getSymbolNames: symbolNames(symbols)
184
183
  });
@@ -199,17 +198,11 @@ export function createOutputBinder(options = {}) {
199
198
  name,
200
199
  scope = useDefaultScope(args.flags),
201
200
  refkey,
202
- refkeys,
203
201
  flags = OutputSymbolFlags.None,
202
+ metadata = {},
204
203
  ...rest
205
204
  } = args;
206
- const allRefkeys = [];
207
- if (refkey) {
208
- allRefkeys.push(refkey);
209
- }
210
- if (refkeys) {
211
- allRefkeys.push(...refkeys);
212
- }
205
+ const allRefkeys = [refkey ?? []].flat();
213
206
  if (!scope) {
214
207
  throw new Error("No scope was provided and no scope could be found in context");
215
208
  }
@@ -228,6 +221,7 @@ export function createOutputBinder(options = {}) {
228
221
  refkeys: allRefkeys,
229
222
  binder,
230
223
  flags,
224
+ metadata,
231
225
  ...rest
232
226
  });
233
227
  if (args.flags && args.flags & OutputSymbolFlags.InstanceMemberContainer) {
@@ -280,8 +274,7 @@ export function createOutputBinder(options = {}) {
280
274
  createSymbol({
281
275
  name: sym.name,
282
276
  scope: target.instanceMemberScope,
283
- // todo: fix this or change this or something??
284
- refkeys: [refkey(target.refkeys[0], sym.refkeys[0])],
277
+ refkey: [refkey(target.refkeys[0], sym.refkeys[0])],
285
278
  flags: sym.flags | OutputSymbolFlags.InstanceMember
286
279
  });
287
280
  }
@@ -332,10 +325,6 @@ export function createOutputBinder(options = {}) {
332
325
  }
333
326
  function buildResult(currentScope, currentMemberScope, targetDeclarationBase) {
334
327
  if (targetDeclarationBase.flags & OutputSymbolFlags.InstanceMember) {
335
- if (targetDeclarationBase.scope !== currentMemberScope) {
336
- throw new Error("Cannot resolve member symbols from a different member scope");
337
- }
338
-
339
328
  // todo: handle referencing nested objects by refkey
340
329
  return {
341
330
  pathUp: [],
@@ -405,6 +394,20 @@ export function createOutputBinder(options = {}) {
405
394
  }
406
395
  }
407
396
  }
397
+ function getSymbolForRefkey(refkey) {
398
+ const symbol = knownDeclarations.get(refkey);
399
+ if (symbol) {
400
+ return shallowRef(symbol);
401
+ } else {
402
+ if (waitingDeclarations.has(refkey)) {
403
+ return waitingDeclarations.get(refkey);
404
+ } else {
405
+ const declSignal = shallowRef();
406
+ waitingDeclarations.set(refkey, declSignal);
407
+ return declSignal;
408
+ }
409
+ }
410
+ }
408
411
  function waitForRefkey(refkey, cb) {
409
412
  let declSignal;
410
413
  if (waitingDeclarations.has(refkey)) {
@@ -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","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
+ {"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","getSymbolForRefkey","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","metadata","rest","MemberScope","Error","parentScope","scope","add","has","waiting","get","value","useDefaultScope","allRefkeys","flat","Member","StaticMemberScope","InstanceMember","StaticMember","symbol","originalName","refkeys","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","declSignal","cb","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,12 @@
1
- import { Child, Children } from "./jsx-runtime.js";
2
- export declare function code(template: TemplateStringsArray, ...substitutions: Children[]): Child[];
1
+ import { Children } from "./jsx-runtime.js";
2
+ export declare function text(template: TemplateStringsArray, ...substitutions: Children[]): Children;
3
+ /**
4
+ * Turn the provided string template into Children by replacing literal line
5
+ * breaks with hardlines and automatically indenting indented content. Similar
6
+ * in spirit to the `<code>` element in HTML.
7
+ *
8
+ * @see {@link text} for a similar function which treats whitespace similar to
9
+ * JSX template bodies.
10
+ */
11
+ export declare function code(template: TemplateStringsArray, ...substitutions: Children[]): Children;
3
12
  //# sourceMappingURL=code.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEnD,wBAAgB,IAAI,CAClB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,QAAQ,CAmBV;AAQD;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAClB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,QAAQ,CAiFV"}
package/dist/src/code.js CHANGED
@@ -1,7 +1,32 @@
1
1
  // this code is split into a tokenizer and a parser of sorts because I feel like
2
- // it should be psosible to share logic between this and the babel transform, but
2
+ // it should be possible to share logic between this and the babel transform, but
3
3
  // this is an exercise for the future.
4
- import { hbr, indent } from "./components/stc/index.js";
4
+ import { hbr, indent } from "./components/stc/sti.js";
5
+ export function text(template, ...substitutions) {
6
+ const children = [];
7
+ // push the literal parts and the substitutions into the children array. The
8
+ // first part has all leading whitespace removed, the last part has all
9
+ // trailing whitespace removed, and each part in the middle replaces any
10
+ // amount of whitespace with a single space.
11
+
12
+ for (let i = 0; i < template.length; i++) {
13
+ let part = template[i];
14
+ part = part.replace(/(^(\s*\r?\n\s*)+)|((\s*\r?\n\s*)+$)/g, "").replace(/(\s*\r?\n\s*)+/g, " ");
15
+ children.push(part);
16
+ if (i < substitutions.length) {
17
+ children.push(substitutions[i]);
18
+ }
19
+ }
20
+ return children;
21
+ }
22
+ /**
23
+ * Turn the provided string template into Children by replacing literal line
24
+ * breaks with hardlines and automatically indenting indented content. Similar
25
+ * in spirit to the `<code>` element in HTML.
26
+ *
27
+ * @see {@link text} for a similar function which treats whitespace similar to
28
+ * JSX template bodies.
29
+ */
5
30
  export function code(template, ...substitutions) {
6
31
  const indentNodes = [{
7
32
  kind: "indent",
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"code.js","names":["hbr","indent","text","template","substitutions","children","i","length","part","replace","push","code","indentNodes","kind","pendingLines","child","childTokens","indentationLevel","pushIndent","popIndent","currentIndent","at","line","flushLines","value","childNodesFor","indentNode","map","newIndent","times","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":[]}
@@ -18,8 +18,8 @@ export interface BlockProps {
18
18
  }
19
19
  /**
20
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 "\}".
21
+ * added prior to the block, which defaults to `"{"`, and `closer` text which is
22
+ * added after the block, which defaults to `"}"`.
23
23
  */
24
24
  export declare function Block(props: BlockProps): Children;
25
25
  //# sourceMappingURL=Block.d.ts.map
@@ -1 +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"}
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,YAYtC"}
@@ -4,21 +4,22 @@ import { memo as _$memo } from "@alloy-js/core/jsx-runtime";
4
4
  import { childrenArray, computed, Indent } from "@alloy-js/core";
5
5
  /**
6
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 "\}".
7
+ * added prior to the block, which defaults to `"{"`, and `closer` text which is
8
+ * added after the block, which defaults to `"}"`.
9
9
  */
10
10
  export function Block(props) {
11
11
  const childCount = computed(() => childrenArray(() => props.children).length);
12
12
  return _$createIntrinsic("group", {
13
13
  get children() {
14
14
  return [_$memo(() => _$memo(() => !!props.newline)() && _$createIntrinsic("br", {})), _$memo(() => props.opener ?? "{"), _$createComponent(Indent, {
15
- get ["break"]() {
16
- return childCount.value > 0 ? "hard" : "soft";
15
+ get softline() {
16
+ return childCount.value === 0;
17
17
  },
18
+ trailingBreak: true,
18
19
  get children() {
19
20
  return props.children;
20
21
  }
21
- }), _$memo(() => _$memo(() => childCount.value > 0)() ? _$createIntrinsic("hbr", {}) : _$createIntrinsic("sbr", {})), _$memo(() => props.closer ?? "}")];
22
+ }), _$memo(() => props.closer ?? "}")];
22
23
  }
23
24
  });
24
25
  }
@@ -1 +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
+ {"version":3,"file":"Block.js","names":["childrenArray","computed","Indent","Block","props","childCount","children","length","_$createIntrinsic","_$memo","newline","opener","_$createComponent","softline","value","trailingBreak","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,IAACW,QAAQA,CAAA;UAAA,OAAER,UAAU,CAACS,KAAK,KAAK,CAAC;QAAA;QAAEC,aAAa;QAAA,IAAAT,SAAA;UAAA,OACpDF,KAAK,CAACE,QAAQ;QAAA;MAAA,IAAAG,MAAA,OAEhBL,KAAK,CAACY,MAAM,IAAI,GAAG;IAAA;EAAA;AAG1B","ignoreList":[]}
@@ -1,12 +1,37 @@
1
1
  import { OutputSymbol } from "../binder.js";
2
2
  import { Children } from "../jsx-runtime.js";
3
3
  import { Refkey } from "../refkey.js";
4
- export interface DeclarationProps {
5
- name?: string;
6
- refkey?: Refkey;
7
- symbol?: OutputSymbol;
4
+ /**
5
+ * Create a declaration by providing an already created symbol. The symbol is
6
+ * merely exposed via {@link DeclarationContext}.
7
+ */
8
+ export interface DeclarationPropsWithSymbol {
9
+ /**
10
+ * The symbol being declared. When provided, the name, refkey, and metadata
11
+ * props are ignored.
12
+ */
13
+ symbol: OutputSymbol;
14
+ children?: Children;
15
+ }
16
+ /**
17
+ * Create a declaration by providing a symbol name and optional symbol metadata.
18
+ */
19
+ export interface DeclarationPropsWithInfo {
20
+ /**
21
+ * The name of this declaration.
22
+ */
23
+ name: string;
24
+ /**
25
+ * The unique key or array of unique keys for this declaration.
26
+ */
27
+ refkey?: Refkey | Refkey[];
28
+ /**
29
+ * Additional metadata for the declared symbol.
30
+ */
31
+ metadata?: Record<string, unknown>;
8
32
  children?: Children;
9
33
  }
34
+ export type DeclarationProps = DeclarationPropsWithSymbol | DeclarationPropsWithInfo;
10
35
  /**
11
36
  * Declares a symbol in the current scope for this component's children.
12
37
  *
@@ -15,11 +40,10 @@ export interface DeclarationProps {
15
40
  * This component must be called in one of two ways: with a name and an optional
16
41
  * refkey, or else passing in the symbol. When called with a name and refkey, a
17
42
  * symbol will be created in the current scope (provided by
18
- * {@link ScopeContext}) with that name and refkey. If a refkey is not provided,
19
- * `refkey(props.name)` is used.
43
+ * {@link ScopeContext}) with that name and refkey.
20
44
  *
21
45
  * When called with a symbol, that symbol is merely exposed via
22
- * {@link DeclarationContext }. It is assumed that the caller of this component
46
+ * {@link DeclarationContext}. It is assumed that the caller of this component
23
47
  * has created the symbol with the `createSymbol` API on the
24
48
  * {@link BinderContext }.
25
49
  *
@@ -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,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"}
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,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,gBAAgB,GACxB,0BAA0B,GAC1B,wBAAwB,CAAC;AAE7B;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,YA0BlD"}
@@ -4,7 +4,16 @@ import { useContext } from "../context.js";
4
4
  import { BinderContext } from "../context/binder.js";
5
5
  import { DeclarationContext } from "../context/declaration.js";
6
6
  import { onCleanup } from "../jsx-runtime.js";
7
- import { refkey } from "../refkey.js";
7
+
8
+ /**
9
+ * Create a declaration by providing an already created symbol. The symbol is
10
+ * merely exposed via {@link DeclarationContext}.
11
+ */
12
+
13
+ /**
14
+ * Create a declaration by providing a symbol name and optional symbol metadata.
15
+ */
16
+
8
17
  /**
9
18
  * Declares a symbol in the current scope for this component's children.
10
19
  *
@@ -13,11 +22,10 @@ import { refkey } from "../refkey.js";
13
22
  * This component must be called in one of two ways: with a name and an optional
14
23
  * refkey, or else passing in the symbol. When called with a name and refkey, a
15
24
  * symbol will be created in the current scope (provided by
16
- * {@link ScopeContext}) with that name and refkey. If a refkey is not provided,
17
- * `refkey(props.name)` is used.
25
+ * {@link ScopeContext}) with that name and refkey.
18
26
  *
19
27
  * When called with a symbol, that symbol is merely exposed via
20
- * {@link DeclarationContext }. It is assumed that the caller of this component
28
+ * {@link DeclarationContext}. It is assumed that the caller of this component
21
29
  * has created the symbol with the `createSymbol` API on the
22
30
  * {@link BinderContext }.
23
31
  *
@@ -29,13 +37,13 @@ export function Declaration(props) {
29
37
  throw new Error("Need binder context to create declarations");
30
38
  }
31
39
  let declaration;
32
- if (props.symbol) {
40
+ if ("symbol" in props) {
33
41
  declaration = props.symbol;
34
42
  } else {
35
- const rk = props.refkey ? props.refkey : refkey(props.name);
36
43
  declaration = binder.createSymbol({
37
44
  name: props.name,
38
- refkey: rk
45
+ refkey: props.refkey,
46
+ metadata: props.metadata
39
47
  });
40
48
  onCleanup(() => {
41
49
  binder.deleteSymbol(declaration);
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"Declaration.js","names":["useContext","BinderContext","DeclarationContext","onCleanup","Declaration","props","binder","Error","declaration","symbol","createSymbol","name","refkey","metadata","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;;AAGvD;AACA;AACA;AACA;;AAWA;AACA;AACA;;AAwBA;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,IAAI,QAAQ,IAAIH,KAAK,EAAE;IACrBG,WAAW,GAAGH,KAAK,CAACI,MAAM;EAC5B,CAAC,MAAM;IACLD,WAAW,GAAGF,MAAM,CAACI,YAAY,CAAC;MAChCC,IAAI,EAAEN,KAAK,CAACM,IAAK;MACjBC,MAAM,EAAEP,KAAK,CAACO,MAAM;MACpBC,QAAQ,EAAER,KAAK,CAACQ;IAClB,CAAC,CAAC;IAEFV,SAAS,CAAC,MAAM;MACdG,MAAM,CAACQ,YAAY,CAACN,WAAY,CAAC;IACnC,CAAC,CAAC;EACJ;EAEA,OAAAO,iBAAA,CACGb,kBAAkB,CAACc,QAAQ;IAACC,KAAK,EAAET,WAAW;IAAA,IAAAU,SAAA;MAAA,OAC5Cb,KAAK,CAACa,QAAQ;IAAA;EAAA;AAGrB","ignoreList":[]}