@fuzdev/fuz_ui 0.191.4 โ 0.193.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/ApiIndex.svelte +3 -3
- package/dist/ApiModule.svelte +2 -2
- package/dist/ApiModulesList.svelte +3 -3
- package/dist/ColorSchemeInput.svelte +6 -6
- package/dist/ContextmenuLinkEntry.svelte +1 -1
- package/dist/ContextmenuRoot.svelte +10 -10
- package/dist/ContextmenuRootForSafariCompatibility.svelte +19 -19
- package/dist/ContextmenuSeparator.svelte +3 -3
- package/dist/ContextmenuSubmenu.svelte +3 -3
- package/dist/CopyToClipboard.svelte +3 -3
- package/dist/DeclarationLink.svelte +1 -1
- package/dist/Dialog.svelte +16 -16
- package/dist/Docs.svelte +12 -12
- package/dist/DocsFooter.svelte +2 -2
- package/dist/DocsList.svelte +7 -7
- package/dist/DocsMenu.svelte +4 -4
- package/dist/DocsMenu.svelte.d.ts.map +1 -1
- package/dist/DocsPageLinks.svelte +4 -4
- package/dist/DocsPrimaryNav.svelte +2 -2
- package/dist/DocsSecondaryNav.svelte +4 -4
- package/dist/DocsTertiaryNav.svelte +13 -13
- package/dist/DocsTertiaryNav.svelte.d.ts +1 -1
- package/dist/GithubLink.svelte +1 -1
- package/dist/Hashlink.svelte +2 -2
- package/dist/HueInput.svelte +5 -5
- package/dist/LibraryDetail.svelte +8 -8
- package/dist/LibrarySummary.svelte +4 -4
- package/dist/MdnLink.svelte +1 -1
- package/dist/ModuleLink.svelte +1 -1
- package/dist/PasteFromClipboard.svelte +1 -1
- package/dist/PendingAnimation.svelte +2 -2
- package/dist/PendingButton.svelte +2 -2
- package/dist/ProjectLinks.svelte +4 -4
- package/dist/Teleport.svelte +2 -2
- package/dist/ThemeInput.svelte +5 -5
- package/dist/TomeContent.svelte +3 -3
- package/dist/TomeHeader.svelte +15 -14
- package/dist/TomeHeader.svelte.d.ts.map +1 -1
- package/dist/TomeLink.svelte +13 -6
- package/dist/TomeLink.svelte.d.ts +1 -1
- package/dist/TomeLink.svelte.d.ts.map +1 -1
- package/dist/TomeSection.svelte +1 -1
- package/dist/TomeSectionHeader.svelte +3 -3
- package/dist/api_search.svelte.js +2 -2
- package/dist/contextmenu_state.svelte.d.ts.map +1 -1
- package/dist/contextmenu_state.svelte.js +11 -10
- package/dist/csp.d.ts +81 -90
- package/dist/csp.d.ts.map +1 -1
- package/dist/csp.js +145 -163
- package/dist/csp_of_fuzdev.d.ts +13 -3
- package/dist/csp_of_fuzdev.d.ts.map +1 -1
- package/dist/csp_of_fuzdev.js +23 -7
- package/dist/dimensions.svelte.d.ts.map +1 -1
- package/dist/dimensions.svelte.js +2 -2
- package/dist/library.svelte.d.ts +1 -1
- package/dist/library_generate.js +1 -1
- package/dist/style_variable_helpers.svelte.d.ts.map +1 -1
- package/dist/style_variable_helpers.svelte.js +1 -1
- package/dist/theme_state.svelte.d.ts.map +1 -1
- package/dist/theme_state.svelte.js +2 -2
- package/dist/tome.d.ts +8 -3
- package/dist/tome.d.ts.map +1 -1
- package/dist/tome.js +24 -8
- package/dist/tsdoc_helpers.d.ts +9 -0
- package/dist/tsdoc_helpers.d.ts.map +1 -1
- package/dist/tsdoc_helpers.js +15 -5
- package/package.json +5 -5
- package/src/lib/api_search.svelte.ts +2 -2
- package/src/lib/contextmenu_state.svelte.ts +11 -10
- package/src/lib/csp.ts +224 -258
- package/src/lib/csp_of_fuzdev.ts +24 -8
- package/src/lib/dimensions.svelte.ts +2 -2
- package/src/lib/library_generate.ts +1 -1
- package/src/lib/style_variable_helpers.svelte.ts +1 -1
- package/src/lib/theme_state.svelte.ts +2 -2
- package/src/lib/tome.ts +25 -8
- package/src/lib/tsdoc_helpers.ts +18 -7
package/dist/tsdoc_helpers.js
CHANGED
|
@@ -74,16 +74,13 @@ export const tsdoc_parse = (node, source_file) => {
|
|
|
74
74
|
// Extract main comment text
|
|
75
75
|
for (const comment of tsdoc_comments) {
|
|
76
76
|
if (ts.isJSDoc(comment) && comment.comment) {
|
|
77
|
-
|
|
78
|
-
? comment.comment
|
|
79
|
-
: comment.comment.map((c) => c.text).join('');
|
|
80
|
-
full_text += text + '\n';
|
|
77
|
+
full_text += tsdoc_comment_to_text(comment.comment, source_file) + '\n';
|
|
81
78
|
}
|
|
82
79
|
}
|
|
83
80
|
// Extract tags
|
|
84
81
|
const tags = ts.getJSDocTags(node);
|
|
85
82
|
for (const tag of tags) {
|
|
86
|
-
const tag_text =
|
|
83
|
+
const tag_text = tag.comment ? tsdoc_comment_to_text(tag.comment, source_file) : undefined;
|
|
87
84
|
const tag_name = tag.tagName.text;
|
|
88
85
|
if (tag_name === 'param' && ts.isJSDocParameterTag(tag)) {
|
|
89
86
|
// Extract parameter name and description
|
|
@@ -177,6 +174,19 @@ export const tsdoc_apply_to_declaration = (declaration, tsdoc) => {
|
|
|
177
174
|
declaration.since = tsdoc.since;
|
|
178
175
|
}
|
|
179
176
|
};
|
|
177
|
+
/**
|
|
178
|
+
* Concatenates a JSDoc comment (string or node array) into plain text, preserving `{@link ...}`.
|
|
179
|
+
*
|
|
180
|
+
* `JSDocLink` / `JSDocLinkCode` / `JSDocLinkPlain` nodes have empty `.text` โ the identifier
|
|
181
|
+
* lives on `.name`, not `.text`. Using `.text` alone silently drops link content; we fall back
|
|
182
|
+
* to the source-text representation for link nodes so `{@link Foo}` survives intact for downstream
|
|
183
|
+
* renderers (see `tsdoc_mdz.ts`).
|
|
184
|
+
*/
|
|
185
|
+
export const tsdoc_comment_to_text = (comment, source_file) => {
|
|
186
|
+
if (typeof comment === 'string')
|
|
187
|
+
return comment;
|
|
188
|
+
return comment.map((c) => (ts.isJSDocLinkLike(c) ? c.getText(source_file) : c.text)).join('');
|
|
189
|
+
};
|
|
180
190
|
/**
|
|
181
191
|
* Clean raw JSDoc comment text by removing comment markers and leading asterisks.
|
|
182
192
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fuzdev/fuz_ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.193.0",
|
|
4
4
|
"description": "Svelte UI library",
|
|
5
5
|
"tagline": "friendly user zystem",
|
|
6
6
|
"glyph": "๐งถ",
|
|
@@ -81,11 +81,11 @@
|
|
|
81
81
|
"devDependencies": {
|
|
82
82
|
"@changesets/changelog-git": "^0.2.1",
|
|
83
83
|
"@fuzdev/fuz_code": "^0.45.1",
|
|
84
|
-
"@fuzdev/fuz_css": "^0.
|
|
85
|
-
"@fuzdev/fuz_util": "^0.
|
|
86
|
-
"@fuzdev/gro": "^0.
|
|
84
|
+
"@fuzdev/fuz_css": "^0.59.0",
|
|
85
|
+
"@fuzdev/fuz_util": "^0.61.1",
|
|
86
|
+
"@fuzdev/gro": "^0.199.1",
|
|
87
87
|
"@jridgewell/trace-mapping": "^0.3.31",
|
|
88
|
-
"@ryanatkn/eslint-config": "^0.
|
|
88
|
+
"@ryanatkn/eslint-config": "^0.12.1",
|
|
89
89
|
"@sveltejs/acorn-typescript": "^1.0.9",
|
|
90
90
|
"@sveltejs/adapter-static": "^3.0.10",
|
|
91
91
|
"@sveltejs/kit": "^2.55.0",
|
|
@@ -24,7 +24,7 @@ export interface ApiSearchState {
|
|
|
24
24
|
* Creates unified search state for the API index page (modules and declarations).
|
|
25
25
|
*/
|
|
26
26
|
export const create_api_search = (library: Library): ApiSearchState => {
|
|
27
|
-
let query = $state('');
|
|
27
|
+
let query = $state.raw('');
|
|
28
28
|
|
|
29
29
|
// Module filtering
|
|
30
30
|
const all_modules = $derived(library.modules_sorted);
|
|
@@ -77,7 +77,7 @@ export const create_api_search = (library: Library): ApiSearchState => {
|
|
|
77
77
|
export const create_module_declaration_search = (
|
|
78
78
|
declarations: Array<Declaration>,
|
|
79
79
|
): DeclarationSearchState => {
|
|
80
|
-
let query = $state('');
|
|
80
|
+
let query = $state.raw('');
|
|
81
81
|
|
|
82
82
|
const all = $derived(declarations);
|
|
83
83
|
|
|
@@ -31,9 +31,9 @@ export class EntryState {
|
|
|
31
31
|
readonly run: () => ContextmenuRun;
|
|
32
32
|
readonly disabled: () => boolean;
|
|
33
33
|
|
|
34
|
-
selected: boolean = $state(false);
|
|
35
|
-
pending: boolean = $state(false);
|
|
36
|
-
error_message: string | null = $state(null);
|
|
34
|
+
selected: boolean = $state.raw(false);
|
|
35
|
+
pending: boolean = $state.raw(false);
|
|
36
|
+
error_message: string | null = $state.raw(null);
|
|
37
37
|
promise: Promise<ContextmenuActivateResult> | null = $state.raw(null);
|
|
38
38
|
|
|
39
39
|
constructor(
|
|
@@ -52,7 +52,7 @@ export class SubmenuState {
|
|
|
52
52
|
readonly menu: SubmenuState | RootMenuState;
|
|
53
53
|
readonly depth: number;
|
|
54
54
|
|
|
55
|
-
selected: boolean = $state(false);
|
|
55
|
+
selected: boolean = $state.raw(false);
|
|
56
56
|
items: ReadonlyArray<ItemState> = $state.raw([]);
|
|
57
57
|
|
|
58
58
|
constructor(menu: SubmenuState | RootMenuState, depth: number) {
|
|
@@ -90,11 +90,11 @@ export class ContextmenuState {
|
|
|
90
90
|
readonly has_custom_layout: boolean;
|
|
91
91
|
|
|
92
92
|
// State for external consumers.
|
|
93
|
-
opened: boolean = $state(false);
|
|
94
|
-
x: number = $state(0);
|
|
95
|
-
y: number = $state(0);
|
|
93
|
+
opened: boolean = $state.raw(false);
|
|
94
|
+
x: number = $state.raw(0);
|
|
95
|
+
y: number = $state.raw(0);
|
|
96
96
|
params: ReadonlyArray<ContextmenuParams> = $state.raw([]);
|
|
97
|
-
error: string | undefined = $state();
|
|
97
|
+
error: string | undefined = $state.raw();
|
|
98
98
|
|
|
99
99
|
// These arrays use immutable updates (reassignment, not mutation).
|
|
100
100
|
// If you need reactivity, use `$contextmenu` in a reactive statement to react to all changes, and
|
|
@@ -253,7 +253,7 @@ export class ContextmenuState {
|
|
|
253
253
|
do {
|
|
254
254
|
i.selected = true;
|
|
255
255
|
new_selections.unshift(i);
|
|
256
|
-
} while ((i = i.menu) && i.menu);
|
|
256
|
+
} while ((i = i.menu) && i.menu);
|
|
257
257
|
this.selections = new_selections;
|
|
258
258
|
}
|
|
259
259
|
|
|
@@ -301,6 +301,7 @@ export class ContextmenuState {
|
|
|
301
301
|
|
|
302
302
|
select_last(): void {
|
|
303
303
|
const {items} = this.selections.at(-1)?.menu ?? this.root_menu;
|
|
304
|
+
if (!items.length) return;
|
|
304
305
|
this.select(items.at(-1)!);
|
|
305
306
|
}
|
|
306
307
|
|
|
@@ -417,7 +418,7 @@ export const contextmenu_open = (
|
|
|
417
418
|
// `navigator.vibrate()` works with `ContextmenuRoot` but gets blocked by some browsers
|
|
418
419
|
// when used with `ContextmenuRootForSafariCompatibility` because its longpress
|
|
419
420
|
// workaround triggers from a timeout rather than a direct user interaction.
|
|
420
|
-
|
|
421
|
+
|
|
421
422
|
if (BROWSER && vibrate && navigator.vibrate) {
|
|
422
423
|
navigator.vibrate(CONTEXTMENU_OPEN_VIBRATE_DURATION);
|
|
423
424
|
}
|