@alloy-js/core 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/babel.config.cjs +4 -1
  3. package/dist/src/binder.d.ts +20 -13
  4. package/dist/src/binder.d.ts.map +1 -1
  5. package/dist/src/binder.js +33 -15
  6. package/dist/src/binder.js.map +1 -1
  7. package/dist/src/code.d.ts +2 -2
  8. package/dist/src/code.d.ts.map +1 -1
  9. package/dist/src/code.js +4 -4
  10. package/dist/src/code.js.map +1 -1
  11. package/dist/src/components/Block.d.ts +25 -0
  12. package/dist/src/components/Block.d.ts.map +1 -0
  13. package/dist/src/components/Block.js +25 -0
  14. package/dist/src/components/Block.js.map +1 -0
  15. package/dist/src/components/Declaration.d.ts +1 -1
  16. package/dist/src/components/Declaration.d.ts.map +1 -1
  17. package/dist/src/components/Declaration.js +4 -0
  18. package/dist/src/components/Declaration.js.map +1 -1
  19. package/dist/src/components/For.d.ts +44 -0
  20. package/dist/src/components/For.d.ts.map +1 -0
  21. package/dist/src/components/For.js +41 -0
  22. package/dist/src/components/For.js.map +1 -0
  23. package/dist/src/components/Indent.d.ts +6 -10
  24. package/dist/src/components/Indent.d.ts.map +1 -1
  25. package/dist/src/components/Indent.js +7 -18
  26. package/dist/src/components/Indent.js.map +1 -1
  27. package/dist/src/components/List.d.ts +38 -0
  28. package/dist/src/components/List.d.ts.map +1 -0
  29. package/dist/src/components/List.js +40 -0
  30. package/dist/src/components/List.js.map +1 -0
  31. package/dist/src/components/MemberDeclaration.d.ts +1 -1
  32. package/dist/src/components/MemberDeclaration.d.ts.map +1 -1
  33. package/dist/src/components/MemberDeclaration.js.map +1 -1
  34. package/dist/src/components/MemberName.d.ts +1 -1
  35. package/dist/src/components/MemberName.d.ts.map +1 -1
  36. package/dist/src/components/MemberName.js +1 -1
  37. package/dist/src/components/MemberName.js.map +1 -1
  38. package/dist/src/components/MemberScope.d.ts +1 -1
  39. package/dist/src/components/MemberScope.d.ts.map +1 -1
  40. package/dist/src/components/MemberScope.js.map +1 -1
  41. package/dist/src/components/Name.d.ts +1 -1
  42. package/dist/src/components/Name.d.ts.map +1 -1
  43. package/dist/src/components/Name.js +1 -1
  44. package/dist/src/components/Name.js.map +1 -1
  45. package/dist/src/components/Output.d.ts +3 -2
  46. package/dist/src/components/Output.d.ts.map +1 -1
  47. package/dist/src/components/Output.js +12 -2
  48. package/dist/src/components/Output.js.map +1 -1
  49. package/dist/src/components/Scope.d.ts +1 -1
  50. package/dist/src/components/Scope.d.ts.map +1 -1
  51. package/dist/src/components/Scope.js.map +1 -1
  52. package/dist/src/components/Show.d.ts +8 -0
  53. package/dist/src/components/Show.d.ts.map +1 -0
  54. package/dist/src/components/Show.js +4 -0
  55. package/dist/src/components/Show.js.map +1 -0
  56. package/dist/src/components/SourceDirectory.d.ts +2 -2
  57. package/dist/src/components/SourceDirectory.d.ts.map +1 -1
  58. package/dist/src/components/SourceDirectory.js +1 -0
  59. package/dist/src/components/SourceDirectory.js.map +1 -1
  60. package/dist/src/components/SourceFile.d.ts +4 -8
  61. package/dist/src/components/SourceFile.d.ts.map +1 -1
  62. package/dist/src/components/SourceFile.js +6 -13
  63. package/dist/src/components/SourceFile.js.map +1 -1
  64. package/dist/src/components/StatementList.d.ts +9 -0
  65. package/dist/src/components/StatementList.d.ts.map +1 -0
  66. package/dist/src/components/StatementList.js +17 -0
  67. package/dist/src/components/StatementList.js.map +1 -0
  68. package/dist/src/components/Switch.d.ts +41 -0
  69. package/dist/src/components/Switch.d.ts.map +1 -0
  70. package/dist/src/components/Switch.js +41 -0
  71. package/dist/src/components/Switch.js.map +1 -0
  72. package/dist/src/components/Wrap.d.ts +20 -0
  73. package/dist/src/components/Wrap.d.ts.map +1 -0
  74. package/dist/src/components/Wrap.js +15 -0
  75. package/dist/src/components/Wrap.js.map +1 -0
  76. package/dist/src/components/index.d.ts +8 -1
  77. package/dist/src/components/index.d.ts.map +1 -1
  78. package/dist/src/components/index.js +7 -0
  79. package/dist/src/components/index.js.map +1 -1
  80. package/dist/src/components/stc/index.d.ts +89 -18
  81. package/dist/src/components/stc/index.d.ts.map +1 -1
  82. package/dist/src/components/stc/index.js +17 -1
  83. package/dist/src/components/stc/index.js.map +1 -1
  84. package/dist/src/context/index.d.ts +0 -1
  85. package/dist/src/context/index.d.ts.map +1 -1
  86. package/dist/src/context/index.js +0 -1
  87. package/dist/src/context/index.js.map +1 -1
  88. package/dist/src/context/member-declaration.d.ts +1 -0
  89. package/dist/src/context/member-declaration.d.ts.map +1 -1
  90. package/dist/src/context/member-declaration.js +4 -1
  91. package/dist/src/context/member-declaration.js.map +1 -1
  92. package/dist/src/context.d.ts.map +1 -1
  93. package/dist/src/context.js +3 -3
  94. package/dist/src/context.js.map +1 -1
  95. package/dist/src/index.browser.d.ts +3 -0
  96. package/dist/src/index.browser.d.ts.map +1 -0
  97. package/dist/src/index.browser.js +3 -0
  98. package/dist/src/index.browser.js.map +1 -0
  99. package/dist/src/index.d.ts +2 -0
  100. package/dist/src/index.d.ts.map +1 -1
  101. package/dist/src/index.js +2 -0
  102. package/dist/src/index.js.map +1 -1
  103. package/dist/src/jsx-runtime.d.ts +151 -7
  104. package/dist/src/jsx-runtime.d.ts.map +1 -1
  105. package/dist/src/jsx-runtime.js +113 -12
  106. package/dist/src/jsx-runtime.js.map +1 -1
  107. package/dist/src/render.d.ts +107 -132
  108. package/dist/src/render.d.ts.map +1 -1
  109. package/dist/src/render.js +272 -178
  110. package/dist/src/render.js.map +1 -1
  111. package/dist/src/stc.d.ts +14 -0
  112. package/dist/src/stc.d.ts.map +1 -0
  113. package/dist/src/stc.js +52 -0
  114. package/dist/src/stc.js.map +1 -0
  115. package/dist/src/tap.d.ts +19 -0
  116. package/dist/src/tap.d.ts.map +1 -0
  117. package/dist/src/tap.js +39 -0
  118. package/dist/src/tap.js.map +1 -0
  119. package/dist/src/utils.d.ts +22 -15
  120. package/dist/src/utils.d.ts.map +1 -1
  121. package/dist/src/utils.js +95 -59
  122. package/dist/src/utils.js.map +1 -1
  123. package/dist/test/browser-build.test.d.ts +2 -0
  124. package/dist/test/browser-build.test.d.ts.map +1 -0
  125. package/dist/test/components/block.test.d.ts +2 -0
  126. package/dist/test/components/block.test.d.ts.map +1 -0
  127. package/dist/test/components/declaration.test.d.ts +2 -0
  128. package/dist/test/components/declaration.test.d.ts.map +1 -0
  129. package/dist/test/components/list.test.d.ts +2 -0
  130. package/dist/test/components/list.test.d.ts.map +1 -0
  131. package/dist/test/components/wrap.test.d.ts +2 -0
  132. package/dist/test/components/wrap.test.d.ts.map +1 -0
  133. package/dist/test/control-flow/for.test.d.ts +2 -0
  134. package/dist/test/control-flow/for.test.d.ts.map +1 -0
  135. package/dist/test/control-flow/match.test.d.ts +2 -0
  136. package/dist/test/control-flow/match.test.d.ts.map +1 -0
  137. package/dist/test/control-flow/show.test.d.ts +2 -0
  138. package/dist/test/control-flow/show.test.d.ts.map +1 -0
  139. package/dist/test/reactivity/cleanup.test.d.ts +2 -0
  140. package/dist/test/reactivity/cleanup.test.d.ts.map +1 -0
  141. package/dist/test/reactivity/memo.test.d.ts +2 -0
  142. package/dist/test/reactivity/memo.test.d.ts.map +1 -0
  143. package/dist/test/reactivity/untrack.test.d.ts +2 -0
  144. package/dist/test/reactivity/untrack.test.d.ts.map +1 -0
  145. package/dist/test/rendering/formatting.test.d.ts +2 -0
  146. package/dist/test/rendering/formatting.test.d.ts.map +1 -0
  147. package/dist/test/rendering/memoization.test.d.ts +2 -0
  148. package/dist/test/rendering/memoization.test.d.ts.map +1 -0
  149. package/dist/test/split-props.test.d.ts +2 -0
  150. package/dist/test/split-props.test.d.ts.map +1 -0
  151. package/dist/test/stc.test.d.ts.map +1 -1
  152. package/dist/test/utils.test.d.ts.map +1 -1
  153. package/dist/testing/extend-expect.js +4 -4
  154. package/dist/testing/extend-expect.js.map +1 -1
  155. package/dist/testing/render.d.ts +2 -3
  156. package/dist/testing/render.d.ts.map +1 -1
  157. package/dist/testing/render.js +2 -4
  158. package/dist/testing/render.js.map +1 -1
  159. package/dist/tsconfig.tsbuildinfo +1 -1
  160. package/package.json +8 -9
  161. package/src/binder.ts +60 -50
  162. package/src/code.ts +17 -12
  163. package/src/components/Block.tsx +44 -0
  164. package/src/components/Declaration.tsx +10 -4
  165. package/src/components/For.tsx +81 -0
  166. package/src/components/Indent.tsx +20 -27
  167. package/src/components/List.tsx +94 -0
  168. package/src/components/MemberDeclaration.tsx +9 -6
  169. package/src/components/MemberScope.tsx +4 -2
  170. package/src/components/Output.tsx +27 -14
  171. package/src/components/Scope.tsx +4 -2
  172. package/src/components/Show.tsx +11 -0
  173. package/src/components/SourceDirectory.tsx +6 -2
  174. package/src/components/SourceFile.tsx +13 -17
  175. package/src/components/StatementList.tsx +16 -0
  176. package/src/components/Switch.tsx +62 -0
  177. package/src/components/Wrap.tsx +29 -0
  178. package/src/components/index.tsx +8 -1
  179. package/src/components/stc/index.ts +18 -1
  180. package/src/context/index.ts +0 -1
  181. package/src/context/member-declaration.ts +9 -1
  182. package/src/context.ts +2 -3
  183. package/src/index.browser.ts +2 -0
  184. package/src/index.ts +2 -0
  185. package/src/jsx-runtime.ts +265 -23
  186. package/src/render.ts +382 -200
  187. package/src/stc.ts +95 -0
  188. package/src/tap.ts +69 -0
  189. package/src/utils.ts +162 -95
  190. package/temp/api.json +8042 -1886
  191. package/test/browser-build.test.ts +91 -0
  192. package/test/children.test.tsx +8 -10
  193. package/test/components/block.test.tsx +48 -0
  194. package/test/components/declaration.test.tsx +37 -0
  195. package/test/components/list.test.tsx +91 -0
  196. package/test/components/slot.test.tsx +31 -25
  197. package/test/components/source-file.test.tsx +11 -31
  198. package/test/components/wrap.test.tsx +42 -0
  199. package/test/control-flow/for.test.tsx +194 -0
  200. package/test/control-flow/match.test.tsx +49 -0
  201. package/test/control-flow/show.test.tsx +25 -0
  202. package/test/name-policy.test.tsx +5 -5
  203. package/test/reactivity/cleanup.test.tsx +91 -0
  204. package/test/reactivity/memo.test.tsx +17 -0
  205. package/test/reactivity/ref-rendering.test.tsx +3 -8
  206. package/test/reactivity/test.test.tsx +7 -6
  207. package/test/reactivity/untrack.test.ts +33 -0
  208. package/test/rendering/basic.test.tsx +25 -47
  209. package/test/rendering/code.test.tsx +3 -3
  210. package/test/rendering/formatting.test.tsx +487 -0
  211. package/test/rendering/indent.test.tsx +42 -529
  212. package/test/rendering/memoization.test.tsx +30 -0
  213. package/test/split-props.test.ts +87 -0
  214. package/test/stc.test.tsx +29 -8
  215. package/test/symbols.test.ts +132 -3
  216. package/test/utils.test.tsx +129 -20
  217. package/testing/extend-expect.ts +14 -4
  218. package/testing/render.ts +2 -4
  219. package/testing/vitest.d.ts +6 -1
  220. package/vitest.config.ts +1 -1
  221. package/dist/src/context/indent.d.ts +0 -5
  222. package/dist/src/context/indent.d.ts.map +0 -1
  223. package/dist/src/context/indent.js +0 -8
  224. package/dist/src/context/indent.js.map +0 -1
  225. package/dist/test/rendering/linebreaks.test.d.ts +0 -2
  226. package/dist/test/rendering/linebreaks.test.d.ts.map +0 -1
  227. package/src/context/indent.ts +0 -17
  228. package/test/rendering/linebreaks.test.tsx +0 -72
@@ -1,5 +1,6 @@
1
1
  import { Ref } from "@vue/reactivity";
2
2
  import { Refkey } from "./refkey.js";
3
+ import { RenderedTextTree } from "./render.js";
3
4
  export interface Disposable {
4
5
  (): void;
5
6
  }
@@ -8,6 +9,11 @@ export interface Context {
8
9
  owner: Context | null;
9
10
  context?: Record<symbol, unknown>;
10
11
  meta?: Record<string, any>;
12
+ /**
13
+ * A cache of RenderTextTree nodes created within this context,
14
+ * indexed by the component or function which created them.
15
+ */
16
+ elementCache: ElementCache;
11
17
  /**
12
18
  * When this context was created by a component, this will
13
19
  * be the component that created it.
@@ -15,23 +21,60 @@ export interface Context {
15
21
  componentOwner?: ComponentCreator<unknown>;
16
22
  }
17
23
  export declare function getContext(): Context | null;
18
- export declare function root<T>(fn: (d: Disposable) => T, componentOwner?: ComponentCreator<any>): T;
24
+ export declare function getElementCache(): ElementCache;
25
+ export type ElementCacheKey = ComponentCreator | (() => unknown) | CustomContext;
26
+ export type ElementCache = Map<ElementCacheKey, RenderedTextTree>;
27
+ export interface RootOptions {
28
+ componentOwner?: ComponentCreator<any>;
29
+ }
30
+ export declare function root<T>(fn: (d: Disposable) => T, options?: RootOptions): T;
19
31
  export declare function untrack<T>(fn: () => T): T;
20
32
  export declare function memo<T>(fn: () => T, equal?: boolean): () => T;
21
33
  export declare function effect<T>(fn: (prev?: T) => T, current?: T): void;
22
- export type Child = string | boolean | number | undefined | null | (() => Child | Children) | Child[] | Ref | Refkey;
23
- export type Children = Child | Child[];
24
- export type Props = Record<string, unknown>;
34
+ /**
35
+ * Register a cleanup function which is called when the current reactive scope
36
+ * is recalculated or disposed. This is useful to clean up any side effects
37
+ * created in the reactive scope.
38
+ *
39
+ * @remarks
40
+ *
41
+ * When onCleanup is called inside a component definition, the provided function
42
+ * is called when the component is removed from the tree. This can be useful to
43
+ * clean up any side effects created as a result of rendering the component. For
44
+ * example, if rendering a component creates a symbol, `onCleanup` can be used
45
+ * to remove the symbol when the component is removed from the tree.
46
+ *
47
+ * When onCleanup is called inside a memo or effect, the function is called when
48
+ * the effect is refreshed (e.g. when a memo or computed recalculates) or
49
+ * disposed (e.g. it is no longer needed because it is attached to a component
50
+ * which was removed).
51
+ */
52
+ export declare function onCleanup(fn: Disposable): void;
53
+ /**
54
+ * Create a custom reactive context for the children returned by
55
+ * the provided context.
56
+ */
57
+ export interface CustomContext {
58
+ [CUSTOM_CONTEXT_SYM]: true;
59
+ useCustomContext: (useCb: CustomContextChildrenCallback) => void;
60
+ }
61
+ export type CustomContextChildrenCallback = (child: Children) => void;
62
+ declare const CUSTOM_CONTEXT_SYM: unique symbol;
63
+ export declare function createCustomContext(useCallback: (useChildren: CustomContextChildrenCallback) => void): CustomContext;
64
+ export declare function isCustomContext(child: Children): child is CustomContext;
65
+ export type Child = string | boolean | number | undefined | null | void | (() => Children) | Ref | Refkey | CustomContext | IntrinsicElement;
66
+ export type Children = Child | Children[];
67
+ export type Props = Record<string, any>;
25
68
  export interface ComponentDefinition<TProps = Props> {
26
- (props: TProps): Child | Children;
69
+ (props: TProps): Children;
27
70
  }
28
71
  export interface Component<TProps = Props> {
29
- (props: TProps): Child | Children;
72
+ (props: TProps): Children;
30
73
  tag?: symbol;
31
74
  }
32
75
  export interface ComponentCreator<TProps = Props> {
33
76
  component: Component<TProps>;
34
- (): Child | Children;
77
+ (): Children;
35
78
  props: Props;
36
79
  tag?: symbol;
37
80
  }
@@ -39,9 +82,110 @@ export declare function pushStack(component: Component<any>, props: Props): void
39
82
  export declare function popStack(): void;
40
83
  export declare function printRenderStack(): void;
41
84
  export declare function isComponentCreator(item: unknown): item is ComponentCreator;
85
+ /**
86
+ * This namespace is predominantly for interop with React tooling in VSCode
87
+ * and controls the type of JSX elements, components, and the like.
88
+ */
89
+ export declare namespace JSX {
90
+ interface IntrinsicElements {
91
+ group: {
92
+ shouldBreak?: boolean;
93
+ id?: symbol;
94
+ children: Children;
95
+ };
96
+ line: {};
97
+ br: {};
98
+ hardline: {};
99
+ hbr: {};
100
+ softline: {};
101
+ sbr: {};
102
+ literalline: {};
103
+ lbr: {};
104
+ indent: {
105
+ children: Children;
106
+ };
107
+ fill: {
108
+ children: Children;
109
+ };
110
+ breakParent: {};
111
+ ifBreak: {
112
+ children: Children;
113
+ flatContents?: Children;
114
+ groupId?: symbol;
115
+ };
116
+ lineSuffix: {
117
+ children: Children;
118
+ };
119
+ lineSuffixBoundary: {};
120
+ dedent: {
121
+ children: Children;
122
+ };
123
+ align: {
124
+ children: Children;
125
+ width: number;
126
+ } | {
127
+ children: Children;
128
+ string: string;
129
+ };
130
+ markAsRoot: {
131
+ children: Children;
132
+ };
133
+ dedentToRoot: {
134
+ children: Children;
135
+ };
136
+ }
137
+ type ElementType = string | ComponentDefinition<any>;
138
+ type Element = Children;
139
+ interface ElementChildrenAttribute {
140
+ children: {};
141
+ }
142
+ interface ElementAttributesProperty {
143
+ props: {};
144
+ }
145
+ }
146
+ export declare function jsx(type: Component<any>, props: Record<string, unknown>): ComponentCreator<Record<string, unknown>>;
147
+ export declare const jsxs: typeof jsx;
42
148
  export declare function createComponent<TProps extends Props = Props>(C: Component<TProps>, props: TProps): ComponentCreator<TProps>;
43
149
  export declare function taggedComponent<TProps = Props>(tag: symbol, component: Component<TProps>): Component<TProps>;
150
+ export declare const intrinsicElementKey: unique symbol;
151
+ export type IndentIntrinsicElement = IntrinsicElementBase<"indent">;
152
+ export type BrIntrinsicElement = IntrinsicElementBase<"br">;
153
+ export type LineIntrinsicElement = IntrinsicElementBase<"line">;
154
+ export type HbrIntrinsicElement = IntrinsicElementBase<"hbr">;
155
+ export type HardlineIntrinsicElement = IntrinsicElementBase<"hardline">;
156
+ export type SbrIntrinsicElement = IntrinsicElementBase<"sbr">;
157
+ export type SoftlineIntrinsicElement = IntrinsicElementBase<"softline">;
158
+ export type GroupIntrinsicElement = IntrinsicElementBase<"group">;
159
+ export type AlignIntrinsicElement = IntrinsicElementBase<"align">;
160
+ export type FillIntrinsicElement = IntrinsicElementBase<"fill">;
161
+ export type BreakParentIntrinsicElement = IntrinsicElementBase<"breakParent">;
162
+ export type LineSuffixIntrinsicElement = IntrinsicElementBase<"lineSuffix">;
163
+ export type LineSuffixBoundaryIntrinsicElement = IntrinsicElementBase<"lineSuffixBoundary">;
164
+ export type DedentIntrinsicElement = IntrinsicElementBase<"dedent">;
165
+ export type DedentToRootIntrinsicElement = IntrinsicElementBase<"dedentToRoot">;
166
+ export type MarkAsRootIntrinsicElement = IntrinsicElementBase<"markAsRoot">;
167
+ export type LiterallineIntrinsicElement = IntrinsicElementBase<"literalline">;
168
+ export type LbrIntrinsicElement = IntrinsicElementBase<"lbr">;
169
+ export type IfBreakIntrinsicElement = IntrinsicElementBase<"ifBreak">;
170
+ export type IntrinsicElement = IndentIntrinsicElement | BrIntrinsicElement | LineIntrinsicElement | HbrIntrinsicElement | HardlineIntrinsicElement | SbrIntrinsicElement | SoftlineIntrinsicElement | GroupIntrinsicElement | AlignIntrinsicElement | FillIntrinsicElement | BreakParentIntrinsicElement | LineSuffixIntrinsicElement | LineSuffixBoundaryIntrinsicElement | DedentIntrinsicElement | LiterallineIntrinsicElement | LbrIntrinsicElement | DedentToRootIntrinsicElement | MarkAsRootIntrinsicElement | IfBreakIntrinsicElement;
171
+ export interface IntrinsicElementBase<TKey extends keyof JSX.IntrinsicElements = keyof JSX.IntrinsicElements> {
172
+ [intrinsicElementKey]: true;
173
+ name: TKey;
174
+ props: JSX.IntrinsicElements[TKey];
175
+ }
176
+ export declare function createIntrinsic<TKey extends keyof JSX.IntrinsicElements>(name: TKey, props: JSX.IntrinsicElements[TKey]): IntrinsicElementBase<TKey>;
177
+ export declare function isIntrinsicElement(type: unknown): type is IntrinsicElement;
44
178
  export declare function mergeProps<T, U>(source: T, source1: U): T & U;
45
179
  export declare function mergeProps<T, U, V>(source: T, source1: U, source2: V): T & U & V;
46
180
  export declare function mergeProps<T, U, V, W>(source: T, source1: U, source2: V, source3: W): T & U & V & W;
181
+ export type SplitProps<T, K extends (readonly (keyof T)[])[]> = [
182
+ ...{
183
+ [P in keyof K]: P extends `${number}` ? Pick<T, Extract<K[P], readonly (keyof T)[]>[number]> : never;
184
+ },
185
+ {
186
+ [P in keyof T as Exclude<P, K[number][number]>]: T[P];
187
+ }
188
+ ];
189
+ export declare function splitProps<T extends Record<any, any>, K extends [readonly (keyof T)[], ...(readonly (keyof T)[])[]]>(props: T, ...keys: K): SplitProps<T, K>;
190
+ export {};
47
191
  //# sourceMappingURL=jsx-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../../src/jsx-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../../src/jsx-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  // Much of the implementations in this file are inspired by vuerx-js
2
2
  // See: https://github.com/ryansolid/vuerx-jsx.
3
- import { pauseTracking, resetTracking, shallowRef, stop, effect as vueEffect } from "@vue/reactivity";
3
+ import { isReactive, pauseTracking, proxyRefs, resetTracking, shallowRef, stop, toRefs, effect as vueEffect } from "@vue/reactivity";
4
4
  if (globalThis.ALLOY) {
5
5
  throw new Error("Multiple versions of the JSX Runtime have been loaded. This will likely cause undesirable behavior.");
6
6
  }
@@ -9,17 +9,22 @@ let globalContext = null;
9
9
  export function getContext() {
10
10
  return globalContext;
11
11
  }
12
- export function root(fn, componentOwner) {
13
- globalContext = {
14
- componentOwner,
12
+ export function getElementCache() {
13
+ return getContext().elementCache;
14
+ }
15
+ export function root(fn, options) {
16
+ const context = {
17
+ componentOwner: options?.componentOwner,
15
18
  disposables: [],
16
19
  owner: globalContext,
17
- context: {}
20
+ context: {},
21
+ elementCache: new Map()
18
22
  };
23
+ globalContext = context;
19
24
  let ret;
20
25
  try {
21
26
  ret = untrack(() => fn(() => {
22
- for (const d of globalContext.disposables) {
27
+ for (const d of context.disposables) {
23
28
  d();
24
29
  }
25
30
  }));
@@ -41,23 +46,25 @@ export function memo(fn, equal) {
41
46
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
42
47
  (!equal || prev !== res) && (o.value = res);
43
48
  return res;
44
- });
49
+ }, undefined);
45
50
  return () => o.value;
46
51
  }
47
52
  export function effect(fn, current) {
48
53
  const context = {
49
- src: "effect",
50
54
  context: {},
51
55
  disposables: [],
52
- owner: globalContext
56
+ owner: globalContext,
57
+ elementCache: new Map()
53
58
  };
54
59
  const cleanupFn = final => {
55
60
  const d = context.disposables;
56
61
  context.disposables = [];
57
62
  for (let k = 0, len = d.length; k < len; k++) d[k]();
63
+
58
64
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
59
65
  final && stop(c);
60
66
  };
67
+ onCleanup(() => cleanupFn(true));
61
68
  const c = vueEffect(() => {
62
69
  cleanupFn(false);
63
70
  const oldContext = globalContext;
@@ -67,14 +74,50 @@ export function effect(fn, current) {
67
74
  } finally {
68
75
  globalContext = oldContext;
69
76
  }
70
- });
71
- cleanup(() => cleanupFn(true));
77
+ }, {});
72
78
  }
73
- function cleanup(fn) {
79
+
80
+ /**
81
+ * Register a cleanup function which is called when the current reactive scope
82
+ * is recalculated or disposed. This is useful to clean up any side effects
83
+ * created in the reactive scope.
84
+ *
85
+ * @remarks
86
+ *
87
+ * When onCleanup is called inside a component definition, the provided function
88
+ * is called when the component is removed from the tree. This can be useful to
89
+ * clean up any side effects created as a result of rendering the component. For
90
+ * example, if rendering a component creates a symbol, `onCleanup` can be used
91
+ * to remove the symbol when the component is removed from the tree.
92
+ *
93
+ * When onCleanup is called inside a memo or effect, the function is called when
94
+ * the effect is refreshed (e.g. when a memo or computed recalculates) or
95
+ * disposed (e.g. it is no longer needed because it is attached to a component
96
+ * which was removed).
97
+ */
98
+ export function onCleanup(fn) {
74
99
  if (globalContext != null) {
75
100
  globalContext.disposables.push(fn);
76
101
  }
77
102
  }
103
+
104
+ /**
105
+ * Create a custom reactive context for the children returned by
106
+ * the provided context.
107
+ */
108
+
109
+ const CUSTOM_CONTEXT_SYM = Symbol();
110
+ export function createCustomContext(useCallback) {
111
+ return {
112
+ [CUSTOM_CONTEXT_SYM]: true,
113
+ useCustomContext(useCb) {
114
+ useCallback(useCb);
115
+ }
116
+ };
117
+ }
118
+ export function isCustomContext(child) {
119
+ return typeof child === "object" && child !== null && Object.hasOwn(child, CUSTOM_CONTEXT_SYM);
120
+ }
78
121
  // debugging utilities
79
122
  const renderStack = [];
80
123
  export function pushStack(component, props) {
@@ -130,6 +173,17 @@ function inspectProps(props) {
130
173
  export function isComponentCreator(item) {
131
174
  return typeof item === "function" && item.component;
132
175
  }
176
+
177
+ /**
178
+ * This namespace is predominantly for interop with React tooling in VSCode
179
+ * and controls the type of JSX elements, components, and the like.
180
+ */
181
+ // eslint-disable-next-line @typescript-eslint/no-namespace
182
+ export let JSX;
183
+ export function jsx(type, props) {
184
+ return createComponent(type, props);
185
+ }
186
+ export const jsxs = jsx;
133
187
  export function createComponent(C, props) {
134
188
  const creator = () => /* */C(props);
135
189
  creator.props = props;
@@ -143,6 +197,17 @@ export function taggedComponent(tag, component) {
143
197
  component.tag = tag;
144
198
  return component;
145
199
  }
200
+ export const intrinsicElementKey = Symbol();
201
+ export function createIntrinsic(name, props) {
202
+ return {
203
+ [intrinsicElementKey]: true,
204
+ name,
205
+ props
206
+ };
207
+ }
208
+ export function isIntrinsicElement(type) {
209
+ return typeof type === "object" && type !== null && intrinsicElementKey in type;
210
+ }
146
211
  export function mergeProps(...sources) {
147
212
  const target = {};
148
213
  for (let i = 0; i < sources.length; i++) {
@@ -168,6 +233,42 @@ export function mergeProps(...sources) {
168
233
  }
169
234
  return target;
170
235
  }
236
+ export function splitProps(props, ...keys) {
237
+ if (isReactive(props)) {
238
+ const refs = untrack(() => toRefs(props));
239
+ const remainingKeys = new Set(Object.keys(refs));
240
+ const result = keys.map(keySet => {
241
+ const resultSet = {};
242
+ for (const key of keySet) {
243
+ resultSet[key] = refs[key];
244
+ remainingKeys.delete(key);
245
+ }
246
+ return proxyRefs(resultSet);
247
+ });
248
+ const remaining = {};
249
+ for (const key of remainingKeys) {
250
+ remaining[key] = refs[key];
251
+ }
252
+ return [...result, proxyRefs(remaining)];
253
+ }
254
+ const descriptors = Object.getOwnPropertyDescriptors(props);
255
+ const remainingKeys = new Set(Object.keys(descriptors));
256
+ const result = keys.map(keySet => {
257
+ const resultSet = {};
258
+ for (const key of keySet) {
259
+ if (key in descriptors) {
260
+ Object.defineProperty(resultSet, key, descriptors[key]);
261
+ remainingKeys.delete(key);
262
+ }
263
+ }
264
+ return resultSet;
265
+ });
266
+ const remaining = {};
267
+ for (const key of remainingKeys) {
268
+ Object.defineProperty(remaining, key, descriptors[key]);
269
+ }
270
+ return [...result, remaining];
271
+ }
171
272
  function shouldDebug() {
172
273
  return typeof process !== "undefined" && !!process.env?.ALLOY_DEBUG;
173
274
  }
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-runtime.js","names":["pauseTracking","resetTracking","shallowRef","stop","effect","vueEffect","globalThis","ALLOY","Error","globalContext","getContext","root","fn","componentOwner","disposables","owner","context","ret","untrack","d","v","memo","equal","o","prev","res","value","current","src","cleanupFn","final","k","len","length","c","oldContext","cleanup","push","renderStack","pushStack","component","props","shouldDebug","popStack","pop","printRenderStack","console","error","i","name","inspectProps","JSON","stringify","Object","fromEntries","entries","map","key","safeValue","isComponentCreator","item","createComponent","C","creator","tag","taggedComponent","mergeProps","sources","target","source","descriptors","getOwnPropertyDescriptors","defineProperty","enumerable","get","s","undefined","process","env","ALLOY_DEBUG"],"sources":["../../src/jsx-runtime.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA;AACA,SACEA,aAAa,EAEbC,aAAa,EACbC,UAAU,EACVC,IAAI,EACJC,MAAM,IAAIC,SAAS,QACd,iBAAiB;AAGxB,IAAKC,UAAU,CAASC,KAAK,EAAE;EAC7B,MAAM,IAAIC,KAAK,CACb,qGACF,CAAC;AACH;AACCF,UAAU,CAASC,KAAK,GAAG,IAAI;AAuBhC,IAAIE,aAA6B,GAAG,IAAI;AACxC,OAAO,SAASC,UAAUA,CAAA,EAAG;EAC3B,OAAOD,aAAa;AACtB;AAEA,OAAO,SAASE,IAAIA,CAClBC,EAAwB,EACxBC,cAAsC,EACnC;EACHJ,aAAa,GAAG;IACdI,cAAc;IACdC,WAAW,EAAE,EAAE;IACfC,KAAK,EAAEN,aAAa;IACpBO,OAAO,EAAE,CAAC;EACZ,CAAC;EACD,IAAIC,GAAG;EACP,IAAI;IACFA,GAAG,GAAGC,OAAO,CAAC,MACZN,EAAE,CAAC,MAAM;MACP,KAAK,MAAMO,CAAC,IAAIV,aAAa,CAAEK,WAAW,EAAE;QAC1CK,CAAC,CAAC,CAAC;MACL;IACF,CAAC,CACH,CAAC;EACH,CAAC,SAAS;IACRV,aAAa,GAAGA,aAAa,CAAEM,KAAK;EACtC;EAEA,OAAOE,GAAG;AACZ;AAEA,OAAO,SAASC,OAAOA,CAAIN,EAAW,EAAK;EACzCZ,aAAa,CAAC,CAAC;EACf,MAAMoB,CAAC,GAAGR,EAAE,CAAC,CAAC;EACdX,aAAa,CAAC,CAAC;EACf,OAAOmB,CAAC;AACV;AAEA,OAAO,SAASC,IAAIA,CAAIT,EAAW,EAAEU,KAAe,EAAW;EAC7D,MAAMC,CAAC,GAAGrB,UAAU,CAAC,CAAC;EACtBE,MAAM,CAAEoB,IAAI,IAAK;IACf,MAAMC,GAAG,GAAGb,EAAE,CAAC,CAAC;IAChB;IACA,CAAC,CAACU,KAAK,IAAIE,IAAI,KAAKC,GAAG,MAAMF,CAAC,CAACG,KAAK,GAAGD,GAAG,CAAC;IAC3C,OAAOA,GAAG;EACZ,CAAC,CAAC;EACF,OAAO,MAAMF,CAAC,CAACG,KAAK;AACtB;AAEA,OAAO,SAAStB,MAAMA,CAAIQ,EAAmB,EAAEe,OAAW,EAAE;EAC1D,MAAMX,OAAO,GAAG;IACdY,GAAG,EAAE,QAAQ;IACbZ,OAAO,EAAE,CAAC,CAAC;IACXF,WAAW,EAAE,EAAoB;IACjCC,KAAK,EAAEN;EACT,CAAQ;EAER,MAAMoB,SAAS,GAAIC,KAAc,IAAK;IACpC,MAAMX,CAAC,GAAGH,OAAO,CAACF,WAAW;IAC7BE,OAAO,CAACF,WAAW,GAAG,EAAE;IACxB,KAAK,IAAIiB,CAAC,GAAG,CAAC,EAAEC,GAAG,GAAGb,CAAC,CAACc,MAAM,EAAEF,CAAC,GAAGC,GAAG,EAAED,CAAC,EAAE,EAAEZ,CAAC,CAACY,CAAC,CAAC,CAAC,CAAC;IACpD;IACAD,KAAK,IAAI3B,IAAI,CAAC+B,CAAC,CAAC;EAClB,CAAC;EAED,MAAMA,CAAC,GAAG7B,SAAS,CAAC,MAAM;IACxBwB,SAAS,CAAC,KAAK,CAAC;IAChB,MAAMM,UAAU,GAAG1B,aAAa;IAChCA,aAAa,GAAGO,OAAO;IACvB,IAAI;MACFW,OAAO,GAAGf,EAAE,CAACe,OAAO,CAAC;IACvB,CAAC,SAAS;MACRlB,aAAa,GAAG0B,UAAU;IAC5B;EACF,CAAC,CAAC;EAEFC,OAAO,CAAC,MAAMP,SAAS,CAAC,IAAI,CAAC,CAAC;AAChC;AAEA,SAASO,OAAOA,CAACxB,EAAc,EAAE;EAC/B,IAAIH,aAAa,IAAI,IAAI,EAAE;IACzBA,aAAa,CAACK,WAAW,CAACuB,IAAI,CAACzB,EAAE,CAAC;EACpC;AACF;AA8BA;AACA,MAAM0B,WAGH,GAAG,EAAE;AAER,OAAO,SAASC,SAASA,CAACC,SAAyB,EAAEC,KAAY,EAAE;EACjE,IAAI,CAACC,WAAW,CAAC,CAAC,EAAE;EACpBJ,WAAW,CAACD,IAAI,CAAC;IAAEG,SAAS;IAAEC;EAAM,CAAC,CAAC;AACxC;AAEA,OAAO,SAASE,QAAQA,CAAA,EAAG;EACzB,IAAI,CAACD,WAAW,CAAC,CAAC,EAAE;EACpBJ,WAAW,CAACM,GAAG,CAAC,CAAC;AACnB;AAEA,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EACjC,IAAI,CAACH,WAAW,CAAC,CAAC,EAAE;;EAEpB;EACAI,OAAO,CAACC,KAAK,CAAC,kBAAkB,CAAC;EACjC,KAAK,IAAIC,CAAC,GAAGV,WAAW,CAACL,MAAM,GAAG,CAAC,EAAEe,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IAChD,MAAM;MAAER,SAAS;MAAEC;IAAM,CAAC,GAAGH,WAAW,CAACU,CAAC,CAAC;IAC3C;IACAF,OAAO,CAACC,KAAK,CAAC,UAAUP,SAAS,CAACS,IAAI,IAAIC,YAAY,CAACT,KAAK,CAAC,GAAG,CAAC;EACnE;AACF;AAEA,SAASS,YAAYA,CAACT,KAAY,EAAE;EAClC,OAAOU,IAAI,CAACC,SAAS,CACnBC,MAAM,CAACC,WAAW,CAChBD,MAAM,CAACE,OAAO,CAACd,KAAK,CAAC,CAACe,GAAG,CAAC,CAAC,CAACC,GAAG,EAAE/B,KAAK,CAAC,KAAK;IAC1C,IAAIgC,SAAS;IACb,QAAQ,OAAOhC,KAAK;MAClB,KAAK,QAAQ;MACb,KAAK,QAAQ;MACb,KAAK,SAAS;QACZgC,SAAS,GAAGhC,KAAK;QACjB;MACF,KAAK,WAAW;QACdgC,SAAS,GAAG,WAAW;QACvB;MACF,KAAK,QAAQ;QACXA,SAAS,GAAGhC,KAAK,GAAG,OAAO,GAAG,IAAI;QAClC;MACF,KAAK,UAAU;QACbgC,SAAS,GAAG,UAAU;QACtB;IACJ;IACA,OAAO,CAACD,GAAG,EAAEC,SAAS,CAAC;EACzB,CAAC,CACH,CACF,CAAC;AACH;;AAEA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,IAAa,EAA4B;EAC1E,OAAO,OAAOA,IAAI,KAAK,UAAU,IAAKA,IAAI,CAASpB,SAAS;AAC9D;AAEA,OAAO,SAASqB,eAAeA,CAC7BC,CAAoB,EACpBrB,KAAa,EACa;EAC1B,MAAMsB,OAAiC,GAAGA,CAAA,KAAM,KAAMD,CAAC,CAACrB,KAAK,CAAC;EAC9DsB,OAAO,CAACtB,KAAK,GAAGA,KAAK;EACrBsB,OAAO,CAACvB,SAAS,GAAGsB,CAAC;EACrB,IAAIA,CAAC,CAACE,GAAG,EAAE;IACTD,OAAO,CAACC,GAAG,GAAGF,CAAC,CAACE,GAAG;EACrB;EAEA,OAAOD,OAAO;AAChB;AAEA,OAAO,SAASE,eAAeA,CAC7BD,GAAW,EACXxB,SAA4B,EACT;EACnBA,SAAS,CAACwB,GAAG,GAAGA,GAAG;EACnB,OAAOxB,SAAS;AAClB;AAcA,OAAO,SAAS0B,UAAUA,CAAC,GAAGC,OAAY,EAAO;EAC/C,MAAMC,MAAM,GAAG,CAAC,CAAC;EACjB,KAAK,IAAIpB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmB,OAAO,CAAClC,MAAM,EAAEe,CAAC,EAAE,EAAE;IACvC,IAAIqB,MAAM,GAAGF,OAAO,CAACnB,CAAC,CAAC;IACvB,IAAI,OAAOqB,MAAM,KAAK,UAAU,EAAEA,MAAM,GAAGA,MAAM,CAAC,CAAC;IACnD,IAAIA,MAAM,EAAE;MACV,MAAMC,WAAW,GAAGjB,MAAM,CAACkB,yBAAyB,CAACF,MAAM,CAAC;MAC5D,KAAK,MAAMZ,GAAG,IAAIa,WAAW,EAAE;QAC7B,IAAIb,GAAG,IAAIW,MAAM,EAAE;QACnBf,MAAM,CAACmB,cAAc,CAACJ,MAAM,EAAEX,GAAG,EAAE;UACjCgB,UAAU,EAAE,IAAI;UAChBC,GAAGA,CAAA,EAAG;YACJ,KAAK,IAAI1B,CAAC,GAAGmB,OAAO,CAAClC,MAAM,GAAG,CAAC,EAAEe,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;cAC5C,IAAI2B,CAAC,GAAGR,OAAO,CAACnB,CAAC,CAAC;cAClB,IAAI,OAAO2B,CAAC,KAAK,UAAU,EAAEA,CAAC,GAAGA,CAAC,CAAC,CAAC;cACpC,MAAMvD,CAAC,GAAG,CAACuD,CAAC,IAAI,CAAC,CAAC,EAAElB,GAAG,CAAC;cACxB,IAAIrC,CAAC,KAAKwD,SAAS,EAAE,OAAOxD,CAAC;YAC/B;UACF;QACF,CAAC,CAAC;MACJ;IACF;EACF;EACA,OAAOgD,MAAM;AACf;AAEA,SAAS1B,WAAWA,CAAA,EAAG;EACrB,OAAO,OAAOmC,OAAO,KAAK,WAAW,IAAI,CAAC,CAACA,OAAO,CAACC,GAAG,EAAEC,WAAW;AACrE","ignoreList":[]}
1
+ {"version":3,"file":"jsx-runtime.js","names":["isReactive","pauseTracking","proxyRefs","resetTracking","shallowRef","stop","toRefs","effect","vueEffect","globalThis","ALLOY","Error","globalContext","getContext","getElementCache","elementCache","root","fn","options","context","componentOwner","disposables","owner","Map","ret","untrack","d","v","memo","equal","o","prev","res","value","undefined","current","cleanupFn","final","k","len","length","c","onCleanup","oldContext","push","CUSTOM_CONTEXT_SYM","Symbol","createCustomContext","useCallback","useCustomContext","useCb","isCustomContext","child","Object","hasOwn","renderStack","pushStack","component","props","shouldDebug","popStack","pop","printRenderStack","console","error","i","name","inspectProps","JSON","stringify","fromEntries","entries","map","key","safeValue","isComponentCreator","item","JSX","jsx","type","createComponent","jsxs","C","creator","tag","taggedComponent","intrinsicElementKey","createIntrinsic","isIntrinsicElement","mergeProps","sources","target","source","descriptors","getOwnPropertyDescriptors","defineProperty","enumerable","get","s","splitProps","keys","refs","remainingKeys","Set","result","keySet","resultSet","delete","remaining","process","env","ALLOY_DEBUG"],"sources":["../../src/jsx-runtime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}