@fuzdev/fuz_ui 0.194.0 → 0.195.1

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 (61) hide show
  1. package/dist/DeclarationDetail.svelte +139 -64
  2. package/dist/DeclarationDetail.svelte.d.ts +9 -0
  3. package/dist/DeclarationDetail.svelte.d.ts.map +1 -1
  4. package/dist/LibraryDetail.svelte +14 -10
  5. package/dist/LibraryDetail.svelte.d.ts +7 -0
  6. package/dist/LibraryDetail.svelte.d.ts.map +1 -1
  7. package/dist/declaration.svelte.d.ts +233 -25
  8. package/dist/declaration.svelte.d.ts.map +1 -1
  9. package/dist/declaration.svelte.js +71 -23
  10. package/dist/library.svelte.js +1 -1
  11. package/dist/library_gen.d.ts +24 -17
  12. package/dist/library_gen.d.ts.map +1 -1
  13. package/dist/library_gen.js +52 -32
  14. package/dist/library_output.d.ts +5 -4
  15. package/dist/library_output.d.ts.map +1 -1
  16. package/dist/library_output.js +11 -8
  17. package/dist/module.svelte.d.ts +21 -7
  18. package/dist/module.svelte.d.ts.map +1 -1
  19. package/dist/module.svelte.js +26 -11
  20. package/dist/tsdoc_mdz.d.ts +6 -1
  21. package/dist/tsdoc_mdz.d.ts.map +1 -1
  22. package/dist/tsdoc_mdz.js +23 -2
  23. package/package.json +10 -8
  24. package/src/lib/declaration.svelte.ts +90 -35
  25. package/src/lib/library.svelte.ts +1 -1
  26. package/src/lib/library_gen.ts +65 -42
  27. package/src/lib/library_output.ts +11 -8
  28. package/src/lib/module.svelte.ts +29 -16
  29. package/src/lib/tsdoc_mdz.ts +25 -2
  30. package/dist/analysis_context.d.ts +0 -199
  31. package/dist/analysis_context.d.ts.map +0 -1
  32. package/dist/analysis_context.js +0 -138
  33. package/dist/library_analysis.d.ts +0 -112
  34. package/dist/library_analysis.d.ts.map +0 -1
  35. package/dist/library_analysis.js +0 -106
  36. package/dist/library_generate.d.ts +0 -94
  37. package/dist/library_generate.d.ts.map +0 -1
  38. package/dist/library_generate.js +0 -147
  39. package/dist/library_pipeline.d.ts +0 -113
  40. package/dist/library_pipeline.d.ts.map +0 -1
  41. package/dist/library_pipeline.js +0 -160
  42. package/dist/module_helpers.d.ts +0 -334
  43. package/dist/module_helpers.d.ts.map +0 -1
  44. package/dist/module_helpers.js +0 -317
  45. package/dist/svelte_helpers.d.ts +0 -92
  46. package/dist/svelte_helpers.d.ts.map +0 -1
  47. package/dist/svelte_helpers.js +0 -367
  48. package/dist/ts_helpers.d.ts +0 -181
  49. package/dist/ts_helpers.d.ts.map +0 -1
  50. package/dist/ts_helpers.js +0 -674
  51. package/dist/tsdoc_helpers.d.ts +0 -119
  52. package/dist/tsdoc_helpers.d.ts.map +0 -1
  53. package/dist/tsdoc_helpers.js +0 -207
  54. package/src/lib/analysis_context.ts +0 -254
  55. package/src/lib/library_analysis.ts +0 -168
  56. package/src/lib/library_generate.ts +0 -215
  57. package/src/lib/library_pipeline.ts +0 -221
  58. package/src/lib/module_helpers.ts +0 -501
  59. package/src/lib/svelte_helpers.ts +0 -539
  60. package/src/lib/ts_helpers.ts +0 -862
  61. package/src/lib/tsdoc_helpers.ts +0 -246
@@ -1,3 +1,14 @@
1
+ <!--
2
+ @component
3
+
4
+ Renders the full detail view for an exported declaration.
5
+ Handles all svelte-docinfo declaration kinds (function, class, interface,
6
+ type, variable, enum, component, snippet) and their kind-specific fields
7
+ including parameters, props, members, overloads, intersects, and more.
8
+
9
+ @see `declaration.svelte.ts` for the `Declaration` wrapper class
10
+ @see {@link https://github.com/ryanatkn/svelte-docinfo svelte-docinfo} for the analysis library
11
+ -->
1
12
  <script lang="ts">
2
13
  import Code from '@fuzdev/fuz_code/Code.svelte';
3
14
 
@@ -19,10 +30,26 @@
19
30
  {/if}
20
31
  </p>
21
32
 
33
+ <!-- chips -->
34
+ <div class="row gap_md">
35
+ <!-- eslint-disable-next-line @typescript-eslint/no-deprecated -->
36
+ {#if declaration.is_deprecated}
37
+ <span class="chip">⚠️ deprecated</span>
38
+ {/if}
39
+ {#if declaration.accepts_children}
40
+ <span class="chip">accepts children</span>
41
+ {/if}
42
+ {#if declaration.alias_of}
43
+ <span class="chip"
44
+ >alias of {declaration.alias_of.name}{#if declaration.alias_of.module}
45
+ in {declaration.alias_of.module}{/if}</span
46
+ >
47
+ {/if}
48
+ </div>
49
+
22
50
  <!-- eslint-disable-next-line @typescript-eslint/no-deprecated -->
23
- {#if declaration.is_deprecated}
51
+ {#if declaration.deprecated_message}
24
52
  <p>
25
- <strong>⚠️ deprecated:</strong>
26
53
  <!-- eslint-disable-next-line @typescript-eslint/no-deprecated -->
27
54
  {declaration.deprecated_message}
28
55
  </p>
@@ -55,14 +82,14 @@
55
82
  <strong>type</strong>
56
83
  <TypeLink type={param.type} />
57
84
  </div>
58
- {#if param.optional || param.default_value}
85
+ {#if param.optional || param.defaultValue}
59
86
  <div class="row gap_md">
60
87
  {#if param.optional}
61
88
  <span class="chip">optional</span>
62
89
  {/if}
63
- {#if param.default_value}
90
+ {#if param.defaultValue}
64
91
  <strong>default</strong>
65
- <Code lang="ts" content={param.default_value} />
92
+ <Code lang="ts" content={param.defaultValue} />
66
93
  {/if}
67
94
  </div>
68
95
  {/if}
@@ -88,7 +115,7 @@
88
115
  <strong>type</strong>
89
116
  <TypeLink type={prop.type} />
90
117
  </div>
91
- {#if prop.optional || prop.bindable || prop.default_value}
118
+ {#if prop.optional || prop.bindable || prop.defaultValue}
92
119
  <div class="row gap_md">
93
120
  {#if prop.optional}
94
121
  <span class="chip">optional</span>
@@ -96,17 +123,76 @@
96
123
  {#if prop.bindable}
97
124
  <span class="chip">bindable</span>
98
125
  {/if}
99
- {#if prop.default_value}
126
+ {#if prop.defaultValue}
100
127
  <strong>default</strong>
101
- <Code lang="ts" content={prop.default_value} />
128
+ <Code lang="ts" content={prop.defaultValue} />
102
129
  {/if}
103
130
  </div>
104
131
  {/if}
132
+ {#if prop.parameters?.length}
133
+ <section>
134
+ <h5>snippet parameters</h5>
135
+ {#each prop.parameters as param (param)}
136
+ <div class="row gap_md">
137
+ <code
138
+ >{param.name}{#if param.optional}?{/if}</code
139
+ >
140
+ <TypeLink type={param.type} />
141
+ </div>
142
+ {/each}
143
+ </section>
144
+ {/if}
145
+ </section>
146
+ {/each}
147
+ </section>
148
+ {/if}
149
+
150
+ <!-- overloads -->
151
+ {#if declaration.overloads?.length}
152
+ <section>
153
+ <h4>overloads</h4>
154
+ {#each declaration.overloads as overload, i (i)}
155
+ <section>
156
+ <Code lang="ts" content={overload.typeSignature} />
157
+ {#if overload.docComment}
158
+ <Mdz content={overload.docComment} />
159
+ {/if}
160
+ {#if overload.parameters?.length}
161
+ {#each overload.parameters as param (param)}
162
+ <div class="row gap_md">
163
+ <code
164
+ >{param.name}{#if param.optional}?{/if}</code
165
+ >
166
+ <TypeLink type={param.type} />
167
+ </div>
168
+ {/each}
169
+ {/if}
170
+ {#if overload.returnType}
171
+ <div class="row gap_md">
172
+ <strong>returns</strong>
173
+ <TypeLink type={overload.returnType} />
174
+ </div>
175
+ {#if overload.returnDescription}
176
+ <Mdz content={overload.returnDescription} />
177
+ {/if}
178
+ {/if}
105
179
  </section>
106
180
  {/each}
107
181
  </section>
108
182
  {/if}
109
183
 
184
+ <!-- intersects (component/type intersection types) -->
185
+ {#if declaration.intersects?.length}
186
+ <section>
187
+ <h4>intersects</h4>
188
+ <ul>
189
+ {#each declaration.intersects as type (type)}
190
+ <li><TypeLink {type} /></li>
191
+ {/each}
192
+ </ul>
193
+ </section>
194
+ {/if}
195
+
110
196
  <!-- returns -->
111
197
  {#if declaration.return_type}
112
198
  <section>
@@ -119,7 +205,7 @@
119
205
  {/if}
120
206
 
121
207
  <!-- generics -->
122
- {#if declaration.generic_params?.length}
208
+ {#if declaration.generic_params.length}
123
209
  <section>
124
210
  <h4>generics</h4>
125
211
  {#each declaration.generic_params as generic (generic)}
@@ -131,10 +217,10 @@
131
217
  <TypeLink type={generic.constraint} />
132
218
  </div>
133
219
  {/if}
134
- {#if generic.default_type}
220
+ {#if generic.defaultType}
135
221
  <div class="row gap_md">
136
222
  <strong>default</strong>
137
- <TypeLink type={generic.default_type} />
223
+ <TypeLink type={generic.defaultType} />
138
224
  </div>
139
225
  {/if}
140
226
  </section>
@@ -143,24 +229,28 @@
143
229
  {/if}
144
230
 
145
231
  <!-- Extends/Implements -->
146
- {#if declaration.extends?.length || declaration.implements?.length}
232
+ {#if declaration.extends_type || declaration.implements_types?.length}
147
233
  <section>
148
234
  <h4>inheritance</h4>
149
- {#if declaration.extends?.length}
235
+ {#if declaration.extends_type}
150
236
  <div>
151
237
  <strong>extends:</strong>
152
- <ul>
153
- {#each declaration.extends as ext (ext)}
154
- <li><TypeLink type={ext} /></li>
155
- {/each}
156
- </ul>
238
+ {#if Array.isArray(declaration.extends_type)}
239
+ <ul>
240
+ {#each declaration.extends_type as ext (ext)}
241
+ <li><TypeLink type={ext} /></li>
242
+ {/each}
243
+ </ul>
244
+ {:else}
245
+ <TypeLink type={declaration.extends_type} />
246
+ {/if}
157
247
  </div>
158
248
  {/if}
159
- {#if declaration.implements?.length}
249
+ {#if declaration.implements_types?.length}
160
250
  <div>
161
251
  <strong>implements:</strong>
162
252
  <ul>
163
- {#each declaration.implements as impl (impl)}
253
+ {#each declaration.implements_types as impl (impl)}
164
254
  <li><TypeLink type={impl} /></li>
165
255
  {/each}
166
256
  </ul>
@@ -170,7 +260,7 @@
170
260
  {/if}
171
261
 
172
262
  <!-- throws -->
173
- {#if declaration.throws?.length}
263
+ {#if declaration.throws.length}
174
264
  <section>
175
265
  <h4>throws</h4>
176
266
  <ul>
@@ -187,6 +277,18 @@
187
277
  </section>
188
278
  {/if}
189
279
 
280
+ <!-- mutates -->
281
+ {#if declaration.mutates && Object.keys(declaration.mutates).length}
282
+ <section>
283
+ <h4>mutates</h4>
284
+ <ul>
285
+ {#each Object.entries(declaration.mutates) as [param, description] (param)}
286
+ <li><code>{param}</code> — {description}</li>
287
+ {/each}
288
+ </ul>
289
+ </section>
290
+ {/if}
291
+
190
292
  <!-- since -->
191
293
  {#if declaration.since}
192
294
  <section>
@@ -196,7 +298,7 @@
196
298
  {/if}
197
299
 
198
300
  <!-- examples -->
199
- {#if declaration.examples?.length}
301
+ {#if declaration.examples.length}
200
302
  <section>
201
303
  <h4>examples</h4>
202
304
  {#each declaration.examples as example (example)}
@@ -206,7 +308,7 @@
206
308
  {/if}
207
309
 
208
310
  <!-- see also -->
209
- {#if declaration.see_also?.length}
311
+ {#if declaration.see_also.length}
210
312
  <section>
211
313
  <h4>see also</h4>
212
314
  <ul>
@@ -219,22 +321,22 @@
219
321
  </section>
220
322
  {/if}
221
323
 
222
- <!-- members (for classes) -->
324
+ <!-- members (classes, interfaces, types, enums) -->
223
325
  {#if declaration.members?.length}
224
326
  <section>
225
327
  {#each declaration.members as member (member)}
226
328
  <section>
227
329
  <h4><code>{member.name}</code></h4>
228
- {#if member.doc_comment}
229
- <Mdz content={member.doc_comment} />
330
+ {#if member.docComment}
331
+ <Mdz content={member.docComment} />
230
332
  {/if}
231
- {#if member.type_signature}
333
+ {#if member.typeSignature}
232
334
  <p class="row gap_md">
233
335
  <strong>type</strong>
234
336
  <TypeLink
235
337
  type={member.kind === 'constructor'
236
- ? `new ${member.type_signature}`
237
- : member.type_signature}
338
+ ? `new ${member.typeSignature}`
339
+ : member.typeSignature}
238
340
  />
239
341
  </p>
240
342
  {/if}
@@ -246,7 +348,7 @@
246
348
  </div>
247
349
  {/if}
248
350
  <!-- parameters for methods and constructors -->
249
- {#if member.parameters?.length}
351
+ {#if (member.kind === 'function' || member.kind === 'constructor') && member.parameters?.length}
250
352
  <section>
251
353
  {#each member.parameters as param (param)}
252
354
  <section>
@@ -262,14 +364,14 @@
262
364
  <strong>type</strong>
263
365
  <TypeLink type={param.type} />
264
366
  </div>
265
- {#if param.optional || param.default_value}
367
+ {#if param.optional || param.defaultValue}
266
368
  <div class="row gap_md">
267
369
  {#if param.optional}
268
370
  <span class="chip">optional</span>
269
371
  {/if}
270
- {#if param.default_value}
372
+ {#if param.defaultValue}
271
373
  <strong>default</strong>
272
- <Code lang="ts" content={param.default_value} />
374
+ <Code lang="ts" content={param.defaultValue} />
273
375
  {/if}
274
376
  </div>
275
377
  {/if}
@@ -278,13 +380,13 @@
278
380
  </section>
279
381
  {/if}
280
382
  <!-- return type for methods -->
281
- {#if member.return_type}
383
+ {#if member.kind === 'function' && member.returnType}
282
384
  <div class="row gap_md">
283
385
  <strong>returns</strong>
284
- <TypeLink type={member.return_type} />
386
+ <TypeLink type={member.returnType} />
285
387
  </div>
286
- {#if member.return_description}
287
- <Mdz content={member.return_description} />
388
+ {#if member.returnDescription}
389
+ <Mdz content={member.returnDescription} />
288
390
  {/if}
289
391
  {/if}
290
392
  <!-- throws for methods and constructors -->
@@ -308,30 +410,3 @@
308
410
  {/each}
309
411
  </section>
310
412
  {/if}
311
-
312
- <!-- properties (for types/interfaces) -->
313
- {#if declaration.properties?.length}
314
- <section>
315
- {#each declaration.properties as prop (prop)}
316
- <section>
317
- <h4><code>{prop.name}</code></h4>
318
- {#if prop.doc_comment}
319
- <Mdz content={prop.doc_comment} />
320
- {/if}
321
- {#if prop.type_signature}
322
- <div class="row gap_md mt_lg">
323
- <strong>type</strong>
324
- <TypeLink type={prop.type_signature} />
325
- </div>
326
- {/if}
327
- {#if prop.modifiers?.length}
328
- <div class="row gap_md mt_lg">
329
- {#each prop.modifiers as modifier (modifier)}
330
- <span class="chip">{modifier}</span>
331
- {/each}
332
- </div>
333
- {/if}
334
- </section>
335
- {/each}
336
- </section>
337
- {/if}
@@ -2,6 +2,15 @@ import type { Declaration } from './declaration.svelte.js';
2
2
  type $$ComponentProps = {
3
3
  declaration: Declaration;
4
4
  };
5
+ /**
6
+ * Renders the full detail view for an exported declaration.
7
+ * Handles all svelte-docinfo declaration kinds (function, class, interface,
8
+ * type, variable, enum, component, snippet) and their kind-specific fields
9
+ * including parameters, props, members, overloads, intersects, and more.
10
+ *
11
+ * @see `declaration.svelte.ts` for the `Declaration` wrapper class
12
+ * @see {@link https://github.com/ryanatkn/svelte-docinfo svelte-docinfo} for the analysis library
13
+ */
5
14
  declare const DeclarationDetail: import("svelte").Component<$$ComponentProps, {}, "">;
6
15
  type DeclarationDetail = ReturnType<typeof DeclarationDetail>;
7
16
  export default DeclarationDetail;
@@ -1 +1 @@
1
- {"version":3,"file":"DeclarationDetail.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/DeclarationDetail.svelte"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAMxD,KAAK,gBAAgB,GAAI;IAAC,WAAW,EAAE,WAAW,CAAA;CAAC,CAAC;AA6UrD,QAAA,MAAM,iBAAiB,sDAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"DeclarationDetail.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/DeclarationDetail.svelte"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAMxD,KAAK,gBAAgB,GAAI;IAAC,WAAW,EAAE,WAAW,CAAA;CAAC,CAAC;AAuYrD;;;;;;;;GAQG;AACH,QAAA,MAAM,iBAAiB,sDAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
@@ -1,3 +1,12 @@
1
+ <!--
2
+ @component
3
+
4
+ Renders library metadata (name, description, links, license) and a module index
5
+ with file-type coloring. Uses svelte-docinfo's file type predicates for module classification.
6
+
7
+ @see `library.svelte.ts` for the `Library` wrapper class
8
+ @see {@link https://github.com/ryanatkn/svelte-docinfo svelte-docinfo} for the analysis library
9
+ -->
1
10
  <script lang="ts">
2
11
  import {page} from '$app/state';
3
12
  import {format_url} from '@fuzdev/fuz_util/url.js';
@@ -8,12 +17,7 @@
8
17
  import DeclarationLink from './DeclarationLink.svelte';
9
18
  import ModuleLink from './ModuleLink.svelte';
10
19
  import {url_github_file, repo_url_parse, url_well_known} from './package_helpers.js';
11
- import {
12
- module_is_typescript,
13
- module_is_svelte,
14
- module_is_css,
15
- module_is_json,
16
- } from './module_helpers.js';
20
+ import {isTypescript, isSvelte, isCss, isJson} from 'svelte-docinfo/source.js';
17
21
 
18
22
  const {
19
23
  library,
@@ -170,10 +174,10 @@
170
174
  <!-- TODO improve rendering and enrich data - start with the type (not just extension - mime?) -->
171
175
  <li
172
176
  class="module"
173
- class:ts={module_is_typescript(module.path)}
174
- class:svelte={module_is_svelte(module.path)}
175
- class:css={module_is_css(module.path)}
176
- class:json={module_is_json(module.path)}
177
+ class:ts={isTypescript(module.path)}
178
+ class:svelte={isSvelte(module.path)}
179
+ class:css={isCss(module.path)}
180
+ class:json={isJson(module.path)}
177
181
  >
178
182
  <div class="module-content">
179
183
  <span class="font_size_xl">
@@ -9,6 +9,13 @@ type $$ComponentProps = {
9
9
  homepage_url?: Snippet<[homepage_url: string]>;
10
10
  children?: Snippet<[library: Library]>;
11
11
  };
12
+ /**
13
+ * Renders library metadata (name, description, links, license) and a module index
14
+ * with file-type coloring. Uses svelte-docinfo's file type predicates for module classification.
15
+ *
16
+ * @see `library.svelte.ts` for the `Library` wrapper class
17
+ * @see {@link https://github.com/ryanatkn/svelte-docinfo svelte-docinfo} for the analysis library
18
+ */
12
19
  declare const LibraryDetail: import("svelte").Component<$$ComponentProps, {}, "">;
13
20
  type LibraryDetail = ReturnType<typeof LibraryDetail>;
14
21
  export default LibraryDetail;
@@ -1 +1 @@
1
- {"version":3,"file":"LibraryDetail.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/LibraryDetail.svelte"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAEpC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAYhD,KAAK,gBAAgB,GAAI;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CACvC,CAAC;AAuKH,QAAA,MAAM,aAAa,sDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"LibraryDetail.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/LibraryDetail.svelte"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAEpC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAOhD,KAAK,gBAAgB,GAAI;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CACvC,CAAC;AAwKH;;;;;;GAMG;AACH,QAAA,MAAM,aAAa,sDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}