@fluixi/compiler 1.0.0-alpha.92 → 1.0.0-alpha.94

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 (102) hide show
  1. package/dist/analyze/intrinsics.cjs +31 -1
  2. package/dist/analyze/intrinsics.d.cts +14 -0
  3. package/dist/analyze/intrinsics.d.ts +14 -0
  4. package/dist/analyze/intrinsics.d.ts.map +1 -1
  5. package/dist/analyze/intrinsics.js +35 -0
  6. package/dist/analyze/intrinsics.mjs +31 -1
  7. package/dist/analyze/reactive-bindings.cjs +18 -0
  8. package/dist/analyze/reactive-bindings.mjs +18 -0
  9. package/dist/analyze/static-graph.cjs +22 -4
  10. package/dist/analyze/static-graph.d.ts.map +1 -1
  11. package/dist/analyze/static-graph.js +6 -4
  12. package/dist/analyze/static-graph.mjs +22 -4
  13. package/dist/{babel-GI375YZ2.mjs → babel-RJFQVFJW.mjs} +4 -4
  14. package/dist/{chunk-QZ4CJPYP.mjs → chunk-DP2QDWWH.mjs} +1 -1
  15. package/dist/{chunk-DWNWN5RH.mjs → chunk-E2RWTIYE.mjs} +21 -15
  16. package/dist/{chunk-XJ5H2MXY.mjs → chunk-HCCBEJEZ.mjs} +31 -1
  17. package/dist/{chunk-VOUI6XPV.mjs → chunk-HIZU7WI2.mjs} +1 -1
  18. package/dist/{chunk-VC6X44FS.mjs → chunk-ZR2QHTEX.mjs} +505 -68
  19. package/dist/codegen/backends/imperative.cjs +24 -6
  20. package/dist/codegen/backends/imperative.d.ts.map +1 -1
  21. package/dist/codegen/backends/imperative.js +20 -4
  22. package/dist/codegen/backends/imperative.mjs +24 -6
  23. package/dist/frontend/babel/build-ir-lit.cjs +470 -63
  24. package/dist/frontend/babel/build-ir-lit.mjs +470 -63
  25. package/dist/frontend/babel/build-ir.cjs +470 -63
  26. package/dist/frontend/babel/build-ir.mjs +470 -63
  27. package/dist/frontend/babel/index.cjs +471 -64
  28. package/dist/frontend/babel/index.mjs +471 -64
  29. package/dist/frontend/babel/lower-template.cjs +470 -63
  30. package/dist/frontend/babel/lower-template.mjs +470 -63
  31. package/dist/frontend/babel/plugin.cjs +470 -63
  32. package/dist/frontend/babel/plugin.mjs +470 -63
  33. package/dist/index.cjs +360 -58
  34. package/dist/index.mjs +372 -58
  35. package/dist/integrations.cjs +1347 -98
  36. package/dist/integrations.d.ts.map +1 -1
  37. package/dist/integrations.js +44 -2
  38. package/dist/integrations.mjs +205 -19
  39. package/dist/lower/compile-template.cjs +354 -57
  40. package/dist/lower/compile-template.d.cts +13 -0
  41. package/dist/lower/compile-template.d.ts +13 -0
  42. package/dist/lower/compile-template.d.ts.map +1 -1
  43. package/dist/lower/compile-template.js +3 -0
  44. package/dist/lower/compile-template.mjs +366 -57
  45. package/dist/lower/entities.cjs +288 -0
  46. package/dist/lower/entities.d.cts +1 -0
  47. package/dist/lower/entities.d.ts +2 -0
  48. package/dist/lower/entities.d.ts.map +1 -0
  49. package/dist/lower/entities.js +54 -0
  50. package/dist/lower/entities.mjs +267 -0
  51. package/dist/lower/jsx.cjs +567 -7
  52. package/dist/lower/jsx.d.cts +8 -0
  53. package/dist/lower/jsx.d.ts +8 -0
  54. package/dist/lower/jsx.d.ts.map +1 -1
  55. package/dist/lower/jsx.js +205 -7
  56. package/dist/lower/jsx.mjs +567 -7
  57. package/dist/lower/template.cjs +332 -56
  58. package/dist/lower/template.d.ts.map +1 -1
  59. package/dist/lower/template.js +57 -49
  60. package/dist/lower/template.mjs +332 -56
  61. package/dist/resolve/builtins.cjs +1 -1
  62. package/dist/resolve/builtins.mjs +1 -1
  63. package/dist/resolve/component-globals.cjs +20 -1
  64. package/dist/resolve/component-globals.js +2 -2
  65. package/dist/resolve/component-globals.mjs +20 -1
  66. package/dist/resolve/write-globals.cjs +20 -1
  67. package/dist/resolve/write-globals.mjs +20 -1
  68. package/dist/{server-fns-BBZRZUPP.mjs → server-fns-JLSTKWPS.mjs} +4 -4
  69. package/dist/{server-functions-VEGLIFCE.mjs → server-functions-BGY3RD4R.mjs} +3 -3
  70. package/dist/transform/index.cjs +1123 -77
  71. package/dist/transform/index.mjs +1141 -91
  72. package/dist/transform/intrinsics.cjs +18 -0
  73. package/dist/transform/intrinsics.mjs +18 -0
  74. package/dist/transform/props.mjs +19 -14
  75. package/dist/transform/server-fns.mjs +19 -14
  76. package/dist/transform/source-locations.cjs +64 -3
  77. package/dist/transform/source-locations.d.cts +7 -2
  78. package/dist/transform/source-locations.d.ts +7 -2
  79. package/dist/transform/source-locations.d.ts.map +1 -1
  80. package/dist/transform/source-locations.js +68 -3
  81. package/dist/transform/source-locations.mjs +64 -3
  82. package/dist/transform/styles.cjs +588 -0
  83. package/dist/transform/styles.d.cts +211 -0
  84. package/dist/transform/styles.d.ts +212 -0
  85. package/dist/transform/styles.d.ts.map +1 -0
  86. package/dist/transform/styles.js +714 -0
  87. package/dist/transform/styles.mjs +653 -0
  88. package/dist/transform/templates.cjs +1122 -76
  89. package/dist/transform/templates.d.cts +13 -0
  90. package/dist/transform/templates.d.ts +13 -0
  91. package/dist/transform/templates.d.ts.map +1 -1
  92. package/dist/transform/templates.js +51 -14
  93. package/dist/transform/templates.mjs +1140 -90
  94. package/dist/{transform-UWZ7ZGJ2.mjs → transform-GBP6Y4UI.mjs} +603 -19
  95. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  96. package/dist/vite-styles.cjs +180 -0
  97. package/dist/vite-styles.d.cts +59 -0
  98. package/dist/vite-styles.d.ts +60 -0
  99. package/dist/vite-styles.d.ts.map +1 -0
  100. package/dist/vite-styles.js +198 -0
  101. package/dist/vite-styles.mjs +159 -0
  102. package/package.json +10 -3
@@ -0,0 +1,211 @@
1
+ /** A Babel AST node, as the rest of the compiler reads it: loosely. */
2
+ interface Node {
3
+ type: string;
4
+ start?: number | null;
5
+ end?: number | null;
6
+ loc?: {
7
+ start: {
8
+ line: number;
9
+ column: number;
10
+ };
11
+ } | null;
12
+ [key: string]: any;
13
+ }
14
+ /** The engine's AST: what `processCss` from @fluixi-css returns. */
15
+ /** Where a node was written: line from 1, column from 0. */
16
+ export interface StyleLoc {
17
+ source: string;
18
+ line: number;
19
+ column: number;
20
+ }
21
+ export type StyleNode = {
22
+ kind: 'declaration';
23
+ property: string;
24
+ value: string;
25
+ important: boolean;
26
+ loc?: StyleLoc;
27
+ } | {
28
+ kind: 'rule';
29
+ selector: string;
30
+ nodes: StyleNode[];
31
+ loc?: StyleLoc;
32
+ } | {
33
+ kind: 'at-rule';
34
+ name: string;
35
+ params: string;
36
+ nodes: StyleNode[];
37
+ loc?: StyleLoc;
38
+ } | {
39
+ kind: 'raw';
40
+ text: string;
41
+ loc?: StyleLoc;
42
+ };
43
+ /** A V3 source map. */
44
+ export interface StyleMap {
45
+ version: 3;
46
+ sources: string[];
47
+ sourcesContent: string[];
48
+ names: string[];
49
+ mappings: string;
50
+ }
51
+ export interface StyleOptions {
52
+ /** CSS in, flattened engine AST out: `(css, from) => processCss(css, ctx, { from }).ast`. */
53
+ process(css: string, from: string): StyleNode[];
54
+ minify?: boolean;
55
+ /** Modules whose `css` export is the portable literal. Default `['@fluixi/core', '@fluixi/dom']`. */
56
+ cssModules?: string[];
57
+ /**
58
+ * Style values from other modules, resolved by the build, keyed `${source}#${exportName}` as
59
+ * the import names them. A reference not in here is reported in `styleReferences`.
60
+ */
61
+ imported?: Map<string, StyleNode[]>;
62
+ }
63
+ /** A `css`` value: portable, unscoped, emitted only where something uses it. */
64
+ export interface StyleLiteral {
65
+ id: string;
66
+ /** The variable it is bound to. */
67
+ name: string;
68
+ css: string;
69
+ }
70
+ /** An interpolated style value from another module, for the build to resolve. */
71
+ export interface StyleReference {
72
+ /** The export it is, in `source`. */
73
+ name: string;
74
+ source: string;
75
+ line: number;
76
+ column: number;
77
+ }
78
+ export interface CompiledStyle {
79
+ /** The scope id for a scoped block, the component's for a global one. */
80
+ id: string;
81
+ scoped: boolean;
82
+ /** The component the block belongs to, as named in the source. */
83
+ component: string;
84
+ css: string;
85
+ /** Back to the module, when the host gave its id and code. */
86
+ map?: StyleMap;
87
+ /** For a shadow-DOM element: adopted by its shadow root (static styles), not a page stylesheet. */
88
+ shadow?: boolean;
89
+ line: number;
90
+ column: number;
91
+ }
92
+ /** A custom element class with a shadow root, and what its styles are made of. */
93
+ interface ShadowClass {
94
+ node: Node;
95
+ /** Its `static styles = …`, when it has one. */
96
+ styles?: Node;
97
+ /** Indexes in `plan.styles` of the blocks its render holds. */
98
+ indexes: number[];
99
+ }
100
+ export interface StyleDiagnostic {
101
+ line: number;
102
+ column: number;
103
+ message: string;
104
+ }
105
+ export interface StylePlan {
106
+ /** Source ranges whose intrinsic elements get `data-fx-s`, with the value. */
107
+ scopes: {
108
+ start: number;
109
+ end: number;
110
+ value: string;
111
+ }[];
112
+ /** `` html`` `` templates holding a `<style>`, by start offset: whose block it is. */
113
+ templateOwners: Map<number, {
114
+ id: string;
115
+ component: string;
116
+ }>;
117
+ /** Start offsets of the `<style>` elements to leave out of the template. */
118
+ drop: Set<number>;
119
+ styles: CompiledStyle[];
120
+ diagnostics: StyleDiagnostic[];
121
+ /** Source edits: each `css`` replaced by its handle, the `css` import taken out. */
122
+ edits: {
123
+ start: number;
124
+ end: number;
125
+ code: string;
126
+ }[];
127
+ literals: StyleLiteral[];
128
+ references: StyleReference[];
129
+ shadowClasses: Map<Node, ShadowClass>;
130
+ /** The module's `css`` names and imports, for rewriting a shadow class's `static styles`. */
131
+ names?: {
132
+ literals: Map<string, Node>;
133
+ imports: Map<string, {
134
+ source: string;
135
+ name: string;
136
+ }>;
137
+ };
138
+ }
139
+ export declare const SCOPE_ATTR = "data-fx-s";
140
+ /** Finds the style blocks of a module and compiles them. Without `options`, nothing happens. */
141
+ export declare function collectStyles(program: Node, sourceName: string, options: StyleOptions | undefined,
142
+ /** Template tags by name (`html`, `$html`), and the `css` tags a module may use unimported (`$css`). */
143
+ tags?: {
144
+ html: ReadonlyMap<string, string>;
145
+ css?: string[];
146
+ },
147
+ /** The module as the host knows it, for source maps that point into it. */
148
+ module?: {
149
+ id: string;
150
+ code: string;
151
+ }): StylePlan;
152
+ /** What a template's compile needs to know about styles, and where it reports them. */
153
+ export interface TemplateStyles {
154
+ options: StyleOptions;
155
+ /** Stamp every element of the template with this scope. */
156
+ scope?: string;
157
+ /** Whose `<style>` blocks this template holds: they were compiled with the module. */
158
+ owner?: {
159
+ id: string;
160
+ component: string;
161
+ };
162
+ line: number;
163
+ column: number;
164
+ styles: CompiledStyle[];
165
+ diagnostics: StyleDiagnostic[];
166
+ }
167
+ interface IRLike {
168
+ kind: string;
169
+ tag?: string;
170
+ props?: {
171
+ name: string;
172
+ kind: string;
173
+ literal?: unknown;
174
+ }[];
175
+ children?: IRLike[];
176
+ value?: string;
177
+ }
178
+ /**
179
+ * The template form: after lowering, a `<style>` is an element with raw text. It is taken out,
180
+ * compiled like a JSX block, and the template's other elements get the scope.
181
+ */
182
+ export declare function applyTemplateStyles(ir: IRLike, t: TemplateStyles): void;
183
+ /**
184
+ * A shadow-DOM element's styles: once every block is compiled, each class's blocks and the
185
+ * `css`` values named in its `static styles` become `?inline` imports of their processed CSS
186
+ * (the text `static styles` takes), and the class's `static styles` lists them.
187
+ */
188
+ export declare function finishShadowStyles(plan: StylePlan, code: string, moduleId: string): {
189
+ start: number;
190
+ end: number;
191
+ code: string;
192
+ }[];
193
+ /** FNV-1a, 32 bits, base 36: short, stable for the same file and component everywhere. */
194
+ export declare function hash(text: string): string;
195
+ /** Adds the scope to every selector, through grouping at-rules; keyframes and the like are left. */
196
+ export declare function scopeNodes(nodes: StyleNode[], id: string, warn?: (message: string) => void): StyleNode[];
197
+ /** Scopes a selector list: each complex selector gets the scope on its last compound. */
198
+ export declare function scopeSelector(selector: string, id: string, warn?: (message: string) => void): string;
199
+ /**
200
+ * Prints like `printStyle`, with a map from each rule and declaration back to where it was
201
+ * written in the module: the browser's devtools then show the `.tsx` line, not the generated CSS.
202
+ */
203
+ export declare function printStyleWithMap(nodes: StyleNode[], minify: boolean | undefined, sourceName: string, module: {
204
+ id: string;
205
+ code: string;
206
+ }): {
207
+ css: string;
208
+ map: StyleMap;
209
+ };
210
+ export declare function printStyle(nodes: StyleNode[], minify?: boolean): string;
211
+ export {};
@@ -0,0 +1,212 @@
1
+ /** A Babel AST node, as the rest of the compiler reads it: loosely. */
2
+ interface Node {
3
+ type: string;
4
+ start?: number | null;
5
+ end?: number | null;
6
+ loc?: {
7
+ start: {
8
+ line: number;
9
+ column: number;
10
+ };
11
+ } | null;
12
+ [key: string]: any;
13
+ }
14
+ /** The engine's AST: what `processCss` from @fluixi-css returns. */
15
+ /** Where a node was written: line from 1, column from 0. */
16
+ export interface StyleLoc {
17
+ source: string;
18
+ line: number;
19
+ column: number;
20
+ }
21
+ export type StyleNode = {
22
+ kind: 'declaration';
23
+ property: string;
24
+ value: string;
25
+ important: boolean;
26
+ loc?: StyleLoc;
27
+ } | {
28
+ kind: 'rule';
29
+ selector: string;
30
+ nodes: StyleNode[];
31
+ loc?: StyleLoc;
32
+ } | {
33
+ kind: 'at-rule';
34
+ name: string;
35
+ params: string;
36
+ nodes: StyleNode[];
37
+ loc?: StyleLoc;
38
+ } | {
39
+ kind: 'raw';
40
+ text: string;
41
+ loc?: StyleLoc;
42
+ };
43
+ /** A V3 source map. */
44
+ export interface StyleMap {
45
+ version: 3;
46
+ sources: string[];
47
+ sourcesContent: string[];
48
+ names: string[];
49
+ mappings: string;
50
+ }
51
+ export interface StyleOptions {
52
+ /** CSS in, flattened engine AST out: `(css, from) => processCss(css, ctx, { from }).ast`. */
53
+ process(css: string, from: string): StyleNode[];
54
+ minify?: boolean;
55
+ /** Modules whose `css` export is the portable literal. Default `['@fluixi/core', '@fluixi/dom']`. */
56
+ cssModules?: string[];
57
+ /**
58
+ * Style values from other modules, resolved by the build, keyed `${source}#${exportName}` as
59
+ * the import names them. A reference not in here is reported in `styleReferences`.
60
+ */
61
+ imported?: Map<string, StyleNode[]>;
62
+ }
63
+ /** A `css`` value: portable, unscoped, emitted only where something uses it. */
64
+ export interface StyleLiteral {
65
+ id: string;
66
+ /** The variable it is bound to. */
67
+ name: string;
68
+ css: string;
69
+ }
70
+ /** An interpolated style value from another module, for the build to resolve. */
71
+ export interface StyleReference {
72
+ /** The export it is, in `source`. */
73
+ name: string;
74
+ source: string;
75
+ line: number;
76
+ column: number;
77
+ }
78
+ export interface CompiledStyle {
79
+ /** The scope id for a scoped block, the component's for a global one. */
80
+ id: string;
81
+ scoped: boolean;
82
+ /** The component the block belongs to, as named in the source. */
83
+ component: string;
84
+ css: string;
85
+ /** Back to the module, when the host gave its id and code. */
86
+ map?: StyleMap;
87
+ /** For a shadow-DOM element: adopted by its shadow root (static styles), not a page stylesheet. */
88
+ shadow?: boolean;
89
+ line: number;
90
+ column: number;
91
+ }
92
+ /** A custom element class with a shadow root, and what its styles are made of. */
93
+ interface ShadowClass {
94
+ node: Node;
95
+ /** Its `static styles = …`, when it has one. */
96
+ styles?: Node;
97
+ /** Indexes in `plan.styles` of the blocks its render holds. */
98
+ indexes: number[];
99
+ }
100
+ export interface StyleDiagnostic {
101
+ line: number;
102
+ column: number;
103
+ message: string;
104
+ }
105
+ export interface StylePlan {
106
+ /** Source ranges whose intrinsic elements get `data-fx-s`, with the value. */
107
+ scopes: {
108
+ start: number;
109
+ end: number;
110
+ value: string;
111
+ }[];
112
+ /** `` html`` `` templates holding a `<style>`, by start offset: whose block it is. */
113
+ templateOwners: Map<number, {
114
+ id: string;
115
+ component: string;
116
+ }>;
117
+ /** Start offsets of the `<style>` elements to leave out of the template. */
118
+ drop: Set<number>;
119
+ styles: CompiledStyle[];
120
+ diagnostics: StyleDiagnostic[];
121
+ /** Source edits: each `css`` replaced by its handle, the `css` import taken out. */
122
+ edits: {
123
+ start: number;
124
+ end: number;
125
+ code: string;
126
+ }[];
127
+ literals: StyleLiteral[];
128
+ references: StyleReference[];
129
+ shadowClasses: Map<Node, ShadowClass>;
130
+ /** The module's `css`` names and imports, for rewriting a shadow class's `static styles`. */
131
+ names?: {
132
+ literals: Map<string, Node>;
133
+ imports: Map<string, {
134
+ source: string;
135
+ name: string;
136
+ }>;
137
+ };
138
+ }
139
+ export declare const SCOPE_ATTR = "data-fx-s";
140
+ /** Finds the style blocks of a module and compiles them. Without `options`, nothing happens. */
141
+ export declare function collectStyles(program: Node, sourceName: string, options: StyleOptions | undefined,
142
+ /** Template tags by name (`html`, `$html`), and the `css` tags a module may use unimported (`$css`). */
143
+ tags?: {
144
+ html: ReadonlyMap<string, string>;
145
+ css?: string[];
146
+ },
147
+ /** The module as the host knows it, for source maps that point into it. */
148
+ module?: {
149
+ id: string;
150
+ code: string;
151
+ }): StylePlan;
152
+ /** What a template's compile needs to know about styles, and where it reports them. */
153
+ export interface TemplateStyles {
154
+ options: StyleOptions;
155
+ /** Stamp every element of the template with this scope. */
156
+ scope?: string;
157
+ /** Whose `<style>` blocks this template holds: they were compiled with the module. */
158
+ owner?: {
159
+ id: string;
160
+ component: string;
161
+ };
162
+ line: number;
163
+ column: number;
164
+ styles: CompiledStyle[];
165
+ diagnostics: StyleDiagnostic[];
166
+ }
167
+ interface IRLike {
168
+ kind: string;
169
+ tag?: string;
170
+ props?: {
171
+ name: string;
172
+ kind: string;
173
+ literal?: unknown;
174
+ }[];
175
+ children?: IRLike[];
176
+ value?: string;
177
+ }
178
+ /**
179
+ * The template form: after lowering, a `<style>` is an element with raw text. It is taken out,
180
+ * compiled like a JSX block, and the template's other elements get the scope.
181
+ */
182
+ export declare function applyTemplateStyles(ir: IRLike, t: TemplateStyles): void;
183
+ /**
184
+ * A shadow-DOM element's styles: once every block is compiled, each class's blocks and the
185
+ * `css`` values named in its `static styles` become `?inline` imports of their processed CSS
186
+ * (the text `static styles` takes), and the class's `static styles` lists them.
187
+ */
188
+ export declare function finishShadowStyles(plan: StylePlan, code: string, moduleId: string): {
189
+ start: number;
190
+ end: number;
191
+ code: string;
192
+ }[];
193
+ /** FNV-1a, 32 bits, base 36: short, stable for the same file and component everywhere. */
194
+ export declare function hash(text: string): string;
195
+ /** Adds the scope to every selector, through grouping at-rules; keyframes and the like are left. */
196
+ export declare function scopeNodes(nodes: StyleNode[], id: string, warn?: (message: string) => void): StyleNode[];
197
+ /** Scopes a selector list: each complex selector gets the scope on its last compound. */
198
+ export declare function scopeSelector(selector: string, id: string, warn?: (message: string) => void): string;
199
+ /**
200
+ * Prints like `printStyle`, with a map from each rule and declaration back to where it was
201
+ * written in the module: the browser's devtools then show the `.tsx` line, not the generated CSS.
202
+ */
203
+ export declare function printStyleWithMap(nodes: StyleNode[], minify: boolean | undefined, sourceName: string, module: {
204
+ id: string;
205
+ code: string;
206
+ }): {
207
+ css: string;
208
+ map: StyleMap;
209
+ };
210
+ export declare function printStyle(nodes: StyleNode[], minify?: boolean): string;
211
+ export {};
212
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/transform/styles.ts"],"names":[],"mappings":"AAcA,uEAAuE;AACvE,UAAU,IAAI;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE;QAAE,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IACzD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,oEAAoE;AACpE,4DAA4D;AAC5D,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,QAAQ,CAAA;CAAE,GAC5F;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,QAAQ,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,QAAQ,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,QAAQ,CAAA;CAAE,CAAC;AAElD,uBAAuB;AACvB,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,6FAA6F;IAC7F,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qGAAqG;IACrG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;CACrC;AAED,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,mGAAmG;IACnG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,kFAAkF;AAClF,UAAU,WAAW;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,gDAAgD;IAChD,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,+DAA+D;IAC/D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,8EAA8E;IAC9E,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxD,sFAAsF;IACtF,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,4EAA4E;IAC5E,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,oFAAoF;IACpF,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACtC,6FAA6F;IAC7F,KAAK,CAAC,EAAE;QAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;CACjG;AAED,eAAO,MAAM,UAAU,cAAc,CAAC;AAItC,gGAAgG;AAChG,wBAAgB,aAAa,CAC3B,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,YAAY,GAAG,SAAS;AACjC,wGAAwG;AACxG,IAAI,GAAE;IAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CAA0C;AACnG,2EAA2E;AAC3E,MAAM,CAAC,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC,SAAS,CAkMX;AAID,uFAAuF;AACvF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC;AAED,UAAU,MAAM;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC5D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,GAAG,IAAI,CAevE;AAQD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAwClI;AAkJD,0FAA0F;AAC1F,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOzC;AAOD,oGAAoG;AACpG,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAe,GAAG,SAAS,EAAE,CAMlH;AAED,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAe,GAAG,MAAM,CAI9G;AAyJD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,EAAE,EAClB,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAA;CAAE,CAkChC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,UAAQ,GAAG,MAAM,CAmBrE"}