@trebired/frontend 20.3.0 → 20.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/contrast/index.d.ts +2 -1
- package/dist/contrast/index.d.ts.map +1 -1
- package/dist/contrast/index.js +27 -6
- package/dist/contrast/index.js.map +1 -1
- package/dist/contrast/styles/index.scss +29 -2
- package/dist/src/contrast/index.d.ts +2 -1
- package/dist/src/contrast/index.d.ts.map +1 -1
- package/dist/src/contrast/index.js +27 -6
- package/dist/src/contrast/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 20.5.0
|
|
4
|
+
|
|
5
|
+
- A panel that paints its own background is read by that background rather than by whatever happens to be behind it. A solid dark footer was being judged against the page beneath it, came out light, and printed dark text on itself. Popovers and dropdown menus are read the same way, and a site marks its own panels with `data-tbf-contrast-surface`.
|
|
6
|
+
- A dark background written as `rgb(0, 0, 0)` is no longer mistaken for a transparent one. The third number was being read as the opacity, so any backdrop with a low blue channel was skipped and the chrome above it stayed in the page's own colours.
|
|
7
|
+
|
|
8
|
+
## 20.4.0
|
|
9
|
+
|
|
10
|
+
- Chrome that passes from dark content onto light goes back to the site's own colours. Only the dark state was written, so once a header had been marked dark everything under it stayed light-on-light when the page scrolled on, including the parts the measurement had already corrected. Each piece now carries both states, which is what makes the header readable along its whole width when the content behind it changes partway across.
|
|
11
|
+
- The page's own value for every colour the dark state replaces is kept at the root as `--tbf-contrast-base-*`, so restoring is exact rather than a guess, and a colour a site never set stays unset.
|
|
12
|
+
|
|
3
13
|
## 20.3.0
|
|
4
14
|
|
|
5
15
|
- A primary button in chrome that floats over dark content inverts with it. Its surface takes the light colour the surrounding text has, and its label the page's own ink, so the call to action stays a solid block that reads either way. Sites were doing this themselves, and getting it wrong once the text colour moved under them.
|
package/dist/contrast/index.d.ts
CHANGED
|
@@ -2,8 +2,9 @@ type ContrastBinding = () => void;
|
|
|
2
2
|
declare const CONTRAST_ATTR: `data-${string}`;
|
|
3
3
|
declare const MIRROR_ATTR: `data-${string}`;
|
|
4
4
|
declare const ON_DARK_ATTR: `data-${string}`;
|
|
5
|
+
declare const SURFACE_ATTR: `data-${string}`;
|
|
5
6
|
declare function applyContrast(root: ParentNode): void;
|
|
6
7
|
declare function bindContrast(root?: ParentNode): ContrastBinding;
|
|
7
|
-
export { applyContrast, bindContrast, CONTRAST_ATTR, MIRROR_ATTR, ON_DARK_ATTR };
|
|
8
|
+
export { applyContrast, bindContrast, CONTRAST_ATTR, MIRROR_ATTR, ON_DARK_ATTR, SURFACE_ATTR };
|
|
8
9
|
export type { ContrastBinding };
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contrast/index.ts"],"names":[],"mappings":"AAEA,KAAK,eAAe,GAAG,MAAM,IAAI,CAAC;AAElC,QAAA,MAAM,aAAa,kBAA+B,CAAC;AAEnD,QAAA,MAAM,WAAW,kBAAsC,CAAC;AAExD,QAAA,MAAM,YAAY,kBAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contrast/index.ts"],"names":[],"mappings":"AAEA,KAAK,eAAe,GAAG,MAAM,IAAI,CAAC;AAElC,QAAA,MAAM,aAAa,kBAA+B,CAAC;AAEnD,QAAA,MAAM,WAAW,kBAAsC,CAAC;AAExD,QAAA,MAAM,YAAY,kBAA8B,CAAC;AACjD,QAAA,MAAM,YAAY,kBAAuC,CAAC;AA2G1D,iBAAS,aAAa,CAAC,IAAI,EAAE,UAAU,QAQtC;AAED,iBAAS,YAAY,CAAC,IAAI,GAAE,UAAqB,GAAG,eAAe,CA4BlE;AAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC/F,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/contrast/index.js
CHANGED
|
@@ -4,6 +4,8 @@ const CONTRAST_SELECTOR = frontendDataSelector("contrast");
|
|
|
4
4
|
const MIRROR_ATTR = frontendDataAttr("contrast-mirror");
|
|
5
5
|
const MIRROR_SELECTOR = frontendDataSelector("contrast-mirror");
|
|
6
6
|
const ON_DARK_ATTR = frontendDataAttr("on-dark");
|
|
7
|
+
const SURFACE_ATTR = frontendDataAttr("contrast-surface");
|
|
8
|
+
const SURFACE_SELECTOR = frontendDataSelector("contrast-surface");
|
|
7
9
|
const DARK_BELOW = 0.5;
|
|
8
10
|
function headerPart(part) {
|
|
9
11
|
return `.${frontendElementClass("site-header", part)}`;
|
|
@@ -17,6 +19,8 @@ const DEFAULT_ITEMS = [
|
|
|
17
19
|
`${headerPart("actions")} ${cls("locale-trigger")}`,
|
|
18
20
|
`${headerPart("actions")} ${cls("btn")}`,
|
|
19
21
|
headerPart("toggle"),
|
|
22
|
+
].join(",");
|
|
23
|
+
const DEFAULT_SURFACES = [
|
|
20
24
|
cls("popover"),
|
|
21
25
|
`.${frontendElementClass("dropdown", "menu")}`,
|
|
22
26
|
cls("site-footer"),
|
|
@@ -39,11 +43,20 @@ function lightness(value) {
|
|
|
39
43
|
return (0.2126 * +hit[1] + 0.7152 * +hit[2] + 0.0722 * +hit[3]) / 255;
|
|
40
44
|
return null;
|
|
41
45
|
}
|
|
46
|
+
function alphaOf(value) {
|
|
47
|
+
const slashed = value.match(/\/\s*([\d.]+)(%?)\s*\)$/u);
|
|
48
|
+
if (slashed)
|
|
49
|
+
return slashed[2] ? parseFloat(slashed[1]) / 100 : parseFloat(slashed[1]);
|
|
50
|
+
const call = value.match(/^[a-z]+\(([^)]*)\)$/iu);
|
|
51
|
+
if (!call)
|
|
52
|
+
return 1;
|
|
53
|
+
const fields = call[1].split(",");
|
|
54
|
+
return fields.length > 3 ? parseFloat(fields[3]) : 1;
|
|
55
|
+
}
|
|
42
56
|
function isOpaque(value) {
|
|
43
57
|
if (!value || value === "transparent")
|
|
44
58
|
return false;
|
|
45
|
-
|
|
46
|
-
return alpha ? parseFloat(alpha[1]) > OPAQUE_ABOVE : true;
|
|
59
|
+
return alphaOf(value) > OPAQUE_ABOVE;
|
|
47
60
|
}
|
|
48
61
|
function backdropLightness(item, ownRoot) {
|
|
49
62
|
const box = item.getBoundingClientRect();
|
|
@@ -62,14 +75,19 @@ function backdropLightness(item, ownRoot) {
|
|
|
62
75
|
}
|
|
63
76
|
return lightness(getComputedStyle(document.body).backgroundColor);
|
|
64
77
|
}
|
|
78
|
+
function ownLightness(item) {
|
|
79
|
+
const background = getComputedStyle(item).backgroundColor;
|
|
80
|
+
return isOpaque(background) ? lightness(background) : null;
|
|
81
|
+
}
|
|
65
82
|
function contrastRoot(item) {
|
|
66
83
|
const named = item.getAttribute(CONTRAST_ATTR);
|
|
67
84
|
if (!named)
|
|
68
85
|
return item;
|
|
69
86
|
return item.closest(named) || item;
|
|
70
87
|
}
|
|
71
|
-
function resolveItem(item) {
|
|
72
|
-
const
|
|
88
|
+
function resolveItem(item, surface) {
|
|
89
|
+
const own = surface ? ownLightness(item) : null;
|
|
90
|
+
const value = own === null ? backdropLightness(item, contrastRoot(item)) : own;
|
|
73
91
|
return value === null ? false : value < DARK_BELOW;
|
|
74
92
|
}
|
|
75
93
|
function mirrorPairs(root) {
|
|
@@ -92,7 +110,10 @@ function applyMirrors(root) {
|
|
|
92
110
|
}
|
|
93
111
|
function applyContrast(root) {
|
|
94
112
|
for (const item of root.querySelectorAll(`${DEFAULT_ITEMS},${CONTRAST_SELECTOR}`)) {
|
|
95
|
-
item.setAttribute(ON_DARK_ATTR, resolveItem(item) ? "true" : "false");
|
|
113
|
+
item.setAttribute(ON_DARK_ATTR, resolveItem(item, item.matches(SURFACE_SELECTOR)) ? "true" : "false");
|
|
114
|
+
}
|
|
115
|
+
for (const item of root.querySelectorAll(`${DEFAULT_SURFACES},${SURFACE_SELECTOR}`)) {
|
|
116
|
+
item.setAttribute(ON_DARK_ATTR, resolveItem(item, true) ? "true" : "false");
|
|
96
117
|
}
|
|
97
118
|
applyMirrors(root);
|
|
98
119
|
}
|
|
@@ -127,5 +148,5 @@ function bindContrast(root = document) {
|
|
|
127
148
|
window.removeEventListener("resize", schedule);
|
|
128
149
|
};
|
|
129
150
|
}
|
|
130
|
-
export { applyContrast, bindContrast, CONTRAST_ATTR, MIRROR_ATTR, ON_DARK_ATTR };
|
|
151
|
+
export { applyContrast, bindContrast, CONTRAST_ATTR, MIRROR_ATTR, ON_DARK_ATTR, SURFACE_ATTR };
|
|
131
152
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contrast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAIhH,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACnD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AACxD,MAAM,eAAe,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AAChE,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACjD,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,oBAAoB,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,aAAa,GAAG;IACpB,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;IAC5C,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,0BAA0B,CAAC,EAAE;IACzD,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAAE;IACnD,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE;IACxC,UAAU,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contrast/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
@use "@trebired/bundler/namespace" as ns;
|
|
2
2
|
|
|
3
|
+
$tokens:
|
|
4
|
+
"text",
|
|
5
|
+
"text-muted",
|
|
6
|
+
"border",
|
|
7
|
+
"shell-header-link-color",
|
|
8
|
+
"shell-header-link-hover-color",
|
|
9
|
+
"shell-header-link-active-color",
|
|
10
|
+
"shell-header-toggle-color",
|
|
11
|
+
"shell-language-trigger-color",
|
|
12
|
+
"shell-language-trigger-border",
|
|
13
|
+
"shell-footer-link-color",
|
|
14
|
+
"ui-btn-variants-primary-bg",
|
|
15
|
+
"ui-btn-variants-primary-color",
|
|
16
|
+
"ui-btn-variants-primary-state-hover-bg",
|
|
17
|
+
"ui-btn-variants-primary-state-hover-color";
|
|
18
|
+
|
|
3
19
|
:root {
|
|
20
|
+
@each $token in $tokens {
|
|
21
|
+
#{ns.css-var("contrast-base-" + $token)}: var(#{ns.css-var($token)});
|
|
22
|
+
}
|
|
23
|
+
|
|
4
24
|
#{ns.css-var("contrast-ink")}: var(#{ns.css-var("text")}, #000);
|
|
5
25
|
}
|
|
6
26
|
|
|
@@ -17,8 +37,6 @@
|
|
|
17
37
|
#{ns.css-var("contrast-dark-border")},
|
|
18
38
|
color-mix(in srgb, var(#{ns.css-var("page")}, #fff) 42%, transparent)
|
|
19
39
|
);
|
|
20
|
-
color: var(#{ns.css-var("text")}, #fff);
|
|
21
|
-
|
|
22
40
|
#{ns.css-var("shell-header-link-color")}: var(#{ns.css-var("text-muted")});
|
|
23
41
|
#{ns.css-var("shell-header-link-hover-color")}: var(#{ns.css-var("text")});
|
|
24
42
|
#{ns.css-var("shell-header-link-active-color")}: var(#{ns.css-var("text")});
|
|
@@ -34,4 +52,13 @@
|
|
|
34
52
|
var(#{ns.css-var("contrast-ink")})
|
|
35
53
|
);
|
|
36
54
|
#{ns.css-var("ui-btn-variants-primary-state-hover-color")}: var(#{ns.css-var("contrast-ink")});
|
|
55
|
+
color: var(#{ns.css-var("text")}, #fff);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
#{ns.data("on-dark", "false")} {
|
|
59
|
+
@each $token in $tokens {
|
|
60
|
+
#{ns.css-var($token)}: var(#{ns.css-var("contrast-base-" + $token)});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
color: var(#{ns.css-var("text")}, #000);
|
|
37
64
|
}
|
|
@@ -2,8 +2,9 @@ type ContrastBinding = () => void;
|
|
|
2
2
|
declare const CONTRAST_ATTR: `data-${string}`;
|
|
3
3
|
declare const MIRROR_ATTR: `data-${string}`;
|
|
4
4
|
declare const ON_DARK_ATTR: `data-${string}`;
|
|
5
|
+
declare const SURFACE_ATTR: `data-${string}`;
|
|
5
6
|
declare function applyContrast(root: ParentNode): void;
|
|
6
7
|
declare function bindContrast(root?: ParentNode): ContrastBinding;
|
|
7
|
-
export { applyContrast, bindContrast, CONTRAST_ATTR, MIRROR_ATTR, ON_DARK_ATTR };
|
|
8
|
+
export { applyContrast, bindContrast, CONTRAST_ATTR, MIRROR_ATTR, ON_DARK_ATTR, SURFACE_ATTR };
|
|
8
9
|
export type { ContrastBinding };
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contrast/index.ts"],"names":[],"mappings":"AAEA,KAAK,eAAe,GAAG,MAAM,IAAI,CAAC;AAElC,QAAA,MAAM,aAAa,kBAA+B,CAAC;AAEnD,QAAA,MAAM,WAAW,kBAAsC,CAAC;AAExD,QAAA,MAAM,YAAY,kBAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contrast/index.ts"],"names":[],"mappings":"AAEA,KAAK,eAAe,GAAG,MAAM,IAAI,CAAC;AAElC,QAAA,MAAM,aAAa,kBAA+B,CAAC;AAEnD,QAAA,MAAM,WAAW,kBAAsC,CAAC;AAExD,QAAA,MAAM,YAAY,kBAA8B,CAAC;AACjD,QAAA,MAAM,YAAY,kBAAuC,CAAC;AA2G1D,iBAAS,aAAa,CAAC,IAAI,EAAE,UAAU,QAQtC;AAED,iBAAS,YAAY,CAAC,IAAI,GAAE,UAAqB,GAAG,eAAe,CA4BlE;AAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC/F,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -4,6 +4,8 @@ const CONTRAST_SELECTOR = frontendDataSelector("contrast");
|
|
|
4
4
|
const MIRROR_ATTR = frontendDataAttr("contrast-mirror");
|
|
5
5
|
const MIRROR_SELECTOR = frontendDataSelector("contrast-mirror");
|
|
6
6
|
const ON_DARK_ATTR = frontendDataAttr("on-dark");
|
|
7
|
+
const SURFACE_ATTR = frontendDataAttr("contrast-surface");
|
|
8
|
+
const SURFACE_SELECTOR = frontendDataSelector("contrast-surface");
|
|
7
9
|
const DARK_BELOW = 0.5;
|
|
8
10
|
function headerPart(part) {
|
|
9
11
|
return `.${frontendElementClass("site-header", part)}`;
|
|
@@ -17,6 +19,8 @@ const DEFAULT_ITEMS = [
|
|
|
17
19
|
`${headerPart("actions")} ${cls("locale-trigger")}`,
|
|
18
20
|
`${headerPart("actions")} ${cls("btn")}`,
|
|
19
21
|
headerPart("toggle"),
|
|
22
|
+
].join(",");
|
|
23
|
+
const DEFAULT_SURFACES = [
|
|
20
24
|
cls("popover"),
|
|
21
25
|
`.${frontendElementClass("dropdown", "menu")}`,
|
|
22
26
|
cls("site-footer"),
|
|
@@ -39,11 +43,20 @@ function lightness(value) {
|
|
|
39
43
|
return (0.2126 * +hit[1] + 0.7152 * +hit[2] + 0.0722 * +hit[3]) / 255;
|
|
40
44
|
return null;
|
|
41
45
|
}
|
|
46
|
+
function alphaOf(value) {
|
|
47
|
+
const slashed = value.match(/\/\s*([\d.]+)(%?)\s*\)$/u);
|
|
48
|
+
if (slashed)
|
|
49
|
+
return slashed[2] ? parseFloat(slashed[1]) / 100 : parseFloat(slashed[1]);
|
|
50
|
+
const call = value.match(/^[a-z]+\(([^)]*)\)$/iu);
|
|
51
|
+
if (!call)
|
|
52
|
+
return 1;
|
|
53
|
+
const fields = call[1].split(",");
|
|
54
|
+
return fields.length > 3 ? parseFloat(fields[3]) : 1;
|
|
55
|
+
}
|
|
42
56
|
function isOpaque(value) {
|
|
43
57
|
if (!value || value === "transparent")
|
|
44
58
|
return false;
|
|
45
|
-
|
|
46
|
-
return alpha ? parseFloat(alpha[1]) > OPAQUE_ABOVE : true;
|
|
59
|
+
return alphaOf(value) > OPAQUE_ABOVE;
|
|
47
60
|
}
|
|
48
61
|
function backdropLightness(item, ownRoot) {
|
|
49
62
|
const box = item.getBoundingClientRect();
|
|
@@ -62,14 +75,19 @@ function backdropLightness(item, ownRoot) {
|
|
|
62
75
|
}
|
|
63
76
|
return lightness(getComputedStyle(document.body).backgroundColor);
|
|
64
77
|
}
|
|
78
|
+
function ownLightness(item) {
|
|
79
|
+
const background = getComputedStyle(item).backgroundColor;
|
|
80
|
+
return isOpaque(background) ? lightness(background) : null;
|
|
81
|
+
}
|
|
65
82
|
function contrastRoot(item) {
|
|
66
83
|
const named = item.getAttribute(CONTRAST_ATTR);
|
|
67
84
|
if (!named)
|
|
68
85
|
return item;
|
|
69
86
|
return item.closest(named) || item;
|
|
70
87
|
}
|
|
71
|
-
function resolveItem(item) {
|
|
72
|
-
const
|
|
88
|
+
function resolveItem(item, surface) {
|
|
89
|
+
const own = surface ? ownLightness(item) : null;
|
|
90
|
+
const value = own === null ? backdropLightness(item, contrastRoot(item)) : own;
|
|
73
91
|
return value === null ? false : value < DARK_BELOW;
|
|
74
92
|
}
|
|
75
93
|
function mirrorPairs(root) {
|
|
@@ -92,7 +110,10 @@ function applyMirrors(root) {
|
|
|
92
110
|
}
|
|
93
111
|
function applyContrast(root) {
|
|
94
112
|
for (const item of root.querySelectorAll(`${DEFAULT_ITEMS},${CONTRAST_SELECTOR}`)) {
|
|
95
|
-
item.setAttribute(ON_DARK_ATTR, resolveItem(item) ? "true" : "false");
|
|
113
|
+
item.setAttribute(ON_DARK_ATTR, resolveItem(item, item.matches(SURFACE_SELECTOR)) ? "true" : "false");
|
|
114
|
+
}
|
|
115
|
+
for (const item of root.querySelectorAll(`${DEFAULT_SURFACES},${SURFACE_SELECTOR}`)) {
|
|
116
|
+
item.setAttribute(ON_DARK_ATTR, resolveItem(item, true) ? "true" : "false");
|
|
96
117
|
}
|
|
97
118
|
applyMirrors(root);
|
|
98
119
|
}
|
|
@@ -127,5 +148,5 @@ function bindContrast(root = document) {
|
|
|
127
148
|
window.removeEventListener("resize", schedule);
|
|
128
149
|
};
|
|
129
150
|
}
|
|
130
|
-
export { applyContrast, bindContrast, CONTRAST_ATTR, MIRROR_ATTR, ON_DARK_ATTR };
|
|
151
|
+
export { applyContrast, bindContrast, CONTRAST_ATTR, MIRROR_ATTR, ON_DARK_ATTR, SURFACE_ATTR };
|
|
131
152
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contrast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAIhH,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACnD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AACxD,MAAM,eAAe,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AAChE,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACjD,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,oBAAoB,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,aAAa,GAAG;IACpB,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;IAC5C,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,0BAA0B,CAAC,EAAE;IACzD,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAAE;IACnD,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE;IACxC,UAAU,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contrast/index.ts"],"names":[],"mappings":"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"}
|