@jackuait/blok 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/blok.cjs +1 -1
  2. package/dist/blok.iife.js +4 -4
  3. package/dist/blok.mjs +2 -2
  4. package/dist/blok.umd.js +41 -41
  5. package/dist/chunks/{blok-Cz71HTuP.cjs → blok-Blnd71Ww.cjs} +5 -5
  6. package/dist/chunks/{blok-x8D2aON2.mjs → blok-S6c68iVJ.mjs} +2570 -2269
  7. package/dist/chunks/{constants-BK6kLyZB.cjs → constants-BIqDMhRj.cjs} +1 -1
  8. package/dist/chunks/{constants-CLzXh7Tb.mjs → constants-BvxJIgSQ.mjs} +1 -1
  9. package/dist/chunks/{tools-Bw8_CkhE.mjs → tools-B89FUeNz.mjs} +451 -416
  10. package/dist/chunks/{tools-BKjP4TXy.cjs → tools-DTjC0C5o.cjs} +3 -3
  11. package/dist/full.cjs +1 -1
  12. package/dist/full.mjs +3 -3
  13. package/dist/react.cjs +1 -1
  14. package/dist/react.mjs +1 -1
  15. package/dist/tools.cjs +1 -1
  16. package/dist/tools.mjs +2 -2
  17. package/package.json +1 -1
  18. package/src/components/modules/paste/index.ts +33 -6
  19. package/src/components/modules/paste/next-space-blocks.ts +520 -0
  20. package/src/components/modules/paste/notion-blocks-v3.ts +28 -4
  21. package/src/components/utils/media-empty-state.ts +80 -47
  22. package/src/tools/audio/empty-state.ts +4 -0
  23. package/src/tools/audio/index.ts +4 -0
  24. package/src/tools/file/empty-state.ts +4 -0
  25. package/src/tools/file/index.ts +2 -0
  26. package/src/tools/image/empty-state.ts +4 -0
  27. package/src/tools/image/index.ts +5 -0
  28. package/src/tools/video/empty-state.ts +4 -0
  29. package/src/tools/video/index.ts +4 -0
  30. package/types/tools/audio.d.ts +6 -0
  31. package/types/tools/file.d.ts +6 -0
  32. package/types/tools/image.d.ts +6 -0
  33. package/types/tools/media-source.d.ts +12 -0
  34. package/types/tools/video.d.ts +6 -0
  35. package/types/tools-entry.d.ts +1 -0
@@ -1,5 +1,5 @@
1
1
  import { i as e, t } from "./chunk-5O_1xk2F.mjs";
2
- import { $ as n, $n as r, $r as i, $t as a, Ai as o, An as s, Ar as c, At as l, B as u, Bn as d, Br as f, Bt as p, C as m, Ci as h, Cn as g, Cr as _, Ct as v, Dn as y, Dr as b, Dt as x, Ei as S, En as C, Er as w, Et as T, F as E, Fn as ee, Fr as te, Ft as D, G as O, Gn as k, Gr as ne, Gt as A, H as j, Hn as M, Hr as re, Ht as N, I as ie, In as P, Ir as ae, It as oe, J as F, Jn as se, Jr as I, Jt as ce, Kn as le, Kr as ue, Kt as de, L as fe, Ln as L, Lr as pe, Lt as me, Ma as he, Mn as ge, Mr as _e, Mt as ve, Ni as ye, Nn as be, Nr as xe, Nt as Se, On as Ce, Or as we, Ot as Te, P as Ee, Pi as De, Pn as Oe, Pr as R, Pt as ke, Q as Ae, Qn as je, Qr as Me, Qt as Ne, R as Pe, Rn as Fe, Rr as Ie, Rt as Le, S as Re, Si as ze, Sn as Be, Sr as Ve, St as He, T as Ue, Ta as We, Ti as Ge, Tn as Ke, Tr as qe, Tt as Je, U as Ye, Un as Xe, Ur as Ze, Ut as Qe, Vn as $e, Vr as et, Vt as tt, W as nt, Wn as z, Wr as rt, Wt as it, X as at, Xi as ot, Xn as st, Xr as ct, Xt as lt, Y as ut, Yn as dt, Yr as ft, Yt as pt, Z as mt, Zn as ht, Zt as gt, _ as _t, _n as vt, _r as yt, _t as bt, a as xt, aa as St, ai as Ct, ar as wt, at as Tt, b as Et, bi as B, bn as Dt, br as Ot, bt as kt, c as At, cn as jt, cr as Mt, ct as Nt, d as Pt, di as Ft, dn as It, dr as Lt, dt as Rt, ei as zt, en as Bt, er as Vt, et as Ht, f as Ut, fn as Wt, fr as Gt, ft as Kt, g as qt, gi as Jt, gn as Yt, gr as Xt, gt as Zt, h as Qt, hn as $t, hr as en, ht as tn, i as nn, ii as rn, in as an, ir as on, it as sn, ja as V, jn as cn, jr as ln, jt as un, ki as H, kn as dn, kr as fn, kt as pn, l as mn, li as hn, ln as gn, lr as _n, lt as vn, mn as yn, mr as bn, mt as xn, n as Sn, ni as Cn, nn as wn, nr as Tn, nt as En, o as Dn, oi as On, on as kn, or as An, ot as jn, p as Mn, pi as Nn, pn as Pn, pr as Fn, pt as In, q as Ln, qr as Rn, qt as zn, r as Bn, ra as Vn, ri as Hn, rr as Un, rt as Wn, s as Gn, si as Kn, sn as qn, sr as Jn, st as Yn, t as Xn, ti as Zn, tr as Qn, u as U, ui as $n, un as er, ur as tr, ut as nr, v as rr, vn as ir, vr as ar, vt as or, wi as sr, wn as cr, wr as lr, wt as ur, x as dr, xi as fr, xn as pr, xr as mr, xt as hr, y as gr, yn as _r, yr as vr, yt as yr, z as br, zn as xr, zr as Sr, zt as Cr } from "./constants-CLzXh7Tb.mjs";
2
+ import { $ as n, $n as r, $r as i, $t as a, Ai as o, An as s, Ar as c, At as l, B as u, Bn as d, Br as f, Bt as p, C as m, Ci as h, Cn as g, Cr as _, Ct as v, Dn as y, Dr as b, Dt as x, Ei as S, En as C, Er as w, Et as T, F as E, Fn as D, Fr as ee, Ft as O, G as k, Gn as A, Gr as te, Gt as j, H as M, Hn as N, Hr as ne, Ht as P, I as re, In as F, Ir as ie, It as ae, J as I, Jn as oe, Jr as L, Jt as se, Kn as ce, Kr as le, Kt as ue, L as de, Ln as R, Lr as fe, Lt as pe, Ma as me, Mn as he, Mr as ge, Mt as _e, Ni as ve, Nn as ye, Nr as be, Nt as xe, On as Se, Or as Ce, Ot as we, P as Te, Pi as Ee, Pn as De, Pr as Oe, Pt as ke, Q as Ae, Qn as je, Qr as Me, Qt as Ne, R as Pe, Rn as Fe, Rr as Ie, Rt as Le, S as Re, Si as ze, Sn as Be, Sr as Ve, St as He, T as Ue, Ta as We, Ti as Ge, Tn as Ke, Tr as qe, Tt as Je, U as Ye, Un as Xe, Ur as Ze, Ut as Qe, Vn as $e, Vr as et, Vt as tt, W as nt, Wn as z, Wr as rt, Wt as it, X as at, Xi as ot, Xn as st, Xr as ct, Xt as lt, Y as ut, Yn as dt, Yr as ft, Yt as pt, Z as mt, Zn as ht, Zt as gt, _ as _t, _n as vt, _r as yt, _t as bt, a as xt, aa as St, ai as Ct, ar as wt, at as Tt, b as Et, bi as B, bn as Dt, br as Ot, bt as kt, c as At, cn as jt, cr as Mt, ct as Nt, d as Pt, di as Ft, dn as It, dr as Lt, dt as Rt, ei as zt, en as Bt, er as Vt, et as Ht, f as Ut, fn as Wt, fr as Gt, ft as Kt, g as qt, gi as Jt, gn as Yt, gr as Xt, gt as Zt, h as Qt, hn as $t, hr as en, ht as tn, i as nn, ii as rn, in as an, ir as on, it as sn, ja as V, jn as cn, jr as ln, jt as un, ki as H, kn as dn, kr as fn, kt as pn, l as mn, li as hn, ln as gn, lr as _n, lt as vn, mn as yn, mr as bn, mt as xn, n as Sn, ni as Cn, nn as wn, nr as Tn, nt as En, o as Dn, oi as On, on as kn, or as An, ot as jn, p as Mn, pi as Nn, pn as Pn, pr as Fn, pt as In, q as Ln, qr as Rn, qt as zn, r as Bn, ra as Vn, ri as Hn, rr as Un, rt as Wn, s as Gn, si as Kn, sn as qn, sr as Jn, st as Yn, t as Xn, ti as Zn, tr as Qn, u as U, ui as $n, un as er, ur as tr, ut as nr, v as rr, vn as ir, vr as ar, vt as or, wi as sr, wn as cr, wr as lr, wt as ur, x as dr, xi as fr, xn as pr, xr as mr, xt as hr, y as gr, yn as _r, yr as vr, yt as yr, z as br, zn as xr, zr as Sr, zt as Cr } from "./constants-BvxJIgSQ.mjs";
3
3
  import { t as W } from "./objectSpread2-jlBcdYeb.mjs";
4
4
  import { n as G } from "./tw-DmW6-pCY.mjs";
5
5
  import { n as wr } from "./lightweight-i18n-Cj88c8gl.mjs";
@@ -136,7 +136,7 @@ var jr = [
136
136
  }
137
137
  static get toolbox() {
138
138
  return {
139
- icon: P,
139
+ icon: F,
140
140
  titleKey: "text",
141
141
  searchTerms: [
142
142
  "p",
@@ -598,7 +598,7 @@ var Hr = (e) => {
598
598
  ],
599
599
  shortcut: "#".repeat(e.number)
600
600
  })), n = {
601
- 1: L,
601
+ 1: R,
602
602
  2: Fe,
603
603
  3: xr
604
604
  }, r = e.DEFAULT_LEVELS.filter((e) => e.number <= 3).map((e) => ({
@@ -632,7 +632,7 @@ ii = ai, ii.BASE_STYLES = "py-[7px] px-[2px] m-0 leading-[1.3]! outline-hidden [
632
632
  tag: "H1",
633
633
  nameKey: "tools.header.heading1",
634
634
  name: "Heading 1",
635
- icon: Te,
635
+ icon: we,
636
636
  styles: "text-3xl font-semibold mt-8 mb-px"
637
637
  },
638
638
  {
@@ -664,7 +664,7 @@ ii = ai, ii.BASE_STYLES = "py-[7px] px-[2px] m-0 leading-[1.3]! outline-hidden [
664
664
  tag: "H5",
665
665
  nameKey: "tools.header.heading5",
666
666
  name: "Heading 5",
667
- icon: ve,
667
+ icon: _e,
668
668
  styles: "text-base font-semibold mt-3 mb-px"
669
669
  },
670
670
  {
@@ -672,7 +672,7 @@ ii = ai, ii.BASE_STYLES = "py-[7px] px-[2px] m-0 leading-[1.3]! outline-hidden [
672
672
  tag: "H6",
673
673
  nameKey: "tools.header.heading6",
674
674
  name: "Heading 6",
675
- icon: Se,
675
+ icon: xe,
676
676
  styles: "text-sm font-semibold mt-3 mb-px"
677
677
  }
678
678
  ];
@@ -3628,7 +3628,7 @@ var yo = (e) => {
3628
3628
  openPillPopover() {
3629
3629
  if (this.destroyPillPopover(), !this.pill) return;
3630
3630
  this.expandPill();
3631
- let e = De === "Meta" ? "⌘C" : "Ctrl+C", t = [];
3631
+ let e = Ee === "Meta" ? "⌘C" : "Ctrl+C", t = [];
3632
3632
  if (this.onColorChange !== void 0) {
3633
3633
  let { element: e } = yo({
3634
3634
  i18n: this.i18n,
@@ -3691,7 +3691,7 @@ var yo = (e) => {
3691
3691
  var a, o;
3692
3692
  let e = this.lastPaintedRange, t = e.minRow === e.maxRow && e.minCol === e.maxCol, n = this.preExpansionWasSingleCell && ((a = this.isMergedCell) == null ? void 0 : a.call(this, e.minRow, e.minCol));
3693
3693
  (t || n) && (o = this.isMergedCell) != null && o.call(this, e.minRow, e.minCol) && r.push({
3694
- icon: ge,
3694
+ icon: he,
3695
3695
  title: this.i18n.t("tools.table.splitCell"),
3696
3696
  closeOnActivate: !0,
3697
3697
  onActivate: () => {
@@ -4339,7 +4339,7 @@ var yo = (e) => {
4339
4339
  let n = e === 0 ? [{
4340
4340
  type: H.Html,
4341
4341
  element: us({
4342
- icon: D,
4342
+ icon: O,
4343
4343
  label: t.i18n.t("tools.table.headerColumn"),
4344
4344
  isActive: t.isHeadingColumn(),
4345
4345
  onToggle: () => {
@@ -4357,7 +4357,7 @@ var yo = (e) => {
4357
4357
  });
4358
4358
  }
4359
4359
  }, {
4360
- icon: A,
4360
+ icon: j,
4361
4361
  title: t.i18n.t("tools.table.insertColumnRight"),
4362
4362
  closeOnActivate: !0,
4363
4363
  onActivate: () => {
@@ -4388,7 +4388,7 @@ var yo = (e) => {
4388
4388
  let n = e === 0 ? [{
4389
4389
  type: H.Html,
4390
4390
  element: us({
4391
- icon: oe,
4391
+ icon: ae,
4392
4392
  label: t.i18n.t("tools.table.headerRow"),
4393
4393
  isActive: t.isHeadingRow(),
4394
4394
  onToggle: () => {
@@ -4396,7 +4396,7 @@ var yo = (e) => {
4396
4396
  }
4397
4397
  })
4398
4398
  }, { type: H.Separator }] : [], r = [{
4399
- icon: N,
4399
+ icon: P,
4400
4400
  title: t.i18n.t("tools.table.insertRowAbove"),
4401
4401
  closeOnActivate: !0,
4402
4402
  onActivate: () => {
@@ -5437,7 +5437,7 @@ var yo = (e) => {
5437
5437
  }
5438
5438
  static get toolbox() {
5439
5439
  return {
5440
- icon: ee,
5440
+ icon: D,
5441
5441
  titleKey: "tools.table.title",
5442
5442
  searchTerms: [
5443
5443
  "table",
@@ -5976,7 +5976,7 @@ function Gs(e) {
5976
5976
  let { emoji: t, readOnly: n, addEmojiLabel: r } = e, i = document.createElement("div");
5977
5977
  i.className = ct;
5978
5978
  let a = document.createElement("button");
5979
- a.type = "button", a.className = te, a.textContent = t || "", a.setAttribute("aria-label", t === "" ? r : t), a.setAttribute("tabindex", "0"), a.setAttribute("data-blok-testid", "callout-emoji-btn"), n && (a.disabled = !0);
5979
+ a.type = "button", a.className = ee, a.textContent = t || "", a.setAttribute("aria-label", t === "" ? r : t), a.setAttribute("tabindex", "0"), a.setAttribute("data-blok-testid", "callout-emoji-btn"), n && (a.disabled = !0);
5980
5980
  let o = document.createElement("div");
5981
5981
  return o.className = ln, o.setAttribute(U.toggleChildren, ""), o.setAttribute(V.nestedBlocks, ""), o.setAttribute("data-blok-child-toolbar", ""), o.setAttribute("data-blok-mutation-free", "true"), i.appendChild(a), i.appendChild(o), {
5982
5982
  wrapper: i,
@@ -6159,11 +6159,11 @@ var rc = {
6159
6159
  people: et,
6160
6160
  nature: Sr,
6161
6161
  foods: Ie,
6162
- activity: ae,
6162
+ activity: ie,
6163
6163
  places: Ze,
6164
6164
  objects: f,
6165
- symbols: re,
6166
- flags: pe
6165
+ symbols: ne,
6166
+ flags: fe
6167
6167
  }, ic = [
6168
6168
  ["callout", bt],
6169
6169
  ["people", tn],
@@ -6254,19 +6254,19 @@ var lc = Yn, uc = class {
6254
6254
  let a = document.createElement("div");
6255
6255
  a.className = "relative flex-shrink-0";
6256
6256
  let o = document.createElement("button");
6257
- o.type = "button", o.setAttribute("data-emoji-picker-skin-toggle", ""), o.setAttribute("aria-label", this.i18n.t(I)), o.title = this.i18n.t(I), o.className = [
6257
+ o.type = "button", o.setAttribute("data-emoji-picker-skin-toggle", ""), o.setAttribute("aria-label", this.i18n.t(L)), o.title = this.i18n.t(L), o.className = [
6258
6258
  "w-[28px] h-[28px] flex items-center justify-center rounded-lg",
6259
6259
  "text-[14px] leading-none cursor-pointer select-none",
6260
6260
  "hover:bg-neutral-100 theme-dark:hover:bg-neutral-800",
6261
6261
  "active:scale-90 transition-all duration-100"
6262
6262
  ].join(" "), o.textContent = ac[this._skinTone], o.addEventListener("click", () => this.toggleSkinTonePopover()), this._skinToneToggle = o, a.appendChild(o), this._skinTonePopover = this.buildSkinTonePopover(), a.appendChild(this._skinTonePopover);
6263
6263
  let c = document.createElement("button");
6264
- c.type = "button", c.setAttribute("data-emoji-picker-random", ""), c.setAttribute("aria-label", this.i18n.t(ue)), c.className = [
6264
+ c.type = "button", c.setAttribute("data-emoji-picker-random", ""), c.setAttribute("aria-label", this.i18n.t(le)), c.className = [
6265
6265
  "flex-shrink-0 w-[34px] h-[34px] flex items-center justify-center rounded-lg",
6266
6266
  "text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600",
6267
6267
  "theme-dark:hover:bg-neutral-800 theme-dark:hover:text-neutral-300",
6268
6268
  "transition-colors duration-100 cursor-pointer"
6269
- ].join(" "), c.innerHTML = lc, c.addEventListener("click", () => this.pickRandom()), fr(c, this.i18n.t(ue), { placement: "bottom" });
6269
+ ].join(" "), c.innerHTML = lc, c.addEventListener("click", () => this.pickRandom()), fr(c, this.i18n.t(le), { placement: "bottom" });
6270
6270
  let l = document.createElement("button");
6271
6271
  l.type = "button", l.setAttribute("data-emoji-picker-remove", ""), l.setAttribute("aria-label", this.i18n.t(Rn)), l.className = [
6272
6272
  "flex-shrink-0 w-[34px] h-[34px] flex items-center justify-center rounded-lg",
@@ -6304,7 +6304,7 @@ var lc = Yn, uc = class {
6304
6304
  ].join(" "), e.hidden = !0, this._skinToneButtons = [];
6305
6305
  for (let [t, n] of ac.entries()) {
6306
6306
  let r = document.createElement("button");
6307
- r.type = "button", r.textContent = n, r.setAttribute("aria-label", `${this.i18n.t(I)} ${t + 1}`), r.className = [
6307
+ r.type = "button", r.textContent = n, r.setAttribute("aria-label", `${this.i18n.t(L)} ${t + 1}`), r.className = [
6308
6308
  "w-[32px] h-[32px] flex items-center justify-center rounded-lg",
6309
6309
  "text-[1.2rem] leading-none cursor-pointer select-none",
6310
6310
  "hover:bg-neutral-100 theme-dark:hover:bg-neutral-700",
@@ -6431,7 +6431,7 @@ var lc = Yn, uc = class {
6431
6431
  let t = document.createElement("span");
6432
6432
  t.className = "mb-3 opacity-20 [&>svg]:w-9 [&>svg]:h-9", t.innerHTML = s;
6433
6433
  let n = document.createElement("span");
6434
- n.className = "text-[13px] font-medium", n.textContent = this.i18n.t(ne), e.appendChild(t), e.appendChild(n), this._body.appendChild(e);
6434
+ n.className = "text-[13px] font-medium", n.textContent = this.i18n.t(te), e.appendChild(t), e.appendChild(n), this._body.appendChild(e);
6435
6435
  }
6436
6436
  translateCategory(e) {
6437
6437
  let t = rc[e];
@@ -6490,7 +6490,7 @@ var lc = Yn, uc = class {
6490
6490
  //#endregion
6491
6491
  //#region src/tools/callout/index.ts
6492
6492
  function dc(e) {
6493
- return e.isEmojiVisible === !1 ? "" : typeof e.emoji == "string" && e.emoji.length > 0 ? e.emoji : xe;
6493
+ return e.isEmojiVisible === !1 ? "" : typeof e.emoji == "string" && e.emoji.length > 0 ? e.emoji : be;
6494
6494
  }
6495
6495
  var fc = {
6496
6496
  general: null,
@@ -6509,7 +6509,7 @@ var fc = {
6509
6509
  normalizeData(e) {
6510
6510
  let t = e;
6511
6511
  return "variant" in t || "isEmojiVisible" in t ? this.normalizeLegacyData(t) : {
6512
- emoji: typeof e.emoji == "string" ? e.emoji : xe,
6512
+ emoji: typeof e.emoji == "string" ? e.emoji : be,
6513
6513
  textColor: typeof e.textColor == "string" ? e.textColor : null,
6514
6514
  backgroundColor: typeof e.backgroundColor == "string" ? e.backgroundColor : null
6515
6515
  };
@@ -6590,13 +6590,13 @@ var fc = {
6590
6590
  }
6591
6591
  return this.syncPickerActiveColors(), [{
6592
6592
  icon: tn,
6593
- title: this.api.i18n.t(R),
6593
+ title: this.api.i18n.t(Oe),
6594
6594
  name: "callout-edit-icon",
6595
6595
  closeOnActivate: !0,
6596
6596
  onActivate: () => this.openEmojiPicker()
6597
6597
  }, {
6598
6598
  icon: er,
6599
- title: this.api.i18n.t(_e),
6599
+ title: this.api.i18n.t(ge),
6600
6600
  name: "callout-color",
6601
6601
  children: { items: [{
6602
6602
  type: H.Html,
@@ -6677,7 +6677,7 @@ var fc = {
6677
6677
  }
6678
6678
  static get conversionConfig() {
6679
6679
  return { import: (e) => ({
6680
- emoji: xe,
6680
+ emoji: be,
6681
6681
  textColor: null,
6682
6682
  backgroundColor: null,
6683
6683
  __importedText: e
@@ -7579,7 +7579,7 @@ var Cc = {
7579
7579
  }, Ic = [
7580
7580
  {
7581
7581
  type: "text",
7582
- icon: P,
7582
+ icon: F,
7583
7583
  labelKey: "tools.database.propertyTypeText"
7584
7584
  },
7585
7585
  {
@@ -7599,7 +7599,7 @@ var Cc = {
7599
7599
  },
7600
7600
  {
7601
7601
  type: "date",
7602
- icon: j,
7602
+ icon: M,
7603
7603
  labelKey: "tools.database.propertyTypeDate"
7604
7604
  },
7605
7605
  {
@@ -8939,7 +8939,7 @@ function Qc(e) {
8939
8939
  },
8940
8940
  {
8941
8941
  mode: "split",
8942
- icon: be,
8942
+ icon: ye,
8943
8943
  label: e.split
8944
8944
  }
8945
8945
  ];
@@ -8966,7 +8966,7 @@ function $c(e, t) {
8966
8966
  function el(e) {
8967
8967
  var t, n, r;
8968
8968
  let { code: i, languageName: a, readOnly: o, copyLabel: s, previewable: c, viewModeLabels: l } = e, u = document.createElement("div");
8969
- u.className = we;
8969
+ u.className = Ce;
8970
8970
  let d = document.createElement("div");
8971
8971
  d.className = Gt;
8972
8972
  let f = document.createElement("button");
@@ -8974,7 +8974,7 @@ function el(e) {
8974
8974
  let p = document.createElement("span");
8975
8975
  p.textContent = a, f.appendChild(p);
8976
8976
  let m = document.createElement("span");
8977
- m.className = "inline-flex items-center ml-0.5 -mr-0.5", m.innerHTML = F, f.appendChild(m);
8977
+ m.className = "inline-flex items-center ml-0.5 -mr-0.5", m.innerHTML = I, f.appendChild(m);
8978
8978
  let h = document.createElement("div");
8979
8979
  h.className = "flex-1";
8980
8980
  let g = !o && l ? Qc(l) : null, _ = (t = g == null ? void 0 : g.viewModeContainer) == null ? null : t, v = (n = g == null ? void 0 : g.previewElement) == null ? null : n, y = (r = g == null ? void 0 : g.splitContainer) == null ? null : r;
@@ -9375,23 +9375,23 @@ var _l = /* @__PURE__ */ e((/* @__PURE__ */ t(((e, t) => {
9375
9375
  var T = 1, E;
9376
9376
  if (v) {
9377
9377
  if (E = o(x, C, e, _), !E || E.index >= e.length) break;
9378
- var ee = E.index, te = E.index + E[0].length, D = C;
9379
- for (D += S.value.length; ee >= D;) S = S.next, D += S.value.length;
9380
- if (D -= S.value.length, C = D, S.value instanceof a) continue;
9381
- for (var O = S; O !== t.tail && (D < te || typeof O.value == "string"); O = O.next) T++, D += O.value.length;
9382
- T--, w = e.slice(C, D), E.index -= C;
9378
+ var D = E.index, ee = E.index + E[0].length, O = C;
9379
+ for (O += S.value.length; D >= O;) S = S.next, O += S.value.length;
9380
+ if (O -= S.value.length, C = O, S.value instanceof a) continue;
9381
+ for (var k = S; k !== t.tail && (O < ee || typeof k.value == "string"); k = k.next) T++, O += k.value.length;
9382
+ T--, w = e.slice(C, O), E.index -= C;
9383
9383
  } else if (E = o(x, 0, w, _), !E) continue;
9384
- var ee = E.index, k = E[0], ne = w.slice(0, ee), A = w.slice(ee + k.length), j = C + w.length;
9385
- d && j > d.reach && (d.reach = j);
9386
- var M = S.prev;
9387
- ne && (M = l(t, M, ne), C += ne.length), u(t, M, T);
9388
- var re = new a(f, g ? i.tokenize(k, g) : k, y, k);
9389
- if (S = l(t, M, re), A && l(t, S, A), T > 1) {
9390
- var N = {
9384
+ var D = E.index, A = E[0], te = w.slice(0, D), j = w.slice(D + A.length), M = C + w.length;
9385
+ d && M > d.reach && (d.reach = M);
9386
+ var N = S.prev;
9387
+ te && (N = l(t, N, te), C += te.length), u(t, N, T);
9388
+ var ne = new a(f, g ? i.tokenize(A, g) : A, y, A);
9389
+ if (S = l(t, N, ne), j && l(t, S, j), T > 1) {
9390
+ var P = {
9391
9391
  cause: f + "," + m,
9392
- reach: j
9392
+ reach: M
9393
9393
  };
9394
- s(e, t, n, S.prev, C, N), d && N.reach > d.reach && (d.reach = N.reach);
9394
+ s(e, t, n, S.prev, C, P), d && P.reach > d.reach && (d.reach = P.reach);
9395
9395
  }
9396
9396
  }
9397
9397
  }
@@ -10232,7 +10232,7 @@ var Hl = class {
10232
10232
  e && (i.push({
10233
10233
  title: e.name,
10234
10234
  secondaryLabel: "auto",
10235
- icon: le,
10235
+ icon: ce,
10236
10236
  onActivate: () => this.setLanguage(e.id),
10237
10237
  closeOnActivate: !0,
10238
10238
  isActive: () => this._data.language === e.id
@@ -10280,7 +10280,7 @@ var Hl = class {
10280
10280
  e && (r.push({
10281
10281
  title: e.name,
10282
10282
  name: e.id,
10283
- icon: le,
10283
+ icon: ce,
10284
10284
  toggle: "language",
10285
10285
  isActive: () => this._data.language === e.id,
10286
10286
  closeOnActivate: !0,
@@ -10539,59 +10539,67 @@ function ou(e, t) {
10539
10539
  });
10540
10540
  }
10541
10541
  function su(e) {
10542
- var t;
10543
- let { labels: n } = e, r = e.acceptTypes, i = r.length ? r.join(",") : "*", a = Zl(r), o = e.maxSize === void 0 ? "" : ql(e.maxSize), s = (t = e.swap) == null ? "reflow" : t, c = document.createElement("div");
10544
- c.className = "blok-media-empty", c.setAttribute("data-blok-media-empty-state", "");
10545
- let l = document.createElement("div");
10546
- l.className = "blok-media-empty__card", l.tabIndex = 0, l.setAttribute("role", "group"), l.setAttribute("aria-label", n.add);
10547
- let u = document.createElement("span");
10548
- u.className = "blok-media-empty__label", u.textContent = n.add;
10549
- let d = document.createElement("div");
10550
- d.className = "blok-media-empty__panel", d.id = `blok-media-empty-panel-${$l()}`, d.setAttribute("data-panel-host", ""), d.setAttribute("role", "tabpanel");
10551
- let f = document.createElement("div");
10552
- f.className = "blok-media-empty__tabs", f.setAttribute("role", "tablist"), f.setAttribute("aria-label", n.sourceAria);
10553
- let p = eu("upload", n.upload, d.id, !0), m = eu("embed", n.embed, d.id, !1);
10554
- f.append(p, m), d.setAttribute("aria-labelledby", p.id);
10555
- let h = [p, m], g = ["upload", "embed"], _ = document.createElement("div");
10556
- _.className = "blok-media-empty__drop-overlay", _.setAttribute("aria-hidden", "true");
10557
- let v = document.createElement("div");
10558
- v.className = "blok-media-empty__drop-inner", v.innerHTML = `<span class="blok-media-empty__drop-icon">${fe}</span><span>${n.dropToUpload}</span>`, _.appendChild(v);
10559
- let y = document.createElement("div");
10560
- y.className = "blok-media-empty__error", y.setAttribute("data-role", "error"), y.hidden = !0;
10561
- let b = document.createElement("input");
10562
- b.type = "file", b.accept = i, b.hidden = !0, b.setAttribute("data-blok-testid", "file-input"), b.addEventListener("change", () => {
10542
+ var t, n;
10543
+ let { labels: r } = e, i = e.acceptTypes, a = i.length ? i.join(",") : "*", o = Zl(i), s = e.maxSize === void 0 ? "" : ql(e.maxSize), c = (t = e.swap) == null ? "reflow" : t, l = (n = e.sources) == null ? "both" : n, u = l !== "url", d = l !== "upload", f = document.createElement("div");
10544
+ f.className = "blok-media-empty", f.setAttribute("data-blok-media-empty-state", "");
10545
+ let p = document.createElement("div");
10546
+ p.className = "blok-media-empty__card", p.tabIndex = 0, p.setAttribute("role", "group"), p.setAttribute("aria-label", r.add);
10547
+ let m = document.createElement("span");
10548
+ m.className = "blok-media-empty__label", m.textContent = r.add;
10549
+ let h = document.createElement("div");
10550
+ h.className = "blok-media-empty__panel", h.id = `blok-media-empty-panel-${$l()}`, h.setAttribute("data-panel-host", ""), h.setAttribute("role", "tabpanel");
10551
+ let g = u ? "upload" : "embed", _ = document.createElement("div");
10552
+ _.className = "blok-media-empty__tabs", _.setAttribute("role", "tablist"), _.setAttribute("aria-label", r.sourceAria);
10553
+ let v = [], y = [];
10554
+ if (u) {
10555
+ let e = eu("upload", r.upload, h.id, !0);
10556
+ _.append(e), v.push(e), y.push("upload");
10557
+ }
10558
+ if (d) {
10559
+ let e = eu("embed", r.embed, h.id, !u);
10560
+ _.append(e), v.push(e), y.push("embed");
10561
+ }
10562
+ h.setAttribute("aria-labelledby", v[0].id);
10563
+ let b = document.createElement("div");
10564
+ b.className = "blok-media-empty__drop-overlay", b.setAttribute("aria-hidden", "true");
10565
+ let x = document.createElement("div");
10566
+ x.className = "blok-media-empty__drop-inner", x.innerHTML = `<span class="blok-media-empty__drop-icon">${de}</span><span>${r.dropToUpload}</span>`, b.appendChild(x);
10567
+ let S = document.createElement("div");
10568
+ S.className = "blok-media-empty__error", S.setAttribute("data-role", "error"), S.hidden = !0;
10569
+ let C = document.createElement("input");
10570
+ C.type = "file", C.accept = a, C.hidden = !0, C.setAttribute("data-blok-testid", "file-input"), C.addEventListener("change", () => {
10563
10571
  var t;
10564
- let n = (t = b.files) == null ? void 0 : t[0];
10572
+ let n = (t = C.files) == null ? void 0 : t[0];
10565
10573
  n && e.onFile(n);
10566
10574
  });
10567
- let x = () => {
10568
- d.replaceChildren(), d.appendChild(Ql(Xe));
10575
+ let w = () => {
10576
+ h.replaceChildren(), h.appendChild(Ql(Xe));
10569
10577
  let e = document.createElement("div");
10570
10578
  e.className = "blok-media-empty__content";
10571
10579
  let t = document.createElement("div");
10572
10580
  t.className = "blok-media-empty__primary";
10573
- let r = document.createElement("button");
10574
- r.type = "button", r.className = "blok-media-empty__choose", r.setAttribute("data-action", "choose-file"), r.innerHTML = `<span class="blok-media-empty__choose-icon">${Pe}</span><span>${n.chooseFile}</span>`, r.addEventListener("click", (e) => {
10575
- e.stopPropagation(), b.click();
10581
+ let n = document.createElement("button");
10582
+ n.type = "button", n.className = "blok-media-empty__choose", n.setAttribute("data-action", "choose-file"), n.innerHTML = `<span class="blok-media-empty__choose-icon">${Pe}</span><span>${r.chooseFile}</span>`, n.addEventListener("click", (e) => {
10583
+ e.stopPropagation(), C.click();
10576
10584
  });
10577
10585
  let i = document.createElement("span");
10578
- i.className = "blok-media-empty__hint", i.textContent = n.orDropHere, t.append(r, i);
10579
- let s = document.createElement("div");
10580
- s.className = "blok-media-empty__meta";
10586
+ i.className = "blok-media-empty__hint", i.textContent = r.orDropHere, t.append(n, i);
10587
+ let a = document.createElement("div");
10588
+ a.className = "blok-media-empty__meta";
10581
10589
  let c = [];
10582
- a && c.push(a), o && n.maxSize && c.push(n.maxSize(o)), s.textContent = c.join(" · "), e.append(t), c.length && e.append(s), d.append(e, b);
10583
- }, S = () => {
10584
- d.replaceChildren();
10590
+ o && c.push(o), s && r.maxSize && c.push(r.maxSize(s)), a.textContent = c.join(" · "), e.append(t), c.length && e.append(a), h.append(e, C);
10591
+ }, T = () => {
10592
+ h.replaceChildren();
10585
10593
  let t = document.createElement("div");
10586
10594
  t.className = "blok-media-empty__embed-bar", t.setAttribute("data-valid", "false");
10587
- let r = document.createElement("span");
10588
- r.className = "blok-media-empty__embed-icon", r.setAttribute("aria-hidden", "true"), r.innerHTML = ce;
10595
+ let n = document.createElement("span");
10596
+ n.className = "blok-media-empty__embed-icon", n.setAttribute("aria-hidden", "true"), n.innerHTML = se;
10589
10597
  let i = document.createElement("input");
10590
- i.type = "url", i.className = "blok-media-empty__embed-input", i.placeholder = n.urlPlaceholder, i.setAttribute("aria-label", n.urlAria), i.autocomplete = "off", i.spellcheck = !1;
10598
+ i.type = "url", i.className = "blok-media-empty__embed-input", i.placeholder = r.urlPlaceholder, i.setAttribute("aria-label", r.urlAria), i.autocomplete = "off", i.spellcheck = !1;
10591
10599
  let a = document.createElement("button");
10592
10600
  a.type = "button", a.className = "blok-media-empty__embed-submit", a.setAttribute("data-action", "submit-url");
10593
10601
  let o = document.createElement("span");
10594
- o.className = "blok-media-empty__embed-submit-label", o.textContent = n.submit;
10602
+ o.className = "blok-media-empty__embed-submit-label", o.textContent = r.submit;
10595
10603
  let s = document.createElement("kbd");
10596
10604
  s.className = "blok-media-empty__embed-kbd", s.setAttribute("aria-hidden", "true"), s.textContent = "↵", a.append(o, s);
10597
10605
  let c = (e) => {
@@ -10614,69 +10622,71 @@ function su(e) {
10614
10622
  e.stopPropagation(), c(i.value) && u();
10615
10623
  }), i.addEventListener("click", (e) => e.stopPropagation()), i.addEventListener("input", l), i.addEventListener("keydown", (e) => {
10616
10624
  e.key === "Enter" && (e.preventDefault(), c(i.value) && u());
10617
- }), t.append(r, i, a), d.appendChild(t), l(), queueMicrotask(() => i.focus());
10618
- }, C = (e, t = !1) => {
10619
- let n = l.getAttribute("data-active-tab"), r = t && s !== "none" && ru(d) && !iu(), i = r && s === "reflow" ? d.getBoundingClientRect().height : null, a = n ? Math.sign(g.indexOf(e) - g.indexOf(n)) : 0, o = h[g.indexOf(e)];
10620
- for (let e of h) {
10625
+ }), t.append(n, i, a), h.appendChild(t), l(), queueMicrotask(() => i.focus());
10626
+ }, E = (e, t = !1) => {
10627
+ let n = p.getAttribute("data-active-tab"), r = t && c !== "none" && ru(h) && !iu(), i = r && c === "reflow" ? h.getBoundingClientRect().height : null, a = n ? Math.sign(y.indexOf(e) - y.indexOf(n)) : 0, o = v[y.indexOf(e)];
10628
+ for (let e of v) {
10621
10629
  let t = e === o;
10622
10630
  e.setAttribute("aria-selected", t ? "true" : "false"), e.tabIndex = t ? 0 : -1, t ? e.setAttribute("aria-current", "true") : e.removeAttribute("aria-current");
10623
10631
  }
10624
- d.setAttribute("aria-labelledby", o.id), l.setAttribute("data-active-tab", e), e === "upload" ? x() : S(), r && (s === "reflow" && i !== null ? au(d, i) : s === "slide" && ou(d, a));
10632
+ h.setAttribute("aria-labelledby", o.id), p.setAttribute("data-active-tab", e), e === "upload" ? w() : T(), r && (c === "reflow" && i !== null ? au(h, i) : c === "slide" && ou(h, a));
10625
10633
  };
10626
- h.forEach((e, t) => {
10634
+ if (v.forEach((e, t) => {
10627
10635
  e.addEventListener("click", (n) => {
10628
- n.stopPropagation(), C(g[t], !0), e.focus();
10636
+ n.stopPropagation(), E(y[t], !0), e.focus();
10629
10637
  }), e.addEventListener("keydown", (e) => {
10630
10638
  if (e.key === "ArrowRight" || e.key === "ArrowLeft") {
10631
10639
  e.preventDefault();
10632
- let n = (t + (e.key === "ArrowRight" ? 1 : -1) + h.length) % h.length;
10633
- C(g[n], !0), h[n].focus();
10634
- } else if (e.key === "Home") e.preventDefault(), C(g[0], !0), h[0].focus();
10640
+ let n = (t + (e.key === "ArrowRight" ? 1 : -1) + v.length) % v.length;
10641
+ E(y[n], !0), v[n].focus();
10642
+ } else if (e.key === "Home") e.preventDefault(), E(y[0], !0), v[0].focus();
10635
10643
  else if (e.key === "End") {
10636
10644
  e.preventDefault();
10637
- let t = h.length - 1;
10638
- C(g[t], !0), h[t].focus();
10645
+ let t = v.length - 1;
10646
+ E(y[t], !0), v[t].focus();
10639
10647
  }
10640
10648
  });
10641
- }), d.addEventListener("click", (e) => {
10642
- l.getAttribute("data-active-tab") === "upload" && (tu(e.target) || b.click());
10643
- }), l.addEventListener("keydown", (e) => {
10644
- e.target === l && l.getAttribute("data-active-tab") === "upload" && (e.key === "Enter" || e.key === " ") && (e.preventDefault(), b.click());
10645
- }), l.addEventListener("paste", (t) => {
10646
- if (l.getAttribute("data-active-tab") !== "upload") return;
10647
- let n = t.clipboardData;
10648
- if (n) for (let i of Array.from(n.items)) {
10649
- if (i.kind !== "file") continue;
10650
- let n = i.getAsFile();
10651
- if (n && (!r.length || Jl(n.type, r))) {
10652
- t.preventDefault(), e.onFile(n);
10653
- return;
10649
+ }), h.addEventListener("click", (e) => {
10650
+ p.getAttribute("data-active-tab") === "upload" && (tu(e.target) || C.click());
10651
+ }), p.addEventListener("keydown", (e) => {
10652
+ e.target === p && p.getAttribute("data-active-tab") === "upload" && (e.key === "Enter" || e.key === " ") && (e.preventDefault(), C.click());
10653
+ }), u) {
10654
+ p.addEventListener("paste", (t) => {
10655
+ if (p.getAttribute("data-active-tab") !== "upload") return;
10656
+ let n = t.clipboardData;
10657
+ if (n) for (let r of Array.from(n.items)) {
10658
+ if (r.kind !== "file") continue;
10659
+ let n = r.getAsFile();
10660
+ if (n && (!i.length || Jl(n.type, i))) {
10661
+ t.preventDefault(), e.onFile(n);
10662
+ return;
10663
+ }
10654
10664
  }
10655
- }
10656
- });
10657
- let w = { depth: 0 };
10658
- l.addEventListener("dragenter", (e) => {
10659
- var t;
10660
- (t = e.dataTransfer) != null && t.types.includes("Files") && (e.preventDefault(), w.depth += 1, l.classList.add("is-dragover"));
10661
- }), l.addEventListener("dragover", (e) => {
10662
- let t = e.dataTransfer;
10663
- t != null && t.types.includes("Files") && (e.preventDefault(), t.dropEffect = "copy");
10664
- }), l.addEventListener("dragleave", () => {
10665
- w.depth = Math.max(0, w.depth - 1), w.depth === 0 && l.classList.remove("is-dragover");
10666
- }), l.addEventListener("drop", (t) => {
10667
- var n;
10668
- t.preventDefault(), w.depth = 0, l.classList.remove("is-dragover");
10669
- let r = (n = t.dataTransfer) == null || (n = n.files) == null ? void 0 : n[0];
10670
- r && e.onFile(r);
10671
- });
10672
- let T = document.createElement("div");
10673
- return T.className = "blok-media-empty__header", T.append(u, f), l.append(T, d, _), c.append(l, y), C("upload"), c.setError = (e) => {
10665
+ });
10666
+ let t = { depth: 0 };
10667
+ p.addEventListener("dragenter", (e) => {
10668
+ var n;
10669
+ (n = e.dataTransfer) != null && n.types.includes("Files") && (e.preventDefault(), t.depth += 1, p.classList.add("is-dragover"));
10670
+ }), p.addEventListener("dragover", (e) => {
10671
+ let t = e.dataTransfer;
10672
+ t != null && t.types.includes("Files") && (e.preventDefault(), t.dropEffect = "copy");
10673
+ }), p.addEventListener("dragleave", () => {
10674
+ t.depth = Math.max(0, t.depth - 1), t.depth === 0 && p.classList.remove("is-dragover");
10675
+ }), p.addEventListener("drop", (n) => {
10676
+ var r;
10677
+ n.preventDefault(), t.depth = 0, p.classList.remove("is-dragover");
10678
+ let i = (r = n.dataTransfer) == null || (r = r.files) == null ? void 0 : r[0];
10679
+ i && e.onFile(i);
10680
+ });
10681
+ }
10682
+ let D = document.createElement("div");
10683
+ return D.className = "blok-media-empty__header", v.length > 1 ? D.append(m, _) : D.append(m), p.append(D, h), u && p.append(b), f.append(p, S), E(g), f.setError = (e) => {
10674
10684
  if (!e) {
10675
- y.hidden = !0, y.textContent = "";
10685
+ S.hidden = !0, S.textContent = "";
10676
10686
  return;
10677
10687
  }
10678
- y.hidden = !1, y.textContent = e;
10679
- }, c;
10688
+ S.hidden = !1, S.textContent = e;
10689
+ }, f;
10680
10690
  }
10681
10691
  //#endregion
10682
10692
  //#region src/tools/image/empty-state.ts
@@ -10686,6 +10696,7 @@ function cu(e) {
10686
10696
  return su({
10687
10697
  acceptTypes: (t = e.acceptTypes) == null ? [...Ul] : t,
10688
10698
  maxSize: e.maxSize,
10699
+ sources: e.sources,
10689
10700
  onFile: e.onFile,
10690
10701
  onUrl: e.onUrl,
10691
10702
  labels: {
@@ -11014,7 +11025,7 @@ function Ju(e) {
11014
11025
  let e = navigator.clipboard;
11015
11026
  e == null || e.writeText(u.url);
11016
11027
  },
11017
- onCollapse: () => ae()
11028
+ onCollapse: () => ie()
11018
11029
  }), C = () => {
11019
11030
  let e = S.querySelector("[data-action=\"zoom-reset\"]");
11020
11031
  e && (e.textContent = `${Math.round(m.value * 100)}%`);
@@ -11030,9 +11041,9 @@ function Ju(e) {
11030
11041
  if (r < 0 || r >= c.length) return;
11031
11042
  d.index = r;
11032
11043
  let i = c[r];
11033
- u.url = i.url, u.alt = i.alt, u.fileName = i.fileName, u.crop = i.crop, ne((n = i.origin) == null ? null : n), m.value = 1, g.x = 0, g.y = 0;
11044
+ u.url = i.url, u.alt = i.alt, u.fileName = i.fileName, u.crop = i.crop, te((n = i.origin) == null ? null : n), m.value = 1, g.x = 0, g.y = 0;
11034
11045
  let a = p.el, o = f(u);
11035
- a.replaceWith(o), p.el = o, _(), C(), w(), ee();
11046
+ a.replaceWith(o), p.el = o, _(), C(), w(), D();
11036
11047
  let s = e > 0 ? 160 : -160;
11037
11048
  Uu(o) && o.animate([{
11038
11049
  opacity: 0,
@@ -11077,60 +11088,60 @@ function Ju(e) {
11077
11088
  onNext: () => T(1)
11078
11089
  }) : null;
11079
11090
  E && o.appendChild(E);
11080
- function ee() {
11091
+ function D() {
11081
11092
  if (!E) return;
11082
11093
  let e = E.querySelector("[data-action=\"lightbox-prev\"]"), t = E.querySelector("[data-action=\"lightbox-next\"]");
11083
11094
  e && (e.disabled = d.index <= 0), t && (t.disabled = d.index >= c.length - 1);
11084
11095
  }
11085
- ee();
11086
- function te(e) {
11096
+ D();
11097
+ function ee(e) {
11087
11098
  return e instanceof Node ? !!(S.contains(e) || E && E.contains(e)) : !1;
11088
11099
  }
11089
11100
  document.body.appendChild(o), h(o);
11090
- let D = {
11101
+ let O = {
11091
11102
  img: null,
11092
11103
  backdrop: null,
11093
11104
  toolbar: null,
11094
11105
  nav: null,
11095
11106
  closing: !1
11096
- }, O = e.origin && e.origin.isConnected ? e.origin : null, k = {
11097
- el: O,
11098
- prevOpacity: O ? O.style.opacity : ""
11099
- }, ne = (e) => {
11107
+ }, k = e.origin && e.origin.isConnected ? e.origin : null, A = {
11108
+ el: k,
11109
+ prevOpacity: k ? k.style.opacity : ""
11110
+ }, te = (e) => {
11100
11111
  let t = e && e.isConnected ? e : null;
11101
- t !== k.el && (k.el && (k.el.style.opacity = k.prevOpacity), k.el = t, k.prevOpacity = t ? t.style.opacity : "", t && (t.style.opacity = "0"));
11102
- }, A = () => {
11112
+ t !== A.el && (A.el && (A.el.style.opacity = A.prevOpacity), A.el = t, A.prevOpacity = t ? t.style.opacity : "", t && (t.style.opacity = "0"));
11113
+ }, j = () => {
11103
11114
  var e, t, n, r;
11104
- (e = D.img) == null || e.cancel(), (t = D.backdrop) == null || t.cancel(), (n = D.toolbar) == null || n.cancel(), (r = D.nav) == null || r.cancel(), D.img = null, D.backdrop = null, D.toolbar = null, D.nav = null;
11105
- }, j = (e, t, n) => Uu(S) ? S.animate([{
11115
+ (e = O.img) == null || e.cancel(), (t = O.backdrop) == null || t.cancel(), (n = O.toolbar) == null || n.cancel(), (r = O.nav) == null || r.cancel(), O.img = null, O.backdrop = null, O.toolbar = null, O.nav = null;
11116
+ }, M = (e, t, n) => Uu(S) ? S.animate([{
11106
11117
  opacity: e.opacity,
11107
11118
  transform: `translate(-50%, ${e.y}px)`
11108
11119
  }, {
11109
11120
  opacity: t.opacity,
11110
11121
  transform: `translate(-50%, ${t.y}px)`
11111
- }], n) : null, M = (e, t, n) => !E || !Uu(E) ? null : E.animate([{
11122
+ }], n) : null, N = (e, t, n) => !E || !Uu(E) ? null : E.animate([{
11112
11123
  opacity: e.opacity,
11113
11124
  transform: `translate(${e.x}px, -50%)`
11114
11125
  }, {
11115
11126
  opacity: t.opacity,
11116
11127
  transform: `translate(${t.x}px, -50%)`
11117
- }], n), re = () => {
11118
- if (k.el && Uu(p.el)) {
11119
- let e = k.el.getBoundingClientRect(), t = p.el.getBoundingClientRect();
11128
+ }], n), ne = () => {
11129
+ if (A.el && Uu(p.el)) {
11130
+ let e = A.el.getBoundingClientRect(), t = p.el.getBoundingClientRect();
11120
11131
  if (e.width > 0 && e.height > 0 && t.width > 0 && t.height > 0) {
11121
11132
  let n = Hu(Vu(e, t));
11122
- k.el.style.opacity = "0", D.img = p.el.animate([{ transform: n }, { transform: "translate(0px, 0px) scale(1)" }], {
11133
+ A.el.style.opacity = "0", O.img = p.el.animate([{ transform: n }, { transform: "translate(0px, 0px) scale(1)" }], {
11123
11134
  duration: Lu,
11124
11135
  easing: zu,
11125
11136
  fill: "backwards"
11126
11137
  });
11127
11138
  }
11128
11139
  }
11129
- Uu(s) && (D.backdrop = s.animate([{ opacity: 0 }, { opacity: 1 }], {
11140
+ Uu(s) && (O.backdrop = s.animate([{ opacity: 0 }, { opacity: 1 }], {
11130
11141
  duration: 260,
11131
11142
  easing: "linear",
11132
11143
  fill: "backwards"
11133
- })), D.toolbar = j({
11144
+ })), O.toolbar = M({
11134
11145
  opacity: 0,
11135
11146
  y: 12
11136
11147
  }, {
@@ -11141,7 +11152,7 @@ function Ju(e) {
11141
11152
  delay: 140,
11142
11153
  easing: zu,
11143
11154
  fill: "both"
11144
- }), D.nav = M({
11155
+ }), O.nav = N({
11145
11156
  opacity: 0,
11146
11157
  x: -12
11147
11158
  }, {
@@ -11153,12 +11164,12 @@ function Ju(e) {
11153
11164
  easing: zu,
11154
11165
  fill: "both"
11155
11166
  });
11156
- }, N = () => {
11167
+ }, P = () => {
11157
11168
  var e;
11158
- document.removeEventListener("keydown", oe), sr(o), o.remove(), k.el && (k.el.style.opacity = k.prevOpacity), a == null || (e = a.focus) == null || e.call(a);
11159
- }, ie = () => {
11169
+ document.removeEventListener("keydown", ae), sr(o), o.remove(), A.el && (A.el.style.opacity = A.prevOpacity), a == null || (e = a.focus) == null || e.call(a);
11170
+ }, re = () => {
11160
11171
  if (!Uu(s)) {
11161
- N();
11172
+ P();
11162
11173
  return;
11163
11174
  }
11164
11175
  let e = s.animate([{ opacity: 1 }, { opacity: 0 }], {
@@ -11166,7 +11177,7 @@ function Ju(e) {
11166
11177
  easing: "linear",
11167
11178
  fill: "forwards"
11168
11179
  });
11169
- e.onfinish = N, e.oncancel = N, j({
11180
+ e.onfinish = P, e.oncancel = P, M({
11170
11181
  opacity: 1,
11171
11182
  y: 0
11172
11183
  }, {
@@ -11176,7 +11187,7 @@ function Ju(e) {
11176
11187
  duration: 180,
11177
11188
  easing: Bu,
11178
11189
  fill: "forwards"
11179
- }), M({
11190
+ }), N({
11180
11191
  opacity: 1,
11181
11192
  x: 0
11182
11193
  }, {
@@ -11187,10 +11198,10 @@ function Ju(e) {
11187
11198
  easing: Bu,
11188
11199
  fill: "forwards"
11189
11200
  });
11190
- }, P = (e) => {
11201
+ }, F = (e) => {
11191
11202
  let t = e.getBoundingClientRect();
11192
11203
  if (t.width === 0 || t.height === 0) {
11193
- N();
11204
+ P();
11194
11205
  return;
11195
11206
  }
11196
11207
  p.el.style.transition = "none";
@@ -11205,11 +11216,11 @@ function Ju(e) {
11205
11216
  easing: Bu,
11206
11217
  fill: "forwards"
11207
11218
  });
11208
- a.onfinish = N, a.oncancel = N, Uu(s) && s.animate([{ opacity: 1 }, { opacity: 0 }], {
11219
+ a.onfinish = P, a.oncancel = P, Uu(s) && s.animate([{ opacity: 1 }, { opacity: 0 }], {
11209
11220
  duration: Ru,
11210
11221
  easing: "linear",
11211
11222
  fill: "forwards"
11212
- }), j({
11223
+ }), M({
11213
11224
  opacity: 1,
11214
11225
  y: 0
11215
11226
  }, {
@@ -11219,7 +11230,7 @@ function Ju(e) {
11219
11230
  duration: 200,
11220
11231
  easing: Bu,
11221
11232
  fill: "forwards"
11222
- }), M({
11233
+ }), N({
11223
11234
  opacity: 1,
11224
11235
  x: 0
11225
11236
  }, {
@@ -11230,13 +11241,13 @@ function Ju(e) {
11230
11241
  easing: Bu,
11231
11242
  fill: "forwards"
11232
11243
  });
11233
- }, ae = () => {
11234
- D.closing || (D.closing = !0, A(), k.el && Uu(p.el) ? P(k.el) : ie());
11244
+ }, ie = () => {
11245
+ O.closing || (O.closing = !0, j(), A.el && Uu(p.el) ? F(A.el) : re());
11235
11246
  };
11236
- re();
11237
- let oe = (e) => {
11247
+ ne();
11248
+ let ae = (e) => {
11238
11249
  if (e.key === "Escape" || e.key === " ") {
11239
- e.preventDefault(), ae();
11250
+ e.preventDefault(), ie();
11240
11251
  return;
11241
11252
  }
11242
11253
  if (e.key === "+" || e.key === "=") {
@@ -11255,7 +11266,7 @@ function Ju(e) {
11255
11266
  e.preventDefault(), T(-1, "keyboard");
11256
11267
  return;
11257
11268
  }
11258
- }, F = {
11269
+ }, I = {
11259
11270
  pointerDown: !1,
11260
11271
  dragging: !1,
11261
11272
  startX: 0,
@@ -11264,46 +11275,46 @@ function Ju(e) {
11264
11275
  originY: 0
11265
11276
  };
11266
11277
  o.addEventListener("mousedown", (e) => {
11267
- te(e.target) || e.stopPropagation();
11278
+ ee(e.target) || e.stopPropagation();
11268
11279
  }), o.addEventListener("pointerdown", (e) => {
11269
- te(e.target) || (F.pointerDown = !0, F.dragging = !1, F.startX = e.clientX, F.startY = e.clientY, F.originX = g.x, F.originY = g.y, o.setPointerCapture(e.pointerId));
11280
+ ee(e.target) || (I.pointerDown = !0, I.dragging = !1, I.startX = e.clientX, I.startY = e.clientY, I.originX = g.x, I.originY = g.y, o.setPointerCapture(e.pointerId));
11270
11281
  }), o.addEventListener("pointermove", (e) => {
11271
- if (!F.pointerDown) return;
11272
- let t = e.clientX - F.startX, n = e.clientY - F.startY;
11273
- if (!F.dragging && Math.hypot(t, n) > 3 && (F.dragging = !0, o.classList.add("is-dragging")), !F.dragging) return;
11282
+ if (!I.pointerDown) return;
11283
+ let t = e.clientX - I.startX, n = e.clientY - I.startY;
11284
+ if (!I.dragging && Math.hypot(t, n) > 3 && (I.dragging = !0, o.classList.add("is-dragging")), !I.dragging) return;
11274
11285
  let r = b({
11275
- x: F.originX + t,
11276
- y: F.originY + n
11286
+ x: I.originX + t,
11287
+ y: I.originY + n
11277
11288
  });
11278
11289
  g.x = r.x, g.y = r.y, _();
11279
11290
  });
11280
- let se = () => {
11281
- if (F.pointerDown && (F.pointerDown = !1, o.classList.remove("is-dragging"), F.dragging)) {
11282
- F.dragging = !1;
11291
+ let oe = () => {
11292
+ if (I.pointerDown && (I.pointerDown = !1, o.classList.remove("is-dragging"), I.dragging)) {
11293
+ I.dragging = !1;
11283
11294
  let e = y(g);
11284
11295
  g.x = e.x, g.y = e.y, _();
11285
11296
  let t = (e) => {
11286
- te(e.target) || (e.stopPropagation(), o.removeEventListener("click", t, !0));
11297
+ ee(e.target) || (e.stopPropagation(), o.removeEventListener("click", t, !0));
11287
11298
  };
11288
11299
  o.addEventListener("click", t, !0);
11289
11300
  }
11290
11301
  };
11291
- o.addEventListener("pointerup", se), o.addEventListener("pointercancel", se);
11292
- let I = { timer: null };
11302
+ o.addEventListener("pointerup", oe), o.addEventListener("pointercancel", oe);
11303
+ let L = { timer: null };
11293
11304
  return o.addEventListener("wheel", (e) => {
11294
11305
  e.preventDefault();
11295
11306
  let t = Math.exp(-e.deltaY * qu), n = m.value, r = Math.min(Gu, Math.max(Wu, n * t)), i = r / n, a = o.getBoundingClientRect(), s = e.clientX - (a.left + a.width / 2), c = e.clientY - (a.top + a.height / 2);
11296
- g.x = s * (1 - i) + g.x * i, g.y = c * (1 - i) + g.y * i, o.classList.add("is-wheel-zooming"), I.timer !== null && clearTimeout(I.timer), I.timer = setTimeout(() => {
11297
- o.classList.remove("is-wheel-zooming"), I.timer = null;
11307
+ g.x = s * (1 - i) + g.x * i, g.y = c * (1 - i) + g.y * i, o.classList.add("is-wheel-zooming"), L.timer !== null && clearTimeout(L.timer), L.timer = setTimeout(() => {
11308
+ o.classList.remove("is-wheel-zooming"), L.timer = null;
11298
11309
  }, 120), x(r, { preservePan: !0 });
11299
11310
  }, { passive: !1 }), o.addEventListener("click", (e) => {
11300
- te(e.target) || ae();
11301
- }), document.addEventListener("keydown", oe), o.focus(), ae;
11311
+ ee(e.target) || ie();
11312
+ }), document.addEventListener("keydown", ae), o.focus(), ie;
11302
11313
  }
11303
11314
  function Yu(e) {
11304
11315
  let t = document.createElement("div");
11305
11316
  t.setAttribute("data-role", "lightbox-toolbar"), t.setAttribute("role", "toolbar"), t.setAttribute("aria-label", X(e.i18n, "tools.image.previewControls")), t.className = "blok-image-lightbox__bar", t.addEventListener("click", (e) => e.stopPropagation());
11306
- let n = dt, r = se, i = Rt, a = ce, o = Ht;
11317
+ let n = dt, r = oe, i = Rt, a = se, o = Ht;
11307
11318
  return $u(t, {
11308
11319
  action: "zoom-out",
11309
11320
  label: X(e.i18n, "tools.image.zoomOut"),
@@ -11391,7 +11402,7 @@ function rd(e) {
11391
11402
  action: "caption-toggle",
11392
11403
  label: X(e.i18n, "tools.image.toggleCaption"),
11393
11404
  pressed: e.state.captionVisible,
11394
- icon: O,
11405
+ icon: k,
11395
11406
  onClick: e.onToggleCaption
11396
11407
  }), od(t, {
11397
11408
  action: "replace",
@@ -11586,7 +11597,7 @@ function pd(e, t) {
11586
11597
  for (let e of ld) {
11587
11598
  let n = document.createElement("button");
11588
11599
  n.type = "button", n.className = "blok-image-crop-editor__ratio-chip", n.setAttribute("role", "radio"), n.setAttribute("data-ratio", e.key), n.setAttribute("data-active", String(e.key === c.ratioKey)), n.setAttribute("aria-checked", String(e.key === c.ratioKey)), n.textContent = X(t.i18n, e.i18nKey), n.addEventListener("click", (t) => {
11589
- t.stopPropagation(), te(e);
11600
+ t.stopPropagation(), ee(e);
11590
11601
  }), b.appendChild(n), x[e.key] = n;
11591
11602
  }
11592
11603
  let S = document.createElement("div");
@@ -11624,39 +11635,39 @@ function pd(e, t) {
11624
11635
  t.setAttribute("data-active", String(n)), t.setAttribute("aria-checked", String(n));
11625
11636
  }
11626
11637
  }
11627
- function ee() {
11638
+ function D() {
11628
11639
  let e = c.ratio === null;
11629
11640
  for (let t of sd) cd.has(t) || (v[t].hidden = !e);
11630
11641
  }
11631
- ee();
11632
- function te(e) {
11633
- c.ratio = e.value, c.ratioKey = e.key, c.shape = e.shape, g.setAttribute("data-shape", e.shape), h.setAttribute("data-shape", e.shape), E(), ee(), T(c.rect);
11642
+ D();
11643
+ function ee(e) {
11644
+ c.ratio = e.value, c.ratioKey = e.key, c.shape = e.shape, g.setAttribute("data-shape", e.shape), h.setAttribute("data-shape", e.shape), E(), D(), T(c.rect);
11634
11645
  }
11635
- for (let e of sd) v[e].addEventListener("pointerdown", (t) => O(t, e));
11646
+ for (let e of sd) v[e].addEventListener("pointerdown", (t) => k(t, e));
11636
11647
  g.addEventListener("pointerdown", (e) => {
11637
- e.target.closest("[data-handle]") || k(e);
11648
+ e.target.closest("[data-handle]") || A(e);
11638
11649
  });
11639
- function D(e, t) {
11650
+ function O(e, t) {
11640
11651
  let n = d.getBoundingClientRect();
11641
11652
  return {
11642
11653
  x: (e - n.left) / n.width * 100,
11643
11654
  y: (t - n.top) / n.height * 100
11644
11655
  };
11645
11656
  }
11646
- function O(e, t) {
11657
+ function k(e, t) {
11647
11658
  e.preventDefault(), e.stopPropagation();
11648
- let n = W({}, c.rect), r = D(e.clientX, e.clientY), i = (e) => {
11649
- let i = D(e.clientX, e.clientY);
11659
+ let n = W({}, c.rect), r = O(e.clientX, e.clientY), i = (e) => {
11660
+ let i = O(e.clientX, e.clientY);
11650
11661
  T(wu(n, t, i.x - r.x, i.y - r.y), t);
11651
11662
  }, a = () => {
11652
11663
  window.removeEventListener("pointermove", i), window.removeEventListener("pointerup", a);
11653
11664
  };
11654
11665
  window.addEventListener("pointermove", i), window.addEventListener("pointerup", a);
11655
11666
  }
11656
- function k(e) {
11667
+ function A(e) {
11657
11668
  e.preventDefault();
11658
- let t = W({}, c.rect), n = D(e.clientX, e.clientY), r = (e) => {
11659
- let r = D(e.clientX, e.clientY);
11669
+ let t = W({}, c.rect), n = O(e.clientX, e.clientY), r = (e) => {
11670
+ let r = O(e.clientX, e.clientY);
11660
11671
  T(W(W({}, t), {}, {
11661
11672
  x: t.x + (r.x - n.x),
11662
11673
  y: t.y + (r.y - n.y)
@@ -11666,7 +11677,7 @@ function pd(e, t) {
11666
11677
  };
11667
11678
  window.addEventListener("pointermove", r), window.addEventListener("pointerup", i);
11668
11679
  }
11669
- function ne() {
11680
+ function te() {
11670
11681
  let e = c.shape;
11671
11682
  if (e === "circle" || e === "ellipse") {
11672
11683
  t.onApply(W(W({}, c.rect), {}, { shape: e }));
@@ -11674,12 +11685,12 @@ function pd(e, t) {
11674
11685
  }
11675
11686
  t.onApply(Su(c.rect) ? null : c.rect);
11676
11687
  }
11677
- ud(S.querySelector("[data-action=\"done\"]"), "done button").addEventListener("click", ne), ud(S.querySelector("[data-action=\"cancel\"]"), "cancel button").addEventListener("click", () => t.onCancel()), ud(S.querySelector("[data-action=\"reset\"]"), "reset button").addEventListener("click", () => T(W({}, bu)));
11678
- let A = (e) => {
11679
- e.key === "Escape" ? (e.preventDefault(), t.onCancel()) : e.key === "Enter" && (e.preventDefault(), ne());
11688
+ ud(S.querySelector("[data-action=\"done\"]"), "done button").addEventListener("click", te), ud(S.querySelector("[data-action=\"cancel\"]"), "cancel button").addEventListener("click", () => t.onCancel()), ud(S.querySelector("[data-action=\"reset\"]"), "reset button").addEventListener("click", () => T(W({}, bu)));
11689
+ let j = (e) => {
11690
+ e.key === "Escape" ? (e.preventDefault(), t.onCancel()) : e.key === "Enter" && (e.preventDefault(), te());
11680
11691
  };
11681
- return document.addEventListener("keydown", A), () => {
11682
- document.removeEventListener("keydown", A), f.removeEventListener("load", C), l.remove();
11692
+ return document.addEventListener("keydown", j), () => {
11693
+ document.removeEventListener("keydown", j), f.removeEventListener("load", C), l.remove();
11683
11694
  };
11684
11695
  }
11685
11696
  //#endregion
@@ -11952,7 +11963,7 @@ function Ld(e) {
11952
11963
  let l = document.createElement("div");
11953
11964
  l.className = "blok-image-uploading__panel";
11954
11965
  let u = document.createElement("span");
11955
- u.className = "blok-image-uploading__tile", u.setAttribute("aria-hidden", "true"), u.innerHTML = me;
11966
+ u.className = "blok-image-uploading__tile", u.setAttribute("aria-hidden", "true"), u.innerHTML = pe;
11956
11967
  let d = document.createElement("div");
11957
11968
  d.className = "blok-image-uploading__content";
11958
11969
  let f = document.createElement("div");
@@ -12163,7 +12174,7 @@ var ef = class {
12163
12174
  }
12164
12175
  static get toolbox() {
12165
12176
  return {
12166
- icon: me,
12177
+ icon: pe,
12167
12178
  titleKey: "image",
12168
12179
  searchTerms: [
12169
12180
  "image",
@@ -12188,21 +12199,25 @@ var ef = class {
12188
12199
  };
12189
12200
  }
12190
12201
  onPaste(e) {
12202
+ let t = this.config.sources;
12191
12203
  if (e.type === "pattern") {
12192
- let t = e.detail;
12193
- this.shouldConvertGifUrl(t.data) ? this.startUrl(t.data) : this.applyResult({ url: t.data });
12204
+ if (t === "upload") return;
12205
+ let n = e.detail;
12206
+ this.shouldConvertGifUrl(n.data) ? this.startUrl(n.data) : this.applyResult({ url: n.data });
12194
12207
  return;
12195
12208
  }
12196
12209
  if (e.type === "tag") {
12197
- var t, n;
12198
- let r = e.detail.data, i = (t = r == null || (n = r.getAttribute) == null ? void 0 : n.call(r, "src")) == null ? "" : t;
12199
- if (!i) return;
12200
- this.startUrl(i);
12210
+ var n, r;
12211
+ if (t === "upload") return;
12212
+ let i = e.detail.data, a = (n = i == null || (r = i.getAttribute) == null ? void 0 : r.call(i, "src")) == null ? "" : n;
12213
+ if (!a) return;
12214
+ this.startUrl(a);
12201
12215
  return;
12202
12216
  }
12203
12217
  if (e.type === "file") {
12204
- let t = e.detail;
12205
- this.startUpload(t.file);
12218
+ if (t === "url") return;
12219
+ let n = e.detail;
12220
+ this.startUpload(n.file);
12206
12221
  }
12207
12222
  }
12208
12223
  startUpload(e) {
@@ -12362,14 +12377,14 @@ var ef = class {
12362
12377
  {
12363
12378
  value: "center",
12364
12379
  title: r.t("tools.image.alignmentCenter"),
12365
- icon: Ee
12380
+ icon: Te
12366
12381
  },
12367
12382
  {
12368
12383
  value: "right",
12369
12384
  title: r.t("tools.image.alignmentRight"),
12370
- icon: ie
12385
+ icon: re
12371
12386
  }
12372
- ], s = (t = (n = o.find((e) => e.value === i)) == null ? void 0 : n.icon) == null ? o[1].icon : t, c = nt, l = Ce, u = Wn, d = yr, f = nr;
12387
+ ], s = (t = (n = o.find((e) => e.value === i)) == null ? void 0 : n.icon) == null ? o[1].icon : t, c = nt, l = Se, u = Wn, d = yr, f = nr;
12373
12388
  return [
12374
12389
  {
12375
12390
  icon: s,
@@ -12555,6 +12570,7 @@ var ef = class {
12555
12570
  onUrl: (e) => this.startUrl(e),
12556
12571
  acceptTypes: this.config.types,
12557
12572
  maxSize: fu(this.config.maxSize),
12573
+ sources: this.config.sources,
12558
12574
  i18n: this.api.i18n
12559
12575
  });
12560
12576
  this.emptyStateEl = e, this.root.appendChild(e);
@@ -12831,6 +12847,7 @@ function of(e) {
12831
12847
  return su({
12832
12848
  acceptTypes: e.acceptTypes,
12833
12849
  maxSize: e.maxSize,
12850
+ sources: e.sources,
12834
12851
  onFile: e.onFile,
12835
12852
  onUrl: e.onUrl,
12836
12853
  labels: {
@@ -13005,8 +13022,8 @@ var yf = new Set([
13005
13022
  presentation: T,
13006
13023
  archive: He,
13007
13024
  audio: gn,
13008
- video: k,
13009
- image: me,
13025
+ video: A,
13026
+ image: pe,
13010
13027
  code: Ae,
13011
13028
  text: hr,
13012
13029
  generic: hr
@@ -13863,7 +13880,10 @@ var tm = /\.(png|jpe?g|gif|webp|svg)(?:[?#]|$)/i, nm = /\.(mp4|webm|ogg|mov|m4v)
13863
13880
  return (e = (t = this.root) == null ? void 0 : t.querySelector("[data-role=\"file-card\"]")) == null ? void 0 : e;
13864
13881
  }
13865
13882
  onPaste(e) {
13866
- e.type === "file" && this.startUpload(e.detail.file);
13883
+ if (e.type === "file") {
13884
+ if (this.config.sources === "url") return;
13885
+ this.startUpload(e.detail.file);
13886
+ }
13867
13887
  }
13868
13888
  renderSettings() {
13869
13889
  var e, t;
@@ -13878,7 +13898,7 @@ var tm = /\.(png|jpe?g|gif|webp|svg)(?:[?#]|$)/i, nm = /\.(mp4|webm|ogg|mov|m4v)
13878
13898
  onActivate: () => this.toggleCaption()
13879
13899
  },
13880
13900
  {
13881
- icon: Ce,
13901
+ icon: Se,
13882
13902
  title: n.t("tools.file.replace"),
13883
13903
  name: "file-replace",
13884
13904
  closeOnActivate: !0,
@@ -14033,6 +14053,7 @@ var tm = /\.(png|jpe?g|gif|webp|svg)(?:[?#]|$)/i, nm = /\.(mp4|webm|ogg|mov|m4v)
14033
14053
  var e;
14034
14054
  return of({
14035
14055
  acceptTypes: (e = this.config.types) == null ? [] : e,
14056
+ sources: this.config.sources,
14036
14057
  i18n: this.api.i18n,
14037
14058
  onFile: (e) => this.startUpload(e),
14038
14059
  onUrl: (e) => this.startUrl(e)
@@ -14093,6 +14114,7 @@ function lm(e) {
14093
14114
  return su({
14094
14115
  acceptTypes: (t = e.acceptTypes) == null ? [...im] : t,
14095
14116
  maxSize: e.maxSize,
14117
+ sources: e.sources,
14096
14118
  onFile: e.onFile,
14097
14119
  onUrl: e.onUrl,
14098
14120
  labels: {
@@ -14144,7 +14166,7 @@ function dm(e, t) {
14144
14166
  var e;
14145
14167
  if (!t.editable) return;
14146
14168
  let n = document.createElement("button");
14147
- return n.type = "button", n.className = "blok-audio-cover__change", n.setAttribute("data-role", "audio-cover-change"), n.setAttribute("aria-label", (e = t.coverChangeLabel) == null ? "Change cover" : e), n.innerHTML = me, i.appendChild(n), n;
14169
+ return n.type = "button", n.className = "blok-audio-cover__change", n.setAttribute("data-role", "audio-cover-change"), n.setAttribute("aria-label", (e = t.coverChangeLabel) == null ? "Change cover" : e), n.innerHTML = pe, i.appendChild(n), n;
14148
14170
  })(), s = um("audio-title", e.title, t.editable, t.titlePlaceholder);
14149
14171
  s.className = "blok-audio-title";
14150
14172
  let c = um("audio-artist", e.artist, t.editable, t.artistPlaceholder);
@@ -14344,72 +14366,72 @@ function Tm({ media: e, figure: t, data: n, storage: r, onLoopChange: i }) {
14344
14366
  typeof t.volume == "number" && (a.volume = t.volume, y.value = String(t.volume)), typeof t.muted == "boolean" && (a.muted = t.muted), x();
14345
14367
  } catch (e) {}
14346
14368
  })();
14347
- let ee = () => {
14369
+ let D = () => {
14348
14370
  let e = c(C());
14349
14371
  if (e === null) return;
14350
14372
  let t = Number(e), n = Number.isFinite(a.duration) ? a.duration : 0;
14351
14373
  Number.isFinite(t) && t > 0 && n > 5 && t < n - 5 && (a.currentTime = t);
14352
- }, te = [
14374
+ }, ee = [
14353
14375
  .5,
14354
14376
  1,
14355
14377
  1.5,
14356
14378
  2
14357
- ], D = .25, O = .05, k = (e) => Math.min(2, Math.max(D, Math.round(e * 100) / 100)), ne = (e) => `${e}×`, A = wm("audio-speed", "Playback speed", Dt || pr);
14358
- A.setAttribute("aria-haspopup", "menu"), A.setAttribute("aria-expanded", "false");
14359
- let j = document.createElement("div");
14360
- j.className = "blok-audio-controls__speed-menu", j.setAttribute("role", "menu"), j.hidden = !0;
14379
+ ], O = .25, k = .05, A = (e) => Math.min(2, Math.max(O, Math.round(e * 100) / 100)), te = (e) => `${e}×`, j = wm("audio-speed", "Playback speed", Dt || pr);
14380
+ j.setAttribute("aria-haspopup", "menu"), j.setAttribute("aria-expanded", "false");
14361
14381
  let M = document.createElement("div");
14362
- M.className = "blok-audio-controls__speed-readout", M.setAttribute("aria-hidden", "true"), M.textContent = ne(f.selectedRate);
14363
- let re = (e, t) => {
14382
+ M.className = "blok-audio-controls__speed-menu", M.setAttribute("role", "menu"), M.hidden = !0;
14383
+ let N = document.createElement("div");
14384
+ N.className = "blok-audio-controls__speed-readout", N.setAttribute("aria-hidden", "true"), N.textContent = te(f.selectedRate);
14385
+ let ne = (e, t) => {
14364
14386
  let n = document.createElement("button");
14365
14387
  return n.type = "button", n.className = "blok-audio-controls__speed-step", n.setAttribute("aria-label", t), n.innerHTML = e, n;
14366
- }, N = re(kn, "Decrease playback speed"), ie = re(Ke, "Increase playback speed"), P = document.createElement("input");
14367
- P.type = "range", P.className = "blok-audio-controls__speed-slider", P.min = "0.25", P.max = "2", P.step = "0.05", P.value = String(f.selectedRate), P.setAttribute("aria-label", "Playback speed");
14368
- let ae = (e) => `${(e - D) / (2 - D) * 100}%`;
14369
- P.style.setProperty("--blok-audio-speed-pct", ae(f.selectedRate));
14370
- let oe = (e) => {
14371
- let t = k(e);
14372
- f.selectedRate = t, a.playbackRate = t, M.textContent = ne(t), P.value = String(t), P.setAttribute("aria-valuetext", ne(t)), P.style.setProperty("--blok-audio-speed-pct", ae(t)), N.disabled = t <= D, ie.disabled = t >= 2;
14373
- }, F = () => oe(Number(P.value));
14374
- P.addEventListener("input", F), N.addEventListener("click", () => oe(f.selectedRate - O)), ie.addEventListener("click", () => oe(f.selectedRate + O)), N.disabled = f.selectedRate <= D, ie.disabled = f.selectedRate >= 2;
14375
- let se = document.createElement("div");
14376
- se.className = "blok-audio-controls__speed-slider-row", se.append(N, P, ie);
14377
- let I = document.createElement("div");
14378
- I.className = "blok-audio-controls__speed-chips", te.forEach((e) => {
14388
+ }, P = ne(kn, "Decrease playback speed"), re = ne(Ke, "Increase playback speed"), F = document.createElement("input");
14389
+ F.type = "range", F.className = "blok-audio-controls__speed-slider", F.min = "0.25", F.max = "2", F.step = "0.05", F.value = String(f.selectedRate), F.setAttribute("aria-label", "Playback speed");
14390
+ let ie = (e) => `${(e - O) / (2 - O) * 100}%`;
14391
+ F.style.setProperty("--blok-audio-speed-pct", ie(f.selectedRate));
14392
+ let ae = (e) => {
14393
+ let t = A(e);
14394
+ f.selectedRate = t, a.playbackRate = t, N.textContent = te(t), F.value = String(t), F.setAttribute("aria-valuetext", te(t)), F.style.setProperty("--blok-audio-speed-pct", ie(t)), P.disabled = t <= O, re.disabled = t >= 2;
14395
+ }, I = () => ae(Number(F.value));
14396
+ F.addEventListener("input", I), P.addEventListener("click", () => ae(f.selectedRate - k)), re.addEventListener("click", () => ae(f.selectedRate + k)), P.disabled = f.selectedRate <= O, re.disabled = f.selectedRate >= 2;
14397
+ let oe = document.createElement("div");
14398
+ oe.className = "blok-audio-controls__speed-slider-row", oe.append(P, F, re);
14399
+ let L = document.createElement("div");
14400
+ L.className = "blok-audio-controls__speed-chips", ee.forEach((e) => {
14379
14401
  let t = document.createElement("button");
14380
- t.type = "button", t.className = "blok-audio-controls__speed-chip", t.textContent = `${e}×`, t.addEventListener("click", () => oe(e)), I.appendChild(t);
14381
- }), j.append(M, se, I);
14382
- let ce = document.createElement("div");
14383
- ce.className = "blok-audio-controls__speed-wrap", ce.append(A, j);
14384
- let le = () => {
14385
- j.hidden && (j.hidden = !1, A.setAttribute("aria-expanded", "true"), document.addEventListener("mousedown", de));
14386
- }, ue = () => {
14387
- j.hidden || (j.hidden = !0, A.setAttribute("aria-expanded", "false"), document.removeEventListener("mousedown", de));
14388
- }, de = (e) => {
14402
+ t.type = "button", t.className = "blok-audio-controls__speed-chip", t.textContent = `${e}×`, t.addEventListener("click", () => ae(e)), L.appendChild(t);
14403
+ }), M.append(N, oe, L);
14404
+ let se = document.createElement("div");
14405
+ se.className = "blok-audio-controls__speed-wrap", se.append(j, M);
14406
+ let ce = () => {
14407
+ M.hidden && (M.hidden = !1, j.setAttribute("aria-expanded", "true"), document.addEventListener("mousedown", ue));
14408
+ }, le = () => {
14409
+ M.hidden || (M.hidden = !0, j.setAttribute("aria-expanded", "false"), document.removeEventListener("mousedown", ue));
14410
+ }, ue = (e) => {
14389
14411
  let t = e.target;
14390
- t && (A.contains(t) || j.contains(t)) || ue();
14391
- }, fe = (e) => {
14392
- e.stopPropagation(), j.hidden ? le() : ue();
14412
+ t && (j.contains(t) || M.contains(t)) || le();
14413
+ }, de = (e) => {
14414
+ e.stopPropagation(), M.hidden ? ce() : le();
14393
14415
  };
14394
- A.addEventListener("click", fe);
14395
- let L = wm("audio-loop", "Loop", Yt);
14396
- L.setAttribute("aria-pressed", String(a.loop));
14397
- let pe = document.createElement("div");
14398
- pe.className = "blok-audio-controls__volume-wrap", pe.append(v, y), u.append(d, h, pe, ce, L);
14399
- let me = () => {
14416
+ j.addEventListener("click", de);
14417
+ let R = wm("audio-loop", "Loop", Yt);
14418
+ R.setAttribute("aria-pressed", String(a.loop));
14419
+ let fe = document.createElement("div");
14420
+ fe.className = "blok-audio-controls__volume-wrap", fe.append(v, y), u.append(d, h, fe, se, R);
14421
+ let pe = () => {
14400
14422
  f.playing ? a.pause() : a.play();
14401
- }, he = () => {
14423
+ }, me = () => {
14402
14424
  a.muted = !a.muted, x(), w();
14403
- }, ge = () => {
14425
+ }, he = () => {
14404
14426
  let e = Number(y.value);
14405
14427
  a.volume = e, a.muted = e === 0, x(), w();
14406
- }, _e = () => {
14407
- a.loop = !a.loop, L.setAttribute("aria-pressed", String(a.loop)), i == null || i(a.loop);
14408
- }, ve = () => m(!0), ye = () => m(!1), be = () => {
14428
+ }, ge = () => {
14429
+ a.loop = !a.loop, R.setAttribute("aria-pressed", String(a.loop)), i == null || i(a.loop);
14430
+ }, _e = () => m(!0), ve = () => m(!1), ye = () => {
14409
14431
  _(), E();
14410
- }, xe = () => {
14411
- _(), ee();
14412
- }, Se = () => x(), Ce = .05, we = (e) => {
14432
+ }, be = () => {
14433
+ _(), D();
14434
+ }, xe = () => x(), Se = .05, Ce = (e) => {
14413
14435
  var t, n;
14414
14436
  if (!((t = e.target) == null || (n = t.matches) == null) && n.call(t, "[contenteditable=\"true\"]") || e.metaKey || e.ctrlKey || e.altKey) return;
14415
14437
  let r = Number.isFinite(a.duration) ? a.duration : 0;
@@ -14417,7 +14439,7 @@ function Tm({ media: e, figure: t, data: n, storage: r, onLoopChange: i }) {
14417
14439
  case " ":
14418
14440
  case "Spacebar":
14419
14441
  case "k":
14420
- e.preventDefault(), me();
14442
+ e.preventDefault(), pe();
14421
14443
  break;
14422
14444
  case "ArrowLeft":
14423
14445
  e.preventDefault(), a.currentTime = Math.max(0, a.currentTime - 5);
@@ -14426,21 +14448,21 @@ function Tm({ media: e, figure: t, data: n, storage: r, onLoopChange: i }) {
14426
14448
  e.preventDefault(), a.currentTime = Math.min(r || a.currentTime, a.currentTime + 5);
14427
14449
  break;
14428
14450
  case "m":
14429
- e.preventDefault(), he();
14451
+ e.preventDefault(), me();
14430
14452
  break;
14431
14453
  case "ArrowUp":
14432
- e.preventDefault(), a.volume = Math.min(1, a.volume + Ce), x(), w();
14454
+ e.preventDefault(), a.volume = Math.min(1, a.volume + Se), x(), w();
14433
14455
  break;
14434
14456
  case "ArrowDown":
14435
- e.preventDefault(), a.volume = Math.max(0, a.volume - Ce), x(), w();
14457
+ e.preventDefault(), a.volume = Math.max(0, a.volume - Se), x(), w();
14436
14458
  break;
14437
14459
  default: e.key.length === 1 && e.key >= "0" && e.key <= "9" && r > 0 && (e.preventDefault(), a.currentTime = r * Number(e.key) / 10);
14438
14460
  }
14439
14461
  };
14440
- return d.addEventListener("click", me), v.addEventListener("click", he), y.addEventListener("input", ge), L.addEventListener("click", _e), a.addEventListener("play", ve), a.addEventListener("pause", ye), a.addEventListener("timeupdate", be), a.addEventListener("loadedmetadata", xe), a.addEventListener("volumechange", Se), t.addEventListener("keydown", we), {
14462
+ return d.addEventListener("click", pe), v.addEventListener("click", me), y.addEventListener("input", he), R.addEventListener("click", ge), a.addEventListener("play", _e), a.addEventListener("pause", ve), a.addEventListener("timeupdate", ye), a.addEventListener("loadedmetadata", be), a.addEventListener("volumechange", xe), t.addEventListener("keydown", Ce), {
14441
14463
  element: u,
14442
14464
  destroy: () => {
14443
- p.destroy(), ue(), d.removeEventListener("click", me), v.removeEventListener("click", he), y.removeEventListener("input", ge), L.removeEventListener("click", _e), A.removeEventListener("click", fe), P.removeEventListener("input", F), a.removeEventListener("play", ve), a.removeEventListener("pause", ye), a.removeEventListener("timeupdate", be), a.removeEventListener("loadedmetadata", xe), a.removeEventListener("volumechange", Se), t.removeEventListener("keydown", we), j.remove(), u.remove();
14465
+ p.destroy(), le(), d.removeEventListener("click", pe), v.removeEventListener("click", me), y.removeEventListener("input", he), R.removeEventListener("click", ge), j.removeEventListener("click", de), F.removeEventListener("input", I), a.removeEventListener("play", _e), a.removeEventListener("pause", ve), a.removeEventListener("timeupdate", ye), a.removeEventListener("loadedmetadata", be), a.removeEventListener("volumechange", xe), t.removeEventListener("keydown", Ce), M.remove(), u.remove();
14444
14466
  }
14445
14467
  };
14446
14468
  }
@@ -14704,11 +14726,16 @@ var Qm = class {
14704
14726
  };
14705
14727
  }
14706
14728
  onPaste(e) {
14729
+ let t = this.config.sources;
14707
14730
  if (e.type === "pattern") {
14731
+ if (t === "upload") return;
14708
14732
  this.applyResult({ url: e.detail.data });
14709
14733
  return;
14710
14734
  }
14711
- e.type === "file" && this.startUpload(e.detail.file);
14735
+ if (e.type === "file") {
14736
+ if (t === "url") return;
14737
+ this.startUpload(e.detail.file);
14738
+ }
14712
14739
  }
14713
14740
  getToolbarAnchorElement() {
14714
14741
  var e, t, n, r;
@@ -14728,12 +14755,12 @@ var Qm = class {
14728
14755
  {
14729
14756
  value: "center",
14730
14757
  title: Z(r, "tools.audio.alignmentCenter", "Align center"),
14731
- icon: Ee
14758
+ icon: Te
14732
14759
  },
14733
14760
  {
14734
14761
  value: "right",
14735
14762
  title: Z(r, "tools.audio.alignmentRight", "Align right"),
14736
- icon: ie
14763
+ icon: re
14737
14764
  }
14738
14765
  ];
14739
14766
  return [
@@ -14767,14 +14794,14 @@ var Qm = class {
14767
14794
  onActivate: () => this.toggleLoop()
14768
14795
  },
14769
14796
  {
14770
- icon: Ce,
14797
+ icon: Se,
14771
14798
  title: Z(r, "tools.audio.replace", "Replace audio"),
14772
14799
  name: "audio-replace",
14773
14800
  closeOnActivate: !0,
14774
14801
  onActivate: () => this.transitionToEmpty()
14775
14802
  },
14776
14803
  {
14777
- icon: me,
14804
+ icon: pe,
14778
14805
  title: Z(r, "tools.audio.coverSet", "Set cover image"),
14779
14806
  name: "audio-cover-set",
14780
14807
  closeOnActivate: !0,
@@ -14880,6 +14907,7 @@ var Qm = class {
14880
14907
  onUrl: (e) => this.startUrl(e),
14881
14908
  acceptTypes: this.config.types,
14882
14909
  maxSize: fu(this.config.maxSize),
14910
+ sources: this.config.sources,
14883
14911
  i18n: this.api.i18n
14884
14912
  });
14885
14913
  this.root.appendChild(e);
@@ -15058,6 +15086,7 @@ function ih(e) {
15058
15086
  return su({
15059
15087
  acceptTypes: (t = e.acceptTypes) == null ? [...eh] : t,
15060
15088
  maxSize: e.maxSize,
15089
+ sources: e.sources,
15061
15090
  onFile: e.onFile,
15062
15091
  onUrl: e.onUrl,
15063
15092
  labels: {
@@ -15160,152 +15189,152 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15160
15189
  w.setAttribute("aria-pressed", "false");
15161
15190
  let T = document.createElement("input");
15162
15191
  T.type = "range", T.min = "0", T.max = "1", T.step = "0.05", T.value = "1", T.className = "blok-video-controls__volume", T.setAttribute("data-role", "volume"), T.setAttribute("aria-label", "Volume");
15163
- let E = fh("fullscreen", "Fullscreen", yr), ee = document.createElement("div");
15164
- ee.className = "blok-video-controls__volume-wrap", ee.append(w, T), p.append(m, ee, C, v, E), s.appendChild(p);
15165
- let te = document.createElement("div");
15166
- te.className = "blok-video-controls__mini", te.setAttribute("data-role", "mini-progress"), te.setAttribute("aria-hidden", "true"), s.appendChild(te);
15167
- let D = document.createElement("div");
15168
- D.className = "blok-video-controls__title", D.setAttribute("data-role", "video-title"), D.hidden = !0, s.appendChild(D);
15169
- let O = e;
15170
- O.loop = i;
15171
- let k = {
15192
+ let E = fh("fullscreen", "Fullscreen", yr), D = document.createElement("div");
15193
+ D.className = "blok-video-controls__volume-wrap", D.append(w, T), p.append(m, D, C, v, E), s.appendChild(p);
15194
+ let ee = document.createElement("div");
15195
+ ee.className = "blok-video-controls__mini", ee.setAttribute("data-role", "mini-progress"), ee.setAttribute("aria-hidden", "true"), s.appendChild(ee);
15196
+ let O = document.createElement("div");
15197
+ O.className = "blok-video-controls__title", O.setAttribute("data-role", "video-title"), O.hidden = !0, s.appendChild(O);
15198
+ let k = e;
15199
+ k.loop = i;
15200
+ let A = {
15172
15201
  playing: !1,
15173
15202
  selectedRate: 1,
15174
15203
  timeMode: "elapsed",
15175
15204
  idleTimer: 0
15176
- }, ne = (e) => {
15177
- k.playing = e, t.setAttribute("data-playing", String(e)), m.innerHTML = e ? vt : _r, m.setAttribute("aria-label", e ? "Pause" : "Play");
15205
+ }, te = (e) => {
15206
+ A.playing = e, t.setAttribute("data-playing", String(e)), m.innerHTML = e ? vt : _r, m.setAttribute("aria-label", e ? "Pause" : "Play");
15178
15207
  };
15179
- ne(!1);
15180
- let A = () => {
15181
- if (k.timeMode === "remaining") {
15208
+ te(!1);
15209
+ let j = () => {
15210
+ if (A.timeMode === "remaining") {
15182
15211
  let t = Number.isFinite(e.duration) ? e.duration : 0;
15183
15212
  C.textContent = `-${ch(Math.max(0, t - e.currentTime))}`;
15184
15213
  } else C.textContent = `${ch(e.currentTime)} / ${ch(e.duration)}`;
15185
- }, j = () => {
15186
- k.timeMode = k.timeMode === "elapsed" ? "remaining" : "elapsed", A();
15187
15214
  }, M = () => {
15188
- d.hidden = k.playing || e.currentTime > 0;
15189
- }, re = () => f.setAttribute("data-active", "true"), N = () => {
15190
- f.setAttribute("data-active", "false"), M();
15191
- }, ie = () => f.setAttribute("data-active", "false"), P = () => {
15215
+ A.timeMode = A.timeMode === "elapsed" ? "remaining" : "elapsed", j();
15216
+ }, N = () => {
15217
+ d.hidden = A.playing || e.currentTime > 0;
15218
+ }, ne = () => f.setAttribute("data-active", "true"), P = () => {
15219
+ f.setAttribute("data-active", "false"), N();
15220
+ }, re = () => f.setAttribute("data-active", "false"), F = () => {
15192
15221
  let e = Number(_.max) || 0, t = e > 0 ? Number(_.value) / e * 100 : 0;
15193
15222
  s.style.setProperty("--blok-seek-pct", `${t}%`);
15194
- }, ae = () => {
15223
+ }, ie = () => {
15195
15224
  let t = lh(e.buffered, e.currentTime, e.duration);
15196
15225
  y.style.setProperty("--blok-buffered-pct", `${t}%`);
15197
- }, oe = () => {
15226
+ }, ae = () => {
15198
15227
  let t = Number.isFinite(e.duration) ? e.duration : 0;
15199
- _.max = String(t), P(), ae(), A();
15200
- }, F = () => {
15201
- _.value = String(e.currentTime), P(), ae(), A();
15202
- }, se = () => ae(), I = {
15228
+ _.max = String(t), F(), ie(), j();
15229
+ }, I = () => {
15230
+ _.value = String(e.currentTime), F(), ie(), j();
15231
+ }, oe = () => ie(), L = {
15203
15232
  raf: 0,
15204
15233
  scrubbing: !1
15234
+ }, se = () => {
15235
+ L.scrubbing || (_.value = String(e.currentTime)), F(), L.raf = requestAnimationFrame(se);
15205
15236
  }, ce = () => {
15206
- I.scrubbing || (_.value = String(e.currentTime)), P(), I.raf = requestAnimationFrame(ce);
15237
+ L.raf || (L.raf = requestAnimationFrame(se));
15207
15238
  }, le = () => {
15208
- I.raf || (I.raf = requestAnimationFrame(ce));
15239
+ L.raf && (cancelAnimationFrame(L.raf), L.raf = 0);
15209
15240
  }, ue = () => {
15210
- I.raf && (cancelAnimationFrame(I.raf), I.raf = 0);
15241
+ L.scrubbing = !0;
15211
15242
  }, de = () => {
15212
- I.scrubbing = !0;
15213
- }, fe = () => {
15214
- I.scrubbing = !1;
15215
- }, L = {
15243
+ L.scrubbing = !1;
15244
+ }, R = {
15216
15245
  el: null,
15217
15246
  ready: !1,
15218
15247
  busy: !1,
15219
15248
  pendingTime: -1
15220
- }, pe = () => {
15221
- L.busy = !1;
15249
+ }, fe = () => {
15250
+ R.busy = !1;
15222
15251
  let e = x.getContext("2d");
15223
- e && L.el && L.el.videoWidth > 0 && (x.width = 160, x.height = Math.round(160 * (L.el.videoHeight / L.el.videoWidth)), e.drawImage(L.el, 0, 0, x.width, x.height), x.setAttribute("data-ready", "true")), L.pendingTime >= 0 && L.el && Math.abs(L.el.currentTime - L.pendingTime) > .05 && me(L.pendingTime);
15252
+ e && R.el && R.el.videoWidth > 0 && (x.width = 160, x.height = Math.round(160 * (R.el.videoHeight / R.el.videoWidth)), e.drawImage(R.el, 0, 0, x.width, x.height), x.setAttribute("data-ready", "true")), R.pendingTime >= 0 && R.el && Math.abs(R.el.currentTime - R.pendingTime) > .05 && pe(R.pendingTime);
15224
15253
  };
15225
- function me(e) {
15226
- L.pendingTime = e, !(!L.el || !L.ready || L.busy) && (L.busy = !0, L.el.currentTime = e);
15254
+ function pe(e) {
15255
+ R.pendingTime = e, !(!R.el || !R.ready || R.busy) && (R.busy = !0, R.el.currentTime = e);
15227
15256
  }
15228
- let he = () => {
15229
- if (L.el) return;
15257
+ let me = () => {
15258
+ if (R.el) return;
15230
15259
  let t = e.currentSrc || e.getAttribute("src") || "";
15231
15260
  if (!t) return;
15232
15261
  let n = document.createElement("video");
15233
15262
  n.className = "blok-video-controls__preview-source", n.setAttribute("data-role", "seek-preview-source"), n.muted = !0, n.preload = "auto", e.crossOrigin && (n.crossOrigin = e.crossOrigin), n.src = t, n.addEventListener("loadeddata", () => {
15234
- L.ready = !0, L.pendingTime >= 0 && me(L.pendingTime);
15235
- }), n.addEventListener("seeked", pe), L.el = n, s.appendChild(n);
15236
- }, ge = (t) => {
15263
+ R.ready = !0, R.pendingTime >= 0 && pe(R.pendingTime);
15264
+ }), n.addEventListener("seeked", fe), R.el = n, s.appendChild(n);
15265
+ }, he = (t) => {
15237
15266
  let n = _.getBoundingClientRect(), r = dh(t.clientX, n), i = uh(r, e.duration);
15238
- S.textContent = ch(i), b.style.setProperty("--blok-tooltip-x", `${r * 100}%`), b.setAttribute("aria-hidden", "false"), Number.isFinite(e.duration) && e.duration > 0 && (he(), me(i));
15239
- }, _e = () => {
15240
- b.setAttribute("aria-hidden", "true"), L.pendingTime = -1;
15241
- }, ve = () => ne(!0), ye = () => ne(!1), be = () => e.muted || e.volume === 0, xe = () => {
15267
+ S.textContent = ch(i), b.style.setProperty("--blok-tooltip-x", `${r * 100}%`), b.setAttribute("aria-hidden", "false"), Number.isFinite(e.duration) && e.duration > 0 && (me(), pe(i));
15268
+ }, ge = () => {
15269
+ b.setAttribute("aria-hidden", "true"), R.pendingTime = -1;
15270
+ }, _e = () => te(!0), ve = () => te(!1), ye = () => e.muted || e.volume === 0, be = () => {
15242
15271
  w.classList.remove("is-bumped"), w.offsetWidth, w.classList.add("is-bumped");
15243
- }, Se = () => {
15244
- let t = be();
15272
+ }, xe = () => {
15273
+ let t = ye();
15245
15274
  w.setAttribute("aria-pressed", String(t)), w.innerHTML = t ? cr : g, w.setAttribute("aria-label", t ? "Unmute" : "Mute"), T.value = t ? "0" : String(e.volume), T.style.setProperty("--blok-vol-pct", `${Number(T.value) * 100}%`);
15246
- }, Ce = (e) => {
15247
- let t = be();
15248
- e(), Se(), be() !== t && xe();
15249
- }, we = () => w.classList.remove("is-bumped"), Te = () => {
15275
+ }, Se = (e) => {
15276
+ let t = ye();
15277
+ e(), xe(), ye() !== t && be();
15278
+ }, Ce = () => w.classList.remove("is-bumped"), we = () => {
15250
15279
  let e = document.fullscreenElement === t;
15251
15280
  if (t.setAttribute("data-fullscreen", String(e)), E.innerHTML = e ? $t : yr, E.setAttribute("aria-label", e ? "Exit fullscreen" : "Fullscreen"), e) {
15252
15281
  var n, r;
15253
15282
  let e = (n = (r = t.querySelector("[data-role=\"video-caption\"]")) == null || (r = r.textContent) == null ? void 0 : r.trim()) == null ? "" : n;
15254
- D.textContent = e, D.hidden = e.length === 0;
15255
- } else D.hidden = !0, D.textContent = "";
15256
- }, Ee = (e) => {
15283
+ O.textContent = e, O.hidden = e.length === 0;
15284
+ } else O.hidden = !0, O.textContent = "";
15285
+ }, Te = (e) => {
15257
15286
  c.innerHTML = e ? _r : vt, c.classList.remove("is-active"), c.offsetWidth, c.classList.add("is-active");
15258
- }, De = (e) => {
15287
+ }, Ee = (e) => {
15259
15288
  e.animationName && e.animationName !== "blok-video-burst" || c.classList.remove("is-active");
15260
- }, Oe = () => {
15261
- let e = !k.playing;
15262
- k.playing ? O.pause() : O.play(), Ee(e);
15263
- }, R = {
15289
+ }, De = () => {
15290
+ let e = !A.playing;
15291
+ A.playing ? k.pause() : k.play(), Te(e);
15292
+ }, Oe = {
15264
15293
  timer: 0,
15265
15294
  active: !1,
15266
15295
  suppressClick: !1
15267
15296
  }, ke = () => {
15268
- R.active = !0, k.playing || O.play(), O.playbackRate = 2, l.classList.add("is-active");
15297
+ Oe.active = !0, A.playing || k.play(), k.playbackRate = 2, l.classList.add("is-active");
15269
15298
  }, Ae = () => {
15270
- R.timer && (clearTimeout(R.timer), R.timer = 0), R.active && (R.active = !1, O.playbackRate = k.selectedRate, l.classList.remove("is-active"));
15299
+ Oe.timer && (clearTimeout(Oe.timer), Oe.timer = 0), Oe.active && (Oe.active = !1, k.playbackRate = A.selectedRate, l.classList.remove("is-active"));
15271
15300
  }, je = (e) => {
15272
15301
  if (!e.button) {
15273
15302
  if (!z.hidden) {
15274
- R.suppressClick = !0;
15303
+ Oe.suppressClick = !0;
15275
15304
  return;
15276
15305
  }
15277
- R.timer = window.setTimeout(ke, 220);
15306
+ Oe.timer = window.setTimeout(ke, 220);
15278
15307
  }
15279
15308
  }, Me = () => {
15280
- R.active && (R.suppressClick = !0), Ae();
15309
+ Oe.active && (Oe.suppressClick = !0), Ae();
15281
15310
  }, Ne = () => {
15282
- if (R.suppressClick) {
15283
- R.suppressClick = !1;
15311
+ if (Oe.suppressClick) {
15312
+ Oe.suppressClick = !1;
15284
15313
  return;
15285
15314
  }
15286
- Oe();
15315
+ De();
15287
15316
  }, Pe = () => {
15288
- O.currentTime = Number(_.value), P();
15317
+ k.currentTime = Number(_.value), F();
15289
15318
  }, Fe = .05, Ie = 1 / 30, Le = .25, Re = .25, ze = (e, t = 5) => {
15290
15319
  let n = e === "forward" ? yn : Pn, r = `<span class="blok-video-controls__seek-flash-label">${t}s</span>`;
15291
15320
  u.setAttribute("data-side", e), u.innerHTML = e === "forward" ? `${r}${n}` : `${n}${r}`, u.classList.remove("is-active"), u.offsetWidth, u.classList.add("is-active");
15292
15321
  }, Ve = (e) => {
15293
15322
  e.animationName && !e.animationName.startsWith("blok-video-seek-flash-") || u.classList.remove("is-active");
15294
15323
  }, He = (e) => {
15295
- let t = Number.isFinite(O.duration) ? O.duration : 0, n = Math.min(t || Infinity, Math.max(0, e));
15296
- O.currentTime = n, _.value = String(n), P(), A();
15324
+ let t = Number.isFinite(k.duration) ? k.duration : 0, n = Math.min(t || Infinity, Math.max(0, e));
15325
+ k.currentTime = n, _.value = String(n), F(), j();
15297
15326
  }, Ue = (e) => {
15298
- He(O.currentTime + e), ze(e < 0 ? "back" : "forward", Math.abs(e));
15327
+ He(k.currentTime + e), ze(e < 0 ? "back" : "forward", Math.abs(e));
15299
15328
  }, We = (e) => {
15300
- Ce(() => {
15301
- let t = Math.min(1, Math.max(0, O.volume + e));
15302
- O.volume = t, O.muted = t === 0, T.value = String(t);
15329
+ Se(() => {
15330
+ let t = Math.min(1, Math.max(0, k.volume + e));
15331
+ k.volume = t, k.muted = t === 0, T.value = String(t);
15303
15332
  });
15304
15333
  }, qe = (e) => {
15305
- O.playbackRate = Math.min(2, Math.max(Re, O.playbackRate + e));
15334
+ k.playbackRate = Math.min(2, Math.max(Re, k.playbackRate + e));
15306
15335
  }, Je = (e) => {
15307
15336
  if (e.metaKey || e.ctrlKey || e.altKey) return;
15308
- let t = Number.isFinite(O.duration) ? O.duration : 0;
15337
+ let t = Number.isFinite(k.duration) ? k.duration : 0;
15309
15338
  switch (e.key) {
15310
15339
  case "ArrowRight":
15311
15340
  e.preventDefault(), Ue(5);
@@ -15322,7 +15351,7 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15322
15351
  case " ":
15323
15352
  case "Spacebar":
15324
15353
  case "k":
15325
- e.preventDefault(), Oe();
15354
+ e.preventDefault(), De();
15326
15355
  break;
15327
15356
  case "m":
15328
15357
  e.preventDefault(), Ye();
@@ -15343,13 +15372,13 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15343
15372
  e.preventDefault(), He(0);
15344
15373
  break;
15345
15374
  case "End":
15346
- e.preventDefault(), He(t || O.currentTime);
15375
+ e.preventDefault(), He(t || k.currentTime);
15347
15376
  break;
15348
15377
  case ".":
15349
- e.preventDefault(), k.playing || He(O.currentTime + Ie);
15378
+ e.preventDefault(), A.playing || He(k.currentTime + Ie);
15350
15379
  break;
15351
15380
  case ",":
15352
- e.preventDefault(), k.playing || He(O.currentTime - Ie);
15381
+ e.preventDefault(), A.playing || He(k.currentTime - Ie);
15353
15382
  break;
15354
15383
  case ">":
15355
15384
  e.preventDefault(), qe(Le);
@@ -15360,13 +15389,13 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15360
15389
  default: e.key.length === 1 && e.key >= "0" && e.key <= "9" && t > 0 && (e.preventDefault(), He(t * Number(e.key) / 10));
15361
15390
  }
15362
15391
  }, Ye = () => {
15363
- Ce(() => {
15364
- O.muted = !O.muted;
15392
+ Se(() => {
15393
+ k.muted = !k.muted;
15365
15394
  });
15366
15395
  }, Xe = () => {
15367
- Ce(() => {
15396
+ Se(() => {
15368
15397
  let e = Number(T.value);
15369
- O.volume = e, O.muted = e === 0;
15398
+ k.volume = e, k.muted = e === 0;
15370
15399
  });
15371
15400
  }, Ze = () => {
15372
15401
  var e, n, r;
@@ -15410,7 +15439,7 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15410
15439
  z.style.height = `${t.scrollHeight + r}px`;
15411
15440
  }
15412
15441
  }, { row: lt, value: dt } = tt("open-speed", "Playback speed", "menu-value-speed", pr);
15413
- dt.textContent = Qe(k.selectedRate), lt.addEventListener("click", () => ct("speed"));
15442
+ dt.textContent = Qe(A.selectedRate), lt.addEventListener("click", () => ct("speed"));
15414
15443
  let ft = document.createElement("button");
15415
15444
  ft.type = "button", ft.className = "blok-video-controls__menu-row", ft.setAttribute("data-action", "loop"), ft.setAttribute("role", "menuitemcheckbox"), ft.setAttribute("aria-checked", String(i));
15416
15445
  let pt = document.createElement("span");
@@ -15419,7 +15448,7 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15419
15448
  mt.className = "blok-video-controls__menu-value", mt.setAttribute("data-role", "menu-value-loop"), mt.textContent = i ? "On" : "Off";
15420
15449
  let ht = document.createElement("span");
15421
15450
  ht.className = "blok-video-controls__menu-chevron", ht.setAttribute("aria-hidden", "true"), ft.append(et(Yt), pt, mt, ht), ft.addEventListener("click", () => {
15422
- O.loop = !O.loop, ft.setAttribute("aria-checked", String(O.loop)), mt.textContent = O.loop ? "On" : "Off";
15451
+ k.loop = !k.loop, ft.setAttribute("aria-checked", String(k.loop)), mt.textContent = k.loop ? "On" : "Off";
15423
15452
  }), it.append(lt, ft);
15424
15453
  let gt = .05, _t = [
15425
15454
  .5,
@@ -15435,20 +15464,20 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15435
15464
  let St = document.createElement("span");
15436
15465
  St.className = "blok-video-controls__menu-label", St.textContent = "Playback speed", bt.append(xt, St), bt.addEventListener("click", () => ct("main"));
15437
15466
  let Ct = document.createElement("div");
15438
- Ct.className = "blok-video-controls__speed-readout", Ct.setAttribute("data-role", "speed-readout"), Ct.setAttribute("aria-hidden", "true"), Ct.textContent = Qe(k.selectedRate);
15467
+ Ct.className = "blok-video-controls__speed-readout", Ct.setAttribute("data-role", "speed-readout"), Ct.setAttribute("aria-hidden", "true"), Ct.textContent = Qe(A.selectedRate);
15439
15468
  let wt = (e, t, n) => {
15440
15469
  let r = document.createElement("button");
15441
15470
  return r.type = "button", r.className = "blok-video-controls__speed-step", r.setAttribute("data-action", e), r.setAttribute("aria-label", n), r.innerHTML = t, r;
15442
15471
  }, Tt = wt("speed-dec", kn, "Decrease playback speed"), Et = wt("speed-inc", Ke, "Increase playback speed"), B = document.createElement("input");
15443
- B.type = "range", B.className = "blok-video-controls__speed-slider", B.setAttribute("data-role", "speed-slider"), B.min = "0.25", B.max = "2", B.step = "0.05", B.value = String(k.selectedRate), B.setAttribute("aria-label", "Playback speed"), B.setAttribute("aria-valuetext", Qe(k.selectedRate)), B.addEventListener("input", () => Nt(Number(B.value)));
15472
+ B.type = "range", B.className = "blok-video-controls__speed-slider", B.setAttribute("data-role", "speed-slider"), B.min = "0.25", B.max = "2", B.step = "0.05", B.value = String(A.selectedRate), B.setAttribute("aria-label", "Playback speed"), B.setAttribute("aria-valuetext", Qe(A.selectedRate)), B.addEventListener("input", () => Nt(Number(B.value)));
15444
15473
  let Ot = (e) => `${(e - Re) / (2 - Re) * 100}%`;
15445
- B.style.setProperty("--blok-speed-pct", Ot(k.selectedRate));
15474
+ B.style.setProperty("--blok-speed-pct", Ot(A.selectedRate));
15446
15475
  let kt = document.createElement("div");
15447
15476
  kt.className = "blok-video-controls__speed-slider-row", kt.append(Tt, B, Et);
15448
15477
  let At = _t.map((e) => {
15449
15478
  let t = document.createElement("button");
15450
15479
  return t.type = "button", t.className = "blok-video-controls__speed-chip", t.setAttribute("data-action", `speed-${e}`), t.textContent = `${e}×`, t.addEventListener("click", () => {
15451
- let t = k.selectedRate;
15480
+ let t = A.selectedRate;
15452
15481
  Nt(e), Pt(t, e);
15453
15482
  }), t;
15454
15483
  }), jt = document.createElement("div");
@@ -15456,7 +15485,7 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15456
15485
  let Mt = { raf: 0 }, Nt = (e) => {
15457
15486
  cancelAnimationFrame(Mt.raf);
15458
15487
  let t = yt(e);
15459
- k.selectedRate = t, O.playbackRate = t;
15488
+ A.selectedRate = t, k.playbackRate = t;
15460
15489
  let n = Qe(t);
15461
15490
  Ct.textContent = n, dt.textContent = n, B.value = String(t), B.setAttribute("aria-valuetext", n), B.style.setProperty("--blok-speed-pct", Ot(t)), Tt.disabled = t <= Re, Et.disabled = t >= 2;
15462
15491
  }, Pt = (e, t) => {
@@ -15475,7 +15504,7 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15475
15504
  };
15476
15505
  Mt.raf = requestAnimationFrame(i);
15477
15506
  };
15478
- Tt.addEventListener("click", () => Nt(k.selectedRate - gt)), Et.addEventListener("click", () => Nt(k.selectedRate + gt)), Tt.disabled = k.selectedRate <= Re, Et.disabled = k.selectedRate >= 2, rt.append(it, ot), z.append(rt), p.insertBefore(st, E), t.appendChild(z);
15507
+ Tt.addEventListener("click", () => Nt(A.selectedRate - gt)), Et.addEventListener("click", () => Nt(A.selectedRate + gt)), Tt.disabled = A.selectedRate <= Re, Et.disabled = A.selectedRate >= 2, rt.append(it, ot), z.append(rt), p.insertBefore(st, E), t.appendChild(z);
15479
15508
  let Ft = () => {
15480
15509
  let e = nt.getBoundingClientRect(), n = t.getBoundingClientRect();
15481
15510
  z.style.right = `${n.right - e.right}px`, z.style.bottom = `${n.bottom - e.top + 8}px`;
@@ -15576,11 +15605,11 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15576
15605
  document.pictureInPictureElement === e ? (t = (n = document).exitPictureInPicture) == null || t.call(n) : (r = e.requestPictureInPicture) == null || r.call(e);
15577
15606
  }), p.insertBefore(on, E), e.addEventListener("enterpictureinpicture", sn), e.addEventListener("leavepictureinpicture", V)), t.setAttribute("data-controls-hidden", "false");
15578
15607
  let cn = () => {
15579
- k.playing && t.isConnected && t.setAttribute("data-controls-hidden", "true");
15608
+ A.playing && t.isConnected && t.setAttribute("data-controls-hidden", "true");
15580
15609
  }, ln = () => {
15581
- k.idleTimer && clearTimeout(k.idleTimer), k.idleTimer = window.setTimeout(cn, 3e3);
15610
+ A.idleTimer && clearTimeout(A.idleTimer), A.idleTimer = window.setTimeout(cn, 3e3);
15582
15611
  }, un = () => {
15583
- k.idleTimer && (clearTimeout(k.idleTimer), k.idleTimer = 0), t.setAttribute("data-controls-hidden", "false"), k.playing && ln();
15612
+ A.idleTimer && (clearTimeout(A.idleTimer), A.idleTimer = 0), t.setAttribute("data-controls-hidden", "false"), A.playing && ln();
15584
15613
  }, H = document.createElement("div");
15585
15614
  H.className = "blok-video-controls__ctx", H.setAttribute("data-role", "video-menu"), H.setAttribute("role", "menu"), H.hidden = !0;
15586
15615
  let dn = (e, t) => {
@@ -15610,10 +15639,10 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15610
15639
  }, wn = () => {
15611
15640
  H.hidden || (H.hidden = !0, document.removeEventListener("mousedown", Sn), document.removeEventListener("keydown", Cn));
15612
15641
  }, Tn = (e) => {
15613
- e.preventDefault(), fn.setAttribute("aria-checked", String(O.loop)), H.style.setProperty("--blok-ctx-x", `${e.offsetX}px`), H.style.setProperty("--blok-ctx-y", `${e.offsetY}px`), H.hidden = !1, document.addEventListener("mousedown", Sn), document.addEventListener("keydown", Cn);
15642
+ e.preventDefault(), fn.setAttribute("aria-checked", String(k.loop)), H.style.setProperty("--blok-ctx-x", `${e.offsetX}px`), H.style.setProperty("--blok-ctx-y", `${e.offsetY}px`), H.hidden = !1, document.addEventListener("mousedown", Sn), document.addEventListener("keydown", Cn);
15614
15643
  };
15615
15644
  fn.addEventListener("click", () => {
15616
- O.loop = !O.loop, fn.setAttribute("aria-checked", String(O.loop)), wn();
15645
+ k.loop = !k.loop, fn.setAttribute("aria-checked", String(k.loop)), wn();
15617
15646
  }), pn.addEventListener("click", () => {
15618
15647
  _n(e.currentSrc), wn();
15619
15648
  }), mn.addEventListener("click", () => {
@@ -15633,14 +15662,14 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15633
15662
  En == null || En.setItem(e, t);
15634
15663
  } catch (e) {}
15635
15664
  }, Mn = () => jn(Dn, JSON.stringify({
15636
- volume: O.volume,
15637
- muted: O.muted
15665
+ volume: k.volume,
15666
+ muted: k.muted
15638
15667
  })), Nn = () => {
15639
15668
  let e = On();
15640
- e && jn(e, String(O.currentTime));
15669
+ e && jn(e, String(k.currentTime));
15641
15670
  }, Fn = (e) => {
15642
15671
  let t = JSON.parse(e);
15643
- typeof t.volume == "number" && (O.volume = t.volume, T.value = String(t.volume)), typeof t.muted == "boolean" && (O.muted = t.muted), Se();
15672
+ typeof t.volume == "number" && (k.volume = t.volume, T.value = String(t.volume)), typeof t.muted == "boolean" && (k.muted = t.muted), xe();
15644
15673
  }, In = () => {
15645
15674
  let e = An(Dn);
15646
15675
  if (e) try {
@@ -15648,21 +15677,21 @@ function ph({ video: e, figure: t, storage: n, glow: r = "minimal", loop: i = !1
15648
15677
  } catch (e) {}
15649
15678
  let t = On(), n = t ? An(t) : null;
15650
15679
  if (n !== null) {
15651
- let e = Number(n), t = Number.isFinite(O.duration) ? O.duration : 0;
15652
- Number.isFinite(e) && e > 0 && (t === 0 || e < t - 5) && (O.currentTime = e);
15680
+ let e = Number(n), t = Number.isFinite(k.duration) ? k.duration : 0;
15681
+ Number.isFinite(e) && e > 0 && (t === 0 || e < t - 5) && (k.currentTime = e);
15653
15682
  }
15654
15683
  };
15655
- return m.addEventListener("click", Oe), d.addEventListener("click", () => {
15656
- O.play();
15684
+ return m.addEventListener("click", De), d.addEventListener("click", () => {
15685
+ k.play();
15657
15686
  }), C.addEventListener("click", (e) => {
15658
- e.stopPropagation(), j();
15687
+ e.stopPropagation(), M();
15659
15688
  }), C.addEventListener("keydown", (e) => {
15660
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), e.stopPropagation(), j());
15661
- }), e.addEventListener("click", Ne), e.addEventListener("pointerdown", je), e.addEventListener("pointerup", Me), e.addEventListener("pointerleave", Ae), e.addEventListener("pointercancel", Ae), e.addEventListener("keydown", Je), u.addEventListener("animationend", Ve), c.addEventListener("animationend", De), _.addEventListener("input", Pe), _.addEventListener("pointermove", ge), _.addEventListener("pointerleave", _e), w.addEventListener("click", Ye), w.addEventListener("animationend", we), T.addEventListener("input", Xe), E.addEventListener("click", Ze), e.addEventListener("loadedmetadata", oe), e.addEventListener("timeupdate", F), e.addEventListener("progress", se), e.addEventListener("play", ve), e.addEventListener("play", le), e.addEventListener("pause", ue), _.addEventListener("pointerdown", de), document.addEventListener("pointerup", fe), e.addEventListener("play", Ht), e.addEventListener("play", M), e.addEventListener("play", ln), e.addEventListener("pause", Ut), e.addEventListener("pause", ye), e.addEventListener("pause", M), e.addEventListener("pause", un), e.addEventListener("timeupdate", M), e.addEventListener("timeupdate", Nn), e.addEventListener("timeupdate", xn), e.addEventListener("waiting", re), e.addEventListener("playing", N), e.addEventListener("canplay", ie), e.addEventListener("volumechange", Se), e.addEventListener("volumechange", Mn), e.addEventListener("loadedmetadata", In), t.addEventListener("pointermove", un), t.addEventListener("focusin", un), document.addEventListener("fullscreenchange", Te), M(), {
15689
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), e.stopPropagation(), M());
15690
+ }), e.addEventListener("click", Ne), e.addEventListener("pointerdown", je), e.addEventListener("pointerup", Me), e.addEventListener("pointerleave", Ae), e.addEventListener("pointercancel", Ae), e.addEventListener("keydown", Je), u.addEventListener("animationend", Ve), c.addEventListener("animationend", Ee), _.addEventListener("input", Pe), _.addEventListener("pointermove", he), _.addEventListener("pointerleave", ge), w.addEventListener("click", Ye), w.addEventListener("animationend", Ce), T.addEventListener("input", Xe), E.addEventListener("click", Ze), e.addEventListener("loadedmetadata", ae), e.addEventListener("timeupdate", I), e.addEventListener("progress", oe), e.addEventListener("play", _e), e.addEventListener("play", ce), e.addEventListener("pause", le), _.addEventListener("pointerdown", ue), document.addEventListener("pointerup", de), e.addEventListener("play", Ht), e.addEventListener("play", N), e.addEventListener("play", ln), e.addEventListener("pause", Ut), e.addEventListener("pause", ve), e.addEventListener("pause", N), e.addEventListener("pause", un), e.addEventListener("timeupdate", N), e.addEventListener("timeupdate", Nn), e.addEventListener("timeupdate", xn), e.addEventListener("waiting", ne), e.addEventListener("playing", P), e.addEventListener("canplay", re), e.addEventListener("volumechange", xe), e.addEventListener("volumechange", Mn), e.addEventListener("loadedmetadata", In), t.addEventListener("pointermove", un), t.addEventListener("focusin", un), document.addEventListener("fullscreenchange", we), N(), {
15662
15691
  element: s,
15663
15692
  setTheater: an,
15664
15693
  destroy: () => {
15665
- R.timer && clearTimeout(R.timer), k.idleTimer && clearTimeout(k.idleTimer), document.removeEventListener("mousedown", It), document.removeEventListener("mousedown", Sn), document.removeEventListener("keydown", Cn), window.removeEventListener("keydown", qt, !0), e.removeEventListener("contextmenu", Tn), cancelAnimationFrame(Mt.raf), ue(), e.removeEventListener("play", le), e.removeEventListener("pause", ue), _.removeEventListener("pointerdown", de), document.removeEventListener("pointerup", fe), Ut(), e.removeEventListener("play", Ht), e.removeEventListener("play", M), e.removeEventListener("play", ln), e.removeEventListener("pause", Ut), e.removeEventListener("pause", M), e.removeEventListener("pause", un), e.removeEventListener("timeupdate", M), e.removeEventListener("timeupdate", Nn), e.removeEventListener("timeupdate", xn), e.removeEventListener("waiting", re), e.removeEventListener("playing", N), e.removeEventListener("canplay", ie), e.removeEventListener("volumechange", Mn), e.removeEventListener("loadedmetadata", In), t.removeEventListener("pointermove", un), t.removeEventListener("focusin", un), on && (e.removeEventListener("enterpictureinpicture", sn), e.removeEventListener("leavepictureinpicture", V)), e.removeEventListener("click", Ne), e.removeEventListener("pointerdown", je), e.removeEventListener("pointerup", Me), e.removeEventListener("pointerleave", Ae), e.removeEventListener("pointercancel", Ae), e.removeEventListener("keydown", Je), u.removeEventListener("animationend", Ve), _.removeEventListener("pointermove", ge), _.removeEventListener("pointerleave", _e), L.el && (L.el.removeEventListener("seeked", pe), L.el.removeAttribute("src"), L.el.load(), L.el.remove(), L.el = null), e.removeEventListener("loadedmetadata", oe), e.removeEventListener("timeupdate", F), e.removeEventListener("progress", se), e.removeEventListener("play", ve), e.removeEventListener("pause", ye), e.removeEventListener("volumechange", Se), w.removeEventListener("animationend", we), document.removeEventListener("fullscreenchange", Te), document.removeEventListener("pointerdown", Jt), Qt(), sr(t);
15694
+ Oe.timer && clearTimeout(Oe.timer), A.idleTimer && clearTimeout(A.idleTimer), document.removeEventListener("mousedown", It), document.removeEventListener("mousedown", Sn), document.removeEventListener("keydown", Cn), window.removeEventListener("keydown", qt, !0), e.removeEventListener("contextmenu", Tn), cancelAnimationFrame(Mt.raf), le(), e.removeEventListener("play", ce), e.removeEventListener("pause", le), _.removeEventListener("pointerdown", ue), document.removeEventListener("pointerup", de), Ut(), e.removeEventListener("play", Ht), e.removeEventListener("play", N), e.removeEventListener("play", ln), e.removeEventListener("pause", Ut), e.removeEventListener("pause", N), e.removeEventListener("pause", un), e.removeEventListener("timeupdate", N), e.removeEventListener("timeupdate", Nn), e.removeEventListener("timeupdate", xn), e.removeEventListener("waiting", ne), e.removeEventListener("playing", P), e.removeEventListener("canplay", re), e.removeEventListener("volumechange", Mn), e.removeEventListener("loadedmetadata", In), t.removeEventListener("pointermove", un), t.removeEventListener("focusin", un), on && (e.removeEventListener("enterpictureinpicture", sn), e.removeEventListener("leavepictureinpicture", V)), e.removeEventListener("click", Ne), e.removeEventListener("pointerdown", je), e.removeEventListener("pointerup", Me), e.removeEventListener("pointerleave", Ae), e.removeEventListener("pointercancel", Ae), e.removeEventListener("keydown", Je), u.removeEventListener("animationend", Ve), _.removeEventListener("pointermove", he), _.removeEventListener("pointerleave", ge), R.el && (R.el.removeEventListener("seeked", fe), R.el.removeAttribute("src"), R.el.load(), R.el.remove(), R.el = null), e.removeEventListener("loadedmetadata", ae), e.removeEventListener("timeupdate", I), e.removeEventListener("progress", oe), e.removeEventListener("play", _e), e.removeEventListener("pause", ve), e.removeEventListener("volumechange", xe), w.removeEventListener("animationend", Ce), document.removeEventListener("fullscreenchange", we), document.removeEventListener("pointerdown", Jt), Qt(), sr(t);
15666
15695
  let n = t.parentElement;
15667
15696
  n && (n.style.minHeight = ""), Rt(), z.remove(), s.remove();
15668
15697
  }
@@ -15726,7 +15755,7 @@ var gh = class {
15726
15755
  }
15727
15756
  static get toolbox() {
15728
15757
  return {
15729
- icon: k,
15758
+ icon: A,
15730
15759
  titleKey: "video",
15731
15760
  searchTerms: [
15732
15761
  "video",
@@ -15748,11 +15777,16 @@ var gh = class {
15748
15777
  };
15749
15778
  }
15750
15779
  onPaste(e) {
15780
+ let t = this.config.sources;
15751
15781
  if (e.type === "pattern") {
15782
+ if (t === "upload") return;
15752
15783
  this.applyResult({ url: e.detail.data });
15753
15784
  return;
15754
15785
  }
15755
- e.type === "file" && this.startUpload(e.detail.file);
15786
+ if (e.type === "file") {
15787
+ if (t === "url") return;
15788
+ this.startUpload(e.detail.file);
15789
+ }
15756
15790
  }
15757
15791
  getToolbarAnchorElement() {
15758
15792
  var e, t;
@@ -15778,12 +15812,12 @@ var gh = class {
15778
15812
  {
15779
15813
  value: "center",
15780
15814
  title: Q(r, "tools.video.alignmentCenter", "Align center"),
15781
- icon: Ee
15815
+ icon: Te
15782
15816
  },
15783
15817
  {
15784
15818
  value: "right",
15785
15819
  title: Q(r, "tools.video.alignmentRight", "Align right"),
15786
- icon: ie
15820
+ icon: re
15787
15821
  }
15788
15822
  ];
15789
15823
  return [
@@ -15833,7 +15867,7 @@ var gh = class {
15833
15867
  onActivate: () => this.toggleHideControls()
15834
15868
  },
15835
15869
  {
15836
- icon: Ce,
15870
+ icon: Se,
15837
15871
  title: Q(r, "tools.video.replace", "Replace video"),
15838
15872
  name: "video-replace",
15839
15873
  closeOnActivate: !0,
@@ -15928,6 +15962,7 @@ var gh = class {
15928
15962
  onUrl: (e) => this.startUrl(e),
15929
15963
  acceptTypes: this.config.types,
15930
15964
  maxSize: fu(this.config.maxSize),
15965
+ sources: this.config.sources,
15931
15966
  i18n: this.api.i18n
15932
15967
  });
15933
15968
  this.root.appendChild(e);
@@ -16194,7 +16229,7 @@ function wh(e) {
16194
16229
  return t.setAttribute("data-role", "embed-overlay"), t.className = "blok-embed-toolbar", Th(t, e), kh(t), Oh(t, {
16195
16230
  action: "caption-toggle",
16196
16231
  label: e.i18n.t("tools.image.toggleCaption"),
16197
- icon: O,
16232
+ icon: k,
16198
16233
  pressed: e.captionVisible,
16199
16234
  onClick: e.onToggleCaption
16200
16235
  }), Eh(t, e), kh(t), Dh(t, e), t;
@@ -16414,7 +16449,7 @@ var jh = "https://telegram.org/js/telegram-widget.js?22", Mh = "https://platform
16414
16449
  let n = document.createElement("div");
16415
16450
  n.setAttribute("data-role", "embed-url-bar"), n.setAttribute("data-valid", "false"), n.className = "blok-embed-empty__bar";
16416
16451
  let r = document.createElement("span");
16417
- r.className = "blok-embed-empty__bar-icon", r.setAttribute("aria-hidden", "true"), r.innerHTML = ce;
16452
+ r.className = "blok-embed-empty__bar-icon", r.setAttribute("aria-hidden", "true"), r.innerHTML = se;
16418
16453
  let i = document.createElement("input");
16419
16454
  i.type = "url", i.setAttribute("data-role", "embed-url-input"), i.className = "blok-embed-empty__input", i.setAttribute("placeholder", this.api.i18n.t("tools.embed.urlPlaceholder")), i.setAttribute("aria-label", this.api.i18n.t("tools.embed.urlPlaceholder")), i.autocomplete = "off", i.spellcheck = !1;
16420
16455
  let a = document.createElement("button");
@@ -16507,7 +16542,7 @@ var jh = "https://telegram.org/js/telegram-widget.js?22", Mh = "https://platform
16507
16542
  renderSettings() {
16508
16543
  let e = this.api.i18n;
16509
16544
  return [{
16510
- icon: Ce,
16545
+ icon: Se,
16511
16546
  title: e.t("tools.embed.replace"),
16512
16547
  name: "embed-replace",
16513
16548
  closeOnActivate: !0,
@@ -16840,7 +16875,7 @@ var jh = "https://telegram.org/js/telegram-widget.js?22", Mh = "https://platform
16840
16875
  }
16841
16876
  synchronize(e) {
16842
16877
  var t, n;
16843
- let r = (t = e == null ? void 0 : e.anchorNode) == null ? e == null ? void 0 : e.focusNode : t, i = r && r.nodeType === Node.ELEMENT_NODE ? r : r == null ? void 0 : r.parentElement, a = (n = i == null ? void 0 : i.closest(he(V.editor))) == null ? i == null ? void 0 : i.ownerDocument : n;
16878
+ let r = (t = e == null ? void 0 : e.anchorNode) == null ? e == null ? void 0 : e.focusNode : t, i = r && r.nodeType === Node.ELEMENT_NODE ? r : r == null ? void 0 : r.parentElement, a = (n = i == null ? void 0 : i.closest(me(V.editor))) == null ? i == null ? void 0 : i.ownerDocument : n;
16844
16879
  if (!a) return;
16845
16880
  let o = `strong[${$.COLLAPSED_ACTIVE}="true"]`;
16846
16881
  a.querySelectorAll(o).forEach((t) => {
@@ -16866,7 +16901,7 @@ var jh = "https://telegram.org/js/telegram-widget.js?22", Mh = "https://platform
16866
16901
  var t;
16867
16902
  let n = (t = e == null ? void 0 : e.anchorNode) == null ? e == null ? void 0 : e.focusNode : t;
16868
16903
  if (!n) return;
16869
- let r = n.nodeType === Node.ELEMENT_NODE ? n : n.parentElement, i = r == null ? void 0 : r.closest(he(V.editor));
16904
+ let r = n.nodeType === Node.ELEMENT_NODE ? n : n.parentElement, i = r == null ? void 0 : r.closest(me(V.editor));
16870
16905
  i && i.querySelectorAll(`strong[${$.COLLAPSED_LENGTH}]`).forEach((t) => {
16871
16906
  var n;
16872
16907
  let r = t.getAttribute($.COLLAPSED_LENGTH);
@@ -17060,7 +17095,7 @@ var $h = {
17060
17095
  let r = (t = e == null ? void 0 : e.anchorNode) == null ? e == null ? void 0 : e.focusNode : t;
17061
17096
  if (!r) return null;
17062
17097
  let i = r.nodeType === Node.ELEMENT_NODE ? r : r.parentElement;
17063
- return i ? ((n = i.closest("[data-blok-component=\"paragraph\"]")) == null ? i.closest(he(V.elementContent)) : n) || i.closest(he(V.editor)) : null;
17098
+ return i ? ((n = i.closest("[data-blok-component=\"paragraph\"]")) == null ? i.closest(me(V.elementContent)) : n) || i.closest(me(V.editor)) : null;
17064
17099
  }
17065
17100
  }, tg, ng = class e {
17066
17101
  constructor() {
@@ -17346,7 +17381,7 @@ var rg = (e, t) => {
17346
17381
  updateToolbarButtonState() {
17347
17382
  let e = window.getSelection();
17348
17383
  if (!e) return;
17349
- let t = e.anchorNode, n = (t == null ? void 0 : t.nodeType) === Node.ELEMENT_NODE ? t : t == null ? void 0 : t.parentElement, r = n == null ? void 0 : n.closest(he(V.editor));
17384
+ let t = e.anchorNode, n = (t == null ? void 0 : t.nodeType) === Node.ELEMENT_NODE ? t : t == null ? void 0 : t.parentElement, r = n == null ? void 0 : n.closest(me(V.editor));
17350
17385
  if (!r) return;
17351
17386
  let i = r.querySelector("[data-blok-testid=inline-toolbar]");
17352
17387
  if (!(i instanceof HTMLElement)) return;
@@ -17388,7 +17423,7 @@ var rg = (e, t) => {
17388
17423
  }
17389
17424
  static findBlokScopeFromNode(e) {
17390
17425
  let t = e.nodeType === Node.ELEMENT_NODE ? e : e.parentElement;
17391
- return !t || typeof t.closest != "function" ? null : t.closest(`${he(V.interface)}, ${he(V.editor)}`);
17426
+ return !t || typeof t.closest != "function" ? null : t.closest(`${me(V.interface)}, ${me(V.editor)}`);
17392
17427
  }
17393
17428
  static getBoundaryBold(t) {
17394
17429
  let n = t.startContainer;
@@ -17410,7 +17445,7 @@ var rg = (e, t) => {
17410
17445
  let t = e.anchorNode;
17411
17446
  if (!t) return !1;
17412
17447
  let n = t.nodeType === Node.ELEMENT_NODE ? t : t.parentElement;
17413
- return !!(n != null && n.closest(he(V.editor)));
17448
+ return !!(n != null && n.closest(me(V.editor)));
17414
17449
  }
17415
17450
  getRangeHtmlWithoutBold(e) {
17416
17451
  let t = e.cloneContents();
@@ -17441,7 +17476,7 @@ var pg, mg = (e) => {
17441
17476
  }
17442
17477
  render() {
17443
17478
  return {
17444
- icon: de,
17479
+ icon: ue,
17445
17480
  name: "italic",
17446
17481
  onActivate: () => {
17447
17482
  this.toggleItalic();
@@ -17713,7 +17748,7 @@ var gg, _g = "flex items-center gap-2 w-full mt-0.5 px-1.5 py-1.5 rounded-md tex
17713
17748
  }, 0));
17714
17749
  }
17715
17750
  getButtonElement() {
17716
- let e = document.querySelector(`${he(V.interface, ye)} [data-blok-item-name="link"]`);
17751
+ let e = document.querySelector(`${me(V.interface, ve)} [data-blok-item-name="link"]`);
17717
17752
  return e && e !== this.nodes.button && (e.addEventListener("click", this.handleButtonClick, !0), this.nodes.button = e), e;
17718
17753
  }
17719
17754
  updateButtonStateAttributes(e) {
@@ -18071,7 +18106,7 @@ var Tg, Eg = (e) => e.tagName === "U", Dg = class {
18071
18106
  }
18072
18107
  render() {
18073
18108
  return {
18074
- icon: M,
18109
+ icon: N,
18075
18110
  name: "underline",
18076
18111
  onActivate: () => {
18077
18112
  this.toggleUnderline();
@@ -18222,7 +18257,7 @@ var Og, kg = (e) => e.tagName === "S", Ag = class {
18222
18257
  }
18223
18258
  render() {
18224
18259
  return {
18225
- icon: Oe,
18260
+ icon: De,
18226
18261
  name: "strikethrough",
18227
18262
  onActivate: () => {
18228
18263
  this.toggleStrikethrough();