@thednp/color-picker 2.0.3 → 2.0.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"color-picker.mjs","sources":["../../node_modules/.pnpm/@thednp+shorty@2.0.9/node_modules/@thednp/shorty/dist/shorty.mjs","../../node_modules/.pnpm/@thednp+color@1.0.13/node_modules/@thednp/color/dist/index.mjs","../../src/ts/colorPalette.ts","../../src/ts/util/colorPickerLabels.ts","../../src/ts/util/colorNames.ts","../../src/ts/util/isValidJSON.ts","../../src/ts/util/vHidden.ts","../../src/ts/util/getColorForm.ts","../../src/ts/util/getColorControls.ts","../../src/ts/util/getColorMenu.ts","../../src/ts/util/setMarkup.ts","../../src/ts/index.ts"],"sourcesContent":["const Ne = \"2.0.9\", Ce = \"aria-checked\", Te = \"aria-description\", Me = \"aria-describedby\", De = \"aria-expanded\", Le = \"aria-haspopup\", $ = \"aria-hidden\", Oe = \"aria-label\", xe = \"aria-labelledby\", ze = \"aria-modal\", Ie = \"aria-pressed\", Pe = \"aria-selected\", Fe = \"aria-valuemin\", Be = \"aria-valuemax\", Ve = \"aria-valuenow\", He = \"aria-valuetext\", J = \"abort\", X = \"beforeunload\", Y = \"blur\", tt = \"change\", et = \"contextmenu\", H = \"DOMContentLoaded\", nt = \"DOMMouseScroll\", ot = \"error\", st = \"focus\", rt = \"focusin\", ct = \"focusout\", at = \"gesturechange\", it = \"gestureend\", ut = \"gesturestart\", lt = \"keydown\", dt = \"keypress\", ft = \"keyup\", pt = \"load\", gt = \"click\", mt = \"dblclick\", vt = \"mousedown\", bt = \"mouseup\", Et = \"hover\", ht = \"mouseenter\", yt = \"mouseleave\", wt = \"mousein\", At = \"mouseout\", St = \"mouseover\", kt = \"mousemove\", Nt = \"mousewheel\", Ct = \"move\", Tt = \"orientationchange\", Mt = \"pointercancel\", Dt = \"pointerdown\", Lt = \"pointerleave\", Ot = \"pointermove\", xt = \"pointerup\", zt = \"readystatechange\", It = \"reset\", Pt = \"resize\", Ft = \"select\", Bt = \"selectend\", Vt = \"selectstart\", Ht = \"scroll\", Ut = \"submit\", Wt = \"touchstart\", Rt = \"touchmove\", Qt = \"touchcancel\", jt = \"touchend\", Kt = \"unload\", Ue = {\n DOMContentLoaded: H,\n DOMMouseScroll: nt,\n abort: J,\n beforeunload: X,\n blur: Y,\n change: tt,\n click: gt,\n contextmenu: et,\n dblclick: mt,\n error: ot,\n focus: st,\n focusin: rt,\n focusout: ct,\n gesturechange: at,\n gestureend: it,\n gesturestart: ut,\n hover: Et,\n keydown: lt,\n keypress: dt,\n keyup: ft,\n load: pt,\n mousedown: vt,\n mousemove: kt,\n mousein: wt,\n mouseout: At,\n mouseenter: ht,\n mouseleave: yt,\n mouseover: St,\n mouseup: bt,\n mousewheel: Nt,\n move: Ct,\n orientationchange: Tt,\n pointercancel: Mt,\n pointerdown: Dt,\n pointerleave: Lt,\n pointermove: Ot,\n pointerup: xt,\n readystatechange: zt,\n reset: It,\n resize: Pt,\n scroll: Ht,\n select: Ft,\n selectend: Bt,\n selectstart: Vt,\n submit: Ut,\n touchcancel: Qt,\n touchend: jt,\n touchmove: Rt,\n touchstart: Wt,\n unload: Kt\n}, We = \"drag\", Re = \"dragstart\", Qe = \"dragenter\", je = \"dragleave\", Ke = \"dragover\", qe = \"dragend\", Ge = \"loadstart\", Ze = {\n start: \"mousedown\",\n end: \"mouseup\",\n move: \"mousemove\",\n cancel: \"mouseleave\"\n}, _e = { down: \"mousedown\", up: \"mouseup\" }, $e = \"onmouseleave\" in document ? [\"mouseenter\", \"mouseleave\"] : [\"mouseover\", \"mouseout\"], Je = {\n start: \"touchstart\",\n end: \"touchend\",\n move: \"touchmove\",\n cancel: \"touchcancel\"\n}, Xe = { in: \"focusin\", out: \"focusout\" }, qt = 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"]', Ye = {\n Backspace: \"Backspace\",\n Tab: \"Tab\",\n Enter: \"Enter\",\n Shift: \"Shift\",\n Control: \"Control\",\n Alt: \"Alt\",\n Pause: \"Pause\",\n CapsLock: \"CapsLock\",\n Escape: \"Escape\",\n Scape: \"Space\",\n ArrowLeft: \"ArrowLeft\",\n ArrowUp: \"ArrowUp\",\n ArrowRight: \"ArrowRight\",\n ArrowDown: \"ArrowDown\",\n Insert: \"Insert\",\n Delete: \"Delete\",\n Meta: \"Meta\",\n ContextMenu: \"ContextMenu\",\n ScrollLock: \"ScrollLock\"\n}, tn = \"Alt\", en = \"ArrowDown\", nn = \"ArrowUp\", on = \"ArrowLeft\", sn = \"ArrowRight\", rn = \"Backspace\", cn = \"CapsLock\", an = \"Control\", un = \"Delete\", ln = \"Enter\", dn = \"NumpadEnter\", fn = \"Escape\", pn = \"Insert\", gn = \"Meta\", mn = \"Pause\", vn = \"ScrollLock\", bn = \"Shift\", En = \"Space\", hn = \"Tab\", Gt = \"animationDuration\", Zt = \"animationDelay\", U = \"animationName\", T = \"animationend\", _t = \"transitionDuration\", $t = \"transitionDelay\", M = \"transitionend\", W = \"transitionProperty\", yn = \"addEventListener\", wn = \"removeEventListener\", An = {\n linear: \"linear\",\n easingSinusoidalIn: \"cubic-bezier(0.47,0,0.745,0.715)\",\n easingSinusoidalOut: \"cubic-bezier(0.39,0.575,0.565,1)\",\n easingSinusoidalInOut: \"cubic-bezier(0.445,0.05,0.55,0.95)\",\n easingQuadraticIn: \"cubic-bezier(0.550,0.085,0.680,0.530)\",\n easingQuadraticOut: \"cubic-bezier(0.250,0.460,0.450,0.940)\",\n easingQuadraticInOut: \"cubic-bezier(0.455,0.030,0.515,0.955)\",\n easingCubicIn: \"cubic-bezier(0.55,0.055,0.675,0.19)\",\n easingCubicOut: \"cubic-bezier(0.215,0.61,0.355,1)\",\n easingCubicInOut: \"cubic-bezier(0.645,0.045,0.355,1)\",\n easingQuarticIn: \"cubic-bezier(0.895,0.03,0.685,0.22)\",\n easingQuarticOut: \"cubic-bezier(0.165,0.84,0.44,1)\",\n easingQuarticInOut: \"cubic-bezier(0.77,0,0.175,1)\",\n easingQuinticIn: \"cubic-bezier(0.755,0.05,0.855,0.06)\",\n easingQuinticOut: \"cubic-bezier(0.23,1,0.32,1)\",\n easingQuinticInOut: \"cubic-bezier(0.86,0,0.07,1)\",\n easingExponentialIn: \"cubic-bezier(0.95,0.05,0.795,0.035)\",\n easingExponentialOut: \"cubic-bezier(0.19,1,0.22,1)\",\n easingExponentialInOut: \"cubic-bezier(1,0,0,1)\",\n easingCircularIn: \"cubic-bezier(0.6,0.04,0.98,0.335)\",\n easingCircularOut: \"cubic-bezier(0.075,0.82,0.165,1)\",\n easingCircularInOut: \"cubic-bezier(0.785,0.135,0.15,0.86)\",\n easingBackIn: \"cubic-bezier(0.6,-0.28,0.735,0.045)\",\n easingBackOut: \"cubic-bezier(0.175,0.885,0.32,1.275)\",\n easingBackInOut: \"cubic-bezier(0.68,-0.55,0.265,1.55)\"\n}, Sn = \"offsetHeight\", kn = \"offsetWidth\", Nn = \"scrollHeight\", Cn = \"scrollWidth\", Tn = \"tabindex\", Mn = navigator.userAgentData, { userAgent: Jt } = navigator, Dn = Jt, Ln = () => {\n const t = /iPhone|iPad|iPod|Android/i;\n return navigator?.userAgentData?.brands.some(\n (e) => t.test(e.brand)\n ) || t.test(navigator?.userAgent) || !1;\n}, On = () => {\n const t = /(iPhone|iPod|iPad)/;\n return navigator?.userAgentData?.brands.some(\n (e) => t.test(e.brand)\n ) || t.test(\n navigator?.userAgent\n ) || !1;\n}, xn = () => navigator?.userAgent?.includes(\"Firefox\") || !1, Xt = () => typeof CSS > \"u\" || !CSS.supports ? !1 : CSS.supports(\"-webkit-backdrop-filter\", \"none\"), zn = () => [\"webkitPerspective\", \"perspective\"].some((t) => t in document.head.style), Yt = () => {\n}, R = (t, e, n, o) => {\n const s = o || !1;\n t.addEventListener(\n e,\n n,\n s\n );\n}, Q = (t, e, n, o) => {\n const s = o || !1;\n t.removeEventListener(\n e,\n n,\n s\n );\n}, te = (t, e, n, o) => {\n const s = (r) => {\n (r.target === t || r.currentTarget === t) && (n.apply(t, [r]), Q(t, e, s, o));\n };\n R(t, e, s, o);\n}, In = () => {\n let t = !1;\n try {\n const e = Object.defineProperty({}, \"passive\", {\n get: () => (t = !0, t)\n });\n te(document, H, Yt, e);\n } catch {\n }\n return t;\n}, Pn = () => [\"webkitTransform\", \"transform\"].some((t) => t in document.head.style), Fn = () => \"ontouchstart\" in window || \"msMaxTouchPoints\" in navigator, Bn = () => [\"webkitAnimation\", \"animation\"].some((t) => t in document.head.style), Vn = () => [\"webkitTransition\", \"transition\"].some((t) => t in document.head.style), j = (t, e) => t.getAttribute(e), Hn = (t, e, n) => e.getAttributeNS(t, n), ee = (t, e) => t.hasAttribute(e), Un = (t, e, n) => e.hasAttributeNS(t, n), Wn = (t, e, n) => t.setAttribute(e, n), Rn = (t, e, n, o) => e.setAttributeNS(t, n, o), Qn = (t, e) => t.removeAttribute(e), jn = (t, e, n) => e.removeAttributeNS(t, n), Kn = (t, ...e) => {\n t.classList.add(...e);\n}, qn = (t, ...e) => {\n t.classList.remove(...e);\n}, Gn = (t, e) => t.classList.contains(e), { body: Zn } = document, { documentElement: _n } = document, { head: $n } = document, Jn = (t) => Array.from(t), v = (t) => t != null && typeof t == \"object\" || !1, u = (t) => v(t) && typeof t.nodeType == \"number\" && [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].some(\n (e) => t.nodeType === e\n) || !1, i = (t) => u(t) && t.nodeType === 1 || !1, E = /* @__PURE__ */ new Map(), L = {\n data: E,\n set: (t, e, n) => {\n if (!i(t)) return;\n E.has(e) || E.set(e, /* @__PURE__ */ new Map()), E.get(e).set(t, n);\n },\n getAllFor: (t) => E.get(t) || null,\n get: (t, e) => {\n if (!i(t) || !e) return null;\n const n = L.getAllFor(e);\n return t && n && n.get(t) || null;\n },\n remove: (t, e) => {\n const n = L.getAllFor(e);\n !n || !i(t) || (n.delete(t), n.size === 0 && E.delete(e));\n }\n}, Xn = (t, e) => L.get(t, e), Yn = (t) => t?.charAt(0).toUpperCase() + t?.slice(1), I = (t) => t?.trim().replace(\n /(?:^\\w|[A-Z]|\\b\\w)/g,\n (e, n) => n === 0 ? e.toLowerCase() : e.toUpperCase()\n).replace(/\\s+/g, \"\"), N = (t) => typeof t == \"string\" || !1, K = (t) => v(t) && t.constructor.name === \"Window\" || !1, q = (t) => u(t) && t.nodeType === 9 || !1, d = (t) => q(t) ? t : u(t) ? t.ownerDocument : K(t) ? t.document : globalThis.document, C = (t, ...e) => Object.assign(t, ...e), ne = (t) => {\n if (!t) return;\n if (N(t))\n return d().createElement(t);\n const { tagName: e } = t, n = ne(e);\n if (!n) return;\n const o = { ...t };\n return delete o.tagName, C(n, o);\n}, oe = (t, e) => {\n if (!t || !e) return;\n if (N(e))\n return d().createElementNS(t, e);\n const { tagName: n } = e, o = oe(t, n);\n if (!o) return;\n const s = { ...e };\n return delete s.tagName, C(o, s);\n}, G = (t, e) => t.dispatchEvent(e), to = (t, e, n) => n.indexOf(t) === e, f = (t, e, n) => {\n const o = getComputedStyle(t, n), s = e.replace(\"webkit\", \"Webkit\").replace(/([A-Z])/g, \"-$1\").toLowerCase();\n return o.getPropertyValue(s);\n}, se = (t) => {\n const e = f(t, U), n = f(t, Zt), o = n.includes(\"ms\") ? 1 : 1e3, s = e && e !== \"none\" ? parseFloat(n) * o : 0;\n return Number.isNaN(s) ? 0 : s;\n}, re = (t) => {\n const e = f(t, U), n = f(t, Gt), o = n.includes(\"ms\") ? 1 : 1e3, s = e && e !== \"none\" ? parseFloat(n) * o : 0;\n return Number.isNaN(s) ? 0 : s;\n}, eo = (t, e) => {\n let n = 0;\n const o = new Event(T), s = re(t), r = se(t);\n if (s) {\n const a = (l) => {\n l.target === t && (e.apply(t, [l]), t.removeEventListener(T, a), n = 1);\n };\n t.addEventListener(T, a), setTimeout(() => {\n n || G(t, o);\n }, s + r + 17);\n } else\n e.apply(t, [o]);\n}, ce = (t) => {\n const e = f(t, W), n = f(t, $t), o = n.includes(\"ms\") ? 1 : 1e3, s = e && e !== \"none\" ? parseFloat(n) * o : 0;\n return Number.isNaN(s) ? 0 : s;\n}, ae = (t) => {\n const e = f(t, W), n = f(t, _t), o = n.includes(\"ms\") ? 1 : 1e3, s = e && e !== \"none\" ? parseFloat(n) * o : 0;\n return Number.isNaN(s) ? 0 : s;\n}, no = (t, e) => {\n let n = 0;\n const o = new Event(M), s = ae(t), r = ce(t);\n if (s) {\n const a = (l) => {\n l.target === t && (e.apply(t, [l]), t.removeEventListener(M, a), n = 1);\n };\n t.addEventListener(M, a), setTimeout(() => {\n n || G(t, o);\n }, s + r + 17);\n } else\n e.apply(t, [o]);\n}, oo = (t) => Float32Array.from(Array.from(t)), so = (t) => Float64Array.from(Array.from(t)), ro = (t, e) => t.focus(e), co = (t) => t?.trim().replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/\\s+/g, \"-\").toLowerCase(), P = (t) => [\"true\", !0].includes(t) ? !0 : [\"false\", !1].includes(t) ? !1 : [\"null\", \"\", null, void 0].includes(t) ? null : t !== \"\" && !Number.isNaN(+t) ? +t : t, S = (t) => Object.entries(t), ao = (t, e, n, o) => {\n if (!i(t)) return e;\n const s = { ...n }, r = { ...t.dataset }, a = { ...e }, l = {}, p = \"title\";\n return S(r).forEach(([c, g]) => {\n const A = o && typeof c == \"string\" && c.includes(o) ? I(c.replace(o, \"\")) : I(c);\n l[A] = P(g);\n }), S(s).forEach(([c, g]) => {\n s[c] = P(g);\n }), S(e).forEach(([c, g]) => {\n c in s ? a[c] = s[c] : c in l ? a[c] = l[c] : a[c] = c === p ? j(t, p) : g;\n }), a;\n}, io = (t, e) => v(t) && (Object.hasOwn(t, e) || e in t), uo = (t) => Object.keys(t), lo = (t) => Object.values(t), fo = (t) => Object.fromEntries(t), po = (t, e) => {\n const n = new CustomEvent(t, {\n cancelable: !0,\n bubbles: !0\n });\n return v(e) && C(n, e), n;\n}, go = { passive: !0 }, mo = (t) => t.offsetHeight, vo = (t, e) => {\n S(e).forEach(([n, o]) => {\n if (o && N(n) && n.includes(\"--\"))\n t.style.setProperty(n, o);\n else {\n const s = {};\n s[n] = o, C(t.style, s);\n }\n });\n}, O = (t) => v(t) && t.constructor.name === \"Map\" || !1, ie = (t) => typeof t == \"number\" || !1, m = /* @__PURE__ */ new Map(), bo = {\n set: (t, e, n, o) => {\n i(t) && (o && o.length ? (m.has(t) || m.set(t, /* @__PURE__ */ new Map()), m.get(t).set(o, setTimeout(e, n))) : m.set(t, setTimeout(e, n)));\n },\n get: (t, e) => {\n if (!i(t)) return null;\n const n = m.get(t);\n return e && n && O(n) ? n.get(e) || null : ie(n) ? n : null;\n },\n clear: (t, e) => {\n if (!i(t)) return;\n const n = m.get(t);\n e && e.length && O(n) ? (clearTimeout(n.get(e)), n.delete(e), n.size === 0 && m.delete(t)) : (clearTimeout(n), m.delete(t));\n }\n}, Eo = (t) => t.toLowerCase(), ho = (t) => t.toUpperCase(), ue = (t, e) => (u(e) ? e : d()).querySelectorAll(t), x = /* @__PURE__ */ new Map();\nfunction le(t) {\n const { shiftKey: e, code: n } = t, o = d(this), s = [\n ...ue(qt, this)\n ].filter(\n (l) => !ee(l, \"disabled\") && !j(l, $)\n );\n if (!s.length) return;\n const r = s[0], a = s[s.length - 1];\n n === \"Tab\" && (e && o.activeElement === r ? (a.focus(), t.preventDefault()) : !e && o.activeElement === a && (r.focus(), t.preventDefault()));\n}\nconst de = (t) => x.has(t) === !0, yo = (t) => {\n const e = de(t);\n (e ? Q : R)(t, \"keydown\", le), e ? x.delete(t) : x.set(t, !0);\n}, b = (t) => i(t) && \"offsetWidth\" in t || !1, y = (t, e) => {\n const { width: n, height: o, top: s, right: r, bottom: a, left: l } = t.getBoundingClientRect();\n let p = 1, c = 1;\n if (e && b(t)) {\n const { offsetWidth: g, offsetHeight: A } = t;\n p = g > 0 ? Math.round(n) / g : 1, c = A > 0 ? Math.round(o) / A : 1;\n }\n return {\n width: n / p,\n height: o / c,\n top: s / c,\n right: r / p,\n bottom: a / c,\n left: l / p,\n x: l / p,\n y: s / c\n };\n}, wo = (t) => d(t).body, w = (t) => d(t).documentElement, Ao = (t) => d(t).head, fe = (t) => u(t) ? (t.nodeName || \"\").toLowerCase() : \"#document\", So = (t) => {\n const e = K(t), n = e ? t.scrollX : t.scrollLeft, o = e ? t.scrollY : t.scrollTop;\n return { x: n, y: o };\n}, pe = (t) => u(t) && t.constructor.name === \"ShadowRoot\" || !1, k = (t) => t.nodeName === \"HTML\" ? t : i(t) && t.assignedSlot || u(t) && t.parentNode || pe(t) && t.host || w(t), ge = (t) => t ? q(t) ? t.defaultView : u(t) ? t?.ownerDocument?.defaultView : t : window, me = (t) => u(t) && [\"TABLE\", \"TD\", \"TH\"].includes(t.nodeName) || !1, ve = (t, e) => t.matches(e), D = (t) => f(t, \"position\") === \"static\", be = (t) => f(t, \"position\") === \"fixed\", Z = (t) => [\":popover-open\", \":modal\"].some((e) => {\n try {\n return ve(t, e);\n } catch {\n return !1;\n }\n}), _ = (t) => {\n const e = Xt(), n = i(t) ? getComputedStyle(t) : t;\n return n.transform !== \"none\" || n.perspective !== \"none\" || (n.containerType ? n.containerType !== \"normal\" : !1) || !e && (n.backdropFilter ? n.backdropFilter !== \"none\" : !1) || !e && (n.filter ? n.filter !== \"none\" : !1) || [\"transform\", \"perspective\", \"filter\"].some(\n (o) => (n.willChange || \"\").includes(o)\n ) || [\"paint\", \"layout\", \"strict\", \"content\"].some(\n (o) => (n.contain || \"\").includes(o)\n );\n}, Ee = (t) => {\n let e = k(t);\n for (; i(e) && !z(e); ) {\n if (_(e))\n return e;\n if (Z(e))\n return null;\n e = k(e);\n }\n return null;\n}, z = (t) => [\"html\", \"body\", \"#document\"].includes(fe(t)), F = (t) => {\n if (!b(t) || be(t))\n return null;\n let e = t.offsetParent;\n return w(t) === e && (e = e.ownerDocument.body), e;\n}, ko = (t) => {\n const e = ge(t);\n if (!u(t) || Z(t))\n return e;\n if (!b(t)) {\n let o = k(t);\n for (; o && !z(o); ) {\n if (i(o) && !D(o))\n return o;\n o = k(o);\n }\n return e;\n }\n let n = F(t);\n for (; n && me(n) && D(n); )\n n = F(n);\n return n && z(n) && D(n) && !_(n) ? e : n || Ee(t) || e;\n}, he = (t) => {\n if (!b(t)) return !1;\n const { width: e, height: n } = y(t), { offsetWidth: o, offsetHeight: s } = t;\n return Math.round(e) !== o || Math.round(n) !== s;\n}, No = (t, e, n) => {\n const o = b(e), s = y(\n t,\n o && he(e)\n ), r = { x: 0, y: 0 };\n if (o) {\n const a = y(e, !0);\n r.x = a.x + e.clientLeft, r.y = a.y + e.clientTop;\n }\n return {\n x: s.left + n.x - r.x,\n y: s.top + n.y - r.y,\n width: s.width,\n height: s.height\n };\n};\nlet B = 0, V = 0;\nconst h = /* @__PURE__ */ new Map(), ye = (t, e) => {\n let n = e ? B : V;\n if (e) {\n const o = ye(t), s = h.get(o) || /* @__PURE__ */ new Map();\n h.has(o) || h.set(o, s), O(s) && !s.has(e) ? (s.set(e, n), B += 1) : n = s.get(e);\n } else {\n const o = t.id || t;\n h.has(o) ? n = h.get(o) : (h.set(o, n), V += 1);\n }\n return n;\n}, we = (t) => Array.isArray(t) || !1, Co = (t) => u(t) && t.nodeName === \"CANVAS\" || !1, Ae = (t) => b(t) && !!t.shadowRoot || !1, To = (t) => {\n if (!u(t)) return !1;\n const { top: e, bottom: n } = y(t), { clientHeight: o } = w(t);\n return e <= o && n >= 0;\n}, Mo = (t) => {\n if (!i(t)) return !1;\n const { clientWidth: e, clientHeight: n } = w(t), { top: o, left: s, bottom: r, right: a } = y(t, !0);\n return o >= 0 && s >= 0 && r <= n && a <= e;\n}, Do = (t) => we(t) && t.every(i) || !1, Lo = (t) => typeof t == \"function\" || !1, Oo = (t) => v(t) && t.constructor.name === \"HTMLCollection\" || !1, xo = (t) => b(t) && t.tagName === \"IMG\" || !1, zo = (t) => {\n if (!N(t)) return !1;\n try {\n JSON.parse(t);\n } catch {\n return !1;\n }\n return !0;\n}, Io = (t) => v(t) && t.constructor.name === \"WeakMap\" || !1, Po = (t) => u(t) && [\"SVG\", \"Image\", \"Video\", \"Canvas\"].some(\n (e) => t.constructor.name.includes(e)\n) || !1, Fo = (t) => v(t) && t.constructor.name === \"NodeList\" || !1, Bo = (t) => w(t).dir === \"rtl\", Vo = (t) => u(t) && t.constructor.name.includes(\"SVG\") || !1, Se = (t, e) => !t || !e ? null : t.closest(e) || Se(t.getRootNode().host, e) || null, Ho = (t, e) => i(t) ? t : (i(e) ? e : d()).querySelector(t), ke = (t, e) => (u(e) ? e : d()).getElementsByTagName(\n t\n), Uo = (t) => [...ke(\"*\", t)].filter(Ae), Wo = (t, e) => d(e).getElementById(t), Ro = (t, e) => (e && u(e) ? e : d()).getElementsByClassName(\n t\n);\nexport {\n Jn as ArrayFrom,\n H as DOMContentLoadedEvent,\n nt as DOMMouseScrollEvent,\n L as Data,\n oo as Float32ArrayFrom,\n so as Float64ArrayFrom,\n C as ObjectAssign,\n S as ObjectEntries,\n fo as ObjectFromEntries,\n io as ObjectHasOwn,\n uo as ObjectKeys,\n lo as ObjectValues,\n bo as Timer,\n J as abortEvent,\n Kn as addClass,\n yn as addEventListener,\n Zt as animationDelay,\n Gt as animationDuration,\n T as animationEndEvent,\n U as animationName,\n Ce as ariaChecked,\n Me as ariaDescribedBy,\n Te as ariaDescription,\n De as ariaExpanded,\n Le as ariaHasPopup,\n $ as ariaHidden,\n Oe as ariaLabel,\n xe as ariaLabelledBy,\n ze as ariaModal,\n Ie as ariaPressed,\n Pe as ariaSelected,\n Be as ariaValueMax,\n Fe as ariaValueMin,\n Ve as ariaValueNow,\n He as ariaValueText,\n X as beforeunloadEvent,\n An as bezierEasings,\n Y as blurEvent,\n I as camelCase,\n Yn as capitalize,\n tt as changeEvent,\n Se as closest,\n et as contextmenuEvent,\n po as createCustomEvent,\n ne as createElement,\n oe as createElementNS,\n G as dispatchEvent,\n to as distinct,\n Zn as documentBody,\n _n as documentElement,\n $n as documentHead,\n We as dragEvent,\n qe as dragendEvent,\n Qe as dragenterEvent,\n je as dragleaveEvent,\n Ke as dragoverEvent,\n Re as dragstartEvent,\n eo as emulateAnimationEnd,\n no as emulateTransitionEnd,\n ot as errorEvent,\n ro as focus,\n st as focusEvent,\n Xe as focusEvents,\n qt as focusableSelector,\n rt as focusinEvent,\n ct as focusoutEvent,\n at as gesturechangeEvent,\n it as gestureendEvent,\n ut as gesturestartEvent,\n j as getAttribute,\n Hn as getAttributeNS,\n y as getBoundingClientRect,\n Uo as getCustomElements,\n d as getDocument,\n wo as getDocumentBody,\n w as getDocumentElement,\n Ao as getDocumentHead,\n se as getElementAnimationDelay,\n re as getElementAnimationDuration,\n Wo as getElementById,\n f as getElementStyle,\n ce as getElementTransitionDelay,\n ae as getElementTransitionDuration,\n Ro as getElementsByClassName,\n ke as getElementsByTagName,\n Xn as getInstance,\n fe as getNodeName,\n So as getNodeScroll,\n ko as getOffsetParent,\n k as getParentNode,\n No as getRectRelativeToOffsetParent,\n ye as getUID,\n ge as getWindow,\n ee as hasAttribute,\n Un as hasAttributeNS,\n Gn as hasClass,\n de as hasFocusTrap,\n On as isApple,\n we as isArray,\n Co as isCanvas,\n Ae as isCustomElement,\n q as isDocument,\n i as isElement,\n To as isElementInScrollRange,\n Mo as isElementInViewport,\n Do as isElementsArray,\n xn as isFirefox,\n Lo as isFunction,\n Oo as isHTMLCollection,\n b as isHTMLElement,\n xo as isHTMLImageElement,\n zo as isJSON,\n O as isMap,\n Po as isMedia,\n Ln as isMobile,\n u as isNode,\n Fo as isNodeList,\n ie as isNumber,\n v as isObject,\n Bo as isRTL,\n Vo as isSVGElement,\n he as isScaledElement,\n pe as isShadowRoot,\n N as isString,\n me as isTableElement,\n Io as isWeakMap,\n Xt as isWebKit,\n K as isWindow,\n co as kebabCase,\n tn as keyAlt,\n en as keyArrowDown,\n on as keyArrowLeft,\n sn as keyArrowRight,\n nn as keyArrowUp,\n rn as keyBackspace,\n cn as keyCapsLock,\n an as keyControl,\n un as keyDelete,\n ln as keyEnter,\n fn as keyEscape,\n pn as keyInsert,\n gn as keyMeta,\n dn as keyNumpadEnter,\n mn as keyPause,\n vn as keyScrollLock,\n bn as keyShift,\n En as keySpace,\n hn as keyTab,\n Ye as keyboardEventKeys,\n lt as keydownEvent,\n dt as keypressEvent,\n ft as keyupEvent,\n pt as loadEvent,\n Ge as loadstartEvent,\n ve as matches,\n _e as mouseClickEvents,\n $e as mouseHoverEvents,\n Ze as mouseSwipeEvents,\n gt as mouseclickEvent,\n mt as mousedblclickEvent,\n vt as mousedownEvent,\n ht as mouseenterEvent,\n Et as mousehoverEvent,\n wt as mouseinEvent,\n yt as mouseleaveEvent,\n kt as mousemoveEvent,\n At as mouseoutEvent,\n St as mouseoverEvent,\n bt as mouseupEvent,\n Nt as mousewheelEvent,\n Ct as moveEvent,\n Ue as nativeEvents,\n Yt as noop,\n ao as normalizeOptions,\n P as normalizeValue,\n Q as off,\n Sn as offsetHeight,\n kn as offsetWidth,\n R as on,\n te as one,\n Tt as orientationchangeEvent,\n go as passiveHandler,\n Mt as pointercancelEvent,\n Dt as pointerdownEvent,\n Lt as pointerleaveEvent,\n Ot as pointermoveEvent,\n xt as pointerupEvent,\n Ho as querySelector,\n ue as querySelectorAll,\n zt as readystatechangeEvent,\n mo as reflow,\n Qn as removeAttribute,\n jn as removeAttributeNS,\n qn as removeClass,\n wn as removeEventListener,\n It as resetEvent,\n Pt as resizeEvent,\n Ht as scrollEvent,\n Nn as scrollHeight,\n Cn as scrollWidth,\n Ft as selectEvent,\n Bt as selectendEvent,\n Vt as selectstartEvent,\n Wn as setAttribute,\n Rn as setAttributeNS,\n vo as setElementStyle,\n Ut as submitEvent,\n zn as support3DTransform,\n Bn as supportAnimation,\n In as supportPassive,\n Fn as supportTouch,\n Pn as supportTransform,\n Vn as supportTransition,\n Tn as tabindex,\n Eo as toLowerCase,\n ho as toUpperCase,\n yo as toggleFocusTrap,\n Je as touchEvents,\n Qt as touchcancelEvent,\n jt as touchendEvent,\n Rt as touchmoveEvent,\n Wt as touchstartEvent,\n $t as transitionDelay,\n _t as transitionDuration,\n M as transitionEndEvent,\n W as transitionProperty,\n Kt as unloadEvent,\n Dn as userAgent,\n Mn as userAgentData,\n Ne as version\n};\n//# sourceMappingURL=shorty.mjs.map\n","const I = [\n \"transparent\",\n \"currentColor\",\n \"inherit\",\n \"revert\",\n \"initial\"\n], i = (o) => {\n const t = Math.floor(o);\n return o - t < 0.5 ? t : Math.round(o);\n}, T = [\n [\n \"aliceblue\",\n {\n r: 240,\n g: 248,\n b: 255\n }\n ],\n [\n \"antiquewhite\",\n {\n r: 250,\n g: 235,\n b: 215\n }\n ],\n [\n \"aqua\",\n {\n r: 0,\n g: 255,\n b: 255\n }\n ],\n [\n \"aquamarine\",\n {\n r: 127,\n g: 255,\n b: 212\n }\n ],\n [\n \"azure\",\n {\n r: 240,\n g: 255,\n b: 255\n }\n ],\n [\n \"beige\",\n {\n r: 245,\n g: 245,\n b: 220\n }\n ],\n [\n \"bisque\",\n {\n r: 255,\n g: 228,\n b: 196\n }\n ],\n [\n \"black\",\n {\n r: 0,\n g: 0,\n b: 0\n }\n ],\n [\n \"blanchedalmond\",\n {\n r: 255,\n g: 235,\n b: 205\n }\n ],\n [\n \"blue\",\n {\n r: 0,\n g: 0,\n b: 255\n }\n ],\n [\n \"blueviolet\",\n {\n r: 138,\n g: 43,\n b: 226\n }\n ],\n [\n \"brown\",\n {\n r: 165,\n g: 42,\n b: 42\n }\n ],\n [\n \"burlywood\",\n {\n r: 222,\n g: 184,\n b: 135\n }\n ],\n [\n \"cadetblue\",\n {\n r: 95,\n g: 158,\n b: 160\n }\n ],\n [\n \"chartreuse\",\n {\n r: 127,\n g: 255,\n b: 0\n }\n ],\n [\n \"chocolate\",\n {\n r: 210,\n g: 105,\n b: 30\n }\n ],\n [\n \"coral\",\n {\n r: 255,\n g: 127,\n b: 80\n }\n ],\n [\n \"cornflowerblue\",\n {\n r: 100,\n g: 149,\n b: 237\n }\n ],\n [\n \"cornsilk\",\n {\n r: 255,\n g: 248,\n b: 220\n }\n ],\n [\n \"crimson\",\n {\n r: 220,\n g: 20,\n b: 60\n }\n ],\n [\n \"cyan\",\n {\n r: 0,\n g: 255,\n b: 255\n }\n ],\n [\n \"darkblue\",\n {\n r: 0,\n g: 0,\n b: 139\n }\n ],\n [\n \"darkcyan\",\n {\n r: 0,\n g: 139,\n b: 139\n }\n ],\n [\n \"darkgoldenrod\",\n {\n r: 184,\n g: 134,\n b: 11\n }\n ],\n [\n \"darkgray\",\n {\n r: 169,\n g: 169,\n b: 169\n }\n ],\n [\n \"darkgreen\",\n {\n r: 0,\n g: 100,\n b: 0\n }\n ],\n [\n \"darkgrey\",\n {\n r: 169,\n g: 169,\n b: 169\n }\n ],\n [\n \"darkkhaki\",\n {\n r: 189,\n g: 183,\n b: 107\n }\n ],\n [\n \"darkmagenta\",\n {\n r: 139,\n g: 0,\n b: 139\n }\n ],\n [\n \"darkolivegreen\",\n {\n r: 85,\n g: 107,\n b: 47\n }\n ],\n [\n \"darkorange\",\n {\n r: 255,\n g: 140,\n b: 0\n }\n ],\n [\n \"darkorchid\",\n {\n r: 153,\n g: 50,\n b: 204\n }\n ],\n [\n \"darkred\",\n {\n r: 139,\n g: 0,\n b: 0\n }\n ],\n [\n \"darksalmon\",\n {\n r: 233,\n g: 150,\n b: 122\n }\n ],\n [\n \"darkseagreen\",\n {\n r: 143,\n g: 188,\n b: 143\n }\n ],\n [\n \"darkslateblue\",\n {\n r: 72,\n g: 61,\n b: 139\n }\n ],\n [\n \"darkslategray\",\n {\n r: 47,\n g: 79,\n b: 79\n }\n ],\n [\n \"darkslategrey\",\n {\n r: 47,\n g: 79,\n b: 79\n }\n ],\n [\n \"darkturquoise\",\n {\n r: 0,\n g: 206,\n b: 209\n }\n ],\n [\n \"darkviolet\",\n {\n r: 148,\n g: 0,\n b: 211\n }\n ],\n [\n \"deeppink\",\n {\n r: 255,\n g: 20,\n b: 147\n }\n ],\n [\n \"deepskyblue\",\n {\n r: 0,\n g: 191,\n b: 255\n }\n ],\n [\n \"dimgray\",\n {\n r: 105,\n g: 105,\n b: 105\n }\n ],\n [\n \"dimgrey\",\n {\n r: 105,\n g: 105,\n b: 105\n }\n ],\n [\n \"dodgerblue\",\n {\n r: 30,\n g: 144,\n b: 255\n }\n ],\n [\n \"firebrick\",\n {\n r: 178,\n g: 34,\n b: 34\n }\n ],\n [\n \"floralwhite\",\n {\n r: 255,\n g: 250,\n b: 240\n }\n ],\n [\n \"forestgreen\",\n {\n r: 34,\n g: 139,\n b: 34\n }\n ],\n [\n \"fuchsia\",\n {\n r: 255,\n g: 0,\n b: 255\n }\n ],\n [\n \"gainsboro\",\n {\n r: 220,\n g: 220,\n b: 220\n }\n ],\n [\n \"ghostwhite\",\n {\n r: 248,\n g: 248,\n b: 255\n }\n ],\n [\n \"goldenrod\",\n {\n r: 218,\n g: 165,\n b: 32\n }\n ],\n [\n \"gold\",\n {\n r: 255,\n g: 215,\n b: 0\n }\n ],\n [\n \"gray\",\n {\n r: 128,\n g: 128,\n b: 128\n }\n ],\n [\n \"green\",\n {\n r: 0,\n g: 128,\n b: 0\n }\n ],\n [\n \"greenyellow\",\n {\n r: 173,\n g: 255,\n b: 47\n }\n ],\n [\n \"grey\",\n {\n r: 128,\n g: 128,\n b: 128\n }\n ],\n [\n \"honeydew\",\n {\n r: 240,\n g: 255,\n b: 240\n }\n ],\n [\n \"hotpink\",\n {\n r: 255,\n g: 105,\n b: 180\n }\n ],\n [\n \"indianred\",\n {\n r: 205,\n g: 92,\n b: 92\n }\n ],\n [\n \"indigo\",\n {\n r: 75,\n g: 0,\n b: 130\n }\n ],\n [\n \"ivory\",\n {\n r: 255,\n g: 255,\n b: 240\n }\n ],\n [\n \"khaki\",\n {\n r: 240,\n g: 230,\n b: 140\n }\n ],\n [\n \"lavenderblush\",\n {\n r: 255,\n g: 240,\n b: 245\n }\n ],\n [\n \"lavender\",\n {\n r: 230,\n g: 230,\n b: 250\n }\n ],\n [\n \"lawngreen\",\n {\n r: 124,\n g: 252,\n b: 0\n }\n ],\n [\n \"lemonchiffon\",\n {\n r: 255,\n g: 250,\n b: 205\n }\n ],\n [\n \"lightblue\",\n {\n r: 173,\n g: 216,\n b: 230\n }\n ],\n [\n \"lightcoral\",\n {\n r: 240,\n g: 128,\n b: 128\n }\n ],\n [\n \"lightcyan\",\n {\n r: 224,\n g: 255,\n b: 255\n }\n ],\n [\n \"lightgoldenrodyellow\",\n {\n r: 250,\n g: 250,\n b: 210\n }\n ],\n [\n \"lightgray\",\n {\n r: 211,\n g: 211,\n b: 211\n }\n ],\n [\n \"lightgreen\",\n {\n r: 144,\n g: 238,\n b: 144\n }\n ],\n [\n \"lightgrey\",\n {\n r: 211,\n g: 211,\n b: 211\n }\n ],\n [\n \"lightpink\",\n {\n r: 255,\n g: 182,\n b: 193\n }\n ],\n [\n \"lightsalmon\",\n {\n r: 255,\n g: 160,\n b: 122\n }\n ],\n [\n \"lightseagreen\",\n {\n r: 32,\n g: 178,\n b: 170\n }\n ],\n [\n \"lightskyblue\",\n {\n r: 135,\n g: 206,\n b: 250\n }\n ],\n [\n \"lightslategray\",\n {\n r: 119,\n g: 136,\n b: 153\n }\n ],\n [\n \"lightslategrey\",\n {\n r: 119,\n g: 136,\n b: 153\n }\n ],\n [\n \"lightsteelblue\",\n {\n r: 176,\n g: 196,\n b: 222\n }\n ],\n [\n \"lightyellow\",\n {\n r: 255,\n g: 255,\n b: 224\n }\n ],\n [\n \"lime\",\n {\n r: 0,\n g: 255,\n b: 0\n }\n ],\n [\n \"limegreen\",\n {\n r: 50,\n g: 205,\n b: 50\n }\n ],\n [\n \"linen\",\n {\n r: 250,\n g: 240,\n b: 230\n }\n ],\n [\n \"magenta\",\n {\n r: 255,\n g: 0,\n b: 255\n }\n ],\n [\n \"maroon\",\n {\n r: 128,\n g: 0,\n b: 0\n }\n ],\n [\n \"mediumaquamarine\",\n {\n r: 102,\n g: 205,\n b: 170\n }\n ],\n [\n \"mediumblue\",\n {\n r: 0,\n g: 0,\n b: 205\n }\n ],\n [\n \"mediumorchid\",\n {\n r: 186,\n g: 85,\n b: 211\n }\n ],\n [\n \"mediumpurple\",\n {\n r: 147,\n g: 112,\n b: 219\n }\n ],\n [\n \"mediumseagreen\",\n {\n r: 60,\n g: 179,\n b: 113\n }\n ],\n [\n \"mediumslateblue\",\n {\n r: 123,\n g: 104,\n b: 238\n }\n ],\n [\n \"mediumspringgreen\",\n {\n r: 0,\n g: 250,\n b: 154\n }\n ],\n [\n \"mediumturquoise\",\n {\n r: 72,\n g: 209,\n b: 204\n }\n ],\n [\n \"mediumvioletred\",\n {\n r: 199,\n g: 21,\n b: 133\n }\n ],\n [\n \"midnightblue\",\n {\n r: 25,\n g: 25,\n b: 112\n }\n ],\n [\n \"mintcream\",\n {\n r: 245,\n g: 255,\n b: 250\n }\n ],\n [\n \"mistyrose\",\n {\n r: 255,\n g: 228,\n b: 225\n }\n ],\n [\n \"moccasin\",\n {\n r: 255,\n g: 228,\n b: 181\n }\n ],\n [\n \"navajowhite\",\n {\n r: 255,\n g: 222,\n b: 173\n }\n ],\n [\n \"navy\",\n {\n r: 0,\n g: 0,\n b: 128\n }\n ],\n [\n \"oldlace\",\n {\n r: 253,\n g: 245,\n b: 230\n }\n ],\n [\n \"olive\",\n {\n r: 128,\n g: 128,\n b: 0\n }\n ],\n [\n \"olivedrab\",\n {\n r: 107,\n g: 142,\n b: 35\n }\n ],\n [\n \"orange\",\n {\n r: 255,\n g: 165,\n b: 0\n }\n ],\n [\n \"orangered\",\n {\n r: 255,\n g: 69,\n b: 0\n }\n ],\n [\n \"orchid\",\n {\n r: 218,\n g: 112,\n b: 214\n }\n ],\n [\n \"palegoldenrod\",\n {\n r: 238,\n g: 232,\n b: 170\n }\n ],\n [\n \"palegreen\",\n {\n r: 152,\n g: 251,\n b: 152\n }\n ],\n [\n \"paleturquoise\",\n {\n r: 175,\n g: 238,\n b: 238\n }\n ],\n [\n \"palevioletred\",\n {\n r: 219,\n g: 112,\n b: 147\n }\n ],\n [\n \"papayawhip\",\n {\n r: 255,\n g: 239,\n b: 213\n }\n ],\n [\n \"peachpuff\",\n {\n r: 255,\n g: 218,\n b: 185\n }\n ],\n [\n \"peru\",\n {\n r: 205,\n g: 133,\n b: 63\n }\n ],\n [\n \"pink\",\n {\n r: 255,\n g: 192,\n b: 203\n }\n ],\n [\n \"plum\",\n {\n r: 221,\n g: 160,\n b: 221\n }\n ],\n [\n \"powderblue\",\n {\n r: 176,\n g: 224,\n b: 230\n }\n ],\n [\n \"purple\",\n {\n r: 128,\n g: 0,\n b: 128\n }\n ],\n [\n \"rebeccapurple\",\n {\n r: 102,\n g: 51,\n b: 153\n }\n ],\n [\n \"red\",\n {\n r: 255,\n g: 0,\n b: 0\n }\n ],\n [\n \"rosybrown\",\n {\n r: 188,\n g: 143,\n b: 143\n }\n ],\n [\n \"royalblue\",\n {\n r: 65,\n g: 105,\n b: 225\n }\n ],\n [\n \"saddlebrown\",\n {\n r: 139,\n g: 69,\n b: 19\n }\n ],\n [\n \"salmon\",\n {\n r: 250,\n g: 128,\n b: 114\n }\n ],\n [\n \"sandybrown\",\n {\n r: 244,\n g: 164,\n b: 96\n }\n ],\n [\n \"seagreen\",\n {\n r: 46,\n g: 139,\n b: 87\n }\n ],\n [\n \"seashell\",\n {\n r: 255,\n g: 245,\n b: 238\n }\n ],\n [\n \"sienna\",\n {\n r: 160,\n g: 82,\n b: 45\n }\n ],\n [\n \"silver\",\n {\n r: 192,\n g: 192,\n b: 192\n }\n ],\n [\n \"skyblue\",\n {\n r: 135,\n g: 206,\n b: 235\n }\n ],\n [\n \"slateblue\",\n {\n r: 106,\n g: 90,\n b: 205\n }\n ],\n [\n \"slategray\",\n {\n r: 112,\n g: 128,\n b: 144\n }\n ],\n [\n \"slategrey\",\n {\n r: 112,\n g: 128,\n b: 144\n }\n ],\n [\n \"snow\",\n {\n r: 255,\n g: 250,\n b: 250\n }\n ],\n [\n \"springgreen\",\n {\n r: 0,\n g: 255,\n b: 127\n }\n ],\n [\n \"steelblue\",\n {\n r: 70,\n g: 130,\n b: 180\n }\n ],\n [\n \"tan\",\n {\n r: 210,\n g: 180,\n b: 140\n }\n ],\n [\n \"teal\",\n {\n r: 0,\n g: 128,\n b: 128\n }\n ],\n [\n \"thistle\",\n {\n r: 216,\n g: 191,\n b: 216\n }\n ],\n [\n \"tomato\",\n {\n r: 255,\n g: 99,\n b: 71\n }\n ],\n [\n \"turquoise\",\n {\n r: 64,\n g: 224,\n b: 208\n }\n ],\n [\n \"violet\",\n {\n r: 238,\n g: 130,\n b: 238\n }\n ],\n [\n \"wheat\",\n {\n r: 245,\n g: 222,\n b: 179\n }\n ],\n [\n \"white\",\n {\n r: 255,\n g: 255,\n b: 255\n }\n ],\n [\n \"whitesmoke\",\n {\n r: 245,\n g: 245,\n b: 245\n }\n ],\n [\n \"yellow\",\n {\n r: 255,\n g: 255,\n b: 0\n }\n ],\n [\n \"yellowgreen\",\n {\n r: 154,\n g: 205,\n b: 50\n }\n ]\n], U = \"deg|rad|grad|turn\", D = \"[-\\\\+]?\\\\d+%?\", L = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\", V = `[-\\\\+]?\\\\d*\\\\.?\\\\d+(?:${U})?`, x = `(?:${L})|(?:${D})`, F = `(?:${x})|(?:${V}?)`, tr = \"(?:[\\\\s|\\\\(\\\\s|\\\\s\\\\(\\\\s]+)?\", er = \"(?:[\\\\s|\\\\)\\\\s]+)?\", P = \"(?:[,|\\\\s]+)\", sr = \"(?:[,|\\\\/\\\\s]*)?\", w = `${tr}(${F})${P}(${x})${P}(${x})${sr}(${x})?${er}`, f = {\n CSS_UNIT: new RegExp(F),\n ANGLES: U,\n CSS_ANGLE: V,\n CSS_INTEGER: D,\n CSS_NUMBER: L,\n CSS_UNIT2: F,\n PERMISSIVE_MATCH: w,\n hwb: new RegExp(`hwb${w}`),\n rgb: new RegExp(`rgb(?:a)?${w}`),\n hsl: new RegExp(`hsl(?:a)?${w}`),\n hsv: new RegExp(`hsv(?:a)?${w}`),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n}, Z = (o) => I.includes(o), y = (o, t) => o !== null && typeof o == \"object\" && Object.keys(t).every((r) => r in o), z = (o) => `${o}`.includes(\".\") && parseFloat(o) === 1, O = (o) => typeof o == \"string\" && o.includes(\"%\"), c = (o) => !!f.CSS_UNIT.exec(`${o}`), J = [\"rgb\", \"hex\", \"hsl\", \"hsv\", \"hwb\"], K = (o) => I.includes(o) || [\"#\", ...J].some((t) => o.includes(t)) ? !1 : T.some(([t]) => o === t), _ = 1e-6, nr = (o, t) => Math.abs(o * t - t) < _ ? 1 : o < _ ? 0 : o, u = (o, t) => {\n let r = o;\n return z(o) && (r = \"100%\"), O(r) ? Number.parseFloat(r) / 100 : (r = typeof r != \"number\" ? Number.parseFloat(r) : r, t === 360 ? r = (r < 0 ? r % t + t : r > 360 ? r % t : r) / t : (r = Math.min(t, Math.max(0, r)), r = r / t), nr(r, t));\n}, N = (o) => {\n let t = parseFloat(o);\n return (Number.isNaN(t) || t < 0 || t > 1) && (t = 1), t;\n}, A = (o) => Math.min(1, Math.max(0, o)), d = (o) => o.length === 1 ? `0${o}` : String(o), Q = (o) => {\n const [[, t]] = T.filter(([r]) => r === o.toLowerCase());\n return t;\n}, h = (o) => parseInt(o, 16), M = (o) => h(o) / 255, X = (o) => i(o * 255).toString(16), G = (o, t, r) => {\n const e = Math.max(o, t, r), s = Math.min(o, t, r);\n let n = 0, g = 0;\n const a = (e + s) / 2;\n if (e === s)\n g = 0, n = 0;\n else {\n const b = e - s;\n g = a > 0.5 ? b / (2 - e - s) : b / (e + s), e === o && (n = (t - r) / b + (t < r ? 6 : 0)), e === t && (n = (r - o) / b + 2), e === r && (n = (o - t) / b + 4), n /= 6;\n }\n return { h: n, s: g, l: a };\n}, v = (o, t, r) => {\n let e = r;\n return e < 0 && (e += 1), e > 1 && (e -= 1), e < 1 / 6 ? o + (t - o) * (6 * e) : e < 1 / 2 ? t : e < 2 / 3 ? o + (t - o) * (2 / 3 - e) * 6 : o;\n}, S = (o, t, r) => {\n let e = 0, s = 0, n = 0;\n if (t === 0)\n s = r, n = r, e = r;\n else {\n const g = r < 0.5 ? r * (1 + t) : r + t - r * t, a = 2 * r - g;\n e = v(a, g, o + 1 / 3), s = v(a, g, o), n = v(a, g, o - 1 / 3);\n }\n return { r: e, g: s, b: n };\n}, j = (o, t, r) => {\n let e = 0, s = 0;\n const n = Math.min(o, t, r), g = Math.max(o, t, r), a = 1 - g;\n if (g === n) return { h: 0, w: n, b: a };\n o === n ? (e = t - r, s = 3) : (e = t === n ? r - o : o - t, s = t === n ? 5 : 1);\n const b = (s - e / (g - n)) / 6;\n return {\n h: b === 1 ? 0 : b,\n w: n,\n b: a\n };\n}, Y = (o, t, r) => {\n if (t + r >= 1) {\n const g = t / (t + r);\n return { r: g, g, b: g };\n }\n let { r: e, g: s, b: n } = S(o, 1, 0.5);\n return [e, s, n] = [e, s, n].map((g) => g * (1 - t - r) + t), { r: e, g: s, b: n };\n}, q = (o, t, r) => {\n const e = Math.max(o, t, r), s = Math.min(o, t, r);\n let n = 0;\n const g = e, a = e - s, b = e === 0 ? 0 : a / e;\n return e === s ? n = 0 : (o === e && (n = (t - r) / a + (t < r ? 6 : 0)), t === e && (n = (r - o) / a + 2), r === e && (n = (o - t) / a + 4), n /= 6), { h: n, s: b, v: g };\n}, E = (o, t, r) => {\n const e = o * 6, s = t, n = r, g = Math.floor(e), a = e - g, b = n * (1 - s), l = n * (1 - a * s), p = n * (1 - (1 - a) * s), $ = g % 6, m = [n, l, b, b, p, n][$], k = [p, n, n, l, b, b][$], H = [b, b, p, n, n, l][$];\n return { r: m, g: k, b: H };\n}, R = (o, t, r, e) => {\n const s = [\n d(i(o).toString(16)),\n d(i(t).toString(16)),\n d(i(r).toString(16))\n ];\n return e && s[0].charAt(0) === s[0].charAt(1) && s[1].charAt(0) === s[1].charAt(1) && s[2].charAt(0) === s[2].charAt(1) ? s[0].charAt(0) + s[1].charAt(0) + s[2].charAt(0) : s.join(\"\");\n}, C = (o, t, r, e, s) => {\n const n = [\n d(i(o).toString(16)),\n d(i(t).toString(16)),\n d(i(r).toString(16)),\n d(X(e))\n ];\n return s && n[0].charAt(0) === n[0].charAt(1) && n[1].charAt(0) === n[1].charAt(1) && n[2].charAt(0) === n[2].charAt(1) && n[3].charAt(0) === n[3].charAt(1) ? n[0].charAt(0) + n[1].charAt(0) + n[2].charAt(0) + n[3].charAt(0) : n.join(\"\");\n}, W = (o) => {\n const t = String(o).trim().toLowerCase();\n if (K(t))\n return Object.assign(Q(t), {\n a: 1,\n format: \"rgb\",\n ok: !0\n });\n if (Z(t))\n return {\n r: 0,\n g: 0,\n b: 0,\n a: t === \"transparent\" ? 0 : 1,\n format: \"rgb\",\n ok: !0\n };\n let [, r, e, s, n] = f.rgb.exec(t) || [];\n return r && e && s ? {\n r,\n g: e,\n b: s,\n a: n !== void 0 ? n : 1,\n format: \"rgb\",\n ok: !0\n } : ([, r, e, s, n] = f.hsl.exec(t) || [], r && e && s ? {\n h: r,\n s: e,\n l: s,\n a: n !== void 0 ? n : 1,\n format: \"hsl\",\n ok: !0\n } : ([, r, e, s, n] = f.hsv.exec(t) || [], r && e && s ? {\n h: r,\n s: e,\n v: s,\n a: n !== void 0 ? n : 1,\n format: \"hsv\",\n ok: !0\n } : ([, r, e, s, n] = f.hwb.exec(t) || [], r && e && s ? {\n h: r,\n w: e,\n b: s,\n a: n !== void 0 ? n : 1,\n format: \"hwb\",\n ok: !0\n } : ([, r, e, s, n] = f.hex8.exec(t) || [], r && e && s && n ? {\n r: h(r),\n g: h(e),\n b: h(s),\n a: M(n),\n format: \"hex\",\n ok: !0\n } : ([, r, e, s] = f.hex6.exec(t) || [], r && e && s ? {\n r: h(r),\n g: h(e),\n b: h(s),\n a: 1,\n format: \"hex\",\n ok: !0\n } : ([, r, e, s, n] = f.hex4.exec(t) || [], r && e && s && n ? {\n r: h(r + r),\n g: h(e + e),\n b: h(s + s),\n a: M(n + n),\n format: \"hex\",\n ok: !0\n } : ([, r, e, s] = f.hex3.exec(t) || [], r && e && s ? {\n r: h(r + r),\n g: h(e + e),\n b: h(s + s),\n a: 1,\n format: \"hex\",\n ok: !0\n } : {\n r: 0,\n g: 0,\n b: 0,\n a: 1,\n format: \"rgb\",\n ok: !o\n })))))));\n}, or = (o, t, r) => ({\n r: u(o, 255),\n g: u(t, 255),\n b: u(r, 255)\n}), B = (o) => {\n let t = { r: 0, g: 0, b: 0 }, r = o, e = 1, s, n, g, a, b, l, p, $, m = \"rgb\", k = !1;\n if ((!r || typeof r == \"string\") && (r = W(r), k = r.ok || k), y(r, t) && c(r.r) && c(r.g) && c(r.b)) {\n if ([\"format\", \"ok\", \"originalInput\"].every((H) => H in r))\n return { ...r };\n ({ r: p, g: $, b } = r), t = or(p, $, b), m = \"format\" in r ? r.format : \"rgb\";\n }\n return y(r, { h: 0, s: 0, v: 0 }) && c(r.h) && c(r.s) && c(r.v) && ({ h: l, s, v: n } = r, l = u(l, 360), s = u(s, 100), n = u(n, 100), t = E(l, s, n), m = \"hsv\"), y(r, { h: 0, s: 0, l: 0 }) && c(r.h) && c(r.s) && c(r.l) && ({ h: l, s, l: g } = r, l = u(l, 360), s = u(s, 100), g = u(g, 100), t = S(l, s, g), m = \"hsl\"), y(r, { h: 0, w: 0, b: 0 }) && c(r.h) && c(r.w) && c(r.b) && ({ h: l, w: a, b } = r, l = u(l, 360), a = u(a, 100), b = u(b, 100), t = Y(l, a, b), m = \"hwb\"), c(r.a) && (e = r.a, e = O(e) || parseFloat(`${e}`) > 1 ? u(e, 100) : e), {\n ...t,\n a: N(e),\n format: m,\n ok: k\n };\n}, gr = \"1.0.13\";\nclass rr {\n // bring main utilities to front\n static matchers = f;\n static isOnePointZero = z;\n static isPercentage = O;\n static isValidCSSUnit = c;\n static isNonColor = Z;\n static isColorName = K;\n static isColorType = y;\n static pad2 = d;\n static clamp01 = A;\n static bound01 = u;\n static boundAlpha = N;\n static getRGBFromName = Q;\n static convertHexToDecimal = M;\n static convertDecimalToHex = X;\n static rgbToHsl = G;\n static rgbToHex = R;\n static rgbToHsv = q;\n static rgbToHwb = j;\n static rgbaToHex = C;\n static hslToRgb = E;\n static hsvToRgb = E;\n static hueToRgb = v;\n static hwbToRgb = Y;\n static parseIntFromHex = h;\n static stringInputToObject = W;\n static inputToRGB = B;\n static roundPart = i;\n static webColors = T;\n static nonColors = I;\n static version = gr;\n // main public properties\n r;\n g;\n b;\n a;\n format;\n ok;\n originalInput;\n // main public methods\n constructor(t, r) {\n const e = r && J.includes(r) ? r : \"\", { r: s, g: n, b: g, a, ok: b, format: l } = B(t);\n this.originalInput = t, this.r = s, this.g = n, this.b = g, this.a = a, this.ok = b, this.format = e || l;\n }\n /**\n * Checks if the current input value is a valid colour.\n */\n get isValid() {\n return this.ok;\n }\n /**\n * Checks if the current colour requires a light text colour.\n */\n get isDark() {\n return this.brightness < 120;\n }\n /**\n * Returns the perceived luminance of a colour.\n *\n * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n */\n get luminance() {\n const { r: t, g: r, b: e } = this;\n let s = 0, n = 0, g = 0;\n return t <= 0.03928 ? s = t / 12.92 : s = ((t + 0.055) / 1.055) ** 2.4, r <= 0.03928 ? n = r / 12.92 : n = ((r + 0.055) / 1.055) ** 2.4, e <= 0.03928 ? g = e / 12.92 : g = ((e + 0.055) / 1.055) ** 2.4, 0.2126 * s + 0.7152 * n + 0.0722 * g;\n }\n /**\n * Returns the perceived brightness of the colour.\n */\n get brightness() {\n const { r: t, g: r, b: e } = this.toRgb();\n return (t * 299 + r * 587 + e * 114) / 1e3;\n }\n /**\n * Returns the web colour name closest to the current colour.\n */\n get name() {\n const { r: t, g: r, b: e } = this.toRgb(), [s] = T.map(([n, g]) => {\n const a = (\n // ((rgb.r - r) ** 2 + (rgb.g - g) ** 2 + (rgb.b - b) ** 2) ** 0.5; // standard\n (((g.r - t) * 0.3) ** 2 + ((g.g - r) * 0.6) ** 2 + ((g.b - e) * 0.1) ** 2) ** 0.5\n );\n return [n, a];\n }).find(([, n], g, a) => n === Math.min(...a.map(([, b]) => b)));\n return s;\n }\n /**\n * Returns the colour as an RGBA object.\n */\n toRgb() {\n let { r: t, g: r, b: e, a: s } = this;\n return [t, r, e] = [t, r, e].map((n) => i(n * 255 * 100) / 100), s = i(s * 100) / 100, {\n r: t,\n g: r,\n b: e,\n a: s\n };\n }\n /**\n * Returns the RGBA values concatenated into a CSS3 Module string format.\n * * rgb(255,255,255)\n * * rgba(255,255,255,0.5)\n */\n toRgbString() {\n const { r: t, g: r, b: e, a: s } = this.toRgb(), [n, g, a] = [t, r, e].map(i);\n return s === 1 ? `rgb(${n}, ${g}, ${a})` : `rgba(${n}, ${g}, ${a}, ${s})`;\n }\n /**\n * Returns the RGBA values concatenated into a CSS4 Module string format.\n * * rgb(255 255 255)\n * * rgb(255 255 255 / 50%)\n */\n toRgbCSS4String() {\n const { r: t, g: r, b: e, a: s } = this.toRgb(), [n, g, a] = [t, r, e].map(i), b = s === 1 ? \"\" : ` / ${i(s * 100)}%`;\n return `rgb(${n} ${g} ${a}${b})`;\n }\n /**\n * Returns the hexadecimal value of the colour. When the parameter is *true*\n * it will find a 3 characters shorthand of the decimal value.\n */\n toHex(t) {\n let { r, g: e, b: s, a: n } = this;\n return [r, e, s] = [r, e, s].map((g) => i(g * 255)), n = i(n * 100) / 100, n === 1 ? R(r, e, s, t) : C(r, e, s, n, t);\n }\n /**\n * Returns the CSS valid hexadecimal vaue of the colour. When the parameter is *true*\n * it will find a 3 characters shorthand of the value.\n */\n toHexString(t) {\n return `#${this.toHex(t)}`;\n }\n /**\n * Returns the HEX8 value of the colour.\n */\n toHex8(t) {\n let { r, g: e, b: s, a: n } = this;\n return [r, e, s] = [r, e, s].map((g) => i(g * 255)), n = i(n * 100) / 100, n === 1 ? R(r, e, s, t) : C(r, e, s, n, t);\n }\n /**\n * Returns the HEX8 value of the colour.\n */\n toHex8String(t) {\n return `#${this.toHex8(t)}`;\n }\n /**\n * Returns the colour as a HSVA object.\n */\n toHsv() {\n const { r: t, g: r, b: e, a: s } = this, { h: n, s: g, v: a } = q(t, r, e);\n return {\n h: n,\n s: g,\n v: a,\n a: s\n };\n }\n /**\n * Returns the colour as an HSLA object.\n */\n toHsl() {\n const { r: t, g: r, b: e, a: s } = this, { h: n, s: g, l: a } = G(t, r, e);\n return {\n h: n,\n s: g,\n l: a,\n a: s\n };\n }\n /**\n * Returns the HSLA values concatenated into a CSS3 Module format string.\n * * `hsl(150, 100%, 50%)`\n * * `hsla(150, 100%, 50%, 0.5)`\n */\n toHslString() {\n let { h: t, s: r, l: e, a: s } = this.toHsl();\n return t = i(t * 360), r = i(r * 100), e = i(e * 100), s = i(s * 100) / 100, s === 1 ? `hsl(${t}, ${r}%, ${e}%)` : `hsla(${t}, ${r}%, ${e}%, ${s})`;\n }\n /**\n * Returns the HSLA values concatenated into a CSS4 Module format string.\n * * `hsl(150deg 100% 50%)`\n * * `hsl(150deg 100% 50% / 50%)`\n */\n toHslCSS4String() {\n let { h: t, s: r, l: e, a: s } = this.toHsl();\n t = i(t * 360), r = i(r * 100), e = i(e * 100), s = i(s * 100);\n const n = s < 100 ? ` / ${i(s)}%` : \"\";\n return `hsl(${t}deg ${r}% ${e}%${n})`;\n }\n /**\n * Returns the colour as an HWBA object.\n */\n toHwb() {\n const { r: t, g: r, b: e, a: s } = this, { h: n, w: g, b: a } = j(t, r, e);\n return {\n h: n,\n w: g,\n b: a,\n a: s\n };\n }\n /**\n * Returns the HWBA values concatenated into a string.\n */\n toHwbString() {\n let { h: t, w: r, b: e, a: s } = this.toHwb();\n t = i(t * 360), r = i(r * 100), e = i(e * 100), s = i(s * 100);\n const n = s < 100 ? ` / ${i(s)}%` : \"\";\n return `hwb(${t}deg ${r}% ${e}%${n})`;\n }\n /**\n * Sets the alpha value of the current colour.\n */\n setAlpha(t) {\n return typeof t != \"number\" ? this : (this.a = N(t), this);\n }\n /**\n * Saturate the colour with a given amount.\n */\n saturate(t) {\n if (typeof t != \"number\") return this;\n const { h: r, s: e, l: s } = this.toHsl(), { r: n, g, b: a } = S(r, A(e + t / 100), s);\n return Object.assign(this, { r: n, g, b: a }), this;\n }\n /**\n * Desaturate the colour with a given amount.\n */\n desaturate(t) {\n return typeof t == \"number\" ? this.saturate(-t) : this;\n }\n /**\n * Completely desaturates a colour into greyscale.\n * Same as calling `desaturate(100)`\n */\n greyscale() {\n return this.saturate(-100);\n }\n /**\n * Increase the colour lightness with a given amount.\n */\n lighten(t) {\n if (typeof t != \"number\") return this;\n const { h: r, s: e, l: s } = this.toHsl(), { r: n, g, b: a } = S(r, e, A(s + t / 100));\n return Object.assign(this, { r: n, g, b: a }), this;\n }\n /**\n * Decrease the colour lightness with a given amount.\n */\n darken(t) {\n return typeof t == \"number\" ? this.lighten(-t) : this;\n }\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n spin(t) {\n if (typeof t != \"number\") return this;\n const { h: r, s: e, l: s } = this.toHsl(), { r: n, g, b: a } = S(\n A((r * 360 + t) % 360 / 360),\n e,\n s\n );\n return Object.assign(this, { r: n, g, b: a }), this;\n }\n /** Returns a clone of the current `Color` instance. */\n clone() {\n return new rr(this);\n }\n /**\n * Returns the colour value in CSS valid string format.\n */\n toString(t) {\n const { format: r } = this;\n return r === \"hex\" ? this.toHexString(t) : r === \"hsl\" ? this.toHslString() : r === \"hwb\" ? this.toHwbString() : this.toRgbString();\n }\n}\nexport {\n rr as default\n};\n//# sourceMappingURL=index.mjs.map\n","import Color from \"@thednp/color\";\n// import { isNumber } from '@thednp/shorty';\n\n/**\n * Returns a color palette with a given set of parameters.\n *\n * @example\n * new ColorPalette(0, 12, 10, 80);\n * // => { hue: 0, hueSteps: 12, lightSteps: 10, saturation: 80, colors: Array<Color> }\n */\nexport default class ColorPalette {\n public static Color = Color;\n hue: number;\n hueSteps: number;\n lightSteps: number;\n saturation: number;\n colors: Color[];\n /**\n * The `hue` parameter is optional, which would be set to 0.\n * * `args.hue` the starting Hue [0, 360]\n * * `args.hueSteps` Hue Steps Count [5, 24]\n * * `args.lightSteps` Lightness Steps Count [5, 12]\n * * `args.saturation` Saturation [0, 100]\n */\n constructor(...args: [number?, number?, number?, number?]) {\n let hue = 0;\n let hueSteps = 12;\n let lightSteps = 10;\n let lightnessArray = [0.5];\n let saturation = 100;\n // if (!args.every(n => isNumber(n))) throw TypeError('ColorPalette only accepts numbers.');\n\n if (args.length === 4) {\n [hue, hueSteps, lightSteps, saturation] = args as [\n number,\n number,\n number,\n number,\n ];\n } else if (args.length === 3) {\n [hue, hueSteps, lightSteps] = args as [number, number, number];\n } else if (args.length === 2) {\n [hueSteps, lightSteps] = args as [number, number];\n if ([hueSteps, lightSteps].some((n) => n < 1)) {\n throw TypeError(\n \"ColorPalette: the two minimum arguments must be numbers higher than 0.\",\n );\n }\n }\n\n const colors: Color[] = [];\n const hueStep = 360 / hueSteps;\n const half = Color.roundPart((lightSteps - (lightSteps % 2 ? 1 : 0)) / 2);\n const steps1To13 = [0.25, 0.2, 0.15, 0.11, 0.09, 0.075];\n const lightSets = [\n [1, 2, 3],\n [4, 5],\n [6, 7],\n [8, 9],\n [10, 11],\n [12, 13],\n ];\n const closestSet = lightSets.find((set) => set.includes(lightSteps));\n\n // find a lightStep that won't go beyond black and white\n // something within the [10-90] range of lightness\n const lightStep = closestSet\n ? steps1To13[lightSets.indexOf(closestSet)]\n : 100 / (lightSteps + (lightSteps % 2 ? 0 : 1)) / 100;\n\n // light tints\n for (let i = 1; i < half + 1; i += 1) {\n lightnessArray = [...lightnessArray, 0.5 + lightStep * i];\n }\n\n // dark tints\n for (let i = 1; i < lightSteps - half; i += 1) {\n lightnessArray = [0.5 - lightStep * i, ...lightnessArray];\n }\n\n // feed `colors` Array\n for (let i = 0; i < hueSteps; i += 1) {\n const currentHue = (hue + i * hueStep) % 360;\n lightnessArray.forEach((l) => {\n const newColor = new Color({ h: currentHue, s: 100, l: l * 100 });\n colors.push(\n saturation < 100 ? newColor.saturate(saturation - 100) : newColor,\n );\n });\n }\n\n this.hue = hue;\n this.hueSteps = hueSteps;\n this.lightSteps = lightSteps;\n this.saturation = saturation;\n this.colors = colors;\n }\n}\n","import ColorPickerLabels from \"../interface/colorPickerLabels\";\n\n/** The labels presented to the user. */\nconst colorPickerLabels: ColorPickerLabels = {\n pickerLabel: \"Colour Picker\",\n appearanceLabel: \"Colour Appearance\",\n valueLabel: \"Colour Value\",\n toggleLabel: \"Select Colour\",\n presetsLabel: \"Colour Presets\",\n defaultsLabel: \"Colour Defaults\",\n formatLabel: \"Format\",\n alphaLabel: \"Alpha\",\n hexLabel: \"Hexadecimal\",\n hueLabel: \"Hue\",\n whitenessLabel: \"Whiteness\",\n blacknessLabel: \"Blackness\",\n saturationLabel: \"Saturation\",\n lightnessLabel: \"Lightness\",\n redLabel: \"Red\",\n greenLabel: \"Green\",\n blueLabel: \"Blue\",\n};\n\nexport default colorPickerLabels;\n","/** A list of 17 color names used for WAI-ARIA compliance. */\nconst colorNames: string[] = [\n \"white\",\n \"black\",\n \"grey\",\n \"red\",\n \"orange\",\n \"brown\",\n \"gold\",\n \"olive\",\n \"yellow\",\n \"lime\",\n \"green\",\n \"teal\",\n \"cyan\",\n \"blue\",\n \"violet\",\n \"magenta\",\n \"pink\",\n];\nexport default colorNames;\n","import { isString } from \"@thednp/shorty\";\n\n/**\n * Check if a string is valid JSON string.\n *\n * @param str the string input\n * @returns the query result\n */\nconst isValidJSON = (str: unknown): str is string => {\n /* istanbul ignore next @preserve */\n if (!isString(str)) return false;\n try {\n JSON.parse(str);\n } catch (_) {\n return false;\n }\n return true;\n};\n\nexport default isValidJSON;\n","const vHidden = \"v-hidden\";\nexport default vHidden;\n","import {\n createElement,\n ObjectAssign,\n setAttribute,\n toUpperCase,\n} from \"@thednp/shorty\";\n\nimport vHidden from \"./vHidden\";\nimport ColorPicker from \"../index\";\n\n/**\n * Returns the color form for `ColorPicker`.\n *\n * @param self the `ColorPicker` instance\n * @returns a new `<div>` element with color component `<input>`\n */\nconst getColorForm = (self: ColorPicker): HTMLElement => {\n const { format, id, componentLabels } = self;\n const colorForm = createElement({\n tagName: \"div\",\n className: `color-form ${format}`,\n }) as HTMLElement;\n\n let components = [\"hex\"];\n if (format === \"rgb\") components = [\"red\", \"green\", \"blue\", \"alpha\"];\n else if (format === \"hsl\") {\n components = [\"hue\", \"saturation\", \"lightness\", \"alpha\"];\n } else if (format === \"hwb\") {\n components = [\"hue\", \"whiteness\", \"blackness\", \"alpha\"];\n }\n\n components.forEach((c: string): void => {\n const [C] = format === \"hex\" ? [\"#\"] : toUpperCase(c).split(\"\");\n const cID = `color_${format}_${c}_${id}`;\n const formatLabel = componentLabels[`${c}Label`];\n const cInputLabel = createElement({ tagName: \"label\" }) as HTMLElement;\n setAttribute(cInputLabel, \"for\", cID);\n cInputLabel.append(\n createElement({\n tagName: \"span\",\n ariaHidden: \"true\",\n innerText: `${C}:`,\n }) as HTMLElement,\n createElement({\n tagName: \"span\",\n className: vHidden,\n innerText: formatLabel,\n }) as HTMLElement,\n );\n const cInput = createElement({\n tagName: \"input\",\n id: cID,\n // name: cID, - prevent saving the value to a form\n type: format === \"hex\" ? \"text\" : \"number\",\n value: c === \"alpha\" ? \"100\" : \"0\",\n className: `color-input ${c}`,\n autocomplete: \"off\",\n spellcheck: false,\n } as Partial<HTMLInputElement>) as HTMLInputElement;\n\n // alpha\n let max = \"100\";\n let step = \"1\";\n if (c !== \"alpha\") {\n if (format === \"rgb\") {\n max = \"255\";\n step = \"1\";\n } else if (c === \"hue\") {\n max = \"360\";\n step = \"1\";\n }\n }\n ObjectAssign(cInput, {\n min: \"0\",\n max,\n step,\n });\n colorForm.append(cInputLabel, cInput);\n });\n return colorForm;\n};\n\nexport default getColorForm;\n","import { createElement } from \"@thednp/shorty\";\n\nimport ColorPicker from \"..\";\n\n/**\n * Returns all color controls for `ColorPicker`.\n *\n * @param self the `ColorPicker` instance\n * @returns color controls\n */\nconst getColorControls = (self: ColorPicker): HTMLElement => {\n const { format, componentLabels } = self;\n const {\n hueLabel,\n alphaLabel,\n lightnessLabel,\n saturationLabel,\n whitenessLabel,\n blacknessLabel,\n } = componentLabels;\n\n const max1 = format === \"hsl\" ? 360 : 100;\n const max2 = format === \"hsl\" ? 100 : 360;\n const max3 = 100;\n\n let ctrl1Label = format === \"hsl\"\n ? `${hueLabel} & ${lightnessLabel}`\n : `${lightnessLabel} & ${saturationLabel}`;\n\n ctrl1Label = format === \"hwb\"\n ? `${whitenessLabel} & ${blacknessLabel}`\n : ctrl1Label;\n\n const ctrl2Label = format === \"hsl\" ? `${saturationLabel}` : `${hueLabel}`;\n\n const colorControls = createElement({\n tagName: \"div\",\n className: `color-controls ${format}`,\n }) as HTMLElement;\n\n const colorPointer = \"color-pointer\";\n const colorSlider = \"color-slider\";\n\n const controls = [\n {\n i: 1,\n c: colorPointer,\n l: ctrl1Label,\n min: 0,\n max: max1,\n },\n {\n i: 2,\n c: colorSlider,\n l: ctrl2Label,\n min: 0,\n max: max2,\n },\n {\n i: 3,\n c: colorSlider,\n l: alphaLabel,\n min: 0,\n max: max3,\n },\n ];\n\n controls.forEach((template) => {\n const { i, c, l, min, max } = template;\n const control = createElement({\n tagName: \"div\",\n className: \"color-control\",\n role: \"presentation\",\n }) as HTMLElement;\n\n control.append(\n createElement({\n tagName: \"div\",\n className: `visual-control visual-control${i}`,\n }) as HTMLElement,\n );\n\n const knob = createElement({\n tagName: \"div\",\n className: `${c} knob`,\n ariaLive: \"polite\",\n ariaLabel: l,\n role: \"slider\",\n tabIndex: 0,\n ariaValueMin: `${min}`,\n ariaValueMax: `${max}`,\n }) as HTMLElement;\n\n control.append(knob);\n colorControls.append(control);\n });\n\n return colorControls;\n};\n\nexport default getColorControls;\n","import {\n createElement,\n getAttribute,\n setAttribute,\n setElementStyle,\n} from \"@thednp/shorty\";\n\nimport Color from \"@thednp/color\";\nimport ColorPalette from \"../colorPalette\";\nimport ColorPicker from \"../index\";\n\n/**\n * Returns a color-defaults with given values and class.\n */\nconst getColorMenu = (\n self: ColorPicker,\n colorsSource: ColorPalette | string[],\n menuClass: string,\n): HTMLElement => {\n const { input, format, componentLabels } = self;\n const { defaultsLabel, presetsLabel } = componentLabels;\n const isOptionsMenu = menuClass === \"color-options\";\n const isPalette = colorsSource instanceof ColorPalette;\n const menuLabel = isOptionsMenu ? presetsLabel : defaultsLabel;\n const colorsArray = isPalette ? colorsSource.colors : colorsSource;\n const colorsCount = colorsArray.length;\n const { lightSteps } = isPalette ? colorsSource : { lightSteps: null };\n const fit = lightSteps ||\n [9, 10].find((x) => colorsCount >= x * 2 && !(colorsCount % x)) || 5;\n const isMultiLine = isOptionsMenu && colorsCount > fit;\n let rowCountHover = 2;\n rowCountHover = isMultiLine && colorsCount > fit * 2 ? 3 : rowCountHover;\n rowCountHover = isMultiLine && colorsCount > fit * 3 ? 4 : rowCountHover;\n rowCountHover = isMultiLine && colorsCount > fit * 4 ? 5 : rowCountHover;\n const rowCount = rowCountHover - (colorsCount <= fit * 3 ? 1 : 2);\n const isScrollable = isMultiLine && colorsCount > rowCount * fit;\n let finalClass = menuClass;\n finalClass += isScrollable ? \" scrollable\" : \"\";\n finalClass += isMultiLine ? \" multiline\" : \"\";\n const gap = isMultiLine ? \"1px\" : \"0.25rem\";\n let optionSize = isMultiLine ? 1.75 : 2;\n optionSize = fit > 5 && isMultiLine ? 1.5 : optionSize;\n const menuHeight = `${rowCount * optionSize}rem`;\n const menuHeightHover = `calc(${rowCountHover} * ${optionSize}rem + ${\n rowCountHover - 1\n } * ${gap})`;\n\n // <UL> is an `HTMLElement`\n const menu = createElement({\n tagName: \"ul\",\n className: finalClass,\n role: \"listbox\",\n ariaLabel: menuLabel,\n }) as HTMLElement;\n\n if (isScrollable) {\n setElementStyle(menu, {\n \"--grid-item-size\": `${optionSize}rem`,\n \"--grid-fit\": `${fit}`,\n \"--grid-gap\": gap,\n \"--grid-height\": menuHeight,\n \"--grid-hover-height\": menuHeightHover,\n });\n }\n\n colorsArray.forEach((x) => {\n let [value, label] = typeof x === \"string\" ? x.trim().split(\":\") : [];\n if (x instanceof Color) {\n value = x.toHexString();\n label = value;\n }\n const color = new Color(x instanceof Color ? x : value, format);\n const isActive = color.toString() === getAttribute(input, \"value\");\n const active = isActive ? \" active\" : \"\";\n\n const option = createElement({\n tagName: \"li\",\n className: `color-option${active}`,\n innerText: `${label || value}`,\n tabIndex: 0,\n role: \"option\",\n ariaSelected: isActive ? \"true\" : \"false\",\n }) as HTMLElement;\n setAttribute(option, \"data-value\", `${value}`);\n\n if (isOptionsMenu) {\n setElementStyle(option, { backgroundColor: value });\n }\n\n menu.append(option);\n });\n return menu;\n};\n\nexport default getColorMenu;\n","import {\n ariaHidden,\n createElement,\n createElementNS,\n getAttribute,\n setAttribute,\n tabindex,\n toUpperCase,\n} from \"@thednp/shorty\";\n\nimport Color from \"@thednp/color\";\n\nimport getColorForm from \"./getColorForm\";\nimport getColorControls from \"./getColorControls\";\nimport getColorMenu from \"./getColorMenu\";\nimport vHidden from \"./vHidden\";\n\nimport ColorPicker from \"../index\";\n\n/**\n * Generate HTML markup and update instance properties.\n *\n * @param self\n */\nconst setMarkup = (self: ColorPicker) => {\n const {\n input,\n parent,\n format,\n id,\n componentLabels,\n colorKeywords,\n colorPresets,\n } = self;\n const colorValue = getAttribute(input, \"value\") || \"#fff\";\n const { nonColors } = Color;\n\n const { toggleLabel, pickerLabel, formatLabel, hexLabel } = componentLabels;\n\n // update color\n const color = nonColors.includes(colorValue) ? \"#fff\" : colorValue;\n self.color = new Color(color, format);\n\n // set initial controls dimensions\n const formatString = format === \"hex\" ? hexLabel : toUpperCase(format);\n\n const pickerBtn = createElement<HTMLButtonElement>({\n id: `picker-btn-${id}`,\n tagName: \"button\",\n type: \"button\",\n className: \"picker-toggle btn-appearance\",\n ariaExpanded: \"false\",\n ariaHasPopup: \"true\",\n }) as HTMLButtonElement;\n\n pickerBtn.append(\n createElement({\n tagName: \"span\",\n className: vHidden,\n innerText: `${pickerLabel}. ${formatLabel}: ${formatString}`,\n }) as HTMLElement,\n );\n\n const pickerDropdown = createElement(\n {\n tagName: \"div\",\n className: \"color-dropdown picker\",\n role: \"group\",\n ariaLabelledBy: `picker-btn-${id}`,\n } as Partial<HTMLElement> & { ariaLabelledBy: string },\n ) as HTMLElement;\n\n const colorControls = getColorControls(self);\n const colorForm = getColorForm(self);\n\n pickerDropdown.append(colorControls, colorForm);\n input.before(pickerBtn);\n parent.append(pickerDropdown);\n\n // set colour key menu template\n /* istanbul ignore else @preserve */\n if (colorKeywords || colorPresets) {\n const presetsDropdown = createElement({\n tagName: \"div\",\n className: \"color-dropdown scrollable menu\",\n }) as HTMLElement;\n\n // color presets\n if (colorPresets) {\n presetsDropdown.append(getColorMenu(self, colorPresets, \"color-options\"));\n }\n\n // explicit defaults [reset, initial, inherit, transparent, currentColor]\n // also custom defaults [default: #069, complementary: #930]\n /* istanbul ignore else @preserve */\n if (colorKeywords && colorKeywords.length) {\n presetsDropdown.append(\n getColorMenu(self, colorKeywords, \"color-defaults\"),\n );\n }\n\n const presetsBtn = createElement<HTMLButtonElement>({\n tagName: \"button\",\n type: \"button\",\n className: \"menu-toggle btn-appearance\",\n tabIndex: -1,\n ariaExpanded: \"false\",\n ariaHasPopup: \"true\",\n }) as HTMLButtonElement;\n\n const xmlns = encodeURI(\"http://www.w3.org/2000/svg\");\n const presetsIcon = createElementNS(xmlns, {\n tagName: \"svg\",\n }) as HTMLElement;\n setAttribute(presetsIcon, \"xmlns\", xmlns);\n setAttribute(presetsIcon, \"viewBox\", \"0 0 512 512\");\n setAttribute(presetsIcon, ariaHidden, \"true\");\n\n const path = createElementNS(xmlns, {\n tagName: \"path\",\n }) as HTMLElement;\n setAttribute(\n path,\n \"d\",\n \"M98,158l157,156L411,158l27,27L255,368L71,185L98,158z\",\n );\n setAttribute(path, \"fill\", \"#fff\");\n presetsIcon.append(path);\n presetsBtn.append(\n createElement({\n tagName: \"span\",\n className: vHidden,\n innerText: `${toggleLabel}`,\n }) as HTMLElement,\n presetsIcon,\n );\n\n parent.append(presetsBtn, presetsDropdown);\n }\n\n // solve non-colors after settings save\n /* istanbul ignore else @preserve */\n if (colorKeywords && nonColors.includes(colorValue)) {\n self.value = colorValue;\n }\n setAttribute(input, tabindex, \"-1\");\n};\n\nexport default setMarkup;\n","import {\n addClass,\n ariaDescription,\n ariaExpanded,\n ariaSelected,\n ariaValueNow,\n ariaValueText,\n changeEvent,\n closest,\n Data,\n dispatchEvent,\n focus,\n focusinEvent,\n focusoutEvent,\n getAttribute,\n getBoundingClientRect,\n getDocument,\n getDocumentElement,\n getElementsByClassName,\n getElementStyle,\n getElementTransitionDuration,\n getInstance,\n getUID,\n getWindow,\n hasClass,\n isArray,\n isHTMLElement,\n isString,\n keyArrowDown,\n keyArrowLeft,\n keyArrowRight,\n keyArrowUp,\n keydownEvent,\n keyEnter,\n keyEscape,\n keySpace,\n keyupEvent,\n mouseclickEvent,\n normalizeOptions,\n ObjectAssign,\n ObjectFromEntries,\n off,\n on,\n pointerdownEvent,\n pointermoveEvent,\n pointerupEvent,\n querySelector,\n reflow,\n removeAttribute,\n removeClass,\n resizeEvent,\n scrollEvent,\n setAttribute,\n setElementStyle,\n tabindex,\n touchmoveEvent,\n} from \"@thednp/shorty\";\n\n// ColorPicker Util\n// ================\nimport Color from \"@thednp/color\";\nimport type { HSLA, HSVA, HWBA, RGBA } from \"@thednp/color\";\n\nimport ColorPalette from \"./colorPalette\";\nimport colorPickerLabels from \"./util/colorPickerLabels\";\nimport colorNames from \"./util/colorNames\";\nimport isValidJSON from \"./util/isValidJSON\";\nimport setMarkup from \"./util/setMarkup\";\n\nimport { ColorPickerOptions } from \"./interface/colorPickerOptions\";\nimport ColorPickerLabels from \"./interface/colorPickerLabels\";\nimport type ColorNames from \"./interface/ColorNames\";\nimport { version } from \"../../package.json\";\n\n// ColorPicker GC\n// ==============\nconst colorPickerString = \"color-picker\";\nconst colorPickerSelector = `[data-function=\"${colorPickerString}\"]`;\nconst colorPickerParentSelector = `.${colorPickerString}`;\nconst colorPickerDefaults: ColorPickerOptions = {\n componentLabels: colorPickerLabels,\n colorLabels: colorNames,\n format: \"rgb\",\n colorPresets: false,\n colorKeywords: false,\n};\nconst { roundPart, nonColors } = Color;\n\n// ColorPicker Static Methods\n// ==========================\nconst getColorPickerInstance = (element: Element) =>\n getInstance<ColorPicker>(element, colorPickerString);\nconst initColorPicker = (element: Element) => new ColorPicker(element);\n\n// ColorPicker Private Methods\n// ===========================\n\n/**\n * Add / remove `ColorPicker` main event listeners.\n */\nconst toggleEvents = (self: ColorPicker, action?: boolean) => {\n const fn = action ? on : off;\n const { input, pickerToggle, menuToggle } = self;\n\n fn(input, focusinEvent, self.showPicker);\n fn(pickerToggle, mouseclickEvent, self.togglePicker);\n /* istanbul ignore else @preserve */\n if (menuToggle) {\n fn(menuToggle, mouseclickEvent, self.toggleMenu);\n }\n};\n\n/**\n * Add / remove `ColorPicker` event listeners active only when open.\n */\nconst toggleEventsOnShown = (self: ColorPicker, action?: boolean) => {\n const fn = action ? on : off;\n const { input, colorMenu, parent } = self;\n const doc = getDocument(input);\n const win = getWindow(doc);\n\n fn(self.controls, pointerdownEvent, self.pointerDown);\n self.controlKnobs.forEach((x) => fn(x, keydownEvent, self.handleKnobs));\n\n fn(win, scrollEvent, self.handleScroll);\n fn(win, resizeEvent, self.update);\n\n [input, ...self.inputs].forEach((x) =>\n fn(x, changeEvent, self.changeHandler)\n );\n\n /* istanbul ignore else @preserve */\n if (colorMenu) {\n fn(colorMenu, mouseclickEvent, self.menuClickHandler);\n fn(colorMenu, keydownEvent, self.menuKeyHandler);\n }\n\n fn(doc, pointermoveEvent, self.pointerMove);\n fn(doc, pointerupEvent, self.pointerUp);\n fn(parent, focusoutEvent, self.handleFocusOut);\n fn(doc, keyupEvent, self.handleDismiss);\n};\n\n/**\n * Triggers the `ColorPicker` original event.\n */\nconst firePickerChange = (self: ColorPicker) => {\n dispatchEvent(self.input, new CustomEvent(\"colorpicker.change\"));\n};\n\n/**\n * Hides a visible dropdown.\n */\nconst removePosition = (element: HTMLElement) => {\n /* istanbul ignore else @preserve */\n if (element) {\n [\"bottom\", \"top\"].forEach((x) => removeClass(element, x));\n }\n};\n\n/**\n * Shows a `ColorPicker` dropdown and close the curent open dropdown.\n */\nconst showDropdown = (self: ColorPicker, dropdown: HTMLElement) => {\n const { colorPicker, colorMenu, menuToggle, pickerToggle, parent } = self;\n const isPicker = dropdown === colorPicker;\n const openDropdown = isPicker ? colorMenu : colorPicker;\n const activeBtn = isPicker ? menuToggle : pickerToggle;\n const nextBtn = !isPicker ? menuToggle : pickerToggle;\n\n /* istanbul ignore else @preserve */\n if (!hasClass(parent, \"open\")) {\n addClass(parent, \"open\");\n }\n /* istanbul ignore else @preserve */\n if (openDropdown) {\n removeClass(openDropdown, \"show\");\n removePosition(openDropdown);\n }\n addClass(dropdown, \"bottom\");\n reflow(dropdown);\n addClass(dropdown, \"show\");\n\n if (isPicker) self.update();\n\n if (!self.isOpen) {\n toggleEventsOnShown(self, true);\n self.updateDropdownPosition();\n self.isOpen = true;\n setAttribute(self.input, tabindex, \"0\");\n /* istanbul ignore else @preserve */\n if (menuToggle) {\n setAttribute(menuToggle, tabindex, \"0\");\n }\n }\n\n setAttribute(nextBtn, ariaExpanded, \"true\");\n /* istanbul ignore else @preserve */\n if (activeBtn) {\n setAttribute(activeBtn, ariaExpanded, \"false\");\n }\n};\n\n/**\n * Color Picker Web Component\n *\n * @see http://thednp.github.io/color-picker\n */\nexport default class ColorPicker {\n // bring utils to staic\n public static Color = Color;\n public static ColorPalette = ColorPalette;\n public static getInstance = getColorPickerInstance;\n public static init = initColorPicker;\n public static selector = colorPickerSelector;\n // utils important for render\n public static roundPart = roundPart;\n public static setElementStyle = setElementStyle;\n public static setAttribute = setAttribute;\n public static getBoundingClientRect = getBoundingClientRect;\n public static version = version;\n public static colorNames = colorNames;\n public static colorPickerLabels = colorPickerLabels;\n\n id: number;\n input: HTMLInputElement;\n color: Color;\n format = \"rgb\";\n parent: HTMLElement;\n dragElement: HTMLElement | undefined;\n isOpen = false;\n controlPositions: {\n c1x: number;\n c1y: number;\n c2y: number;\n c3y: number;\n };\n colorLabels: ColorNames = ObjectFromEntries(\n colorNames.map((c) => [c, c]),\n ) as ColorNames;\n colorKeywords: string[] | false;\n colorPresets: ColorPalette | string[] | false;\n componentLabels: ColorPickerLabels;\n pickerToggle: HTMLElement;\n menuToggle: HTMLElement;\n colorPicker: HTMLElement;\n colorMenu: HTMLElement;\n controls: HTMLElement;\n inputs: HTMLInputElement[];\n controlKnobs: HTMLElement[];\n visuals: HTMLElement[];\n\n /**\n * Returns a new `ColorPicker` instance. The target of this constructor\n * must be an `HTMLInputElement`.\n *\n * @param target the target `<input>` element\n * @param config instance options\n */\n constructor(\n target: Element | string,\n config?: Partial<ColorPickerOptions>,\n ) {\n const input = querySelector<Element>(target) as HTMLInputElement | null;\n\n // invalidate\n if (typeof target === \"undefined\") {\n throw new TypeError(`ColorPicker target not specified.`);\n }\n if (!isHTMLElement(input)) {\n throw new TypeError(`ColorPicker target \"${target}\" cannot be found.`);\n }\n this.input = input as HTMLInputElement;\n\n const parent = closest(input, colorPickerParentSelector);\n if (!parent) {\n throw new TypeError(\"ColorPicker requires a specific markup to work.\");\n }\n\n this.parent = parent;\n this.id = getUID(input, colorPickerString);\n this.dragElement = undefined;\n this.isOpen = false;\n this.controlPositions = {\n c1x: 0,\n c1y: 0,\n c2y: 0,\n c3y: 0,\n };\n // this.colorLabels = {};\n this.colorKeywords = false;\n this.colorPresets = false;\n\n // process options\n const {\n format,\n componentLabels,\n colorLabels,\n colorKeywords,\n colorPresets,\n } = normalizeOptions(\n input,\n colorPickerDefaults,\n config || {},\n );\n\n let translatedColorLabels = colorNames;\n /* istanbul ignore else @preserve */\n if (isArray(colorLabels) && colorLabels.length === 17) {\n translatedColorLabels = colorLabels;\n } else if (isString(colorLabels) && colorLabels.split(\",\").length === 17) {\n translatedColorLabels = colorLabels.split(\",\");\n }\n\n // expose colour labels to all methods\n ObjectAssign(\n this.colorLabels,\n ObjectFromEntries(\n translatedColorLabels.map((c, i) => [colorNames[i], c]),\n ),\n );\n\n // update and expose component labels\n const tempComponentLabels =\n isString(componentLabels) && isValidJSON(componentLabels)\n ? (JSON.parse(componentLabels) as ColorPickerLabels)\n : componentLabels;\n this.componentLabels = ObjectAssign(\n { ...colorPickerLabels },\n tempComponentLabels,\n );\n this.color = new Color(input.value || \"#fff\", format);\n this.format = format;\n\n // set colour defaults\n if (isArray(colorKeywords) && colorKeywords.length) {\n this.colorKeywords = colorKeywords;\n } else if (isString(colorKeywords) && colorKeywords.length) {\n this.colorKeywords = colorKeywords.split(\",\").map((x) => x.trim());\n }\n\n // set colour presets\n if (isArray(colorPresets) && colorPresets.length) {\n this.colorPresets = colorPresets;\n } else if (colorPresets && isValidJSON(colorPresets)) {\n const { hue, hueSteps, lightSteps, saturation } = JSON.parse(\n colorPresets,\n ) as {\n hue: number;\n hueSteps: number;\n lightSteps: number;\n saturation: number;\n };\n this.colorPresets = new ColorPalette(\n hue,\n hueSteps,\n lightSteps,\n saturation,\n );\n } else if (isString(colorPresets)) {\n this.colorPresets = colorPresets.split(\",\").map((x: string) => x.trim());\n }\n\n // generate markup\n setMarkup(this);\n\n const [colorPicker, colorMenu] = getElementsByClassName<HTMLElement>(\n \"color-dropdown\",\n parent,\n );\n // set main elements\n this.pickerToggle = querySelector(\".picker-toggle\", parent) as HTMLElement;\n this.menuToggle = querySelector(\".menu-toggle\", parent) as HTMLElement;\n this.colorPicker = colorPicker;\n this.colorMenu = colorMenu;\n this.inputs = [\n ...getElementsByClassName(\"color-input\", parent),\n ] as HTMLInputElement[];\n const [controls] = getElementsByClassName<HTMLElement>(\n \"color-controls\",\n parent,\n );\n this.controls = controls;\n this.controlKnobs = [\n ...getElementsByClassName<HTMLElement>(\"knob\", controls),\n ];\n this.visuals = [\n ...getElementsByClassName<HTMLElement>(\"visual-control\", controls),\n ];\n\n // update colour picker controls, inputs and visuals\n this.update();\n // console.log(this)\n\n // add main events listeners\n toggleEvents(this, true);\n\n // set component data\n Data.set(input, colorPickerString, this);\n }\n\n /** Returns the current colour value */\n get value(): string {\n return this.input.value;\n }\n\n /**\n * Sets a new colour value.\n *\n * @param {string} v new colour value\n */\n set value(v: string) {\n this.input.value = v;\n }\n\n /** Check if the colour presets include any non-colour. */\n get hasNonColor(): boolean {\n return this.colorKeywords instanceof Array &&\n this.colorKeywords.some((x) => nonColors.includes(x));\n }\n\n /** Returns hexadecimal value of the current colour. */\n get hex(): string {\n return this.color.toHex(true);\n }\n\n /** Returns the current colour value in {h,s,v,a} object format. */\n get hsv(): HSVA {\n return this.color.toHsv();\n }\n\n /** Returns the current colour value in {h,s,l,a} object format. */\n get hsl(): HSLA {\n return this.color.toHsl();\n }\n\n /** Returns the current colour value in {h,w,b,a} object format. */\n get hwb(): HWBA {\n return this.color.toHwb();\n }\n\n /** Returns the current colour value in {r,g,b,a} object format. */\n get rgb(): RGBA {\n return this.color.toRgb();\n }\n\n /** Returns the current colour brightness. */\n get brightness(): number {\n return this.color.brightness;\n }\n\n /** Returns the current colour luminance. */\n get luminance(): number {\n return this.color.luminance;\n }\n\n /** Checks if the current colour requires a light text colour. */\n get isDark(): boolean {\n const { color, brightness } = this;\n return brightness < 120 && color.a > 0.33;\n }\n\n /** Checks if the current input value is a valid colour. */\n get isValid(): boolean {\n const inputValue = this.input.value;\n return inputValue !== \"\" && new Color(inputValue).isValid;\n }\n\n /** Returns the colour appearance, usually the closest colour name for the current value. */\n get appearance(): string {\n const { colorLabels, hsl, hsv, format } = this;\n\n const hue = roundPart(hsl.h * 360);\n const saturationSource = format === \"hsl\" ? hsl.s : hsv.s;\n const saturation = roundPart(saturationSource * 100);\n const lightness = roundPart(hsl.l * 100);\n const hsvl = hsv.v * 100;\n\n let colorName = \"black\";\n\n // determine color appearance\n /* istanbul ignore else @preserve */\n if (lightness === 100 && saturation === 0) {\n colorName = colorLabels.white;\n } else if (lightness === 0) {\n colorName = colorLabels.black;\n } else if (saturation === 0) {\n colorName = colorLabels.grey;\n } else if (hue < 15 || hue >= 345) {\n colorName = colorLabels.red;\n } else if (hue >= 15 && hue < 45) {\n colorName = hsvl > 80 && saturation > 80\n ? colorLabels.orange\n : colorLabels.brown;\n } else if (hue >= 45 && hue < 75) {\n const isGold = hue > 46 && hue < 54 && hsvl < 80 && saturation > 90;\n const isOlive = hue >= 54 && hue < 75 && hsvl < 80;\n colorName = isGold ? colorLabels.gold : colorLabels.yellow;\n colorName = isOlive ? colorLabels.olive : colorName;\n } else if (hue >= 75 && hue < 155) {\n colorName = hsvl < 68 ? colorLabels.green : colorLabels.lime;\n } else if (hue >= 155 && hue < 175) {\n colorName = colorLabels.teal;\n } else if (hue >= 175 && hue < 195) {\n colorName = colorLabels.cyan;\n } else if (hue >= 195 && hue < 255) {\n colorName = colorLabels.blue;\n } else if (hue >= 255 && hue < 270) {\n colorName = colorLabels.violet;\n } else if (hue >= 270 && hue < 295) {\n colorName = colorLabels.magenta;\n } else if (hue >= 295 && hue < 345) {\n colorName = colorLabels.pink;\n }\n return colorName;\n }\n\n /** Updates `ColorPicker` visuals. */\n updateVisuals(): void {\n const { controlPositions, visuals } = this;\n const [v1, v2, v3] = visuals;\n const { offsetHeight } = v1;\n const hue = controlPositions.c2y / offsetHeight;\n const { r, g, b } = new Color({ h: hue * 360, s: 100, l: 50 }).toRgb();\n const whiteGrad =\n \"linear-gradient(rgb(255,255,255) 0%, rgb(255,255,255) 100%)\";\n const alpha = 1 - controlPositions.c3y / offsetHeight;\n const roundA = roundPart(alpha * 100) / 100;\n\n const fill = new Color({\n h: hue * 360,\n s: 100,\n l: 50,\n a: alpha,\n }).toRgbString();\n const hueGradient = `linear-gradient(\n rgb(255,0,0) 0%, rgb(255,255,0) 16.67%,\n rgb(0,255,0) 33.33%, rgb(0,255,255) 50%,\n rgb(0,0,255) 66.67%, rgb(255,0,255) 83.33%,\n rgb(255,0,0) 100%)`;\n setElementStyle(v1, {\n background:\n `linear-gradient(rgba(0,0,0,0) 0%, rgba(0,0,0,${roundA}) 100%),\n linear-gradient(to right, rgba(255,255,255,${roundA}) 0%, ${fill} 100%),\n ${whiteGrad}`,\n });\n setElementStyle(v2, { background: hueGradient });\n\n setElementStyle(v3, {\n background:\n `linear-gradient(rgba(${r},${g},${b},1) 0%,rgba(${r},${g},${b},0) 100%)`,\n });\n }\n\n /**\n * The `ColorPicker` *focusout* event listener when open.\n *\n * @param e\n * @this {ColorPicker}\n */\n handleFocusOut = (\n { relatedTarget }: FocusEvent & { relatedTarget: HTMLElement },\n ): void => {\n if (relatedTarget && !this.parent.contains(relatedTarget)) {\n this.hide(true);\n }\n };\n\n /**\n * The `ColorPicker` *keyup* event listener when open.\n *\n * @param e\n * @this {ColorPicker}\n */\n handleDismiss = ({ code }: KeyboardEvent): void => {\n /* istanbul ignore else @preserve */\n if (this.isOpen && code === keyEscape) {\n this.hide();\n }\n };\n\n /**\n * The `ColorPicker` *scroll* event listener when open.\n *\n * @param e\n */\n handleScroll = (e: Event) => {\n const { activeElement } = getDocument(this.input);\n\n this.updateDropdownPosition();\n\n /* istanbul ignore next @preserve */\n if (\n ([pointermoveEvent, touchmoveEvent].includes(e.type) &&\n this.dragElement) ||\n (activeElement &&\n this.controlKnobs.includes(activeElement as HTMLElement))\n ) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n\n /**\n * The `ColorPicker` keyboard event listener for menu navigation.\n *\n * @param e\n */\n menuKeyHandler = (e: KeyboardEvent & { target: HTMLElement }) => {\n const { target, code } = e;\n const { previousElementSibling, nextElementSibling, parentElement } =\n target;\n const isColorOptionsMenu = parentElement &&\n hasClass(parentElement, \"color-options\");\n const allSiblings = parentElement\n ? [...parentElement.children]\n : /* istanbul ignore next @preserve */ [];\n // const columnsCount =\n // isColorOptionsMenu && getElementStyle(parentElement, 'grid-template-columns').split(' ').length;\n const columnsCount = isColorOptionsMenu &&\n Number(getElementStyle(parentElement, \"--grid-fit\"));\n const currentIndex = allSiblings.indexOf(target);\n const previousElement = currentIndex > -1 && columnsCount &&\n allSiblings[currentIndex - columnsCount];\n const nextElement = currentIndex > -1 && columnsCount &&\n allSiblings[currentIndex + columnsCount];\n\n if ([keyArrowDown, keyArrowUp, keySpace].includes(code)) {\n // prevent scroll when navigating the menu via arrow keys / Space\n e.preventDefault();\n }\n if (isColorOptionsMenu) {\n if (previousElement && code === keyArrowUp) {\n focus(previousElement as HTMLElement);\n } else if (nextElement && code === keyArrowDown) {\n focus(nextElement as HTMLElement);\n } else if (previousElementSibling && code === keyArrowLeft) {\n focus(previousElementSibling as HTMLElement);\n } else if (nextElementSibling && code === keyArrowRight) {\n focus(nextElementSibling as HTMLElement);\n }\n } else if (\n previousElementSibling && [keyArrowLeft, keyArrowUp].includes(code)\n ) {\n focus(previousElementSibling as HTMLElement);\n } else if (\n nextElementSibling && [keyArrowRight, keyArrowDown].includes(code)\n ) {\n focus(nextElementSibling as HTMLElement);\n }\n\n if ([keyEnter, keySpace].includes(code)) {\n this.menuClickHandler(e);\n }\n };\n\n /**\n * The `ColorPicker` click event listener for the colour menu presets / defaults.\n *\n * @param e\n * @this {ColorPicker}\n */\n menuClickHandler = (e: Event) => {\n const { target } = e;\n const { colorMenu } = this;\n const newOption = (getAttribute(\n target as HTMLElement,\n \"data-value\",\n ) || /* istanbul ignore next @preserve */ \"\")\n .trim();\n // invalidate for targets other than color options\n /* istanbul ignore next @preserve */\n if (!newOption.length) return;\n const currentActive = querySelector(\"li.active\", colorMenu);\n let newColor = newOption;\n newColor = nonColors.includes(newColor) ? \"white\" : newColor;\n newColor = newColor === \"transparent\"\n ? /* istanbul ignore next @preserve */ \"rgba(0,0,0,0)\"\n : newColor;\n\n const { r, g, b, a } = new Color(newColor);\n\n ObjectAssign(this.color, {\n r,\n g,\n b,\n a,\n });\n\n this.update();\n\n /* istanbul ignore else @preserve */\n if (currentActive !== target) {\n /* istanbul ignore else @preserve */\n if (currentActive) {\n removeClass(currentActive, \"active\");\n removeAttribute(currentActive, ariaSelected);\n }\n\n addClass(target as HTMLElement, \"active\");\n setAttribute(target as HTMLElement, ariaSelected, \"true\");\n\n if (nonColors.includes(newOption)) {\n this.value = newOption;\n }\n firePickerChange(this);\n }\n };\n\n /**\n * The `ColorPicker` *touchstart* / *mousedown* events listener for control knobs.\n *\n * @param e\n */\n pointerDown = (e: PointerEvent & { target: HTMLElement }) => {\n /* istanbul ignore next @preserve */\n if (e.button !== 0) return;\n const { target, pageX, pageY } = e;\n const { colorMenu, visuals, controlKnobs } = this;\n const [v1, v2, v3] = visuals;\n const [c1, c2, c3] = controlKnobs;\n const visual = controlKnobs.includes(target)\n ? (target.previousElementSibling as HTMLElement)\n : target;\n const visualRect = getBoundingClientRect(visual);\n const html = getDocumentElement(v1);\n const offsetX = pageX - html.scrollLeft - visualRect.left;\n const offsetY = pageY - html.scrollTop - visualRect.top;\n\n /* istanbul ignore else @preserve */\n if (target === v1 || target === c1) {\n this.dragElement = visual;\n this.changeControl1(offsetX, offsetY);\n } else if (target === v2 || target === c2) {\n this.dragElement = visual;\n this.changeControl2(offsetY);\n } else if (target === v3 || target === c3) {\n this.dragElement = visual;\n this.changeAlpha(offsetY);\n }\n\n /* istanbul ignore else @preserve */\n if (colorMenu) {\n const currentActive = querySelector(\"li.active\", colorMenu);\n /* istanbul ignore if @preserve */\n if (currentActive) {\n removeClass(currentActive, \"active\");\n removeAttribute(currentActive, ariaSelected);\n }\n }\n e.preventDefault();\n };\n\n /**\n * The `ColorPicker` *touchend* / *mouseup* events listener for control knobs.\n *\n * @param e\n * @this\n */\n pointerUp = ({ target }: PointerEvent & { target: HTMLElement }) => {\n const { parent } = this;\n const doc = getDocument(parent);\n const currentOpen =\n querySelector(`${colorPickerParentSelector}.open`, doc) !== null;\n const selection = doc.getSelection();\n\n if (\n !this.dragElement && (!selection || !selection.toString().length) &&\n !parent.contains(target)\n ) {\n this.hide(currentOpen);\n }\n\n this.dragElement = undefined;\n };\n\n /**\n * The `ColorPicker` *touchmove* / *mousemove* events listener for control knobs.\n *\n * @param {PointerEvent} e\n */\n pointerMove = (e: PointerEvent) => {\n const { dragElement, visuals } = this;\n const [v1, v2, v3] = visuals;\n const { pageX, pageY } = e;\n\n if (!dragElement) return;\n\n const controlRect = getBoundingClientRect(dragElement);\n const win = getDocumentElement(v1);\n const offsetX = pageX - win.scrollLeft - controlRect.left;\n const offsetY = pageY - win.scrollTop - controlRect.top;\n\n if (dragElement === v1) {\n this.changeControl1(offsetX, offsetY);\n }\n\n if (dragElement === v2) {\n this.changeControl2(offsetY);\n }\n\n if (dragElement === v3) {\n this.changeAlpha(offsetY);\n }\n };\n\n /**\n * The `ColorPicker` *keydown* event listener for control knobs.\n *\n * @param e\n */\n handleKnobs = (e: Event & { code: string }) => {\n const { target, code } = e;\n\n // only react to arrow buttons\n if (\n ![keyArrowUp, keyArrowDown, keyArrowLeft, keyArrowRight].includes(code)\n ) return;\n e.preventDefault();\n\n const { controlKnobs, visuals } = this;\n const { offsetWidth, offsetHeight } = visuals[0];\n const [c1, c2, c3] = controlKnobs;\n const { activeElement } = getDocument(c1);\n const currentKnob = controlKnobs.find((x) => x === activeElement);\n const yRatio = offsetHeight / 360;\n\n /* istanbul ignore else @preserve */\n if (currentKnob) {\n let offsetX = 0;\n let offsetY = 0;\n\n /* istanbul ignore else @preserve */\n if (target === c1) {\n const xRatio = offsetWidth / 100;\n\n /* istanbul ignore else @preserve */\n if ([keyArrowLeft, keyArrowRight].includes(code)) {\n this.controlPositions.c1x += code === keyArrowRight\n ? xRatio\n : -xRatio;\n } else if ([keyArrowUp, keyArrowDown].includes(code)) {\n this.controlPositions.c1y += code === keyArrowDown ? yRatio : -yRatio;\n }\n\n offsetX = this.controlPositions.c1x;\n offsetY = this.controlPositions.c1y;\n this.changeControl1(offsetX, offsetY);\n } else if (target === c2) {\n this.controlPositions.c2y +=\n [keyArrowDown, keyArrowRight].includes(code) ? yRatio : -yRatio;\n\n offsetY = this.controlPositions.c2y;\n this.changeControl2(offsetY);\n } else if (target === c3) {\n this.controlPositions.c3y +=\n [keyArrowDown, keyArrowRight].includes(code) ? yRatio : -yRatio;\n\n offsetY = this.controlPositions.c3y;\n this.changeAlpha(offsetY);\n }\n this.handleScroll(e);\n }\n };\n\n /** The event listener of the colour form inputs. */\n changeHandler = (): void => {\n let colorSource;\n const {\n inputs,\n format,\n value: currentValue,\n input,\n controlPositions,\n visuals,\n } = this;\n const { activeElement } = getDocument(input);\n const { offsetHeight } = visuals[0];\n const [i1, , , i4] = inputs;\n const [v1, v2, v3, v4] = format === \"rgb\"\n ? inputs.map((i) => parseFloat(i.value) / (i === i4 ? 100 : 1))\n : inputs.map((i) => parseFloat(i.value) / (i !== i1 ? 100 : 360));\n const isNonColorValue = this.hasNonColor &&\n nonColors.includes(currentValue);\n const alpha = i4 ? v4 : 1 - controlPositions.c3y / offsetHeight;\n\n /* istanbul ignore else @preserve */\n if (\n activeElement === input ||\n (activeElement && inputs.includes(activeElement as HTMLInputElement))\n ) {\n if (activeElement === input) {\n if (isNonColorValue) {\n colorSource = currentValue === \"transparent\"\n ? \"rgba(0,0,0,0)\"\n : \"rgb(0,0,0)\";\n } else {\n colorSource = currentValue;\n }\n } else if (format === \"hex\") {\n colorSource = i1.value;\n } else if (format === \"hsl\") {\n colorSource = {\n h: v1,\n s: v2,\n l: v3,\n a: alpha,\n };\n } else if (format === \"hwb\") {\n colorSource = {\n h: v1,\n w: v2,\n b: v3,\n a: alpha,\n };\n } else {\n colorSource = {\n r: v1,\n g: v2,\n b: v3,\n a: alpha,\n };\n }\n\n const { r, g, b, a } = new Color(colorSource);\n\n ObjectAssign(this.color, {\n r,\n g,\n b,\n a,\n });\n this.setControlPositions();\n this.updateAppearance();\n this.updateInputs();\n this.updateControls();\n this.updateVisuals();\n\n // set non-color keyword\n if (activeElement === input && isNonColorValue) {\n this.value = currentValue;\n }\n }\n };\n\n /**\n * Updates `ColorPicker` first control:\n * * `lightness` and `saturation` for HEX/RGB;\n * * `lightness` and `hue` for HSL.\n *\n * @param X the X component of the offset\n * @param Y the Y component of the offset\n */\n changeControl1(X: number, Y: number): void {\n let [offsetX, offsetY] = [0, 0];\n const { controlPositions, visuals } = this;\n const { offsetHeight, offsetWidth } = visuals[0];\n\n if (X > offsetWidth) offsetX = offsetWidth;\n else if (X >= 0) offsetX = X;\n\n if (Y > offsetHeight) offsetY = offsetHeight;\n else if (Y >= 0) offsetY = Y;\n\n const hue = controlPositions.c2y / offsetHeight;\n\n const saturation = offsetX / offsetWidth;\n\n const lightness = 1 - offsetY / offsetHeight;\n const alpha = 1 - controlPositions.c3y / offsetHeight;\n\n // new color\n const { r, g, b, a } = new Color({\n h: hue * 360,\n s: saturation * 100,\n v: lightness * 100,\n a: alpha,\n });\n\n ObjectAssign(this.color, {\n r,\n g,\n b,\n a,\n });\n\n // new positions\n this.controlPositions.c1x = offsetX;\n this.controlPositions.c1y = offsetY;\n\n // update color picker\n this.updateAppearance();\n this.updateInputs();\n this.updateControls();\n this.updateVisuals();\n }\n\n /**\n * Updates `ColorPicker` second control:\n * * `hue` for HEX/RGB/HWB;\n * * `saturation` for HSL.\n *\n * @param Y the Y offset\n */\n changeControl2(Y: number) {\n const { controlPositions, visuals } = this;\n const { offsetHeight, offsetWidth } = visuals[0];\n\n let offsetY = 0;\n\n if (Y > offsetHeight) offsetY = offsetHeight;\n else if (Y >= 0) offsetY = Y;\n\n const hue = offsetY / offsetHeight;\n const saturation = controlPositions.c1x / offsetWidth;\n const lightness = 1 - controlPositions.c1y / offsetHeight;\n const alpha = 1 - controlPositions.c3y / offsetHeight;\n\n // new color\n const { r, g, b, a } = new Color({\n h: hue * 360,\n s: saturation * 100,\n v: lightness * 100,\n a: alpha,\n });\n\n ObjectAssign(this.color, {\n r,\n g,\n b,\n a,\n });\n\n // new position\n this.controlPositions.c2y = offsetY;\n // update color picker\n this.updateAppearance();\n this.updateInputs();\n this.updateControls();\n this.updateVisuals();\n }\n\n /**\n * Updates `ColorPicker` last control,\n * the `alpha` channel.\n *\n * @param Y\n */\n changeAlpha(Y: number) {\n const { visuals } = this;\n const { offsetHeight } = visuals[0];\n let offsetY = 0;\n\n if (Y > offsetHeight) offsetY = offsetHeight;\n else if (Y >= 0) offsetY = Y;\n\n // update color alpha\n const alpha = 1 - offsetY / offsetHeight;\n this.color.setAlpha(alpha);\n // update position\n this.controlPositions.c3y = offsetY;\n // update color picker\n this.updateAppearance();\n this.updateInputs();\n this.updateControls();\n this.updateVisuals();\n }\n\n /**\n * Updates `ColorPicker` control positions on:\n * * initialization\n * * window resize\n */\n update = () => {\n this.updateDropdownPosition();\n this.updateAppearance();\n this.setControlPositions();\n this.updateInputs(true);\n this.updateControls();\n this.updateVisuals();\n };\n\n /** Updates the open dropdown position on *scroll* event. */\n updateDropdownPosition() {\n const { input, colorPicker, colorMenu } = this;\n const elRect = getBoundingClientRect(input);\n const { top, bottom } = elRect;\n const { offsetHeight: elHeight } = input;\n const windowHeight = getDocumentElement(input).clientHeight;\n const isPicker = hasClass(colorPicker, \"show\");\n const dropdown = isPicker ? colorPicker : colorMenu;\n /* istanbul ignore next @preserve */\n if (!dropdown) return;\n const { offsetHeight: dropHeight } = dropdown;\n const distanceBottom = windowHeight - bottom;\n const distanceTop = top;\n const bottomExceed = top + dropHeight + elHeight > windowHeight; // show\n const topExceed = top - dropHeight < 0; // show-top\n\n if (\n (hasClass(dropdown, \"bottom\") || !topExceed) &&\n distanceBottom < distanceTop && bottomExceed\n ) {\n removeClass(dropdown, \"bottom\");\n addClass(dropdown, \"top\");\n } else {\n removeClass(dropdown, \"top\");\n addClass(dropdown, \"bottom\");\n }\n }\n\n /** Updates control knobs' positions. */\n setControlPositions() {\n const { visuals, color, hsv } = this;\n const { offsetHeight, offsetWidth } = visuals[0];\n const alpha = color.a;\n const hue = hsv.h;\n\n const saturation = hsv.s;\n const lightness = hsv.v;\n\n this.controlPositions.c1x = saturation * offsetWidth;\n this.controlPositions.c1y = (1 - lightness) * offsetHeight;\n this.controlPositions.c2y = hue * offsetHeight;\n this.controlPositions.c3y = (1 - alpha) * offsetHeight;\n }\n\n /** Update the visual appearance label and control knob labels. */\n updateAppearance() {\n const { componentLabels, color, parent, hsv, hex, format, controlKnobs } =\n this;\n const { appearanceLabel, hexLabel, valueLabel } = componentLabels;\n let { r, g, b } = color.toRgb();\n const [knob1, knob2, knob3] = controlKnobs;\n const hue = roundPart(hsv.h * 360);\n const alpha = color.a;\n const saturation = roundPart(hsv.s * 100);\n const lightness = roundPart(hsv.v * 100);\n const colorName = this.appearance;\n\n let colorLabel = `${hexLabel} ${hex.split(\"\").join(\" \")}`;\n\n if (format === \"hwb\") {\n const { hwb } = this;\n const whiteness = roundPart(hwb.w * 100);\n const blackness = roundPart(hwb.b * 100);\n colorLabel = `HWB: ${hue}°, ${whiteness}%, ${blackness}%`;\n setAttribute(knob1, ariaValueText, `${whiteness}% & ${blackness}%`);\n setAttribute(knob1, ariaValueNow, `${whiteness}`);\n setAttribute(\n knob2,\n ariaDescription,\n `${valueLabel}: ${colorLabel}. ${appearanceLabel}: ${colorName}.`,\n );\n setAttribute(knob2, ariaValueText, `${hue}%`);\n setAttribute(knob2, ariaValueNow, `${hue}`);\n } else {\n [r, g, b] = [r, g, b].map(roundPart);\n colorLabel = format === \"hsl\"\n ? `HSL: ${hue}°, ${saturation}%, ${lightness}%`\n : colorLabel;\n colorLabel = format === \"rgb\" ? `RGB: ${r}, ${g}, ${b}` : colorLabel;\n\n setAttribute(knob1, ariaValueText, `${lightness}% & ${saturation}%`);\n setAttribute(knob1, ariaValueNow, `${lightness}`);\n setAttribute(\n knob2,\n ariaDescription,\n `${valueLabel}: ${colorLabel}. ${appearanceLabel}: ${colorName}.`,\n );\n setAttribute(knob2, ariaValueText, `${hue}°`);\n setAttribute(knob2, ariaValueNow, `${hue}`);\n }\n\n const alphaValue = roundPart(alpha * 100);\n setAttribute(knob3, ariaValueText, `${alphaValue}%`);\n setAttribute(knob3, ariaValueNow, `${alphaValue}`);\n\n // update the input backgroundColor\n const newColor = color.toString();\n setElementStyle(this.input, { backgroundColor: newColor });\n\n // toggle dark/light classes will also style the placeholder\n // dark sets color white, light sets color black\n // isDark ? '#000' : '#fff'\n if (!this.isDark) {\n if (hasClass(parent, \"txt-dark\")) removeClass(parent, \"txt-dark\");\n if (!hasClass(parent, \"txt-light\")) addClass(parent, \"txt-light\");\n } else {\n if (hasClass(parent, \"txt-light\")) removeClass(parent, \"txt-light\");\n if (!hasClass(parent, \"txt-dark\")) addClass(parent, \"txt-dark\");\n }\n }\n\n /** Updates the control knobs actual positions. */\n updateControls() {\n const { controlKnobs, controlPositions } = this;\n let { c1x, c1y, c2y, c3y } = controlPositions;\n const [control1, control2, control3] = controlKnobs;\n // round control positions\n [c1x, c1y, c2y, c3y] = [c1x, c1y, c2y, c3y].map(roundPart);\n\n setElementStyle(control1, {\n transform: `translate3d(${c1x - 4}px,${c1y - 4}px,0)`,\n });\n setElementStyle(control2, { transform: `translate3d(0,${c2y - 4}px,0)` });\n setElementStyle(control3, { transform: `translate3d(0,${c3y - 4}px,0)` });\n }\n\n /**\n * Updates all color form inputs.\n *\n * @param isPrevented when `true`, the component original event is prevented\n */\n updateInputs(isPrevented?: boolean) {\n const { value: oldColor, format, inputs, color, hsl } = this;\n const [i1, i2, i3, i4] = inputs;\n const alpha = roundPart(color.a * 100);\n const hue = roundPart(hsl.h * 360);\n let newColor = color.toString();\n\n /* istanbul ignore else @preserve */\n if (format === \"hex\") {\n newColor = this.color.toHexString(true);\n i1.value = this.hex;\n } else if (format === \"hsl\") {\n const lightness = roundPart(hsl.l * 100);\n const saturation = roundPart(hsl.s * 100);\n newColor = this.color.toHslString();\n i1.value = `${hue}`;\n i2.value = `${saturation}`;\n i3.value = `${lightness}`;\n i4.value = `${alpha}`;\n } else if (format === \"hwb\") {\n const { w, b } = this.hwb;\n const whiteness = roundPart(w * 100);\n const blackness = roundPart(b * 100);\n\n newColor = this.color.toHwbString();\n i1.value = `${hue}`;\n i2.value = `${whiteness}`;\n i3.value = `${blackness}`;\n i4.value = `${alpha}`;\n } else if (format === \"rgb\") {\n let { r, g, b } = this.rgb;\n [r, g, b] = [r, g, b].map(roundPart);\n\n newColor = this.color.toRgbString();\n i1.value = `${r}`;\n i2.value = `${g}`;\n i3.value = `${b}`;\n i4.value = `${alpha}`;\n }\n\n // update the color value\n this.value = newColor;\n\n // don't trigger the custom event unless it's really changed\n if (!isPrevented && newColor !== oldColor) {\n firePickerChange(this);\n }\n }\n\n /**\n * Toggle the `ColorPicker` dropdown visibility.\n *\n * @param e\n */\n togglePicker = (e?: Event) => {\n if (e) e.preventDefault();\n const { colorPicker } = this;\n\n if (this.isOpen && hasClass(colorPicker, \"show\")) {\n this.hide(true);\n } else {\n showDropdown(this, colorPicker);\n }\n };\n\n /** Shows the `ColorPicker` dropdown. */\n showPicker = () => {\n const { colorPicker } = this;\n\n if (![\"top\", \"bottom\"].some((c) => hasClass(colorPicker, c))) {\n showDropdown(this, colorPicker);\n }\n };\n\n /**\n * Toggles the visibility of the `ColorPicker` presets menu.\n *\n * @param e\n * @this {ColorPicker}\n */\n toggleMenu = (e?: Event) => {\n if (e) e.preventDefault();\n const { colorMenu } = this;\n\n if (this.isOpen && hasClass(colorMenu, \"show\")) {\n this.hide(true);\n } else {\n showDropdown(this, colorMenu);\n }\n };\n\n /**\n * Hides the currently open `ColorPicker` dropdown.\n *\n * @param {boolean=} focusPrevented\n */\n hide(focusPrevented?: boolean) {\n /* istanbul ignore next @preserve */\n if (!this.isOpen) return;\n const {\n pickerToggle,\n menuToggle,\n colorPicker,\n colorMenu,\n parent,\n input,\n } = this;\n const openPicker = hasClass(colorPicker, \"show\");\n const openDropdown = openPicker ? colorPicker : colorMenu;\n const relatedBtn = openPicker ? pickerToggle : menuToggle;\n const animationDuration = openDropdown &&\n getElementTransitionDuration(openDropdown);\n\n this.value = this.color.toString(true);\n\n /* istanbul ignore else @preserve */\n if (openDropdown) {\n removeClass(openDropdown, \"show\");\n setAttribute(relatedBtn, ariaExpanded, \"false\");\n setTimeout(() => {\n removePosition(openDropdown);\n /* istanbul ignore else @preserve */\n if (!querySelector(\".show\", parent)) {\n removeClass(parent, \"open\");\n toggleEventsOnShown(this);\n this.isOpen = false;\n }\n }, animationDuration);\n }\n\n if (!focusPrevented) {\n focus(pickerToggle);\n }\n setAttribute(input, tabindex, \"-1\");\n if (relatedBtn === menuToggle) {\n setAttribute(menuToggle, tabindex, \"-1\");\n }\n }\n\n /** Removes `ColorPicker` from target `<input>`. */\n dispose() {\n const { input, parent } = this;\n this.hide(true);\n toggleEvents(this);\n [...parent.children].forEach((el) => {\n if (el !== input) el.remove();\n });\n\n removeAttribute(input, tabindex);\n setElementStyle(input, { backgroundColor: \"\" });\n\n [\"txt-light\", \"txt-dark\"].forEach((c) => removeClass(parent, c));\n Data.remove(input, colorPickerString);\n }\n}\n"],"names":["Te","De","$","Pe","Ve","He","tt","rt","ct","lt","ft","gt","Dt","Ot","xt","Pt","Ht","Rt","en","nn","on","sn","ln","fn","En","_t","W","Tn","R","t","e","n","o","s","Q","j","Wn","Qn","Kn","qn","Gn","v","u","i","E","L","Xn","I","N","K","q","d","C","ne","oe","G","f","ae","ro","P","S","ao","r","a","l","p","g","A","fo","mo","vo","O","ho","b","y","w","ge","B","V","h","ye","we","Se","Ho","Ro","T","U","D","x","F","tr","er","sr","Z","z","c","J","_","nr","M","X","Y","m","k","H","or","gr","rr","ColorPalette","Color","args","hue","hueSteps","lightSteps","lightnessArray","saturation","colors","hueStep","half","steps1To13","lightSets","closestSet","set","lightStep","currentHue","newColor","colorPickerLabels","colorNames","isValidJSON","str","isString","vHidden","getColorForm","self","format","id","componentLabels","colorForm","createElement","components","toUpperCase","cID","formatLabel","cInputLabel","setAttribute","cInput","max","step","ObjectAssign","getColorControls","hueLabel","alphaLabel","lightnessLabel","saturationLabel","whitenessLabel","blacknessLabel","max1","max2","max3","ctrl1Label","ctrl2Label","colorControls","colorPointer","colorSlider","template","min","control","knob","getColorMenu","colorsSource","menuClass","input","defaultsLabel","presetsLabel","isOptionsMenu","isPalette","menuLabel","colorsArray","colorsCount","fit","isMultiLine","rowCountHover","rowCount","isScrollable","finalClass","gap","optionSize","menuHeight","menuHeightHover","menu","setElementStyle","value","label","isActive","getAttribute","option","setMarkup","parent","colorKeywords","colorPresets","colorValue","nonColors","toggleLabel","pickerLabel","hexLabel","color","formatString","pickerBtn","pickerDropdown","presetsDropdown","presetsBtn","xmlns","presetsIcon","createElementNS","ariaHidden","path","tabindex","colorPickerString","colorPickerSelector","colorPickerParentSelector","colorPickerDefaults","roundPart","getColorPickerInstance","element","getInstance","initColorPicker","ColorPicker","toggleEvents","action","off","pickerToggle","menuToggle","focusinEvent","mouseclickEvent","toggleEventsOnShown","colorMenu","doc","getDocument","win","getWindow","pointerdownEvent","keydownEvent","scrollEvent","resizeEvent","changeEvent","pointermoveEvent","pointerupEvent","focusoutEvent","keyupEvent","firePickerChange","dispatchEvent","removePosition","removeClass","showDropdown","dropdown","colorPicker","isPicker","openDropdown","activeBtn","nextBtn","hasClass","addClass","reflow","ariaExpanded","getBoundingClientRect","version","ObjectFromEntries","target","config","querySelector","isHTMLElement","closest","getUID","colorLabels","normalizeOptions","translatedColorLabels","isArray","tempComponentLabels","getElementsByClassName","controls","Data","brightness","inputValue","hsl","hsv","saturationSource","lightness","hsvl","colorName","isGold","isOlive","controlPositions","visuals","v1","v2","v3","offsetHeight","whiteGrad","alpha","roundA","fill","hueGradient","relatedTarget","code","keyEscape","activeElement","touchmoveEvent","previousElementSibling","nextElementSibling","parentElement","isColorOptionsMenu","allSiblings","columnsCount","getElementStyle","currentIndex","previousElement","nextElement","keyArrowDown","keyArrowUp","keySpace","focus","keyArrowLeft","keyArrowRight","keyEnter","newOption","currentActive","removeAttribute","ariaSelected","pageX","pageY","controlKnobs","c1","c2","c3","visual","visualRect","html","getDocumentElement","offsetX","offsetY","currentOpen","selection","dragElement","controlRect","offsetWidth","currentKnob","yRatio","xRatio","colorSource","inputs","currentValue","i1","i4","v4","isNonColorValue","elRect","top","bottom","elHeight","windowHeight","dropHeight","distanceBottom","distanceTop","bottomExceed","topExceed","hex","appearanceLabel","valueLabel","knob1","knob2","knob3","colorLabel","hwb","whiteness","blackness","ariaValueText","ariaValueNow","ariaDescription","alphaValue","c1x","c1y","c2y","c3y","control1","control2","control3","isPrevented","oldColor","i2","i3","focusPrevented","openPicker","relatedBtn","animationDuration","getElementTransitionDuration","el"],"mappings":"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,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"color-picker.mjs","sources":["../../node_modules/.pnpm/@thednp+shorty@2.0.11/node_modules/@thednp/shorty/dist/shorty.mjs","../../node_modules/.pnpm/@thednp+color@1.0.14/node_modules/@thednp/color/dist/index.mjs","../../src/ts/colorPalette.ts","../../src/ts/util/colorPickerLabels.ts","../../src/ts/util/colorNames.ts","../../src/ts/util/isValidJSON.ts","../../src/ts/util/vHidden.ts","../../src/ts/util/getColorForm.ts","../../src/ts/util/getColorControls.ts","../../src/ts/util/getColorMenu.ts","../../src/ts/util/setMarkup.ts","../../src/ts/index.ts"],"sourcesContent":["const Ce = \"2.0.11\", Me = \"aria-checked\", De = \"aria-description\", Le = \"aria-describedby\", Oe = \"aria-expanded\", xe = \"aria-haspopup\", X = \"aria-hidden\", ze = \"aria-label\", Ie = \"aria-labelledby\", Pe = \"aria-modal\", Fe = \"aria-pressed\", Be = \"aria-selected\", Ve = \"aria-valuemin\", He = \"aria-valuemax\", Ue = \"aria-valuenow\", We = \"aria-valuetext\", Y = \"abort\", tt = \"beforeunload\", et = \"blur\", nt = \"change\", ot = \"contextmenu\", U = \"DOMContentLoaded\", st = \"DOMMouseScroll\", rt = \"error\", ct = \"focus\", at = \"focusin\", it = \"focusout\", ut = \"gesturechange\", lt = \"gestureend\", dt = \"gesturestart\", ft = \"keydown\", pt = \"keypress\", gt = \"keyup\", mt = \"load\", vt = \"click\", bt = \"dblclick\", Et = \"mousedown\", ht = \"mouseup\", yt = \"hover\", wt = \"mouseenter\", At = \"mouseleave\", St = \"mousein\", kt = \"mouseout\", Nt = \"mouseover\", Tt = \"mousemove\", Ct = \"mousewheel\", Mt = \"move\", Dt = \"orientationchange\", Lt = \"pointercancel\", Ot = \"pointerdown\", xt = \"pointerleave\", zt = \"pointermove\", It = \"pointerup\", Pt = \"readystatechange\", Ft = \"reset\", Bt = \"resize\", Vt = \"select\", Ht = \"selectend\", Ut = \"selectstart\", Wt = \"scroll\", Rt = \"submit\", Qt = \"touchstart\", jt = \"touchmove\", Kt = \"touchcancel\", qt = \"touchend\", Gt = \"unload\", Re = {\n DOMContentLoaded: U,\n DOMMouseScroll: st,\n abort: Y,\n beforeunload: tt,\n blur: et,\n change: nt,\n click: vt,\n contextmenu: ot,\n dblclick: bt,\n error: rt,\n focus: ct,\n focusin: at,\n focusout: it,\n gesturechange: ut,\n gestureend: lt,\n gesturestart: dt,\n hover: yt,\n keydown: ft,\n keypress: pt,\n keyup: gt,\n load: mt,\n mousedown: Et,\n mousemove: Tt,\n mousein: St,\n mouseout: kt,\n mouseenter: wt,\n mouseleave: At,\n mouseover: Nt,\n mouseup: ht,\n mousewheel: Ct,\n move: Mt,\n orientationchange: Dt,\n pointercancel: Lt,\n pointerdown: Ot,\n pointerleave: xt,\n pointermove: zt,\n pointerup: It,\n readystatechange: Pt,\n reset: Ft,\n resize: Bt,\n scroll: Wt,\n select: Vt,\n selectend: Ht,\n selectstart: Ut,\n submit: Rt,\n touchcancel: Kt,\n touchend: qt,\n touchmove: jt,\n touchstart: Qt,\n unload: Gt\n}, Qe = \"drag\", je = \"dragstart\", Ke = \"dragenter\", qe = \"dragleave\", Ge = \"dragover\", Ze = \"dragend\", _e = \"loadstart\", $e = {\n start: \"mousedown\",\n end: \"mouseup\",\n move: \"mousemove\",\n cancel: \"mouseleave\"\n}, Je = { down: \"mousedown\", up: \"mouseup\" }, Xe = \"onmouseleave\" in document ? [\"mouseenter\", \"mouseleave\"] : [\"mouseover\", \"mouseout\"], Ye = {\n start: \"touchstart\",\n end: \"touchend\",\n move: \"touchmove\",\n cancel: \"touchcancel\"\n}, tn = { in: \"focusin\", out: \"focusout\" }, Zt = 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"]', en = {\n Backspace: \"Backspace\",\n Tab: \"Tab\",\n Enter: \"Enter\",\n Shift: \"Shift\",\n Control: \"Control\",\n Alt: \"Alt\",\n Pause: \"Pause\",\n CapsLock: \"CapsLock\",\n Escape: \"Escape\",\n Scape: \"Space\",\n ArrowLeft: \"ArrowLeft\",\n ArrowUp: \"ArrowUp\",\n ArrowRight: \"ArrowRight\",\n ArrowDown: \"ArrowDown\",\n Insert: \"Insert\",\n Delete: \"Delete\",\n Meta: \"Meta\",\n ContextMenu: \"ContextMenu\",\n ScrollLock: \"ScrollLock\"\n}, nn = \"Alt\", on = \"ArrowDown\", sn = \"ArrowUp\", rn = \"ArrowLeft\", cn = \"ArrowRight\", an = \"Backspace\", un = \"CapsLock\", ln = \"Control\", dn = \"Delete\", fn = \"Enter\", pn = \"NumpadEnter\", gn = \"Escape\", mn = \"Insert\", vn = \"Meta\", bn = \"Pause\", En = \"ScrollLock\", hn = \"Shift\", yn = \"Space\", wn = \"Tab\", _t = \"animationDuration\", $t = \"animationDelay\", W = \"animationName\", C = \"animationend\", Jt = \"transitionDuration\", Xt = \"transitionDelay\", M = \"transitionend\", R = \"transitionProperty\", An = \"addEventListener\", Sn = \"removeEventListener\", kn = {\n linear: \"linear\",\n easingSinusoidalIn: \"cubic-bezier(0.47,0,0.745,0.715)\",\n easingSinusoidalOut: \"cubic-bezier(0.39,0.575,0.565,1)\",\n easingSinusoidalInOut: \"cubic-bezier(0.445,0.05,0.55,0.95)\",\n easingQuadraticIn: \"cubic-bezier(0.550,0.085,0.680,0.530)\",\n easingQuadraticOut: \"cubic-bezier(0.250,0.460,0.450,0.940)\",\n easingQuadraticInOut: \"cubic-bezier(0.455,0.030,0.515,0.955)\",\n easingCubicIn: \"cubic-bezier(0.55,0.055,0.675,0.19)\",\n easingCubicOut: \"cubic-bezier(0.215,0.61,0.355,1)\",\n easingCubicInOut: \"cubic-bezier(0.645,0.045,0.355,1)\",\n easingQuarticIn: \"cubic-bezier(0.895,0.03,0.685,0.22)\",\n easingQuarticOut: \"cubic-bezier(0.165,0.84,0.44,1)\",\n easingQuarticInOut: \"cubic-bezier(0.77,0,0.175,1)\",\n easingQuinticIn: \"cubic-bezier(0.755,0.05,0.855,0.06)\",\n easingQuinticOut: \"cubic-bezier(0.23,1,0.32,1)\",\n easingQuinticInOut: \"cubic-bezier(0.86,0,0.07,1)\",\n easingExponentialIn: \"cubic-bezier(0.95,0.05,0.795,0.035)\",\n easingExponentialOut: \"cubic-bezier(0.19,1,0.22,1)\",\n easingExponentialInOut: \"cubic-bezier(1,0,0,1)\",\n easingCircularIn: \"cubic-bezier(0.6,0.04,0.98,0.335)\",\n easingCircularOut: \"cubic-bezier(0.075,0.82,0.165,1)\",\n easingCircularInOut: \"cubic-bezier(0.785,0.135,0.15,0.86)\",\n easingBackIn: \"cubic-bezier(0.6,-0.28,0.735,0.045)\",\n easingBackOut: \"cubic-bezier(0.175,0.885,0.32,1.275)\",\n easingBackInOut: \"cubic-bezier(0.68,-0.55,0.265,1.55)\"\n}, Nn = \"offsetHeight\", Tn = \"offsetWidth\", Cn = \"scrollHeight\", Mn = \"scrollWidth\", Dn = \"tabindex\", Ln = navigator.userAgentData, { userAgent: Yt } = navigator, On = Yt, xn = () => {\n const t = /iPhone|iPad|iPod|Android/i;\n return navigator?.userAgentData?.brands.some(\n (e) => t.test(e.brand)\n ) || t.test(navigator?.userAgent) || !1;\n}, zn = () => {\n const t = /(iPhone|iPod|iPad)/;\n return navigator?.userAgentData?.brands.some(\n (e) => t.test(e.brand)\n ) || t.test(\n navigator?.userAgent\n ) || !1;\n}, In = () => navigator?.userAgent?.includes(\"Firefox\") || !1, te = () => typeof CSS > \"u\" || !CSS.supports ? !1 : CSS.supports(\"-webkit-backdrop-filter\", \"none\"), Pn = () => [\"webkitPerspective\", \"perspective\"].some((t) => t in document.head.style), ee = () => {\n}, Q = (t, e, n, o) => {\n const s = o || !1;\n t.addEventListener(\n e,\n n,\n s\n );\n}, j = (t, e, n, o) => {\n const s = o || !1;\n t.removeEventListener(\n e,\n n,\n s\n );\n}, ne = (t, e, n, o) => {\n const s = (r) => {\n (r.target === t || r.currentTarget === t) && (n.apply(t, [r]), j(t, e, s, o));\n };\n Q(t, e, s, o);\n}, Fn = () => {\n let t = !1;\n try {\n const e = Object.defineProperty({}, \"passive\", {\n get: () => (t = !0, t)\n });\n ne(document, U, ee, e);\n } catch {\n }\n return t;\n}, Bn = () => [\"webkitTransform\", \"transform\"].some((t) => t in document.head.style), Vn = () => \"ontouchstart\" in window || \"msMaxTouchPoints\" in navigator, Hn = () => [\"webkitAnimation\", \"animation\"].some((t) => t in document.head.style), Un = () => [\"webkitTransition\", \"transition\"].some((t) => t in document.head.style), K = (t, e) => t.getAttribute(e), Wn = (t, e, n) => e.getAttributeNS(t, n), oe = (t, e) => t.hasAttribute(e), Rn = (t, e, n) => e.hasAttributeNS(t, n), Qn = (t, e, n) => t.setAttribute(e, n), jn = (t, e, n, o) => e.setAttributeNS(t, n, o), Kn = (t, e) => t.removeAttribute(e), qn = (t, e, n) => e.removeAttributeNS(t, n), Gn = (t, ...e) => {\n t.classList.add(...e);\n}, Zn = (t, ...e) => {\n t.classList.remove(...e);\n}, _n = (t, e) => t.classList.contains(e), { body: $n } = document, { documentElement: Jn } = document, { head: Xn } = document, Yn = (t) => Array.from(t), v = (t) => t != null && typeof t == \"object\" || !1, u = (t) => v(t) && typeof t.nodeType == \"number\" && [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].some(\n (e) => t.nodeType === e\n) || !1, i = (t) => u(t) && t.nodeType === 1 || !1, E = /* @__PURE__ */ new Map(), L = {\n data: E,\n set: (t, e, n) => {\n if (!i(t)) return;\n E.has(e) || E.set(e, /* @__PURE__ */ new Map()), E.get(e).set(t, n);\n },\n getAllFor: (t) => E.get(t) || null,\n get: (t, e) => {\n if (!i(t) || !e) return null;\n const n = L.getAllFor(e);\n return t && n && n.get(t) || null;\n },\n remove: (t, e) => {\n const n = L.getAllFor(e);\n !n || !i(t) || (n.delete(t), n.size === 0 && E.delete(e));\n }\n}, to = (t, e) => L.get(t, e), eo = (t) => t?.charAt(0).toUpperCase() + t?.slice(1), P = (t) => t?.trim().replace(\n /(?:^\\w|[A-Z]|\\b\\w)/g,\n (e, n) => n === 0 ? e.toLowerCase() : e.toUpperCase()\n).replace(/\\s+/g, \"\"), N = (t) => typeof t == \"string\" || !1, q = (t) => v(t) && t.constructor.name === \"Window\" || !1, G = (t) => u(t) && t.nodeType === 9 || !1, d = (t) => G(t) ? t : u(t) ? t.ownerDocument : q(t) ? t.document : globalThis.document, T = (t, ...e) => Object.assign(t, ...e), se = (t) => {\n if (!t) return;\n if (N(t))\n return d().createElement(t);\n const { tagName: e } = t, n = se(e);\n if (!n) return;\n const o = { ...t };\n return delete o.tagName, T(n, o);\n}, re = (t, e) => {\n if (!t || !e) return;\n if (N(e))\n return d().createElementNS(t, e);\n const { tagName: n } = e, o = re(t, n);\n if (!o) return;\n const s = { ...e };\n return delete s.tagName, T(o, s);\n}, Z = (t, e) => t.dispatchEvent(e), no = (t, e, n) => n.indexOf(t) === e, f = (t, e, n) => {\n const o = getComputedStyle(t, n), s = e.replace(\"webkit\", \"Webkit\").replace(/([A-Z])/g, \"-$1\").toLowerCase();\n return o.getPropertyValue(s);\n}, ce = (t) => {\n const e = f(t, W), n = f(t, $t), o = n.includes(\"ms\") ? 1 : 1e3, s = e && e !== \"none\" ? parseFloat(n) * o : 0;\n return Number.isNaN(s) ? 0 : s;\n}, ae = (t) => {\n const e = f(t, W), n = f(t, _t), o = n.includes(\"ms\") ? 1 : 1e3, s = e && e !== \"none\" ? parseFloat(n) * o : 0;\n return Number.isNaN(s) ? 0 : s;\n}, oo = (t, e) => {\n let n = 0;\n const o = new Event(C), s = ae(t), r = ce(t);\n if (s) {\n const a = (l) => {\n l.target === t && (e.apply(t, [l]), t.removeEventListener(C, a), n = 1);\n };\n t.addEventListener(C, a), setTimeout(() => {\n n || Z(t, o);\n }, s + r + 17);\n } else\n e.apply(t, [o]);\n}, ie = (t) => {\n const e = f(t, R), n = f(t, Xt), o = n.includes(\"ms\") ? 1 : 1e3, s = e && e !== \"none\" ? parseFloat(n) * o : 0;\n return Number.isNaN(s) ? 0 : s;\n}, ue = (t) => {\n const e = f(t, R), n = f(t, Jt), o = n.includes(\"ms\") ? 1 : 1e3, s = e && e !== \"none\" ? parseFloat(n) * o : 0;\n return Number.isNaN(s) ? 0 : s;\n}, so = (t, e) => {\n let n = 0;\n const o = new Event(M), s = ue(t), r = ie(t);\n if (s) {\n const a = (l) => {\n l.target === t && (e.apply(t, [l]), t.removeEventListener(M, a), n = 1);\n };\n t.addEventListener(M, a), setTimeout(() => {\n n || Z(t, o);\n }, s + r + 17);\n } else\n e.apply(t, [o]);\n}, ro = (t) => Float32Array.from(Array.from(t)), co = (t) => Float64Array.from(Array.from(t)), ao = (t, e) => t.focus(e), io = (t) => t?.trim().replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/\\s+/g, \"-\").toLowerCase(), F = (t) => [\"true\", !0].includes(t) ? !0 : [\"false\", !1].includes(t) ? !1 : [\"null\", \"\", null, void 0].includes(t) ? null : t !== \"\" && !Number.isNaN(+t) ? +t : t, S = (t) => Object.entries(t), uo = (t, e, n, o) => {\n if (!i(t)) return e;\n const s = { ...n }, r = { ...t.dataset }, a = { ...e }, l = {}, p = \"title\";\n return S(r).forEach(([c, g]) => {\n const A = o && typeof c == \"string\" && c.includes(o) ? P(c.replace(o, \"\")) : P(c);\n l[A] = F(g);\n }), S(s).forEach(([c, g]) => {\n s[c] = F(g);\n }), S(e).forEach(([c, g]) => {\n c in s ? a[c] = s[c] : c in l ? a[c] = l[c] : a[c] = c === p ? K(t, p) : g;\n }), a;\n}, lo = (t, e) => v(t) && (Object.hasOwn(t, e) || e in t), fo = (t) => Object.keys(t), po = (t) => Object.values(t), go = (t) => Object.fromEntries(t), mo = (t, e) => {\n const n = new CustomEvent(t, {\n cancelable: !0,\n bubbles: !0\n });\n return v(e) && T(n, e), n;\n}, vo = { passive: !0 }, bo = (t) => t.offsetHeight, Eo = (t, e) => {\n S(e).forEach(([n, o]) => {\n if (o && N(n) && n.includes(\"--\"))\n t.style.setProperty(n, o);\n else {\n const s = {};\n s[n] = o, T(t.style, s);\n }\n });\n}, O = (t) => v(t) && t.constructor.name === \"Map\" || !1, le = (t) => typeof t == \"number\" || !1, m = /* @__PURE__ */ new Map(), ho = {\n set: (t, e, n, o) => {\n i(t) && (o && o.length ? (m.has(t) || m.set(t, /* @__PURE__ */ new Map()), m.get(t).set(o, setTimeout(e, n))) : m.set(t, setTimeout(e, n)));\n },\n get: (t, e) => {\n if (!i(t)) return null;\n const n = m.get(t);\n return e && n && O(n) ? n.get(e) || null : le(n) ? n : null;\n },\n clear: (t, e) => {\n if (!i(t)) return;\n const n = m.get(t);\n e && e.length && O(n) ? (clearTimeout(n.get(e)), n.delete(e), n.size === 0 && m.delete(t)) : (clearTimeout(n), m.delete(t));\n }\n}, yo = (t) => t.toLowerCase(), wo = (t) => t.toUpperCase(), de = (t, e) => (u(e) ? e : d()).querySelectorAll(t), z = /* @__PURE__ */ new Map();\nfunction _(t) {\n const { shiftKey: e, code: n } = t, o = d(this), s = [\n ...de(Zt, this)\n ].filter(\n (l) => !oe(l, \"disabled\") && !K(l, X)\n );\n if (!s.length) return;\n const r = s[0], a = s[s.length - 1];\n n === \"Tab\" && (e && o.activeElement === r ? (a.focus(), t.preventDefault()) : !e && o.activeElement === a && (r.focus(), t.preventDefault()));\n}\nconst I = (t) => z.has(t) === !0, fe = (t) => {\n I(t) || (Q(t, \"keydown\", _), z.set(t, !0));\n}, pe = (t) => {\n I(t) && (j(t, \"keydown\", _), z.delete(t));\n}, Ao = (t) => {\n I(t) ? pe(t) : fe(t);\n}, b = (t) => i(t) && \"offsetWidth\" in t || !1, y = (t, e) => {\n const { width: n, height: o, top: s, right: r, bottom: a, left: l } = t.getBoundingClientRect();\n let p = 1, c = 1;\n if (e && b(t)) {\n const { offsetWidth: g, offsetHeight: A } = t;\n p = g > 0 ? Math.round(n) / g : 1, c = A > 0 ? Math.round(o) / A : 1;\n }\n return {\n width: n / p,\n height: o / c,\n top: s / c,\n right: r / p,\n bottom: a / c,\n left: l / p,\n x: l / p,\n y: s / c\n };\n}, So = (t) => d(t).body, w = (t) => d(t).documentElement, ko = (t) => d(t).head, ge = (t) => u(t) ? (t.nodeName || \"\").toLowerCase() : \"#document\", No = (t) => {\n const e = q(t), n = e ? t.scrollX : t.scrollLeft, o = e ? t.scrollY : t.scrollTop;\n return { x: n, y: o };\n}, me = (t) => u(t) && t.constructor.name === \"ShadowRoot\" || !1, k = (t) => t.nodeName === \"HTML\" ? t : i(t) && t.assignedSlot || u(t) && t.parentNode || me(t) && t.host || w(t), ve = (t) => t ? G(t) ? t.defaultView : u(t) ? t?.ownerDocument?.defaultView : t : window, be = (t) => u(t) && [\"TABLE\", \"TD\", \"TH\"].includes(t.nodeName) || !1, Ee = (t, e) => t.matches(e), D = (t) => f(t, \"position\") === \"static\", he = (t) => f(t, \"position\") === \"fixed\", $ = (t) => [\":popover-open\", \":modal\"].some((e) => {\n try {\n return Ee(t, e);\n } catch {\n return !1;\n }\n}), J = (t) => {\n const e = te(), n = i(t) ? getComputedStyle(t) : t;\n return n.transform !== \"none\" || n.perspective !== \"none\" || (n.containerType ? n.containerType !== \"normal\" : !1) || !e && (n.backdropFilter ? n.backdropFilter !== \"none\" : !1) || !e && (n.filter ? n.filter !== \"none\" : !1) || [\"transform\", \"perspective\", \"filter\"].some(\n (o) => (n.willChange || \"\").includes(o)\n ) || [\"paint\", \"layout\", \"strict\", \"content\"].some(\n (o) => (n.contain || \"\").includes(o)\n );\n}, ye = (t) => {\n let e = k(t);\n for (; i(e) && !x(e); ) {\n if (J(e))\n return e;\n if ($(e))\n return null;\n e = k(e);\n }\n return null;\n}, x = (t) => [\"html\", \"body\", \"#document\"].includes(ge(t)), B = (t) => {\n if (!b(t) || he(t))\n return null;\n let e = t.offsetParent;\n return w(t) === e && (e = e.ownerDocument.body), e;\n}, To = (t) => {\n const e = ve(t);\n if (!u(t) || $(t))\n return e;\n if (!b(t)) {\n let o = k(t);\n for (; o && !x(o); ) {\n if (i(o) && !D(o))\n return o;\n o = k(o);\n }\n return e;\n }\n let n = B(t);\n for (; n && be(n) && D(n); )\n n = B(n);\n return n && x(n) && D(n) && !J(n) ? e : n || ye(t) || e;\n}, we = (t) => {\n if (!b(t)) return !1;\n const { width: e, height: n } = y(t), { offsetWidth: o, offsetHeight: s } = t;\n return Math.round(e) !== o || Math.round(n) !== s;\n}, Co = (t, e, n) => {\n const o = b(e), s = y(\n t,\n o && we(e)\n ), r = { x: 0, y: 0 };\n if (o) {\n const a = y(e, !0);\n r.x = a.x + e.clientLeft, r.y = a.y + e.clientTop;\n }\n return {\n x: s.left + n.x - r.x,\n y: s.top + n.y - r.y,\n width: s.width,\n height: s.height\n };\n};\nlet V = 0, H = 0;\nconst h = /* @__PURE__ */ new Map(), Ae = (t, e) => {\n let n = e ? V : H;\n if (e) {\n const o = Ae(t), s = h.get(o) || /* @__PURE__ */ new Map();\n h.has(o) || h.set(o, s), O(s) && !s.has(e) ? (s.set(e, n), V += 1) : n = s.get(e);\n } else {\n const o = t.id || t;\n h.has(o) ? n = h.get(o) : (h.set(o, n), H += 1);\n }\n return n;\n}, Se = (t) => Array.isArray(t) || !1, Mo = (t) => u(t) && t.nodeName === \"CANVAS\" || !1, ke = (t) => b(t) && !!t.shadowRoot || !1, Do = (t) => {\n if (!u(t)) return !1;\n const { top: e, bottom: n } = y(t), { clientHeight: o } = w(t);\n return e <= o && n >= 0;\n}, Lo = (t) => {\n if (!i(t)) return !1;\n const { clientWidth: e, clientHeight: n } = w(t), { top: o, left: s, bottom: r, right: a } = y(t, !0);\n return o >= 0 && s >= 0 && r <= n && a <= e;\n}, Oo = (t) => Se(t) && t.every(i) || !1, xo = (t) => typeof t == \"function\" || !1, zo = (t) => v(t) && t.constructor.name === \"HTMLCollection\" || !1, Io = (t) => b(t) && t.tagName === \"IMG\" || !1, Po = (t) => {\n if (!N(t)) return !1;\n try {\n JSON.parse(t);\n } catch {\n return !1;\n }\n return !0;\n}, Fo = (t) => v(t) && t.constructor.name === \"WeakMap\" || !1, Bo = (t) => u(t) && [\"SVG\", \"Image\", \"Video\", \"Canvas\"].some(\n (e) => t.constructor.name.includes(e)\n) || !1, Vo = (t) => v(t) && t.constructor.name === \"NodeList\" || !1, Ho = (t) => w(t).dir === \"rtl\", Uo = (t) => u(t) && t.constructor.name.includes(\"SVG\") || !1, Ne = (t, e) => !t || !e ? null : t.closest(e) || Ne(t.getRootNode().host, e) || null, Wo = (t, e) => i(t) ? t : (i(e) ? e : d()).querySelector(t), Te = (t, e) => (u(e) ? e : d()).getElementsByTagName(\n t\n), Ro = (t) => [...Te(\"*\", t)].filter(ke), Qo = (t, e) => d(e).getElementById(t), jo = (t, e) => (e && u(e) ? e : d()).getElementsByClassName(\n t\n);\nexport {\n Yn as ArrayFrom,\n U as DOMContentLoadedEvent,\n st as DOMMouseScrollEvent,\n L as Data,\n ro as Float32ArrayFrom,\n co as Float64ArrayFrom,\n T as ObjectAssign,\n S as ObjectEntries,\n go as ObjectFromEntries,\n lo as ObjectHasOwn,\n fo as ObjectKeys,\n po as ObjectValues,\n ho as Timer,\n Y as abortEvent,\n Gn as addClass,\n An as addEventListener,\n fe as addFocusTrap,\n $t as animationDelay,\n _t as animationDuration,\n C as animationEndEvent,\n W as animationName,\n Me as ariaChecked,\n Le as ariaDescribedBy,\n De as ariaDescription,\n Oe as ariaExpanded,\n xe as ariaHasPopup,\n X as ariaHidden,\n ze as ariaLabel,\n Ie as ariaLabelledBy,\n Pe as ariaModal,\n Fe as ariaPressed,\n Be as ariaSelected,\n He as ariaValueMax,\n Ve as ariaValueMin,\n Ue as ariaValueNow,\n We as ariaValueText,\n tt as beforeunloadEvent,\n kn as bezierEasings,\n et as blurEvent,\n P as camelCase,\n eo as capitalize,\n nt as changeEvent,\n Ne as closest,\n ot as contextmenuEvent,\n mo as createCustomEvent,\n se as createElement,\n re as createElementNS,\n Z as dispatchEvent,\n no as distinct,\n $n as documentBody,\n Jn as documentElement,\n Xn as documentHead,\n Qe as dragEvent,\n Ze as dragendEvent,\n Ke as dragenterEvent,\n qe as dragleaveEvent,\n Ge as dragoverEvent,\n je as dragstartEvent,\n oo as emulateAnimationEnd,\n so as emulateTransitionEnd,\n rt as errorEvent,\n ao as focus,\n ct as focusEvent,\n tn as focusEvents,\n Zt as focusableSelector,\n at as focusinEvent,\n it as focusoutEvent,\n ut as gesturechangeEvent,\n lt as gestureendEvent,\n dt as gesturestartEvent,\n K as getAttribute,\n Wn as getAttributeNS,\n y as getBoundingClientRect,\n Ro as getCustomElements,\n d as getDocument,\n So as getDocumentBody,\n w as getDocumentElement,\n ko as getDocumentHead,\n ce as getElementAnimationDelay,\n ae as getElementAnimationDuration,\n Qo as getElementById,\n f as getElementStyle,\n ie as getElementTransitionDelay,\n ue as getElementTransitionDuration,\n jo as getElementsByClassName,\n Te as getElementsByTagName,\n to as getInstance,\n ge as getNodeName,\n No as getNodeScroll,\n To as getOffsetParent,\n k as getParentNode,\n Co as getRectRelativeToOffsetParent,\n Ae as getUID,\n ve as getWindow,\n _ as handleKeyboardNavigation,\n oe as hasAttribute,\n Rn as hasAttributeNS,\n _n as hasClass,\n I as hasFocusTrap,\n zn as isApple,\n Se as isArray,\n Mo as isCanvas,\n ke as isCustomElement,\n G as isDocument,\n i as isElement,\n Do as isElementInScrollRange,\n Lo as isElementInViewport,\n Oo as isElementsArray,\n In as isFirefox,\n xo as isFunction,\n zo as isHTMLCollection,\n b as isHTMLElement,\n Io as isHTMLImageElement,\n Po as isJSON,\n O as isMap,\n Bo as isMedia,\n xn as isMobile,\n u as isNode,\n Vo as isNodeList,\n le as isNumber,\n v as isObject,\n Ho as isRTL,\n Uo as isSVGElement,\n we as isScaledElement,\n me as isShadowRoot,\n N as isString,\n be as isTableElement,\n Fo as isWeakMap,\n te as isWebKit,\n q as isWindow,\n io as kebabCase,\n nn as keyAlt,\n on as keyArrowDown,\n rn as keyArrowLeft,\n cn as keyArrowRight,\n sn as keyArrowUp,\n an as keyBackspace,\n un as keyCapsLock,\n ln as keyControl,\n dn as keyDelete,\n fn as keyEnter,\n gn as keyEscape,\n mn as keyInsert,\n vn as keyMeta,\n pn as keyNumpadEnter,\n bn as keyPause,\n En as keyScrollLock,\n hn as keyShift,\n yn as keySpace,\n wn as keyTab,\n en as keyboardEventKeys,\n ft as keydownEvent,\n pt as keypressEvent,\n gt as keyupEvent,\n mt as loadEvent,\n _e as loadstartEvent,\n Ee as matches,\n Je as mouseClickEvents,\n Xe as mouseHoverEvents,\n $e as mouseSwipeEvents,\n vt as mouseclickEvent,\n bt as mousedblclickEvent,\n Et as mousedownEvent,\n wt as mouseenterEvent,\n yt as mousehoverEvent,\n St as mouseinEvent,\n At as mouseleaveEvent,\n Tt as mousemoveEvent,\n kt as mouseoutEvent,\n Nt as mouseoverEvent,\n ht as mouseupEvent,\n Ct as mousewheelEvent,\n Mt as moveEvent,\n Re as nativeEvents,\n ee as noop,\n uo as normalizeOptions,\n F as normalizeValue,\n j as off,\n Nn as offsetHeight,\n Tn as offsetWidth,\n Q as on,\n ne as one,\n Dt as orientationchangeEvent,\n vo as passiveHandler,\n Lt as pointercancelEvent,\n Ot as pointerdownEvent,\n xt as pointerleaveEvent,\n zt as pointermoveEvent,\n It as pointerupEvent,\n Wo as querySelector,\n de as querySelectorAll,\n Pt as readystatechangeEvent,\n bo as reflow,\n Kn as removeAttribute,\n qn as removeAttributeNS,\n Zn as removeClass,\n Sn as removeEventListener,\n pe as removeFocusTrap,\n Ft as resetEvent,\n Bt as resizeEvent,\n Wt as scrollEvent,\n Cn as scrollHeight,\n Mn as scrollWidth,\n Vt as selectEvent,\n Ht as selectendEvent,\n Ut as selectstartEvent,\n Qn as setAttribute,\n jn as setAttributeNS,\n Eo as setElementStyle,\n Rt as submitEvent,\n Pn as support3DTransform,\n Hn as supportAnimation,\n Fn as supportPassive,\n Vn as supportTouch,\n Bn as supportTransform,\n Un as supportTransition,\n Dn as tabindex,\n yo as toLowerCase,\n wo as toUpperCase,\n Ao as toggleFocusTrap,\n Ye as touchEvents,\n Kt as touchcancelEvent,\n qt as touchendEvent,\n jt as touchmoveEvent,\n Qt as touchstartEvent,\n Xt as transitionDelay,\n Jt as transitionDuration,\n M as transitionEndEvent,\n R as transitionProperty,\n Gt as unloadEvent,\n On as userAgent,\n Ln as userAgentData,\n Ce as version\n};\n//# sourceMappingURL=shorty.mjs.map\n","const I = [\n \"transparent\",\n \"currentColor\",\n \"inherit\",\n \"revert\",\n \"initial\"\n], i = (o) => {\n const t = Math.floor(o);\n return o - t < 0.5 ? t : Math.round(o);\n}, T = [\n [\n \"aliceblue\",\n {\n r: 240,\n g: 248,\n b: 255\n }\n ],\n [\n \"antiquewhite\",\n {\n r: 250,\n g: 235,\n b: 215\n }\n ],\n [\n \"aqua\",\n {\n r: 0,\n g: 255,\n b: 255\n }\n ],\n [\n \"aquamarine\",\n {\n r: 127,\n g: 255,\n b: 212\n }\n ],\n [\n \"azure\",\n {\n r: 240,\n g: 255,\n b: 255\n }\n ],\n [\n \"beige\",\n {\n r: 245,\n g: 245,\n b: 220\n }\n ],\n [\n \"bisque\",\n {\n r: 255,\n g: 228,\n b: 196\n }\n ],\n [\n \"black\",\n {\n r: 0,\n g: 0,\n b: 0\n }\n ],\n [\n \"blanchedalmond\",\n {\n r: 255,\n g: 235,\n b: 205\n }\n ],\n [\n \"blue\",\n {\n r: 0,\n g: 0,\n b: 255\n }\n ],\n [\n \"blueviolet\",\n {\n r: 138,\n g: 43,\n b: 226\n }\n ],\n [\n \"brown\",\n {\n r: 165,\n g: 42,\n b: 42\n }\n ],\n [\n \"burlywood\",\n {\n r: 222,\n g: 184,\n b: 135\n }\n ],\n [\n \"cadetblue\",\n {\n r: 95,\n g: 158,\n b: 160\n }\n ],\n [\n \"chartreuse\",\n {\n r: 127,\n g: 255,\n b: 0\n }\n ],\n [\n \"chocolate\",\n {\n r: 210,\n g: 105,\n b: 30\n }\n ],\n [\n \"coral\",\n {\n r: 255,\n g: 127,\n b: 80\n }\n ],\n [\n \"cornflowerblue\",\n {\n r: 100,\n g: 149,\n b: 237\n }\n ],\n [\n \"cornsilk\",\n {\n r: 255,\n g: 248,\n b: 220\n }\n ],\n [\n \"crimson\",\n {\n r: 220,\n g: 20,\n b: 60\n }\n ],\n [\n \"cyan\",\n {\n r: 0,\n g: 255,\n b: 255\n }\n ],\n [\n \"darkblue\",\n {\n r: 0,\n g: 0,\n b: 139\n }\n ],\n [\n \"darkcyan\",\n {\n r: 0,\n g: 139,\n b: 139\n }\n ],\n [\n \"darkgoldenrod\",\n {\n r: 184,\n g: 134,\n b: 11\n }\n ],\n [\n \"darkgray\",\n {\n r: 169,\n g: 169,\n b: 169\n }\n ],\n [\n \"darkgreen\",\n {\n r: 0,\n g: 100,\n b: 0\n }\n ],\n [\n \"darkgrey\",\n {\n r: 169,\n g: 169,\n b: 169\n }\n ],\n [\n \"darkkhaki\",\n {\n r: 189,\n g: 183,\n b: 107\n }\n ],\n [\n \"darkmagenta\",\n {\n r: 139,\n g: 0,\n b: 139\n }\n ],\n [\n \"darkolivegreen\",\n {\n r: 85,\n g: 107,\n b: 47\n }\n ],\n [\n \"darkorange\",\n {\n r: 255,\n g: 140,\n b: 0\n }\n ],\n [\n \"darkorchid\",\n {\n r: 153,\n g: 50,\n b: 204\n }\n ],\n [\n \"darkred\",\n {\n r: 139,\n g: 0,\n b: 0\n }\n ],\n [\n \"darksalmon\",\n {\n r: 233,\n g: 150,\n b: 122\n }\n ],\n [\n \"darkseagreen\",\n {\n r: 143,\n g: 188,\n b: 143\n }\n ],\n [\n \"darkslateblue\",\n {\n r: 72,\n g: 61,\n b: 139\n }\n ],\n [\n \"darkslategray\",\n {\n r: 47,\n g: 79,\n b: 79\n }\n ],\n [\n \"darkslategrey\",\n {\n r: 47,\n g: 79,\n b: 79\n }\n ],\n [\n \"darkturquoise\",\n {\n r: 0,\n g: 206,\n b: 209\n }\n ],\n [\n \"darkviolet\",\n {\n r: 148,\n g: 0,\n b: 211\n }\n ],\n [\n \"deeppink\",\n {\n r: 255,\n g: 20,\n b: 147\n }\n ],\n [\n \"deepskyblue\",\n {\n r: 0,\n g: 191,\n b: 255\n }\n ],\n [\n \"dimgray\",\n {\n r: 105,\n g: 105,\n b: 105\n }\n ],\n [\n \"dimgrey\",\n {\n r: 105,\n g: 105,\n b: 105\n }\n ],\n [\n \"dodgerblue\",\n {\n r: 30,\n g: 144,\n b: 255\n }\n ],\n [\n \"firebrick\",\n {\n r: 178,\n g: 34,\n b: 34\n }\n ],\n [\n \"floralwhite\",\n {\n r: 255,\n g: 250,\n b: 240\n }\n ],\n [\n \"forestgreen\",\n {\n r: 34,\n g: 139,\n b: 34\n }\n ],\n [\n \"fuchsia\",\n {\n r: 255,\n g: 0,\n b: 255\n }\n ],\n [\n \"gainsboro\",\n {\n r: 220,\n g: 220,\n b: 220\n }\n ],\n [\n \"ghostwhite\",\n {\n r: 248,\n g: 248,\n b: 255\n }\n ],\n [\n \"goldenrod\",\n {\n r: 218,\n g: 165,\n b: 32\n }\n ],\n [\n \"gold\",\n {\n r: 255,\n g: 215,\n b: 0\n }\n ],\n [\n \"gray\",\n {\n r: 128,\n g: 128,\n b: 128\n }\n ],\n [\n \"green\",\n {\n r: 0,\n g: 128,\n b: 0\n }\n ],\n [\n \"greenyellow\",\n {\n r: 173,\n g: 255,\n b: 47\n }\n ],\n [\n \"grey\",\n {\n r: 128,\n g: 128,\n b: 128\n }\n ],\n [\n \"honeydew\",\n {\n r: 240,\n g: 255,\n b: 240\n }\n ],\n [\n \"hotpink\",\n {\n r: 255,\n g: 105,\n b: 180\n }\n ],\n [\n \"indianred\",\n {\n r: 205,\n g: 92,\n b: 92\n }\n ],\n [\n \"indigo\",\n {\n r: 75,\n g: 0,\n b: 130\n }\n ],\n [\n \"ivory\",\n {\n r: 255,\n g: 255,\n b: 240\n }\n ],\n [\n \"khaki\",\n {\n r: 240,\n g: 230,\n b: 140\n }\n ],\n [\n \"lavenderblush\",\n {\n r: 255,\n g: 240,\n b: 245\n }\n ],\n [\n \"lavender\",\n {\n r: 230,\n g: 230,\n b: 250\n }\n ],\n [\n \"lawngreen\",\n {\n r: 124,\n g: 252,\n b: 0\n }\n ],\n [\n \"lemonchiffon\",\n {\n r: 255,\n g: 250,\n b: 205\n }\n ],\n [\n \"lightblue\",\n {\n r: 173,\n g: 216,\n b: 230\n }\n ],\n [\n \"lightcoral\",\n {\n r: 240,\n g: 128,\n b: 128\n }\n ],\n [\n \"lightcyan\",\n {\n r: 224,\n g: 255,\n b: 255\n }\n ],\n [\n \"lightgoldenrodyellow\",\n {\n r: 250,\n g: 250,\n b: 210\n }\n ],\n [\n \"lightgray\",\n {\n r: 211,\n g: 211,\n b: 211\n }\n ],\n [\n \"lightgreen\",\n {\n r: 144,\n g: 238,\n b: 144\n }\n ],\n [\n \"lightgrey\",\n {\n r: 211,\n g: 211,\n b: 211\n }\n ],\n [\n \"lightpink\",\n {\n r: 255,\n g: 182,\n b: 193\n }\n ],\n [\n \"lightsalmon\",\n {\n r: 255,\n g: 160,\n b: 122\n }\n ],\n [\n \"lightseagreen\",\n {\n r: 32,\n g: 178,\n b: 170\n }\n ],\n [\n \"lightskyblue\",\n {\n r: 135,\n g: 206,\n b: 250\n }\n ],\n [\n \"lightslategray\",\n {\n r: 119,\n g: 136,\n b: 153\n }\n ],\n [\n \"lightslategrey\",\n {\n r: 119,\n g: 136,\n b: 153\n }\n ],\n [\n \"lightsteelblue\",\n {\n r: 176,\n g: 196,\n b: 222\n }\n ],\n [\n \"lightyellow\",\n {\n r: 255,\n g: 255,\n b: 224\n }\n ],\n [\n \"lime\",\n {\n r: 0,\n g: 255,\n b: 0\n }\n ],\n [\n \"limegreen\",\n {\n r: 50,\n g: 205,\n b: 50\n }\n ],\n [\n \"linen\",\n {\n r: 250,\n g: 240,\n b: 230\n }\n ],\n [\n \"magenta\",\n {\n r: 255,\n g: 0,\n b: 255\n }\n ],\n [\n \"maroon\",\n {\n r: 128,\n g: 0,\n b: 0\n }\n ],\n [\n \"mediumaquamarine\",\n {\n r: 102,\n g: 205,\n b: 170\n }\n ],\n [\n \"mediumblue\",\n {\n r: 0,\n g: 0,\n b: 205\n }\n ],\n [\n \"mediumorchid\",\n {\n r: 186,\n g: 85,\n b: 211\n }\n ],\n [\n \"mediumpurple\",\n {\n r: 147,\n g: 112,\n b: 219\n }\n ],\n [\n \"mediumseagreen\",\n {\n r: 60,\n g: 179,\n b: 113\n }\n ],\n [\n \"mediumslateblue\",\n {\n r: 123,\n g: 104,\n b: 238\n }\n ],\n [\n \"mediumspringgreen\",\n {\n r: 0,\n g: 250,\n b: 154\n }\n ],\n [\n \"mediumturquoise\",\n {\n r: 72,\n g: 209,\n b: 204\n }\n ],\n [\n \"mediumvioletred\",\n {\n r: 199,\n g: 21,\n b: 133\n }\n ],\n [\n \"midnightblue\",\n {\n r: 25,\n g: 25,\n b: 112\n }\n ],\n [\n \"mintcream\",\n {\n r: 245,\n g: 255,\n b: 250\n }\n ],\n [\n \"mistyrose\",\n {\n r: 255,\n g: 228,\n b: 225\n }\n ],\n [\n \"moccasin\",\n {\n r: 255,\n g: 228,\n b: 181\n }\n ],\n [\n \"navajowhite\",\n {\n r: 255,\n g: 222,\n b: 173\n }\n ],\n [\n \"navy\",\n {\n r: 0,\n g: 0,\n b: 128\n }\n ],\n [\n \"oldlace\",\n {\n r: 253,\n g: 245,\n b: 230\n }\n ],\n [\n \"olive\",\n {\n r: 128,\n g: 128,\n b: 0\n }\n ],\n [\n \"olivedrab\",\n {\n r: 107,\n g: 142,\n b: 35\n }\n ],\n [\n \"orange\",\n {\n r: 255,\n g: 165,\n b: 0\n }\n ],\n [\n \"orangered\",\n {\n r: 255,\n g: 69,\n b: 0\n }\n ],\n [\n \"orchid\",\n {\n r: 218,\n g: 112,\n b: 214\n }\n ],\n [\n \"palegoldenrod\",\n {\n r: 238,\n g: 232,\n b: 170\n }\n ],\n [\n \"palegreen\",\n {\n r: 152,\n g: 251,\n b: 152\n }\n ],\n [\n \"paleturquoise\",\n {\n r: 175,\n g: 238,\n b: 238\n }\n ],\n [\n \"palevioletred\",\n {\n r: 219,\n g: 112,\n b: 147\n }\n ],\n [\n \"papayawhip\",\n {\n r: 255,\n g: 239,\n b: 213\n }\n ],\n [\n \"peachpuff\",\n {\n r: 255,\n g: 218,\n b: 185\n }\n ],\n [\n \"peru\",\n {\n r: 205,\n g: 133,\n b: 63\n }\n ],\n [\n \"pink\",\n {\n r: 255,\n g: 192,\n b: 203\n }\n ],\n [\n \"plum\",\n {\n r: 221,\n g: 160,\n b: 221\n }\n ],\n [\n \"powderblue\",\n {\n r: 176,\n g: 224,\n b: 230\n }\n ],\n [\n \"purple\",\n {\n r: 128,\n g: 0,\n b: 128\n }\n ],\n [\n \"rebeccapurple\",\n {\n r: 102,\n g: 51,\n b: 153\n }\n ],\n [\n \"red\",\n {\n r: 255,\n g: 0,\n b: 0\n }\n ],\n [\n \"rosybrown\",\n {\n r: 188,\n g: 143,\n b: 143\n }\n ],\n [\n \"royalblue\",\n {\n r: 65,\n g: 105,\n b: 225\n }\n ],\n [\n \"saddlebrown\",\n {\n r: 139,\n g: 69,\n b: 19\n }\n ],\n [\n \"salmon\",\n {\n r: 250,\n g: 128,\n b: 114\n }\n ],\n [\n \"sandybrown\",\n {\n r: 244,\n g: 164,\n b: 96\n }\n ],\n [\n \"seagreen\",\n {\n r: 46,\n g: 139,\n b: 87\n }\n ],\n [\n \"seashell\",\n {\n r: 255,\n g: 245,\n b: 238\n }\n ],\n [\n \"sienna\",\n {\n r: 160,\n g: 82,\n b: 45\n }\n ],\n [\n \"silver\",\n {\n r: 192,\n g: 192,\n b: 192\n }\n ],\n [\n \"skyblue\",\n {\n r: 135,\n g: 206,\n b: 235\n }\n ],\n [\n \"slateblue\",\n {\n r: 106,\n g: 90,\n b: 205\n }\n ],\n [\n \"slategray\",\n {\n r: 112,\n g: 128,\n b: 144\n }\n ],\n [\n \"slategrey\",\n {\n r: 112,\n g: 128,\n b: 144\n }\n ],\n [\n \"snow\",\n {\n r: 255,\n g: 250,\n b: 250\n }\n ],\n [\n \"springgreen\",\n {\n r: 0,\n g: 255,\n b: 127\n }\n ],\n [\n \"steelblue\",\n {\n r: 70,\n g: 130,\n b: 180\n }\n ],\n [\n \"tan\",\n {\n r: 210,\n g: 180,\n b: 140\n }\n ],\n [\n \"teal\",\n {\n r: 0,\n g: 128,\n b: 128\n }\n ],\n [\n \"thistle\",\n {\n r: 216,\n g: 191,\n b: 216\n }\n ],\n [\n \"tomato\",\n {\n r: 255,\n g: 99,\n b: 71\n }\n ],\n [\n \"turquoise\",\n {\n r: 64,\n g: 224,\n b: 208\n }\n ],\n [\n \"violet\",\n {\n r: 238,\n g: 130,\n b: 238\n }\n ],\n [\n \"wheat\",\n {\n r: 245,\n g: 222,\n b: 179\n }\n ],\n [\n \"white\",\n {\n r: 255,\n g: 255,\n b: 255\n }\n ],\n [\n \"whitesmoke\",\n {\n r: 245,\n g: 245,\n b: 245\n }\n ],\n [\n \"yellow\",\n {\n r: 255,\n g: 255,\n b: 0\n }\n ],\n [\n \"yellowgreen\",\n {\n r: 154,\n g: 205,\n b: 50\n }\n ]\n], U = \"deg|rad|grad|turn\", D = \"[-\\\\+]?\\\\d+%?\", L = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\", V = `[-\\\\+]?\\\\d*\\\\.?\\\\d+(?:${U})?`, x = `(?:${L})|(?:${D})`, F = `(?:${x})|(?:${V}?)`, tr = \"(?:[\\\\s|\\\\(\\\\s|\\\\s\\\\(\\\\s]+)?\", er = \"(?:[\\\\s|\\\\)\\\\s]+)?\", P = \"(?:[,|\\\\s]+)\", sr = \"(?:[,|\\\\/\\\\s]*)?\", w = `${tr}(${F})${P}(${x})${P}(${x})${sr}(${x})?${er}`, f = {\n CSS_UNIT: new RegExp(F),\n ANGLES: U,\n CSS_ANGLE: V,\n CSS_INTEGER: D,\n CSS_NUMBER: L,\n CSS_UNIT2: F,\n PERMISSIVE_MATCH: w,\n hwb: new RegExp(`hwb${w}`),\n rgb: new RegExp(`rgb(?:a)?${w}`),\n hsl: new RegExp(`hsl(?:a)?${w}`),\n hsv: new RegExp(`hsv(?:a)?${w}`),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n}, Z = (o) => I.includes(o), y = (o, t) => o !== null && typeof o == \"object\" && Object.keys(t).every((r) => r in o), z = (o) => `${o}`.includes(\".\") && parseFloat(o) === 1, O = (o) => typeof o == \"string\" && o.includes(\"%\"), c = (o) => !!f.CSS_UNIT.exec(`${o}`), J = [\"rgb\", \"hex\", \"hsl\", \"hsv\", \"hwb\"], K = (o) => I.includes(o) || [\"#\", ...J].some((t) => o.includes(t)) ? !1 : T.some(([t]) => o === t), _ = 1e-6, nr = (o, t) => Math.abs(o * t - t) < _ ? 1 : o < _ ? 0 : o, u = (o, t) => {\n let r = o;\n return z(o) && (r = \"100%\"), O(r) ? Number.parseFloat(r) / 100 : (r = typeof r != \"number\" ? Number.parseFloat(r) : r, t === 360 ? r = (r < 0 ? r % t + t : r > 360 ? r % t : r) / t : (r = Math.min(t, Math.max(0, r)), r = r / t), nr(r, t));\n}, N = (o) => {\n let t = parseFloat(o);\n return (Number.isNaN(t) || t < 0 || t > 1) && (t = 1), t;\n}, A = (o) => Math.min(1, Math.max(0, o)), d = (o) => o.length === 1 ? `0${o}` : String(o), Q = (o) => {\n const [[, t]] = T.filter(([r]) => r === o.toLowerCase());\n return t;\n}, h = (o) => parseInt(o, 16), M = (o) => h(o) / 255, X = (o) => i(o * 255).toString(16), G = (o, t, r) => {\n const e = Math.max(o, t, r), s = Math.min(o, t, r);\n let n = 0, g = 0;\n const a = (e + s) / 2;\n if (e === s)\n g = 0, n = 0;\n else {\n const b = e - s;\n g = a > 0.5 ? b / (2 - e - s) : b / (e + s), e === o && (n = (t - r) / b + (t < r ? 6 : 0)), e === t && (n = (r - o) / b + 2), e === r && (n = (o - t) / b + 4), n /= 6;\n }\n return { h: n, s: g, l: a };\n}, v = (o, t, r) => {\n let e = r;\n return e < 0 && (e += 1), e > 1 && (e -= 1), e < 1 / 6 ? o + (t - o) * (6 * e) : e < 1 / 2 ? t : e < 2 / 3 ? o + (t - o) * (2 / 3 - e) * 6 : o;\n}, S = (o, t, r) => {\n let e = 0, s = 0, n = 0;\n if (t === 0)\n s = r, n = r, e = r;\n else {\n const g = r < 0.5 ? r * (1 + t) : r + t - r * t, a = 2 * r - g;\n e = v(a, g, o + 1 / 3), s = v(a, g, o), n = v(a, g, o - 1 / 3);\n }\n return { r: e, g: s, b: n };\n}, j = (o, t, r) => {\n let e = 0, s = 0;\n const n = Math.min(o, t, r), g = Math.max(o, t, r), a = 1 - g;\n if (g === n) return { h: 0, w: n, b: a };\n o === n ? (e = t - r, s = 3) : (e = t === n ? r - o : o - t, s = t === n ? 5 : 1);\n const b = (s - e / (g - n)) / 6;\n return {\n h: b === 1 ? 0 : b,\n w: n,\n b: a\n };\n}, Y = (o, t, r) => {\n if (t + r >= 1) {\n const g = t / (t + r);\n return { r: g, g, b: g };\n }\n let { r: e, g: s, b: n } = S(o, 1, 0.5);\n return [e, s, n] = [e, s, n].map((g) => g * (1 - t - r) + t), { r: e, g: s, b: n };\n}, q = (o, t, r) => {\n const e = Math.max(o, t, r), s = Math.min(o, t, r);\n let n = 0;\n const g = e, a = e - s, b = e === 0 ? 0 : a / e;\n return e === s ? n = 0 : (o === e && (n = (t - r) / a + (t < r ? 6 : 0)), t === e && (n = (r - o) / a + 2), r === e && (n = (o - t) / a + 4), n /= 6), { h: n, s: b, v: g };\n}, E = (o, t, r) => {\n const e = o * 6, s = t, n = r, g = Math.floor(e), a = e - g, b = n * (1 - s), l = n * (1 - a * s), p = n * (1 - (1 - a) * s), $ = g % 6, m = [n, l, b, b, p, n][$], k = [p, n, n, l, b, b][$], H = [b, b, p, n, n, l][$];\n return { r: m, g: k, b: H };\n}, R = (o, t, r, e) => {\n const s = [\n d(i(o).toString(16)),\n d(i(t).toString(16)),\n d(i(r).toString(16))\n ];\n return e && s[0].charAt(0) === s[0].charAt(1) && s[1].charAt(0) === s[1].charAt(1) && s[2].charAt(0) === s[2].charAt(1) ? s[0].charAt(0) + s[1].charAt(0) + s[2].charAt(0) : s.join(\"\");\n}, C = (o, t, r, e, s) => {\n const n = [\n d(i(o).toString(16)),\n d(i(t).toString(16)),\n d(i(r).toString(16)),\n d(X(e))\n ];\n return s && n[0].charAt(0) === n[0].charAt(1) && n[1].charAt(0) === n[1].charAt(1) && n[2].charAt(0) === n[2].charAt(1) && n[3].charAt(0) === n[3].charAt(1) ? n[0].charAt(0) + n[1].charAt(0) + n[2].charAt(0) + n[3].charAt(0) : n.join(\"\");\n}, W = (o) => {\n const t = String(o).trim().toLowerCase();\n if (K(t))\n return Object.assign(Q(t), {\n a: 1,\n format: \"rgb\",\n ok: !0\n });\n if (Z(t))\n return {\n r: 0,\n g: 0,\n b: 0,\n a: t === \"transparent\" ? 0 : 1,\n format: \"rgb\",\n ok: !0\n };\n let [, r, e, s, n] = f.rgb.exec(t) || [];\n return r && e && s ? {\n r,\n g: e,\n b: s,\n a: n !== void 0 ? n : 1,\n format: \"rgb\",\n ok: !0\n } : ([, r, e, s, n] = f.hsl.exec(t) || [], r && e && s ? {\n h: r,\n s: e,\n l: s,\n a: n !== void 0 ? n : 1,\n format: \"hsl\",\n ok: !0\n } : ([, r, e, s, n] = f.hsv.exec(t) || [], r && e && s ? {\n h: r,\n s: e,\n v: s,\n a: n !== void 0 ? n : 1,\n format: \"hsv\",\n ok: !0\n } : ([, r, e, s, n] = f.hwb.exec(t) || [], r && e && s ? {\n h: r,\n w: e,\n b: s,\n a: n !== void 0 ? n : 1,\n format: \"hwb\",\n ok: !0\n } : ([, r, e, s, n] = f.hex8.exec(t) || [], r && e && s && n ? {\n r: h(r),\n g: h(e),\n b: h(s),\n a: M(n),\n format: \"hex\",\n ok: !0\n } : ([, r, e, s] = f.hex6.exec(t) || [], r && e && s ? {\n r: h(r),\n g: h(e),\n b: h(s),\n a: 1,\n format: \"hex\",\n ok: !0\n } : ([, r, e, s, n] = f.hex4.exec(t) || [], r && e && s && n ? {\n r: h(r + r),\n g: h(e + e),\n b: h(s + s),\n a: M(n + n),\n format: \"hex\",\n ok: !0\n } : ([, r, e, s] = f.hex3.exec(t) || [], r && e && s ? {\n r: h(r + r),\n g: h(e + e),\n b: h(s + s),\n a: 1,\n format: \"hex\",\n ok: !0\n } : {\n r: 0,\n g: 0,\n b: 0,\n a: 1,\n format: \"rgb\",\n ok: !o\n })))))));\n}, or = (o, t, r) => ({\n r: u(o, 255),\n g: u(t, 255),\n b: u(r, 255)\n}), B = (o) => {\n let t = { r: 0, g: 0, b: 0 }, r = o, e = 1, s, n, g, a, b, l, p, $, m = \"rgb\", k = !1;\n if ((!r || typeof r == \"string\") && (r = W(r), k = r.ok || k), y(r, t) && c(r.r) && c(r.g) && c(r.b)) {\n if ([\"format\", \"ok\", \"originalInput\"].every((H) => H in r))\n return { ...r };\n ({ r: p, g: $, b } = r), t = or(p, $, b), m = \"format\" in r ? r.format : \"rgb\";\n }\n return y(r, { h: 0, s: 0, v: 0 }) && c(r.h) && c(r.s) && c(r.v) && ({ h: l, s, v: n } = r, l = u(l, 360), s = u(s, 100), n = u(n, 100), t = E(l, s, n), m = \"hsv\"), y(r, { h: 0, s: 0, l: 0 }) && c(r.h) && c(r.s) && c(r.l) && ({ h: l, s, l: g } = r, l = u(l, 360), s = u(s, 100), g = u(g, 100), t = S(l, s, g), m = \"hsl\"), y(r, { h: 0, w: 0, b: 0 }) && c(r.h) && c(r.w) && c(r.b) && ({ h: l, w: a, b } = r, l = u(l, 360), a = u(a, 100), b = u(b, 100), t = Y(l, a, b), m = \"hwb\"), c(r.a) && (e = r.a, e = O(e) || parseFloat(`${e}`) > 1 ? u(e, 100) : e), {\n ...t,\n a: N(e),\n format: m,\n ok: k\n };\n}, gr = \"1.0.14\";\nclass rr {\n // bring main utilities to front\n static matchers = f;\n static isOnePointZero = z;\n static isPercentage = O;\n static isValidCSSUnit = c;\n static isNonColor = Z;\n static isColorName = K;\n static isColorType = y;\n static pad2 = d;\n static clamp01 = A;\n static bound01 = u;\n static boundAlpha = N;\n static getRGBFromName = Q;\n static convertHexToDecimal = M;\n static convertDecimalToHex = X;\n static rgbToHsl = G;\n static rgbToHex = R;\n static rgbToHsv = q;\n static rgbToHwb = j;\n static rgbaToHex = C;\n static hslToRgb = E;\n static hsvToRgb = E;\n static hueToRgb = v;\n static hwbToRgb = Y;\n static parseIntFromHex = h;\n static stringInputToObject = W;\n static inputToRGB = B;\n static roundPart = i;\n static webColors = T;\n static nonColors = I;\n static version = gr;\n // main public properties\n r;\n g;\n b;\n a;\n format;\n ok;\n originalInput;\n // main public methods\n constructor(t, r) {\n const e = r && J.includes(r) ? r : \"\", { r: s, g: n, b: g, a, ok: b, format: l } = B(t);\n this.originalInput = t, this.r = s, this.g = n, this.b = g, this.a = a, this.ok = b, this.format = e || l;\n }\n /**\n * Checks if the current input value is a valid colour.\n */\n get isValid() {\n return this.ok;\n }\n /**\n * Checks if the current colour requires a light text colour.\n */\n get isDark() {\n return this.brightness < 120;\n }\n /**\n * Returns the perceived luminance of a colour.\n *\n * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n */\n get luminance() {\n const { r: t, g: r, b: e } = this;\n let s = 0, n = 0, g = 0;\n return t <= 0.03928 ? s = t / 12.92 : s = ((t + 0.055) / 1.055) ** 2.4, r <= 0.03928 ? n = r / 12.92 : n = ((r + 0.055) / 1.055) ** 2.4, e <= 0.03928 ? g = e / 12.92 : g = ((e + 0.055) / 1.055) ** 2.4, 0.2126 * s + 0.7152 * n + 0.0722 * g;\n }\n /**\n * Returns the perceived brightness of the colour.\n */\n get brightness() {\n const { r: t, g: r, b: e } = this.toRgb();\n return (t * 299 + r * 587 + e * 114) / 1e3;\n }\n /**\n * Returns the web colour name closest to the current colour.\n */\n get name() {\n const { r: t, g: r, b: e } = this.toRgb(), [s] = T.map(([n, g]) => {\n const a = (\n // ((rgb.r - r) ** 2 + (rgb.g - g) ** 2 + (rgb.b - b) ** 2) ** 0.5; // standard\n (((g.r - t) * 0.3) ** 2 + ((g.g - r) * 0.6) ** 2 + ((g.b - e) * 0.1) ** 2) ** 0.5\n );\n return [n, a];\n }).find(([, n], g, a) => n === Math.min(...a.map(([, b]) => b)));\n return s;\n }\n /**\n * Returns the colour as an RGBA object.\n */\n toRgb() {\n let { r: t, g: r, b: e, a: s } = this;\n return [t, r, e] = [t, r, e].map((n) => i(n * 255 * 100) / 100), s = i(s * 100) / 100, {\n r: t,\n g: r,\n b: e,\n a: s\n };\n }\n /**\n * Returns the RGBA values concatenated into a CSS3 Module string format.\n * * rgb(255,255,255)\n * * rgba(255,255,255,0.5)\n */\n toRgbString() {\n const { r: t, g: r, b: e, a: s } = this.toRgb(), [n, g, a] = [t, r, e].map(i);\n return s === 1 ? `rgb(${n}, ${g}, ${a})` : `rgba(${n}, ${g}, ${a}, ${s})`;\n }\n /**\n * Returns the RGBA values concatenated into a CSS4 Module string format.\n * * rgb(255 255 255)\n * * rgb(255 255 255 / 50%)\n */\n toRgbCSS4String() {\n const { r: t, g: r, b: e, a: s } = this.toRgb(), [n, g, a] = [t, r, e].map(i), b = s === 1 ? \"\" : ` / ${i(s * 100)}%`;\n return `rgb(${n} ${g} ${a}${b})`;\n }\n /**\n * Returns the hexadecimal value of the colour. When the parameter is *true*\n * it will find a 3 characters shorthand of the decimal value.\n */\n toHex(t) {\n let { r, g: e, b: s, a: n } = this;\n return [r, e, s] = [r, e, s].map((g) => i(g * 255)), n = i(n * 100) / 100, n === 1 ? R(r, e, s, t) : C(r, e, s, n, t);\n }\n /**\n * Returns the CSS valid hexadecimal vaue of the colour. When the parameter is *true*\n * it will find a 3 characters shorthand of the value.\n */\n toHexString(t) {\n return `#${this.toHex(t)}`;\n }\n /**\n * Returns the HEX8 value of the colour.\n */\n toHex8(t) {\n let { r, g: e, b: s, a: n } = this;\n return [r, e, s] = [r, e, s].map((g) => i(g * 255)), n = i(n * 100) / 100, n === 1 ? R(r, e, s, t) : C(r, e, s, n, t);\n }\n /**\n * Returns the HEX8 value of the colour.\n */\n toHex8String(t) {\n return `#${this.toHex8(t)}`;\n }\n /**\n * Returns the colour as a HSVA object.\n */\n toHsv() {\n const { r: t, g: r, b: e, a: s } = this, { h: n, s: g, v: a } = q(t, r, e);\n return {\n h: n,\n s: g,\n v: a,\n a: s\n };\n }\n /**\n * Returns the colour as an HSLA object.\n */\n toHsl() {\n const { r: t, g: r, b: e, a: s } = this, { h: n, s: g, l: a } = G(t, r, e);\n return {\n h: n,\n s: g,\n l: a,\n a: s\n };\n }\n /**\n * Returns the HSLA values concatenated into a CSS3 Module format string.\n * * `hsl(150, 100%, 50%)`\n * * `hsla(150, 100%, 50%, 0.5)`\n */\n toHslString() {\n let { h: t, s: r, l: e, a: s } = this.toHsl();\n return t = i(t * 360), r = i(r * 100), e = i(e * 100), s = i(s * 100) / 100, s === 1 ? `hsl(${t}, ${r}%, ${e}%)` : `hsla(${t}, ${r}%, ${e}%, ${s})`;\n }\n /**\n * Returns the HSLA values concatenated into a CSS4 Module format string.\n * * `hsl(150deg 100% 50%)`\n * * `hsl(150deg 100% 50% / 50%)`\n */\n toHslCSS4String() {\n let { h: t, s: r, l: e, a: s } = this.toHsl();\n t = i(t * 360), r = i(r * 100), e = i(e * 100), s = i(s * 100);\n const n = s < 100 ? ` / ${i(s)}%` : \"\";\n return `hsl(${t}deg ${r}% ${e}%${n})`;\n }\n /**\n * Returns the colour as an HWBA object.\n */\n toHwb() {\n const { r: t, g: r, b: e, a: s } = this, { h: n, w: g, b: a } = j(t, r, e);\n return {\n h: n,\n w: g,\n b: a,\n a: s\n };\n }\n /**\n * Returns the HWBA values concatenated into a string.\n */\n toHwbString() {\n let { h: t, w: r, b: e, a: s } = this.toHwb();\n t = i(t * 360), r = i(r * 100), e = i(e * 100), s = i(s * 100);\n const n = s < 100 ? ` / ${i(s)}%` : \"\";\n return `hwb(${t}deg ${r}% ${e}%${n})`;\n }\n /**\n * Sets the alpha value of the current colour.\n */\n setAlpha(t) {\n return typeof t != \"number\" ? this : (this.a = N(t), this);\n }\n /**\n * Saturate the colour with a given amount.\n */\n saturate(t) {\n if (typeof t != \"number\") return this;\n const { h: r, s: e, l: s } = this.toHsl(), { r: n, g, b: a } = S(r, A(e + t / 100), s);\n return Object.assign(this, { r: n, g, b: a }), this;\n }\n /**\n * Desaturate the colour with a given amount.\n */\n desaturate(t) {\n return typeof t == \"number\" ? this.saturate(-t) : this;\n }\n /**\n * Completely desaturates a colour into greyscale.\n * Same as calling `desaturate(100)`\n */\n greyscale() {\n return this.saturate(-100);\n }\n /**\n * Increase the colour lightness with a given amount.\n */\n lighten(t) {\n if (typeof t != \"number\") return this;\n const { h: r, s: e, l: s } = this.toHsl(), { r: n, g, b: a } = S(r, e, A(s + t / 100));\n return Object.assign(this, { r: n, g, b: a }), this;\n }\n /**\n * Decrease the colour lightness with a given amount.\n */\n darken(t) {\n return typeof t == \"number\" ? this.lighten(-t) : this;\n }\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n spin(t) {\n if (typeof t != \"number\") return this;\n const { h: r, s: e, l: s } = this.toHsl(), { r: n, g, b: a } = S(\n A((r * 360 + t) % 360 / 360),\n e,\n s\n );\n return Object.assign(this, { r: n, g, b: a }), this;\n }\n /** Returns a clone of the current `Color` instance. */\n clone() {\n return new rr(this);\n }\n /**\n * Returns the colour value in CSS valid string format.\n */\n toString(t) {\n const { format: r } = this;\n return r === \"hex\" ? this.toHexString(t) : r === \"hsl\" ? this.toHslString() : r === \"hwb\" ? this.toHwbString() : this.toRgbString();\n }\n}\nexport {\n rr as default\n};\n//# sourceMappingURL=index.mjs.map\n","import Color from \"@thednp/color\";\n// import { isNumber } from '@thednp/shorty';\n\n/**\n * Returns a color palette with a given set of parameters.\n *\n * @example\n * new ColorPalette(0, 12, 10, 80);\n * // => { hue: 0, hueSteps: 12, lightSteps: 10, saturation: 80, colors: Array<Color> }\n */\nexport default class ColorPalette {\n public static Color = Color;\n hue: number;\n hueSteps: number;\n lightSteps: number;\n saturation: number;\n colors: Color[];\n /**\n * The `hue` parameter is optional, which would be set to 0.\n * * `args.hue` the starting Hue [0, 360]\n * * `args.hueSteps` Hue Steps Count [5, 24]\n * * `args.lightSteps` Lightness Steps Count [5, 12]\n * * `args.saturation` Saturation [0, 100]\n */\n constructor(...args: [number?, number?, number?, number?]) {\n let hue = 0;\n let hueSteps = 12;\n let lightSteps = 10;\n let lightnessArray = [0.5];\n let saturation = 100;\n // if (!args.every(n => isNumber(n))) throw TypeError('ColorPalette only accepts numbers.');\n\n if (args.length === 4) {\n [hue, hueSteps, lightSteps, saturation] = args as [\n number,\n number,\n number,\n number,\n ];\n } else if (args.length === 3) {\n [hue, hueSteps, lightSteps] = args as [number, number, number];\n } else if (args.length === 2) {\n [hueSteps, lightSteps] = args as [number, number];\n if ([hueSteps, lightSteps].some((n) => n < 1)) {\n throw TypeError(\n \"ColorPalette: the two minimum arguments must be numbers higher than 0.\",\n );\n }\n }\n\n const colors: Color[] = [];\n const hueStep = 360 / hueSteps;\n const half = Color.roundPart((lightSteps - (lightSteps % 2 ? 1 : 0)) / 2);\n const steps1To13 = [0.25, 0.2, 0.15, 0.11, 0.09, 0.075];\n const lightSets = [\n [1, 2, 3],\n [4, 5],\n [6, 7],\n [8, 9],\n [10, 11],\n [12, 13],\n ];\n const closestSet = lightSets.find((set) => set.includes(lightSteps));\n\n // find a lightStep that won't go beyond black and white\n // something within the [10-90] range of lightness\n const lightStep = closestSet\n ? steps1To13[lightSets.indexOf(closestSet)]\n : 100 / (lightSteps + (lightSteps % 2 ? 0 : 1)) / 100;\n\n // light tints\n for (let i = 1; i < half + 1; i += 1) {\n lightnessArray = [...lightnessArray, 0.5 + lightStep * i];\n }\n\n // dark tints\n for (let i = 1; i < lightSteps - half; i += 1) {\n lightnessArray = [0.5 - lightStep * i, ...lightnessArray];\n }\n\n // feed `colors` Array\n for (let i = 0; i < hueSteps; i += 1) {\n const currentHue = (hue + i * hueStep) % 360;\n lightnessArray.forEach((l) => {\n const newColor = new Color({ h: currentHue, s: 100, l: l * 100 });\n colors.push(\n saturation < 100 ? newColor.saturate(saturation - 100) : newColor,\n );\n });\n }\n\n this.hue = hue;\n this.hueSteps = hueSteps;\n this.lightSteps = lightSteps;\n this.saturation = saturation;\n this.colors = colors;\n }\n}\n","import ColorPickerLabels from \"../interface/colorPickerLabels\";\n\n/** The labels presented to the user. */\nconst colorPickerLabels: ColorPickerLabels = {\n pickerLabel: \"Colour Picker\",\n appearanceLabel: \"Colour Appearance\",\n valueLabel: \"Colour Value\",\n toggleLabel: \"Select Colour\",\n presetsLabel: \"Colour Presets\",\n defaultsLabel: \"Colour Defaults\",\n formatLabel: \"Format\",\n alphaLabel: \"Alpha\",\n hexLabel: \"Hexadecimal\",\n hueLabel: \"Hue\",\n whitenessLabel: \"Whiteness\",\n blacknessLabel: \"Blackness\",\n saturationLabel: \"Saturation\",\n lightnessLabel: \"Lightness\",\n redLabel: \"Red\",\n greenLabel: \"Green\",\n blueLabel: \"Blue\",\n};\n\nexport default colorPickerLabels;\n","/** A list of 17 color names used for WAI-ARIA compliance. */\nconst colorNames: string[] = [\n \"white\",\n \"black\",\n \"grey\",\n \"red\",\n \"orange\",\n \"brown\",\n \"gold\",\n \"olive\",\n \"yellow\",\n \"lime\",\n \"green\",\n \"teal\",\n \"cyan\",\n \"blue\",\n \"violet\",\n \"magenta\",\n \"pink\",\n];\nexport default colorNames;\n","import { isString } from \"@thednp/shorty\";\n\n/**\n * Check if a string is valid JSON string.\n *\n * @param str the string input\n * @returns the query result\n */\nconst isValidJSON = (str: unknown): str is string => {\n /* istanbul ignore next @preserve */\n if (!isString(str)) return false;\n try {\n JSON.parse(str);\n } catch (_) {\n return false;\n }\n return true;\n};\n\nexport default isValidJSON;\n","const vHidden = \"v-hidden\";\nexport default vHidden;\n","import {\n createElement,\n ObjectAssign,\n setAttribute,\n toUpperCase,\n} from \"@thednp/shorty\";\n\nimport vHidden from \"./vHidden\";\nimport ColorPicker from \"../index\";\n\n/**\n * Returns the color form for `ColorPicker`.\n *\n * @param self the `ColorPicker` instance\n * @returns a new `<div>` element with color component `<input>`\n */\nconst getColorForm = (self: ColorPicker): HTMLElement => {\n const { format, id, componentLabels } = self;\n const colorForm = createElement({\n tagName: \"div\",\n className: `color-form ${format}`,\n }) as HTMLElement;\n\n let components = [\"hex\"];\n if (format === \"rgb\") components = [\"red\", \"green\", \"blue\", \"alpha\"];\n else if (format === \"hsl\") {\n components = [\"hue\", \"saturation\", \"lightness\", \"alpha\"];\n } else if (format === \"hwb\") {\n components = [\"hue\", \"whiteness\", \"blackness\", \"alpha\"];\n }\n\n components.forEach((c: string): void => {\n const [C] = format === \"hex\" ? [\"#\"] : toUpperCase(c).split(\"\");\n const cID = `color_${format}_${c}_${id}`;\n const formatLabel = componentLabels[`${c}Label`];\n const cInputLabel = createElement({ tagName: \"label\" }) as HTMLElement;\n setAttribute(cInputLabel, \"for\", cID);\n cInputLabel.append(\n createElement({\n tagName: \"span\",\n ariaHidden: \"true\",\n innerText: `${C}:`,\n }) as HTMLElement,\n createElement({\n tagName: \"span\",\n className: vHidden,\n innerText: formatLabel,\n }) as HTMLElement,\n );\n const cInput = createElement({\n tagName: \"input\",\n id: cID,\n // name: cID, - prevent saving the value to a form\n type: format === \"hex\" ? \"text\" : \"number\",\n value: c === \"alpha\" ? \"100\" : \"0\",\n className: `color-input ${c}`,\n autocomplete: \"off\",\n spellcheck: false,\n } as Partial<HTMLInputElement>) as HTMLInputElement;\n\n // alpha\n let max = \"100\";\n let step = \"1\";\n if (c !== \"alpha\") {\n if (format === \"rgb\") {\n max = \"255\";\n step = \"1\";\n } else if (c === \"hue\") {\n max = \"360\";\n step = \"1\";\n }\n }\n ObjectAssign(cInput, {\n min: \"0\",\n max,\n step,\n });\n colorForm.append(cInputLabel, cInput);\n });\n return colorForm;\n};\n\nexport default getColorForm;\n","import { createElement } from \"@thednp/shorty\";\n\nimport ColorPicker from \"..\";\n\n/**\n * Returns all color controls for `ColorPicker`.\n *\n * @param self the `ColorPicker` instance\n * @returns color controls\n */\nconst getColorControls = (self: ColorPicker): HTMLElement => {\n const { format, componentLabels } = self;\n const {\n hueLabel,\n alphaLabel,\n lightnessLabel,\n saturationLabel,\n whitenessLabel,\n blacknessLabel,\n } = componentLabels;\n\n const max1 = format === \"hsl\" ? 360 : 100;\n const max2 = format === \"hsl\" ? 100 : 360;\n const max3 = 100;\n\n let ctrl1Label = format === \"hsl\"\n ? `${hueLabel} & ${lightnessLabel}`\n : `${lightnessLabel} & ${saturationLabel}`;\n\n ctrl1Label = format === \"hwb\"\n ? `${whitenessLabel} & ${blacknessLabel}`\n : ctrl1Label;\n\n const ctrl2Label = format === \"hsl\" ? `${saturationLabel}` : `${hueLabel}`;\n\n const colorControls = createElement({\n tagName: \"div\",\n className: `color-controls ${format}`,\n }) as HTMLElement;\n\n const colorPointer = \"color-pointer\";\n const colorSlider = \"color-slider\";\n\n const controls = [\n {\n i: 1,\n c: colorPointer,\n l: ctrl1Label,\n min: 0,\n max: max1,\n },\n {\n i: 2,\n c: colorSlider,\n l: ctrl2Label,\n min: 0,\n max: max2,\n },\n {\n i: 3,\n c: colorSlider,\n l: alphaLabel,\n min: 0,\n max: max3,\n },\n ];\n\n controls.forEach((template) => {\n const { i, c, l, min, max } = template;\n const control = createElement({\n tagName: \"div\",\n className: \"color-control\",\n role: \"presentation\",\n }) as HTMLElement;\n\n control.append(\n createElement({\n tagName: \"div\",\n className: `visual-control visual-control${i}`,\n }) as HTMLElement,\n );\n\n const knob = createElement({\n tagName: \"div\",\n className: `${c} knob`,\n ariaLive: \"polite\",\n ariaLabel: l,\n role: \"slider\",\n tabIndex: 0,\n ariaValueMin: `${min}`,\n ariaValueMax: `${max}`,\n }) as HTMLElement;\n\n control.append(knob);\n colorControls.append(control);\n });\n\n return colorControls;\n};\n\nexport default getColorControls;\n","import {\n createElement,\n getAttribute,\n setAttribute,\n setElementStyle,\n} from \"@thednp/shorty\";\n\nimport Color from \"@thednp/color\";\nimport ColorPalette from \"../colorPalette\";\nimport ColorPicker from \"../index\";\n\n/**\n * Returns a color-defaults with given values and class.\n */\nconst getColorMenu = (\n self: ColorPicker,\n colorsSource: ColorPalette | string[],\n menuClass: string,\n): HTMLElement => {\n const { input, format, componentLabels } = self;\n const { defaultsLabel, presetsLabel } = componentLabels;\n const isOptionsMenu = menuClass === \"color-options\";\n const isPalette = colorsSource instanceof ColorPalette;\n const menuLabel = isOptionsMenu ? presetsLabel : defaultsLabel;\n const colorsArray = isPalette ? colorsSource.colors : colorsSource;\n const colorsCount = colorsArray.length;\n const { lightSteps } = isPalette ? colorsSource : { lightSteps: null };\n const fit = lightSteps ||\n [9, 10].find((x) => colorsCount >= x * 2 && !(colorsCount % x)) || 5;\n const isMultiLine = isOptionsMenu && colorsCount > fit;\n let rowCountHover = 2;\n rowCountHover = isMultiLine && colorsCount > fit * 2 ? 3 : rowCountHover;\n rowCountHover = isMultiLine && colorsCount > fit * 3 ? 4 : rowCountHover;\n rowCountHover = isMultiLine && colorsCount > fit * 4 ? 5 : rowCountHover;\n const rowCount = rowCountHover - (colorsCount <= fit * 3 ? 1 : 2);\n const isScrollable = isMultiLine && colorsCount > rowCount * fit;\n let finalClass = menuClass;\n finalClass += isScrollable ? \" scrollable\" : \"\";\n finalClass += isMultiLine ? \" multiline\" : \"\";\n const gap = isMultiLine ? \"1px\" : \"0.25rem\";\n let optionSize = isMultiLine ? 1.75 : 2;\n optionSize = fit > 5 && isMultiLine ? 1.5 : optionSize;\n const menuHeight = `${rowCount * optionSize}rem`;\n const menuHeightHover = `calc(${rowCountHover} * ${optionSize}rem + ${\n rowCountHover - 1\n } * ${gap})`;\n\n // <UL> is an `HTMLElement`\n const menu = createElement({\n tagName: \"ul\",\n className: finalClass,\n role: \"listbox\",\n ariaLabel: menuLabel,\n }) as HTMLElement;\n\n if (isScrollable) {\n setElementStyle(menu, {\n \"--grid-item-size\": `${optionSize}rem`,\n \"--grid-fit\": `${fit}`,\n \"--grid-gap\": gap,\n \"--grid-height\": menuHeight,\n \"--grid-hover-height\": menuHeightHover,\n });\n }\n\n colorsArray.forEach((x) => {\n let [value, label] = typeof x === \"string\" ? x.trim().split(\":\") : [];\n if (x instanceof Color) {\n value = x.toHexString();\n label = value;\n }\n const color = new Color(x instanceof Color ? x : value, format);\n const isActive = color.toString() === getAttribute(input, \"value\");\n const active = isActive ? \" active\" : \"\";\n\n const option = createElement({\n tagName: \"li\",\n className: `color-option${active}`,\n innerText: `${label || value}`,\n tabIndex: 0,\n role: \"option\",\n ariaSelected: isActive ? \"true\" : \"false\",\n }) as HTMLElement;\n setAttribute(option, \"data-value\", `${value}`);\n\n if (isOptionsMenu) {\n setElementStyle(option, { backgroundColor: value });\n }\n\n menu.append(option);\n });\n return menu;\n};\n\nexport default getColorMenu;\n","import {\n ariaHidden,\n createElement,\n createElementNS,\n getAttribute,\n setAttribute,\n tabindex,\n toUpperCase,\n} from \"@thednp/shorty\";\n\nimport Color from \"@thednp/color\";\n\nimport getColorForm from \"./getColorForm\";\nimport getColorControls from \"./getColorControls\";\nimport getColorMenu from \"./getColorMenu\";\nimport vHidden from \"./vHidden\";\n\nimport ColorPicker from \"../index\";\n\n/**\n * Generate HTML markup and update instance properties.\n *\n * @param self\n */\nconst setMarkup = (self: ColorPicker) => {\n const {\n input,\n parent,\n format,\n id,\n componentLabels,\n colorKeywords,\n colorPresets,\n } = self;\n const colorValue = getAttribute(input, \"value\") || \"#fff\";\n const { nonColors } = Color;\n\n const { toggleLabel, pickerLabel, formatLabel, hexLabel } = componentLabels;\n\n // update color\n const color = nonColors.includes(colorValue) ? \"#fff\" : colorValue;\n self.color = new Color(color, format);\n\n // set initial controls dimensions\n const formatString = format === \"hex\" ? hexLabel : toUpperCase(format);\n\n const pickerBtn = createElement<HTMLButtonElement>({\n id: `picker-btn-${id}`,\n tagName: \"button\",\n type: \"button\",\n className: \"picker-toggle btn-appearance\",\n ariaExpanded: \"false\",\n ariaHasPopup: \"true\",\n }) as HTMLButtonElement;\n\n pickerBtn.append(\n createElement({\n tagName: \"span\",\n className: vHidden,\n innerText: `${pickerLabel}. ${formatLabel}: ${formatString}`,\n }) as HTMLElement,\n );\n\n const pickerDropdown = createElement(\n {\n tagName: \"div\",\n className: \"color-dropdown picker\",\n role: \"group\",\n ariaLabelledBy: `picker-btn-${id}`,\n } as Partial<HTMLElement> & { ariaLabelledBy: string },\n ) as HTMLElement;\n\n const colorControls = getColorControls(self);\n const colorForm = getColorForm(self);\n\n pickerDropdown.append(colorControls, colorForm);\n input.before(pickerBtn);\n parent.append(pickerDropdown);\n\n // set colour key menu template\n /* istanbul ignore else @preserve */\n if (colorKeywords || colorPresets) {\n const presetsDropdown = createElement({\n tagName: \"div\",\n className: \"color-dropdown scrollable menu\",\n }) as HTMLElement;\n\n // color presets\n if (colorPresets) {\n presetsDropdown.append(getColorMenu(self, colorPresets, \"color-options\"));\n }\n\n // explicit defaults [reset, initial, inherit, transparent, currentColor]\n // also custom defaults [default: #069, complementary: #930]\n /* istanbul ignore else @preserve */\n if (colorKeywords && colorKeywords.length) {\n presetsDropdown.append(\n getColorMenu(self, colorKeywords, \"color-defaults\"),\n );\n }\n\n const presetsBtn = createElement<HTMLButtonElement>({\n tagName: \"button\",\n type: \"button\",\n className: \"menu-toggle btn-appearance\",\n tabIndex: -1,\n ariaExpanded: \"false\",\n ariaHasPopup: \"true\",\n }) as HTMLButtonElement;\n\n const xmlns = encodeURI(\"http://www.w3.org/2000/svg\");\n const presetsIcon = createElementNS(xmlns, {\n tagName: \"svg\",\n }) as HTMLElement;\n setAttribute(presetsIcon, \"xmlns\", xmlns);\n setAttribute(presetsIcon, \"viewBox\", \"0 0 512 512\");\n setAttribute(presetsIcon, ariaHidden, \"true\");\n\n const path = createElementNS(xmlns, {\n tagName: \"path\",\n }) as HTMLElement;\n setAttribute(\n path,\n \"d\",\n \"M98,158l157,156L411,158l27,27L255,368L71,185L98,158z\",\n );\n setAttribute(path, \"fill\", \"#fff\");\n presetsIcon.append(path);\n presetsBtn.append(\n createElement({\n tagName: \"span\",\n className: vHidden,\n innerText: `${toggleLabel}`,\n }) as HTMLElement,\n presetsIcon,\n );\n\n parent.append(presetsBtn, presetsDropdown);\n }\n\n // solve non-colors after settings save\n /* istanbul ignore else @preserve */\n if (colorKeywords && nonColors.includes(colorValue)) {\n self.value = colorValue;\n }\n setAttribute(input, tabindex, \"-1\");\n};\n\nexport default setMarkup;\n","import {\n addClass,\n ariaDescription,\n ariaExpanded,\n ariaSelected,\n ariaValueNow,\n ariaValueText,\n changeEvent,\n closest,\n Data,\n dispatchEvent,\n focus,\n focusinEvent,\n focusoutEvent,\n getAttribute,\n getBoundingClientRect,\n getDocument,\n getDocumentElement,\n getElementsByClassName,\n getElementStyle,\n getElementTransitionDuration,\n getInstance,\n getUID,\n getWindow,\n hasClass,\n isArray,\n isHTMLElement,\n isString,\n keyArrowDown,\n keyArrowLeft,\n keyArrowRight,\n keyArrowUp,\n keydownEvent,\n keyEnter,\n keyEscape,\n keySpace,\n keyupEvent,\n mouseclickEvent,\n normalizeOptions,\n ObjectAssign,\n ObjectFromEntries,\n off,\n on,\n pointerdownEvent,\n pointermoveEvent,\n pointerupEvent,\n querySelector,\n reflow,\n removeAttribute,\n removeClass,\n resizeEvent,\n scrollEvent,\n setAttribute,\n setElementStyle,\n tabindex,\n touchmoveEvent,\n} from \"@thednp/shorty\";\n\n// ColorPicker Util\n// ================\nimport Color from \"@thednp/color\";\nimport type { HSLA, HSVA, HWBA, RGBA } from \"@thednp/color\";\n\nimport ColorPalette from \"./colorPalette\";\nimport colorPickerLabels from \"./util/colorPickerLabels\";\nimport colorNames from \"./util/colorNames\";\nimport isValidJSON from \"./util/isValidJSON\";\nimport setMarkup from \"./util/setMarkup\";\n\nimport { ColorPickerOptions } from \"./interface/colorPickerOptions\";\nimport ColorPickerLabels from \"./interface/colorPickerLabels\";\nimport type ColorNames from \"./interface/ColorNames\";\nimport { version } from \"../../package.json\";\n\n// ColorPicker GC\n// ==============\nconst colorPickerString = \"color-picker\";\nconst colorPickerSelector = `[data-function=\"${colorPickerString}\"]`;\nconst colorPickerParentSelector = `.${colorPickerString}`;\nconst colorPickerDefaults: ColorPickerOptions = {\n componentLabels: colorPickerLabels,\n colorLabels: colorNames,\n format: \"rgb\",\n colorPresets: false,\n colorKeywords: false,\n};\nconst { roundPart, nonColors } = Color;\n\n// ColorPicker Static Methods\n// ==========================\nconst getColorPickerInstance = (element: Element) =>\n getInstance<ColorPicker>(element, colorPickerString);\nconst initColorPicker = (element: Element) => new ColorPicker(element);\n\n// ColorPicker Private Methods\n// ===========================\n\n/**\n * Add / remove `ColorPicker` main event listeners.\n */\nconst toggleEvents = (self: ColorPicker, action?: boolean) => {\n const fn = action ? on : off;\n const { input, pickerToggle, menuToggle } = self;\n\n fn(input, focusinEvent, self.showPicker);\n fn(pickerToggle, mouseclickEvent, self.togglePicker);\n /* istanbul ignore else @preserve */\n if (menuToggle) {\n fn(menuToggle, mouseclickEvent, self.toggleMenu);\n }\n};\n\n/**\n * Add / remove `ColorPicker` event listeners active only when open.\n */\nconst toggleEventsOnShown = (self: ColorPicker, action?: boolean) => {\n const fn = action ? on : off;\n const { input, colorMenu, parent } = self;\n const doc = getDocument(input);\n const win = getWindow(doc);\n\n fn(self.controls, pointerdownEvent, self.pointerDown);\n self.controlKnobs.forEach((x) => fn(x, keydownEvent, self.handleKnobs));\n\n fn(win, scrollEvent, self.handleScroll);\n fn(win, resizeEvent, self.update);\n\n [input, ...self.inputs].forEach((x) =>\n fn(x, changeEvent, self.changeHandler)\n );\n\n /* istanbul ignore else @preserve */\n if (colorMenu) {\n fn(colorMenu, mouseclickEvent, self.menuClickHandler);\n fn(colorMenu, keydownEvent, self.menuKeyHandler);\n }\n\n fn(doc, pointermoveEvent, self.pointerMove);\n fn(doc, pointerupEvent, self.pointerUp);\n fn(parent, focusoutEvent, self.handleFocusOut);\n fn(doc, keyupEvent, self.handleDismiss);\n};\n\n/**\n * Triggers the `ColorPicker` original event.\n */\nconst firePickerChange = (self: ColorPicker) => {\n dispatchEvent(self.input, new CustomEvent(\"colorpicker.change\"));\n};\n\n/**\n * Hides a visible dropdown.\n */\nconst removePosition = (element: HTMLElement) => {\n /* istanbul ignore else @preserve */\n if (element) {\n [\"bottom\", \"top\"].forEach((x) => removeClass(element, x));\n }\n};\n\n/**\n * Shows a `ColorPicker` dropdown and close the curent open dropdown.\n */\nconst showDropdown = (self: ColorPicker, dropdown: HTMLElement) => {\n const { colorPicker, colorMenu, menuToggle, pickerToggle, parent } = self;\n const isPicker = dropdown === colorPicker;\n const openDropdown = isPicker ? colorMenu : colorPicker;\n const activeBtn = isPicker ? menuToggle : pickerToggle;\n const nextBtn = !isPicker ? menuToggle : pickerToggle;\n\n /* istanbul ignore else @preserve */\n if (!hasClass(parent, \"open\")) {\n addClass(parent, \"open\");\n }\n /* istanbul ignore else @preserve */\n if (openDropdown) {\n removeClass(openDropdown, \"show\");\n removePosition(openDropdown);\n }\n addClass(dropdown, \"bottom\");\n reflow(dropdown);\n addClass(dropdown, \"show\");\n\n if (isPicker) self.update();\n\n if (!self.isOpen) {\n toggleEventsOnShown(self, true);\n self.updateDropdownPosition();\n self.isOpen = true;\n setAttribute(self.input, tabindex, \"0\");\n /* istanbul ignore else @preserve */\n if (menuToggle) {\n setAttribute(menuToggle, tabindex, \"0\");\n }\n }\n\n setAttribute(nextBtn, ariaExpanded, \"true\");\n /* istanbul ignore else @preserve */\n if (activeBtn) {\n setAttribute(activeBtn, ariaExpanded, \"false\");\n }\n};\n\n/**\n * Color Picker Web Component\n *\n * @see http://thednp.github.io/color-picker\n */\nexport default class ColorPicker {\n // bring utils to staic\n public static Color = Color;\n public static ColorPalette = ColorPalette;\n public static getInstance = getColorPickerInstance;\n public static init = initColorPicker;\n public static selector = colorPickerSelector;\n // utils important for render\n public static roundPart = roundPart;\n public static setElementStyle = setElementStyle;\n public static setAttribute = setAttribute;\n public static getBoundingClientRect = getBoundingClientRect;\n public static version = version;\n public static colorNames = colorNames;\n public static colorPickerLabels = colorPickerLabels;\n\n id: number;\n input: HTMLInputElement;\n color: Color;\n format = \"rgb\";\n parent: HTMLElement;\n dragElement: HTMLElement | undefined;\n isOpen = false;\n controlPositions: {\n c1x: number;\n c1y: number;\n c2y: number;\n c3y: number;\n };\n colorLabels: ColorNames = ObjectFromEntries(\n colorNames.map((c) => [c, c]),\n ) as ColorNames;\n colorKeywords: string[] | false;\n colorPresets: ColorPalette | string[] | false;\n componentLabels: ColorPickerLabels;\n pickerToggle: HTMLElement;\n menuToggle: HTMLElement;\n colorPicker: HTMLElement;\n colorMenu: HTMLElement;\n controls: HTMLElement;\n inputs: HTMLInputElement[];\n controlKnobs: HTMLElement[];\n visuals: HTMLElement[];\n\n /**\n * Returns a new `ColorPicker` instance. The target of this constructor\n * must be an `HTMLInputElement`.\n *\n * @param target the target `<input>` element\n * @param config instance options\n */\n constructor(\n target: Element | string,\n config?: Partial<ColorPickerOptions>,\n ) {\n const input = querySelector<Element>(target) as HTMLInputElement | null;\n\n // invalidate\n if (typeof target === \"undefined\") {\n throw new TypeError(`ColorPicker target not specified.`);\n }\n if (!isHTMLElement(input)) {\n throw new TypeError(`ColorPicker target \"${target}\" cannot be found.`);\n }\n this.input = input as HTMLInputElement;\n\n const parent = closest(input, colorPickerParentSelector);\n if (!parent) {\n throw new TypeError(\"ColorPicker requires a specific markup to work.\");\n }\n\n this.parent = parent;\n this.id = getUID(input, colorPickerString);\n this.dragElement = undefined;\n this.isOpen = false;\n this.controlPositions = {\n c1x: 0,\n c1y: 0,\n c2y: 0,\n c3y: 0,\n };\n // this.colorLabels = {};\n this.colorKeywords = false;\n this.colorPresets = false;\n\n // process options\n const {\n format,\n componentLabels,\n colorLabels,\n colorKeywords,\n colorPresets,\n } = normalizeOptions(\n input,\n colorPickerDefaults,\n config || {},\n );\n\n let translatedColorLabels = colorNames;\n /* istanbul ignore else @preserve */\n if (isArray(colorLabels) && colorLabels.length === 17) {\n translatedColorLabels = colorLabels;\n } else if (isString(colorLabels) && colorLabels.split(\",\").length === 17) {\n translatedColorLabels = colorLabels.split(\",\");\n }\n\n // expose colour labels to all methods\n ObjectAssign(\n this.colorLabels,\n ObjectFromEntries(\n translatedColorLabels.map((c, i) => [colorNames[i], c]),\n ),\n );\n\n // update and expose component labels\n const tempComponentLabels =\n isString(componentLabels) && isValidJSON(componentLabels)\n ? (JSON.parse(componentLabels) as ColorPickerLabels)\n : componentLabels;\n this.componentLabels = ObjectAssign(\n { ...colorPickerLabels },\n tempComponentLabels,\n );\n this.color = new Color(input.value || \"#fff\", format);\n this.format = format;\n\n // set colour defaults\n if (isArray(colorKeywords) && colorKeywords.length) {\n this.colorKeywords = colorKeywords;\n } else if (isString(colorKeywords) && colorKeywords.length) {\n this.colorKeywords = colorKeywords.split(\",\").map((x) => x.trim());\n }\n\n // set colour presets\n if (isArray(colorPresets) && colorPresets.length) {\n this.colorPresets = colorPresets;\n } else if (colorPresets && isValidJSON(colorPresets)) {\n const { hue, hueSteps, lightSteps, saturation } = JSON.parse(\n colorPresets,\n ) as {\n hue: number;\n hueSteps: number;\n lightSteps: number;\n saturation: number;\n };\n this.colorPresets = new ColorPalette(\n hue,\n hueSteps,\n lightSteps,\n saturation,\n );\n } else if (isString(colorPresets)) {\n this.colorPresets = colorPresets.split(\",\").map((x: string) => x.trim());\n }\n\n // generate markup\n setMarkup(this);\n\n const [colorPicker, colorMenu] = getElementsByClassName<HTMLElement>(\n \"color-dropdown\",\n parent,\n );\n // set main elements\n this.pickerToggle = querySelector(\".picker-toggle\", parent) as HTMLElement;\n this.menuToggle = querySelector(\".menu-toggle\", parent) as HTMLElement;\n this.colorPicker = colorPicker;\n this.colorMenu = colorMenu;\n this.inputs = [\n ...getElementsByClassName(\"color-input\", parent),\n ] as HTMLInputElement[];\n const [controls] = getElementsByClassName<HTMLElement>(\n \"color-controls\",\n parent,\n );\n this.controls = controls;\n this.controlKnobs = [\n ...getElementsByClassName<HTMLElement>(\"knob\", controls),\n ];\n this.visuals = [\n ...getElementsByClassName<HTMLElement>(\"visual-control\", controls),\n ];\n\n // update colour picker controls, inputs and visuals\n this.update();\n // console.log(this)\n\n // add main events listeners\n toggleEvents(this, true);\n\n // set component data\n Data.set(input, colorPickerString, this);\n }\n\n /** Returns the current colour value */\n get value(): string {\n return this.input.value;\n }\n\n /**\n * Sets a new colour value.\n *\n * @param {string} v new colour value\n */\n set value(v: string) {\n this.input.value = v;\n }\n\n /** Check if the colour presets include any non-colour. */\n get hasNonColor(): boolean {\n return this.colorKeywords instanceof Array &&\n this.colorKeywords.some((x) => nonColors.includes(x));\n }\n\n /** Returns hexadecimal value of the current colour. */\n get hex(): string {\n return this.color.toHex(true);\n }\n\n /** Returns the current colour value in {h,s,v,a} object format. */\n get hsv(): HSVA {\n return this.color.toHsv();\n }\n\n /** Returns the current colour value in {h,s,l,a} object format. */\n get hsl(): HSLA {\n return this.color.toHsl();\n }\n\n /** Returns the current colour value in {h,w,b,a} object format. */\n get hwb(): HWBA {\n return this.color.toHwb();\n }\n\n /** Returns the current colour value in {r,g,b,a} object format. */\n get rgb(): RGBA {\n return this.color.toRgb();\n }\n\n /** Returns the current colour brightness. */\n get brightness(): number {\n return this.color.brightness;\n }\n\n /** Returns the current colour luminance. */\n get luminance(): number {\n return this.color.luminance;\n }\n\n /** Checks if the current colour requires a light text colour. */\n get isDark(): boolean {\n const { color, brightness } = this;\n return brightness < 120 && color.a > 0.33;\n }\n\n /** Checks if the current input value is a valid colour. */\n get isValid(): boolean {\n const inputValue = this.input.value;\n return inputValue !== \"\" && new Color(inputValue).isValid;\n }\n\n /** Returns the colour appearance, usually the closest colour name for the current value. */\n get appearance(): string {\n const { colorLabels, hsl, hsv, format } = this;\n\n const hue = roundPart(hsl.h * 360);\n const saturationSource = format === \"hsl\" ? hsl.s : hsv.s;\n const saturation = roundPart(saturationSource * 100);\n const lightness = roundPart(hsl.l * 100);\n const hsvl = hsv.v * 100;\n\n let colorName = \"black\";\n\n // determine color appearance\n /* istanbul ignore else @preserve */\n if (lightness === 100 && saturation === 0) {\n colorName = colorLabels.white;\n } else if (lightness === 0) {\n colorName = colorLabels.black;\n } else if (saturation === 0) {\n colorName = colorLabels.grey;\n } else if (hue < 15 || hue >= 345) {\n colorName = colorLabels.red;\n } else if (hue >= 15 && hue < 45) {\n colorName = hsvl > 80 && saturation > 80\n ? colorLabels.orange\n : colorLabels.brown;\n } else if (hue >= 45 && hue < 75) {\n const isGold = hue > 46 && hue < 54 && hsvl < 80 && saturation > 90;\n const isOlive = hue >= 54 && hue < 75 && hsvl < 80;\n colorName = isGold ? colorLabels.gold : colorLabels.yellow;\n colorName = isOlive ? colorLabels.olive : colorName;\n } else if (hue >= 75 && hue < 155) {\n colorName = hsvl < 68 ? colorLabels.green : colorLabels.lime;\n } else if (hue >= 155 && hue < 175) {\n colorName = colorLabels.teal;\n } else if (hue >= 175 && hue < 195) {\n colorName = colorLabels.cyan;\n } else if (hue >= 195 && hue < 255) {\n colorName = colorLabels.blue;\n } else if (hue >= 255 && hue < 270) {\n colorName = colorLabels.violet;\n } else if (hue >= 270 && hue < 295) {\n colorName = colorLabels.magenta;\n } else if (hue >= 295 && hue < 345) {\n colorName = colorLabels.pink;\n }\n return colorName;\n }\n\n /** Updates `ColorPicker` visuals. */\n updateVisuals(): void {\n const { controlPositions, visuals } = this;\n const [v1, v2, v3] = visuals;\n const { offsetHeight } = v1;\n const hue = controlPositions.c2y / offsetHeight;\n const { r, g, b } = new Color({ h: hue * 360, s: 100, l: 50 }).toRgb();\n const whiteGrad =\n \"linear-gradient(rgb(255,255,255) 0%, rgb(255,255,255) 100%)\";\n const alpha = 1 - controlPositions.c3y / offsetHeight;\n const roundA = roundPart(alpha * 100) / 100;\n\n const fill = new Color({\n h: hue * 360,\n s: 100,\n l: 50,\n a: alpha,\n }).toRgbString();\n const hueGradient = `linear-gradient(\n rgb(255,0,0) 0%, rgb(255,255,0) 16.67%,\n rgb(0,255,0) 33.33%, rgb(0,255,255) 50%,\n rgb(0,0,255) 66.67%, rgb(255,0,255) 83.33%,\n rgb(255,0,0) 100%)`;\n setElementStyle(v1, {\n background:\n `linear-gradient(rgba(0,0,0,0) 0%, rgba(0,0,0,${roundA}) 100%),\n linear-gradient(to right, rgba(255,255,255,${roundA}) 0%, ${fill} 100%),\n ${whiteGrad}`,\n });\n setElementStyle(v2, { background: hueGradient });\n\n setElementStyle(v3, {\n background:\n `linear-gradient(rgba(${r},${g},${b},1) 0%,rgba(${r},${g},${b},0) 100%)`,\n });\n }\n\n /**\n * The `ColorPicker` *focusout* event listener when open.\n *\n * @param e\n * @this {ColorPicker}\n */\n handleFocusOut = (\n { relatedTarget }: FocusEvent & { relatedTarget: HTMLElement },\n ): void => {\n if (relatedTarget && !this.parent.contains(relatedTarget)) {\n this.hide(true);\n }\n };\n\n /**\n * The `ColorPicker` *keyup* event listener when open.\n *\n * @param e\n * @this {ColorPicker}\n */\n handleDismiss = ({ code }: KeyboardEvent): void => {\n /* istanbul ignore else @preserve */\n if (this.isOpen && code === keyEscape) {\n this.hide();\n }\n };\n\n /**\n * The `ColorPicker` *scroll* event listener when open.\n *\n * @param e\n */\n handleScroll = (e: Event) => {\n const { activeElement } = getDocument(this.input);\n\n this.updateDropdownPosition();\n\n /* istanbul ignore next @preserve */\n if (\n ([pointermoveEvent, touchmoveEvent].includes(e.type) &&\n this.dragElement) ||\n (activeElement &&\n this.controlKnobs.includes(activeElement as HTMLElement))\n ) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n\n /**\n * The `ColorPicker` keyboard event listener for menu navigation.\n *\n * @param e\n */\n menuKeyHandler = (e: KeyboardEvent & { target: HTMLElement }) => {\n const { target, code } = e;\n const { previousElementSibling, nextElementSibling, parentElement } =\n target;\n const isColorOptionsMenu = parentElement &&\n hasClass(parentElement, \"color-options\");\n const allSiblings = parentElement\n ? [...parentElement.children]\n : /* istanbul ignore next @preserve */ [];\n // const columnsCount =\n // isColorOptionsMenu && getElementStyle(parentElement, 'grid-template-columns').split(' ').length;\n const columnsCount = isColorOptionsMenu &&\n Number(getElementStyle(parentElement, \"--grid-fit\"));\n const currentIndex = allSiblings.indexOf(target);\n const previousElement = currentIndex > -1 && columnsCount &&\n allSiblings[currentIndex - columnsCount];\n const nextElement = currentIndex > -1 && columnsCount &&\n allSiblings[currentIndex + columnsCount];\n\n if ([keyArrowDown, keyArrowUp, keySpace].includes(code)) {\n // prevent scroll when navigating the menu via arrow keys / Space\n e.preventDefault();\n }\n if (isColorOptionsMenu) {\n if (previousElement && code === keyArrowUp) {\n focus(previousElement as HTMLElement);\n } else if (nextElement && code === keyArrowDown) {\n focus(nextElement as HTMLElement);\n } else if (previousElementSibling && code === keyArrowLeft) {\n focus(previousElementSibling as HTMLElement);\n } else if (nextElementSibling && code === keyArrowRight) {\n focus(nextElementSibling as HTMLElement);\n }\n } else if (\n previousElementSibling && [keyArrowLeft, keyArrowUp].includes(code)\n ) {\n focus(previousElementSibling as HTMLElement);\n } else if (\n nextElementSibling && [keyArrowRight, keyArrowDown].includes(code)\n ) {\n focus(nextElementSibling as HTMLElement);\n }\n\n if ([keyEnter, keySpace].includes(code)) {\n this.menuClickHandler(e);\n }\n };\n\n /**\n * The `ColorPicker` click event listener for the colour menu presets / defaults.\n *\n * @param e\n * @this {ColorPicker}\n */\n menuClickHandler = (e: Event) => {\n const { target } = e;\n const { colorMenu } = this;\n const newOption = (getAttribute(\n target as HTMLElement,\n \"data-value\",\n ) || /* istanbul ignore next @preserve */ \"\")\n .trim();\n // invalidate for targets other than color options\n /* istanbul ignore next @preserve */\n if (!newOption.length) return;\n const currentActive = querySelector(\"li.active\", colorMenu);\n let newColor = newOption;\n newColor = nonColors.includes(newColor) ? \"white\" : newColor;\n newColor = newColor === \"transparent\"\n ? /* istanbul ignore next @preserve */ \"rgba(0,0,0,0)\"\n : newColor;\n\n const { r, g, b, a } = new Color(newColor);\n\n ObjectAssign(this.color, {\n r,\n g,\n b,\n a,\n });\n\n this.update();\n\n /* istanbul ignore else @preserve */\n if (currentActive !== target) {\n /* istanbul ignore else @preserve */\n if (currentActive) {\n removeClass(currentActive, \"active\");\n removeAttribute(currentActive, ariaSelected);\n }\n\n addClass(target as HTMLElement, \"active\");\n setAttribute(target as HTMLElement, ariaSelected, \"true\");\n\n if (nonColors.includes(newOption)) {\n this.value = newOption;\n }\n firePickerChange(this);\n }\n };\n\n /**\n * The `ColorPicker` *touchstart* / *mousedown* events listener for control knobs.\n *\n * @param e\n */\n pointerDown = (e: PointerEvent & { target: HTMLElement }) => {\n /* istanbul ignore next @preserve */\n if (e.button !== 0) return;\n const { target, pageX, pageY } = e;\n const { colorMenu, visuals, controlKnobs } = this;\n const [v1, v2, v3] = visuals;\n const [c1, c2, c3] = controlKnobs;\n const visual = controlKnobs.includes(target)\n ? (target.previousElementSibling as HTMLElement)\n : target;\n const visualRect = getBoundingClientRect(visual);\n const html = getDocumentElement(v1);\n const offsetX = pageX - html.scrollLeft - visualRect.left;\n const offsetY = pageY - html.scrollTop - visualRect.top;\n\n /* istanbul ignore else @preserve */\n if (target === v1 || target === c1) {\n this.dragElement = visual;\n this.changeControl1(offsetX, offsetY);\n } else if (target === v2 || target === c2) {\n this.dragElement = visual;\n this.changeControl2(offsetY);\n } else if (target === v3 || target === c3) {\n this.dragElement = visual;\n this.changeAlpha(offsetY);\n }\n\n /* istanbul ignore else @preserve */\n if (colorMenu) {\n const currentActive = querySelector(\"li.active\", colorMenu);\n /* istanbul ignore if @preserve */\n if (currentActive) {\n removeClass(currentActive, \"active\");\n removeAttribute(currentActive, ariaSelected);\n }\n }\n e.preventDefault();\n };\n\n /**\n * The `ColorPicker` *touchend* / *mouseup* events listener for control knobs.\n *\n * @param e\n * @this\n */\n pointerUp = ({ target }: PointerEvent & { target: HTMLElement }) => {\n const { parent } = this;\n const doc = getDocument(parent);\n const currentOpen =\n querySelector(`${colorPickerParentSelector}.open`, doc) !== null;\n const selection = doc.getSelection();\n\n if (\n !this.dragElement && (!selection || !selection.toString().length) &&\n !parent.contains(target)\n ) {\n this.hide(currentOpen);\n }\n\n this.dragElement = undefined;\n };\n\n /**\n * The `ColorPicker` *touchmove* / *mousemove* events listener for control knobs.\n *\n * @param {PointerEvent} e\n */\n pointerMove = (e: PointerEvent) => {\n const { dragElement, visuals } = this;\n const [v1, v2, v3] = visuals;\n const { pageX, pageY } = e;\n\n if (!dragElement) return;\n\n const controlRect = getBoundingClientRect(dragElement);\n const win = getDocumentElement(v1);\n const offsetX = pageX - win.scrollLeft - controlRect.left;\n const offsetY = pageY - win.scrollTop - controlRect.top;\n\n if (dragElement === v1) {\n this.changeControl1(offsetX, offsetY);\n }\n\n if (dragElement === v2) {\n this.changeControl2(offsetY);\n }\n\n if (dragElement === v3) {\n this.changeAlpha(offsetY);\n }\n };\n\n /**\n * The `ColorPicker` *keydown* event listener for control knobs.\n *\n * @param e\n */\n handleKnobs = (e: Event & { code: string }) => {\n const { target, code } = e;\n\n // only react to arrow buttons\n if (\n ![keyArrowUp, keyArrowDown, keyArrowLeft, keyArrowRight].includes(code)\n ) return;\n e.preventDefault();\n\n const { controlKnobs, visuals } = this;\n const { offsetWidth, offsetHeight } = visuals[0];\n const [c1, c2, c3] = controlKnobs;\n const { activeElement } = getDocument(c1);\n const currentKnob = controlKnobs.find((x) => x === activeElement);\n const yRatio = offsetHeight / 360;\n\n /* istanbul ignore else @preserve */\n if (currentKnob) {\n let offsetX = 0;\n let offsetY = 0;\n\n /* istanbul ignore else @preserve */\n if (target === c1) {\n const xRatio = offsetWidth / 100;\n\n /* istanbul ignore else @preserve */\n if ([keyArrowLeft, keyArrowRight].includes(code)) {\n this.controlPositions.c1x += code === keyArrowRight\n ? xRatio\n : -xRatio;\n } else if ([keyArrowUp, keyArrowDown].includes(code)) {\n this.controlPositions.c1y += code === keyArrowDown ? yRatio : -yRatio;\n }\n\n offsetX = this.controlPositions.c1x;\n offsetY = this.controlPositions.c1y;\n this.changeControl1(offsetX, offsetY);\n } else if (target === c2) {\n this.controlPositions.c2y +=\n [keyArrowDown, keyArrowRight].includes(code) ? yRatio : -yRatio;\n\n offsetY = this.controlPositions.c2y;\n this.changeControl2(offsetY);\n } else if (target === c3) {\n this.controlPositions.c3y +=\n [keyArrowDown, keyArrowRight].includes(code) ? yRatio : -yRatio;\n\n offsetY = this.controlPositions.c3y;\n this.changeAlpha(offsetY);\n }\n this.handleScroll(e);\n }\n };\n\n /** The event listener of the colour form inputs. */\n changeHandler = (): void => {\n let colorSource;\n const {\n inputs,\n format,\n value: currentValue,\n input,\n controlPositions,\n visuals,\n } = this;\n const { activeElement } = getDocument(input);\n const { offsetHeight } = visuals[0];\n const [i1, , , i4] = inputs;\n const [v1, v2, v3, v4] = format === \"rgb\"\n ? inputs.map((i) => parseFloat(i.value) / (i === i4 ? 100 : 1))\n : inputs.map((i) => parseFloat(i.value) / (i !== i1 ? 100 : 360));\n const isNonColorValue = this.hasNonColor &&\n nonColors.includes(currentValue);\n const alpha = i4 ? v4 : 1 - controlPositions.c3y / offsetHeight;\n\n /* istanbul ignore else @preserve */\n if (\n activeElement === input ||\n (activeElement && inputs.includes(activeElement as HTMLInputElement))\n ) {\n if (activeElement === input) {\n if (isNonColorValue) {\n colorSource = currentValue === \"transparent\"\n ? \"rgba(0,0,0,0)\"\n : \"rgb(0,0,0)\";\n } else {\n colorSource = currentValue;\n }\n } else if (format === \"hex\") {\n colorSource = i1.value;\n } else if (format === \"hsl\") {\n colorSource = {\n h: v1,\n s: v2,\n l: v3,\n a: alpha,\n };\n } else if (format === \"hwb\") {\n colorSource = {\n h: v1,\n w: v2,\n b: v3,\n a: alpha,\n };\n } else {\n colorSource = {\n r: v1,\n g: v2,\n b: v3,\n a: alpha,\n };\n }\n\n const { r, g, b, a } = new Color(colorSource);\n\n ObjectAssign(this.color, {\n r,\n g,\n b,\n a,\n });\n this.setControlPositions();\n this.updateAppearance();\n this.updateInputs();\n this.updateControls();\n this.updateVisuals();\n\n // set non-color keyword\n if (activeElement === input && isNonColorValue) {\n this.value = currentValue;\n }\n }\n };\n\n /**\n * Updates `ColorPicker` first control:\n * * `lightness` and `saturation` for HEX/RGB;\n * * `lightness` and `hue` for HSL.\n *\n * @param X the X component of the offset\n * @param Y the Y component of the offset\n */\n changeControl1(X: number, Y: number): void {\n let [offsetX, offsetY] = [0, 0];\n const { controlPositions, visuals } = this;\n const { offsetHeight, offsetWidth } = visuals[0];\n\n if (X > offsetWidth) offsetX = offsetWidth;\n else if (X >= 0) offsetX = X;\n\n if (Y > offsetHeight) offsetY = offsetHeight;\n else if (Y >= 0) offsetY = Y;\n\n const hue = controlPositions.c2y / offsetHeight;\n\n const saturation = offsetX / offsetWidth;\n\n const lightness = 1 - offsetY / offsetHeight;\n const alpha = 1 - controlPositions.c3y / offsetHeight;\n\n // new color\n const { r, g, b, a } = new Color({\n h: hue * 360,\n s: saturation * 100,\n v: lightness * 100,\n a: alpha,\n });\n\n ObjectAssign(this.color, {\n r,\n g,\n b,\n a,\n });\n\n // new positions\n this.controlPositions.c1x = offsetX;\n this.controlPositions.c1y = offsetY;\n\n // update color picker\n this.updateAppearance();\n this.updateInputs();\n this.updateControls();\n this.updateVisuals();\n }\n\n /**\n * Updates `ColorPicker` second control:\n * * `hue` for HEX/RGB/HWB;\n * * `saturation` for HSL.\n *\n * @param Y the Y offset\n */\n changeControl2(Y: number) {\n const { controlPositions, visuals } = this;\n const { offsetHeight, offsetWidth } = visuals[0];\n\n let offsetY = 0;\n\n if (Y > offsetHeight) offsetY = offsetHeight;\n else if (Y >= 0) offsetY = Y;\n\n const hue = offsetY / offsetHeight;\n const saturation = controlPositions.c1x / offsetWidth;\n const lightness = 1 - controlPositions.c1y / offsetHeight;\n const alpha = 1 - controlPositions.c3y / offsetHeight;\n\n // new color\n const { r, g, b, a } = new Color({\n h: hue * 360,\n s: saturation * 100,\n v: lightness * 100,\n a: alpha,\n });\n\n ObjectAssign(this.color, {\n r,\n g,\n b,\n a,\n });\n\n // new position\n this.controlPositions.c2y = offsetY;\n // update color picker\n this.updateAppearance();\n this.updateInputs();\n this.updateControls();\n this.updateVisuals();\n }\n\n /**\n * Updates `ColorPicker` last control,\n * the `alpha` channel.\n *\n * @param Y\n */\n changeAlpha(Y: number) {\n const { visuals } = this;\n const { offsetHeight } = visuals[0];\n let offsetY = 0;\n\n if (Y > offsetHeight) offsetY = offsetHeight;\n else if (Y >= 0) offsetY = Y;\n\n // update color alpha\n const alpha = 1 - offsetY / offsetHeight;\n this.color.setAlpha(alpha);\n // update position\n this.controlPositions.c3y = offsetY;\n // update color picker\n this.updateAppearance();\n this.updateInputs();\n this.updateControls();\n this.updateVisuals();\n }\n\n /**\n * Updates `ColorPicker` control positions on:\n * * initialization\n * * window resize\n */\n update = () => {\n this.updateDropdownPosition();\n this.updateAppearance();\n this.setControlPositions();\n this.updateInputs(true);\n this.updateControls();\n this.updateVisuals();\n };\n\n /** Updates the open dropdown position on *scroll* event. */\n updateDropdownPosition() {\n const { input, colorPicker, colorMenu } = this;\n const elRect = getBoundingClientRect(input);\n const { top, bottom } = elRect;\n const { offsetHeight: elHeight } = input;\n const windowHeight = getDocumentElement(input).clientHeight;\n const isPicker = hasClass(colorPicker, \"show\");\n const dropdown = isPicker ? colorPicker : colorMenu;\n /* istanbul ignore next @preserve */\n if (!dropdown) return;\n const { offsetHeight: dropHeight } = dropdown;\n const distanceBottom = windowHeight - bottom;\n const distanceTop = top;\n const bottomExceed = top + dropHeight + elHeight > windowHeight; // show\n const topExceed = top - dropHeight < 0; // show-top\n\n if (\n (hasClass(dropdown, \"bottom\") || !topExceed) &&\n distanceBottom < distanceTop && bottomExceed\n ) {\n removeClass(dropdown, \"bottom\");\n addClass(dropdown, \"top\");\n } else {\n removeClass(dropdown, \"top\");\n addClass(dropdown, \"bottom\");\n }\n }\n\n /** Updates control knobs' positions. */\n setControlPositions() {\n const { visuals, color, hsv } = this;\n const { offsetHeight, offsetWidth } = visuals[0];\n const alpha = color.a;\n const hue = hsv.h;\n\n const saturation = hsv.s;\n const lightness = hsv.v;\n\n this.controlPositions.c1x = saturation * offsetWidth;\n this.controlPositions.c1y = (1 - lightness) * offsetHeight;\n this.controlPositions.c2y = hue * offsetHeight;\n this.controlPositions.c3y = (1 - alpha) * offsetHeight;\n }\n\n /** Update the visual appearance label and control knob labels. */\n updateAppearance() {\n const { componentLabels, color, parent, hsv, hex, format, controlKnobs } =\n this;\n const { appearanceLabel, hexLabel, valueLabel } = componentLabels;\n let { r, g, b } = color.toRgb();\n const [knob1, knob2, knob3] = controlKnobs;\n const hue = roundPart(hsv.h * 360);\n const alpha = color.a;\n const saturation = roundPart(hsv.s * 100);\n const lightness = roundPart(hsv.v * 100);\n const colorName = this.appearance;\n\n let colorLabel = `${hexLabel} ${hex.split(\"\").join(\" \")}`;\n\n if (format === \"hwb\") {\n const { hwb } = this;\n const whiteness = roundPart(hwb.w * 100);\n const blackness = roundPart(hwb.b * 100);\n colorLabel = `HWB: ${hue}°, ${whiteness}%, ${blackness}%`;\n setAttribute(knob1, ariaValueText, `${whiteness}% & ${blackness}%`);\n setAttribute(knob1, ariaValueNow, `${whiteness}`);\n setAttribute(\n knob2,\n ariaDescription,\n `${valueLabel}: ${colorLabel}. ${appearanceLabel}: ${colorName}.`,\n );\n setAttribute(knob2, ariaValueText, `${hue}%`);\n setAttribute(knob2, ariaValueNow, `${hue}`);\n } else {\n [r, g, b] = [r, g, b].map(roundPart);\n colorLabel = format === \"hsl\"\n ? `HSL: ${hue}°, ${saturation}%, ${lightness}%`\n : colorLabel;\n colorLabel = format === \"rgb\" ? `RGB: ${r}, ${g}, ${b}` : colorLabel;\n\n setAttribute(knob1, ariaValueText, `${lightness}% & ${saturation}%`);\n setAttribute(knob1, ariaValueNow, `${lightness}`);\n setAttribute(\n knob2,\n ariaDescription,\n `${valueLabel}: ${colorLabel}. ${appearanceLabel}: ${colorName}.`,\n );\n setAttribute(knob2, ariaValueText, `${hue}°`);\n setAttribute(knob2, ariaValueNow, `${hue}`);\n }\n\n const alphaValue = roundPart(alpha * 100);\n setAttribute(knob3, ariaValueText, `${alphaValue}%`);\n setAttribute(knob3, ariaValueNow, `${alphaValue}`);\n\n // update the input backgroundColor\n const newColor = color.toString();\n setElementStyle(this.input, { backgroundColor: newColor });\n\n // toggle dark/light classes will also style the placeholder\n // dark sets color white, light sets color black\n // isDark ? '#000' : '#fff'\n if (!this.isDark) {\n if (hasClass(parent, \"txt-dark\")) removeClass(parent, \"txt-dark\");\n if (!hasClass(parent, \"txt-light\")) addClass(parent, \"txt-light\");\n } else {\n if (hasClass(parent, \"txt-light\")) removeClass(parent, \"txt-light\");\n if (!hasClass(parent, \"txt-dark\")) addClass(parent, \"txt-dark\");\n }\n }\n\n /** Updates the control knobs actual positions. */\n updateControls() {\n const { controlKnobs, controlPositions } = this;\n let { c1x, c1y, c2y, c3y } = controlPositions;\n const [control1, control2, control3] = controlKnobs;\n // round control positions\n [c1x, c1y, c2y, c3y] = [c1x, c1y, c2y, c3y].map(roundPart);\n\n setElementStyle(control1, {\n transform: `translate3d(${c1x - 4}px,${c1y - 4}px,0)`,\n });\n setElementStyle(control2, { transform: `translate3d(0,${c2y - 4}px,0)` });\n setElementStyle(control3, { transform: `translate3d(0,${c3y - 4}px,0)` });\n }\n\n /**\n * Updates all color form inputs.\n *\n * @param isPrevented when `true`, the component original event is prevented\n */\n updateInputs(isPrevented?: boolean) {\n const { value: oldColor, format, inputs, color, hsl } = this;\n const [i1, i2, i3, i4] = inputs;\n const alpha = roundPart(color.a * 100);\n const hue = roundPart(hsl.h * 360);\n let newColor = color.toString();\n\n /* istanbul ignore else @preserve */\n if (format === \"hex\") {\n newColor = this.color.toHexString(true);\n i1.value = this.hex;\n } else if (format === \"hsl\") {\n const lightness = roundPart(hsl.l * 100);\n const saturation = roundPart(hsl.s * 100);\n newColor = this.color.toHslString();\n i1.value = `${hue}`;\n i2.value = `${saturation}`;\n i3.value = `${lightness}`;\n i4.value = `${alpha}`;\n } else if (format === \"hwb\") {\n const { w, b } = this.hwb;\n const whiteness = roundPart(w * 100);\n const blackness = roundPart(b * 100);\n\n newColor = this.color.toHwbString();\n i1.value = `${hue}`;\n i2.value = `${whiteness}`;\n i3.value = `${blackness}`;\n i4.value = `${alpha}`;\n } else if (format === \"rgb\") {\n let { r, g, b } = this.rgb;\n [r, g, b] = [r, g, b].map(roundPart);\n\n newColor = this.color.toRgbString();\n i1.value = `${r}`;\n i2.value = `${g}`;\n i3.value = `${b}`;\n i4.value = `${alpha}`;\n }\n\n // update the color value\n this.value = newColor;\n\n // don't trigger the custom event unless it's really changed\n if (!isPrevented && newColor !== oldColor) {\n firePickerChange(this);\n }\n }\n\n /**\n * Toggle the `ColorPicker` dropdown visibility.\n *\n * @param e\n */\n togglePicker = (e?: Event) => {\n if (e) e.preventDefault();\n const { colorPicker } = this;\n\n if (this.isOpen && hasClass(colorPicker, \"show\")) {\n this.hide(true);\n } else {\n showDropdown(this, colorPicker);\n }\n };\n\n /** Shows the `ColorPicker` dropdown. */\n showPicker = () => {\n const { colorPicker } = this;\n\n if (![\"top\", \"bottom\"].some((c) => hasClass(colorPicker, c))) {\n showDropdown(this, colorPicker);\n }\n };\n\n /**\n * Toggles the visibility of the `ColorPicker` presets menu.\n *\n * @param e\n * @this {ColorPicker}\n */\n toggleMenu = (e?: Event) => {\n if (e) e.preventDefault();\n const { colorMenu } = this;\n\n if (this.isOpen && hasClass(colorMenu, \"show\")) {\n this.hide(true);\n } else {\n showDropdown(this, colorMenu);\n }\n };\n\n /**\n * Hides the currently open `ColorPicker` dropdown.\n *\n * @param {boolean=} focusPrevented\n */\n hide(focusPrevented?: boolean) {\n /* istanbul ignore next @preserve */\n if (!this.isOpen) return;\n const {\n pickerToggle,\n menuToggle,\n colorPicker,\n colorMenu,\n parent,\n input,\n } = this;\n const openPicker = hasClass(colorPicker, \"show\");\n const openDropdown = openPicker ? colorPicker : colorMenu;\n const relatedBtn = openPicker ? pickerToggle : menuToggle;\n const animationDuration = openDropdown &&\n getElementTransitionDuration(openDropdown);\n\n this.value = this.color.toString(true);\n\n /* istanbul ignore else @preserve */\n if (openDropdown) {\n removeClass(openDropdown, \"show\");\n setAttribute(relatedBtn, ariaExpanded, \"false\");\n setTimeout(() => {\n removePosition(openDropdown);\n /* istanbul ignore else @preserve */\n if (!querySelector(\".show\", parent)) {\n removeClass(parent, \"open\");\n toggleEventsOnShown(this);\n this.isOpen = false;\n }\n }, animationDuration);\n }\n\n if (!focusPrevented) {\n focus(pickerToggle);\n }\n setAttribute(input, tabindex, \"-1\");\n if (relatedBtn === menuToggle) {\n setAttribute(menuToggle, tabindex, \"-1\");\n }\n }\n\n /** Removes `ColorPicker` from target `<input>`. */\n dispose() {\n const { input, parent } = this;\n this.hide(true);\n toggleEvents(this);\n [...parent.children].forEach((el) => {\n if (el !== input) el.remove();\n });\n\n removeAttribute(input, tabindex);\n setElementStyle(input, { backgroundColor: \"\" });\n\n [\"txt-light\", \"txt-dark\"].forEach((c) => removeClass(parent, c));\n Data.remove(input, colorPickerString);\n }\n}\n"],"names":["De","Oe","X","Be","Ue","We","nt","at","it","ft","gt","vt","Ot","zt","It","Bt","Wt","jt","on","sn","rn","cn","fn","gn","yn","Jt","R","Dn","Q","t","e","n","o","s","j","K","Qn","Kn","Gn","Zn","_n","v","u","i","E","L","to","P","N","q","G","d","T","se","re","Z","f","ue","ao","F","S","uo","r","a","l","p","g","A","go","bo","Eo","O","wo","b","y","w","ve","V","H","h","Ae","Se","Ne","Wo","jo","I","U","D","x","tr","er","sr","z","c","J","_","nr","M","Y","$","m","k","C","W","or","B","gr","rr","ColorPalette","Color","args","hue","hueSteps","lightSteps","lightnessArray","saturation","colors","hueStep","half","steps1To13","lightSets","closestSet","set","lightStep","currentHue","newColor","colorPickerLabels","colorNames","isValidJSON","str","isString","vHidden","getColorForm","self","format","id","componentLabels","colorForm","createElement","components","toUpperCase","cID","formatLabel","cInputLabel","setAttribute","cInput","max","step","ObjectAssign","getColorControls","hueLabel","alphaLabel","lightnessLabel","saturationLabel","whitenessLabel","blacknessLabel","max1","max2","max3","ctrl1Label","ctrl2Label","colorControls","colorPointer","colorSlider","template","min","control","knob","getColorMenu","colorsSource","menuClass","input","defaultsLabel","presetsLabel","isOptionsMenu","isPalette","menuLabel","colorsArray","colorsCount","fit","isMultiLine","rowCountHover","rowCount","isScrollable","finalClass","gap","optionSize","menuHeight","menuHeightHover","menu","setElementStyle","value","label","isActive","getAttribute","option","setMarkup","parent","colorKeywords","colorPresets","colorValue","nonColors","toggleLabel","pickerLabel","hexLabel","color","formatString","pickerBtn","pickerDropdown","presetsDropdown","presetsBtn","xmlns","presetsIcon","createElementNS","ariaHidden","path","tabindex","colorPickerString","colorPickerSelector","colorPickerParentSelector","colorPickerDefaults","roundPart","getColorPickerInstance","element","getInstance","initColorPicker","ColorPicker","toggleEvents","action","off","pickerToggle","menuToggle","focusinEvent","mouseclickEvent","toggleEventsOnShown","colorMenu","doc","getDocument","win","getWindow","pointerdownEvent","keydownEvent","scrollEvent","resizeEvent","changeEvent","pointermoveEvent","pointerupEvent","focusoutEvent","keyupEvent","firePickerChange","dispatchEvent","removePosition","removeClass","showDropdown","dropdown","colorPicker","isPicker","openDropdown","activeBtn","nextBtn","hasClass","addClass","reflow","ariaExpanded","getBoundingClientRect","version","ObjectFromEntries","target","config","querySelector","isHTMLElement","closest","getUID","colorLabels","normalizeOptions","translatedColorLabels","isArray","tempComponentLabels","getElementsByClassName","controls","Data","brightness","inputValue","hsl","hsv","saturationSource","lightness","hsvl","colorName","isGold","isOlive","controlPositions","visuals","v1","v2","v3","offsetHeight","whiteGrad","alpha","roundA","fill","hueGradient","relatedTarget","code","keyEscape","activeElement","touchmoveEvent","previousElementSibling","nextElementSibling","parentElement","isColorOptionsMenu","allSiblings","columnsCount","getElementStyle","currentIndex","previousElement","nextElement","keyArrowDown","keyArrowUp","keySpace","focus","keyArrowLeft","keyArrowRight","keyEnter","newOption","currentActive","removeAttribute","ariaSelected","pageX","pageY","controlKnobs","c1","c2","c3","visual","visualRect","html","getDocumentElement","offsetX","offsetY","currentOpen","selection","dragElement","controlRect","offsetWidth","currentKnob","yRatio","xRatio","colorSource","inputs","currentValue","i1","i4","v4","isNonColorValue","elRect","top","bottom","elHeight","windowHeight","dropHeight","distanceBottom","distanceTop","bottomExceed","topExceed","hex","appearanceLabel","valueLabel","knob1","knob2","knob3","colorLabel","hwb","whiteness","blackness","ariaValueText","ariaValueNow","ariaDescription","alphaValue","c1x","c1y","c2y","c3y","control1","control2","control3","isPrevented","oldColor","i2","i3","focusPrevented","openPicker","relatedBtn","animationDuration","getElementTransitionDuration","el"],"mappings":"AAAK,MAAqCA,KAAK,oBAA6CC,KAAK,iBAAuCC,KAAI,eAAkGC,KAAK,iBAA6DC,KAAK,iBAAiBC,KAAK,kBAAiEC,KAAK,UAAyGC,KAAK,WAAWC,KAAK,YAA0EC,KAAK,WAA4BC,KAAK,SAAsBC,KAAK,SAAqQC,KAAK,eAAoCC,KAAK,eAAeC,KAAK,aAAoDC,KAAK,UAA+DC,KAAK,UAA4CC,KAAK,aAiFhoCC,IAAK,aAAaC,KAAK,WAAWC,KAAK,aAAaC,IAAK,cAAgFC,KAAK,SAA6BC,KAAK,UAAqFC,KAAK,SAA+GC,KAAK,sBAAmEC,KAAI,sBA0B/XC,IAAK,YAavFC,KAAI,CAACC,GAAGC,GAAGC,GAAGC,MAAM;AACrB,QAAMC,IAAID,KAAK;AACf,EAAAH,EAAE;AAAA,IACAC;AAAA,IACAC;AAAA,IACAE;AAAA,EACD;AACH,GAAGC,KAAI,CAACL,GAAGC,GAAGC,GAAGC,MAAM;AACrB,QAAMC,IAAID,KAAK;AACf,EAAAH,EAAE;AAAA,IACAC;AAAA,IACAC;AAAA,IACAE;AAAA,EACD;AACH,GAesUE,KAAI,CAACN,GAAGC,MAAMD,EAAE,aAAaC,CAAC,GAAyHM,IAAK,CAACP,GAAGC,GAAGC,MAAMF,EAAE,aAAaC,GAAGC,CAAC,GAAmDM,KAAK,CAACR,GAAGC,MAAMD,EAAE,gBAAgBC,CAAC,GAAgDQ,IAAK,CAACT,MAAMC,MAAM;AACvpB,EAAAD,EAAE,UAAU,IAAI,GAAGC,CAAC;AACtB,GAAGS,IAAK,CAACV,MAAMC,MAAM;AACnB,EAAAD,EAAE,UAAU,OAAO,GAAGC,CAAC;AACzB,GAAGU,IAAK,CAACX,GAAGC,MAAMD,EAAE,UAAU,SAASC,CAAC,GAAoHW,KAAI,CAACZ,MAAMA,KAAK,QAAQ,OAAOA,KAAK,YAAY,IAAIa,KAAI,CAACb,MAAMY,GAAEZ,CAAC,KAAK,OAAOA,EAAE,YAAY,YAAY,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE;AAAA,EACtS,CAACC,MAAMD,EAAE,aAAaC;AACxB,KAAK,IAAIa,IAAI,CAACd,MAAMa,GAAEb,CAAC,KAAKA,EAAE,aAAa,KAAK,IAAIe,IAAoB,oBAAI,IAAG,GAAIC,KAAI;AAAA,EACrF,MAAMD;AAAAA,EACN,KAAK,CAACf,GAAGC,GAAGC,MAAM;AAChB,IAAKY,EAAEd,CAAC,MACRe,EAAE,IAAId,CAAC,KAAKc,EAAE,IAAId,GAAmB,oBAAI,IAAK,CAAA,GAAGc,EAAE,IAAId,CAAC,EAAE,IAAID,GAAGE,CAAC;AAAA,EACnE;AAAA,EACD,WAAW,CAACF,MAAMe,EAAE,IAAIf,CAAC,KAAK;AAAA,EAC9B,KAAK,CAACA,GAAGC,MAAM;AACb,QAAI,CAACa,EAAEd,CAAC,KAAK,CAACC,EAAG,QAAO;AACxB,UAAMC,IAAIc,GAAE,UAAUf,CAAC;AACvB,WAAOD,KAAKE,KAAKA,EAAE,IAAIF,CAAC,KAAK;AAAA,EAC9B;AAAA,EACD,QAAQ,CAACA,GAAGC,MAAM;AAChB,UAAMC,IAAIc,GAAE,UAAUf,CAAC;AACvB,KAACC,KAAK,CAACY,EAAEd,CAAC,MAAME,EAAE,OAAOF,CAAC,GAAGE,EAAE,SAAS,KAAKa,EAAE,OAAOd,CAAC;AAAA,EAC3D;AACA,GAAGgB,KAAK,CAACjB,GAAGC,MAAMe,GAAE,IAAIhB,GAAGC,CAAC,GAAyDiB,KAAI,CAAClB,MAAMA,GAAG,KAAI,EAAG;AAAA,EACxG;AAAA,EACA,CAACC,GAAGC,MAAMA,MAAM,IAAID,EAAE,YAAW,IAAKA,EAAE,YAAW;AACrD,EAAE,QAAQ,QAAQ,EAAE,GAAGkB,IAAI,CAACnB,MAAM,OAAOA,KAAK,YAAY,IAAIoB,KAAI,CAACpB,MAAMY,GAAEZ,CAAC,KAAKA,EAAE,YAAY,SAAS,YAAY,IAAIqB,KAAI,CAACrB,MAAMa,GAAEb,CAAC,KAAKA,EAAE,aAAa,KAAK,IAAIsB,IAAI,CAACtB,MAAMqB,GAAErB,CAAC,IAAIA,IAAIa,GAAEb,CAAC,IAAIA,EAAE,gBAAgBoB,GAAEpB,CAAC,IAAIA,EAAE,WAAW,WAAW,UAAUuB,IAAI,CAACvB,MAAMC,MAAM,OAAO,OAAOD,GAAG,GAAGC,CAAC,GAAGuB,IAAK,CAACxB,MAAM;AAC9S,MAAI,CAACA,EAAG;AACR,MAAImB,EAAEnB,CAAC;AACL,WAAOsB,EAAC,EAAG,cAActB,CAAC;AAC5B,QAAM,EAAE,SAASC,EAAG,IAAGD,GAAGE,IAAIsB,EAAGvB,CAAC;AAClC,MAAI,CAACC,EAAG;AACR,QAAMC,IAAI,EAAE,GAAGH,EAAG;AAClB,SAAO,OAAOG,EAAE,SAASoB,EAAErB,GAAGC,CAAC;AACjC,GAAGsB,KAAK,CAACzB,GAAGC,MAAM;AAChB,MAAI,CAACD,KAAK,CAACC,EAAG;AACd,MAAIkB,EAAElB,CAAC;AACL,WAAOqB,EAAG,EAAC,gBAAgBtB,GAAGC,CAAC;AACjC,QAAM,EAAE,SAASC,MAAMD,GAAGE,IAAIsB,GAAGzB,GAAGE,CAAC;AACrC,MAAI,CAACC,EAAG;AACR,QAAMC,IAAI,EAAE,GAAGH,EAAG;AAClB,SAAO,OAAOG,EAAE,SAASmB,EAAEpB,GAAGC,CAAC;AACjC,GAAGsB,KAAI,CAAC1B,GAAGC,MAAMD,EAAE,cAAcC,CAAC,GAAyC0B,KAAI,CAAC3B,GAAGC,GAAGC,MAAM;AAC1F,QAAMC,IAAI,iBAAiBH,GAAGE,CAAC,GAAGE,IAAIH,EAAE,QAAQ,UAAU,QAAQ,EAAE,QAAQ,YAAY,KAAK,EAAE,YAAa;AAC5G,SAAOE,EAAE,iBAAiBC,CAAC;AAC7B,GAqBGwB,KAAK,CAAC5B,MAAM;AACb,QAAMC,IAAI0B,GAAE3B,GAAGH,EAAC,GAAGK,IAAIyB,GAAE3B,GAAGJ,EAAE,GAAGO,IAAID,EAAE,SAAS,IAAI,IAAI,IAAI,KAAKE,IAAIH,KAAKA,MAAM,SAAS,WAAWC,CAAC,IAAIC,IAAI;AAC7G,SAAO,OAAO,MAAMC,CAAC,IAAI,IAAIA;AAC/B,GAY+FyB,IAAK,CAAC7B,GAAGC,MAAMD,EAAE,MAAMC,CAAC,GAAiG6B,KAAI,CAAC9B,MAAM,CAAC,QAAQ,EAAE,EAAE,SAASA,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,SAASA,CAAC,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,MAAM,EAAE,SAASA,CAAC,IAAI,OAAOA,MAAM,MAAM,CAAC,OAAO,MAAM,CAACA,CAAC,IAAI,CAACA,IAAIA,GAAG+B,KAAI,CAAC/B,MAAM,OAAO,QAAQA,CAAC,GAAGgC,KAAK,CAAChC,GAAGC,GAAGC,GAAGC,MAAM;AAC7a,MAAI,CAACW,EAAEd,CAAC,EAAG,QAAOC;AAClB,QAAMG,IAAI,EAAE,GAAGF,EAAG,GAAE+B,IAAI,EAAE,GAAGjC,EAAE,QAAS,GAAEkC,IAAI,EAAE,GAAGjC,EAAC,GAAIkC,IAAI,CAAA,GAAIC,IAAI;AACpE,SAAOL,GAAEE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAGI,CAAC,MAAM;AAC9B,UAAMC,IAAuEpB,GAAE,CAAC;AAChF,IAAAiB,EAAEG,CAAC,IAAIR,GAAEO,CAAC;AAAA,EACd,CAAG,GAAGN,GAAE3B,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAGiC,CAAC,MAAM;AAC3B,IAAAjC,EAAE,CAAC,IAAI0B,GAAEO,CAAC;AAAA,EACd,CAAG,GAAGN,GAAE9B,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAGoC,CAAC,MAAM;AAC3B,SAAKjC,IAAI8B,EAAE,CAAC,IAAI9B,EAAE,CAAC,IAAI,KAAK+B,IAAID,EAAE,CAAC,IAAIC,EAAE,CAAC,IAAID,EAAE,CAAC,IAAI,MAAME,IAAI9B,GAAEN,GAAGoC,CAAC,IAAIC;AAAA,EAC1E,CAAA,GAAGH;AACN,GAAqHK,KAAK,CAACvC,MAAM,OAAO,YAAYA,CAAC,GAM5HwC,KAAK,CAACxC,MAAMA,EAAE,cAAcyC,IAAK,CAACzC,GAAGC,MAAM;AAClE8B,EAAAA,GAAE9B,CAAC,EAAE,QAAQ,CAAC,CAACC,GAAGC,CAAC,MAAM;AACvB,QAAIA,KAAKgB,EAAEjB,CAAC,KAAKA,EAAE,SAAS,IAAI;AAC9B,MAAAF,EAAE,MAAM,YAAYE,GAAGC,CAAC;AAAA,SACrB;AACH,YAAMC,IAAI,CAAE;AACZ,MAAAA,EAAEF,CAAC,IAAIC,GAAGoB,EAAEvB,EAAE,OAAOI,CAAC;AAAA,IAC5B;AAAA,EACA,CAAG;AACH,GAAGsC,KAAI,CAAC1C,MAAMY,GAAEZ,CAAC,KAAKA,EAAE,YAAY,SAAS,SAAS,IActB2C,KAAK,CAAC3C,MAAMA,EAAE,YAAa,GAiBxD4C,KAAI,CAAC5C,MAAMc,EAAEd,CAAC,KAAK,iBAAiBA,KAAK,IAAI6C,KAAI,CAAC7C,GAAGC,MAAM;AAC5D,QAAM,EAAE,OAAOC,GAAG,QAAQC,GAAG,KAAKC,GAAG,OAAO6B,GAAG,QAAQC,GAAG,MAAMC,EAAG,IAAGnC,EAAE,sBAAuB;AAC/F,MAAIoC,IAAI,GAAG,IAAI;AACf,MAAInC,KAAK2C,GAAE5C,CAAC,GAAG;AACb,UAAM,EAAE,aAAaqC,GAAG,cAAcC,EAAG,IAAGtC;AAC5C,IAAAoC,IAAIC,IAAI,IAAI,KAAK,MAAMnC,CAAC,IAAImC,IAAI,GAAG,IAAIC,IAAI,IAAI,KAAK,MAAMnC,CAAC,IAAImC,IAAI;AAAA,EACvE;AACE,SAAO;AAAA,IACL,OAAOpC,IAAIkC;AAAA,IACX,QAAQjC,IAAI;AAAA,IACZ,KAAKC,IAAI;AAAA,IACT,OAAO6B,IAAIG;AAAA,IACX,QAAQF,IAAI;AAAA,IACZ,MAAMC,IAAIC;AAAA,IACV,GAAGD,IAAIC;AAAA,IACP,GAAGhC,IAAI;AAAA,EACR;AACH,GAA0B0C,KAAI,CAAC9C,MAAMsB,EAAEtB,CAAC,EAAE,iBAG0I+C,KAAK,CAAC/C,MAAMA,IAAIqB,GAAErB,CAAC,IAAIA,EAAE,cAAca,GAAEb,CAAC,IAAIA,GAAG,eAAe,cAAcA,IAAI;AAiEtQ,IAAIgD,KAAI,GAAGC,KAAI;AACV,MAACC,IAAoB,oBAAI,IAAK,GAAEC,KAAK,CAACnD,GAAGC,MAAM;AAClD,MAAIC,IAAID,IAAI+C,KAAIC;AAChB,MAAIhD,GAAG;AACL,UAAME,IAAIgD,GAAGnD,CAAC,GAAGI,IAAI8C,EAAE,IAAI/C,CAAC,KAAqB,oBAAI,IAAK;AAC1D+C,IAAAA,EAAE,IAAI/C,CAAC,KAAK+C,EAAE,IAAI/C,GAAGC,CAAC,GAAGsC,GAAEtC,CAAC,KAAK,CAACA,EAAE,IAAIH,CAAC,KAAKG,EAAE,IAAIH,GAAGC,CAAC,GAAG8C,MAAK,KAAK9C,IAAIE,EAAE,IAAIH,CAAC;AAAA,EACpF,OAAS;AACL,UAAME,IAAIH,EAAE,MAAMA;AAClBkD,IAAAA,EAAE,IAAI/C,CAAC,IAAID,IAAIgD,EAAE,IAAI/C,CAAC,KAAK+C,EAAE,IAAI/C,GAAGD,CAAC,GAAG+C,MAAK;AAAA,EACjD;AACE,SAAO/C;AACT,GAAGkD,KAAK,CAACpD,MAAM,MAAM,QAAQA,CAAC,KAAK,IAkBiIqD,KAAK,CAACrD,GAAGC,MAAM,CAACD,KAAK,CAACC,IAAI,OAAOD,EAAE,QAAQC,CAAC,KAAKoD,GAAGrD,EAAE,YAAW,EAAG,MAAMC,CAAC,KAAK,MAAMqD,IAAK,CAACtD,GAAGC,MAAMa,EAAEd,CAAC,IAAIA,KAAKc,EAAEb,CAAC,IAAIA,IAAIqB,EAAG,GAAE,cAActB,CAAC,GAElOuD,KAAK,CAACvD,GAAGC,OAAOA,KAAKY,GAAEZ,CAAC,IAAIA,IAAIqB,EAAG,GAAE;AAAA,EACrHtB;AACF,GCpZMwD,KAAI;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAG1C,IAAI,CAAC,MAAM;AACZ,QAAM,IAAI,KAAK,MAAM,CAAC;AACtB,SAAO,IAAI,IAAI,MAAM,IAAI,KAAK,MAAM,CAAC;AACvC,GAAGS,KAAI;AAAA,EACL;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EACD;AAAA,IACE;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,EACG;AAAA,EAC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","x_google_ignoreList":[0,1]}