@trebired/frontend 20.6.0 → 20.8.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 +11 -0
- package/dist/contrast/index.d.ts.map +1 -1
- package/dist/contrast/index.js +55 -12
- package/dist/contrast/index.js.map +1 -1
- package/dist/layout/styles/site-footer.scss +4 -1
- package/dist/src/contrast/index.d.ts.map +1 -1
- package/dist/src/contrast/index.js +55 -12
- package/dist/src/contrast/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 20.8.0
|
|
4
|
+
|
|
5
|
+
- A footer that paints itself dark no longer flickers between black and white. Its background was the same colour the state hands to its contents, so taking the state changed what the next reading saw, and it alternated every frame. A panel is now judged by the background it has without the state, and an inverted footer paints itself with the page's ink, which nothing rewrites.
|
|
6
|
+
- A part no longer takes the wrong colour for a moment while the page is still coming up. Mid-load there are instants when an element is not hit at its own position and the document root is all that answers; that was read as light content, so chrome over a dark hero went dark and then corrected itself a fraction of a second later. A position where the element itself is not hit is no longer a reading.
|
|
7
|
+
- The observer ignores the state it sets itself, so marking an element cannot schedule another pass.
|
|
8
|
+
|
|
9
|
+
## 20.7.0
|
|
10
|
+
|
|
11
|
+
- An element that is not shown is no longer given a state. A header link hidden on a phone has no box and nothing behind it to read, yet it was being recorded as sitting on light content, and the menu copied that: the menu read dark while the logo and the toggle beside it read light, on the same dark hero.
|
|
12
|
+
- A mirror follows the first of its sources that is actually on screen. The links in the menu follow the bar on a wide screen and the toggle on a phone, so the menu matches the header it belongs to at every width.
|
|
13
|
+
|
|
3
14
|
## 20.6.0
|
|
4
15
|
|
|
5
16
|
- A part that goes back to the page's colours no longer takes the surrounding chrome's instead. Components whose colour is simply inherited, the language trigger and the menu toggle among them, had nothing to fall back to when a site had never set a colour for them, so they kept reading the dark header they sit in and stayed light on light. Each one now falls back to the page's own text.
|
|
@@ -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;AACjD,QAAA,MAAM,YAAY,kBAAuC,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;AA8I1D,iBAAS,aAAa,CAAC,IAAI,EAAE,UAAU,QAQtC;AAED,iBAAS,YAAY,CAAC,IAAI,GAAE,UAAqB,GAAG,eAAe,CA+BlE;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
|
@@ -26,9 +26,12 @@ const DEFAULT_SURFACES = [
|
|
|
26
26
|
cls("site-footer"),
|
|
27
27
|
].join(",");
|
|
28
28
|
const DEFAULT_MIRRORS = [
|
|
29
|
-
[`${headerPart("menu")} ${headerPart("link")}`, `${headerPart("bar")} ${headerPart("link")}`],
|
|
30
|
-
[
|
|
31
|
-
|
|
29
|
+
[`${headerPart("menu")} ${headerPart("link")}`, `${headerPart("bar")} ${headerPart("link")},${headerPart("toggle")}`],
|
|
30
|
+
[
|
|
31
|
+
`${headerPart("menu-footer")} ${cls("locale-trigger")}`,
|
|
32
|
+
`${headerPart("actions")} ${cls("locale-trigger")},${headerPart("toggle")}`,
|
|
33
|
+
],
|
|
34
|
+
[`${headerPart("menu-footer")} ${cls("btn")}`, `${headerPart("actions")} ${cls("btn")},${headerPart("toggle")}`],
|
|
32
35
|
];
|
|
33
36
|
const OPAQUE_ABOVE = 0.5;
|
|
34
37
|
function lightness(value) {
|
|
@@ -58,13 +61,20 @@ function isOpaque(value) {
|
|
|
58
61
|
return false;
|
|
59
62
|
return alphaOf(value) > OPAQUE_ABOVE;
|
|
60
63
|
}
|
|
64
|
+
function isShown(item) {
|
|
65
|
+
const box = item.getBoundingClientRect();
|
|
66
|
+
return Boolean(box.width && box.height);
|
|
67
|
+
}
|
|
61
68
|
function backdropLightness(item, ownRoot) {
|
|
62
69
|
const box = item.getBoundingClientRect();
|
|
63
70
|
if (!box.width || !box.height)
|
|
64
71
|
return null;
|
|
65
72
|
const centreX = box.left + box.width / 2;
|
|
66
73
|
const centreY = box.top + box.height / 2;
|
|
67
|
-
|
|
74
|
+
const hits = document.elementsFromPoint(centreX, centreY);
|
|
75
|
+
if (!hits.includes(item))
|
|
76
|
+
return null;
|
|
77
|
+
for (const node of hits) {
|
|
68
78
|
if (node === item || item.contains(node))
|
|
69
79
|
continue;
|
|
70
80
|
if (ownRoot && ownRoot.contains(node))
|
|
@@ -75,8 +85,22 @@ function backdropLightness(item, ownRoot) {
|
|
|
75
85
|
}
|
|
76
86
|
return lightness(getComputedStyle(document.body).backgroundColor);
|
|
77
87
|
}
|
|
88
|
+
const BASE_BACKGROUND = new WeakMap();
|
|
89
|
+
function baseBackground(item) {
|
|
90
|
+
const cached = BASE_BACKGROUND.get(item);
|
|
91
|
+
if (cached !== undefined)
|
|
92
|
+
return cached;
|
|
93
|
+
const carried = item.getAttribute(ON_DARK_ATTR);
|
|
94
|
+
if (carried !== null)
|
|
95
|
+
item.removeAttribute(ON_DARK_ATTR);
|
|
96
|
+
const value = getComputedStyle(item).backgroundColor;
|
|
97
|
+
if (carried !== null)
|
|
98
|
+
item.setAttribute(ON_DARK_ATTR, carried);
|
|
99
|
+
BASE_BACKGROUND.set(item, value);
|
|
100
|
+
return value;
|
|
101
|
+
}
|
|
78
102
|
function ownLightness(item) {
|
|
79
|
-
const background =
|
|
103
|
+
const background = baseBackground(item);
|
|
80
104
|
return isOpaque(background) ? lightness(background) : null;
|
|
81
105
|
}
|
|
82
106
|
function contrastRoot(item) {
|
|
@@ -88,7 +112,12 @@ function contrastRoot(item) {
|
|
|
88
112
|
function resolveItem(item, surface) {
|
|
89
113
|
const own = surface ? ownLightness(item) : null;
|
|
90
114
|
const value = own === null ? backdropLightness(item, contrastRoot(item)) : own;
|
|
91
|
-
return value === null ?
|
|
115
|
+
return value === null ? null : value < DARK_BELOW;
|
|
116
|
+
}
|
|
117
|
+
function markItem(item, surface) {
|
|
118
|
+
const dark = resolveItem(item, surface);
|
|
119
|
+
if (dark !== null)
|
|
120
|
+
item.setAttribute(ON_DARK_ATTR, dark ? "true" : "false");
|
|
92
121
|
}
|
|
93
122
|
function mirrorPairs(root) {
|
|
94
123
|
const pairs = [];
|
|
@@ -101,19 +130,29 @@ function mirrorPairs(root) {
|
|
|
101
130
|
}
|
|
102
131
|
return pairs;
|
|
103
132
|
}
|
|
133
|
+
function shownSource(selector) {
|
|
134
|
+
for (const node of document.querySelectorAll(selector)) {
|
|
135
|
+
if (isShown(node))
|
|
136
|
+
return node;
|
|
137
|
+
}
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
104
140
|
function applyMirrors(root) {
|
|
105
141
|
for (const [item, selector] of mirrorPairs(root)) {
|
|
106
|
-
const source = selector ?
|
|
107
|
-
|
|
108
|
-
|
|
142
|
+
const source = selector ? shownSource(selector) : null;
|
|
143
|
+
if (!source)
|
|
144
|
+
continue;
|
|
145
|
+
item.setAttribute(ON_DARK_ATTR, source.getAttribute(ON_DARK_ATTR) === "true" ? "true" : "false");
|
|
109
146
|
}
|
|
110
147
|
}
|
|
111
148
|
function applyContrast(root) {
|
|
112
149
|
for (const item of root.querySelectorAll(`${DEFAULT_ITEMS},${CONTRAST_SELECTOR}`)) {
|
|
113
|
-
|
|
150
|
+
if (isShown(item))
|
|
151
|
+
markItem(item, item.matches(SURFACE_SELECTOR));
|
|
114
152
|
}
|
|
115
153
|
for (const item of root.querySelectorAll(`${DEFAULT_SURFACES},${SURFACE_SELECTOR}`)) {
|
|
116
|
-
|
|
154
|
+
if (isShown(item))
|
|
155
|
+
markItem(item, true);
|
|
117
156
|
}
|
|
118
157
|
applyMirrors(root);
|
|
119
158
|
}
|
|
@@ -132,7 +171,11 @@ function bindContrast(root = document) {
|
|
|
132
171
|
frame = window.requestAnimationFrame(update);
|
|
133
172
|
};
|
|
134
173
|
update();
|
|
135
|
-
const observer = new MutationObserver(
|
|
174
|
+
const observer = new MutationObserver((records) => {
|
|
175
|
+
if (records.every((record) => record.attributeName === ON_DARK_ATTR))
|
|
176
|
+
return;
|
|
177
|
+
schedule();
|
|
178
|
+
});
|
|
136
179
|
observer.observe(document.documentElement, {
|
|
137
180
|
attributes: true,
|
|
138
181
|
childList: true,
|
|
@@ -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,YAAY,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AAC1D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;AAClE,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;CACrB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,gBAAgB,GAAG;IACvB,GAAG,CAAC,SAAS,CAAC;IACd,IAAI,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;IAC9C,GAAG,CAAC,aAAa,CAAC;CACnB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,eAAe,GAA4B;IAC/C,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contrast/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,10 @@
|
|
|
23
23
|
color-mix(in srgb, var(#{ns.css-var("page")}, #fff) 62%, transparent)
|
|
24
24
|
);
|
|
25
25
|
color: var(#{ns.css-var("shell-footer-tone-inverse-color")}, var(#{ns.css-var("page")}, #fff));
|
|
26
|
-
background: var(
|
|
26
|
+
background: var(
|
|
27
|
+
#{ns.css-var("shell-footer-tone-inverse-bg")},
|
|
28
|
+
var(#{ns.css-var("contrast-ink")}, var(#{ns.css-var("text")}, #000))
|
|
29
|
+
);
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
#{ns.data("site-footer-tone", "muted")} {
|
|
@@ -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;AACjD,QAAA,MAAM,YAAY,kBAAuC,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;AA8I1D,iBAAS,aAAa,CAAC,IAAI,EAAE,UAAU,QAQtC;AAED,iBAAS,YAAY,CAAC,IAAI,GAAE,UAAqB,GAAG,eAAe,CA+BlE;AAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC/F,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -26,9 +26,12 @@ const DEFAULT_SURFACES = [
|
|
|
26
26
|
cls("site-footer"),
|
|
27
27
|
].join(",");
|
|
28
28
|
const DEFAULT_MIRRORS = [
|
|
29
|
-
[`${headerPart("menu")} ${headerPart("link")}`, `${headerPart("bar")} ${headerPart("link")}`],
|
|
30
|
-
[
|
|
31
|
-
|
|
29
|
+
[`${headerPart("menu")} ${headerPart("link")}`, `${headerPart("bar")} ${headerPart("link")},${headerPart("toggle")}`],
|
|
30
|
+
[
|
|
31
|
+
`${headerPart("menu-footer")} ${cls("locale-trigger")}`,
|
|
32
|
+
`${headerPart("actions")} ${cls("locale-trigger")},${headerPart("toggle")}`,
|
|
33
|
+
],
|
|
34
|
+
[`${headerPart("menu-footer")} ${cls("btn")}`, `${headerPart("actions")} ${cls("btn")},${headerPart("toggle")}`],
|
|
32
35
|
];
|
|
33
36
|
const OPAQUE_ABOVE = 0.5;
|
|
34
37
|
function lightness(value) {
|
|
@@ -58,13 +61,20 @@ function isOpaque(value) {
|
|
|
58
61
|
return false;
|
|
59
62
|
return alphaOf(value) > OPAQUE_ABOVE;
|
|
60
63
|
}
|
|
64
|
+
function isShown(item) {
|
|
65
|
+
const box = item.getBoundingClientRect();
|
|
66
|
+
return Boolean(box.width && box.height);
|
|
67
|
+
}
|
|
61
68
|
function backdropLightness(item, ownRoot) {
|
|
62
69
|
const box = item.getBoundingClientRect();
|
|
63
70
|
if (!box.width || !box.height)
|
|
64
71
|
return null;
|
|
65
72
|
const centreX = box.left + box.width / 2;
|
|
66
73
|
const centreY = box.top + box.height / 2;
|
|
67
|
-
|
|
74
|
+
const hits = document.elementsFromPoint(centreX, centreY);
|
|
75
|
+
if (!hits.includes(item))
|
|
76
|
+
return null;
|
|
77
|
+
for (const node of hits) {
|
|
68
78
|
if (node === item || item.contains(node))
|
|
69
79
|
continue;
|
|
70
80
|
if (ownRoot && ownRoot.contains(node))
|
|
@@ -75,8 +85,22 @@ function backdropLightness(item, ownRoot) {
|
|
|
75
85
|
}
|
|
76
86
|
return lightness(getComputedStyle(document.body).backgroundColor);
|
|
77
87
|
}
|
|
88
|
+
const BASE_BACKGROUND = new WeakMap();
|
|
89
|
+
function baseBackground(item) {
|
|
90
|
+
const cached = BASE_BACKGROUND.get(item);
|
|
91
|
+
if (cached !== undefined)
|
|
92
|
+
return cached;
|
|
93
|
+
const carried = item.getAttribute(ON_DARK_ATTR);
|
|
94
|
+
if (carried !== null)
|
|
95
|
+
item.removeAttribute(ON_DARK_ATTR);
|
|
96
|
+
const value = getComputedStyle(item).backgroundColor;
|
|
97
|
+
if (carried !== null)
|
|
98
|
+
item.setAttribute(ON_DARK_ATTR, carried);
|
|
99
|
+
BASE_BACKGROUND.set(item, value);
|
|
100
|
+
return value;
|
|
101
|
+
}
|
|
78
102
|
function ownLightness(item) {
|
|
79
|
-
const background =
|
|
103
|
+
const background = baseBackground(item);
|
|
80
104
|
return isOpaque(background) ? lightness(background) : null;
|
|
81
105
|
}
|
|
82
106
|
function contrastRoot(item) {
|
|
@@ -88,7 +112,12 @@ function contrastRoot(item) {
|
|
|
88
112
|
function resolveItem(item, surface) {
|
|
89
113
|
const own = surface ? ownLightness(item) : null;
|
|
90
114
|
const value = own === null ? backdropLightness(item, contrastRoot(item)) : own;
|
|
91
|
-
return value === null ?
|
|
115
|
+
return value === null ? null : value < DARK_BELOW;
|
|
116
|
+
}
|
|
117
|
+
function markItem(item, surface) {
|
|
118
|
+
const dark = resolveItem(item, surface);
|
|
119
|
+
if (dark !== null)
|
|
120
|
+
item.setAttribute(ON_DARK_ATTR, dark ? "true" : "false");
|
|
92
121
|
}
|
|
93
122
|
function mirrorPairs(root) {
|
|
94
123
|
const pairs = [];
|
|
@@ -101,19 +130,29 @@ function mirrorPairs(root) {
|
|
|
101
130
|
}
|
|
102
131
|
return pairs;
|
|
103
132
|
}
|
|
133
|
+
function shownSource(selector) {
|
|
134
|
+
for (const node of document.querySelectorAll(selector)) {
|
|
135
|
+
if (isShown(node))
|
|
136
|
+
return node;
|
|
137
|
+
}
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
104
140
|
function applyMirrors(root) {
|
|
105
141
|
for (const [item, selector] of mirrorPairs(root)) {
|
|
106
|
-
const source = selector ?
|
|
107
|
-
|
|
108
|
-
|
|
142
|
+
const source = selector ? shownSource(selector) : null;
|
|
143
|
+
if (!source)
|
|
144
|
+
continue;
|
|
145
|
+
item.setAttribute(ON_DARK_ATTR, source.getAttribute(ON_DARK_ATTR) === "true" ? "true" : "false");
|
|
109
146
|
}
|
|
110
147
|
}
|
|
111
148
|
function applyContrast(root) {
|
|
112
149
|
for (const item of root.querySelectorAll(`${DEFAULT_ITEMS},${CONTRAST_SELECTOR}`)) {
|
|
113
|
-
|
|
150
|
+
if (isShown(item))
|
|
151
|
+
markItem(item, item.matches(SURFACE_SELECTOR));
|
|
114
152
|
}
|
|
115
153
|
for (const item of root.querySelectorAll(`${DEFAULT_SURFACES},${SURFACE_SELECTOR}`)) {
|
|
116
|
-
|
|
154
|
+
if (isShown(item))
|
|
155
|
+
markItem(item, true);
|
|
117
156
|
}
|
|
118
157
|
applyMirrors(root);
|
|
119
158
|
}
|
|
@@ -132,7 +171,11 @@ function bindContrast(root = document) {
|
|
|
132
171
|
frame = window.requestAnimationFrame(update);
|
|
133
172
|
};
|
|
134
173
|
update();
|
|
135
|
-
const observer = new MutationObserver(
|
|
174
|
+
const observer = new MutationObserver((records) => {
|
|
175
|
+
if (records.every((record) => record.attributeName === ON_DARK_ATTR))
|
|
176
|
+
return;
|
|
177
|
+
schedule();
|
|
178
|
+
});
|
|
136
179
|
observer.observe(document.documentElement, {
|
|
137
180
|
attributes: true,
|
|
138
181
|
childList: true,
|
|
@@ -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,YAAY,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AAC1D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;AAClE,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;CACrB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,gBAAgB,GAAG;IACvB,GAAG,CAAC,SAAS,CAAC;IACd,IAAI,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;IAC9C,GAAG,CAAC,aAAa,CAAC;CACnB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,eAAe,GAA4B;IAC/C,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contrast/index.ts"],"names":[],"mappings":"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"}
|