@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,132 +1,83 @@
1
+ import { Doc } from "prettier";
1
2
  import { Children, Context } from "./jsx-runtime.js";
2
3
  /**
3
- * The component tree is constructed as the result of transforming JSX with
4
- * `@alloy-js/babel-preset`. Elements in the component tree (represented by the type
5
- * Children) are three distinct types of things:
6
- *
7
- * 1. Primitive data types, which are either literal JSX or substitutions
8
- * 2. Components, which are created via `createComponent`
9
- * 3. Memos, which are created via `memo`, and represent substitutions like
10
- * property accesses and function calls that might be reactive.
11
- *
12
- * This tree is then compiled into a render tree, which is a normalized form of
13
- * the component tree. The render tree is constructed by traversing the
14
- * component tree, invoking components, wrapping memos, doing whitespace
15
- * normalization, and other activities. There are four types of nodes in the
16
- * render tree.
17
- *
18
- * 1. Strings, which are either literal JSX or substitutions. Other primitive
19
- * types are either converted to the empty string or stringified as
20
- * appropriate.
21
- * 2. Components, which are possibly wrapped if they are indented.
22
- * 3. Memos, which are wrapped in a reactive effect which updates its render
23
- * tree nodes when its value changes.
24
- * 4. Arrays of these things.
25
- *
26
- * The render tree is whitespace normalized and indentation preserving. When the
27
- * component increases the literal indent level and then embeds a component,
28
- * memo, or array, the contents of that substitution are indented appropriately.
29
- * This is accomplished by wrapping those substitutions in an indent component.
30
- *
31
- * So the high level process for rendering while normalizing whitespace is as
32
- * follows:
33
- *
34
- * 1. For an array of elements in the render tree (which may be a component or
35
- * array of elements):
36
- * 1. Normalize all primitive values other than strings to strings.
37
- * Recursively normalize nested array elements.
38
- * 2. Use the first text node to determine the literal indent level of the
39
- * children. Remove all preceding whitespace - any indent of the first
40
- * line is provided in the text nodes preceding the reference to this
41
- * component. If the first element is not a literal string, then no
42
- * literal indent is applied, and all indentation within the component
43
- * becomes significant.
44
- * 3. For each child of the component, render it:
45
- * 1. If it is a string, reindent it by splitting on lines and replacing
46
- * the detected literal whitespace with the current indent level,
47
- * skipping the first line. If the string ends with a larger literal
48
- * indent than the detected literal indent, then a subsequent child
49
- * will be indented.
50
- * 2. If it's a component, if the next child should be indented, create an
51
- * Indent component and wrap the component's children in it.
52
- * 3. If it's a function, if the next child should be indented, wrap it in
53
- * an indent component. Any elements processed as a result of executing
54
- * the memo are treated as first elements in a child array are with
55
- * respect to establishing literal indent level and whitespace trimming
56
- * behavior.
57
- * 4. If it's an array, if the next child should be indented, create an
58
- * Indent component and wrap it the array in it.
59
- *
60
- * Let's look at a few examples of each of these phases:
61
- *
62
- * ## Explicit indentation
63
- *
64
- * ### Input
65
- * ```
66
- * <Indent>
67
- * <Foo />
68
- * <Foo />
69
- * </Indent>
70
- * ```
71
- *
72
- * ### Compiled tree
73
- * ```
74
- * [
75
- * createComponent(Indent, {
76
- * get children() {
77
- * return [
78
- * "\n ",
79
- * createComponent(Foo, {}),
80
- * "\n ",
81
- * createComponent(Foo, {}),
82
- * "\n"
83
- * ]
84
- * }
85
- * })
86
- * ]
87
- * ```
88
- *
89
- * ### Render tree
90
- * ```
91
- * [ // node for Indent
92
- * [ // node for Context Provider
93
- * " ", // indent from the children of Indent
94
- * [ // component for Foo
95
- * "Foo" // result of calling Foo
96
- * ],
97
- * "\n ", // indent and line break from the children of Ident
98
- * [ "Foo" ] // second foo component
99
- * ]
100
- * ]
101
- * ```
102
- * ### Rendered text
103
- * ```
104
- * FooFoo
105
- * ```
106
- *
107
- * ## Implicit indentation
108
- *
109
- * ### Input
110
- * ```
111
- * <>
112
- * base
113
- * <Foo /> <Foo />
114
- * </>
115
- * ```
116
- *
117
- * ### Render tree
118
- * ```
119
- * [ // node for top-level fragment
120
- * "base\n ", // contents of fragment, including trailing indent
121
- * [ // node for implicitly created Indent component
122
- * [ // node for its context provider [ "Foo" ], // contents of Foo "\n"
123
- * ]
124
- * ```
125
- * ## Rendered text
126
- * ```
127
- * base
128
- * Foo Foo
129
- * ```
4
+ * Turning components into source text involves three different trees produced
5
+ * sequentially:
6
+ *
7
+ * 1. Component tree, built by the nesting of components
8
+ * 2. Rendered text tree, produced by *rendering* the component tree
9
+ * 3. Document tree, produced by *printing* the rendered text tree
10
+ *
11
+ * Finally, the document tree is converted to text via `prettier`. Let's look at
12
+ * each of these trees and the conversions in detail.
13
+ *
14
+ * # Component tree
15
+ *
16
+ * The component tree is built by JSX or STC templates. The nodes in this tree
17
+ * are defined by the type `Child` and are one of the following
18
+ *
19
+ * ## Primitive values
20
+ *
21
+ * Strings in the tree are placed into the rendered text tree as-is. Numbers are
22
+ * converted to strings. Falsy primitive values and booleans are converted to
23
+ * empty strings (and may cause a line break to be ignored, see below).
24
+ *
25
+ * ## Nullary functions
26
+ *
27
+ * Nullary functions represent computed or reactive values in the component
28
+ * tree, such as expressions placed into a JSX template with curly brackets.
29
+ * Nullary functions return `Children` which are then recursively rendered.
30
+ * Nullary functions are invoked in an effect which will update the rendered
31
+ * text tree when any reactive dependencies change.
32
+ *
33
+ * ## Component creators
34
+ *
35
+ * Component creators are a special kind of nullary function which instantiate
36
+ * components in order to get their children which are then recursively
37
+ * rendered. Component creators have some special rendering behavior, such as
38
+ * tracking the stack of rendered components. Like other nullary functions,
39
+ * component creators are invoked in an effect which will update the rendered
40
+ * text tree when any reactive dependencies change.
41
+ *
42
+ * ## Refs
43
+ *
44
+ * Refs are wrapped in a nullary function and rendered in an effect which will
45
+ * update the rendered text tree when the ref's value changes. This is
46
+ * essentially a syntactic convenience, allowing JSX templates to contain
47
+ * `\{ someRef \}` instead of `\{ someRef.value \}`.
48
+ *
49
+ * ## Refkey
50
+ *
51
+ * Refkeys are replaced with a component creator for the Reference component
52
+ * associated with the current source file. This allows creating references by
53
+ * placing them directly in the component tree e.g. `{ someRefkey }`.
54
+ *
55
+ * ## CustomContext
56
+ *
57
+ * CustomContext is a special kind of component which allows rendering children
58
+ * within a custom reactive context. This enables components to manually manage
59
+ * the lifetime of their reactive contexts.
60
+ *
61
+ * ## IntrinsicElement
62
+ *
63
+ * Various intrinsic elements exist to control formatting. These elements
64
+ * provide Print Hooks that are called during Printing.
65
+ *
66
+ * # Rendered Text Tree
67
+ *
68
+ * This tree is a nested array structure containing the rendered output of all
69
+ * the components in the component tree. This structure is updated reactively
70
+ * when reactive dependencies change. The nodes in this tree are predominantly
71
+ * strings, but can also be Print Hooks.
72
+ *
73
+ * This tree is built by the `renderTree` function.
74
+ *
75
+ * # Document Tree
76
+ *
77
+ * This tree is constructed by calling `printTree` on the rendered text tree.
78
+ * The rendered text tree is walked and the appropriate Prettier builders are
79
+ * called to produce a document tree. The result is then passed to Prettier's
80
+ * `printDocToString` function to produce the final source text.
130
81
  */
131
82
  export interface OutputDirectory {
132
83
  kind: "directory";
@@ -139,9 +90,33 @@ export interface OutputFile {
139
90
  path: string;
140
91
  filetype: string;
141
92
  }
142
- export declare function getContextForRenderNode(node: RenderTextTree): Context | undefined;
143
- export type RenderStructure = {};
144
- export type RenderTextTree = (string | RenderTextTree)[];
145
- export declare function render(children: Children): OutputDirectory;
146
- export declare function renderTree(children: Children): RenderTextTree;
93
+ export declare function getContextForRenderNode(node: RenderedTextTree): Context | undefined;
94
+ export declare const printHookTag: unique symbol;
95
+ export interface PrintHook {
96
+ [printHookTag]: true;
97
+ transform?(tree: RenderedTextTree): RenderedTextTree;
98
+ print?(tree: RenderedTextTree, print: (subtree: RenderedTextTree) => Doc): Doc;
99
+ subtree: RenderedTextTree;
100
+ }
101
+ export declare function createRenderTreeHook(subtree: RenderedTextTree, hooks: Omit<PrintHook, typeof printHookTag | "subtree">): PrintHook;
102
+ export declare function isPrintHook(type: unknown): type is PrintHook;
103
+ export type RenderedTextTree = (string | RenderedTextTree | PrintHook)[];
104
+ export declare function render(children: Children, options?: PrintTreeOptions): OutputDirectory;
105
+ export declare function renderTree(children: Children): RenderedTextTree;
106
+ export interface PrintTreeOptions {
107
+ /**
108
+ * The number of characters the printer will wrap on. Defaults to 100
109
+ * characters.
110
+ */
111
+ printWidth?: number;
112
+ /**
113
+ * Whether to use tabs instead of spaces for indentation. Defaults to false.
114
+ */
115
+ useTabs?: boolean;
116
+ /**
117
+ * The number of spaces to use for indentation. Defaults to 2 spaces.
118
+ */
119
+ tabWidth?: number;
120
+ }
121
+ export declare function printTree(tree: RenderedTextTree, options?: PrintTreeOptions): string;
147
122
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/render.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,QAAQ,EACR,OAAO,EASR,MAAM,kBAAkB,CAAC;AAG1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgIG;AAGH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,CAAC,eAAe,GAAG,UAAU,CAAC,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,uBAE3D;AACD,MAAM,MAAM,eAAe,GAAG,EAAE,CAAC;AAEjC,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC;AAOzD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe,CAgE1D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,kBAe5C"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/render.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAO,MAAM,UAAU,CAAC;AAIpC,OAAO,EAEL,QAAQ,EACR,OAAO,EAcR,MAAM,kBAAkB,CAAC;AAsB1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,CAAC,eAAe,GAAG,UAAU,CAAC,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,uBAE7D;AAED,eAAO,MAAM,YAAY,eAAW,CAAC;AAErC,MAAM,WAAW,SAAS;IACxB,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;IACrB,SAAS,CAAC,CAAC,IAAI,EAAE,gBAAgB,GAAG,gBAAgB,CAAC;IACrD,KAAK,CAAC,CACJ,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,GAAG,GACxC,GAAG,CAAC;IACP,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,YAAY,GAAG,SAAS,CAAC,GACtD,SAAS,CAMX;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,SAAS,CAE5D;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC,EAAE,CAAC;AAOzE,wBAAgB,MAAM,CACpB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,GACzB,eAAe,CAsFjB;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,oBAY5C;AA4OD,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAOD,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,gBAAgB,UAW3E"}