@mirai/ui 1.1.2 → 1.1.3
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/build/theme/helpers/index.js +4 -4
- package/build/theme/helpers/index.js.map +1 -1
- package/build/theme/helpers/palette.js +58 -0
- package/build/theme/helpers/palette.js.map +1 -0
- package/build/theme/theme.constants.js +1 -3
- package/build/theme/theme.constants.js.map +1 -1
- package/build/theme/theme.js +23 -16
- package/build/theme/theme.js.map +1 -1
- package/build/theme/theme.stories.js +83 -0
- package/build/theme/theme.stories.js.map +1 -1
- package/package.json +1 -1
- package/build/theme/helpers/colorShade.js +0 -30
- package/build/theme/helpers/colorShade.js.map +0 -1
|
@@ -14,14 +14,14 @@ Object.keys(_camelcase).forEach(function (key) {
|
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
|
-
var
|
|
18
|
-
Object.keys(
|
|
17
|
+
var _palette = require("./palette");
|
|
18
|
+
Object.keys(_palette).forEach(function (key) {
|
|
19
19
|
if (key === "default" || key === "__esModule") return;
|
|
20
|
-
if (key in exports && exports[key] ===
|
|
20
|
+
if (key in exports && exports[key] === _palette[key]) return;
|
|
21
21
|
Object.defineProperty(exports, key, {
|
|
22
22
|
enumerable: true,
|
|
23
23
|
get: function get() {
|
|
24
|
-
return
|
|
24
|
+
return _palette[key];
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
27
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/theme/helpers/index.js"],"sourcesContent":["export * from './camelcase';\nexport * from './
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/theme/helpers/index.js"],"sourcesContent":["export * from './camelcase';\nexport * from './palette';\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.palette = void 0;
|
|
7
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
11
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
12
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
13
|
+
var HEXCOLOR_REGEX = /^#([0-9A-F]{3}){1,2}$/i;
|
|
14
|
+
|
|
15
|
+
// -- parsers
|
|
16
|
+
var hexToRgb = function hexToRgb(hex) {
|
|
17
|
+
var bigint = parseInt(hex.replace(/^#/, ''), 16);
|
|
18
|
+
var r = bigint >> 16 & 255;
|
|
19
|
+
var g = bigint >> 8 & 255;
|
|
20
|
+
var b = bigint & 255;
|
|
21
|
+
return [r, g, b];
|
|
22
|
+
};
|
|
23
|
+
var rgbToHex = function rgbToHex() {
|
|
24
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [],
|
|
25
|
+
_ref2 = _slicedToArray(_ref, 3),
|
|
26
|
+
r = _ref2[0],
|
|
27
|
+
g = _ref2[1],
|
|
28
|
+
b = _ref2[2];
|
|
29
|
+
return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1).toUpperCase();
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// -- color modifiers
|
|
33
|
+
var lighten = function lighten(rgb) {
|
|
34
|
+
var factor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
35
|
+
return rgb.map(function (color) {
|
|
36
|
+
return Math.max(0, Math.min(255, Math.round(color + factor * (255 - color))));
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
var darken = function darken(rgb) {
|
|
40
|
+
var factor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
41
|
+
return rgb.map(function (color) {
|
|
42
|
+
return Math.max(0, Math.min(255, Math.round(color * (1 - factor))));
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
var palette = function palette() {
|
|
46
|
+
var hexColor = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '#3978c5';
|
|
47
|
+
if (!HEXCOLOR_REGEX.test(hexColor)) return;
|
|
48
|
+
var rgbColor = hexToRgb(hexColor);
|
|
49
|
+
return {
|
|
50
|
+
dark: rgbToHex(darken(rgbColor, 0.4)),
|
|
51
|
+
base: hexColor,
|
|
52
|
+
light: rgbToHex(lighten(rgbColor, 0.4)),
|
|
53
|
+
border: rgbToHex(lighten(rgbColor, 0.6)),
|
|
54
|
+
background: rgbToHex(lighten(rgbColor, 0.9))
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
exports.palette = palette;
|
|
58
|
+
//# sourceMappingURL=palette.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palette.js","names":["HEXCOLOR_REGEX","hexToRgb","hex","bigint","parseInt","replace","r","g","b","rgbToHex","toString","slice","toUpperCase","lighten","rgb","factor","map","color","Math","max","min","round","darken","palette","hexColor","test","rgbColor","dark","base","light","border","background"],"sources":["../../../src/theme/helpers/palette.js"],"sourcesContent":["const HEXCOLOR_REGEX = /^#([0-9A-F]{3}){1,2}$/i;\n\n// -- parsers\nconst hexToRgb = (hex) => {\n const bigint = parseInt(hex.replace(/^#/, ''), 16);\n\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n\n return [r, g, b];\n};\n\nconst rgbToHex = ([r, g, b] = []) => {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1).toUpperCase();\n};\n\n// -- color modifiers\nconst lighten = (rgb, factor = 0) => {\n return rgb.map((color) => Math.max(0, Math.min(255, Math.round(color + factor * (255 - color)))));\n};\n\nconst darken = (rgb, factor = 0) => {\n return rgb.map((color) => Math.max(0, Math.min(255, Math.round(color * (1 - factor)))));\n};\n\nexport const palette = (hexColor = '#3978c5') => {\n if (!HEXCOLOR_REGEX.test(hexColor)) return;\n\n const rgbColor = hexToRgb(hexColor);\n\n return {\n dark: rgbToHex(darken(rgbColor, 0.4)),\n base: hexColor,\n light: rgbToHex(lighten(rgbColor, 0.4)),\n border: rgbToHex(lighten(rgbColor, 0.6)),\n background: rgbToHex(lighten(rgbColor, 0.9)),\n };\n};\n"],"mappings":";;;;;;;;;;;;AAAA,IAAMA,cAAc,GAAG,wBAAwB;;AAE/C;AACA,IAAMC,QAAQ,GAAG,SAAXA,QAAQ,CAAIC,GAAG,EAAK;EACxB,IAAMC,MAAM,GAAGC,QAAQ,CAACF,GAAG,CAACG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;EAElD,IAAMC,CAAC,GAAIH,MAAM,IAAI,EAAE,GAAI,GAAG;EAC9B,IAAMI,CAAC,GAAIJ,MAAM,IAAI,CAAC,GAAI,GAAG;EAC7B,IAAMK,CAAC,GAAGL,MAAM,GAAG,GAAG;EAEtB,OAAO,CAACG,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;AAClB,CAAC;AAED,IAAMC,QAAQ,GAAG,SAAXA,QAAQ,GAAuB;EAAA,+EAAP,EAAE;IAAA;IAAbH,CAAC;IAAEC,CAAC;IAAEC,CAAC;EACxB,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAKF,CAAC,IAAI,EAAE,CAAC,IAAIC,CAAC,IAAI,CAAC,CAAC,GAAGC,CAAC,EAAEE,QAAQ,CAAC,EAAE,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE;AACzF,CAAC;;AAED;AACA,IAAMC,OAAO,GAAG,SAAVA,OAAO,CAAIC,GAAG,EAAiB;EAAA,IAAfC,MAAM,uEAAG,CAAC;EAC9B,OAAOD,GAAG,CAACE,GAAG,CAAC,UAACC,KAAK;IAAA,OAAKC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,GAAG,EAAEF,IAAI,CAACG,KAAK,CAACJ,KAAK,GAAGF,MAAM,IAAI,GAAG,GAAGE,KAAK,CAAC,CAAC,CAAC,CAAC;EAAA,EAAC;AACnG,CAAC;AAED,IAAMK,MAAM,GAAG,SAATA,MAAM,CAAIR,GAAG,EAAiB;EAAA,IAAfC,MAAM,uEAAG,CAAC;EAC7B,OAAOD,GAAG,CAACE,GAAG,CAAC,UAACC,KAAK;IAAA,OAAKC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,GAAG,EAAEF,IAAI,CAACG,KAAK,CAACJ,KAAK,IAAI,CAAC,GAAGF,MAAM,CAAC,CAAC,CAAC,CAAC;EAAA,EAAC;AACzF,CAAC;AAEM,IAAMQ,OAAO,GAAG,SAAVA,OAAO,GAA6B;EAAA,IAAzBC,QAAQ,uEAAG,SAAS;EAC1C,IAAI,CAACxB,cAAc,CAACyB,IAAI,CAACD,QAAQ,CAAC,EAAE;EAEpC,IAAME,QAAQ,GAAGzB,QAAQ,CAACuB,QAAQ,CAAC;EAEnC,OAAO;IACLG,IAAI,EAAElB,QAAQ,CAACa,MAAM,CAACI,QAAQ,EAAE,GAAG,CAAC,CAAC;IACrCE,IAAI,EAAEJ,QAAQ;IACdK,KAAK,EAAEpB,QAAQ,CAACI,OAAO,CAACa,QAAQ,EAAE,GAAG,CAAC,CAAC;IACvCI,MAAM,EAAErB,QAAQ,CAACI,OAAO,CAACa,QAAQ,EAAE,GAAG,CAAC,CAAC;IACxCK,UAAU,EAAEtB,QAAQ,CAACI,OAAO,CAACa,QAAQ,EAAE,GAAG,CAAC;EAC7C,CAAC;AACH,CAAC;AAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.DOMAIN = exports.DIRECTION_TYPE = exports.DIRECTION = exports.DEBOUNCE_TIMEOUT_CACHE = exports.COLORS = void 0;
|
|
7
7
|
var _DIRECTION;
|
|
8
8
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
9
9
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -30,6 +30,4 @@ var DIRECTION = (_DIRECTION = {}, _defineProperty(_DIRECTION, DIRECTION_TYPE.LEF
|
|
|
30
30
|
exports.DIRECTION = DIRECTION;
|
|
31
31
|
var DOMAIN = '--mirai-ui-';
|
|
32
32
|
exports.DOMAIN = DOMAIN;
|
|
33
|
-
var MAGNITUDES = [400, 300, 200];
|
|
34
|
-
exports.MAGNITUDES = MAGNITUDES;
|
|
35
33
|
//# sourceMappingURL=theme.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.constants.js","names":["COLORS","DEBOUNCE_TIMEOUT_CACHE","DIRECTION_TYPE","LEFT","RIGHT","DIRECTION","DOMAIN"
|
|
1
|
+
{"version":3,"file":"theme.constants.js","names":["COLORS","DEBOUNCE_TIMEOUT_CACHE","DIRECTION_TYPE","LEFT","RIGHT","DIRECTION","DOMAIN"],"sources":["../../src/theme/theme.constants.js"],"sourcesContent":["const COLORS = ['accent'];\n\nconst DEBOUNCE_TIMEOUT_CACHE = 2000;\n\nconst DIRECTION_TYPE = {\n LEFT: 0,\n RIGHT: 1,\n};\nconst DIRECTION = {\n [DIRECTION_TYPE.LEFT]: {\n 'text-align': 'left',\n 'text-direction': 'ltr',\n 'row-direction': 'row',\n },\n [DIRECTION_TYPE.RIGHT]: {\n 'text-align': 'right',\n 'text-direction': 'rtl',\n 'row-direction': 'row-reverse',\n },\n};\nconst DOMAIN = '--mirai-ui-';\n\nexport { COLORS, DEBOUNCE_TIMEOUT_CACHE, DIRECTION, DIRECTION_TYPE, DOMAIN };\n"],"mappings":";;;;;;;;;;;AAAA,IAAMA,MAAM,GAAG,CAAC,QAAQ,CAAC;AAAC;AAE1B,IAAMC,sBAAsB,GAAG,IAAI;AAAC;AAEpC,IAAMC,cAAc,GAAG;EACrBC,IAAI,EAAE,CAAC;EACPC,KAAK,EAAE;AACT,CAAC;AAAC;AACF,IAAMC,SAAS,iDACZH,cAAc,CAACC,IAAI,EAAG;EACrB,YAAY,EAAE,MAAM;EACpB,gBAAgB,EAAE,KAAK;EACvB,eAAe,EAAE;AACnB,CAAC,+BACAD,cAAc,CAACE,KAAK,EAAG;EACtB,YAAY,EAAE,OAAO;EACrB,gBAAgB,EAAE,KAAK;EACvB,eAAe,EAAE;AACnB,CAAC,cACF;AAAC;AACF,IAAME,MAAM,GAAG,aAAa;AAAC"}
|
package/build/theme/theme.js
CHANGED
|
@@ -71,20 +71,27 @@ var Theme = {
|
|
|
71
71
|
style = _document$querySelect.style;
|
|
72
72
|
style.setProperty("".concat(domain).concat(variable), value);
|
|
73
73
|
Theme.clearCache();
|
|
74
|
-
|
|
75
|
-
// ! TODO: Should revisit this "algo"
|
|
76
|
-
// Theme.shadeColors();
|
|
77
74
|
},
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
75
|
+
generatePalette: function generatePalette(variable, value) {
|
|
76
|
+
var _ref4 = (0, _helpers.palette)(value) || {},
|
|
77
|
+
dark = _ref4.dark,
|
|
78
|
+
base = _ref4.base,
|
|
79
|
+
light = _ref4.light,
|
|
80
|
+
border = _ref4.border,
|
|
81
|
+
background = _ref4.background;
|
|
82
|
+
Object.entries({
|
|
83
|
+
dark: dark,
|
|
84
|
+
base: base,
|
|
85
|
+
light: light,
|
|
86
|
+
border: border,
|
|
87
|
+
background: background
|
|
88
|
+
}).forEach(function (_ref5) {
|
|
89
|
+
var _ref6 = _slicedToArray(_ref5, 2),
|
|
90
|
+
key = _ref6[0],
|
|
91
|
+
value = _ref6[1];
|
|
92
|
+
Theme.setVariable("".concat(variable, "-").concat(key), value);
|
|
87
93
|
});
|
|
94
|
+
Theme.clearCache();
|
|
88
95
|
},
|
|
89
96
|
getDirection: function getDirection() {
|
|
90
97
|
var _Theme$get = Theme.get(),
|
|
@@ -95,10 +102,10 @@ var Theme = {
|
|
|
95
102
|
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _theme.DIRECTION_TYPE.LEFT;
|
|
96
103
|
if (!Object.values(_theme.DIRECTION_TYPE).includes(direction)) return;
|
|
97
104
|
var variables = _theme.DIRECTION[direction] || {};
|
|
98
|
-
Object.entries(variables).map(function (
|
|
99
|
-
var
|
|
100
|
-
key =
|
|
101
|
-
value =
|
|
105
|
+
Object.entries(variables).map(function (_ref7) {
|
|
106
|
+
var _ref8 = _slicedToArray(_ref7, 2),
|
|
107
|
+
key = _ref8[0],
|
|
108
|
+
value = _ref8[1];
|
|
102
109
|
return Theme.setVariable(key, value);
|
|
103
110
|
});
|
|
104
111
|
return direction;
|
package/build/theme/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","names":["Theme","get","domain","DOMAIN","window","Mirai","themeCache","style","getComputedStyle","document","querySelector","variables","keys","Array","from","styleSheets","filter","stylesheet","href","startsWith","location","origin","cssRules","reduce","value","selectorText","name","forEach","key","camelcase","replace","getPropertyValue","trim","setTimeout","clearCache","DEBOUNCE_TIMEOUT_CACHE","setVariable","variable","setProperty","
|
|
1
|
+
{"version":3,"file":"theme.js","names":["Theme","get","domain","DOMAIN","window","Mirai","themeCache","style","getComputedStyle","document","querySelector","variables","keys","Array","from","styleSheets","filter","stylesheet","href","startsWith","location","origin","cssRules","reduce","value","selectorText","name","forEach","key","camelcase","replace","getPropertyValue","trim","setTimeout","clearCache","DEBOUNCE_TIMEOUT_CACHE","setVariable","variable","setProperty","generatePalette","palette","dark","base","light","border","background","Object","entries","getDirection","textDirection","DIRECTION","DIRECTION_TYPE","RIGHT","LEFT","setDirection","direction","values","includes","map","undefined"],"sources":["../../src/theme/theme.js"],"sourcesContent":["import { camelcase, palette } from './helpers';\nimport { DEBOUNCE_TIMEOUT_CACHE, DIRECTION, DIRECTION_TYPE, DOMAIN } from './theme.constants';\n\nexport const Theme = {\n get: (domain = DOMAIN) => {\n const { Mirai: { themeCache } = {} } = window || {};\n if (themeCache) return themeCache;\n\n const style = getComputedStyle(document.querySelector(':root'));\n const variables = {};\n\n const keys = Array.from(document.styleSheets)\n .filter((stylesheet) => {\n try {\n return (\n (stylesheet.href === null || stylesheet.href.startsWith(window.location.origin)) &&\n (stylesheet.cssRules ?? {})\n );\n } catch {\n return false;\n }\n })\n .reduce(\n (stylesheet, { cssRules } = {}) => [\n ...stylesheet,\n ...Array.from(cssRules).reduce(\n (value, { selectorText = '', style = [] } = {}) =>\n selectorText === ':root'\n ? [...value, ...Array.from(style).filter((name) => name.startsWith(domain))]\n : value,\n [],\n ),\n ],\n [],\n );\n\n keys.forEach((key) => (variables[camelcase(key.replace(domain, ''))] = style.getPropertyValue(key)?.trim()));\n\n window.Mirai = { ...window.Mirai, themeCache: variables };\n setTimeout(() => Theme.clearCache(), DEBOUNCE_TIMEOUT_CACHE);\n\n return variables;\n },\n\n setVariable: (variable, value, domain = DOMAIN) => {\n const { style } = document.querySelector(':root');\n\n style.setProperty(`${domain}${variable}`, value);\n Theme.clearCache();\n },\n\n generatePalette: (variable, value) => {\n const { dark, base, light, border, background } = palette(value) || {};\n\n Object.entries({ dark, base, light, border, background }).forEach(([key, value]) => {\n Theme.setVariable(`${variable}-${key}`, value);\n });\n Theme.clearCache();\n },\n\n getDirection: () => {\n const { textDirection } = Theme.get();\n\n return textDirection !== DIRECTION[DIRECTION_TYPE.RIGHT]['text-direction']\n ? DIRECTION_TYPE.LEFT\n : DIRECTION_TYPE.RIGHT;\n },\n\n setDirection: (direction = DIRECTION_TYPE.LEFT) => {\n if (!Object.values(DIRECTION_TYPE).includes(direction)) return;\n\n const variables = DIRECTION[direction] || {};\n Object.entries(variables).map(([key, value]) => Theme.setVariable(key, value));\n\n return direction;\n },\n\n clearCache: () => {\n if (!window?.Mirai) return;\n\n window.Mirai.themeCache = undefined;\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAA8F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEvF,IAAMA,KAAK,GAAG;EACnBC,GAAG,EAAE,eAAqB;IAAA,IAApBC,MAAM,uEAAGC,aAAM;IACnB,WAAuCC,MAAM,IAAI,CAAC,CAAC;MAAA,kBAA3CC,KAAK;IAAb,qCAAgC,CAAC,CAAC;IAAlC,IAAiBC,UAAU,cAAVA,UAAU;IAC3B,IAAIA,UAAU,EAAE,OAAOA,UAAU;IAEjC,IAAMC,KAAK,GAAGC,gBAAgB,CAACC,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/D,IAAMC,SAAS,GAAG,CAAC,CAAC;IAEpB,IAAMC,IAAI,GAAGC,KAAK,CAACC,IAAI,CAACL,QAAQ,CAACM,WAAW,CAAC,CAC1CC,MAAM,CAAC,UAACC,UAAU,EAAK;MACtB,IAAI;QAAA;QACF,OACE,CAACA,UAAU,CAACC,IAAI,KAAK,IAAI,IAAID,UAAU,CAACC,IAAI,CAACC,UAAU,CAACf,MAAM,CAACgB,QAAQ,CAACC,MAAM,CAAC,8BAC9EJ,UAAU,CAACK,QAAQ,uEAAI,CAAC,CAAC,CAAC;MAE/B,CAAC,CAAC,gBAAM;QACN,OAAO,KAAK;MACd;IACF,CAAC,CAAC,CACDC,MAAM,CACL,UAACN,UAAU;MAAA,gFAAiB,CAAC,CAAC;QAAfK,QAAQ,SAARA,QAAQ;MAAA,oCAClBL,UAAU,sBACVJ,KAAK,CAACC,IAAI,CAACQ,QAAQ,CAAC,CAACC,MAAM,CAC5B,UAACC,KAAK;QAAA,gFAAsC,CAAC,CAAC;UAAA,2BAApCC,YAAY;UAAZA,YAAY,mCAAG,EAAE;UAAA,oBAAElB,KAAK;UAALA,KAAK,4BAAG,EAAE;QAAA,OACrCkB,YAAY,KAAK,OAAO,gCAChBD,KAAK,sBAAKX,KAAK,CAACC,IAAI,CAACP,KAAK,CAAC,CAACS,MAAM,CAAC,UAACU,IAAI;UAAA,OAAKA,IAAI,CAACP,UAAU,CAACjB,MAAM,CAAC;QAAA,EAAC,KACzEsB,KAAK;MAAA,GACX,EAAE,CACH;IAAA,CACF,EACD,EAAE,CACH;IAEHZ,IAAI,CAACe,OAAO,CAAC,UAACC,GAAG;MAAA;MAAA,OAAMjB,SAAS,CAAC,IAAAkB,kBAAS,EAACD,GAAG,CAACE,OAAO,CAAC5B,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,4BAAGK,KAAK,CAACwB,gBAAgB,CAACH,GAAG,CAAC,0DAA3B,sBAA6BI,IAAI,EAAE;IAAA,CAAC,CAAC;IAE5G5B,MAAM,CAACC,KAAK,mCAAQD,MAAM,CAACC,KAAK;MAAEC,UAAU,EAAEK;IAAS,EAAE;IACzDsB,UAAU,CAAC;MAAA,OAAMjC,KAAK,CAACkC,UAAU,EAAE;IAAA,GAAEC,6BAAsB,CAAC;IAE5D,OAAOxB,SAAS;EAClB,CAAC;EAEDyB,WAAW,EAAE,qBAACC,QAAQ,EAAEb,KAAK,EAAsB;IAAA,IAApBtB,MAAM,uEAAGC,aAAM;IAC5C,4BAAkBM,QAAQ,CAACC,aAAa,CAAC,OAAO,CAAC;MAAzCH,KAAK,yBAALA,KAAK;IAEbA,KAAK,CAAC+B,WAAW,WAAIpC,MAAM,SAAGmC,QAAQ,GAAIb,KAAK,CAAC;IAChDxB,KAAK,CAACkC,UAAU,EAAE;EACpB,CAAC;EAEDK,eAAe,EAAE,yBAACF,QAAQ,EAAEb,KAAK,EAAK;IACpC,YAAkD,IAAAgB,gBAAO,EAAChB,KAAK,CAAC,IAAI,CAAC,CAAC;MAA9DiB,IAAI,SAAJA,IAAI;MAAEC,IAAI,SAAJA,IAAI;MAAEC,KAAK,SAALA,KAAK;MAAEC,MAAM,SAANA,MAAM;MAAEC,UAAU,SAAVA,UAAU;IAE7CC,MAAM,CAACC,OAAO,CAAC;MAAEN,IAAI,EAAJA,IAAI;MAAEC,IAAI,EAAJA,IAAI;MAAEC,KAAK,EAALA,KAAK;MAAEC,MAAM,EAANA,MAAM;MAAEC,UAAU,EAAVA;IAAW,CAAC,CAAC,CAAClB,OAAO,CAAC,iBAAkB;MAAA;QAAhBC,GAAG;QAAEJ,KAAK;MAC5ExB,KAAK,CAACoC,WAAW,WAAIC,QAAQ,cAAIT,GAAG,GAAIJ,KAAK,CAAC;IAChD,CAAC,CAAC;IACFxB,KAAK,CAACkC,UAAU,EAAE;EACpB,CAAC;EAEDc,YAAY,EAAE,wBAAM;IAClB,iBAA0BhD,KAAK,CAACC,GAAG,EAAE;MAA7BgD,aAAa,cAAbA,aAAa;IAErB,OAAOA,aAAa,KAAKC,gBAAS,CAACC,qBAAc,CAACC,KAAK,CAAC,CAAC,gBAAgB,CAAC,GACtED,qBAAc,CAACE,IAAI,GACnBF,qBAAc,CAACC,KAAK;EAC1B,CAAC;EAEDE,YAAY,EAAE,wBAAqC;IAAA,IAApCC,SAAS,uEAAGJ,qBAAc,CAACE,IAAI;IAC5C,IAAI,CAACP,MAAM,CAACU,MAAM,CAACL,qBAAc,CAAC,CAACM,QAAQ,CAACF,SAAS,CAAC,EAAE;IAExD,IAAM5C,SAAS,GAAGuC,gBAAS,CAACK,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5CT,MAAM,CAACC,OAAO,CAACpC,SAAS,CAAC,CAAC+C,GAAG,CAAC;MAAA;QAAE9B,GAAG;QAAEJ,KAAK;MAAA,OAAMxB,KAAK,CAACoC,WAAW,CAACR,GAAG,EAAEJ,KAAK,CAAC;IAAA,EAAC;IAE9E,OAAO+B,SAAS;EAClB,CAAC;EAEDrB,UAAU,EAAE,sBAAM;IAAA;IAChB,IAAI,aAAC9B,MAAM,oCAAN,QAAQC,KAAK,GAAE;IAEpBD,MAAM,CAACC,KAAK,CAACC,UAAU,GAAGqD,SAAS;EACrC;AACF,CAAC;AAAC"}
|
|
@@ -1,2 +1,85 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = exports.Story = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _ = require("..");
|
|
10
|
+
var _theme = require("./theme");
|
|
11
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
14
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
15
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
16
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
17
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
18
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
19
|
+
var _default = {
|
|
20
|
+
title: 'Hooks'
|
|
21
|
+
};
|
|
22
|
+
exports.default = _default;
|
|
23
|
+
var Story = function Story() {
|
|
24
|
+
var _useState = (0, _react.useState)(),
|
|
25
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
26
|
+
accent = _useState2[0],
|
|
27
|
+
setAccent = _useState2[1];
|
|
28
|
+
var _useState3 = (0, _react.useState)(),
|
|
29
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
30
|
+
setTimestamp = _useState4[1];
|
|
31
|
+
(0, _react.useEffect)(function () {
|
|
32
|
+
var _Theme$get = _theme.Theme.get(),
|
|
33
|
+
accent = _Theme$get.accent;
|
|
34
|
+
setAccent(accent);
|
|
35
|
+
}, []);
|
|
36
|
+
(0, _react.useEffect)(function () {
|
|
37
|
+
_theme.Theme.generatePalette('accent', accent);
|
|
38
|
+
setTimestamp(new Date().getTime());
|
|
39
|
+
}, [accent]);
|
|
40
|
+
var _Theme$get2 = _theme.Theme.get(),
|
|
41
|
+
dark = _Theme$get2.accentDark,
|
|
42
|
+
light = _Theme$get2.accentLight,
|
|
43
|
+
border = _Theme$get2.accentBorder,
|
|
44
|
+
background = _Theme$get2.accentBackground;
|
|
45
|
+
var palette = {
|
|
46
|
+
dark: dark,
|
|
47
|
+
accent: accent,
|
|
48
|
+
light: light,
|
|
49
|
+
border: border,
|
|
50
|
+
background: background
|
|
51
|
+
};
|
|
52
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_.View, null, /*#__PURE__*/_react.default.createElement(_.InputText, {
|
|
53
|
+
label: "Accent",
|
|
54
|
+
name: "accent",
|
|
55
|
+
value: accent,
|
|
56
|
+
onChange: setAccent
|
|
57
|
+
})), /*#__PURE__*/_react.default.createElement(_.View, {
|
|
58
|
+
row: true,
|
|
59
|
+
wide: true
|
|
60
|
+
}, Object.entries(palette).map(function (_ref) {
|
|
61
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
62
|
+
key = _ref2[0],
|
|
63
|
+
value = _ref2[1];
|
|
64
|
+
return /*#__PURE__*/_react.default.createElement(_.View, {
|
|
65
|
+
key: key,
|
|
66
|
+
row: true,
|
|
67
|
+
wide: true,
|
|
68
|
+
style: {
|
|
69
|
+
backgroundColor: !!value ? value : '#cccccc',
|
|
70
|
+
padding: '1rem'
|
|
71
|
+
}
|
|
72
|
+
}, /*#__PURE__*/_react.default.createElement(_.Text, {
|
|
73
|
+
align: "center",
|
|
74
|
+
tiny: true,
|
|
75
|
+
style: {
|
|
76
|
+
color: ['dark', 'accent'].includes(key) ? '#fff' : '#000'
|
|
77
|
+
}
|
|
78
|
+
}, key, " ", value));
|
|
79
|
+
})));
|
|
80
|
+
};
|
|
81
|
+
exports.Story = Story;
|
|
82
|
+
Story.storyName = 'Theme';
|
|
83
|
+
Story.args = {};
|
|
84
|
+
Story.argTypes = {};
|
|
2
85
|
//# sourceMappingURL=theme.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.stories.js","names":[],"sources":["../../src/theme/theme.stories.jsx"],"sourcesContent":[""],"mappings":""}
|
|
1
|
+
{"version":3,"file":"theme.stories.js","names":["title","Story","useState","accent","setAccent","setTimestamp","useEffect","Theme","get","generatePalette","Date","getTime","dark","accentDark","light","accentLight","border","accentBorder","background","accentBackground","palette","Object","entries","map","key","value","backgroundColor","padding","color","includes","storyName","args","argTypes"],"sources":["../../src/theme/theme.stories.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport { InputText, Text, View } from '..';\nimport { Theme } from './theme';\n\nexport default { title: 'Hooks' };\n\nexport const Story = () => {\n const [accent, setAccent] = useState();\n const [, setTimestamp] = useState();\n\n useEffect(() => {\n const { accent } = Theme.get();\n setAccent(accent);\n }, []);\n\n useEffect(() => {\n Theme.generatePalette('accent', accent);\n setTimestamp(new Date().getTime());\n }, [accent]);\n\n const { accentDark: dark, accentLight: light, accentBorder: border, accentBackground: background } = Theme.get();\n const palette = { dark, accent, light, border, background };\n\n return (\n <>\n <View>\n <InputText label=\"Accent\" name=\"accent\" value={accent} onChange={setAccent} />\n </View>\n\n <View row wide>\n {Object.entries(palette).map(([key, value]) => (\n <View key={key} row wide style={{ backgroundColor: !!value ? value : '#cccccc', padding: '1rem' }}>\n <Text align=\"center\" tiny style={{ color: ['dark', 'accent'].includes(key) ? '#fff' : '#000' }}>\n {key} {value}\n </Text>\n </View>\n ))}\n </View>\n </>\n );\n};\n\nStory.storyName = 'Theme';\n\nStory.args = {};\n\nStory.argTypes = {};\n"],"mappings":";;;;;;;AAAA;AAEA;AACA;AAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAEjB;EAAEA,KAAK,EAAE;AAAQ,CAAC;AAAA;AAE1B,IAAMC,KAAK,GAAG,SAARA,KAAK,GAAS;EACzB,gBAA4B,IAAAC,eAAQ,GAAE;IAAA;IAA/BC,MAAM;IAAEC,SAAS;EACxB,iBAAyB,IAAAF,eAAQ,GAAE;IAAA;IAA1BG,YAAY;EAErB,IAAAC,gBAAS,EAAC,YAAM;IACd,iBAAmBC,YAAK,CAACC,GAAG,EAAE;MAAtBL,MAAM,cAANA,MAAM;IACdC,SAAS,CAACD,MAAM,CAAC;EACnB,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAG,gBAAS,EAAC,YAAM;IACdC,YAAK,CAACE,eAAe,CAAC,QAAQ,EAAEN,MAAM,CAAC;IACvCE,YAAY,CAAC,IAAIK,IAAI,EAAE,CAACC,OAAO,EAAE,CAAC;EACpC,CAAC,EAAE,CAACR,MAAM,CAAC,CAAC;EAEZ,kBAAqGI,YAAK,CAACC,GAAG,EAAE;IAA5FI,IAAI,eAAhBC,UAAU;IAAqBC,KAAK,eAAlBC,WAAW;IAAuBC,MAAM,eAApBC,YAAY;IAA4BC,UAAU,eAA5BC,gBAAgB;EACpF,IAAMC,OAAO,GAAG;IAAER,IAAI,EAAJA,IAAI;IAAET,MAAM,EAANA,MAAM;IAAEW,KAAK,EAALA,KAAK;IAAEE,MAAM,EAANA,MAAM;IAAEE,UAAU,EAAVA;EAAW,CAAC;EAE3D,oBACE,yEACE,6BAAC,MAAI,qBACH,6BAAC,WAAS;IAAC,KAAK,EAAC,QAAQ;IAAC,IAAI,EAAC,QAAQ;IAAC,KAAK,EAAEf,MAAO;IAAC,QAAQ,EAAEC;EAAU,EAAG,CACzE,eAEP,6BAAC,MAAI;IAAC,GAAG;IAAC,IAAI;EAAA,GACXiB,MAAM,CAACC,OAAO,CAACF,OAAO,CAAC,CAACG,GAAG,CAAC;IAAA;MAAEC,GAAG;MAAEC,KAAK;IAAA,oBACvC,6BAAC,MAAI;MAAC,GAAG,EAAED,GAAI;MAAC,GAAG;MAAC,IAAI;MAAC,KAAK,EAAE;QAAEE,eAAe,EAAE,CAAC,CAACD,KAAK,GAAGA,KAAK,GAAG,SAAS;QAAEE,OAAO,EAAE;MAAO;IAAE,gBAChG,6BAAC,MAAI;MAAC,KAAK,EAAC,QAAQ;MAAC,IAAI;MAAC,KAAK,EAAE;QAAEC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAACC,QAAQ,CAACL,GAAG,CAAC,GAAG,MAAM,GAAG;MAAO;IAAE,GAC5FA,GAAG,OAAGC,KAAK,CACP,CACF;EAAA,CACR,CAAC,CACG,CACN;AAEP,CAAC;AAAC;AAEFxB,KAAK,CAAC6B,SAAS,GAAG,OAAO;AAEzB7B,KAAK,CAAC8B,IAAI,GAAG,CAAC,CAAC;AAEf9B,KAAK,CAAC+B,QAAQ,GAAG,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.colorShade = void 0;
|
|
7
|
-
var R = 0;
|
|
8
|
-
var G = 8;
|
|
9
|
-
var B = 16;
|
|
10
|
-
var SCALE = {
|
|
11
|
-
400: 40,
|
|
12
|
-
300: 80,
|
|
13
|
-
200: 180
|
|
14
|
-
};
|
|
15
|
-
var colorShade = function colorShade() {
|
|
16
|
-
var hexColor = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '#000000';
|
|
17
|
-
var magnitude = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
18
|
-
if (!hexColor.charAt(0) === '#' || hexColor.length !== 7) return hexColor;
|
|
19
|
-
var decimalColor = parseInt(hexColor.slice(1), 16);
|
|
20
|
-
var range = function range(value) {
|
|
21
|
-
return value < 0 ? 0 : value > 255 ? 255 : value;
|
|
22
|
-
};
|
|
23
|
-
return '#' + [R, G, B].map(function (item) {
|
|
24
|
-
return range((decimalColor >> item & 0xff) + (SCALE[magnitude] || 0)) << item;
|
|
25
|
-
}).reduce(function (previous, current) {
|
|
26
|
-
return previous + current;
|
|
27
|
-
}, 0).toString(16).padStart(6, '0');
|
|
28
|
-
};
|
|
29
|
-
exports.colorShade = colorShade;
|
|
30
|
-
//# sourceMappingURL=colorShade.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colorShade.js","names":["R","G","B","SCALE","colorShade","hexColor","magnitude","charAt","length","decimalColor","parseInt","slice","range","value","map","item","reduce","previous","current","toString","padStart"],"sources":["../../../src/theme/helpers/colorShade.js"],"sourcesContent":["const R = 0;\nconst G = 8;\nconst B = 16;\n\nconst SCALE = {\n 400: 40,\n 300: 80,\n 200: 180,\n};\n\nexport const colorShade = (hexColor = '#000000', magnitude = 0) => {\n if (!hexColor.charAt(0) === '#' || hexColor.length !== 7) return hexColor;\n\n const decimalColor = parseInt(hexColor.slice(1), 16);\n const range = (value) => (value < 0 ? 0 : value > 255 ? 255 : value);\n\n return (\n '#' +\n [R, G, B]\n .map((item) => range(((decimalColor >> item) & 0xff) + (SCALE[magnitude] || 0)) << item)\n .reduce((previous, current) => previous + current, 0)\n .toString(16)\n .padStart(6, '0')\n );\n};\n"],"mappings":";;;;;;AAAA,IAAMA,CAAC,GAAG,CAAC;AACX,IAAMC,CAAC,GAAG,CAAC;AACX,IAAMC,CAAC,GAAG,EAAE;AAEZ,IAAMC,KAAK,GAAG;EACZ,GAAG,EAAE,EAAE;EACP,GAAG,EAAE,EAAE;EACP,GAAG,EAAE;AACP,CAAC;AAEM,IAAMC,UAAU,GAAG,SAAbA,UAAU,GAA4C;EAAA,IAAxCC,QAAQ,uEAAG,SAAS;EAAA,IAAEC,SAAS,uEAAG,CAAC;EAC5D,IAAI,CAACD,QAAQ,CAACE,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIF,QAAQ,CAACG,MAAM,KAAK,CAAC,EAAE,OAAOH,QAAQ;EAEzE,IAAMI,YAAY,GAAGC,QAAQ,CAACL,QAAQ,CAACM,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EACpD,IAAMC,KAAK,GAAG,SAARA,KAAK,CAAIC,KAAK;IAAA,OAAMA,KAAK,GAAG,CAAC,GAAG,CAAC,GAAGA,KAAK,GAAG,GAAG,GAAG,GAAG,GAAGA,KAAK;EAAA,CAAC;EAEpE,OACE,GAAG,GACH,CAACb,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC,CACNY,GAAG,CAAC,UAACC,IAAI;IAAA,OAAKH,KAAK,CAAC,CAAEH,YAAY,IAAIM,IAAI,GAAI,IAAI,KAAKZ,KAAK,CAACG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAIS,IAAI;EAAA,EAAC,CACvFC,MAAM,CAAC,UAACC,QAAQ,EAAEC,OAAO;IAAA,OAAKD,QAAQ,GAAGC,OAAO;EAAA,GAAE,CAAC,CAAC,CACpDC,QAAQ,CAAC,EAAE,CAAC,CACZC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAEvB,CAAC;AAAC"}
|