vuetiwatch 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +266 -17
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/plugin.d.ts +77 -7
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +120 -15
- package/dist/plugin.js.map +1 -1
- package/dist/registry.d.ts +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +6 -1
- package/dist/registry.js.map +1 -1
- package/dist/styles/atlas.css +99 -0
- package/dist/styles/atlas.min.css +1 -0
- package/dist/styles/atlasDark.css +99 -0
- package/dist/styles/atlasDark.min.css +1 -0
- package/dist/styles/atlasSepia.css +99 -0
- package/dist/styles/atlasSepia.min.css +1 -0
- package/dist/styles/aurora.css +98 -5
- package/dist/styles/aurora.min.css +1 -1
- package/dist/styles/brutalist.css +6 -1
- package/dist/styles/brutalist.min.css +1 -1
- package/dist/styles/calm.css +1 -5
- package/dist/styles/calm.min.css +1 -1
- package/dist/styles/candy.css +68 -0
- package/dist/styles/candy.min.css +1 -0
- package/dist/styles/clay.css +10 -1
- package/dist/styles/clay.min.css +1 -1
- package/dist/styles/core.css +273 -41
- package/dist/styles/core.min.css +1 -1
- package/dist/styles/darkGlass.css +1 -1
- package/dist/styles/darkGlass.min.css +1 -1
- package/dist/styles/graphite.css +29 -0
- package/dist/styles/graphite.min.css +1 -0
- package/dist/styles/liquidGlass.css +10 -1
- package/dist/styles/liquidGlass.min.css +1 -1
- package/dist/styles/lux.css +1 -1
- package/dist/styles/lux.min.css +1 -1
- package/dist/styles/morph.css +8 -0
- package/dist/styles/morph.min.css +1 -1
- package/dist/styles/neon.css +9 -1
- package/dist/styles/neon.min.css +1 -1
- package/dist/styles/sketchy.css +4 -0
- package/dist/styles/sketchy.min.css +1 -1
- package/dist/styles/slate.css +1 -1
- package/dist/styles/slate.min.css +1 -1
- package/dist/styles/soft.css +4 -14
- package/dist/styles/soft.min.css +1 -1
- package/dist/styles.css +621 -68
- package/dist/styles.min.css +1 -1
- package/dist/themes/atlas.d.ts +73 -0
- package/dist/themes/atlas.d.ts.map +1 -0
- package/dist/themes/atlas.js +277 -0
- package/dist/themes/atlas.js.map +1 -0
- package/dist/themes/atlasDark.d.ts +8 -0
- package/dist/themes/atlasDark.d.ts.map +1 -0
- package/dist/themes/atlasDark.js +69 -0
- package/dist/themes/atlasDark.js.map +1 -0
- package/dist/themes/atlasSepia.d.ts +11 -0
- package/dist/themes/atlasSepia.d.ts.map +1 -0
- package/dist/themes/atlasSepia.js +65 -0
- package/dist/themes/atlasSepia.js.map +1 -0
- package/dist/themes/aurora.d.ts.map +1 -1
- package/dist/themes/aurora.js +47 -3
- package/dist/themes/aurora.js.map +1 -1
- package/dist/themes/brutalist.d.ts.map +1 -1
- package/dist/themes/brutalist.js +85 -1
- package/dist/themes/brutalist.js.map +1 -1
- package/dist/themes/calm.d.ts.map +1 -1
- package/dist/themes/calm.js +44 -3
- package/dist/themes/calm.js.map +1 -1
- package/dist/themes/candy.d.ts +20 -0
- package/dist/themes/candy.d.ts.map +1 -0
- package/dist/themes/candy.js +164 -0
- package/dist/themes/candy.js.map +1 -0
- package/dist/themes/classic.d.ts.map +1 -1
- package/dist/themes/classic.js +2 -0
- package/dist/themes/classic.js.map +1 -1
- package/dist/themes/clay.d.ts.map +1 -1
- package/dist/themes/clay.js +34 -3
- package/dist/themes/clay.js.map +1 -1
- package/dist/themes/darkGlass.d.ts.map +1 -1
- package/dist/themes/darkGlass.js +34 -1
- package/dist/themes/darkGlass.js.map +1 -1
- package/dist/themes/graphite.d.ts +13 -0
- package/dist/themes/graphite.d.ts.map +1 -0
- package/dist/themes/graphite.js +182 -0
- package/dist/themes/graphite.js.map +1 -0
- package/dist/themes/index.d.ts +5 -0
- package/dist/themes/index.d.ts.map +1 -1
- package/dist/themes/index.js +5 -0
- package/dist/themes/index.js.map +1 -1
- package/dist/themes/liquidGlass.d.ts.map +1 -1
- package/dist/themes/liquidGlass.js +64 -4
- package/dist/themes/liquidGlass.js.map +1 -1
- package/dist/themes/lux.d.ts.map +1 -1
- package/dist/themes/lux.js +65 -4
- package/dist/themes/lux.js.map +1 -1
- package/dist/themes/morph.d.ts.map +1 -1
- package/dist/themes/morph.js +42 -6
- package/dist/themes/morph.js.map +1 -1
- package/dist/themes/neon.d.ts.map +1 -1
- package/dist/themes/neon.js +57 -1
- package/dist/themes/neon.js.map +1 -1
- package/dist/themes/paper.d.ts.map +1 -1
- package/dist/themes/paper.js +54 -1
- package/dist/themes/paper.js.map +1 -1
- package/dist/themes/sketchy.d.ts.map +1 -1
- package/dist/themes/sketchy.js +44 -1
- package/dist/themes/sketchy.js.map +1 -1
- package/dist/themes/slate.d.ts.map +1 -1
- package/dist/themes/slate.js +60 -3
- package/dist/themes/slate.js.map +1 -1
- package/dist/themes/soft.d.ts.map +1 -1
- package/dist/themes/soft.js +62 -3
- package/dist/themes/soft.js.map +1 -1
- package/dist/types.d.ts +40 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/util/defaults.d.ts +35 -0
- package/dist/util/defaults.d.ts.map +1 -1
- package/dist/util/defaults.js +62 -1
- package/dist/util/defaults.js.map +1 -1
- package/dist/util/defineTheme.d.ts.map +1 -1
- package/dist/util/defineTheme.js +11 -5
- package/dist/util/defineTheme.js.map +1 -1
- package/package.json +3 -2
- package/src/index.ts +10 -4
- package/src/plugin.ts +231 -21
- package/src/registry.ts +10 -0
- package/src/styles/core.css +674 -41
- package/src/styles/index.css +4 -0
- package/src/styles/themes/_atlas.css +194 -0
- package/src/styles/themes/atlas.css +2 -0
- package/src/styles/themes/atlasDark.css +2 -0
- package/src/styles/themes/atlasSepia.css +2 -0
- package/src/styles/themes/aurora.css +152 -7
- package/src/styles/themes/brutalist.css +6 -3
- package/src/styles/themes/calm.css +1 -13
- package/src/styles/themes/candy.css +118 -0
- package/src/styles/themes/clay.css +12 -0
- package/src/styles/themes/darkGlass.css +1 -0
- package/src/styles/themes/graphite.css +63 -0
- package/src/styles/themes/liquidGlass.css +41 -2
- package/src/styles/themes/lux.css +1 -4
- package/src/styles/themes/morph.css +9 -0
- package/src/styles/themes/neon.css +9 -3
- package/src/styles/themes/paper.css +0 -2
- package/src/styles/themes/sketchy.css +9 -0
- package/src/styles/themes/slate.css +1 -4
- package/src/styles/themes/soft.css +11 -12
- package/src/themes/atlas.ts +286 -0
- package/src/themes/atlasDark.ts +69 -0
- package/src/themes/atlasSepia.ts +65 -0
- package/src/themes/aurora.ts +51 -3
- package/src/themes/brutalist.ts +90 -1
- package/src/themes/calm.ts +48 -3
- package/src/themes/candy.ts +167 -0
- package/src/themes/classic.ts +3 -0
- package/src/themes/clay.ts +37 -3
- package/src/themes/darkGlass.ts +38 -1
- package/src/themes/graphite.ts +187 -0
- package/src/themes/index.ts +5 -0
- package/src/themes/liquidGlass.ts +68 -4
- package/src/themes/lux.ts +70 -4
- package/src/themes/morph.ts +45 -6
- package/src/themes/neon.ts +62 -1
- package/src/themes/paper.ts +59 -1
- package/src/themes/sketchy.ts +49 -1
- package/src/themes/slate.ts +64 -3
- package/src/themes/soft.ts +66 -3
- package/src/types.ts +41 -0
- package/src/util/defaults.ts +96 -1
- package/src/util/defineTheme.ts +11 -5
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { atlasAccents, atlasDefaults, atlasVariables } from './atlas.js';
|
|
2
|
+
import { defineTheme } from '../util/defineTheme.js';
|
|
3
|
+
/**
|
|
4
|
+
* `atlas` after dark: the same measurements, the same accent hue lifted to
|
|
5
|
+
* where it reads on a dark ground, and a background that is grey rather
|
|
6
|
+
* than black — a panel someone stares at all evening should not be a hole
|
|
7
|
+
* with text floating in it.
|
|
8
|
+
*/
|
|
9
|
+
export const atlasDark = defineTheme({
|
|
10
|
+
name: 'atlasDark',
|
|
11
|
+
meta: {
|
|
12
|
+
title: 'Atlas Dark',
|
|
13
|
+
description: 'The same console after dark — deep navy, a lit blue, lines you can find.',
|
|
14
|
+
dark: true,
|
|
15
|
+
iconStyle: 'outline',
|
|
16
|
+
family: 'atlas',
|
|
17
|
+
variant: 'Dark',
|
|
18
|
+
accents: atlasAccents('dark'),
|
|
19
|
+
swatch: ['#040817', '#070E21', '#3382FF', '#838FA8'],
|
|
20
|
+
fonts: ['Inter'],
|
|
21
|
+
},
|
|
22
|
+
theme: {
|
|
23
|
+
dark: true,
|
|
24
|
+
colors: {
|
|
25
|
+
background: '#040817',
|
|
26
|
+
surface: '#070E21',
|
|
27
|
+
'surface-bright': '#101830',
|
|
28
|
+
'surface-light': '#151E35',
|
|
29
|
+
'surface-variant': '#CBD5E1',
|
|
30
|
+
'on-surface-variant': '#040817',
|
|
31
|
+
primary: '#3382FF',
|
|
32
|
+
'primary-darken-1': '#2A6BD6',
|
|
33
|
+
secondary: '#838FA8',
|
|
34
|
+
'secondary-darken-1': '#6B778F',
|
|
35
|
+
error: '#F94144',
|
|
36
|
+
info: '#7DD3FC',
|
|
37
|
+
success: '#4ADE80',
|
|
38
|
+
warning: '#FBBF24',
|
|
39
|
+
'on-surface': '#EEF2F9',
|
|
40
|
+
'on-background': '#EEF2F9',
|
|
41
|
+
/**
|
|
42
|
+
* A dark theme's accents are the light thing on the screen, so their
|
|
43
|
+
* labels are the ground colour rather than white — the Material 3
|
|
44
|
+
* convention, and the only option that clears 4.5:1 here. Vuetify's
|
|
45
|
+
* automatic pick lands on white at about 2.5:1.
|
|
46
|
+
*/
|
|
47
|
+
'on-primary': '#040817',
|
|
48
|
+
'on-secondary': '#040817',
|
|
49
|
+
'on-error': '#040817',
|
|
50
|
+
},
|
|
51
|
+
variables: {
|
|
52
|
+
// Lands on #1F283E over the panel — the line is visible without
|
|
53
|
+
// becoming a grid.
|
|
54
|
+
'border-color': '#8FA0C4',
|
|
55
|
+
'border-opacity': 0.18,
|
|
56
|
+
'shadow-color': '#000000',
|
|
57
|
+
'vw-overlay-border': '1px solid rgba(var(--v-border-color), 0.16)',
|
|
58
|
+
'vw-overlay-shadow': '0 12px 32px rgba(0, 0, 0, 0.5)',
|
|
59
|
+
// The same tinted band as the light variant, in this ground's register.
|
|
60
|
+
'theme-code': '#151E35',
|
|
61
|
+
'theme-on-code': '#EEF2F9',
|
|
62
|
+
'theme-kbd': '#151E35',
|
|
63
|
+
'theme-on-kbd': '#EEF2F9',
|
|
64
|
+
...atlasVariables,
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
defaults: atlasDefaults,
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=atlasDark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atlasDark.js","sourceRoot":"","sources":["../../src/themes/atlasDark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;IACnC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE;QACJ,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,0EAA0E;QACvF,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC;QAC7B,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;QACpD,KAAK,EAAE,CAAC,OAAO,CAAC;KACjB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,SAAS;YAClB,gBAAgB,EAAE,SAAS;YAC3B,eAAe,EAAE,SAAS;YAC1B,iBAAiB,EAAE,SAAS;YAC5B,oBAAoB,EAAE,SAAS;YAC/B,OAAO,EAAE,SAAS;YAClB,kBAAkB,EAAE,SAAS;YAC7B,SAAS,EAAE,SAAS;YACpB,oBAAoB,EAAE,SAAS;YAC/B,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;YAC1B;;;;;eAKG;YACH,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,SAAS;YACzB,UAAU,EAAE,SAAS;SACtB;QACD,SAAS,EAAE;YACT,gEAAgE;YAChE,mBAAmB;YACnB,cAAc,EAAE,SAAS;YACzB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,SAAS;YACzB,mBAAmB,EAAE,6CAA6C;YAClE,mBAAmB,EAAE,gCAAgC;YACrD,wEAAwE;YACxE,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;YAC1B,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,SAAS;YACzB,GAAG,cAAc;SAClB;KACF;IACD,QAAQ,EAAE,aAAa;CACxB,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The third ground: warm paper rather than white or grey.
|
|
3
|
+
*
|
|
4
|
+
* Neither light nor dark mode helps the person who finds a white panel too
|
|
5
|
+
* bright and a dark one too flat. Dropping the blue out of the ground and
|
|
6
|
+
* the ink lowers the glare without lowering the contrast — the text still
|
|
7
|
+
* carries better than 12:1 — and the accent turns a shade warmer to sit on
|
|
8
|
+
* it. It is the same panel, lit by a lamp instead of a window.
|
|
9
|
+
*/
|
|
10
|
+
export declare const atlasSepia: import("../types.js").VuetiwatchTheme<"atlasSepia">;
|
|
11
|
+
//# sourceMappingURL=atlasSepia.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atlasSepia.d.ts","sourceRoot":"","sources":["../../src/themes/atlasSepia.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,qDAoDrB,CAAA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { atlasAccents, atlasDefaults, atlasVariables } from './atlas.js';
|
|
2
|
+
import { defineTheme } from '../util/defineTheme.js';
|
|
3
|
+
/**
|
|
4
|
+
* The third ground: warm paper rather than white or grey.
|
|
5
|
+
*
|
|
6
|
+
* Neither light nor dark mode helps the person who finds a white panel too
|
|
7
|
+
* bright and a dark one too flat. Dropping the blue out of the ground and
|
|
8
|
+
* the ink lowers the glare without lowering the contrast — the text still
|
|
9
|
+
* carries better than 12:1 — and the accent turns a shade warmer to sit on
|
|
10
|
+
* it. It is the same panel, lit by a lamp instead of a window.
|
|
11
|
+
*/
|
|
12
|
+
export const atlasSepia = defineTheme({
|
|
13
|
+
name: 'atlasSepia',
|
|
14
|
+
meta: {
|
|
15
|
+
title: 'Atlas Sepia',
|
|
16
|
+
description: 'Warm paper and brown ink — the same panel, easier on tired eyes.',
|
|
17
|
+
dark: false,
|
|
18
|
+
iconStyle: 'outline',
|
|
19
|
+
family: 'atlas',
|
|
20
|
+
variant: 'Sepia',
|
|
21
|
+
accents: atlasAccents('sepia'),
|
|
22
|
+
swatch: ['#F7F3EC', '#FFFDF9', '#1150E0', '#7A6A52'],
|
|
23
|
+
fonts: ['Inter'],
|
|
24
|
+
},
|
|
25
|
+
theme: {
|
|
26
|
+
dark: false,
|
|
27
|
+
colors: {
|
|
28
|
+
background: '#F7F3EC',
|
|
29
|
+
surface: '#FFFDF9',
|
|
30
|
+
'surface-bright': '#FFFFFC',
|
|
31
|
+
'surface-light': '#F4EEE3',
|
|
32
|
+
'surface-variant': '#241E16',
|
|
33
|
+
'on-surface-variant': '#F7F3EC',
|
|
34
|
+
// Ink-blue on warm paper: the family's accent, in the register the
|
|
35
|
+
// ground is written in.
|
|
36
|
+
primary: '#1150E0',
|
|
37
|
+
'primary-darken-1': '#0E41B4',
|
|
38
|
+
secondary: '#7A6A52',
|
|
39
|
+
'secondary-darken-1': '#615341',
|
|
40
|
+
error: '#A83A2C',
|
|
41
|
+
info: '#356B86',
|
|
42
|
+
success: '#3B6B4A',
|
|
43
|
+
warning: '#8A6118',
|
|
44
|
+
'on-surface': '#241E16',
|
|
45
|
+
'on-background': '#241E16',
|
|
46
|
+
},
|
|
47
|
+
variables: {
|
|
48
|
+
// The same idea as the light variant, in the warm register: the line
|
|
49
|
+
// lands on #E0D7C8 rather than on a grey.
|
|
50
|
+
'border-color': '#8A7A63',
|
|
51
|
+
'border-opacity': 0.28,
|
|
52
|
+
'shadow-color': '#3B332A',
|
|
53
|
+
'vw-overlay-border': '1px solid rgba(var(--v-border-color), 0.12)',
|
|
54
|
+
'vw-overlay-shadow': '0 8px 28px rgba(var(--v-shadow-color), 0.14)',
|
|
55
|
+
// The same tinted band as the light variant, in the warm register.
|
|
56
|
+
'theme-code': '#F4EEE3',
|
|
57
|
+
'theme-on-code': '#241E16',
|
|
58
|
+
'theme-kbd': '#F4EEE3',
|
|
59
|
+
'theme-on-kbd': '#241E16',
|
|
60
|
+
...atlasVariables,
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
defaults: atlasDefaults,
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=atlasSepia.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atlasSepia.js","sourceRoot":"","sources":["../../src/themes/atlasSepia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;IACpC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE;QACJ,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,kEAAkE;QAC/E,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;QAC9B,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;QACpD,KAAK,EAAE,CAAC,OAAO,CAAC;KACjB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,KAAK;QACX,MAAM,EAAE;YACN,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,SAAS;YAClB,gBAAgB,EAAE,SAAS;YAC3B,eAAe,EAAE,SAAS;YAC1B,iBAAiB,EAAE,SAAS;YAC5B,oBAAoB,EAAE,SAAS;YAC/B,mEAAmE;YACnE,wBAAwB;YACxB,OAAO,EAAE,SAAS;YAClB,kBAAkB,EAAE,SAAS;YAC7B,SAAS,EAAE,SAAS;YACpB,oBAAoB,EAAE,SAAS;YAC/B,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;SAC3B;QACD,SAAS,EAAE;YACT,qEAAqE;YACrE,0CAA0C;YAC1C,cAAc,EAAE,SAAS;YACzB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,SAAS;YACzB,mBAAmB,EAAE,6CAA6C;YAClE,mBAAmB,EAAE,8CAA8C;YACnE,mEAAmE;YACnE,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;YAC1B,WAAW,EAAE,SAAS;YACtB,cAAc,EAAE,SAAS;YACzB,GAAG,cAAc;SAClB;KACF;IACD,QAAQ,EAAE,aAAa;CACxB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aurora.d.ts","sourceRoot":"","sources":["../../src/themes/aurora.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"aurora.d.ts","sourceRoot":"","sources":["../../src/themes/aurora.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,iDA0HjB,CAAA"}
|
package/dist/themes/aurora.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { bars, fields, icons } from '../util/defaults.js';
|
|
1
|
+
import { bars, fields, icons, overlays } from '../util/defaults.js';
|
|
2
2
|
import { defineTheme } from '../util/defineTheme.js';
|
|
3
3
|
/**
|
|
4
4
|
* The showcase theme: the visual language current AI products landed on —
|
|
@@ -15,7 +15,7 @@ export const aurora = defineTheme({
|
|
|
15
15
|
description: 'Iridescent gradients on near-black. Built to be looked at — the showcase theme.',
|
|
16
16
|
dark: true,
|
|
17
17
|
iconStyle: 'filled',
|
|
18
|
-
swatch: ['#08080C', '#101018', '#
|
|
18
|
+
swatch: ['#08080C', '#101018', '#7857FF', '#00D4FF'],
|
|
19
19
|
fonts: ['Inter'],
|
|
20
20
|
},
|
|
21
21
|
theme: {
|
|
@@ -27,7 +27,7 @@ export const aurora = defineTheme({
|
|
|
27
27
|
'surface-light': '#16161F',
|
|
28
28
|
'surface-variant': '#C9C6E0',
|
|
29
29
|
'on-surface-variant': '#08080C',
|
|
30
|
-
primary: '#
|
|
30
|
+
primary: '#7857FF',
|
|
31
31
|
'primary-darken-1': '#5F3FE0',
|
|
32
32
|
secondary: '#00D4FF',
|
|
33
33
|
'secondary-darken-1': '#00A8CC',
|
|
@@ -37,11 +37,19 @@ export const aurora = defineTheme({
|
|
|
37
37
|
warning: '#FFB86B',
|
|
38
38
|
'on-surface': '#E8E6F5',
|
|
39
39
|
'on-background': '#F0EEFA',
|
|
40
|
+
// Vuetify picks the label colour by luminance and settles for
|
|
41
|
+
// about 3:1, which is the bar for large text rather than for a
|
|
42
|
+
// button label. Measured on the filled buttons: error 3:1 → 7.1:1.
|
|
43
|
+
'on-error': '#000000',
|
|
40
44
|
'on-secondary': '#04121A',
|
|
41
45
|
'on-success': '#04140D',
|
|
42
46
|
'on-warning': '#1A1004',
|
|
43
47
|
},
|
|
44
48
|
variables: {
|
|
49
|
+
/* A panel standing on its own — a bare list, sheet, banner or table.
|
|
50
|
+
Core owns the selector; this is what it draws with. */
|
|
51
|
+
'vw-panel-image': 'radial-gradient(36rem 18rem at 0% 0%, rgba(124, 92, 255, 0.14), transparent 70%)',
|
|
52
|
+
'vw-panel-shadow': '0 12px 40px rgba(0, 0, 0, 0.55)',
|
|
45
53
|
'border-color': '#9B8CFF',
|
|
46
54
|
'border-opacity': 0.14,
|
|
47
55
|
'shadow-color': '#000000',
|
|
@@ -60,6 +68,35 @@ export const aurora = defineTheme({
|
|
|
60
68
|
// Shared by every gradient below, so a derived theme restyles the
|
|
61
69
|
// whole surface language by overriding one value.
|
|
62
70
|
'vw-gradient': 'linear-gradient(135deg, #7C5CFF 0%, #00D4FF 55%, #FF5CAA 100%)',
|
|
71
|
+
/**
|
|
72
|
+
* The same three hues at a depth that carries a white label: the
|
|
73
|
+
* showcase gradient runs through a cyan where white text reads at
|
|
74
|
+
* 1.8:1, which is fine behind a tab slider and unusable behind a
|
|
75
|
+
* word. Anything with text on it takes this one instead.
|
|
76
|
+
*/
|
|
77
|
+
'vw-gradient-btn': 'linear-gradient(135deg, #6F4CFF 0%, #007891 55%, #DA0069 100%)',
|
|
78
|
+
// The showcase theme, so the motion shows off too.
|
|
79
|
+
'vw-motion-duration': '300ms',
|
|
80
|
+
'vw-press-scale': '0.97',
|
|
81
|
+
'vw-hover-lift': '3px',
|
|
82
|
+
'vw-pop-scale': '1.28',
|
|
83
|
+
'vw-pop-duration': '300ms',
|
|
84
|
+
'vw-theme-transition': '560ms',
|
|
85
|
+
// The showcase theme, so the overlays show off too.
|
|
86
|
+
'vw-overlay-duration': '300ms',
|
|
87
|
+
'vw-overlay-exit': '200ms',
|
|
88
|
+
// Saturated ground, saturated states.
|
|
89
|
+
'focus-opacity': 0.18,
|
|
90
|
+
'activated-opacity': 0.16,
|
|
91
|
+
/**
|
|
92
|
+
* Vuetify tints a raised surface with plain white on a dark ground.
|
|
93
|
+
* Here the light in the room is violet, so the tint that stands for
|
|
94
|
+
* height is the theme's own hue rather than a neutral.
|
|
95
|
+
*/
|
|
96
|
+
'elevation-overlay-color': '#7C5CFF',
|
|
97
|
+
// The line is the theme's own gradient, top to bottom.
|
|
98
|
+
'vw-timeline-line': 'var(--v-vw-gradient)',
|
|
99
|
+
'vw-timeline-line-width': '2px',
|
|
63
100
|
},
|
|
64
101
|
},
|
|
65
102
|
defaults: [
|
|
@@ -81,6 +118,13 @@ export const aurora = defineTheme({
|
|
|
81
118
|
ratingFull: 'mdi-star',
|
|
82
119
|
ratingEmpty: 'mdi-star-outline',
|
|
83
120
|
}),
|
|
121
|
+
// Everything swells into place, at the length the rest of the theme
|
|
122
|
+
// moves on.
|
|
123
|
+
overlays({
|
|
124
|
+
dialog: 'scale-transition',
|
|
125
|
+
menu: 'scale-transition',
|
|
126
|
+
tooltip: 'scale-transition',
|
|
127
|
+
}),
|
|
84
128
|
],
|
|
85
129
|
});
|
|
86
130
|
//# sourceMappingURL=aurora.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aurora.js","sourceRoot":"","sources":["../../src/themes/aurora.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"aurora.js","sourceRoot":"","sources":["../../src/themes/aurora.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brutalist.d.ts","sourceRoot":"","sources":["../../src/themes/brutalist.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"brutalist.d.ts","sourceRoot":"","sources":["../../src/themes/brutalist.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,oDAoLpB,CAAA"}
|
package/dist/themes/brutalist.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { bars, fields, icons } from '../util/defaults.js';
|
|
1
|
+
import { bars, fields, icons, overlays, ripple } from '../util/defaults.js';
|
|
2
2
|
import { defineTheme } from '../util/defineTheme.js';
|
|
3
3
|
/**
|
|
4
4
|
* Neobrutalism: thick black rules, an acid accent, and a hard offset shadow
|
|
@@ -37,11 +37,20 @@ export const brutalist = defineTheme({
|
|
|
37
37
|
warning: '#FFB300',
|
|
38
38
|
'on-surface': '#0A0A0A',
|
|
39
39
|
'on-background': '#0A0A0A',
|
|
40
|
+
// Vuetify picks the label colour by luminance and settles for
|
|
41
|
+
// about 3:1, which is the bar for large text rather than for a
|
|
42
|
+
// button label. Measured on the filled buttons: info 3.8:1 → 5.2:1, error 3.3:1 → 6:1.
|
|
43
|
+
'on-info': '#0A0A0A',
|
|
44
|
+
'on-error': '#0A0A0A',
|
|
40
45
|
'on-secondary': '#0A0A0A',
|
|
41
46
|
'on-warning': '#0A0A0A',
|
|
42
47
|
'on-success': '#0A0A0A',
|
|
43
48
|
},
|
|
44
49
|
variables: {
|
|
50
|
+
/* A panel standing on its own — a bare list, sheet, banner or table.
|
|
51
|
+
Core owns the selector; this is what it draws with. */
|
|
52
|
+
'vw-panel-border': 'var(--v-vw-border-width) solid rgb(var(--v-shadow-color))',
|
|
53
|
+
'vw-panel-shadow': 'var(--vw-brut-offset) var(--vw-brut-offset) 0 rgb(var(--v-shadow-color))',
|
|
45
54
|
'border-color': '#0A0A0A',
|
|
46
55
|
'border-opacity': 1,
|
|
47
56
|
'shadow-color': '#0A0A0A',
|
|
@@ -53,6 +62,8 @@ export const brutalist = defineTheme({
|
|
|
53
62
|
'vw-radius-lg': '0px',
|
|
54
63
|
'vw-radius-thumb': '0px',
|
|
55
64
|
'vw-radius-chip': '0px',
|
|
65
|
+
// Nothing here is round, the icon buttons included.
|
|
66
|
+
'vw-radius-icon-btn': '0px',
|
|
56
67
|
'vw-border-width': '3px',
|
|
57
68
|
'vw-btn-transform': 'uppercase',
|
|
58
69
|
'vw-btn-tracking': '0.04em',
|
|
@@ -64,6 +75,70 @@ export const brutalist = defineTheme({
|
|
|
64
75
|
'vw-heading-weight': '700',
|
|
65
76
|
'vw-heading-tracking': '-0.02em',
|
|
66
77
|
'vw-tab-slider-height': '4px',
|
|
78
|
+
/**
|
|
79
|
+
* Nothing eases and nothing tweens: a state change is the frame it
|
|
80
|
+
* happens in.
|
|
81
|
+
*
|
|
82
|
+
* A stepped curve was the first attempt at saying that, and it says
|
|
83
|
+
* the opposite. Two discrete jumps across 80ms read as a dropped
|
|
84
|
+
* frame rather than as a decision, and on anything that takes longer
|
|
85
|
+
* to arrive — a tooltip, a dialog the size of the screen — the hold
|
|
86
|
+
* between the steps looks like the page has hung. Zero is the only
|
|
87
|
+
* duration that is actually instant.
|
|
88
|
+
*
|
|
89
|
+
* `linear` is what is left for the two things here that are
|
|
90
|
+
* animations rather than transitions — the icon pop and the theme
|
|
91
|
+
* wipe — where a curve would be the theme describing a weight it
|
|
92
|
+
* does not have.
|
|
93
|
+
*
|
|
94
|
+
* The press is the theme's own slide into its shadow, so the shared
|
|
95
|
+
* squash stays out of its way.
|
|
96
|
+
*/
|
|
97
|
+
'vw-motion-duration': '0ms',
|
|
98
|
+
'vw-motion-ease': 'linear',
|
|
99
|
+
/**
|
|
100
|
+
* The scrim cannot follow it, though, and this is the one place the
|
|
101
|
+
* theme's own rule is wrong. A panel appearing in a single frame is
|
|
102
|
+
* decisive; a whole screen going dark in a single frame is a flash,
|
|
103
|
+
* and the eye reads a flash as a fault rather than as a choice. So
|
|
104
|
+
* the panel keeps its zero and the dimming gets a beat of its own —
|
|
105
|
+
* still linear, still short enough that nothing is waited for.
|
|
106
|
+
*
|
|
107
|
+
* Left at Vuetify's own 300ms the mismatch was the other way round:
|
|
108
|
+
* the panel was there and the room was still darkening a third of a
|
|
109
|
+
* second later.
|
|
110
|
+
*/
|
|
111
|
+
'vw-overlay-duration': '0ms',
|
|
112
|
+
'vw-scrim-duration': '120ms',
|
|
113
|
+
'vw-press-scale': '1',
|
|
114
|
+
'vw-pop-scale': '1.3',
|
|
115
|
+
'vw-pop-duration': '100ms',
|
|
116
|
+
'vw-focus-ring': '3px solid rgb(var(--v-shadow-color))',
|
|
117
|
+
'vw-focus-offset': '3px',
|
|
118
|
+
'vw-theme-transition': '200ms',
|
|
119
|
+
// Hard states to match the hard edges: a pressed control is a
|
|
120
|
+
// different colour, not a slightly darker one.
|
|
121
|
+
'focus-opacity': 0.2,
|
|
122
|
+
'activated-opacity': 0.3,
|
|
123
|
+
'disabled-opacity': 0.5,
|
|
124
|
+
/**
|
|
125
|
+
* A tab is set at body size rather than shrunk to Vuetify's label
|
|
126
|
+
* size — nothing in this theme whispers.
|
|
127
|
+
*/
|
|
128
|
+
'vw-tab-size': '1rem',
|
|
129
|
+
/**
|
|
130
|
+
* Lime is this theme's active colour — it already marks the table
|
|
131
|
+
* heads, the current page and the slider — so a selected run of text
|
|
132
|
+
* joins them. Solid rather than a tint: nothing here is translucent,
|
|
133
|
+
* and the ink on top is stated rather than left to the browser.
|
|
134
|
+
*/
|
|
135
|
+
'vw-selection-fill': 'rgb(var(--v-theme-secondary))',
|
|
136
|
+
'vw-selection-color': 'rgb(var(--v-shadow-color))',
|
|
137
|
+
// A structural beam, and the dot is a square like everything else.
|
|
138
|
+
'vw-timeline-line': 'rgb(var(--v-shadow-color))',
|
|
139
|
+
'vw-timeline-line-width': '4px',
|
|
140
|
+
'vw-radius-dot': '0px',
|
|
141
|
+
'vw-radius-avatar': '0px',
|
|
67
142
|
},
|
|
68
143
|
},
|
|
69
144
|
defaults: [
|
|
@@ -98,6 +173,15 @@ export const brutalist = defineTheme({
|
|
|
98
173
|
sortDesc: 'mdi-menu-down',
|
|
99
174
|
close: 'mdi-close-thick',
|
|
100
175
|
}),
|
|
176
|
+
/**
|
|
177
|
+
* No transition at all, which is the only honest answer here. Every
|
|
178
|
+
* other theme animates a surface arriving from somewhere; this one has
|
|
179
|
+
* no depth for it to arrive through, so the panel is simply there —
|
|
180
|
+
* one frame without it, the next frame with it.
|
|
181
|
+
*/
|
|
182
|
+
overlays({ dialog: false, menu: false, tooltip: false }),
|
|
183
|
+
// A ripple is a soft, round, spreading thing.
|
|
184
|
+
ripple(false),
|
|
101
185
|
],
|
|
102
186
|
});
|
|
103
187
|
//# sourceMappingURL=brutalist.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brutalist.js","sourceRoot":"","sources":["../../src/themes/brutalist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"brutalist.js","sourceRoot":"","sources":["../../src/themes/brutalist.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calm.d.ts","sourceRoot":"","sources":["../../src/themes/calm.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,+
|
|
1
|
+
{"version":3,"file":"calm.d.ts","sourceRoot":"","sources":["../../src/themes/calm.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,+CAwHf,CAAA"}
|
package/dist/themes/calm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { bars, controls, fields, icons, tables } from '../util/defaults.js';
|
|
1
|
+
import { bars, controls, fields, icons, overlays, ripple, tables } from '../util/defaults.js';
|
|
2
2
|
import { defineTheme } from '../util/defineTheme.js';
|
|
3
3
|
/**
|
|
4
4
|
* The counter-trend: an interface that does not compete for attention.
|
|
@@ -16,7 +16,7 @@ export const calm = defineTheme({
|
|
|
16
16
|
description: 'Low contrast, desaturated naturals and a lot of air. Nothing competes for attention.',
|
|
17
17
|
dark: false,
|
|
18
18
|
iconStyle: 'outline',
|
|
19
|
-
swatch: ['#FAFAF7', '#FFFFFF', '#6B7A6B', '#
|
|
19
|
+
swatch: ['#FAFAF7', '#FFFFFF', '#6B7A6B', '#86725F'],
|
|
20
20
|
fonts: ['Inter'],
|
|
21
21
|
},
|
|
22
22
|
theme: {
|
|
@@ -30,7 +30,7 @@ export const calm = defineTheme({
|
|
|
30
30
|
'on-surface-variant': '#FAFAF7',
|
|
31
31
|
primary: '#6B7A6B',
|
|
32
32
|
'primary-darken-1': '#556355',
|
|
33
|
-
secondary: '#
|
|
33
|
+
secondary: '#86725F',
|
|
34
34
|
'secondary-darken-1': '#8B7A69',
|
|
35
35
|
error: '#A86B63',
|
|
36
36
|
info: '#6B7A8A',
|
|
@@ -38,8 +38,18 @@ export const calm = defineTheme({
|
|
|
38
38
|
warning: '#A89464',
|
|
39
39
|
'on-surface': '#3A3A36',
|
|
40
40
|
'on-background': '#3A3A36',
|
|
41
|
+
// Vuetify picks the label colour by luminance and settles for
|
|
42
|
+
// about 3:1, which is the bar for large text rather than for a
|
|
43
|
+
// button label. Measured on the filled buttons: success 3.8:1 → 5.5:1, info 4.4:1 → 4.8:1, warning 3:1 → 7.1:1, error 4.2:1 → 4.9:1.
|
|
44
|
+
'on-success': '#000000',
|
|
45
|
+
'on-info': '#000000',
|
|
46
|
+
'on-warning': '#000000',
|
|
47
|
+
'on-error': '#000000',
|
|
41
48
|
},
|
|
42
49
|
variables: {
|
|
50
|
+
/* A panel standing on its own — a bare list, sheet, banner or table.
|
|
51
|
+
Core owns the selector; this is what it draws with. */
|
|
52
|
+
'vw-panel-border': 'var(--v-vw-border-width) solid rgba(var(--v-border-color), var(--v-border-opacity))',
|
|
43
53
|
'border-color': '#3A3A36',
|
|
44
54
|
'border-opacity': 0.09,
|
|
45
55
|
'high-emphasis-opacity': 0.78,
|
|
@@ -56,6 +66,27 @@ export const calm = defineTheme({
|
|
|
56
66
|
'vw-heading-weight': '500',
|
|
57
67
|
'vw-heading-tracking': '-0.01em',
|
|
58
68
|
'vw-tab-slider-height': '2px',
|
|
69
|
+
// Slow enough that nothing ever catches the eye.
|
|
70
|
+
'vw-motion-duration': '320ms',
|
|
71
|
+
'vw-press-scale': '0.99',
|
|
72
|
+
'vw-hover-lift': '2px',
|
|
73
|
+
'vw-pop-scale': '1.08',
|
|
74
|
+
'vw-pop-duration': '280ms',
|
|
75
|
+
'vw-theme-transition': '560ms',
|
|
76
|
+
// Slow here too, so an overlay drifts in rather than appearing.
|
|
77
|
+
'vw-overlay-duration': '320ms',
|
|
78
|
+
'vw-overlay-exit': '240ms',
|
|
79
|
+
/**
|
|
80
|
+
* Every state is a shade quieter than Vuetify draws it. The theme
|
|
81
|
+
* spends colour only on what you can act on, and a wash under
|
|
82
|
+
* something already selected is not one of those things.
|
|
83
|
+
*/
|
|
84
|
+
'focus-opacity': 0.1,
|
|
85
|
+
'activated-opacity': 0.06,
|
|
86
|
+
'disabled-opacity': 0.35,
|
|
87
|
+
// Barely there, like everything else in this theme.
|
|
88
|
+
'vw-timeline-line': 'rgba(var(--v-border-color), 0.5)',
|
|
89
|
+
'vw-timeline-line-width': '1px',
|
|
59
90
|
},
|
|
60
91
|
},
|
|
61
92
|
defaults: [
|
|
@@ -83,6 +114,16 @@ export const calm = defineTheme({
|
|
|
83
114
|
ratingEmpty: 'mdi-circle-outline',
|
|
84
115
|
close: 'mdi-close',
|
|
85
116
|
}),
|
|
117
|
+
// Nothing arrives from a direction, and nothing scales: the surface
|
|
118
|
+
// is simply there a moment later than you asked.
|
|
119
|
+
overlays({
|
|
120
|
+
dialog: 'fade-transition',
|
|
121
|
+
menu: 'fade-transition',
|
|
122
|
+
tooltip: 'fade-transition',
|
|
123
|
+
}),
|
|
124
|
+
// The discipline is subtractive, and a ripple is a fill spreading
|
|
125
|
+
// across the one part of the screen you are already looking at.
|
|
126
|
+
ripple(false),
|
|
86
127
|
],
|
|
87
128
|
});
|
|
88
129
|
//# sourceMappingURL=calm.js.map
|
package/dist/themes/calm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calm.js","sourceRoot":"","sources":["../../src/themes/calm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"calm.js","sourceRoot":"","sources":["../../src/themes/calm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The plush theme: a warm cream ground and padded, pillowy shapes that
|
|
3
|
+
* squash under a press rather than click.
|
|
4
|
+
*
|
|
5
|
+
* The palette follows what the research on children's interfaces actually
|
|
6
|
+
* finds, which is not the pastel wash the phrase "for kids" suggests.
|
|
7
|
+
* Children are drawn to high brightness, and the apps they stay in
|
|
8
|
+
* (Duolingo, Khan Academy Kids) run saturated accents rather than pastels.
|
|
9
|
+
* But a screen where everything shouts hides which parts are tappable, so
|
|
10
|
+
* the loud colours are spent only on controls: a light neutral ground, one
|
|
11
|
+
* dominant hue, a small accent — roughly the 60/30/10 the guides recommend.
|
|
12
|
+
* Warm hues test slightly ahead of cool ones, hence raspberry over blue,
|
|
13
|
+
* with mint holding the secondary so the status colours stay apart from it.
|
|
14
|
+
*
|
|
15
|
+
* Body text is a deep plum-brown rather than the palette's own pink: the
|
|
16
|
+
* one thing parents notice is whether they can read the screen, and this
|
|
17
|
+
* carries about 12:1 on the cream.
|
|
18
|
+
*/
|
|
19
|
+
export declare const candy: import("../types.js").VuetiwatchTheme<"candy">;
|
|
20
|
+
//# sourceMappingURL=candy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"candy.d.ts","sourceRoot":"","sources":["../../src/themes/candy.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,KAAK,gDAiJhB,CAAA"}
|