@fuzdev/fuz_ui 0.206.9 → 0.207.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.
- package/dist/DeclarationDetail.svelte +55 -20
- package/dist/DeclarationDetail.svelte.d.ts +1 -1
- package/dist/DeclarationDetail.svelte.d.ts.map +1 -1
- package/dist/ProjectLinks.svelte +7 -3
- package/dist/ProjectLinks.svelte.d.ts.map +1 -1
- package/dist/TypeJsonView.svelte +90 -0
- package/dist/TypeJsonView.svelte.d.ts +26 -0
- package/dist/TypeJsonView.svelte.d.ts.map +1 -0
- package/dist/TypeLink.svelte +17 -1
- package/dist/TypeLink.svelte.d.ts +10 -0
- package/dist/TypeLink.svelte.d.ts.map +1 -1
- package/dist/declaration.svelte.d.ts +25 -5
- package/dist/declaration.svelte.d.ts.map +1 -1
- package/dist/declaration.svelte.js +31 -5
- package/dist/project_stats_data.js +7 -7
- package/package.json +2 -2
- package/src/lib/declaration.svelte.ts +37 -7
- package/src/lib/project_stats_data.ts +7 -7
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
Renders the full detail view for an exported declaration.
|
|
5
5
|
Handles all svelte-docinfo declaration kinds (function, class, interface,
|
|
6
6
|
type, variable, enum, component, snippet) and their kind-specific fields
|
|
7
|
-
including parameters, props, members, overloads,
|
|
7
|
+
including parameters, props, members, overloads, external types, and more.
|
|
8
8
|
|
|
9
9
|
@see `declaration.svelte.ts` for the `Declaration` wrapper class
|
|
10
10
|
@see {@link https://github.com/ryanatkn/svelte-docinfo svelte-docinfo} for the analysis library
|
|
@@ -22,11 +22,24 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
22
22
|
|
|
23
23
|
import type { Declaration } from './declaration.svelte.js';
|
|
24
24
|
import TypeLink from './TypeLink.svelte';
|
|
25
|
+
import TypeJsonView from './TypeJsonView.svelte';
|
|
25
26
|
import ModuleLink from './ModuleLink.svelte';
|
|
26
27
|
import DocsLink from './DocsLink.svelte';
|
|
27
28
|
|
|
28
29
|
const { declaration }: { declaration: Declaration } = $props();
|
|
29
30
|
|
|
31
|
+
// external types not already shown in the inheritance section — on direct
|
|
32
|
+
// heritage (`interface Props extends HTMLButtonAttributes`) the producer
|
|
33
|
+
// deliberately records the same name in both fields, so the external-types
|
|
34
|
+
// section keeps only what heritage doesn't already display
|
|
35
|
+
const external_types_not_inherited = $derived.by(() => {
|
|
36
|
+
const external_types = declaration.external_types;
|
|
37
|
+
if (!external_types?.length) return undefined;
|
|
38
|
+
const heritage = (declaration.extends_types ?? []).concat(declaration.implements_types ?? []);
|
|
39
|
+
const filtered = external_types.filter((t) => !heritage.includes(t));
|
|
40
|
+
return filtered.length ? filtered : undefined;
|
|
41
|
+
});
|
|
42
|
+
|
|
30
43
|
// render mdz inline `code` as API-linking `DocsLink` and fenced blocks as syntax-highlighted
|
|
31
44
|
// `Code`, matching the rest of the docs — the injection mdz core leaves open
|
|
32
45
|
mdz_set_context_with_fallback(mdz_code_context, () => DocsLink);
|
|
@@ -57,7 +70,7 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
57
70
|
{/if}
|
|
58
71
|
<div class="row gap_md mb_sm">
|
|
59
72
|
<strong>type</strong>
|
|
60
|
-
<TypeLink type={param.type} />
|
|
73
|
+
<TypeLink type={param.type} type_info={param.typeInfo} />
|
|
61
74
|
</div>
|
|
62
75
|
{#if param.optional || param.defaultValue}
|
|
63
76
|
<div class="row gap_md">
|
|
@@ -79,7 +92,7 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
79
92
|
<code>
|
|
80
93
|
{param.name}{#if param.optional}?{/if}
|
|
81
94
|
</code>
|
|
82
|
-
<TypeLink type={param.type} />
|
|
95
|
+
<TypeLink type={param.type} type_info={param.typeInfo} />
|
|
83
96
|
</div>
|
|
84
97
|
{/snippet}
|
|
85
98
|
|
|
@@ -125,7 +138,7 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
125
138
|
{/if}
|
|
126
139
|
{/snippet}
|
|
127
140
|
|
|
128
|
-
<!-- A comma-separated inline list of type links (extends, implements,
|
|
141
|
+
<!-- A comma-separated inline list of type links (extends, implements, external types are rarely more than one). -->
|
|
129
142
|
{#snippet type_list(types: Array<string>)}
|
|
130
143
|
{#each types as type, i (type)}
|
|
131
144
|
{#if i > 0}
|
|
@@ -194,6 +207,23 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
194
207
|
<Code lang="ts" content={declaration.type_signature} />
|
|
195
208
|
{/if}
|
|
196
209
|
|
|
210
|
+
<!-- structured type (variables and type aliases; carries what the flat
|
|
211
|
+
signature lost — union members, recovered alias names — with links) -->
|
|
212
|
+
{#if declaration.type_info}
|
|
213
|
+
<p class="row gap_md">
|
|
214
|
+
<strong>type</strong>
|
|
215
|
+
<TypeJsonView type_info={declaration.type_info} title={declaration.type_signature} />
|
|
216
|
+
</p>
|
|
217
|
+
{/if}
|
|
218
|
+
|
|
219
|
+
<!-- default (top-level variables; params, props, and members render theirs inline) -->
|
|
220
|
+
{#if declaration.default_value}
|
|
221
|
+
<p class="row gap_md">
|
|
222
|
+
<strong>default</strong>
|
|
223
|
+
<Code lang="ts" content={declaration.default_value} />
|
|
224
|
+
</p>
|
|
225
|
+
{/if}
|
|
226
|
+
|
|
197
227
|
<!-- import statement -->
|
|
198
228
|
<Code lang="ts" content={declaration.import_statement} />
|
|
199
229
|
|
|
@@ -226,7 +256,7 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
226
256
|
{/if}
|
|
227
257
|
<div class="row gap_md mb_sm">
|
|
228
258
|
<strong>type</strong>
|
|
229
|
-
<TypeLink type={prop.type} />
|
|
259
|
+
<TypeLink type={prop.type} type_info={prop.typeInfo} />
|
|
230
260
|
</div>
|
|
231
261
|
{#if prop.optional || prop.bindable || prop.defaultValue}
|
|
232
262
|
<div class="row gap_md">
|
|
@@ -274,7 +304,7 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
274
304
|
{#if overload.returnType}
|
|
275
305
|
<div class="row gap_md">
|
|
276
306
|
<strong>returns</strong>
|
|
277
|
-
<TypeLink type={overload.returnType} />
|
|
307
|
+
<TypeLink type={overload.returnType} type_info={overload.returnTypeInfo} />
|
|
278
308
|
</div>
|
|
279
309
|
{#if overload.returnDescription}
|
|
280
310
|
<Mdz content={overload.returnDescription} />
|
|
@@ -285,12 +315,13 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
285
315
|
</section>
|
|
286
316
|
{/if}
|
|
287
317
|
|
|
288
|
-
<!--
|
|
289
|
-
|
|
318
|
+
<!-- external types whose contributions are filtered out of (or, on
|
|
319
|
+
interfaces/classes, never enumerated in) props/members -->
|
|
320
|
+
{#if external_types_not_inherited}
|
|
290
321
|
<section>
|
|
291
|
-
<h4>
|
|
322
|
+
<h4>external types</h4>
|
|
292
323
|
<div class="row gap_md flex-wrap:wrap">
|
|
293
|
-
{@render type_list(
|
|
324
|
+
{@render type_list(external_types_not_inherited)}
|
|
294
325
|
</div>
|
|
295
326
|
</section>
|
|
296
327
|
{/if}
|
|
@@ -299,7 +330,14 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
299
330
|
{#if declaration.return_type}
|
|
300
331
|
<section>
|
|
301
332
|
<h4>returns</h4>
|
|
302
|
-
|
|
333
|
+
{#if declaration.return_type_info}
|
|
334
|
+
<!-- the flat expansion stays visible in the type signature above -->
|
|
335
|
+
<p>
|
|
336
|
+
<TypeJsonView type_info={declaration.return_type_info} title={declaration.return_type} />
|
|
337
|
+
</p>
|
|
338
|
+
{:else}
|
|
339
|
+
<Code lang="ts" content={declaration.return_type} />
|
|
340
|
+
{/if}
|
|
303
341
|
{#if declaration.return_description}
|
|
304
342
|
<Mdz content={declaration.return_description} />
|
|
305
343
|
{/if}
|
|
@@ -334,17 +372,13 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
334
372
|
{/if}
|
|
335
373
|
|
|
336
374
|
<!-- Extends/Implements -->
|
|
337
|
-
{#if declaration.
|
|
375
|
+
{#if declaration.extends_types?.length || declaration.implements_types?.length}
|
|
338
376
|
<section>
|
|
339
377
|
<h4>inheritance</h4>
|
|
340
|
-
{#if declaration.
|
|
378
|
+
{#if declaration.extends_types?.length}
|
|
341
379
|
<div class="row gap_md flex-wrap:wrap">
|
|
342
380
|
<strong>extends:</strong>
|
|
343
|
-
{@render type_list(
|
|
344
|
-
Array.isArray(declaration.extends_type)
|
|
345
|
-
? declaration.extends_type
|
|
346
|
-
: [declaration.extends_type]
|
|
347
|
-
)}
|
|
381
|
+
{@render type_list(declaration.extends_types)}
|
|
348
382
|
</div>
|
|
349
383
|
{/if}
|
|
350
384
|
{#if declaration.implements_types?.length}
|
|
@@ -440,6 +474,7 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
440
474
|
type={member.kind === 'constructor'
|
|
441
475
|
? `new ${member.typeSignature}`
|
|
442
476
|
: member.typeSignature}
|
|
477
|
+
type_info={member.kind === 'variable' ? member.typeInfo : undefined}
|
|
443
478
|
/>
|
|
444
479
|
</p>
|
|
445
480
|
{/if}
|
|
@@ -455,7 +490,7 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
455
490
|
{/if}
|
|
456
491
|
</div>
|
|
457
492
|
{/if}
|
|
458
|
-
{#if member.kind === 'variable' && member.defaultValue}
|
|
493
|
+
{#if (member.kind === 'variable' || member.kind === 'function') && member.defaultValue}
|
|
459
494
|
<div class="row gap_md">
|
|
460
495
|
<strong>default</strong>
|
|
461
496
|
<Code lang="ts" content={member.defaultValue} />
|
|
@@ -475,7 +510,7 @@ including parameters, props, members, overloads, intersects, and more.
|
|
|
475
510
|
{#if member.kind === 'function' && member.returnType}
|
|
476
511
|
<div class="row gap_md">
|
|
477
512
|
<strong>returns</strong>
|
|
478
|
-
<TypeLink type={member.returnType} />
|
|
513
|
+
<TypeLink type={member.returnType} type_info={member.returnTypeInfo} />
|
|
479
514
|
</div>
|
|
480
515
|
{#if member.returnDescription}
|
|
481
516
|
<Mdz content={member.returnDescription} />
|
|
@@ -6,7 +6,7 @@ type $$ComponentProps = {
|
|
|
6
6
|
* Renders the full detail view for an exported declaration.
|
|
7
7
|
* Handles all svelte-docinfo declaration kinds (function, class, interface,
|
|
8
8
|
* type, variable, enum, component, snippet) and their kind-specific fields
|
|
9
|
-
* including parameters, props, members, overloads,
|
|
9
|
+
* including parameters, props, members, overloads, external types, and more.
|
|
10
10
|
*
|
|
11
11
|
* @see `declaration.svelte.ts` for the `Declaration` wrapper class
|
|
12
12
|
* @see {@link https://github.com/ryanatkn/svelte-docinfo svelte-docinfo} for the analysis library
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeclarationDetail.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/DeclarationDetail.svelte"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"DeclarationDetail.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/DeclarationDetail.svelte"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAiB1D,KAAK,gBAAgB,GAAI;IAAE,WAAW,EAAE,WAAW,CAAA;CAAE,CAAC;AA+evD;;;;;;;;GAQG;AACH,QAAA,MAAM,iBAAiB,sDAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
|
package/dist/ProjectLinks.svelte
CHANGED
|
@@ -24,11 +24,14 @@
|
|
|
24
24
|
|
|
25
25
|
{#snippet package_thumbnail(project_item: ProjectItem)}
|
|
26
26
|
{@const counts = series_by_name.get(project_item.name)}
|
|
27
|
-
<!-- eslint-disable
|
|
28
|
-
<a
|
|
27
|
+
<!-- eslint-disable svelte/no-navigation-without-resolve -->
|
|
28
|
+
<a
|
|
29
|
+
class="thumbnail row align-items:start shade_00 px_md py_xs border_radius_sm mb_lg"
|
|
30
|
+
href={project_item.url}
|
|
31
|
+
>
|
|
29
32
|
<Svg shrink={false} data={project_item.logo} size="var(--icon_size_lg)" />
|
|
30
33
|
<div class="pl_lg width_atmost_sm">
|
|
31
|
-
<div class="thumbnail-name row
|
|
34
|
+
<div class="thumbnail-name row {project_item.color_class}">
|
|
32
35
|
{project_item.name}
|
|
33
36
|
{#if counts}
|
|
34
37
|
{@const stats_label = label_by_name.get(project_item.name)}
|
|
@@ -43,6 +46,7 @@
|
|
|
43
46
|
</div>
|
|
44
47
|
</div>
|
|
45
48
|
</a>
|
|
49
|
+
<!-- eslint-enable svelte/no-navigation-without-resolve -->
|
|
46
50
|
{/snippet}
|
|
47
51
|
|
|
48
52
|
<style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectLinks.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ProjectLinks.svelte"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProjectLinks.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ProjectLinks.svelte"],"names":[],"mappings":"AA6DA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,YAAY;;kBAA+E,CAAC;AAChF,KAAK,YAAY,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;AACxD,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@component
|
|
3
|
+
|
|
4
|
+
Renders svelte-docinfo's structured `TypeJson` tree as inline code: `reference`
|
|
5
|
+
nodes (and alias-carrying unions/intersections) link to API docs via
|
|
6
|
+
`DeclarationLink` when the name resolves in the library — scoped to the token's
|
|
7
|
+
declaring module when the analysis names one — terminal type text is
|
|
8
|
+
syntax-highlighted via fuz_code's `Code`, and structural punctuation comes
|
|
9
|
+
from svelte-docinfo's `typeJsonToTokens`, which owns spacing and
|
|
10
|
+
parenthesization so rendering is whitespace-exact.
|
|
11
|
+
|
|
12
|
+
The structured sibling of `TypeLink`, which renders flat type strings —
|
|
13
|
+
`TypeLink` delegates here when given `type_info`, and svelte-docinfo omits the
|
|
14
|
+
tree wherever the flat string is the whole story, so the two compose as
|
|
15
|
+
"structured when it says something, flat otherwise". Pass `title` (typically
|
|
16
|
+
the flat sibling string) to keep the expansion reachable on hover where the
|
|
17
|
+
tree replaced it with a recovered name.
|
|
18
|
+
-->
|
|
19
|
+
<script lang="ts">
|
|
20
|
+
import Code from '@fuzdev/fuz_code/Code.svelte';
|
|
21
|
+
import type { TypeJson } from 'svelte-docinfo/types.js';
|
|
22
|
+
import { typeJsonToTokens } from 'svelte-docinfo/declaration-helpers.js';
|
|
23
|
+
|
|
24
|
+
import DeclarationLink from './DeclarationLink.svelte';
|
|
25
|
+
import { library_context } from './library.svelte.js';
|
|
26
|
+
|
|
27
|
+
const {
|
|
28
|
+
type_info,
|
|
29
|
+
title
|
|
30
|
+
}: {
|
|
31
|
+
type_info: TypeJson;
|
|
32
|
+
/** Hover text for the root element — pass the flat type string so the checker's expansion stays reachable. */
|
|
33
|
+
title?: string;
|
|
34
|
+
} = $props();
|
|
35
|
+
|
|
36
|
+
const get_library = library_context.get();
|
|
37
|
+
const library = $derived(get_library());
|
|
38
|
+
|
|
39
|
+
const tokens = $derived(typeJsonToTokens(type_info));
|
|
40
|
+
|
|
41
|
+
// a bare name renders without the code wrapper, matching the plain chip
|
|
42
|
+
// link `TypeLink` produces for whole-string matches
|
|
43
|
+
const bare_name_token = $derived(
|
|
44
|
+
tokens.length === 1 && tokens[0]!.kind === 'name' ? tokens[0]! : undefined
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
// the gate mirrors `DeclarationLink`'s resolution exactly — a moduled token
|
|
48
|
+
// (registry-recovered reference) is scoped to its declaring module with no
|
|
49
|
+
// by-name fallback, so the gate can't admit a name the link then fails on
|
|
50
|
+
const resolves = (name: string, module?: string): boolean =>
|
|
51
|
+
module === undefined
|
|
52
|
+
? library.declaration_by_name.has(name)
|
|
53
|
+
: library.module_by_path.get(module)?.get_declaration_by_name(name) !== undefined;
|
|
54
|
+
</script>
|
|
55
|
+
|
|
56
|
+
{#snippet name_view(name: string, module: string | undefined, root_title?: string)}
|
|
57
|
+
{#if resolves(name, module)}
|
|
58
|
+
<DeclarationLink {name} module_path={module} title={root_title} />
|
|
59
|
+
{:else}
|
|
60
|
+
<Code lang="ts" content={name} inline title={root_title} />
|
|
61
|
+
{/if}
|
|
62
|
+
{/snippet}
|
|
63
|
+
|
|
64
|
+
{#if bare_name_token}
|
|
65
|
+
{@render name_view(bare_name_token.name, bare_name_token.module, title)}
|
|
66
|
+
{:else}
|
|
67
|
+
<!-- token adjacency survives the multi-line template: Svelte trims
|
|
68
|
+
block-boundary whitespace here, locked by the `TypeJsonView` render tests
|
|
69
|
+
(`textContent` equality would catch stray spaces) -->
|
|
70
|
+
<code class="type-json-view" {title}>
|
|
71
|
+
{#each tokens as token, i (i)}
|
|
72
|
+
{#if token.kind === 'text'}
|
|
73
|
+
{token.text}
|
|
74
|
+
{:else if token.kind === 'name'}
|
|
75
|
+
{@render name_view(token.name, token.module)}
|
|
76
|
+
{:else}
|
|
77
|
+
<Code lang="ts" content={token.text} inline />
|
|
78
|
+
{/if}
|
|
79
|
+
{/each}
|
|
80
|
+
</code>
|
|
81
|
+
{/if}
|
|
82
|
+
|
|
83
|
+
<style>
|
|
84
|
+
/* the outer element is the one code pill; inner `Code` fragments contribute
|
|
85
|
+
syntax coloring only */
|
|
86
|
+
.type-json-view :global(code) {
|
|
87
|
+
background: transparent;
|
|
88
|
+
padding: 0;
|
|
89
|
+
}
|
|
90
|
+
</style>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { TypeJson } from 'svelte-docinfo/types.js';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
type_info: TypeJson;
|
|
4
|
+
/** Hover text for the root element — pass the flat type string so the checker's expansion stays reachable. */
|
|
5
|
+
title?: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Renders svelte-docinfo's structured `TypeJson` tree as inline code: `reference`
|
|
9
|
+
* nodes (and alias-carrying unions/intersections) link to API docs via
|
|
10
|
+
* `DeclarationLink` when the name resolves in the library — scoped to the token's
|
|
11
|
+
* declaring module when the analysis names one — terminal type text is
|
|
12
|
+
* syntax-highlighted via fuz_code's `Code`, and structural punctuation comes
|
|
13
|
+
* from svelte-docinfo's `typeJsonToTokens`, which owns spacing and
|
|
14
|
+
* parenthesization so rendering is whitespace-exact.
|
|
15
|
+
*
|
|
16
|
+
* The structured sibling of `TypeLink`, which renders flat type strings —
|
|
17
|
+
* `TypeLink` delegates here when given `type_info`, and svelte-docinfo omits the
|
|
18
|
+
* tree wherever the flat string is the whole story, so the two compose as
|
|
19
|
+
* "structured when it says something, flat otherwise". Pass `title` (typically
|
|
20
|
+
* the flat sibling string) to keep the expansion reachable on hover where the
|
|
21
|
+
* tree replaced it with a recovered name.
|
|
22
|
+
*/
|
|
23
|
+
declare const TypeJsonView: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
24
|
+
type TypeJsonView = ReturnType<typeof TypeJsonView>;
|
|
25
|
+
export default TypeJsonView;
|
|
26
|
+
//# sourceMappingURL=TypeJsonView.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeJsonView.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/TypeJsonView.svelte"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAMvD,KAAK,gBAAgB,GAAI;IACxB,SAAS,EAAE,QAAQ,CAAC;IACpB,8GAA8G;IAC9G,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAgEH;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,YAAY,sDAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
|
package/dist/TypeLink.svelte
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import Code from '@fuzdev/fuz_code/Code.svelte';
|
|
3
3
|
import type { HTMLAttributes, SvelteHTMLElements } from 'svelte/elements';
|
|
4
|
+
import type { TypeJson } from 'svelte-docinfo/types.js';
|
|
4
5
|
|
|
5
6
|
import DeclarationLink from './DeclarationLink.svelte';
|
|
7
|
+
import TypeJsonView from './TypeJsonView.svelte';
|
|
6
8
|
import { library_context } from './library.svelte.js';
|
|
7
9
|
|
|
8
10
|
const {
|
|
9
11
|
type,
|
|
12
|
+
type_info,
|
|
10
13
|
hash,
|
|
11
14
|
a_attrs,
|
|
12
15
|
code_attrs,
|
|
@@ -14,6 +17,15 @@
|
|
|
14
17
|
}: // generic element attrs, the common denominator of the rendered roots - // assignable to the anchor rest of `DeclarationLink` and the code rest of `Code`
|
|
15
18
|
HTMLAttributes<HTMLElement> & {
|
|
16
19
|
type: string;
|
|
20
|
+
/**
|
|
21
|
+
* Structured type tree, when svelte-docinfo emitted one beside the flat
|
|
22
|
+
* string — rendered via `TypeJsonView` (per-node linkification, with
|
|
23
|
+
* `type` as hover text) instead of the whole-string match below. An
|
|
24
|
+
* absent tree falls through to `type`, so call sites pass both fields
|
|
25
|
+
* unconditionally. `hash` and the rest/`a_attrs`/`code_attrs`
|
|
26
|
+
* attributes apply only to the flat branches, not the delegated tree.
|
|
27
|
+
*/
|
|
28
|
+
type_info?: TypeJson;
|
|
17
29
|
/** URL fragment to append, with or without the `#`. */
|
|
18
30
|
hash?: string;
|
|
19
31
|
/** Anchor attributes, applied only when the type resolves to a declaration link. */
|
|
@@ -28,7 +40,11 @@
|
|
|
28
40
|
// TODO maybe better name?
|
|
29
41
|
</script>
|
|
30
42
|
|
|
31
|
-
{#if
|
|
43
|
+
{#if type_info}
|
|
44
|
+
<!-- the flat string rides along as hover text so the checker's expansion
|
|
45
|
+
stays reachable where the tree replaced it with a recovered name -->
|
|
46
|
+
<TypeJsonView {type_info} title={type} />
|
|
47
|
+
{:else if library.declaration_by_name.has(type)}
|
|
32
48
|
<DeclarationLink {...rest} {...a_attrs} name={type} {hash} />
|
|
33
49
|
{:else}
|
|
34
50
|
<Code {...rest} {...code_attrs} lang="ts" content={type} inline />
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import type { HTMLAttributes, SvelteHTMLElements } from 'svelte/elements';
|
|
2
|
+
import type { TypeJson } from 'svelte-docinfo/types.js';
|
|
2
3
|
type $$ComponentProps = // generic element attrs, the common denominator of the rendered roots - // assignable to the anchor rest of `DeclarationLink` and the code rest of `Code`
|
|
3
4
|
HTMLAttributes<HTMLElement> & {
|
|
4
5
|
type: string;
|
|
6
|
+
/**
|
|
7
|
+
* Structured type tree, when svelte-docinfo emitted one beside the flat
|
|
8
|
+
* string — rendered via `TypeJsonView` (per-node linkification, with
|
|
9
|
+
* `type` as hover text) instead of the whole-string match below. An
|
|
10
|
+
* absent tree falls through to `type`, so call sites pass both fields
|
|
11
|
+
* unconditionally. `hash` and the rest/`a_attrs`/`code_attrs`
|
|
12
|
+
* attributes apply only to the flat branches, not the delegated tree.
|
|
13
|
+
*/
|
|
14
|
+
type_info?: TypeJson;
|
|
5
15
|
/** URL fragment to append, with or without the `#`. */
|
|
6
16
|
hash?: string;
|
|
7
17
|
/** Anchor attributes, applied only when the type resolves to a declaration link. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeLink.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/TypeLink.svelte"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"TypeLink.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/TypeLink.svelte"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAMvD,KAAK,gBAAgB,GACpB,AADwB,0JAA0J;AAClL,cAAc,CAAC,WAAW,CAAC,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,OAAO,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAClC,0FAA0F;IAC1F,UAAU,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;CACxC,CAAC;AAoCJ,QAAA,MAAM,QAAQ,sDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DeclarationJsonInput, MemberJsonInput, ParameterJsonInput, ComponentPropJsonInput, OverloadJsonInput, Reactivity } from 'svelte-docinfo/types.js';
|
|
1
|
+
import type { DeclarationJsonInput, MemberJsonInput, ParameterJsonInput, ComponentPropJsonInput, OverloadJsonInput, Reactivity, TypeJson } from 'svelte-docinfo/types.js';
|
|
2
2
|
import type { Module } from './module.svelte.js';
|
|
3
3
|
/**
|
|
4
4
|
* Rich runtime representation of an exported declaration.
|
|
@@ -45,14 +45,30 @@ export declare class Declaration {
|
|
|
45
45
|
*/
|
|
46
46
|
get display_name(): string;
|
|
47
47
|
get type_signature(): string | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Structured type tree beside `type_signature`, absent when the flat string
|
|
50
|
+
* is the whole story. Present on `variable` and `type` kinds only.
|
|
51
|
+
*/
|
|
52
|
+
get type_info(): TypeJson | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Default value documented via `@default`; the authoritative initializer
|
|
55
|
+
* (when human-readable) is in `type_signature`. Present on `variable` kind
|
|
56
|
+
* only — parameters, props, and members carry their own.
|
|
57
|
+
*/
|
|
58
|
+
get default_value(): string | undefined;
|
|
48
59
|
get doc_comment(): string | undefined;
|
|
49
60
|
get deprecated_message(): string | undefined;
|
|
50
61
|
get parameters(): Array<ParameterJsonInput> | undefined;
|
|
51
62
|
get props(): Array<ComponentPropJsonInput> | undefined;
|
|
52
63
|
get return_type(): string | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Structured return type beside `return_type`, absent when the flat string
|
|
66
|
+
* is the whole story. Present on `function` kind only.
|
|
67
|
+
*/
|
|
68
|
+
get return_type_info(): TypeJson | undefined;
|
|
53
69
|
get return_description(): string | undefined;
|
|
54
70
|
get generic_params(): NonNullable<DeclarationJsonInput['genericParams']>;
|
|
55
|
-
get
|
|
71
|
+
get extends_types(): Array<string> | undefined;
|
|
56
72
|
get implements_types(): Array<string> | undefined;
|
|
57
73
|
get throws(): NonNullable<DeclarationJsonInput['throws']>;
|
|
58
74
|
get since(): string | undefined;
|
|
@@ -63,10 +79,14 @@ export declare class Declaration {
|
|
|
63
79
|
*/
|
|
64
80
|
get members(): Array<MemberJsonInput> | undefined;
|
|
65
81
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
82
|
+
* External types whose contributions are filtered out of props/members —
|
|
83
|
+
* the attribute bags a component forwards, however the author composed
|
|
84
|
+
* them (intersection, heritage clause, bare or indexed-access reference).
|
|
85
|
+
* On `interface`/`class` kinds it records the external reach of the
|
|
86
|
+
* heritage chain, whose contributions members (own-only) never enumerate.
|
|
87
|
+
* Present on `component`, `type`, `interface`, and `class` kinds.
|
|
68
88
|
*/
|
|
69
|
-
get
|
|
89
|
+
get external_types(): Array<string> | undefined;
|
|
70
90
|
/**
|
|
71
91
|
* Whether a component accepts children via props or template usage.
|
|
72
92
|
* Present on `component` kind only.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declaration.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/declaration.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACV,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAcjD;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAiB;IACxC,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAiB;IAEhE,IAAI,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,CAE/B;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAEvC;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAQnC;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAID;;OAEG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAQ7B;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAIrC;IAID;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAOzB;IAED,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAE3C;IAED,IAAI,UAAU,IAAI,KAAK,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAEtD;IAED,IAAI,KAAK,IAAI,KAAK,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAErD;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,IAAI,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAE3C;IAED,IAAI,cAAc,IAAI,WAAW,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAEvE;IAED,IAAI,
|
|
1
|
+
{"version":3,"file":"declaration.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/declaration.svelte.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,6 +87,21 @@ export class Declaration {
|
|
|
87
87
|
get type_signature() {
|
|
88
88
|
return this.declaration_json.typeSignature;
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Structured type tree beside `type_signature`, absent when the flat string
|
|
92
|
+
* is the whole story. Present on `variable` and `type` kinds only.
|
|
93
|
+
*/
|
|
94
|
+
get type_info() {
|
|
95
|
+
return field(this.declaration_json, 'typeInfo');
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Default value documented via `@default`; the authoritative initializer
|
|
99
|
+
* (when human-readable) is in `type_signature`. Present on `variable` kind
|
|
100
|
+
* only — parameters, props, and members carry their own.
|
|
101
|
+
*/
|
|
102
|
+
get default_value() {
|
|
103
|
+
return field(this.declaration_json, 'defaultValue');
|
|
104
|
+
}
|
|
90
105
|
get doc_comment() {
|
|
91
106
|
return this.declaration_json.docComment;
|
|
92
107
|
}
|
|
@@ -102,13 +117,20 @@ export class Declaration {
|
|
|
102
117
|
get return_type() {
|
|
103
118
|
return field(this.declaration_json, 'returnType');
|
|
104
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Structured return type beside `return_type`, absent when the flat string
|
|
122
|
+
* is the whole story. Present on `function` kind only.
|
|
123
|
+
*/
|
|
124
|
+
get return_type_info() {
|
|
125
|
+
return field(this.declaration_json, 'returnTypeInfo');
|
|
126
|
+
}
|
|
105
127
|
get return_description() {
|
|
106
128
|
return field(this.declaration_json, 'returnDescription');
|
|
107
129
|
}
|
|
108
130
|
get generic_params() {
|
|
109
131
|
return this.declaration_json.genericParams ?? EMPTY_ARRAY;
|
|
110
132
|
}
|
|
111
|
-
get
|
|
133
|
+
get extends_types() {
|
|
112
134
|
return field(this.declaration_json, 'extends');
|
|
113
135
|
}
|
|
114
136
|
get implements_types() {
|
|
@@ -133,11 +155,15 @@ export class Declaration {
|
|
|
133
155
|
return field(this.declaration_json, 'members');
|
|
134
156
|
}
|
|
135
157
|
/**
|
|
136
|
-
*
|
|
137
|
-
*
|
|
158
|
+
* External types whose contributions are filtered out of props/members —
|
|
159
|
+
* the attribute bags a component forwards, however the author composed
|
|
160
|
+
* them (intersection, heritage clause, bare or indexed-access reference).
|
|
161
|
+
* On `interface`/`class` kinds it records the external reach of the
|
|
162
|
+
* heritage chain, whose contributions members (own-only) never enumerate.
|
|
163
|
+
* Present on `component`, `type`, `interface`, and `class` kinds.
|
|
138
164
|
*/
|
|
139
|
-
get
|
|
140
|
-
return field(this.declaration_json, '
|
|
165
|
+
get external_types() {
|
|
166
|
+
return field(this.declaration_json, 'externalTypes');
|
|
141
167
|
}
|
|
142
168
|
/**
|
|
143
169
|
* Whether a component accepts children via props or template usage.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// generated by src/lib/project_stats_update.task.ts — do not edit directly, run `gro project_stats_update`
|
|
2
2
|
export const project_stats_data = {
|
|
3
|
-
generated_at: '2026-08-
|
|
3
|
+
generated_at: '2026-08-11T20:11:51.079Z',
|
|
4
4
|
end_date: '2026-08-11',
|
|
5
5
|
projects: [
|
|
6
6
|
{
|
|
@@ -11,7 +11,7 @@ export const project_stats_data = {
|
|
|
11
11
|
6, 5, 1, 18, 19, 30, 9, 4, 3, 1, 0, 0, 0, 0, 0, 0, 0, 5, 6, 0, 2, 11, 7, 7, 0, 6, 4, 4, 6, 2,
|
|
12
12
|
0, 0, 0, 0, 0, 9, 3, 13, 4, 11, 2, 1, 4, 4, 1, 0, 1, 0, 5, 0, 0, 0, 2, 7, 6, 10, 4, 0, 0, 0,
|
|
13
13
|
6, 5, 5, 6, 12, 4, 1, 1, 0, 1, 0, 0, 0, 7, 1, 0, 1, 3, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
|
|
14
|
-
0, 1, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 12, 6, 0, 0,
|
|
14
|
+
0, 1, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 12, 6, 0, 0, 1
|
|
15
15
|
]
|
|
16
16
|
},
|
|
17
17
|
{
|
|
@@ -82,7 +82,7 @@ export const project_stats_data = {
|
|
|
82
82
|
0, 2, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
83
83
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 8, 3, 0, 0, 3, 0, 2, 3, 3, 0, 3, 7, 8,
|
|
84
84
|
3, 0, 4, 0, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 8, 10, 0, 2, 2, 0, 3, 0, 3, 0, 0,
|
|
85
|
-
0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
|
|
85
|
+
0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7
|
|
86
86
|
]
|
|
87
87
|
},
|
|
88
88
|
{
|
|
@@ -263,7 +263,7 @@ export const project_stats_data = {
|
|
|
263
263
|
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
264
264
|
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 1, 0, 2, 0, 0, 1, 0,
|
|
265
265
|
2, 3, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
266
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
|
|
266
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
267
267
|
]
|
|
268
268
|
},
|
|
269
269
|
{
|
|
@@ -303,7 +303,7 @@ export const project_stats_data = {
|
|
|
303
303
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 12, 0, 1,
|
|
304
304
|
0, 3, 3, 0, 5, 0, 0, 1, 0, 2, 4, 1, 4, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
|
|
305
305
|
2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
|
|
306
|
-
0, 0, 0, 0, 0, 0, 0, 0,
|
|
306
|
+
0, 0, 0, 0, 0, 0, 0, 0, 1
|
|
307
307
|
]
|
|
308
308
|
},
|
|
309
309
|
{
|
|
@@ -312,7 +312,7 @@ export const project_stats_data = {
|
|
|
312
312
|
daily_counts: [
|
|
313
313
|
11, 8, 0, 1, 0, 5, 2, 4, 2, 0, 1, 0, 2, 13, 5, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
314
314
|
0, 1, 0, 0, 0, 8, 1, 1, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
|
315
|
-
0, 0, 0, 1, 4, 2, 0, 2, 3, 1, 4, 13, 8,
|
|
315
|
+
0, 0, 0, 1, 4, 2, 0, 2, 3, 1, 4, 13, 8, 6
|
|
316
316
|
]
|
|
317
317
|
},
|
|
318
318
|
{
|
|
@@ -462,7 +462,7 @@ export const project_stats_data = {
|
|
|
462
462
|
daily_counts: [
|
|
463
463
|
3, 11, 8, 16, 12, 14, 6, 14, 11, 4, 10, 21, 26, 11, 15, 22, 20, 13, 28, 16, 32, 19, 22, 27,
|
|
464
464
|
28, 4, 28, 27, 16, 12, 31, 20, 19, 24, 17, 13, 16, 13, 15, 13, 16, 17, 8, 13, 1, 14, 18, 5,
|
|
465
|
-
8, 30, 9, 4, 23, 9, 11, 7, 9, 6, 15, 17,
|
|
465
|
+
8, 30, 9, 4, 23, 9, 11, 7, 9, 6, 15, 17, 10
|
|
466
466
|
]
|
|
467
467
|
}
|
|
468
468
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fuzdev/fuz_ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.207.0",
|
|
4
4
|
"description": "Svelte UI library",
|
|
5
5
|
"tagline": "friendly user zystem",
|
|
6
6
|
"glyph": "🧶",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"jsdom": "^29.1.1",
|
|
82
82
|
"svelte": "^5.56.4",
|
|
83
83
|
"svelte-check": "^4.7.2",
|
|
84
|
-
"svelte-docinfo": "^0.
|
|
84
|
+
"svelte-docinfo": "^0.6.0",
|
|
85
85
|
"tslib": "^2.8.1",
|
|
86
86
|
"typescript": "^5.9.3",
|
|
87
87
|
"typescript-eslint": "^8.60.0",
|
|
@@ -5,7 +5,8 @@ import type {
|
|
|
5
5
|
ParameterJsonInput,
|
|
6
6
|
ComponentPropJsonInput,
|
|
7
7
|
OverloadJsonInput,
|
|
8
|
-
Reactivity
|
|
8
|
+
Reactivity,
|
|
9
|
+
TypeJson
|
|
9
10
|
} from 'svelte-docinfo/types.js';
|
|
10
11
|
import { generateImport, getDisplayName } from 'svelte-docinfo/declaration-helpers.js';
|
|
11
12
|
import { EMPTY_ARRAY } from '@fuzdev/fuz_util/array.ts';
|
|
@@ -122,6 +123,23 @@ export class Declaration {
|
|
|
122
123
|
return this.declaration_json.typeSignature;
|
|
123
124
|
}
|
|
124
125
|
|
|
126
|
+
/**
|
|
127
|
+
* Structured type tree beside `type_signature`, absent when the flat string
|
|
128
|
+
* is the whole story. Present on `variable` and `type` kinds only.
|
|
129
|
+
*/
|
|
130
|
+
get type_info(): TypeJson | undefined {
|
|
131
|
+
return field<TypeJson>(this.declaration_json, 'typeInfo');
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Default value documented via `@default`; the authoritative initializer
|
|
136
|
+
* (when human-readable) is in `type_signature`. Present on `variable` kind
|
|
137
|
+
* only — parameters, props, and members carry their own.
|
|
138
|
+
*/
|
|
139
|
+
get default_value(): string | undefined {
|
|
140
|
+
return field<string>(this.declaration_json, 'defaultValue');
|
|
141
|
+
}
|
|
142
|
+
|
|
125
143
|
get doc_comment(): string | undefined {
|
|
126
144
|
return this.declaration_json.docComment;
|
|
127
145
|
}
|
|
@@ -142,6 +160,14 @@ export class Declaration {
|
|
|
142
160
|
return field<string>(this.declaration_json, 'returnType');
|
|
143
161
|
}
|
|
144
162
|
|
|
163
|
+
/**
|
|
164
|
+
* Structured return type beside `return_type`, absent when the flat string
|
|
165
|
+
* is the whole story. Present on `function` kind only.
|
|
166
|
+
*/
|
|
167
|
+
get return_type_info(): TypeJson | undefined {
|
|
168
|
+
return field<TypeJson>(this.declaration_json, 'returnTypeInfo');
|
|
169
|
+
}
|
|
170
|
+
|
|
145
171
|
get return_description(): string | undefined {
|
|
146
172
|
return field<string>(this.declaration_json, 'returnDescription');
|
|
147
173
|
}
|
|
@@ -150,8 +176,8 @@ export class Declaration {
|
|
|
150
176
|
return this.declaration_json.genericParams ?? EMPTY_ARRAY;
|
|
151
177
|
}
|
|
152
178
|
|
|
153
|
-
get
|
|
154
|
-
return field<
|
|
179
|
+
get extends_types(): Array<string> | undefined {
|
|
180
|
+
return field<Array<string>>(this.declaration_json, 'extends');
|
|
155
181
|
}
|
|
156
182
|
|
|
157
183
|
get implements_types(): Array<string> | undefined {
|
|
@@ -182,11 +208,15 @@ export class Declaration {
|
|
|
182
208
|
}
|
|
183
209
|
|
|
184
210
|
/**
|
|
185
|
-
*
|
|
186
|
-
*
|
|
211
|
+
* External types whose contributions are filtered out of props/members —
|
|
212
|
+
* the attribute bags a component forwards, however the author composed
|
|
213
|
+
* them (intersection, heritage clause, bare or indexed-access reference).
|
|
214
|
+
* On `interface`/`class` kinds it records the external reach of the
|
|
215
|
+
* heritage chain, whose contributions members (own-only) never enumerate.
|
|
216
|
+
* Present on `component`, `type`, `interface`, and `class` kinds.
|
|
187
217
|
*/
|
|
188
|
-
get
|
|
189
|
-
return field<Array<string>>(this.declaration_json, '
|
|
218
|
+
get external_types(): Array<string> | undefined {
|
|
219
|
+
return field<Array<string>>(this.declaration_json, 'externalTypes');
|
|
190
220
|
}
|
|
191
221
|
|
|
192
222
|
/**
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import type { ProjectStatsSnapshot } from './project_stats.ts';
|
|
4
4
|
|
|
5
5
|
export const project_stats_data: ProjectStatsSnapshot = {
|
|
6
|
-
generated_at: '2026-08-
|
|
6
|
+
generated_at: '2026-08-11T20:11:51.079Z',
|
|
7
7
|
end_date: '2026-08-11',
|
|
8
8
|
projects: [
|
|
9
9
|
{
|
|
@@ -14,7 +14,7 @@ export const project_stats_data: ProjectStatsSnapshot = {
|
|
|
14
14
|
6, 5, 1, 18, 19, 30, 9, 4, 3, 1, 0, 0, 0, 0, 0, 0, 0, 5, 6, 0, 2, 11, 7, 7, 0, 6, 4, 4, 6, 2,
|
|
15
15
|
0, 0, 0, 0, 0, 9, 3, 13, 4, 11, 2, 1, 4, 4, 1, 0, 1, 0, 5, 0, 0, 0, 2, 7, 6, 10, 4, 0, 0, 0,
|
|
16
16
|
6, 5, 5, 6, 12, 4, 1, 1, 0, 1, 0, 0, 0, 7, 1, 0, 1, 3, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
|
|
17
|
-
0, 1, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 12, 6, 0, 0,
|
|
17
|
+
0, 1, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 12, 6, 0, 0, 1
|
|
18
18
|
]
|
|
19
19
|
},
|
|
20
20
|
{
|
|
@@ -85,7 +85,7 @@ export const project_stats_data: ProjectStatsSnapshot = {
|
|
|
85
85
|
0, 2, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
86
86
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12, 8, 3, 0, 0, 3, 0, 2, 3, 3, 0, 3, 7, 8,
|
|
87
87
|
3, 0, 4, 0, 1, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 8, 10, 0, 2, 2, 0, 3, 0, 3, 0, 0,
|
|
88
|
-
0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
|
|
88
|
+
0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7
|
|
89
89
|
]
|
|
90
90
|
},
|
|
91
91
|
{
|
|
@@ -266,7 +266,7 @@ export const project_stats_data: ProjectStatsSnapshot = {
|
|
|
266
266
|
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
267
267
|
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 1, 0, 2, 0, 0, 1, 0,
|
|
268
268
|
2, 3, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
269
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
|
|
269
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
270
270
|
]
|
|
271
271
|
},
|
|
272
272
|
{
|
|
@@ -306,7 +306,7 @@ export const project_stats_data: ProjectStatsSnapshot = {
|
|
|
306
306
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 12, 0, 1,
|
|
307
307
|
0, 3, 3, 0, 5, 0, 0, 1, 0, 2, 4, 1, 4, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
|
|
308
308
|
2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
|
|
309
|
-
0, 0, 0, 0, 0, 0, 0, 0,
|
|
309
|
+
0, 0, 0, 0, 0, 0, 0, 0, 1
|
|
310
310
|
]
|
|
311
311
|
},
|
|
312
312
|
{
|
|
@@ -315,7 +315,7 @@ export const project_stats_data: ProjectStatsSnapshot = {
|
|
|
315
315
|
daily_counts: [
|
|
316
316
|
11, 8, 0, 1, 0, 5, 2, 4, 2, 0, 1, 0, 2, 13, 5, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
317
317
|
0, 1, 0, 0, 0, 8, 1, 1, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
|
318
|
-
0, 0, 0, 1, 4, 2, 0, 2, 3, 1, 4, 13, 8,
|
|
318
|
+
0, 0, 0, 1, 4, 2, 0, 2, 3, 1, 4, 13, 8, 6
|
|
319
319
|
]
|
|
320
320
|
},
|
|
321
321
|
{
|
|
@@ -465,7 +465,7 @@ export const project_stats_data: ProjectStatsSnapshot = {
|
|
|
465
465
|
daily_counts: [
|
|
466
466
|
3, 11, 8, 16, 12, 14, 6, 14, 11, 4, 10, 21, 26, 11, 15, 22, 20, 13, 28, 16, 32, 19, 22, 27,
|
|
467
467
|
28, 4, 28, 27, 16, 12, 31, 20, 19, 24, 17, 13, 16, 13, 15, 13, 16, 17, 8, 13, 1, 14, 18, 5,
|
|
468
|
-
8, 30, 9, 4, 23, 9, 11, 7, 9, 6, 15, 17,
|
|
468
|
+
8, 30, 9, 4, 23, 9, 11, 7, 9, 6, 15, 17, 10
|
|
469
469
|
]
|
|
470
470
|
}
|
|
471
471
|
]
|