@fuzdev/fuz_ui 0.221.0 โ†’ 0.222.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.
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  > friendly user zystem ๐Ÿงถ [fuz.dev](https://ui.fuz.dev/)
6
6
 
7
- fuz_ui is a Svelte UI library with components and helpers for making zippy
7
+ fuz_ui is a Svelte component library with frontend helpers for making zippy
8
8
  websites. It's built on [fuz_css](https://css.fuz.dev/)
9
9
  and provides a documentation system built on
10
10
  [svelte-docinfo](https://svelte-docinfo.fuz.dev/).
@@ -20,10 +20,4 @@
20
20
  <li>
21
21
  GitHub as <a rel="me" href="https://github.com/fuzdev">@fuzdev</a>
22
22
  </li>
23
- <!-- TODO socials -->
24
- <!-- <li>
25
- Mastodon as
26
- <a rel="me" href="https://fosstodon.org/@fuzdev">@fuzdev@fosstodon.org</a> and Bluesky as
27
- <a href="https://bsky.app/profile/fuz.dev">@fuz.dev</a>
28
- </li> -->
29
23
  </ul>
@@ -1 +1 @@
1
- {"version":3,"file":"EcosystemLinks.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/EcosystemLinks.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAIzD,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AA2BH,QAAA,MAAM,cAAc,sDAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"EcosystemLinks.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/EcosystemLinks.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAIzD,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC;AAyBH,QAAA,MAAM,cAAc,sDAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
@@ -132,6 +132,7 @@
132
132
  flex-direction: column;
133
133
  align-items: center;
134
134
  max-width: var(--max_width, var(--distance_sm));
135
+ margin: 0 auto;
135
136
  }
136
137
  .repo-name {
137
138
  font-family: var(--font_family_serif);
@@ -1,7 +1,7 @@
1
1
  import type { CspDirectives } from './csp.js';
2
2
  /**
3
3
  * Per-directive sources that allow full interop between fuzdev/sister sites
4
- * (`*.fuz.dev`, `*.zzz.software`) โ€” loading assets and APIs from each other,
4
+ * (`*.fuz.dev`) โ€” loading assets and APIs from each other,
5
5
  * and iframing in both directions.
6
6
  *
7
7
  * Pass into `create_csp_directives({extend: [csp_directives_of_fuzdev]})`.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Per-directive sources that allow full interop between fuzdev/sister sites
3
- * (`*.fuz.dev`, `*.zzz.software`) โ€” loading assets and APIs from each other,
3
+ * (`*.fuz.dev`) โ€” loading assets and APIs from each other,
4
4
  * and iframing in both directions.
5
5
  *
6
6
  * Pass into `create_csp_directives({extend: [csp_directives_of_fuzdev]})`.
@@ -12,12 +12,12 @@
12
12
  * needs them.
13
13
  */
14
14
  export const csp_directives_of_fuzdev = {
15
- 'img-src': ['https://*.fuz.dev/', 'https://*.zzz.software/'],
16
- 'media-src': ['https://*.fuz.dev/', 'https://*.zzz.software/'],
17
- 'font-src': ['https://*.fuz.dev/', 'https://*.zzz.software/'],
18
- 'connect-src': ['https://*.fuz.dev/', 'https://*.zzz.software/'],
19
- 'frame-src': ['https://*.fuz.dev/', 'https://*.zzz.software/'],
20
- 'frame-ancestors': ['https://*.fuz.dev/', 'https://*.zzz.software/']
15
+ 'img-src': ['https://*.fuz.dev/'],
16
+ 'media-src': ['https://*.fuz.dev/'],
17
+ 'font-src': ['https://*.fuz.dev/'],
18
+ 'connect-src': ['https://*.fuz.dev/'],
19
+ 'frame-src': ['https://*.fuz.dev/'],
20
+ 'frame-ancestors': ['https://*.fuz.dev/']
21
21
  // `child-src` is intentionally omitted โ€” it defaults to `['none']`, and `extend` cannot
22
22
  // append to a `'none'`-valued directive. Including it here would break the common
23
23
  // `create_csp_directives({extend: [csp_directives_of_fuzdev]})` call. `frame-src` is its
@@ -15,7 +15,7 @@ export declare const docs_links_context: {
15
15
  */
16
16
  export declare const docs_slugify: (str: string) => string;
17
17
  export declare const DOCS_PATH_DEFAULT = "/docs";
18
- export declare const DOCS_PATH: "/" | "/about" | "/docs" | "/docs/Alert" | "/docs/Breadcrumb" | "/docs/Breadcrumb/a" | "/docs/Breadcrumb/a/b" | "/docs/Breadcrumb/a/b/c" | "/docs/Breadcrumb/a/b/c/d" | "/docs/Card" | "/docs/Contextmenu" | "/docs/Details" | "/docs/Dialog" | "/docs/Docs" | "/docs/HueInput" | "/docs/LibraryDetail" | "/docs/LibrarySummary" | "/docs/Library" | "/docs/PendingAnimation" | "/docs/PendingButton" | "/docs/Redirect" | "/docs/Sparkline" | "/docs/Svg" | "/docs/Teleport" | "/docs/ThemeRoot" | "/docs/api" | "/docs/csp" | "/docs/icons" | "/docs/intersect" | "/docs/introduction" | "/docs/logos" | "/docs/theming" | "/docs/vite_plugin_pkg_json" | "/help" | `/${string}/` | `/${`docs/api/${string}` & {}}` | `/${string}/help` | `/${string}/about` | `/${string}/docs` | `/${string}/docs/Alert` | `/${string}/docs/Breadcrumb` | `/${string}/docs/Breadcrumb/a` | `/${string}/docs/Breadcrumb/a/b` | `/${string}/docs/Breadcrumb/a/b/c` | `/${string}/docs/Breadcrumb/a/b/c/d` | `/${string}/docs/Card` | `/${string}/docs/Contextmenu` | `/${string}/docs/Details` | `/${string}/docs/Dialog` | `/${string}/docs/Docs` | `/${string}/docs/HueInput` | `/${string}/docs/LibraryDetail` | `/${string}/docs/LibrarySummary` | `/${string}/docs/Library` | `/${string}/docs/PendingAnimation` | `/${string}/docs/PendingButton` | `/${string}/docs/Redirect` | `/${string}/docs/Sparkline` | `/${string}/docs/Svg` | `/${string}/docs/Teleport` | `/${string}/docs/ThemeRoot` | `/${string}/docs/api` | `/${string}/${`docs/api/${string}` & {}}` | `/${string}/docs/csp` | `/${string}/docs/icons` | `/${string}/docs/intersect` | `/${string}/docs/introduction` | `/${string}/docs/logos` | `/${string}/docs/theming` | `/${string}/docs/vite_plugin_pkg_json`;
18
+ export declare const DOCS_PATH: "/" | "/about" | "/docs" | "/docs/Alert" | "/docs/Breadcrumb" | "/docs/Breadcrumb/a" | "/docs/Breadcrumb/a/b" | "/docs/Breadcrumb/a/b/c" | "/docs/Breadcrumb/a/b/c/d" | "/docs/Card" | "/docs/Contextmenu" | "/docs/Details" | "/docs/Dialog" | "/docs/Docs" | "/docs/HueInput" | "/docs/LibrarySummary" | "/docs/Library" | "/docs/PendingAnimation" | "/docs/PendingButton" | "/docs/Redirect" | "/docs/Sparkline" | "/docs/Svg" | "/docs/Teleport" | "/docs/ThemeRoot" | "/docs/api" | "/docs/csp" | "/docs/icons" | "/docs/intersect" | "/docs/introduction" | "/docs/logos" | "/docs/theming" | "/docs/vite_plugin_pkg_json" | "/help" | `/${string}/` | `/${`docs/api/${string}` & {}}` | `/${string}/help` | `/${string}/about` | `/${string}/docs` | `/${string}/docs/Alert` | `/${string}/docs/Breadcrumb` | `/${string}/docs/Breadcrumb/a` | `/${string}/docs/Breadcrumb/a/b` | `/${string}/docs/Breadcrumb/a/b/c` | `/${string}/docs/Breadcrumb/a/b/c/d` | `/${string}/docs/Card` | `/${string}/docs/Contextmenu` | `/${string}/docs/Details` | `/${string}/docs/Dialog` | `/${string}/docs/Docs` | `/${string}/docs/HueInput` | `/${string}/docs/LibrarySummary` | `/${string}/docs/Library` | `/${string}/docs/PendingAnimation` | `/${string}/docs/PendingButton` | `/${string}/docs/Redirect` | `/${string}/docs/Sparkline` | `/${string}/docs/Svg` | `/${string}/docs/Teleport` | `/${string}/docs/ThemeRoot` | `/${string}/docs/api` | `/${string}/${`docs/api/${string}` & {}}` | `/${string}/docs/csp` | `/${string}/docs/icons` | `/${string}/docs/intersect` | `/${string}/docs/introduction` | `/${string}/docs/logos` | `/${string}/docs/theming` | `/${string}/docs/vite_plugin_pkg_json`;
19
19
  export declare const DOCS_API_PATH: string;
20
20
  export declare const to_docs_path_info: (path_slug: string, pathname: string, root_path?: string) => {
21
21
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"docs_helpers.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/docs_helpers.svelte.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKzD,eAAO,MAAM,kBAAkB;;;;CAA8B,CAAC;AAE9D;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAY1C,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,SAAS,6qDAAmB,CAAC;AAC1C,eAAO,MAAM,aAAa,QAAqB,CAAC;AAEhD,eAAO,MAAM,iBAAiB,GAC7B,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,kBAA6B,KAC3B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;CAK7E,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,WAAW,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,qBAAa,SAAS;;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAmB;IAgBlE,UAAU,iBA4BP;IAEH,QAAQ,CAAC,kBAAkB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAmB;gBAErD,SAAS,SAAoB;IAIzC,GAAG,CACF,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,WAAW,EACjB,KAAK,SAAI,EACT,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GAClB,MAAM;IAkBT,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxB;;;OAGG;IACH,mBAAmB,IAAI,MAAM;CAG7B"}
1
+ {"version":3,"file":"docs_helpers.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/docs_helpers.svelte.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKzD,eAAO,MAAM,kBAAkB;;;;CAA8B,CAAC;AAE9D;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAY1C,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,eAAO,MAAM,SAAS,mnDAAmB,CAAC;AAC1C,eAAO,MAAM,aAAa,QAAqB,CAAC;AAEhD,eAAO,MAAM,iBAAiB,GAC7B,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,kBAA6B,KAC3B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;CAK7E,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,WAAW,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,qBAAa,SAAS;;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAmB;IAgBlE,UAAU,iBA4BP;IAEH,QAAQ,CAAC,kBAAkB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAmB;gBAErD,SAAS,SAAoB;IAIzC,GAAG,CACF,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,WAAW,EACjB,KAAK,SAAI,EACT,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GAClB,MAAM;IAkBT,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxB;;;OAGG;IACH,mBAAmB,IAAI,MAAM;CAG7B"}
@@ -8,8 +8,8 @@ import { Module } from './module.svelte.js';
8
8
  * The getter form keeps consumers reactive when the library changes without
9
9
  * requiring a remount โ€” set it with a closure over reactive state, e.g.
10
10
  * `library_context.set(() => library)`. Components that accept a `library`
11
- * prop (`LibraryDetail`, `ApiIndex`, `ApiModule`) project the prop into this
12
- * context for their subtree, so descendants like `ModuleLink`,
11
+ * prop (`ApiIndex`, `ApiModule`) project the prop into this context for their
12
+ * subtree, so descendants like `ModuleLink`,
13
13
  * `DeclarationLink`, and TSDoc-rendered `DocsLink` resolve against the same
14
14
  * library โ€” including when an aggregator renders a foreign library that
15
15
  * differs from the site-level context.
@@ -9,8 +9,8 @@ import { package_is_published, repo_name_parse, repo_url_github_owner, repo_url_
9
9
  * The getter form keeps consumers reactive when the library changes without
10
10
  * requiring a remount โ€” set it with a closure over reactive state, e.g.
11
11
  * `library_context.set(() => library)`. Components that accept a `library`
12
- * prop (`LibraryDetail`, `ApiIndex`, `ApiModule`) project the prop into this
13
- * context for their subtree, so descendants like `ModuleLink`,
12
+ * prop (`ApiIndex`, `ApiModule`) project the prop into this context for their
13
+ * subtree, so descendants like `ModuleLink`,
14
14
  * `DeclarationLink`, and TSDoc-rendered `DocsLink` resolve against the same
15
15
  * library โ€” including when an aggregator renders a foreign library that
16
16
  * differs from the site-level context.
package/dist/logos.d.ts CHANGED
@@ -55,7 +55,7 @@ export declare const logo_fuz_repos: {
55
55
  d: string;
56
56
  }[];
57
57
  };
58
- export declare const logo_fuz_docs: {
58
+ export declare const logo_docs_fuz_dev: {
59
59
  label: string;
60
60
  fill: string;
61
61
  paths: {
@@ -91,13 +91,6 @@ export declare const logo_fuz_util: {
91
91
  d: string;
92
92
  }[];
93
93
  };
94
- export declare const logo_fuz_host: {
95
- label: string;
96
- fill: string;
97
- paths: {
98
- d: string;
99
- }[];
100
- };
101
94
  export declare const logo_tsv: {
102
95
  label: string;
103
96
  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,cAAc;;;;;;CAIR,CAAC;AAEpB,eAAO,MAAM,aAAa;;;;;;CAIP,CAAC;AAEpB,eAAO,MAAM,mBAAmB;;;;;;CAQb,CAAC;AAEpB,eAAO,MAAM,QAAQ;;;;;;;CASF,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"}
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,cAAc;;;;;;CAIR,CAAC;AAEpB,eAAO,MAAM,iBAAiB;;;;;;CAIX,CAAC;AAEpB,eAAO,MAAM,mBAAmB;;;;;;CAQb,CAAC;AAEpB,eAAO,MAAM,QAAQ;;;;;;;CASF,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"}
package/dist/logos.js CHANGED
@@ -90,7 +90,7 @@ export const logo_fuz_repos = {
90
90
  fill: '#6199d1',
91
91
  paths: logo_fuz.paths
92
92
  };
93
- export const logo_fuz_docs = {
93
+ export const logo_docs_fuz_dev = {
94
94
  label: 'a friendly cyan spider facing you',
95
95
  fill: '#1ec3d2',
96
96
  paths: logo_fuz.paths
@@ -148,15 +148,6 @@ export const logo_fuz_util = {
148
148
  }
149
149
  ]
150
150
  };
151
- export const logo_fuz_host = {
152
- label: 'a brown nautilus shell, spiraling inward',
153
- fill: '#84522a',
154
- paths: [
155
- {
156
- 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'
157
- }
158
- ]
159
- };
160
151
  export const logo_tsv = {
161
152
  label: 'a pixelated orange quill drawing a precise line',
162
153
  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;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"}
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"}
package/dist/projects.js CHANGED
@@ -1,21 +1,20 @@
1
1
  import {
2
2
  // TODO when fuz.dev is ready
3
3
  // logo_fuz,
4
- logo_fuz_ui, logo_fuz_code, logo_mdz, logo_fuz_blog, 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';
4
+ logo_fuz_ui, logo_fuz_code, logo_mdz, logo_fuz_blog, 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';
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 = [
8
8
  { name: 'fuz_app', url: 'https://app.fuz.dev/', logo: logo_fuz_app, description: '[pre-alpha] fullstack app library', glyph: '๐Ÿ—', color_class: 'color_j_50' },
9
9
  { name: 'fuz_css', url: 'https://css.fuz.dev/', logo: logo_fuz_css, description: 'semantic-first CSS framework and design system', glyph: '๐ŸŒฟ', color_class: 'color_b_50' },
10
- { name: 'fuz_ui', url: 'https://ui.fuz.dev/', logo: logo_fuz_ui, description: 'Svelte UI library', glyph: '๐Ÿงถ', color_class: 'color_c_50' },
11
- { name: 'fuz_template', url: 'https://template.fuz.dev/', logo: logo_fuz_template, description: 'a web app template with TypeScript + SvelteKit + optional Rust for the fuz-stack', glyph: 'โ„', color_class: 'color_h_50' },
10
+ { name: 'fuz_ui', url: 'https://ui.fuz.dev/', logo: logo_fuz_ui, description: 'Svelte component library and frontend helpers', glyph: '๐Ÿงถ', color_class: 'color_c_50' },
11
+ { name: 'fuz_template', url: 'https://template.fuz.dev/', logo: logo_fuz_template, description: 'starter template for SvelteKit web apps, Rust native tools, or both', glyph: 'โ„', color_class: 'color_h_50' },
12
12
  { 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' },
13
13
  { name: 'fuz_code', url: 'https://code.fuz.dev/', logo: logo_fuz_code, description: 'syntax styling utilities and components for TypeScript, Svelte, Markdown, and more', glyph: '๐ŸŽจ', color_class: 'color_g_50' },
14
14
  { name: 'mdz', url: 'https://mdz.fuz.dev/', logo: logo_mdz, description: 'a strict markdown dialect built for streaming, Svelte authoring, docs websites, and untrusted content', glyph: '๐Ÿ“', color_class: 'color_d_50' },
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' },
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' },
18
+ { name: 'gro', url: 'https://github.com/fuzdev/gro', logo: logo_gro, description: 'security-first JS runtime and toolchain on V8', glyph: '๐ŸŒฐ', color_class: 'color_f_50' },
20
19
  { 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' },
21
20
  ];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fuzdev/fuz_ui",
3
- "version": "0.221.0",
4
- "description": "Svelte UI library",
3
+ "version": "0.222.1",
4
+ "description": "Svelte component library and frontend helpers",
5
5
  "tagline": "friendly user zystem",
6
6
  "glyph": "๐Ÿงถ",
7
7
  "logo": "logo.svg",
@@ -67,7 +67,7 @@
67
67
  "@fuzdev/fuz_css": "^0.72.0",
68
68
  "@fuzdev/fuz_schema": "^0.5.0",
69
69
  "@fuzdev/fuz_util": "^0.79.0",
70
- "@fuzdev/gro": "^0.223.0",
70
+ "@fuzdev/gro": "^0.224.0",
71
71
  "@fuzdev/mdz": "^0.7.0",
72
72
  "@ryanatkn/eslint-config": "^0.13.1",
73
73
  "@sveltejs/adapter-static": "^4.0.0",
@@ -75,7 +75,6 @@
75
75
  "@sveltejs/package": "^3.0.0",
76
76
  "@sveltejs/vite-plugin-svelte": "^7.3.1",
77
77
  "@types/node": "^24.10.1",
78
- "@webref/css": "^8.2.0",
79
78
  "eslint": "^9.39.4",
80
79
  "eslint-plugin-svelte": "^3.19.0",
81
80
  "esm-env": "^1.2.2",
@@ -2,7 +2,7 @@ import type { CspDirectives } from './csp.ts';
2
2
 
3
3
  /**
4
4
  * Per-directive sources that allow full interop between fuzdev/sister sites
5
- * (`*.fuz.dev`, `*.zzz.software`) โ€” loading assets and APIs from each other,
5
+ * (`*.fuz.dev`) โ€” loading assets and APIs from each other,
6
6
  * and iframing in both directions.
7
7
  *
8
8
  * Pass into `create_csp_directives({extend: [csp_directives_of_fuzdev]})`.
@@ -14,12 +14,12 @@ import type { CspDirectives } from './csp.ts';
14
14
  * needs them.
15
15
  */
16
16
  export const csp_directives_of_fuzdev: Partial<CspDirectives> = {
17
- 'img-src': ['https://*.fuz.dev/', 'https://*.zzz.software/'],
18
- 'media-src': ['https://*.fuz.dev/', 'https://*.zzz.software/'],
19
- 'font-src': ['https://*.fuz.dev/', 'https://*.zzz.software/'],
20
- 'connect-src': ['https://*.fuz.dev/', 'https://*.zzz.software/'],
21
- 'frame-src': ['https://*.fuz.dev/', 'https://*.zzz.software/'],
22
- 'frame-ancestors': ['https://*.fuz.dev/', 'https://*.zzz.software/']
17
+ 'img-src': ['https://*.fuz.dev/'],
18
+ 'media-src': ['https://*.fuz.dev/'],
19
+ 'font-src': ['https://*.fuz.dev/'],
20
+ 'connect-src': ['https://*.fuz.dev/'],
21
+ 'frame-src': ['https://*.fuz.dev/'],
22
+ 'frame-ancestors': ['https://*.fuz.dev/']
23
23
  // `child-src` is intentionally omitted โ€” it defaults to `['none']`, and `extend` cannot
24
24
  // append to a `'none'`-valued directive. Including it here would break the common
25
25
  // `create_csp_directives({extend: [csp_directives_of_fuzdev]})` call. `frame-src` is its
@@ -21,8 +21,8 @@ import {
21
21
  * The getter form keeps consumers reactive when the library changes without
22
22
  * requiring a remount โ€” set it with a closure over reactive state, e.g.
23
23
  * `library_context.set(() => library)`. Components that accept a `library`
24
- * prop (`LibraryDetail`, `ApiIndex`, `ApiModule`) project the prop into this
25
- * context for their subtree, so descendants like `ModuleLink`,
24
+ * prop (`ApiIndex`, `ApiModule`) project the prop into this context for their
25
+ * subtree, so descendants like `ModuleLink`,
26
26
  * `DeclarationLink`, and TSDoc-rendered `DocsLink` resolve against the same
27
27
  * library โ€” including when an aggregator renders a foreign library that
28
28
  * differs from the site-level context.
package/src/lib/logos.ts CHANGED
@@ -102,7 +102,7 @@ export const logo_fuz_repos = {
102
102
  paths: logo_fuz.paths
103
103
  } satisfies SvgData;
104
104
 
105
- export const logo_fuz_docs = {
105
+ export const logo_docs_fuz_dev = {
106
106
  label: 'a friendly cyan spider facing you',
107
107
  fill: '#1ec3d2',
108
108
  paths: logo_fuz.paths
@@ -165,16 +165,6 @@ export const logo_fuz_util = {
165
165
  ]
166
166
  } satisfies SvgData;
167
167
 
168
- export const logo_fuz_host = {
169
- label: 'a brown nautilus shell, spiraling inward',
170
- fill: '#84522a',
171
- paths: [
172
- {
173
- 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'
174
- }
175
- ]
176
- } satisfies SvgData;
177
-
178
168
  export const logo_tsv = {
179
169
  label: 'a pixelated orange quill drawing a precise line',
180
170
  fill: '#f4672f',
@@ -10,7 +10,6 @@ import {
10
10
  logo_fuz_template,
11
11
  logo_fuz_css,
12
12
  logo_fuz_util,
13
- logo_fuz_host,
14
13
  logo_gro,
15
14
  logo_svelte_docinfo,
16
15
  logo_fuz_app,
@@ -34,15 +33,14 @@ export interface ProjectItem {
34
33
  export const project_items: Array<ProjectItem> = [
35
34
  {name: 'fuz_app', url: 'https://app.fuz.dev/', logo: logo_fuz_app, description: '[pre-alpha] fullstack app library', glyph: '๐Ÿ—', color_class: 'color_j_50'},
36
35
  {name: 'fuz_css', url: 'https://css.fuz.dev/', logo: logo_fuz_css, description: 'semantic-first CSS framework and design system', glyph: '๐ŸŒฟ', color_class: 'color_b_50'},
37
- {name: 'fuz_ui', url: 'https://ui.fuz.dev/', logo: logo_fuz_ui, description: 'Svelte UI library', glyph: '๐Ÿงถ', color_class: 'color_c_50'},
38
- {name: 'fuz_template', url: 'https://template.fuz.dev/', logo: logo_fuz_template, description: 'a web app template with TypeScript + SvelteKit + optional Rust for the fuz-stack', glyph: 'โ„', color_class: 'color_h_50'},
36
+ {name: 'fuz_ui', url: 'https://ui.fuz.dev/', logo: logo_fuz_ui, description: 'Svelte component library and frontend helpers', glyph: '๐Ÿงถ', color_class: 'color_c_50'},
37
+ {name: 'fuz_template', url: 'https://template.fuz.dev/', logo: logo_fuz_template, description: 'starter template for SvelteKit web apps, Rust native tools, or both', glyph: 'โ„', color_class: 'color_h_50'},
39
38
  {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'},
40
39
  {name: 'fuz_code', url: 'https://code.fuz.dev/', logo: logo_fuz_code, description: 'syntax styling utilities and components for TypeScript, Svelte, Markdown, and more', glyph: '๐ŸŽจ', color_class: 'color_g_50'},
41
40
  {name: 'mdz', url: 'https://mdz.fuz.dev/', logo: logo_mdz, description: 'a strict markdown dialect built for streaming, Svelte authoring, docs websites, and untrusted content', glyph: '๐Ÿ“', color_class: 'color_d_50'},
42
41
  {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'},
43
42
  {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'},
44
43
  {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'},
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'},
44
+ {name: 'gro', url: 'https://github.com/fuzdev/gro', logo: logo_gro, description: 'security-first JS runtime and toolchain on V8', glyph: '๐ŸŒฐ', color_class: 'color_f_50'},
47
45
  {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'},
48
46
  ];
@@ -1,307 +0,0 @@
1
- <!--
2
- @component
3
-
4
- Renders library metadata (name, description, links, license) and a module index
5
- with file-type coloring. Uses svelte-docinfo's file type predicates for module classification.
6
-
7
- @see `library.svelte.ts` for the `Library` wrapper class
8
- @see {@link https://github.com/ryanatkn/svelte-docinfo svelte-docinfo} for the analysis library
9
- @cssprop --max_width - maximum width of the detail
10
- -->
11
- <script lang="ts">
12
- import { page } from '$app/state';
13
- import { format_url } from '@fuzdev/fuz_util/url.ts';
14
- import type { OmitStrict } from '@fuzdev/fuz_util/types.ts';
15
- import type { Snippet } from 'svelte';
16
- import type { SvelteHTMLElements } from 'svelte/elements';
17
-
18
- import { library_context, type Library } from './library.svelte.js';
19
- import ImgOrSvg from './ImgOrSvg.svelte';
20
- import DeclarationLink from './DeclarationLink.svelte';
21
- import ModuleLink from './ModuleLink.svelte';
22
- import { url_github_file } from '@fuzdev/fuz_util/package_helpers.ts';
23
- import { isTypescript, isSvelte, isCss, isJson } from 'svelte-docinfo/source.js';
24
-
25
- const {
26
- library,
27
- links_full = false,
28
- repo_name,
29
- description,
30
- tagline,
31
- npm_url,
32
- homepage_url,
33
- children,
34
- ...rest
35
- }: OmitStrict<SvelteHTMLElements['div'], 'children'> & {
36
- library: Library;
37
- /**
38
- * Link the module/declaration index to the library's own deployed docs
39
- * (`url_api_full`) instead of site-local paths. Use when rendering a
40
- * foreign library on a different site, e.g. an aggregator.
41
- */
42
- links_full?: boolean;
43
- repo_name?: Snippet<[repo_name: string]>;
44
- description?: Snippet<[description: string]>;
45
- tagline?: Snippet<[description: string]>;
46
- npm_url?: Snippet<[npm_url: string]>;
47
- homepage_url?: Snippet<[homepage_url: string]>;
48
- children?: Snippet<[library: Library]>;
49
- } = $props();
50
-
51
- library_context.set(() => library);
52
-
53
- // TODO show other data (lines of code)
54
-
55
- const { pkg_json } = $derived(library);
56
-
57
- const license_url = $derived(
58
- pkg_json.license ? url_github_file(library.repo_url, 'LICENSE') : null
59
- );
60
- </script>
61
-
62
- <!-- eslint-disable svelte/no-navigation-without-resolve -->
63
-
64
- <div {...rest} class="library-detail {rest.class}">
65
- <!-- TODO maybe continue this snippet pattern, or maybe simplify? -->
66
- <div class="info">
67
- <div class="display:flex flex:1">
68
- <!-- add yet another wrapper so it flows like we want -->
69
- <div>
70
- <header>
71
- {#if repo_name}
72
- {@render repo_name(library.repo_name)}
73
- {:else}
74
- <div class="repo-name">
75
- {library.repo_name}{#if pkg_json.glyph}&nbsp;{pkg_json.glyph}{/if}
76
- </div>
77
- {/if}
78
- </header>
79
- {@render children?.(library)}
80
- {#if pkg_json.description}
81
- {#if description}
82
- {@render description(pkg_json.description)}
83
- {:else}
84
- <div class="description">{pkg_json.description}</div>
85
- {/if}
86
- {/if}
87
- {#if pkg_json.tagline}
88
- {#if tagline}
89
- {@render tagline(pkg_json.tagline)}
90
- {:else}
91
- <div class="tagline">{pkg_json.tagline}</div>
92
- {/if}
93
- {/if}
94
- {#if library.npm_url}
95
- {#if npm_url}
96
- {@render npm_url(library.npm_url)}
97
- {:else}
98
- <blockquote class="npm-url">npm i -D {pkg_json.name}</blockquote>
99
- {/if}
100
- {/if}
101
- <!-- TODO accessible HTML -->
102
- <section class="properties">
103
- {#if library.homepage_url}
104
- {#if homepage_url}
105
- {@render homepage_url(library.homepage_url)}
106
- {:else}
107
- <span class="title">homepage</span>
108
- <div class="content">
109
- <a
110
- class={['chip', { selected: library.homepage_url === page.url.href }]}
111
- href={library.homepage_url}
112
- >
113
- {#if library.logo_url}
114
- <ImgOrSvg
115
- src={library.logo_url}
116
- label={library.logo_alt}
117
- size="16px"
118
- class="mr_xs"
119
- />
120
- {/if}
121
- {format_url(library.homepage_url)}
122
- </a>
123
- </div>
124
- {/if}
125
- {/if}
126
- {#if library.repo_url}
127
- <span class="title">repo</span>
128
- <div class="content">
129
- <a class="chip" title="repo" href={library.repo_url}>
130
- {library.owner_name}/{library.repo_name}
131
- </a>
132
- </div>
133
- {/if}
134
- {#if library.npm_url}
135
- <span class="title">npm</span>
136
- <div class="content">
137
- <a class="chip" title="npm" href={library.npm_url}>{pkg_json.name}</a>
138
- </div>
139
- {/if}
140
- {#if library.changelog_url}
141
- <span class="title">version</span>
142
- <div class="content">
143
- <a class="chip" title="version" href={library.changelog_url}>{pkg_json.version}</a>
144
- </div>
145
- {/if}
146
- {#if license_url}
147
- <span class="title">license</span>
148
- <div class="content">
149
- <a class="chip" title="license" href={license_url}>{pkg_json.license}</a>
150
- </div>
151
- {/if}
152
- </section>
153
- </div>
154
- </div>
155
- {#if library.logo_url}
156
- <div class="logo">
157
- <ImgOrSvg
158
- src={library.logo_url}
159
- label={library.logo_alt}
160
- size="var(--font_size, var(--icon_size_xl2))"
161
- />
162
- </div>
163
- {/if}
164
- </div>
165
- {#if library.modules.length > 0 && library.repo_url}
166
- <section>
167
- <menu class="unstyled">
168
- {#each library.modules as module (module.path)}
169
- <!-- TODO improve rendering and enrich data - start with the type (not just extension - mime?) -->
170
- <li
171
- class={[
172
- 'module',
173
- {
174
- ts: isTypescript(module.path),
175
- svelte: isSvelte(module.path),
176
- css: isCss(module.path),
177
- json: isJson(module.path)
178
- }
179
- ]}
180
- >
181
- <div class="module-content">
182
- <span class="font_size_xl">
183
- <ModuleLink module_path={module.path} full={links_full}>
184
- {module.path}
185
- </ModuleLink>
186
- </span>
187
- {#if module.has_declarations}
188
- <ul class="declarations unstyled">
189
- {#each module.declarations as declaration (declaration.name)}
190
- <li>
191
- <DeclarationLink
192
- name={declaration.name}
193
- module_path={module.path}
194
- full={links_full}
195
- />
196
- </li>
197
- {/each}
198
- </ul>
199
- {/if}
200
- </div>
201
- </li>
202
- {/each}
203
- </menu>
204
- </section>
205
- {/if}
206
-
207
- <!-- TODO maybe add more details, possibly behind a `<details>`, including author -->
208
- <!-- TODO render exports, then link to source, then tomes -->
209
- </div>
210
-
211
- <!-- TODO better rendering, also show author, etc -->
212
-
213
- <style>
214
- .library-detail {
215
- display: flex;
216
- flex-direction: column;
217
- align-items: flex-start;
218
- width: 100%;
219
- max-width: var(--max_width, var(--distance_md));
220
- overflow-x: auto;
221
- }
222
-
223
- .info {
224
- width: 100%;
225
- display: flex;
226
- flex-wrap: wrap;
227
- }
228
-
229
- .logo {
230
- flex-shrink: 0;
231
- padding: 0 var(--space_xl);
232
- }
233
-
234
- header {
235
- margin-bottom: var(--space_lg);
236
- }
237
-
238
- section {
239
- width: 100%;
240
- margin-bottom: var(--space_lg);
241
- }
242
- .repo-name {
243
- font-family: var(--font_family_serif);
244
- font-size: var(--font_size_xl2);
245
- font-weight: 400;
246
- }
247
- .npm-url {
248
- font-family: var(--font_family_mono);
249
- text-align: center;
250
- margin-bottom: var(--space_lg);
251
- }
252
- .description {
253
- margin-bottom: var(--space_lg);
254
- }
255
- .tagline {
256
- margin-bottom: var(--space_lg);
257
- }
258
- .properties {
259
- display: grid;
260
- grid-template-columns: 80px 1fr;
261
- gap: var(--space_xs2);
262
- margin-bottom: var(--space_lg);
263
- }
264
- .title {
265
- text-align: right;
266
- }
267
- .content {
268
- display: flex;
269
- }
270
- .content a {
271
- display: flex;
272
- align-items: center;
273
- margin-left: var(--space_xs);
274
- }
275
- .module {
276
- margin-bottom: var(--space_xs);
277
- --link_color: var(--text_70);
278
- }
279
- .module-content {
280
- background-color: var(--shade_10);
281
- border-radius: var(--border_radius_sm);
282
- padding: var(--space_xs);
283
- }
284
- /* TODO probably add variables/classes for these */
285
- .ts {
286
- --link_color: var(--palette_a_50);
287
- }
288
- .svelte {
289
- --link_color: var(--palette_h_50);
290
- }
291
- .css {
292
- --link_color: var(--palette_b_50);
293
- }
294
- .json {
295
- --link_color: var(--palette_f_50);
296
- }
297
- /* TODO extract */
298
- .declarations {
299
- display: flex;
300
- flex: 1;
301
- flex-direction: row;
302
- flex-wrap: wrap;
303
- align-items: flex-start;
304
- gap: var(--space_xs) 0;
305
- padding-top: var(--space_xs);
306
- }
307
- </style>
@@ -1,31 +0,0 @@
1
- import type { OmitStrict } from '@fuzdev/fuz_util/types.ts';
2
- import type { Snippet } from 'svelte';
3
- import type { SvelteHTMLElements } from 'svelte/elements';
4
- import { type Library } from './library.svelte.js';
5
- type $$ComponentProps = OmitStrict<SvelteHTMLElements['div'], 'children'> & {
6
- library: Library;
7
- /**
8
- * Link the module/declaration index to the library's own deployed docs
9
- * (`url_api_full`) instead of site-local paths. Use when rendering a
10
- * foreign library on a different site, e.g. an aggregator.
11
- */
12
- links_full?: boolean;
13
- repo_name?: Snippet<[repo_name: string]>;
14
- description?: Snippet<[description: string]>;
15
- tagline?: Snippet<[description: string]>;
16
- npm_url?: Snippet<[npm_url: string]>;
17
- homepage_url?: Snippet<[homepage_url: string]>;
18
- children?: Snippet<[library: Library]>;
19
- };
20
- /**
21
- * Renders library metadata (name, description, links, license) and a module index
22
- * with file-type coloring. Uses svelte-docinfo's file type predicates for module classification.
23
- *
24
- * @see `library.svelte.ts` for the `Library` wrapper class
25
- * @see {@link https://github.com/ryanatkn/svelte-docinfo svelte-docinfo} for the analysis library
26
- * @cssprop --max_width - maximum width of the detail
27
- */
28
- declare const LibraryDetail: import("svelte").Component<$$ComponentProps, {}, "">;
29
- type LibraryDetail = ReturnType<typeof LibraryDetail>;
30
- export default LibraryDetail;
31
- //# sourceMappingURL=LibraryDetail.svelte.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LibraryDetail.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/LibraryDetail.svelte"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAOnE,KAAK,gBAAgB,GAAI,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IAC5E,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CACvC,CAAC;AAgLH;;;;;;;GAOG;AACH,QAAA,MAAM,aAAa,sDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}