@fuzdev/fuz_ui 0.191.0 โ†’ 0.191.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 (49) hide show
  1. package/dist/ContextmenuRootForSafariCompatibility.svelte +1 -1
  2. package/dist/ProjectLinks.svelte +4 -2
  3. package/dist/ProjectLinks.svelte.d.ts.map +1 -1
  4. package/dist/analysis_context.d.ts +1 -1
  5. package/dist/analysis_context.js +1 -1
  6. package/dist/library_analysis.d.ts +1 -1
  7. package/dist/library_analysis.js +1 -1
  8. package/dist/library_helpers.d.ts +3 -3
  9. package/dist/library_helpers.js +3 -3
  10. package/dist/logos.d.ts +7 -0
  11. package/dist/logos.d.ts.map +1 -1
  12. package/dist/logos.js +5 -0
  13. package/dist/mdz.js +7 -7
  14. package/dist/mdz_helpers.d.ts +3 -3
  15. package/dist/mdz_helpers.js +3 -3
  16. package/dist/mdz_to_svelte.d.ts +4 -4
  17. package/dist/mdz_to_svelte.js +4 -4
  18. package/dist/module_helpers.d.ts +1 -1
  19. package/dist/module_helpers.js +1 -1
  20. package/dist/package_helpers.d.ts +8 -8
  21. package/dist/package_helpers.js +8 -8
  22. package/dist/storage.d.ts +1 -1
  23. package/dist/storage.js +1 -1
  24. package/dist/svelte_helpers.d.ts +4 -4
  25. package/dist/svelte_helpers.js +4 -4
  26. package/dist/svelte_preprocess_mdz.d.ts +1 -1
  27. package/dist/svelte_preprocess_mdz.js +1 -1
  28. package/dist/tome.d.ts +1 -1
  29. package/dist/tome.js +1 -1
  30. package/dist/ts_helpers.d.ts +5 -5
  31. package/dist/ts_helpers.js +5 -5
  32. package/dist/tsdoc_helpers.d.ts +1 -1
  33. package/dist/tsdoc_helpers.js +1 -1
  34. package/package.json +5 -5
  35. package/src/lib/analysis_context.ts +1 -1
  36. package/src/lib/library_analysis.ts +1 -1
  37. package/src/lib/library_helpers.ts +3 -3
  38. package/src/lib/logos.ts +6 -0
  39. package/src/lib/mdz.ts +10 -10
  40. package/src/lib/mdz_helpers.ts +3 -3
  41. package/src/lib/mdz_to_svelte.ts +4 -4
  42. package/src/lib/module_helpers.ts +1 -1
  43. package/src/lib/package_helpers.ts +8 -8
  44. package/src/lib/storage.ts +1 -1
  45. package/src/lib/svelte_helpers.ts +4 -4
  46. package/src/lib/svelte_preprocess_mdz.ts +1 -1
  47. package/src/lib/tome.ts +1 -1
  48. package/src/lib/ts_helpers.ts +5 -5
  49. package/src/lib/tsdoc_helpers.ts +1 -1
@@ -383,7 +383,7 @@
383
383
  * a longpress with movement below threshold.
384
384
  *
385
385
  * @param el - the Window or HTMLElement to attach touch listeners to
386
- * @returns Cleanup function to remove all event listeners
386
+ * @returns cleanup function to remove all event listeners
387
387
  */
388
388
  const touch_event_attachment = (el: HTMLElement | Window) => {
389
389
  // touchstart and touchcancel don't call preventDefault, so they can be passive for better performance
@@ -1,7 +1,8 @@
1
1
  <script lang="ts">
2
2
  import Svg, {type SvgData} from './Svg.svelte';
3
3
  import {
4
- logo_fuz,
4
+ // TODO when fuz.dev is ready
5
+ // logo_fuz,
5
6
  logo_fuz_ui,
6
7
  logo_fuz_code,
7
8
  logo_fuz_blog,
@@ -11,6 +12,7 @@
11
12
  logo_fuz_css,
12
13
  logo_fuz_util,
13
14
  logo_gro,
15
+ logo_fuz_docs,
14
16
  } from './logos.js';
15
17
 
16
18
  // TODO refactor
@@ -29,11 +31,11 @@
29
31
  {name: 'fuz_ui', url: 'https://ui.fuz.dev/', logo: logo_fuz_ui, description: 'Svelte UI library', glyph: '๐Ÿงถ', color_class: 'color_c_50'},
30
32
  {name: 'fuz_css', url: 'https://css.fuz.dev/', logo: logo_fuz_css, description: 'CSS framework and design system', glyph: '๐ŸŒฟ', color_class: 'color_b_50'},
31
33
  {name: 'fuz_template', url: 'https://template.fuz.dev/', logo: logo_fuz_template, description: 'a static web app and Node library template with TypeScript, Svelte, SvelteKit, Vite, esbuild, Fuz, and Gro', glyph: 'โ„', color_class: 'color_h_50'},
32
- {name: 'fuz_docs', url: 'https://docs.fuz.dev/', logo: logo_fuz, description: 'AI-generated documentation and skills for the Fuz stack', glyph: 'โ„', color_class: 'color_i_50'},
33
34
  {name: 'fuz_code', url: 'https://code.fuz.dev/', logo: logo_fuz_code, description: 'syntax styling utilities and components for TypeScript, Svelte, SvelteKit', glyph: '๐ŸŽจ', color_class: 'color_g_50'},
34
35
  {name: 'fuz_blog', url: 'https://blog.fuz.dev/', logo: logo_fuz_blog, description: 'blog software from scratch with SvelteKit', glyph: '๐Ÿ–Š๏ธ', color_class: 'color_e_50'},
35
36
  {name: 'fuz_mastodon', url: 'https://mastodon.fuz.dev/', logo: logo_fuz_mastodon, description: 'Mastodon components and helpers for Svelte, SvelteKit, and Fuz', glyph: '๐Ÿฆฃ', color_class: 'color_d_50'},
36
37
  {name: 'fuz_gitops', url: 'https://gitops.fuz.dev/', logo: logo_fuz_gitops, description: 'a tool for managing many repos', glyph: '๐Ÿช„', color_class: 'color_a_50'},
38
+ {name: 'fuz_docs', url: 'https://docs.fuz.dev/', logo: logo_fuz_docs, description: 'AI-generated documentation and skills for the Fuz stack', glyph: 'โ„', color_class: 'color_i_50'},
37
39
  {name: 'fuz_util', url: 'https://util.fuz.dev/', logo: logo_fuz_util, description: 'utility belt for JS', glyph: '๐Ÿฆ•', color_class: 'color_f_50'},
38
40
  {name: 'gro', url: 'https://github.com/fuzdev/gro', logo: logo_gro, description: 'task runner and toolkit extending SvelteKit', glyph: '๐ŸŒฐ', color_class: 'color_f_50'},
39
41
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectLinks.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ProjectLinks.svelte"],"names":[],"mappings":"AAsEA,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"}
1
+ {"version":3,"file":"ProjectLinks.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ProjectLinks.svelte"],"names":[],"mappings":"AAwEA,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"}
@@ -189,7 +189,7 @@ export interface FormatDiagnosticOptions {
189
189
  *
190
190
  * @param diagnostic - the diagnostic to format
191
191
  * @param options - formatting options
192
- * @returns Formatted string like './file.ts:10:5: error: message'
192
+ * @returns formatted string like './file.ts:10:5: error: message'
193
193
  */
194
194
  export declare const format_diagnostic: (diagnostic: Diagnostic, options?: FormatDiagnosticOptions) => string;
195
195
  //# sourceMappingURL=analysis_context.d.ts.map
@@ -115,7 +115,7 @@ export class AnalysisContext {
115
115
  *
116
116
  * @param diagnostic - the diagnostic to format
117
117
  * @param options - formatting options
118
- * @returns Formatted string like './file.ts:10:5: error: message'
118
+ * @returns formatted string like './file.ts:10:5: error: message'
119
119
  */
120
120
  export const format_diagnostic = (diagnostic, options) => {
121
121
  const prefix = options?.prefix ?? './';
@@ -106,7 +106,7 @@ export interface ModuleAnalysis {
106
106
  * @param options - module source options for path extraction
107
107
  * @param ctx - analysis context for collecting diagnostics
108
108
  * @param log - optional logger for warnings
109
- * @returns Module metadata and re-exports, or undefined if source file not found in program
109
+ * @returns module metadata and re-exports, or undefined if source file not found in program
110
110
  */
111
111
  export declare const library_analyze_module: (source_file: SourceFileInfo, program: ts.Program, options: ModuleSourceOptions, ctx: AnalysisContext, log?: Logger) => ModuleAnalysis | undefined;
112
112
  //# sourceMappingURL=library_analysis.d.ts.map
@@ -65,7 +65,7 @@ import { module_extract_path, } from './module_helpers.js';
65
65
  * @param options - module source options for path extraction
66
66
  * @param ctx - analysis context for collecting diagnostics
67
67
  * @param log - optional logger for warnings
68
- * @returns Module metadata and re-exports, or undefined if source file not found in program
68
+ * @returns module metadata and re-exports, or undefined if source file not found in program
69
69
  */
70
70
  export const library_analyze_module = (source_file, program, options, ctx, log) => {
71
71
  const checker = program.getTypeChecker();
@@ -20,7 +20,7 @@ export declare const url_api_declaration: (declaration_name: string) => string;
20
20
  *
21
21
  * @param homepage - package homepage URL
22
22
  * @param declaration_name - name of the declaration to link to
23
- * @returns Full URL like 'https://example.com/docs/api#declaration_name'
23
+ * @returns full URL like 'https://example.com/docs/api#declaration_name'
24
24
  */
25
25
  export declare const url_api_declaration_full: (homepage: string, declaration_name: string) => string;
26
26
  /**
@@ -35,7 +35,7 @@ export declare const url_api_module: (module_path: string) => string;
35
35
  *
36
36
  * @param homepage_url - package homepage URL, or null
37
37
  * @param logo_path - optional custom logo path (defaults to 'favicon.png')
38
- * @returns Full URL to the logo, or null if no homepage
38
+ * @returns full URL to the logo, or null if no homepage
39
39
  */
40
40
  export declare const url_package_logo: (homepage_url: string | null, logo_path?: string) => string | null;
41
41
  /**
@@ -45,7 +45,7 @@ export declare const url_package_logo: (homepage_url: string | null, logo_path?:
45
45
  *
46
46
  * @param url - full URL to convert
47
47
  * @param origin - origin to strip (defaults to current page origin)
48
- * @returns Root-relative URL starting with '/'
48
+ * @returns root-relative URL starting with '/'
49
49
  *
50
50
  * @example
51
51
  * // Assuming page.url.origin is 'https://example.com'
@@ -23,7 +23,7 @@ export const url_api_declaration = (declaration_name) => `${DOCS_API_PATH}#${enc
23
23
  *
24
24
  * @param homepage - package homepage URL
25
25
  * @param declaration_name - name of the declaration to link to
26
- * @returns Full URL like 'https://example.com/docs/api#declaration_name'
26
+ * @returns full URL like 'https://example.com/docs/api#declaration_name'
27
27
  */
28
28
  export const url_api_declaration_full = (homepage, declaration_name) => `${homepage}${DOCS_PATH_DEFAULT}/api#${encodeURIComponent(declaration_name)}`;
29
29
  /**
@@ -38,7 +38,7 @@ export const url_api_module = (module_path) => `${DOCS_API_PATH}/${module_path}`
38
38
  *
39
39
  * @param homepage_url - package homepage URL, or null
40
40
  * @param logo_path - optional custom logo path (defaults to 'favicon.png')
41
- * @returns Full URL to the logo, or null if no homepage
41
+ * @returns full URL to the logo, or null if no homepage
42
42
  */
43
43
  export const url_package_logo = (homepage_url, logo_path) => {
44
44
  if (!homepage_url)
@@ -53,7 +53,7 @@ export const url_package_logo = (homepage_url, logo_path) => {
53
53
  *
54
54
  * @param url - full URL to convert
55
55
  * @param origin - origin to strip (defaults to current page origin)
56
- * @returns Root-relative URL starting with '/'
56
+ * @returns root-relative URL starting with '/'
57
57
  *
58
58
  * @example
59
59
  * // Assuming page.url.origin is 'https://example.com'
package/dist/logos.d.ts CHANGED
@@ -57,6 +57,13 @@ export declare const logo_fuz_gitops: {
57
57
  d: string;
58
58
  }[];
59
59
  };
60
+ export declare const logo_fuz_docs: {
61
+ label: string;
62
+ fill: string;
63
+ paths: {
64
+ d: string;
65
+ }[];
66
+ };
60
67
  export declare const logo_fuz_template: {
61
68
  label: string;
62
69
  fill: string;
@@ -1 +1 @@
1
- {"version":3,"file":"logos.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/logos.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,QAAQ;;;;;;CAgCF,CAAC;AAEpB,eAAO,MAAM,QAAQ;;;;;;CAQF,CAAC;AAEpB,eAAO,MAAM,WAAW;;;;;;CAIL,CAAC;AAEpB,eAAO,MAAM,YAAY;;;;;;;;;CAKN,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAIP,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAIP,CAAC;AAEpB,eAAO,MAAM,iBAAiB;;;;;;CAIX,CAAC;AAEpB,eAAO,MAAM,eAAe;;;;;;CAIT,CAAC;AAEpB,eAAO,MAAM,iBAAiB;;;;;;CAQX,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAwBP,CAAC;AAEpB,eAAO,MAAM,WAAW;;;;;;;;;CAWL,CAAC;AAEpB,eAAO,MAAM,QAAQ;;;;;;CAQF,CAAC"}
1
+ {"version":3,"file":"logos.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/logos.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,QAAQ;;;;;;CAgCF,CAAC;AAEpB,eAAO,MAAM,QAAQ;;;;;;CAQF,CAAC;AAEpB,eAAO,MAAM,WAAW;;;;;;CAIL,CAAC;AAEpB,eAAO,MAAM,YAAY;;;;;;;;;CAKN,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAIP,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAIP,CAAC;AAEpB,eAAO,MAAM,iBAAiB;;;;;;CAIX,CAAC;AAEpB,eAAO,MAAM,eAAe;;;;;;CAIT,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAIP,CAAC;AAEpB,eAAO,MAAM,iBAAiB;;;;;;CAQX,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAwBP,CAAC;AAEpB,eAAO,MAAM,WAAW;;;;;;;;;CAWL,CAAC;AAEpB,eAAO,MAAM,QAAQ;;;;;;CAQF,CAAC"}
package/dist/logos.js CHANGED
@@ -88,6 +88,11 @@ export const logo_fuz_gitops = {
88
88
  fill: '#6199d1',
89
89
  paths: logo_fuz.paths,
90
90
  };
91
+ export const logo_fuz_docs = {
92
+ label: 'a friendly cyan spider facing you',
93
+ fill: '#1ec3d2',
94
+ paths: logo_fuz.paths,
95
+ };
91
96
  export const logo_fuz_template = {
92
97
  label: 'a friendly orange pixelated spider facing you',
93
98
  fill: '#f4672f',
package/dist/mdz.js CHANGED
@@ -627,7 +627,7 @@ export class MdzParser {
627
627
  /**
628
628
  * Restore previously saved text accumulation state.
629
629
  * Used to restore parent state when exiting nested structure parsing.
630
- * @param state - State object returned from `#save_accumulation_state()`
630
+ * @param state - state object returned from `#save_accumulation_state()`
631
631
  */
632
632
  #restore_accumulation_state(state) {
633
633
  this.#accumulated_text = state.accumulated_text;
@@ -640,9 +640,9 @@ export class MdzParser {
640
640
  * Word boundary = not surrounded by word characters (A-Z, a-z, 0-9).
641
641
  * Used to prevent intraword emphasis for underscores and tildes.
642
642
  *
643
- * @param index - Position to check
644
- * @param check_before - Whether to check the character before this position
645
- * @param check_after - Whether to check the character after this position
643
+ * @param index - position to check
644
+ * @param check_before - whether to check the character before this position
645
+ * @param check_after - whether to check the character after this position
646
646
  */
647
647
  #is_at_word_boundary(index, check_before, check_after) {
648
648
  if (check_before && index > 0) {
@@ -832,9 +832,9 @@ export class MdzParser {
832
832
  * - Paragraph break (double newline) is encountered (allows block elements to interrupt inline formatting)
833
833
  * - `end_index` boundary is reached
834
834
  *
835
- * @param delimiter - The delimiter string to stop at (e.g., '**', '_', ']')
836
- * @param end_index - Optional maximum index to parse up to (for greedy/bounded parsing)
837
- * @returns Array of parsed nodes (may be empty if delimiter found immediately)
835
+ * @param delimiter - the delimiter string to stop at (e.g., '**', '_', ']')
836
+ * @param end_index - optional maximum index to parse up to (for greedy/bounded parsing)
837
+ * @returns array of parsed nodes (may be empty if delimiter found immediately)
838
838
  */
839
839
  #parse_nodes_until(delimiter, end_index) {
840
840
  const nodes = [];
@@ -123,9 +123,9 @@ export declare const mdz_is_url: (s: string) => boolean;
123
123
  * (e.g., `'./a/../b'` โ†’ navigates up then down).
124
124
  * Clamps at root โ€” excess `..` segments stop at `/` rather than escaping.
125
125
  *
126
- * @param reference - a relative path starting with `./` or `../`.
127
- * @param base - an absolute base path (e.g., `'/docs/mdz/'`). Empty string is treated as root.
128
- * @returns An absolute resolved path (e.g., `'/docs/mdz/grammar'`).
126
+ * @param reference - a relative path starting with `./` or `../`
127
+ * @param base - An absolute base path (e.g., `'/docs/mdz/'`). Empty string is treated as root.
128
+ * @returns an absolute resolved path (e.g., `'/docs/mdz/grammar'`)
129
129
  */
130
130
  export declare const resolve_relative_path: (reference: string, base: string) => string;
131
131
  export declare const extract_single_tag: (nodes: Array<MdzNode>) => MdzComponentNode | MdzElementNode | null;
@@ -243,9 +243,9 @@ export const mdz_is_url = (s) => URL_PATTERN.test(s);
243
243
  * (e.g., `'./a/../b'` โ†’ navigates up then down).
244
244
  * Clamps at root โ€” excess `..` segments stop at `/` rather than escaping.
245
245
  *
246
- * @param reference - a relative path starting with `./` or `../`.
247
- * @param base - an absolute base path (e.g., `'/docs/mdz/'`). Empty string is treated as root.
248
- * @returns An absolute resolved path (e.g., `'/docs/mdz/grammar'`).
246
+ * @param reference - a relative path starting with `./` or `../`
247
+ * @param base - An absolute base path (e.g., `'/docs/mdz/'`). Empty string is treated as root.
248
+ * @returns an absolute resolved path (e.g., `'/docs/mdz/grammar'`)
249
249
  */
250
250
  export const resolve_relative_path = (reference, base) => {
251
251
  const segments = base.split('/');
@@ -28,12 +28,12 @@ export interface MdzToSvelteResult {
28
28
  * Each node type produces output matching what `MdzNodeView.svelte` renders at runtime.
29
29
  * Collects required imports and flags unconfigured component/element references.
30
30
  *
31
- * @param nodes - parsed mdz nodes to render.
32
- * @param components - component name to import path mapping (e.g., `{Alert: '$lib/Alert.svelte'}`).
31
+ * @param nodes - parsed mdz nodes to render
32
+ * @param components - Component name to import path mapping (e.g., `{Alert: '$lib/Alert.svelte'}`)
33
33
  * If content references a component not in this map, `has_unconfigured_tags` is set.
34
- * @param elements - allowed HTML element names (e.g., `new Set(['aside', 'details'])`).
34
+ * @param elements - Allowed HTML element names (e.g., `new Set(['aside', 'details'])`)
35
35
  * If content references an element not in this set, `has_unconfigured_tags` is set.
36
- * @param base - base path for resolving relative links (e.g., `'/docs/mdz/'`).
36
+ * @param base - Base path for resolving relative links (e.g., `'/docs/mdz/'`)
37
37
  * When provided, relative references (`./`, `../`) are resolved to absolute paths
38
38
  * and passed through `resolve()`. Trailing slash recommended.
39
39
  */
@@ -17,12 +17,12 @@ import { resolve_relative_path } from './mdz_helpers.js';
17
17
  * Each node type produces output matching what `MdzNodeView.svelte` renders at runtime.
18
18
  * Collects required imports and flags unconfigured component/element references.
19
19
  *
20
- * @param nodes - parsed mdz nodes to render.
21
- * @param components - component name to import path mapping (e.g., `{Alert: '$lib/Alert.svelte'}`).
20
+ * @param nodes - parsed mdz nodes to render
21
+ * @param components - Component name to import path mapping (e.g., `{Alert: '$lib/Alert.svelte'}`)
22
22
  * If content references a component not in this map, `has_unconfigured_tags` is set.
23
- * @param elements - allowed HTML element names (e.g., `new Set(['aside', 'details'])`).
23
+ * @param elements - Allowed HTML element names (e.g., `new Set(['aside', 'details'])`)
24
24
  * If content references an element not in this set, `has_unconfigured_tags` is set.
25
- * @param base - base path for resolving relative links (e.g., `'/docs/mdz/'`).
25
+ * @param base - Base path for resolving relative links (e.g., `'/docs/mdz/'`)
26
26
  * When provided, relative references (`./`, `../`) are resolved to absolute paths
27
27
  * and passed through `resolve()`. Trailing slash recommended.
28
28
  */
@@ -307,7 +307,7 @@ export declare const module_is_test: (path: string) => boolean;
307
307
  *
308
308
  * @param path - full absolute path to check
309
309
  * @param options - module source options for filtering
310
- * @returns True if the path is an analyzable source file
310
+ * @returns true if the path is an analyzable source file
311
311
  *
312
312
  * @example
313
313
  * ```ts
@@ -256,7 +256,7 @@ export const module_is_test = (path) => path.endsWith('.test.ts');
256
256
  *
257
257
  * @param path - full absolute path to check
258
258
  * @param options - module source options for filtering
259
- * @returns True if the path is an analyzable source file
259
+ * @returns true if the path is an analyzable source file
260
260
  *
261
261
  * @example
262
262
  * ```ts
@@ -27,7 +27,7 @@ import type { PackageJson } from '@fuzdev/fuz_util/package_json.js';
27
27
  * @param repo_url - repository URL (e.g., 'https://github.com/owner/repo')
28
28
  * @param file_path - path to the file (leading './' is stripped)
29
29
  * @param line - optional line number for deep linking
30
- * @returns Full GitHub URL to the file on the main branch
30
+ * @returns full GitHub URL to the file on the main branch
31
31
  *
32
32
  * @example
33
33
  * ```ts
@@ -47,7 +47,7 @@ export declare const url_github_file: (repo_url: string, file_path: string, line
47
47
  *
48
48
  * @param repo_url - repository URL (e.g., 'https://github.com/owner/repo')
49
49
  * @param repo_name - repository name to strip from the URL
50
- * @returns Organization URL, or null if repo_url doesn't end with repo_name
50
+ * @returns organization URL, or null if repo_url doesn't end with repo_name
51
51
  *
52
52
  * @example
53
53
  * ```ts
@@ -60,7 +60,7 @@ export declare const url_github_org: (repo_url: string, repo_name: string) => st
60
60
  * Extract GitHub owner/org name from repository URL.
61
61
  *
62
62
  * @param repo_url - repository URL (e.g., 'https://github.com/owner/repo')
63
- * @returns Owner name, or null if not a valid GitHub URL
63
+ * @returns owner name, or null if not a valid GitHub URL
64
64
  *
65
65
  * @example
66
66
  * ```ts
@@ -79,7 +79,7 @@ export declare const repo_url_github_owner: (repo_url: string) => string | null;
79
79
  * Build npm package URL.
80
80
  *
81
81
  * @param package_name - package name (can be scoped like '@org/package')
82
- * @returns Full npm package page URL
82
+ * @returns full npm package page URL
83
83
  *
84
84
  * @example
85
85
  * ```ts
@@ -97,14 +97,14 @@ export declare const url_npm_package: (package_name: string) => string;
97
97
  * - Its version is not the initial '0.0.1'
98
98
  *
99
99
  * @param package_json - the package.json object to check
100
- * @returns True if the package appears to be published
100
+ * @returns `true` if the package appears to be published
101
101
  */
102
102
  export declare const package_is_published: (package_json: PackageJson) => boolean;
103
103
  /**
104
104
  * Extract repository name without scope from package name.
105
105
  *
106
106
  * @param name - package name (can be scoped like '@org/package')
107
- * @returns Repository name without scope
107
+ * @returns repository name without scope
108
108
  * @throws Error if scoped package name is malformed
109
109
  *
110
110
  * @example
@@ -127,7 +127,7 @@ export declare const repo_name_parse: (name: string) => string;
127
127
  * Strips common prefixes ('git+') and suffixes ('.git', '/').
128
128
  *
129
129
  * @param repository - the repository field from package.json
130
- * @returns Clean repository URL, or null if not provided
130
+ * @returns clean repository URL, or null if not provided
131
131
  *
132
132
  * @example
133
133
  * ```ts
@@ -153,7 +153,7 @@ export declare const repo_url_parse: (repository: PackageJson["repository"]) =>
153
153
  *
154
154
  * @param homepage_url - package homepage URL
155
155
  * @param filename - filename in .well-known directory
156
- * @returns Full URL to the .well-known file
156
+ * @returns full URL to the .well-known file
157
157
  *
158
158
  * @example
159
159
  * ```ts
@@ -27,7 +27,7 @@ import { ensure_end, strip_end, strip_start } from '@fuzdev/fuz_util/string.js';
27
27
  * @param repo_url - repository URL (e.g., 'https://github.com/owner/repo')
28
28
  * @param file_path - path to the file (leading './' is stripped)
29
29
  * @param line - optional line number for deep linking
30
- * @returns Full GitHub URL to the file on the main branch
30
+ * @returns full GitHub URL to the file on the main branch
31
31
  *
32
32
  * @example
33
33
  * ```ts
@@ -51,7 +51,7 @@ export const url_github_file = (repo_url, file_path, line) => {
51
51
  *
52
52
  * @param repo_url - repository URL (e.g., 'https://github.com/owner/repo')
53
53
  * @param repo_name - repository name to strip from the URL
54
- * @returns Organization URL, or null if repo_url doesn't end with repo_name
54
+ * @returns organization URL, or null if repo_url doesn't end with repo_name
55
55
  *
56
56
  * @example
57
57
  * ```ts
@@ -66,7 +66,7 @@ export const url_github_org = (repo_url, repo_name) => {
66
66
  * Extract GitHub owner/org name from repository URL.
67
67
  *
68
68
  * @param repo_url - repository URL (e.g., 'https://github.com/owner/repo')
69
- * @returns Owner name, or null if not a valid GitHub URL
69
+ * @returns owner name, or null if not a valid GitHub URL
70
70
  *
71
71
  * @example
72
72
  * ```ts
@@ -91,7 +91,7 @@ export const repo_url_github_owner = (repo_url) => {
91
91
  * Build npm package URL.
92
92
  *
93
93
  * @param package_name - package name (can be scoped like '@org/package')
94
- * @returns Full npm package page URL
94
+ * @returns full npm package page URL
95
95
  *
96
96
  * @example
97
97
  * ```ts
@@ -109,7 +109,7 @@ export const url_npm_package = (package_name) => 'https://www.npmjs.com/package/
109
109
  * - Its version is not the initial '0.0.1'
110
110
  *
111
111
  * @param package_json - the package.json object to check
112
- * @returns True if the package appears to be published
112
+ * @returns `true` if the package appears to be published
113
113
  */
114
114
  export const package_is_published = (package_json) => {
115
115
  return !package_json.private && !!package_json.exports && package_json.version !== '0.0.1';
@@ -118,7 +118,7 @@ export const package_is_published = (package_json) => {
118
118
  * Extract repository name without scope from package name.
119
119
  *
120
120
  * @param name - package name (can be scoped like '@org/package')
121
- * @returns Repository name without scope
121
+ * @returns repository name without scope
122
122
  * @throws Error if scoped package name is malformed
123
123
  *
124
124
  * @example
@@ -150,7 +150,7 @@ export const repo_name_parse = (name) => {
150
150
  * Strips common prefixes ('git+') and suffixes ('.git', '/').
151
151
  *
152
152
  * @param repository - the repository field from package.json
153
- * @returns Clean repository URL, or null if not provided
153
+ * @returns clean repository URL, or null if not provided
154
154
  *
155
155
  * @example
156
156
  * ```ts
@@ -183,7 +183,7 @@ export const repo_url_parse = (repository) => {
183
183
  *
184
184
  * @param homepage_url - package homepage URL
185
185
  * @param filename - filename in .well-known directory
186
- * @returns Full URL to the .well-known file
186
+ * @returns full URL to the .well-known file
187
187
  *
188
188
  * @example
189
189
  * ```ts
package/dist/storage.d.ts CHANGED
@@ -7,7 +7,7 @@ export declare const save_to_storage: (key: string, value: any, is_json?: boolea
7
7
  * @param key - the localStorage key
8
8
  * @param is_json - whether to parse the value as JSON
9
9
  * @param parse_fn - optional custom parsing function to transform the value
10
- * @returns The parsed value or null if not found or parsing fails
10
+ * @returns the parsed value or null if not found or parsing fails
11
11
  */
12
12
  export declare const load_from_storage: <T>(key: string, is_json?: boolean, parse_fn?: (value: unknown) => T | null) => T | null;
13
13
  //# sourceMappingURL=storage.d.ts.map
package/dist/storage.js CHANGED
@@ -20,7 +20,7 @@ export const save_to_storage = (key, value, is_json = false) => {
20
20
  * @param key - the localStorage key
21
21
  * @param is_json - whether to parse the value as JSON
22
22
  * @param parse_fn - optional custom parsing function to transform the value
23
- * @returns The parsed value or null if not found or parsing fails
23
+ * @returns the parsed value or null if not found or parsing fails
24
24
  */
25
25
  export const load_from_storage = (key, is_json = false, parse_fn) => {
26
26
  if (!BROWSER)
@@ -48,7 +48,7 @@ export interface SvelteFileAnalysis {
48
48
  * @param checker - TypeScript type checker
49
49
  * @param options - module source options for path extraction
50
50
  * @param ctx - analysis context for collecting diagnostics
51
- * @returns Module analysis matching ModuleAnalysis structure
51
+ * @returns module analysis matching `ModuleAnalysis` structure
52
52
  */
53
53
  export declare const svelte_analyze_module: (source_file: SourceFileInfo, module_path: string, checker: ts.TypeChecker, options: ModuleSourceOptions, ctx: AnalysisContext) => ModuleAnalysis;
54
54
  /**
@@ -65,7 +65,7 @@ export declare const svelte_analyze_module: (source_file: SourceFileInfo, module
65
65
  * @param module_path - module path relative to source root (e.g., 'Alert.svelte')
66
66
  * @param checker - TypeScript type checker for type resolution
67
67
  * @param ctx - analysis context for collecting diagnostics
68
- * @returns Component declaration and optional module-level comment
68
+ * @returns component declaration and optional module-level comment
69
69
  */
70
70
  export declare const svelte_analyze_file: (source_file: SourceFileInfo, module_path: string, checker: ts.TypeChecker, ctx: AnalysisContext) => SvelteFileAnalysis;
71
71
  /**
@@ -85,8 +85,8 @@ export declare const svelte_extract_script_content: (svelte_source: string) => s
85
85
  * Requires `@module` tag to identify module comments. The tag line is stripped
86
86
  * from the output.
87
87
  *
88
- * @param script_content - The content of the `<script>` tag.
89
- * @returns The cleaned module comment text, or undefined if none found.
88
+ * @param script_content - the content of the `<script>` tag
89
+ * @returns the cleaned module comment text, or undefined if none found
90
90
  */
91
91
  export declare const svelte_extract_module_comment: (script_content: string) => string | undefined;
92
92
  //# sourceMappingURL=svelte_helpers.d.ts.map
@@ -58,7 +58,7 @@ const svelte_assert_version = () => {
58
58
  * @param checker - TypeScript type checker
59
59
  * @param options - module source options for path extraction
60
60
  * @param ctx - analysis context for collecting diagnostics
61
- * @returns Module analysis matching ModuleAnalysis structure
61
+ * @returns module analysis matching `ModuleAnalysis` structure
62
62
  */
63
63
  export const svelte_analyze_module = (source_file, module_path, checker, options, ctx) => {
64
64
  // Use the existing helper for core analysis
@@ -90,7 +90,7 @@ export const svelte_analyze_module = (source_file, module_path, checker, options
90
90
  * @param module_path - module path relative to source root (e.g., 'Alert.svelte')
91
91
  * @param checker - TypeScript type checker for type resolution
92
92
  * @param ctx - analysis context for collecting diagnostics
93
- * @returns Component declaration and optional module-level comment
93
+ * @returns component declaration and optional module-level comment
94
94
  */
95
95
  export const svelte_analyze_file = (source_file, module_path, checker, ctx) => {
96
96
  svelte_assert_version();
@@ -172,8 +172,8 @@ export const svelte_extract_script_content = (svelte_source) => {
172
172
  * Requires `@module` tag to identify module comments. The tag line is stripped
173
173
  * from the output.
174
174
  *
175
- * @param script_content - The content of the `<script>` tag.
176
- * @returns The cleaned module comment text, or undefined if none found.
175
+ * @param script_content - the content of the `<script>` tag
176
+ * @returns the cleaned module comment text, or undefined if none found
177
177
  */
178
178
  export const svelte_extract_module_comment = (script_content) => {
179
179
  // Parse the script content as TypeScript and reuse the shared extraction logic
@@ -59,7 +59,7 @@ export interface SveltePreprocessMdzOptions {
59
59
  * Creates a Svelte preprocessor that compiles static `Mdz` content at build time.
60
60
  *
61
61
  * @param options - configuration for component/element resolution and file filtering
62
- * @returns A Svelte `PreprocessorGroup` for use in `svelte.config.js`.
62
+ * @returns a Svelte `PreprocessorGroup` for use in `svelte.config.js`
63
63
  */
64
64
  export declare const svelte_preprocess_mdz: (options?: SveltePreprocessMdzOptions) => PreprocessorGroup;
65
65
  //# sourceMappingURL=svelte_preprocess_mdz.d.ts.map
@@ -25,7 +25,7 @@ const PRECOMPILED_NAME = 'MdzPrecompiled';
25
25
  * Creates a Svelte preprocessor that compiles static `Mdz` content at build time.
26
26
  *
27
27
  * @param options - configuration for component/element resolution and file filtering
28
- * @returns A Svelte `PreprocessorGroup` for use in `svelte.config.js`.
28
+ * @returns a Svelte `PreprocessorGroup` for use in `svelte.config.js`
29
29
  */
30
30
  export const svelte_preprocess_mdz = (options = {}) => {
31
31
  const { exclude = [], components = {}, elements: elements_array = [], component_imports = ['@fuzdev/fuz_ui/Mdz.svelte'], compiled_component_import = '@fuzdev/fuz_ui/MdzPrecompiled.svelte', on_error = process.env.CI === 'true' ? 'throw' : 'log', } = options;
package/dist/tome.d.ts CHANGED
@@ -10,7 +10,7 @@ export declare const Tome: z.ZodObject<{
10
10
  }, z.core.$strip>;
11
11
  export type Tome = z.infer<typeof Tome>;
12
12
  /**
13
- * @param hash - URL fragment to append, with or without the `#`.
13
+ * @param hash - URL fragment to append, with or without the `#`
14
14
  */
15
15
  export declare const to_tome_pathname: (item: Tome | string, docs_path?: string, hash?: string) => string;
16
16
  export declare const tomes_context: {
package/dist/tome.js CHANGED
@@ -13,7 +13,7 @@ export const Tome = z.object({
13
13
  related_declarations: z.array(z.string()),
14
14
  });
15
15
  /**
16
- * @param hash - URL fragment to append, with or without the `#`.
16
+ * @param hash - URL fragment to append, with or without the `#`
17
17
  */
18
18
  export const to_tome_pathname = (item, docs_path = DOCS_PATH_DEFAULT, hash) => {
19
19
  const name = typeof item === 'string' ? item : item.name;
@@ -48,7 +48,7 @@ export interface ModuleExportsAnalysis {
48
48
  *
49
49
  * @param options - configuration options for program creation
50
50
  * @param log - optional logger for info messages
51
- * @returns The program and type checker
51
+ * @returns the program and type checker
52
52
  * @throws Error if tsconfig.json is not found
53
53
  */
54
54
  export declare const ts_create_program: (options?: TsProgramOptions, log?: Logger) => TsProgram;
@@ -67,7 +67,7 @@ export declare const ts_create_program: (options?: TsProgramOptions, log?: Logge
67
67
  * @param checker - TypeScript type checker
68
68
  * @param options - module source options for path extraction
69
69
  * @param ctx - analysis context for collecting diagnostics
70
- * @returns Module metadata and re-export information
70
+ * @returns module metadata and re-export information
71
71
  */
72
72
  export declare const ts_analyze_module: (source_file_info: SourceFileInfo, ts_source_file: ts.SourceFile, module_path: string, checker: ts.TypeChecker, options: ModuleSourceOptions, ctx: AnalysisContext) => ModuleAnalysis;
73
73
  /**
@@ -87,7 +87,7 @@ export declare const ts_analyze_module: (source_file_info: SourceFileInfo, ts_so
87
87
  * @param checker - the TypeScript type checker
88
88
  * @param options - module source options for path extraction in re-exports
89
89
  * @param ctx - analysis context for collecting diagnostics
90
- * @returns Module comment, declarations, re-exports, and star exports
90
+ * @returns module comment, declarations, re-exports, and star exports
91
91
  */
92
92
  export declare const ts_analyze_module_exports: (source_file: ts.SourceFile, checker: ts.TypeChecker, options: ModuleSourceOptions, ctx: AnalysisContext) => ModuleExportsAnalysis;
93
93
  /**
@@ -101,7 +101,7 @@ export declare const ts_analyze_module_exports: (source_file: ts.SourceFile, che
101
101
  * @param source_file - the source file containing the symbol
102
102
  * @param checker - the TypeScript type checker
103
103
  * @param ctx - optional analysis context for collecting diagnostics
104
- * @returns Complete declaration metadata including docs, types, and parameters, plus nodocs flag
104
+ * @returns complete declaration metadata including docs, types, and parameters, plus nodocs flag
105
105
  */
106
106
  export declare const ts_analyze_declaration: (symbol: ts.Symbol, source_file: ts.SourceFile, checker: ts.TypeChecker, ctx: AnalysisContext) => DeclarationAnalysis;
107
107
  /**
@@ -133,7 +133,7 @@ export declare const ts_infer_declaration_kind: (symbol: ts.Symbol, node: ts.Nod
133
133
  * @param sig - the TypeScript signature to extract parameters from
134
134
  * @param checker - TypeScript type checker for type resolution
135
135
  * @param tsdoc_params - map of parameter names to TSDoc descriptions (from tsdoc.params)
136
- * @returns Array of parameter info objects
136
+ * @returns array of parameter info objects
137
137
  */
138
138
  export declare const ts_extract_signature_parameters: (sig: ts.Signature, checker: ts.TypeChecker, tsdoc_params: Map<string, string> | undefined) => Array<{
139
139
  name: string;
@@ -13,7 +13,7 @@ import { module_extract_dependencies, module_extract_path, module_is_source, } f
13
13
  *
14
14
  * @param options - configuration options for program creation
15
15
  * @param log - optional logger for info messages
16
- * @returns The program and type checker
16
+ * @returns the program and type checker
17
17
  * @throws Error if tsconfig.json is not found
18
18
  */
19
19
  export const ts_create_program = (options, log) => {
@@ -48,7 +48,7 @@ export const ts_create_program = (options, log) => {
48
48
  * @param checker - TypeScript type checker
49
49
  * @param options - module source options for path extraction
50
50
  * @param ctx - analysis context for collecting diagnostics
51
- * @returns Module metadata and re-export information
51
+ * @returns module metadata and re-export information
52
52
  */
53
53
  export const ts_analyze_module = (source_file_info, ts_source_file, module_path, checker, options, ctx) => {
54
54
  // Use the mid-level helper for core analysis
@@ -82,7 +82,7 @@ export const ts_analyze_module = (source_file_info, ts_source_file, module_path,
82
82
  * @param checker - the TypeScript type checker
83
83
  * @param options - module source options for path extraction in re-exports
84
84
  * @param ctx - analysis context for collecting diagnostics
85
- * @returns Module comment, declarations, re-exports, and star exports
85
+ * @returns module comment, declarations, re-exports, and star exports
86
86
  */
87
87
  export const ts_analyze_module_exports = (source_file, checker, options, ctx) => {
88
88
  const declarations = [];
@@ -184,7 +184,7 @@ export const ts_analyze_module_exports = (source_file, checker, options, ctx) =>
184
184
  * @param source_file - the source file containing the symbol
185
185
  * @param checker - the TypeScript type checker
186
186
  * @param ctx - optional analysis context for collecting diagnostics
187
- * @returns Complete declaration metadata including docs, types, and parameters, plus nodocs flag
187
+ * @returns complete declaration metadata including docs, types, and parameters, plus nodocs flag
188
188
  */
189
189
  export const ts_analyze_declaration = (symbol, source_file, checker, ctx) => {
190
190
  const name = symbol.name;
@@ -328,7 +328,7 @@ export const ts_infer_declaration_kind = (symbol, node) => {
328
328
  * @param sig - the TypeScript signature to extract parameters from
329
329
  * @param checker - TypeScript type checker for type resolution
330
330
  * @param tsdoc_params - map of parameter names to TSDoc descriptions (from tsdoc.params)
331
- * @returns Array of parameter info objects
331
+ * @returns array of parameter info objects
332
332
  */
333
333
  export const ts_extract_signature_parameters = (sig, checker, tsdoc_params) => {
334
334
  return sig.parameters.map((param) => {
@@ -104,7 +104,7 @@ export declare const tsdoc_apply_to_declaration: (declaration: DeclarationJson,
104
104
  * Transforms `/** ... *\/` style comments into clean text.
105
105
  *
106
106
  * @param comment_text - the raw comment text including `/**` and `*\/` markers
107
- * @returns Cleaned comment text, or undefined if empty after cleaning
107
+ * @returns cleaned comment text, or undefined if empty after cleaning
108
108
  */
109
109
  export declare const tsdoc_clean_comment: (comment_text: string) => string | undefined;
110
110
  //# sourceMappingURL=tsdoc_helpers.d.ts.map
@@ -183,7 +183,7 @@ export const tsdoc_apply_to_declaration = (declaration, tsdoc) => {
183
183
  * Transforms `/** ... *\/` style comments into clean text.
184
184
  *
185
185
  * @param comment_text - the raw comment text including `/**` and `*\/` markers
186
- * @returns Cleaned comment text, or undefined if empty after cleaning
186
+ * @returns cleaned comment text, or undefined if empty after cleaning
187
187
  */
188
188
  export const tsdoc_clean_comment = (comment_text) => {
189
189
  const text = comment_text
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fuzdev/fuz_ui",
3
- "version": "0.191.0",
3
+ "version": "0.191.1",
4
4
  "description": "Svelte UI library",
5
5
  "tagline": "friendly user zystem",
6
6
  "glyph": "๐Ÿงถ",
@@ -81,7 +81,7 @@
81
81
  "devDependencies": {
82
82
  "@changesets/changelog-git": "^0.2.1",
83
83
  "@fuzdev/fuz_code": "^0.45.1",
84
- "@fuzdev/fuz_css": "^0.56.0",
84
+ "@fuzdev/fuz_css": "^0.57.0",
85
85
  "@fuzdev/fuz_util": "^0.55.0",
86
86
  "@fuzdev/gro": "^0.197.0",
87
87
  "@jridgewell/trace-mapping": "^0.3.31",
@@ -100,10 +100,10 @@
100
100
  "jsdom": "^27.2.0",
101
101
  "magic-string": "^0.30.21",
102
102
  "prettier": "^3.7.4",
103
- "prettier-plugin-svelte": "^3.4.1",
104
- "svelte": "^5.53.12",
103
+ "prettier-plugin-svelte": "^3.5.1",
104
+ "svelte": "^5.54.0",
105
105
  "svelte-check": "^4.4.5",
106
- "svelte2tsx": "^0.7.47",
106
+ "svelte2tsx": "^0.7.52",
107
107
  "tslib": "^2.8.1",
108
108
  "typescript": "^5.9.3",
109
109
  "typescript-eslint": "^8.48.1",
@@ -227,7 +227,7 @@ export interface FormatDiagnosticOptions {
227
227
  *
228
228
  * @param diagnostic - the diagnostic to format
229
229
  * @param options - formatting options
230
- * @returns Formatted string like './file.ts:10:5: error: message'
230
+ * @returns formatted string like './file.ts:10:5: error: message'
231
231
  */
232
232
  export const format_diagnostic = (
233
233
  diagnostic: Diagnostic,
@@ -118,7 +118,7 @@ export interface ModuleAnalysis {
118
118
  * @param options - module source options for path extraction
119
119
  * @param ctx - analysis context for collecting diagnostics
120
120
  * @param log - optional logger for warnings
121
- * @returns Module metadata and re-exports, or undefined if source file not found in program
121
+ * @returns module metadata and re-exports, or undefined if source file not found in program
122
122
  */
123
123
  export const library_analyze_module = (
124
124
  source_file: SourceFileInfo,
@@ -28,7 +28,7 @@ export const url_api_declaration = (declaration_name: string): string =>
28
28
  *
29
29
  * @param homepage - package homepage URL
30
30
  * @param declaration_name - name of the declaration to link to
31
- * @returns Full URL like 'https://example.com/docs/api#declaration_name'
31
+ * @returns full URL like 'https://example.com/docs/api#declaration_name'
32
32
  */
33
33
  export const url_api_declaration_full = (homepage: string, declaration_name: string): string =>
34
34
  `${homepage}${DOCS_PATH_DEFAULT}/api#${encodeURIComponent(declaration_name)}`;
@@ -46,7 +46,7 @@ export const url_api_module = (module_path: string): string => `${DOCS_API_PATH}
46
46
  *
47
47
  * @param homepage_url - package homepage URL, or null
48
48
  * @param logo_path - optional custom logo path (defaults to 'favicon.png')
49
- * @returns Full URL to the logo, or null if no homepage
49
+ * @returns full URL to the logo, or null if no homepage
50
50
  */
51
51
  export const url_package_logo = (
52
52
  homepage_url: string | null,
@@ -64,7 +64,7 @@ export const url_package_logo = (
64
64
  *
65
65
  * @param url - full URL to convert
66
66
  * @param origin - origin to strip (defaults to current page origin)
67
- * @returns Root-relative URL starting with '/'
67
+ * @returns root-relative URL starting with '/'
68
68
  *
69
69
  * @example
70
70
  * // Assuming page.url.origin is 'https://example.com'
package/src/lib/logos.ts CHANGED
@@ -100,6 +100,12 @@ export const logo_fuz_gitops = {
100
100
  paths: logo_fuz.paths,
101
101
  } satisfies SvgData;
102
102
 
103
+ export const logo_fuz_docs = {
104
+ label: 'a friendly cyan spider facing you',
105
+ fill: '#1ec3d2',
106
+ paths: logo_fuz.paths,
107
+ } satisfies SvgData;
108
+
103
109
  export const logo_fuz_template = {
104
110
  label: 'a friendly orange pixelated spider facing you',
105
111
  fill: '#f4672f',
package/src/lib/mdz.ts CHANGED
@@ -493,9 +493,9 @@ export class MdzParser {
493
493
  * - Empty content (e.g., `__` or `~~`)
494
494
  * - Paragraph break interrupts before closing delimiter
495
495
  *
496
- * @param delimiter - The delimiter character (`_` for italic, `~` for strikethrough)
497
- * @param node_type - The node type to create ('Italic' or 'Strikethrough')
498
- * @returns Formatted node or text node if validation fails
496
+ * @param delimiter - the delimiter character (`_` for italic, `~` for strikethrough)
497
+ * @param node_type - the node type to create ('Italic' or 'Strikethrough')
498
+ * @returns formatted node or text node if validation fails
499
499
  */
500
500
  #parse_single_delimiter_formatting(
501
501
  delimiter: '_',
@@ -863,7 +863,7 @@ export class MdzParser {
863
863
  /**
864
864
  * Restore previously saved text accumulation state.
865
865
  * Used to restore parent state when exiting nested structure parsing.
866
- * @param state - State object returned from `#save_accumulation_state()`
866
+ * @param state - state object returned from `#save_accumulation_state()`
867
867
  */
868
868
  #restore_accumulation_state(state: {
869
869
  accumulated_text: string;
@@ -881,9 +881,9 @@ export class MdzParser {
881
881
  * Word boundary = not surrounded by word characters (A-Z, a-z, 0-9).
882
882
  * Used to prevent intraword emphasis for underscores and tildes.
883
883
  *
884
- * @param index - Position to check
885
- * @param check_before - Whether to check the character before this position
886
- * @param check_after - Whether to check the character after this position
884
+ * @param index - position to check
885
+ * @param check_before - whether to check the character before this position
886
+ * @param check_after - whether to check the character after this position
887
887
  */
888
888
  #is_at_word_boundary(index: number, check_before: boolean, check_after: boolean): boolean {
889
889
  if (check_before && index > 0) {
@@ -1106,9 +1106,9 @@ export class MdzParser {
1106
1106
  * - Paragraph break (double newline) is encountered (allows block elements to interrupt inline formatting)
1107
1107
  * - `end_index` boundary is reached
1108
1108
  *
1109
- * @param delimiter - The delimiter string to stop at (e.g., '**', '_', ']')
1110
- * @param end_index - Optional maximum index to parse up to (for greedy/bounded parsing)
1111
- * @returns Array of parsed nodes (may be empty if delimiter found immediately)
1109
+ * @param delimiter - the delimiter string to stop at (e.g., '**', '_', ']')
1110
+ * @param end_index - optional maximum index to parse up to (for greedy/bounded parsing)
1111
+ * @returns array of parsed nodes (may be empty if delimiter found immediately)
1112
1112
  */
1113
1113
  #parse_nodes_until(delimiter: string, end_index?: number): Array<MdzNode> {
1114
1114
  const nodes: Array<MdzNode> = [];
@@ -262,9 +262,9 @@ export const mdz_is_url = (s: string): boolean => URL_PATTERN.test(s);
262
262
  * (e.g., `'./a/../b'` โ†’ navigates up then down).
263
263
  * Clamps at root โ€” excess `..` segments stop at `/` rather than escaping.
264
264
  *
265
- * @param reference - a relative path starting with `./` or `../`.
266
- * @param base - an absolute base path (e.g., `'/docs/mdz/'`). Empty string is treated as root.
267
- * @returns An absolute resolved path (e.g., `'/docs/mdz/grammar'`).
265
+ * @param reference - a relative path starting with `./` or `../`
266
+ * @param base - An absolute base path (e.g., `'/docs/mdz/'`). Empty string is treated as root.
267
+ * @returns an absolute resolved path (e.g., `'/docs/mdz/grammar'`)
268
268
  */
269
269
  export const resolve_relative_path = (reference: string, base: string): string => {
270
270
  const segments = base.split('/');
@@ -35,12 +35,12 @@ export interface MdzToSvelteResult {
35
35
  * Each node type produces output matching what `MdzNodeView.svelte` renders at runtime.
36
36
  * Collects required imports and flags unconfigured component/element references.
37
37
  *
38
- * @param nodes - parsed mdz nodes to render.
39
- * @param components - component name to import path mapping (e.g., `{Alert: '$lib/Alert.svelte'}`).
38
+ * @param nodes - parsed mdz nodes to render
39
+ * @param components - Component name to import path mapping (e.g., `{Alert: '$lib/Alert.svelte'}`)
40
40
  * If content references a component not in this map, `has_unconfigured_tags` is set.
41
- * @param elements - allowed HTML element names (e.g., `new Set(['aside', 'details'])`).
41
+ * @param elements - Allowed HTML element names (e.g., `new Set(['aside', 'details'])`)
42
42
  * If content references an element not in this set, `has_unconfigured_tags` is set.
43
- * @param base - base path for resolving relative links (e.g., `'/docs/mdz/'`).
43
+ * @param base - Base path for resolving relative links (e.g., `'/docs/mdz/'`)
44
44
  * When provided, relative references (`./`, `../`) are resolved to absolute paths
45
45
  * and passed through `resolve()`. Trailing slash recommended.
46
46
  */
@@ -432,7 +432,7 @@ export const module_is_test = (path: string): boolean => path.endsWith('.test.ts
432
432
  *
433
433
  * @param path - full absolute path to check
434
434
  * @param options - module source options for filtering
435
- * @returns True if the path is an analyzable source file
435
+ * @returns true if the path is an analyzable source file
436
436
  *
437
437
  * @example
438
438
  * ```ts
@@ -30,7 +30,7 @@ import type {PackageJson} from '@fuzdev/fuz_util/package_json.js';
30
30
  * @param repo_url - repository URL (e.g., 'https://github.com/owner/repo')
31
31
  * @param file_path - path to the file (leading './' is stripped)
32
32
  * @param line - optional line number for deep linking
33
- * @returns Full GitHub URL to the file on the main branch
33
+ * @returns full GitHub URL to the file on the main branch
34
34
  *
35
35
  * @example
36
36
  * ```ts
@@ -55,7 +55,7 @@ export const url_github_file = (repo_url: string, file_path: string, line?: numb
55
55
  *
56
56
  * @param repo_url - repository URL (e.g., 'https://github.com/owner/repo')
57
57
  * @param repo_name - repository name to strip from the URL
58
- * @returns Organization URL, or null if repo_url doesn't end with repo_name
58
+ * @returns organization URL, or null if repo_url doesn't end with repo_name
59
59
  *
60
60
  * @example
61
61
  * ```ts
@@ -71,7 +71,7 @@ export const url_github_org = (repo_url: string, repo_name: string): string | nu
71
71
  * Extract GitHub owner/org name from repository URL.
72
72
  *
73
73
  * @param repo_url - repository URL (e.g., 'https://github.com/owner/repo')
74
- * @returns Owner name, or null if not a valid GitHub URL
74
+ * @returns owner name, or null if not a valid GitHub URL
75
75
  *
76
76
  * @example
77
77
  * ```ts
@@ -96,7 +96,7 @@ export const repo_url_github_owner = (repo_url: string): string | null => {
96
96
  * Build npm package URL.
97
97
  *
98
98
  * @param package_name - package name (can be scoped like '@org/package')
99
- * @returns Full npm package page URL
99
+ * @returns full npm package page URL
100
100
  *
101
101
  * @example
102
102
  * ```ts
@@ -116,7 +116,7 @@ export const url_npm_package = (package_name: string): string =>
116
116
  * - Its version is not the initial '0.0.1'
117
117
  *
118
118
  * @param package_json - the package.json object to check
119
- * @returns True if the package appears to be published
119
+ * @returns `true` if the package appears to be published
120
120
  */
121
121
  export const package_is_published = (package_json: PackageJson): boolean => {
122
122
  return !package_json.private && !!package_json.exports && package_json.version !== '0.0.1';
@@ -126,7 +126,7 @@ export const package_is_published = (package_json: PackageJson): boolean => {
126
126
  * Extract repository name without scope from package name.
127
127
  *
128
128
  * @param name - package name (can be scoped like '@org/package')
129
- * @returns Repository name without scope
129
+ * @returns repository name without scope
130
130
  * @throws Error if scoped package name is malformed
131
131
  *
132
132
  * @example
@@ -159,7 +159,7 @@ export const repo_name_parse = (name: string): string => {
159
159
  * Strips common prefixes ('git+') and suffixes ('.git', '/').
160
160
  *
161
161
  * @param repository - the repository field from package.json
162
- * @returns Clean repository URL, or null if not provided
162
+ * @returns clean repository URL, or null if not provided
163
163
  *
164
164
  * @example
165
165
  * ```ts
@@ -191,7 +191,7 @@ export const repo_url_parse = (repository: PackageJson['repository']): string |
191
191
  *
192
192
  * @param homepage_url - package homepage URL
193
193
  * @param filename - filename in .well-known directory
194
- * @returns Full URL to the .well-known file
194
+ * @returns full URL to the .well-known file
195
195
  *
196
196
  * @example
197
197
  * ```ts
@@ -21,7 +21,7 @@ export const save_to_storage = (key: string, value: any, is_json = false): void
21
21
  * @param key - the localStorage key
22
22
  * @param is_json - whether to parse the value as JSON
23
23
  * @param parse_fn - optional custom parsing function to transform the value
24
- * @returns The parsed value or null if not found or parsing fails
24
+ * @returns the parsed value or null if not found or parsing fails
25
25
  */
26
26
  export const load_from_storage = <T>(
27
27
  key: string,
@@ -81,7 +81,7 @@ export interface SvelteFileAnalysis {
81
81
  * @param checker - TypeScript type checker
82
82
  * @param options - module source options for path extraction
83
83
  * @param ctx - analysis context for collecting diagnostics
84
- * @returns Module analysis matching ModuleAnalysis structure
84
+ * @returns module analysis matching `ModuleAnalysis` structure
85
85
  */
86
86
  export const svelte_analyze_module = (
87
87
  source_file: SourceFileInfo,
@@ -122,7 +122,7 @@ export const svelte_analyze_module = (
122
122
  * @param module_path - module path relative to source root (e.g., 'Alert.svelte')
123
123
  * @param checker - TypeScript type checker for type resolution
124
124
  * @param ctx - analysis context for collecting diagnostics
125
- * @returns Component declaration and optional module-level comment
125
+ * @returns component declaration and optional module-level comment
126
126
  */
127
127
  export const svelte_analyze_file = (
128
128
  source_file: SourceFileInfo,
@@ -259,8 +259,8 @@ export const svelte_extract_script_content = (svelte_source: string): string | u
259
259
  * Requires `@module` tag to identify module comments. The tag line is stripped
260
260
  * from the output.
261
261
  *
262
- * @param script_content - The content of the `<script>` tag.
263
- * @returns The cleaned module comment text, or undefined if none found.
262
+ * @param script_content - the content of the `<script>` tag
263
+ * @returns the cleaned module comment text, or undefined if none found
264
264
  */
265
265
  export const svelte_extract_module_comment = (script_content: string): string | undefined => {
266
266
  // Parse the script content as TypeScript and reuse the shared extraction logic
@@ -99,7 +99,7 @@ const PRECOMPILED_NAME = 'MdzPrecompiled';
99
99
  * Creates a Svelte preprocessor that compiles static `Mdz` content at build time.
100
100
  *
101
101
  * @param options - configuration for component/element resolution and file filtering
102
- * @returns A Svelte `PreprocessorGroup` for use in `svelte.config.js`.
102
+ * @returns a Svelte `PreprocessorGroup` for use in `svelte.config.js`
103
103
  */
104
104
  export const svelte_preprocess_mdz = (
105
105
  options: SveltePreprocessMdzOptions = {},
package/src/lib/tome.ts CHANGED
@@ -18,7 +18,7 @@ export const Tome = z.object({
18
18
  export type Tome = z.infer<typeof Tome>;
19
19
 
20
20
  /**
21
- * @param hash - URL fragment to append, with or without the `#`.
21
+ * @param hash - URL fragment to append, with or without the `#`
22
22
  */
23
23
  export const to_tome_pathname = (
24
24
  item: Tome | string,
@@ -65,7 +65,7 @@ export interface ModuleExportsAnalysis {
65
65
  *
66
66
  * @param options - configuration options for program creation
67
67
  * @param log - optional logger for info messages
68
- * @returns The program and type checker
68
+ * @returns the program and type checker
69
69
  * @throws Error if tsconfig.json is not found
70
70
  */
71
71
  export const ts_create_program = (options?: TsProgramOptions, log?: Logger): TsProgram => {
@@ -106,7 +106,7 @@ export const ts_create_program = (options?: TsProgramOptions, log?: Logger): TsP
106
106
  * @param checker - TypeScript type checker
107
107
  * @param options - module source options for path extraction
108
108
  * @param ctx - analysis context for collecting diagnostics
109
- * @returns Module metadata and re-export information
109
+ * @returns module metadata and re-export information
110
110
  */
111
111
  export const ts_analyze_module = (
112
112
  source_file_info: SourceFileInfo,
@@ -155,7 +155,7 @@ export const ts_analyze_module = (
155
155
  * @param checker - the TypeScript type checker
156
156
  * @param options - module source options for path extraction in re-exports
157
157
  * @param ctx - analysis context for collecting diagnostics
158
- * @returns Module comment, declarations, re-exports, and star exports
158
+ * @returns module comment, declarations, re-exports, and star exports
159
159
  */
160
160
  export const ts_analyze_module_exports = (
161
161
  source_file: ts.SourceFile,
@@ -279,7 +279,7 @@ export const ts_analyze_module_exports = (
279
279
  * @param source_file - the source file containing the symbol
280
280
  * @param checker - the TypeScript type checker
281
281
  * @param ctx - optional analysis context for collecting diagnostics
282
- * @returns Complete declaration metadata including docs, types, and parameters, plus nodocs flag
282
+ * @returns complete declaration metadata including docs, types, and parameters, plus nodocs flag
283
283
  */
284
284
  export const ts_analyze_declaration = (
285
285
  symbol: ts.Symbol,
@@ -434,7 +434,7 @@ export const ts_infer_declaration_kind = (symbol: ts.Symbol, node: ts.Node): Dec
434
434
  * @param sig - the TypeScript signature to extract parameters from
435
435
  * @param checker - TypeScript type checker for type resolution
436
436
  * @param tsdoc_params - map of parameter names to TSDoc descriptions (from tsdoc.params)
437
- * @returns Array of parameter info objects
437
+ * @returns array of parameter info objects
438
438
  */
439
439
  export const ts_extract_signature_parameters = (
440
440
  sig: ts.Signature,
@@ -220,7 +220,7 @@ export const tsdoc_apply_to_declaration = (
220
220
  * Transforms `/** ... *\/` style comments into clean text.
221
221
  *
222
222
  * @param comment_text - the raw comment text including `/**` and `*\/` markers
223
- * @returns Cleaned comment text, or undefined if empty after cleaning
223
+ * @returns cleaned comment text, or undefined if empty after cleaning
224
224
  */
225
225
  export const tsdoc_clean_comment = (comment_text: string): string | undefined => {
226
226
  const text = comment_text