@everchron/ec-shards 8.11.1 → 8.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ec-shards.js CHANGED
@@ -1,4 +1,4 @@
1
- import { defineAsyncComponent as ee, watch as le, openBlock as o, createBlock as y, resolveDynamicComponent as Te, unref as ie, normalizeClass as v, createElementBlock as l, normalizeStyle as B, resolveComponent as p, createVNode as b, createCommentVNode as u, createElementVNode as f, createTextVNode as D, toDisplayString as x, renderSlot as m, Transition as xe, withCtx as w, computed as be, reactive as Qs, nextTick as ei, onBeforeUnmount as Pt, toRefs as ys, isRef as ti, onMounted as bs, useSlots as si, ref as Ke, watchEffect as bt, withKeys as U, Teleport as ii, withDirectives as Ge, vShow as ft, mergeProps as De, normalizeProps as ni, guardReactiveProps as ai, withModifiers as G, pushScopeId as ve, popScopeId as _e, Fragment as Z, renderList as ge, resolveDirective as oi, vModelText as ri, h as li, TransitionGroup as ci } from "vue";
1
+ import { defineAsyncComponent as ee, watch as le, openBlock as o, createBlock as y, resolveDynamicComponent as Te, unref as ie, normalizeClass as v, createElementBlock as l, normalizeStyle as B, resolveComponent as p, createVNode as b, createCommentVNode as u, createElementVNode as f, createTextVNode as D, toDisplayString as x, renderSlot as m, Transition as xe, withCtx as w, computed as be, reactive as Qs, nextTick as ei, onBeforeUnmount as Pt, toRefs as ys, isRef as ti, onMounted as bs, useSlots as si, ref as Ke, watchEffect as kt, withKeys as G, Teleport as ii, withDirectives as Ue, vShow as pt, mergeProps as De, normalizeProps as ni, guardReactiveProps as ai, withModifiers as U, pushScopeId as ve, popScopeId as _e, Fragment as Z, renderList as ge, resolveDirective as oi, vModelText as ri, h as li, TransitionGroup as ci } from "vue";
2
2
  const te = (e, s) => {
3
3
  const t = e[s];
4
4
  return t ? typeof t == "function" ? t() : Promise.resolve(t) : new Promise((a, n) => {
@@ -762,7 +762,7 @@ function zt(e, s, t) {
762
762
  }, g;
763
763
  }
764
764
  zt.debounce = zt;
765
- var kt = zt;
765
+ var xt = zt;
766
766
  function oe(e) {
767
767
  if (e == null)
768
768
  return window;
@@ -786,7 +786,7 @@ function Tt(e) {
786
786
  var s = oe(e).ShadowRoot;
787
787
  return e instanceof s || e instanceof ShadowRoot;
788
788
  }
789
- var Ne = Math.max, dt = Math.min, He = Math.round;
789
+ var Ne = Math.max, ut = Math.min, He = Math.round;
790
790
  function It() {
791
791
  var e = navigator.userAgentData;
792
792
  return e != null && e.brands && Array.isArray(e.brands) ? e.brands.map(function(s) {
@@ -819,14 +819,14 @@ function Mt(e) {
819
819
  scrollTop: a
820
820
  };
821
821
  }
822
- function Gi(e) {
822
+ function Ui(e) {
823
823
  return {
824
824
  scrollLeft: e.scrollLeft,
825
825
  scrollTop: e.scrollTop
826
826
  };
827
827
  }
828
- function Ui(e) {
829
- return e === oe(e) || !ce(e) ? Mt(e) : Gi(e);
828
+ function Gi(e) {
829
+ return e === oe(e) || !ce(e) ? Mt(e) : Ui(e);
830
830
  }
831
831
  function we(e) {
832
832
  return e ? (e.nodeName || "").toLowerCase() : null;
@@ -861,7 +861,7 @@ function Yi(e, s, t) {
861
861
  y: 0
862
862
  };
863
863
  return (a || !a && !t) && ((we(s) !== "body" || // https://github.com/popperjs/popper-core/issues/1078
864
- Ot(i)) && (c = Ui(s)), ce(s) ? (d = qe(s, !0), d.x += s.clientLeft, d.y += s.clientTop) : i && (d.x = Lt(i))), {
864
+ Ot(i)) && (c = Gi(s)), ce(s) ? (d = qe(s, !0), d.x += s.clientLeft, d.y += s.clientTop) : i && (d.x = Lt(i))), {
865
865
  x: r.left + c.scrollLeft - d.x,
866
866
  y: r.top + c.scrollTop - d.y,
867
867
  width: r.width,
@@ -877,7 +877,7 @@ function At(e) {
877
877
  height: a
878
878
  };
879
879
  }
880
- function pt(e) {
880
+ function gt(e) {
881
881
  return we(e) === "html" ? e : (
882
882
  // this is a quicker (but less type safe) way to save quite some bytes from the bundle
883
883
  // $FlowFixMe[incompatible-return]
@@ -890,7 +890,7 @@ function pt(e) {
890
890
  );
891
891
  }
892
892
  function Ss(e) {
893
- return ["html", "body", "#document"].indexOf(we(e)) >= 0 ? e.ownerDocument.body : ce(e) && Ot(e) ? e : Ss(pt(e));
893
+ return ["html", "body", "#document"].indexOf(we(e)) >= 0 ? e.ownerDocument.body : ce(e) && Ot(e) ? e : Ss(gt(e));
894
894
  }
895
895
  function Je(e, s) {
896
896
  var t;
@@ -898,7 +898,7 @@ function Je(e, s) {
898
898
  var a = Ss(e), n = a === ((t = e.ownerDocument) == null ? void 0 : t.body), i = oe(a), r = n ? [i].concat(i.visualViewport || [], Ot(a) ? a : []) : a, c = s.concat(r);
899
899
  return n ? c : (
900
900
  // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
901
- c.concat(Je(pt(r)))
901
+ c.concat(Je(gt(r)))
902
902
  );
903
903
  }
904
904
  function Xi(e) {
@@ -915,7 +915,7 @@ function Zi(e) {
915
915
  if (a.position === "fixed")
916
916
  return null;
917
917
  }
918
- var n = pt(e);
918
+ var n = gt(e);
919
919
  for (Tt(n) && (n = n.host); ce(n) && ["html", "body"].indexOf(we(n)) < 0; ) {
920
920
  var i = Ee(n);
921
921
  if (i.transform !== "none" || i.perspective !== "none" || i.contain === "paint" || ["transform", "perspective"].indexOf(i.willChange) !== -1 || s && i.willChange === "filter" || s && i.filter && i.filter !== "none")
@@ -1036,7 +1036,7 @@ function ss(e, s, t) {
1036
1036
  return s === Cs ? Et(mn(e, t)) : Fe(s) ? vn(s, t) : Et(hn(Le(e)));
1037
1037
  }
1038
1038
  function _n(e) {
1039
- var s = Je(pt(e)), t = ["absolute", "fixed"].indexOf(Ee(e).position) >= 0, a = t && ce(e) ? tt(e) : e;
1039
+ var s = Je(gt(e)), t = ["absolute", "fixed"].indexOf(Ee(e).position) >= 0, a = t && ce(e) ? tt(e) : e;
1040
1040
  return Fe(a) ? s.filter(function(n) {
1041
1041
  return Fe(n) && zs(n, a) && we(n) !== "body";
1042
1042
  }) : [];
@@ -1044,7 +1044,7 @@ function _n(e) {
1044
1044
  function yn(e, s, t, a) {
1045
1045
  var n = s === "clippingParents" ? _n(e) : [].concat(s), i = [].concat(n, [t]), r = i[0], c = i.reduce(function(d, g) {
1046
1046
  var h = ss(e, g, a);
1047
- return d.top = Ne(h.top, d.top), d.right = dt(h.right, d.right), d.bottom = dt(h.bottom, d.bottom), d.left = Ne(h.left, d.left), d;
1047
+ return d.top = Ne(h.top, d.top), d.right = ut(h.right, d.right), d.bottom = ut(h.bottom, d.bottom), d.left = Ne(h.left, d.left), d;
1048
1048
  }, ss(e, r, a));
1049
1049
  return c.width = c.right - c.left, c.height = c.bottom - c.top, c.x = c.left, c.y = c.top, c;
1050
1050
  }
@@ -1427,7 +1427,7 @@ function Ln(e) {
1427
1427
  return e === "x" ? "y" : "x";
1428
1428
  }
1429
1429
  function Qe(e, s, t) {
1430
- return Ne(e, dt(s, t));
1430
+ return Ne(e, ut(s, t));
1431
1431
  }
1432
1432
  function On(e, s, t) {
1433
1433
  var a = Qe(e, s, t);
@@ -1456,11 +1456,11 @@ function An(e) {
1456
1456
  var K, Be = T === "y" ? ne : ae, ue = T === "y" ? me : he, Y = T === "y" ? "height" : "width", J = E[T], ye = J + P[Be], ze = J - P[ue], X = I ? -F[Y] / 2 : 0, re = V === We ? N[Y] : F[Y], $e = V === We ? -F[Y] : -N[Y], nt = s.elements.arrow, Ve = I && nt ? At(nt) : {
1457
1457
  width: 0,
1458
1458
  height: 0
1459
- }, Pe = s.modifiersData["arrow#persistent"] ? s.modifiersData["arrow#persistent"].padding : Es(), Ue = Pe[Be], at = Pe[ue], Oe = Qe(0, N[Y], Ve[Y]), vt = R ? N[Y] / 2 - X - Oe - Ue - W.mainAxis : re - Oe - Ue - W.mainAxis, Us = R ? -N[Y] / 2 + X + Oe + at + W.mainAxis : $e + Oe + at + W.mainAxis, _t = s.elements.arrow && tt(s.elements.arrow), Ks = _t ? T === "y" ? _t.clientTop || 0 : _t.clientLeft || 0 : 0, jt = (K = j == null ? void 0 : j[T]) != null ? K : 0, Ys = J + vt - jt - Ks, Xs = J + Us - jt, Gt = Qe(I ? dt(ye, Ys) : ye, J, I ? Ne(ze, Xs) : ze);
1460
- E[T] = Gt, Q[T] = Gt - J;
1459
+ }, Pe = s.modifiersData["arrow#persistent"] ? s.modifiersData["arrow#persistent"].padding : Es(), Ge = Pe[Be], at = Pe[ue], Oe = Qe(0, N[Y], Ve[Y]), _t = R ? N[Y] / 2 - X - Oe - Ge - W.mainAxis : re - Oe - Ge - W.mainAxis, Gs = R ? -N[Y] / 2 + X + Oe + at + W.mainAxis : $e + Oe + at + W.mainAxis, yt = s.elements.arrow && tt(s.elements.arrow), Ks = yt ? T === "y" ? yt.clientTop || 0 : yt.clientLeft || 0 : 0, jt = (K = j == null ? void 0 : j[T]) != null ? K : 0, Ys = J + _t - jt - Ks, Xs = J + Gs - jt, Ut = Qe(I ? ut(ye, Ys) : ye, J, I ? Ne(ze, Xs) : ze);
1460
+ E[T] = Ut, Q[T] = Ut - J;
1461
1461
  }
1462
1462
  if (c) {
1463
- var Ut, Zs = T === "x" ? ne : ae, Js = T === "x" ? me : he, Ae = E[A], ot = A === "y" ? "height" : "width", Kt = Ae + P[Zs], Yt = Ae - P[Js], yt = [ne, ae].indexOf(O) !== -1, Xt = (Ut = j == null ? void 0 : j[A]) != null ? Ut : 0, Zt = yt ? Kt : Ae - N[ot] - F[ot] - Xt + W.altAxis, Jt = yt ? Ae + N[ot] + F[ot] - Xt - W.altAxis : Yt, Qt = I && yt ? On(Zt, Ae, Jt) : Qe(I ? Zt : Kt, Ae, I ? Jt : Yt);
1463
+ var Gt, Zs = T === "x" ? ne : ae, Js = T === "x" ? me : he, Ae = E[A], ot = A === "y" ? "height" : "width", Kt = Ae + P[Zs], Yt = Ae - P[Js], bt = [ne, ae].indexOf(O) !== -1, Xt = (Gt = j == null ? void 0 : j[A]) != null ? Gt : 0, Zt = bt ? Kt : Ae - N[ot] - F[ot] - Xt + W.altAxis, Jt = bt ? Ae + N[ot] + F[ot] - Xt - W.altAxis : Yt, Qt = I && bt ? On(Zt, Ae, Jt) : Qe(I ? Zt : Kt, Ae, I ? Jt : Yt);
1464
1464
  E[A] = Qt, Q[A] = Qt - Ae;
1465
1465
  }
1466
1466
  s.modifiersData[a] = Q;
@@ -1479,7 +1479,7 @@ var Dn = {
1479
1479
  bottom: "top",
1480
1480
  top: "bottom"
1481
1481
  };
1482
- function ct(e) {
1482
+ function dt(e) {
1483
1483
  return e.replace(/left|right|bottom|top/g, function(s) {
1484
1484
  return Dn[s];
1485
1485
  });
@@ -1516,13 +1516,13 @@ function Rn(e, s) {
1516
1516
  function Vn(e) {
1517
1517
  if (ke(e) === Nt)
1518
1518
  return [];
1519
- var s = ct(e);
1519
+ var s = dt(e);
1520
1520
  return [os(e), s, os(s)];
1521
1521
  }
1522
1522
  function Hn(e) {
1523
1523
  var s = e.state, t = e.options, a = e.name;
1524
1524
  if (!s.modifiersData[a]._skip) {
1525
- for (var n = t.mainAxis, i = n === void 0 ? !0 : n, r = t.altAxis, c = r === void 0 ? !0 : r, d = t.fallbackPlacements, g = t.padding, h = t.boundary, k = t.rootBoundary, z = t.altBoundary, I = t.flipVariations, C = I === void 0 ? !0 : I, $ = t.allowedAutoPlacements, P = s.options.placement, O = ke(P), V = O === P, R = d || (V || !C ? [ct(P)] : Vn(P)), T = [P].concat(R).reduce(function(Ve, Pe) {
1525
+ for (var n = t.mainAxis, i = n === void 0 ? !0 : n, r = t.altAxis, c = r === void 0 ? !0 : r, d = t.fallbackPlacements, g = t.padding, h = t.boundary, k = t.rootBoundary, z = t.altBoundary, I = t.flipVariations, C = I === void 0 ? !0 : I, $ = t.allowedAutoPlacements, P = s.options.placement, O = ke(P), V = O === P, R = d || (V || !C ? [dt(P)] : Vn(P)), T = [P].concat(R).reduce(function(Ve, Pe) {
1526
1526
  return Ve.concat(ke(Pe) === Nt ? Rn(s, {
1527
1527
  placement: Pe,
1528
1528
  boundary: h,
@@ -1539,8 +1539,8 @@ function Hn(e) {
1539
1539
  altBoundary: z,
1540
1540
  padding: g
1541
1541
  }), J = Be ? K ? he : ae : K ? me : ne;
1542
- A[ue] > E[ue] && (J = ct(J));
1543
- var ye = ct(J), ze = [];
1542
+ A[ue] > E[ue] && (J = dt(J));
1543
+ var ye = dt(J), ze = [];
1544
1544
  if (i && ze.push(Y[Q] <= 0), c && ze.push(Y[J] <= 0, Y[ye] <= 0), ze.every(function(Ve) {
1545
1545
  return Ve;
1546
1546
  })) {
@@ -1551,15 +1551,15 @@ function Hn(e) {
1551
1551
  }
1552
1552
  if (F)
1553
1553
  for (var X = C ? 3 : 1, re = function(Pe) {
1554
- var Ue = T.find(function(at) {
1554
+ var Ge = T.find(function(at) {
1555
1555
  var Oe = N.get(at);
1556
1556
  if (Oe)
1557
- return Oe.slice(0, Pe).every(function(vt) {
1558
- return vt;
1557
+ return Oe.slice(0, Pe).every(function(_t) {
1558
+ return _t;
1559
1559
  });
1560
1560
  });
1561
- if (Ue)
1562
- return q = Ue, "break";
1561
+ if (Ge)
1562
+ return q = Ge, "break";
1563
1563
  }, $e = X; $e > 0; $e--) {
1564
1564
  var nt = re($e);
1565
1565
  if (nt === "break")
@@ -1596,14 +1596,14 @@ function jn(e) {
1596
1596
  }, {}), c = r[s.placement], d = c.x, g = c.y;
1597
1597
  s.modifiersData.popperOffsets != null && (s.modifiersData.popperOffsets.x += d, s.modifiersData.popperOffsets.y += g), s.modifiersData[a] = r;
1598
1598
  }
1599
- const Gn = {
1599
+ const Un = {
1600
1600
  name: "offset",
1601
1601
  enabled: !0,
1602
1602
  phase: "main",
1603
1603
  requires: ["popperOffsets"],
1604
1604
  fn: jn
1605
1605
  };
1606
- var Un = function(s, t) {
1606
+ var Gn = function(s, t) {
1607
1607
  return s = typeof s == "function" ? s(Object.assign({}, t.rects, {
1608
1608
  placement: t.placement
1609
1609
  })) : s, $s(typeof s != "number" ? s : Ps(s, st));
@@ -1611,7 +1611,7 @@ var Un = function(s, t) {
1611
1611
  function Kn(e) {
1612
1612
  var s, t = e.state, a = e.name, n = e.options, i = t.elements.arrow, r = t.modifiersData.popperOffsets, c = ke(t.placement), d = Dt(c), g = [ae, he].indexOf(c) >= 0, h = g ? "height" : "width";
1613
1613
  if (!(!i || !r)) {
1614
- var k = Un(n.padding, t), z = At(i), I = d === "y" ? ne : ae, C = d === "y" ? me : he, $ = t.rects.reference[h] + t.rects.reference[d] - r[d] - t.rects.popper[h], P = r[d] - t.rects.reference[d], O = tt(i), V = O ? d === "y" ? O.clientHeight || 0 : O.clientWidth || 0 : 0, R = $ / 2 - P / 2, T = k[I], A = V - z[h] - k[C], E = V / 2 - z[h] / 2 + R, N = Qe(T, E, A), F = d;
1614
+ var k = Gn(n.padding, t), z = At(i), I = d === "y" ? ne : ae, C = d === "y" ? me : he, $ = t.rects.reference[h] + t.rects.reference[d] - r[d] - t.rects.popper[h], P = r[d] - t.rects.reference[d], O = tt(i), V = O ? d === "y" ? O.clientHeight || 0 : O.clientWidth || 0 : 0, R = $ / 2 - P / 2, T = k[I], A = V - z[h] - k[C], E = V / 2 - z[h] / 2 + R, N = Qe(T, E, A), F = d;
1615
1615
  t.modifiersData[a] = (s = {}, s[F] = N, s.centerOffset = N - E, s);
1616
1616
  }
1617
1617
  }
@@ -1627,7 +1627,7 @@ const Xn = {
1627
1627
  effect: Yn,
1628
1628
  requires: ["popperOffsets"],
1629
1629
  requiresIfExists: ["preventOverflow"]
1630
- }, xt = (e) => parseInt(e, 10);
1630
+ }, wt = (e) => parseInt(e, 10);
1631
1631
  function Zn({
1632
1632
  arrowPadding: e,
1633
1633
  emit: s,
@@ -1669,14 +1669,14 @@ function Zn({
1669
1669
  {
1670
1670
  name: "arrow",
1671
1671
  options: {
1672
- padding: xt(e.value)
1672
+ padding: wt(e.value)
1673
1673
  }
1674
1674
  },
1675
- Gn,
1675
+ Un,
1676
1676
  {
1677
1677
  name: "offset",
1678
1678
  options: {
1679
- offset: [xt(n.value), xt(a.value)]
1679
+ offset: [wt(n.value), wt(a.value)]
1680
1680
  }
1681
1681
  }
1682
1682
  ]
@@ -1894,7 +1894,7 @@ const na = ["onKeyup", "aria-open"], aa = {
1894
1894
  be(
1895
1895
  () => O.value ? `border: ${R.value}px solid transparent; margin: -${R.value}px;` : null
1896
1896
  );
1897
- const ue = kt.debounce(q, A.value), Y = kt.debounce(W, I.value), J = async () => {
1897
+ const ue = xt.debounce(q, A.value), Y = xt.debounce(W, I.value), J = async () => {
1898
1898
  Q.value || j.value || (Y.clear(), r.value = !0, ue());
1899
1899
  }, ye = async () => {
1900
1900
  j.value || (ue.clear(), r.value = !1, Y());
@@ -1904,16 +1904,16 @@ const na = ["onKeyup", "aria-open"], aa = {
1904
1904
  return le([h, P], ([X, re]) => {
1905
1905
  F.value && (!X || re) && W();
1906
1906
  }), le(F, (X) => {
1907
- X ? g.value = !0 : kt.debounce(() => {
1907
+ X ? g.value = !0 : xt.debounce(() => {
1908
1908
  g.value = !1;
1909
1909
  }, 200);
1910
- }), bt(() => {
1910
+ }), kt(() => {
1911
1911
  j.value && (N.value ? ue() : Y());
1912
- }), bt(() => {
1912
+ }), kt(() => {
1913
1913
  Be.value && Qn(c, ye);
1914
1914
  }), le(C, (X) => {
1915
1915
  X ? h.value = !0 : h.value = !1;
1916
- }), bt(() => {
1916
+ }), kt(() => {
1917
1917
  c.value && n.observe(c.value, {
1918
1918
  childList: !0,
1919
1919
  subtree: !0
@@ -1928,7 +1928,7 @@ const na = ["onKeyup", "aria-open"], aa = {
1928
1928
  onMouseover: re[0] || (re[0] = ($e) => e.hover && J()),
1929
1929
  onClick: ze,
1930
1930
  onFocus: J,
1931
- onKeyup: U(ye, ["esc"]),
1931
+ onKeyup: G(ye, ["esc"]),
1932
1932
  "aria-describedby": i,
1933
1933
  "aria-open": r.value || null,
1934
1934
  class: "ecs-popover-trigger"
@@ -1938,7 +1938,7 @@ const na = ["onKeyup", "aria-open"], aa = {
1938
1938
  (o(), y(ii, { to: "body" }, [
1939
1939
  b(xe, { name: "fade" }, {
1940
1940
  default: w(() => [
1941
- e.persistent || r.value ? Ge((o(), l("div", {
1941
+ e.persistent || r.value ? Ue((o(), l("div", {
1942
1942
  key: 0,
1943
1943
  onClick: re[1] || (re[1] = ($e) => !ie(O) && ye()),
1944
1944
  class: "ecs-popover popper",
@@ -1954,7 +1954,7 @@ const na = ["onKeyup", "aria-open"], aa = {
1954
1954
  ], !0),
1955
1955
  e.arrow ? (o(), y(ia, { key: 0 })) : u("", !0)
1956
1956
  ], 512)), [
1957
- [ft, K.value]
1957
+ [pt, K.value]
1958
1958
  ]) : u("", !0)
1959
1959
  ]),
1960
1960
  _: 3
@@ -2284,7 +2284,7 @@ function ya(e, s, t, a, n, i) {
2284
2284
  required: t.required || null,
2285
2285
  disabled: t.disabled || null,
2286
2286
  checked: n.checked || null,
2287
- onClick: s[0] || (s[0] = G((d) => e.$emit("shiftClick", d), ["shift"])),
2287
+ onClick: s[0] || (s[0] = U((d) => e.$emit("shiftClick", d), ["shift"])),
2288
2288
  onChange: s[1] || (s[1] = (...d) => i.handleClick && i.handleClick(...d))
2289
2289
  }, null, 42, va),
2290
2290
  f("label", {
@@ -2959,12 +2959,12 @@ const ja = {
2959
2959
  this.$emit("secondaryClick");
2960
2960
  }
2961
2961
  }
2962
- }, Ga = {
2962
+ }, Ua = {
2963
2963
  key: 0,
2964
2964
  class: "ecs-popover-list-item control no-hover",
2965
2965
  role: "menuitem",
2966
2966
  tabindex: "-1"
2967
- }, Ua = {
2967
+ }, Ga = {
2968
2968
  key: 0,
2969
2969
  class: "after"
2970
2970
  }, Ka = {
@@ -3005,7 +3005,7 @@ const ja = {
3005
3005
  function co(e, s, t, a, n, i) {
3006
3006
  const r = p("ecs-checkbox"), c = p("ecs-radiobutton"), d = p("ecs-switch"), g = p("ecs-sortbutton"), h = p("ecs-focus-ring"), k = p("ecs-icon"), z = p("ecs-file-icon"), I = p("ecs-button");
3007
3007
  return o(), l("li", null, [
3008
- t.type === "checkbox" ? (o(), l("div", Ga, [
3008
+ t.type === "checkbox" ? (o(), l("div", Ua, [
3009
3009
  b(r, {
3010
3010
  onInput: s[0] || (s[0] = (C) => e.$emit("input", C)),
3011
3011
  disabled: t.disabled || null,
@@ -3019,7 +3019,7 @@ function co(e, s, t, a, n, i) {
3019
3019
  ]),
3020
3020
  _: 3
3021
3021
  }, 8, ["disabled", "value", "value-false", "value-true", "indeterminate"]),
3022
- t.suffix ? (o(), l("span", Ua, x(t.suffix), 1)) : u("", !0)
3022
+ t.suffix ? (o(), l("span", Ga, x(t.suffix), 1)) : u("", !0)
3023
3023
  ])) : t.type === "radiobutton" ? (o(), l("div", Ka, [
3024
3024
  b(c, {
3025
3025
  onChange: s[1] || (s[1] = (C) => e.$emit("change", C)),
@@ -3097,7 +3097,7 @@ function co(e, s, t, a, n, i) {
3097
3097
  ]),
3098
3098
  i.secondaryActionOptions.show ? (o(), y(I, {
3099
3099
  key: 0,
3100
- onClick: G(i.handleSecondaryClick, ["stop"]),
3100
+ onClick: U(i.handleSecondaryClick, ["stop"]),
3101
3101
  onMouseover: s[4] || (s[4] = (C) => n.preventHover = !n.preventHover),
3102
3102
  onMouseleave: s[5] || (s[5] = (C) => n.preventHover = !n.preventHover),
3103
3103
  size: "sml",
@@ -3149,7 +3149,7 @@ function co(e, s, t, a, n, i) {
3149
3149
  ]),
3150
3150
  i.secondaryActionOptions.show ? (o(), y(I, {
3151
3151
  key: 0,
3152
- onClick: G(i.handleSecondaryClick, ["stop"]),
3152
+ onClick: U(i.handleSecondaryClick, ["stop"]),
3153
3153
  onMouseover: s[7] || (s[7] = (C) => n.preventHover = !n.preventHover),
3154
3154
  onMouseleave: s[8] || (s[8] = (C) => n.preventHover = !n.preventHover),
3155
3155
  size: "sml",
@@ -3348,7 +3348,7 @@ function mo(e, s, t, a, n, i) {
3348
3348
  b(c)
3349
3349
  ], 10, go));
3350
3350
  }
3351
- const gt = /* @__PURE__ */ _(fo, [["render", mo], ["__scopeId", "data-v-72592c75"]]);
3351
+ const mt = /* @__PURE__ */ _(fo, [["render", mo], ["__scopeId", "data-v-72592c75"]]);
3352
3352
  const ho = {
3353
3353
  name: "ecs-separator",
3354
3354
  props: {
@@ -3406,7 +3406,7 @@ const _o = /* @__PURE__ */ _(ho, [["render", vo], ["__scopeId", "data-v-6c95c339
3406
3406
  const yo = {
3407
3407
  name: "ecs-bulk-selector",
3408
3408
  emits: ["select", "families", "checked", "popover-shown", "popover-hidden"],
3409
- components: { EcsFlexRow: Me, EcsPopover: Ts, EcsPopoverList: ua, EcsPopoverListItem: uo, EcsButtonToolbar: gt, EcsCheckbox: Vt, EcsSeparator: _o },
3409
+ components: { EcsFlexRow: Me, EcsPopover: Ts, EcsPopoverList: ua, EcsPopoverListItem: uo, EcsButtonToolbar: mt, EcsCheckbox: Vt, EcsSeparator: _o },
3410
3410
  props: {
3411
3411
  /** Array of available select options that should show up in the dropdown. Needs to contain objects for each popover-list-item, */
3412
3412
  options: {
@@ -3618,1599 +3618,348 @@ function zo(e, s, t, a, n, i) {
3618
3618
  ], 10, Bo);
3619
3619
  }
3620
3620
  const Os = /* @__PURE__ */ _(Co, [["render", zo], ["__scopeId", "data-v-3fdbdfeb"]]);
3621
- const Io = {
3622
- name: "ecs-button-context",
3623
- emits: ["click"],
3624
- components: {
3625
- EcsIcon: M,
3626
- EcsFocusRing: L
3627
- },
3628
- props: {
3629
- /** If set, an icon will be added to the left of the button. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
3630
- icon: {
3631
- type: String,
3632
- default: null
3633
- },
3634
- /** Turns the button into a loading state. */
3635
- loading: {
3636
- type: Boolean,
3637
- default: !1
3638
- },
3639
- /** Context buttons can be used to set a specific text or annotation color on the selection. Pass any color value (HEX, RGBA). */
3640
- selectedColor: {
3641
- type: String,
3642
- default: null
3643
- },
3644
- /** Aria-label is needed for iconOnly buttons to improve accessibility for screenreaders. */
3645
- ariaLabel: {
3646
- type: String
3647
- }
3648
- },
3649
- computed: {
3650
- iconType() {
3651
- return this.loading ? "loading" : (this.icon && this.icon, this.icon);
3652
- },
3653
- iconOnly() {
3654
- return this.icon && !this.$slots.default;
3655
- },
3656
- selectedColorBackground() {
3657
- if (this.selectedColor)
3658
- return `background-color:${this.selectedColor};`;
3659
- },
3660
- selectedColorText() {
3661
- if (this.selectedColor)
3662
- return `color:${this.selectedColor};`;
3663
- }
3664
- },
3665
- mounted() {
3666
- this.iconOnly && (!this.ariaLabel || this.ariaLabel.trim());
3667
- }
3668
- }, Eo = ["aria-label", "aria-busy"];
3669
- function $o(e, s, t, a, n, i) {
3670
- const r = p("ecs-icon"), c = p("ecs-focus-ring");
3671
- return o(), l("button", {
3672
- class: v(["ecs-context-button", [t.loading ? "loading" : "", i.iconOnly ? "ecs-context-button-icon-only" : ""]]),
3673
- "aria-label": t.ariaLabel,
3674
- "aria-busy": t.loading || null,
3675
- style: B(i.selectedColorText),
3676
- onClick: s[0] || (s[0] = (d) => e.$emit("click", d))
3677
- }, [
3678
- t.icon || t.loading ? (o(), y(r, {
3679
- key: 0,
3680
- type: i.iconType,
3681
- size: "20"
3682
- }, null, 8, ["type"])) : u("", !0),
3683
- t.selectedColor ? (o(), l("div", {
3684
- key: 1,
3685
- class: "ecs-context-button-color",
3686
- style: B(i.selectedColorBackground)
3687
- }, null, 4)) : u("", !0),
3688
- m(e.$slots, "default", {}, void 0, !0),
3689
- b(c)
3690
- ], 14, Eo);
3621
+ function ft(e) {
3622
+ "@babel/helpers - typeof";
3623
+ return ft = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(s) {
3624
+ return typeof s;
3625
+ } : function(s) {
3626
+ return s && typeof Symbol == "function" && s.constructor === Symbol && s !== Symbol.prototype ? "symbol" : typeof s;
3627
+ }, ft(e);
3691
3628
  }
3692
- const yy = /* @__PURE__ */ _(Io, [["render", $o], ["__scopeId", "data-v-bbc83578"]]);
3693
- const Po = {
3694
- name: "ecs-context-button-group"
3695
- }, To = { class: "ecs-context-button-group" };
3696
- function Mo(e, s, t, a, n, i) {
3697
- return o(), l("div", To, [
3698
- m(e.$slots, "default", {}, void 0, !0)
3699
- ]);
3629
+ var Io = /^\s+/, Eo = /\s+$/;
3630
+ function S(e, s) {
3631
+ if (e = e || "", s = s || {}, e instanceof S)
3632
+ return e;
3633
+ if (!(this instanceof S))
3634
+ return new S(e, s);
3635
+ var t = $o(e);
3636
+ this._originalInput = e, this._r = t.r, this._g = t.g, this._b = t.b, this._a = t.a, this._roundA = Math.round(100 * this._a) / 100, this._format = s.format || t.format, this._gradientType = s.gradientType, this._r < 1 && (this._r = Math.round(this._r)), this._g < 1 && (this._g = Math.round(this._g)), this._b < 1 && (this._b = Math.round(this._b)), this._ok = t.ok;
3700
3637
  }
3701
- const by = /* @__PURE__ */ _(Po, [["render", Mo], ["__scopeId", "data-v-94a53b69"]]);
3702
- const Lo = {
3703
- name: "ecs-button-dialog",
3704
- emits: ["click"],
3705
- components: {
3706
- EcsIcon: M,
3707
- EcsFocusRing: L
3638
+ S.prototype = {
3639
+ isDark: function() {
3640
+ return this.getBrightness() < 128;
3708
3641
  },
3709
- props: {
3710
- /** If set, an icon will be added to the left of the button. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
3711
- icon: {
3712
- type: String,
3713
- default: null
3714
- },
3715
- /** Defines the type and function of the button. If not set, the button will be neutral (used for Cancel actions). */
3716
- type: {
3717
- type: String,
3718
- validator: (e) => ["danger", "confirm", "cancel"].includes(e),
3719
- default: "cancel"
3720
- },
3721
- /** Turns the button into a loading state. */
3722
- loading: Boolean
3642
+ isLight: function() {
3643
+ return !this.isDark();
3723
3644
  },
3724
- computed: {
3725
- typeClass() {
3726
- return this.type && this.type !== "" ? `ecs-dialog-footer-button-${this.type}` : this.type;
3727
- },
3728
- iconType() {
3729
- return this.loading ? "loading" : this.icon;
3730
- }
3731
- }
3732
- }, Oo = ["aria-busy"];
3733
- function Ao(e, s, t, a, n, i) {
3734
- const r = p("ecs-icon"), c = p("ecs-focus-ring");
3735
- return o(), l("button", {
3736
- onClick: s[0] || (s[0] = (d) => e.$emit("click", d)),
3737
- class: v([[i.typeClass, t.loading ? "loading" : ""], "ecs-dialog-footer-button"]),
3738
- "aria-busy": t.loading || null
3739
- }, [
3740
- t.icon || t.loading ? (o(), y(r, {
3741
- key: 0,
3742
- type: i.iconType
3743
- }, null, 8, ["type"])) : u("", !0),
3744
- m(e.$slots, "default", {}, void 0, !0),
3745
- b(c, {
3746
- radius: 12,
3747
- danger: t.type == "danger"
3748
- }, null, 8, ["danger"])
3749
- ], 10, Oo);
3750
- }
3751
- const ky = /* @__PURE__ */ _(Lo, [["render", Ao], ["__scopeId", "data-v-fe031b71"]]);
3752
- const No = {
3753
- name: "ecs-button-more",
3754
- emits: ["click"],
3755
- components: {
3756
- EcsIcon: M,
3757
- EcsFocusRing: L
3645
+ isValid: function() {
3646
+ return this._ok;
3758
3647
  },
3759
- props: {
3760
- /** Displays the button slightly highlighted. Should be used when the state the button triggers is currently visible. */
3761
- active: Boolean,
3762
- /** Defines the type of the button: `dropdown` shows a simple dropdown button, `ellipsis` shows a tiny (...) button, and `expand` is supposed to be used at the end of expandable lists and tables. */
3763
- type: {
3764
- type: String,
3765
- validator: (e) => ["dropdown", "dropdown-round", "ellipsis", "expand"].includes(e),
3766
- default: "dropdown"
3767
- },
3768
- /** Provide a meaningful label for the button to improve accessibility for screenreaders. */
3769
- ariaLabel: {
3770
- type: String
3771
- },
3772
- /** Disables the button and prevent pointer events. */
3773
- disabled: {
3774
- type: Boolean
3775
- }
3648
+ getOriginalInput: function() {
3649
+ return this._originalInput;
3776
3650
  },
3777
- computed: {
3778
- typeClass() {
3779
- return this.type && this.type !== "" ? `ecs-button-more-${this.type}` : this.type;
3780
- }
3651
+ getFormat: function() {
3652
+ return this._format;
3781
3653
  },
3782
- mounted() {
3783
- this.$slots.default === void 0 && (!this.ariaLabel || this.ariaLabel.trim());
3784
- }
3785
- }, Do = ["aria-label", "aria-disabled", "aria-expanded", "aria-haspopup", "disabled"];
3786
- function Fo(e, s, t, a, n, i) {
3787
- const r = p("ecs-icon"), c = p("ecs-focus-ring");
3788
- return o(), l("button", {
3789
- onClick: s[0] || (s[0] = (d) => e.$emit("click", d)),
3790
- "aria-label": t.ariaLabel,
3791
- "aria-disabled": t.disabled || null,
3792
- "aria-expanded": t.active || null,
3793
- "aria-haspopup": t.type == "dropdown" || null,
3794
- disabled: t.disabled || null,
3795
- class: v([
3796
- t.active ? "active" : "",
3797
- i.typeClass
3798
- ])
3799
- }, [
3800
- t.type == "ellipsis" ? (o(), y(r, {
3801
- key: 0,
3802
- type: "more",
3803
- size: "20",
3804
- color: "#FFF"
3805
- })) : u("", !0),
3806
- t.type == "dropdown" || t.type == "dropdown-round" ? (o(), y(r, {
3807
- key: 1,
3808
- type: "chevron-down",
3809
- size: "12",
3810
- color: "var(--color-gray-9)"
3811
- })) : u("", !0),
3812
- t.type === "expand" ? m(e.$slots, "default", { key: 2 }, void 0, !0) : u("", !0),
3813
- b(c)
3814
- ], 10, Do);
3815
- }
3816
- const As = /* @__PURE__ */ _(No, [["render", Fo], ["__scopeId", "data-v-faa154dd"]]);
3817
- const Ro = {
3818
- name: "ecs-button-table",
3819
- emits: ["click", "mouseover", "mouseleave"],
3820
- components: {
3821
- EcsIcon: M,
3822
- EcsFocusRing: L
3654
+ getAlpha: function() {
3655
+ return this._a;
3823
3656
  },
3824
- props: {
3825
- /** Displays the button in an active state. */
3826
- active: Boolean,
3827
- /** Show the button without a background color. */
3828
- subtle: {
3829
- type: Boolean,
3830
- default: !1
3831
- },
3832
- /** Button is visually toned down (text and icon are more gray than black). */
3833
- pale: {
3834
- type: Boolean,
3835
- default: !1
3836
- },
3837
- /** Sets the size of the button. */
3838
- size: {
3839
- type: String,
3840
- validator: (e) => ["md", "sml", null].includes(e),
3841
- default: "md"
3842
- },
3843
- /** If set, an icon will be added to the left of the button. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
3844
- icon: {
3845
- type: String
3846
- },
3847
- /** Text text inside the button. */
3848
- label: {
3849
- type: [String, Number]
3850
- },
3851
- /** Turns the button into disabled state, which disables all interactions and hover effects. */
3852
- disabled: {
3853
- type: Boolean,
3854
- default: !1
3855
- },
3856
- /** If set, a small arrow will show up on the right side of the button, to indicate an collapse/expand state. The direction of the button is determined by the `active` prop. */
3857
- chevron: {
3858
- type: Boolean,
3859
- default: !1
3860
- },
3861
- /** If set, the button will not show any effects that would indicate that you could interact with the button. This is usefull when the button is only used to show a specific count/label instead of triggering any actions. */
3862
- unreactive: {
3863
- type: Boolean,
3864
- default: !1
3865
- },
3866
- /** Turns the button into a loading state, which makes it appear disabled and replaces the default icon (if set) with a spinner. */
3867
- loading: {
3868
- type: Boolean,
3869
- default: !1
3870
- }
3657
+ getBrightness: function() {
3658
+ var s = this.toRgb();
3659
+ return (s.r * 299 + s.g * 587 + s.b * 114) / 1e3;
3871
3660
  },
3872
- computed: {
3873
- hasLabel() {
3874
- return this.label && this.label !== "" || this.label != null ? "has-label" : this.label;
3875
- },
3876
- sizeClass() {
3877
- return this.size && this.size !== "" ? `ecs-button-table-${this.size}` : this.size;
3878
- },
3879
- iconSize() {
3880
- return this.size == "sml" ? "16" : "20";
3881
- },
3882
- iconType() {
3883
- return this.loading ? "loading" : this.icon;
3884
- },
3885
- ariaDisabled() {
3886
- return this.disabled || this.unreactive ? !0 : null;
3887
- }
3888
- }
3889
- }, Vo = ["disabled", "aria-disabled", "aria-expanded", "aria-busy"], Ho = {
3890
- key: 1,
3891
- class: "button-label"
3892
- };
3893
- function qo(e, s, t, a, n, i) {
3894
- const r = p("ecs-icon"), c = p("ecs-focus-ring");
3895
- return o(), l("button", {
3896
- class: v(["ecs-button-table", [
3897
- t.active ? "active" : "",
3898
- i.hasLabel,
3899
- t.subtle ? "subtle" : "",
3900
- t.pale ? "pale" : "",
3901
- t.unreactive ? "unreactive" : "",
3902
- t.loading ? "loading" : "",
3903
- i.sizeClass
3904
- ]]),
3905
- disabled: t.disabled || null,
3906
- "aria-disabled": i.ariaDisabled,
3907
- "aria-expanded": t.active || null,
3908
- "aria-busy": t.loading || null,
3909
- onClick: s[0] || (s[0] = (d) => e.$emit("click", d)),
3910
- onMouseover: s[1] || (s[1] = (d) => e.$emit("mouseover", d)),
3911
- onMouseleave: s[2] || (s[2] = (d) => e.$emit("mouseleave", d))
3912
- }, [
3913
- t.icon || t.loading ? (o(), y(r, {
3914
- key: 0,
3915
- type: i.iconType,
3916
- size: i.iconSize
3917
- }, null, 8, ["type", "size"])) : u("", !0),
3918
- t.label != null ? (o(), l("div", Ho, x(t.label), 1)) : u("", !0),
3919
- t.chevron ? (o(), l("div", {
3920
- key: 2,
3921
- class: v(["chevron", t.active ? "expand" : ""])
3922
- }, null, 2)) : u("", !0),
3923
- b(c)
3924
- ], 42, Vo);
3925
- }
3926
- const Ns = /* @__PURE__ */ _(Ro, [["render", qo], ["__scopeId", "data-v-f5a891fe"]]);
3927
- const Wo = {
3928
- name: "ecs-toolbar-button-group"
3929
- }, jo = { class: "ecs-toolbar-button-group" };
3930
- function Go(e, s, t, a, n, i) {
3931
- return o(), l("div", jo, [
3932
- m(e.$slots, "default", {}, void 0, !0)
3933
- ]);
3934
- }
3935
- const Ht = /* @__PURE__ */ _(Wo, [["render", Go], ["__scopeId", "data-v-743ca90b"]]);
3936
- const Uo = {
3937
- name: "ecs-toolbar-icon-button",
3938
- emits: ["click"],
3939
- components: { EcsIcon: M, EcsFocusRing: L },
3940
- props: {
3941
- /** The icon type of the button. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). Note that only icons prefixed with `toolbar-` should be used here. */
3942
- icon: {
3943
- type: String,
3944
- required: !0
3945
- },
3946
- /** Renders a small secondary icon in the bottom left of the button. Should only used under special conditions, eg. to reflect a specifc state that can not be handled by the `active` prop. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
3947
- subIcon: {
3948
- type: String
3949
- },
3950
- /** When set, the icon is spinning. Should really only be used when the `icon` is set to `toolbar-refresh`. */
3951
- refresh: {
3952
- type: Boolean,
3953
- default: !1
3954
- },
3955
- /** Indicates that the button is activated. */
3956
- active: {
3957
- type: Boolean,
3958
- default: !1
3959
- },
3960
- /** Show the button in loading state. */
3961
- loading: {
3962
- type: Boolean,
3963
- default: !1
3964
- },
3965
- /** Adds a small blue badge to the upper right of the button. */
3966
- hasBadge: {
3967
- type: Boolean,
3968
- default: !1
3969
- },
3970
- /** Sets the aria-label attribute to improve accessibility. */
3971
- ariaLabel: {
3972
- type: String
3973
- //required: true
3974
- }
3661
+ getLuminance: function() {
3662
+ var s = this.toRgb(), t, a, n, i, r, c;
3663
+ return t = s.r / 255, a = s.g / 255, n = s.b / 255, t <= 0.03928 ? i = t / 12.92 : i = Math.pow((t + 0.055) / 1.055, 2.4), a <= 0.03928 ? r = a / 12.92 : r = Math.pow((a + 0.055) / 1.055, 2.4), n <= 0.03928 ? c = n / 12.92 : c = Math.pow((n + 0.055) / 1.055, 2.4), 0.2126 * i + 0.7152 * r + 0.0722 * c;
3975
3664
  },
3976
- computed: {
3977
- ariaBusy() {
3978
- return this.refresh || this.loading ? !0 : null;
3979
- }
3980
- }
3981
- }, Ko = ["aria-busy", "aria-label"], Yo = {
3982
- key: 0,
3983
- class: "badge"
3984
- }, Xo = { class: "sub-icon" };
3985
- function Zo(e, s, t, a, n, i) {
3986
- const r = p("ecs-icon"), c = p("ecs-focus-ring");
3987
- return o(), l("button", {
3988
- onClick: s[0] || (s[0] = (d) => e.$emit("click", d)),
3989
- "aria-busy": i.ariaBusy,
3990
- "aria-label": t.ariaLabel,
3991
- class: v(["ecs-toolbar-icon-button", [
3992
- t.refresh ? "refreshing" : "",
3993
- t.active ? "active" : "",
3994
- t.loading ? "loading" : ""
3995
- ]])
3996
- }, [
3997
- b(r, { type: t.icon }, null, 8, ["type"]),
3998
- t.hasBadge ? (o(), l("span", Yo)) : u("", !0),
3999
- f("div", Xo, [
4000
- t.subIcon ? (o(), y(r, {
4001
- key: 0,
4002
- type: t.subIcon,
4003
- size: "14"
4004
- }, null, 8, ["type"])) : u("", !0)
4005
- ]),
4006
- b(c)
4007
- ], 10, Ko);
4008
- }
4009
- const xy = /* @__PURE__ */ _(Uo, [["render", Zo], ["__scopeId", "data-v-098e1030"]]);
4010
- const Jo = {
4011
- name: "ecs-card",
4012
- emits: ["click"],
4013
- props: {
4014
- /** Unique ID */
4015
- id: {
4016
- type: [String, Number],
4017
- default: null
4018
- },
4019
- /** Indicates that this card is currently selected (most likely via a checkbox that is contained in the card). */
4020
- selected: {
4021
- type: Boolean,
4022
- default: !1
4023
- },
4024
- /** Indicates that this card is currently expanded. Adds a bit of spacing and a stronger shadow. */
4025
- expanded: {
4026
- type: Boolean,
4027
- default: !1
4028
- },
4029
- /** Determines if the card should have a :hover state. This usually applies when the card is clickable, or expandable. */
4030
- hover: {
4031
- type: Boolean,
4032
- default: !1
4033
- },
4034
- /** Shows a full-height progress bar in the background of the card. Should only be used for single row cards. Pass the current percentage value as `Number`. */
4035
- progress: {
4036
- type: Number,
4037
- default: null
4038
- },
4039
- /** Turns the whole card into a disabled state. This also blocks all interactions on card content. */
4040
- disabled: {
4041
- type: Boolean,
4042
- default: !1
4043
- }
3665
+ setAlpha: function(s) {
3666
+ return this._a = As(s), this._roundA = Math.round(100 * this._a) / 100, this;
4044
3667
  },
4045
- computed: {
4046
- itemId() {
4047
- return `item-${this.id}`;
4048
- }
4049
- }
4050
- }, Qo = ["id"], er = { class: "ecs-card-inner" }, tr = { class: "ecs-card-background" };
4051
- function sr(e, s, t, a, n, i) {
4052
- return o(), l("div", {
4053
- onClick: s[0] || (s[0] = (r) => e.$emit("click", r)),
4054
- class: v(["ecs-card", [
4055
- t.selected ? "ecs-card-selected" : "",
4056
- t.expanded ? "ecs-card-expanded" : "",
4057
- t.hover ? "ecs-card-hover" : "",
4058
- t.disabled ? "ecs-card-disabled" : ""
4059
- ]]),
4060
- id: i.itemId
4061
- }, [
4062
- f("div", er, [
4063
- m(e.$slots, "default", {}, void 0, !0)
4064
- ]),
4065
- f("div", tr, [
4066
- t.progress ? (o(), l("div", {
4067
- key: 0,
4068
- class: "progress",
4069
- style: B({ width: t.progress + "%" })
4070
- }, null, 4)) : u("", !0)
4071
- ])
4072
- ], 10, Qo);
4073
- }
4074
- const wy = /* @__PURE__ */ _(Jo, [["render", sr], ["__scopeId", "data-v-8d449816"]]);
4075
- const ir = {
4076
- name: "ecs-citation-line",
4077
- emits: ["change", "blur", "focus"],
4078
- components: { EcsFlexRow: Me },
4079
- props: {
4080
- /** The citation range text. */
4081
- cite: {
4082
- type: String,
4083
- required: !0
4084
- },
4085
- /** Unique citation ID */
4086
- id: {
4087
- type: [String, Number],
4088
- required: !0
4089
- },
4090
- /** Determines the visual state of the citation line. */
4091
- state: {
4092
- type: String,
4093
- validator: (e) => ["default", "error", "warning", "edited", "skipped"].includes(e),
4094
- default: "default"
4095
- },
4096
- /** Makes the content of the citation line editable. */
4097
- editable: {
4098
- type: Boolean,
4099
- default: !0
4100
- }
3668
+ toHsv: function() {
3669
+ var s = ls(this._r, this._g, this._b);
3670
+ return {
3671
+ h: s.h * 360,
3672
+ s: s.s,
3673
+ v: s.v,
3674
+ a: this._a
3675
+ };
4101
3676
  },
4102
- data() {
3677
+ toHsvString: function() {
3678
+ var s = ls(this._r, this._g, this._b), t = Math.round(s.h * 360), a = Math.round(s.s * 100), n = Math.round(s.v * 100);
3679
+ return this._a == 1 ? "hsv(" + t + ", " + a + "%, " + n + "%)" : "hsva(" + t + ", " + a + "%, " + n + "%, " + this._roundA + ")";
3680
+ },
3681
+ toHsl: function() {
3682
+ var s = rs(this._r, this._g, this._b);
4103
3683
  return {
4104
- citeValue: this.cite
3684
+ h: s.h * 360,
3685
+ s: s.s,
3686
+ l: s.l,
3687
+ a: this._a
4105
3688
  };
4106
3689
  },
4107
- mounted() {
4108
- this.$refs.editable.innerText = this.citeValue;
3690
+ toHslString: function() {
3691
+ var s = rs(this._r, this._g, this._b), t = Math.round(s.h * 360), a = Math.round(s.s * 100), n = Math.round(s.l * 100);
3692
+ return this._a == 1 ? "hsl(" + t + ", " + a + "%, " + n + "%)" : "hsla(" + t + ", " + a + "%, " + n + "%, " + this._roundA + ")";
4109
3693
  },
4110
- methods: {
4111
- onInput(e) {
4112
- this.citeValue = e.target.innerText, this.$emit("change", this.citeValue, this.id);
4113
- }
4114
- }
4115
- }, nr = ["contenteditable"];
4116
- function ar(e, s, t, a, n, i) {
4117
- const r = p("ecs-flex-row");
4118
- return o(), y(r, { class: "ecs-citation-line" }, {
4119
- default: w(() => [
4120
- f("div", {
4121
- class: v(["ecs-citation-line-cite", [t.state, t.editable ? "editable" : ""]]),
4122
- ref: "editable",
4123
- onKeyup: s[0] || (s[0] = (...c) => i.onInput && i.onInput(...c)),
4124
- onBlur: s[1] || (s[1] = (c) => e.$emit("blur", c)),
4125
- onFocus: s[2] || (s[2] = (c) => e.$emit("focus", c)),
4126
- onKeydown: s[3] || (s[3] = U(G(() => {
4127
- }, ["prevent"]), ["enter"])),
4128
- contenteditable: t.editable
4129
- }, null, 42, nr),
4130
- e.$slots.actions ? (o(), y(r, {
4131
- key: 0,
4132
- justify: "end",
4133
- class: "ecs-citation-line-actions"
4134
- }, {
4135
- default: w(() => [
4136
- m(e.$slots, "actions", {}, void 0, !0)
4137
- ]),
4138
- _: 3
4139
- })) : u("", !0)
4140
- ]),
4141
- _: 3
4142
- });
4143
- }
4144
- const Sy = /* @__PURE__ */ _(ir, [["render", ar], ["__scopeId", "data-v-cfd8e718"]]);
4145
- var qt = {};
4146
- Object.defineProperty(qt, "__esModule", {
4147
- value: !0
4148
- });
4149
- var or = qt.clickOutSide = {
4150
- mounted: function(s, t, a) {
4151
- s.clickOutsideEvent = function(n) {
4152
- s == n.target || s.contains(n.target) || t.value(n, s);
4153
- }, document.addEventListener("click", s.clickOutsideEvent);
3694
+ toHex: function(s) {
3695
+ return cs(this._r, this._g, this._b, s);
4154
3696
  },
4155
- unmounted: function(s) {
4156
- document.removeEventListener("click", s.clickOutsideEvent);
4157
- }
4158
- }, rr = qt.default = or;
4159
- const lr = {
4160
- name: "ecs-context-menu",
4161
- emits: ["option-clicked", "menu-closed"],
4162
- components: { EcsIcon: M, EcsFocusRing: L, EcsButton: Se },
4163
- directives: {
4164
- clickOutSide: rr
3697
+ toHexString: function(s) {
3698
+ return "#" + this.toHex(s);
4165
3699
  },
4166
- props: {
4167
- /** Unique String that acts as the id for the menu. */
4168
- elementId: {
4169
- type: String,
4170
- required: !0
4171
- },
4172
- /** Array of menu options to show. Component will use the `name` parameter as the label. Array needs to contain objects with the following structure:
4173
- ```{
4174
- name: 'Duplicate',
4175
- slug: 'duplicate',
4176
- icon: 'evidence',
4177
- disabled: false,
4178
- type: '',
4179
- nested: { ... }
4180
- }``` */
4181
- options: {
4182
- type: Array,
4183
- required: !0
4184
- },
4185
- /** If passed, an icon will appear. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
4186
- icon: {
4187
- type: String
4188
- }
3700
+ toHex8: function(s) {
3701
+ return Lo(this._r, this._g, this._b, this._a, s);
4189
3702
  },
4190
- data() {
3703
+ toHex8String: function(s) {
3704
+ return "#" + this.toHex8(s);
3705
+ },
3706
+ toRgb: function() {
4191
3707
  return {
4192
- item: null,
4193
- menuWidth: null,
4194
- menuHeight: null,
4195
- opened: !1,
4196
- left: 0,
4197
- top: 0
3708
+ r: Math.round(this._r),
3709
+ g: Math.round(this._g),
3710
+ b: Math.round(this._b),
3711
+ a: this._a
4198
3712
  };
4199
3713
  },
4200
- computed: {
4201
- postionStyles() {
4202
- return { left: this.left + "px", top: this.top + "px" };
4203
- }
3714
+ toRgbString: function() {
3715
+ return this._a == 1 ? "rgb(" + Math.round(this._r) + ", " + Math.round(this._g) + ", " + Math.round(this._b) + ")" : "rgba(" + Math.round(this._r) + ", " + Math.round(this._g) + ", " + Math.round(this._b) + ", " + this._roundA + ")";
4204
3716
  },
4205
- methods: {
4206
- showMenu(e, s) {
4207
- this.item = s;
4208
- let t = document.getElementById(this.elementId);
4209
- t && ((!this.menuWidth || !this.menuHeight) && (t.style.visibility = "hidden", t.style.display = "block", this.menuWidth = t.offsetWidth, this.menuHeight = t.offsetHeight, t.removeAttribute("style")), this.menuWidth + e.pageX >= window.innerWidth ? this.left = e.pageX - this.menuWidth + 2 : this.left = e.pageX - 2, this.menuHeight + e.pageY >= window.innerHeight ? this.top = e.pageY - this.menuHeight + 2 : this.top = e.pageY - 2, this.opened = !0, this.$emit("menu-opened", this.item), this.$nextTick(() => {
4210
- this.$refs.menu.focus();
4211
- }));
4212
- },
4213
- hideContextMenu() {
4214
- document.getElementById(this.elementId) && (this.opened = !1, this.$emit("menu-closed"));
4215
- },
4216
- onClickOutside() {
4217
- this.hideContextMenu();
4218
- },
4219
- optionClicked(e) {
4220
- this.hideContextMenu(), this.$emit("option-clicked", {
4221
- item: this.item,
4222
- option: e
4223
- });
4224
- },
4225
- onEscKeyRelease(e) {
4226
- e.keyCode === 27 && this.hideContextMenu();
4227
- },
4228
- // Focus the first menu item when the context menu opens
4229
- focusFirst() {
4230
- this.$refs.menu.children[0].focus();
4231
- },
4232
- // Focus the last menu item when the user presses the up arrow key on the first menu item
4233
- focusLast() {
4234
- const e = this.$refs.menu.children;
4235
- e[e.length - 1].focus();
4236
- },
4237
- // Focus the previous menu item when the user presses the up arrow key
4238
- focusPrevious(e) {
4239
- const s = this.$refs.menu.children, t = Array.prototype.indexOf.call(s, e.target);
4240
- if (t > 0) {
4241
- let a = t - 1;
4242
- for (; a >= 0 && s[a].getAttribute("tabindex") === "-1"; )
4243
- a--;
4244
- a >= 0 ? s[a].focus() : this.focusLast();
4245
- } else
4246
- this.focusLast();
4247
- },
4248
- focusNext(e) {
4249
- const s = this.$refs.menu.children;
4250
- let t = Array.prototype.indexOf.call(s, e.target);
4251
- for (; t < s.length - 1; )
4252
- if (t++, s[t].getAttribute("tabindex") !== "-1") {
4253
- s[t].focus();
4254
- return;
4255
- }
4256
- this.focusFirst();
3717
+ toPercentageRgb: function() {
3718
+ return {
3719
+ r: Math.round(H(this._r, 255) * 100) + "%",
3720
+ g: Math.round(H(this._g, 255) * 100) + "%",
3721
+ b: Math.round(H(this._b, 255) * 100) + "%",
3722
+ a: this._a
3723
+ };
3724
+ },
3725
+ toPercentageRgbString: function() {
3726
+ return this._a == 1 ? "rgb(" + Math.round(H(this._r, 255) * 100) + "%, " + Math.round(H(this._g, 255) * 100) + "%, " + Math.round(H(this._b, 255) * 100) + "%)" : "rgba(" + Math.round(H(this._r, 255) * 100) + "%, " + Math.round(H(this._g, 255) * 100) + "%, " + Math.round(H(this._b, 255) * 100) + "%, " + this._roundA + ")";
3727
+ },
3728
+ toName: function() {
3729
+ return this._a === 0 ? "transparent" : this._a < 1 ? !1 : Uo[cs(this._r, this._g, this._b, !0)] || !1;
3730
+ },
3731
+ toFilter: function(s) {
3732
+ var t = "#" + ds(this._r, this._g, this._b, this._a), a = t, n = this._gradientType ? "GradientType = 1, " : "";
3733
+ if (s) {
3734
+ var i = S(s);
3735
+ a = "#" + ds(i._r, i._g, i._b, i._a);
4257
3736
  }
3737
+ return "progid:DXImageTransform.Microsoft.gradient(" + n + "startColorstr=" + t + ",endColorstr=" + a + ")";
4258
3738
  },
4259
- mounted() {
4260
- document.body.addEventListener("keyup", this.onEscKeyRelease), this.$refs.menu.addEventListener("keydown", (e) => {
4261
- e.keyCode === 9 && (e.preventDefault(), this.focusFirst());
4262
- });
3739
+ toString: function(s) {
3740
+ var t = !!s;
3741
+ s = s || this._format;
3742
+ var a = !1, n = this._a < 1 && this._a >= 0, i = !t && n && (s === "hex" || s === "hex6" || s === "hex3" || s === "hex4" || s === "hex8" || s === "name");
3743
+ return i ? s === "name" && this._a === 0 ? this.toName() : this.toRgbString() : (s === "rgb" && (a = this.toRgbString()), s === "prgb" && (a = this.toPercentageRgbString()), (s === "hex" || s === "hex6") && (a = this.toHexString()), s === "hex3" && (a = this.toHexString(!0)), s === "hex4" && (a = this.toHex8String(!0)), s === "hex8" && (a = this.toHex8String()), s === "name" && (a = this.toName()), s === "hsl" && (a = this.toHslString()), s === "hsv" && (a = this.toHsvString()), a || this.toHexString());
4263
3744
  },
4264
- beforeUnmount() {
4265
- document.removeEventListener("keyup", this.onEscKeyRelease);
3745
+ clone: function() {
3746
+ return S(this.toString());
3747
+ },
3748
+ _applyModification: function(s, t) {
3749
+ var a = s.apply(null, [this].concat([].slice.call(t)));
3750
+ return this._r = a._r, this._g = a._g, this._b = a._b, this.setAlpha(a._a), this;
3751
+ },
3752
+ lighten: function() {
3753
+ return this._applyModification(Do, arguments);
3754
+ },
3755
+ brighten: function() {
3756
+ return this._applyModification(Fo, arguments);
3757
+ },
3758
+ darken: function() {
3759
+ return this._applyModification(Ro, arguments);
3760
+ },
3761
+ desaturate: function() {
3762
+ return this._applyModification(Oo, arguments);
3763
+ },
3764
+ saturate: function() {
3765
+ return this._applyModification(Ao, arguments);
3766
+ },
3767
+ greyscale: function() {
3768
+ return this._applyModification(No, arguments);
3769
+ },
3770
+ spin: function() {
3771
+ return this._applyModification(Vo, arguments);
3772
+ },
3773
+ _applyCombination: function(s, t) {
3774
+ return s.apply(null, [this].concat([].slice.call(t)));
3775
+ },
3776
+ analogous: function() {
3777
+ return this._applyCombination(Wo, arguments);
3778
+ },
3779
+ complement: function() {
3780
+ return this._applyCombination(Ho, arguments);
3781
+ },
3782
+ monochromatic: function() {
3783
+ return this._applyCombination(jo, arguments);
3784
+ },
3785
+ splitcomplement: function() {
3786
+ return this._applyCombination(qo, arguments);
3787
+ },
3788
+ // Disabled until https://github.com/bgrins/TinyColor/issues/254
3789
+ // polyad: function (number) {
3790
+ // return this._applyCombination(polyad, [number]);
3791
+ // },
3792
+ triad: function() {
3793
+ return this._applyCombination(us, [3]);
3794
+ },
3795
+ tetrad: function() {
3796
+ return this._applyCombination(us, [4]);
4266
3797
  }
4267
- }, cr = ["id"], dr = ["onClick", "role", "tabindex", "aria-disabled"], ur = { key: 1 };
4268
- function fr(e, s, t, a, n, i) {
4269
- const r = p("ecs-icon"), c = p("ecs-button"), d = p("ecs-focus-ring"), g = oi("click-out-side");
4270
- return Ge((o(), l("div", {
4271
- class: v(["ecs-context-menu", n.opened ? " opened" : ""]),
4272
- id: t.elementId,
4273
- style: B([i.postionStyles])
4274
- }, [
4275
- f("ul", {
4276
- role: "menu",
4277
- "aria-orientation": "vertical",
4278
- tabindex: "0",
4279
- onKeydown: [
4280
- s[0] || (s[0] = U(G((...h) => i.focusPrevious && i.focusPrevious(...h), ["prevent"]), ["up"])),
4281
- s[1] || (s[1] = U(G((...h) => i.focusNext && i.focusNext(...h), ["prevent"]), ["down"]))
4282
- ],
4283
- ref: "menu",
4284
- id: "my-menu"
4285
- }, [
4286
- (o(!0), l(Z, null, ge(t.options, (h, k) => (o(), l("li", {
4287
- key: k,
4288
- onClick: G((z) => i.optionClicked(h), ["stop"]),
4289
- role: h.type === "divider" ? "separator" : "menuitem",
4290
- tabindex: h.type === "divider" || h.disabled ? "-1" : "0",
4291
- "aria-disabled": h.disabled || null,
4292
- class: v([
4293
- h.type === "divider" ? "ecs-context-menu-divider" : "ecs-context-menu-item",
4294
- h.type === "danger" ? "danger" : "",
4295
- h.disabled ? "disabled" : ""
4296
- ])
4297
- }, [
4298
- h.icon ? (o(), y(r, {
4299
- key: 0,
4300
- type: h.icon,
4301
- size: "20"
4302
- }, null, 8, ["type"])) : u("", !0),
4303
- h.type != "divider" ? (o(), l("span", ur, x(h.name), 1)) : u("", !0),
4304
- h.nested ? (o(), y(c, {
4305
- key: 2,
4306
- onClick: G((z) => i.optionClicked(h.nested), ["stop"]),
4307
- icon: h.nested.icon,
4308
- title: h.nested.name,
4309
- "aria-label": h.nested.name,
4310
- disabled: h.nested.disabled || null,
4311
- type: "secondary",
4312
- "icon-only": "",
4313
- size: "sml"
4314
- }, null, 8, ["onClick", "icon", "title", "aria-label", "disabled"])) : u("", !0),
4315
- b(d, {
4316
- danger: h.type == "danger"
4317
- }, null, 8, ["danger"])
4318
- ], 10, dr))), 128))
4319
- ], 544)
4320
- ], 14, cr)), [
4321
- [g, i.onClickOutside]
4322
- ]);
3798
+ };
3799
+ S.fromRatio = function(e, s) {
3800
+ if (ft(e) == "object") {
3801
+ var t = {};
3802
+ for (var a in e)
3803
+ e.hasOwnProperty(a) && (a === "a" ? t[a] = e[a] : t[a] = Ze(e[a]));
3804
+ e = t;
3805
+ }
3806
+ return S(e, s);
3807
+ };
3808
+ function $o(e) {
3809
+ var s = {
3810
+ r: 0,
3811
+ g: 0,
3812
+ b: 0
3813
+ }, t = 1, a = null, n = null, i = null, r = !1, c = !1;
3814
+ return typeof e == "string" && (e = Xo(e)), ft(e) == "object" && (Ie(e.r) && Ie(e.g) && Ie(e.b) ? (s = Po(e.r, e.g, e.b), r = !0, c = String(e.r).substr(-1) === "%" ? "prgb" : "rgb") : Ie(e.h) && Ie(e.s) && Ie(e.v) ? (a = Ze(e.s), n = Ze(e.v), s = Mo(e.h, a, n), r = !0, c = "hsv") : Ie(e.h) && Ie(e.s) && Ie(e.l) && (a = Ze(e.s), i = Ze(e.l), s = To(e.h, a, i), r = !0, c = "hsl"), e.hasOwnProperty("a") && (t = e.a)), t = As(t), {
3815
+ ok: r,
3816
+ format: e.format || c,
3817
+ r: Math.min(255, Math.max(s.r, 0)),
3818
+ g: Math.min(255, Math.max(s.g, 0)),
3819
+ b: Math.min(255, Math.max(s.b, 0)),
3820
+ a: t
3821
+ };
4323
3822
  }
4324
- const Cy = /* @__PURE__ */ _(lr, [["render", fr], ["__scopeId", "data-v-7a99d0e5"]]);
4325
- const pr = {
4326
- name: "ecs-collapse",
4327
- emits: ["toggled", "remove"],
4328
- components: { EcsButton: Se, EcsFocusRing: L, EcsFlexRow: Me },
4329
- props: {
4330
- /** Unique ID, is required to handle persist states. */
4331
- id: {
4332
- type: String,
4333
- required: !0
4334
- },
4335
- /** The headline of the collapse control. */
4336
- title: {
4337
- type: String,
4338
- required: !0
4339
- },
4340
- /** Determines the padding of the headline and content sections. */
4341
- indent: {
4342
- type: String,
4343
- validator: (e) => ["sml", "md", null].includes(e),
4344
- default: null
4345
- },
4346
- /** Determines the padding of the headline section alone. */
4347
- headlineIndent: {
4348
- type: String,
4349
- validator: (e) => ["sml", "md", null].includes(e),
4350
- default: null
4351
- },
4352
- /** Displays a border above the headline section. */
4353
- borderTop: {
4354
- type: Boolean
4355
- },
4356
- /** Displays a border below the content section. */
4357
- borderBottom: {
4358
- type: Boolean
4359
- },
4360
- /** Makes the headline to render in font-weight bold. */
4361
- headlineBold: {
4362
- type: Boolean
4363
- },
4364
- /** Determines the initial state of the control. If set to `true`, the collapse is expanded on mount. */
4365
- visible: {
4366
- type: Boolean
4367
- },
4368
- /** If set, a small (-) remove button is rendered in the headline section. */
4369
- removable: {
4370
- type: Boolean
4371
- },
4372
- /** Sets the tooltip title of the remove button. */
4373
- removableTooltip: {
4374
- type: String
4375
- },
4376
- /** Saves the state of the collapse control in localstorage and reads the state on next mount, to automatically set it to expanded or collapsed. */
4377
- persist: {
4378
- type: Boolean,
4379
- default: !0
4380
- },
4381
- /** Sets the top and bottom padding of the content section. */
4382
- contentPadding: {
4383
- type: String,
4384
- validator: (e) => ["none", "sml", "md"].includes(e),
4385
- default: "md"
4386
- },
4387
- /** Sets the count of the collapse control in parenthese next to the headline. */
4388
- count: {
4389
- type: Number
4390
- }
4391
- },
4392
- data() {
4393
- return {
4394
- isVisible: this.visible
4395
- };
4396
- },
4397
- computed: {
4398
- indentation() {
4399
- return this.indent && this.indent !== "" ? `ecs-collapsable-indent-${this.indent}` : this.indent;
4400
- },
4401
- headlineIndentation() {
4402
- return this.headlineIndent && this.headlineIndent !== "" ? `ecs-collapsable-headline-indent-${this.headlineIndent}` : this.headlineIndent;
4403
- },
4404
- removeButtonIndentation() {
4405
- return this.headlineIndent && this.headlineIndent !== "" ? `remove-button-indent-${this.headlineIndent}` : this.indent && this.indent !== "" ? `remove-button-indent-${this.indent}` : this.headlineIndent;
4406
- },
4407
- contentPaddingClass() {
4408
- return `ecs-collapsable-content-padding-${this.contentPadding}`;
4409
- }
4410
- },
4411
- mounted() {
4412
- this.$nextTick(() => {
4413
- this.persist && (localStorage.getItem(`collapse-${this.id}`) === null ? (this.isVisible = this.visible, localStorage.setItem(`collapse-${this.id}`, this.isVisible)) : this.isVisible = localStorage.getItem(`collapse-${this.id}`) == "true");
4414
- });
4415
- },
4416
- methods: {
4417
- toggleCollapse() {
4418
- this.isVisible = !this.isVisible, this.persist && localStorage.setItem(`collapse-${this.id}`, this.isVisible), this.$emit("toggled", this.id, this.isVisible);
3823
+ function Po(e, s, t) {
3824
+ return {
3825
+ r: H(e, 255) * 255,
3826
+ g: H(s, 255) * 255,
3827
+ b: H(t, 255) * 255
3828
+ };
3829
+ }
3830
+ function rs(e, s, t) {
3831
+ e = H(e, 255), s = H(s, 255), t = H(t, 255);
3832
+ var a = Math.max(e, s, t), n = Math.min(e, s, t), i, r, c = (a + n) / 2;
3833
+ if (a == n)
3834
+ i = r = 0;
3835
+ else {
3836
+ var d = a - n;
3837
+ switch (r = c > 0.5 ? d / (2 - a - n) : d / (a + n), a) {
3838
+ case e:
3839
+ i = (s - t) / d + (s < t ? 6 : 0);
3840
+ break;
3841
+ case s:
3842
+ i = (t - e) / d + 2;
3843
+ break;
3844
+ case t:
3845
+ i = (e - s) / d + 4;
3846
+ break;
4419
3847
  }
4420
- },
4421
- watch: {
4422
- visible() {
4423
- this.isVisible = this.visible;
3848
+ i /= 6;
3849
+ }
3850
+ return {
3851
+ h: i,
3852
+ s: r,
3853
+ l: c
3854
+ };
3855
+ }
3856
+ function To(e, s, t) {
3857
+ var a, n, i;
3858
+ e = H(e, 360), s = H(s, 100), t = H(t, 100);
3859
+ function r(g, h, k) {
3860
+ return k < 0 && (k += 1), k > 1 && (k -= 1), k < 1 / 6 ? g + (h - g) * 6 * k : k < 1 / 2 ? h : k < 2 / 3 ? g + (h - g) * (2 / 3 - k) * 6 : g;
3861
+ }
3862
+ if (s === 0)
3863
+ a = n = i = t;
3864
+ else {
3865
+ var c = t < 0.5 ? t * (1 + s) : t + s - t * s, d = 2 * t - c;
3866
+ a = r(d, c, e + 1 / 3), n = r(d, c, e), i = r(d, c, e - 1 / 3);
3867
+ }
3868
+ return {
3869
+ r: a * 255,
3870
+ g: n * 255,
3871
+ b: i * 255
3872
+ };
3873
+ }
3874
+ function ls(e, s, t) {
3875
+ e = H(e, 255), s = H(s, 255), t = H(t, 255);
3876
+ var a = Math.max(e, s, t), n = Math.min(e, s, t), i, r, c = a, d = a - n;
3877
+ if (r = a === 0 ? 0 : d / a, a == n)
3878
+ i = 0;
3879
+ else {
3880
+ switch (a) {
3881
+ case e:
3882
+ i = (s - t) / d + (s < t ? 6 : 0);
3883
+ break;
3884
+ case s:
3885
+ i = (t - e) / d + 2;
3886
+ break;
3887
+ case t:
3888
+ i = (e - s) / d + 4;
3889
+ break;
4424
3890
  }
3891
+ i /= 6;
4425
3892
  }
4426
- }, gr = { class: "wrap" }, mr = ["aria-expanded", "aria-controls"], hr = {
4427
- key: 0,
4428
- class: "ecs-collapsable-headline-count"
4429
- }, vr = {
4430
- key: 0,
4431
- class: "ecs-collapsable-headline-controls"
4432
- }, _r = ["id", "aria-hidden"];
4433
- function yr(e, s, t, a, n, i) {
4434
- const r = p("ecs-button"), c = p("ecs-flex-row"), d = p("ecs-focus-ring");
4435
- return o(), l("div", {
4436
- class: v(["ecs-collapsable", [
4437
- t.borderTop ? "ecs-collapsable-border-top" : "",
4438
- t.borderBottom ? "ecs-collapsable-border-bottom" : "",
4439
- i.indentation,
4440
- i.headlineIndentation
4441
- ]])
4442
- }, [
4443
- f("div", gr, [
4444
- t.removable ? (o(), y(r, {
4445
- key: 0,
4446
- onClick: s[0] || (s[0] = (g) => e.$emit("remove", t.id)),
4447
- type: "secondary",
4448
- "icon-only": "",
4449
- icon: "minus",
4450
- size: "sml",
4451
- class: v(["remove-button", i.removeButtonIndentation]),
4452
- title: t.removableTooltip,
4453
- "aria-label": t.removableTooltip
4454
- }, null, 8, ["class", "title", "aria-label"])) : u("", !0),
4455
- f("h3", {
4456
- onClick: s[1] || (s[1] = (...g) => i.toggleCollapse && i.toggleCollapse(...g)),
4457
- onKeydown: s[2] || (s[2] = U(G((...g) => i.toggleCollapse && i.toggleCollapse(...g), ["prevent"]), ["space"])),
4458
- role: "button",
4459
- class: v(["ecs-collapsable-headline", [t.headlineBold ? "ecs-headline-section-bold" : "ecs-headline-section", n.isVisible ? "" : "collapsed"]]),
4460
- tabindex: "0",
4461
- "aria-expanded": n.isVisible ? "true" : "false",
4462
- "aria-controls": `collapse-${this.id}`
4463
- }, [
4464
- b(c, { gap: 4 }, {
4465
- default: w(() => [
4466
- D(x(t.title) + " ", 1),
4467
- t.count ? (o(), l("span", hr, "(" + x(t.count) + ")", 1)) : u("", !0)
4468
- ]),
4469
- _: 1
4470
- }),
4471
- b(d, {
4472
- inset: 0,
4473
- radius: 0
4474
- }),
4475
- e.$slots.controls ? (o(), l("div", vr, [
4476
- m(e.$slots, "controls", {}, void 0, !0)
4477
- ])) : u("", !0)
4478
- ], 42, mr)
4479
- ]),
4480
- f("div", {
4481
- class: v([n.isVisible ? "collapse-show" : "collapse-hide", "collapse"]),
4482
- id: `collapse-${this.id}`,
4483
- "aria-hidden": n.isVisible ? "false" : "true"
4484
- }, [
4485
- f("div", {
4486
- class: v(["ecs-collapsable-content", i.contentPaddingClass])
4487
- }, [
4488
- m(e.$slots, "default", {}, void 0, !0)
4489
- ], 2)
4490
- ], 10, _r)
4491
- ], 2);
3893
+ return {
3894
+ h: i,
3895
+ s: r,
3896
+ v: c
3897
+ };
4492
3898
  }
4493
- const By = /* @__PURE__ */ _(pr, [["render", yr], ["__scopeId", "data-v-4bf981c8"]]);
4494
- const br = {
4495
- name: "ecs-collection-control",
4496
- emits: ["toggled", "collectionTooltip"],
4497
- components: { EcsIcon: M, EcsFocusRing: L },
4498
- mixins: [de],
4499
- props: {
4500
- /** Icon representing the type of selection. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
4501
- icon: {
4502
- type: String
4503
- },
4504
- /** The size of the collection control. */
4505
- size: {
4506
- type: String,
4507
- validator: (e) => ["md", "lg"].includes(e),
4508
- default: "lg"
4509
- },
4510
- /** If set to true, the control will appear expanded by default. */
4511
- visible: {
4512
- type: Boolean,
4513
- default: !1
4514
- },
4515
- /** The label that describes the type of selected objects. E.g. "Users: " */
4516
- label: {
4517
- type: String
4518
- },
4519
- /** Option to disable the outer borders of the control. */
4520
- noBorder: {
4521
- type: Boolean,
4522
- default: !1
4523
- },
4524
- /** Array of the currently selected objects. Must contain `name` and `value` for each object. */
4525
- collection: {
4526
- type: Array,
4527
- required: !0
4528
- },
4529
- /** Optional maximum height of the object list in pixels. If the list exceeds the maximum height, a scrollbar appears. */
4530
- maxHeight: {
4531
- type: Number,
4532
- default: null
4533
- },
4534
- /** Makes the control non-interactive and removes all checkboxes from the list items. */
4535
- nonInteractive: {
4536
- type: Boolean,
4537
- default: !1
4538
- }
4539
- },
4540
- data() {
4541
- return {
4542
- isVisible: this.visible,
4543
- expandId: ""
4544
- };
4545
- },
4546
- computed: {
4547
- iconSize() {
4548
- return this.size === "md" ? "24px" : "30px";
4549
- },
4550
- fullTooltip() {
4551
- return this.collection.filter((s) => s.value).map((s) => s.name).join(", ");
4552
- },
4553
- listMaxHeight() {
4554
- return this.maxHeight ? `max-height: ${this.maxHeight}px` : null;
4555
- }
4556
- },
4557
- methods: {
4558
- toggleCollapse() {
4559
- this.nonInteractive || (this.isVisible = !this.isVisible), this.$emit("toggled", this.id, this.isVisible);
4560
- },
4561
- toggleTooltip() {
4562
- this.$emit("collectionTooltip", this.fullTooltip);
4563
- }
4564
- },
4565
- watch: {
4566
- visible() {
4567
- this.isVisible = this.visible;
4568
- }
4569
- },
4570
- created() {
4571
- this.expandId = this.generateUniqueId();
4572
- }
4573
- }, kr = ["tabindex", "role", "aria-expanded", "aria-controls"], xr = {
4574
- key: 1,
4575
- class: "description"
4576
- }, wr = ["title"], Sr = { key: 0 }, Cr = ["id", "aria-hidden"];
4577
- function Br(e, s, t, a, n, i) {
4578
- const r = p("ecs-focus-ring"), c = p("ecs-icon");
4579
- return o(), l("div", {
4580
- class: v(["ecs-collection-control", [
4581
- t.noBorder ? "" : "bordered",
4582
- n.isVisible || t.nonInteractive ? "" : "collapsed",
4583
- t.size
4584
- ]])
4585
- }, [
4586
- f("div", {
4587
- onClick: s[2] || (s[2] = (...d) => i.toggleCollapse && i.toggleCollapse(...d)),
4588
- onKeydown: [
4589
- s[3] || (s[3] = U(G((...d) => i.toggleCollapse && i.toggleCollapse(...d), ["prevent"]), ["enter"])),
4590
- s[4] || (s[4] = U(G((...d) => i.toggleCollapse && i.toggleCollapse(...d), ["prevent"]), ["space"]))
4591
- ],
4592
- class: v(["ecs-collection-control-header", [
4593
- n.isVisible || t.nonInteractive ? "" : "collapsed",
4594
- t.nonInteractive ? "" : "interactive"
4595
- ]]),
4596
- tabindex: t.nonInteractive ? "-1" : "0",
4597
- role: t.nonInteractive ? !1 : "button",
4598
- "aria-expanded": t.nonInteractive ? "false" : n.isVisible ? "true" : "false",
4599
- "aria-controls": t.nonInteractive ? !1 : n.expandId
4600
- }, [
4601
- b(r),
4602
- t.icon ? (o(), y(c, {
4603
- key: 0,
4604
- type: t.icon,
4605
- color: "#858E9E",
4606
- size: i.iconSize
4607
- }, null, 8, ["type", "size"])) : u("", !0),
4608
- t.label ? (o(), l("div", xr, x(t.label), 1)) : u("", !0),
4609
- f("div", {
4610
- class: "collection",
4611
- onMouseover: s[0] || (s[0] = (...d) => i.toggleTooltip && i.toggleTooltip(...d)),
4612
- onMouseleave: s[1] || (s[1] = (...d) => i.toggleTooltip && i.toggleTooltip(...d)),
4613
- title: i.fullTooltip
4614
- }, [
4615
- (o(!0), l(Z, null, ge(t.collection, (d) => (o(), l("span", {
4616
- key: d.name
4617
- }, [
4618
- d.value ? (o(), l("span", Sr, x(d.name), 1)) : u("", !0)
4619
- ]))), 128))
4620
- ], 40, wr)
4621
- ], 42, kr),
4622
- f("div", {
4623
- class: v([n.isVisible || t.nonInteractive ? "collapse-show" : "collapse-hide", "collapse"]),
4624
- id: t.nonInteractive ? !1 : n.expandId,
4625
- "aria-hidden": n.isVisible ? "false" : "true"
4626
- }, [
4627
- f("div", {
4628
- class: "ecs-collection-control-list scrollbar scrollbar-sml",
4629
- style: B(i.listMaxHeight)
4630
- }, [
4631
- m(e.$slots, "default")
4632
- ], 4)
4633
- ], 10, Cr)
4634
- ], 2);
3899
+ function Mo(e, s, t) {
3900
+ e = H(e, 360) * 6, s = H(s, 100), t = H(t, 100);
3901
+ var a = Math.floor(e), n = e - a, i = t * (1 - s), r = t * (1 - n * s), c = t * (1 - (1 - n) * s), d = a % 6, g = [t, r, i, i, c, t][d], h = [c, t, t, r, i, i][d], k = [i, i, c, t, t, r][d];
3902
+ return {
3903
+ r: g * 255,
3904
+ g: h * 255,
3905
+ b: k * 255
3906
+ };
4635
3907
  }
4636
- const zy = /* @__PURE__ */ _(br, [["render", Br], ["__scopeId", "data-v-5e5716bc"]]);
4637
- const zr = {
4638
- name: "ecs-skeleton-loader",
4639
- props: {
4640
- /** Determines the type of skeleton shape: `single` replicates a single line of text, `multi` a multi line text, and `rect` a generic rectangle shape. */
4641
- type: {
4642
- type: String,
4643
- validator: (e) => ["single", "multi", "rect", "circle"].includes(e),
4644
- default: "single"
4645
- },
4646
- /** Only used together with the `multi` type. Determines the amount of text lines. */
4647
- count: {
4648
- type: Number,
4649
- default: 3
4650
- },
4651
- /** Sets the width of the `single` type in percentage. Sets the width of the `rect` type in pixels. */
4652
- width: {
4653
- type: Number,
4654
- default: 20
4655
- },
4656
- /** Sets the height of the `rect` and `circle` type in pixels. */
4657
- height: {
4658
- type: Number,
4659
- default: 20
4660
- },
4661
- /** Aligns the height and size of the single & multi types with our common line-height type scales. */
4662
- lineHeight: {
4663
- type: Number,
4664
- validator: (e) => [1, 2, 3, 4, 5, 6].includes(e),
4665
- default: 2
4666
- }
4667
- },
4668
- computed: {
4669
- rectClass() {
4670
- return this.type && this.type !== "" ? `skeleton-${this.type}` : this.type;
4671
- }
4672
- }
4673
- }, Ir = (e) => (ve("data-v-75354c78"), e = e(), _e(), e), Er = {
4674
- key: 1,
4675
- class: "ecs-skeleton skeletons"
4676
- }, $r = /* @__PURE__ */ Ir(() => /* @__PURE__ */ f("div", { class: "skeleton skeleton-single" }, null, -1)), Pr = [
4677
- $r
4678
- ];
4679
- function Tr(e, s, t, a, n, i) {
4680
- return t.type === "rect" || t.type === "circle" ? (o(), l("div", {
4681
- key: 0,
4682
- class: v(["ecs-skeleton skeleton", i.rectClass]),
4683
- style: B({ width: t.width + "px", height: t.height + "px" })
4684
- }, null, 6)) : t.type === "multi" ? (o(), l("div", Er, [
4685
- (o(!0), l(Z, null, ge(parseInt(t.count), (r) => (o(), l("div", {
4686
- key: r,
4687
- class: v(["skeleton-wrap", "skeleton-line-height-" + t.lineHeight])
4688
- }, Pr, 2))), 128))
4689
- ])) : (o(), l("div", {
4690
- key: 2,
4691
- class: v(["ecs-skeleton skeleton-wrap", "skeleton-line-height-" + t.lineHeight])
4692
- }, [
4693
- f("div", {
4694
- class: "skeleton skeleton-single",
4695
- style: B({ width: t.width + "%" })
4696
- }, null, 4)
4697
- ], 2));
3908
+ function cs(e, s, t, a) {
3909
+ var n = [pe(Math.round(e).toString(16)), pe(Math.round(s).toString(16)), pe(Math.round(t).toString(16))];
3910
+ return a && 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[0].charAt(0) + n[1].charAt(0) + n[2].charAt(0) : n.join("");
4698
3911
  }
4699
- const Ce = /* @__PURE__ */ _(zr, [["render", Tr], ["__scopeId", "data-v-75354c78"]]);
4700
- const Mr = {
4701
- name: "ecs-formatted",
4702
- components: { EcsSkeletonLoader: Ce },
4703
- mixins: [de],
4704
- props: {
4705
- /** Sets the general font size of the formatted text component to small. */
4706
- small: {
4707
- type: Boolean,
4708
- default: !1
4709
- },
4710
- /** Turns the formatted text component into a skeleton loader. */
4711
- loading: {
4712
- type: Boolean,
4713
- default: !1
4714
- },
4715
- /** Used to customize the line count of the skeleton loader. */
4716
- skeletonCount: {
4717
- type: Number,
4718
- default: 4
4719
- }
4720
- },
4721
- created() {
4722
- this.formattedId = this.generateUniqueId();
4723
- },
4724
- mounted() {
4725
- this.$el.querySelectorAll(`#${this.formattedId} a`).forEach((s) => {
4726
- const t = s.getAttribute("href");
4727
- s.setAttribute("title", `Open ${t}`);
4728
- });
4729
- }
4730
- }, Lr = ["id"];
4731
- function Or(e, s, t, a, n, i) {
4732
- const r = p("ecs-skeleton-loader");
4733
- return o(), l("div", {
4734
- class: v(["ecs-formatted", [t.small ? "ecs-formatted-sml" : ""]]),
4735
- id: e.formattedId
4736
- }, [
4737
- t.loading ? (o(), y(r, {
4738
- key: 1,
4739
- type: "multi",
4740
- "line-height": t.small ? 1 : 2,
4741
- count: t.skeletonCount
4742
- }, null, 8, ["line-height", "count"])) : m(e.$slots, "default", {
4743
- key: 0,
4744
- ref: "slot"
4745
- })
4746
- ], 10, Lr);
3912
+ function Lo(e, s, t, a, n) {
3913
+ var i = [pe(Math.round(e).toString(16)), pe(Math.round(s).toString(16)), pe(Math.round(t).toString(16)), pe(Ns(a))];
3914
+ return n && i[0].charAt(0) == i[0].charAt(1) && i[1].charAt(0) == i[1].charAt(1) && i[2].charAt(0) == i[2].charAt(1) && i[3].charAt(0) == i[3].charAt(1) ? i[0].charAt(0) + i[1].charAt(0) + i[2].charAt(0) + i[3].charAt(0) : i.join("");
4747
3915
  }
4748
- const Ds = /* @__PURE__ */ _(Mr, [["render", Or]]);
4749
- const Ar = {
4750
- name: "ecs-comment",
4751
- emits: ["edit", "delete"],
4752
- components: { EcsAvatar: Mi, EcsButton: Se, EcsFormatted: Ds, EcsSkeletonLoader: Ce },
4753
- props: {
4754
- /** Name of the user that is the comment author. */
4755
- userName: {
4756
- type: String,
4757
- required: !0
4758
- },
4759
- /** Avatar image of the user that is the comment author. */
4760
- userImage: {
4761
- type: String,
4762
- default: null
4763
- },
4764
- /** Determines if controls to edit or delete the comment should be available. */
4765
- canEdit: {
4766
- type: Boolean,
4767
- default: !1
4768
- },
4769
- /** Shows the whole comment in skeleton loading state. */
4770
- loading: {
4771
- type: Boolean,
4772
- default: !1
4773
- }
4774
- }
4775
- }, Nr = ["aria-busy"], Dr = { class: "ecs-comment-header" }, Fr = { class: "ecs-comment-autor" }, Rr = {
4776
- key: 2,
4777
- class: "ecs-comment-meta"
4778
- }, Vr = { class: "ecs-comment-meta-name" }, Hr = { class: "ecs-comment-meta-time" }, qr = {
4779
- key: 3,
4780
- class: "ecs-comment-meta loading"
4781
- }, Wr = {
4782
- key: 0,
4783
- class: "ecs-comment-actions"
4784
- }, jr = {
4785
- key: 2,
4786
- class: "ecs-comment-edit"
3916
+ function ds(e, s, t, a) {
3917
+ var n = [pe(Ns(a)), pe(Math.round(e).toString(16)), pe(Math.round(s).toString(16)), pe(Math.round(t).toString(16))];
3918
+ return n.join("");
3919
+ }
3920
+ S.equals = function(e, s) {
3921
+ return !e || !s ? !1 : S(e).toRgbString() == S(s).toRgbString();
4787
3922
  };
4788
- function Gr(e, s, t, a, n, i) {
4789
- const r = p("ecs-skeleton-loader"), c = p("ecs-avatar"), d = p("ecs-button"), g = p("ecs-formatted");
4790
- return o(), l("div", {
4791
- class: "ecs-comment",
4792
- role: "comment",
4793
- "aria-busy": t.loading || null
4794
- }, [
4795
- f("div", Dr, [
4796
- f("div", Fr, [
4797
- t.loading ? (o(), y(r, {
4798
- key: 0,
4799
- type: "circle",
4800
- width: 32,
4801
- height: 32
4802
- })) : (o(), y(c, {
4803
- key: 1,
4804
- name: t.userName,
4805
- image: t.userImage,
4806
- size: 32,
4807
- rounded: ""
4808
- }, null, 8, ["name", "image"])),
4809
- t.loading ? (o(), l("div", qr, [
4810
- b(r, {
4811
- type: "single",
4812
- "line-height": 3,
4813
- width: 50
4814
- }),
4815
- b(r, {
4816
- type: "single",
4817
- "line-height": 2,
4818
- width: 60
4819
- })
4820
- ])) : (o(), l("div", Rr, [
4821
- f("span", Vr, x(t.userName), 1),
4822
- f("span", Hr, [
4823
- m(e.$slots, "commentdate", {}, void 0, !0)
4824
- ])
4825
- ]))
4826
- ]),
4827
- t.canEdit ? (o(), l("div", Wr, [
4828
- b(d, {
4829
- onClick: s[0] || (s[0] = (h) => e.$emit("edit", h)),
4830
- type: "secondary",
4831
- size: "sml",
4832
- icon: "edit",
4833
- "icon-only": "",
4834
- title: "Edit Comment"
4835
- }),
4836
- b(d, {
4837
- onClick: s[1] || (s[1] = (h) => e.$emit("delete", h)),
4838
- type: "danger",
4839
- size: "sml",
4840
- icon: "delete",
4841
- "icon-only": "",
4842
- title: "Delete Comment"
4843
- })
4844
- ])) : u("", !0)
4845
- ]),
4846
- !e.$slots.editform && !t.loading ? (o(), y(g, {
4847
- key: 0,
4848
- class: "ecs-comment-body"
4849
- }, {
4850
- default: w(() => [
4851
- m(e.$slots, "default", {}, void 0, !0)
4852
- ]),
4853
- _: 3
4854
- })) : t.loading ? (o(), y(r, {
4855
- key: 1,
4856
- type: "multi",
4857
- count: 2,
4858
- class: "ecs-comment-body"
4859
- })) : (o(), l("div", jr, [
4860
- m(e.$slots, "editform", {}, void 0, !0)
4861
- ]))
4862
- ], 8, Nr);
3923
+ S.random = function() {
3924
+ return S.fromRatio({
3925
+ r: Math.random(),
3926
+ g: Math.random(),
3927
+ b: Math.random()
3928
+ });
3929
+ };
3930
+ function Oo(e, s) {
3931
+ s = s === 0 ? 0 : s || 10;
3932
+ var t = S(e).toHsl();
3933
+ return t.s -= s / 100, t.s = ht(t.s), S(t);
4863
3934
  }
4864
- const Iy = /* @__PURE__ */ _(Ar, [["render", Gr], ["__scopeId", "data-v-cf696f66"]]);
4865
- const Ur = {}, Kr = { class: "ecs-comment-list" };
4866
- function Yr(e, s) {
4867
- return o(), l("div", Kr, [
4868
- m(e.$slots, "default")
4869
- ]);
3935
+ function Ao(e, s) {
3936
+ s = s === 0 ? 0 : s || 10;
3937
+ var t = S(e).toHsl();
3938
+ return t.s += s / 100, t.s = ht(t.s), S(t);
4870
3939
  }
4871
- const Ey = /* @__PURE__ */ _(Ur, [["render", Yr]]);
4872
- function ut(e) {
4873
- "@babel/helpers - typeof";
4874
- return ut = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(s) {
4875
- return typeof s;
4876
- } : function(s) {
4877
- return s && typeof Symbol == "function" && s.constructor === Symbol && s !== Symbol.prototype ? "symbol" : typeof s;
4878
- }, ut(e);
3940
+ function No(e) {
3941
+ return S(e).desaturate(100);
4879
3942
  }
4880
- var Xr = /^\s+/, Zr = /\s+$/;
4881
- function S(e, s) {
4882
- if (e = e || "", s = s || {}, e instanceof S)
4883
- return e;
4884
- if (!(this instanceof S))
4885
- return new S(e, s);
4886
- var t = Jr(e);
4887
- this._originalInput = e, this._r = t.r, this._g = t.g, this._b = t.b, this._a = t.a, this._roundA = Math.round(100 * this._a) / 100, this._format = s.format || t.format, this._gradientType = s.gradientType, this._r < 1 && (this._r = Math.round(this._r)), this._g < 1 && (this._g = Math.round(this._g)), this._b < 1 && (this._b = Math.round(this._b)), this._ok = t.ok;
3943
+ function Do(e, s) {
3944
+ s = s === 0 ? 0 : s || 10;
3945
+ var t = S(e).toHsl();
3946
+ return t.l += s / 100, t.l = ht(t.l), S(t);
4888
3947
  }
4889
- S.prototype = {
4890
- isDark: function() {
4891
- return this.getBrightness() < 128;
4892
- },
4893
- isLight: function() {
4894
- return !this.isDark();
4895
- },
4896
- isValid: function() {
4897
- return this._ok;
4898
- },
4899
- getOriginalInput: function() {
4900
- return this._originalInput;
4901
- },
4902
- getFormat: function() {
4903
- return this._format;
4904
- },
4905
- getAlpha: function() {
4906
- return this._a;
4907
- },
4908
- getBrightness: function() {
4909
- var s = this.toRgb();
4910
- return (s.r * 299 + s.g * 587 + s.b * 114) / 1e3;
4911
- },
4912
- getLuminance: function() {
4913
- var s = this.toRgb(), t, a, n, i, r, c;
4914
- return t = s.r / 255, a = s.g / 255, n = s.b / 255, t <= 0.03928 ? i = t / 12.92 : i = Math.pow((t + 0.055) / 1.055, 2.4), a <= 0.03928 ? r = a / 12.92 : r = Math.pow((a + 0.055) / 1.055, 2.4), n <= 0.03928 ? c = n / 12.92 : c = Math.pow((n + 0.055) / 1.055, 2.4), 0.2126 * i + 0.7152 * r + 0.0722 * c;
4915
- },
4916
- setAlpha: function(s) {
4917
- return this._a = Fs(s), this._roundA = Math.round(100 * this._a) / 100, this;
4918
- },
4919
- toHsv: function() {
4920
- var s = ls(this._r, this._g, this._b);
4921
- return {
4922
- h: s.h * 360,
4923
- s: s.s,
4924
- v: s.v,
4925
- a: this._a
4926
- };
4927
- },
4928
- toHsvString: function() {
4929
- var s = ls(this._r, this._g, this._b), t = Math.round(s.h * 360), a = Math.round(s.s * 100), n = Math.round(s.v * 100);
4930
- return this._a == 1 ? "hsv(" + t + ", " + a + "%, " + n + "%)" : "hsva(" + t + ", " + a + "%, " + n + "%, " + this._roundA + ")";
4931
- },
4932
- toHsl: function() {
4933
- var s = rs(this._r, this._g, this._b);
4934
- return {
4935
- h: s.h * 360,
4936
- s: s.s,
4937
- l: s.l,
4938
- a: this._a
4939
- };
4940
- },
4941
- toHslString: function() {
4942
- var s = rs(this._r, this._g, this._b), t = Math.round(s.h * 360), a = Math.round(s.s * 100), n = Math.round(s.l * 100);
4943
- return this._a == 1 ? "hsl(" + t + ", " + a + "%, " + n + "%)" : "hsla(" + t + ", " + a + "%, " + n + "%, " + this._roundA + ")";
4944
- },
4945
- toHex: function(s) {
4946
- return cs(this._r, this._g, this._b, s);
4947
- },
4948
- toHexString: function(s) {
4949
- return "#" + this.toHex(s);
4950
- },
4951
- toHex8: function(s) {
4952
- return sl(this._r, this._g, this._b, this._a, s);
4953
- },
4954
- toHex8String: function(s) {
4955
- return "#" + this.toHex8(s);
4956
- },
4957
- toRgb: function() {
4958
- return {
4959
- r: Math.round(this._r),
4960
- g: Math.round(this._g),
4961
- b: Math.round(this._b),
4962
- a: this._a
4963
- };
4964
- },
4965
- toRgbString: function() {
4966
- return this._a == 1 ? "rgb(" + Math.round(this._r) + ", " + Math.round(this._g) + ", " + Math.round(this._b) + ")" : "rgba(" + Math.round(this._r) + ", " + Math.round(this._g) + ", " + Math.round(this._b) + ", " + this._roundA + ")";
4967
- },
4968
- toPercentageRgb: function() {
4969
- return {
4970
- r: Math.round(H(this._r, 255) * 100) + "%",
4971
- g: Math.round(H(this._g, 255) * 100) + "%",
4972
- b: Math.round(H(this._b, 255) * 100) + "%",
4973
- a: this._a
4974
- };
4975
- },
4976
- toPercentageRgbString: function() {
4977
- return this._a == 1 ? "rgb(" + Math.round(H(this._r, 255) * 100) + "%, " + Math.round(H(this._g, 255) * 100) + "%, " + Math.round(H(this._b, 255) * 100) + "%)" : "rgba(" + Math.round(H(this._r, 255) * 100) + "%, " + Math.round(H(this._g, 255) * 100) + "%, " + Math.round(H(this._b, 255) * 100) + "%, " + this._roundA + ")";
4978
- },
4979
- toName: function() {
4980
- return this._a === 0 ? "transparent" : this._a < 1 ? !1 : gl[cs(this._r, this._g, this._b, !0)] || !1;
4981
- },
4982
- toFilter: function(s) {
4983
- var t = "#" + ds(this._r, this._g, this._b, this._a), a = t, n = this._gradientType ? "GradientType = 1, " : "";
4984
- if (s) {
4985
- var i = S(s);
4986
- a = "#" + ds(i._r, i._g, i._b, i._a);
4987
- }
4988
- return "progid:DXImageTransform.Microsoft.gradient(" + n + "startColorstr=" + t + ",endColorstr=" + a + ")";
4989
- },
4990
- toString: function(s) {
4991
- var t = !!s;
4992
- s = s || this._format;
4993
- var a = !1, n = this._a < 1 && this._a >= 0, i = !t && n && (s === "hex" || s === "hex6" || s === "hex3" || s === "hex4" || s === "hex8" || s === "name");
4994
- return i ? s === "name" && this._a === 0 ? this.toName() : this.toRgbString() : (s === "rgb" && (a = this.toRgbString()), s === "prgb" && (a = this.toPercentageRgbString()), (s === "hex" || s === "hex6") && (a = this.toHexString()), s === "hex3" && (a = this.toHexString(!0)), s === "hex4" && (a = this.toHex8String(!0)), s === "hex8" && (a = this.toHex8String()), s === "name" && (a = this.toName()), s === "hsl" && (a = this.toHslString()), s === "hsv" && (a = this.toHsvString()), a || this.toHexString());
4995
- },
4996
- clone: function() {
4997
- return S(this.toString());
4998
- },
4999
- _applyModification: function(s, t) {
5000
- var a = s.apply(null, [this].concat([].slice.call(t)));
5001
- return this._r = a._r, this._g = a._g, this._b = a._b, this.setAlpha(a._a), this;
5002
- },
5003
- lighten: function() {
5004
- return this._applyModification(ol, arguments);
5005
- },
5006
- brighten: function() {
5007
- return this._applyModification(rl, arguments);
5008
- },
5009
- darken: function() {
5010
- return this._applyModification(ll, arguments);
5011
- },
5012
- desaturate: function() {
5013
- return this._applyModification(il, arguments);
5014
- },
5015
- saturate: function() {
5016
- return this._applyModification(nl, arguments);
5017
- },
5018
- greyscale: function() {
5019
- return this._applyModification(al, arguments);
5020
- },
5021
- spin: function() {
5022
- return this._applyModification(cl, arguments);
5023
- },
5024
- _applyCombination: function(s, t) {
5025
- return s.apply(null, [this].concat([].slice.call(t)));
5026
- },
5027
- analogous: function() {
5028
- return this._applyCombination(fl, arguments);
5029
- },
5030
- complement: function() {
5031
- return this._applyCombination(dl, arguments);
5032
- },
5033
- monochromatic: function() {
5034
- return this._applyCombination(pl, arguments);
5035
- },
5036
- splitcomplement: function() {
5037
- return this._applyCombination(ul, arguments);
5038
- },
5039
- // Disabled until https://github.com/bgrins/TinyColor/issues/254
5040
- // polyad: function (number) {
5041
- // return this._applyCombination(polyad, [number]);
5042
- // },
5043
- triad: function() {
5044
- return this._applyCombination(us, [3]);
5045
- },
5046
- tetrad: function() {
5047
- return this._applyCombination(us, [4]);
5048
- }
5049
- };
5050
- S.fromRatio = function(e, s) {
5051
- if (ut(e) == "object") {
5052
- var t = {};
5053
- for (var a in e)
5054
- e.hasOwnProperty(a) && (a === "a" ? t[a] = e[a] : t[a] = Ze(e[a]));
5055
- e = t;
5056
- }
5057
- return S(e, s);
5058
- };
5059
- function Jr(e) {
5060
- var s = {
5061
- r: 0,
5062
- g: 0,
5063
- b: 0
5064
- }, t = 1, a = null, n = null, i = null, r = !1, c = !1;
5065
- return typeof e == "string" && (e = _l(e)), ut(e) == "object" && (Ie(e.r) && Ie(e.g) && Ie(e.b) ? (s = Qr(e.r, e.g, e.b), r = !0, c = String(e.r).substr(-1) === "%" ? "prgb" : "rgb") : Ie(e.h) && Ie(e.s) && Ie(e.v) ? (a = Ze(e.s), n = Ze(e.v), s = tl(e.h, a, n), r = !0, c = "hsv") : Ie(e.h) && Ie(e.s) && Ie(e.l) && (a = Ze(e.s), i = Ze(e.l), s = el(e.h, a, i), r = !0, c = "hsl"), e.hasOwnProperty("a") && (t = e.a)), t = Fs(t), {
5066
- ok: r,
5067
- format: e.format || c,
5068
- r: Math.min(255, Math.max(s.r, 0)),
5069
- g: Math.min(255, Math.max(s.g, 0)),
5070
- b: Math.min(255, Math.max(s.b, 0)),
5071
- a: t
5072
- };
3948
+ function Fo(e, s) {
3949
+ s = s === 0 ? 0 : s || 10;
3950
+ var t = S(e).toRgb();
3951
+ return t.r = Math.max(0, Math.min(255, t.r - Math.round(255 * -(s / 100)))), t.g = Math.max(0, Math.min(255, t.g - Math.round(255 * -(s / 100)))), t.b = Math.max(0, Math.min(255, t.b - Math.round(255 * -(s / 100)))), S(t);
5073
3952
  }
5074
- function Qr(e, s, t) {
5075
- return {
5076
- r: H(e, 255) * 255,
5077
- g: H(s, 255) * 255,
5078
- b: H(t, 255) * 255
5079
- };
3953
+ function Ro(e, s) {
3954
+ s = s === 0 ? 0 : s || 10;
3955
+ var t = S(e).toHsl();
3956
+ return t.l -= s / 100, t.l = ht(t.l), S(t);
5080
3957
  }
5081
- function rs(e, s, t) {
5082
- e = H(e, 255), s = H(s, 255), t = H(t, 255);
5083
- var a = Math.max(e, s, t), n = Math.min(e, s, t), i, r, c = (a + n) / 2;
5084
- if (a == n)
5085
- i = r = 0;
5086
- else {
5087
- var d = a - n;
5088
- switch (r = c > 0.5 ? d / (2 - a - n) : d / (a + n), a) {
5089
- case e:
5090
- i = (s - t) / d + (s < t ? 6 : 0);
5091
- break;
5092
- case s:
5093
- i = (t - e) / d + 2;
5094
- break;
5095
- case t:
5096
- i = (e - s) / d + 4;
5097
- break;
5098
- }
5099
- i /= 6;
5100
- }
5101
- return {
5102
- h: i,
5103
- s: r,
5104
- l: c
5105
- };
5106
- }
5107
- function el(e, s, t) {
5108
- var a, n, i;
5109
- e = H(e, 360), s = H(s, 100), t = H(t, 100);
5110
- function r(g, h, k) {
5111
- return k < 0 && (k += 1), k > 1 && (k -= 1), k < 1 / 6 ? g + (h - g) * 6 * k : k < 1 / 2 ? h : k < 2 / 3 ? g + (h - g) * (2 / 3 - k) * 6 : g;
5112
- }
5113
- if (s === 0)
5114
- a = n = i = t;
5115
- else {
5116
- var c = t < 0.5 ? t * (1 + s) : t + s - t * s, d = 2 * t - c;
5117
- a = r(d, c, e + 1 / 3), n = r(d, c, e), i = r(d, c, e - 1 / 3);
5118
- }
5119
- return {
5120
- r: a * 255,
5121
- g: n * 255,
5122
- b: i * 255
5123
- };
5124
- }
5125
- function ls(e, s, t) {
5126
- e = H(e, 255), s = H(s, 255), t = H(t, 255);
5127
- var a = Math.max(e, s, t), n = Math.min(e, s, t), i, r, c = a, d = a - n;
5128
- if (r = a === 0 ? 0 : d / a, a == n)
5129
- i = 0;
5130
- else {
5131
- switch (a) {
5132
- case e:
5133
- i = (s - t) / d + (s < t ? 6 : 0);
5134
- break;
5135
- case s:
5136
- i = (t - e) / d + 2;
5137
- break;
5138
- case t:
5139
- i = (e - s) / d + 4;
5140
- break;
5141
- }
5142
- i /= 6;
5143
- }
5144
- return {
5145
- h: i,
5146
- s: r,
5147
- v: c
5148
- };
5149
- }
5150
- function tl(e, s, t) {
5151
- e = H(e, 360) * 6, s = H(s, 100), t = H(t, 100);
5152
- var a = Math.floor(e), n = e - a, i = t * (1 - s), r = t * (1 - n * s), c = t * (1 - (1 - n) * s), d = a % 6, g = [t, r, i, i, c, t][d], h = [c, t, t, r, i, i][d], k = [i, i, c, t, t, r][d];
5153
- return {
5154
- r: g * 255,
5155
- g: h * 255,
5156
- b: k * 255
5157
- };
5158
- }
5159
- function cs(e, s, t, a) {
5160
- var n = [pe(Math.round(e).toString(16)), pe(Math.round(s).toString(16)), pe(Math.round(t).toString(16))];
5161
- return a && 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[0].charAt(0) + n[1].charAt(0) + n[2].charAt(0) : n.join("");
5162
- }
5163
- function sl(e, s, t, a, n) {
5164
- var i = [pe(Math.round(e).toString(16)), pe(Math.round(s).toString(16)), pe(Math.round(t).toString(16)), pe(Rs(a))];
5165
- return n && i[0].charAt(0) == i[0].charAt(1) && i[1].charAt(0) == i[1].charAt(1) && i[2].charAt(0) == i[2].charAt(1) && i[3].charAt(0) == i[3].charAt(1) ? i[0].charAt(0) + i[1].charAt(0) + i[2].charAt(0) + i[3].charAt(0) : i.join("");
5166
- }
5167
- function ds(e, s, t, a) {
5168
- var n = [pe(Rs(a)), pe(Math.round(e).toString(16)), pe(Math.round(s).toString(16)), pe(Math.round(t).toString(16))];
5169
- return n.join("");
5170
- }
5171
- S.equals = function(e, s) {
5172
- return !e || !s ? !1 : S(e).toRgbString() == S(s).toRgbString();
5173
- };
5174
- S.random = function() {
5175
- return S.fromRatio({
5176
- r: Math.random(),
5177
- g: Math.random(),
5178
- b: Math.random()
5179
- });
5180
- };
5181
- function il(e, s) {
5182
- s = s === 0 ? 0 : s || 10;
5183
- var t = S(e).toHsl();
5184
- return t.s -= s / 100, t.s = mt(t.s), S(t);
5185
- }
5186
- function nl(e, s) {
5187
- s = s === 0 ? 0 : s || 10;
5188
- var t = S(e).toHsl();
5189
- return t.s += s / 100, t.s = mt(t.s), S(t);
5190
- }
5191
- function al(e) {
5192
- return S(e).desaturate(100);
5193
- }
5194
- function ol(e, s) {
5195
- s = s === 0 ? 0 : s || 10;
5196
- var t = S(e).toHsl();
5197
- return t.l += s / 100, t.l = mt(t.l), S(t);
5198
- }
5199
- function rl(e, s) {
5200
- s = s === 0 ? 0 : s || 10;
5201
- var t = S(e).toRgb();
5202
- return t.r = Math.max(0, Math.min(255, t.r - Math.round(255 * -(s / 100)))), t.g = Math.max(0, Math.min(255, t.g - Math.round(255 * -(s / 100)))), t.b = Math.max(0, Math.min(255, t.b - Math.round(255 * -(s / 100)))), S(t);
5203
- }
5204
- function ll(e, s) {
5205
- s = s === 0 ? 0 : s || 10;
5206
- var t = S(e).toHsl();
5207
- return t.l -= s / 100, t.l = mt(t.l), S(t);
5208
- }
5209
- function cl(e, s) {
3958
+ function Vo(e, s) {
5210
3959
  var t = S(e).toHsl(), a = (t.h + s) % 360;
5211
3960
  return t.h = a < 0 ? 360 + a : a, S(t);
5212
3961
  }
5213
- function dl(e) {
3962
+ function Ho(e) {
5214
3963
  var s = S(e).toHsl();
5215
3964
  return s.h = (s.h + 180) % 360, S(s);
5216
3965
  }
@@ -5225,7 +3974,7 @@ function us(e, s) {
5225
3974
  }));
5226
3975
  return a;
5227
3976
  }
5228
- function ul(e) {
3977
+ function qo(e) {
5229
3978
  var s = S(e).toHsl(), t = s.h;
5230
3979
  return [S(e), S({
5231
3980
  h: (t + 72) % 360,
@@ -5237,14 +3986,14 @@ function ul(e) {
5237
3986
  l: s.l
5238
3987
  })];
5239
3988
  }
5240
- function fl(e, s, t) {
3989
+ function Wo(e, s, t) {
5241
3990
  s = s || 6, t = t || 30;
5242
3991
  var a = S(e).toHsl(), n = 360 / t, i = [S(e)];
5243
3992
  for (a.h = (a.h - (n * s >> 1) + 720) % 360; --s; )
5244
3993
  a.h = (a.h + n) % 360, i.push(S(a));
5245
3994
  return i;
5246
3995
  }
5247
- function pl(e, s) {
3996
+ function jo(e, s) {
5248
3997
  s = s || 6;
5249
3998
  for (var t = S(e).toHsv(), a = t.h, n = t.s, i = t.v, r = [], c = 1 / s; s--; )
5250
3999
  r.push(S({
@@ -5270,7 +4019,7 @@ S.readability = function(e, s) {
5270
4019
  };
5271
4020
  S.isReadable = function(e, s, t) {
5272
4021
  var a = S.readability(e, s), n, i;
5273
- switch (i = !1, n = yl(t), n.level + n.size) {
4022
+ switch (i = !1, n = Zo(t), n.level + n.size) {
5274
4023
  case "AAsmall":
5275
4024
  case "AAAlarge":
5276
4025
  i = a >= 4.5;
@@ -5444,31 +4193,31 @@ var $t = S.names = {
5444
4193
  whitesmoke: "f5f5f5",
5445
4194
  yellow: "ff0",
5446
4195
  yellowgreen: "9acd32"
5447
- }, gl = S.hexNames = ml($t);
5448
- function ml(e) {
4196
+ }, Uo = S.hexNames = Go($t);
4197
+ function Go(e) {
5449
4198
  var s = {};
5450
4199
  for (var t in e)
5451
4200
  e.hasOwnProperty(t) && (s[e[t]] = t);
5452
4201
  return s;
5453
4202
  }
5454
- function Fs(e) {
4203
+ function As(e) {
5455
4204
  return e = parseFloat(e), (isNaN(e) || e < 0 || e > 1) && (e = 1), e;
5456
4205
  }
5457
4206
  function H(e, s) {
5458
- hl(e) && (e = "100%");
5459
- var t = vl(e);
4207
+ Ko(e) && (e = "100%");
4208
+ var t = Yo(e);
5460
4209
  return e = Math.min(s, Math.max(0, parseFloat(e))), t && (e = parseInt(e * s, 10) / 100), Math.abs(e - s) < 1e-6 ? 1 : e % s / parseFloat(s);
5461
4210
  }
5462
- function mt(e) {
4211
+ function ht(e) {
5463
4212
  return Math.min(1, Math.max(0, e));
5464
4213
  }
5465
4214
  function se(e) {
5466
4215
  return parseInt(e, 16);
5467
4216
  }
5468
- function hl(e) {
4217
+ function Ko(e) {
5469
4218
  return typeof e == "string" && e.indexOf(".") != -1 && parseFloat(e) === 1;
5470
4219
  }
5471
- function vl(e) {
4220
+ function Yo(e) {
5472
4221
  return typeof e == "string" && e.indexOf("%") != -1;
5473
4222
  }
5474
4223
  function pe(e) {
@@ -5477,107 +4226,1365 @@ function pe(e) {
5477
4226
  function Ze(e) {
5478
4227
  return e <= 1 && (e = e * 100 + "%"), e;
5479
4228
  }
5480
- function Rs(e) {
4229
+ function Ns(e) {
5481
4230
  return Math.round(parseFloat(e) * 255).toString(16);
5482
4231
  }
5483
4232
  function fs(e) {
5484
4233
  return se(e) / 255;
5485
4234
  }
5486
- var fe = function() {
5487
- var e = "[-\\+]?\\d+%?", s = "[-\\+]?\\d*\\.\\d+%?", t = "(?:" + s + ")|(?:" + e + ")", a = "[\\s|\\(]+(" + t + ")[,|\\s]+(" + t + ")[,|\\s]+(" + t + ")\\s*\\)?", n = "[\\s|\\(]+(" + t + ")[,|\\s]+(" + t + ")[,|\\s]+(" + t + ")[,|\\s]+(" + t + ")\\s*\\)?";
5488
- return {
5489
- CSS_UNIT: new RegExp(t),
5490
- rgb: new RegExp("rgb" + a),
5491
- rgba: new RegExp("rgba" + n),
5492
- hsl: new RegExp("hsl" + a),
5493
- hsla: new RegExp("hsla" + n),
5494
- hsv: new RegExp("hsv" + a),
5495
- hsva: new RegExp("hsva" + n),
5496
- hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
5497
- hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
5498
- hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
5499
- hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
5500
- };
5501
- }();
5502
- function Ie(e) {
5503
- return !!fe.CSS_UNIT.exec(e);
4235
+ var fe = function() {
4236
+ var e = "[-\\+]?\\d+%?", s = "[-\\+]?\\d*\\.\\d+%?", t = "(?:" + s + ")|(?:" + e + ")", a = "[\\s|\\(]+(" + t + ")[,|\\s]+(" + t + ")[,|\\s]+(" + t + ")\\s*\\)?", n = "[\\s|\\(]+(" + t + ")[,|\\s]+(" + t + ")[,|\\s]+(" + t + ")[,|\\s]+(" + t + ")\\s*\\)?";
4237
+ return {
4238
+ CSS_UNIT: new RegExp(t),
4239
+ rgb: new RegExp("rgb" + a),
4240
+ rgba: new RegExp("rgba" + n),
4241
+ hsl: new RegExp("hsl" + a),
4242
+ hsla: new RegExp("hsla" + n),
4243
+ hsv: new RegExp("hsv" + a),
4244
+ hsva: new RegExp("hsva" + n),
4245
+ hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
4246
+ hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
4247
+ hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
4248
+ hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
4249
+ };
4250
+ }();
4251
+ function Ie(e) {
4252
+ return !!fe.CSS_UNIT.exec(e);
4253
+ }
4254
+ function Xo(e) {
4255
+ e = e.replace(Io, "").replace(Eo, "").toLowerCase();
4256
+ var s = !1;
4257
+ if ($t[e])
4258
+ e = $t[e], s = !0;
4259
+ else if (e == "transparent")
4260
+ return {
4261
+ r: 0,
4262
+ g: 0,
4263
+ b: 0,
4264
+ a: 0,
4265
+ format: "name"
4266
+ };
4267
+ var t;
4268
+ return (t = fe.rgb.exec(e)) ? {
4269
+ r: t[1],
4270
+ g: t[2],
4271
+ b: t[3]
4272
+ } : (t = fe.rgba.exec(e)) ? {
4273
+ r: t[1],
4274
+ g: t[2],
4275
+ b: t[3],
4276
+ a: t[4]
4277
+ } : (t = fe.hsl.exec(e)) ? {
4278
+ h: t[1],
4279
+ s: t[2],
4280
+ l: t[3]
4281
+ } : (t = fe.hsla.exec(e)) ? {
4282
+ h: t[1],
4283
+ s: t[2],
4284
+ l: t[3],
4285
+ a: t[4]
4286
+ } : (t = fe.hsv.exec(e)) ? {
4287
+ h: t[1],
4288
+ s: t[2],
4289
+ v: t[3]
4290
+ } : (t = fe.hsva.exec(e)) ? {
4291
+ h: t[1],
4292
+ s: t[2],
4293
+ v: t[3],
4294
+ a: t[4]
4295
+ } : (t = fe.hex8.exec(e)) ? {
4296
+ r: se(t[1]),
4297
+ g: se(t[2]),
4298
+ b: se(t[3]),
4299
+ a: fs(t[4]),
4300
+ format: s ? "name" : "hex8"
4301
+ } : (t = fe.hex6.exec(e)) ? {
4302
+ r: se(t[1]),
4303
+ g: se(t[2]),
4304
+ b: se(t[3]),
4305
+ format: s ? "name" : "hex"
4306
+ } : (t = fe.hex4.exec(e)) ? {
4307
+ r: se(t[1] + "" + t[1]),
4308
+ g: se(t[2] + "" + t[2]),
4309
+ b: se(t[3] + "" + t[3]),
4310
+ a: fs(t[4] + "" + t[4]),
4311
+ format: s ? "name" : "hex8"
4312
+ } : (t = fe.hex3.exec(e)) ? {
4313
+ r: se(t[1] + "" + t[1]),
4314
+ g: se(t[2] + "" + t[2]),
4315
+ b: se(t[3] + "" + t[3]),
4316
+ format: s ? "name" : "hex"
4317
+ } : !1;
4318
+ }
4319
+ function Zo(e) {
4320
+ var s, t;
4321
+ return e = e || {
4322
+ level: "AA",
4323
+ size: "small"
4324
+ }, s = (e.level || "AA").toUpperCase(), t = (e.size || "small").toLowerCase(), s !== "AA" && s !== "AAA" && (s = "AA"), t !== "small" && t !== "large" && (t = "small"), {
4325
+ level: s,
4326
+ size: t
4327
+ };
4328
+ }
4329
+ const Jo = {
4330
+ name: "ecs-button-context",
4331
+ emits: ["click"],
4332
+ components: {
4333
+ EcsIcon: M,
4334
+ EcsFocusRing: L
4335
+ },
4336
+ props: {
4337
+ /** If set, an icon will be added to the left of the button. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
4338
+ icon: {
4339
+ type: String,
4340
+ default: null
4341
+ },
4342
+ /** Turns the button into a loading state. */
4343
+ loading: {
4344
+ type: Boolean,
4345
+ default: !1
4346
+ },
4347
+ /** Context buttons can be used to set a specific text or annotation color on the selection. Pass any color value (HEX, RGBA). */
4348
+ selectedColor: {
4349
+ type: String,
4350
+ default: null
4351
+ },
4352
+ /** Aria-label is needed for iconOnly buttons to improve accessibility for screenreaders. */
4353
+ ariaLabel: {
4354
+ type: String
4355
+ }
4356
+ },
4357
+ computed: {
4358
+ iconType() {
4359
+ return this.loading ? "loading" : (this.icon && this.icon, this.icon);
4360
+ },
4361
+ iconOnly() {
4362
+ return this.icon && !this.$slots.default;
4363
+ },
4364
+ colorIsDark() {
4365
+ return this.selectedColor && this.selectedColor !== "" ? S(this.selectedColor).isDark() : null;
4366
+ },
4367
+ selectedColorBackground() {
4368
+ if (this.selectedColor && this.selectedColor !== "")
4369
+ return `background-color:${this.selectedColor};`;
4370
+ },
4371
+ selectedColorText() {
4372
+ if (this.selectedColor && this.selectedColor !== "")
4373
+ return this.colorIsDark ? {
4374
+ color: S(this.selectedColor).lighten(65).toRgbString()
4375
+ } : {
4376
+ color: S(this.selectedColor).lighten(10).toRgbString()
4377
+ };
4378
+ }
4379
+ },
4380
+ mounted() {
4381
+ this.iconOnly && (!this.ariaLabel || this.ariaLabel.trim());
4382
+ }
4383
+ }, Qo = ["aria-label", "aria-busy"];
4384
+ function er(e, s, t, a, n, i) {
4385
+ const r = p("ecs-icon"), c = p("ecs-focus-ring");
4386
+ return o(), l("button", {
4387
+ class: v(["ecs-context-button", [t.loading ? "loading" : "", i.iconOnly ? "ecs-context-button-icon-only" : ""]]),
4388
+ "aria-label": t.ariaLabel,
4389
+ "aria-busy": t.loading || null,
4390
+ style: B(i.selectedColorText),
4391
+ onClick: s[0] || (s[0] = (d) => e.$emit("click", d))
4392
+ }, [
4393
+ t.icon || t.loading ? (o(), y(r, {
4394
+ key: 0,
4395
+ type: i.iconType,
4396
+ size: "20"
4397
+ }, null, 8, ["type"])) : u("", !0),
4398
+ t.selectedColor ? (o(), l("div", {
4399
+ key: 1,
4400
+ class: "ecs-context-button-color",
4401
+ style: B(i.selectedColorBackground)
4402
+ }, null, 4)) : u("", !0),
4403
+ m(e.$slots, "default", {}, void 0, !0),
4404
+ b(c)
4405
+ ], 14, Qo);
4406
+ }
4407
+ const yy = /* @__PURE__ */ _(Jo, [["render", er], ["__scopeId", "data-v-3a382207"]]);
4408
+ const tr = {
4409
+ name: "ecs-context-button-group"
4410
+ }, sr = { class: "ecs-context-button-group" };
4411
+ function ir(e, s, t, a, n, i) {
4412
+ return o(), l("div", sr, [
4413
+ m(e.$slots, "default", {}, void 0, !0)
4414
+ ]);
4415
+ }
4416
+ const by = /* @__PURE__ */ _(tr, [["render", ir], ["__scopeId", "data-v-94a53b69"]]);
4417
+ const nr = {
4418
+ name: "ecs-button-dialog",
4419
+ emits: ["click"],
4420
+ components: {
4421
+ EcsIcon: M,
4422
+ EcsFocusRing: L
4423
+ },
4424
+ props: {
4425
+ /** If set, an icon will be added to the left of the button. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
4426
+ icon: {
4427
+ type: String,
4428
+ default: null
4429
+ },
4430
+ /** Defines the type and function of the button. If not set, the button will be neutral (used for Cancel actions). */
4431
+ type: {
4432
+ type: String,
4433
+ validator: (e) => ["danger", "confirm", "cancel"].includes(e),
4434
+ default: "cancel"
4435
+ },
4436
+ /** Turns the button into a loading state. */
4437
+ loading: Boolean
4438
+ },
4439
+ computed: {
4440
+ typeClass() {
4441
+ return this.type && this.type !== "" ? `ecs-dialog-footer-button-${this.type}` : this.type;
4442
+ },
4443
+ iconType() {
4444
+ return this.loading ? "loading" : this.icon;
4445
+ }
4446
+ }
4447
+ }, ar = ["aria-busy"];
4448
+ function or(e, s, t, a, n, i) {
4449
+ const r = p("ecs-icon"), c = p("ecs-focus-ring");
4450
+ return o(), l("button", {
4451
+ onClick: s[0] || (s[0] = (d) => e.$emit("click", d)),
4452
+ class: v([[i.typeClass, t.loading ? "loading" : ""], "ecs-dialog-footer-button"]),
4453
+ "aria-busy": t.loading || null
4454
+ }, [
4455
+ t.icon || t.loading ? (o(), y(r, {
4456
+ key: 0,
4457
+ type: i.iconType
4458
+ }, null, 8, ["type"])) : u("", !0),
4459
+ m(e.$slots, "default", {}, void 0, !0),
4460
+ b(c, {
4461
+ radius: 12,
4462
+ danger: t.type == "danger"
4463
+ }, null, 8, ["danger"])
4464
+ ], 10, ar);
4465
+ }
4466
+ const ky = /* @__PURE__ */ _(nr, [["render", or], ["__scopeId", "data-v-fe031b71"]]);
4467
+ const rr = {
4468
+ name: "ecs-button-more",
4469
+ emits: ["click"],
4470
+ components: {
4471
+ EcsIcon: M,
4472
+ EcsFocusRing: L
4473
+ },
4474
+ props: {
4475
+ /** Displays the button slightly highlighted. Should be used when the state the button triggers is currently visible. */
4476
+ active: Boolean,
4477
+ /** Defines the type of the button: `dropdown` shows a simple dropdown button, `ellipsis` shows a tiny (...) button, and `expand` is supposed to be used at the end of expandable lists and tables. */
4478
+ type: {
4479
+ type: String,
4480
+ validator: (e) => ["dropdown", "dropdown-round", "ellipsis", "expand"].includes(e),
4481
+ default: "dropdown"
4482
+ },
4483
+ /** Provide a meaningful label for the button to improve accessibility for screenreaders. */
4484
+ ariaLabel: {
4485
+ type: String
4486
+ },
4487
+ /** Disables the button and prevent pointer events. */
4488
+ disabled: {
4489
+ type: Boolean
4490
+ }
4491
+ },
4492
+ computed: {
4493
+ typeClass() {
4494
+ return this.type && this.type !== "" ? `ecs-button-more-${this.type}` : this.type;
4495
+ }
4496
+ },
4497
+ mounted() {
4498
+ this.$slots.default === void 0 && (!this.ariaLabel || this.ariaLabel.trim());
4499
+ }
4500
+ }, lr = ["aria-label", "aria-disabled", "aria-expanded", "aria-haspopup", "disabled"];
4501
+ function cr(e, s, t, a, n, i) {
4502
+ const r = p("ecs-icon"), c = p("ecs-focus-ring");
4503
+ return o(), l("button", {
4504
+ onClick: s[0] || (s[0] = (d) => e.$emit("click", d)),
4505
+ "aria-label": t.ariaLabel,
4506
+ "aria-disabled": t.disabled || null,
4507
+ "aria-expanded": t.active || null,
4508
+ "aria-haspopup": t.type == "dropdown" || null,
4509
+ disabled: t.disabled || null,
4510
+ class: v([
4511
+ t.active ? "active" : "",
4512
+ i.typeClass
4513
+ ])
4514
+ }, [
4515
+ t.type == "ellipsis" ? (o(), y(r, {
4516
+ key: 0,
4517
+ type: "more",
4518
+ size: "20",
4519
+ color: "#FFF"
4520
+ })) : u("", !0),
4521
+ t.type == "dropdown" || t.type == "dropdown-round" ? (o(), y(r, {
4522
+ key: 1,
4523
+ type: "chevron-down",
4524
+ size: "12",
4525
+ color: "var(--color-gray-9)"
4526
+ })) : u("", !0),
4527
+ t.type === "expand" ? m(e.$slots, "default", { key: 2 }, void 0, !0) : u("", !0),
4528
+ b(c)
4529
+ ], 10, lr);
4530
+ }
4531
+ const Ds = /* @__PURE__ */ _(rr, [["render", cr], ["__scopeId", "data-v-faa154dd"]]);
4532
+ const dr = {
4533
+ name: "ecs-button-table",
4534
+ emits: ["click", "mouseover", "mouseleave"],
4535
+ components: {
4536
+ EcsIcon: M,
4537
+ EcsFocusRing: L
4538
+ },
4539
+ props: {
4540
+ /** Displays the button in an active state. */
4541
+ active: Boolean,
4542
+ /** Show the button without a background color. */
4543
+ subtle: {
4544
+ type: Boolean,
4545
+ default: !1
4546
+ },
4547
+ /** Button is visually toned down (text and icon are more gray than black). */
4548
+ pale: {
4549
+ type: Boolean,
4550
+ default: !1
4551
+ },
4552
+ /** Sets the size of the button. */
4553
+ size: {
4554
+ type: String,
4555
+ validator: (e) => ["md", "sml", null].includes(e),
4556
+ default: "md"
4557
+ },
4558
+ /** If set, an icon will be added to the left of the button. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
4559
+ icon: {
4560
+ type: String
4561
+ },
4562
+ /** Text text inside the button. */
4563
+ label: {
4564
+ type: [String, Number]
4565
+ },
4566
+ /** Turns the button into disabled state, which disables all interactions and hover effects. */
4567
+ disabled: {
4568
+ type: Boolean,
4569
+ default: !1
4570
+ },
4571
+ /** If set, a small arrow will show up on the right side of the button, to indicate an collapse/expand state. The direction of the button is determined by the `active` prop. */
4572
+ chevron: {
4573
+ type: Boolean,
4574
+ default: !1
4575
+ },
4576
+ /** If set, the button will not show any effects that would indicate that you could interact with the button. This is usefull when the button is only used to show a specific count/label instead of triggering any actions. */
4577
+ unreactive: {
4578
+ type: Boolean,
4579
+ default: !1
4580
+ },
4581
+ /** Turns the button into a loading state, which makes it appear disabled and replaces the default icon (if set) with a spinner. */
4582
+ loading: {
4583
+ type: Boolean,
4584
+ default: !1
4585
+ }
4586
+ },
4587
+ computed: {
4588
+ hasLabel() {
4589
+ return this.label && this.label !== "" || this.label != null ? "has-label" : this.label;
4590
+ },
4591
+ sizeClass() {
4592
+ return this.size && this.size !== "" ? `ecs-button-table-${this.size}` : this.size;
4593
+ },
4594
+ iconSize() {
4595
+ return this.size == "sml" ? "16" : "20";
4596
+ },
4597
+ iconType() {
4598
+ return this.loading ? "loading" : this.icon;
4599
+ },
4600
+ ariaDisabled() {
4601
+ return this.disabled || this.unreactive ? !0 : null;
4602
+ }
4603
+ }
4604
+ }, ur = ["disabled", "aria-disabled", "aria-expanded", "aria-busy"], fr = {
4605
+ key: 1,
4606
+ class: "button-label"
4607
+ };
4608
+ function pr(e, s, t, a, n, i) {
4609
+ const r = p("ecs-icon"), c = p("ecs-focus-ring");
4610
+ return o(), l("button", {
4611
+ class: v(["ecs-button-table", [
4612
+ t.active ? "active" : "",
4613
+ i.hasLabel,
4614
+ t.subtle ? "subtle" : "",
4615
+ t.pale ? "pale" : "",
4616
+ t.unreactive ? "unreactive" : "",
4617
+ t.loading ? "loading" : "",
4618
+ i.sizeClass
4619
+ ]]),
4620
+ disabled: t.disabled || null,
4621
+ "aria-disabled": i.ariaDisabled,
4622
+ "aria-expanded": t.active || null,
4623
+ "aria-busy": t.loading || null,
4624
+ onClick: s[0] || (s[0] = (d) => e.$emit("click", d)),
4625
+ onMouseover: s[1] || (s[1] = (d) => e.$emit("mouseover", d)),
4626
+ onMouseleave: s[2] || (s[2] = (d) => e.$emit("mouseleave", d))
4627
+ }, [
4628
+ t.icon || t.loading ? (o(), y(r, {
4629
+ key: 0,
4630
+ type: i.iconType,
4631
+ size: i.iconSize
4632
+ }, null, 8, ["type", "size"])) : u("", !0),
4633
+ t.label != null ? (o(), l("div", fr, x(t.label), 1)) : u("", !0),
4634
+ t.chevron ? (o(), l("div", {
4635
+ key: 2,
4636
+ class: v(["chevron", t.active ? "expand" : ""])
4637
+ }, null, 2)) : u("", !0),
4638
+ b(c)
4639
+ ], 42, ur);
4640
+ }
4641
+ const Fs = /* @__PURE__ */ _(dr, [["render", pr], ["__scopeId", "data-v-f5a891fe"]]);
4642
+ const gr = {
4643
+ name: "ecs-toolbar-button-group"
4644
+ }, mr = { class: "ecs-toolbar-button-group" };
4645
+ function hr(e, s, t, a, n, i) {
4646
+ return o(), l("div", mr, [
4647
+ m(e.$slots, "default", {}, void 0, !0)
4648
+ ]);
4649
+ }
4650
+ const Ht = /* @__PURE__ */ _(gr, [["render", hr], ["__scopeId", "data-v-743ca90b"]]);
4651
+ const vr = {
4652
+ name: "ecs-toolbar-icon-button",
4653
+ emits: ["click"],
4654
+ components: { EcsIcon: M, EcsFocusRing: L },
4655
+ props: {
4656
+ /** The icon type of the button. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). Note that only icons prefixed with `toolbar-` should be used here. */
4657
+ icon: {
4658
+ type: String,
4659
+ required: !0
4660
+ },
4661
+ /** Renders a small secondary icon in the bottom left of the button. Should only used under special conditions, eg. to reflect a specifc state that can not be handled by the `active` prop. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
4662
+ subIcon: {
4663
+ type: String
4664
+ },
4665
+ /** When set, the icon is spinning. Should really only be used when the `icon` is set to `toolbar-refresh`. */
4666
+ refresh: {
4667
+ type: Boolean,
4668
+ default: !1
4669
+ },
4670
+ /** Indicates that the button is activated. */
4671
+ active: {
4672
+ type: Boolean,
4673
+ default: !1
4674
+ },
4675
+ /** Show the button in loading state. */
4676
+ loading: {
4677
+ type: Boolean,
4678
+ default: !1
4679
+ },
4680
+ /** Adds a small blue badge to the upper right of the button. */
4681
+ hasBadge: {
4682
+ type: Boolean,
4683
+ default: !1
4684
+ },
4685
+ /** Sets the aria-label attribute to improve accessibility. */
4686
+ ariaLabel: {
4687
+ type: String
4688
+ //required: true
4689
+ }
4690
+ },
4691
+ computed: {
4692
+ ariaBusy() {
4693
+ return this.refresh || this.loading ? !0 : null;
4694
+ }
4695
+ }
4696
+ }, _r = ["aria-busy", "aria-label"], yr = {
4697
+ key: 0,
4698
+ class: "badge"
4699
+ }, br = { class: "sub-icon" };
4700
+ function kr(e, s, t, a, n, i) {
4701
+ const r = p("ecs-icon"), c = p("ecs-focus-ring");
4702
+ return o(), l("button", {
4703
+ onClick: s[0] || (s[0] = (d) => e.$emit("click", d)),
4704
+ "aria-busy": i.ariaBusy,
4705
+ "aria-label": t.ariaLabel,
4706
+ class: v(["ecs-toolbar-icon-button", [
4707
+ t.refresh ? "refreshing" : "",
4708
+ t.active ? "active" : "",
4709
+ t.loading ? "loading" : ""
4710
+ ]])
4711
+ }, [
4712
+ b(r, { type: t.icon }, null, 8, ["type"]),
4713
+ t.hasBadge ? (o(), l("span", yr)) : u("", !0),
4714
+ f("div", br, [
4715
+ t.subIcon ? (o(), y(r, {
4716
+ key: 0,
4717
+ type: t.subIcon,
4718
+ size: "14"
4719
+ }, null, 8, ["type"])) : u("", !0)
4720
+ ]),
4721
+ b(c)
4722
+ ], 10, _r);
4723
+ }
4724
+ const xy = /* @__PURE__ */ _(vr, [["render", kr], ["__scopeId", "data-v-098e1030"]]);
4725
+ const xr = {
4726
+ name: "ecs-card",
4727
+ emits: ["click"],
4728
+ props: {
4729
+ /** Unique ID */
4730
+ id: {
4731
+ type: [String, Number],
4732
+ default: null
4733
+ },
4734
+ /** Indicates that this card is currently selected (most likely via a checkbox that is contained in the card). */
4735
+ selected: {
4736
+ type: Boolean,
4737
+ default: !1
4738
+ },
4739
+ /** Indicates that this card is currently expanded. Adds a bit of spacing and a stronger shadow. */
4740
+ expanded: {
4741
+ type: Boolean,
4742
+ default: !1
4743
+ },
4744
+ /** Determines if the card should have a :hover state. This usually applies when the card is clickable, or expandable. */
4745
+ hover: {
4746
+ type: Boolean,
4747
+ default: !1
4748
+ },
4749
+ /** Shows a full-height progress bar in the background of the card. Should only be used for single row cards. Pass the current percentage value as `Number`. */
4750
+ progress: {
4751
+ type: Number,
4752
+ default: null
4753
+ },
4754
+ /** Turns the whole card into a disabled state. This also blocks all interactions on card content. */
4755
+ disabled: {
4756
+ type: Boolean,
4757
+ default: !1
4758
+ }
4759
+ },
4760
+ computed: {
4761
+ itemId() {
4762
+ return `item-${this.id}`;
4763
+ }
4764
+ }
4765
+ }, wr = ["id"], Sr = { class: "ecs-card-inner" }, Cr = { class: "ecs-card-background" };
4766
+ function Br(e, s, t, a, n, i) {
4767
+ return o(), l("div", {
4768
+ onClick: s[0] || (s[0] = (r) => e.$emit("click", r)),
4769
+ class: v(["ecs-card", [
4770
+ t.selected ? "ecs-card-selected" : "",
4771
+ t.expanded ? "ecs-card-expanded" : "",
4772
+ t.hover ? "ecs-card-hover" : "",
4773
+ t.disabled ? "ecs-card-disabled" : ""
4774
+ ]]),
4775
+ id: i.itemId
4776
+ }, [
4777
+ f("div", Sr, [
4778
+ m(e.$slots, "default", {}, void 0, !0)
4779
+ ]),
4780
+ f("div", Cr, [
4781
+ t.progress ? (o(), l("div", {
4782
+ key: 0,
4783
+ class: "progress",
4784
+ style: B({ width: t.progress + "%" })
4785
+ }, null, 4)) : u("", !0)
4786
+ ])
4787
+ ], 10, wr);
4788
+ }
4789
+ const wy = /* @__PURE__ */ _(xr, [["render", Br], ["__scopeId", "data-v-8d449816"]]);
4790
+ const zr = {
4791
+ name: "ecs-citation-line",
4792
+ emits: ["change", "blur", "focus"],
4793
+ components: { EcsFlexRow: Me },
4794
+ props: {
4795
+ /** The citation range text. */
4796
+ cite: {
4797
+ type: String,
4798
+ required: !0
4799
+ },
4800
+ /** Unique citation ID */
4801
+ id: {
4802
+ type: [String, Number],
4803
+ required: !0
4804
+ },
4805
+ /** Determines the visual state of the citation line. */
4806
+ state: {
4807
+ type: String,
4808
+ validator: (e) => ["default", "error", "warning", "edited", "skipped"].includes(e),
4809
+ default: "default"
4810
+ },
4811
+ /** Makes the content of the citation line editable. */
4812
+ editable: {
4813
+ type: Boolean,
4814
+ default: !0
4815
+ }
4816
+ },
4817
+ data() {
4818
+ return {
4819
+ citeValue: this.cite
4820
+ };
4821
+ },
4822
+ mounted() {
4823
+ this.$refs.editable.innerText = this.citeValue;
4824
+ },
4825
+ methods: {
4826
+ onInput(e) {
4827
+ this.citeValue = e.target.innerText, this.$emit("change", this.citeValue, this.id);
4828
+ }
4829
+ }
4830
+ }, Ir = ["contenteditable"];
4831
+ function Er(e, s, t, a, n, i) {
4832
+ const r = p("ecs-flex-row");
4833
+ return o(), y(r, { class: "ecs-citation-line" }, {
4834
+ default: w(() => [
4835
+ f("div", {
4836
+ class: v(["ecs-citation-line-cite", [t.state, t.editable ? "editable" : ""]]),
4837
+ ref: "editable",
4838
+ onKeyup: s[0] || (s[0] = (...c) => i.onInput && i.onInput(...c)),
4839
+ onBlur: s[1] || (s[1] = (c) => e.$emit("blur", c)),
4840
+ onFocus: s[2] || (s[2] = (c) => e.$emit("focus", c)),
4841
+ onKeydown: s[3] || (s[3] = G(U(() => {
4842
+ }, ["prevent"]), ["enter"])),
4843
+ contenteditable: t.editable
4844
+ }, null, 42, Ir),
4845
+ e.$slots.actions ? (o(), y(r, {
4846
+ key: 0,
4847
+ justify: "end",
4848
+ class: "ecs-citation-line-actions"
4849
+ }, {
4850
+ default: w(() => [
4851
+ m(e.$slots, "actions", {}, void 0, !0)
4852
+ ]),
4853
+ _: 3
4854
+ })) : u("", !0)
4855
+ ]),
4856
+ _: 3
4857
+ });
4858
+ }
4859
+ const Sy = /* @__PURE__ */ _(zr, [["render", Er], ["__scopeId", "data-v-cfd8e718"]]);
4860
+ var qt = {};
4861
+ Object.defineProperty(qt, "__esModule", {
4862
+ value: !0
4863
+ });
4864
+ var $r = qt.clickOutSide = {
4865
+ mounted: function(s, t, a) {
4866
+ s.clickOutsideEvent = function(n) {
4867
+ s == n.target || s.contains(n.target) || t.value(n, s);
4868
+ }, document.addEventListener("click", s.clickOutsideEvent);
4869
+ },
4870
+ unmounted: function(s) {
4871
+ document.removeEventListener("click", s.clickOutsideEvent);
4872
+ }
4873
+ }, Pr = qt.default = $r;
4874
+ const Tr = {
4875
+ name: "ecs-context-menu",
4876
+ emits: ["option-clicked", "menu-closed"],
4877
+ components: { EcsIcon: M, EcsFocusRing: L, EcsButton: Se },
4878
+ directives: {
4879
+ clickOutSide: Pr
4880
+ },
4881
+ props: {
4882
+ /** Unique String that acts as the id for the menu. */
4883
+ elementId: {
4884
+ type: String,
4885
+ required: !0
4886
+ },
4887
+ /** Array of menu options to show. Component will use the `name` parameter as the label. Array needs to contain objects with the following structure:
4888
+ ```{
4889
+ name: 'Duplicate',
4890
+ slug: 'duplicate',
4891
+ icon: 'evidence',
4892
+ disabled: false,
4893
+ type: '',
4894
+ nested: { ... }
4895
+ }``` */
4896
+ options: {
4897
+ type: Array,
4898
+ required: !0
4899
+ },
4900
+ /** If passed, an icon will appear. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
4901
+ icon: {
4902
+ type: String
4903
+ }
4904
+ },
4905
+ data() {
4906
+ return {
4907
+ item: null,
4908
+ menuWidth: null,
4909
+ menuHeight: null,
4910
+ opened: !1,
4911
+ left: 0,
4912
+ top: 0
4913
+ };
4914
+ },
4915
+ computed: {
4916
+ postionStyles() {
4917
+ return { left: this.left + "px", top: this.top + "px" };
4918
+ }
4919
+ },
4920
+ methods: {
4921
+ showMenu(e, s) {
4922
+ this.item = s;
4923
+ let t = document.getElementById(this.elementId);
4924
+ t && ((!this.menuWidth || !this.menuHeight) && (t.style.visibility = "hidden", t.style.display = "block", this.menuWidth = t.offsetWidth, this.menuHeight = t.offsetHeight, t.removeAttribute("style")), this.menuWidth + e.pageX >= window.innerWidth ? this.left = e.pageX - this.menuWidth + 2 : this.left = e.pageX - 2, this.menuHeight + e.pageY >= window.innerHeight ? this.top = e.pageY - this.menuHeight + 2 : this.top = e.pageY - 2, this.opened = !0, this.$emit("menu-opened", this.item), this.$nextTick(() => {
4925
+ this.$refs.menu.focus();
4926
+ }));
4927
+ },
4928
+ hideContextMenu() {
4929
+ document.getElementById(this.elementId) && (this.opened = !1, this.$emit("menu-closed"));
4930
+ },
4931
+ onClickOutside() {
4932
+ this.hideContextMenu();
4933
+ },
4934
+ optionClicked(e) {
4935
+ this.hideContextMenu(), this.$emit("option-clicked", {
4936
+ item: this.item,
4937
+ option: e
4938
+ });
4939
+ },
4940
+ onEscKeyRelease(e) {
4941
+ e.keyCode === 27 && this.hideContextMenu();
4942
+ },
4943
+ // Focus the first menu item when the context menu opens
4944
+ focusFirst() {
4945
+ this.$refs.menu.children[0].focus();
4946
+ },
4947
+ // Focus the last menu item when the user presses the up arrow key on the first menu item
4948
+ focusLast() {
4949
+ const e = this.$refs.menu.children;
4950
+ e[e.length - 1].focus();
4951
+ },
4952
+ // Focus the previous menu item when the user presses the up arrow key
4953
+ focusPrevious(e) {
4954
+ const s = this.$refs.menu.children, t = Array.prototype.indexOf.call(s, e.target);
4955
+ if (t > 0) {
4956
+ let a = t - 1;
4957
+ for (; a >= 0 && s[a].getAttribute("tabindex") === "-1"; )
4958
+ a--;
4959
+ a >= 0 ? s[a].focus() : this.focusLast();
4960
+ } else
4961
+ this.focusLast();
4962
+ },
4963
+ focusNext(e) {
4964
+ const s = this.$refs.menu.children;
4965
+ let t = Array.prototype.indexOf.call(s, e.target);
4966
+ for (; t < s.length - 1; )
4967
+ if (t++, s[t].getAttribute("tabindex") !== "-1") {
4968
+ s[t].focus();
4969
+ return;
4970
+ }
4971
+ this.focusFirst();
4972
+ }
4973
+ },
4974
+ mounted() {
4975
+ document.body.addEventListener("keyup", this.onEscKeyRelease), this.$refs.menu.addEventListener("keydown", (e) => {
4976
+ e.keyCode === 9 && (e.preventDefault(), this.focusFirst());
4977
+ });
4978
+ },
4979
+ beforeUnmount() {
4980
+ document.removeEventListener("keyup", this.onEscKeyRelease);
4981
+ }
4982
+ }, Mr = ["id"], Lr = ["onClick", "role", "tabindex", "aria-disabled"], Or = { key: 1 };
4983
+ function Ar(e, s, t, a, n, i) {
4984
+ const r = p("ecs-icon"), c = p("ecs-button"), d = p("ecs-focus-ring"), g = oi("click-out-side");
4985
+ return Ue((o(), l("div", {
4986
+ class: v(["ecs-context-menu", n.opened ? " opened" : ""]),
4987
+ id: t.elementId,
4988
+ style: B([i.postionStyles])
4989
+ }, [
4990
+ f("ul", {
4991
+ role: "menu",
4992
+ "aria-orientation": "vertical",
4993
+ tabindex: "0",
4994
+ onKeydown: [
4995
+ s[0] || (s[0] = G(U((...h) => i.focusPrevious && i.focusPrevious(...h), ["prevent"]), ["up"])),
4996
+ s[1] || (s[1] = G(U((...h) => i.focusNext && i.focusNext(...h), ["prevent"]), ["down"]))
4997
+ ],
4998
+ ref: "menu",
4999
+ id: "my-menu"
5000
+ }, [
5001
+ (o(!0), l(Z, null, ge(t.options, (h, k) => (o(), l("li", {
5002
+ key: k,
5003
+ onClick: U((z) => i.optionClicked(h), ["stop"]),
5004
+ role: h.type === "divider" ? "separator" : "menuitem",
5005
+ tabindex: h.type === "divider" || h.disabled ? "-1" : "0",
5006
+ "aria-disabled": h.disabled || null,
5007
+ class: v([
5008
+ h.type === "divider" ? "ecs-context-menu-divider" : "ecs-context-menu-item",
5009
+ h.type === "danger" ? "danger" : "",
5010
+ h.disabled ? "disabled" : ""
5011
+ ])
5012
+ }, [
5013
+ h.icon ? (o(), y(r, {
5014
+ key: 0,
5015
+ type: h.icon,
5016
+ size: "20"
5017
+ }, null, 8, ["type"])) : u("", !0),
5018
+ h.type != "divider" ? (o(), l("span", Or, x(h.name), 1)) : u("", !0),
5019
+ h.nested ? (o(), y(c, {
5020
+ key: 2,
5021
+ onClick: U((z) => i.optionClicked(h.nested), ["stop"]),
5022
+ icon: h.nested.icon,
5023
+ title: h.nested.name,
5024
+ "aria-label": h.nested.name,
5025
+ disabled: h.nested.disabled || null,
5026
+ type: "secondary",
5027
+ "icon-only": "",
5028
+ size: "sml"
5029
+ }, null, 8, ["onClick", "icon", "title", "aria-label", "disabled"])) : u("", !0),
5030
+ b(d, {
5031
+ danger: h.type == "danger"
5032
+ }, null, 8, ["danger"])
5033
+ ], 10, Lr))), 128))
5034
+ ], 544)
5035
+ ], 14, Mr)), [
5036
+ [g, i.onClickOutside]
5037
+ ]);
5038
+ }
5039
+ const Cy = /* @__PURE__ */ _(Tr, [["render", Ar], ["__scopeId", "data-v-7a99d0e5"]]);
5040
+ const Nr = {
5041
+ name: "ecs-collapse",
5042
+ emits: ["toggled", "remove"],
5043
+ components: { EcsButton: Se, EcsFocusRing: L, EcsFlexRow: Me },
5044
+ props: {
5045
+ /** Unique ID, is required to handle persist states. */
5046
+ id: {
5047
+ type: String,
5048
+ required: !0
5049
+ },
5050
+ /** The headline of the collapse control. */
5051
+ title: {
5052
+ type: String,
5053
+ required: !0
5054
+ },
5055
+ /** Determines the padding of the headline and content sections. */
5056
+ indent: {
5057
+ type: String,
5058
+ validator: (e) => ["sml", "md", null].includes(e),
5059
+ default: null
5060
+ },
5061
+ /** Determines the padding of the headline section alone. */
5062
+ headlineIndent: {
5063
+ type: String,
5064
+ validator: (e) => ["sml", "md", null].includes(e),
5065
+ default: null
5066
+ },
5067
+ /** Displays a border above the headline section. */
5068
+ borderTop: {
5069
+ type: Boolean
5070
+ },
5071
+ /** Displays a border below the content section. */
5072
+ borderBottom: {
5073
+ type: Boolean
5074
+ },
5075
+ /** Makes the headline to render in font-weight bold. */
5076
+ headlineBold: {
5077
+ type: Boolean
5078
+ },
5079
+ /** Determines the initial state of the control. If set to `true`, the collapse is expanded on mount. */
5080
+ visible: {
5081
+ type: Boolean
5082
+ },
5083
+ /** If set, a small (-) remove button is rendered in the headline section. */
5084
+ removable: {
5085
+ type: Boolean
5086
+ },
5087
+ /** Sets the tooltip title of the remove button. */
5088
+ removableTooltip: {
5089
+ type: String
5090
+ },
5091
+ /** Saves the state of the collapse control in localstorage and reads the state on next mount, to automatically set it to expanded or collapsed. */
5092
+ persist: {
5093
+ type: Boolean,
5094
+ default: !0
5095
+ },
5096
+ /** Sets the top and bottom padding of the content section. */
5097
+ contentPadding: {
5098
+ type: String,
5099
+ validator: (e) => ["none", "sml", "md"].includes(e),
5100
+ default: "md"
5101
+ },
5102
+ /** Sets the count of the collapse control in parenthese next to the headline. */
5103
+ count: {
5104
+ type: Number
5105
+ }
5106
+ },
5107
+ data() {
5108
+ return {
5109
+ isVisible: this.visible
5110
+ };
5111
+ },
5112
+ computed: {
5113
+ indentation() {
5114
+ return this.indent && this.indent !== "" ? `ecs-collapsable-indent-${this.indent}` : this.indent;
5115
+ },
5116
+ headlineIndentation() {
5117
+ return this.headlineIndent && this.headlineIndent !== "" ? `ecs-collapsable-headline-indent-${this.headlineIndent}` : this.headlineIndent;
5118
+ },
5119
+ removeButtonIndentation() {
5120
+ return this.headlineIndent && this.headlineIndent !== "" ? `remove-button-indent-${this.headlineIndent}` : this.indent && this.indent !== "" ? `remove-button-indent-${this.indent}` : this.headlineIndent;
5121
+ },
5122
+ contentPaddingClass() {
5123
+ return `ecs-collapsable-content-padding-${this.contentPadding}`;
5124
+ }
5125
+ },
5126
+ mounted() {
5127
+ this.$nextTick(() => {
5128
+ this.persist && (localStorage.getItem(`collapse-${this.id}`) === null ? (this.isVisible = this.visible, localStorage.setItem(`collapse-${this.id}`, this.isVisible)) : this.isVisible = localStorage.getItem(`collapse-${this.id}`) == "true");
5129
+ });
5130
+ },
5131
+ methods: {
5132
+ toggleCollapse() {
5133
+ this.isVisible = !this.isVisible, this.persist && localStorage.setItem(`collapse-${this.id}`, this.isVisible), this.$emit("toggled", this.id, this.isVisible);
5134
+ }
5135
+ },
5136
+ watch: {
5137
+ visible() {
5138
+ this.isVisible = this.visible;
5139
+ }
5140
+ }
5141
+ }, Dr = { class: "wrap" }, Fr = ["aria-expanded", "aria-controls"], Rr = {
5142
+ key: 0,
5143
+ class: "ecs-collapsable-headline-count"
5144
+ }, Vr = {
5145
+ key: 0,
5146
+ class: "ecs-collapsable-headline-controls"
5147
+ }, Hr = ["id", "aria-hidden"];
5148
+ function qr(e, s, t, a, n, i) {
5149
+ const r = p("ecs-button"), c = p("ecs-flex-row"), d = p("ecs-focus-ring");
5150
+ return o(), l("div", {
5151
+ class: v(["ecs-collapsable", [
5152
+ t.borderTop ? "ecs-collapsable-border-top" : "",
5153
+ t.borderBottom ? "ecs-collapsable-border-bottom" : "",
5154
+ i.indentation,
5155
+ i.headlineIndentation
5156
+ ]])
5157
+ }, [
5158
+ f("div", Dr, [
5159
+ t.removable ? (o(), y(r, {
5160
+ key: 0,
5161
+ onClick: s[0] || (s[0] = (g) => e.$emit("remove", t.id)),
5162
+ type: "secondary",
5163
+ "icon-only": "",
5164
+ icon: "minus",
5165
+ size: "sml",
5166
+ class: v(["remove-button", i.removeButtonIndentation]),
5167
+ title: t.removableTooltip,
5168
+ "aria-label": t.removableTooltip
5169
+ }, null, 8, ["class", "title", "aria-label"])) : u("", !0),
5170
+ f("h3", {
5171
+ onClick: s[1] || (s[1] = (...g) => i.toggleCollapse && i.toggleCollapse(...g)),
5172
+ onKeydown: s[2] || (s[2] = G(U((...g) => i.toggleCollapse && i.toggleCollapse(...g), ["prevent"]), ["space"])),
5173
+ role: "button",
5174
+ class: v(["ecs-collapsable-headline", [t.headlineBold ? "ecs-headline-section-bold" : "ecs-headline-section", n.isVisible ? "" : "collapsed"]]),
5175
+ tabindex: "0",
5176
+ "aria-expanded": n.isVisible ? "true" : "false",
5177
+ "aria-controls": `collapse-${this.id}`
5178
+ }, [
5179
+ b(c, { gap: 4 }, {
5180
+ default: w(() => [
5181
+ D(x(t.title) + " ", 1),
5182
+ t.count ? (o(), l("span", Rr, "(" + x(t.count) + ")", 1)) : u("", !0)
5183
+ ]),
5184
+ _: 1
5185
+ }),
5186
+ b(d, {
5187
+ inset: 0,
5188
+ radius: 0
5189
+ }),
5190
+ e.$slots.controls ? (o(), l("div", Vr, [
5191
+ m(e.$slots, "controls", {}, void 0, !0)
5192
+ ])) : u("", !0)
5193
+ ], 42, Fr)
5194
+ ]),
5195
+ f("div", {
5196
+ class: v([n.isVisible ? "collapse-show" : "collapse-hide", "collapse"]),
5197
+ id: `collapse-${this.id}`,
5198
+ "aria-hidden": n.isVisible ? "false" : "true"
5199
+ }, [
5200
+ f("div", {
5201
+ class: v(["ecs-collapsable-content", i.contentPaddingClass])
5202
+ }, [
5203
+ m(e.$slots, "default", {}, void 0, !0)
5204
+ ], 2)
5205
+ ], 10, Hr)
5206
+ ], 2);
5207
+ }
5208
+ const By = /* @__PURE__ */ _(Nr, [["render", qr], ["__scopeId", "data-v-4bf981c8"]]);
5209
+ const Wr = {
5210
+ name: "ecs-collection-control",
5211
+ emits: ["toggled", "collectionTooltip"],
5212
+ components: { EcsIcon: M, EcsFocusRing: L },
5213
+ mixins: [de],
5214
+ props: {
5215
+ /** Icon representing the type of selection. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
5216
+ icon: {
5217
+ type: String
5218
+ },
5219
+ /** The size of the collection control. */
5220
+ size: {
5221
+ type: String,
5222
+ validator: (e) => ["md", "lg"].includes(e),
5223
+ default: "lg"
5224
+ },
5225
+ /** If set to true, the control will appear expanded by default. */
5226
+ visible: {
5227
+ type: Boolean,
5228
+ default: !1
5229
+ },
5230
+ /** The label that describes the type of selected objects. E.g. "Users: " */
5231
+ label: {
5232
+ type: String
5233
+ },
5234
+ /** Option to disable the outer borders of the control. */
5235
+ noBorder: {
5236
+ type: Boolean,
5237
+ default: !1
5238
+ },
5239
+ /** Array of the currently selected objects. Must contain `name` and `value` for each object. */
5240
+ collection: {
5241
+ type: Array,
5242
+ required: !0
5243
+ },
5244
+ /** Optional maximum height of the object list in pixels. If the list exceeds the maximum height, a scrollbar appears. */
5245
+ maxHeight: {
5246
+ type: Number,
5247
+ default: null
5248
+ },
5249
+ /** Makes the control non-interactive and removes all checkboxes from the list items. */
5250
+ nonInteractive: {
5251
+ type: Boolean,
5252
+ default: !1
5253
+ }
5254
+ },
5255
+ data() {
5256
+ return {
5257
+ isVisible: this.visible,
5258
+ expandId: ""
5259
+ };
5260
+ },
5261
+ computed: {
5262
+ iconSize() {
5263
+ return this.size === "md" ? "24px" : "30px";
5264
+ },
5265
+ fullTooltip() {
5266
+ return this.collection.filter((s) => s.value).map((s) => s.name).join(", ");
5267
+ },
5268
+ listMaxHeight() {
5269
+ return this.maxHeight ? `max-height: ${this.maxHeight}px` : null;
5270
+ }
5271
+ },
5272
+ methods: {
5273
+ toggleCollapse() {
5274
+ this.nonInteractive || (this.isVisible = !this.isVisible), this.$emit("toggled", this.id, this.isVisible);
5275
+ },
5276
+ toggleTooltip() {
5277
+ this.$emit("collectionTooltip", this.fullTooltip);
5278
+ }
5279
+ },
5280
+ watch: {
5281
+ visible() {
5282
+ this.isVisible = this.visible;
5283
+ }
5284
+ },
5285
+ created() {
5286
+ this.expandId = this.generateUniqueId();
5287
+ }
5288
+ }, jr = ["tabindex", "role", "aria-expanded", "aria-controls"], Ur = {
5289
+ key: 1,
5290
+ class: "description"
5291
+ }, Gr = ["title"], Kr = { key: 0 }, Yr = ["id", "aria-hidden"];
5292
+ function Xr(e, s, t, a, n, i) {
5293
+ const r = p("ecs-focus-ring"), c = p("ecs-icon");
5294
+ return o(), l("div", {
5295
+ class: v(["ecs-collection-control", [
5296
+ t.noBorder ? "" : "bordered",
5297
+ n.isVisible || t.nonInteractive ? "" : "collapsed",
5298
+ t.size
5299
+ ]])
5300
+ }, [
5301
+ f("div", {
5302
+ onClick: s[2] || (s[2] = (...d) => i.toggleCollapse && i.toggleCollapse(...d)),
5303
+ onKeydown: [
5304
+ s[3] || (s[3] = G(U((...d) => i.toggleCollapse && i.toggleCollapse(...d), ["prevent"]), ["enter"])),
5305
+ s[4] || (s[4] = G(U((...d) => i.toggleCollapse && i.toggleCollapse(...d), ["prevent"]), ["space"]))
5306
+ ],
5307
+ class: v(["ecs-collection-control-header", [
5308
+ n.isVisible || t.nonInteractive ? "" : "collapsed",
5309
+ t.nonInteractive ? "" : "interactive"
5310
+ ]]),
5311
+ tabindex: t.nonInteractive ? "-1" : "0",
5312
+ role: t.nonInteractive ? !1 : "button",
5313
+ "aria-expanded": t.nonInteractive ? "false" : n.isVisible ? "true" : "false",
5314
+ "aria-controls": t.nonInteractive ? !1 : n.expandId
5315
+ }, [
5316
+ b(r),
5317
+ t.icon ? (o(), y(c, {
5318
+ key: 0,
5319
+ type: t.icon,
5320
+ color: "#858E9E",
5321
+ size: i.iconSize
5322
+ }, null, 8, ["type", "size"])) : u("", !0),
5323
+ t.label ? (o(), l("div", Ur, x(t.label), 1)) : u("", !0),
5324
+ f("div", {
5325
+ class: "collection",
5326
+ onMouseover: s[0] || (s[0] = (...d) => i.toggleTooltip && i.toggleTooltip(...d)),
5327
+ onMouseleave: s[1] || (s[1] = (...d) => i.toggleTooltip && i.toggleTooltip(...d)),
5328
+ title: i.fullTooltip
5329
+ }, [
5330
+ (o(!0), l(Z, null, ge(t.collection, (d) => (o(), l("span", {
5331
+ key: d.name
5332
+ }, [
5333
+ d.value ? (o(), l("span", Kr, x(d.name), 1)) : u("", !0)
5334
+ ]))), 128))
5335
+ ], 40, Gr)
5336
+ ], 42, jr),
5337
+ f("div", {
5338
+ class: v([n.isVisible || t.nonInteractive ? "collapse-show" : "collapse-hide", "collapse"]),
5339
+ id: t.nonInteractive ? !1 : n.expandId,
5340
+ "aria-hidden": n.isVisible ? "false" : "true"
5341
+ }, [
5342
+ f("div", {
5343
+ class: "ecs-collection-control-list scrollbar scrollbar-sml",
5344
+ style: B(i.listMaxHeight)
5345
+ }, [
5346
+ m(e.$slots, "default")
5347
+ ], 4)
5348
+ ], 10, Yr)
5349
+ ], 2);
5350
+ }
5351
+ const zy = /* @__PURE__ */ _(Wr, [["render", Xr], ["__scopeId", "data-v-5e5716bc"]]);
5352
+ const Zr = {
5353
+ name: "ecs-skeleton-loader",
5354
+ props: {
5355
+ /** Determines the type of skeleton shape: `single` replicates a single line of text, `multi` a multi line text, and `rect` a generic rectangle shape. */
5356
+ type: {
5357
+ type: String,
5358
+ validator: (e) => ["single", "multi", "rect", "circle"].includes(e),
5359
+ default: "single"
5360
+ },
5361
+ /** Only used together with the `multi` type. Determines the amount of text lines. */
5362
+ count: {
5363
+ type: Number,
5364
+ default: 3
5365
+ },
5366
+ /** Sets the width of the `single` type in percentage. Sets the width of the `rect` type in pixels. */
5367
+ width: {
5368
+ type: Number,
5369
+ default: 20
5370
+ },
5371
+ /** Sets the height of the `rect` and `circle` type in pixels. */
5372
+ height: {
5373
+ type: Number,
5374
+ default: 20
5375
+ },
5376
+ /** Aligns the height and size of the single & multi types with our common line-height type scales. */
5377
+ lineHeight: {
5378
+ type: Number,
5379
+ validator: (e) => [1, 2, 3, 4, 5, 6].includes(e),
5380
+ default: 2
5381
+ }
5382
+ },
5383
+ computed: {
5384
+ rectClass() {
5385
+ return this.type && this.type !== "" ? `skeleton-${this.type}` : this.type;
5386
+ }
5387
+ }
5388
+ }, Jr = (e) => (ve("data-v-75354c78"), e = e(), _e(), e), Qr = {
5389
+ key: 1,
5390
+ class: "ecs-skeleton skeletons"
5391
+ }, el = /* @__PURE__ */ Jr(() => /* @__PURE__ */ f("div", { class: "skeleton skeleton-single" }, null, -1)), tl = [
5392
+ el
5393
+ ];
5394
+ function sl(e, s, t, a, n, i) {
5395
+ return t.type === "rect" || t.type === "circle" ? (o(), l("div", {
5396
+ key: 0,
5397
+ class: v(["ecs-skeleton skeleton", i.rectClass]),
5398
+ style: B({ width: t.width + "px", height: t.height + "px" })
5399
+ }, null, 6)) : t.type === "multi" ? (o(), l("div", Qr, [
5400
+ (o(!0), l(Z, null, ge(parseInt(t.count), (r) => (o(), l("div", {
5401
+ key: r,
5402
+ class: v(["skeleton-wrap", "skeleton-line-height-" + t.lineHeight])
5403
+ }, tl, 2))), 128))
5404
+ ])) : (o(), l("div", {
5405
+ key: 2,
5406
+ class: v(["ecs-skeleton skeleton-wrap", "skeleton-line-height-" + t.lineHeight])
5407
+ }, [
5408
+ f("div", {
5409
+ class: "skeleton skeleton-single",
5410
+ style: B({ width: t.width + "%" })
5411
+ }, null, 4)
5412
+ ], 2));
5413
+ }
5414
+ const Ce = /* @__PURE__ */ _(Zr, [["render", sl], ["__scopeId", "data-v-75354c78"]]);
5415
+ const il = {
5416
+ name: "ecs-formatted",
5417
+ components: { EcsSkeletonLoader: Ce },
5418
+ mixins: [de],
5419
+ props: {
5420
+ /** Sets the general font size of the formatted text component to small. */
5421
+ small: {
5422
+ type: Boolean,
5423
+ default: !1
5424
+ },
5425
+ /** Turns the formatted text component into a skeleton loader. */
5426
+ loading: {
5427
+ type: Boolean,
5428
+ default: !1
5429
+ },
5430
+ /** Used to customize the line count of the skeleton loader. */
5431
+ skeletonCount: {
5432
+ type: Number,
5433
+ default: 4
5434
+ }
5435
+ },
5436
+ created() {
5437
+ this.formattedId = this.generateUniqueId();
5438
+ },
5439
+ mounted() {
5440
+ this.$el.querySelectorAll(`#${this.formattedId} a`).forEach((s) => {
5441
+ const t = s.getAttribute("href");
5442
+ s.setAttribute("title", `Open ${t}`);
5443
+ });
5444
+ }
5445
+ }, nl = ["id"];
5446
+ function al(e, s, t, a, n, i) {
5447
+ const r = p("ecs-skeleton-loader");
5448
+ return o(), l("div", {
5449
+ class: v(["ecs-formatted", [t.small ? "ecs-formatted-sml" : ""]]),
5450
+ id: e.formattedId
5451
+ }, [
5452
+ t.loading ? (o(), y(r, {
5453
+ key: 1,
5454
+ type: "multi",
5455
+ "line-height": t.small ? 1 : 2,
5456
+ count: t.skeletonCount
5457
+ }, null, 8, ["line-height", "count"])) : m(e.$slots, "default", {
5458
+ key: 0,
5459
+ ref: "slot"
5460
+ })
5461
+ ], 10, nl);
5504
5462
  }
5505
- function _l(e) {
5506
- e = e.replace(Xr, "").replace(Zr, "").toLowerCase();
5507
- var s = !1;
5508
- if ($t[e])
5509
- e = $t[e], s = !0;
5510
- else if (e == "transparent")
5511
- return {
5512
- r: 0,
5513
- g: 0,
5514
- b: 0,
5515
- a: 0,
5516
- format: "name"
5517
- };
5518
- var t;
5519
- return (t = fe.rgb.exec(e)) ? {
5520
- r: t[1],
5521
- g: t[2],
5522
- b: t[3]
5523
- } : (t = fe.rgba.exec(e)) ? {
5524
- r: t[1],
5525
- g: t[2],
5526
- b: t[3],
5527
- a: t[4]
5528
- } : (t = fe.hsl.exec(e)) ? {
5529
- h: t[1],
5530
- s: t[2],
5531
- l: t[3]
5532
- } : (t = fe.hsla.exec(e)) ? {
5533
- h: t[1],
5534
- s: t[2],
5535
- l: t[3],
5536
- a: t[4]
5537
- } : (t = fe.hsv.exec(e)) ? {
5538
- h: t[1],
5539
- s: t[2],
5540
- v: t[3]
5541
- } : (t = fe.hsva.exec(e)) ? {
5542
- h: t[1],
5543
- s: t[2],
5544
- v: t[3],
5545
- a: t[4]
5546
- } : (t = fe.hex8.exec(e)) ? {
5547
- r: se(t[1]),
5548
- g: se(t[2]),
5549
- b: se(t[3]),
5550
- a: fs(t[4]),
5551
- format: s ? "name" : "hex8"
5552
- } : (t = fe.hex6.exec(e)) ? {
5553
- r: se(t[1]),
5554
- g: se(t[2]),
5555
- b: se(t[3]),
5556
- format: s ? "name" : "hex"
5557
- } : (t = fe.hex4.exec(e)) ? {
5558
- r: se(t[1] + "" + t[1]),
5559
- g: se(t[2] + "" + t[2]),
5560
- b: se(t[3] + "" + t[3]),
5561
- a: fs(t[4] + "" + t[4]),
5562
- format: s ? "name" : "hex8"
5563
- } : (t = fe.hex3.exec(e)) ? {
5564
- r: se(t[1] + "" + t[1]),
5565
- g: se(t[2] + "" + t[2]),
5566
- b: se(t[3] + "" + t[3]),
5567
- format: s ? "name" : "hex"
5568
- } : !1;
5463
+ const Rs = /* @__PURE__ */ _(il, [["render", al]]);
5464
+ const ol = {
5465
+ name: "ecs-comment",
5466
+ emits: ["edit", "delete"],
5467
+ components: { EcsAvatar: Mi, EcsButton: Se, EcsFormatted: Rs, EcsSkeletonLoader: Ce },
5468
+ props: {
5469
+ /** Name of the user that is the comment author. */
5470
+ userName: {
5471
+ type: String,
5472
+ required: !0
5473
+ },
5474
+ /** Avatar image of the user that is the comment author. */
5475
+ userImage: {
5476
+ type: String,
5477
+ default: null
5478
+ },
5479
+ /** Determines if controls to edit or delete the comment should be available. */
5480
+ canEdit: {
5481
+ type: Boolean,
5482
+ default: !1
5483
+ },
5484
+ /** Shows the whole comment in skeleton loading state. */
5485
+ loading: {
5486
+ type: Boolean,
5487
+ default: !1
5488
+ }
5489
+ }
5490
+ }, rl = ["aria-busy"], ll = { class: "ecs-comment-header" }, cl = { class: "ecs-comment-autor" }, dl = {
5491
+ key: 2,
5492
+ class: "ecs-comment-meta"
5493
+ }, ul = { class: "ecs-comment-meta-name" }, fl = { class: "ecs-comment-meta-time" }, pl = {
5494
+ key: 3,
5495
+ class: "ecs-comment-meta loading"
5496
+ }, gl = {
5497
+ key: 0,
5498
+ class: "ecs-comment-actions"
5499
+ }, ml = {
5500
+ key: 2,
5501
+ class: "ecs-comment-edit"
5502
+ };
5503
+ function hl(e, s, t, a, n, i) {
5504
+ const r = p("ecs-skeleton-loader"), c = p("ecs-avatar"), d = p("ecs-button"), g = p("ecs-formatted");
5505
+ return o(), l("div", {
5506
+ class: "ecs-comment",
5507
+ role: "comment",
5508
+ "aria-busy": t.loading || null
5509
+ }, [
5510
+ f("div", ll, [
5511
+ f("div", cl, [
5512
+ t.loading ? (o(), y(r, {
5513
+ key: 0,
5514
+ type: "circle",
5515
+ width: 32,
5516
+ height: 32
5517
+ })) : (o(), y(c, {
5518
+ key: 1,
5519
+ name: t.userName,
5520
+ image: t.userImage,
5521
+ size: 32,
5522
+ rounded: ""
5523
+ }, null, 8, ["name", "image"])),
5524
+ t.loading ? (o(), l("div", pl, [
5525
+ b(r, {
5526
+ type: "single",
5527
+ "line-height": 3,
5528
+ width: 50
5529
+ }),
5530
+ b(r, {
5531
+ type: "single",
5532
+ "line-height": 2,
5533
+ width: 60
5534
+ })
5535
+ ])) : (o(), l("div", dl, [
5536
+ f("span", ul, x(t.userName), 1),
5537
+ f("span", fl, [
5538
+ m(e.$slots, "commentdate", {}, void 0, !0)
5539
+ ])
5540
+ ]))
5541
+ ]),
5542
+ t.canEdit ? (o(), l("div", gl, [
5543
+ b(d, {
5544
+ onClick: s[0] || (s[0] = (h) => e.$emit("edit", h)),
5545
+ type: "secondary",
5546
+ size: "sml",
5547
+ icon: "edit",
5548
+ "icon-only": "",
5549
+ title: "Edit Comment"
5550
+ }),
5551
+ b(d, {
5552
+ onClick: s[1] || (s[1] = (h) => e.$emit("delete", h)),
5553
+ type: "danger",
5554
+ size: "sml",
5555
+ icon: "delete",
5556
+ "icon-only": "",
5557
+ title: "Delete Comment"
5558
+ })
5559
+ ])) : u("", !0)
5560
+ ]),
5561
+ !e.$slots.editform && !t.loading ? (o(), y(g, {
5562
+ key: 0,
5563
+ class: "ecs-comment-body"
5564
+ }, {
5565
+ default: w(() => [
5566
+ m(e.$slots, "default", {}, void 0, !0)
5567
+ ]),
5568
+ _: 3
5569
+ })) : t.loading ? (o(), y(r, {
5570
+ key: 1,
5571
+ type: "multi",
5572
+ count: 2,
5573
+ class: "ecs-comment-body"
5574
+ })) : (o(), l("div", ml, [
5575
+ m(e.$slots, "editform", {}, void 0, !0)
5576
+ ]))
5577
+ ], 8, rl);
5569
5578
  }
5570
- function yl(e) {
5571
- var s, t;
5572
- return e = e || {
5573
- level: "AA",
5574
- size: "small"
5575
- }, s = (e.level || "AA").toUpperCase(), t = (e.size || "small").toLowerCase(), s !== "AA" && s !== "AAA" && (s = "AA"), t !== "small" && t !== "large" && (t = "small"), {
5576
- level: s,
5577
- size: t
5578
- };
5579
+ const Iy = /* @__PURE__ */ _(ol, [["render", hl], ["__scopeId", "data-v-cf696f66"]]);
5580
+ const vl = {}, _l = { class: "ecs-comment-list" };
5581
+ function yl(e, s) {
5582
+ return o(), l("div", _l, [
5583
+ m(e.$slots, "default")
5584
+ ]);
5579
5585
  }
5580
- function wt(e = {}, s = 0) {
5586
+ const Ey = /* @__PURE__ */ _(vl, [["render", yl]]);
5587
+ function St(e = {}, s = 0) {
5581
5588
  const t = e && e.a;
5582
5589
  let a;
5583
5590
  e && e.hsl ? a = S(e.hsl) : e && e.hex && e.hex.length > 0 ? a = S(e.hex) : e && e.hsv ? a = S(e.hsv) : e && e.rgba ? a = S(e.rgba) : e && e.rgb ? a = S(e.rgb) : a = S(e), a && (a._a === void 0 || a._a === null) && a.setAlpha(t || 1);
@@ -5597,7 +5604,7 @@ const bl = {
5597
5604
  props: ["modelValue"],
5598
5605
  data() {
5599
5606
  return {
5600
- val: wt(this.modelValue)
5607
+ val: St(this.modelValue)
5601
5608
  };
5602
5609
  },
5603
5610
  computed: {
@@ -5612,12 +5619,12 @@ const bl = {
5612
5619
  },
5613
5620
  watch: {
5614
5621
  modelValue(e) {
5615
- this.val = wt(e);
5622
+ this.val = St(e);
5616
5623
  }
5617
5624
  },
5618
5625
  methods: {
5619
5626
  colorChange(e, s) {
5620
- this.oldHue = this.colors.hsl.h, this.colors = wt(e, s || this.oldHue);
5627
+ this.oldHue = this.colors.hsl.h, this.colors = St(e, s || this.oldHue);
5621
5628
  },
5622
5629
  isValidHex(e) {
5623
5630
  return S(e).isValid();
@@ -5704,7 +5711,7 @@ const kl = {
5704
5711
  }, xl = { class: "ecs-editable-input" }, wl = ["aria-labelledby"], Sl = ["for", "id"], Cl = { class: "ecs-input__desc" };
5705
5712
  function Bl(e, s, t, a, n, i) {
5706
5713
  return o(), l("div", xl, [
5707
- Ge(f("input", {
5714
+ Ue(f("input", {
5708
5715
  "aria-labelledby": i.labelId,
5709
5716
  class: "ecs-input__input",
5710
5717
  "onUpdate:modelValue": s[0] || (s[0] = (r) => i.val = r),
@@ -5727,7 +5734,7 @@ var Il = El;
5727
5734
  function El(e, s, t) {
5728
5735
  return s < t ? e < s ? s : e > t ? t : e : e < t ? t : e > s ? s : e;
5729
5736
  }
5730
- const St = /* @__PURE__ */ xs(Il);
5737
+ const ct = /* @__PURE__ */ xs(Il);
5731
5738
  function $l(e) {
5732
5739
  var s = typeof e;
5733
5740
  return e != null && (s == "object" || s == "function");
@@ -5744,7 +5751,7 @@ var Vl = Rl, Hl = Vl, ql = /^\s+/;
5744
5751
  function Wl(e) {
5745
5752
  return e && e.slice(0, Hl(e) + 1).replace(ql, "");
5746
5753
  }
5747
- var jl = Wl, Gl = Vs, Ul = Gl.Symbol, Hs = Ul, ps = Hs, qs = Object.prototype, Kl = qs.hasOwnProperty, Yl = qs.toString, Xe = ps ? ps.toStringTag : void 0;
5754
+ var jl = Wl, Ul = Vs, Gl = Ul.Symbol, Hs = Gl, ps = Hs, qs = Object.prototype, Kl = qs.hasOwnProperty, Yl = qs.toString, Xe = ps ? ps.toStringTag : void 0;
5748
5755
  function Xl(e) {
5749
5756
  var s = Kl.call(e, Xe), t = e[Xe];
5750
5757
  try {
@@ -5851,7 +5858,8 @@ const Lc = /* @__PURE__ */ xs(Mc);
5851
5858
  const Oc = {
5852
5859
  name: "Saturation",
5853
5860
  props: {
5854
- modelValue: Object
5861
+ modelValue: Object,
5862
+ preventUnusable: Boolean
5855
5863
  },
5856
5864
  computed: {
5857
5865
  colors() {
@@ -5883,7 +5891,7 @@ const Oc = {
5883
5891
  const t = this.$refs.container;
5884
5892
  if (!t)
5885
5893
  return;
5886
- const a = t.clientWidth, n = t.clientHeight, i = t.getBoundingClientRect().left + window.pageXOffset, r = t.getBoundingClientRect().top + window.pageYOffset, c = e.pageX || (e.touches ? e.touches[0].pageX : 0), d = e.pageY || (e.touches ? e.touches[0].pageY : 0), g = St(c - i, 0, a), h = St(d - r, 0, n), k = g / a, z = St(-(h / n) + 1, 0, 1);
5894
+ const a = t.clientWidth, n = t.clientHeight, i = t.getBoundingClientRect().left + window.pageXOffset, r = t.getBoundingClientRect().top + window.pageYOffset, c = e.pageX || (e.touches ? e.touches[0].pageX : 0), d = e.pageY || (e.touches ? e.touches[0].pageY : 0), g = ct(c - i, 0, a), h = this.preventUnusable ? ct(d - r, n * 0.1, n * 0.85) : ct(d - r, 0, n), k = g / a, z = ct(-(h / n) + 1, 0, 1);
5887
5895
  this.throttle(this.onChange, {
5888
5896
  h: this.colors.hsv.h,
5889
5897
  s: k,
@@ -5995,7 +6003,7 @@ const Hc = {
5995
6003
  }, qc = ["aria-valuenow"], Wc = /* @__PURE__ */ f("div", { class: "ecs-hue-picker" }, null, -1), jc = [
5996
6004
  Wc
5997
6005
  ];
5998
- function Gc(e, s, t, a, n, i) {
6006
+ function Uc(e, s, t, a, n, i) {
5999
6007
  return o(), l("div", {
6000
6008
  class: v(["ecs-hue", i.directionClass])
6001
6009
  }, [
@@ -6018,7 +6026,7 @@ function Gc(e, s, t, a, n, i) {
6018
6026
  ], 40, qc)
6019
6027
  ], 2);
6020
6028
  }
6021
- const Uc = /* @__PURE__ */ _(Hc, [["render", Gc]]);
6029
+ const Gc = /* @__PURE__ */ _(Hc, [["render", Uc]]);
6022
6030
  const Bt = {}, Kc = {
6023
6031
  name: "Checkboard",
6024
6032
  props: {
@@ -6144,7 +6152,7 @@ const ad = {
6144
6152
  mixins: [bl],
6145
6153
  components: {
6146
6154
  saturation: Vc,
6147
- hue: Uc,
6155
+ hue: Gc,
6148
6156
  alpha: nd,
6149
6157
  "ed-in": zl,
6150
6158
  checkboard: Ws
@@ -6175,6 +6183,11 @@ const ad = {
6175
6183
  padding: {
6176
6184
  type: Number,
6177
6185
  default: 0
6186
+ },
6187
+ /** Prevents the user from selecting a color that is too bright or too dark. It will only block the selection on the saturation drag field, a user can still enter a value via the fields (consider disabling the field), or a preset swatch. */
6188
+ preventUnusableColors: {
6189
+ type: Boolean,
6190
+ default: !1
6178
6191
  }
6179
6192
  },
6180
6193
  computed: {
@@ -6242,8 +6255,9 @@ function yd(e, s, t, a, n, i) {
6242
6255
  b(r, {
6243
6256
  modelValue: e.colors,
6244
6257
  "onUpdate:modelValue": s[0] || (s[0] = (k) => e.colors = k),
6245
- onChange: i.childChange
6246
- }, null, 8, ["modelValue", "onChange"])
6258
+ onChange: i.childChange,
6259
+ "prevent-unusable": t.preventUnusableColors
6260
+ }, null, 8, ["modelValue", "onChange", "prevent-unusable"])
6247
6261
  ])),
6248
6262
  t.disableCustom ? u("", !0) : (o(), l("div", rd, [
6249
6263
  f("div", ld, [
@@ -6374,6 +6388,11 @@ const kd = {
6374
6388
  disableCustom: {
6375
6389
  type: Boolean,
6376
6390
  default: !1
6391
+ },
6392
+ /** Prevents the user from selecting a color that is too bright or too dark. It will only block the selection on the saturation drag field, a user can still enter a value via the fields (consider disabling the field), or a preset swatch. */
6393
+ preventUnusableColors: {
6394
+ type: Boolean,
6395
+ default: !1
6377
6396
  }
6378
6397
  },
6379
6398
  computed: {
@@ -6398,8 +6417,9 @@ function xd(e, s, t, a, n, i) {
6398
6417
  padding: 16,
6399
6418
  disableAlpha: t.disableAlpha,
6400
6419
  disableFields: t.disableFields,
6401
- disableCustom: t.disableCustom
6402
- }, null, 8, ["modelValue", "swatches", "disableAlpha", "disableFields", "disableCustom"])
6420
+ disableCustom: t.disableCustom,
6421
+ preventUnusableColors: t.preventUnusableColors
6422
+ }, null, 8, ["modelValue", "swatches", "disableAlpha", "disableFields", "disableCustom", "preventUnusableColors"])
6403
6423
  ]),
6404
6424
  default: w(() => [
6405
6425
  f("button", {
@@ -6412,10 +6432,10 @@ function xd(e, s, t, a, n, i) {
6412
6432
  _: 1
6413
6433
  });
6414
6434
  }
6415
- const $y = /* @__PURE__ */ _(kd, [["render", xd], ["__scopeId", "data-v-d6450b05"]]);
6435
+ const $y = /* @__PURE__ */ _(kd, [["render", xd], ["__scopeId", "data-v-7132cbfc"]]);
6416
6436
  const wd = {
6417
6437
  name: "ecs-data-card",
6418
- components: { EcsIcon: M, EcsSkeletonLoader: Ce, EcsButtonTable: Ns, EcsButton: Se, EcsFocusRing: L },
6438
+ components: { EcsIcon: M, EcsSkeletonLoader: Ce, EcsButtonTable: Fs, EcsButton: Se, EcsFocusRing: L },
6419
6439
  mixins: [de],
6420
6440
  props: {
6421
6441
  /** If passed, an icon will be displayed in the data card. The icon prop must match a specific icons name. The list of available icon names can be found [here](https://github.com/everchron/ec-shards/tree/main/src/assets/icons). */
@@ -6589,7 +6609,7 @@ function Od(e, s, t, a, n, i) {
6589
6609
  }, null, 8, ["width"])) : u("", !0)
6590
6610
  ])
6591
6611
  ])) : u("", !0),
6592
- e.$slots.expand ? Ge((o(), l("div", {
6612
+ e.$slots.expand ? Ue((o(), l("div", {
6593
6613
  key: 1,
6594
6614
  id: n.expandId,
6595
6615
  "aria-hidden": n.isExpanded ? "false" : "true",
@@ -6599,7 +6619,7 @@ function Od(e, s, t, a, n, i) {
6599
6619
  m(e.$slots, "expand", {}, void 0, !0)
6600
6620
  ])
6601
6621
  ], 8, Md)), [
6602
- [ft, n.isExpanded]
6622
+ [pt, n.isExpanded]
6603
6623
  ]) : u("", !0)
6604
6624
  ]),
6605
6625
  t.hover ? (o(), y(h, {
@@ -6740,11 +6760,11 @@ const jd = {
6740
6760
  beforeUnmount() {
6741
6761
  this.mouseEvent && this.$refs.grid_row.removeEventListener(this.mouseEvent, this.handleRowClick);
6742
6762
  }
6743
- }, Gd = {
6763
+ }, Ud = {
6744
6764
  key: 1,
6745
6765
  class: "ecs-data-grid-row-block"
6746
6766
  };
6747
- function Ud(e, s, t, a, n, i) {
6767
+ function Gd(e, s, t, a, n, i) {
6748
6768
  return o(), l("div", {
6749
6769
  class: v(["ecs-data-grid-row", [t.state, t.type == "header" ? "header-row" : "", t.mouseEvent === "click" || t.clickable === !0 ? "clickable" : ""]]),
6750
6770
  ref: "grid_row",
@@ -6755,11 +6775,11 @@ function Ud(e, s, t, a, n, i) {
6755
6775
  onClick: s[0] || (s[0] = (...r) => i.handleDropzoneClick && i.handleDropzoneClick(...r)),
6756
6776
  class: "ecs-data-grid-row-drop-zone"
6757
6777
  })) : u("", !0),
6758
- t.state == "disabled" ? (o(), l("div", Gd)) : u("", !0),
6778
+ t.state == "disabled" ? (o(), l("div", Ud)) : u("", !0),
6759
6779
  m(e.$slots, "default", {}, void 0, !0)
6760
6780
  ], 2);
6761
6781
  }
6762
- const Kd = /* @__PURE__ */ _(jd, [["render", Ud], ["__scopeId", "data-v-16b82e41"]]);
6782
+ const Kd = /* @__PURE__ */ _(jd, [["render", Gd], ["__scopeId", "data-v-16b82e41"]]);
6763
6783
  const Yd = {
6764
6784
  name: "ecs-data-grid-row-group",
6765
6785
  components: {
@@ -7287,14 +7307,14 @@ const _u = {
7287
7307
  }
7288
7308
  }, yu = ["aria-labeled-by"];
7289
7309
  function bu(e, s, t, a, n, i) {
7290
- return Ge((o(), l("div", {
7310
+ return Ue((o(), l("div", {
7291
7311
  class: "ecs-data-grid-group",
7292
7312
  role: "tabpanel",
7293
7313
  "aria-labeled-by": t.ariaLabeledBy
7294
7314
  }, [
7295
7315
  t.show ? m(e.$slots, "default", { key: 0 }, void 0, !0) : u("", !0)
7296
7316
  ], 8, yu)), [
7297
- [ft, t.show]
7317
+ [pt, t.show]
7298
7318
  ]);
7299
7319
  }
7300
7320
  const Ay = /* @__PURE__ */ _(_u, [["render", bu], ["__scopeId", "data-v-ee025ab5"]]);
@@ -7479,7 +7499,7 @@ const Dy = /* @__PURE__ */ _(zu, [["render", Eu]]);
7479
7499
  const $u = {
7480
7500
  name: "ecs-data-list-item",
7481
7501
  emits: ["toggled"],
7482
- components: { EcsButtonMore: As, EcsSkeletonLoader: Ce },
7502
+ components: { EcsButtonMore: Ds, EcsSkeletonLoader: Ce },
7483
7503
  mixins: [de],
7484
7504
  props: {
7485
7505
  /** The label that shows up to the left of the list item. Usually describes the content to the left, e.g.: "Type", "Profiles", etc. */
@@ -7713,7 +7733,7 @@ function Du(e, s, t, a, n, i) {
7713
7733
  key: 0,
7714
7734
  ref: "dialog",
7715
7735
  class: v(["ecs-dialog-" + t.size, "ecs-dialog"]),
7716
- onKeydown: s[0] || (s[0] = U((...r) => i.handleEnterKey && i.handleEnterKey(...r), ["enter"]))
7736
+ onKeydown: s[0] || (s[0] = G((...r) => i.handleEnterKey && i.handleEnterKey(...r), ["enter"]))
7717
7737
  }, [
7718
7738
  f("div", Nu, [
7719
7739
  m(e.$slots, "default")
@@ -7882,7 +7902,7 @@ const Vy = /* @__PURE__ */ _(Vu, [["render", Wu], ["__scopeId", "data-v-6e05c98b
7882
7902
  }, null, 8, ["alt"]));
7883
7903
  }
7884
7904
  };
7885
- const Gu = {
7905
+ const Uu = {
7886
7906
  name: "ecs-directory-entry",
7887
7907
  components: {
7888
7908
  EcsIcon: M,
@@ -7905,10 +7925,10 @@ const Gu = {
7905
7925
  mounted() {
7906
7926
  !this.icon && !this.favicon && console.warn("Icon or Favicon prop is required for ecs-directory-entry component");
7907
7927
  }
7908
- }, Uu = { class: "ecs-directory-entry" }, Ku = { class: "items" };
7928
+ }, Gu = { class: "ecs-directory-entry" }, Ku = { class: "items" };
7909
7929
  function Yu(e, s, t, a, n, i) {
7910
7930
  const r = p("ecs-icon"), c = p("ecs-favicon");
7911
- return o(), l("div", Uu, [
7931
+ return o(), l("div", Gu, [
7912
7932
  t.icon ? (o(), y(r, {
7913
7933
  key: 0,
7914
7934
  type: t.icon,
@@ -7927,7 +7947,7 @@ function Yu(e, s, t, a, n, i) {
7927
7947
  ])
7928
7948
  ]);
7929
7949
  }
7930
- const Hy = /* @__PURE__ */ _(Gu, [["render", Yu], ["__scopeId", "data-v-800f5f8e"]]);
7950
+ const Hy = /* @__PURE__ */ _(Uu, [["render", Yu], ["__scopeId", "data-v-800f5f8e"]]);
7931
7951
  const Xu = {
7932
7952
  name: "ecs-document-state",
7933
7953
  components: {
@@ -8363,7 +8383,7 @@ function If(e, s, t, a, n, i) {
8363
8383
  onDragover: s[3] || (s[3] = (...C) => i.handleDragOver && i.handleDragOver(...C)),
8364
8384
  onDragenter: s[4] || (s[4] = (...C) => i.handleDragEnter && i.handleDragEnter(...C)),
8365
8385
  onDragleave: s[5] || (s[5] = (...C) => i.handleDragLeave && i.handleDragLeave(...C)),
8366
- onDrop: s[6] || (s[6] = G((...C) => i.drop && i.drop(...C), ["prevent"])),
8386
+ onDrop: s[6] || (s[6] = U((...C) => i.drop && i.drop(...C), ["prevent"])),
8367
8387
  "aria-busy": i.isBusy || null,
8368
8388
  "aria-invalid": t.error || null
8369
8389
  }, [
@@ -8388,7 +8408,7 @@ function If(e, s, t, a, n, i) {
8388
8408
  D(" Drag and drop your " + x(t.fileTypeLabel) + " or ", 1),
8389
8409
  f("i", {
8390
8410
  onClick: s[1] || (s[1] = (...C) => i.browseFile && i.browseFile(...C)),
8391
- onKeydown: s[2] || (s[2] = U((...C) => i.browseFile && i.browseFile(...C), ["enter"])),
8411
+ onKeydown: s[2] || (s[2] = G((...C) => i.browseFile && i.browseFile(...C), ["enter"])),
8392
8412
  tabindex: "0"
8393
8413
  }, [
8394
8414
  D("browse"),
@@ -8476,7 +8496,7 @@ const Ef = {
8476
8496
  components: {
8477
8497
  EcsIcon: M,
8478
8498
  EcsSticker: Re,
8479
- EcsButtonMore: As,
8499
+ EcsButtonMore: Ds,
8480
8500
  EcsFocusRing: L
8481
8501
  },
8482
8502
  props: {
@@ -8540,7 +8560,7 @@ const Ef = {
8540
8560
  function Lf(e, s, t, a, n, i) {
8541
8561
  const r = p("ecs-icon"), c = p("ecs-sticker"), d = p("ecs-focus-ring"), g = p("ecs-button-more");
8542
8562
  return o(), l("div", {
8543
- onClick: s[0] || (s[0] = G((...h) => i.handleClick && i.handleClick(...h), ["stop"])),
8563
+ onClick: s[0] || (s[0] = U((...h) => i.handleClick && i.handleClick(...h), ["stop"])),
8544
8564
  tabindex: "0",
8545
8565
  role: "button",
8546
8566
  class: "ecs-entry-link"
@@ -8577,17 +8597,17 @@ function Lf(e, s, t, a, n, i) {
8577
8597
  }),
8578
8598
  t.moreButton ? (o(), y(g, {
8579
8599
  key: 3,
8580
- onClick: G(i.handleMoreButtonClick, ["stop"]),
8600
+ onClick: U(i.handleMoreButtonClick, ["stop"]),
8581
8601
  type: "ellipsis",
8582
8602
  title: t.moreButtonTitle,
8583
8603
  "aria-label": t.moreButtonTitle
8584
8604
  }, null, 8, ["onClick", "title", "aria-label"])) : u("", !0)
8585
8605
  ]);
8586
8606
  }
8587
- const Gy = /* @__PURE__ */ _(Ef, [["render", Lf], ["__scopeId", "data-v-00b5ab33"]]);
8607
+ const Uy = /* @__PURE__ */ _(Ef, [["render", Lf], ["__scopeId", "data-v-00b5ab33"]]);
8588
8608
  const Of = {
8589
8609
  name: "ecs-excerpt-snippet",
8590
- components: { EcsIcon: M, EcsSkeletonLoader: Ce, EcsFormatted: Ds },
8610
+ components: { EcsIcon: M, EcsSkeletonLoader: Ce, EcsFormatted: Rs },
8591
8611
  props: {
8592
8612
  /** Determines how the content of the excerpt should be rendered. */
8593
8613
  type: {
@@ -8721,7 +8741,7 @@ function Wf(e, s, t, a, n, i) {
8721
8741
  ], 4)
8722
8742
  ], 2);
8723
8743
  }
8724
- const Uy = /* @__PURE__ */ _(Of, [["render", Wf], ["__scopeId", "data-v-f582192b"]]), Ky = {
8744
+ const Gy = /* @__PURE__ */ _(Of, [["render", Wf], ["__scopeId", "data-v-f582192b"]]), Ky = {
8725
8745
  __name: "fill-icon",
8726
8746
  props: {
8727
8747
  /** The identifier of the icon which should show up. */
@@ -8763,16 +8783,16 @@ const Uy = /* @__PURE__ */ _(Of, [["render", Wf], ["__scopeId", "data-v-f582192b
8763
8783
  }
8764
8784
  }, jf = {
8765
8785
  name: "ecs-file-list"
8766
- }, Gf = {
8786
+ }, Uf = {
8767
8787
  class: "ecs-file-list",
8768
8788
  role: "list"
8769
8789
  };
8770
- function Uf(e, s, t, a, n, i) {
8771
- return o(), l("div", Gf, [
8790
+ function Gf(e, s, t, a, n, i) {
8791
+ return o(), l("div", Uf, [
8772
8792
  m(e.$slots, "default")
8773
8793
  ]);
8774
8794
  }
8775
- const Yy = /* @__PURE__ */ _(jf, [["render", Uf]]);
8795
+ const Yy = /* @__PURE__ */ _(jf, [["render", Gf]]);
8776
8796
  const Kf = {
8777
8797
  name: "ecs-file-list-item",
8778
8798
  emits: ["click", "remove", "toggled", "title-click"],
@@ -8780,7 +8800,7 @@ const Kf = {
8780
8800
  EcsIcon: M,
8781
8801
  EcsFileIcon: Ls,
8782
8802
  EcsSticker: Re,
8783
- EcsButtonTable: Ns,
8803
+ EcsButtonTable: Fs,
8784
8804
  EcsFocusRing: L
8785
8805
  },
8786
8806
  mixins: [de],
@@ -9156,7 +9176,7 @@ function mp(e, s, t, a, n, i) {
9156
9176
  }, [
9157
9177
  f("button", {
9158
9178
  onClick: s[0] || (s[0] = (d) => e.$emit("click", d)),
9159
- onKeydown: s[1] || (s[1] = U((d) => e.$emit("click", d), ["enter"])),
9179
+ onKeydown: s[1] || (s[1] = G((d) => e.$emit("click", d), ["enter"])),
9160
9180
  title: t.tooltip,
9161
9181
  class: "ecs-input-clear-button",
9162
9182
  "aria-label": "Clear"
@@ -9578,7 +9598,7 @@ const Wp = {
9578
9598
  dismissed: !1
9579
9599
  };
9580
9600
  }
9581
- }, jp = { class: "ecs-toolbar-search" }, Gp = { class: "number" }, Up = { class: "type" }, Kp = { class: "ecs-toolbar-right-section" }, Yp = { class: "ecs-toolbar-right-section" };
9601
+ }, jp = { class: "ecs-toolbar-search" }, Up = { class: "number" }, Gp = { class: "type" }, Kp = { class: "ecs-toolbar-right-section" }, Yp = { class: "ecs-toolbar-right-section" };
9582
9602
  function Xp(e, s, t, a, n, i) {
9583
9603
  const r = p("ecs-button-toolbar-group"), c = p("ecs-flex-row"), d = p("ecs-flex-col"), g = p("ecs-toolbar");
9584
9604
  return o(), y(g, { class: "ecs-index-toolbar" }, {
@@ -9601,8 +9621,8 @@ function Xp(e, s, t, a, n, i) {
9601
9621
  class: "ecs-toolbar-search-results"
9602
9622
  }, {
9603
9623
  default: w(() => [
9604
- f("span", Gp, x(t.count), 1),
9605
- f("span", Up, x(t.type), 1)
9624
+ f("span", Up, x(t.count), 1),
9625
+ f("span", Gp, x(t.type), 1)
9606
9626
  ]),
9607
9627
  _: 1
9608
9628
  })
@@ -9958,7 +9978,7 @@ const hg = {
9958
9978
  "selectCurEntryText",
9959
9979
  "blur"
9960
9980
  ],
9961
- components: { EcsButtonToolbar: gt, EcsButtonToolbarGroup: Ht },
9981
+ components: { EcsButtonToolbar: mt, EcsButtonToolbarGroup: Ht },
9962
9982
  props: {
9963
9983
  /** Index position of the currently viewed object. */
9964
9984
  currentEntry: {
@@ -10061,7 +10081,7 @@ const bg = {
10061
10081
  "selectSearchResultCount",
10062
10082
  "setSearchResultCount"
10063
10083
  ],
10064
- components: { EcsButtonToolbar: gt, EcsButtonToolbarGroup: Ht },
10084
+ components: { EcsButtonToolbar: mt, EcsButtonToolbarGroup: Ht },
10065
10085
  props: {
10066
10086
  /** Count of the current object in the given index. */
10067
10087
  currentCount: {
@@ -10666,11 +10686,11 @@ const qg = {
10666
10686
  }, Wg = { class: "ecs-index-layout-contents" }, jg = {
10667
10687
  key: 0,
10668
10688
  class: "ecs-index-layout-table scrollbar"
10669
- }, Gg = {
10689
+ }, Ug = {
10670
10690
  key: 2,
10671
10691
  class: "ecs-index-layout-pagination"
10672
10692
  };
10673
- function Ug(e, s, t, a, n, i) {
10693
+ function Gg(e, s, t, a, n, i) {
10674
10694
  const r = p("ecs-pane"), c = p("ecs-splitpanes");
10675
10695
  return o(), l("div", {
10676
10696
  class: v(["ecs-index-layout", [t.backgroundWhite ? "background-white" : ""]])
@@ -10710,7 +10730,7 @@ function Ug(e, s, t, a, n, i) {
10710
10730
  })) : (o(), l("div", jg, [
10711
10731
  m(e.$slots, "default", {}, void 0, !0)
10712
10732
  ])),
10713
- e.$slots.pagination ? (o(), l("div", Gg, [
10733
+ e.$slots.pagination ? (o(), l("div", Ug, [
10714
10734
  m(e.$slots, "pagination", {}, void 0, !0)
10715
10735
  ])) : u("", !0)
10716
10736
  ]),
@@ -10724,7 +10744,7 @@ function Ug(e, s, t, a, n, i) {
10724
10744
  ], 2)
10725
10745
  ], 2);
10726
10746
  }
10727
- const db = /* @__PURE__ */ _(qg, [["render", Ug], ["__scopeId", "data-v-7e2fc186"]]);
10747
+ const db = /* @__PURE__ */ _(qg, [["render", Gg], ["__scopeId", "data-v-7e2fc186"]]);
10728
10748
  const Kg = {
10729
10749
  name: "ecs-layout-directory",
10730
10750
  props: {
@@ -10849,13 +10869,13 @@ function cm(e, s, t, a, n, i) {
10849
10869
  ]),
10850
10870
  _: 3
10851
10871
  }),
10852
- e.$slots.actionbar ? Ge((o(), y(c, { key: 1 }, {
10872
+ e.$slots.actionbar ? Ue((o(), y(c, { key: 1 }, {
10853
10873
  default: w(() => [
10854
10874
  m(e.$slots, "actionbar", {}, void 0, !0)
10855
10875
  ]),
10856
10876
  _: 3
10857
10877
  }, 512)), [
10858
- [ft, t.showActionbar]
10878
+ [pt, t.showActionbar]
10859
10879
  ]) : u("", !0),
10860
10880
  f("div", am, [
10861
10881
  m(e.$slots, "default", {}, void 0, !0)
@@ -11452,10 +11472,10 @@ const Wm = {
11452
11472
  }, jm = {
11453
11473
  key: 0,
11454
11474
  class: "symbol"
11455
- }, Gm = {
11475
+ }, Um = {
11456
11476
  key: 0,
11457
11477
  class: "operator"
11458
- }, Um = ["value"], Km = { class: "query" }, Ym = {
11478
+ }, Gm = ["value"], Km = { class: "query" }, Ym = {
11459
11479
  key: 0,
11460
11480
  class: "descriptor"
11461
11481
  };
@@ -11464,7 +11484,7 @@ function Xm(e, s, t, a, n, i) {
11464
11484
  return o(), l("div", {
11465
11485
  class: v(["ecs-multiselect-search-token", i.typeClass]),
11466
11486
  tabindex: "0",
11467
- onKeydown: s[3] || (s[3] = U((g) => e.$emit("remove", g), ["delete"]))
11487
+ onKeydown: s[3] || (s[3] = G((g) => e.$emit("remove", g), ["delete"]))
11468
11488
  }, [
11469
11489
  t.icon || t.operator || t.operatorSwitch ? (o(), l("div", jm, [
11470
11490
  b(r, {
@@ -11472,7 +11492,7 @@ function Xm(e, s, t, a, n, i) {
11472
11492
  size: "20",
11473
11493
  color: "#FFF"
11474
11494
  }, null, 8, ["type"]),
11475
- t.operator && !t.operatorSelect && !t.operatorSwitch ? (o(), l("div", Gm, x(t.operator), 1)) : u("", !0),
11495
+ t.operator && !t.operatorSelect && !t.operatorSwitch ? (o(), l("div", Um, x(t.operator), 1)) : u("", !0),
11476
11496
  t.operatorSelect ? (o(), y(c, {
11477
11497
  key: 1,
11478
11498
  onChange: i.handleOperatorChange,
@@ -11484,7 +11504,7 @@ function Xm(e, s, t, a, n, i) {
11484
11504
  (o(!0), l(Z, null, ge(t.operatorSelectOptions, (g) => (o(), l("option", {
11485
11505
  value: g,
11486
11506
  key: g
11487
- }, x(g), 9, Um))), 128))
11507
+ }, x(g), 9, Gm))), 128))
11488
11508
  ]),
11489
11509
  _: 1
11490
11510
  }, 8, ["onChange", "value"])) : u("", !0),
@@ -11515,7 +11535,7 @@ function Xm(e, s, t, a, n, i) {
11515
11535
  m(e.$slots, "default", {}, void 0, !0),
11516
11536
  f("button", {
11517
11537
  onClick: s[1] || (s[1] = (g) => e.$emit("remove", g)),
11518
- onKeyup: s[2] || (s[2] = U((g) => e.$emit("remove", g), ["enter"])),
11538
+ onKeyup: s[2] || (s[2] = G((g) => e.$emit("remove", g), ["enter"])),
11519
11539
  class: "remove",
11520
11540
  title: "Remove",
11521
11541
  "aria-label": "Remove"
@@ -11544,7 +11564,7 @@ function Jm(e, s, t, a, n, i) {
11544
11564
  return o(), l("div", {
11545
11565
  class: "ecs-multiselect-token",
11546
11566
  tabindex: "0",
11547
- onKeydown: s[1] || (s[1] = U((d) => e.$emit("remove", d), ["delete"]))
11567
+ onKeydown: s[1] || (s[1] = G((d) => e.$emit("remove", d), ["delete"]))
11548
11568
  }, [
11549
11569
  m(e.$slots, "default", {}, void 0, !0),
11550
11570
  f("button", {
@@ -11600,7 +11620,7 @@ const kb = /* @__PURE__ */ _(Qm, [["render", th], ["__scopeId", "data-v-ceac7867
11600
11620
  const sh = {
11601
11621
  name: "ecs-overlay",
11602
11622
  emits: ["close", "toggled"],
11603
- components: { EcsIcon: M, EcsButtonToolbar: gt, EcsAlert: ks },
11623
+ components: { EcsIcon: M, EcsButtonToolbar: mt, EcsAlert: ks },
11604
11624
  props: {
11605
11625
  /** Shows the Overlay. */
11606
11626
  show: {
@@ -11996,13 +12016,13 @@ const yh = {
11996
12016
  this.$emit("updatePage", Number(e));
11997
12017
  }
11998
12018
  }
11999
- }, Gs = (e) => (ve("data-v-ca016e63"), e = e(), _e(), e), bh = /* @__PURE__ */ Gs(() => /* @__PURE__ */ f("span", null, "Page", -1)), kh = ["value", "selected"], xh = {
12019
+ }, Us = (e) => (ve("data-v-ca016e63"), e = e(), _e(), e), bh = /* @__PURE__ */ Us(() => /* @__PURE__ */ f("span", null, "Page", -1)), kh = ["value", "selected"], xh = {
12000
12020
  key: 0,
12001
12021
  class: "total"
12002
12022
  }, wh = {
12003
12023
  key: 1,
12004
12024
  class: "ecs-pagination-range"
12005
- }, Sh = { class: "ecs-pagination-tabs" }, Ch = /* @__PURE__ */ Gs(() => /* @__PURE__ */ f("span", null, "Items per page", -1)), Bh = ["value", "selected"];
12025
+ }, Sh = { class: "ecs-pagination-tabs" }, Ch = /* @__PURE__ */ Us(() => /* @__PURE__ */ f("span", null, "Items per page", -1)), Bh = ["value", "selected"];
12006
12026
  function zh(e, s, t, a, n, i) {
12007
12027
  const r = p("ecs-button"), c = p("ecs-flex-row"), d = p("ecs-select");
12008
12028
  return o(), l("div", {
@@ -12468,8 +12488,8 @@ const Wh = {
12468
12488
  }
12469
12489
  }
12470
12490
  }
12471
- }, jh = ["aria-busy"], Gh = ["title"];
12472
- function Uh(e, s, t, a, n, i) {
12491
+ }, jh = ["aria-busy"], Uh = ["title"];
12492
+ function Gh(e, s, t, a, n, i) {
12473
12493
  const r = p("ecs-icon"), c = p("ecs-skeleton-loader");
12474
12494
  return o(), l("div", {
12475
12495
  onClick: s[0] || (s[0] = (d) => e.$emit("click", d)),
@@ -12481,7 +12501,7 @@ function Uh(e, s, t, a, n, i) {
12481
12501
  title: i.labelText
12482
12502
  }, [
12483
12503
  b(r, { type: i.iconType }, null, 8, ["type"])
12484
- ], 10, Gh),
12504
+ ], 10, Uh),
12485
12505
  t.label ? (o(), l("span", {
12486
12506
  key: 0,
12487
12507
  class: v(["label", t.loading ? "loading" : ""])
@@ -12500,7 +12520,7 @@ function Uh(e, s, t, a, n, i) {
12500
12520
  })) : u("", !0)
12501
12521
  ], 10, jh);
12502
12522
  }
12503
- const Kh = /* @__PURE__ */ _(Wh, [["render", Uh], ["__scopeId", "data-v-359930b9"]]);
12523
+ const Kh = /* @__PURE__ */ _(Wh, [["render", Gh], ["__scopeId", "data-v-359930b9"]]);
12504
12524
  const Yh = {
12505
12525
  name: "ecs-quicklinks-link",
12506
12526
  emits: ["click", "input", "toggle"],
@@ -12662,10 +12682,10 @@ const nv = {
12662
12682
  default: 0
12663
12683
  }
12664
12684
  }
12665
- }, ht = (e) => (ve("data-v-37aaedf8"), e = e(), _e(), e), av = {
12685
+ }, vt = (e) => (ve("data-v-37aaedf8"), e = e(), _e(), e), av = {
12666
12686
  key: 0,
12667
12687
  class: "ecs-rating-reset"
12668
- }, ov = { class: "ecs-rating-write" }, rv = ["checked"], lv = /* @__PURE__ */ ht(() => /* @__PURE__ */ f("i", null, null, -1)), cv = ["checked"], dv = /* @__PURE__ */ ht(() => /* @__PURE__ */ f("i", null, null, -1)), uv = ["checked"], fv = /* @__PURE__ */ ht(() => /* @__PURE__ */ f("i", null, null, -1)), pv = ["checked"], gv = /* @__PURE__ */ ht(() => /* @__PURE__ */ f("i", null, null, -1));
12688
+ }, ov = { class: "ecs-rating-write" }, rv = ["checked"], lv = /* @__PURE__ */ vt(() => /* @__PURE__ */ f("i", null, null, -1)), cv = ["checked"], dv = /* @__PURE__ */ vt(() => /* @__PURE__ */ f("i", null, null, -1)), uv = ["checked"], fv = /* @__PURE__ */ vt(() => /* @__PURE__ */ f("i", null, null, -1)), pv = ["checked"], gv = /* @__PURE__ */ vt(() => /* @__PURE__ */ f("i", null, null, -1));
12669
12689
  function mv(e, s, t, a, n, i) {
12670
12690
  return o(), l("div", {
12671
12691
  class: v(["ecs-rating-form", [t.large ? "ecs-rating-form-lg" : ""]])
@@ -12919,8 +12939,8 @@ function $v(e, s, t, a, n, i) {
12919
12939
  return o(), l("div", {
12920
12940
  onClick: s[0] || (s[0] = (c) => e.$emit("click", c)),
12921
12941
  onKeydown: [
12922
- s[1] || (s[1] = U(G((c) => e.$emit("click", c), ["prevent"]), ["space"])),
12923
- s[2] || (s[2] = U(G((c) => e.$emit("click", c), ["prevent"]), ["enter"]))
12942
+ s[1] || (s[1] = G(U((c) => e.$emit("click", c), ["prevent"]), ["space"])),
12943
+ s[2] || (s[2] = G(U((c) => e.$emit("click", c), ["prevent"]), ["enter"]))
12924
12944
  ],
12925
12945
  class: v(["ecs-select-tile", [t.selected ? "ecs-select-tile-selected" : "", t.disabled ? "ecs-select-tile-disabled" : ""]]),
12926
12946
  role: "checkbox",
@@ -13065,7 +13085,7 @@ function Wv(e, s, t, a, n, i) {
13065
13085
  ], 2);
13066
13086
  }
13067
13087
  const jv = /* @__PURE__ */ _(qv, [["render", Wv], ["__scopeId", "data-v-0fe19168"]]);
13068
- const Gv = {
13088
+ const Uv = {
13069
13089
  name: "ecs-sidebar",
13070
13090
  components: {
13071
13091
  EcsTabBar: Hv,
@@ -13100,14 +13120,14 @@ const Gv = {
13100
13120
  return this.expanded ? "height: calc(100% - 10px)" : "height:" + (2 + 36 * this.tabCount) + "px";
13101
13121
  }
13102
13122
  }
13103
- }, Uv = { class: "ecs-sidebar-tabs" };
13123
+ }, Gv = { class: "ecs-sidebar-tabs" };
13104
13124
  function Kv(e, s, t, a, n, i) {
13105
13125
  const r = p("ecs-tab-bar"), c = p("ecs-tabs");
13106
13126
  return o(), l("aside", {
13107
13127
  class: v(["ecs-sidebar", [i.sizeClass, i.expandClass]]),
13108
13128
  style: B(i.height)
13109
13129
  }, [
13110
- f("div", Uv, [
13130
+ f("div", Gv, [
13111
13131
  b(r, { type: "sidebar" }, {
13112
13132
  default: w(() => [
13113
13133
  m(e.$slots, "tab-buttons", {}, void 0, !0)
@@ -13123,7 +13143,7 @@ function Kv(e, s, t, a, n, i) {
13123
13143
  })
13124
13144
  ], 6);
13125
13145
  }
13126
- const Lb = /* @__PURE__ */ _(Gv, [["render", Kv], ["__scopeId", "data-v-5e877161"]]);
13146
+ const Lb = /* @__PURE__ */ _(Uv, [["render", Kv], ["__scopeId", "data-v-5e877161"]]);
13127
13147
  const Yv = {
13128
13148
  name: "ecs-sidebar-content",
13129
13149
  props: {
@@ -13317,8 +13337,8 @@ function g_(e, s, t, a, n, i) {
13317
13337
  key: r.id,
13318
13338
  onClick: (c) => i.handleItemClick(r),
13319
13339
  onKeydown: [
13320
- U(G((c) => i.handleItemClick(r), ["prevent"]), ["space"]),
13321
- U(G((c) => i.handleItemClick(r), ["prevent"]), ["enter"])
13340
+ G(U((c) => i.handleItemClick(r), ["prevent"]), ["space"]),
13341
+ G(U((c) => i.handleItemClick(r), ["prevent"]), ["enter"])
13322
13342
  ],
13323
13343
  role: "radio",
13324
13344
  tabindex: "0",
@@ -13732,7 +13752,7 @@ function q_(e, s, t, a, n, i) {
13732
13752
  ])) : u("", !0)
13733
13753
  ], 10, D_);
13734
13754
  }
13735
- const Gb = /* @__PURE__ */ _(N_, [["render", q_], ["__scopeId", "data-v-9ceb80a6"]]);
13755
+ const Ub = /* @__PURE__ */ _(N_, [["render", q_], ["__scopeId", "data-v-9ceb80a6"]]);
13736
13756
  const W_ = {
13737
13757
  name: "ecs-tree-list",
13738
13758
  props: {
@@ -13748,7 +13768,7 @@ const W_ = {
13748
13768
  }
13749
13769
  }
13750
13770
  }, j_ = ["id", "role"];
13751
- function G_(e, s, t, a, n, i) {
13771
+ function U_(e, s, t, a, n, i) {
13752
13772
  return o(), l("div", {
13753
13773
  class: "ecs-tree-view-list",
13754
13774
  id: t.id,
@@ -13757,8 +13777,8 @@ function G_(e, s, t, a, n, i) {
13757
13777
  m(e.$slots, "default", {}, void 0, !0)
13758
13778
  ], 8, j_);
13759
13779
  }
13760
- const Ub = /* @__PURE__ */ _(W_, [["render", G_], ["__scopeId", "data-v-b2d4ee72"]]);
13761
- const U_ = {
13780
+ const Gb = /* @__PURE__ */ _(W_, [["render", U_], ["__scopeId", "data-v-b2d4ee72"]]);
13781
+ const G_ = {
13762
13782
  name: "ecs-tree-list-item",
13763
13783
  emits: ["click", "toggled"],
13764
13784
  components: { EcsIcon: M, EcsButtonCollapse: Os, EcsFocusRing: L },
@@ -13903,8 +13923,8 @@ function J_(e, s, t, a, n, i) {
13903
13923
  role: "treeitem",
13904
13924
  tabindex: i.isSelectable ? "0" : "-1",
13905
13925
  onKeydown: [
13906
- s[2] || (s[2] = U(G((...g) => i.focusPrevious && i.focusPrevious(...g), ["prevent"]), ["up"])),
13907
- s[3] || (s[3] = U(G((...g) => i.focusNext && i.focusNext(...g), ["prevent"]), ["down"]))
13926
+ s[2] || (s[2] = G(U((...g) => i.focusPrevious && i.focusPrevious(...g), ["prevent"]), ["up"])),
13927
+ s[3] || (s[3] = G(U((...g) => i.focusNext && i.focusNext(...g), ["prevent"]), ["down"]))
13908
13928
  ]
13909
13929
  }, [
13910
13930
  i.isSelectable ? (o(), y(r, { key: 0 })) : u("", !0),
@@ -13951,7 +13971,7 @@ function J_(e, s, t, a, n, i) {
13951
13971
  ], 10, Z_)) : u("", !0)
13952
13972
  ]);
13953
13973
  }
13954
- const Kb = /* @__PURE__ */ _(U_, [["render", J_], ["__scopeId", "data-v-5ad9b59c"]]);
13974
+ const Kb = /* @__PURE__ */ _(G_, [["render", J_], ["__scopeId", "data-v-5ad9b59c"]]);
13955
13975
  const Q_ = {
13956
13976
  name: "ecs-tree-list-headline"
13957
13977
  }, ey = { class: "ecs-tree-view-headline" };
@@ -14122,9 +14142,9 @@ export {
14122
14142
  by as EcsButtonContextGroup,
14123
14143
  ky as EcsButtonDialog,
14124
14144
  _y as EcsButtonGroup,
14125
- As as EcsButtonMore,
14126
- Ns as EcsButtonTable,
14127
- gt as EcsButtonToolbar,
14145
+ Ds as EcsButtonMore,
14146
+ Fs as EcsButtonTable,
14147
+ mt as EcsButtonToolbar,
14128
14148
  Ht as EcsButtonToolbarGroup,
14129
14149
  xy as EcsButtonToolbarIcon,
14130
14150
  wy as EcsCard,
@@ -14154,8 +14174,8 @@ export {
14154
14174
  Wy as EcsDonutChart,
14155
14175
  jy as EcsDropzone,
14156
14176
  mf as EcsEmptyState,
14157
- Gy as EcsEntryLink,
14158
- Uy as EcsExcerptSnippet,
14177
+ Uy as EcsEntryLink,
14178
+ Gy as EcsExcerptSnippet,
14159
14179
  ju as EcsFavicon,
14160
14180
  Ls as EcsFileIcon,
14161
14181
  Yy as EcsFileList,
@@ -14170,7 +14190,7 @@ export {
14170
14190
  $p as EcsFormGroup,
14171
14191
  Qy as EcsFormHeadline,
14172
14192
  eb as EcsFormSet,
14173
- Ds as EcsFormatted,
14193
+ Rs as EcsFormatted,
14174
14194
  M as EcsIcon,
14175
14195
  tb as EcsIndexToolbar,
14176
14196
  sb as EcsInfoTooltip,
@@ -14242,8 +14262,8 @@ export {
14242
14262
  Wb as EcsToast,
14243
14263
  jb as EcsToasts,
14244
14264
  qp as EcsToolbar,
14245
- Gb as EcsTranscriptState,
14246
- Ub as EcsTreeList,
14265
+ Ub as EcsTranscriptState,
14266
+ Gb as EcsTreeList,
14247
14267
  Yb as EcsTreeListHeadline,
14248
14268
  Kb as EcsTreeListItem,
14249
14269
  Xb as EcsTypeConfirmation,