@fuzdev/fuz_ui 0.208.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.
Files changed (61) hide show
  1. package/dist/ApiModulesList.svelte +1 -1
  2. package/dist/ColorSchemeInput.svelte +11 -49
  3. package/dist/ColorSchemeInput.svelte.d.ts +2 -1
  4. package/dist/ColorSchemeInput.svelte.d.ts.map +1 -1
  5. package/dist/CopyToClipboard.svelte +1 -1
  6. package/dist/Dialog.svelte +6 -2
  7. package/dist/DialogContent.svelte +3 -3
  8. package/dist/DialogContent.svelte.d.ts +2 -2
  9. package/dist/DocsFooter.svelte +1 -1
  10. package/dist/EcosystemLinks.svelte +2 -2
  11. package/dist/HueInput.svelte +8 -16
  12. package/dist/LibraryDetail.svelte +4 -4
  13. package/dist/ModuleLink.svelte +1 -1
  14. package/dist/ProjectLinks.svelte +3 -32
  15. package/dist/ProjectLinks.svelte.d.ts.map +1 -1
  16. package/dist/RadioMenu.svelte +97 -0
  17. package/dist/RadioMenu.svelte.d.ts +41 -0
  18. package/dist/RadioMenu.svelte.d.ts.map +1 -0
  19. package/dist/Spiders.svelte +10 -10
  20. package/dist/ThemeInput.svelte +2 -2
  21. package/dist/ThemeInput.svelte.d.ts +1 -1
  22. package/dist/ThemeInput.svelte.d.ts.map +1 -1
  23. package/dist/ThemeRoot.svelte +2 -1
  24. package/dist/ThemeRoot.svelte.d.ts +1 -1
  25. package/dist/ThemeRoot.svelte.d.ts.map +1 -1
  26. package/dist/alert.js +2 -2
  27. package/dist/logos.d.ts +1 -1
  28. package/dist/logos.d.ts.map +1 -1
  29. package/dist/logos.js +14 -12
  30. package/dist/projects.d.ts +0 -3
  31. package/dist/projects.d.ts.map +1 -1
  32. package/dist/projects.js +4 -4
  33. package/dist/sparkline.d.ts +1 -1
  34. package/dist/sparkline.js +1 -1
  35. package/dist/theme_state.svelte.d.ts +2 -1
  36. package/dist/theme_state.svelte.d.ts.map +1 -1
  37. package/package.json +8 -8
  38. package/src/lib/alert.ts +2 -2
  39. package/src/lib/logos.ts +14 -12
  40. package/src/lib/projects.ts +4 -7
  41. package/src/lib/sparkline.ts +1 -1
  42. package/src/lib/theme_state.svelte.ts +2 -1
  43. package/dist/ProjectActivityChart.svelte +0 -137
  44. package/dist/ProjectActivityChart.svelte.d.ts +0 -30
  45. package/dist/ProjectActivityChart.svelte.d.ts.map +0 -1
  46. package/dist/project_stats.d.ts +0 -121
  47. package/dist/project_stats.d.ts.map +0 -1
  48. package/dist/project_stats.js +0 -153
  49. package/dist/project_stats_data.d.ts +0 -3
  50. package/dist/project_stats_data.d.ts.map +0 -1
  51. package/dist/project_stats_data.js +0 -476
  52. package/dist/project_stats_update.task.d.ts +0 -4
  53. package/dist/project_stats_update.task.d.ts.map +0 -1
  54. package/dist/project_stats_update.task.js +0 -50
  55. package/dist/publish.task.d.ts +0 -3
  56. package/dist/publish.task.d.ts.map +0 -1
  57. package/dist/publish.task.js +0 -23
  58. package/src/lib/project_stats.ts +0 -220
  59. package/src/lib/project_stats_data.ts +0 -479
  60. package/src/lib/project_stats_update.task.ts +0 -53
  61. package/src/lib/publish.task.ts +0 -22
@@ -25,7 +25,7 @@
25
25
  <TomeSection>
26
26
  <TomeSectionHeader text="Modules" />
27
27
  {#if modules.length === 0}
28
- <p class="color_c">No modules match your search.</p>
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
- <!-- TODO maybe support menubar aria
19
- https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/menubar_role -->
20
- <menu {...rest} class="color-scheme-control unstyled {rest.class}">
21
- {#each color_schemes as color_scheme (color_scheme)}
22
- {@const selected = color_scheme === value.color_scheme}
23
- <button
24
- type="button"
25
- class={['color-scheme color_a', { selected }]}
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":"AAIA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAIzD,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,MAAM,CAAC,GAAG;IACrD,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,WAAW,CAAA;KAAE,CAAC;CACtC,CAAC;AAmCH,QAAA,MAAM,gBAAgB,sDAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
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, color_c: 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
@@ -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(--dialog_bg, var(--darken_60));
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 `.sm.plain.icon_button`
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: 'sm plain icon_button',
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 `.sm.plain.icon_button`
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
  *
@@ -64,7 +64,7 @@
64
64
  border: var(--border_width) double var(--border_color);
65
65
  }
66
66
  .logo a:hover {
67
- --border_color: var(--color_a_50);
67
+ --border_color: var(--palette_a_50);
68
68
  }
69
69
  .root-url {
70
70
  /* TODO messy */
@@ -14,8 +14,8 @@
14
14
  <ul {...rest}>
15
15
  <li>
16
16
  <!-- eslint-disable-next-line svelte/no-navigation-without-resolve -->
17
- <a rel="me" href={FUZ_DEV_URL} class={{ selected: selected === 'fuz.dev' }}>fuz.dev</a>
18
- - the Fuz stack homepage{#if selected === 'fuz.dev'}, you are here{/if}
17
+ <a rel="me" href={FUZ_DEV_URL} class={{ selected: selected === 'fuz.dev' }}>fuz.dev</a> - the
18
+ Fuz stack homepage{#if selected === 'fuz.dev'}, you are here{/if}
19
19
  </li>
20
20
  <li>
21
21
  GitHub as <a rel="me" href="https://github.com/fuzdev">@fuzdev</a>
@@ -67,12 +67,12 @@
67
67
 
68
68
  <style>
69
69
  .hue-input {
70
- --outline_color: hsl(var(--hue) 50% 60%);
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: hsl(var(--hue) 50% 50%); */
72
+ /* --thumb_background_color: oklch(0.6 0.13 var(--hue)); */
73
73
  }
74
74
  .preview {
75
- background-color: hsl(var(--hue) 50% 50%);
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
- hsl(0 50% 50%) 0%,
97
- hsl(36 50% 50%) 10%,
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(--color_a_50);
285
+ --link_color: var(--palette_a_50);
286
286
  }
287
287
  .svelte {
288
- --link_color: var(--color_h_50);
288
+ --link_color: var(--palette_h_50);
289
289
  }
290
290
  .css {
291
- --link_color: var(--color_b_50);
291
+ --link_color: var(--palette_b_50);
292
292
  }
293
293
  .json {
294
- --link_color: var(--color_f_50);
294
+ --link_color: var(--palette_f_50);
295
295
  }
296
296
  /* TODO extract */
297
297
  .declarations {
@@ -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') ? 'color_h' : '');
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>
@@ -1,15 +1,6 @@
1
1
  <script lang="ts">
2
2
  import Svg from './Svg.svelte';
3
- import Sparkline from './Sparkline.svelte';
4
3
  import { project_items, type ProjectItem } from './projects.js';
5
- import { project_stats_data } from './project_stats_data.js';
6
- import { project_stats_label, project_stats_to_monthly_series } from './project_stats.js';
7
-
8
- const { series, max } = project_stats_to_monthly_series(project_stats_data);
9
- const series_by_name = new Map(series.map((s) => [s.name, s.counts]));
10
- const label_by_name = new Map(
11
- project_stats_data.projects.map((p) => [p.name, project_stats_label(p)])
12
- );
13
4
  </script>
14
5
 
15
6
  <h2 class="mt_0 mb_xl2">Packages</h2>
@@ -18,36 +9,19 @@
18
9
  {@render package_thumbnail(project_item)}
19
10
  {/each}
20
11
  </menu>
21
- <small class="display:block text-align:right">
22
- the charts show public commit activity<br />since Gro started in August 2019 -<br />most of the
23
- repos created in 2023-2024 are<br />history-resetting forks from 2020~2023 attempts
24
- </small>
25
12
 
26
13
  {#snippet package_thumbnail(project_item: ProjectItem)}
27
- {@const counts = series_by_name.get(project_item.name)}
28
- <!-- eslint-disable svelte/no-navigation-without-resolve -->
29
- <a
30
- class="thumbnail row align-items:start shade_00 px_md py_xs border_radius_sm mb_lg"
31
- href={project_item.url}
32
- >
14
+ <!-- eslint-disable-next-line svelte/no-navigation-without-resolve -->
15
+ <a class="thumbnail row shade_00 px_md py_xs border_radius_sm mb_lg" href={project_item.url}>
33
16
  <Svg shrink={false} data={project_item.logo} size="var(--icon_size_lg)" />
34
17
  <div class="pl_lg width_atmost_sm">
35
- <div class="thumbnail-name row {project_item.color_class}">
36
- {project_item.name}
37
- {#if counts}
38
- {@const stats_label = label_by_name.get(project_item.name)}
39
- <div class="thumbnail-sparkline pl_md {project_item.color_class}" title={stats_label}>
40
- <Sparkline values={counts} {max} scale={1 / 3} end_dot label={stats_label} />
41
- </div>
42
- {/if}
43
- </div>
18
+ <div class="thumbnail-name {project_item.color_class}">{project_item.name}</div>
44
19
  <div class="thumbnail-description font_size_md text_70 font-weight:500">
45
20
  {project_item.description}
46
21
  {project_item.glyph}
47
22
  </div>
48
23
  </div>
49
24
  </a>
50
- <!-- eslint-enable svelte/no-navigation-without-resolve -->
51
25
  {/snippet}
52
26
 
53
27
  <style>
@@ -84,7 +58,4 @@
84
58
  transparent
85
59
  );
86
60
  }
87
- .thumbnail-sparkline {
88
- margin-left: auto;
89
- }
90
61
  </style>
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectLinks.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ProjectLinks.svelte"],"names":[],"mappings":"AA8DA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,YAAY;;kBAA+E,CAAC;AAChF,KAAK,YAAY,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;AACxD,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"ProjectLinks.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ProjectLinks.svelte"],"names":[],"mappings":"AAoCA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,YAAY;;kBAA+E,CAAC;AAChF,KAAK,YAAY,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;AACxD,eAAe,YAAY,CAAC"}
@@ -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"}
@@ -15,16 +15,16 @@
15
15
 
16
16
  const {
17
17
  spiders = [
18
- 'var(--color_a_50)',
19
- 'var(--color_b_50)',
20
- 'var(--color_c_50)',
21
- 'var(--color_d_50)',
22
- 'var(--color_e_50)',
23
- 'var(--color_f_50)',
24
- 'var(--color_g_50)',
25
- 'var(--color_h_50)',
26
- 'var(--color_i_50)',
27
- 'var(--color_j_50)'
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),
@@ -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/theme.ts';
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 color_a', { selected }]}
38
+ class={['theme-button palette_a', { selected }]}
39
39
  role="menuitemradio"
40
40
  aria-label="{theme.name} theme"
41
41
  aria-checked={selected}
@@ -1,4 +1,4 @@
1
- import type { Theme } from '@fuzdev/fuz_css/theme.ts';
1
+ import type { Theme } from '@fuzdev/fuz_css/variable.ts';
2
2
  import type { SvelteHTMLElements } from 'svelte/elements';
3
3
  type $$ComponentProps = SvelteHTMLElements['menu'] & {
4
4
  selected_theme?: {
@@ -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,0BAA0B,CAAC;AAEtD,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"}
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"}
@@ -4,7 +4,8 @@
4
4
 
5
5
  <script lang="ts">
6
6
  import { onMount, type Snippet } from 'svelte';
7
- import { render_theme_style, type Theme } from '@fuzdev/fuz_css/theme.ts';
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 { type Theme } from '@fuzdev/fuz_css/theme.ts';
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;AAC/C,OAAO,EAAsB,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAI1E,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;AAoFH,QAAA,MAAM,SAAS,sDAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,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(--color_b_50)', icon: '➺' },
5
- error: { color: 'var(--color_c_50)', icon: '!?' }
4
+ help: { color: 'var(--palette_b_50)', icon: '➺' },
5
+ error: { color: 'var(--negative_50)', icon: '!?' }
6
6
  };
package/dist/logos.d.ts CHANGED
@@ -55,7 +55,7 @@ export declare const logo_fuz_mastodon: {
55
55
  d: string;
56
56
  }[];
57
57
  };
58
- export declare const logo_fuz_gitops: {
58
+ export declare const logo_fuz_repos: {
59
59
  label: string;
60
60
  fill: string;
61
61
  paths: {
@@ -1 +1 @@
1
- {"version":3,"file":"logos.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/logos.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,QAAQ;;;;;;CAgCF,CAAC;AAEpB,eAAO,MAAM,QAAQ;;;;;;CAQF,CAAC;AAEpB,eAAO,MAAM,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,eAAe;;;;;;CAIT,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,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 the midpoint between the light and dark versions of color variant 5:
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
- --color_a: #6199d1;
8
- --color_b: #3db33d;
9
- --color_c: #d93636;
10
- --color_d: #8866cc;
11
- --color_e: #d8bc31;
12
- --color_f: #84522a; // TODO this one isn't the midpoint bc fuz_css's color needs tweaking, too light in dark mode
13
- --color_g: #e55d95;
14
- --color_h: #f4672f;
15
- --color_i: #36e2e2;
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 = {
@@ -88,7 +90,7 @@ export const logo_fuz_mastodon = {
88
90
  fill: '#8866cc',
89
91
  paths: logo_fuz.paths
90
92
  };
91
- export const logo_fuz_gitops = {
93
+ export const logo_fuz_repos = {
92
94
  label: 'a friendly blue spider facing you',
93
95
  fill: '#6199d1',
94
96
  paths: logo_fuz.paths
@@ -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 straight line',
147
+ label: 'a pixelated orange quill drawing a precise line',
146
148
  fill: '#f4672f',
147
149
  paths: [
148
150
  {