@fuzdev/fuz_ui 0.209.0 โ 0.210.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ApiModulesList.svelte +1 -1
- package/dist/ColorSchemeInput.svelte +11 -49
- package/dist/ColorSchemeInput.svelte.d.ts +2 -1
- package/dist/ColorSchemeInput.svelte.d.ts.map +1 -1
- package/dist/CopyToClipboard.svelte +1 -1
- package/dist/Dialog.svelte +6 -2
- package/dist/DialogContent.svelte +3 -3
- package/dist/DialogContent.svelte.d.ts +2 -2
- package/dist/DocsFooter.svelte +1 -1
- package/dist/HueInput.svelte +8 -16
- package/dist/LibraryDetail.svelte +4 -4
- package/dist/ModuleLink.svelte +1 -1
- package/dist/RadioMenu.svelte +97 -0
- package/dist/RadioMenu.svelte.d.ts +41 -0
- package/dist/RadioMenu.svelte.d.ts.map +1 -0
- package/dist/Spiders.svelte +10 -10
- package/dist/ThemeInput.svelte +2 -2
- package/dist/ThemeInput.svelte.d.ts +1 -1
- package/dist/ThemeInput.svelte.d.ts.map +1 -1
- package/dist/ThemeRoot.svelte +2 -1
- package/dist/ThemeRoot.svelte.d.ts +1 -1
- package/dist/ThemeRoot.svelte.d.ts.map +1 -1
- package/dist/alert.js +2 -2
- package/dist/logos.d.ts.map +1 -1
- package/dist/logos.js +13 -11
- package/dist/projects.js +1 -1
- package/dist/theme_state.svelte.d.ts +2 -1
- package/dist/theme_state.svelte.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/lib/alert.ts +2 -2
- package/src/lib/logos.ts +13 -11
- package/src/lib/projects.ts +1 -1
- package/src/lib/theme_state.svelte.ts +2 -1
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<TomeSection>
|
|
26
26
|
<TomeSectionHeader text="Modules" />
|
|
27
27
|
{#if modules.length === 0}
|
|
28
|
-
<p class="
|
|
28
|
+
<p class="negative_60">No modules match your search.</p>
|
|
29
29
|
{:else}
|
|
30
30
|
<ul class="modules-list">
|
|
31
31
|
{#each modules as module (module.path)}
|
|
@@ -1,64 +1,26 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { swallow } from '@fuzdev/fuz_util/dom.ts';
|
|
3
2
|
import { color_schemes, type ColorScheme } from '@fuzdev/fuz_css/theme.ts';
|
|
3
|
+
import type { OmitStrict } from '@fuzdev/fuz_util/types.ts';
|
|
4
4
|
import type { SvelteHTMLElements } from 'svelte/elements';
|
|
5
5
|
|
|
6
6
|
import { theme_state_context } from './theme_state.svelte.js';
|
|
7
|
+
import RadioMenu from './RadioMenu.svelte';
|
|
7
8
|
|
|
8
9
|
const get_theme_state = theme_state_context.get();
|
|
9
10
|
|
|
10
11
|
const {
|
|
11
12
|
value = get_theme_state(),
|
|
12
13
|
...rest
|
|
13
|
-
}: SvelteHTMLElements['menu'] & {
|
|
14
|
+
}: OmitStrict<SvelteHTMLElements['menu'], 'title' | 'children' | 'onselect'> & {
|
|
14
15
|
value?: { color_scheme: ColorScheme };
|
|
15
16
|
} = $props();
|
|
16
17
|
</script>
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
{
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
role="menuitemradio"
|
|
27
|
-
title={selected
|
|
28
|
-
? `${color_scheme} color scheme is selected`
|
|
29
|
-
: `select ${color_scheme} color scheme`}
|
|
30
|
-
aria-checked={selected}
|
|
31
|
-
onclick={(e) => {
|
|
32
|
-
swallow(e);
|
|
33
|
-
value.color_scheme = color_scheme;
|
|
34
|
-
}}
|
|
35
|
-
>
|
|
36
|
-
<div class="content">{color_scheme}</div>
|
|
37
|
-
</button>
|
|
38
|
-
{/each}
|
|
39
|
-
</menu>
|
|
40
|
-
|
|
41
|
-
<style>
|
|
42
|
-
.color-scheme-control {
|
|
43
|
-
display: flex;
|
|
44
|
-
flex-direction: row;
|
|
45
|
-
justify-content: center;
|
|
46
|
-
}
|
|
47
|
-
.content {
|
|
48
|
-
display: flex;
|
|
49
|
-
align-items: center;
|
|
50
|
-
justify-content: center;
|
|
51
|
-
padding: 0 var(--space_lg);
|
|
52
|
-
}
|
|
53
|
-
.color-scheme {
|
|
54
|
-
border-radius: 0;
|
|
55
|
-
}
|
|
56
|
-
.color-scheme:first-child {
|
|
57
|
-
border-top-left-radius: var(--border_radius, var(--border_radius_md));
|
|
58
|
-
border-bottom-left-radius: var(--border_radius, var(--border_radius_md));
|
|
59
|
-
}
|
|
60
|
-
.color-scheme:last-child {
|
|
61
|
-
border-top-right-radius: var(--border_radius, var(--border_radius_md));
|
|
62
|
-
border-bottom-right-radius: var(--border_radius, var(--border_radius_md));
|
|
63
|
-
}
|
|
64
|
-
</style>
|
|
19
|
+
<RadioMenu
|
|
20
|
+
{...rest}
|
|
21
|
+
options={color_schemes}
|
|
22
|
+
bind:value={value.color_scheme}
|
|
23
|
+
label={(color_scheme) => color_scheme}
|
|
24
|
+
title={(color_scheme, selected) =>
|
|
25
|
+
selected ? `${color_scheme} color scheme is selected` : `select ${color_scheme} color scheme`}
|
|
26
|
+
/>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ColorScheme } from '@fuzdev/fuz_css/theme.ts';
|
|
2
|
+
import type { OmitStrict } from '@fuzdev/fuz_util/types.ts';
|
|
2
3
|
import type { SvelteHTMLElements } from 'svelte/elements';
|
|
3
|
-
type $$ComponentProps = SvelteHTMLElements['menu'] & {
|
|
4
|
+
type $$ComponentProps = OmitStrict<SvelteHTMLElements['menu'], 'title' | 'children' | 'onselect'> & {
|
|
4
5
|
value?: {
|
|
5
6
|
color_scheme: ColorScheme;
|
|
6
7
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorSchemeInput.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ColorSchemeInput.svelte"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ColorSchemeInput.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ColorSchemeInput.svelte"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAKzD,KAAK,gBAAgB,GAAI,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC,GAAG;IACpG,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,WAAW,CAAA;KAAE,CAAC;CACtC,CAAC;AAsBH,QAAA,MAAM,gBAAgB,sDAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
class={[
|
|
70
70
|
'copy-to-clipboard',
|
|
71
71
|
rest.class,
|
|
72
|
-
{ icon_button: children ? false : icon_button, copied, failed,
|
|
72
|
+
{ icon_button: children ? false : icon_button, copied, failed, palette_c: failed }
|
|
73
73
|
]}
|
|
74
74
|
onclick={(e) => {
|
|
75
75
|
onclick?.(e); // before the internal handler, which is async
|
package/dist/Dialog.svelte
CHANGED
|
@@ -196,9 +196,13 @@
|
|
|
196
196
|
overflow: auto;
|
|
197
197
|
overscroll-behavior: contain;
|
|
198
198
|
}
|
|
199
|
-
/* the native backdrop is the dim background; fade it in on open
|
|
199
|
+
/* the native backdrop is the dim background; fade it in on open. It reads
|
|
200
|
+
fuz_css's `--backdrop_color` like a plain dialog's does, then its default
|
|
201
|
+
`--darken_60` for a variable set without it. Older browsers don't let
|
|
202
|
+
::backdrop inherit custom properties from the page, so the last fallback
|
|
203
|
+
is that value as a literal */
|
|
200
204
|
.dialog::backdrop {
|
|
201
|
-
background-color: var(--
|
|
205
|
+
background-color: var(--backdrop_color, var(--darken_60, #000000a6));
|
|
202
206
|
transition: background-color var(--duration_2) ease;
|
|
203
207
|
}
|
|
204
208
|
@starting-style {
|
|
@@ -68,8 +68,8 @@
|
|
|
68
68
|
max_width?: string;
|
|
69
69
|
/**
|
|
70
70
|
* The close button floating just outside the content surface's top-right
|
|
71
|
-
* corner. `true` (the default) renders an absolutely-positioned
|
|
72
|
-
* that closes the dialog; `false` removes it. It renders after
|
|
71
|
+
* corner. `true` (the default) renders an absolutely-positioned
|
|
72
|
+
* `.sized_sm.plain.icon_button` that closes the dialog; `false` removes it. It renders after
|
|
73
73
|
* `children`, so a content control (or an `autofocus` element) takes initial
|
|
74
74
|
* focus on open rather than the close button.
|
|
75
75
|
*
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
// into the consumer's snippet, which carries its own style scope
|
|
108
108
|
const close_button_attrs: DialogCloseButtonAttrs = {
|
|
109
109
|
type: 'button',
|
|
110
|
-
class: '
|
|
110
|
+
class: 'sized_sm plain icon_button',
|
|
111
111
|
style: 'position: absolute; top: 0; right: 0;',
|
|
112
112
|
onclick: dialog.close,
|
|
113
113
|
title: 'close',
|
|
@@ -33,8 +33,8 @@ type $$ComponentProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
|
|
|
33
33
|
max_width?: string;
|
|
34
34
|
/**
|
|
35
35
|
* The close button floating just outside the content surface's top-right
|
|
36
|
-
* corner. `true` (the default) renders an absolutely-positioned
|
|
37
|
-
* that closes the dialog; `false` removes it. It renders after
|
|
36
|
+
* corner. `true` (the default) renders an absolutely-positioned
|
|
37
|
+
* `.sized_sm.plain.icon_button` that closes the dialog; `false` removes it. It renders after
|
|
38
38
|
* `children`, so a content control (or an `autofocus` element) takes initial
|
|
39
39
|
* focus on open rather than the close button.
|
|
40
40
|
*
|
package/dist/DocsFooter.svelte
CHANGED
package/dist/HueInput.svelte
CHANGED
|
@@ -67,12 +67,12 @@
|
|
|
67
67
|
|
|
68
68
|
<style>
|
|
69
69
|
.hue-input {
|
|
70
|
-
--outline_color:
|
|
70
|
+
--outline_color: oklch(0.65 0.13 var(--hue));
|
|
71
71
|
/* TODO @many figure these variables out so they're easily customized (similar pattern in a lot of places) */
|
|
72
|
-
/* --thumb_background_color:
|
|
72
|
+
/* --thumb_background_color: oklch(0.6 0.13 var(--hue)); */
|
|
73
73
|
}
|
|
74
74
|
.preview {
|
|
75
|
-
background-color:
|
|
75
|
+
background-color: oklch(0.6 0.13 var(--hue));
|
|
76
76
|
/* mirror the `min-height: var(--input_height)` that fuz_css gives the sibling inputs,
|
|
77
77
|
so the preview tracks their height even when `--input_height` is customized */
|
|
78
78
|
min-height: var(--input_height);
|
|
@@ -88,22 +88,14 @@
|
|
|
88
88
|
}
|
|
89
89
|
.minimap-wrapper {
|
|
90
90
|
padding: 0 var(--input_padding_x);
|
|
91
|
-
background: hsl(0 50% 50%) 0%;
|
|
92
91
|
}
|
|
93
92
|
.minimap {
|
|
93
|
+
/* sweep the OKLCH hue circle at constant lightness/chroma so the strip
|
|
94
|
+
matches what the hue knobs actually produce */
|
|
94
95
|
background: linear-gradient(
|
|
95
|
-
90deg,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
hsl(72 50% 50%) 20%,
|
|
99
|
-
hsl(108 50% 50%) 30%,
|
|
100
|
-
hsl(144 50% 50%) 40%,
|
|
101
|
-
hsl(180 50% 50%) 50%,
|
|
102
|
-
hsl(216 50% 50%) 60%,
|
|
103
|
-
hsl(252 50% 50%) 70%,
|
|
104
|
-
hsl(288 50% 50%) 80%,
|
|
105
|
-
hsl(324 50% 50%) 90%,
|
|
106
|
-
hsl(360 50% 50%) 100%
|
|
96
|
+
90deg in oklch longer hue,
|
|
97
|
+
oklch(0.6 0.13 0) 0%,
|
|
98
|
+
oklch(0.6 0.13 360) 100%
|
|
107
99
|
);
|
|
108
100
|
height: var(--space_lg);
|
|
109
101
|
}
|
|
@@ -282,16 +282,16 @@ with file-type coloring. Uses svelte-docinfo's file type predicates for module c
|
|
|
282
282
|
}
|
|
283
283
|
/* TODO probably add variables/classes for these */
|
|
284
284
|
.ts {
|
|
285
|
-
--link_color: var(--
|
|
285
|
+
--link_color: var(--palette_a_50);
|
|
286
286
|
}
|
|
287
287
|
.svelte {
|
|
288
|
-
--link_color: var(--
|
|
288
|
+
--link_color: var(--palette_h_50);
|
|
289
289
|
}
|
|
290
290
|
.css {
|
|
291
|
-
--link_color: var(--
|
|
291
|
+
--link_color: var(--palette_b_50);
|
|
292
292
|
}
|
|
293
293
|
.json {
|
|
294
|
-
--link_color: var(--
|
|
294
|
+
--link_color: var(--palette_f_50);
|
|
295
295
|
}
|
|
296
296
|
/* TODO extract */
|
|
297
297
|
.declarations {
|
package/dist/ModuleLink.svelte
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
// the site-local path if `homepage_url` is unavailable.
|
|
35
35
|
const url_api = $derived((full && module?.url_api_full) || module?.url_api);
|
|
36
36
|
|
|
37
|
-
const color_class = $derived(module_path.endsWith('.svelte') ? '
|
|
37
|
+
const color_class = $derived(module_path.endsWith('.svelte') ? 'palette_h' : '');
|
|
38
38
|
|
|
39
39
|
const contextmenu_entries = $derived(module ? create_module_contextmenu(module) : undefined);
|
|
40
40
|
</script>
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
<script lang="ts" generics="T">
|
|
2
|
+
import { swallow } from '@fuzdev/fuz_util/dom.ts';
|
|
3
|
+
import type { OmitStrict } from '@fuzdev/fuz_util/types.ts';
|
|
4
|
+
import type { Snippet } from 'svelte';
|
|
5
|
+
import type { SvelteHTMLElements } from 'svelte/elements';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A horizontal menu of joined `menuitemradio` buttons with one selected -
|
|
9
|
+
* the shape `ColorSchemeInput` takes, and any other few-way pick where the
|
|
10
|
+
* options should sit one glance apart rather than behind a `select`.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
let {
|
|
16
|
+
options,
|
|
17
|
+
value = $bindable(),
|
|
18
|
+
onselect,
|
|
19
|
+
label,
|
|
20
|
+
title,
|
|
21
|
+
key = (option: T): unknown => label(option),
|
|
22
|
+
children,
|
|
23
|
+
...rest
|
|
24
|
+
}: OmitStrict<SvelteHTMLElements['menu'], 'title' | 'children' | 'onselect'> & {
|
|
25
|
+
options: Array<T>;
|
|
26
|
+
/** The selected option, compared by identity; bindable. */
|
|
27
|
+
value: T;
|
|
28
|
+
/** Called after a click selects an option. */
|
|
29
|
+
onselect?: (option: T) => void;
|
|
30
|
+
/** The display text of an option - also the default `title` and `key` source. */
|
|
31
|
+
label: (option: T) => string;
|
|
32
|
+
/** The button title, defaulting to "select X" / "X is selected" from `label`. */
|
|
33
|
+
title?: (option: T, selected: boolean) => string;
|
|
34
|
+
/** Keys the options list; defaults to the label. */
|
|
35
|
+
key?: (option: T) => unknown;
|
|
36
|
+
/** Custom button content in place of the label text. */
|
|
37
|
+
children?: Snippet<[option: T, selected: boolean]>;
|
|
38
|
+
} = $props();
|
|
39
|
+
|
|
40
|
+
const title_of = (option: T, selected: boolean): string =>
|
|
41
|
+
title
|
|
42
|
+
? title(option, selected)
|
|
43
|
+
: selected
|
|
44
|
+
? `${label(option)} is selected`
|
|
45
|
+
: `select ${label(option)}`;
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
<menu {...rest} class={['radio-menu unstyled', rest.class]}>
|
|
49
|
+
{#each options as option (key(option))}
|
|
50
|
+
{@const selected = option === value}
|
|
51
|
+
<button
|
|
52
|
+
type="button"
|
|
53
|
+
class={['radio-menu-item palette_a', { selected }]}
|
|
54
|
+
role="menuitemradio"
|
|
55
|
+
title={title_of(option, selected)}
|
|
56
|
+
aria-checked={selected}
|
|
57
|
+
onclick={(e) => {
|
|
58
|
+
swallow(e);
|
|
59
|
+
value = option;
|
|
60
|
+
onselect?.(option);
|
|
61
|
+
}}
|
|
62
|
+
>
|
|
63
|
+
<div class="content">
|
|
64
|
+
{#if children}
|
|
65
|
+
{@render children(option, selected)}
|
|
66
|
+
{:else}
|
|
67
|
+
{label(option)}
|
|
68
|
+
{/if}
|
|
69
|
+
</div>
|
|
70
|
+
</button>
|
|
71
|
+
{/each}
|
|
72
|
+
</menu>
|
|
73
|
+
|
|
74
|
+
<style>
|
|
75
|
+
.radio-menu {
|
|
76
|
+
display: flex;
|
|
77
|
+
flex-direction: row;
|
|
78
|
+
justify-content: center;
|
|
79
|
+
}
|
|
80
|
+
.content {
|
|
81
|
+
display: flex;
|
|
82
|
+
align-items: center;
|
|
83
|
+
justify-content: center;
|
|
84
|
+
padding: 0 var(--space_lg);
|
|
85
|
+
}
|
|
86
|
+
.radio-menu-item {
|
|
87
|
+
border-radius: 0;
|
|
88
|
+
}
|
|
89
|
+
.radio-menu-item:first-child {
|
|
90
|
+
border-top-left-radius: var(--border_radius, var(--border_radius_md));
|
|
91
|
+
border-bottom-left-radius: var(--border_radius, var(--border_radius_md));
|
|
92
|
+
}
|
|
93
|
+
.radio-menu-item:last-child {
|
|
94
|
+
border-top-right-radius: var(--border_radius, var(--border_radius_md));
|
|
95
|
+
border-bottom-right-radius: var(--border_radius, var(--border_radius_md));
|
|
96
|
+
}
|
|
97
|
+
</style>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { OmitStrict } from '@fuzdev/fuz_util/types.ts';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
declare function $$render<T>(): {
|
|
4
|
+
props: OmitStrict<import("svelte/elements").HTMLMenuAttributes, "children" | "title" | "onselect"> & {
|
|
5
|
+
options: Array<T>;
|
|
6
|
+
/** The selected option, compared by identity; bindable. */
|
|
7
|
+
value: T;
|
|
8
|
+
/** Called after a click selects an option. */
|
|
9
|
+
onselect?: (option: T) => void;
|
|
10
|
+
/** The display text of an option - also the default `title` and `key` source. */
|
|
11
|
+
label: (option: T) => string;
|
|
12
|
+
/** The button title, defaulting to "select X" / "X is selected" from `label`. */
|
|
13
|
+
title?: (option: T, selected: boolean) => string;
|
|
14
|
+
/** Keys the options list; defaults to the label. */
|
|
15
|
+
key?: (option: T) => unknown;
|
|
16
|
+
/** Custom button content in place of the label text. */
|
|
17
|
+
children?: Snippet<[option: T, selected: boolean]>;
|
|
18
|
+
};
|
|
19
|
+
exports: {};
|
|
20
|
+
bindings: "value";
|
|
21
|
+
slots: {};
|
|
22
|
+
events: {};
|
|
23
|
+
};
|
|
24
|
+
declare class __sveltets_Render<T> {
|
|
25
|
+
props(): ReturnType<typeof $$render<T>>['props'];
|
|
26
|
+
events(): ReturnType<typeof $$render<T>>['events'];
|
|
27
|
+
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
28
|
+
bindings(): "value";
|
|
29
|
+
exports(): {};
|
|
30
|
+
}
|
|
31
|
+
interface $$IsomorphicComponent {
|
|
32
|
+
new <T>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
|
|
33
|
+
$$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
|
|
34
|
+
} & ReturnType<__sveltets_Render<T>['exports']>;
|
|
35
|
+
<T>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
|
|
36
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
37
|
+
}
|
|
38
|
+
declare const RadioMenu: $$IsomorphicComponent;
|
|
39
|
+
type RadioMenu<T> = InstanceType<typeof RadioMenu<T>>;
|
|
40
|
+
export default RadioMenu;
|
|
41
|
+
//# sourceMappingURL=RadioMenu.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioMenu.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/RadioMenu.svelte"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,iBAAS,QAAQ,CAAC,CAAC;;iBAMR,KAAK,CAAC,CAAC,CAAC;QACjB,2DAA2D;eACpD,CAAC;QACR,8CAA8C;mBACnC,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI;QAC9B,iFAAiF;eAC1E,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM;QAC5B,iFAAiF;gBACzE,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,KAAK,MAAM;QAChD,oDAAoD;cAC9C,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO;QAC5B,wDAAwD;mBAC7C,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;;;;;;EAoD0E;AAC9H,cAAM,iBAAiB,CAAC,CAAC;IACrB,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,MAAM,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChD,QAAQ;IACR,OAAO;CACV;AAED,UAAU,qBAAqB;IAC3B,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;KAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5X,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3H,YAAY,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CACjE;AACD,QAAA,MAAM,SAAS,EAAE,qBAAmC,CAAC;AACnC,KAAK,SAAS,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,eAAe,SAAS,CAAC"}
|
package/dist/Spiders.svelte
CHANGED
|
@@ -15,16 +15,16 @@
|
|
|
15
15
|
|
|
16
16
|
const {
|
|
17
17
|
spiders = [
|
|
18
|
-
'var(--
|
|
19
|
-
'var(--
|
|
20
|
-
'var(--
|
|
21
|
-
'var(--
|
|
22
|
-
'var(--
|
|
23
|
-
'var(--
|
|
24
|
-
'var(--
|
|
25
|
-
'var(--
|
|
26
|
-
'var(--
|
|
27
|
-
'var(--
|
|
18
|
+
'var(--palette_a_50)',
|
|
19
|
+
'var(--palette_b_50)',
|
|
20
|
+
'var(--palette_c_50)',
|
|
21
|
+
'var(--palette_d_50)',
|
|
22
|
+
'var(--palette_e_50)',
|
|
23
|
+
'var(--palette_f_50)',
|
|
24
|
+
'var(--palette_g_50)',
|
|
25
|
+
'var(--palette_h_50)',
|
|
26
|
+
'var(--palette_i_50)',
|
|
27
|
+
'var(--palette_j_50)'
|
|
28
28
|
],
|
|
29
29
|
seed = minute_of_day(),
|
|
30
30
|
random = create_random_alea(seed),
|
package/dist/ThemeInput.svelte
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { swallow } from '@fuzdev/fuz_util/dom.ts';
|
|
3
|
-
import type { Theme } from '@fuzdev/fuz_css/
|
|
3
|
+
import type { Theme } from '@fuzdev/fuz_css/variable.ts';
|
|
4
4
|
import { default_themes } from '@fuzdev/fuz_css/themes.ts';
|
|
5
5
|
import type { SvelteHTMLElements } from 'svelte/elements';
|
|
6
6
|
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
<li class="row" role="none">
|
|
36
36
|
<button
|
|
37
37
|
type="button"
|
|
38
|
-
class={['theme-button
|
|
38
|
+
class={['theme-button palette_a', { selected }]}
|
|
39
39
|
role="menuitemradio"
|
|
40
40
|
aria-label="{theme.name} theme"
|
|
41
41
|
aria-checked={selected}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeInput.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ThemeInput.svelte"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ThemeInput.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ThemeInput.svelte"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAIzD,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,MAAM,CAAC,GAAG;IACrD,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IAClC,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAChC,CAAC;AAqDH,QAAA,MAAM,UAAU,sDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
|
package/dist/ThemeRoot.svelte
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
<script lang="ts">
|
|
6
6
|
import { onMount, type Snippet } from 'svelte';
|
|
7
|
-
import { render_theme_style
|
|
7
|
+
import { render_theme_style } from '@fuzdev/fuz_css/theme.ts';
|
|
8
|
+
import type { Theme } from '@fuzdev/fuz_css/variable.ts';
|
|
8
9
|
import { DEFAULT_THEME } from '@fuzdev/fuz_css/themes.ts';
|
|
9
10
|
import { DEV } from 'esm-env';
|
|
10
11
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Snippet } from 'svelte';
|
|
2
|
-
import {
|
|
2
|
+
import type { Theme } from '@fuzdev/fuz_css/variable.ts';
|
|
3
3
|
import { load_color_scheme as default_load_color_scheme, save_color_scheme as default_save_color_scheme, sync_color_scheme as default_sync_color_scheme, save_theme as default_save_theme, load_theme as default_load_theme, ThemeState } from './theme_state.svelte.js';
|
|
4
4
|
type $$ComponentProps = {
|
|
5
5
|
sync_color_scheme?: typeof default_sync_color_scheme;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeRoot.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ThemeRoot.svelte"],"names":[],"mappings":"AAMA,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"ThemeRoot.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ThemeRoot.svelte"],"names":[],"mappings":"AAMA,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIzD,OAAO,EACL,iBAAiB,IAAI,yBAAyB,EAC9C,iBAAiB,IAAI,yBAAyB,EAC9C,iBAAiB,IAAI,yBAAyB,EAC9C,UAAU,IAAI,kBAAkB,EAChC,UAAU,IAAI,kBAAkB,EAEhC,UAAU,EACV,MAAM,yBAAyB,CAAC;AAGjC,KAAK,gBAAgB,GAAI;IACxB,iBAAiB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IACrD,iBAAiB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IACrD,iBAAiB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IACrD,UAAU,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACvC,cAAc,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACnC;;;OAGG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,QAAQ,EAAE,OAAO,CAChB;QAAC,WAAW,EAAE,UAAU;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI;QAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;KAAC,CAChF,CAAC;CACF,CAAC;AAqFH,QAAA,MAAM,SAAS,sDAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
|
package/dist/alert.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// TODO move to module context?
|
|
2
2
|
export const alert_status_options = {
|
|
3
3
|
inform: { color: 'var(--text_70)', icon: 'โป' },
|
|
4
|
-
help: { color: 'var(--
|
|
5
|
-
error: { color: 'var(--
|
|
4
|
+
help: { color: 'var(--palette_b_50)', icon: 'โบ' },
|
|
5
|
+
error: { color: 'var(--negative_50)', icon: '!?' }
|
|
6
6
|
};
|
package/dist/logos.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logos.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/logos.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/logos.js
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
// TODO these can be optimized during builds, helpers and gen files?
|
|
2
2
|
/*
|
|
3
3
|
|
|
4
|
-
Logo colors are
|
|
4
|
+
Logo colors are frozen brand values, originally derived as the midpoint
|
|
5
|
+
between the light and dark mid-stops of fuz_css's pre-OKLCH palette
|
|
6
|
+
(today's `--palette_X_50`), and deliberately not re-derived since:
|
|
5
7
|
|
|
6
8
|
```css
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
#6199d1 (blue, a)
|
|
10
|
+
#3db33d (green, b)
|
|
11
|
+
#d93636 (red, c)
|
|
12
|
+
#8866cc (purple, d)
|
|
13
|
+
#d8bc31 (yellow, e)
|
|
14
|
+
#84522a (brown, f)
|
|
15
|
+
#e55d95 (pink, g)
|
|
16
|
+
#f4672f (orange, h)
|
|
17
|
+
#36e2e2 (cyan, i)
|
|
16
18
|
```
|
|
17
19
|
*/
|
|
18
20
|
export const logo_gro = {
|
|
@@ -142,7 +144,7 @@ export const logo_fuz_util = {
|
|
|
142
144
|
]
|
|
143
145
|
};
|
|
144
146
|
export const logo_tsv = {
|
|
145
|
-
label: 'a pixelated orange quill drawing a
|
|
147
|
+
label: 'a pixelated orange quill drawing a precise line',
|
|
146
148
|
fill: '#f4672f',
|
|
147
149
|
paths: [
|
|
148
150
|
{
|
package/dist/projects.js
CHANGED
|
@@ -8,7 +8,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
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
|
|
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' },
|
|
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: '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' },
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type ColorScheme
|
|
1
|
+
import { type ColorScheme } from '@fuzdev/fuz_css/theme.ts';
|
|
2
|
+
import type { Theme } from '@fuzdev/fuz_css/variable.ts';
|
|
2
3
|
export interface ThemeStateJson {
|
|
3
4
|
theme: Theme;
|
|
4
5
|
color_scheme: ColorScheme;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/theme_state.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"theme_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/theme_state.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAOzD,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAExD,qBAAa,UAAU;IACtB,KAAK,EAAE,KAAK,CAAiB;IAC7B,YAAY,EAAE,WAAW,CAAiB;gBAE9B,OAAO,CAAC,EAAE,iBAAiB;IAUvC,MAAM,IAAI,cAAc;CAMxB;AACD,eAAO,MAAM,mBAAmB;2CAAwB,UAAU;4BAAV,UAAU;uBAAV,UAAU,WAAV,UAAU;CAAG,CAAC;AAEtE,eAAO,MAAM,iBAAiB,GAAI,cAAc,WAAW,GAAG,IAAI,KAAG,IAOpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAC3D,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAE7C,eAAO,MAAM,iBAAiB,GAC7B,cAAc,WAAW,GAAG,IAAI,EAChC,YAA8B,KAC5B,IAEF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC7B,WAAU,WAAoB,EAC9B,YAA8B,KAC5B,WAA4E,CAAC;AAEhF,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,GAAG,IAAI,EAAE,YAAuB,KAAG,IAEzE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,WAAU,KAA0B,EAAE,YAAuB,KAAG,KAC3C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fuzdev/fuz_ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.210.0",
|
|
4
4
|
"description": "Svelte UI library",
|
|
5
5
|
"tagline": "friendly user zystem",
|
|
6
6
|
"glyph": "๐งถ",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@fuzdev/fuz_code": ">=0.46.0",
|
|
37
|
-
"@fuzdev/fuz_css": ">=0.
|
|
37
|
+
"@fuzdev/fuz_css": ">=0.65.0",
|
|
38
38
|
"@fuzdev/fuz_util": ">=0.65.1",
|
|
39
39
|
"@fuzdev/gro": ">=0.204.0",
|
|
40
40
|
"@fuzdev/mdz": ">=0.2.0",
|
|
@@ -63,10 +63,10 @@
|
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@changesets/changelog-git": "^0.2.1",
|
|
65
65
|
"@fuzdev/blake3-wasm": "^0.2.0",
|
|
66
|
-
"@fuzdev/fuz_code": "^0.
|
|
67
|
-
"@fuzdev/fuz_css": "^0.
|
|
66
|
+
"@fuzdev/fuz_code": "^0.50.0",
|
|
67
|
+
"@fuzdev/fuz_css": "^0.65.0",
|
|
68
68
|
"@fuzdev/fuz_util": "^0.69.0",
|
|
69
|
-
"@fuzdev/gro": "^0.
|
|
69
|
+
"@fuzdev/gro": "^0.213.0",
|
|
70
70
|
"@fuzdev/mdz": "^0.3.0",
|
|
71
71
|
"@ryanatkn/eslint-config": "^0.12.2",
|
|
72
72
|
"@sveltejs/adapter-static": "^3.0.10",
|
package/src/lib/alert.ts
CHANGED
|
@@ -9,6 +9,6 @@ export interface AlertStatusOptions {
|
|
|
9
9
|
|
|
10
10
|
export const alert_status_options: Record<AlertStatus, AlertStatusOptions> = {
|
|
11
11
|
inform: { color: 'var(--text_70)', icon: 'โป' },
|
|
12
|
-
help: { color: 'var(--
|
|
13
|
-
error: { color: 'var(--
|
|
12
|
+
help: { color: 'var(--palette_b_50)', icon: 'โบ' },
|
|
13
|
+
error: { color: 'var(--negative_50)', icon: '!?' }
|
|
14
14
|
};
|
package/src/lib/logos.ts
CHANGED
|
@@ -4,18 +4,20 @@ import type { SvgData } from './svg.ts';
|
|
|
4
4
|
|
|
5
5
|
/*
|
|
6
6
|
|
|
7
|
-
Logo colors are
|
|
7
|
+
Logo colors are frozen brand values, originally derived as the midpoint
|
|
8
|
+
between the light and dark mid-stops of fuz_css's pre-OKLCH palette
|
|
9
|
+
(today's `--palette_X_50`), and deliberately not re-derived since:
|
|
8
10
|
|
|
9
11
|
```css
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
#6199d1 (blue, a)
|
|
13
|
+
#3db33d (green, b)
|
|
14
|
+
#d93636 (red, c)
|
|
15
|
+
#8866cc (purple, d)
|
|
16
|
+
#d8bc31 (yellow, e)
|
|
17
|
+
#84522a (brown, f)
|
|
18
|
+
#e55d95 (pink, g)
|
|
19
|
+
#f4672f (orange, h)
|
|
20
|
+
#36e2e2 (cyan, i)
|
|
19
21
|
```
|
|
20
22
|
*/
|
|
21
23
|
|
|
@@ -159,7 +161,7 @@ export const logo_fuz_util = {
|
|
|
159
161
|
} satisfies SvgData;
|
|
160
162
|
|
|
161
163
|
export const logo_tsv = {
|
|
162
|
-
label: 'a pixelated orange quill drawing a
|
|
164
|
+
label: 'a pixelated orange quill drawing a precise line',
|
|
163
165
|
fill: '#f4672f',
|
|
164
166
|
paths: [
|
|
165
167
|
{
|
package/src/lib/projects.ts
CHANGED
|
@@ -34,7 +34,7 @@ export const project_items: Array<ProjectItem> = [
|
|
|
34
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'},
|
|
35
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'},
|
|
36
36
|
{name: 'fuz_ui', url: 'https://ui.fuz.dev/', logo: logo_fuz_ui, description: 'Svelte UI library', glyph: '๐งถ', color_class: 'color_c_50'},
|
|
37
|
-
{name: 'fuz_template', url: 'https://template.fuz.dev/', logo: logo_fuz_template, description: 'a
|
|
37
|
+
{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'},
|
|
38
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'},
|
|
39
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'},
|
|
40
40
|
{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'},
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { color_schemes, type ColorScheme
|
|
1
|
+
import { color_schemes, type ColorScheme } from '@fuzdev/fuz_css/theme.ts';
|
|
2
|
+
import type { Theme } from '@fuzdev/fuz_css/variable.ts';
|
|
2
3
|
import { default_themes } from '@fuzdev/fuz_css/themes.ts';
|
|
3
4
|
import { BROWSER } from 'esm-env';
|
|
4
5
|
|