@fuzdev/fuz_ui 0.193.1 → 0.195.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 (86) 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/Spiders.svelte +4 -2
  8. package/dist/Spiders.svelte.d.ts +2 -1
  9. package/dist/Spiders.svelte.d.ts.map +1 -1
  10. package/dist/StyleVariableButton.svelte +1 -1
  11. package/dist/contextmenu_state.svelte.d.ts +14 -14
  12. package/dist/contextmenu_state.svelte.d.ts.map +1 -1
  13. package/dist/contextmenu_state.svelte.js +3 -3
  14. package/dist/declaration.svelte.d.ts +233 -25
  15. package/dist/declaration.svelte.d.ts.map +1 -1
  16. package/dist/declaration.svelte.js +71 -23
  17. package/dist/docs_helpers.svelte.d.ts +5 -5
  18. package/dist/docs_helpers.svelte.d.ts.map +1 -1
  19. package/dist/docs_helpers.svelte.js +1 -1
  20. package/dist/library.svelte.d.ts +5 -5
  21. package/dist/library.svelte.d.ts.map +1 -1
  22. package/dist/library.svelte.js +2 -2
  23. package/dist/library_gen.d.ts +24 -17
  24. package/dist/library_gen.d.ts.map +1 -1
  25. package/dist/library_gen.js +52 -32
  26. package/dist/library_output.d.ts +5 -4
  27. package/dist/library_output.d.ts.map +1 -1
  28. package/dist/library_output.js +11 -8
  29. package/dist/mdz_components.d.ts +16 -16
  30. package/dist/mdz_components.d.ts.map +1 -1
  31. package/dist/module.svelte.d.ts +21 -7
  32. package/dist/module.svelte.d.ts.map +1 -1
  33. package/dist/module.svelte.js +26 -11
  34. package/dist/style_variable_helpers.svelte.d.ts +4 -4
  35. package/dist/style_variable_helpers.svelte.d.ts.map +1 -1
  36. package/dist/style_variable_helpers.svelte.js +1 -1
  37. package/dist/tome.d.ts +10 -10
  38. package/dist/tome.d.ts.map +1 -1
  39. package/dist/tome.js +2 -2
  40. package/dist/tsdoc_mdz.d.ts +6 -1
  41. package/dist/tsdoc_mdz.d.ts.map +1 -1
  42. package/dist/tsdoc_mdz.js +23 -2
  43. package/package.json +11 -9
  44. package/src/lib/contextmenu_state.svelte.ts +6 -6
  45. package/src/lib/declaration.svelte.ts +90 -35
  46. package/src/lib/docs_helpers.svelte.ts +2 -2
  47. package/src/lib/library.svelte.ts +3 -3
  48. package/src/lib/library_gen.ts +65 -42
  49. package/src/lib/library_output.ts +11 -8
  50. package/src/lib/mdz_components.ts +18 -18
  51. package/src/lib/module.svelte.ts +29 -16
  52. package/src/lib/style_variable_helpers.svelte.ts +2 -2
  53. package/src/lib/tome.ts +4 -4
  54. package/src/lib/tsdoc_mdz.ts +25 -2
  55. package/dist/analysis_context.d.ts +0 -199
  56. package/dist/analysis_context.d.ts.map +0 -1
  57. package/dist/analysis_context.js +0 -138
  58. package/dist/library_analysis.d.ts +0 -112
  59. package/dist/library_analysis.d.ts.map +0 -1
  60. package/dist/library_analysis.js +0 -106
  61. package/dist/library_generate.d.ts +0 -94
  62. package/dist/library_generate.d.ts.map +0 -1
  63. package/dist/library_generate.js +0 -147
  64. package/dist/library_pipeline.d.ts +0 -113
  65. package/dist/library_pipeline.d.ts.map +0 -1
  66. package/dist/library_pipeline.js +0 -160
  67. package/dist/module_helpers.d.ts +0 -334
  68. package/dist/module_helpers.d.ts.map +0 -1
  69. package/dist/module_helpers.js +0 -317
  70. package/dist/svelte_helpers.d.ts +0 -92
  71. package/dist/svelte_helpers.d.ts.map +0 -1
  72. package/dist/svelte_helpers.js +0 -367
  73. package/dist/ts_helpers.d.ts +0 -181
  74. package/dist/ts_helpers.d.ts.map +0 -1
  75. package/dist/ts_helpers.js +0 -674
  76. package/dist/tsdoc_helpers.d.ts +0 -119
  77. package/dist/tsdoc_helpers.d.ts.map +0 -1
  78. package/dist/tsdoc_helpers.js +0 -207
  79. package/src/lib/analysis_context.ts +0 -254
  80. package/src/lib/library_analysis.ts +0 -168
  81. package/src/lib/library_generate.ts +0 -215
  82. package/src/lib/library_pipeline.ts +0 -221
  83. package/src/lib/module_helpers.ts +0 -501
  84. package/src/lib/svelte_helpers.ts +0 -539
  85. package/src/lib/ts_helpers.ts +0 -862
  86. 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"}
@@ -8,6 +8,7 @@
8
8
  <script lang="ts">
9
9
  import {random_int, shuffle} from '@fuzdev/fuz_util/random.js';
10
10
  import {create_random_alea} from '@fuzdev/fuz_util/random_alea.js';
11
+ import type {SvelteHTMLElements} from 'svelte/elements';
11
12
 
12
13
  import Svg from './Svg.svelte';
13
14
  import {logo_fuz} from './logos.js';
@@ -27,11 +28,12 @@
27
28
  ],
28
29
  seed = minute_of_day(),
29
30
  random = create_random_alea(seed),
31
+ ...rest
30
32
  }: {
31
33
  spiders?: Array<string>; // for now, just colors
32
34
  seed?: unknown;
33
35
  random?: typeof Math.random;
34
- } = $props();
36
+ } & SvelteHTMLElements['div'] = $props();
35
37
 
36
38
  const shuffled = $derived(shuffle(spiders.slice(), (min, max) => random_int(min, max, random)));
37
39
  const rotations = $derived(shuffled.map(() => random_int(0, 359, random)));
@@ -39,7 +41,7 @@
39
41
 
40
42
  <!-- TODO animate each in randomly -->
41
43
  <!-- TODO show when intersected in viewport, maybe inline `svelte-intersect` in Fuz? -->
42
- <div class="spiders" style:--spider_count={spiders.length}>
44
+ <div {...rest} class="spiders {rest.class}" style:--spider_count={spiders.length}>
43
45
  {#each shuffled as color, i (color)}
44
46
  <Svg data={logo_fuz} fill={color} style="transform: rotate(${rotations[i]}deg)" />
45
47
  {/each}
@@ -1,8 +1,9 @@
1
+ import type { SvelteHTMLElements } from 'svelte/elements';
1
2
  type $$ComponentProps = {
2
3
  spiders?: Array<string>;
3
4
  seed?: unknown;
4
5
  random?: typeof Math.random;
5
- };
6
+ } & SvelteHTMLElements['div'];
6
7
  declare const Spiders: import("svelte").Component<$$ComponentProps, {}, "">;
7
8
  type Spiders = ReturnType<typeof Spiders>;
8
9
  export default Spiders;
@@ -1 +1 @@
1
- {"version":3,"file":"Spiders.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/Spiders.svelte"],"names":[],"mappings":"AAeC,KAAK,gBAAgB,GAAI;IACxB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;CAC5B,CAAC;AA2CH,QAAA,MAAM,OAAO,sDAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Spiders.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/Spiders.svelte"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAKvD,KAAK,gBAAgB,GAAI;IACxB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;CAC5B,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AA6C/B,QAAA,MAAM,OAAO,sDAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
@@ -39,6 +39,6 @@
39
39
 
40
40
  <style>
41
41
  button {
42
- min-height: var(--input_height_sm);
42
+ min-height: var(--input_height_compact);
43
43
  }
44
44
  </style>
@@ -3,6 +3,20 @@ import type { Result } from '@fuzdev/fuz_util/result.js';
3
3
  import type { SvelteHTMLElements } from 'svelte/elements';
4
4
  import type { Attachment } from 'svelte/attachments';
5
5
  import { Dimensions } from './dimensions.svelte.js';
6
+ export declare const contextmenu_context: {
7
+ get: (error_message?: string) => () => ContextmenuState;
8
+ get_maybe: () => (() => ContextmenuState) | undefined;
9
+ set: (value: () => ContextmenuState) => () => ContextmenuState;
10
+ };
11
+ export declare const contextmenu_submenu_context: {
12
+ get: (error_message?: string) => SubmenuState;
13
+ get_maybe: () => SubmenuState | undefined;
14
+ set: (value: SubmenuState) => SubmenuState;
15
+ };
16
+ export declare const contextmenu_dimensions_context: {
17
+ get: () => Dimensions;
18
+ set: (value?: Dimensions | undefined) => Dimensions;
19
+ };
6
20
  export type ContextmenuParams = Snippet | {
7
21
  snippet: 'link';
8
22
  props: {
@@ -128,20 +142,6 @@ export interface ContextmenuOpenOptions {
128
142
  * @returns a boolean indicating if the menu was opened or not
129
143
  */
130
144
  export declare const contextmenu_open: (target: HTMLElement | SVGElement, x: number, y: number, contextmenu: ContextmenuState, options?: ContextmenuOpenOptions) => boolean;
131
- export declare const contextmenu_context: {
132
- get: (error_message?: string) => () => ContextmenuState;
133
- get_maybe: () => (() => ContextmenuState) | undefined;
134
- set: (value: () => ContextmenuState) => () => ContextmenuState;
135
- };
136
- export declare const contextmenu_submenu_context: {
137
- get: (error_message?: string) => SubmenuState;
138
- get_maybe: () => SubmenuState | undefined;
139
- set: (value: SubmenuState) => SubmenuState;
140
- };
141
- export declare const contextmenu_dimensions_context: {
142
- get: () => Dimensions;
143
- set: (value?: Dimensions | undefined) => Dimensions;
144
- };
145
145
  /**
146
146
  * Registers a contextmenu root and warns if multiple non-scoped roots are detected.
147
147
  * Only active in development mode. Automatically handles cleanup on unmount.
@@ -1 +1 @@
1
- {"version":3,"file":"contextmenu_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/contextmenu_state.svelte.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contextmenu_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/contextmenu_state.svelte.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,9 @@ import { EMPTY_OBJECT } from '@fuzdev/fuz_util/object.js';
5
5
  import { Dimensions } from './dimensions.svelte.js';
6
6
  import { create_context } from './context_helpers.js';
7
7
  import { url_to_root_relative } from './library_helpers.js';
8
+ export const contextmenu_context = create_context();
9
+ export const contextmenu_submenu_context = create_context();
10
+ export const contextmenu_dimensions_context = create_context(() => new Dimensions());
8
11
  export class EntryState {
9
12
  is_menu = false; // TODO rename to `type`?
10
13
  menu;
@@ -393,9 +396,6 @@ const contextmenu_query_params = (target) => {
393
396
  }
394
397
  return params;
395
398
  };
396
- export const contextmenu_context = create_context();
397
- export const contextmenu_submenu_context = create_context();
398
- export const contextmenu_dimensions_context = create_context(() => new Dimensions());
399
399
  // Global registry of non-scoped contextmenu roots (only used in DEV)
400
400
  const non_scoped_roots = new Set();
401
401
  /**