@fuzdev/fuz_ui 0.213.0 → 0.215.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/LICENSE CHANGED
@@ -1,21 +1,14 @@
1
- MIT License
1
+ BSD Zero Clause License
2
2
 
3
3
  Copyright (c) fuz.dev
4
4
 
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
5
+ Permission to use, copy, modify, and/or distribute this software for
6
+ any purpose with or without fee is hereby granted.
11
7
 
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
8
+ THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
9
+ WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
10
+ OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
11
+ FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
12
+ DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
13
+ AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
14
+ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
package/README.md CHANGED
@@ -83,4 +83,4 @@ If you're not allergic it's handy to install globally.
83
83
 
84
84
  ## License 🐦
85
85
 
86
- [MIT](LICENSE)
86
+ [0BSD](LICENSE)
package/dist/Card.svelte CHANGED
@@ -103,7 +103,7 @@
103
103
  align-items: center;
104
104
  padding: var(--space_lg);
105
105
  width: var(--card_width);
106
- background-color: var(--fg_10);
106
+ background-color: var(--ink_10);
107
107
  border-radius: var(--border_radius, var(--border_radius_md));
108
108
  text-decoration: none;
109
109
  text-align: start;
@@ -55,6 +55,7 @@ including parameters, props, members, overloads, external types, and more.
55
55
  examples?: Array<string>;
56
56
  seeAlso?: Array<string>;
57
57
  throws?: Array<{ type?: string; description: string }>;
58
+ mutates?: Record<string, string>;
58
59
  }
59
60
  </script>
60
61
 
@@ -97,7 +98,7 @@ including parameters, props, members, overloads, external types, and more.
97
98
  </div>
98
99
  {/snippet}
99
100
 
100
- <!-- Compact prose metadata for props and members (deprecated, internal, since, examples, see also, throws). -->
101
+ <!-- Compact prose metadata for props and members (deprecated, internal, since, examples, see also, throws, mutates). -->
101
102
  {#snippet doc_extras(item: DocExtras)}
102
103
  <!-- eslint-disable-next-line @typescript-eslint/no-deprecated -->
103
104
  {#if item.deprecatedMessage !== undefined}
@@ -143,6 +144,16 @@ including parameters, props, members, overloads, external types, and more.
143
144
  {/each}
144
145
  </ul>
145
146
  {/if}
147
+ {#if item.mutates && Object.keys(item.mutates).length}
148
+ <p><strong>mutates</strong></p>
149
+ <ul>
150
+ {#each Object.entries(item.mutates) as [target, description] (target)}
151
+ <li>
152
+ <code>{target}</code>{#if description}{' '}— {description}{/if}
153
+ </li>
154
+ {/each}
155
+ </ul>
156
+ {/if}
146
157
  {/snippet}
147
158
 
148
159
  <!-- A comma-separated inline list of type links (extends, implements, external types are rarely more than one). -->
@@ -337,7 +348,8 @@ including parameters, props, members, overloads, external types, and more.
337
348
  {/if}
338
349
 
339
350
  <!-- external types whose contributions are filtered out of (or, on
340
- interfaces/classes, never enumerated in) props/members -->
351
+ interfaces/classes, never enumerated in) props/members; a component prop
352
+ its `$props()` destructuring names is documented anyway -->
341
353
  {#if external_types_not_inherited}
342
354
  <section>
343
355
  <h4>external types</h4>
@@ -435,7 +447,9 @@ including parameters, props, members, overloads, external types, and more.
435
447
  <h4>mutates</h4>
436
448
  <ul>
437
449
  {#each Object.entries(declaration.mutates) as [param, description] (param)}
438
- <li><code>{param}</code> — {description}</li>
450
+ <li>
451
+ <code>{param}</code>{#if description}{' '}— {description}{/if}
452
+ </li>
439
453
  {/each}
440
454
  </ul>
441
455
  </section>
@@ -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;AAkB1D,KAAK,gBAAgB,GAAI;IAAE,WAAW,EAAE,WAAW,CAAA;CAAE,CAAC;AAigBvD;;;;;;;;GAQG;AACH,QAAA,MAAM,iBAAiB,sDAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"DeclarationDetail.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/DeclarationDetail.svelte"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAmB1D,KAAK,gBAAgB,GAAI;IAAE,WAAW,EAAE,WAAW,CAAA;CAAE,CAAC;AA6gBvD;;;;;;;;GAQG;AACH,QAAA,MAAM,iBAAiB,sDAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
package/dist/Docs.svelte CHANGED
@@ -5,7 +5,7 @@
5
5
  import { page } from '$app/state';
6
6
 
7
7
  import Breadcrumb from './Breadcrumb.svelte';
8
- import { Tome, tomes_context } from './tome.js';
8
+ import { type Tome, tomes_context } from './tome.js';
9
9
  import DocsPrimaryNav from './DocsPrimaryNav.svelte';
10
10
  import DocsSecondaryNav from './DocsSecondaryNav.svelte';
11
11
  import DocsTertiaryNav from './DocsTertiaryNav.svelte';
@@ -1,5 +1,5 @@
1
1
  import type { Snippet } from 'svelte';
2
- import { Tome } from './tome.js';
2
+ import { type Tome } from './tome.js';
3
3
  type $$ComponentProps = {
4
4
  tomes: Array<Tome>;
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Docs.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/Docs.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAMtC,OAAO,EAAE,IAAI,EAAiB,MAAM,WAAW,CAAC;AAW/C,KAAK,gBAAgB,GAAI;IACxB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gGAAgG;IAChG,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AAsHH,QAAA,MAAM,IAAI,sDAAwC,CAAC;AACnD,KAAK,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;AACpC,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Docs.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/Docs.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAMtC,OAAO,EAAE,KAAK,IAAI,EAAiB,MAAM,WAAW,CAAC;AAWpD,KAAK,gBAAgB,GAAI;IACxB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gGAAgG;IAChG,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AAsHH,QAAA,MAAM,IAAI,sDAAwC,CAAC;AACnD,KAAK,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;AACpC,eAAe,IAAI,CAAC"}
@@ -33,12 +33,12 @@
33
33
 
34
34
  /* TODO should be fixed upstream in fuz_css */
35
35
  .docs-list :global(a.highlighted) {
36
- background-color: var(--fg_10);
36
+ background-color: var(--ink_10);
37
37
  }
38
38
  .docs-list :global(a:hover) {
39
- background-color: var(--fg_10);
39
+ background-color: var(--ink_10);
40
40
  }
41
41
  .docs-list :global(a:is(:active, .selected)) {
42
- background-color: var(--fg_20);
42
+ background-color: var(--ink_20);
43
43
  }
44
44
  </style>
@@ -3,7 +3,7 @@
3
3
  import type { SvelteHTMLElements } from 'svelte/elements';
4
4
 
5
5
  import DocsMenu from './DocsMenu.svelte';
6
- import { Tome } from './tome.js';
6
+ import type { Tome } from './tome.js';
7
7
 
8
8
  const {
9
9
  tomes,
@@ -1,6 +1,6 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  import type { SvelteHTMLElements } from 'svelte/elements';
3
- import { Tome } from './tome.js';
3
+ import type { Tome } from './tome.js';
4
4
  type $$ComponentProps = SvelteHTMLElements['aside'] & {
5
5
  tomes: Array<Tome>;
6
6
  /** Rendered above the menu, e.g. links to the site's other sections. */
@@ -1 +1 @@
1
- {"version":3,"file":"DocsSecondaryNav.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/DocsSecondaryNav.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEhC,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG;IACtD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AA+BH,QAAA,MAAM,gBAAgB,sDAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"DocsSecondaryNav.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/DocsSecondaryNav.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAErC,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG;IACtD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AA+BH,QAAA,MAAM,gBAAgB,sDAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -3,7 +3,7 @@
3
3
  import type { SvelteHTMLElements } from 'svelte/elements';
4
4
 
5
5
  import DocsPageLinks from './DocsPageLinks.svelte';
6
- import { tome_to_pathname, Tome } from './tome.js';
6
+ import { tome_to_pathname, type Tome } from './tome.js';
7
7
  import { docs_links_context } from './docs_helpers.svelte.js';
8
8
  import { library_context } from './library.svelte.js';
9
9
  import TomeLink from './TomeLink.svelte';
@@ -1,5 +1,5 @@
1
1
  import type { SvelteHTMLElements } from 'svelte/elements';
2
- import { Tome } from './tome.js';
2
+ import { type Tome } from './tome.js';
3
3
  type $$ComponentProps = SvelteHTMLElements['aside'] & {
4
4
  tomes: Array<Tome>;
5
5
  tomes_by_slug: Map<string, Tome>;
@@ -1 +1 @@
1
- {"version":3,"file":"DocsTertiaryNav.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/DocsTertiaryNav.svelte"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EAAoB,IAAI,EAAE,MAAM,WAAW,CAAC;AAOlD,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG;IACtD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAyFH,QAAA,MAAM,eAAe,sDAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"DocsTertiaryNav.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/DocsTertiaryNav.svelte"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EAAoB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAOvD,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG;IACtD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAyFH,QAAA,MAAM,eAAe,sDAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
package/dist/logos.d.ts CHANGED
@@ -90,6 +90,13 @@ export declare const logo_fuz_util: {
90
90
  d: string;
91
91
  }[];
92
92
  };
93
+ export declare const logo_fuz_host: {
94
+ label: string;
95
+ fill: string;
96
+ paths: {
97
+ d: string;
98
+ }[];
99
+ };
93
100
  export declare const logo_tsv: {
94
101
  label: string;
95
102
  fill: string;
@@ -1 +1 @@
1
- {"version":3,"file":"logos.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/logos.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,QAAQ;;;;;;CAgCF,CAAC;AAEpB,eAAO,MAAM,QAAQ;;;;;;CAQF,CAAC;AAEpB,eAAO,MAAM,YAAY;;;;;;CAIN,CAAC;AAEpB,eAAO,MAAM,YAAY;;;;;;;CAKN,CAAC;AAEpB,eAAO,MAAM,WAAW;;;;;;CAIL,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAIP,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAIP,CAAC;AAEpB,eAAO,MAAM,iBAAiB;;;;;;CAIX,CAAC;AAEpB,eAAO,MAAM,cAAc;;;;;;CAIR,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAIP,CAAC;AAEpB,eAAO,MAAM,mBAAmB;;;;;;CAQb,CAAC;AAEpB,eAAO,MAAM,iBAAiB;;;;;;CAQX,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAwBP,CAAC;AAEpB,eAAO,MAAM,QAAQ;;;;;;CAQF,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":"AAuBA,eAAO,MAAM,QAAQ;;;;;;CAgCF,CAAC;AAEpB,eAAO,MAAM,QAAQ;;;;;;CAQF,CAAC;AAEpB,eAAO,MAAM,YAAY;;;;;;CAIN,CAAC;AAEpB,eAAO,MAAM,YAAY;;;;;;;CAKN,CAAC;AAEpB,eAAO,MAAM,WAAW;;;;;;CAIL,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAIP,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAIP,CAAC;AAEpB,eAAO,MAAM,iBAAiB;;;;;;CAIX,CAAC;AAEpB,eAAO,MAAM,cAAc;;;;;;CAIR,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAIP,CAAC;AAEpB,eAAO,MAAM,mBAAmB;;;;;;CAQb,CAAC;AAEpB,eAAO,MAAM,iBAAiB;;;;;;CAQX,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAwBP,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAQP,CAAC;AAEpB,eAAO,MAAM,QAAQ;;;;;;CAQF,CAAC;AAEpB,eAAO,MAAM,WAAW;;;;;;;;;CAWL,CAAC;AAEpB,eAAO,MAAM,QAAQ;;;;;;CAQF,CAAC"}
package/dist/logos.js CHANGED
@@ -143,6 +143,15 @@ export const logo_fuz_util = {
143
143
  }
144
144
  ]
145
145
  };
146
+ export const logo_fuz_host = {
147
+ label: 'a brown nautilus shell, spiraling inward',
148
+ fill: '#84522a',
149
+ paths: [
150
+ {
151
+ d: 'M53.74,61.53 53.57,62.00 53.27,62.41 52.85,62.72 52.37,62.91 51.84,62.96 51.32,62.88 50.81,62.66 50.39,62.33 50.06,61.93 49.82,61.44 49.70,60.94 49.68,60.40 49.78,59.86 49.97,59.36 50.27,58.90 50.66,58.50 51.09,58.19 51.59,57.95 52.14,57.81 52.67,57.76 53.21,57.80 53.75,57.93 54.28,58.16 54.73,58.44 55.15,58.80 55.51,59.22 55.82,59.70 56.05,60.24 56.21,60.81 56.28,61.36 56.27,61.98 56.17,62.55 55.82,63.54 55.22,64.44 54.39,65.21 53.43,65.75 52.35,66.07 51.18,66.15 50.06,65.98 48.97,65.57 48.02,64.98 47.24,64.26 46.54,63.31 46.05,62.30 45.73,61.18 45.62,60.00 45.73,58.79 46.02,57.68 46.35,56.89 46.72,56.23 47.17,55.60 47.68,55.01 48.27,54.47 48.92,53.98 50.27,53.25 51.78,52.79 53.40,52.62 54.30,52.66 55.07,52.77 56.61,53.20 57.48,53.59 58.20,53.99 59.54,55.01 60.71,56.29 61.67,57.79 62.05,58.62 62.35,59.49 62.72,61.17 62.80,62.13 62.80,63.10 62.57,64.90 62.31,65.88 61.96,66.84 61.09,68.54 59.92,70.12 59.17,70.91 58.48,71.52 57.58,72.19 56.79,72.69 55.06,73.52 53.95,73.90 52.99,74.15 50.99,74.42 49.76,74.44 48.52,74.35 47.27,74.14 46.03,73.82 44.80,73.39 43.61,72.84 42.45,72.17 41.34,71.39 40.29,70.51 39.31,69.52 38.41,68.44 37.73,67.46 37.00,66.21 36.48,65.11 35.95,63.72 35.60,62.52 35.26,60.78 35.11,58.98 35.14,57.15 35.32,55.57 35.72,53.72 36.21,52.16 36.86,50.62 37.65,49.13 38.58,47.70 39.65,46.34 40.86,45.06 42.19,43.88 43.64,42.80 45.21,41.85 46.87,41.03 48.63,40.36 50.78,39.76 52.68,39.43 54.97,39.26 56.97,39.30 59.31,39.57 61.32,40.01 63.31,40.64 65.26,41.45 67.15,42.44 68.98,43.62 70.71,44.97 72.34,46.49 73.85,48.18 75.22,50.02 76.43,52.00 77.32,53.75 78.21,55.96 78.92,58.27 79.42,60.66 79.71,63.13 79.78,65.64 79.63,68.18 79.24,70.74 78.61,73.28 77.75,75.80 76.65,78.26 75.32,80.64 74.04,82.55 72.29,84.74 70.68,86.46 68.54,88.38 66.62,89.85 64.14,91.43 61.49,92.81 58.70,93.96 55.77,94.86 52.73,95.51 49.61,95.90 46.42,96.00 43.19,95.81 39.94,95.33 36.71,94.55 33.52,93.47 30.91,92.34 27.86,90.71 25.41,89.13 22.59,86.97 20.38,84.97 18.70,83.23 17.50,81.85 16.36,80.40 15.28,78.90 14.25,77.34 13.30,75.73 12.40,74.06 11.58,72.34 10.60,69.98 9.95,68.16 9.38,66.30 8.89,64.40 8.49,62.47 8.16,60.51 7.93,58.52 7.78,56.51 7.72,54.48 7.76,52.44 7.88,50.39 8.10,48.33 8.41,46.27 8.82,44.21 9.71,40.80 10.37,38.76 11.13,36.75 11.98,34.76 12.93,32.79 13.97,30.86 15.11,28.96 17.20,25.89 19.06,23.53 20.55,21.81 22.13,20.16 23.79,18.57 25.54,17.04 27.36,15.58 29.26,14.20 31.24,12.89 33.98,11.28 36.11,10.17 38.31,9.15 40.56,8.22 42.87,7.39 45.23,6.66 47.64,6.03 50.09,5.48 53.41,4.87 55.95,4.51 58.53,4.24 61.14,4.07 63.79,4.00 66.46,4.04 69.15,4.21 71.86,4.49 74.58,4.91 77.29,5.46 80.00,6.15 81.79,6.69 84.46,7.62 87.09,8.70 89.68,9.94 91.37,10.85 91.75,11.23 92.03,11.68 92.20,12.20 92.28,12.77 92.25,13.41 91.93,14.82 91.65,15.59 90.87,17.25 89.82,19.03 88.55,20.90 87.10,22.83 84.68,25.74 82.95,27.65 80.30,30.39 78.55,32.08 76.05,34.32 73.83,36.12 72.01,37.35 71.09,37.81 70.46,37.93 67.90,36.68 65.47,35.74 63.00,35.04 60.10,34.53 58.03,34.35 55.58,34.34 53.57,34.49 51.21,34.85 48.92,35.40 46.72,36.14 44.63,37.06 42.33,38.34 40.51,39.60 38.83,41.01 37.30,42.54 35.72,44.46 34.74,45.90 33.71,47.71 32.87,49.57 32.20,51.47 31.71,53.40 31.40,55.34 31.27,57.28 31.31,59.19 31.52,61.06 31.89,62.89 32.41,64.64 33.21,66.60 34.03,68.18 34.99,69.65 36.05,71.02 37.43,72.46 38.48,73.39 39.59,74.23 40.74,74.97 42.18,75.74 43.41,76.27 44.91,76.78 46.18,77.10 47.70,77.34 48.97,77.45 50.48,77.44 51.97,77.31 53.41,77.04 54.81,76.66 56.15,76.15 57.42,75.54 58.61,74.82 59.54,74.16 60.41,73.43 61.21,72.65 62.09,71.65 62.73,70.78 63.41,69.67 63.90,68.73 64.38,67.56 64.69,66.57 64.97,65.37 65.13,64.17 65.19,62.97 65.14,61.79 64.98,60.64 64.73,59.51 64.38,58.43 63.95,57.40 63.43,56.43 62.83,55.52 62.16,54.68 61.43,53.91 60.65,53.22 59.82,52.61 58.95,52.08 58.05,51.64 57.12,51.29 56.18,51.03 55.08,50.83 54.13,50.75 53.04,50.77 51.98,50.90 50.95,51.14 49.30,51.77 48.54,52.19 47.71,52.75 46.48,53.88 45.95,54.51 45.42,55.28 45.04,55.98 44.68,56.82 44.44,57.56 44.25,58.43 44.16,59.30 44.16,60.16 44.25,61.00 44.42,61.82 44.80,62.92 45.39,64.03 46.13,65.00 47.00,65.81 47.97,66.46 49.10,66.96 50.27,67.24 51.44,67.31 52.75,67.13 53.96,66.70 55.02,66.05 55.95,65.15 56.63,64.11 57.06,62.90 57.20,61.67 57.04,60.49 56.84,59.87 56.52,59.23 56.17,58.71 55.71,58.21 55.19,57.79 54.63,57.47 54.04,57.23 53.43,57.09 52.83,57.04 52.18,57.09 51.56,57.24 50.99,57.48 50.48,57.81 50.00,58.24 49.62,58.74 49.34,59.28 49.17,59.85 49.11,60.42 49.14,60.98 49.28,61.51 49.50,61.99 49.82,62.45 50.21,62.82 50.65,63.11 51.13,63.29 51.61,63.38 52.13,63.36 52.61,63.25 53.05,63.04 53.44,62.73 53.74,62.36 53.95,61.92 54.06,61.40 54.02,60.90 53.84,60.42 53.56,60.03 53.17,59.74 52.72,59.58 52.24,59.57 51.81,59.71 51.52,59.91 51.21,60.25 51.01,60.59 50.90,60.96 50.88,61.32 50.95,61.67 51.10,62.00 51.32,62.26 51.63,62.49 52.00,62.63 52.38,62.66 52.75,62.60 53.10,62.44 53.40,62.20 53.62,61.88 53.74,61.53Z'
152
+ }
153
+ ]
154
+ };
146
155
  export const logo_tsv = {
147
156
  label: 'a pixelated orange quill drawing a precise line',
148
157
  fill: '#f4672f',
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAkBxC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACpB;AAID,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,WAAW,CAa5C,CAAC"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAmBxC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACpB;AAID,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,WAAW,CAc5C,CAAC"}
package/dist/projects.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  // TODO when fuz.dev is ready
3
3
  // logo_fuz,
4
- logo_fuz_ui, logo_fuz_code, logo_fuz_blog, logo_fuz_mastodon, logo_fuz_repos, logo_fuz_template, logo_fuz_css, logo_fuz_util, logo_gro, logo_svelte_docinfo, logo_fuz_app, logo_tsv } from './logos.js';
4
+ logo_fuz_ui, logo_fuz_code, logo_fuz_blog, logo_fuz_mastodon, logo_fuz_repos, logo_fuz_template, logo_fuz_css, logo_fuz_util, logo_fuz_host, logo_gro, logo_svelte_docinfo, logo_fuz_app, logo_tsv } from './logos.js';
5
5
  // TODO ideally this wouldn't duplicate metadata like descriptions, but adding fuz_repos to this repo is heavy
6
6
  // prettier-ignore
7
7
  export const project_items = [
@@ -15,6 +15,7 @@ export const project_items = [
15
15
  { name: 'fuz_repos', url: 'https://repos.fuz.dev/', logo: logo_fuz_repos, description: 'a tool for managing many repos', glyph: '🪄', color_class: 'color_a_50' },
16
16
  { name: 'svelte-docinfo', url: 'https://svelte-docinfo.fuz.dev/', logo: logo_svelte_docinfo, description: 'static analysis for TypeScript and Svelte', glyph: '📜', color_class: 'color_i_50' },
17
17
  { name: 'fuz_util', url: 'https://util.fuz.dev/', logo: logo_fuz_util, description: 'utility belt for JS', glyph: '🦕', color_class: 'color_f_50' },
18
+ { name: 'fuz_host', url: 'https://host.fuz.dev/', logo: logo_fuz_host, description: 'host APIs for JS: filesystem, processes, and the OS, one import across runtimes', glyph: '🐚', color_class: 'color_f_50' },
18
19
  { name: 'gro', url: 'https://github.com/fuzdev/gro', logo: logo_gro, description: 'task runner and toolkit extending SvelteKit', glyph: '🌰', color_class: 'color_f_50' },
19
20
  { name: 'tsv', url: 'https://tsv.fuz.dev/', logo: logo_tsv, description: 'precise language tools for TypeScript/JS, CSS, and Svelte in Rust', glyph: '🪶', color_class: 'color_h_50' },
20
21
  ];
package/dist/tome.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import type { Component } from 'svelte';
2
- import { z } from 'zod';
3
2
  export declare const tomes_context: {
4
3
  get: (error_message?: string) => () => Map<string, Tome>;
5
4
  get_maybe: () => (() => Map<string, Tome>) | undefined;
@@ -10,16 +9,29 @@ export declare const tome_context: {
10
9
  get_maybe: () => (() => Tome) | undefined;
11
10
  set: (value: () => Tome) => () => Tome;
12
11
  };
13
- export declare const Tome: z.ZodObject<{
14
- slug: z.ZodString;
15
- title: z.ZodOptional<z.ZodString>;
16
- category: z.ZodString;
17
- Component: z.ZodCustom<Component<any, any, string>, Component<any, any, string>>;
18
- related_tomes: z.ZodArray<z.ZodString>;
19
- related_modules: z.ZodArray<z.ZodString>;
20
- related_declarations: z.ZodArray<z.ZodString>;
21
- }, z.core.$strip>;
22
- export type Tome = z.infer<typeof Tome>;
12
+ /**
13
+ * A documentation page registered with `Docs` and looked up through `tomes_context`.
14
+ */
15
+ export interface Tome {
16
+ /**
17
+ * Stable identifier and URL path segment — must be a URL-safe slug
18
+ * (used directly as the route segment, the lookup key, and in
19
+ * `related_tomes` cross-references). Set `title` for the display label.
20
+ */
21
+ slug: string;
22
+ /**
23
+ * Human-readable display label shown in menus, headings, and links.
24
+ * Falls back to `slug` when omitted, so set `title` to give multi-word or
25
+ * specially cased tomes a readable label (e.g. `slug: 'vite-plugin'` →
26
+ * `title: 'vite plugin'`).
27
+ */
28
+ title?: string;
29
+ category: string;
30
+ Component: Component<any, any>;
31
+ related_tomes: Array<string>;
32
+ related_modules: Array<string>;
33
+ related_declarations: Array<string>;
34
+ }
23
35
  /**
24
36
  * @param hash - URL fragment to append, with or without the `#`
25
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tome.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/tome.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,aAAa;2CAAwB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;4BAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;uBAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,WAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;CAAG,CAAC;AAEvE,eAAO,MAAM,YAAY;2CAAwB,IAAI;4BAAJ,IAAI;uBAAJ,IAAI,WAAJ,IAAI;CAAG,CAAC;AAEzD,eAAO,MAAM,IAAI;;;;;;;;iBAoBf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC5B,MAAM,IAAI,GAAG,MAAM,EACnB,kBAA6B,EAC7B,OAAO,MAAM,KACX,MAIF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,IAAI,KAAG,MAAiC,CAAC;AAE7E,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,IAK/C,CAAC"}
1
+ {"version":3,"file":"tome.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/tome.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAMxC,eAAO,MAAM,aAAa;2CAAwB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;4BAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;uBAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,WAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;CAAG,CAAC;AAEvE,eAAO,MAAM,YAAY;2CAAwB,IAAI;4BAAJ,IAAI;uBAAJ,IAAI,WAAJ,IAAI;CAAG,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,IAAI;IACpB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC5B,MAAM,IAAI,GAAG,MAAM,EACnB,kBAA6B,EAC7B,OAAO,MAAM,KACX,MAIF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,IAAI,KAAG,MAAiC,CAAC;AAE7E,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,IAK/C,CAAC"}
package/dist/tome.js CHANGED
@@ -1,31 +1,9 @@
1
1
  import { resolve } from '$app/paths';
2
- import { z } from 'zod';
3
2
  import { ensure_start } from '@fuzdev/fuz_util/string.ts';
4
3
  import { create_context } from './context_helpers.js';
5
4
  import { DOCS_PATH_DEFAULT } from './docs_helpers.svelte.js';
6
5
  export const tomes_context = create_context();
7
6
  export const tome_context = create_context();
8
- export const Tome = z.object({
9
- /**
10
- * Stable identifier and URL path segment — must be a URL-safe slug
11
- * (used directly as the route segment, the lookup key, and in
12
- * `related_tomes` cross-references). Set `title` for the display label.
13
- */
14
- slug: z.string(),
15
- /**
16
- * Human-readable display label shown in menus, headings, and links.
17
- * Falls back to `slug` when omitted, so set `title` to give multi-word or
18
- * specially cased tomes a readable label (e.g. `slug: 'vite-plugin'` →
19
- * `title: 'vite plugin'`).
20
- */
21
- title: z.string().optional(),
22
- // TODO maybe now this makes sense with mdz? summary: z.string(),
23
- category: z.string(),
24
- Component: z.custom(),
25
- related_tomes: z.array(z.string()),
26
- related_modules: z.array(z.string()),
27
- related_declarations: z.array(z.string())
28
- });
29
7
  /**
30
8
  * @param hash - URL fragment to append, with or without the `#`
31
9
  */
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@fuzdev/fuz_ui",
3
- "version": "0.213.0",
3
+ "version": "0.215.0",
4
4
  "description": "Svelte UI library",
5
5
  "tagline": "friendly user zystem",
6
6
  "glyph": "🧶",
7
7
  "logo": "logo.svg",
8
8
  "logo_alt": "a friendly brown spider facing you",
9
- "license": "MIT",
9
+ "license": "0BSD",
10
10
  "homepage": "https://ui.fuz.dev/",
11
11
  "author": {
12
12
  "name": "Ryan Atkinson",
@@ -38,14 +38,13 @@
38
38
  },
39
39
  "peerDependencies": {
40
40
  "@fuzdev/fuz_code": ">=0.46.0",
41
- "@fuzdev/fuz_css": ">=0.65.0",
41
+ "@fuzdev/fuz_css": ">=0.67.0",
42
42
  "@fuzdev/fuz_util": ">=0.72.0",
43
43
  "@fuzdev/gro": ">=0.214.0",
44
44
  "@fuzdev/mdz": ">=0.2.0",
45
45
  "@sveltejs/kit": "^3",
46
46
  "esm-env": "^1",
47
- "svelte": "^5",
48
- "zod": "^4.1.12"
47
+ "svelte": "^5"
49
48
  },
50
49
  "peerDependenciesMeta": {
51
50
  "@fuzdev/fuz_code": {
@@ -59,20 +58,18 @@
59
58
  },
60
59
  "esm-env": {
61
60
  "optional": true
62
- },
63
- "zod": {
64
- "optional": true
65
61
  }
66
62
  },
67
63
  "devDependencies": {
68
64
  "@changesets/changelog-git": "^0.2.1",
69
65
  "@fuzdev/blake3-wasm": "^0.2.0",
70
- "@fuzdev/fuz_code": "^0.50.0",
71
- "@fuzdev/fuz_css": "^0.66.1",
72
- "@fuzdev/fuz_util": "^0.72.0",
73
- "@fuzdev/gro": "^0.214.0",
74
- "@fuzdev/mdz": "^0.4.0",
75
- "@ryanatkn/eslint-config": "^0.12.3",
66
+ "@fuzdev/fuz_code": "^0.53.0",
67
+ "@fuzdev/fuz_css": "^0.67.0",
68
+ "@fuzdev/fuz_schema": "^0.2.2",
69
+ "@fuzdev/fuz_util": "^0.75.0",
70
+ "@fuzdev/gro": "^0.218.0",
71
+ "@fuzdev/mdz": "^0.5.0",
72
+ "@ryanatkn/eslint-config": "^0.13.0",
76
73
  "@sveltejs/adapter-static": "^4.0.0",
77
74
  "@sveltejs/kit": "^3.0.1",
78
75
  "@sveltejs/package": "^3.0.0",
@@ -85,7 +82,7 @@
85
82
  "jsdom": "^29.1.1",
86
83
  "svelte": "^5.57.2",
87
84
  "svelte-check": "^4.7.6",
88
- "svelte-docinfo": "^0.8.1",
85
+ "svelte-docinfo": "^0.13.0",
89
86
  "tslib": "^2.8.1",
90
87
  "typescript": "^6.0.3",
91
88
  "typescript-eslint": "^8.71.1",
package/src/lib/logos.ts CHANGED
@@ -160,6 +160,16 @@ export const logo_fuz_util = {
160
160
  ]
161
161
  } satisfies SvgData;
162
162
 
163
+ export const logo_fuz_host = {
164
+ label: 'a brown nautilus shell, spiraling inward',
165
+ fill: '#84522a',
166
+ paths: [
167
+ {
168
+ d: 'M53.74,61.53 53.57,62.00 53.27,62.41 52.85,62.72 52.37,62.91 51.84,62.96 51.32,62.88 50.81,62.66 50.39,62.33 50.06,61.93 49.82,61.44 49.70,60.94 49.68,60.40 49.78,59.86 49.97,59.36 50.27,58.90 50.66,58.50 51.09,58.19 51.59,57.95 52.14,57.81 52.67,57.76 53.21,57.80 53.75,57.93 54.28,58.16 54.73,58.44 55.15,58.80 55.51,59.22 55.82,59.70 56.05,60.24 56.21,60.81 56.28,61.36 56.27,61.98 56.17,62.55 55.82,63.54 55.22,64.44 54.39,65.21 53.43,65.75 52.35,66.07 51.18,66.15 50.06,65.98 48.97,65.57 48.02,64.98 47.24,64.26 46.54,63.31 46.05,62.30 45.73,61.18 45.62,60.00 45.73,58.79 46.02,57.68 46.35,56.89 46.72,56.23 47.17,55.60 47.68,55.01 48.27,54.47 48.92,53.98 50.27,53.25 51.78,52.79 53.40,52.62 54.30,52.66 55.07,52.77 56.61,53.20 57.48,53.59 58.20,53.99 59.54,55.01 60.71,56.29 61.67,57.79 62.05,58.62 62.35,59.49 62.72,61.17 62.80,62.13 62.80,63.10 62.57,64.90 62.31,65.88 61.96,66.84 61.09,68.54 59.92,70.12 59.17,70.91 58.48,71.52 57.58,72.19 56.79,72.69 55.06,73.52 53.95,73.90 52.99,74.15 50.99,74.42 49.76,74.44 48.52,74.35 47.27,74.14 46.03,73.82 44.80,73.39 43.61,72.84 42.45,72.17 41.34,71.39 40.29,70.51 39.31,69.52 38.41,68.44 37.73,67.46 37.00,66.21 36.48,65.11 35.95,63.72 35.60,62.52 35.26,60.78 35.11,58.98 35.14,57.15 35.32,55.57 35.72,53.72 36.21,52.16 36.86,50.62 37.65,49.13 38.58,47.70 39.65,46.34 40.86,45.06 42.19,43.88 43.64,42.80 45.21,41.85 46.87,41.03 48.63,40.36 50.78,39.76 52.68,39.43 54.97,39.26 56.97,39.30 59.31,39.57 61.32,40.01 63.31,40.64 65.26,41.45 67.15,42.44 68.98,43.62 70.71,44.97 72.34,46.49 73.85,48.18 75.22,50.02 76.43,52.00 77.32,53.75 78.21,55.96 78.92,58.27 79.42,60.66 79.71,63.13 79.78,65.64 79.63,68.18 79.24,70.74 78.61,73.28 77.75,75.80 76.65,78.26 75.32,80.64 74.04,82.55 72.29,84.74 70.68,86.46 68.54,88.38 66.62,89.85 64.14,91.43 61.49,92.81 58.70,93.96 55.77,94.86 52.73,95.51 49.61,95.90 46.42,96.00 43.19,95.81 39.94,95.33 36.71,94.55 33.52,93.47 30.91,92.34 27.86,90.71 25.41,89.13 22.59,86.97 20.38,84.97 18.70,83.23 17.50,81.85 16.36,80.40 15.28,78.90 14.25,77.34 13.30,75.73 12.40,74.06 11.58,72.34 10.60,69.98 9.95,68.16 9.38,66.30 8.89,64.40 8.49,62.47 8.16,60.51 7.93,58.52 7.78,56.51 7.72,54.48 7.76,52.44 7.88,50.39 8.10,48.33 8.41,46.27 8.82,44.21 9.71,40.80 10.37,38.76 11.13,36.75 11.98,34.76 12.93,32.79 13.97,30.86 15.11,28.96 17.20,25.89 19.06,23.53 20.55,21.81 22.13,20.16 23.79,18.57 25.54,17.04 27.36,15.58 29.26,14.20 31.24,12.89 33.98,11.28 36.11,10.17 38.31,9.15 40.56,8.22 42.87,7.39 45.23,6.66 47.64,6.03 50.09,5.48 53.41,4.87 55.95,4.51 58.53,4.24 61.14,4.07 63.79,4.00 66.46,4.04 69.15,4.21 71.86,4.49 74.58,4.91 77.29,5.46 80.00,6.15 81.79,6.69 84.46,7.62 87.09,8.70 89.68,9.94 91.37,10.85 91.75,11.23 92.03,11.68 92.20,12.20 92.28,12.77 92.25,13.41 91.93,14.82 91.65,15.59 90.87,17.25 89.82,19.03 88.55,20.90 87.10,22.83 84.68,25.74 82.95,27.65 80.30,30.39 78.55,32.08 76.05,34.32 73.83,36.12 72.01,37.35 71.09,37.81 70.46,37.93 67.90,36.68 65.47,35.74 63.00,35.04 60.10,34.53 58.03,34.35 55.58,34.34 53.57,34.49 51.21,34.85 48.92,35.40 46.72,36.14 44.63,37.06 42.33,38.34 40.51,39.60 38.83,41.01 37.30,42.54 35.72,44.46 34.74,45.90 33.71,47.71 32.87,49.57 32.20,51.47 31.71,53.40 31.40,55.34 31.27,57.28 31.31,59.19 31.52,61.06 31.89,62.89 32.41,64.64 33.21,66.60 34.03,68.18 34.99,69.65 36.05,71.02 37.43,72.46 38.48,73.39 39.59,74.23 40.74,74.97 42.18,75.74 43.41,76.27 44.91,76.78 46.18,77.10 47.70,77.34 48.97,77.45 50.48,77.44 51.97,77.31 53.41,77.04 54.81,76.66 56.15,76.15 57.42,75.54 58.61,74.82 59.54,74.16 60.41,73.43 61.21,72.65 62.09,71.65 62.73,70.78 63.41,69.67 63.90,68.73 64.38,67.56 64.69,66.57 64.97,65.37 65.13,64.17 65.19,62.97 65.14,61.79 64.98,60.64 64.73,59.51 64.38,58.43 63.95,57.40 63.43,56.43 62.83,55.52 62.16,54.68 61.43,53.91 60.65,53.22 59.82,52.61 58.95,52.08 58.05,51.64 57.12,51.29 56.18,51.03 55.08,50.83 54.13,50.75 53.04,50.77 51.98,50.90 50.95,51.14 49.30,51.77 48.54,52.19 47.71,52.75 46.48,53.88 45.95,54.51 45.42,55.28 45.04,55.98 44.68,56.82 44.44,57.56 44.25,58.43 44.16,59.30 44.16,60.16 44.25,61.00 44.42,61.82 44.80,62.92 45.39,64.03 46.13,65.00 47.00,65.81 47.97,66.46 49.10,66.96 50.27,67.24 51.44,67.31 52.75,67.13 53.96,66.70 55.02,66.05 55.95,65.15 56.63,64.11 57.06,62.90 57.20,61.67 57.04,60.49 56.84,59.87 56.52,59.23 56.17,58.71 55.71,58.21 55.19,57.79 54.63,57.47 54.04,57.23 53.43,57.09 52.83,57.04 52.18,57.09 51.56,57.24 50.99,57.48 50.48,57.81 50.00,58.24 49.62,58.74 49.34,59.28 49.17,59.85 49.11,60.42 49.14,60.98 49.28,61.51 49.50,61.99 49.82,62.45 50.21,62.82 50.65,63.11 51.13,63.29 51.61,63.38 52.13,63.36 52.61,63.25 53.05,63.04 53.44,62.73 53.74,62.36 53.95,61.92 54.06,61.40 54.02,60.90 53.84,60.42 53.56,60.03 53.17,59.74 52.72,59.58 52.24,59.57 51.81,59.71 51.52,59.91 51.21,60.25 51.01,60.59 50.90,60.96 50.88,61.32 50.95,61.67 51.10,62.00 51.32,62.26 51.63,62.49 52.00,62.63 52.38,62.66 52.75,62.60 53.10,62.44 53.40,62.20 53.62,61.88 53.74,61.53Z'
169
+ }
170
+ ]
171
+ } satisfies SvgData;
172
+
163
173
  export const logo_tsv = {
164
174
  label: 'a pixelated orange quill drawing a precise line',
165
175
  fill: '#f4672f',
@@ -10,6 +10,7 @@ import {
10
10
  logo_fuz_template,
11
11
  logo_fuz_css,
12
12
  logo_fuz_util,
13
+ logo_fuz_host,
13
14
  logo_gro,
14
15
  logo_svelte_docinfo,
15
16
  logo_fuz_app,
@@ -41,6 +42,7 @@ export const project_items: Array<ProjectItem> = [
41
42
  {name: 'fuz_repos', url: 'https://repos.fuz.dev/', logo: logo_fuz_repos, description: 'a tool for managing many repos', glyph: '🪄', color_class: 'color_a_50'},
42
43
  {name: 'svelte-docinfo', url: 'https://svelte-docinfo.fuz.dev/', logo: logo_svelte_docinfo, description: 'static analysis for TypeScript and Svelte', glyph: '📜', color_class: 'color_i_50'},
43
44
  {name: 'fuz_util', url: 'https://util.fuz.dev/', logo: logo_fuz_util, description: 'utility belt for JS', glyph: '🦕', color_class: 'color_f_50'},
45
+ {name: 'fuz_host', url: 'https://host.fuz.dev/', logo: logo_fuz_host, description: 'host APIs for JS: filesystem, processes, and the OS, one import across runtimes', glyph: '🐚', color_class: 'color_f_50'},
44
46
  {name: 'gro', url: 'https://github.com/fuzdev/gro', logo: logo_gro, description: 'task runner and toolkit extending SvelteKit', glyph: '🌰', color_class: 'color_f_50'},
45
47
  {name: 'tsv', url: 'https://tsv.fuz.dev/', logo: logo_tsv, description: 'precise language tools for TypeScript/JS, CSS, and Svelte in Rust', glyph: '🪶', color_class: 'color_h_50'},
46
48
  ];
package/src/lib/tome.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import { resolve } from '$app/paths';
2
2
  import type { Component } from 'svelte';
3
- import { z } from 'zod';
4
3
  import { ensure_start } from '@fuzdev/fuz_util/string.ts';
5
4
 
6
5
  import { create_context } from './context_helpers.ts';
@@ -10,28 +9,30 @@ export const tomes_context = create_context<() => Map<string, Tome>>();
10
9
 
11
10
  export const tome_context = create_context<() => Tome>();
12
11
 
13
- export const Tome = z.object({
12
+ /**
13
+ * A documentation page registered with `Docs` and looked up through `tomes_context`.
14
+ */
15
+ export interface Tome {
14
16
  /**
15
17
  * Stable identifier and URL path segment — must be a URL-safe slug
16
18
  * (used directly as the route segment, the lookup key, and in
17
19
  * `related_tomes` cross-references). Set `title` for the display label.
18
20
  */
19
- slug: z.string(),
21
+ slug: string;
20
22
  /**
21
23
  * Human-readable display label shown in menus, headings, and links.
22
24
  * Falls back to `slug` when omitted, so set `title` to give multi-word or
23
25
  * specially cased tomes a readable label (e.g. `slug: 'vite-plugin'` →
24
26
  * `title: 'vite plugin'`).
25
27
  */
26
- title: z.string().optional(),
27
- // TODO maybe now this makes sense with mdz? summary: z.string(),
28
- category: z.string(),
29
- Component: z.custom<Component<any, any>>(),
30
- related_tomes: z.array(z.string()),
31
- related_modules: z.array(z.string()),
32
- related_declarations: z.array(z.string())
33
- });
34
- export type Tome = z.infer<typeof Tome>;
28
+ title?: string;
29
+ // TODO maybe now this makes sense with mdz? summary: string;
30
+ category: string;
31
+ Component: Component<any, any>;
32
+ related_tomes: Array<string>;
33
+ related_modules: Array<string>;
34
+ related_declarations: Array<string>;
35
+ }
35
36
 
36
37
  /**
37
38
  * @param hash - URL fragment to append, with or without the `#`