@glimstone/core 0.0.0-stage → 4.0.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 (72) hide show
  1. package/README.md +29 -2
  2. package/check-bare-buttons.mjs +78 -0
  3. package/dist/appMarks.d.ts +12 -0
  4. package/dist/appMarks.js +43 -0
  5. package/dist/appearance.d.ts +176 -0
  6. package/dist/appearance.js +343 -0
  7. package/dist/badge.d.ts +24 -0
  8. package/dist/badge.js +46 -0
  9. package/dist/bubblePosition.d.ts +32 -0
  10. package/dist/bubblePosition.js +32 -0
  11. package/dist/button.d.ts +50 -0
  12. package/dist/button.js +83 -0
  13. package/dist/colorPicker.d.ts +25 -0
  14. package/dist/colorPicker.js +230 -0
  15. package/dist/controls.d.ts +96 -0
  16. package/dist/controls.js +166 -0
  17. package/dist/dialog.d.ts +14 -0
  18. package/dist/dialog.js +56 -0
  19. package/dist/disco.d.ts +37 -0
  20. package/dist/disco.js +118 -0
  21. package/dist/discoLoop.d.ts +22 -0
  22. package/dist/discoLoop.js +79 -0
  23. package/dist/flagEmoji.d.ts +11 -0
  24. package/dist/flagEmoji.js +25 -0
  25. package/dist/index.d.ts +31 -0
  26. package/dist/index.js +31 -0
  27. package/dist/infoTile.d.ts +70 -0
  28. package/dist/infoTile.js +72 -0
  29. package/dist/inputModality.d.ts +3 -0
  30. package/dist/inputModality.js +20 -0
  31. package/dist/marks.d.ts +69 -0
  32. package/dist/marks.js +82 -0
  33. package/dist/media.d.ts +7 -0
  34. package/dist/media.js +17 -0
  35. package/dist/motionNative.d.ts +58 -0
  36. package/dist/motionNative.js +60 -0
  37. package/dist/numberField.d.ts +32 -0
  38. package/dist/numberField.js +139 -0
  39. package/dist/paypal.d.ts +42 -0
  40. package/dist/paypal.js +94 -0
  41. package/dist/portalHue.d.ts +10 -0
  42. package/dist/portalHue.js +27 -0
  43. package/dist/readmeButton.d.ts +37 -0
  44. package/dist/readmeButton.js +63 -0
  45. package/dist/segmentLayout.d.ts +34 -0
  46. package/dist/segmentLayout.js +39 -0
  47. package/dist/select.d.ts +29 -0
  48. package/dist/select.js +182 -0
  49. package/dist/selectModel.d.ts +89 -0
  50. package/dist/selectModel.js +141 -0
  51. package/dist/selectScroll.d.ts +19 -0
  52. package/dist/selectScroll.js +61 -0
  53. package/dist/selector.d.ts +215 -0
  54. package/dist/selector.js +418 -0
  55. package/dist/sidebarRow.d.ts +25 -0
  56. package/dist/sidebarRow.js +44 -0
  57. package/dist/storage.d.ts +3 -0
  58. package/dist/storage.js +11 -0
  59. package/dist/tipBubble.d.ts +12 -0
  60. package/dist/tipBubble.js +36 -0
  61. package/dist/toastEngine.d.ts +59 -0
  62. package/dist/toastEngine.js +83 -0
  63. package/dist/tooltip.d.ts +13 -0
  64. package/dist/tooltip.js +145 -0
  65. package/dist/version.d.ts +5 -0
  66. package/dist/version.js +5 -0
  67. package/glyph-map.md +375 -0
  68. package/glyphs.json +2225 -0
  69. package/glyphs.md +298 -0
  70. package/package.json +23 -4
  71. package/tailwind-theme.css +107 -0
  72. package/tokens.css +3818 -0
package/README.md CHANGED
@@ -1,3 +1,30 @@
1
- # Temporary Holding Version
1
+ # @glimstone/core
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ The part of [GlimStone](https://junkerderprovinz.github.io/glimstone/) that
4
+ needs no framework: the tokens, the glyphs, and the logic of every engine and
5
+ component. `@glimstone/react` and `@glimstone/vue` are thin wrappers around it,
6
+ and a page without a framework, such as an Unraid plugin, uses it directly.
7
+
8
+ ```sh
9
+ npm install @glimstone/core
10
+ ```
11
+
12
+ - `tokens.css` is the palette and every component class as CSS custom
13
+ properties, where the shape, colour and motion engines resolve to values.
14
+ Load it before the app's own stylesheet. `tailwind-theme.css` maps the tokens
15
+ onto Tailwind v4 utilities for an app that uses Tailwind.
16
+ - `glyphs.json` and `glyphs.md` are the glyph assortment: which mark means
17
+ what, where each comes from, and the sizing rules that make them one set.
18
+ - The engines: `appearance` (shape, accent, rainbow, motion), `controls` (the
19
+ label engine and its width stages) and `setStoragePrefix`, which keeps an
20
+ app's own names for what it stores.
21
+ - What a component shows, as functions: `buttonView`, `badgeClassName`, the
22
+ select's list model, the Info tile's version links and update check, the
23
+ README button's classes, where a bubble goes, a dialog's keys and the toast
24
+ queue.
25
+ - What runs without a framework: `mountSelect`, `wireTooltips` with
26
+ `infoIcon`, `openColorPickerPopover`, `attachNumberSteppers`,
27
+ `enableSelectScroll` and `flagEmoji`.
28
+
29
+ The whole language, with the reasons behind each rule, is in
30
+ [docs/design-language.md](https://github.com/junkerderprovinz/glimstone/blob/main/docs/design-language.md).
@@ -0,0 +1,78 @@
1
+ // A button that shows words wears a fill (rule 38).
2
+ //
3
+ // A button without a ground and with words beside its glyph reads as a line of
4
+ // text with an icon in front. A bare button may only be a glyph alone, in a
5
+ // toolbar or a list row.
6
+ //
7
+ // Each <Button> is read from its opening tag to its end. It fails when the tag
8
+ // carries the bare kind and either a prop that prints its title as words, or
9
+ // children, which are its words.
10
+ //
11
+ // Not checked: a kind chosen at run time, a lowercase <button> styled by hand,
12
+ // and pages that draw their buttons in plain CSS.
13
+ //
14
+ // Run: node check-bare-buttons.mjs [--bare='kind="ghost"'] [--worded=labelled] <dir>...
15
+ // Every .tsx under each directory is read, test files aside. --bare is the
16
+ // attribute that makes a Button bare, and --worded a comma-separated list of
17
+ // props that show words without children.
18
+ import { readdirSync, readFileSync, statSync } from 'node:fs';
19
+ import { join, relative } from 'node:path';
20
+
21
+ const flags = new Map();
22
+ const dirs = [];
23
+ for (const arg of process.argv.slice(2)) {
24
+ const m = /^--(bare|worded)=(.*)$/.exec(arg);
25
+ if (m) flags.set(m[1], m[2]);
26
+ else dirs.push(arg);
27
+ }
28
+ if (!dirs.length) {
29
+ console.error('usage: node check-bare-buttons.mjs [--bare=ATTR] [--worded=PROP,...] <dir>...');
30
+ process.exit(2);
31
+ }
32
+ const bare = flags.get('bare') ?? 'kind="ghost"';
33
+ const worded = (flags.get('worded') ?? 'labelled').split(',').filter(Boolean);
34
+ const escape = (s) => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
35
+ const bareRe = new RegExp(`\\s${escape(bare)}`);
36
+ const wordedRe = worded.length ? new RegExp(`\\s(?:${worded.map(escape).join('|')})(?=[\\s=/>])`) : null;
37
+
38
+ function* sources(dir) {
39
+ for (const name of readdirSync(dir)) {
40
+ const p = join(dir, name);
41
+ if (statSync(p).isDirectory()) {
42
+ if (name !== 'node_modules') yield* sources(p);
43
+ } else if (p.endsWith('.tsx') && !p.endsWith('.test.tsx')) yield p;
44
+ }
45
+ }
46
+
47
+ /** The opening tag starting at i, up to the > that closes it outside braces. */
48
+ function openingTag(text, i) {
49
+ let depth = 0;
50
+ for (let j = i; j < text.length; j++) {
51
+ const c = text[j];
52
+ if (c === '{') depth++;
53
+ else if (c === '}') depth--;
54
+ else if (c === '>' && depth === 0) return text.slice(i, j + 1);
55
+ }
56
+ return text.slice(i);
57
+ }
58
+
59
+ const problems = [];
60
+ for (const dir of dirs) {
61
+ for (const file of sources(dir)) {
62
+ const text = readFileSync(file, 'utf8');
63
+ for (const m of text.matchAll(/<Button\b/g)) {
64
+ const tag = openingTag(text, m.index);
65
+ if (!bareRe.test(tag)) continue;
66
+ if (!wordedRe?.test(tag) && tag.endsWith('/>')) continue;
67
+ const line = text.slice(0, m.index).split('\n').length;
68
+ problems.push(`${relative(process.cwd(), file)}:${line} a bare Button with words; give it a fill, or drop the words`);
69
+ }
70
+ }
71
+ }
72
+
73
+ if (problems.length) {
74
+ console.error(problems.join('\n'));
75
+ console.error(`\n${problems.length} bare button(s) with words.`);
76
+ process.exit(1);
77
+ }
78
+ console.log('ok: every Button that shows words has a fill');
@@ -0,0 +1,12 @@
1
+ export declare const PLAY_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><linearGradient id=\"glim-play-a\" x1=\"60.6\" x2=\"276.6\" y1=\"45.4\" y2=\"261.4\" gradientUnits=\"userSpaceOnUse\"><stop offset=\"0\" stop-color=\"#00a0ff\"/><stop offset=\".01\" stop-color=\"#00a1ff\"/><stop offset=\".26\" stop-color=\"#00beff\"/><stop offset=\".51\" stop-color=\"#00d2ff\"/><stop offset=\".76\" stop-color=\"#00dfff\"/><stop offset=\"1\" stop-color=\"#00e3ff\"/></linearGradient><linearGradient id=\"glim-play-b\" x1=\"446.6\" x2=\"34.3\" y1=\"256\" y2=\"256\" gradientUnits=\"userSpaceOnUse\"><stop offset=\"0\" stop-color=\"#ffe000\"/><stop offset=\".41\" stop-color=\"#ffbd00\"/><stop offset=\".78\" stop-color=\"#ffa500\"/><stop offset=\"1\" stop-color=\"#ff9c00\"/></linearGradient><linearGradient id=\"glim-play-c\" x1=\"349.6\" x2=\"6.9\" y1=\"295.1\" y2=\"637.8\" gradientUnits=\"userSpaceOnUse\"><stop offset=\"0\" stop-color=\"#ff3a44\"/><stop offset=\"1\" stop-color=\"#c31162\"/></linearGradient><linearGradient id=\"glim-play-d\" x1=\"22.9\" x2=\"176\" y1=\"-38.1\" y2=\"115\" gradientUnits=\"userSpaceOnUse\"><stop offset=\"0\" stop-color=\"#32a071\"/><stop offset=\".07\" stop-color=\"#2da771\"/><stop offset=\".48\" stop-color=\"#15cf74\"/><stop offset=\".8\" stop-color=\"#06e775\"/><stop offset=\"1\" stop-color=\"#00f076\"/></linearGradient><path fill=\"var(--mark-ink, url(#glim-play-a))\" d=\"M39.6 24.1c-5.6 5.9-8.9 15.1-8.9 27v409.8c0 11.9 3.3 21.1 8.9 27l1.4 1.3L270 259.7v-5.4L41 25.4z\"/><path fill=\"var(--mark-ink, url(#glim-play-b))\" d=\"m346.3 336.3-76.3-76.6v-5.4l76.4-76.5 1.7 1L438.5 231c25.8 14.7 25.8 38.7 0 53.4l-90.4 51.4z\"/><path fill=\"var(--mark-ink, url(#glim-play-c))\" d=\"M348 335.3 270 257 39.6 487.9c8.5 9 22.5 10.1 38.4 1.1z\"/><path fill=\"var(--mark-ink, url(#glim-play-d))\" d=\"M348 178.7 78 25.1C62.1 16 48.1 17.2 39.6 26.2L270 257z\"/></svg>";
2
+ export declare const FDROID_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-0.05 -0.52 48.1 48.1\"><path fill=\"none\" stroke=\"var(--mark-ink, #769616)\" stroke-width=\"2.5\" stroke-linecap=\"round\" d=\"M2.589 2.5 6.839 8M45.411 2.5 41.161 8\"/><path fill=\"var(--mark-ink, #aeea00)\" fill-rule=\"evenodd\" d=\"M8 6h32a3 3 0 0 1 3 3v7a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3V9a3 3 0 0 1 3-3zm3 7.125a3.375 3.375 0 1 0 6.75 0 3.375 3.375 0 1 0-6.75 0zm19.5 0a3.375 3.375 0 1 0 6.75 0 3.375 3.375 0 1 0-6.75 0z\"/><rect x=\"5\" y=\"20\" width=\"38\" height=\"26\" rx=\"3\" fill=\"var(--mark-ink, #1976d2)\"/><circle cx=\"24\" cy=\"33\" r=\"9.55\" fill=\"none\" stroke=\"var(--mark-cut, #0d47a1)\" stroke-width=\"1.9\"/><path fill=\"var(--mark-cut, #0d47a1)\" d=\"m 24,26.75c-2.880662,0 -5.319789,1.984685 -6.033203,4.650391l3.212891,0C21.734004,30.415044 22.774798,29.75 24,29.75c1.812692,0 3.25,1.437308 3.25,3.25 0,1.812693 -1.437308,3.25 -3.25,3.25 -1.307381,0 -2.411251,-0.75269 -2.929688,-1.849609l-3.154296,0C18.558263,37.166146 21.04791,39.25 24,39.25c3.434013,0 6.25,-2.815987 6.25,-6.25 0,-3.434012 -2.815987,-6.25 -6.25,-6.25 z\"/></svg>";
3
+ export declare const ANDROID_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0.03 112.41 512 287.17\"><path fill=\"currentColor\" d=\"m447.9 460.9 42.5-73.6c2.4-4.1.9-9.4-3.1-11.8-4.1-2.4-9.4-1-11.7 3.1l-43 74.5c-32.8-15-69.8-23.4-109.5-23.4s-76.7 8.4-109.5 23.4l-43-74.5c-2.4-4.1-7.6-5.5-11.8-3.1-4.1 2.4-5.5 7.6-3.1 11.8l42.5 73.6C124.8 500.6 75.2 574.7 67 661.5h512c-8.2-86.8-57.8-160.9-131.1-200.6M205.4 589.6c-11.9 0-21.5-9.6-21.5-21.5s9.6-21.5 21.5-21.5 21.5 9.6 21.5 21.5c0 11.8-9.6 21.5-21.5 21.5m235.1 0c-11.9 0-21.5-9.6-21.5-21.5s9.6-21.5 21.5-21.5 21.5 9.6 21.5 21.5c0 11.8-9.7 21.5-21.5 21.5\" transform=\"translate(-66.97 -261.92)\"/></svg>";
4
+ export declare const DOCKER_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-0.07 71.3 511.97 369.5\"><path fill=\"currentColor\" d=\"M501.4 212.3c-11.5-8-38-11-58.6-7-2.4-20-13.5-37.5-32.7-53l-11-8-7.7 11.5c-9.6 15-14.4 36-13 56 .5 7 2.9 19.5 10.1 30.5-6.7 4-20.7 9-38.9 9H2.3l-1 4c-3.4 20-3.4 82.5 36 130.5 29.8 36.5 74 55 132.1 55 125.9 0 219.1-60.5 262.8-170 17.3.5 54.3 0 73-37.5.5-1 1.4-3 4.8-10.5l1.9-4zM280 71.3h-52.8v50H280zm0 60h-52.8v50H280zm-62.5 0h-52.8v50h52.8zm-62.4 0h-52.8v50h52.8zm-62.5 60H39.8v50h52.8zm62.5 0h-52.8v50h52.8zm62.4 0h-52.8v50h52.8zm62.5 0h-52.8v50H280zm62.4 0h-52.8v50h52.8z\"/></svg>";
5
+ export declare const UNRAID_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 108.3 512 295.4\"><linearGradient id=\"glim-unraid-a\" x1=\"91.058\" x2=\"420.942\" y1=\"93.45\" y2=\"423.333\" gradientTransform=\"matrix(1 0 0 -1 0 514.2)\" gradientUnits=\"userSpaceOnUse\"><stop offset=\"0\" style=\"stop-color:var(--brand-unraid-from)\"/><stop offset=\"1\" style=\"stop-color:var(--brand-unraid-to)\"/></linearGradient><path fill=\"url(#glim-unraid-a)\" d=\"M243.3 181.9h24.9v147.8h-24.9zM24.9 329.7H0V181.9h24.9zm96.8 17.6h24.9v56.4h-24.9zM60.6 284h24.9v91.3H60.6zm121.7 0h24.9v91.3h-24.9zm304.8-102.1H512v147.8h-24.9zm-96.8-17.2h-24.9v-56.4h24.9zm61.1 62.9h-24.9v-91h24.9zm-122.1 0h-24.9v-91h24.9z\"/></svg>";
6
+ export declare const ZIP_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\"><path fill=\"currentColor\" d=\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8l14.8 0c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0z\"/></svg>";
7
+ export declare const WINDOWS_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M0 0h242.7v242.6H0zm269.3 0H512v242.6H269.3zM0 269.3h242.7V512H0zm269.3 0H512V512H269.3\" fill=\"currentColor\"/></svg>";
8
+ export declare const APPLE_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"47.6 0 416.8 512\"><path d=\"M451.1 174.6c-3 2.3-55.4 31.8-55.4 97.5 0 76 66.7 102.9 68.7 103.5-.3 1.6-10.6 36.8-35.2 72.7-21.9 31.5-44.8 63-79.6 63s-43.8-20.2-84-20.2c-39.2 0-53.1 20.9-84.9 20.9s-54.1-29.2-79.6-65c-29.6-42.1-53.5-107.5-53.5-169.5 0-99.5 64.7-152.3 128.4-152.3 33.8 0 62.1 22.2 83.3 22.2 20.2 0 51.8-23.6 90.3-23.6 14.6 0 67 1.3 101.5 50.8m-119.8-93c15.9-18.9 27.2-45.1 27.2-71.3 0-3.6-.3-7.3-1-10.3-25.9 1-56.7 17.3-75.3 38.8-14.6 16.6-28.2 42.8-28.2 69.4 0 4 .7 8 1 9.3 1.6.3 4.3.7 7 .7 23.2-.1 52.4-15.6 69.3-36.6\" fill=\"currentColor\"/></svg>";
9
+ export declare const LINUX_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12.504 0c-.155 0-.315.008-.48.021-4.226.333-3.105 4.807-3.17 6.298-.076 1.092-.3 1.953-1.05 3.02-.885 1.051-2.127 2.75-2.716 4.521-.278.832-.41 1.684-.287 2.489a.424.424 0 00-.11.135c-.26.268-.45.6-.663.839-.199.199-.485.267-.797.4-.313.136-.658.269-.864.68-.09.189-.136.394-.132.602 0 .199.027.4.055.536.058.399.116.728.04.97-.249.68-.28 1.145-.106 1.484.174.334.535.47.94.601.81.2 1.91.135 2.774.6.926.466 1.866.67 2.616.47.526-.116.97-.464 1.208-.946.587-.003 1.23-.269 2.26-.334.699-.058 1.574.267 2.577.2.025.134.063.198.114.333l.003.003c.391.778 1.113 1.132 1.884 1.071.771-.06 1.592-.536 2.257-1.306.631-.765 1.683-1.084 2.378-1.503.348-.199.629-.469.649-.853.023-.4-.2-.811-.714-1.376v-.097l-.003-.003c-.17-.2-.25-.535-.338-.926-.085-.401-.182-.786-.492-1.046h-.003c-.059-.054-.123-.067-.188-.135a.357.357 0 00-.19-.064c.431-1.278.264-2.55-.173-3.694-.533-1.41-1.465-2.638-2.175-3.483-.796-1.005-1.576-1.957-1.56-3.368.026-2.152.236-6.133-3.544-6.139zm.529 3.405h.013c.213 0 .396.062.584.198.19.135.33.332.438.533.105.259.158.459.166.724 0-.02.006-.04.006-.06v.105a.086.086 0 01-.004-.021l-.004-.024a1.807 1.807 0 01-.15.706.953.953 0 01-.213.335.71.71 0 00-.088-.042c-.104-.045-.198-.064-.284-.133a1.312 1.312 0 00-.22-.066c.05-.06.146-.133.183-.198.053-.128.082-.264.088-.402v-.02a1.21 1.21 0 00-.061-.4c-.045-.134-.101-.2-.183-.333-.084-.066-.167-.132-.267-.132h-.016c-.093 0-.176.03-.262.132a.8.8 0 00-.205.334 1.18 1.18 0 00-.09.4v.019c.002.089.008.179.02.267-.193-.067-.438-.135-.607-.202a1.635 1.635 0 01-.018-.2v-.02a1.772 1.772 0 01.15-.768c.082-.22.232-.406.43-.533a.985.985 0 01.594-.2zm-2.962.059h.036c.142 0 .27.048.399.135.146.129.264.288.344.465.09.199.14.4.153.667v.004c.007.134.006.2-.002.266v.08c-.03.007-.056.018-.083.024-.152.055-.274.135-.393.2.012-.09.013-.18.003-.267v-.015c-.012-.133-.04-.2-.082-.333a.613.613 0 00-.166-.267.248.248 0 00-.183-.064h-.021c-.071.006-.13.04-.186.132a.552.552 0 00-.12.27.944.944 0 00-.023.33v.015c.012.135.037.2.08.334.046.134.098.2.166.268.01.009.02.018.034.024-.07.057-.117.07-.176.136a.304.304 0 01-.131.068 2.62 2.62 0 01-.275-.402 1.772 1.772 0 01-.155-.667 1.759 1.759 0 01.08-.668 1.43 1.43 0 01.283-.535c.128-.133.26-.2.418-.2zm1.37 1.706c.332 0 .733.065 1.216.399.293.2.523.269 1.052.468h.003c.255.136.405.266.478.399v-.131a.571.571 0 01.016.47c-.123.31-.516.643-1.063.842v.002c-.268.135-.501.333-.775.465-.276.135-.588.292-1.012.267a1.139 1.139 0 01-.448-.067 3.566 3.566 0 01-.322-.198c-.195-.135-.363-.332-.612-.465v-.005h-.005c-.4-.246-.616-.512-.686-.71-.07-.268-.005-.47.193-.6.224-.135.38-.271.483-.336.104-.074.143-.102.176-.131h.002v-.003c.169-.202.436-.47.839-.601.139-.036.294-.065.466-.065zm2.8 2.142c.358 1.417 1.196 3.475 1.735 4.473.286.534.855 1.659 1.102 3.024.156-.005.33.018.513.064.646-1.671-.546-3.467-1.089-3.966-.22-.2-.232-.335-.123-.335.59.534 1.365 1.572 1.646 2.757.13.535.16 1.104.021 1.67.067.028.135.06.205.067 1.032.534 1.413.938 1.23 1.537v-.043c-.06-.003-.12 0-.18 0h-.016c.151-.467-.182-.825-1.065-1.224-.915-.4-1.646-.336-1.77.465-.008.043-.013.066-.018.135-.068.023-.139.053-.209.064-.43.268-.662.669-.793 1.187-.13.533-.17 1.156-.205 1.869v.003c-.02.334-.17.838-.319 1.35-1.5 1.072-3.58 1.538-5.348.334a2.645 2.645 0 00-.402-.533 1.45 1.45 0 00-.275-.333c.182 0 .338-.03.465-.067a.615.615 0 00.314-.334c.108-.267 0-.697-.345-1.163-.345-.467-.931-.995-1.788-1.521-.63-.4-.986-.87-1.15-1.396-.165-.534-.143-1.085-.015-1.645.245-1.07.873-2.11 1.274-2.763.107-.065.037.135-.408.974-.396.751-1.14 2.497-.122 3.854a8.123 8.123 0 01.647-2.876c.564-1.278 1.743-3.504 1.836-5.268.048.036.217.135.289.202.218.133.38.333.59.465.21.201.477.335.876.335.039.003.075.006.11.006.412 0 .73-.134.997-.268.29-.134.52-.334.74-.4h.005c.467-.135.835-.402 1.044-.7zm2.185 8.958c.037.6.343 1.245.882 1.377.588.134 1.434-.333 1.791-.765l.211-.01c.315-.007.577.01.847.268l.003.003c.208.199.305.53.391.876.085.4.154.78.409 1.066.486.527.645.906.636 1.14l.003-.007v.018l-.003-.012c-.015.262-.185.396-.498.595-.63.401-1.746.712-2.457 1.57-.618.737-1.37 1.14-2.036 1.191-.664.053-1.237-.2-1.574-.898l-.005-.003c-.21-.4-.12-1.025.056-1.69.176-.668.428-1.344.463-1.897.037-.714.076-1.335.195-1.814.12-.465.308-.797.641-.984l.045-.022zm-10.814.049h.01c.053 0 .105.005.157.014.376.055.706.333 1.023.752l.91 1.664.003.003c.243.533.754 1.064 1.189 1.637.434.598.77 1.131.729 1.57v.006c-.057.744-.48 1.148-1.125 1.294-.645.135-1.52.002-2.395-.464-.968-.536-2.118-.469-2.857-.602-.369-.066-.61-.2-.723-.4-.11-.2-.113-.602.123-1.23v-.004l.002-.003c.117-.334.03-.752-.027-1.118-.055-.401-.083-.71.043-.94.16-.334.396-.4.69-.533.294-.135.64-.202.915-.47h.002v-.002c.256-.268.445-.601.668-.838.19-.201.38-.336.663-.336zm7.159-9.074c-.435.201-.945.535-1.488.535-.542 0-.97-.267-1.28-.466-.154-.134-.28-.268-.373-.335-.164-.134-.144-.333-.074-.333.109.016.129.134.199.2.096.066.215.2.36.333.292.2.68.467 1.167.467.485 0 1.053-.267 1.398-.466.195-.135.445-.334.648-.467.156-.136.149-.267.279-.267.128.016.034.134-.147.332a8.097 8.097 0 01-.69.468zm-1.082-1.583V5.64c-.006-.02.013-.042.029-.05.074-.043.18-.027.26.004.063 0 .16.067.15.135-.006.049-.085.066-.135.066-.055 0-.092-.043-.141-.068-.052-.018-.146-.008-.163-.065zm-.551 0c-.02.058-.113.049-.166.066-.047.025-.086.068-.14.068-.05 0-.13-.02-.136-.068-.01-.066.088-.133.15-.133.08-.031.184-.047.259-.005.019.009.036.03.03.05v.02h.003z\" fill=\"currentColor\"/><path fill=\"var(--mark-cut, #fcc624)\" fill-rule=\"evenodd\" d=\"M11.441 5.17C11.773 5.17 12.174 5.235 12.657 5.569C12.95 5.769 13.18 5.838 13.709 6.037L13.712 6.037C13.967 6.173 14.117 6.303 14.19 6.436L14.19 6.305A0.571 0.571 0 0 1 14.206 6.775C14.083 7.085 13.69 7.418 13.143 7.617L13.143 7.619C12.875 7.754 12.642 7.952 12.368 8.084C12.092 8.219 11.78 8.376 11.356 8.351A1.139 1.139 0 0 1 10.908 8.284A3.566 3.566 0 0 1 10.586 8.086C10.391 7.951 10.223 7.754 9.974 7.621L9.974 7.616L9.969 7.616C9.569 7.37 9.353 7.104 9.283 6.906C9.213 6.638 9.278 6.436 9.476 6.306C9.7 6.171 9.856 6.035 9.959 5.97C10.063 5.896 10.102 5.868 10.135 5.839L10.137 5.839L10.137 5.836C10.306 5.634 10.573 5.366 10.976 5.235C11.115 5.199 11.27 5.17 11.442 5.17ZM12.771 7.245C12.336 7.446 11.826 7.78 11.283 7.78C10.741 7.78 10.313 7.513 10.003 7.314C9.849 7.18 9.723 7.046 9.63 6.979C9.466 6.845 9.486 6.646 9.556 6.646C9.665 6.662 9.685 6.78 9.755 6.846C9.851 6.912 9.97 7.046 10.115 7.179C10.407 7.379 10.795 7.646 11.282 7.646C11.767 7.646 12.335 7.379 12.68 7.18C12.875 7.045 13.125 6.846 13.328 6.713C13.484 6.577 13.477 6.446 13.607 6.446C13.735 6.462 13.641 6.58 13.46 6.778A8.097 8.097 0 0 1 12.77 7.246ZM11.689 5.662L11.689 5.64C11.683 5.62 11.702 5.598 11.718 5.59C11.792 5.547 11.898 5.563 11.978 5.594C12.041 5.594 12.138 5.661 12.128 5.729C12.122 5.778 12.043 5.795 11.993 5.795C11.938 5.795 11.901 5.752 11.852 5.727C11.8 5.709 11.706 5.719 11.689 5.662ZM11.138 5.662C11.118 5.72 11.025 5.711 10.972 5.728C10.925 5.753 10.886 5.796 10.832 5.796C10.782 5.796 10.702 5.776 10.696 5.728C10.686 5.662 10.784 5.595 10.846 5.595C10.926 5.564 11.03 5.548 11.105 5.59C11.124 5.599 11.141 5.62 11.135 5.64L11.135 5.66L11.138 5.66Z\"/><path fill=\"var(--mark-cut, #fcc624)\" d=\"M16.426 16.27C16.463 16.87 16.769 17.515 17.308 17.647C17.896 17.781 18.742 17.314 19.099 16.882L19.31 16.872C19.625 16.865 19.887 16.882 20.157 17.14L20.16 17.143C20.368 17.342 20.465 17.673 20.551 18.019C20.636 18.419 20.705 18.799 20.96 19.085C21.446 19.612 21.605 19.991 21.596 20.225L21.599 20.218L21.599 20.236L21.596 20.224C21.581 20.486 21.411 20.62 21.098 20.819C20.468 21.22 19.352 21.531 18.641 22.389C18.023 23.126 17.271 23.529 16.605 23.58C15.941 23.633 15.368 23.38 15.031 22.682L15.026 22.679C14.816 22.279 14.906 21.654 15.082 20.989C15.258 20.321 15.51 19.645 15.545 19.092C15.582 18.378 15.621 17.757 15.74 17.278C15.86 16.813 16.048 16.481 16.381 16.294L16.426 16.272ZM5.612 16.319L5.622 16.319C5.675 16.319 5.727 16.324 5.779 16.333C6.155 16.388 6.485 16.666 6.802 17.085L7.712 18.749L7.715 18.752C7.958 19.285 8.469 19.816 8.904 20.389C9.338 20.987 9.674 21.52 9.633 21.959L9.633 21.965C9.576 22.709 9.153 23.113 8.508 23.259C7.863 23.394 6.988 23.261 6.113 22.795C5.145 22.259 3.995 22.326 3.256 22.193C2.887 22.127 2.646 21.993 2.533 21.793C2.423 21.593 2.42 21.191 2.656 20.563L2.656 20.559L2.658 20.556C2.775 20.222 2.688 19.804 2.631 19.438C2.576 19.037 2.548 18.728 2.674 18.498C2.834 18.164 3.07 18.098 3.364 17.965C3.658 17.83 4.004 17.763 4.279 17.495L4.281 17.495L4.281 17.493C4.537 17.225 4.726 16.892 4.949 16.655C5.139 16.454 5.329 16.319 5.612 16.319Z\"/></svg>";
10
+ export declare const COFFEE_BUTTON_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 841.9 245.3\"><path fill=\"var(--mark-ink, var(--brand-coffee))\" d=\"M110.7,113.9c-4.4,1.9-9.4,4.2-15.9,4.2s-5.5-.4-8-1.2l4.5,47.9c.2,2,1.1,3.9,2.5,5.2,1.4,1.4,3.3,2.1,5.2,2.1,0,0,6.3.3,8.5.3s9.1-.3,9.1-.3c1.9,0,3.7-.7,5.2-2.1,1.4-1.4,2.4-3.2,2.5-5.2l4.8-53c-2.1-.7-4.3-1.3-6.7-1.3-4.2,0-7.6,1.5-11.6,3.2h0Z\"/><path fill=\"var(--mark-ink, var(--brand-coffee))\" d=\"M149.7,89.1l-.6-3.5c-.6-3.2-2-6.2-5.1-7.4-1-.3-2.1-.5-2.9-1.3s-1-1.9-1.2-3c-.3-2-.6-4.1-1-6-.3-1.7-.5-3.6-1.3-5.2-1-2.1-3.1-3.3-5.1-4.2-1.1-.4-2.1-.7-3.2-1.1-5.1-1.4-10.5-1.9-15.7-2.2-6.3-.3-12.6-.2-18.9.3-4.7.4-9.6,1-14.1,2.7-1.6.6-3.3,1.4-4.5,2.7-1.5,1.6-2,4.1-.9,6.1.7,1.4,2.1,2.5,3.5,3.1,1.8.9,3.7,1.5,5.8,1.9,5.5,1.3,11.2,1.7,16.8,1.9,6.2.2,12.5,0,18.6-.6,1.5-.2,3.1-.4,4.6-.6,1.8-.3,3-2.8,2.5-4.4-.6-2-2.4-2.8-4.3-2.6-.3,0-.5,0-.9.1h-.2c-.6.1-1.3.2-1.9.2-1.4.1-2.7.3-4.1.4-3,.2-6.1.3-9.1.3s-6,0-9-.3c-1.4,0-2.7-.2-4.1-.3-.6,0-1.3-.1-1.8-.2h-1.4c-1.3-.3-2.5-.5-3.7-.7-.1,0-.2,0-.3-.2s-.1-.2-.1-.3,0-.2.1-.3c0-.1.2-.2.3-.2h0c1.1-.2,2.1-.4,3.2-.6.3,0,.7-.1,1.1-.2h0c.6,0,1.4-.2,2-.2,5.8-.6,11.7-.9,17.6-.6,2.9,0,5.7.2,8.5.5.6,0,1.2.1,1.8.2h1.2c1.4.3,2.8.5,4.1.9,2,.4,4.6.6,5.5,2.9.3.7.4,1.5.5,2.2l.2,1h0c.4,2.2,1,4.6,1.4,6.8v.5c0,.2,0,.3-.2.4,0,.1-.2.2-.3.3s-.3.1-.4.2h-.6c-.9.1-1.8.2-2.7.3-1.8.2-3.5.4-5.4.5-3.5.3-7.2.5-10.7.6h-5.5c-7.3,0-14.4-.4-21.7-1.3-.7,0-1.6-.2-2.4-.3.6,0-.4,0-.6,0-.5,0-1-.1-1.5-.2-1.7-.2-3.3-.5-5-.9-2-.3-4-.2-5.8.9-1.5.9-2.7,2.1-3.4,3.7-.7,1.7-1,3.5-1.4,5.4s-.9,3.7-.6,5.6c.4,4,3.1,7.3,7.1,8,3.6.6,7.3,1.3,11,1.7,14.4,1.8,29,2,43.6.6,1.2-.1,2.4-.2,3.5-.4.3,0,.7,0,1.1.1s.6.3,1,.6.4.6.6,1,.2.7.1,1.2l-.3,3.7c-.7,7.5-1.5,15-2.2,22.5-.7,7.9-1.5,15.7-2.4,23.5-.2,2.2-.4,4.4-.6,6.6-.2,2.1-.2,4.4-.6,6.5-.6,3.4-2.9,5.5-6.1,6.2-3,.6-6,1.1-9,1.1s-6.7-.1-10.1-.1-7.9-.3-10.7-3.1c-2.5-2.5-2.8-6.2-3.1-9.5-.4-4.4-.9-8.7-1.3-13.1l-2.5-24.2-1.6-15.6v-.7c-.2-1.9-1.5-3.7-3.4-3.6-1.7,0-3.6,1.6-3.4,3.6l1.2,11.7,2.4,24.1c.6,6.8,1.4,13.7,2,20.4.1,1.3.2,2.7.4,4,.7,7.2,6,11,12.5,12.1,3.9.6,7.7.7,11.6.9,4.9,0,10,.3,14.8-.6,7.2-1.4,12.6-6.4,13.4-14.1.2-2.2.4-4.5.6-6.7.7-7.4,1.5-14.9,2.2-22.3l2.4-24.2,1.1-11.1c0-.5.3-1.1.6-1.5s.9-.6,1.4-.7c2-.4,4.1-1.2,5.5-2.8,2.4-2.6,2.8-6,1.9-9.4h0ZM72.2,91.6v.4-.4ZM72.5,93.2h.1c0,.1-.1,0-.1,0ZM72.6,93.4c0,.2,0,.1,0,0ZM73,93.7h0ZM142.1,93.3c-.7.7-1.8,1.1-3,1.3-12.4,1.9-24.9,2.9-37.4,2.5-8.9-.3-17.8-1.4-26.6-2.7-.9-.1-1.8-.3-2.4-1-1.2-1.3-.5-3.7-.3-5.4.2-1.4.7-3.2,2.4-3.4,2.5-.3,5.4.7,7.8,1.2,3,.4,5.9.9,8.9,1.1,12.7,1.2,25.6,1.1,38.2-.7,2.4-.3,4.6-.6,6.8-1.1,2-.4,4.3-1.1,5.6,1.1.9,1.5,1,3.5.9,5.1,0,.7-.3,1.4-.9,1.9h0Z\"/><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M237.6,134.4c-1,1.8-2.2,3.4-4,4.7-1.7,1.3-3.6,2.5-5.8,3.3-2.2.9-4.5,1.4-6.7,1.7s-4.4.2-6.5,0c-2.1-.3-4-1.1-5.4-2.1l1.7-17.3c1.5-.5,3.4-1.1,5.8-1.6s4.7-1,7.2-1.2,4.8-.2,7,0c2.2.3,4,1,5.2,2.1.6.6,1.3,1.3,1.7,2s.7,1.5.9,2.2c.2,2.2,0,4.3-1.1,6h0ZM213.4,97.6c1.1-.6,2.5-1.3,4-1.8,1.6-.5,3.1-.9,4.8-1.1,1.6-.2,3.2-.2,4.8,0,1.6.1,2.9.5,4.2,1.3,1.2.7,2,1.7,2.7,3.1s.7,3,.4,5.1c-.2,1.6-.9,3-1.9,4.2s-2.4,2-4,2.9c-1.6.7-3.2,1.4-4.9,1.8s-3.4.7-5,1c-1.6.2-3,.3-4.2.4h-2.4l1.6-16.7h0v-.2ZM246.2,123.3c-.9-1.8-2-3.4-3.4-4.8s-3.1-2.4-5-3c.9-.6,1.7-1.7,2.5-3.2s1.5-3.1,2.1-4.8c.5-1.7,1-3.5,1.2-5.2s.1-3.3-.2-4.5c-.9-3.2-2.4-5.7-4.3-7.4-1.9-1.8-4.2-3-6.7-3.7-2.6-.6-5.4-.9-8.5-.4s-6.2,1.2-9.5,2.4v-1.8c0-.7-.4-1.5-1.2-2s-1.7-1-2.8-1.1-2,.1-3,.6c-1,.5-1.6,1.6-2,3-.4,4.7-.9,9.6-1.3,14.8s-.9,10.3-1.4,15.5c-.4,5.2-1,10.4-1.4,15.5-.4,5.1-1,10.1-1.4,14.8.1,1.4.5,2.6,1.2,3.3.6.7,1.4,1.3,2.2,1.4s1.7,0,2.7-.4,1.7-1.2,2.5-2.4c2.1,1.2,4.5,1.9,7.2,2.2s5.4.3,8,0,5.5-1,8-1.9c2.7-1,5-2.1,7.2-3.5s4-3,5.5-4.8,2.5-3.7,2.9-5.9.6-4.3.4-6.4c-.2-2.1-.7-4.2-1.6-6h.2Z\"/><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M323.5,164.9c-.3,1.7-.6,3.5-1.2,5.5s-1.2,3.6-1.8,5.2c-.7,1.6-1.5,2.9-2.4,3.9-.9,1-1.8,1.4-2.8,1.2-.7-.1-1.3-.6-1.5-1.5-.2-.9-.2-2,0-3.3s.6-2.8,1.2-4.5c.6-1.6,1.4-3.3,2.2-4.9.9-1.6,1.8-3.2,3-4.7,1.1-1.5,2.2-2.8,3.5-3.7.2.3.4,1.1.3,2.4s-.2,2.8-.4,4.5h-.2ZM350.4,130.6c-.7-.7-1.6-1.3-2.7-1.3-1.1-.1-2,.4-3.1,1.7-.6,1.3-1.6,2.5-2.7,3.6-1.1,1.2-2.1,2.2-3.3,3.2s-2.2,1.7-3.2,2.5c-1.1.6-1.8,1.2-2.5,1.5-.2-1.7-.3-3.5-.3-5.5s0-4,.1-5.9c.1-2.9.5-5.7,1-8.6s1.2-5.8,2.1-8.6c0-1.5-.3-2.7-1.1-3.6-.6-1-1.5-1.5-2.5-1.7s-2-.1-3,.4-1.9,1.4-2.7,2.7c-.6,1.7-1.4,3.7-2.1,5.9-.9,2.1-1.7,4.4-2.8,6.6s-2.1,4.4-3.4,6.5-2.7,4-4.2,5.6-3.1,2.9-4.9,3.9c-1.8,1-3.6,1.3-5.8,1.2-1-.2-1.6-1-2-2.1s-.6-2.6-.7-4.4,0-3.6.2-5.8.5-4.2,1-6.2.9-4,1.3-5.9,1-3.4,1.4-4.7c.6-1.5.6-2.8,0-3.9s-1.5-1.7-2.6-2-2.2-.3-3.5,0c-1.2.3-2.1,1.2-2.6,2.5-.9,2.1-1.7,4.6-2.5,7.3s-1.3,5.5-1.8,8.3c-.4,2.9-.7,5.7-.7,8.6v.5c-1.2,3.1-2.2,5.4-3.3,7-1.4,2-2.9,2.9-4.6,2.6-.7-.3-1.2-1.1-1.5-2.2-.2-1.2-.3-2.6-.2-4.3,0-1.7.3-3.6.6-5.8.3-2.1.7-4.4,1.2-6.6.5-2.2,1-4.6,1.5-7s1-4.5,1.4-6.5c0-1.8-.6-3.2-1.6-4.3s-2.5-1.4-4.3-1.2c-1.3.5-2.2,1.2-2.8,2s-1.1,1.9-1.5,3.2c-.2.6-.5,2-1,4.1s-1,4.4-1.6,7.1-1.5,5.5-2.4,8.3c-.9,2.9-1.9,5.6-3,7.8-1.1,2.4-2.4,4.3-3.6,5.7s-2.8,2-4.3,1.7c-.9-.1-1.4-1.1-1.6-2.6s-.3-3.5-.1-5.9.4-4.8,1-7.6c.4-2.8,1-5.4,1.5-7.9.5-2.5,1-4.7,1.4-6.5.4-1.9.7-3.2.9-3.7,0-1.5-.3-2.8-1.1-3.6s-1.5-1.5-2.5-1.7-2-.1-3,.4c-1.1.5-1.9,1.4-2.7,2.7-.2,1.4-.6,3.1-1.1,4.9-.4,1.9-.9,3.7-1.2,5.8s-.7,3.9-1.1,5.8-.6,3.5-.7,4.9c-.1,1.1-.2,2.5-.3,4.1s-.2,3.3-.2,5.1.1,3.5.4,5.4c.2,1.7.7,3.4,1.4,4.8s1.6,2.7,2.9,3.6,2.8,1.5,4.7,1.6c1.9.1,3.6,0,5.1-.4s2.8-1.1,4-1.8c1.2-.9,2.2-1.8,3.2-3s1.9-2.5,2.9-3.7c.9,2,2,3.5,3.5,4.7,1.4,1.1,2.9,1.7,4.5,1.9s3.2,0,4.8-.6,3.1-1.8,4.4-3.3c.9-1,1.7-2,2.5-3.3.3.5.6,1.1,1.1,1.6,1.3,1.7,3.1,2.9,5.2,3.4,2.4.6,4.7.7,7,.3s4.4-1.2,6.5-2.2c2-1.1,4-2.5,5.8-4s3.3-3.2,4.6-4.8v7c-2.7,1.8-5.1,4.1-7.5,6.6s-4.4,5.4-6.2,8.2c-1.7,2.9-3.2,5.9-4.2,8.9s-1.5,5.8-1.5,8.5.6,4.9,1.8,6.8c1.2,1.9,3.2,3.3,6,4.2,2.9.9,5.4,1,7.5,0,2.1-.9,4.1-2.2,5.7-4.2,1.6-1.9,2.9-4.3,4-7.1s1.8-5.7,2.5-8.7c.6-3,1-6,1.2-8.9s.1-5.5,0-7.7c4.5-1.9,8.2-4.3,11.1-7.2,2.9-2.9,5.4-6,7.2-9.2.5-.7.7-1.7.6-2.9-.2-1.1-.6-2-1.4-2.9h0v.3Z\"/><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M450.4,125.6c.1-1.2.4-2.5.7-3.9s.7-2.7,1.2-3.9c.4-1.3,1.1-2.4,1.7-3.3s1.3-1.6,2-2,1.4-.3,2.1.1,1.3,1.5,1.5,3c.2,1.5,0,3.2-.5,4.9s-1.5,3.3-3,4.9c-1.4,1.5-3.3,2.6-5.8,3-.1-.7,0-1.7,0-2.9h0ZM477.9,128.8c-.9-.2-1.7-.3-2.5,0-.7.2-1.3.7-1.5,1.6-.4,1.7-1.1,3.4-2,5.1s-2,3.4-3.4,5c-1.4,1.6-2.9,3-4.6,4.2-1.7,1.2-3.4,2-5.4,2.6-1.8.5-3.4.6-4.6.2-1.2-.4-2.1-1.2-2.9-2.2s-1.2-2.4-1.5-3.9c-.3-1.5-.5-3.1-.5-4.7,3,.2,5.7-.3,8-1.6s4.4-3,6-5.1,2.9-4.5,3.7-7.2,1.3-5.4,1.4-7.9c0-2.5-.3-4.6-1.1-6.3s-1.8-3-3.2-4-2.9-1.5-4.6-1.6c-1.7-.1-3.5,0-5.4.7-2.1.7-4,1.9-5.5,3.6s-2.8,3.6-3.7,5.8-1.8,4.5-2.4,7.1-1,5-1.3,7.5c-.2,2.1-.3,4.3-.4,6.3-.1.2-.2.5-.3.7-.9,1.9-1.8,3.7-2.9,5.5s-2.2,3.3-3.6,4.5c-1.3,1.2-2.7,1.6-4.2,1.3-.9-.2-1.3-1.2-1.4-2.9,0-1.7,0-3.9.3-6.4.2-2.6.5-5.4,1-8.3.3-3,.5-5.9.5-8.6s-.4-4.6-1.4-6.8c-.9-2.1-2.1-4-3.6-5.5-1.6-1.5-3.3-2.4-5.5-2.9-2-.4-4.3-.1-6.6,1s-4.3,2.7-5.7,4.7-2.7,4.1-3.9,6.3c-.4-1.7-1.1-3.2-1.8-4.7-.9-1.5-1.8-2.7-3-3.7s-2.6-1.9-4-2.6-3-1-4.7-1-3.1.3-4.4,1c-1.4.6-2.6,1.4-3.7,2.4-1.1,1-2.1,2-3,3.2s-1.7,2.4-2.4,3.5c-.1-1.4-.2-2.6-.3-3.6s-.4-1.9-.7-2.6-.9-1.3-1.5-1.6-1.5-.5-2.7-.5-1.2.1-1.7.3-1.1.5-1.5,1-.7,1-1.1,1.5-.3,1.3-.2,2.1c0,.5.2,1.3.4,2.1.2.9.4,1.9.6,3.2s.4,2.9.5,4.8.2,4.2.1,6.8c0,2.7-.2,5.9-.6,9.5-.3,3.6-.9,7.8-1.6,12.6-.1,1.1.3,2,1.3,2.7s2,1.1,3.2,1.2,2.4-.1,3.4-.6,1.7-1.5,1.8-2.8c.1-2.5.4-5.1,1-7.9.4-2.8,1-5.6,1.7-8.3s1.4-5.4,2.2-7.8c.9-2.5,1.8-4.7,2.8-6.5,1.1-1.9,2.1-3.4,3.2-4.5,1.1-1.2,2.2-1.7,3.5-1.7s2.7.6,3.4,2c.9,1.4,1.4,3.1,1.7,5.1.3,2.1.5,4.4.4,7s-.1,4.9-.3,7.3c-.2,2.4-.4,4.4-.6,6.2s-.4,3.1-.5,3.7c0,1.2.4,2.1,1.4,2.9s1.9,1.2,3.1,1.3c1.2.1,2.2,0,3.2-.6s1.6-1.5,1.7-2.8c.5-3.7,1.3-7.6,2.1-11.5,1-3.9,2-7.3,3.2-10.3,1.2-3,2.5-5.5,4-7.4,1.5-1.9,3-2.9,4.6-2.9s1.5.5,1.9,1.7.6,2.8.6,4.7-.1,3-.3,4.5c-.2,1.6-.5,3.2-.9,4.8s-.6,3.3-.9,5.1-.3,3.5-.3,5.5.1,2.9.4,4.6.7,3.4,1.5,4.9c.7,1.6,1.7,2.9,3.1,4s3,1.6,4.9,1.6c3,0,5.7-.6,8-1.9s4.3-3,6-5c0-.1.1-.2.2-.3.1.3.2.6.4,1,1.2,2.4,2.7,4.1,4.6,5.4s4.3,1.9,7,2.1c2.7.1,5.6-.3,8.7-1.5,2.4-.9,4.4-1.9,6.1-3.2s3.2-2.8,4.6-4.6,2.7-3.9,3.7-6.3,2.2-5.1,3.4-8.1c.2-.9,0-1.6-.5-2.2-.6-.6-1.4-1.1-2.2-1.4h0v-.5Z\"/><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M521,120.1c-.2,1.6-.6,3.2-1.1,5.1s-1.1,3.9-1.7,5.8c-.6,2-1.5,3.9-2.6,5.5-1,1.6-2.1,2.9-3.4,3.9-1.3,1-2.8,1.3-4.5,1.2-.9-.1-1.5-.6-1.9-1.7s-.6-2.4-.7-4.1c0-1.6.1-3.4.4-5.4s.9-3.9,1.5-5.8,1.5-3.6,2.5-5.1c1-1.6,2-2.8,3.3-3.6s2.6-1.3,4.1-1.2c1.5,0,3.1.7,4.8,2.2-.1.6-.3,1.8-.5,3.3h-.1ZM549.2,126c-.9-.4-1.6-.5-2.6-.3-.9.2-1.5,1.1-1.8,2.4-.2,1.5-.6,3.2-1.4,5.2-.7,2-1.6,3.9-2.8,5.7-1.1,1.8-2.4,3.3-3.7,4.5-1.4,1.2-2.9,1.7-4.5,1.6-1.3-.1-2.2-.7-2.8-2s-.9-2.8-.9-4.7.1-4,.5-6.3.9-4.7,1.4-7,1.1-4.5,1.7-6.6c.5-2.1,1.1-4,1.4-5.5.4-1.3.3-2.5-.4-3.3-.6-1-1.5-1.6-2.6-1.9-1.1-.4-2-.5-3.1-.3s-1.7.7-2,1.7c-3.1-2.7-6.1-4.2-9-4.4s-5.6.4-7.9,1.9c-2.5,1.5-4.6,3.6-6.4,6.4-1.9,2.8-3.4,5.9-4.6,9.1s-1.9,6.6-2.1,10.1c-.3,3.4,0,6.5.6,9.4.7,2.8,2,5.1,4,7,1.9,1.8,4.4,2.7,7.6,2.7s2.8-.3,4.2-.9,2.6-1.3,3.6-2,2.1-1.6,2.9-2.5,1.5-1.6,2-2.1c.3,1.9,1,3.5,1.8,4.8s1.8,2.4,2.9,3.2,2.2,1.5,3.4,1.8c1.2.4,2.4.5,3.4.5,2.5,0,4.8-.9,7-2.6,2.1-1.7,4.1-3.7,5.8-6.2,1.7-2.5,3.1-5,4.3-7.7,1.1-2.7,1.8-5.1,2.2-7.3.3-.7.3-1.6-.2-2.5s-1.2-1.5-2-1.9h.1Z\"/><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M691.9,169.7c-.4,1.8-1.2,3.3-2.1,4.5-1,1.3-2.1,1.9-3.5,1.9s-1.6-.4-2-1.4c-.5-1-.9-2.2-1-3.9-.2-1.6-.2-3.3-.2-5.4s0-3.9.2-5.8c.1-1.9.3-3.6.5-5.4.2-1.6.3-2.9.4-3.7,1.8.2,3.3,1,4.5,2.4,1.2,1.3,2.1,2.9,2.8,4.8.6,1.8,1,3.9,1.1,6,0,2.1,0,4.1-.5,5.9h-.1ZM663.2,169.7c-.4,1.8-1.2,3.3-2.1,4.5-1,1.3-2.1,1.9-3.5,1.9s-1.6-.4-2-1.4c-.5-1-.9-2.2-1-3.9-.2-1.6-.2-3.3-.2-5.4s0-3.9.2-5.8c.1-1.9.3-3.6.5-5.4.2-1.6.3-2.9.4-3.7,1.8.2,3.3,1,4.5,2.4,1.2,1.3,2.1,2.9,2.8,4.8.6,1.8,1,3.9,1.1,6,0,2.1,0,4.1-.5,5.9h-.1ZM633.8,124.9c0,1.3-.2,2.4-.3,3.3-.2,1-.4,1.6-.7,1.8-.5-.3-1.3-1.2-2.1-2.5s-1.5-2.8-1.9-4.5-.6-3.3-.4-4.9c.2-1.6,1.1-2.9,2.5-3.7.5-.3,1.1-.2,1.5.3s.7,1.4,1.1,2.4c.2,1.1.4,2.2.5,3.6,0,1.4.1,2.7,0,4h0v.2ZM626.7,140.6c-.9.9-1.7,1.6-2.8,2.2s-2,1.1-3.1,1.4-2,.4-2.9.2c-2.4-.4-4.2-1.5-5.5-3.1s-2-3.4-2.5-5.6c-.3-2.1-.3-4.4.1-6.8.4-2.5,1.2-4.7,2.1-6.7s2.2-3.9,3.6-5.4,3-2.5,4.7-2.8c-.6,2.7-.9,5.5-.6,8.3.2,2.9.9,5.6,2,8.1.7,1.5,1.6,2.9,2.7,4.2s2.2,2.4,3.7,3.2c-.4.9-1.1,1.8-1.8,2.7h.1ZM714.5,125.6c.2-1.2.4-2.5.7-3.9.3-1.3.7-2.7,1.2-3.9.5-1.3,1.1-2.4,1.7-3.3s1.3-1.6,2-2,1.4-.3,2.1.1,1.3,1.5,1.5,3,0,3.2-.5,4.9-1.5,3.3-3,4.9-3.3,2.6-5.8,3v-2.9h0ZM746.4,125.6c.2-1.2.4-2.5.7-3.9.3-1.3.7-2.7,1.2-3.9.5-1.3,1.1-2.4,1.7-3.3s1.3-1.6,2-2,1.4-.3,2.1.1,1.3,1.5,1.5,3,0,3.2-.5,4.9-1.5,3.3-3,4.9c-1.4,1.5-3.3,2.6-5.8,3v-2.9h0ZM776.2,130.2c-.6-.6-1.4-1.1-2.2-1.4s-1.7-.3-2.5,0c-.7.2-1.3.7-1.5,1.6-.4,1.7-1.1,3.4-2,5.1s-2,3.4-3.4,5-2.9,3-4.6,4.2-3.4,2-5.4,2.6c-1.8.5-3.4.6-4.6.2-1.2-.4-2.1-1.2-2.9-2.2s-1.3-2.4-1.5-3.9c-.3-1.5-.5-3.1-.5-4.7,3,.2,5.7-.3,8-1.6s4.4-3,6-5.1,2.9-4.5,3.7-7.2,1.3-5.4,1.4-7.9c0-2.5-.3-4.6-1.1-6.3s-1.8-3-3.2-4-2.9-1.5-4.6-1.6-3.5,0-5.4.7c-2.1.7-4,1.9-5.6,3.6-1.5,1.6-2.8,3.6-3.7,5.8s-1.8,4.5-2.4,7.1-1,5-1.3,7.5c-.2,2.4-.4,4.6-.4,6.8-.2.4-.4.9-.6,1.3-1,1.7-2,3.4-3.4,5s-2.9,3-4.6,4.2-3.4,2-5.4,2.6c-1.8.5-3.4.6-4.6.2-1.2-.4-2.1-1.2-2.9-2.2s-1.3-2.4-1.5-3.9c-.3-1.5-.5-3.1-.5-4.7,3,.2,5.7-.3,8-1.6s4.4-3,6-5.1,2.9-4.5,3.7-7.2,1.3-5.4,1.4-7.9c0-2.5-.3-4.6-1.1-6.3s-1.8-3-3.2-4-2.9-1.5-4.6-1.6-3.5,0-5.4.7c-2.1.7-4,1.9-5.6,3.6-1.5,1.6-2.8,3.6-3.7,5.8s-1.8,4.5-2.4,7.1-1,5-1.3,7.5c-.1,1.4-.2,2.7-.3,4.1-.5.4-1,.9-1.5,1.3-1.8,1.5-3.7,2.8-5.8,4-2,1.2-4.1,2.1-6.2,2.9s-4.4,1.2-6.6,1.4l4.9-52.4c.3-1.1.2-2-.5-2.9s-1.5-1.4-2.5-1.7c-1-.3-2-.3-3.2,0-1.2.4-2,1.2-2.8,2.6-.3,2-.7,4.7-1.2,8.2s-.7,7.3-1.2,11.3-.7,8.3-1.2,12.7c-.4,4.4-.7,8.5-1.1,12.2v.5c-.4.4-.9.7-1.4,1.2-1.8,1.5-3.7,2.8-5.8,4-2,1.2-4.1,2.1-6.2,2.9s-4.4,1.2-6.6,1.4l4.9-52.4c.3-1.1.2-2-.5-2.9s-1.5-1.4-2.5-1.7c-1-.3-2-.3-3.2,0-1.2.4-2,1.2-2.8,2.6-.3,2-.7,4.7-1.2,8.2s-.7,7.3-1.2,11.3-.7,8.3-1.2,12.7c-.4,4.4-.7,8.5-1.1,12.2v.2c-.9.4-1.7.7-2.7,1-1,.3-2.1.4-3.4.5.2-1,.4-2,.5-3.2s.2-2.4.3-3.6v-3.7c0-1.3,0-2.5-.2-3.4-.2-2.2-.7-4.4-1.5-6.4s-1.7-3.7-2.9-5.1c-1.2-1.4-2.8-2.2-4.6-2.8-1.8-.4-4-.3-6.4.4-3.6-.4-6.8-.1-9.7,1-2.9,1.2-5.4,2.8-7.5,4.9s-3.9,4.7-5.1,7.6c-1.4,2.9-2.2,5.9-2.7,9-.2,1.3-.3,2.6-.3,3.9-.9,1.7-1.7,3.1-2.7,4.4-1.4,1.7-2.9,3.2-4.4,4.3-1.5,1.1-3,1.9-4.5,2.6-1.5.5-2.8,1-4,1.2-1.4.2-2.7.3-4,0-1.3-.2-2.5-.9-3.5-1.8-.9-.7-1.5-1.9-1.9-3.5-.4-1.6-.7-3.5-.7-5.6s0-4.3.2-6.5.6-4.4,1.3-6.4c.5-2,1.3-3.9,2.2-5.5.9-1.6,1.9-2.8,3.2-3.4.6.1,1.1.5,1.3,1.2s.2,1.6.1,2.6c0,1-.2,2-.3,3-.2,1.1-.2,1.9-.2,2.6.2,1.4.7,2.6,1.5,3.3s1.6,1.3,2.6,1.4c1,.1,1.9,0,2.8-.6,1-.5,1.7-1.5,2.2-2.8h.2l1.1-10.1c.3-1.4,0-2.6-.6-3.6-.7-1.1-1.7-1.6-2.9-1.8-1.5-2.2-3.6-3.4-6.2-3.5-2.7-.1-5.4.7-8,2.6-1.7,1.2-3.2,2.9-4.5,5s-2.4,4.5-3.2,7.1-1.4,5.4-1.7,8.2-.4,5.7-.2,8.5.7,5.4,1.5,7.7c.7,2.5,1.8,4.5,3.2,6.1,1.2,1.4,2.5,2.5,4,3.1,1.5.6,3,1.1,4.6,1.2s3.2,0,4.8-.2,3.1-.6,4.5-1.2c1.8-.6,3.7-1.6,5.7-2.6,1.9-1.1,3.9-2.4,5.7-3.7,1-.7,1.8-1.6,2.8-2.6.4,1,.9,1.9,1.4,2.9,1.4,2.4,3.3,4.3,5.8,5.8,2.5,1.5,5.5,2.1,9,2.1s7.3-1.1,10.5-2.9c3.2-1.9,5.9-4.6,7.9-8.2,3.1,0,6.1-.5,9.1-1.5v1c-.2,2.8-.3,4.7-.3,5.7,0,1.7-.2,3.9-.3,6.4-.2,2.6-.3,5.2-.3,8s0,5.7.3,8.6c.2,2.9.9,5.5,1.7,7.8s2,4.3,3.6,6c1.6,1.6,3.6,2.6,6.1,2.9,2.7.3,5-.1,7-1.4s3.5-3.1,4.8-5.5c1.2-2.2,2-4.9,2.6-7.9.5-3,.6-6,.4-9.1s-.7-5.9-1.7-8.6-2.1-4.9-3.7-6.6c1-.2,2.1-.7,3.4-1.5s2.7-1.6,4.1-2.5c.3-.2.6-.4,1.1-.6-.1,1.8-.2,3.2-.2,4,0,1.7-.2,3.9-.3,6.4-.2,2.6-.3,5.2-.3,8s0,5.7.3,8.6c.2,2.9.9,5.5,1.7,7.8s2,4.3,3.6,6c1.6,1.6,3.6,2.6,6.1,2.9,2.7.3,5-.1,7-1.4s3.5-3.1,4.8-5.5c1.2-2.2,2-4.9,2.6-7.9.5-3,.6-6,.4-9.1s-.7-5.9-1.7-8.6-2.1-4.9-3.7-6.6c1-.2,2.1-.7,3.4-1.5s2.7-1.6,4.1-2.5c.7-.5,1.5-1,2.1-1.5.3,2.6.9,4.8,1.8,6.7,1.2,2.4,2.7,4.1,4.6,5.4s4.3,1.9,6.8,2.1c2.7.1,5.6-.3,8.7-1.5,2.4-.9,4.4-1.9,6.1-3.2,1.7-1.3,3.2-2.8,4.6-4.6,0-.1.2-.2.2-.3.2.7.5,1.5.9,2.1,1.2,2.4,2.7,4.1,4.6,5.4s4.3,1.9,6.8,2.1c2.7.1,5.6-.3,8.7-1.5,2.4-.9,4.4-1.9,6.1-3.2,1.7-1.3,3.2-2.8,4.6-4.6s2.7-3.9,3.7-6.3c1.2-2.4,2.2-5.1,3.4-8.1.2-.9,0-1.6-.6-2.2h0v-.2Z\"/></svg>";
11
+ export declare const MAIL_SVG: string;
12
+ export declare const MANUAL_SVG: string;
@@ -0,0 +1,43 @@
1
+ // The marks on the App tab's and the About card's buttons ("The App tab" in
2
+ // design-language.md), as markup for ReadmeButton's BrandMark. Every id carries
3
+ // a glim- prefix so two marks on one page cannot collide.
4
+ //
5
+ // Google Play's icon rather than its badge, whose artwork may not be altered.
6
+ // Android, Docker, Unraid, Windows and Apple from Dashboard Icons, Linux from
7
+ // Simple Icons (CC0), the ZIP and the manual's closed book from Font Awesome
8
+ // Free (CC BY 4.0). Android, Docker, Windows and Unraid paint from the
9
+ // --brand-* values in tokens.css; Apple and Linux take the tile's ink, since
10
+ // neither has a colour of its own, and Linux keeps Tux's yellow beak and feet.
11
+ // Under the pointer every part turns the tile's ink through --mark-ink, and the
12
+ // beak and feet, which lie on the body, take the tile colour through --mark-cut
13
+ // ("Brand tiles").
14
+ export const PLAY_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><linearGradient id="glim-play-a" x1="60.6" x2="276.6" y1="45.4" y2="261.4" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#00a0ff"/><stop offset=".01" stop-color="#00a1ff"/><stop offset=".26" stop-color="#00beff"/><stop offset=".51" stop-color="#00d2ff"/><stop offset=".76" stop-color="#00dfff"/><stop offset="1" stop-color="#00e3ff"/></linearGradient><linearGradient id="glim-play-b" x1="446.6" x2="34.3" y1="256" y2="256" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffe000"/><stop offset=".41" stop-color="#ffbd00"/><stop offset=".78" stop-color="#ffa500"/><stop offset="1" stop-color="#ff9c00"/></linearGradient><linearGradient id="glim-play-c" x1="349.6" x2="6.9" y1="295.1" y2="637.8" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ff3a44"/><stop offset="1" stop-color="#c31162"/></linearGradient><linearGradient id="glim-play-d" x1="22.9" x2="176" y1="-38.1" y2="115" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#32a071"/><stop offset=".07" stop-color="#2da771"/><stop offset=".48" stop-color="#15cf74"/><stop offset=".8" stop-color="#06e775"/><stop offset="1" stop-color="#00f076"/></linearGradient><path fill="var(--mark-ink, url(#glim-play-a))" d="M39.6 24.1c-5.6 5.9-8.9 15.1-8.9 27v409.8c0 11.9 3.3 21.1 8.9 27l1.4 1.3L270 259.7v-5.4L41 25.4z"/><path fill="var(--mark-ink, url(#glim-play-b))" d="m346.3 336.3-76.3-76.6v-5.4l76.4-76.5 1.7 1L438.5 231c25.8 14.7 25.8 38.7 0 53.4l-90.4 51.4z"/><path fill="var(--mark-ink, url(#glim-play-c))" d="M348 335.3 270 257 39.6 487.9c8.5 9 22.5 10.1 38.4 1.1z"/><path fill="var(--mark-ink, url(#glim-play-d))" d="M348 178.7 78 25.1C62.1 16 48.1 17.2 39.6 26.2L270 257z"/></svg>';
15
+ // F-Droid's 2015 logo from its artwork repository (gitlab.com/fdroid/artwork,
16
+ // CC BY-SA 3.0 or GPL-3.0-or-later), in its own colours. The eyes are holes, so
17
+ // the tile shows through them. The ring and the F lie on the body, so under the
18
+ // pointer they take the tile colour through --mark-cut.
19
+ export const FDROID_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="-0.05 -0.52 48.1 48.1"><path fill="none" stroke="var(--mark-ink, #769616)" stroke-width="2.5" stroke-linecap="round" d="M2.589 2.5 6.839 8M45.411 2.5 41.161 8"/><path fill="var(--mark-ink, #aeea00)" fill-rule="evenodd" d="M8 6h32a3 3 0 0 1 3 3v7a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3V9a3 3 0 0 1 3-3zm3 7.125a3.375 3.375 0 1 0 6.75 0 3.375 3.375 0 1 0-6.75 0zm19.5 0a3.375 3.375 0 1 0 6.75 0 3.375 3.375 0 1 0-6.75 0z"/><rect x="5" y="20" width="38" height="26" rx="3" fill="var(--mark-ink, #1976d2)"/><circle cx="24" cy="33" r="9.55" fill="none" stroke="var(--mark-cut, #0d47a1)" stroke-width="1.9"/><path fill="var(--mark-cut, #0d47a1)" d="m 24,26.75c-2.880662,0 -5.319789,1.984685 -6.033203,4.650391l3.212891,0C21.734004,30.415044 22.774798,29.75 24,29.75c1.812692,0 3.25,1.437308 3.25,3.25 0,1.812693 -1.437308,3.25 -3.25,3.25 -1.307381,0 -2.411251,-0.75269 -2.929688,-1.849609l-3.154296,0C18.558263,37.166146 21.04791,39.25 24,39.25c3.434013,0 6.25,-2.815987 6.25,-6.25 0,-3.434012 -2.815987,-6.25 -6.25,-6.25 z"/></svg>';
20
+ export const ANDROID_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0.03 112.41 512 287.17"><path fill="currentColor" d="m447.9 460.9 42.5-73.6c2.4-4.1.9-9.4-3.1-11.8-4.1-2.4-9.4-1-11.7 3.1l-43 74.5c-32.8-15-69.8-23.4-109.5-23.4s-76.7 8.4-109.5 23.4l-43-74.5c-2.4-4.1-7.6-5.5-11.8-3.1-4.1 2.4-5.5 7.6-3.1 11.8l42.5 73.6C124.8 500.6 75.2 574.7 67 661.5h512c-8.2-86.8-57.8-160.9-131.1-200.6M205.4 589.6c-11.9 0-21.5-9.6-21.5-21.5s9.6-21.5 21.5-21.5 21.5 9.6 21.5 21.5c0 11.8-9.6 21.5-21.5 21.5m235.1 0c-11.9 0-21.5-9.6-21.5-21.5s9.6-21.5 21.5-21.5 21.5 9.6 21.5 21.5c0 11.8-9.7 21.5-21.5 21.5" transform="translate(-66.97 -261.92)"/></svg>';
21
+ export const DOCKER_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="-0.07 71.3 511.97 369.5"><path fill="currentColor" d="M501.4 212.3c-11.5-8-38-11-58.6-7-2.4-20-13.5-37.5-32.7-53l-11-8-7.7 11.5c-9.6 15-14.4 36-13 56 .5 7 2.9 19.5 10.1 30.5-6.7 4-20.7 9-38.9 9H2.3l-1 4c-3.4 20-3.4 82.5 36 130.5 29.8 36.5 74 55 132.1 55 125.9 0 219.1-60.5 262.8-170 17.3.5 54.3 0 73-37.5.5-1 1.4-3 4.8-10.5l1.9-4zM280 71.3h-52.8v50H280zm0 60h-52.8v50H280zm-62.5 0h-52.8v50h52.8zm-62.4 0h-52.8v50h52.8zm-62.5 60H39.8v50h52.8zm62.5 0h-52.8v50h52.8zm62.4 0h-52.8v50h52.8zm62.5 0h-52.8v50H280zm62.4 0h-52.8v50h52.8z"/></svg>';
22
+ export const UNRAID_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 108.3 512 295.4"><linearGradient id="glim-unraid-a" x1="91.058" x2="420.942" y1="93.45" y2="423.333" gradientTransform="matrix(1 0 0 -1 0 514.2)" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:var(--brand-unraid-from)"/><stop offset="1" style="stop-color:var(--brand-unraid-to)"/></linearGradient><path fill="url(#glim-unraid-a)" d="M243.3 181.9h24.9v147.8h-24.9zM24.9 329.7H0V181.9h24.9zm96.8 17.6h24.9v56.4h-24.9zM60.6 284h24.9v91.3H60.6zm121.7 0h24.9v91.3h-24.9zm304.8-102.1H512v147.8h-24.9zm-96.8-17.2h-24.9v-56.4h24.9zm61.1 62.9h-24.9v-91h24.9zm-122.1 0h-24.9v-91h24.9z"/></svg>';
23
+ export const ZIP_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8l14.8 0c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0z"/></svg>';
24
+ export const WINDOWS_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h242.7v242.6H0zm269.3 0H512v242.6H269.3zM0 269.3h242.7V512H0zm269.3 0H512V512H269.3" fill="currentColor"/></svg>';
25
+ export const APPLE_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="47.6 0 416.8 512"><path d="M451.1 174.6c-3 2.3-55.4 31.8-55.4 97.5 0 76 66.7 102.9 68.7 103.5-.3 1.6-10.6 36.8-35.2 72.7-21.9 31.5-44.8 63-79.6 63s-43.8-20.2-84-20.2c-39.2 0-53.1 20.9-84.9 20.9s-54.1-29.2-79.6-65c-29.6-42.1-53.5-107.5-53.5-169.5 0-99.5 64.7-152.3 128.4-152.3 33.8 0 62.1 22.2 83.3 22.2 20.2 0 51.8-23.6 90.3-23.6 14.6 0 67 1.3 101.5 50.8m-119.8-93c15.9-18.9 27.2-45.1 27.2-71.3 0-3.6-.3-7.3-1-10.3-25.9 1-56.7 17.3-75.3 38.8-14.6 16.6-28.2 42.8-28.2 69.4 0 4 .7 8 1 9.3 1.6.3 4.3.7 7 .7 23.2-.1 52.4-15.6 69.3-36.6" fill="currentColor"/></svg>';
26
+ export const LINUX_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12.504 0c-.155 0-.315.008-.48.021-4.226.333-3.105 4.807-3.17 6.298-.076 1.092-.3 1.953-1.05 3.02-.885 1.051-2.127 2.75-2.716 4.521-.278.832-.41 1.684-.287 2.489a.424.424 0 00-.11.135c-.26.268-.45.6-.663.839-.199.199-.485.267-.797.4-.313.136-.658.269-.864.68-.09.189-.136.394-.132.602 0 .199.027.4.055.536.058.399.116.728.04.97-.249.68-.28 1.145-.106 1.484.174.334.535.47.94.601.81.2 1.91.135 2.774.6.926.466 1.866.67 2.616.47.526-.116.97-.464 1.208-.946.587-.003 1.23-.269 2.26-.334.699-.058 1.574.267 2.577.2.025.134.063.198.114.333l.003.003c.391.778 1.113 1.132 1.884 1.071.771-.06 1.592-.536 2.257-1.306.631-.765 1.683-1.084 2.378-1.503.348-.199.629-.469.649-.853.023-.4-.2-.811-.714-1.376v-.097l-.003-.003c-.17-.2-.25-.535-.338-.926-.085-.401-.182-.786-.492-1.046h-.003c-.059-.054-.123-.067-.188-.135a.357.357 0 00-.19-.064c.431-1.278.264-2.55-.173-3.694-.533-1.41-1.465-2.638-2.175-3.483-.796-1.005-1.576-1.957-1.56-3.368.026-2.152.236-6.133-3.544-6.139zm.529 3.405h.013c.213 0 .396.062.584.198.19.135.33.332.438.533.105.259.158.459.166.724 0-.02.006-.04.006-.06v.105a.086.086 0 01-.004-.021l-.004-.024a1.807 1.807 0 01-.15.706.953.953 0 01-.213.335.71.71 0 00-.088-.042c-.104-.045-.198-.064-.284-.133a1.312 1.312 0 00-.22-.066c.05-.06.146-.133.183-.198.053-.128.082-.264.088-.402v-.02a1.21 1.21 0 00-.061-.4c-.045-.134-.101-.2-.183-.333-.084-.066-.167-.132-.267-.132h-.016c-.093 0-.176.03-.262.132a.8.8 0 00-.205.334 1.18 1.18 0 00-.09.4v.019c.002.089.008.179.02.267-.193-.067-.438-.135-.607-.202a1.635 1.635 0 01-.018-.2v-.02a1.772 1.772 0 01.15-.768c.082-.22.232-.406.43-.533a.985.985 0 01.594-.2zm-2.962.059h.036c.142 0 .27.048.399.135.146.129.264.288.344.465.09.199.14.4.153.667v.004c.007.134.006.2-.002.266v.08c-.03.007-.056.018-.083.024-.152.055-.274.135-.393.2.012-.09.013-.18.003-.267v-.015c-.012-.133-.04-.2-.082-.333a.613.613 0 00-.166-.267.248.248 0 00-.183-.064h-.021c-.071.006-.13.04-.186.132a.552.552 0 00-.12.27.944.944 0 00-.023.33v.015c.012.135.037.2.08.334.046.134.098.2.166.268.01.009.02.018.034.024-.07.057-.117.07-.176.136a.304.304 0 01-.131.068 2.62 2.62 0 01-.275-.402 1.772 1.772 0 01-.155-.667 1.759 1.759 0 01.08-.668 1.43 1.43 0 01.283-.535c.128-.133.26-.2.418-.2zm1.37 1.706c.332 0 .733.065 1.216.399.293.2.523.269 1.052.468h.003c.255.136.405.266.478.399v-.131a.571.571 0 01.016.47c-.123.31-.516.643-1.063.842v.002c-.268.135-.501.333-.775.465-.276.135-.588.292-1.012.267a1.139 1.139 0 01-.448-.067 3.566 3.566 0 01-.322-.198c-.195-.135-.363-.332-.612-.465v-.005h-.005c-.4-.246-.616-.512-.686-.71-.07-.268-.005-.47.193-.6.224-.135.38-.271.483-.336.104-.074.143-.102.176-.131h.002v-.003c.169-.202.436-.47.839-.601.139-.036.294-.065.466-.065zm2.8 2.142c.358 1.417 1.196 3.475 1.735 4.473.286.534.855 1.659 1.102 3.024.156-.005.33.018.513.064.646-1.671-.546-3.467-1.089-3.966-.22-.2-.232-.335-.123-.335.59.534 1.365 1.572 1.646 2.757.13.535.16 1.104.021 1.67.067.028.135.06.205.067 1.032.534 1.413.938 1.23 1.537v-.043c-.06-.003-.12 0-.18 0h-.016c.151-.467-.182-.825-1.065-1.224-.915-.4-1.646-.336-1.77.465-.008.043-.013.066-.018.135-.068.023-.139.053-.209.064-.43.268-.662.669-.793 1.187-.13.533-.17 1.156-.205 1.869v.003c-.02.334-.17.838-.319 1.35-1.5 1.072-3.58 1.538-5.348.334a2.645 2.645 0 00-.402-.533 1.45 1.45 0 00-.275-.333c.182 0 .338-.03.465-.067a.615.615 0 00.314-.334c.108-.267 0-.697-.345-1.163-.345-.467-.931-.995-1.788-1.521-.63-.4-.986-.87-1.15-1.396-.165-.534-.143-1.085-.015-1.645.245-1.07.873-2.11 1.274-2.763.107-.065.037.135-.408.974-.396.751-1.14 2.497-.122 3.854a8.123 8.123 0 01.647-2.876c.564-1.278 1.743-3.504 1.836-5.268.048.036.217.135.289.202.218.133.38.333.59.465.21.201.477.335.876.335.039.003.075.006.11.006.412 0 .73-.134.997-.268.29-.134.52-.334.74-.4h.005c.467-.135.835-.402 1.044-.7zm2.185 8.958c.037.6.343 1.245.882 1.377.588.134 1.434-.333 1.791-.765l.211-.01c.315-.007.577.01.847.268l.003.003c.208.199.305.53.391.876.085.4.154.78.409 1.066.486.527.645.906.636 1.14l.003-.007v.018l-.003-.012c-.015.262-.185.396-.498.595-.63.401-1.746.712-2.457 1.57-.618.737-1.37 1.14-2.036 1.191-.664.053-1.237-.2-1.574-.898l-.005-.003c-.21-.4-.12-1.025.056-1.69.176-.668.428-1.344.463-1.897.037-.714.076-1.335.195-1.814.12-.465.308-.797.641-.984l.045-.022zm-10.814.049h.01c.053 0 .105.005.157.014.376.055.706.333 1.023.752l.91 1.664.003.003c.243.533.754 1.064 1.189 1.637.434.598.77 1.131.729 1.57v.006c-.057.744-.48 1.148-1.125 1.294-.645.135-1.52.002-2.395-.464-.968-.536-2.118-.469-2.857-.602-.369-.066-.61-.2-.723-.4-.11-.2-.113-.602.123-1.23v-.004l.002-.003c.117-.334.03-.752-.027-1.118-.055-.401-.083-.71.043-.94.16-.334.396-.4.69-.533.294-.135.64-.202.915-.47h.002v-.002c.256-.268.445-.601.668-.838.19-.201.38-.336.663-.336zm7.159-9.074c-.435.201-.945.535-1.488.535-.542 0-.97-.267-1.28-.466-.154-.134-.28-.268-.373-.335-.164-.134-.144-.333-.074-.333.109.016.129.134.199.2.096.066.215.2.36.333.292.2.68.467 1.167.467.485 0 1.053-.267 1.398-.466.195-.135.445-.334.648-.467.156-.136.149-.267.279-.267.128.016.034.134-.147.332a8.097 8.097 0 01-.69.468zm-1.082-1.583V5.64c-.006-.02.013-.042.029-.05.074-.043.18-.027.26.004.063 0 .16.067.15.135-.006.049-.085.066-.135.066-.055 0-.092-.043-.141-.068-.052-.018-.146-.008-.163-.065zm-.551 0c-.02.058-.113.049-.166.066-.047.025-.086.068-.14.068-.05 0-.13-.02-.136-.068-.01-.066.088-.133.15-.133.08-.031.184-.047.259-.005.019.009.036.03.03.05v.02h.003z" fill="currentColor"/><path fill="var(--mark-cut, #fcc624)" fill-rule="evenodd" d="M11.441 5.17C11.773 5.17 12.174 5.235 12.657 5.569C12.95 5.769 13.18 5.838 13.709 6.037L13.712 6.037C13.967 6.173 14.117 6.303 14.19 6.436L14.19 6.305A0.571 0.571 0 0 1 14.206 6.775C14.083 7.085 13.69 7.418 13.143 7.617L13.143 7.619C12.875 7.754 12.642 7.952 12.368 8.084C12.092 8.219 11.78 8.376 11.356 8.351A1.139 1.139 0 0 1 10.908 8.284A3.566 3.566 0 0 1 10.586 8.086C10.391 7.951 10.223 7.754 9.974 7.621L9.974 7.616L9.969 7.616C9.569 7.37 9.353 7.104 9.283 6.906C9.213 6.638 9.278 6.436 9.476 6.306C9.7 6.171 9.856 6.035 9.959 5.97C10.063 5.896 10.102 5.868 10.135 5.839L10.137 5.839L10.137 5.836C10.306 5.634 10.573 5.366 10.976 5.235C11.115 5.199 11.27 5.17 11.442 5.17ZM12.771 7.245C12.336 7.446 11.826 7.78 11.283 7.78C10.741 7.78 10.313 7.513 10.003 7.314C9.849 7.18 9.723 7.046 9.63 6.979C9.466 6.845 9.486 6.646 9.556 6.646C9.665 6.662 9.685 6.78 9.755 6.846C9.851 6.912 9.97 7.046 10.115 7.179C10.407 7.379 10.795 7.646 11.282 7.646C11.767 7.646 12.335 7.379 12.68 7.18C12.875 7.045 13.125 6.846 13.328 6.713C13.484 6.577 13.477 6.446 13.607 6.446C13.735 6.462 13.641 6.58 13.46 6.778A8.097 8.097 0 0 1 12.77 7.246ZM11.689 5.662L11.689 5.64C11.683 5.62 11.702 5.598 11.718 5.59C11.792 5.547 11.898 5.563 11.978 5.594C12.041 5.594 12.138 5.661 12.128 5.729C12.122 5.778 12.043 5.795 11.993 5.795C11.938 5.795 11.901 5.752 11.852 5.727C11.8 5.709 11.706 5.719 11.689 5.662ZM11.138 5.662C11.118 5.72 11.025 5.711 10.972 5.728C10.925 5.753 10.886 5.796 10.832 5.796C10.782 5.796 10.702 5.776 10.696 5.728C10.686 5.662 10.784 5.595 10.846 5.595C10.926 5.564 11.03 5.548 11.105 5.59C11.124 5.599 11.141 5.62 11.135 5.64L11.135 5.66L11.138 5.66Z"/><path fill="var(--mark-cut, #fcc624)" d="M16.426 16.27C16.463 16.87 16.769 17.515 17.308 17.647C17.896 17.781 18.742 17.314 19.099 16.882L19.31 16.872C19.625 16.865 19.887 16.882 20.157 17.14L20.16 17.143C20.368 17.342 20.465 17.673 20.551 18.019C20.636 18.419 20.705 18.799 20.96 19.085C21.446 19.612 21.605 19.991 21.596 20.225L21.599 20.218L21.599 20.236L21.596 20.224C21.581 20.486 21.411 20.62 21.098 20.819C20.468 21.22 19.352 21.531 18.641 22.389C18.023 23.126 17.271 23.529 16.605 23.58C15.941 23.633 15.368 23.38 15.031 22.682L15.026 22.679C14.816 22.279 14.906 21.654 15.082 20.989C15.258 20.321 15.51 19.645 15.545 19.092C15.582 18.378 15.621 17.757 15.74 17.278C15.86 16.813 16.048 16.481 16.381 16.294L16.426 16.272ZM5.612 16.319L5.622 16.319C5.675 16.319 5.727 16.324 5.779 16.333C6.155 16.388 6.485 16.666 6.802 17.085L7.712 18.749L7.715 18.752C7.958 19.285 8.469 19.816 8.904 20.389C9.338 20.987 9.674 21.52 9.633 21.959L9.633 21.965C9.576 22.709 9.153 23.113 8.508 23.259C7.863 23.394 6.988 23.261 6.113 22.795C5.145 22.259 3.995 22.326 3.256 22.193C2.887 22.127 2.646 21.993 2.533 21.793C2.423 21.593 2.42 21.191 2.656 20.563L2.656 20.559L2.658 20.556C2.775 20.222 2.688 19.804 2.631 19.438C2.576 19.037 2.548 18.728 2.674 18.498C2.834 18.164 3.07 18.098 3.364 17.965C3.658 17.83 4.004 17.763 4.279 17.495L4.281 17.495L4.281 17.493C4.537 17.225 4.726 16.892 4.949 16.655C5.139 16.454 5.329 16.319 5.612 16.319Z"/></svg>';
27
+ // Buy Me a Coffee's own README button without its yellow ground: the cup, and
28
+ // the lettering in their typeface, on the button's 841.9 by 245.3 canvas, which
29
+ // is the shape of every README button. The cup takes the brand colour at rest
30
+ // and the tile's ink under the pointer; the lettering takes the button's ink.
31
+ export const COFFEE_BUTTON_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 245.3"><path fill="var(--mark-ink, var(--brand-coffee))" d="M110.7,113.9c-4.4,1.9-9.4,4.2-15.9,4.2s-5.5-.4-8-1.2l4.5,47.9c.2,2,1.1,3.9,2.5,5.2,1.4,1.4,3.3,2.1,5.2,2.1,0,0,6.3.3,8.5.3s9.1-.3,9.1-.3c1.9,0,3.7-.7,5.2-2.1,1.4-1.4,2.4-3.2,2.5-5.2l4.8-53c-2.1-.7-4.3-1.3-6.7-1.3-4.2,0-7.6,1.5-11.6,3.2h0Z"/><path fill="var(--mark-ink, var(--brand-coffee))" d="M149.7,89.1l-.6-3.5c-.6-3.2-2-6.2-5.1-7.4-1-.3-2.1-.5-2.9-1.3s-1-1.9-1.2-3c-.3-2-.6-4.1-1-6-.3-1.7-.5-3.6-1.3-5.2-1-2.1-3.1-3.3-5.1-4.2-1.1-.4-2.1-.7-3.2-1.1-5.1-1.4-10.5-1.9-15.7-2.2-6.3-.3-12.6-.2-18.9.3-4.7.4-9.6,1-14.1,2.7-1.6.6-3.3,1.4-4.5,2.7-1.5,1.6-2,4.1-.9,6.1.7,1.4,2.1,2.5,3.5,3.1,1.8.9,3.7,1.5,5.8,1.9,5.5,1.3,11.2,1.7,16.8,1.9,6.2.2,12.5,0,18.6-.6,1.5-.2,3.1-.4,4.6-.6,1.8-.3,3-2.8,2.5-4.4-.6-2-2.4-2.8-4.3-2.6-.3,0-.5,0-.9.1h-.2c-.6.1-1.3.2-1.9.2-1.4.1-2.7.3-4.1.4-3,.2-6.1.3-9.1.3s-6,0-9-.3c-1.4,0-2.7-.2-4.1-.3-.6,0-1.3-.1-1.8-.2h-1.4c-1.3-.3-2.5-.5-3.7-.7-.1,0-.2,0-.3-.2s-.1-.2-.1-.3,0-.2.1-.3c0-.1.2-.2.3-.2h0c1.1-.2,2.1-.4,3.2-.6.3,0,.7-.1,1.1-.2h0c.6,0,1.4-.2,2-.2,5.8-.6,11.7-.9,17.6-.6,2.9,0,5.7.2,8.5.5.6,0,1.2.1,1.8.2h1.2c1.4.3,2.8.5,4.1.9,2,.4,4.6.6,5.5,2.9.3.7.4,1.5.5,2.2l.2,1h0c.4,2.2,1,4.6,1.4,6.8v.5c0,.2,0,.3-.2.4,0,.1-.2.2-.3.3s-.3.1-.4.2h-.6c-.9.1-1.8.2-2.7.3-1.8.2-3.5.4-5.4.5-3.5.3-7.2.5-10.7.6h-5.5c-7.3,0-14.4-.4-21.7-1.3-.7,0-1.6-.2-2.4-.3.6,0-.4,0-.6,0-.5,0-1-.1-1.5-.2-1.7-.2-3.3-.5-5-.9-2-.3-4-.2-5.8.9-1.5.9-2.7,2.1-3.4,3.7-.7,1.7-1,3.5-1.4,5.4s-.9,3.7-.6,5.6c.4,4,3.1,7.3,7.1,8,3.6.6,7.3,1.3,11,1.7,14.4,1.8,29,2,43.6.6,1.2-.1,2.4-.2,3.5-.4.3,0,.7,0,1.1.1s.6.3,1,.6.4.6.6,1,.2.7.1,1.2l-.3,3.7c-.7,7.5-1.5,15-2.2,22.5-.7,7.9-1.5,15.7-2.4,23.5-.2,2.2-.4,4.4-.6,6.6-.2,2.1-.2,4.4-.6,6.5-.6,3.4-2.9,5.5-6.1,6.2-3,.6-6,1.1-9,1.1s-6.7-.1-10.1-.1-7.9-.3-10.7-3.1c-2.5-2.5-2.8-6.2-3.1-9.5-.4-4.4-.9-8.7-1.3-13.1l-2.5-24.2-1.6-15.6v-.7c-.2-1.9-1.5-3.7-3.4-3.6-1.7,0-3.6,1.6-3.4,3.6l1.2,11.7,2.4,24.1c.6,6.8,1.4,13.7,2,20.4.1,1.3.2,2.7.4,4,.7,7.2,6,11,12.5,12.1,3.9.6,7.7.7,11.6.9,4.9,0,10,.3,14.8-.6,7.2-1.4,12.6-6.4,13.4-14.1.2-2.2.4-4.5.6-6.7.7-7.4,1.5-14.9,2.2-22.3l2.4-24.2,1.1-11.1c0-.5.3-1.1.6-1.5s.9-.6,1.4-.7c2-.4,4.1-1.2,5.5-2.8,2.4-2.6,2.8-6,1.9-9.4h0ZM72.2,91.6v.4-.4ZM72.5,93.2h.1c0,.1-.1,0-.1,0ZM72.6,93.4c0,.2,0,.1,0,0ZM73,93.7h0ZM142.1,93.3c-.7.7-1.8,1.1-3,1.3-12.4,1.9-24.9,2.9-37.4,2.5-8.9-.3-17.8-1.4-26.6-2.7-.9-.1-1.8-.3-2.4-1-1.2-1.3-.5-3.7-.3-5.4.2-1.4.7-3.2,2.4-3.4,2.5-.3,5.4.7,7.8,1.2,3,.4,5.9.9,8.9,1.1,12.7,1.2,25.6,1.1,38.2-.7,2.4-.3,4.6-.6,6.8-1.1,2-.4,4.3-1.1,5.6,1.1.9,1.5,1,3.5.9,5.1,0,.7-.3,1.4-.9,1.9h0Z"/><path fill="currentColor" fill-rule="evenodd" d="M237.6,134.4c-1,1.8-2.2,3.4-4,4.7-1.7,1.3-3.6,2.5-5.8,3.3-2.2.9-4.5,1.4-6.7,1.7s-4.4.2-6.5,0c-2.1-.3-4-1.1-5.4-2.1l1.7-17.3c1.5-.5,3.4-1.1,5.8-1.6s4.7-1,7.2-1.2,4.8-.2,7,0c2.2.3,4,1,5.2,2.1.6.6,1.3,1.3,1.7,2s.7,1.5.9,2.2c.2,2.2,0,4.3-1.1,6h0ZM213.4,97.6c1.1-.6,2.5-1.3,4-1.8,1.6-.5,3.1-.9,4.8-1.1,1.6-.2,3.2-.2,4.8,0,1.6.1,2.9.5,4.2,1.3,1.2.7,2,1.7,2.7,3.1s.7,3,.4,5.1c-.2,1.6-.9,3-1.9,4.2s-2.4,2-4,2.9c-1.6.7-3.2,1.4-4.9,1.8s-3.4.7-5,1c-1.6.2-3,.3-4.2.4h-2.4l1.6-16.7h0v-.2ZM246.2,123.3c-.9-1.8-2-3.4-3.4-4.8s-3.1-2.4-5-3c.9-.6,1.7-1.7,2.5-3.2s1.5-3.1,2.1-4.8c.5-1.7,1-3.5,1.2-5.2s.1-3.3-.2-4.5c-.9-3.2-2.4-5.7-4.3-7.4-1.9-1.8-4.2-3-6.7-3.7-2.6-.6-5.4-.9-8.5-.4s-6.2,1.2-9.5,2.4v-1.8c0-.7-.4-1.5-1.2-2s-1.7-1-2.8-1.1-2,.1-3,.6c-1,.5-1.6,1.6-2,3-.4,4.7-.9,9.6-1.3,14.8s-.9,10.3-1.4,15.5c-.4,5.2-1,10.4-1.4,15.5-.4,5.1-1,10.1-1.4,14.8.1,1.4.5,2.6,1.2,3.3.6.7,1.4,1.3,2.2,1.4s1.7,0,2.7-.4,1.7-1.2,2.5-2.4c2.1,1.2,4.5,1.9,7.2,2.2s5.4.3,8,0,5.5-1,8-1.9c2.7-1,5-2.1,7.2-3.5s4-3,5.5-4.8,2.5-3.7,2.9-5.9.6-4.3.4-6.4c-.2-2.1-.7-4.2-1.6-6h.2Z"/><path fill="currentColor" fill-rule="evenodd" d="M323.5,164.9c-.3,1.7-.6,3.5-1.2,5.5s-1.2,3.6-1.8,5.2c-.7,1.6-1.5,2.9-2.4,3.9-.9,1-1.8,1.4-2.8,1.2-.7-.1-1.3-.6-1.5-1.5-.2-.9-.2-2,0-3.3s.6-2.8,1.2-4.5c.6-1.6,1.4-3.3,2.2-4.9.9-1.6,1.8-3.2,3-4.7,1.1-1.5,2.2-2.8,3.5-3.7.2.3.4,1.1.3,2.4s-.2,2.8-.4,4.5h-.2ZM350.4,130.6c-.7-.7-1.6-1.3-2.7-1.3-1.1-.1-2,.4-3.1,1.7-.6,1.3-1.6,2.5-2.7,3.6-1.1,1.2-2.1,2.2-3.3,3.2s-2.2,1.7-3.2,2.5c-1.1.6-1.8,1.2-2.5,1.5-.2-1.7-.3-3.5-.3-5.5s0-4,.1-5.9c.1-2.9.5-5.7,1-8.6s1.2-5.8,2.1-8.6c0-1.5-.3-2.7-1.1-3.6-.6-1-1.5-1.5-2.5-1.7s-2-.1-3,.4-1.9,1.4-2.7,2.7c-.6,1.7-1.4,3.7-2.1,5.9-.9,2.1-1.7,4.4-2.8,6.6s-2.1,4.4-3.4,6.5-2.7,4-4.2,5.6-3.1,2.9-4.9,3.9c-1.8,1-3.6,1.3-5.8,1.2-1-.2-1.6-1-2-2.1s-.6-2.6-.7-4.4,0-3.6.2-5.8.5-4.2,1-6.2.9-4,1.3-5.9,1-3.4,1.4-4.7c.6-1.5.6-2.8,0-3.9s-1.5-1.7-2.6-2-2.2-.3-3.5,0c-1.2.3-2.1,1.2-2.6,2.5-.9,2.1-1.7,4.6-2.5,7.3s-1.3,5.5-1.8,8.3c-.4,2.9-.7,5.7-.7,8.6v.5c-1.2,3.1-2.2,5.4-3.3,7-1.4,2-2.9,2.9-4.6,2.6-.7-.3-1.2-1.1-1.5-2.2-.2-1.2-.3-2.6-.2-4.3,0-1.7.3-3.6.6-5.8.3-2.1.7-4.4,1.2-6.6.5-2.2,1-4.6,1.5-7s1-4.5,1.4-6.5c0-1.8-.6-3.2-1.6-4.3s-2.5-1.4-4.3-1.2c-1.3.5-2.2,1.2-2.8,2s-1.1,1.9-1.5,3.2c-.2.6-.5,2-1,4.1s-1,4.4-1.6,7.1-1.5,5.5-2.4,8.3c-.9,2.9-1.9,5.6-3,7.8-1.1,2.4-2.4,4.3-3.6,5.7s-2.8,2-4.3,1.7c-.9-.1-1.4-1.1-1.6-2.6s-.3-3.5-.1-5.9.4-4.8,1-7.6c.4-2.8,1-5.4,1.5-7.9.5-2.5,1-4.7,1.4-6.5.4-1.9.7-3.2.9-3.7,0-1.5-.3-2.8-1.1-3.6s-1.5-1.5-2.5-1.7-2-.1-3,.4c-1.1.5-1.9,1.4-2.7,2.7-.2,1.4-.6,3.1-1.1,4.9-.4,1.9-.9,3.7-1.2,5.8s-.7,3.9-1.1,5.8-.6,3.5-.7,4.9c-.1,1.1-.2,2.5-.3,4.1s-.2,3.3-.2,5.1.1,3.5.4,5.4c.2,1.7.7,3.4,1.4,4.8s1.6,2.7,2.9,3.6,2.8,1.5,4.7,1.6c1.9.1,3.6,0,5.1-.4s2.8-1.1,4-1.8c1.2-.9,2.2-1.8,3.2-3s1.9-2.5,2.9-3.7c.9,2,2,3.5,3.5,4.7,1.4,1.1,2.9,1.7,4.5,1.9s3.2,0,4.8-.6,3.1-1.8,4.4-3.3c.9-1,1.7-2,2.5-3.3.3.5.6,1.1,1.1,1.6,1.3,1.7,3.1,2.9,5.2,3.4,2.4.6,4.7.7,7,.3s4.4-1.2,6.5-2.2c2-1.1,4-2.5,5.8-4s3.3-3.2,4.6-4.8v7c-2.7,1.8-5.1,4.1-7.5,6.6s-4.4,5.4-6.2,8.2c-1.7,2.9-3.2,5.9-4.2,8.9s-1.5,5.8-1.5,8.5.6,4.9,1.8,6.8c1.2,1.9,3.2,3.3,6,4.2,2.9.9,5.4,1,7.5,0,2.1-.9,4.1-2.2,5.7-4.2,1.6-1.9,2.9-4.3,4-7.1s1.8-5.7,2.5-8.7c.6-3,1-6,1.2-8.9s.1-5.5,0-7.7c4.5-1.9,8.2-4.3,11.1-7.2,2.9-2.9,5.4-6,7.2-9.2.5-.7.7-1.7.6-2.9-.2-1.1-.6-2-1.4-2.9h0v.3Z"/><path fill="currentColor" fill-rule="evenodd" d="M450.4,125.6c.1-1.2.4-2.5.7-3.9s.7-2.7,1.2-3.9c.4-1.3,1.1-2.4,1.7-3.3s1.3-1.6,2-2,1.4-.3,2.1.1,1.3,1.5,1.5,3c.2,1.5,0,3.2-.5,4.9s-1.5,3.3-3,4.9c-1.4,1.5-3.3,2.6-5.8,3-.1-.7,0-1.7,0-2.9h0ZM477.9,128.8c-.9-.2-1.7-.3-2.5,0-.7.2-1.3.7-1.5,1.6-.4,1.7-1.1,3.4-2,5.1s-2,3.4-3.4,5c-1.4,1.6-2.9,3-4.6,4.2-1.7,1.2-3.4,2-5.4,2.6-1.8.5-3.4.6-4.6.2-1.2-.4-2.1-1.2-2.9-2.2s-1.2-2.4-1.5-3.9c-.3-1.5-.5-3.1-.5-4.7,3,.2,5.7-.3,8-1.6s4.4-3,6-5.1,2.9-4.5,3.7-7.2,1.3-5.4,1.4-7.9c0-2.5-.3-4.6-1.1-6.3s-1.8-3-3.2-4-2.9-1.5-4.6-1.6c-1.7-.1-3.5,0-5.4.7-2.1.7-4,1.9-5.5,3.6s-2.8,3.6-3.7,5.8-1.8,4.5-2.4,7.1-1,5-1.3,7.5c-.2,2.1-.3,4.3-.4,6.3-.1.2-.2.5-.3.7-.9,1.9-1.8,3.7-2.9,5.5s-2.2,3.3-3.6,4.5c-1.3,1.2-2.7,1.6-4.2,1.3-.9-.2-1.3-1.2-1.4-2.9,0-1.7,0-3.9.3-6.4.2-2.6.5-5.4,1-8.3.3-3,.5-5.9.5-8.6s-.4-4.6-1.4-6.8c-.9-2.1-2.1-4-3.6-5.5-1.6-1.5-3.3-2.4-5.5-2.9-2-.4-4.3-.1-6.6,1s-4.3,2.7-5.7,4.7-2.7,4.1-3.9,6.3c-.4-1.7-1.1-3.2-1.8-4.7-.9-1.5-1.8-2.7-3-3.7s-2.6-1.9-4-2.6-3-1-4.7-1-3.1.3-4.4,1c-1.4.6-2.6,1.4-3.7,2.4-1.1,1-2.1,2-3,3.2s-1.7,2.4-2.4,3.5c-.1-1.4-.2-2.6-.3-3.6s-.4-1.9-.7-2.6-.9-1.3-1.5-1.6-1.5-.5-2.7-.5-1.2.1-1.7.3-1.1.5-1.5,1-.7,1-1.1,1.5-.3,1.3-.2,2.1c0,.5.2,1.3.4,2.1.2.9.4,1.9.6,3.2s.4,2.9.5,4.8.2,4.2.1,6.8c0,2.7-.2,5.9-.6,9.5-.3,3.6-.9,7.8-1.6,12.6-.1,1.1.3,2,1.3,2.7s2,1.1,3.2,1.2,2.4-.1,3.4-.6,1.7-1.5,1.8-2.8c.1-2.5.4-5.1,1-7.9.4-2.8,1-5.6,1.7-8.3s1.4-5.4,2.2-7.8c.9-2.5,1.8-4.7,2.8-6.5,1.1-1.9,2.1-3.4,3.2-4.5,1.1-1.2,2.2-1.7,3.5-1.7s2.7.6,3.4,2c.9,1.4,1.4,3.1,1.7,5.1.3,2.1.5,4.4.4,7s-.1,4.9-.3,7.3c-.2,2.4-.4,4.4-.6,6.2s-.4,3.1-.5,3.7c0,1.2.4,2.1,1.4,2.9s1.9,1.2,3.1,1.3c1.2.1,2.2,0,3.2-.6s1.6-1.5,1.7-2.8c.5-3.7,1.3-7.6,2.1-11.5,1-3.9,2-7.3,3.2-10.3,1.2-3,2.5-5.5,4-7.4,1.5-1.9,3-2.9,4.6-2.9s1.5.5,1.9,1.7.6,2.8.6,4.7-.1,3-.3,4.5c-.2,1.6-.5,3.2-.9,4.8s-.6,3.3-.9,5.1-.3,3.5-.3,5.5.1,2.9.4,4.6.7,3.4,1.5,4.9c.7,1.6,1.7,2.9,3.1,4s3,1.6,4.9,1.6c3,0,5.7-.6,8-1.9s4.3-3,6-5c0-.1.1-.2.2-.3.1.3.2.6.4,1,1.2,2.4,2.7,4.1,4.6,5.4s4.3,1.9,7,2.1c2.7.1,5.6-.3,8.7-1.5,2.4-.9,4.4-1.9,6.1-3.2s3.2-2.8,4.6-4.6,2.7-3.9,3.7-6.3,2.2-5.1,3.4-8.1c.2-.9,0-1.6-.5-2.2-.6-.6-1.4-1.1-2.2-1.4h0v-.5Z"/><path fill="currentColor" fill-rule="evenodd" d="M521,120.1c-.2,1.6-.6,3.2-1.1,5.1s-1.1,3.9-1.7,5.8c-.6,2-1.5,3.9-2.6,5.5-1,1.6-2.1,2.9-3.4,3.9-1.3,1-2.8,1.3-4.5,1.2-.9-.1-1.5-.6-1.9-1.7s-.6-2.4-.7-4.1c0-1.6.1-3.4.4-5.4s.9-3.9,1.5-5.8,1.5-3.6,2.5-5.1c1-1.6,2-2.8,3.3-3.6s2.6-1.3,4.1-1.2c1.5,0,3.1.7,4.8,2.2-.1.6-.3,1.8-.5,3.3h-.1ZM549.2,126c-.9-.4-1.6-.5-2.6-.3-.9.2-1.5,1.1-1.8,2.4-.2,1.5-.6,3.2-1.4,5.2-.7,2-1.6,3.9-2.8,5.7-1.1,1.8-2.4,3.3-3.7,4.5-1.4,1.2-2.9,1.7-4.5,1.6-1.3-.1-2.2-.7-2.8-2s-.9-2.8-.9-4.7.1-4,.5-6.3.9-4.7,1.4-7,1.1-4.5,1.7-6.6c.5-2.1,1.1-4,1.4-5.5.4-1.3.3-2.5-.4-3.3-.6-1-1.5-1.6-2.6-1.9-1.1-.4-2-.5-3.1-.3s-1.7.7-2,1.7c-3.1-2.7-6.1-4.2-9-4.4s-5.6.4-7.9,1.9c-2.5,1.5-4.6,3.6-6.4,6.4-1.9,2.8-3.4,5.9-4.6,9.1s-1.9,6.6-2.1,10.1c-.3,3.4,0,6.5.6,9.4.7,2.8,2,5.1,4,7,1.9,1.8,4.4,2.7,7.6,2.7s2.8-.3,4.2-.9,2.6-1.3,3.6-2,2.1-1.6,2.9-2.5,1.5-1.6,2-2.1c.3,1.9,1,3.5,1.8,4.8s1.8,2.4,2.9,3.2,2.2,1.5,3.4,1.8c1.2.4,2.4.5,3.4.5,2.5,0,4.8-.9,7-2.6,2.1-1.7,4.1-3.7,5.8-6.2,1.7-2.5,3.1-5,4.3-7.7,1.1-2.7,1.8-5.1,2.2-7.3.3-.7.3-1.6-.2-2.5s-1.2-1.5-2-1.9h.1Z"/><path fill="currentColor" fill-rule="evenodd" d="M691.9,169.7c-.4,1.8-1.2,3.3-2.1,4.5-1,1.3-2.1,1.9-3.5,1.9s-1.6-.4-2-1.4c-.5-1-.9-2.2-1-3.9-.2-1.6-.2-3.3-.2-5.4s0-3.9.2-5.8c.1-1.9.3-3.6.5-5.4.2-1.6.3-2.9.4-3.7,1.8.2,3.3,1,4.5,2.4,1.2,1.3,2.1,2.9,2.8,4.8.6,1.8,1,3.9,1.1,6,0,2.1,0,4.1-.5,5.9h-.1ZM663.2,169.7c-.4,1.8-1.2,3.3-2.1,4.5-1,1.3-2.1,1.9-3.5,1.9s-1.6-.4-2-1.4c-.5-1-.9-2.2-1-3.9-.2-1.6-.2-3.3-.2-5.4s0-3.9.2-5.8c.1-1.9.3-3.6.5-5.4.2-1.6.3-2.9.4-3.7,1.8.2,3.3,1,4.5,2.4,1.2,1.3,2.1,2.9,2.8,4.8.6,1.8,1,3.9,1.1,6,0,2.1,0,4.1-.5,5.9h-.1ZM633.8,124.9c0,1.3-.2,2.4-.3,3.3-.2,1-.4,1.6-.7,1.8-.5-.3-1.3-1.2-2.1-2.5s-1.5-2.8-1.9-4.5-.6-3.3-.4-4.9c.2-1.6,1.1-2.9,2.5-3.7.5-.3,1.1-.2,1.5.3s.7,1.4,1.1,2.4c.2,1.1.4,2.2.5,3.6,0,1.4.1,2.7,0,4h0v.2ZM626.7,140.6c-.9.9-1.7,1.6-2.8,2.2s-2,1.1-3.1,1.4-2,.4-2.9.2c-2.4-.4-4.2-1.5-5.5-3.1s-2-3.4-2.5-5.6c-.3-2.1-.3-4.4.1-6.8.4-2.5,1.2-4.7,2.1-6.7s2.2-3.9,3.6-5.4,3-2.5,4.7-2.8c-.6,2.7-.9,5.5-.6,8.3.2,2.9.9,5.6,2,8.1.7,1.5,1.6,2.9,2.7,4.2s2.2,2.4,3.7,3.2c-.4.9-1.1,1.8-1.8,2.7h.1ZM714.5,125.6c.2-1.2.4-2.5.7-3.9.3-1.3.7-2.7,1.2-3.9.5-1.3,1.1-2.4,1.7-3.3s1.3-1.6,2-2,1.4-.3,2.1.1,1.3,1.5,1.5,3,0,3.2-.5,4.9-1.5,3.3-3,4.9-3.3,2.6-5.8,3v-2.9h0ZM746.4,125.6c.2-1.2.4-2.5.7-3.9.3-1.3.7-2.7,1.2-3.9.5-1.3,1.1-2.4,1.7-3.3s1.3-1.6,2-2,1.4-.3,2.1.1,1.3,1.5,1.5,3,0,3.2-.5,4.9-1.5,3.3-3,4.9c-1.4,1.5-3.3,2.6-5.8,3v-2.9h0ZM776.2,130.2c-.6-.6-1.4-1.1-2.2-1.4s-1.7-.3-2.5,0c-.7.2-1.3.7-1.5,1.6-.4,1.7-1.1,3.4-2,5.1s-2,3.4-3.4,5-2.9,3-4.6,4.2-3.4,2-5.4,2.6c-1.8.5-3.4.6-4.6.2-1.2-.4-2.1-1.2-2.9-2.2s-1.3-2.4-1.5-3.9c-.3-1.5-.5-3.1-.5-4.7,3,.2,5.7-.3,8-1.6s4.4-3,6-5.1,2.9-4.5,3.7-7.2,1.3-5.4,1.4-7.9c0-2.5-.3-4.6-1.1-6.3s-1.8-3-3.2-4-2.9-1.5-4.6-1.6-3.5,0-5.4.7c-2.1.7-4,1.9-5.6,3.6-1.5,1.6-2.8,3.6-3.7,5.8s-1.8,4.5-2.4,7.1-1,5-1.3,7.5c-.2,2.4-.4,4.6-.4,6.8-.2.4-.4.9-.6,1.3-1,1.7-2,3.4-3.4,5s-2.9,3-4.6,4.2-3.4,2-5.4,2.6c-1.8.5-3.4.6-4.6.2-1.2-.4-2.1-1.2-2.9-2.2s-1.3-2.4-1.5-3.9c-.3-1.5-.5-3.1-.5-4.7,3,.2,5.7-.3,8-1.6s4.4-3,6-5.1,2.9-4.5,3.7-7.2,1.3-5.4,1.4-7.9c0-2.5-.3-4.6-1.1-6.3s-1.8-3-3.2-4-2.9-1.5-4.6-1.6-3.5,0-5.4.7c-2.1.7-4,1.9-5.6,3.6-1.5,1.6-2.8,3.6-3.7,5.8s-1.8,4.5-2.4,7.1-1,5-1.3,7.5c-.1,1.4-.2,2.7-.3,4.1-.5.4-1,.9-1.5,1.3-1.8,1.5-3.7,2.8-5.8,4-2,1.2-4.1,2.1-6.2,2.9s-4.4,1.2-6.6,1.4l4.9-52.4c.3-1.1.2-2-.5-2.9s-1.5-1.4-2.5-1.7c-1-.3-2-.3-3.2,0-1.2.4-2,1.2-2.8,2.6-.3,2-.7,4.7-1.2,8.2s-.7,7.3-1.2,11.3-.7,8.3-1.2,12.7c-.4,4.4-.7,8.5-1.1,12.2v.5c-.4.4-.9.7-1.4,1.2-1.8,1.5-3.7,2.8-5.8,4-2,1.2-4.1,2.1-6.2,2.9s-4.4,1.2-6.6,1.4l4.9-52.4c.3-1.1.2-2-.5-2.9s-1.5-1.4-2.5-1.7c-1-.3-2-.3-3.2,0-1.2.4-2,1.2-2.8,2.6-.3,2-.7,4.7-1.2,8.2s-.7,7.3-1.2,11.3-.7,8.3-1.2,12.7c-.4,4.4-.7,8.5-1.1,12.2v.2c-.9.4-1.7.7-2.7,1-1,.3-2.1.4-3.4.5.2-1,.4-2,.5-3.2s.2-2.4.3-3.6v-3.7c0-1.3,0-2.5-.2-3.4-.2-2.2-.7-4.4-1.5-6.4s-1.7-3.7-2.9-5.1c-1.2-1.4-2.8-2.2-4.6-2.8-1.8-.4-4-.3-6.4.4-3.6-.4-6.8-.1-9.7,1-2.9,1.2-5.4,2.8-7.5,4.9s-3.9,4.7-5.1,7.6c-1.4,2.9-2.2,5.9-2.7,9-.2,1.3-.3,2.6-.3,3.9-.9,1.7-1.7,3.1-2.7,4.4-1.4,1.7-2.9,3.2-4.4,4.3-1.5,1.1-3,1.9-4.5,2.6-1.5.5-2.8,1-4,1.2-1.4.2-2.7.3-4,0-1.3-.2-2.5-.9-3.5-1.8-.9-.7-1.5-1.9-1.9-3.5-.4-1.6-.7-3.5-.7-5.6s0-4.3.2-6.5.6-4.4,1.3-6.4c.5-2,1.3-3.9,2.2-5.5.9-1.6,1.9-2.8,3.2-3.4.6.1,1.1.5,1.3,1.2s.2,1.6.1,2.6c0,1-.2,2-.3,3-.2,1.1-.2,1.9-.2,2.6.2,1.4.7,2.6,1.5,3.3s1.6,1.3,2.6,1.4c1,.1,1.9,0,2.8-.6,1-.5,1.7-1.5,2.2-2.8h.2l1.1-10.1c.3-1.4,0-2.6-.6-3.6-.7-1.1-1.7-1.6-2.9-1.8-1.5-2.2-3.6-3.4-6.2-3.5-2.7-.1-5.4.7-8,2.6-1.7,1.2-3.2,2.9-4.5,5s-2.4,4.5-3.2,7.1-1.4,5.4-1.7,8.2-.4,5.7-.2,8.5.7,5.4,1.5,7.7c.7,2.5,1.8,4.5,3.2,6.1,1.2,1.4,2.5,2.5,4,3.1,1.5.6,3,1.1,4.6,1.2s3.2,0,4.8-.2,3.1-.6,4.5-1.2c1.8-.6,3.7-1.6,5.7-2.6,1.9-1.1,3.9-2.4,5.7-3.7,1-.7,1.8-1.6,2.8-2.6.4,1,.9,1.9,1.4,2.9,1.4,2.4,3.3,4.3,5.8,5.8,2.5,1.5,5.5,2.1,9,2.1s7.3-1.1,10.5-2.9c3.2-1.9,5.9-4.6,7.9-8.2,3.1,0,6.1-.5,9.1-1.5v1c-.2,2.8-.3,4.7-.3,5.7,0,1.7-.2,3.9-.3,6.4-.2,2.6-.3,5.2-.3,8s0,5.7.3,8.6c.2,2.9.9,5.5,1.7,7.8s2,4.3,3.6,6c1.6,1.6,3.6,2.6,6.1,2.9,2.7.3,5-.1,7-1.4s3.5-3.1,4.8-5.5c1.2-2.2,2-4.9,2.6-7.9.5-3,.6-6,.4-9.1s-.7-5.9-1.7-8.6-2.1-4.9-3.7-6.6c1-.2,2.1-.7,3.4-1.5s2.7-1.6,4.1-2.5c.3-.2.6-.4,1.1-.6-.1,1.8-.2,3.2-.2,4,0,1.7-.2,3.9-.3,6.4-.2,2.6-.3,5.2-.3,8s0,5.7.3,8.6c.2,2.9.9,5.5,1.7,7.8s2,4.3,3.6,6c1.6,1.6,3.6,2.6,6.1,2.9,2.7.3,5-.1,7-1.4s3.5-3.1,4.8-5.5c1.2-2.2,2-4.9,2.6-7.9.5-3,.6-6,.4-9.1s-.7-5.9-1.7-8.6-2.1-4.9-3.7-6.6c1-.2,2.1-.7,3.4-1.5s2.7-1.6,4.1-2.5c.7-.5,1.5-1,2.1-1.5.3,2.6.9,4.8,1.8,6.7,1.2,2.4,2.7,4.1,4.6,5.4s4.3,1.9,6.8,2.1c2.7.1,5.6-.3,8.7-1.5,2.4-.9,4.4-1.9,6.1-3.2,1.7-1.3,3.2-2.8,4.6-4.6,0-.1.2-.2.2-.3.2.7.5,1.5.9,2.1,1.2,2.4,2.7,4.1,4.6,5.4s4.3,1.9,6.8,2.1c2.7.1,5.6-.3,8.7-1.5,2.4-.9,4.4-1.9,6.1-3.2,1.7-1.3,3.2-2.8,4.6-4.6s2.7-3.9,3.7-6.3c1.2-2.4,2.2-5.1,3.4-8.1.2-.9,0-1.6-.6-2.2h0v-.2Z"/></svg>';
32
+ // The mail button's pair from glyphs.json: IconMail at rest and IconMailOpen
33
+ // under the pointer, each in the viewBox cropped to its own ink so both read
34
+ // the same size.
35
+ export const MAIL_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" class="glim-mark-rest" fill="currentColor"><g> <path fill="currentColor" fill-rule="evenodd" d="M0 2.75a1.5 1.5 0 0 1 1.5 -1.5h11a1.5 1.5 0 0 1 1.5 1.5v0.342L7.383 7.504A0.72 0.72 0 0 1 7 7.607a0.72 0.72 0 0 1 -0.383 -0.103L0 3.092V2.75Zm0 1.844v6.656a1.5 1.5 0 0 0 1.5 1.5h11a1.5 1.5 0 0 0 1.5 -1.5V4.594L8.073 8.546l-0.005 0.004A1.966 1.966 0 0 1 7 8.857c-0.375 0 -0.753 -0.102 -1.068 -0.307l-0.005 -0.004L0 4.594Z" clip-rule="evenodd" stroke-width="1"></path> </g></svg>' +
36
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="2 0.32 20 20" class="glim-mark-hover" fill="currentColor"><path d="M4,8L12,13L20,8V8L12,3L4,8V8M22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V8C2,7.27 2.39,6.64 2.97,6.29L12,0.64L21.03,6.29C21.61,6.64 22,7.27 22,8Z" /></svg>';
37
+ // The manual button's pair: at rest the closed book of the README's docs
38
+ // button (Font Awesome Free's `book`, CC BY 4.0), and IconManualOpen from
39
+ // glyphs.json under the pointer, a finger or the focus, each in a square box
40
+ // around its own ink. The mark takes the docs button's yellow through
41
+ // .glim-docs-mark.
42
+ export const MANUAL_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" class="glim-mark-rest" fill="currentColor"><path d="M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zm16 48l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z" /></svg>' +
43
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0.125 14 14" class="glim-mark-hover" fill="currentColor"><path fill-rule="evenodd" d="M1 1.5H3.25C4.63 1.5 5.77 2.19 6.25 3.25V12.75C5.6 11.93 4.55 11.5 3.25 11.5H1A1 1 0 0 1 0 10.5V2.5A1 1 0 0 1 1 1.5ZM2.25 4.25a.75.75 0 0 0 0 1.5H4a.75.75 0 0 0 0-1.5H2.25ZM2.25 7.25a.75.75 0 0 0 0 1.5H4a.75.75 0 0 0 0-1.5H2.25ZM13 1.5H10.75C9.37 1.5 8.23 2.19 7.75 3.25V12.75C8.4 11.93 9.45 11.5 10.75 11.5H13A1 1 0 0 0 14 10.5V2.5A1 1 0 0 0 13 1.5ZM10 4.25a.75.75 0 0 0 0 1.5h1.75a.75.75 0 0 0 0-1.5H10ZM10 7.25a.75.75 0 0 0 0 1.5h1.75a.75.75 0 0 0 0-1.5H10Z" /></svg>';
@@ -0,0 +1,176 @@
1
+ /**
2
+ * The corner shapes. Like the motion levels these strings are a wire format:
3
+ * they go into `data-shape`, the stylesheet and storage, and what the user
4
+ * reads comes from the translation table.
5
+ *
6
+ * `leaf` is a real shape (see `data-shape='leaf'` in tokens.css) that no picker
7
+ * offers; `leafTap` reveals it.
8
+ */
9
+ export type Shape = 'round' | 'soft' | 'square' | 'leaf';
10
+ /** The shapes a picker shows. */
11
+ export declare const SHAPES: Shape[];
12
+ /**
13
+ * The shapes a stored value may hold. Validate against this and populate a
14
+ * picker from SHAPES, or a found leaf forgets itself on reload.
15
+ */
16
+ export declare const SHAPES_STORED: Shape[];
17
+ /** Only reaches somebody with no stored shape; a stored choice stays. */
18
+ export declare const DEFAULT_SHAPE: Shape;
19
+ /**
20
+ * The built-in accent, shared by every adopting app so the family opens in one
21
+ * colour. Empty in settings means this.
22
+ */
23
+ export declare const DEFAULT_ACCENT = "#FCC419";
24
+ /**
25
+ * The accent presets, the same eight in the same order in every adopting app,
26
+ * so "Blue" in one app is the same blue in the next. The picker allows any
27
+ * colour; this list is a shortcut. The last three come from the rainbow palette
28
+ * so both rows draw on one family.
29
+ */
30
+ export declare const ACCENTS: {
31
+ name: string;
32
+ hex: string;
33
+ }[];
34
+ /**
35
+ * The default palette: a full turn of the wheel in the same register as the
36
+ * accent presets. The length is fixed, because colours are handed out by
37
+ * position and a longer palette would recolour every existing row.
38
+ */
39
+ export declare const RAINBOW: string[];
40
+ export interface RainbowState {
41
+ on: boolean;
42
+ /** Rest neutral, colour on hover, keep the colour on the active item. */
43
+ reactive: boolean;
44
+ /** Offset the palette by seed, so a run does not always start on crimson. */
45
+ rotate: boolean;
46
+ seed: number;
47
+ palette: string[];
48
+ }
49
+ export declare const RAINBOW_OFF: RainbowState;
50
+ /** Sets the attribute the radius tokens key off. */
51
+ export declare function applyShape(shape: Shape | string | undefined): void;
52
+ /** How many taps on `square`, once it is chosen, reveal the leaf. */
53
+ export declare const LEAF_TAPS = 5;
54
+ /**
55
+ * The gesture that reveals the leaf, the storm's gesture on the shape picker:
56
+ * with the shape at `square`, tap `square` five more times. Tapping another
57
+ * shape resets the count. As with the storm, keep `found` and the count in the
58
+ * state of the screen that found it, never in storage.
59
+ *
60
+ * Returns the shape to switch to, or undefined when the tap was not the fifth.
61
+ */
62
+ export declare function leafTap(state: {
63
+ taps: number;
64
+ }, tapped: string, current: string): Shape | undefined;
65
+ /**
66
+ * The motion levels, quietest first. The tokens in tokens.css key off
67
+ * `data-motion` on the root.
68
+ *
69
+ * These strings go into the attribute, the stylesheet selectors and storage, so
70
+ * renaming one makes a saved value fail validation and fall back to
71
+ * DEFAULT_MOTION. What the user reads comes from the translation table.
72
+ *
73
+ * `storm` is a real level (see `data-motion='storm'` in tokens.css) that no
74
+ * picker offers; `stormTap` reveals it.
75
+ */
76
+ export type Motion = 'off' | 'subtle' | 'wild' | 'storm';
77
+ /** The levels a picker shows. */
78
+ export declare const MOTION_LEVELS: Motion[];
79
+ /**
80
+ * The levels a stored value may hold. Validate against this and populate a
81
+ * picker from MOTION_LEVELS, or a found storm forgets itself on reload.
82
+ */
83
+ export declare const MOTION_STORED: Motion[];
84
+ /**
85
+ * The default is the middle level, because the top one is a statement rather
86
+ * than polish. A changed default does not reach a stored choice, so an app that
87
+ * shipped another default needs a migration for any stored spelling that meant
88
+ * the top level.
89
+ */
90
+ export declare const DEFAULT_MOTION: Motion;
91
+ /** Sets the attribute the motion tokens key off. */
92
+ export declare function applyMotion(motion: Motion | string | undefined): void;
93
+ /** How many taps on `wild`, once it is chosen, reveal the storm. */
94
+ export declare const STORM_TAPS = 5;
95
+ /**
96
+ * The gesture that reveals the storm: with motion at `wild`, tap `wild` five
97
+ * more times. Tapping any other level resets the count, since five taps on
98
+ * "off" mean somebody is annoyed rather than curious.
99
+ *
100
+ * An easter egg that changes behaviour must be switchable off and must not
101
+ * become a permanent settings entry. So the storm is offered while it is chosen,
102
+ * and otherwise only while the screen that found it stays open: keep `found`
103
+ * and the count in that screen's state, never in storage.
104
+ *
105
+ * Returns the level to switch to, or undefined when the tap was not the fifth.
106
+ */
107
+ export declare function stormTap(state: {
108
+ taps: number;
109
+ }, tapped: string, current: string): Motion | undefined;
110
+ /**
111
+ * Overrides the accent tokens, or clears the override so the theme's gold comes
112
+ * back. The contrast colour is computed, so a light accent never gets white
113
+ * text.
114
+ *
115
+ * `--accent-ink`, `--accent-glyph` and `--accent-hover` are not set here:
116
+ * tokens.css derives them from --accent with color-mix, so they also follow a
117
+ * later light or dark switch.
118
+ */
119
+ export declare function applyAccent(hex: string | undefined): void;
120
+ /** The current snapshot, with a stable identity between changes. */
121
+ export declare function rainbowState(): RainbowState;
122
+ export declare function subscribeRainbow(fn: () => void): () => void;
123
+ /**
124
+ * Stores the new state, mirrors it onto the document root and wakes the
125
+ * readers. The `--rb-N` and `--rb-ink-N` properties are set even when the mode
126
+ * is off, because hueVars() points every hued element at them; the
127
+ * `data-rainbow` attribute is what turns the look on.
128
+ */
129
+ export declare function applyRainbow(next: Partial<RainbowState> | undefined): void;
130
+ /**
131
+ * The colour at a position, rotation applied. It answers even when the mode is
132
+ * off, because a settings page shows the palette it edits.
133
+ */
134
+ export declare function rainbowAt(i: number): string;
135
+ /**
136
+ * Gives a button the palette position of its place among the page's buttons,
137
+ * so under rainbow two buttons side by side light up in different colours.
138
+ * Call it when the pointer or the keyboard reaches the button: the order
139
+ * changes with the page, and only the hover and focus look read the tint.
140
+ */
141
+ export declare function takePageHue(el: HTMLElement): void;
142
+ /**
143
+ * The colour an item should use, or undefined when the mode is off. Undefined
144
+ * rather than the accent keeps the accent in CSS, where a theme change reaches
145
+ * it.
146
+ */
147
+ export declare function rainbowColor(i: number): string | undefined;
148
+ /**
149
+ * The inline custom properties an element at palette position `i` sets on
150
+ * itself. The `.glim-hue` rules in tokens.css decide whether the hue shows at
151
+ * rest or on hover, so a component names its position and never the mode.
152
+ *
153
+ * They point at the root's `--rb-*` properties rather than holding a colour,
154
+ * so a palette or rotation change lands on the root alone, and disco can walk
155
+ * the colours there without re-rendering a single component.
156
+ *
157
+ * The class and these properties travel together: `.glim-hue` with no
158
+ * `--item-hue` under it resolves the accent to nothing.
159
+ */
160
+ export declare function hueVars(i: number): Record<string, string>;
161
+ /**
162
+ * Maps a server's flat fields onto the state this module keeps. The parameter
163
+ * is structural so this file can be copied into an app unchanged.
164
+ */
165
+ export declare function rainbowFromSettings(s: {
166
+ rainbow?: boolean;
167
+ rainbowReactive?: boolean;
168
+ rainbowRotate?: boolean;
169
+ rainbowSeed?: number;
170
+ rainbowPalette?: string[] | null;
171
+ }): RainbowState;
172
+ /** Black or white, whichever is readable on the given colour. */
173
+ export declare function contrastOn(hex: string): string;
174
+ export declare function cacheAppearance(shape: string, accent: string, rainbow?: RainbowState): void;
175
+ /** Applied at boot, before the app renders anything. */
176
+ export declare function applyCachedAppearance(): void;