@jackuait/blok 0.4.1-beta.11 → 0.4.1-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/blok.mjs +2 -2
- package/dist/chunks/{blok-oNSQ3HA6.mjs → blok-Xfgk2kCJ.mjs} +665 -637
- package/dist/chunks/{i18next-loader-BdNRw4n4.mjs → i18next-loader-BMO6Rg_l.mjs} +1 -1
- package/dist/chunks/{index-DHgXmfki.mjs → index-DyPp5v5e.mjs} +1 -1
- package/dist/chunks/{inline-tool-convert-CRqgjRim.mjs → inline-tool-convert-DhHW7EYl.mjs} +2 -1
- package/dist/full.mjs +2 -2
- package/dist/tools.mjs +57 -31
- package/package.json +25 -7
- package/src/components/inline-tools/inline-tool-convert.ts +1 -0
- package/src/components/inline-tools/inline-tool-link.ts +1 -0
- package/src/components/modules/toolbar/blockSettings.ts +2 -1
- package/src/components/modules/toolbar/index.ts +97 -116
- package/src/components/modules/ui.ts +11 -7
- package/src/components/ui/toolbox.ts +14 -5
- package/src/components/utils/data-model-transform.ts +38 -21
- package/src/components/utils/popover/components/popover-item/popover-item-default/popover-item-default.ts +1 -1
- package/src/components/utils/popover/components/popover-item/popover-item.ts +11 -0
- package/src/components/utils/popover/popover-abstract.ts +1 -1
- package/src/components/utils/popover/popover-desktop.ts +8 -2
- package/src/stories/Popover.stories.ts +0 -85
- package/src/styles/main.css +7 -4
- package/src/tools/header/index.ts +1 -0
- package/src/tools/list/index.ts +34 -4
- package/types/configs/sanitizer-config.d.ts +25 -1
- package/types/index.d.ts +1 -0
- package/types/tools/block-tool.d.ts +2 -2
- package/types/tools/tool-settings.d.ts +7 -0
- package/types/utils/popover/popover-item.d.ts +6 -0
- package/types/utils/popover/popover.d.ts +6 -0
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
1
|
+
var zo = Object.defineProperty, Uo = Object.defineProperties;
|
|
2
|
+
var Ko = Object.getOwnPropertyDescriptors;
|
|
3
3
|
var At = Object.getOwnPropertySymbols;
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var He = Object.prototype.hasOwnProperty, Fe = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var Pe = (a, t, e) => t in a ? zo(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e, w = (a, t) => {
|
|
6
6
|
for (var e in t || (t = {}))
|
|
7
|
-
|
|
7
|
+
He.call(t, e) && Pe(a, e, t[e]);
|
|
8
8
|
if (At)
|
|
9
9
|
for (var e of At(t))
|
|
10
|
-
|
|
10
|
+
Fe.call(t, e) && Pe(a, e, t[e]);
|
|
11
11
|
return a;
|
|
12
|
-
}, R = (a, t) =>
|
|
12
|
+
}, R = (a, t) => Uo(a, Ko(t));
|
|
13
13
|
var jt = (a, t) => {
|
|
14
14
|
var e = {};
|
|
15
15
|
for (var o in a)
|
|
16
|
-
|
|
16
|
+
He.call(a, o) && t.indexOf(o) < 0 && (e[o] = a[o]);
|
|
17
17
|
if (a != null && At)
|
|
18
18
|
for (var o of At(a))
|
|
19
|
-
t.indexOf(o) < 0 &&
|
|
19
|
+
t.indexOf(o) < 0 && Fe.call(a, o) && (e[o] = a[o]);
|
|
20
20
|
return e;
|
|
21
21
|
};
|
|
22
|
-
import { i as N, g as
|
|
23
|
-
function
|
|
22
|
+
import { i as N, g as Wo, a as g, b as ve, c as E, l as I, S as y, d as $o, e as jo, D as m, t as C, f as j, h as mo, P as O, j as Ht, k as V, m as A, n as Bt, o as ht, p as bo, q as nt, T as Yt, r as Ft, s as v, I as Yo, u as Vo, v as ct, w as oe, x as Xo, y as qo, z as Zo, A as ko, B as Go, C as vo, E as Bo, F as Jo, G as _e, H as Qo, J as tn, K as en, L as Be, M as ze, N as on, O as Ue, Q as Ke, R as nn, U as sn, V as rn, W as an, X as ln, Y as ne, Z as _t, _ as cn, $ as dn, a0 as hn, a1 as We, a2 as un, a3 as pn, a4 as fn, a5 as gn, a6 as mn, a7 as bn, a8 as kn } from "./inline-tool-convert-DhHW7EYl.mjs";
|
|
23
|
+
function vn(a) {
|
|
24
24
|
return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, "default") ? a.default : a;
|
|
25
25
|
}
|
|
26
|
-
var Vt,
|
|
27
|
-
function
|
|
28
|
-
if (
|
|
29
|
-
|
|
26
|
+
var Vt, $e;
|
|
27
|
+
function Bn() {
|
|
28
|
+
if ($e) return Vt;
|
|
29
|
+
$e = 1;
|
|
30
30
|
function a() {
|
|
31
31
|
}
|
|
32
32
|
return Vt = Object.assign(a, {
|
|
@@ -37,7 +37,7 @@ function vn() {
|
|
|
37
37
|
__esModule: !0
|
|
38
38
|
}), Vt;
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
Bn();
|
|
41
41
|
typeof Element != "undefined" && typeof Element.prototype.scrollIntoViewIfNeeded == "undefined" && (Element.prototype.scrollIntoViewIfNeeded = function(a) {
|
|
42
42
|
const t = a != null ? a : !0, e = this.parentElement;
|
|
43
43
|
if (!e)
|
|
@@ -45,29 +45,29 @@ typeof Element != "undefined" && typeof Element.prototype.scrollIntoViewIfNeeded
|
|
|
45
45
|
const o = window.getComputedStyle(e, null), n = parseInt(o.getPropertyValue("border-top-width")), s = parseInt(o.getPropertyValue("border-left-width")), i = this.offsetTop - e.offsetTop < e.scrollTop, r = this.offsetTop - e.offsetTop + this.clientHeight - n > e.scrollTop + e.clientHeight, l = this.offsetLeft - e.offsetLeft < e.scrollLeft, c = this.offsetLeft - e.offsetLeft + this.clientWidth - s > e.scrollLeft + e.clientWidth, d = i && !r;
|
|
46
46
|
(i || r) && t && (e.scrollTop = this.offsetTop - e.offsetTop - e.clientHeight / 2 - n + this.clientHeight / 2), (l || c) && t && (e.scrollLeft = this.offsetLeft - e.offsetLeft - e.clientWidth / 2 - s + this.clientWidth / 2), (i || r || l || c) && !t && this.scrollIntoView(d);
|
|
47
47
|
});
|
|
48
|
-
const
|
|
48
|
+
const wn = globalThis.setTimeout.bind(globalThis), yn = globalThis.clearTimeout.bind(globalThis), zt = /* @__PURE__ */ new Map(), xn = (a) => {
|
|
49
49
|
const t = Number(a);
|
|
50
50
|
return Number.isFinite(t) && t > 0 ? t : Date.now();
|
|
51
51
|
};
|
|
52
52
|
typeof window != "undefined" && typeof window.requestIdleCallback == "undefined" && (window.requestIdleCallback = function(a) {
|
|
53
|
-
const t = Date.now(), e = {}, o =
|
|
53
|
+
const t = Date.now(), e = {}, o = wn(() => {
|
|
54
54
|
const s = e.value;
|
|
55
|
-
typeof s == "number" &&
|
|
55
|
+
typeof s == "number" && zt.delete(s), a({
|
|
56
56
|
didTimeout: !1,
|
|
57
57
|
timeRemaining: function() {
|
|
58
58
|
return Math.max(0, 50 - (Date.now() - t));
|
|
59
59
|
}
|
|
60
60
|
});
|
|
61
|
-
}, 1), n =
|
|
62
|
-
return e.value = n,
|
|
61
|
+
}, 1), n = xn(o);
|
|
62
|
+
return e.value = n, zt.set(n, o), n;
|
|
63
63
|
});
|
|
64
64
|
typeof window != "undefined" && typeof window.cancelIdleCallback == "undefined" && (window.cancelIdleCallback = function(a) {
|
|
65
|
-
const t =
|
|
66
|
-
t !== void 0 && (
|
|
65
|
+
const t = zt.get(a);
|
|
66
|
+
t !== void 0 && (zt.delete(a), yn(t)), globalThis.clearTimeout(a);
|
|
67
67
|
});
|
|
68
68
|
class bt extends Error {
|
|
69
69
|
}
|
|
70
|
-
class
|
|
70
|
+
class Ct {
|
|
71
71
|
constructor() {
|
|
72
72
|
this.subscribers = {};
|
|
73
73
|
}
|
|
@@ -125,7 +125,7 @@ class It {
|
|
|
125
125
|
this.subscribers = {};
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
|
-
const
|
|
128
|
+
const Tn = function(t) {
|
|
129
129
|
return Object.setPrototypeOf(this, {
|
|
130
130
|
/**
|
|
131
131
|
* Block id
|
|
@@ -243,8 +243,8 @@ const xn = function(t) {
|
|
|
243
243
|
configurable: !0
|
|
244
244
|
}
|
|
245
245
|
}), this;
|
|
246
|
-
}, q =
|
|
247
|
-
class
|
|
246
|
+
}, q = Tn;
|
|
247
|
+
class It {
|
|
248
248
|
constructor() {
|
|
249
249
|
this.allListeners = [];
|
|
250
250
|
}
|
|
@@ -258,7 +258,7 @@ class Ct {
|
|
|
258
258
|
on(t, e, o, n = !1) {
|
|
259
259
|
if (this.findOne(t, e, o, n))
|
|
260
260
|
return;
|
|
261
|
-
const i =
|
|
261
|
+
const i = Wo("l"), r = {
|
|
262
262
|
id: i,
|
|
263
263
|
element: t,
|
|
264
264
|
eventType: e,
|
|
@@ -408,7 +408,7 @@ class T {
|
|
|
408
408
|
* @param options.eventsDispatcher - Common event bus
|
|
409
409
|
*/
|
|
410
410
|
constructor({ config: t, eventsDispatcher: e }) {
|
|
411
|
-
if (this.nodes = {}, this.listeners = new
|
|
411
|
+
if (this.nodes = {}, this.listeners = new It(), this.readOnlyMutableListeners = {
|
|
412
412
|
/**
|
|
413
413
|
* Assigns event listener on DOM element and pushes into special array that might be removed
|
|
414
414
|
* @param {EventTarget} element - DOM Element
|
|
@@ -459,12 +459,12 @@ class T {
|
|
|
459
459
|
return ((t = this.config.i18n) == null ? void 0 : t.direction) === "rtl";
|
|
460
460
|
}
|
|
461
461
|
}
|
|
462
|
-
const
|
|
462
|
+
const Sn = (a, t) => {
|
|
463
463
|
const { type: e, target: o, addedNodes: n, removedNodes: s } = a;
|
|
464
464
|
return a.type === "attributes" && a.attributeName === "data-blok-empty" ? !1 : t.contains(o) ? !0 : e !== "childList" ? !1 : Array.from(n).some((l) => l === t) ? !0 : Array.from(s).some((l) => l === t);
|
|
465
|
-
},
|
|
466
|
-
var
|
|
467
|
-
const U = class U extends
|
|
465
|
+
}, se = "redactor dom changed", wt = "block changed", wo = "fake cursor is about to be toggled", yo = "fake cursor have been set", yt = "blok mobile layout toggled", ie = "block-settings-opened", re = "block-settings-closed", Cn = "history:state-changed";
|
|
466
|
+
var Y = /* @__PURE__ */ ((a) => (a.RENDERED = "rendered", a.MOVED = "moved", a.UPDATED = "updated", a.REMOVED = "removed", a.ON_PASTE = "onPaste", a))(Y || {});
|
|
467
|
+
const U = class U extends Ct {
|
|
468
468
|
/**
|
|
469
469
|
* @param options - block constructor options
|
|
470
470
|
* @param [options.id] - block's id. Will be generated if omitted.
|
|
@@ -477,7 +477,7 @@ const U = class U extends It {
|
|
|
477
477
|
* @param [eventBus] - Blok common event bus. Allows to subscribe on some Blok events. Could be omitted when "virtual" Block is created. See BlocksAPI@composeBlockData.
|
|
478
478
|
*/
|
|
479
479
|
constructor({
|
|
480
|
-
id: t =
|
|
480
|
+
id: t = ve(),
|
|
481
481
|
data: e,
|
|
482
482
|
tool: o,
|
|
483
483
|
readOnly: n,
|
|
@@ -545,7 +545,7 @@ const U = class U extends It {
|
|
|
545
545
|
o.call(this.toolInstance, e);
|
|
546
546
|
} catch (n) {
|
|
547
547
|
const s = n instanceof Error ? n.message : String(n);
|
|
548
|
-
|
|
548
|
+
I(`Error during '${t}' call: ${s}`, "error");
|
|
549
549
|
}
|
|
550
550
|
}
|
|
551
551
|
/**
|
|
@@ -586,7 +586,7 @@ const U = class U extends It {
|
|
|
586
586
|
try {
|
|
587
587
|
e[s] = i.save();
|
|
588
588
|
} catch (r) {
|
|
589
|
-
|
|
589
|
+
I(`Tune ${i.constructor.name} save method throws an Error %o`, "warn", r);
|
|
590
590
|
}
|
|
591
591
|
});
|
|
592
592
|
const o = window.performance.now();
|
|
@@ -618,7 +618,7 @@ const U = class U extends It {
|
|
|
618
618
|
return o("text"), o("html"), e;
|
|
619
619
|
} catch (t) {
|
|
620
620
|
const e = t instanceof Error ? t : new Error(String(t));
|
|
621
|
-
|
|
621
|
+
I(
|
|
622
622
|
`Saving process for ${this.name} tool failed due to the ${e}`,
|
|
623
623
|
"log",
|
|
624
624
|
e
|
|
@@ -719,7 +719,7 @@ const U = class U extends It {
|
|
|
719
719
|
try {
|
|
720
720
|
return await e.call(this.toolInstance, t), this.lastSavedData = t, !0;
|
|
721
721
|
} catch (i) {
|
|
722
|
-
return
|
|
722
|
+
return I(`Tool ${this.name} setData failed: ${i instanceof Error ? i.message : String(i)}`, "warn"), !1;
|
|
723
723
|
}
|
|
724
724
|
const o = this.toolRenderedElement;
|
|
725
725
|
if (!o)
|
|
@@ -747,14 +747,14 @@ const U = class U extends It {
|
|
|
747
747
|
if (t.length === 1)
|
|
748
748
|
return Promise.resolve(t[0]);
|
|
749
749
|
const e = await this.data;
|
|
750
|
-
return t.find((o) =>
|
|
750
|
+
return t.find((o) => $o(o.data, e));
|
|
751
751
|
}
|
|
752
752
|
/**
|
|
753
753
|
* Exports Block data as string using conversion config
|
|
754
754
|
*/
|
|
755
755
|
async exportDataAsString() {
|
|
756
756
|
const t = await this.data;
|
|
757
|
-
return
|
|
757
|
+
return jo(t, this.tool.conversionConfig);
|
|
758
758
|
}
|
|
759
759
|
/**
|
|
760
760
|
* Find and return all editable elements (contenteditable and native inputs) in the Tool HTML
|
|
@@ -887,10 +887,10 @@ const U = class U extends It {
|
|
|
887
887
|
var n, s;
|
|
888
888
|
if (t ? this.holder.setAttribute(m.selected, "true") : this.holder.removeAttribute(m.selected), this.contentElement) {
|
|
889
889
|
const i = this.stretched ? U.styles.contentStretched : "";
|
|
890
|
-
this.contentElement.className = t ?
|
|
890
|
+
this.contentElement.className = t ? C(U.styles.content, U.styles.contentSelected) : C(U.styles.content, i);
|
|
891
891
|
}
|
|
892
892
|
const e = t === !0 && y.isRangeInsideContainer(this.holder), o = t === !1 && y.isFakeCursorInsideContainer(this.holder);
|
|
893
|
-
!e && !o || ((n = this.blokEventBus) == null || n.emit(
|
|
893
|
+
!e && !o || ((n = this.blokEventBus) == null || n.emit(wo, { state: t }), e && y.addFakeCursor(), o && y.removeFakeCursor(this.holder), (s = this.blokEventBus) == null || s.emit(yo, { state: t }));
|
|
894
894
|
}
|
|
895
895
|
/**
|
|
896
896
|
* Returns True if it is Selected
|
|
@@ -904,7 +904,7 @@ const U = class U extends It {
|
|
|
904
904
|
* @param {boolean} state - 'true' to enable, 'false' to disable stretched state
|
|
905
905
|
*/
|
|
906
906
|
setStretchState(t) {
|
|
907
|
-
t ? this.holder.setAttribute(m.stretched, "true") : this.holder.removeAttribute(m.stretched), this.contentElement && !this.selected && (this.contentElement.className = t ?
|
|
907
|
+
t ? this.holder.setAttribute(m.stretched, "true") : this.holder.removeAttribute(m.stretched), this.contentElement && !this.selected && (this.contentElement.className = t ? C(U.styles.content, U.styles.contentStretched) : U.styles.content);
|
|
908
908
|
}
|
|
909
909
|
/**
|
|
910
910
|
* Backward-compatible setter for stretched state
|
|
@@ -943,14 +943,14 @@ const U = class U extends It {
|
|
|
943
943
|
this.toolRenderedElement = i, this.addToolDataAttributes(i, t), e.appendChild(i), (r = this.readyResolver) == null || r.call(this);
|
|
944
944
|
}).catch((i) => {
|
|
945
945
|
var r;
|
|
946
|
-
|
|
946
|
+
I("Tool render promise rejected: %o", "error", i), (r = this.readyResolver) == null || r.call(this);
|
|
947
947
|
}) : (this.toolRenderedElement = o, this.addToolDataAttributes(o, t), e.appendChild(o), (s = this.readyResolver) == null || s.call(this));
|
|
948
948
|
const n = [...this.tunesInstances.values(), ...this.defaultTunesInstances.values()].reduce((i, r) => {
|
|
949
949
|
if (E(r.wrap))
|
|
950
950
|
try {
|
|
951
951
|
return r.wrap(i);
|
|
952
952
|
} catch (l) {
|
|
953
|
-
return
|
|
953
|
+
return I(`Tune ${r.constructor.name} wrap method throws an Error %o`, "warn", l), i;
|
|
954
954
|
}
|
|
955
955
|
return i;
|
|
956
956
|
}, e);
|
|
@@ -1021,9 +1021,9 @@ const U = class U extends It {
|
|
|
1021
1021
|
const { mutations: o } = e, n = this.toolRenderedElement;
|
|
1022
1022
|
if (n === null)
|
|
1023
1023
|
return;
|
|
1024
|
-
const s = o.filter((i) =>
|
|
1024
|
+
const s = o.filter((i) => Sn(i, n));
|
|
1025
1025
|
s.length > 0 && this.didMutated(s);
|
|
1026
|
-
}, (t = this.blokEventBus) == null || t.on(
|
|
1026
|
+
}, (t = this.blokEventBus) == null || t.on(se, this.redactorDomChangedCallback);
|
|
1027
1027
|
}
|
|
1028
1028
|
/**
|
|
1029
1029
|
* Remove redactor dom change event listener.
|
|
@@ -1031,7 +1031,7 @@ const U = class U extends It {
|
|
|
1031
1031
|
*/
|
|
1032
1032
|
unwatchBlockMutations() {
|
|
1033
1033
|
var t;
|
|
1034
|
-
(t = this.blokEventBus) == null || t.off(
|
|
1034
|
+
(t = this.blokEventBus) == null || t.off(se, this.redactorDomChangedCallback);
|
|
1035
1035
|
}
|
|
1036
1036
|
/**
|
|
1037
1037
|
* Refreshes the reference to the tool's root element by inspecting the block content.
|
|
@@ -1039,7 +1039,7 @@ const U = class U extends It {
|
|
|
1039
1039
|
* especially when mutation observers haven't been set up yet.
|
|
1040
1040
|
*/
|
|
1041
1041
|
refreshToolRootElement() {
|
|
1042
|
-
const t = this.holder.querySelector(
|
|
1042
|
+
const t = this.holder.querySelector(j(m.elementContent));
|
|
1043
1043
|
if (!t)
|
|
1044
1044
|
return;
|
|
1045
1045
|
const e = t.firstElementChild;
|
|
@@ -1069,7 +1069,7 @@ const U = class U extends It {
|
|
|
1069
1069
|
* Mark inputs with 'data-blok-empty' attribute with the empty state
|
|
1070
1070
|
*/
|
|
1071
1071
|
toggleInputsEmptyMark() {
|
|
1072
|
-
this.inputs.forEach(
|
|
1072
|
+
this.inputs.forEach(mo);
|
|
1073
1073
|
}
|
|
1074
1074
|
};
|
|
1075
1075
|
U.styles = {
|
|
@@ -1122,8 +1122,8 @@ class In extends T {
|
|
|
1122
1122
|
return new q(f);
|
|
1123
1123
|
} else {
|
|
1124
1124
|
const f = [
|
|
1125
|
-
c ? !1 :
|
|
1126
|
-
d ? !1 :
|
|
1125
|
+
c ? !1 : Ht(i.name),
|
|
1126
|
+
d ? !1 : Ht(e)
|
|
1127
1127
|
].filter(Boolean).join(" and ");
|
|
1128
1128
|
throw new Error(`Conversion from "${i.name}" to "${e}" is not possible. ${f} tool(s) should provide a "conversionConfig"`);
|
|
1129
1129
|
}
|
|
@@ -1183,7 +1183,7 @@ class In extends T {
|
|
|
1183
1183
|
getBlockIndex(t) {
|
|
1184
1184
|
const e = this.Blok.BlockManager.getBlockById(t);
|
|
1185
1185
|
if (!e) {
|
|
1186
|
-
|
|
1186
|
+
V("There is no block with id `" + t + "`", "warn");
|
|
1187
1187
|
return;
|
|
1188
1188
|
}
|
|
1189
1189
|
return this.Blok.BlockManager.getBlockIndex(e);
|
|
@@ -1195,7 +1195,7 @@ class In extends T {
|
|
|
1195
1195
|
getBlockByIndex(t) {
|
|
1196
1196
|
const e = this.Blok.BlockManager.getBlockByIndex(t);
|
|
1197
1197
|
if (e === void 0) {
|
|
1198
|
-
|
|
1198
|
+
V("There is no block at index `" + t + "`", "warn");
|
|
1199
1199
|
return;
|
|
1200
1200
|
}
|
|
1201
1201
|
return new q(e);
|
|
@@ -1206,7 +1206,7 @@ class In extends T {
|
|
|
1206
1206
|
*/
|
|
1207
1207
|
getById(t) {
|
|
1208
1208
|
const e = this.Blok.BlockManager.getBlockById(t);
|
|
1209
|
-
return e === void 0 ? (
|
|
1209
|
+
return e === void 0 ? (V("There is no block with id `" + t + "`", "warn"), null) : new q(e);
|
|
1210
1210
|
}
|
|
1211
1211
|
/**
|
|
1212
1212
|
* Get Block API object by any child html element
|
|
@@ -1215,7 +1215,7 @@ class In extends T {
|
|
|
1215
1215
|
getBlockByElement(t) {
|
|
1216
1216
|
const e = this.Blok.BlockManager.getBlock(t);
|
|
1217
1217
|
if (e === void 0) {
|
|
1218
|
-
|
|
1218
|
+
V("There is no block corresponding to element `" + t + "`", "warn");
|
|
1219
1219
|
return;
|
|
1220
1220
|
}
|
|
1221
1221
|
return new q(e);
|
|
@@ -1235,13 +1235,13 @@ class In extends T {
|
|
|
1235
1235
|
async delete(t = this.Blok.BlockManager.currentBlockIndex) {
|
|
1236
1236
|
const e = this.Blok.BlockManager.getBlockByIndex(t);
|
|
1237
1237
|
if (e === void 0) {
|
|
1238
|
-
|
|
1238
|
+
V(`There is no block at index \`${t}\``, "warn");
|
|
1239
1239
|
return;
|
|
1240
1240
|
}
|
|
1241
1241
|
try {
|
|
1242
1242
|
await this.Blok.BlockManager.removeBlock(e);
|
|
1243
1243
|
} catch (o) {
|
|
1244
|
-
|
|
1244
|
+
V(o, "warn");
|
|
1245
1245
|
return;
|
|
1246
1246
|
}
|
|
1247
1247
|
this.Blok.BlockManager.blocks.length === 0 && this.Blok.BlockManager.insert(), this.Blok.BlockManager.currentBlock && this.Blok.Caret.setToBlock(this.Blok.BlockManager.currentBlock, this.Blok.Caret.positions.END), this.Blok.Toolbar.close();
|
|
@@ -1291,11 +1291,11 @@ class In extends T {
|
|
|
1291
1291
|
throw new Error("Index should be greater than or equal to 0");
|
|
1292
1292
|
}
|
|
1293
1293
|
}
|
|
1294
|
-
const
|
|
1295
|
-
class
|
|
1294
|
+
const En = (a, t) => typeof a == "number" ? t.BlockManager.getBlockByIndex(a) : typeof a == "string" ? t.BlockManager.getBlockById(a) : t.BlockManager.getBlockById(a.id);
|
|
1295
|
+
class An extends T {
|
|
1296
1296
|
constructor() {
|
|
1297
1297
|
super(...arguments), this.setToFirstBlock = (t = this.Blok.Caret.positions.DEFAULT, e = 0) => this.Blok.BlockManager.firstBlock ? (this.Blok.Caret.setToBlock(this.Blok.BlockManager.firstBlock, t, e), !0) : !1, this.setToLastBlock = (t = this.Blok.Caret.positions.DEFAULT, e = 0) => this.Blok.BlockManager.lastBlock ? (this.Blok.Caret.setToBlock(this.Blok.BlockManager.lastBlock, t, e), !0) : !1, this.setToPreviousBlock = (t = this.Blok.Caret.positions.DEFAULT, e = 0) => this.Blok.BlockManager.previousBlock ? (this.Blok.Caret.setToBlock(this.Blok.BlockManager.previousBlock, t, e), !0) : !1, this.setToNextBlock = (t = this.Blok.Caret.positions.DEFAULT, e = 0) => this.Blok.BlockManager.nextBlock ? (this.Blok.Caret.setToBlock(this.Blok.BlockManager.nextBlock, t, e), !0) : !1, this.setToBlock = (t, e = this.Blok.Caret.positions.DEFAULT, o = 0) => {
|
|
1298
|
-
const n =
|
|
1298
|
+
const n = En(t, this.Blok);
|
|
1299
1299
|
return n === void 0 ? !1 : (this.Blok.Caret.setToBlock(n, e, o), !0);
|
|
1300
1300
|
}, this.focus = (t = !1) => t ? this.setToLastBlock(this.Blok.Caret.positions.END) : this.setToFirstBlock(this.Blok.Caret.positions.START);
|
|
1301
1301
|
}
|
|
@@ -1314,7 +1314,7 @@ class En extends T {
|
|
|
1314
1314
|
};
|
|
1315
1315
|
}
|
|
1316
1316
|
}
|
|
1317
|
-
class
|
|
1317
|
+
class Mn extends T {
|
|
1318
1318
|
/**
|
|
1319
1319
|
* Available methods
|
|
1320
1320
|
* @returns {Events}
|
|
@@ -1354,7 +1354,7 @@ class An extends T {
|
|
|
1354
1354
|
this.eventsDispatcher.off(t, e);
|
|
1355
1355
|
}
|
|
1356
1356
|
}
|
|
1357
|
-
class
|
|
1357
|
+
class Dn extends T {
|
|
1358
1358
|
constructor() {
|
|
1359
1359
|
super(...arguments), this.cachedMethods = null;
|
|
1360
1360
|
}
|
|
@@ -1372,7 +1372,7 @@ class Mn extends T {
|
|
|
1372
1372
|
}), this.cachedMethods;
|
|
1373
1373
|
}
|
|
1374
1374
|
}
|
|
1375
|
-
class
|
|
1375
|
+
class Ln extends T {
|
|
1376
1376
|
/**
|
|
1377
1377
|
* Blok Core API modules
|
|
1378
1378
|
*/
|
|
@@ -1398,7 +1398,7 @@ class Dn extends T {
|
|
|
1398
1398
|
};
|
|
1399
1399
|
}
|
|
1400
1400
|
}
|
|
1401
|
-
class
|
|
1401
|
+
class On extends T {
|
|
1402
1402
|
/**
|
|
1403
1403
|
* Available methods
|
|
1404
1404
|
* @returns {InlineToolbar}
|
|
@@ -1422,7 +1422,7 @@ class Ln extends T {
|
|
|
1422
1422
|
this.Blok.InlineToolbar.close();
|
|
1423
1423
|
}
|
|
1424
1424
|
}
|
|
1425
|
-
class
|
|
1425
|
+
class Nn extends T {
|
|
1426
1426
|
/**
|
|
1427
1427
|
* Available methods
|
|
1428
1428
|
* @returns {Listeners}
|
|
@@ -1462,7 +1462,7 @@ class On extends T {
|
|
|
1462
1462
|
this.listeners.offById(t);
|
|
1463
1463
|
}
|
|
1464
1464
|
}
|
|
1465
|
-
class
|
|
1465
|
+
class Rn {
|
|
1466
1466
|
constructor() {
|
|
1467
1467
|
this.notifierModule = null, this.loadingPromise = null;
|
|
1468
1468
|
}
|
|
@@ -1471,7 +1471,7 @@ class Nn {
|
|
|
1471
1471
|
* @returns {Promise<NotifierModule>} loaded notifier module
|
|
1472
1472
|
*/
|
|
1473
1473
|
loadNotifierModule() {
|
|
1474
|
-
return this.notifierModule !== null ? Promise.resolve(this.notifierModule) : (this.loadingPromise === null && (this.loadingPromise = import("./index-
|
|
1474
|
+
return this.notifierModule !== null ? Promise.resolve(this.notifierModule) : (this.loadingPromise === null && (this.loadingPromise = import("./index-DyPp5v5e.mjs").then((t) => {
|
|
1475
1475
|
const e = t;
|
|
1476
1476
|
if (!this.isNotifierModule(e))
|
|
1477
1477
|
throw new Error('notifier module does not expose a "show" method.');
|
|
@@ -1499,7 +1499,7 @@ class Nn {
|
|
|
1499
1499
|
return typeof t == "object" && t !== null && "show" in t && typeof t.show == "function";
|
|
1500
1500
|
}
|
|
1501
1501
|
}
|
|
1502
|
-
class
|
|
1502
|
+
class Pn extends T {
|
|
1503
1503
|
/**
|
|
1504
1504
|
* @param moduleConfiguration - Module Configuration
|
|
1505
1505
|
* @param moduleConfiguration.config - Blok's config
|
|
@@ -1509,7 +1509,7 @@ class Rn extends T {
|
|
|
1509
1509
|
super({
|
|
1510
1510
|
config: t,
|
|
1511
1511
|
eventsDispatcher: e
|
|
1512
|
-
}), this.notifier = new
|
|
1512
|
+
}), this.notifier = new Rn();
|
|
1513
1513
|
}
|
|
1514
1514
|
/**
|
|
1515
1515
|
* Available methods
|
|
@@ -1527,7 +1527,7 @@ class Rn extends T {
|
|
|
1527
1527
|
return this.notifier.show(t);
|
|
1528
1528
|
}
|
|
1529
1529
|
}
|
|
1530
|
-
class
|
|
1530
|
+
class Hn extends T {
|
|
1531
1531
|
/**
|
|
1532
1532
|
* Available methods
|
|
1533
1533
|
*/
|
|
@@ -1555,12 +1555,12 @@ class Pn extends T {
|
|
|
1555
1555
|
return this.Blok.ReadOnly.isEnabled;
|
|
1556
1556
|
}
|
|
1557
1557
|
}
|
|
1558
|
-
var
|
|
1559
|
-
function
|
|
1558
|
+
var Ot = { exports: {} }, Fn = Ot.exports, je;
|
|
1559
|
+
function _n() {
|
|
1560
1560
|
return je || (je = 1, (function(a, t) {
|
|
1561
1561
|
(function(e, o) {
|
|
1562
1562
|
a.exports = o();
|
|
1563
|
-
})(
|
|
1563
|
+
})(Fn, function() {
|
|
1564
1564
|
function e(h) {
|
|
1565
1565
|
var u = h.tags, f = Object.keys(u), p = f.map(function(b) {
|
|
1566
1566
|
return typeof u[b];
|
|
@@ -1633,40 +1633,40 @@ function Fn() {
|
|
|
1633
1633
|
}
|
|
1634
1634
|
return e;
|
|
1635
1635
|
});
|
|
1636
|
-
})(
|
|
1636
|
+
})(Ot)), Ot.exports;
|
|
1637
1637
|
}
|
|
1638
|
-
var
|
|
1639
|
-
const
|
|
1638
|
+
var zn = _n();
|
|
1639
|
+
const Un = /* @__PURE__ */ vn(zn), Kn = /^\s*(?:javascript\s*:|data\s*:\s*text\s*\/\s*html)/i, Wn = /\s*(?:href|src)\s*=\s*(?:"\s*(?:javascript\s*:|data\s*:\s*text\s*\/\s*html)[^"]*"|'\s*(?:javascript\s*:|data\s*:\s*text\s*\/\s*html)[^']*|(?:javascript\s*:|data\s*:\s*text\s*\/\s*html)[^ \t\r\n>]*)/gi, we = (a, t, e = {}) => a.map((o) => {
|
|
1640
1640
|
const n = E(t) ? t(o.tool) : t, s = n != null ? n : {};
|
|
1641
1641
|
return A(s) && N(s) && N(e) ? o : R(w({}, o), {
|
|
1642
|
-
data:
|
|
1642
|
+
data: ye(o.data, s, e)
|
|
1643
1643
|
});
|
|
1644
1644
|
}), Z = (a, t = {}) => {
|
|
1645
1645
|
const e = {
|
|
1646
1646
|
tags: t
|
|
1647
1647
|
};
|
|
1648
|
-
return new
|
|
1649
|
-
},
|
|
1648
|
+
return new Un(e).clean(a);
|
|
1649
|
+
}, ye = (a, t, e) => Array.isArray(a) ? $n(a, t, e) : A(a) ? jn(a, t, e) : ht(a) ? Yn(a, t, e) : a, $n = (a, t, e) => a.map((o) => ye(o, t, e)), jn = (a, t, e) => {
|
|
1650
1650
|
const o = {}, n = a;
|
|
1651
1651
|
for (const s in a) {
|
|
1652
1652
|
if (!Object.prototype.hasOwnProperty.call(a, s))
|
|
1653
1653
|
continue;
|
|
1654
|
-
const i = n[s], r = A(t) ? t : void 0, l = r == null ? void 0 : r[s], c = l !== void 0 &&
|
|
1655
|
-
o[s] =
|
|
1654
|
+
const i = n[s], r = A(t) ? t : void 0, l = r == null ? void 0 : r[s], c = l !== void 0 && Vn(l) ? l : t;
|
|
1655
|
+
o[s] = ye(i, c, e);
|
|
1656
1656
|
}
|
|
1657
1657
|
return o;
|
|
1658
1658
|
}, Yn = (a, t, e) => {
|
|
1659
|
-
const o =
|
|
1659
|
+
const o = Qn(t, e);
|
|
1660
1660
|
if (o) {
|
|
1661
1661
|
const n = Z(a, o);
|
|
1662
|
-
return
|
|
1662
|
+
return Xt(Ve(n, o));
|
|
1663
1663
|
}
|
|
1664
1664
|
if (!N(e)) {
|
|
1665
1665
|
const n = Z(a, e);
|
|
1666
|
-
return
|
|
1666
|
+
return Xt(Ve(n, e));
|
|
1667
1667
|
}
|
|
1668
|
-
return
|
|
1669
|
-
},
|
|
1668
|
+
return Xt(a);
|
|
1669
|
+
}, Vn = (a) => A(a) || bo(a) || E(a), Xn = (a) => a ? Kn.test(a) : !1, Xt = (a) => {
|
|
1670
1670
|
if (!a || a.indexOf("<") === -1)
|
|
1671
1671
|
return a;
|
|
1672
1672
|
if (typeof document != "undefined") {
|
|
@@ -1678,28 +1678,28 @@ const zn = /* @__PURE__ */ kn(_n), Un = /^\s*(?:javascript\s*:|data\s*:\s*text\s
|
|
|
1678
1678
|
});
|
|
1679
1679
|
}), t.innerHTML;
|
|
1680
1680
|
}
|
|
1681
|
-
return a.replace(
|
|
1682
|
-
},
|
|
1681
|
+
return a.replace(Wn, "");
|
|
1682
|
+
}, xe = (a) => {
|
|
1683
1683
|
if (N(a))
|
|
1684
1684
|
return {};
|
|
1685
1685
|
const t = {};
|
|
1686
1686
|
for (const e in a)
|
|
1687
1687
|
Object.prototype.hasOwnProperty.call(a, e) && (t[e] = at(a[e]));
|
|
1688
1688
|
return t;
|
|
1689
|
-
},
|
|
1689
|
+
}, Ye = (a) => function(e) {
|
|
1690
1690
|
const o = a.call(this, e);
|
|
1691
1691
|
return o == null ? {} : o;
|
|
1692
|
-
},
|
|
1692
|
+
}, qn = /* @__PURE__ */ new Set(["class", "id", "title", "role", "dir", "lang"]), Zn = (a) => {
|
|
1693
1693
|
const t = a.toLowerCase();
|
|
1694
|
-
return t.startsWith("data-") || t.startsWith("aria-") ||
|
|
1695
|
-
},
|
|
1694
|
+
return t.startsWith("data-") || t.startsWith("aria-") || qn.has(t);
|
|
1695
|
+
}, Gn = (a) => {
|
|
1696
1696
|
const t = {};
|
|
1697
1697
|
return Array.from(a.attributes).forEach((e) => {
|
|
1698
|
-
|
|
1698
|
+
Zn(e.name) && (t[e.name] = !0);
|
|
1699
1699
|
}), t;
|
|
1700
|
-
}, at = (a) => a === !0 ?
|
|
1700
|
+
}, at = (a) => a === !0 ? Ye(Gn) : a === !1 ? !1 : E(a) ? Ye(a) : ht(a) ? a : A(a) ? Bt({}, a) : a, Jn = (a, t) => {
|
|
1701
1701
|
if (N(a))
|
|
1702
|
-
return
|
|
1702
|
+
return xe(t);
|
|
1703
1703
|
const e = {};
|
|
1704
1704
|
for (const o in a) {
|
|
1705
1705
|
if (!Object.prototype.hasOwnProperty.call(a, o))
|
|
@@ -1724,10 +1724,10 @@ const zn = /* @__PURE__ */ kn(_n), Un = /^\s*(?:javascript\s*:|data\s*:\s*text\s
|
|
|
1724
1724
|
e[o] = at(n);
|
|
1725
1725
|
}
|
|
1726
1726
|
return e;
|
|
1727
|
-
},
|
|
1727
|
+
}, Qn = (a, t) => A(a) && !E(a) ? Jn(t, a) : a === !1 ? {} : N(t) ? null : xe(t), Te = (a, ...t) => {
|
|
1728
1728
|
if (N(a))
|
|
1729
1729
|
return Object.assign({}, ...t);
|
|
1730
|
-
const e =
|
|
1730
|
+
const e = xe(a);
|
|
1731
1731
|
return t.forEach((o) => {
|
|
1732
1732
|
if (o)
|
|
1733
1733
|
for (const n in o) {
|
|
@@ -1765,7 +1765,7 @@ const zn = /* @__PURE__ */ kn(_n), Un = /^\s*(?:javascript\s*:|data\s*:\s*text\s
|
|
|
1765
1765
|
return o.innerHTML = a, e.forEach(([n, s]) => {
|
|
1766
1766
|
o.content.querySelectorAll(n).forEach((r) => {
|
|
1767
1767
|
const l = s(r);
|
|
1768
|
-
if (!(
|
|
1768
|
+
if (!(bo(l) || E(l) || l == null))
|
|
1769
1769
|
for (const [c, d] of Object.entries(l)) {
|
|
1770
1770
|
if (d === !1) {
|
|
1771
1771
|
r.removeAttribute(c);
|
|
@@ -1776,7 +1776,7 @@ const zn = /* @__PURE__ */ kn(_n), Un = /^\s*(?:javascript\s*:|data\s*:\s*text\s
|
|
|
1776
1776
|
});
|
|
1777
1777
|
}), o.innerHTML;
|
|
1778
1778
|
};
|
|
1779
|
-
class
|
|
1779
|
+
class ts extends T {
|
|
1780
1780
|
/**
|
|
1781
1781
|
* Available methods
|
|
1782
1782
|
* @returns {SanitizerConfig}
|
|
@@ -1796,7 +1796,7 @@ class Qn extends T {
|
|
|
1796
1796
|
return Z(t, e);
|
|
1797
1797
|
}
|
|
1798
1798
|
}
|
|
1799
|
-
class
|
|
1799
|
+
class es extends T {
|
|
1800
1800
|
/**
|
|
1801
1801
|
* Available methods
|
|
1802
1802
|
* @returns {Saver}
|
|
@@ -1814,7 +1814,7 @@ class ts extends T {
|
|
|
1814
1814
|
var s, i;
|
|
1815
1815
|
const t = "Blok's content can not be saved in read-only mode";
|
|
1816
1816
|
if (this.Blok.ReadOnly.isEnabled)
|
|
1817
|
-
throw
|
|
1817
|
+
throw V(t, "warn"), new Error(t);
|
|
1818
1818
|
const e = await this.Blok.Saver.save();
|
|
1819
1819
|
if (e !== void 0)
|
|
1820
1820
|
return e;
|
|
@@ -1825,7 +1825,7 @@ class ts extends T {
|
|
|
1825
1825
|
throw new Error(n);
|
|
1826
1826
|
}
|
|
1827
1827
|
}
|
|
1828
|
-
class
|
|
1828
|
+
class os extends T {
|
|
1829
1829
|
constructor() {
|
|
1830
1830
|
super(...arguments), this.selectionUtils = new y();
|
|
1831
1831
|
}
|
|
@@ -1861,7 +1861,7 @@ class es extends T {
|
|
|
1861
1861
|
this.selectionUtils.expandToTag(t);
|
|
1862
1862
|
}
|
|
1863
1863
|
}
|
|
1864
|
-
class
|
|
1864
|
+
class ns extends T {
|
|
1865
1865
|
/**
|
|
1866
1866
|
* Available methods
|
|
1867
1867
|
*/
|
|
@@ -1871,7 +1871,7 @@ class os extends T {
|
|
|
1871
1871
|
};
|
|
1872
1872
|
}
|
|
1873
1873
|
}
|
|
1874
|
-
class
|
|
1874
|
+
class ss extends T {
|
|
1875
1875
|
/**
|
|
1876
1876
|
* Exported CSS class names for tool styling.
|
|
1877
1877
|
* These are single class names that can be safely used with classList.add().
|
|
@@ -1920,7 +1920,7 @@ class ns extends T {
|
|
|
1920
1920
|
};
|
|
1921
1921
|
}
|
|
1922
1922
|
}
|
|
1923
|
-
class
|
|
1923
|
+
class is extends T {
|
|
1924
1924
|
/**
|
|
1925
1925
|
* Available methods
|
|
1926
1926
|
* @returns {Toolbar}
|
|
@@ -1951,7 +1951,7 @@ class ss extends T {
|
|
|
1951
1951
|
*/
|
|
1952
1952
|
toggleBlockSettings(t) {
|
|
1953
1953
|
if (this.Blok.BlockManager.currentBlockIndex === -1) {
|
|
1954
|
-
|
|
1954
|
+
V("Could't toggle the Toolbar because there is no block selected ", "warn");
|
|
1955
1955
|
return;
|
|
1956
1956
|
}
|
|
1957
1957
|
(t != null ? t : !this.Blok.BlockSettings.opened) ? (this.Blok.Toolbar.moveAndOpen(), this.Blok.BlockSettings.open()) : this.Blok.BlockSettings.close();
|
|
@@ -1962,13 +1962,13 @@ class ss extends T {
|
|
|
1962
1962
|
*/
|
|
1963
1963
|
toggleToolbox(t) {
|
|
1964
1964
|
if (this.Blok.BlockManager.currentBlockIndex === -1) {
|
|
1965
|
-
|
|
1965
|
+
V("Could't toggle the Toolbox because there is no block selected ", "warn");
|
|
1966
1966
|
return;
|
|
1967
1967
|
}
|
|
1968
1968
|
(t != null ? t : !this.Blok.Toolbar.toolbox.opened) ? (this.Blok.Toolbar.moveAndOpen(), this.Blok.Toolbar.toolbox.open()) : this.Blok.Toolbar.toolbox.close();
|
|
1969
1969
|
}
|
|
1970
1970
|
}
|
|
1971
|
-
const
|
|
1971
|
+
const qt = 10, rs = "tooltip", as = "aria-hidden", ls = "false", cs = "true", ds = "visibility", hs = "visible", us = "hidden", tt = class tt {
|
|
1972
1972
|
/**
|
|
1973
1973
|
* Module constructor
|
|
1974
1974
|
*/
|
|
@@ -1976,7 +1976,7 @@ const Zt = 10, is = "tooltip", rs = "aria-hidden", as = "false", ls = "true", cs
|
|
|
1976
1976
|
this.nodes = {
|
|
1977
1977
|
wrapper: null,
|
|
1978
1978
|
content: null
|
|
1979
|
-
}, this.showed = !1, this.offsetTop =
|
|
1979
|
+
}, this.showed = !1, this.offsetTop = qt, this.offsetLeft = qt, this.offsetRight = qt, this.showingTimeout = null, this.ariaObserver = null, this.handleWindowScroll = () => {
|
|
1980
1980
|
this.showed && this.hide();
|
|
1981
1981
|
}, this.prepare(), window.addEventListener("scroll", this.handleWindowScroll, { passive: !0 });
|
|
1982
1982
|
}
|
|
@@ -2112,7 +2112,7 @@ const Zt = 10, is = "tooltip", rs = "aria-hidden", as = "false", ls = "true", cs
|
|
|
2112
2112
|
* Module Preparation method
|
|
2113
2113
|
*/
|
|
2114
2114
|
prepare() {
|
|
2115
|
-
this.nodes.wrapper = this.make("div", this.CSS.tooltip), this.nodes.wrapper.setAttribute(m.interface,
|
|
2115
|
+
this.nodes.wrapper = this.make("div", this.CSS.tooltip), this.nodes.wrapper.setAttribute(m.interface, Yt), this.nodes.wrapper.setAttribute("data-blok-testid", "tooltip"), this.nodes.content = this.make("div", this.CSS.tooltipContent), this.nodes.content.setAttribute("data-blok-testid", "tooltip-content"), this.nodes.wrapper && this.nodes.content && (this.append(this.nodes.wrapper, this.nodes.content), this.append(document.body, this.nodes.wrapper), this.ensureTooltipAttributes());
|
|
2116
2116
|
}
|
|
2117
2117
|
/**
|
|
2118
2118
|
* Update tooltip visibility based on shown state
|
|
@@ -2121,7 +2121,7 @@ const Zt = 10, is = "tooltip", rs = "aria-hidden", as = "false", ls = "true", cs
|
|
|
2121
2121
|
if (!this.nodes.wrapper)
|
|
2122
2122
|
return;
|
|
2123
2123
|
const t = Array.isArray(this.CSS.tooltipShown) ? this.CSS.tooltipShown[0] : this.CSS.tooltipShown, e = this.nodes.wrapper.classList.contains(t);
|
|
2124
|
-
this.nodes.wrapper.style.setProperty(
|
|
2124
|
+
this.nodes.wrapper.style.setProperty(ds, e ? hs : us), this.nodes.wrapper.setAttribute(as, e ? ls : cs), this.nodes.wrapper.setAttribute("data-blok-shown", e ? "true" : "false");
|
|
2125
2125
|
}
|
|
2126
2126
|
/**
|
|
2127
2127
|
* Watch tooltip visibility changes for accessibility
|
|
@@ -2139,7 +2139,7 @@ const Zt = 10, is = "tooltip", rs = "aria-hidden", as = "false", ls = "true", cs
|
|
|
2139
2139
|
* Ensure tooltip has proper accessibility attributes
|
|
2140
2140
|
*/
|
|
2141
2141
|
ensureTooltipAttributes() {
|
|
2142
|
-
this.nodes.wrapper && ((!this.nodes.wrapper.hasAttribute(m.interface) || this.nodes.wrapper.getAttribute(m.interface) !==
|
|
2142
|
+
this.nodes.wrapper && ((!this.nodes.wrapper.hasAttribute(m.interface) || this.nodes.wrapper.getAttribute(m.interface) !== Yt) && this.nodes.wrapper.setAttribute(m.interface, Yt), this.nodes.wrapper.setAttribute("role", rs), this.watchTooltipVisibility());
|
|
2143
2143
|
}
|
|
2144
2144
|
/**
|
|
2145
2145
|
* Calculates element coords and moves tooltip bottom of the element
|
|
@@ -2231,17 +2231,17 @@ const Zt = 10, is = "tooltip", rs = "aria-hidden", as = "false", ls = "true", cs
|
|
|
2231
2231
|
}
|
|
2232
2232
|
};
|
|
2233
2233
|
tt.instance = null;
|
|
2234
|
-
let
|
|
2235
|
-
const
|
|
2236
|
-
|
|
2234
|
+
let ae = tt;
|
|
2235
|
+
const $t = () => ae.getInstance(), ps = (a, t, e) => {
|
|
2236
|
+
$t().show(a, t, e != null ? e : {});
|
|
2237
2237
|
}, Tt = () => {
|
|
2238
|
-
|
|
2239
|
-
},
|
|
2240
|
-
|
|
2241
|
-
},
|
|
2242
|
-
|
|
2238
|
+
$t().hide();
|
|
2239
|
+
}, Ut = (a, t, e) => {
|
|
2240
|
+
$t().onHover(a, t, e != null ? e : {});
|
|
2241
|
+
}, fs = () => {
|
|
2242
|
+
$t().destroy();
|
|
2243
2243
|
};
|
|
2244
|
-
class
|
|
2244
|
+
class gs extends T {
|
|
2245
2245
|
/**
|
|
2246
2246
|
* @class
|
|
2247
2247
|
* @param moduleConfiguration - Module Configuration
|
|
@@ -2271,7 +2271,7 @@ class fs extends T {
|
|
|
2271
2271
|
* @param {TooltipOptions} options - tooltip options
|
|
2272
2272
|
*/
|
|
2273
2273
|
show(t, e, o) {
|
|
2274
|
-
|
|
2274
|
+
ps(t, e, o);
|
|
2275
2275
|
}
|
|
2276
2276
|
/**
|
|
2277
2277
|
* Method hides tooltip on HTML page
|
|
@@ -2286,10 +2286,10 @@ class fs extends T {
|
|
|
2286
2286
|
* @param {TooltipOptions} options - tooltip options
|
|
2287
2287
|
*/
|
|
2288
2288
|
onHover(t, e, o) {
|
|
2289
|
-
|
|
2289
|
+
Ut(t, e, o);
|
|
2290
2290
|
}
|
|
2291
2291
|
}
|
|
2292
|
-
class
|
|
2292
|
+
class ms extends T {
|
|
2293
2293
|
/**
|
|
2294
2294
|
* Available methods / getters
|
|
2295
2295
|
*/
|
|
@@ -2317,7 +2317,7 @@ class gs extends T {
|
|
|
2317
2317
|
};
|
|
2318
2318
|
}
|
|
2319
2319
|
}
|
|
2320
|
-
class
|
|
2320
|
+
class bs extends T {
|
|
2321
2321
|
/**
|
|
2322
2322
|
* Available methods for public API
|
|
2323
2323
|
*/
|
|
@@ -2450,7 +2450,7 @@ const it = class it {
|
|
|
2450
2450
|
*/
|
|
2451
2451
|
(this.items.length + o - 1) % this.items.length
|
|
2452
2452
|
);
|
|
2453
|
-
return g.canSetCaret(this.items[n]) &&
|
|
2453
|
+
return g.canSetCaret(this.items[n]) && Ft(() => y.setCursor(this.items[n]), 50)(), this.items[n].classList.add(this.focusedCssClass), this.items[n].setAttribute("data-blok-focused", "true"), n;
|
|
2454
2454
|
}
|
|
2455
2455
|
};
|
|
2456
2456
|
it.directions = {
|
|
@@ -2710,7 +2710,7 @@ const mt = {
|
|
|
2710
2710
|
title: "",
|
|
2711
2711
|
description: "opacity-60 mt-[3px]"
|
|
2712
2712
|
};
|
|
2713
|
-
class
|
|
2713
|
+
class ks {
|
|
2714
2714
|
/**
|
|
2715
2715
|
* Constructs the hint content instance
|
|
2716
2716
|
* @param params - hint content parameters
|
|
@@ -2729,7 +2729,7 @@ class bs {
|
|
|
2729
2729
|
return this.nodes.root;
|
|
2730
2730
|
}
|
|
2731
2731
|
}
|
|
2732
|
-
class
|
|
2732
|
+
class Se {
|
|
2733
2733
|
/**
|
|
2734
2734
|
* Constructs the instance
|
|
2735
2735
|
* @param params - instance parameters
|
|
@@ -2777,8 +2777,8 @@ class Ie {
|
|
|
2777
2777
|
* @param hintData - hint data
|
|
2778
2778
|
*/
|
|
2779
2779
|
addHint(t, e) {
|
|
2780
|
-
const o = new
|
|
2781
|
-
|
|
2780
|
+
const o = new ks(e);
|
|
2781
|
+
Ut(t, o.getElement(), {
|
|
2782
2782
|
placement: e.position
|
|
2783
2783
|
});
|
|
2784
2784
|
}
|
|
@@ -2829,6 +2829,14 @@ class Ie {
|
|
|
2829
2829
|
var t;
|
|
2830
2830
|
return this.params !== void 0 && "children" in this.params && ((t = this.params.children) == null ? void 0 : t.searchable) === !0;
|
|
2831
2831
|
}
|
|
2832
|
+
/**
|
|
2833
|
+
* Returns the width for children popover, if specified
|
|
2834
|
+
*/
|
|
2835
|
+
get childrenWidth() {
|
|
2836
|
+
var t;
|
|
2837
|
+
if (!(this.params === void 0 || !("children" in this.params)))
|
|
2838
|
+
return (t = this.params.children) == null ? void 0 : t.width;
|
|
2839
|
+
}
|
|
2832
2840
|
/**
|
|
2833
2841
|
* True if popover should close once item is activated
|
|
2834
2842
|
*/
|
|
@@ -2865,18 +2873,18 @@ const lt = {
|
|
|
2865
2873
|
* Used alongside data-blok-focused attribute.
|
|
2866
2874
|
*/
|
|
2867
2875
|
focused: "is-focused"
|
|
2868
|
-
},
|
|
2876
|
+
}, vs = {
|
|
2869
2877
|
/**
|
|
2870
2878
|
* Item in inline context - more compact styling
|
|
2871
2879
|
*/
|
|
2872
2880
|
item: "rounded p-1"
|
|
2873
|
-
},
|
|
2881
|
+
}, Bs = {
|
|
2874
2882
|
/**
|
|
2875
2883
|
* Nested item - back to desktop popover styling
|
|
2876
2884
|
*/
|
|
2877
2885
|
item: "rounded-md p-[3px] mobile:p-1"
|
|
2878
2886
|
};
|
|
2879
|
-
class G extends
|
|
2887
|
+
class G extends Se {
|
|
2880
2888
|
/**
|
|
2881
2889
|
* Constructs popover item instance
|
|
2882
2890
|
* @param params - popover item construction params
|
|
@@ -3010,7 +3018,7 @@ class G extends Ie {
|
|
|
3010
3018
|
}
|
|
3011
3019
|
if (e.secondaryLabel) {
|
|
3012
3020
|
const u = document.createElement("div");
|
|
3013
|
-
u.className = "whitespace-nowrap pr-1.5 text-xs -tracking-
|
|
3021
|
+
u.className = "whitespace-nowrap pr-1.5 text-xs font-light tracking-[0.25px] text-text-secondary opacity-60", u.setAttribute(m.popoverItemSecondaryTitle, ""), u.setAttribute("data-blok-testid", "popover-item-secondary-title"), u.textContent = e.secondaryLabel, t.appendChild(u), this.nodes.secondaryLabelEl = u;
|
|
3014
3022
|
}
|
|
3015
3023
|
if (this.hasChildren && !this.isChevronHidden) {
|
|
3016
3024
|
const u = document.createElement("div");
|
|
@@ -3030,10 +3038,10 @@ class G extends Ie {
|
|
|
3030
3038
|
getContainerClass() {
|
|
3031
3039
|
var o, n, s, i;
|
|
3032
3040
|
const t = (n = (o = this.renderParams) == null ? void 0 : o.isInline) != null ? n : !1, e = (i = (s = this.renderParams) == null ? void 0 : s.isNestedInline) != null ? i : !1;
|
|
3033
|
-
return
|
|
3041
|
+
return C(
|
|
3034
3042
|
lt.item,
|
|
3035
|
-
t &&
|
|
3036
|
-
e &&
|
|
3043
|
+
t && vs.item,
|
|
3044
|
+
e && Bs.item,
|
|
3037
3045
|
this.params.isDisabled && lt.itemDisabled
|
|
3038
3046
|
);
|
|
3039
3047
|
}
|
|
@@ -3041,7 +3049,7 @@ class G extends Ie {
|
|
|
3041
3049
|
* Gets the icon class based on context
|
|
3042
3050
|
*/
|
|
3043
3051
|
getIconClass(t, e, o, n) {
|
|
3044
|
-
return
|
|
3052
|
+
return C(
|
|
3045
3053
|
lt.icon,
|
|
3046
3054
|
e && "w-auto h-auto [&_svg]:w-icon [&_svg]:h-icon mobile:[&_svg]:w-icon-mobile mobile:[&_svg]:h-icon-mobile",
|
|
3047
3055
|
o && "w-toolbox-btn h-toolbox-btn",
|
|
@@ -3055,7 +3063,7 @@ class G extends Ie {
|
|
|
3055
3063
|
* Gets the chevron class based on context
|
|
3056
3064
|
*/
|
|
3057
3065
|
getChevronClass(t) {
|
|
3058
|
-
return
|
|
3066
|
+
return C(
|
|
3059
3067
|
lt.icon,
|
|
3060
3068
|
t && "rotate-90"
|
|
3061
3069
|
);
|
|
@@ -3239,7 +3247,7 @@ const ot = {
|
|
|
3239
3247
|
nestedContainer: "py-1 px-[3px]",
|
|
3240
3248
|
nestedLine: "w-full h-px"
|
|
3241
3249
|
};
|
|
3242
|
-
class
|
|
3250
|
+
class xo extends Se {
|
|
3243
3251
|
/**
|
|
3244
3252
|
* Constructs the instance
|
|
3245
3253
|
* @param renderParams - optional render params for styling context
|
|
@@ -3269,13 +3277,13 @@ class yo extends Ie {
|
|
|
3269
3277
|
*/
|
|
3270
3278
|
getContainerClass(t) {
|
|
3271
3279
|
const e = ot.container;
|
|
3272
|
-
return this.isNestedInline ?
|
|
3280
|
+
return this.isNestedInline ? C(e, Mt.nestedContainer, t && ot.containerHidden) : this.isInline ? C(e, Mt.container, t && ot.containerHidden) : C(e, t && ot.containerHidden);
|
|
3273
3281
|
}
|
|
3274
3282
|
/**
|
|
3275
3283
|
* Build line class based on context
|
|
3276
3284
|
*/
|
|
3277
3285
|
getLineClass() {
|
|
3278
|
-
return this.isNestedInline ?
|
|
3286
|
+
return this.isNestedInline ? C(ot.line, Mt.nestedLine) : this.isInline ? C(ot.line, Mt.line) : ot.line;
|
|
3279
3287
|
}
|
|
3280
3288
|
/**
|
|
3281
3289
|
* Creates the root container element
|
|
@@ -3287,14 +3295,14 @@ class yo extends Ie {
|
|
|
3287
3295
|
return e.className = this.getLineClass(), e.setAttribute(m.popoverItemSeparatorLine, ""), t.appendChild(e), this.nodes.line = e, t;
|
|
3288
3296
|
}
|
|
3289
3297
|
}
|
|
3290
|
-
var
|
|
3291
|
-
const
|
|
3298
|
+
var X = /* @__PURE__ */ ((a) => (a.Closed = "closed", a.ClosedOnActivate = "closed-on-activate", a))(X || {});
|
|
3299
|
+
const Zt = {
|
|
3292
3300
|
root: "",
|
|
3293
3301
|
rootHidden: "hidden"
|
|
3294
|
-
},
|
|
3302
|
+
}, Xe = {
|
|
3295
3303
|
root: "flex items-center"
|
|
3296
3304
|
};
|
|
3297
|
-
class St extends
|
|
3305
|
+
class St extends Se {
|
|
3298
3306
|
/**
|
|
3299
3307
|
* Constructs the instance
|
|
3300
3308
|
* @param params – instance parameters
|
|
@@ -3333,10 +3341,10 @@ class St extends Ie {
|
|
|
3333
3341
|
* Updates the root element's class list based on current state
|
|
3334
3342
|
*/
|
|
3335
3343
|
updateRootClasses() {
|
|
3336
|
-
this.nodes.root && (this.nodes.root.className =
|
|
3337
|
-
|
|
3338
|
-
this.isInline &&
|
|
3339
|
-
this.isHidden &&
|
|
3344
|
+
this.nodes.root && (this.nodes.root.className = C(
|
|
3345
|
+
Zt.root,
|
|
3346
|
+
this.isInline && Xe.root,
|
|
3347
|
+
this.isHidden && Zt.rootHidden
|
|
3340
3348
|
));
|
|
3341
3349
|
}
|
|
3342
3350
|
/**
|
|
@@ -3347,9 +3355,9 @@ class St extends Ie {
|
|
|
3347
3355
|
createRootElement(t, e) {
|
|
3348
3356
|
var n, s, i;
|
|
3349
3357
|
const o = document.createElement("div");
|
|
3350
|
-
return o.className =
|
|
3351
|
-
|
|
3352
|
-
this.isInline &&
|
|
3358
|
+
return o.className = C(
|
|
3359
|
+
Zt.root,
|
|
3360
|
+
this.isInline && Xe.root
|
|
3353
3361
|
), o.setAttribute(m.popoverItemHtml, ""), o.setAttribute("data-blok-testid", "popover-item-html"), t.name && o.setAttribute("data-blok-item-name", t.name), o.appendChild(t.element), t.hint !== void 0 && ((n = e == null ? void 0 : e.hint) == null ? void 0 : n.enabled) !== !1 && this.addHint(o, R(w({}, t.hint), {
|
|
3354
3362
|
position: ((s = e == null ? void 0 : e.hint) == null ? void 0 : s.position) || "right",
|
|
3355
3363
|
alignment: ((i = e == null ? void 0 : e.hint) == null ? void 0 : i.alignment) || "center"
|
|
@@ -3372,9 +3380,9 @@ const L = {
|
|
|
3372
3380
|
popover: "relative",
|
|
3373
3381
|
// Container for inline popover
|
|
3374
3382
|
popoverContainer: "flex-row top-0 min-w-max w-max p-1 mobile:absolute"
|
|
3375
|
-
},
|
|
3383
|
+
}, ws = (a) => `level-${a}`;
|
|
3376
3384
|
var W = /* @__PURE__ */ ((a) => (a.NestingLevel = "--nesting-level", a.PopoverHeight = "--popover-height", a.InlinePopoverWidth = "--inline-popover-width", a.PopoverTop = "--popover-top", a.PopoverLeft = "--popover-left", a.TriggerItemLeft = "--trigger-item-left", a.TriggerItemTop = "--trigger-item-top", a))(W || {});
|
|
3377
|
-
class
|
|
3385
|
+
class To extends Ct {
|
|
3378
3386
|
/**
|
|
3379
3387
|
* Constructs the instance
|
|
3380
3388
|
* @param params - popover construction params
|
|
@@ -3382,7 +3390,7 @@ class xo extends It {
|
|
|
3382
3390
|
* The parameters that are not set by user via popover api but rather depend on technical implementation
|
|
3383
3391
|
*/
|
|
3384
3392
|
constructor(t, e = {}) {
|
|
3385
|
-
super(), this.params = t, this.itemsRenderParams = e, this.listeners = new
|
|
3393
|
+
super(), this.params = t, this.itemsRenderParams = e, this.listeners = new It(), this.messages = {
|
|
3386
3394
|
nothingFound: "Nothing found",
|
|
3387
3395
|
search: "Search"
|
|
3388
3396
|
}, this.items = this.buildItems(t.items), t.messages && (this.messages = w(w({}, this.messages), t.messages)), this.nodes = this.createPopoverDOM(), this.appendItemElements(), this.nodes.popoverContainer && this.listeners.on(this.nodes.popoverContainer, "click", (o) => this.handleClick(o));
|
|
@@ -3416,7 +3424,7 @@ class xo extends It {
|
|
|
3416
3424
|
* Closes popover
|
|
3417
3425
|
*/
|
|
3418
3426
|
hide() {
|
|
3419
|
-
this.nodes.popover.removeAttribute(m.popoverOpened), this.nodes.popover.removeAttribute(m.popoverOpenTop), this.nodes.popover.removeAttribute(m.popoverOpenLeft), this.nodes.popoverContainer.classList.remove(...L.popoverContainerOpened.split(" ")), this.itemsDefault.forEach((t) => t.reset()), this.search !== void 0 && this.search.clear(), this.emit(
|
|
3427
|
+
this.nodes.popover.removeAttribute(m.popoverOpened), this.nodes.popover.removeAttribute(m.popoverOpenTop), this.nodes.popover.removeAttribute(m.popoverOpenLeft), this.nodes.popoverContainer.classList.remove(...L.popoverContainerOpened.split(" ")), this.itemsDefault.forEach((t) => t.reset()), this.search !== void 0 && this.search.clear(), this.emit(X.Closed);
|
|
3420
3428
|
}
|
|
3421
3429
|
/**
|
|
3422
3430
|
* Clears memory
|
|
@@ -3448,7 +3456,7 @@ class xo extends It {
|
|
|
3448
3456
|
return t.map((e) => {
|
|
3449
3457
|
switch (e.type) {
|
|
3450
3458
|
case O.Separator:
|
|
3451
|
-
return new
|
|
3459
|
+
return new xo(this.itemsRenderParams[O.Separator]);
|
|
3452
3460
|
case O.Html:
|
|
3453
3461
|
return new St(e, this.itemsRenderParams[O.Html]);
|
|
3454
3462
|
default:
|
|
@@ -3476,7 +3484,7 @@ class xo extends It {
|
|
|
3476
3484
|
this.showNestedItems(t), this.callHandleClickIfPresent(t);
|
|
3477
3485
|
return;
|
|
3478
3486
|
}
|
|
3479
|
-
this.itemsDefault.filter((e) => e !== t).forEach((e) => e.reset()), this.callHandleClickIfPresent(t), this.toggleItemActivenessIfNeeded(t), this.refreshItemActiveState(t), t.closeOnActivate === !0 && (this.hide(), this.emit(
|
|
3487
|
+
this.itemsDefault.filter((e) => e !== t).forEach((e) => e.reset()), this.callHandleClickIfPresent(t), this.toggleItemActivenessIfNeeded(t), this.refreshItemActiveState(t), t.closeOnActivate === !0 && (this.hide(), this.emit(X.ClosedOnActivate));
|
|
3480
3488
|
}
|
|
3481
3489
|
}
|
|
3482
3490
|
/**
|
|
@@ -3554,16 +3562,16 @@ class xo extends It {
|
|
|
3554
3562
|
* @returns PopoverNodes object with all required elements
|
|
3555
3563
|
*/
|
|
3556
3564
|
createPopoverDOM() {
|
|
3557
|
-
var s;
|
|
3565
|
+
var s, i;
|
|
3558
3566
|
const t = document.createElement("div");
|
|
3559
|
-
this.params.class && (t.className = this.params.class), t.setAttribute(m.popover, ""), this.params.class && t.setAttribute("data-blok-popover-custom-class", this.params.class), t.setAttribute("data-blok-testid", "popover"), t.style.setProperty("--width", "
|
|
3567
|
+
this.params.class && (t.className = this.params.class), t.setAttribute(m.popover, ""), this.params.class && t.setAttribute("data-blok-popover-custom-class", this.params.class), t.setAttribute("data-blok-testid", "popover"), t.style.setProperty("--width", (s = this.params.width) != null ? s : "280px"), t.style.setProperty("--item-padding", "3px"), t.style.setProperty("--item-height", "calc(1.25rem + 2 * var(--item-padding))"), t.style.setProperty("--popover-top", "calc(100% + 0.5rem)"), t.style.setProperty("--popover-left", "0"), t.style.setProperty("--nested-popover-overlap", "0.25rem");
|
|
3560
3568
|
const e = document.createElement("div");
|
|
3561
3569
|
e.className = L.popoverContainer, e.setAttribute(m.popoverContainer, ""), e.setAttribute("data-blok-testid", "popover-container");
|
|
3562
3570
|
const o = document.createElement("div");
|
|
3563
|
-
o.className =
|
|
3571
|
+
o.className = C(
|
|
3564
3572
|
"cursor-default text-sm leading-5 font-medium whitespace-nowrap overflow-hidden text-ellipsis text-gray-text p-[3px]",
|
|
3565
3573
|
"hidden"
|
|
3566
|
-
), o.setAttribute("data-blok-testid", "popover-nothing-found"), o.textContent = (
|
|
3574
|
+
), o.setAttribute("data-blok-testid", "popover-nothing-found"), o.textContent = (i = this.messages.nothingFound) != null ? i : "Nothing found";
|
|
3567
3575
|
const n = document.createElement("div");
|
|
3568
3576
|
return n.className = L.items, n.setAttribute(m.popoverItems, ""), n.setAttribute("data-blok-testid", "popover-items"), e.appendChild(o), e.appendChild(n), t.appendChild(e), {
|
|
3569
3577
|
popover: t,
|
|
@@ -3583,18 +3591,18 @@ class xo extends It {
|
|
|
3583
3591
|
});
|
|
3584
3592
|
}
|
|
3585
3593
|
}
|
|
3586
|
-
const
|
|
3594
|
+
const So = (a, t) => {
|
|
3587
3595
|
var i, r, l, c, d;
|
|
3588
3596
|
const e = t.toLowerCase(), o = (r = (i = a.title) == null ? void 0 : i.toLowerCase()) != null ? r : "", n = (c = (l = a.englishTitle) == null ? void 0 : l.toLowerCase()) != null ? c : "", s = (d = a.searchTerms) != null ? d : [];
|
|
3589
3597
|
return o.includes(e) || n.includes(e) || s.some((h) => h.toLowerCase().includes(e));
|
|
3590
3598
|
};
|
|
3591
3599
|
var Ce = /* @__PURE__ */ ((a) => (a.Search = "search", a))(Ce || {});
|
|
3592
|
-
const
|
|
3600
|
+
const Gt = {
|
|
3593
3601
|
wrapper: "bg-[#F8F8F8] border border-[rgba(226,226,229,0.20)] rounded p-0.5 grid grid-cols-[auto_auto_1fr] grid-rows-[auto]",
|
|
3594
3602
|
icon: "w-toolbox-btn h-toolbox-btn flex items-center justify-center mr-2 [&_svg]:w-icon [&_svg]:h-icon [&_svg]:text-gray-text",
|
|
3595
3603
|
input: "text-sm outline-none font-medium font-inherit border-0 bg-transparent m-0 p-0 leading-[22px] min-w-[calc(100%-theme('spacing.6')-10px)] placeholder:text-gray-text placeholder:font-medium"
|
|
3596
3604
|
};
|
|
3597
|
-
class
|
|
3605
|
+
class ys extends Ct {
|
|
3598
3606
|
/**
|
|
3599
3607
|
* @param options - available config
|
|
3600
3608
|
* @param options.items - searchable items list
|
|
@@ -3603,11 +3611,11 @@ class ws extends It {
|
|
|
3603
3611
|
constructor({ items: t, placeholder: e }) {
|
|
3604
3612
|
super(), this.searchQuery = "", this.handleValueChange = () => {
|
|
3605
3613
|
this.applySearch(this.input.value);
|
|
3606
|
-
}, this.listeners = new
|
|
3607
|
-
const o = g.make("div",
|
|
3608
|
-
innerHTML:
|
|
3614
|
+
}, this.listeners = new It(), this.items = t, this.wrapper = g.make("div", Gt.wrapper), this.wrapper.setAttribute("data-blok-testid", "popover-search-field");
|
|
3615
|
+
const o = g.make("div", Gt.icon, {
|
|
3616
|
+
innerHTML: Vo
|
|
3609
3617
|
});
|
|
3610
|
-
this.input = g.make("input",
|
|
3618
|
+
this.input = g.make("input", Gt.input, {
|
|
3611
3619
|
type: "search",
|
|
3612
3620
|
placeholder: e,
|
|
3613
3621
|
/**
|
|
@@ -3687,10 +3695,10 @@ class ws extends It {
|
|
|
3687
3695
|
* @param item - item to be checked
|
|
3688
3696
|
*/
|
|
3689
3697
|
checkItem(t) {
|
|
3690
|
-
return
|
|
3698
|
+
return So(t, this.searchQuery);
|
|
3691
3699
|
}
|
|
3692
3700
|
}
|
|
3693
|
-
class ft extends
|
|
3701
|
+
class ft extends To {
|
|
3694
3702
|
/**
|
|
3695
3703
|
* Construct the instance
|
|
3696
3704
|
* @param params - popover params
|
|
@@ -3709,7 +3717,7 @@ class ft extends xo {
|
|
|
3709
3717
|
var c;
|
|
3710
3718
|
const s = n.query === "", i = n.items.length === 0, r = n.items;
|
|
3711
3719
|
this.items.forEach((d) => {
|
|
3712
|
-
const h = d instanceof G, u = d instanceof
|
|
3720
|
+
const h = d instanceof G, u = d instanceof xo || d instanceof St, f = h ? !r.includes(d) : u && (i || !s);
|
|
3713
3721
|
d.toggleHidden(f);
|
|
3714
3722
|
}), this.toggleNothingFoundMessage(i);
|
|
3715
3723
|
const l = s ? this.flippableElements : n.items.map((d) => d.getElement());
|
|
@@ -3837,7 +3845,7 @@ class ft extends xo {
|
|
|
3837
3845
|
if (this.nestedPopover === void 0 || this.nestedPopover === null)
|
|
3838
3846
|
return;
|
|
3839
3847
|
const t = (e = this.nestedPopoverTriggerItem) == null ? void 0 : e.getElement();
|
|
3840
|
-
this.nestedPopover.off(
|
|
3848
|
+
this.nestedPopover.off(X.ClosedOnActivate, this.hide), this.nestedPopover.hide(), this.nestedPopover.destroy(), this.nestedPopover.getElement().remove(), this.nestedPopover = null, (o = this.flipper) == null || o.activate(this.flippableElements), this.focusAfterNestedPopoverClose(t), (n = this.nestedPopoverTriggerItem) == null || n.onChildrenClose(), this.nestedPopoverTriggerItem = null;
|
|
3841
3849
|
}
|
|
3842
3850
|
/**
|
|
3843
3851
|
* Focuses the appropriate item after nested popover closes.
|
|
@@ -3870,8 +3878,9 @@ class ft extends xo {
|
|
|
3870
3878
|
nestingLevel: this.nestingLevel + 1,
|
|
3871
3879
|
flippable: t.isChildrenFlippable,
|
|
3872
3880
|
messages: this.messages,
|
|
3873
|
-
onNavigateBack: this.destroyNestedPopoverIfExists.bind(this)
|
|
3874
|
-
|
|
3881
|
+
onNavigateBack: this.destroyNestedPopoverIfExists.bind(this),
|
|
3882
|
+
width: t.childrenWidth
|
|
3883
|
+
}), t.onChildrenOpen(), this.nestedPopover.on(X.ClosedOnActivate, this.hide);
|
|
3875
3884
|
const e = this.nestedPopover.getMountElement(), o = this.nestedPopover.getElement();
|
|
3876
3885
|
return this.nodes.popover.appendChild(e), this.setTriggerItemPosition(e, t), o.style.setProperty(W.NestingLevel, this.nestedPopover.nestingLevel.toString()), this.applyNestedPopoverPositioning(e), this.nestedPopover.show(), (n = this.flipper) == null || n.deactivate(), this.nestedPopover;
|
|
3877
3886
|
}
|
|
@@ -3881,12 +3890,14 @@ class ft extends xo {
|
|
|
3881
3890
|
* @param nestedPopoverEl - the nested popover element (mount element)
|
|
3882
3891
|
*/
|
|
3883
3892
|
applyNestedPopoverPositioning(t) {
|
|
3884
|
-
var
|
|
3893
|
+
var r;
|
|
3885
3894
|
const e = t.querySelector(`[${m.popoverContainer}]`);
|
|
3886
3895
|
if (!e)
|
|
3887
3896
|
return;
|
|
3888
|
-
const o = (
|
|
3889
|
-
e.style.position = "absolute"
|
|
3897
|
+
const o = (r = t.querySelector(`[${m.popover}]`)) != null ? r : t, n = this.nodes.popover.hasAttribute(m.popoverOpenTop), s = this.nodes.popover.hasAttribute(m.popoverOpenLeft);
|
|
3898
|
+
e.style.position = "absolute";
|
|
3899
|
+
const i = this.params.width === "auto" ? `${this.nodes.popoverContainer.offsetWidth}px` : "var(--width)";
|
|
3900
|
+
s ? o.style.setProperty(W.PopoverLeft, `calc(-1 * (var(--nesting-level) + 1) * ${i} + 100%)`) : o.style.setProperty(W.PopoverLeft, `calc(var(--nesting-level) * (${i} - var(--nested-popover-overlap)))`), n ? e.style.top = "calc(var(--trigger-item-top) - var(--popover-height) + var(--item-height) + 0.5rem + var(--nested-popover-overlap))" : e.style.top = "calc(var(--trigger-item-top) - var(--nested-popover-overlap))";
|
|
3890
3901
|
}
|
|
3891
3902
|
/**
|
|
3892
3903
|
* Checks if popover should be opened bottom.
|
|
@@ -3954,7 +3965,7 @@ class ft extends xo {
|
|
|
3954
3965
|
* Adds search to the popover
|
|
3955
3966
|
*/
|
|
3956
3967
|
addSearch() {
|
|
3957
|
-
this.search = new
|
|
3968
|
+
this.search = new ys({
|
|
3958
3969
|
items: this.itemsDefault,
|
|
3959
3970
|
placeholder: this.messages.search
|
|
3960
3971
|
}), this.search.on(Ce.Search, this.onSearch);
|
|
@@ -3967,15 +3978,15 @@ class ft extends xo {
|
|
|
3967
3978
|
* @param query - search query text
|
|
3968
3979
|
*/
|
|
3969
3980
|
filterItems(t) {
|
|
3970
|
-
const e = this.itemsDefault.filter((o) =>
|
|
3981
|
+
const e = this.itemsDefault.filter((o) => So(o, t));
|
|
3971
3982
|
this.onSearch({
|
|
3972
3983
|
query: t,
|
|
3973
3984
|
items: e
|
|
3974
3985
|
});
|
|
3975
3986
|
}
|
|
3976
3987
|
}
|
|
3977
|
-
const
|
|
3978
|
-
class
|
|
3988
|
+
const xs = "38px", Ts = "46px";
|
|
3989
|
+
class qe extends ft {
|
|
3979
3990
|
/**
|
|
3980
3991
|
* Constructs the instance
|
|
3981
3992
|
* @param params - instance parameters
|
|
@@ -4030,14 +4041,14 @@ class Ze extends ft {
|
|
|
4030
4041
|
}
|
|
4031
4042
|
), this.hide = () => {
|
|
4032
4043
|
var s;
|
|
4033
|
-
this.setOpenTop(!1), this.setOpenLeft(!1), this.itemsDefault.forEach((i) => i.reset()), this.search !== void 0 && this.search.clear(), this.destroyNestedPopoverIfExists(), (s = this.flipper) == null || s.deactivate(), this.nodes.popover.className =
|
|
4044
|
+
this.setOpenTop(!1), this.setOpenLeft(!1), this.itemsDefault.forEach((i) => i.reset()), this.search !== void 0 && this.search.clear(), this.destroyNestedPopoverIfExists(), (s = this.flipper) == null || s.deactivate(), this.nodes.popover.className = C(ut.popover), this.nodes.popoverContainer && (this.nodes.popoverContainer.className = C(
|
|
4034
4045
|
L.popoverContainer,
|
|
4035
4046
|
ut.popoverContainer
|
|
4036
|
-
), this.nodes.popoverContainer.style.height = ""), this.emit(
|
|
4037
|
-
}, this.nodes.popover.className =
|
|
4047
|
+
), this.nodes.popoverContainer.style.height = ""), this.emit(X.Closed);
|
|
4048
|
+
}, this.nodes.popover.className = C(ut.popover), this.nodes.popoverContainer && (this.nodes.popoverContainer.className = C(
|
|
4038
4049
|
L.popoverContainer,
|
|
4039
4050
|
ut.popoverContainer
|
|
4040
|
-
)), this.nodes.items && (this.nodes.items.className =
|
|
4051
|
+
)), this.nodes.items && (this.nodes.items.className = C(L.items, "flex")), this.nodes.popover.style.setProperty("--height", xs), this.nodes.popover.style.setProperty("--height-mobile", Ts), this.nodes.popover.setAttribute(m.popoverInline, ""), (n = this.flipper) == null || n.setHandleContentEditableTargets(!0), this.items.forEach((s) => {
|
|
4041
4052
|
!(s instanceof G) && !(s instanceof St) || s.hasChildren && s.isChildrenOpen && this.showNestedItems(s);
|
|
4042
4053
|
});
|
|
4043
4054
|
}
|
|
@@ -4064,8 +4075,8 @@ class Ze extends ft {
|
|
|
4064
4075
|
*/
|
|
4065
4076
|
show() {
|
|
4066
4077
|
var e;
|
|
4067
|
-
if (super.show(), this.nodes.popover.className =
|
|
4068
|
-
this.nodes.popoverContainer.className =
|
|
4078
|
+
if (super.show(), this.nodes.popover.className = C(ut.popover, "inline-block"), this.nodes.popoverContainer) {
|
|
4079
|
+
this.nodes.popoverContainer.className = C(
|
|
4069
4080
|
L.popoverContainer,
|
|
4070
4081
|
L.popoverContainerOpened,
|
|
4071
4082
|
ut.popoverContainer,
|
|
@@ -4125,13 +4136,13 @@ class Ze extends ft {
|
|
|
4125
4136
|
const e = super.showNestedPopoverForItem(t), o = e.getElement();
|
|
4126
4137
|
(i = e.flipper) == null || i.setHandleContentEditableTargets(!0);
|
|
4127
4138
|
const n = o.querySelector(`[${m.popoverContainer}]`);
|
|
4128
|
-
n && (n.className =
|
|
4139
|
+
n && (n.className = C(
|
|
4129
4140
|
n.className,
|
|
4130
4141
|
"h-fit p-1.5 flex-col"
|
|
4131
4142
|
));
|
|
4132
4143
|
const s = o.querySelector(`[${m.popoverItems}]`);
|
|
4133
|
-
if (s && (s.className =
|
|
4134
|
-
n.className =
|
|
4144
|
+
if (s && (s.className = C(s.className, "block w-full")), o.setAttribute(m.nestedLevel, ws(e.nestingLevel)), e.nestingLevel === 1 && n) {
|
|
4145
|
+
n.className = C(n.className, "left-0");
|
|
4135
4146
|
const r = ct() ? "calc(var(--height-mobile) + 3px)" : "calc(var(--height) + 3px)";
|
|
4136
4147
|
n.style.top = r;
|
|
4137
4148
|
}
|
|
@@ -4155,13 +4166,13 @@ const H = class H {
|
|
|
4155
4166
|
* Locks body element scroll
|
|
4156
4167
|
*/
|
|
4157
4168
|
lock() {
|
|
4158
|
-
|
|
4169
|
+
oe ? this.lockHard() : (document.body.classList.add(H.CSS.overflowHidden), document.body.setAttribute(H.DATA_ATTR.scrollLocked, "true"));
|
|
4159
4170
|
}
|
|
4160
4171
|
/**
|
|
4161
4172
|
* Unlocks body element scroll
|
|
4162
4173
|
*/
|
|
4163
4174
|
unlock() {
|
|
4164
|
-
|
|
4175
|
+
oe ? this.unlockHard() : (document.body.classList.remove(H.CSS.overflowHidden), document.body.removeAttribute(H.DATA_ATTR.scrollLocked));
|
|
4165
4176
|
}
|
|
4166
4177
|
/**
|
|
4167
4178
|
* Locks scroll in a hard way (via setting fixed position to body element)
|
|
@@ -4195,28 +4206,28 @@ H.CSS = {
|
|
|
4195
4206
|
scrollLocked: "data-blok-scroll-locked",
|
|
4196
4207
|
scrollLockedHard: "data-blok-scroll-locked-hard"
|
|
4197
4208
|
};
|
|
4198
|
-
let
|
|
4199
|
-
const
|
|
4209
|
+
let le = H;
|
|
4210
|
+
const Jt = {
|
|
4200
4211
|
root: "flex items-center mb-2 mt-1",
|
|
4201
4212
|
text: "text-lg font-semibold text-text-primary",
|
|
4202
4213
|
backButton: "border-0 bg-transparent w-9 h-9 text-text-primary cursor-pointer [&_svg]:block [&_svg]:w-7 [&_svg]:h-7"
|
|
4203
4214
|
};
|
|
4204
|
-
class
|
|
4215
|
+
class Ss {
|
|
4205
4216
|
/**
|
|
4206
4217
|
* Constructs the instance
|
|
4207
4218
|
* @param params - popover header params
|
|
4208
4219
|
*/
|
|
4209
4220
|
constructor({ text: t, onBackButtonClick: e }) {
|
|
4210
|
-
this.listeners = new
|
|
4211
|
-
root: g.make("div", [
|
|
4221
|
+
this.listeners = new It(), this.text = t, this.onBackButtonClick = e, this.nodes = {
|
|
4222
|
+
root: g.make("div", [Jt.root], {
|
|
4212
4223
|
"data-blok-testid": "popover-header",
|
|
4213
4224
|
[m.popoverHeader]: ""
|
|
4214
4225
|
}),
|
|
4215
|
-
backButton: g.make("button", [
|
|
4226
|
+
backButton: g.make("button", [Jt.backButton], {
|
|
4216
4227
|
"data-blok-testid": "popover-header-back-button",
|
|
4217
4228
|
[m.popoverHeaderBackButton]: ""
|
|
4218
4229
|
}),
|
|
4219
|
-
text: g.make("div", [
|
|
4230
|
+
text: g.make("div", [Jt.text], {
|
|
4220
4231
|
"data-blok-testid": "popover-header-text",
|
|
4221
4232
|
[m.popoverHeaderText]: ""
|
|
4222
4233
|
})
|
|
@@ -4235,7 +4246,7 @@ class Ts {
|
|
|
4235
4246
|
this.nodes.root.remove(), this.listeners.destroy();
|
|
4236
4247
|
}
|
|
4237
4248
|
}
|
|
4238
|
-
class
|
|
4249
|
+
class Cs {
|
|
4239
4250
|
constructor() {
|
|
4240
4251
|
this.history = [];
|
|
4241
4252
|
}
|
|
@@ -4272,7 +4283,7 @@ class Ss {
|
|
|
4272
4283
|
this.pop();
|
|
4273
4284
|
}
|
|
4274
4285
|
}
|
|
4275
|
-
class
|
|
4286
|
+
class Co extends To {
|
|
4276
4287
|
/**
|
|
4277
4288
|
* Construct the instance
|
|
4278
4289
|
* @param params - popover params
|
|
@@ -4289,13 +4300,13 @@ class So extends xo {
|
|
|
4289
4300
|
enabled: !1
|
|
4290
4301
|
}
|
|
4291
4302
|
}
|
|
4292
|
-
}), this.scrollLocker = new
|
|
4303
|
+
}), this.scrollLocker = new le(), this.history = new Cs(), this.isHidden = !0, this.nodes.overlay = g.make("div", [L.popoverOverlay], {
|
|
4293
4304
|
[m.popoverOverlay]: "",
|
|
4294
4305
|
[m.overlayHidden]: "",
|
|
4295
4306
|
"data-blok-testid": "popover-overlay"
|
|
4296
4307
|
}), this.nodes.popover.insertBefore(this.nodes.overlay, this.nodes.popover.firstChild), this.listeners.on(this.nodes.overlay, "click", () => {
|
|
4297
4308
|
this.hide();
|
|
4298
|
-
}), this.history.push({ items: t.items }), this.nodes.popoverContainer.style.setProperty("--offset", "5px"), this.nodes.popoverContainer.className =
|
|
4309
|
+
}), this.history.push({ items: t.items }), this.nodes.popoverContainer.style.setProperty("--offset", "5px"), this.nodes.popoverContainer.className = C(
|
|
4299
4310
|
L.popoverContainer,
|
|
4300
4311
|
L.popoverContainerMobile
|
|
4301
4312
|
);
|
|
@@ -4304,7 +4315,7 @@ class So extends xo {
|
|
|
4304
4315
|
* Open popover
|
|
4305
4316
|
*/
|
|
4306
4317
|
show() {
|
|
4307
|
-
this.nodes.overlay.removeAttribute(m.overlayHidden), this.nodes.overlay.className =
|
|
4318
|
+
this.nodes.overlay.removeAttribute(m.overlayHidden), this.nodes.overlay.className = C(L.popoverOverlay, "fixed inset-0 block visible z-[3] opacity-50 transition-opacity duration-[120ms] ease-in will-change-[opacity]"), super.show(), this.nodes.popoverContainer.className = C(
|
|
4308
4319
|
L.popoverContainer,
|
|
4309
4320
|
L.popoverContainerMobile,
|
|
4310
4321
|
L.popoverContainerOpened,
|
|
@@ -4315,7 +4326,7 @@ class So extends xo {
|
|
|
4315
4326
|
* Closes popover
|
|
4316
4327
|
*/
|
|
4317
4328
|
hide() {
|
|
4318
|
-
this.isHidden || (super.hide(), this.nodes.overlay.setAttribute(m.overlayHidden, ""), this.nodes.overlay.className = L.popoverOverlay, this.nodes.popoverContainer.className =
|
|
4329
|
+
this.isHidden || (super.hide(), this.nodes.overlay.setAttribute(m.overlayHidden, ""), this.nodes.overlay.className = L.popoverOverlay, this.nodes.popoverContainer.className = C(
|
|
4319
4330
|
L.popoverContainer,
|
|
4320
4331
|
L.popoverContainerMobile
|
|
4321
4332
|
), this.scrollLocker.unlock(), this.history.reset(), this.isHidden = !0);
|
|
@@ -4345,7 +4356,7 @@ class So extends xo {
|
|
|
4345
4356
|
var s, i;
|
|
4346
4357
|
this.header !== null && this.header !== void 0 && (this.header.destroy(), this.header = null);
|
|
4347
4358
|
const o = e !== void 0;
|
|
4348
|
-
o && (this.header = new
|
|
4359
|
+
o && (this.header = new Ss({
|
|
4349
4360
|
text: e,
|
|
4350
4361
|
onBackButtonClick: () => {
|
|
4351
4362
|
this.history.pop(), this.updateItemsAndHeader(this.history.currentItems, this.history.currentTitle);
|
|
@@ -4375,7 +4386,7 @@ class Is extends T {
|
|
|
4375
4386
|
v.LEFT
|
|
4376
4387
|
]
|
|
4377
4388
|
}), this.flipperKeydownHandler = null, this.flipperKeydownSource = null, this.close = () => {
|
|
4378
|
-
this.opened && (this.opened = !1, y.isAtBlok || this.selection.restore(), this.selection.clearSaved(), this.detachFlipperKeydownListener(), this.clearBlockSelectionOnClose(), this.eventsDispatcher.emit(this.events.closed), this.popover && (this.popover.off(
|
|
4389
|
+
this.opened && (this.opened = !1, y.isAtBlok || this.selection.restore(), this.selection.clearSaved(), this.detachFlipperKeydownListener(), this.clearBlockSelectionOnClose(), this.eventsDispatcher.emit(this.events.closed), this.popover && (this.popover.off(X.Closed, this.onPopoverClose), this.popover.destroy(), this.popover.getElement().remove(), this.popover = null));
|
|
4379
4390
|
}, this.onPopoverClose = () => {
|
|
4380
4391
|
this.close();
|
|
4381
4392
|
};
|
|
@@ -4385,8 +4396,8 @@ class Is extends T {
|
|
|
4385
4396
|
*/
|
|
4386
4397
|
get events() {
|
|
4387
4398
|
return {
|
|
4388
|
-
opened:
|
|
4389
|
-
closed:
|
|
4399
|
+
opened: ie,
|
|
4400
|
+
closed: re
|
|
4390
4401
|
};
|
|
4391
4402
|
}
|
|
4392
4403
|
/**
|
|
@@ -4429,17 +4440,18 @@ class Is extends T {
|
|
|
4429
4440
|
if (s === void 0)
|
|
4430
4441
|
return;
|
|
4431
4442
|
this.selection.save(), n || (this.Blok.BlockSelection.selectBlock(s), this.Blok.BlockSelection.clearCache());
|
|
4432
|
-
const { toolTunes: i, commonTunes: r } = s.getTunes(), l = ct() ?
|
|
4433
|
-
searchable: !
|
|
4443
|
+
const { toolTunes: i, commonTunes: r } = s.getTunes(), l = ct() ? Co : ft, c = {
|
|
4444
|
+
searchable: !1,
|
|
4434
4445
|
trigger: e || this.nodes.wrapper,
|
|
4435
4446
|
items: await this.getTunesItems(s, r, i),
|
|
4436
4447
|
scopeElement: this.Blok.API.methods.ui.nodes.redactor,
|
|
4448
|
+
width: "auto",
|
|
4437
4449
|
messages: {
|
|
4438
4450
|
nothingFound: this.Blok.I18n.t("popover.nothingFound"),
|
|
4439
4451
|
search: this.Blok.I18n.t("popover.search")
|
|
4440
4452
|
}
|
|
4441
4453
|
};
|
|
4442
|
-
l === ft && (c.flipper = this.flipperInstance), this.popover = new l(c), this.popover.getElement().setAttribute("data-blok-testid", "block-tunes-popover"), this.popover.on(
|
|
4454
|
+
l === ft && (c.flipper = this.flipperInstance), this.popover = new l(c), this.popover.getElement().setAttribute("data-blok-testid", "block-tunes-popover"), this.popover.on(X.Closed, this.onPopoverClose), this.opened = !0, this.eventsDispatcher.emit(this.events.opened), this.popover.show(), this.attachFlipperKeydownListener(s);
|
|
4443
4455
|
}
|
|
4444
4456
|
/**
|
|
4445
4457
|
* Returns root block settings element
|
|
@@ -4467,14 +4479,14 @@ class Is extends T {
|
|
|
4467
4479
|
!i && o !== void 0 && o.length > 0 && (n.push(...o), n.push({
|
|
4468
4480
|
type: O.Separator
|
|
4469
4481
|
}));
|
|
4470
|
-
const r = Array.from(this.Blok.Tools.blockTools.values()), c = (i ? await
|
|
4482
|
+
const r = Array.from(this.Blok.Tools.blockTools.values()), c = (i ? await qo(
|
|
4471
4483
|
s.map((d) => new q(d)),
|
|
4472
4484
|
r
|
|
4473
|
-
) : await
|
|
4485
|
+
) : await Zo(t, r)).reduce((d, h) => (h.toolbox === void 0 || h.toolbox.forEach((u) => {
|
|
4474
4486
|
var f;
|
|
4475
4487
|
d.push({
|
|
4476
4488
|
icon: u.icon,
|
|
4477
|
-
title:
|
|
4489
|
+
title: ko(this.Blok.I18n, u, h.name),
|
|
4478
4490
|
name: (f = u.name) != null ? f : h.name,
|
|
4479
4491
|
closeOnActivate: !0,
|
|
4480
4492
|
onActivate: async () => {
|
|
@@ -4490,7 +4502,7 @@ class Is extends T {
|
|
|
4490
4502
|
});
|
|
4491
4503
|
}), d), []);
|
|
4492
4504
|
return c.length > 0 && (n.push({
|
|
4493
|
-
icon:
|
|
4505
|
+
icon: Go,
|
|
4494
4506
|
name: "convert-to",
|
|
4495
4507
|
title: this.Blok.I18n.t("popover.convertTo"),
|
|
4496
4508
|
children: {
|
|
@@ -4499,7 +4511,7 @@ class Is extends T {
|
|
|
4499
4511
|
}), n.push({
|
|
4500
4512
|
type: O.Separator
|
|
4501
4513
|
})), i ? n.push({
|
|
4502
|
-
icon:
|
|
4514
|
+
icon: vo,
|
|
4503
4515
|
title: this.Blok.I18n.t("blockSettings.delete"),
|
|
4504
4516
|
name: "delete",
|
|
4505
4517
|
closeOnActivate: !0,
|
|
@@ -4703,11 +4715,11 @@ line2` };
|
|
|
4703
4715
|
this.flipperKeydownSource !== null && this.flipperKeydownHandler !== null && this.flipperKeydownSource.removeEventListener("keydown", this.flipperKeydownHandler, !0), this.flipperInstance.setHandleContentEditableTargets(!1), this.flipperKeydownSource = null, this.flipperKeydownHandler = null;
|
|
4704
4716
|
}
|
|
4705
4717
|
}
|
|
4706
|
-
const
|
|
4718
|
+
const Ze = {
|
|
4707
4719
|
SHIFT: ["SHIFT"],
|
|
4708
4720
|
CMD: ["CMD", "CONTROL", "COMMAND", "WINDOWS", "CTRL"],
|
|
4709
4721
|
ALT: ["ALT", "OPTION"]
|
|
4710
|
-
},
|
|
4722
|
+
}, Es = {
|
|
4711
4723
|
0: "Digit0",
|
|
4712
4724
|
1: "Digit1",
|
|
4713
4725
|
2: "Digit2",
|
|
@@ -4754,10 +4766,10 @@ const Ge = {
|
|
|
4754
4766
|
INSERT: "Insert",
|
|
4755
4767
|
DELETE: "Delete",
|
|
4756
4768
|
".": "Period"
|
|
4757
|
-
},
|
|
4758
|
-
(e) =>
|
|
4769
|
+
}, As = (a) => Object.keys(Ze).find(
|
|
4770
|
+
(e) => Ze[e].includes(a)
|
|
4759
4771
|
);
|
|
4760
|
-
class
|
|
4772
|
+
class Ms {
|
|
4761
4773
|
/**
|
|
4762
4774
|
* Creates a new Shortcut instance
|
|
4763
4775
|
* @param options - Configuration options
|
|
@@ -4784,7 +4796,7 @@ class As {
|
|
|
4784
4796
|
parseShortcutName(t) {
|
|
4785
4797
|
const e = t.split("+");
|
|
4786
4798
|
for (const o of e) {
|
|
4787
|
-
const n = o.toUpperCase(), s =
|
|
4799
|
+
const n = o.toUpperCase(), s = As(n);
|
|
4788
4800
|
s !== void 0 ? this.commands[s] = !0 : this.keys[n] = !0;
|
|
4789
4801
|
}
|
|
4790
4802
|
}
|
|
@@ -4810,7 +4822,7 @@ class As {
|
|
|
4810
4822
|
*/
|
|
4811
4823
|
checkKeys(t) {
|
|
4812
4824
|
return Object.keys(this.keys).every((o) => {
|
|
4813
|
-
const n =
|
|
4825
|
+
const n = Es[o];
|
|
4814
4826
|
return t.code === n;
|
|
4815
4827
|
});
|
|
4816
4828
|
}
|
|
@@ -4823,7 +4835,7 @@ class As {
|
|
|
4823
4835
|
e && o && this.callback(t);
|
|
4824
4836
|
}
|
|
4825
4837
|
}
|
|
4826
|
-
class
|
|
4838
|
+
class Ds {
|
|
4827
4839
|
constructor() {
|
|
4828
4840
|
this.registeredShortcuts = /* @__PURE__ */ new Map();
|
|
4829
4841
|
}
|
|
@@ -4836,7 +4848,7 @@ class Ms {
|
|
|
4836
4848
|
throw Error(
|
|
4837
4849
|
`Shortcut ${t.name} is already registered for ${t.on}. Please remove it before add a new handler.`
|
|
4838
4850
|
);
|
|
4839
|
-
const o = new
|
|
4851
|
+
const o = new Ms({
|
|
4840
4852
|
name: t.name,
|
|
4841
4853
|
on: t.on,
|
|
4842
4854
|
callback: t.handler
|
|
@@ -4873,9 +4885,9 @@ class Ms {
|
|
|
4873
4885
|
return (this.registeredShortcuts.get(t) || []).find(({ name: n }) => n === e);
|
|
4874
4886
|
}
|
|
4875
4887
|
}
|
|
4876
|
-
const z = new
|
|
4877
|
-
var
|
|
4878
|
-
class
|
|
4888
|
+
const z = new Ds();
|
|
4889
|
+
var Nt = /* @__PURE__ */ ((a) => (a.Opened = "toolbox-opened", a.Closed = "toolbox-closed", a.BlockAdded = "toolbox-block-added", a))(Nt || {});
|
|
4890
|
+
class Ls extends Ct {
|
|
4879
4891
|
/**
|
|
4880
4892
|
* Toolbox constructor
|
|
4881
4893
|
* @param options - available parameters
|
|
@@ -4885,7 +4897,7 @@ class Ds extends It {
|
|
|
4885
4897
|
* @param options.triggerElement - Element relative to which the popover should be positioned
|
|
4886
4898
|
*/
|
|
4887
4899
|
constructor({ api: t, tools: e, i18nLabels: o, i18n: n, triggerElement: s }) {
|
|
4888
|
-
super(), this.opened = !1, this.listeners = new
|
|
4900
|
+
super(), this.opened = !1, this.listeners = new It(), this.popover = null, this.currentBlockForSearch = null, this.currentContentEditable = null, this.handleMobileLayoutToggle = () => {
|
|
4889
4901
|
this.destroyPopover(), this.initPopover();
|
|
4890
4902
|
}, this.onPopoverClose = () => {
|
|
4891
4903
|
this.stopListeningToBlockInput(), this.opened = !1, this.emit(
|
|
@@ -4893,16 +4905,16 @@ class Ds extends It {
|
|
|
4893
4905
|
/* Closed */
|
|
4894
4906
|
);
|
|
4895
4907
|
}, this.handleBlockInput = () => {
|
|
4896
|
-
var
|
|
4897
|
-
if (this.
|
|
4908
|
+
var c;
|
|
4909
|
+
if (this.currentContentEditable === null)
|
|
4898
4910
|
return;
|
|
4899
|
-
const i = this.
|
|
4900
|
-
if (
|
|
4911
|
+
const i = this.currentContentEditable.textContent || "", r = i.lastIndexOf("/");
|
|
4912
|
+
if (r === -1) {
|
|
4901
4913
|
this.close();
|
|
4902
4914
|
return;
|
|
4903
4915
|
}
|
|
4904
|
-
const
|
|
4905
|
-
(
|
|
4916
|
+
const l = i.slice(r + 1);
|
|
4917
|
+
(c = this.popover) == null || c.filterItems(l);
|
|
4906
4918
|
}, this.api = t, this.tools = e, this.i18nLabels = o, this.i18n = n, this.triggerElement = s, this.enableShortcuts(), this.nodes = {
|
|
4907
4919
|
toolbox: g.make("div")
|
|
4908
4920
|
}, this.nodes.toolbox.setAttribute("data-blok-testid", "toolbox"), this.initPopover(), this.api.events.on(yt, this.handleMobileLayoutToggle);
|
|
@@ -4949,7 +4961,7 @@ class Ds extends It {
|
|
|
4949
4961
|
*/
|
|
4950
4962
|
destroy() {
|
|
4951
4963
|
var t;
|
|
4952
|
-
super.destroy(), this.nodes && this.nodes.toolbox && this.nodes.toolbox.remove(), this.removeAllShortcuts(), (t = this.popover) == null || t.off(
|
|
4964
|
+
super.destroy(), this.nodes && this.nodes.toolbox && this.nodes.toolbox.remove(), this.removeAllShortcuts(), (t = this.popover) == null || t.off(X.Closed, this.onPopoverClose), this.listeners.destroy(), this.api.events.off(yt, this.handleMobileLayoutToggle);
|
|
4953
4965
|
}
|
|
4954
4966
|
/**
|
|
4955
4967
|
* Toolbox Tool's button click handler
|
|
@@ -4992,7 +5004,7 @@ class Ds extends It {
|
|
|
4992
5004
|
* Creates toolbox popover and appends it inside wrapper element
|
|
4993
5005
|
*/
|
|
4994
5006
|
initPopover() {
|
|
4995
|
-
const t = ct() ?
|
|
5007
|
+
const t = ct() ? Co : ft;
|
|
4996
5008
|
this.popover = new t({
|
|
4997
5009
|
scopeElement: this.api.ui.nodes.redactor,
|
|
4998
5010
|
trigger: this.triggerElement || this.nodes.toolbox,
|
|
@@ -5002,13 +5014,13 @@ class Ds extends It {
|
|
|
5002
5014
|
},
|
|
5003
5015
|
items: this.toolboxItemsToBeDisplayed,
|
|
5004
5016
|
handleContentEditableNavigation: !0
|
|
5005
|
-
}), this.popover.on(
|
|
5017
|
+
}), this.popover.on(X.Closed, this.onPopoverClose), this.popover.getElement().setAttribute("data-blok-testid", "toolbox-popover");
|
|
5006
5018
|
}
|
|
5007
5019
|
/**
|
|
5008
5020
|
* Destroys popover instance and removes it from DOM
|
|
5009
5021
|
*/
|
|
5010
5022
|
destroyPopover() {
|
|
5011
|
-
this.popover !== null && (this.popover.hide(), this.popover.off(
|
|
5023
|
+
this.popover !== null && (this.popover.hide(), this.popover.off(X.Closed, this.onPopoverClose), this.popover.destroy(), this.popover = null), this.nodes.toolbox !== null && (this.nodes.toolbox.innerHTML = "");
|
|
5012
5024
|
}
|
|
5013
5025
|
/**
|
|
5014
5026
|
* Returns list of tools that enables the Toolbox (by specifying the 'toolbox' getter)
|
|
@@ -5028,16 +5040,16 @@ class Ds extends It {
|
|
|
5028
5040
|
if (this._toolboxItemsToBeDisplayed)
|
|
5029
5041
|
return this._toolboxItemsToBeDisplayed;
|
|
5030
5042
|
const t = (o, n, s = !0) => {
|
|
5031
|
-
var
|
|
5032
|
-
const i = o.titleKey, r = i ? `toolNames.${i}` : void 0, l = r ? this.api.i18n.getEnglishTranslation(r) : o.title, c = (
|
|
5043
|
+
var f, p, b, k;
|
|
5044
|
+
const i = o.titleKey, r = i ? `toolNames.${i}` : void 0, l = r ? this.api.i18n.getEnglishTranslation(r) : o.title, c = (f = o.searchTerms) != null ? f : [], d = (p = n.searchTerms) != null ? p : [], h = [.../* @__PURE__ */ new Set([...c, ...d])], u = (b = o.shortcut) != null ? b : s ? n.shortcut : void 0;
|
|
5033
5045
|
return {
|
|
5034
5046
|
icon: o.icon,
|
|
5035
|
-
title:
|
|
5036
|
-
name: (
|
|
5047
|
+
title: ko(this.i18n, o, Ht(n.name)),
|
|
5048
|
+
name: (k = o.name) != null ? k : n.name,
|
|
5037
5049
|
onActivate: () => {
|
|
5038
5050
|
this.toolButtonActivated(n.name, o.data);
|
|
5039
5051
|
},
|
|
5040
|
-
secondaryLabel:
|
|
5052
|
+
secondaryLabel: u ? Bo(u) : "",
|
|
5041
5053
|
englishTitle: l,
|
|
5042
5054
|
searchTerms: h
|
|
5043
5055
|
};
|
|
@@ -5119,14 +5131,14 @@ class Ds extends It {
|
|
|
5119
5131
|
*/
|
|
5120
5132
|
startListeningToBlockInput() {
|
|
5121
5133
|
const t = this.api.blocks.getCurrentBlockIndex(), e = this.api.blocks.getBlockByIndex(t);
|
|
5122
|
-
e && (this.currentBlockForSearch = e.holder, this.listeners.on(this.currentBlockForSearch, "input", this.handleBlockInput));
|
|
5134
|
+
e && (this.currentBlockForSearch = e.holder, this.currentContentEditable = this.currentBlockForSearch.querySelector('[contenteditable="true"]'), this.listeners.on(this.currentBlockForSearch, "input", this.handleBlockInput));
|
|
5123
5135
|
}
|
|
5124
5136
|
/**
|
|
5125
5137
|
* Stops listening to block input events and resets the filter.
|
|
5126
5138
|
*/
|
|
5127
5139
|
stopListeningToBlockInput() {
|
|
5128
5140
|
var t;
|
|
5129
|
-
this.currentBlockForSearch !== null && (this.listeners.off(this.currentBlockForSearch, "input", this.handleBlockInput), this.currentBlockForSearch = null), (t = this.popover) == null || t.filterItems("");
|
|
5141
|
+
this.currentBlockForSearch !== null && (this.listeners.off(this.currentBlockForSearch, "input", this.handleBlockInput), this.currentBlockForSearch = null, this.currentContentEditable = null), (t = this.popover) == null || t.filterItems("");
|
|
5130
5142
|
}
|
|
5131
5143
|
/**
|
|
5132
5144
|
* Checks if a block contains only slash search text (e.g., "/head").
|
|
@@ -5140,8 +5152,8 @@ class Ds extends It {
|
|
|
5140
5152
|
return (((n = e == null ? void 0 : e.textContent) == null ? void 0 : n.trim()) || "").startsWith("/");
|
|
5141
5153
|
}
|
|
5142
5154
|
}
|
|
5143
|
-
const
|
|
5144
|
-
class
|
|
5155
|
+
const ce = "block hovered", Ge = 10;
|
|
5156
|
+
class Os extends T {
|
|
5145
5157
|
/**
|
|
5146
5158
|
* @class
|
|
5147
5159
|
* @param moduleConfiguration - Module Configuration
|
|
@@ -5152,7 +5164,7 @@ class Ls extends T {
|
|
|
5152
5164
|
super({
|
|
5153
5165
|
config: t,
|
|
5154
5166
|
eventsDispatcher: e
|
|
5155
|
-
}), this.hoveredBlock = null, this.hoveredTarget = null, this.toolboxInstance = null, this.
|
|
5167
|
+
}), this.hoveredBlock = null, this.hoveredTarget = null, this.toolboxInstance = null, this.lastToolbarY = null, this.ignoreNextSettingsMouseUp = !1, this.pendingMouseUpListeners = /* @__PURE__ */ new Set(), this.onBlockSettingsOpen = () => {
|
|
5156
5168
|
this.Blok.UI.nodes.wrapper.setAttribute(m.blockSettingsOpened, "true");
|
|
5157
5169
|
}, this.onBlockSettingsClose = () => {
|
|
5158
5170
|
this.Blok.UI.nodes.wrapper.removeAttribute(m.blockSettingsOpened);
|
|
@@ -5231,8 +5243,7 @@ class Ls extends T {
|
|
|
5231
5243
|
// Not-mobile styles
|
|
5232
5244
|
"not-mobile:w-6"
|
|
5233
5245
|
),
|
|
5234
|
-
settingsTogglerHidden: "hidden"
|
|
5235
|
-
settingsTogglerOpened: ""
|
|
5246
|
+
settingsTogglerHidden: "hidden"
|
|
5236
5247
|
};
|
|
5237
5248
|
}
|
|
5238
5249
|
/**
|
|
@@ -5264,14 +5275,14 @@ class Ls extends T {
|
|
|
5264
5275
|
},
|
|
5265
5276
|
open: () => {
|
|
5266
5277
|
if (this.toolboxInstance === null) {
|
|
5267
|
-
|
|
5278
|
+
I("toolbox.open() called before initialization is finished", "warn");
|
|
5268
5279
|
return;
|
|
5269
5280
|
}
|
|
5270
5281
|
this.hoveredBlock && (this.Blok.BlockManager.currentBlock = this.hoveredBlock), this.toolboxInstance.open();
|
|
5271
5282
|
},
|
|
5272
5283
|
toggle: () => {
|
|
5273
5284
|
if (this.toolboxInstance === null) {
|
|
5274
|
-
|
|
5285
|
+
I("toolbox.toggle() called before initialization is finished", "warn");
|
|
5275
5286
|
return;
|
|
5276
5287
|
}
|
|
5277
5288
|
this.toolboxInstance.toggle();
|
|
@@ -5330,7 +5341,7 @@ class Ls extends T {
|
|
|
5330
5341
|
*/
|
|
5331
5342
|
moveAndOpen(t, e) {
|
|
5332
5343
|
if (this.toolboxInstance === null) {
|
|
5333
|
-
|
|
5344
|
+
I("Can't open Toolbar since Blok initialization is not finished yet", "warn");
|
|
5334
5345
|
return;
|
|
5335
5346
|
}
|
|
5336
5347
|
this.toolboxInstance.opened && this.toolboxInstance.close(), this.Blok.BlockSettings.opened && this.Blok.BlockSettings.close();
|
|
@@ -5356,7 +5367,7 @@ class Ls extends T {
|
|
|
5356
5367
|
if (e.length < 2)
|
|
5357
5368
|
return;
|
|
5358
5369
|
if (this.toolboxInstance === null) {
|
|
5359
|
-
|
|
5370
|
+
I("Can't open Toolbar since Blok initialization is not finished yet", "warn");
|
|
5360
5371
|
return;
|
|
5361
5372
|
}
|
|
5362
5373
|
this.toolboxInstance.opened && this.toolboxInstance.close(), this.Blok.BlockSettings.opened && this.Blok.BlockSettings.close();
|
|
@@ -5424,30 +5435,22 @@ class Ls extends T {
|
|
|
5424
5435
|
]);
|
|
5425
5436
|
this.nodes.content = e, this.nodes.actions = o, o.setAttribute("data-blok-testid", "toolbar-actions"), g.append(t, e), g.append(e, o);
|
|
5426
5437
|
const n = g.make("div", this.CSS.plusButton, {
|
|
5427
|
-
innerHTML:
|
|
5438
|
+
innerHTML: Jo
|
|
5428
5439
|
});
|
|
5429
5440
|
n.setAttribute("data-blok-testid", "plus-button"), this.nodes.plusButton = n, g.append(o, n), this.readOnlyMutableListeners.on(n, "mousedown", (h) => {
|
|
5430
|
-
Tt()
|
|
5431
|
-
|
|
5432
|
-
|
|
5433
|
-
|
|
5434
|
-
|
|
5435
|
-
|
|
5436
|
-
|
|
5437
|
-
document.removeEventListener("mouseup", f, !0);
|
|
5438
|
-
const b = this.plusButtonMouseDownPosition;
|
|
5439
|
-
if (this.plusButtonMouseDownPosition = null, b === null || Math.abs(p.clientX - b.x) > Dt || Math.abs(p.clientY - b.y) > Dt)
|
|
5440
|
-
return;
|
|
5441
|
-
const x = ze().win ? p.ctrlKey : p.altKey;
|
|
5442
|
-
this.plusButtonClicked(x);
|
|
5443
|
-
};
|
|
5444
|
-
document.addEventListener("mouseup", f, !0);
|
|
5441
|
+
Tt(), this.setupClickVsDrag(
|
|
5442
|
+
h,
|
|
5443
|
+
(u) => {
|
|
5444
|
+
const p = _e().win ? u.ctrlKey : u.altKey;
|
|
5445
|
+
this.plusButtonClicked(p);
|
|
5446
|
+
}
|
|
5447
|
+
);
|
|
5445
5448
|
}, !0);
|
|
5446
|
-
const i =
|
|
5449
|
+
const i = _e().win ? this.Blok.I18n.t("toolbox.ctrlAddAbove") : this.Blok.I18n.t("toolbox.optionAddAbove"), r = this.createTooltipContent([
|
|
5447
5450
|
this.Blok.I18n.t("toolbox.addBelow"),
|
|
5448
5451
|
i
|
|
5449
5452
|
]);
|
|
5450
|
-
|
|
5453
|
+
Ut(n, r, {
|
|
5451
5454
|
delay: 500
|
|
5452
5455
|
});
|
|
5453
5456
|
const l = g.make("span", [
|
|
@@ -5455,7 +5458,7 @@ class Ls extends T {
|
|
|
5455
5458
|
this.CSS.settingsToggler,
|
|
5456
5459
|
"group-data-[blok-dragging=true]:cursor-grabbing"
|
|
5457
5460
|
], {
|
|
5458
|
-
innerHTML:
|
|
5461
|
+
innerHTML: Qo
|
|
5459
5462
|
});
|
|
5460
5463
|
l.setAttribute(m.settingsToggler, ""), l.setAttribute(m.dragHandle, ""), l.setAttribute("data-blok-testid", "settings-toggler"), l.setAttribute("role", "button"), l.setAttribute("tabindex", "-1"), l.setAttribute(
|
|
5461
5464
|
"aria-label",
|
|
@@ -5468,7 +5471,7 @@ class Ls extends T {
|
|
|
5468
5471
|
this.Blok.I18n.t("blockSettings.dragToMove"),
|
|
5469
5472
|
this.Blok.I18n.t("blockSettings.clickToOpenMenu")
|
|
5470
5473
|
]);
|
|
5471
|
-
|
|
5474
|
+
Ut(l, c, {
|
|
5472
5475
|
delay: 500
|
|
5473
5476
|
}), g.append(o, this.makeToolbox());
|
|
5474
5477
|
const d = this.Blok.BlockSettings.getElement();
|
|
@@ -5480,7 +5483,7 @@ class Ls extends T {
|
|
|
5480
5483
|
* Creates the Toolbox instance and return it's rendered element
|
|
5481
5484
|
*/
|
|
5482
5485
|
makeToolbox() {
|
|
5483
|
-
this.toolboxInstance = new
|
|
5486
|
+
this.toolboxInstance = new Ls({
|
|
5484
5487
|
api: this.Blok.API.methods,
|
|
5485
5488
|
tools: this.Blok.Tools.blockTools,
|
|
5486
5489
|
i18nLabels: {
|
|
@@ -5489,11 +5492,11 @@ class Ls extends T {
|
|
|
5489
5492
|
},
|
|
5490
5493
|
i18n: this.Blok.I18n,
|
|
5491
5494
|
triggerElement: this.nodes.plusButton
|
|
5492
|
-
}), this.toolboxInstance.on(
|
|
5495
|
+
}), this.toolboxInstance.on(Nt.Opened, () => {
|
|
5493
5496
|
this.Blok.UI.nodes.wrapper.classList.add(this.CSS.openedToolboxHolderModifier), this.Blok.UI.nodes.wrapper.setAttribute(m.toolboxOpened, "true");
|
|
5494
|
-
}), this.toolboxInstance.on(
|
|
5497
|
+
}), this.toolboxInstance.on(Nt.Closed, () => {
|
|
5495
5498
|
this.Blok.UI.nodes.wrapper.classList.remove(this.CSS.openedToolboxHolderModifier), this.Blok.UI.nodes.wrapper.removeAttribute(m.toolboxOpened);
|
|
5496
|
-
}), this.toolboxInstance.on(
|
|
5499
|
+
}), this.toolboxInstance.on(Nt.BlockAdded, ({ block: e }) => {
|
|
5497
5500
|
const { BlockManager: o, Caret: n } = this.Blok, s = o.getBlockById(e.id);
|
|
5498
5501
|
if (!s || s.inputs.length !== 0)
|
|
5499
5502
|
return;
|
|
@@ -5530,23 +5533,20 @@ class Ls extends T {
|
|
|
5530
5533
|
enableModuleBindings() {
|
|
5531
5534
|
const t = this.nodes.settingsToggler;
|
|
5532
5535
|
t && this.readOnlyMutableListeners.on(t, "mousedown", (e) => {
|
|
5533
|
-
Tt()
|
|
5534
|
-
|
|
5535
|
-
|
|
5536
|
-
|
|
5537
|
-
|
|
5538
|
-
|
|
5539
|
-
|
|
5540
|
-
|
|
5541
|
-
|
|
5542
|
-
|
|
5543
|
-
|
|
5536
|
+
Tt(), this.setupClickVsDrag(
|
|
5537
|
+
e,
|
|
5538
|
+
() => {
|
|
5539
|
+
var o;
|
|
5540
|
+
this.settingsTogglerClicked(), (o = this.toolboxInstance) != null && o.opened && this.toolboxInstance.close();
|
|
5541
|
+
},
|
|
5542
|
+
{
|
|
5543
|
+
/**
|
|
5544
|
+
* Check if we should ignore this mouseup (e.g., after a block drop)
|
|
5545
|
+
*/
|
|
5546
|
+
beforeCallback: () => this.ignoreNextSettingsMouseUp ? (this.ignoreNextSettingsMouseUp = !1, !1) : !0
|
|
5544
5547
|
}
|
|
5545
|
-
|
|
5546
|
-
|
|
5547
|
-
};
|
|
5548
|
-
document.addEventListener("mouseup", n, !0);
|
|
5549
|
-
}, !0), ct() || this.eventsDispatcher.on(de, (e) => {
|
|
5548
|
+
);
|
|
5549
|
+
}, !0), ct() || this.eventsDispatcher.on(ce, (e) => {
|
|
5550
5550
|
var l;
|
|
5551
5551
|
if (this.Blok.DragManager.isDragging || this.Blok.RectangleSelection.isRectActivated())
|
|
5552
5552
|
return;
|
|
@@ -5559,13 +5559,13 @@ class Ls extends T {
|
|
|
5559
5559
|
return;
|
|
5560
5560
|
}
|
|
5561
5561
|
i || this.moveAndOpen(o, n);
|
|
5562
|
-
}), this.eventsDispatcher.on(
|
|
5562
|
+
}), this.eventsDispatcher.on(ie, this.onBlockSettingsOpen), this.eventsDispatcher.on(re, this.onBlockSettingsClose), this.eventsDispatcher.on(wt, this.onBlockChanged);
|
|
5563
5563
|
}
|
|
5564
5564
|
/**
|
|
5565
5565
|
* Disable bindings
|
|
5566
5566
|
*/
|
|
5567
5567
|
disableModuleBindings() {
|
|
5568
|
-
this.readOnlyMutableListeners.clearAll(), this.eventsDispatcher.off(
|
|
5568
|
+
this.readOnlyMutableListeners.clearAll(), this.eventsDispatcher.off(ie, this.onBlockSettingsOpen), this.eventsDispatcher.off(re, this.onBlockSettingsClose), this.eventsDispatcher.off(wt, this.onBlockChanged);
|
|
5569
5569
|
}
|
|
5570
5570
|
/**
|
|
5571
5571
|
* Calculates the Y position for the toolbar, centered on the first line of the block
|
|
@@ -5646,16 +5646,38 @@ class Ls extends T {
|
|
|
5646
5646
|
e.appendChild(n);
|
|
5647
5647
|
}), e;
|
|
5648
5648
|
}
|
|
5649
|
+
/**
|
|
5650
|
+
* Sets up a click-vs-drag detection pattern on an element.
|
|
5651
|
+
* Tracks mousedown position and fires callback only if mouse didn't move beyond threshold.
|
|
5652
|
+
* Uses document-level mouseup to catch events even if mouse moves off element.
|
|
5653
|
+
* @param element - Element to attach mousedown listener to
|
|
5654
|
+
* @param mouseEvent - The mousedown event
|
|
5655
|
+
* @param onClickCallback - Callback to fire if it was a click (not a drag)
|
|
5656
|
+
* @param options - Optional configuration
|
|
5657
|
+
* @param options.beforeCallback - Function called before click callback, return false to abort
|
|
5658
|
+
*/
|
|
5659
|
+
setupClickVsDrag(t, e, o) {
|
|
5660
|
+
const n = {
|
|
5661
|
+
x: t.clientX,
|
|
5662
|
+
y: t.clientY
|
|
5663
|
+
}, s = (i) => {
|
|
5664
|
+
document.removeEventListener("mouseup", s, !0), this.pendingMouseUpListeners.delete(s), !(o != null && o.beforeCallback && !o.beforeCallback() || Math.abs(i.clientX - n.x) > Ge || Math.abs(i.clientY - n.y) > Ge) && e(i);
|
|
5665
|
+
};
|
|
5666
|
+
this.pendingMouseUpListeners.add(s), document.addEventListener("mouseup", s, !0);
|
|
5667
|
+
}
|
|
5649
5668
|
/**
|
|
5650
5669
|
* Removes all created and saved HTMLElements
|
|
5651
5670
|
* It is used in Read-Only mode
|
|
5652
5671
|
*/
|
|
5653
5672
|
destroy() {
|
|
5654
5673
|
this.removeAllNodes(), this.toolboxInstance && this.toolboxInstance.destroy();
|
|
5674
|
+
for (const t of this.pendingMouseUpListeners)
|
|
5675
|
+
document.removeEventListener("mouseup", t, !0);
|
|
5676
|
+
this.pendingMouseUpListeners.clear();
|
|
5655
5677
|
}
|
|
5656
5678
|
}
|
|
5657
5679
|
var dt = /* @__PURE__ */ ((a) => (a[a.Block = 0] = "Block", a[a.Inline = 1] = "Inline", a[a.Tune = 2] = "Tune", a))(dt || {});
|
|
5658
|
-
const
|
|
5680
|
+
const Ns = /* @__PURE__ */ new Set([
|
|
5659
5681
|
"class",
|
|
5660
5682
|
"inlineToolbar",
|
|
5661
5683
|
"tunes",
|
|
@@ -5664,8 +5686,8 @@ const Os = /* @__PURE__ */ new Set([
|
|
|
5664
5686
|
"config",
|
|
5665
5687
|
"isInternal"
|
|
5666
5688
|
]);
|
|
5667
|
-
var
|
|
5668
|
-
class
|
|
5689
|
+
var Rt = /* @__PURE__ */ ((a) => (a.Shortcut = "shortcut", a.Toolbox = "toolbox", a.EnabledInlineTools = "inlineToolbar", a.EnabledBlockTunes = "tunes", a.Config = "config", a))(Rt || {}), Io = /* @__PURE__ */ ((a) => (a.Shortcut = "shortcut", a.SanitizeConfig = "sanitize", a))(Io || {}), pt = /* @__PURE__ */ ((a) => (a.IsEnabledLineBreaks = "enableLineBreaks", a.Toolbox = "toolbox", a.ConversionConfig = "conversionConfig", a.IsReadOnlySupported = "isReadOnlySupported", a.PasteConfig = "pasteConfig", a))(pt || {}), Eo = /* @__PURE__ */ ((a) => (a.IsInline = "isInline", a.Title = "title", a.IsReadOnlySupported = "isReadOnlySupported", a))(Eo || {}), Ao = /* @__PURE__ */ ((a) => (a.IsTune = "isTune", a))(Ao || {});
|
|
5690
|
+
class Ie {
|
|
5669
5691
|
/**
|
|
5670
5692
|
* @class
|
|
5671
5693
|
* @param {ConstructorOptions} options - Constructor options
|
|
@@ -5689,7 +5711,7 @@ class Ee {
|
|
|
5689
5711
|
var n;
|
|
5690
5712
|
const t = (n = this.config.config) != null ? n : {}, e = {};
|
|
5691
5713
|
for (const s of Object.keys(this.config))
|
|
5692
|
-
|
|
5714
|
+
Ns.has(s) || (e[s] = this.config[s]);
|
|
5693
5715
|
const o = w(w({}, t), e);
|
|
5694
5716
|
return this.isDefault && !("placeholder" in o) && this.defaultPlaceholder && (o.placeholder = this.defaultPlaceholder), o;
|
|
5695
5717
|
}
|
|
@@ -5745,7 +5767,7 @@ class Ee {
|
|
|
5745
5767
|
return this.type === dt.Tune;
|
|
5746
5768
|
}
|
|
5747
5769
|
}
|
|
5748
|
-
class
|
|
5770
|
+
class Rs extends T {
|
|
5749
5771
|
/**
|
|
5750
5772
|
* @param moduleConfiguration - Module Configuration
|
|
5751
5773
|
* @param moduleConfiguration.config - Blok's config
|
|
@@ -5874,7 +5896,7 @@ class Ns extends T {
|
|
|
5874
5896
|
if (!this.opened)
|
|
5875
5897
|
return;
|
|
5876
5898
|
this.tools = /* @__PURE__ */ new Map(), this.opened = !1, this.openingPromise = null, this.popover && ((n = (o = this.popover).hide) == null || n.call(o), (i = (s = this.popover).destroy) == null || i.call(s), this.popover = null), this.nodes.wrapper && (this.nodes.wrapper.innerHTML = "");
|
|
5877
|
-
const t =
|
|
5899
|
+
const t = qe.mock, e = (l = (r = t == null ? void 0 : t.results) == null ? void 0 : r.at(-1)) == null ? void 0 : l.value;
|
|
5878
5900
|
e && ((c = e.hide) == null || c.call(e), (d = e.destroy) == null || d.call(e));
|
|
5879
5901
|
}
|
|
5880
5902
|
/**
|
|
@@ -5895,23 +5917,23 @@ class Ns extends T {
|
|
|
5895
5917
|
* Making DOM - creates wrapper element for the inline toolbar
|
|
5896
5918
|
*/
|
|
5897
5919
|
make() {
|
|
5898
|
-
this.nodes.wrapper = g.make("div",
|
|
5920
|
+
this.nodes.wrapper = g.make("div", C(
|
|
5899
5921
|
"absolute top-0 left-0 z-[3] opacity-100 visible",
|
|
5900
5922
|
"transition-opacity duration-[250ms] ease-out",
|
|
5901
5923
|
"will-change-[opacity,left,top]",
|
|
5902
5924
|
"[&_[hidden]]:!hidden"
|
|
5903
|
-
)), this.nodes.wrapper.setAttribute(m.interface,
|
|
5925
|
+
)), this.nodes.wrapper.setAttribute(m.interface, tn), this.nodes.wrapper.setAttribute("data-blok-testid", "inline-toolbar"), g.append(this.Blok.UI.nodes.wrapper, this.nodes.wrapper);
|
|
5904
5926
|
}
|
|
5905
5927
|
/**
|
|
5906
5928
|
* Shows Inline Toolbar
|
|
5907
5929
|
*/
|
|
5908
5930
|
async open() {
|
|
5909
|
-
var i, r, l, c, d, h, u, f, p, b, k, B, x, S, M, P, D, et, Ne, Re
|
|
5931
|
+
var i, r, l, c, d, h, u, f, p, b, k, B, x, S, M, P, D, et, Oe, Ne, Re;
|
|
5910
5932
|
if (this.opened || (this.initialize(), this.opened = !0, this.popover && ((r = (i = this.popover).hide) == null || r.call(i), (c = (l = this.popover).destroy) == null || c.call(l), this.popover = null), this.createToolsInstances(), !this.nodes.wrapper))
|
|
5911
5933
|
return;
|
|
5912
5934
|
this.nodes.wrapper.innerHTML = "";
|
|
5913
5935
|
const t = await this.buildPopoverItems(), e = (p = (f = (u = (h = (d = this.Blok.API) == null ? void 0 : d.methods) == null ? void 0 : h.ui) == null ? void 0 : u.nodes) == null ? void 0 : f.redactor) != null ? p : this.Blok.UI.nodes.redactor;
|
|
5914
|
-
this.popover = new
|
|
5936
|
+
this.popover = new qe({
|
|
5915
5937
|
items: t,
|
|
5916
5938
|
scopeElement: e,
|
|
5917
5939
|
messages: {
|
|
@@ -5919,8 +5941,8 @@ class Ns extends T {
|
|
|
5919
5941
|
search: this.Blok.I18n.t("popover.search")
|
|
5920
5942
|
}
|
|
5921
5943
|
});
|
|
5922
|
-
const o = (S = (k = (b = this.popover).getMountElement) == null ? void 0 : k.call(b)) != null ? S : (x = (B = this.popover).getElement) == null ? void 0 : x.call(B), n = (P = (M = this.popover).getElement) == null ? void 0 : P.call(M), s = (
|
|
5923
|
-
this.applyPosition(s), o && this.nodes.wrapper && this.nodes.wrapper.appendChild(o), (
|
|
5944
|
+
const o = (S = (k = (b = this.popover).getMountElement) == null ? void 0 : k.call(b)) != null ? S : (x = (B = this.popover).getElement) == null ? void 0 : x.call(B), n = (P = (M = this.popover).getElement) == null ? void 0 : P.call(M), s = (Oe = (et = (D = this.popover.size) == null ? void 0 : D.width) != null ? et : n == null ? void 0 : n.getBoundingClientRect().width) != null ? Oe : 0;
|
|
5945
|
+
this.applyPosition(s), o && this.nodes.wrapper && this.nodes.wrapper.appendChild(o), (Re = (Ne = this.popover).show) == null || Re.call(Ne);
|
|
5924
5946
|
}
|
|
5925
5947
|
/**
|
|
5926
5948
|
* Build popover items from tools map
|
|
@@ -5928,7 +5950,7 @@ class Ns extends T {
|
|
|
5928
5950
|
async buildPopoverItems() {
|
|
5929
5951
|
const t = [], e = Array.from(this.tools.entries());
|
|
5930
5952
|
for (const [o, [n, s]] of e.entries()) {
|
|
5931
|
-
const i = await s.render(), r = this.getToolShortcut(n.name), l = r !== void 0 ?
|
|
5953
|
+
const i = await s.render(), r = this.getToolShortcut(n.name), l = r !== void 0 ? Bo(r) : void 0, c = en(this.Blok.I18n, n.titleKey, n.title || Ht(n.name)), d = Array.isArray(i) ? i : [i], h = o === 0;
|
|
5932
5954
|
for (const u of d) {
|
|
5933
5955
|
const f = this.processPopoverItem(u, n.name, c, l, h);
|
|
5934
5956
|
t.push(...f);
|
|
@@ -6161,7 +6183,7 @@ const Et = {
|
|
|
6161
6183
|
"a11y.movedDown": "Block moved down to position {position} of {total}",
|
|
6162
6184
|
"a11y.atTop": "Block is at the top, cannot move up",
|
|
6163
6185
|
"a11y.atBottom": "Block is at the bottom, cannot move down"
|
|
6164
|
-
},
|
|
6186
|
+
}, Ps = /* @__PURE__ */ new Set([
|
|
6165
6187
|
"ar",
|
|
6166
6188
|
"dv",
|
|
6167
6189
|
"fa",
|
|
@@ -6172,10 +6194,10 @@ const Et = {
|
|
|
6172
6194
|
"ug",
|
|
6173
6195
|
"ur",
|
|
6174
6196
|
"yi"
|
|
6175
|
-
]),
|
|
6197
|
+
]), de = (a) => Ps.has(a) ? "rtl" : "ltr", Mo = (a, t) => ({
|
|
6176
6198
|
dictionary: t,
|
|
6177
|
-
direction:
|
|
6178
|
-
}),
|
|
6199
|
+
direction: de(a)
|
|
6200
|
+
}), Hs = [
|
|
6179
6201
|
"am",
|
|
6180
6202
|
"ar",
|
|
6181
6203
|
"az",
|
|
@@ -6244,9 +6266,9 @@ const Et = {
|
|
|
6244
6266
|
"vi",
|
|
6245
6267
|
"yi",
|
|
6246
6268
|
"zh"
|
|
6247
|
-
], Je = "en",
|
|
6248
|
-
|
|
6249
|
-
const
|
|
6269
|
+
], Je = "en", Fs = Mo("en", Et), he = /* @__PURE__ */ new Map();
|
|
6270
|
+
he.set("en", Fs);
|
|
6271
|
+
const _s = {
|
|
6250
6272
|
am: () => import("./messages-Bdv-IkfG.mjs"),
|
|
6251
6273
|
ar: () => import("./messages-AHESHJm_.mjs"),
|
|
6252
6274
|
az: () => import("./messages-Bn253WWC.mjs"),
|
|
@@ -6315,14 +6337,14 @@ const Fs = {
|
|
|
6315
6337
|
vi: () => import("./messages-Cyi2AMmz.mjs"),
|
|
6316
6338
|
yi: () => import("./messages-RvMHb2Ht.mjs"),
|
|
6317
6339
|
zh: () => import("./messages-B66ZSDCJ.mjs")
|
|
6318
|
-
},
|
|
6319
|
-
const t =
|
|
6340
|
+
}, zs = async (a) => {
|
|
6341
|
+
const t = he.get(a);
|
|
6320
6342
|
if (t !== void 0)
|
|
6321
6343
|
return t;
|
|
6322
|
-
const e =
|
|
6323
|
-
return
|
|
6344
|
+
const e = _s[a], o = await e(), n = Mo(a, o.default);
|
|
6345
|
+
return he.set(a, n), n;
|
|
6324
6346
|
};
|
|
6325
|
-
class
|
|
6347
|
+
class Us {
|
|
6326
6348
|
constructor() {
|
|
6327
6349
|
this.overrides = null, this.dictionary = Et;
|
|
6328
6350
|
}
|
|
@@ -6367,13 +6389,13 @@ class zs {
|
|
|
6367
6389
|
return "ltr";
|
|
6368
6390
|
}
|
|
6369
6391
|
}
|
|
6370
|
-
const
|
|
6371
|
-
class
|
|
6392
|
+
const Fi = Et;
|
|
6393
|
+
class Ks extends T {
|
|
6372
6394
|
/**
|
|
6373
6395
|
* Constructor - creates lightweight i18n instance
|
|
6374
6396
|
*/
|
|
6375
6397
|
constructor(...t) {
|
|
6376
|
-
super(...t), this.i18nextWrapper = null, this.locale = Je, this.defaultLocale = Je, this.usingI18next = !1, this.lightweightI18n = new
|
|
6398
|
+
super(...t), this.i18nextWrapper = null, this.locale = Je, this.defaultLocale = Je, this.usingI18next = !1, this.lightweightI18n = new Us();
|
|
6377
6399
|
}
|
|
6378
6400
|
/**
|
|
6379
6401
|
* Translate a key with optional interpolation.
|
|
@@ -6426,7 +6448,7 @@ class Us extends T {
|
|
|
6426
6448
|
this.locale = "en", this.usingI18next = !1;
|
|
6427
6449
|
return;
|
|
6428
6450
|
}
|
|
6429
|
-
const e = await
|
|
6451
|
+
const e = await zs(t);
|
|
6430
6452
|
if (await this.ensureI18nextLoaded(t, e), this.i18nextWrapper === null)
|
|
6431
6453
|
return;
|
|
6432
6454
|
!this.i18nextWrapper.instance.hasResourceBundle(t, "translation") && this.i18nextWrapper.instance.addResourceBundle(t, "translation", e.dictionary), await this.i18nextWrapper.changeLanguage(t), this.locale = t, this.usingI18next = !0;
|
|
@@ -6462,7 +6484,7 @@ class Us extends T {
|
|
|
6462
6484
|
* Get the text direction for the current locale
|
|
6463
6485
|
*/
|
|
6464
6486
|
getDirection() {
|
|
6465
|
-
return
|
|
6487
|
+
return de(this.locale);
|
|
6466
6488
|
}
|
|
6467
6489
|
/**
|
|
6468
6490
|
* Get the text direction for any locale code
|
|
@@ -6470,7 +6492,7 @@ class Us extends T {
|
|
|
6470
6492
|
* @param locale - Locale code to check
|
|
6471
6493
|
*/
|
|
6472
6494
|
getDirectionForLocale(t) {
|
|
6473
|
-
return
|
|
6495
|
+
return de(t);
|
|
6474
6496
|
}
|
|
6475
6497
|
/**
|
|
6476
6498
|
* Module preparation - called during editor initialization.
|
|
@@ -6489,7 +6511,7 @@ class Us extends T {
|
|
|
6489
6511
|
async ensureI18nextLoaded(t, e) {
|
|
6490
6512
|
if (this.i18nextWrapper !== null)
|
|
6491
6513
|
return;
|
|
6492
|
-
const { loadI18next: o } = await import("./i18next-loader-
|
|
6514
|
+
const { loadI18next: o } = await import("./i18next-loader-BMO6Rg_l.mjs");
|
|
6493
6515
|
this.i18nextWrapper = await o(t, e);
|
|
6494
6516
|
}
|
|
6495
6517
|
/**
|
|
@@ -6510,7 +6532,7 @@ class Us extends T {
|
|
|
6510
6532
|
* All 68 locales in ALL_LOCALE_CODES are supported.
|
|
6511
6533
|
*/
|
|
6512
6534
|
isLocaleSupported(t) {
|
|
6513
|
-
return
|
|
6535
|
+
return Hs.includes(t);
|
|
6514
6536
|
}
|
|
6515
6537
|
/**
|
|
6516
6538
|
* Detect best matching locale from browser settings
|
|
@@ -6543,7 +6565,7 @@ class Us extends T {
|
|
|
6543
6565
|
return o !== void 0 && this.isLocaleSupported(o) ? o : null;
|
|
6544
6566
|
}
|
|
6545
6567
|
}
|
|
6546
|
-
const
|
|
6568
|
+
const Ee = " ", ue = /* @__PURE__ */ new WeakSet(), Ae = () => {
|
|
6547
6569
|
var i, r;
|
|
6548
6570
|
const a = window.getSelection();
|
|
6549
6571
|
if (a === null)
|
|
@@ -6558,20 +6580,20 @@ const Ae = " ", pe = /* @__PURE__ */ new WeakSet(), Me = () => {
|
|
|
6558
6580
|
return [o, 0];
|
|
6559
6581
|
const n = (i = t.childNodes[e - 1]) != null ? i : null, s = (r = n == null ? void 0 : n.textContent) != null ? r : null;
|
|
6560
6582
|
return [n, s !== null ? s.length : 0];
|
|
6561
|
-
},
|
|
6583
|
+
}, Do = (a) => {
|
|
6562
6584
|
var e;
|
|
6563
6585
|
if (!(a instanceof HTMLElement) || g.isSingleTag(a) || g.isNativeInput(a))
|
|
6564
6586
|
return !1;
|
|
6565
6587
|
if (a.childNodes.length === 0)
|
|
6566
6588
|
return !0;
|
|
6567
6589
|
const t = (e = a.textContent) != null ? e : "";
|
|
6568
|
-
return t.includes(
|
|
6590
|
+
return t.includes(Ee) || !Be(t) ? !1 : Array.from(a.children).every((o) => Do(o));
|
|
6569
6591
|
}, Qe = typeof window != "undefined" && typeof window.MutationObserver != "undefined" ? new window.MutationObserver((a) => {
|
|
6570
6592
|
for (const t of a) {
|
|
6571
6593
|
const e = t.nextSibling;
|
|
6572
6594
|
t.removedNodes.forEach((o) => {
|
|
6573
6595
|
var l, c, d;
|
|
6574
|
-
if (!(o instanceof Element) || !
|
|
6596
|
+
if (!(o instanceof Element) || !Do(o))
|
|
6575
6597
|
return;
|
|
6576
6598
|
const n = e instanceof Text ? e : null;
|
|
6577
6599
|
if (n === null || !n.isConnected)
|
|
@@ -6580,10 +6602,10 @@ const Ae = " ", pe = /* @__PURE__ */ new WeakSet(), Me = () => {
|
|
|
6580
6602
|
if (!((l = s == null ? void 0 : s.isContentEditable) != null && l))
|
|
6581
6603
|
return;
|
|
6582
6604
|
const i = (d = (c = n.textContent) == null ? void 0 : c[0]) != null ? d : null;
|
|
6583
|
-
(i ===
|
|
6605
|
+
(i === Ee || i === " ") && ue.add(n);
|
|
6584
6606
|
});
|
|
6585
6607
|
}
|
|
6586
|
-
}) : null, to = /* @__PURE__ */ new WeakSet(),
|
|
6608
|
+
}) : null, to = /* @__PURE__ */ new WeakSet(), Lo = (a) => {
|
|
6587
6609
|
if (Qe === null || to.has(a))
|
|
6588
6610
|
return;
|
|
6589
6611
|
const t = () => {
|
|
@@ -6594,11 +6616,11 @@ const Ae = " ", pe = /* @__PURE__ */ new WeakSet(), Me = () => {
|
|
|
6594
6616
|
};
|
|
6595
6617
|
a.readyState === "loading" ? a.addEventListener("DOMContentLoaded", t, { once: !0 }) : t();
|
|
6596
6618
|
};
|
|
6597
|
-
typeof window != "undefined" && typeof window.document != "undefined" &&
|
|
6598
|
-
const
|
|
6619
|
+
typeof window != "undefined" && typeof window.document != "undefined" && Lo(window.document);
|
|
6620
|
+
const Ws = (a) => {
|
|
6599
6621
|
var n, s;
|
|
6600
|
-
|
|
6601
|
-
const [t, e] =
|
|
6622
|
+
Lo(a.ownerDocument);
|
|
6623
|
+
const [t, e] = Ae();
|
|
6602
6624
|
if (t === null || !a.contains(t) || t.nodeType === Node.TEXT_NODE && e < ((n = t.textContent) != null ? n : "").length)
|
|
6603
6625
|
return null;
|
|
6604
6626
|
const o = document.createTreeWalker(a, NodeFilter.SHOW_TEXT);
|
|
@@ -6610,7 +6632,7 @@ const Ks = (a) => {
|
|
|
6610
6632
|
if (r.length === 0)
|
|
6611
6633
|
continue;
|
|
6612
6634
|
const l = r[0];
|
|
6613
|
-
if (!(l ===
|
|
6635
|
+
if (!(l === Ee || l === " ") || i === t)
|
|
6614
6636
|
return null;
|
|
6615
6637
|
const d = document.createRange();
|
|
6616
6638
|
try {
|
|
@@ -6623,15 +6645,15 @@ const Ks = (a) => {
|
|
|
6623
6645
|
const f = Array.from(u.querySelectorAll("*")).some((b) => {
|
|
6624
6646
|
var B;
|
|
6625
6647
|
const k = (B = b.textContent) != null ? B : "";
|
|
6626
|
-
return k.length === 0 ||
|
|
6627
|
-
}), p =
|
|
6648
|
+
return k.length === 0 || Be(k);
|
|
6649
|
+
}), p = ue.has(i);
|
|
6628
6650
|
if (!(!f && !p))
|
|
6629
|
-
return p &&
|
|
6651
|
+
return p && ue.delete(i), {
|
|
6630
6652
|
node: i,
|
|
6631
6653
|
offset: 0
|
|
6632
6654
|
};
|
|
6633
6655
|
}
|
|
6634
|
-
},
|
|
6656
|
+
}, Oo = (a, t, e, o) => {
|
|
6635
6657
|
const n = document.createRange();
|
|
6636
6658
|
o === "left" ? (n.selectNodeContents(a), n.setEnd(t, e)) : (n.selectNodeContents(a), n.setStart(t, e));
|
|
6637
6659
|
const s = n.cloneContents(), i = document.createElement("div");
|
|
@@ -6644,8 +6666,8 @@ const Ks = (a) => {
|
|
|
6644
6666
|
return !1;
|
|
6645
6667
|
i.style.position = "absolute", i.style.visibility = "hidden", i.style.height = "auto", i.style.width = "auto", i.style.whiteSpace = window.getComputedStyle(a).whiteSpace, document.body.appendChild(i);
|
|
6646
6668
|
const h = i.getBoundingClientRect().width;
|
|
6647
|
-
return document.body.removeChild(i), !(h > 0 || !
|
|
6648
|
-
},
|
|
6669
|
+
return document.body.removeChild(i), !(h > 0 || !Be(r) || window.getComputedStyle(a).whiteSpace.startsWith("pre") && r.length > 0);
|
|
6670
|
+
}, Pt = (a) => {
|
|
6649
6671
|
var i;
|
|
6650
6672
|
const t = g.getDeepestNode(a);
|
|
6651
6673
|
if (t === null || g.isEmpty(a))
|
|
@@ -6654,20 +6676,20 @@ const Ks = (a) => {
|
|
|
6654
6676
|
return t.selectionEnd === 0;
|
|
6655
6677
|
if (g.isEmpty(a))
|
|
6656
6678
|
return !0;
|
|
6657
|
-
const [e, o] =
|
|
6679
|
+
const [e, o] = Ae();
|
|
6658
6680
|
if (e === null)
|
|
6659
6681
|
return !1;
|
|
6660
6682
|
const n = window.getSelection(), s = (i = n == null ? void 0 : n.focusNode) != null ? i : null;
|
|
6661
|
-
return s !== null && s !== a && !(s.nodeType === Node.TEXT_NODE && s.parentNode === a) ? !1 :
|
|
6683
|
+
return s !== null && s !== a && !(s.nodeType === Node.TEXT_NODE && s.parentNode === a) ? !1 : Oo(a, e, o, "left");
|
|
6662
6684
|
}, kt = (a) => {
|
|
6663
6685
|
const t = g.getDeepestNode(a, !0);
|
|
6664
6686
|
if (t === null)
|
|
6665
6687
|
return !0;
|
|
6666
6688
|
if (g.isNativeInput(t))
|
|
6667
6689
|
return t.selectionEnd === t.value.length;
|
|
6668
|
-
const [e, o] =
|
|
6669
|
-
return e === null ? !1 :
|
|
6670
|
-
},
|
|
6690
|
+
const [e, o] = Ae();
|
|
6691
|
+
return e === null ? !1 : Oo(a, e, o, "right");
|
|
6692
|
+
}, No = (a, t) => {
|
|
6671
6693
|
const e = a.getBoundingClientRect();
|
|
6672
6694
|
if (e.height !== 0 || e.top !== 0)
|
|
6673
6695
|
return e;
|
|
@@ -6676,7 +6698,7 @@ const Ks = (a) => {
|
|
|
6676
6698
|
return t.getBoundingClientRect();
|
|
6677
6699
|
const s = n.getBoundingClientRect();
|
|
6678
6700
|
return s.height !== 0 || s.top !== 0 ? s : t.getBoundingClientRect();
|
|
6679
|
-
},
|
|
6701
|
+
}, $s = (a) => {
|
|
6680
6702
|
var l;
|
|
6681
6703
|
if (g.isNativeInput(a) && a.tagName === "INPUT")
|
|
6682
6704
|
return !0;
|
|
@@ -6688,7 +6710,7 @@ const Ks = (a) => {
|
|
|
6688
6710
|
const t = window.getSelection();
|
|
6689
6711
|
if (!t || t.rangeCount === 0)
|
|
6690
6712
|
return !0;
|
|
6691
|
-
const e = t.getRangeAt(0), o =
|
|
6713
|
+
const e = t.getRangeAt(0), o = No(e, a), n = g.getDeepestNode(a, !1);
|
|
6692
6714
|
if (!n)
|
|
6693
6715
|
return !0;
|
|
6694
6716
|
const s = document.createRange();
|
|
@@ -6703,7 +6725,7 @@ const Ks = (a) => {
|
|
|
6703
6725
|
return o.top < c.top + d;
|
|
6704
6726
|
}
|
|
6705
6727
|
return Math.abs(o.top - i.top) < 5;
|
|
6706
|
-
},
|
|
6728
|
+
}, js = (a) => {
|
|
6707
6729
|
var c;
|
|
6708
6730
|
if (g.isNativeInput(a) && a.tagName === "INPUT")
|
|
6709
6731
|
return !0;
|
|
@@ -6715,7 +6737,7 @@ const Ks = (a) => {
|
|
|
6715
6737
|
const t = window.getSelection();
|
|
6716
6738
|
if (!t || t.rangeCount === 0)
|
|
6717
6739
|
return !0;
|
|
6718
|
-
const e = t.getRangeAt(0), o =
|
|
6740
|
+
const e = t.getRangeAt(0), o = No(e, a), n = g.getDeepestNode(a, !0);
|
|
6719
6741
|
if (!n)
|
|
6720
6742
|
return !0;
|
|
6721
6743
|
const s = document.createRange(), i = g.getContentLength(n);
|
|
@@ -6730,7 +6752,7 @@ const Ks = (a) => {
|
|
|
6730
6752
|
return o.bottom > d.bottom - h;
|
|
6731
6753
|
}
|
|
6732
6754
|
return Math.abs(o.bottom - r.bottom) < 5;
|
|
6733
|
-
},
|
|
6755
|
+
}, Ro = (a, t = !0) => {
|
|
6734
6756
|
var h, u, f, p;
|
|
6735
6757
|
if (g.isNativeInput(a)) {
|
|
6736
6758
|
a.focus();
|
|
@@ -6777,7 +6799,7 @@ const Ks = (a) => {
|
|
|
6777
6799
|
Ys(a, t, e);
|
|
6778
6800
|
return;
|
|
6779
6801
|
}
|
|
6780
|
-
|
|
6802
|
+
Vs(a, t, e);
|
|
6781
6803
|
}, Ys = (a, t, e) => {
|
|
6782
6804
|
a.focus();
|
|
6783
6805
|
const o = a.value;
|
|
@@ -6799,22 +6821,22 @@ const Ks = (a) => {
|
|
|
6799
6821
|
return t;
|
|
6800
6822
|
const l = a.value.substring(t, e), d = (parseFloat(s.fontSize) || 16) * 0.6, h = Math.round(r / d), u = Math.min(Math.max(h, 0), l.length);
|
|
6801
6823
|
return t + u;
|
|
6802
|
-
},
|
|
6824
|
+
}, Vs = (a, t, e) => {
|
|
6803
6825
|
const o = window.getSelection();
|
|
6804
6826
|
if (!o)
|
|
6805
6827
|
return;
|
|
6806
6828
|
a.focus();
|
|
6807
6829
|
const n = e ? g.getDeepestNode(a, !1) : g.getDeepestNode(a, !0);
|
|
6808
6830
|
if (!n) {
|
|
6809
|
-
|
|
6831
|
+
Qt(a, o, e);
|
|
6810
6832
|
return;
|
|
6811
6833
|
}
|
|
6812
6834
|
const s = Xs(a, n, e);
|
|
6813
6835
|
if (s === null) {
|
|
6814
|
-
|
|
6836
|
+
Qt(a, o, e);
|
|
6815
6837
|
return;
|
|
6816
6838
|
}
|
|
6817
|
-
const i =
|
|
6839
|
+
const i = qs(t, s);
|
|
6818
6840
|
if (i && a.contains(i.node)) {
|
|
6819
6841
|
const r = document.createRange();
|
|
6820
6842
|
try {
|
|
@@ -6823,8 +6845,8 @@ const Ks = (a) => {
|
|
|
6823
6845
|
} catch (l) {
|
|
6824
6846
|
}
|
|
6825
6847
|
}
|
|
6826
|
-
|
|
6827
|
-
},
|
|
6848
|
+
Qt(a, o, e);
|
|
6849
|
+
}, Qt = (a, t, e) => {
|
|
6828
6850
|
a.focus();
|
|
6829
6851
|
const o = window.getSelection();
|
|
6830
6852
|
if (!o)
|
|
@@ -6836,7 +6858,7 @@ const Ks = (a) => {
|
|
|
6836
6858
|
try {
|
|
6837
6859
|
s.setStart(n, i), s.setEnd(n, i), o.removeAllRanges(), o.addRange(s);
|
|
6838
6860
|
} catch (r) {
|
|
6839
|
-
|
|
6861
|
+
Ro(a, e);
|
|
6840
6862
|
}
|
|
6841
6863
|
}, Xs = (a, t, e) => {
|
|
6842
6864
|
const o = document.createRange();
|
|
@@ -6856,7 +6878,7 @@ const Ks = (a) => {
|
|
|
6856
6878
|
} catch (n) {
|
|
6857
6879
|
return null;
|
|
6858
6880
|
}
|
|
6859
|
-
},
|
|
6881
|
+
}, qs = (a, t) => {
|
|
6860
6882
|
const e = document.caretPositionFromPoint(a, t);
|
|
6861
6883
|
return e === null ? null : {
|
|
6862
6884
|
node: e.offsetNode,
|
|
@@ -6871,7 +6893,7 @@ const Ks = (a) => {
|
|
|
6871
6893
|
ArrowRight: v.RIGHT,
|
|
6872
6894
|
ArrowUp: v.UP,
|
|
6873
6895
|
ArrowLeft: v.LEFT
|
|
6874
|
-
},
|
|
6896
|
+
}, Zs = /* @__PURE__ */ new Set(["Enter", "Process", "Spacebar", "Space", "Dead"]), Dt = '[contenteditable="true"], textarea, input', io = (a, t) => {
|
|
6875
6897
|
const e = t === "up" ? "ArrowUp" : "ArrowDown";
|
|
6876
6898
|
return a.key === e && a.shiftKey && (a.ctrlKey || a.metaKey);
|
|
6877
6899
|
}, F = class F extends T {
|
|
@@ -7251,9 +7273,9 @@ const Ks = (a) => {
|
|
|
7251
7273
|
*/
|
|
7252
7274
|
enter(t) {
|
|
7253
7275
|
const { BlockManager: e, UI: o } = this.Blok, n = e.currentBlock;
|
|
7254
|
-
if (n === void 0 || n.tool.isLineBreaksEnabled || o.someToolbarOpened && o.someFlipperButtonFocused || t.shiftKey && !
|
|
7276
|
+
if (n === void 0 || n.tool.isLineBreaksEnabled || o.someToolbarOpened && o.someFlipperButtonFocused || t.shiftKey && !oe)
|
|
7255
7277
|
return;
|
|
7256
|
-
const s = n.currentInput !== void 0 &&
|
|
7278
|
+
const s = n.currentInput !== void 0 && Pt(n.currentInput) && !n.hasMedia ? (this.Blok.BlockManager.insertDefaultBlockAtIndex(this.Blok.BlockManager.currentBlockIndex), n) : n.currentInput && kt(n.currentInput) ? this.Blok.BlockManager.insertDefaultBlockAtIndex(this.Blok.BlockManager.currentBlockIndex + 1) : this.Blok.BlockManager.split();
|
|
7257
7279
|
this.Blok.Caret.setToBlock(s), this.Blok.Toolbar.moveAndOpen(s), t.preventDefault();
|
|
7258
7280
|
}
|
|
7259
7281
|
/**
|
|
@@ -7262,7 +7284,7 @@ const Ks = (a) => {
|
|
|
7262
7284
|
*/
|
|
7263
7285
|
backspace(t) {
|
|
7264
7286
|
const { BlockManager: e, Caret: o } = this.Blok, { currentBlock: n, previousBlock: s } = e;
|
|
7265
|
-
if (n === void 0 || !y.isCollapsed || !n.currentInput || !
|
|
7287
|
+
if (n === void 0 || !y.isCollapsed || !n.currentInput || !Pt(n.currentInput))
|
|
7266
7288
|
return;
|
|
7267
7289
|
if (t.preventDefault(), this.Blok.Toolbar.close(), !(n.currentInput === n.firstInput)) {
|
|
7268
7290
|
o.navigatePrevious();
|
|
@@ -7280,7 +7302,7 @@ const Ks = (a) => {
|
|
|
7280
7302
|
l && o.setToBlock(l, o.positions.END);
|
|
7281
7303
|
return;
|
|
7282
7304
|
}
|
|
7283
|
-
|
|
7305
|
+
ze(s, n) ? this.mergeBlocks(s, n) : o.setToBlock(s, o.positions.END);
|
|
7284
7306
|
}
|
|
7285
7307
|
/**
|
|
7286
7308
|
* Handles delete keydown on Block
|
|
@@ -7306,7 +7328,7 @@ const Ks = (a) => {
|
|
|
7306
7328
|
e.removeBlock(n), o.setToBlock(s, o.positions.START);
|
|
7307
7329
|
return;
|
|
7308
7330
|
}
|
|
7309
|
-
|
|
7331
|
+
ze(n, s) ? this.mergeBlocks(n, s) : o.setToBlock(s, o.positions.START);
|
|
7310
7332
|
}
|
|
7311
7333
|
/**
|
|
7312
7334
|
* Merge passed Blocks
|
|
@@ -7315,7 +7337,7 @@ const Ks = (a) => {
|
|
|
7315
7337
|
*/
|
|
7316
7338
|
mergeBlocks(t, e) {
|
|
7317
7339
|
const { BlockManager: o, Toolbar: n } = this.Blok;
|
|
7318
|
-
t.lastInput !== void 0 && (
|
|
7340
|
+
t.lastInput !== void 0 && (Ro(t.lastInput, !1), o.mergeBlocks(t, e).then(() => {
|
|
7319
7341
|
n.close();
|
|
7320
7342
|
}).catch(() => {
|
|
7321
7343
|
}));
|
|
@@ -7338,15 +7360,15 @@ const Ks = (a) => {
|
|
|
7338
7360
|
const { currentBlock: s } = this.Blok.BlockManager, i = t.target, r = document.activeElement instanceof HTMLElement ? document.activeElement : null, l = [
|
|
7339
7361
|
s == null ? void 0 : s.inputs.find((S) => i !== null && S.contains(i)),
|
|
7340
7362
|
s == null ? void 0 : s.inputs.find((S) => r !== null && S.contains(r)),
|
|
7341
|
-
i == null ? void 0 : i.closest(
|
|
7342
|
-
r == null ? void 0 : r.closest(
|
|
7363
|
+
i == null ? void 0 : i.closest(Dt),
|
|
7364
|
+
r == null ? void 0 : r.closest(Dt)
|
|
7343
7365
|
], c = (x = s == null ? void 0 : s.currentInput) != null ? x : l.find((S) => S instanceof HTMLElement), h = (c !== void 0 ? kt(c) : void 0) || this.Blok.BlockSelection.anyBlockSelected, u = t.shiftKey && e === v.DOWN;
|
|
7344
7366
|
if (u && h) {
|
|
7345
7367
|
this.Blok.CrossBlockSelection.toggleBlockSelectedState();
|
|
7346
7368
|
return;
|
|
7347
7369
|
}
|
|
7348
7370
|
u && this.Blok.InlineToolbar.tryToShow();
|
|
7349
|
-
const p = e === v.RIGHT && !t.shiftKey && !this.isRtl && c instanceof HTMLElement ?
|
|
7371
|
+
const p = e === v.RIGHT && !t.shiftKey && !this.isRtl && c instanceof HTMLElement ? Ws(c) : null;
|
|
7350
7372
|
if (p !== null) {
|
|
7351
7373
|
y.setCursor(p.node, p.offset), t.preventDefault();
|
|
7352
7374
|
return;
|
|
@@ -7356,7 +7378,7 @@ const Ks = (a) => {
|
|
|
7356
7378
|
t.preventDefault();
|
|
7357
7379
|
return;
|
|
7358
7380
|
}
|
|
7359
|
-
|
|
7381
|
+
Ft(() => {
|
|
7360
7382
|
this.Blok.BlockManager.currentBlock && this.Blok.BlockManager.currentBlock.updateCurrentInput();
|
|
7361
7383
|
}, 20)(), this.Blok.BlockSelection.clearSelection(t);
|
|
7362
7384
|
}
|
|
@@ -7375,9 +7397,9 @@ const Ks = (a) => {
|
|
|
7375
7397
|
const { currentBlock: s } = this.Blok.BlockManager, i = t.target, r = document.activeElement instanceof HTMLElement ? document.activeElement : null, l = [
|
|
7376
7398
|
s == null ? void 0 : s.inputs.find((B) => i !== null && B.contains(i)),
|
|
7377
7399
|
s == null ? void 0 : s.inputs.find((B) => r !== null && B.contains(r)),
|
|
7378
|
-
i == null ? void 0 : i.closest(
|
|
7379
|
-
r == null ? void 0 : r.closest(
|
|
7380
|
-
], c = (k = s == null ? void 0 : s.currentInput) != null ? k : l.find((B) => B instanceof HTMLElement), h = (c !== void 0 ?
|
|
7400
|
+
i == null ? void 0 : i.closest(Dt),
|
|
7401
|
+
r == null ? void 0 : r.closest(Dt)
|
|
7402
|
+
], c = (k = s == null ? void 0 : s.currentInput) != null ? k : l.find((B) => B instanceof HTMLElement), h = (c !== void 0 ? Pt(c) : void 0) || this.Blok.BlockSelection.anyBlockSelected, u = t.shiftKey && o === v.UP;
|
|
7381
7403
|
if (u && h) {
|
|
7382
7404
|
this.Blok.CrossBlockSelection.toggleBlockSelectedState(!1);
|
|
7383
7405
|
return;
|
|
@@ -7388,7 +7410,7 @@ const Ks = (a) => {
|
|
|
7388
7410
|
t.preventDefault();
|
|
7389
7411
|
return;
|
|
7390
7412
|
}
|
|
7391
|
-
|
|
7413
|
+
Ft(() => {
|
|
7392
7414
|
this.Blok.BlockManager.currentBlock && this.Blok.BlockManager.currentBlock.updateCurrentInput();
|
|
7393
7415
|
}, 20)(), this.Blok.BlockSelection.clearSelection(t);
|
|
7394
7416
|
}
|
|
@@ -7429,12 +7451,12 @@ const Ks = (a) => {
|
|
|
7429
7451
|
* @param event - keyboard event
|
|
7430
7452
|
*/
|
|
7431
7453
|
isPrintableKeyEvent(t) {
|
|
7432
|
-
return t.key ? t.key.length === 1 ||
|
|
7454
|
+
return t.key ? t.key.length === 1 || Zs.has(t.key) : !1;
|
|
7433
7455
|
}
|
|
7434
7456
|
};
|
|
7435
7457
|
F.LIST_TOOL_NAME = "list", F.HEADER_TOOL_NAME = "header", F.ORDERED_LIST_PATTERN = /^(\d+)[.)]\s([\s\S]*)$/, F.CHECKLIST_PATTERN = /^\[(x|X| )?\]\s([\s\S]*)$/, F.UNORDERED_LIST_PATTERN = /^[-*]\s([\s\S]*)$/, F.HEADER_PATTERN = /^(#{1,6})\s([\s\S]*)$/;
|
|
7436
|
-
let
|
|
7437
|
-
class
|
|
7458
|
+
let pe = F;
|
|
7459
|
+
class te {
|
|
7438
7460
|
/**
|
|
7439
7461
|
* @class
|
|
7440
7462
|
* @param {HTMLElement} workingArea — blok`s working node
|
|
@@ -7461,7 +7483,7 @@ class ee {
|
|
|
7461
7483
|
* @returns {HTMLElement[]}
|
|
7462
7484
|
*/
|
|
7463
7485
|
get nodes() {
|
|
7464
|
-
return
|
|
7486
|
+
return on(this.workingArea.children);
|
|
7465
7487
|
}
|
|
7466
7488
|
/**
|
|
7467
7489
|
* Proxy trap to implement array-like setter
|
|
@@ -7508,7 +7530,7 @@ class ee {
|
|
|
7508
7530
|
fromIndex: e,
|
|
7509
7531
|
toIndex: t
|
|
7510
7532
|
});
|
|
7511
|
-
n.call(
|
|
7533
|
+
n.call(Y.MOVED, s);
|
|
7512
7534
|
}
|
|
7513
7535
|
/**
|
|
7514
7536
|
* Insert new Block at passed index
|
|
@@ -7524,7 +7546,7 @@ class ee {
|
|
|
7524
7546
|
const n = t > this.length ? this.length : t;
|
|
7525
7547
|
if (o) {
|
|
7526
7548
|
const r = this.blocks[n];
|
|
7527
|
-
r.call(
|
|
7549
|
+
r.call(Y.REMOVED), r.destroy(), r.holder.remove();
|
|
7528
7550
|
}
|
|
7529
7551
|
const s = o ? 1 : 0;
|
|
7530
7552
|
if (this.blocks.splice(n, s, e), n > 0) {
|
|
@@ -7548,7 +7570,7 @@ class ee {
|
|
|
7548
7570
|
if (this.blocks[t] === void 0)
|
|
7549
7571
|
throw Error("Incorrect index");
|
|
7550
7572
|
const o = this.blocks[t];
|
|
7551
|
-
o.holder.replaceWith(e.holder), o.call(
|
|
7573
|
+
o.holder.replaceWith(e.holder), o.call(Y.REMOVED), this.blocks[t] = e, e.call(Y.RENDERED);
|
|
7552
7574
|
}
|
|
7553
7575
|
/**
|
|
7554
7576
|
* Inserts several blocks at once
|
|
@@ -7560,14 +7582,14 @@ class ee {
|
|
|
7560
7582
|
for (const n of t)
|
|
7561
7583
|
o.appendChild(n.holder);
|
|
7562
7584
|
if (!this.length) {
|
|
7563
|
-
this.blocks.push(...t), this.workingArea.appendChild(o), t.forEach((n) => n.call(
|
|
7585
|
+
this.blocks.push(...t), this.workingArea.appendChild(o), t.forEach((n) => n.call(Y.RENDERED));
|
|
7564
7586
|
return;
|
|
7565
7587
|
}
|
|
7566
7588
|
if (e > 0) {
|
|
7567
7589
|
const n = Math.min(e - 1, this.length - 1);
|
|
7568
7590
|
this.blocks[n].holder.after(o);
|
|
7569
7591
|
}
|
|
7570
|
-
e === 0 && this.workingArea.prepend(o), this.blocks.splice(e, 0, ...t), t.forEach((n) => n.call(
|
|
7592
|
+
e === 0 && this.workingArea.prepend(o), this.blocks.splice(e, 0, ...t), t.forEach((n) => n.call(Y.RENDERED));
|
|
7571
7593
|
}
|
|
7572
7594
|
/**
|
|
7573
7595
|
* Remove block
|
|
@@ -7575,13 +7597,13 @@ class ee {
|
|
|
7575
7597
|
*/
|
|
7576
7598
|
remove(t) {
|
|
7577
7599
|
const e = isNaN(t) ? this.length - 1 : t, o = this.blocks[e];
|
|
7578
|
-
o.call(
|
|
7600
|
+
o.call(Y.REMOVED), o.destroy(), o.holder.remove(), this.blocks.splice(e, 1);
|
|
7579
7601
|
}
|
|
7580
7602
|
/**
|
|
7581
7603
|
* Remove all blocks
|
|
7582
7604
|
*/
|
|
7583
7605
|
removeAll() {
|
|
7584
|
-
this.workingArea.innerHTML = "", this.blocks.forEach((t) => t.call(
|
|
7606
|
+
this.workingArea.innerHTML = "", this.blocks.forEach((t) => t.call(Y.REMOVED)), this.blocks.length = 0;
|
|
7585
7607
|
}
|
|
7586
7608
|
/**
|
|
7587
7609
|
* Insert Block after passed target
|
|
@@ -7616,7 +7638,7 @@ class ee {
|
|
|
7616
7638
|
* @param {Block} target — Block related to position
|
|
7617
7639
|
*/
|
|
7618
7640
|
insertToDOM(t, e, o) {
|
|
7619
|
-
e && o !== void 0 ? o.holder.insertAdjacentElement(e, t.holder) : this.workingArea.appendChild(t.holder), t.call(
|
|
7641
|
+
e && o !== void 0 ? o.holder.insertAdjacentElement(e, t.holder) : this.workingArea.appendChild(t.holder), t.call(Y.RENDERED);
|
|
7620
7642
|
}
|
|
7621
7643
|
/**
|
|
7622
7644
|
* Composes Block event with passed type and details
|
|
@@ -7629,8 +7651,8 @@ class ee {
|
|
|
7629
7651
|
});
|
|
7630
7652
|
}
|
|
7631
7653
|
}
|
|
7632
|
-
const ro = "block-removed",
|
|
7633
|
-
class
|
|
7654
|
+
const ro = "block-removed", Gs = "block-added", Js = "block-moved", ao = "block-changed";
|
|
7655
|
+
class Po {
|
|
7634
7656
|
constructor() {
|
|
7635
7657
|
this.tail = Promise.resolve();
|
|
7636
7658
|
}
|
|
@@ -7653,7 +7675,7 @@ class Ro {
|
|
|
7653
7675
|
}), e;
|
|
7654
7676
|
}
|
|
7655
7677
|
}
|
|
7656
|
-
const lo = "blok-announcer",
|
|
7678
|
+
const lo = "blok-announcer", Qs = [
|
|
7657
7679
|
"absolute",
|
|
7658
7680
|
"w-px",
|
|
7659
7681
|
"h-px",
|
|
@@ -7693,7 +7715,7 @@ const lo = "blok-announcer", Js = [
|
|
|
7693
7715
|
return;
|
|
7694
7716
|
}
|
|
7695
7717
|
const e = document.createElement("div");
|
|
7696
|
-
e.id = lo, e.className =
|
|
7718
|
+
e.id = lo, e.className = Qs, e.setAttribute("role", "status"), e.setAttribute("aria-live", "polite"), e.setAttribute("aria-atomic", "true"), e.setAttribute("data-blok-announcer", ""), document.body.appendChild(e), this.liveRegion = e;
|
|
7697
7719
|
}
|
|
7698
7720
|
/**
|
|
7699
7721
|
* Announce a message to screen readers
|
|
@@ -7720,12 +7742,12 @@ K.instance = null, K.referenceCount = 0;
|
|
|
7720
7742
|
let gt = K;
|
|
7721
7743
|
const $ = (a, t) => {
|
|
7722
7744
|
gt.getInstance().announce(a, t);
|
|
7723
|
-
}, Qs = () => {
|
|
7724
|
-
gt.addReference(), gt.getInstance();
|
|
7725
7745
|
}, ti = () => {
|
|
7746
|
+
gt.addReference(), gt.getInstance();
|
|
7747
|
+
}, ei = () => {
|
|
7726
7748
|
gt.getInstance().destroy();
|
|
7727
7749
|
};
|
|
7728
|
-
class
|
|
7750
|
+
class oi extends T {
|
|
7729
7751
|
constructor() {
|
|
7730
7752
|
super(...arguments), this._currentBlockIndex = -1, this._blocks = null, this.registeredShortcuts = [];
|
|
7731
7753
|
}
|
|
@@ -7828,10 +7850,10 @@ class ei extends T {
|
|
|
7828
7850
|
* Define this._blocks property
|
|
7829
7851
|
*/
|
|
7830
7852
|
prepare() {
|
|
7831
|
-
const t = new
|
|
7853
|
+
const t = new te(this.Blok.UI.nodes.redactor);
|
|
7832
7854
|
this._blocks = new Proxy(t, {
|
|
7833
|
-
set:
|
|
7834
|
-
get:
|
|
7855
|
+
set: te.set,
|
|
7856
|
+
get: te.get
|
|
7835
7857
|
}), this.listeners.on(
|
|
7836
7858
|
document,
|
|
7837
7859
|
"copy",
|
|
@@ -7923,7 +7945,7 @@ class ei extends T {
|
|
|
7923
7945
|
throw new Error(`Could not replace Block at index ${l}. Block not found.`);
|
|
7924
7946
|
return i && u !== void 0 && this.blockDidMutated(ro, u, {
|
|
7925
7947
|
index: l
|
|
7926
|
-
}), this.blocksStore.insert(l, h, i), this.blockDidMutated(
|
|
7948
|
+
}), this.blocksStore.insert(l, h, i), this.blockDidMutated(Gs, h, {
|
|
7927
7949
|
index: l
|
|
7928
7950
|
}), s && (this.currentBlockIndex = l), !s && l <= this.currentBlockIndex && this.currentBlockIndex++, h;
|
|
7929
7951
|
}
|
|
@@ -7997,9 +8019,9 @@ class ei extends T {
|
|
|
7997
8019
|
replace: o
|
|
7998
8020
|
});
|
|
7999
8021
|
try {
|
|
8000
|
-
await n.ready, n.call(
|
|
8022
|
+
await n.ready, n.call(Y.ON_PASTE, e), n.refreshToolRootElement();
|
|
8001
8023
|
} catch (s) {
|
|
8002
|
-
|
|
8024
|
+
I(`${t}: onPaste callback call is failed`, "error", s);
|
|
8003
8025
|
}
|
|
8004
8026
|
return n;
|
|
8005
8027
|
}
|
|
@@ -8044,7 +8066,7 @@ class ei extends T {
|
|
|
8044
8066
|
return;
|
|
8045
8067
|
}
|
|
8046
8068
|
if (n && s !== void 0) {
|
|
8047
|
-
const [r] =
|
|
8069
|
+
const [r] = we(
|
|
8048
8070
|
[{
|
|
8049
8071
|
data: s,
|
|
8050
8072
|
tool: e.name
|
|
@@ -8055,8 +8077,8 @@ class ei extends T {
|
|
|
8055
8077
|
await o(r.data);
|
|
8056
8078
|
return;
|
|
8057
8079
|
}
|
|
8058
|
-
if (t.mergeable &&
|
|
8059
|
-
const r = await e.exportDataAsString(), l = (i = t.tool.conversionConfig) == null ? void 0 : i.import, c = ht(l) && A(t.tool.sanitizeConfig[l]) ? t.tool.sanitizeConfig[l] : t.tool.sanitizeConfig, d = Z(r, c), h =
|
|
8080
|
+
if (t.mergeable && Ue(e, "export") && Ue(t, "import")) {
|
|
8081
|
+
const r = await e.exportDataAsString(), l = (i = t.tool.conversionConfig) == null ? void 0 : i.import, c = ht(l) && A(t.tool.sanitizeConfig[l]) ? t.tool.sanitizeConfig[l] : t.tool.sanitizeConfig, d = Z(r, c), h = Ke(d, t.tool.conversionConfig);
|
|
8060
8082
|
await o(h);
|
|
8061
8083
|
}
|
|
8062
8084
|
}
|
|
@@ -8184,7 +8206,7 @@ class ei extends T {
|
|
|
8184
8206
|
const e = g.isElement(t) ? t : t.parentNode;
|
|
8185
8207
|
if (!e)
|
|
8186
8208
|
return;
|
|
8187
|
-
const o = this.blocksStore.nodes, n = e.closest(
|
|
8209
|
+
const o = this.blocksStore.nodes, n = e.closest(j(m.element));
|
|
8188
8210
|
if (!n)
|
|
8189
8211
|
return;
|
|
8190
8212
|
const s = o.indexOf(n);
|
|
@@ -8201,10 +8223,10 @@ class ei extends T {
|
|
|
8201
8223
|
const e = g.isElement(t) ? t : t.parentNode;
|
|
8202
8224
|
if (!e)
|
|
8203
8225
|
return;
|
|
8204
|
-
const o = e.closest(
|
|
8226
|
+
const o = e.closest(j(m.element));
|
|
8205
8227
|
if (!o)
|
|
8206
8228
|
return;
|
|
8207
|
-
const n = o.closest(
|
|
8229
|
+
const n = o.closest(j(m.editor));
|
|
8208
8230
|
if (!(n == null ? void 0 : n.isEqualNode(this.Blok.UI.nodes.wrapper)) || !(o instanceof HTMLElement))
|
|
8209
8231
|
return;
|
|
8210
8232
|
this.currentBlockIndex = this.blocksStore.nodes.indexOf(o);
|
|
@@ -8222,7 +8244,7 @@ class ei extends T {
|
|
|
8222
8244
|
const e = g.isElement(t) ? t : t.parentNode;
|
|
8223
8245
|
if (!e)
|
|
8224
8246
|
return;
|
|
8225
|
-
const o = e.closest(
|
|
8247
|
+
const o = e.closest(j(m.element));
|
|
8226
8248
|
if (o)
|
|
8227
8249
|
return this.blocks.find((n) => n.holder === o);
|
|
8228
8250
|
}
|
|
@@ -8234,18 +8256,18 @@ class ei extends T {
|
|
|
8234
8256
|
*/
|
|
8235
8257
|
move(t, e = this.currentBlockIndex, o = !1) {
|
|
8236
8258
|
if (isNaN(t) || isNaN(e)) {
|
|
8237
|
-
|
|
8259
|
+
I("Warning during 'move' call: incorrect indices provided.", "warn");
|
|
8238
8260
|
return;
|
|
8239
8261
|
}
|
|
8240
8262
|
if (!this.validateIndex(t) || !this.validateIndex(e)) {
|
|
8241
|
-
|
|
8263
|
+
I("Warning during 'move' call: indices cannot be lower than 0 or greater than the amount of blocks.", "warn");
|
|
8242
8264
|
return;
|
|
8243
8265
|
}
|
|
8244
8266
|
this.blocksStore.move(t, e, o), this.currentBlockIndex = t;
|
|
8245
8267
|
const n = this.currentBlock;
|
|
8246
8268
|
if (n === void 0)
|
|
8247
8269
|
throw new Error(`Could not move Block. Block at index ${t} is not available.`);
|
|
8248
|
-
this.blockDidMutated(
|
|
8270
|
+
this.blockDidMutated(Js, n, {
|
|
8249
8271
|
fromIndex: e,
|
|
8250
8272
|
toIndex: t
|
|
8251
8273
|
});
|
|
@@ -8267,8 +8289,8 @@ class ei extends T {
|
|
|
8267
8289
|
throw new Error(`Could not convert Block. Tool «${e}» not found.`);
|
|
8268
8290
|
const i = await t.exportDataAsString(), r = (u = s.conversionConfig) == null ? void 0 : u.import, l = ht(r) && A(s.sanitizeConfig[r]) ? s.sanitizeConfig[r] : s.sanitizeConfig, c = Z(
|
|
8269
8291
|
i,
|
|
8270
|
-
|
|
8271
|
-
), d =
|
|
8292
|
+
Te(this.config.sanitizer, l)
|
|
8293
|
+
), d = Ke(c, s.conversionConfig, s.settings), h = o ? Object.assign(d, o) : d;
|
|
8272
8294
|
return this.replace(t, s.name, h);
|
|
8273
8295
|
}
|
|
8274
8296
|
/**
|
|
@@ -8285,7 +8307,7 @@ class ei extends T {
|
|
|
8285
8307
|
* 2) in api.blocks.clear we should add empty block
|
|
8286
8308
|
*/
|
|
8287
8309
|
async clear(t = !1) {
|
|
8288
|
-
const e = new
|
|
8310
|
+
const e = new Po();
|
|
8289
8311
|
[...this.blocks].forEach((n) => {
|
|
8290
8312
|
e.add(async () => {
|
|
8291
8313
|
await this.removeBlock(n, !1);
|
|
@@ -8451,7 +8473,7 @@ class ei extends T {
|
|
|
8451
8473
|
}), e;
|
|
8452
8474
|
}
|
|
8453
8475
|
}
|
|
8454
|
-
class
|
|
8476
|
+
class ni extends T {
|
|
8455
8477
|
constructor() {
|
|
8456
8478
|
super(...arguments), this.anyBlockSelectedCache = null, this._navigationModeEnabled = !1, this.navigationFocusIndex = -1, this.needToSelectAll = !1, this.nativeInputSelected = !1, this.readyToBlockSelection = !1, this.selection = new y();
|
|
8457
8479
|
}
|
|
@@ -8484,7 +8506,7 @@ class oi extends T {
|
|
|
8484
8506
|
i: {},
|
|
8485
8507
|
u: {}
|
|
8486
8508
|
};
|
|
8487
|
-
return
|
|
8509
|
+
return Te(this.config.sanitizer, t);
|
|
8488
8510
|
}
|
|
8489
8511
|
/**
|
|
8490
8512
|
* Flag that identifies all Blocks selection
|
|
@@ -8764,29 +8786,29 @@ class oi extends T {
|
|
|
8764
8786
|
return;
|
|
8765
8787
|
e.insertDefaultBlockAtIndex(n, !0);
|
|
8766
8788
|
const s = e.currentBlock;
|
|
8767
|
-
s && o.setToBlock(s),
|
|
8789
|
+
s && o.setToBlock(s), Ft(() => {
|
|
8768
8790
|
const i = t.key;
|
|
8769
8791
|
o.insertContentAtCaretPosition(i.length > 1 ? "" : i);
|
|
8770
8792
|
}, 20)();
|
|
8771
8793
|
}
|
|
8772
8794
|
}
|
|
8773
|
-
const
|
|
8795
|
+
const si = 127, co = (a) => {
|
|
8774
8796
|
for (const t of a) {
|
|
8775
8797
|
if (t.trim().length === 0)
|
|
8776
8798
|
continue;
|
|
8777
8799
|
if (t >= "0" && t <= "9" || t.toLowerCase() !== t.toUpperCase())
|
|
8778
8800
|
return !1;
|
|
8779
8801
|
const e = t.codePointAt(0);
|
|
8780
|
-
if (typeof e == "number" && e >
|
|
8802
|
+
if (typeof e == "number" && e > si)
|
|
8781
8803
|
return !1;
|
|
8782
8804
|
}
|
|
8783
8805
|
return !0;
|
|
8784
|
-
},
|
|
8806
|
+
}, Ho = (a) => {
|
|
8785
8807
|
var t;
|
|
8786
|
-
return a.nodeType === Node.TEXT_NODE ? [a] : (t = a.hasChildNodes) != null && t.call(a) ? Array.from(a.childNodes).flatMap((e) =>
|
|
8787
|
-
},
|
|
8808
|
+
return a.nodeType === Node.TEXT_NODE ? [a] : (t = a.hasChildNodes) != null && t.call(a) ? Array.from(a.childNodes).flatMap((e) => Ho(e)) : [];
|
|
8809
|
+
}, ii = (a) => {
|
|
8788
8810
|
var n, s;
|
|
8789
|
-
const t =
|
|
8811
|
+
const t = Ho(a);
|
|
8790
8812
|
if (t.length === 0)
|
|
8791
8813
|
return null;
|
|
8792
8814
|
const e = t[t.length - 1], o = (n = [...t].reverse().find((i) => {
|
|
@@ -8795,7 +8817,7 @@ const ni = 127, co = (a) => {
|
|
|
8795
8817
|
})) != null ? n : null;
|
|
8796
8818
|
return o && o !== e && co((s = e.textContent) != null ? s : "") && o.parentNode !== a ? o : e;
|
|
8797
8819
|
};
|
|
8798
|
-
class
|
|
8820
|
+
class Me extends T {
|
|
8799
8821
|
/**
|
|
8800
8822
|
* Allowed caret positions in input
|
|
8801
8823
|
* @static
|
|
@@ -8866,7 +8888,7 @@ class De extends T {
|
|
|
8866
8888
|
node: e,
|
|
8867
8889
|
offset: g.getContentLength(e)
|
|
8868
8890
|
};
|
|
8869
|
-
const o =
|
|
8891
|
+
const o = ii(t);
|
|
8870
8892
|
return o ? {
|
|
8871
8893
|
node: o,
|
|
8872
8894
|
offset: g.getContentLength(o)
|
|
@@ -9052,7 +9074,7 @@ class De extends T {
|
|
|
9052
9074
|
const { currentBlock: e, previousBlock: o } = this.Blok.BlockManager;
|
|
9053
9075
|
if (!e)
|
|
9054
9076
|
return !1;
|
|
9055
|
-
const { previousInput: n, currentInput: s } = e, i = s !== void 0 ?
|
|
9077
|
+
const { previousInput: n, currentInput: s } = e, i = s !== void 0 ? Pt(s) : void 0, r = t || i || !e.focusable;
|
|
9056
9078
|
return n && r ? (this.setToInput(n, this.positions.END), !0) : o !== null && r ? (this.setToBlock(o, this.positions.END), !0) : !1;
|
|
9057
9079
|
}
|
|
9058
9080
|
/**
|
|
@@ -9083,7 +9105,7 @@ class De extends T {
|
|
|
9083
9105
|
if (e.isEmpty)
|
|
9084
9106
|
return this.navigateToBlock(o, !0);
|
|
9085
9107
|
const { currentInput: n } = e;
|
|
9086
|
-
if (!(n !== void 0 ?
|
|
9108
|
+
if (!(n !== void 0 ? js(n) : !0))
|
|
9087
9109
|
return !1;
|
|
9088
9110
|
const i = eo(), { nextInput: r } = e;
|
|
9089
9111
|
if (r)
|
|
@@ -9112,7 +9134,7 @@ class De extends T {
|
|
|
9112
9134
|
if (e.isEmpty)
|
|
9113
9135
|
return this.navigateToBlock(o, !1);
|
|
9114
9136
|
const { currentInput: n } = e;
|
|
9115
|
-
if (!(n !== void 0 ?
|
|
9137
|
+
if (!(n !== void 0 ? $s(n) : !0))
|
|
9116
9138
|
return !1;
|
|
9117
9139
|
const i = eo(), { previousInput: r } = e;
|
|
9118
9140
|
return r ? (this.setToInputAtXPosition(r, i, !1), !0) : o !== null ? (this.setToBlockAtXPosition(o, i, !1), !0) : !1;
|
|
@@ -9123,7 +9145,7 @@ class De extends T {
|
|
|
9123
9145
|
*/
|
|
9124
9146
|
createShadow(t) {
|
|
9125
9147
|
const e = document.createElement("span");
|
|
9126
|
-
e.setAttribute(
|
|
9148
|
+
e.setAttribute(Me.DATA_ATTR.shadowCaret, ""), e.setAttribute("data-blok-testid", "shadow-caret"), t.insertAdjacentElement("beforeend", e);
|
|
9127
9149
|
}
|
|
9128
9150
|
/**
|
|
9129
9151
|
* Restores caret position
|
|
@@ -9152,7 +9174,7 @@ class De extends T {
|
|
|
9152
9174
|
l !== null && l.textContent !== null && r.setStart(l, l.textContent.length), n.removeAllRanges(), n.addRange(r);
|
|
9153
9175
|
}
|
|
9154
9176
|
}
|
|
9155
|
-
class
|
|
9177
|
+
class ri extends T {
|
|
9156
9178
|
constructor() {
|
|
9157
9179
|
super(...arguments), this.firstSelectedBlock = null, this.lastSelectedBlock = null, this.onMouseUp = () => {
|
|
9158
9180
|
this.listeners.off(document, "mouseover", this.onMouseOver), this.listeners.off(document, "mouseup", this.onMouseUp), this.isCrossBlockSelectionStarted && this.Blok.Toolbar.moveAndOpenForMultipleBlocks();
|
|
@@ -9189,7 +9211,7 @@ class ii extends T {
|
|
|
9189
9211
|
* @param {MouseEvent} event - mouse down event
|
|
9190
9212
|
*/
|
|
9191
9213
|
watchSelection(t) {
|
|
9192
|
-
if (t.button !==
|
|
9214
|
+
if (t.button !== nn.LEFT)
|
|
9193
9215
|
return;
|
|
9194
9216
|
const { BlockManager: e } = this.Blok, o = e.getBlock(t.target);
|
|
9195
9217
|
o && (this.firstSelectedBlock = o, this.lastSelectedBlock = o, this.listeners.on(document, "mouseover", this.onMouseOver), this.listeners.on(document, "mouseup", this.onMouseUp));
|
|
@@ -9266,7 +9288,7 @@ class ii extends T {
|
|
|
9266
9288
|
this.Blok.Toolbar.close();
|
|
9267
9289
|
}
|
|
9268
9290
|
}
|
|
9269
|
-
const
|
|
9291
|
+
const Lt = {
|
|
9270
9292
|
base: "fixed pointer-events-none z-[10000] opacity-80 transition-none",
|
|
9271
9293
|
content: "relative mx-auto max-w-content"
|
|
9272
9294
|
}, Q = {
|
|
@@ -9283,7 +9305,7 @@ const Ot = {
|
|
|
9283
9305
|
/** Horizontal distance to the left of blocks where drop is still valid */
|
|
9284
9306
|
leftDropZone: 50
|
|
9285
9307
|
};
|
|
9286
|
-
class
|
|
9308
|
+
class ai extends T {
|
|
9287
9309
|
constructor() {
|
|
9288
9310
|
super(...arguments), this.dragState = null, this.boundHandlers = null;
|
|
9289
9311
|
}
|
|
@@ -9360,10 +9382,10 @@ class ri extends T {
|
|
|
9360
9382
|
* @returns Preview element
|
|
9361
9383
|
*/
|
|
9362
9384
|
createPreview(t, e) {
|
|
9363
|
-
const o = g.make("div",
|
|
9364
|
-
n.className =
|
|
9385
|
+
const o = g.make("div", Lt.base), n = t.cloneNode(!0);
|
|
9386
|
+
n.className = C(Lt.content, e ? "max-w-none" : "");
|
|
9365
9387
|
const s = n.firstElementChild;
|
|
9366
|
-
return s && (s.className =
|
|
9388
|
+
return s && (s.className = C(s.className, "!m-0")), o.appendChild(n), o;
|
|
9367
9389
|
}
|
|
9368
9390
|
/**
|
|
9369
9391
|
* Creates a stacked preview element for multiple blocks
|
|
@@ -9371,7 +9393,7 @@ class ri extends T {
|
|
|
9371
9393
|
* @returns Preview element with stacked blocks and count badge
|
|
9372
9394
|
*/
|
|
9373
9395
|
createMultiBlockPreview(t) {
|
|
9374
|
-
const e = g.make("div",
|
|
9396
|
+
const e = g.make("div", Lt.base), o = t.map((l) => {
|
|
9375
9397
|
const c = l.holder.getBoundingClientRect(), d = l.holder.querySelector("[data-blok-element-content]");
|
|
9376
9398
|
if (!d)
|
|
9377
9399
|
return { width: 0, height: 0, element: null, holderHeight: 0 };
|
|
@@ -9397,9 +9419,9 @@ class ri extends T {
|
|
|
9397
9419
|
if (!d.element)
|
|
9398
9420
|
return;
|
|
9399
9421
|
const h = d.element.cloneNode(!0);
|
|
9400
|
-
h.className =
|
|
9422
|
+
h.className = C(Lt.content, l.stretched ? "max-w-none" : "");
|
|
9401
9423
|
const u = h.firstElementChild;
|
|
9402
|
-
u && (u.className =
|
|
9424
|
+
u && (u.className = C(u.className, "!m-0")), h.style.position = "absolute", h.style.top = `${n[c]}px`, h.style.left = "0", h.style.zIndex = `${t.length - c}`, e.appendChild(h);
|
|
9403
9425
|
}), e.style.width = `${s}px`, e.style.height = `${r}px`, e;
|
|
9404
9426
|
}
|
|
9405
9427
|
/**
|
|
@@ -9796,7 +9818,7 @@ class ri extends T {
|
|
|
9796
9818
|
* @returns Object with block and holder, or nulls if no valid target found
|
|
9797
9819
|
*/
|
|
9798
9820
|
findDropTargetBlock(t, e, o) {
|
|
9799
|
-
const n = t.closest(
|
|
9821
|
+
const n = t.closest(j(m.element));
|
|
9800
9822
|
if (n)
|
|
9801
9823
|
return { block: this.Blok.BlockManager.blocks.find((r) => r.holder === n), holder: n };
|
|
9802
9824
|
const s = this.findBlockInLeftDropZone(e, o);
|
|
@@ -9830,7 +9852,7 @@ class ri extends T {
|
|
|
9830
9852
|
this.cleanup();
|
|
9831
9853
|
}
|
|
9832
9854
|
}
|
|
9833
|
-
class
|
|
9855
|
+
class li extends T {
|
|
9834
9856
|
/**
|
|
9835
9857
|
* Prepare the module
|
|
9836
9858
|
* @param options - options used by the modification observer module
|
|
@@ -9841,13 +9863,13 @@ class ai extends T {
|
|
|
9841
9863
|
super({
|
|
9842
9864
|
config: t,
|
|
9843
9865
|
eventsDispatcher: e
|
|
9844
|
-
}), this.disabled = !1, this.batchingTimeout = null, this.batchingOnChangeQueue = /* @__PURE__ */ new Map(), this.batchTime =
|
|
9866
|
+
}), this.disabled = !1, this.batchingTimeout = null, this.batchingOnChangeQueue = /* @__PURE__ */ new Map(), this.batchTime = sn, this.mutationObserver = new MutationObserver((o) => {
|
|
9845
9867
|
this.redactorChanged(o);
|
|
9846
9868
|
}), this.eventsDispatcher.on(wt, (o) => {
|
|
9847
9869
|
this.particularBlockChanged(o.event);
|
|
9848
|
-
}), this.eventsDispatcher.on(Bo, () => {
|
|
9849
|
-
this.disable();
|
|
9850
9870
|
}), this.eventsDispatcher.on(wo, () => {
|
|
9871
|
+
this.disable();
|
|
9872
|
+
}), this.eventsDispatcher.on(yo, () => {
|
|
9851
9873
|
this.enable();
|
|
9852
9874
|
});
|
|
9853
9875
|
}
|
|
@@ -9889,7 +9911,7 @@ class ai extends T {
|
|
|
9889
9911
|
* @param mutations - mutations happened
|
|
9890
9912
|
*/
|
|
9891
9913
|
redactorChanged(t) {
|
|
9892
|
-
this.eventsDispatcher.emit(
|
|
9914
|
+
this.eventsDispatcher.emit(se, {
|
|
9893
9915
|
mutations: t
|
|
9894
9916
|
});
|
|
9895
9917
|
}
|
|
@@ -9911,7 +9933,7 @@ const ho = /* @__PURE__ */ new Set([
|
|
|
9911
9933
|
"dl",
|
|
9912
9934
|
"dt",
|
|
9913
9935
|
"dd"
|
|
9914
|
-
]),
|
|
9936
|
+
]), Kt = class Kt extends T {
|
|
9915
9937
|
constructor() {
|
|
9916
9938
|
super(...arguments), this.MIME_TYPE = "application/x-blok", this.toolsTags = {}, this.tagsByTool = {}, this.toolsPatterns = [], this.toolsFiles = {}, this.exceptionList = [], this.handlePasteEventWrapper = (t) => {
|
|
9917
9939
|
this.handlePasteEvent(t);
|
|
@@ -9925,7 +9947,7 @@ const ho = /* @__PURE__ */ new Set([
|
|
|
9925
9947
|
return;
|
|
9926
9948
|
this.getTagsConfig(t), this.getFilesConfig(t), this.getPatternsConfig(t);
|
|
9927
9949
|
} catch (e) {
|
|
9928
|
-
|
|
9950
|
+
I(
|
|
9929
9951
|
`Paste handling for «${t.name}» Tool hasn't been set up because of the error`,
|
|
9930
9952
|
"warn",
|
|
9931
9953
|
e
|
|
@@ -10014,7 +10036,7 @@ const ho = /* @__PURE__ */ new Set([
|
|
|
10014
10036
|
(b = this.toolsTags[p].sanitizationConfig) != null ? b : {}
|
|
10015
10037
|
];
|
|
10016
10038
|
})
|
|
10017
|
-
), c = e.getAllInlineToolsSanitizeConfig(), d =
|
|
10039
|
+
), c = e.getAllInlineToolsSanitizeConfig(), d = Te(
|
|
10018
10040
|
this.config.sanitizer,
|
|
10019
10041
|
l,
|
|
10020
10042
|
c,
|
|
@@ -10085,7 +10107,7 @@ const ho = /* @__PURE__ */ new Set([
|
|
|
10085
10107
|
const s = this.collectTagNames(n);
|
|
10086
10108
|
o.push(...s), s.forEach((i) => {
|
|
10087
10109
|
if (Object.prototype.hasOwnProperty.call(this.toolsTags, i)) {
|
|
10088
|
-
|
|
10110
|
+
I(
|
|
10089
10111
|
`Paste handler for «${t.name}» Tool on «${i}» tag is skipped because it is already used by «${this.toolsTags[i].tool.name}» Tool.`,
|
|
10090
10112
|
"warn"
|
|
10091
10113
|
);
|
|
@@ -10109,7 +10131,7 @@ const ho = /* @__PURE__ */ new Set([
|
|
|
10109
10131
|
const { files: e = {} } = t.pasteConfig, { extensions: o, mimeTypes: n } = e;
|
|
10110
10132
|
if (!o && !n)
|
|
10111
10133
|
return;
|
|
10112
|
-
const s = o == null ? [] : Array.isArray(o) ? o : (
|
|
10134
|
+
const s = o == null ? [] : Array.isArray(o) ? o : (I(`«extensions» property of the paste config for «${t.name}» Tool should be an array`), []), i = n == null ? [] : Array.isArray(n) ? n.filter((r) => rn(r) ? !0 : (I(`MIME type value «${r}» for the «${t.name}» Tool is not a valid MIME type`, "warn"), !1)) : (I(`«mimeTypes» property of the paste config for «${t.name}» Tool should be an array`), []);
|
|
10113
10135
|
this.toolsFiles[t.name] = {
|
|
10114
10136
|
extensions: s,
|
|
10115
10137
|
mimeTypes: i
|
|
@@ -10121,7 +10143,7 @@ const ho = /* @__PURE__ */ new Set([
|
|
|
10121
10143
|
*/
|
|
10122
10144
|
getPatternsConfig(t) {
|
|
10123
10145
|
t.pasteConfig === !1 || !t.pasteConfig.patterns || N(t.pasteConfig.patterns) || Object.entries(t.pasteConfig.patterns).forEach(([e, o]) => {
|
|
10124
|
-
o instanceof RegExp ||
|
|
10146
|
+
o instanceof RegExp || I(
|
|
10125
10147
|
`Pattern ${o} for «${t.name}» Tool is skipped because it should be a Regexp instance.`,
|
|
10126
10148
|
"warn"
|
|
10127
10149
|
), this.toolsPatterns.push({
|
|
@@ -10159,7 +10181,7 @@ const ho = /* @__PURE__ */ new Set([
|
|
|
10159
10181
|
* @param {File} file - file to process
|
|
10160
10182
|
*/
|
|
10161
10183
|
async processFile(t) {
|
|
10162
|
-
const e =
|
|
10184
|
+
const e = an(t), o = Object.entries(this.toolsFiles).find(([i, { mimeTypes: r, extensions: l }]) => {
|
|
10163
10185
|
const [c, d] = t.type.split("/"), h = l.find((f) => f.toLowerCase() === e.toLowerCase()), u = r.find((f) => {
|
|
10164
10186
|
const [p, b] = f.split("/");
|
|
10165
10187
|
return p === c && (b === d || b === "*");
|
|
@@ -10287,7 +10309,7 @@ const ho = /* @__PURE__ */ new Set([
|
|
|
10287
10309
|
*/
|
|
10288
10310
|
async processInlinePaste(t) {
|
|
10289
10311
|
var c, d;
|
|
10290
|
-
const { BlockManager: e, Caret: o } = this.Blok, { content: n } = t, s = (d = (c = e.currentBlock) == null ? void 0 : c.tool.isDefault) != null ? d : !1, i = n.textContent, l = s && i !== null && i.length <
|
|
10312
|
+
const { BlockManager: e, Caret: o } = this.Blok, { content: n } = t, s = (d = (c = e.currentBlock) == null ? void 0 : c.tool.isDefault) != null ? d : !1, i = n.textContent, l = s && i !== null && i.length < Kt.PATTERN_PROCESSING_MAX_LENGTH && i !== null ? await this.processPattern(i) : void 0;
|
|
10291
10313
|
if (l) {
|
|
10292
10314
|
const h = e.currentBlock && e.currentBlock.tool.isDefault && e.currentBlock.isEmpty, u = await e.paste(l.tool, l.event, h);
|
|
10293
10315
|
o.setToBlock(u, o.positions.END);
|
|
@@ -10342,7 +10364,7 @@ const ho = /* @__PURE__ */ new Set([
|
|
|
10342
10364
|
*/
|
|
10343
10365
|
insertBlokData(t) {
|
|
10344
10366
|
const { BlockManager: e, Caret: o, Tools: n } = this.Blok;
|
|
10345
|
-
|
|
10367
|
+
we(
|
|
10346
10368
|
t,
|
|
10347
10369
|
(i) => {
|
|
10348
10370
|
var r, l;
|
|
@@ -10418,9 +10440,9 @@ const ho = /* @__PURE__ */ new Set([
|
|
|
10418
10440
|
});
|
|
10419
10441
|
}
|
|
10420
10442
|
};
|
|
10421
|
-
|
|
10422
|
-
let
|
|
10423
|
-
class
|
|
10443
|
+
Kt.PATTERN_PROCESSING_MAX_LENGTH = 450;
|
|
10444
|
+
let fe = Kt;
|
|
10445
|
+
class ci extends T {
|
|
10424
10446
|
constructor() {
|
|
10425
10447
|
super(...arguments), this.toolsDontSupportReadOnly = [], this.readOnlyEnabled = !1;
|
|
10426
10448
|
}
|
|
@@ -10468,7 +10490,7 @@ class li extends T {
|
|
|
10468
10490
|
);
|
|
10469
10491
|
}
|
|
10470
10492
|
}
|
|
10471
|
-
class
|
|
10493
|
+
class di extends T {
|
|
10472
10494
|
constructor() {
|
|
10473
10495
|
super(...arguments), this.isRectSelectionActivated = !1, this.SCROLL_SPEED = 3, this.HEIGHT_OF_SCROLL_ZONE = 40, this.BOTTOM_SCROLL_ZONE = 1, this.TOP_SCROLL_ZONE = 2, this.MAIN_MOUSE_BUTTON = 0, this.mousedown = !1, this.isScrolling = !1, this.inScrollZone = null, this.startX = 0, this.startY = 0, this.mouseX = 0, this.mouseY = 0, this.stackOfSelected = [], this.rectCrossesBlocks = !1, this.overlayRectangle = null, this.listenerIds = [];
|
|
10474
10496
|
}
|
|
@@ -10507,11 +10529,11 @@ class ci extends T {
|
|
|
10507
10529
|
if (!(l >= i.top && l <= i.bottom))
|
|
10508
10530
|
return;
|
|
10509
10531
|
const d = this.getScrollLeft(), h = document.elementFromPoint(t - d, l);
|
|
10510
|
-
!h || (!h.closest(
|
|
10511
|
-
|
|
10512
|
-
|
|
10513
|
-
|
|
10514
|
-
|
|
10532
|
+
!h || (!h.closest(j(m.toolbar)) && !o && (this.Blok.BlockSelection.allBlocksSelected = !1, this.clearSelection(), this.stackOfSelected = []), [
|
|
10533
|
+
j(m.elementContent),
|
|
10534
|
+
j(m.toolbar),
|
|
10535
|
+
j(m.popover),
|
|
10536
|
+
ln
|
|
10515
10537
|
].some((b) => !!h.closest(b))) || (this.Blok.Toolbar.close(), this.mousedown = !0, this.startX = t, this.startY = e);
|
|
10516
10538
|
}
|
|
10517
10539
|
/**
|
|
@@ -10539,7 +10561,7 @@ class ci extends T {
|
|
|
10539
10561
|
this.genHTML(), this.listeners.on(document.body, "mousedown", (o) => {
|
|
10540
10562
|
this.processMouseDown(o);
|
|
10541
10563
|
}, !1);
|
|
10542
|
-
const t =
|
|
10564
|
+
const t = ne((o) => {
|
|
10543
10565
|
o instanceof MouseEvent && this.processMouseMove(o);
|
|
10544
10566
|
}, 10);
|
|
10545
10567
|
this.listeners.on(document.body, "mousemove", t, {
|
|
@@ -10547,7 +10569,7 @@ class ci extends T {
|
|
|
10547
10569
|
}), this.listeners.on(document.body, "mouseleave", () => {
|
|
10548
10570
|
this.processMouseLeave();
|
|
10549
10571
|
});
|
|
10550
|
-
const e =
|
|
10572
|
+
const e = ne((o) => {
|
|
10551
10573
|
this.processScroll(o);
|
|
10552
10574
|
}, 10);
|
|
10553
10575
|
this.listeners.on(window, "scroll", e, {
|
|
@@ -10606,7 +10628,7 @@ class ci extends T {
|
|
|
10606
10628
|
* @returns {Record<string, Element>}
|
|
10607
10629
|
*/
|
|
10608
10630
|
genHTML() {
|
|
10609
|
-
const { UI: t } = this.Blok, e = t.nodes.holder.querySelector(
|
|
10631
|
+
const { UI: t } = this.Blok, e = t.nodes.holder.querySelector(j(m.editor)), o = g.make("div", [
|
|
10610
10632
|
"fixed",
|
|
10611
10633
|
"inset-0",
|
|
10612
10634
|
"z-overlay",
|
|
@@ -10708,7 +10730,7 @@ class ci extends T {
|
|
|
10708
10730
|
*/
|
|
10709
10731
|
genInfoForMouseSelection() {
|
|
10710
10732
|
var p;
|
|
10711
|
-
const e = document.body.offsetWidth / 2, o = this.getScrollTop(), n = this.mouseY - o, s = document.elementFromPoint(e, n), i = (p = this.Blok.BlockManager.lastBlock) == null ? void 0 : p.holder, r = i == null ? void 0 : i.querySelector(
|
|
10733
|
+
const e = document.body.offsetWidth / 2, o = this.getScrollTop(), n = this.mouseY - o, s = document.elementFromPoint(e, n), i = (p = this.Blok.BlockManager.lastBlock) == null ? void 0 : p.holder, r = i == null ? void 0 : i.querySelector(j(m.elementContent)), c = (r ? Number.parseInt(window.getComputedStyle(r).width, 10) : 0) / 2, d = e - c, h = e + c;
|
|
10712
10734
|
if (!s)
|
|
10713
10735
|
return {
|
|
10714
10736
|
index: void 0,
|
|
@@ -10779,35 +10801,38 @@ class ci extends T {
|
|
|
10779
10801
|
f.length > 0 && this.stackOfSelected.splice(this.stackOfSelected.length - f.length, f.length);
|
|
10780
10802
|
}
|
|
10781
10803
|
}
|
|
10782
|
-
const
|
|
10804
|
+
const hi = (a) => a.some((t) => t.items !== void 0 && t.items.length > 0), ui = (a) => {
|
|
10783
10805
|
var e;
|
|
10784
|
-
return a.type === "list" && ((e = a.data) == null ? void 0 : e.items) ?
|
|
10785
|
-
},
|
|
10806
|
+
return a.type === "list" && ((e = a.data) == null ? void 0 : e.items) ? hi(a.data.items) : !1;
|
|
10807
|
+
}, pi = (a) => a.parent !== void 0 || a.content !== void 0 && a.content.length > 0, fi = (a) => a.some(pi) ? { format: "hierarchical", hasHierarchy: !0 } : a.some(ui) ? { format: "legacy", hasHierarchy: !0 } : { format: "flat", hasHierarchy: !1 }, Fo = (a, t, e, o, n, s, i) => {
|
|
10786
10808
|
const r = [];
|
|
10787
10809
|
return a.forEach((l, c) => {
|
|
10788
|
-
const d =
|
|
10810
|
+
const d = ve();
|
|
10789
10811
|
r.push(d);
|
|
10790
|
-
const h =
|
|
10812
|
+
const h = o === "ordered" && e === 0 && c === 0 && n !== void 0 && n !== 1, u = l.items && l.items.length > 0, f = w(w({
|
|
10791
10813
|
id: d,
|
|
10792
|
-
type: "
|
|
10793
|
-
data: w({
|
|
10814
|
+
type: "list",
|
|
10815
|
+
data: w(w({
|
|
10794
10816
|
text: l.content,
|
|
10795
10817
|
checked: l.checked,
|
|
10796
10818
|
style: o
|
|
10797
|
-
},
|
|
10798
|
-
}, s !== void 0 ? { tunes: s } : {}), t !== void 0 ? { parent: t } : {})
|
|
10799
|
-
i.push(f)
|
|
10819
|
+
}, e > 0 ? { depth: e } : {}), h ? { start: n } : {})
|
|
10820
|
+
}, s !== void 0 ? { tunes: s } : {}), t !== void 0 ? { parent: t } : {});
|
|
10821
|
+
if (i.push(f), !u)
|
|
10822
|
+
return;
|
|
10823
|
+
const p = Fo(l.items, d, e + 1, o, void 0, s, i);
|
|
10824
|
+
p.length > 0 && (f.content = p);
|
|
10800
10825
|
}), r;
|
|
10801
|
-
},
|
|
10826
|
+
}, gi = (a, t) => {
|
|
10802
10827
|
const e = [], o = a.style, n = a.start;
|
|
10803
|
-
return
|
|
10804
|
-
},
|
|
10828
|
+
return Fo(a.items, void 0, 0, o, n, t, e), e;
|
|
10829
|
+
}, mi = (a) => {
|
|
10805
10830
|
var e, o;
|
|
10806
10831
|
const t = [];
|
|
10807
10832
|
for (const n of a) {
|
|
10808
|
-
const s = (e = n.id) != null ? e :
|
|
10833
|
+
const s = (e = n.id) != null ? e : ve();
|
|
10809
10834
|
if (n.type === "list" && ((o = n.data) == null ? void 0 : o.items)) {
|
|
10810
|
-
const r = n.data, l =
|
|
10835
|
+
const r = n.data, l = gi(r, n.tunes);
|
|
10811
10836
|
t.push(...l);
|
|
10812
10837
|
} else
|
|
10813
10838
|
t.push(R(w({}, n), {
|
|
@@ -10815,22 +10840,22 @@ const di = (a) => a.some((t) => t.items !== void 0 && t.items.length > 0), hi =
|
|
|
10815
10840
|
}));
|
|
10816
10841
|
}
|
|
10817
10842
|
return t;
|
|
10818
|
-
},
|
|
10843
|
+
}, bi = (a, t) => {
|
|
10819
10844
|
a && t.add(a);
|
|
10820
10845
|
}, uo = (a) => {
|
|
10821
10846
|
const n = a, { parent: t, content: e } = n;
|
|
10822
10847
|
return jt(n, ["parent", "content"]);
|
|
10823
|
-
},
|
|
10848
|
+
}, ki = (a, t, e) => {
|
|
10824
10849
|
const o = [];
|
|
10825
10850
|
for (const n of a) {
|
|
10826
10851
|
const s = t.get(n);
|
|
10827
|
-
if (s && s.type === "
|
|
10828
|
-
const r =
|
|
10852
|
+
if (s && s.type === "list") {
|
|
10853
|
+
const r = _o(s, t, e);
|
|
10829
10854
|
o.push(...r);
|
|
10830
10855
|
}
|
|
10831
10856
|
}
|
|
10832
10857
|
return o;
|
|
10833
|
-
},
|
|
10858
|
+
}, _o = (a, t, e) => {
|
|
10834
10859
|
var r, l;
|
|
10835
10860
|
const o = [];
|
|
10836
10861
|
a.id && e.add(a.id);
|
|
@@ -10838,10 +10863,10 @@ const di = (a) => a.some((t) => t.items !== void 0 && t.items.length > 0), hi =
|
|
|
10838
10863
|
content: ((r = a.data) == null ? void 0 : r.text) || "",
|
|
10839
10864
|
checked: (l = a.data) == null ? void 0 : l.checked
|
|
10840
10865
|
};
|
|
10841
|
-
return a.content && a.content.length > 0 && (n.items =
|
|
10842
|
-
},
|
|
10866
|
+
return a.content && a.content.length > 0 && (n.items = ki(a.content, t, e)), n.items !== void 0 && n.items.length === 0 && delete n.items, o.push(n), o;
|
|
10867
|
+
}, vi = (a, t, e) => {
|
|
10843
10868
|
var r, l;
|
|
10844
|
-
const o =
|
|
10869
|
+
const o = _o(a, t, e), n = ((r = a.data) == null ? void 0 : r.style) || "unordered", s = (l = a.data) == null ? void 0 : l.start;
|
|
10845
10870
|
return w({
|
|
10846
10871
|
id: a.id,
|
|
10847
10872
|
type: "list",
|
|
@@ -10850,26 +10875,29 @@ const di = (a) => a.some((t) => t.items !== void 0 && t.items.length > 0), hi =
|
|
|
10850
10875
|
items: o
|
|
10851
10876
|
}, n === "ordered" && s !== void 0 && s !== 1 ? { start: s } : {})
|
|
10852
10877
|
}, a.tunes !== void 0 ? { tunes: a.tunes } : {});
|
|
10853
|
-
},
|
|
10854
|
-
|
|
10878
|
+
}, po = (a) => {
|
|
10879
|
+
var t, e;
|
|
10880
|
+
return a.type === "list" && ((t = a.data) == null ? void 0 : t.text) !== void 0 && ((e = a.data) == null ? void 0 : e.items) === void 0;
|
|
10881
|
+
}, Bi = (a) => {
|
|
10882
|
+
const t = /* @__PURE__ */ new Map();
|
|
10855
10883
|
for (const s of a)
|
|
10856
|
-
s.id && t.set(s.id, s)
|
|
10857
|
-
if (
|
|
10884
|
+
s.id && t.set(s.id, s);
|
|
10885
|
+
if (!a.some(po))
|
|
10858
10886
|
return a.map(uo);
|
|
10859
10887
|
const o = [], n = /* @__PURE__ */ new Set();
|
|
10860
10888
|
for (const s of a) {
|
|
10861
10889
|
if (s.id && n.has(s.id))
|
|
10862
10890
|
continue;
|
|
10863
|
-
const r = s
|
|
10864
|
-
if (
|
|
10865
|
-
const
|
|
10866
|
-
o.push(
|
|
10891
|
+
const r = po(s), l = r && !s.parent, c = !r;
|
|
10892
|
+
if (l) {
|
|
10893
|
+
const d = vi(s, t, n);
|
|
10894
|
+
o.push(d);
|
|
10867
10895
|
}
|
|
10868
|
-
|
|
10896
|
+
c && (o.push(uo(s)), bi(s.id, n));
|
|
10869
10897
|
}
|
|
10870
10898
|
return o;
|
|
10871
|
-
},
|
|
10872
|
-
class
|
|
10899
|
+
}, wi = (a, t) => a === "hierarchical" ? t === "legacy" : !1, yi = (a, t) => a === "legacy" || a === "auto" && t === "legacy";
|
|
10900
|
+
class xi extends T {
|
|
10873
10901
|
constructor() {
|
|
10874
10902
|
super(...arguments), this.detectedInputFormat = "flat";
|
|
10875
10903
|
}
|
|
@@ -10889,13 +10917,13 @@ class yi extends T {
|
|
|
10889
10917
|
if (t.length === 0)
|
|
10890
10918
|
n.insert();
|
|
10891
10919
|
else {
|
|
10892
|
-
const s = this.config.dataModel || "auto", i =
|
|
10920
|
+
const s = this.config.dataModel || "auto", i = fi(t);
|
|
10893
10921
|
this.detectedInputFormat = i.format;
|
|
10894
|
-
const l = (
|
|
10922
|
+
const l = (wi(s, i.format) ? mi(t) : t).map((c) => {
|
|
10895
10923
|
const { tunes: d, id: h, parent: u, content: f } = c, p = c.type, b = o.available.has(p) ? {
|
|
10896
10924
|
tool: p,
|
|
10897
10925
|
data: c.data
|
|
10898
|
-
} : (
|
|
10926
|
+
} : (V(`Tool «${p}» is not found. Check 'tools' property at the Blok config.`, "warn"), {
|
|
10899
10927
|
tool: o.stubTool,
|
|
10900
10928
|
data: this.composeStubDataForTool(p, c.data, h)
|
|
10901
10929
|
});
|
|
@@ -10910,7 +10938,7 @@ class yi extends T {
|
|
|
10910
10938
|
contentIds: f
|
|
10911
10939
|
});
|
|
10912
10940
|
} catch (S) {
|
|
10913
|
-
|
|
10941
|
+
I(`Block «${B}» skipped because of plugins error`, "error", {
|
|
10914
10942
|
data: x,
|
|
10915
10943
|
error: S
|
|
10916
10944
|
});
|
|
@@ -10956,7 +10984,7 @@ class yi extends T {
|
|
|
10956
10984
|
};
|
|
10957
10985
|
}
|
|
10958
10986
|
}
|
|
10959
|
-
class
|
|
10987
|
+
class Ti extends T {
|
|
10960
10988
|
/**
|
|
10961
10989
|
* Composes new chain of Promises to fire them alternatelly
|
|
10962
10990
|
* @returns {OutputData | undefined}
|
|
@@ -10967,7 +10995,7 @@ class xi extends T {
|
|
|
10967
10995
|
return {
|
|
10968
10996
|
time: +/* @__PURE__ */ new Date(),
|
|
10969
10997
|
blocks: [],
|
|
10970
|
-
version:
|
|
10998
|
+
version: _t()
|
|
10971
10999
|
};
|
|
10972
11000
|
const n = o.map((s) => this.getSavedData(s));
|
|
10973
11001
|
this.lastSaveError = void 0;
|
|
@@ -10984,7 +11012,7 @@ class xi extends T {
|
|
|
10984
11012
|
} catch (s) {
|
|
10985
11013
|
this.lastSaveError = s;
|
|
10986
11014
|
const i = s instanceof Error ? s : new Error(String(s));
|
|
10987
|
-
|
|
11015
|
+
V("Saving failed due to the Error %o", "error", i);
|
|
10988
11016
|
return;
|
|
10989
11017
|
}
|
|
10990
11018
|
}
|
|
@@ -11017,11 +11045,11 @@ class xi extends T {
|
|
|
11017
11045
|
const e = [];
|
|
11018
11046
|
t.forEach(({ id: c, tool: d, data: h, tunes: u, isValid: f, parentId: p, contentIds: b }) => {
|
|
11019
11047
|
if (!f) {
|
|
11020
|
-
|
|
11048
|
+
I(`Block «${d}» skipped because saved data is invalid`);
|
|
11021
11049
|
return;
|
|
11022
11050
|
}
|
|
11023
11051
|
if (d === void 0 || h === void 0) {
|
|
11024
|
-
|
|
11052
|
+
I("Block skipped because saved data is missing required fields");
|
|
11025
11053
|
return;
|
|
11026
11054
|
}
|
|
11027
11055
|
if (d === this.Blok.Tools.stubTool && this.isStubSavedData(h)) {
|
|
@@ -11029,7 +11057,7 @@ class xi extends T {
|
|
|
11029
11057
|
return;
|
|
11030
11058
|
}
|
|
11031
11059
|
if (d === this.Blok.Tools.stubTool) {
|
|
11032
|
-
|
|
11060
|
+
I("Stub block data is malformed and was skipped");
|
|
11033
11061
|
return;
|
|
11034
11062
|
}
|
|
11035
11063
|
const k = u === void 0 || N(u), B = p != null, x = b !== void 0 && b.length > 0, S = w(w(w({
|
|
@@ -11045,11 +11073,11 @@ class xi extends T {
|
|
|
11045
11073
|
});
|
|
11046
11074
|
e.push(S);
|
|
11047
11075
|
});
|
|
11048
|
-
const o = this.config.dataModel || "auto", n = (l = (r = (i = this.Blok.Renderer) == null ? void 0 : i.getDetectedInputFormat) == null ? void 0 : r.call(i)) != null ? l : "flat", s =
|
|
11076
|
+
const o = this.config.dataModel || "auto", n = (l = (r = (i = this.Blok.Renderer) == null ? void 0 : i.getDetectedInputFormat) == null ? void 0 : r.call(i)) != null ? l : "flat", s = yi(o, n) ? Bi(e) : e;
|
|
11049
11077
|
return {
|
|
11050
11078
|
time: +/* @__PURE__ */ new Date(),
|
|
11051
11079
|
blocks: s,
|
|
11052
|
-
version:
|
|
11080
|
+
version: _t()
|
|
11053
11081
|
};
|
|
11054
11082
|
}
|
|
11055
11083
|
/**
|
|
@@ -11067,7 +11095,7 @@ class xi extends T {
|
|
|
11067
11095
|
});
|
|
11068
11096
|
}), n.length === 0)
|
|
11069
11097
|
return t;
|
|
11070
|
-
const s =
|
|
11098
|
+
const s = we(
|
|
11071
11099
|
n.map(({ data: r }) => r),
|
|
11072
11100
|
e,
|
|
11073
11101
|
o
|
|
@@ -11120,7 +11148,7 @@ class xi extends T {
|
|
|
11120
11148
|
});
|
|
11121
11149
|
}
|
|
11122
11150
|
}
|
|
11123
|
-
const
|
|
11151
|
+
const De = class De {
|
|
11124
11152
|
/**
|
|
11125
11153
|
* @param options - constructor options
|
|
11126
11154
|
* @param options.data - stub tool data
|
|
@@ -11148,7 +11176,7 @@ const Le = class Le {
|
|
|
11148
11176
|
* @returns {HTMLElement}
|
|
11149
11177
|
*/
|
|
11150
11178
|
make() {
|
|
11151
|
-
const t = g.make("div", "flex items-center py-3 px-[18px] my-2.5 rounded-[10px] bg-bg-light border border-line-gray text-gray-text text-sm [&_svg]:size-icon"), e =
|
|
11179
|
+
const t = g.make("div", "flex items-center py-3 px-[18px] my-2.5 rounded-[10px] bg-bg-light border border-line-gray text-gray-text text-sm [&_svg]:size-icon"), e = cn, o = g.make("div", "ml-3.5"), n = g.make("div", "font-medium capitalize", {
|
|
11152
11180
|
textContent: this.title
|
|
11153
11181
|
}), s = g.make("div", "", {
|
|
11154
11182
|
textContent: this.subtitle
|
|
@@ -11156,9 +11184,9 @@ const Le = class Le {
|
|
|
11156
11184
|
return t.setAttribute(m.tool, "stub"), t.setAttribute(m.stub, ""), o.setAttribute(m.stubInfo, ""), n.setAttribute(m.stubTitle, ""), s.setAttribute(m.stubSubtitle, ""), t.innerHTML = e, o.appendChild(n), o.appendChild(s), t.appendChild(o), t;
|
|
11157
11185
|
}
|
|
11158
11186
|
};
|
|
11159
|
-
|
|
11160
|
-
let
|
|
11161
|
-
class
|
|
11187
|
+
De.isReadOnlySupported = !0;
|
|
11188
|
+
let ge = De;
|
|
11189
|
+
class Si extends Ie {
|
|
11162
11190
|
constructor() {
|
|
11163
11191
|
super(...arguments), this.type = dt.Inline;
|
|
11164
11192
|
}
|
|
@@ -11202,7 +11230,7 @@ class Ti extends Ee {
|
|
|
11202
11230
|
return this.constructable.titleKey;
|
|
11203
11231
|
}
|
|
11204
11232
|
}
|
|
11205
|
-
class
|
|
11233
|
+
class Ci extends Ie {
|
|
11206
11234
|
constructor() {
|
|
11207
11235
|
super(...arguments), this.type = dt.Tune;
|
|
11208
11236
|
}
|
|
@@ -11258,7 +11286,7 @@ class _ extends Map {
|
|
|
11258
11286
|
return new _(t);
|
|
11259
11287
|
}
|
|
11260
11288
|
}
|
|
11261
|
-
class Ii extends
|
|
11289
|
+
class Ii extends Ie {
|
|
11262
11290
|
constructor() {
|
|
11263
11291
|
super(...arguments), this.type = dt.Block, this.inlineTools = new _(), this.tunes = new _();
|
|
11264
11292
|
}
|
|
@@ -11308,7 +11336,7 @@ class Ii extends Ee {
|
|
|
11308
11336
|
* whose `data.style` matches one of the specified styles will be included.
|
|
11309
11337
|
*/
|
|
11310
11338
|
get toolbox() {
|
|
11311
|
-
const t = this.constructable[pt.Toolbox], e = this.config[
|
|
11339
|
+
const t = this.constructable[pt.Toolbox], e = this.config[Rt.Toolbox];
|
|
11312
11340
|
if (!t || N(t) || e === !1)
|
|
11313
11341
|
return;
|
|
11314
11342
|
const o = this.mergeToolboxSettings(t, e), n = this.filterToolboxEntriesByStyles(o);
|
|
@@ -11358,14 +11386,14 @@ class Ii extends Ee {
|
|
|
11358
11386
|
* Defaults to true (all inline tools) unless explicitly set to false or array.
|
|
11359
11387
|
*/
|
|
11360
11388
|
get enabledInlineTools() {
|
|
11361
|
-
const t = this.config[
|
|
11389
|
+
const t = this.config[Rt.EnabledInlineTools];
|
|
11362
11390
|
return t === void 0 ? !0 : t;
|
|
11363
11391
|
}
|
|
11364
11392
|
/**
|
|
11365
11393
|
* Returns enabled tunes for Tool
|
|
11366
11394
|
*/
|
|
11367
11395
|
get enabledBlockTunes() {
|
|
11368
|
-
return this.config[
|
|
11396
|
+
return this.config[Rt.EnabledBlockTunes];
|
|
11369
11397
|
}
|
|
11370
11398
|
/**
|
|
11371
11399
|
* User-provided search terms from tool settings.
|
|
@@ -11417,7 +11445,7 @@ class Ii extends Ee {
|
|
|
11417
11445
|
return Array.from(this.inlineTools.values()).forEach((e) => Object.assign(t, e.sanitizeConfig)), Array.from(this.tunes.values()).forEach((e) => Object.assign(t, e.sanitizeConfig)), this._baseSanitizeConfig = t, t;
|
|
11418
11446
|
}
|
|
11419
11447
|
}
|
|
11420
|
-
class
|
|
11448
|
+
class Ei {
|
|
11421
11449
|
/**
|
|
11422
11450
|
* @class
|
|
11423
11451
|
* @param config - tools config
|
|
@@ -11479,16 +11507,16 @@ class Ci {
|
|
|
11479
11507
|
*/
|
|
11480
11508
|
getConstructor(t) {
|
|
11481
11509
|
switch (!0) {
|
|
11482
|
-
case !!Reflect.get(t,
|
|
11483
|
-
return Ti;
|
|
11484
|
-
case !!Reflect.get(t, Eo.IsTune):
|
|
11510
|
+
case !!Reflect.get(t, Eo.IsInline):
|
|
11485
11511
|
return Si;
|
|
11512
|
+
case !!Reflect.get(t, Ao.IsTune):
|
|
11513
|
+
return Ci;
|
|
11486
11514
|
default:
|
|
11487
11515
|
return Ii;
|
|
11488
11516
|
}
|
|
11489
11517
|
}
|
|
11490
11518
|
}
|
|
11491
|
-
const
|
|
11519
|
+
const Le = class Le {
|
|
11492
11520
|
/**
|
|
11493
11521
|
* DeleteTune constructor
|
|
11494
11522
|
* @param {API} api - Blok's API
|
|
@@ -11501,7 +11529,7 @@ const Oe = class Oe {
|
|
|
11501
11529
|
*/
|
|
11502
11530
|
render() {
|
|
11503
11531
|
return {
|
|
11504
|
-
icon:
|
|
11532
|
+
icon: vo,
|
|
11505
11533
|
title: this.api.i18n.t("blockSettings.delete"),
|
|
11506
11534
|
name: "delete",
|
|
11507
11535
|
onActivate: () => this.handleClick()
|
|
@@ -11514,13 +11542,13 @@ const Oe = class Oe {
|
|
|
11514
11542
|
this.api.blocks.delete();
|
|
11515
11543
|
}
|
|
11516
11544
|
};
|
|
11517
|
-
|
|
11518
|
-
let
|
|
11519
|
-
const
|
|
11545
|
+
Le.isTune = !0;
|
|
11546
|
+
let me = Le;
|
|
11547
|
+
const ee = (a) => {
|
|
11520
11548
|
if (!E(a))
|
|
11521
11549
|
throw new Error("Tool constructable must be a function");
|
|
11522
11550
|
return a;
|
|
11523
|
-
},
|
|
11551
|
+
}, Wt = class Wt extends T {
|
|
11524
11552
|
constructor() {
|
|
11525
11553
|
super(...arguments), this.stubTool = "stub", this.factory = null, this.toolsAvailable = new _(), this.toolsUnavailable = new _(), this.inlineToolsSanitizeConfigCache = null;
|
|
11526
11554
|
}
|
|
@@ -11585,7 +11613,7 @@ const oe = (a) => {
|
|
|
11585
11613
|
if (!e || Object.keys(e).length === 0)
|
|
11586
11614
|
throw Error("Can't start without tools");
|
|
11587
11615
|
const o = this.prepareConfig(e);
|
|
11588
|
-
this.factory = new
|
|
11616
|
+
this.factory = new Ei(o, this.config, this.Blok.API);
|
|
11589
11617
|
const n = this.getListOfPrepareFunctions(o);
|
|
11590
11618
|
if (n.length === 0)
|
|
11591
11619
|
return Promise.resolve();
|
|
@@ -11593,10 +11621,10 @@ const oe = (a) => {
|
|
|
11593
11621
|
this.isToolPrepareData(c) && this.toolPrepareMethodSuccess({ toolName: c.toolName });
|
|
11594
11622
|
}, i = (c) => {
|
|
11595
11623
|
this.isToolPrepareData(c) && this.toolPrepareMethodFallback({ toolName: c.toolName });
|
|
11596
|
-
}, r = new
|
|
11624
|
+
}, r = new Po();
|
|
11597
11625
|
n.forEach((c) => {
|
|
11598
11626
|
r.add(async () => {
|
|
11599
|
-
const d =
|
|
11627
|
+
const d = dn(c.data) ? {} : c.data;
|
|
11600
11628
|
try {
|
|
11601
11629
|
await c.function(c.data), s(d);
|
|
11602
11630
|
} catch (h) {
|
|
@@ -11625,12 +11653,12 @@ const oe = (a) => {
|
|
|
11625
11653
|
try {
|
|
11626
11654
|
return t.reset();
|
|
11627
11655
|
} catch (o) {
|
|
11628
|
-
|
|
11656
|
+
I(`Tool "${t.name}" reset failed`, "warn", o);
|
|
11629
11657
|
return;
|
|
11630
11658
|
}
|
|
11631
11659
|
})();
|
|
11632
11660
|
e instanceof Promise && e.catch((o) => {
|
|
11633
|
-
|
|
11661
|
+
I(`Tool "${t.name}" reset failed`, "warn", o);
|
|
11634
11662
|
});
|
|
11635
11663
|
}
|
|
11636
11664
|
}
|
|
@@ -11647,15 +11675,15 @@ const oe = (a) => {
|
|
|
11647
11675
|
get internalTools() {
|
|
11648
11676
|
return {
|
|
11649
11677
|
stub: {
|
|
11650
|
-
class:
|
|
11678
|
+
class: ee(ge),
|
|
11651
11679
|
isInternal: !0
|
|
11652
11680
|
},
|
|
11653
11681
|
delete: {
|
|
11654
|
-
class:
|
|
11682
|
+
class: ee(me),
|
|
11655
11683
|
isInternal: !0
|
|
11656
11684
|
},
|
|
11657
11685
|
convertTo: {
|
|
11658
|
-
class:
|
|
11686
|
+
class: ee(hn),
|
|
11659
11687
|
isInternal: !0
|
|
11660
11688
|
}
|
|
11661
11689
|
};
|
|
@@ -11672,7 +11700,7 @@ const oe = (a) => {
|
|
|
11672
11700
|
}
|
|
11673
11701
|
const o = ["render"], n = e.getMissingMethods(o);
|
|
11674
11702
|
if (n.length) {
|
|
11675
|
-
|
|
11703
|
+
I(
|
|
11676
11704
|
`Incorrect Inline Tool: ${e.name}. Some of required methods is not implemented %o`,
|
|
11677
11705
|
"warn",
|
|
11678
11706
|
n
|
|
@@ -11722,7 +11750,7 @@ const oe = (a) => {
|
|
|
11722
11750
|
var n;
|
|
11723
11751
|
const e = (n = t.config) != null ? n : {}, o = {};
|
|
11724
11752
|
for (const s of Object.keys(t))
|
|
11725
|
-
|
|
11753
|
+
Wt.BLOK_SETTINGS_KEYS.has(s) || (o[s] = t[s]);
|
|
11726
11754
|
return w(w({}, e), o);
|
|
11727
11755
|
}
|
|
11728
11756
|
/**
|
|
@@ -11842,7 +11870,7 @@ const oe = (a) => {
|
|
|
11842
11870
|
for (const o of t) {
|
|
11843
11871
|
const n = this.inlineTools.get(o);
|
|
11844
11872
|
if (!n) {
|
|
11845
|
-
|
|
11873
|
+
I(`Inline tool "${o}" is not available and will be skipped`, "warn");
|
|
11846
11874
|
continue;
|
|
11847
11875
|
}
|
|
11848
11876
|
e.push([o, n]);
|
|
@@ -11859,7 +11887,7 @@ const oe = (a) => {
|
|
|
11859
11887
|
for (const o of t) {
|
|
11860
11888
|
const n = this.blockTunes.get(o);
|
|
11861
11889
|
if (!n) {
|
|
11862
|
-
|
|
11890
|
+
I(`Block tune "${o}" is not available and will be skipped`, "warn");
|
|
11863
11891
|
continue;
|
|
11864
11892
|
}
|
|
11865
11893
|
e.push([o, n]);
|
|
@@ -11867,7 +11895,7 @@ const oe = (a) => {
|
|
|
11867
11895
|
return new _(e);
|
|
11868
11896
|
}
|
|
11869
11897
|
};
|
|
11870
|
-
|
|
11898
|
+
Wt.BLOK_SETTINGS_KEYS = /* @__PURE__ */ new Set([
|
|
11871
11899
|
"class",
|
|
11872
11900
|
"inlineToolbar",
|
|
11873
11901
|
"tunes",
|
|
@@ -11876,15 +11904,15 @@ $t.BLOK_SETTINGS_KEYS = /* @__PURE__ */ new Set([
|
|
|
11876
11904
|
"config",
|
|
11877
11905
|
"isInternal"
|
|
11878
11906
|
]);
|
|
11879
|
-
let
|
|
11880
|
-
const Ei = `*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:PT Mono,Menlo,Monaco,Consolas,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:651px){.\\!container{max-width:651px!important}.container{max-width:651px}}@media(min-width:768px){.\\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\\!container{max-width:1536px!important}.container{max-width:1536px}}.blok-block{padding:3px 2px}.blok-block::-webkit-input-placeholder{line-height:1.5!important}.blok-inline-tool-button{display:flex;height:100%;width:1.75rem;cursor:pointer;align-items:center;justify-content:center;border-radius:.25rem;border-width:0px;background-color:transparent;padding:0;line-height:1.5;--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.blok-inline-tool-button--active{background-color:#388ae51a;--tw-text-opacity: 1;color:rgb(56 138 229 / var(--tw-text-opacity, 1))}.blok-input{width:100%;border-radius:3px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(239 240 241 / var(--tw-border-opacity, 1));padding:.625rem .75rem;--tw-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, .06);--tw-shadow-colored: inset 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}.blok-input[data-blok-placeholder]:before{pointer-events:none;position:static!important;display:inline-block;width:0px;content:var(--tw-content);white-space:nowrap}.blok-loader{position:relative;border-width:1px;--tw-border-opacity: 1;border-color:rgb(239 240 241 / var(--tw-border-opacity, 1))}.blok-loader:before{position:absolute;left:50%;top:50%;margin-left:-11px;margin-top:-11px;height:18px;content:var(--tw-content);width:18px}@keyframes rotation{0%{content:var(--tw-content);transform:rotate(0)}to{content:var(--tw-content);transform:rotate(360deg)}}.blok-loader:before{animation:rotation 1.2s infinite linear;border-radius:9999px;border-width:2px;border-color:rgb(239 240 241 / var(--tw-border-opacity, 1));--tw-border-opacity: 1;border-left-color:rgb(56 138 229 / var(--tw-border-opacity, 1));--tw-content: "";content:var(--tw-content)}.blok-button{cursor:pointer;border-radius:3px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(239 240 241 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:13px;text-align:center;font-size:14.9px;--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1));--tw-shadow: 0 2px 2px 0 rgba(18, 30, 57, .04);--tw-shadow-colored: 0 2px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blok-button:hover{--tw-bg-opacity: 1;background-color:rgb(251 252 254 / var(--tw-bg-opacity, 1));--tw-shadow: 0 1px 3px 0 rgba(18, 30, 57, .08);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blok-button svg{margin-right:.2em;margin-top:-.125rem;height:1.25rem}.blok-settings-button{margin:0;display:inline-flex;min-height:26px;min-width:26px;cursor:pointer;align-items:center;justify-content:center;border-radius:3px;border-width:0px;background-color:transparent;vertical-align:bottom;color:inherit;outline:2px solid transparent;outline-offset:2px}@media(max-width:650px){.blok-settings-button{height:36px;width:36px;border-radius:.5rem}}@media(hover:hover){.blok-settings-button:hover{--tw-bg-opacity: 1;background-color:rgb(239 242 245 / var(--tw-bg-opacity, 1))}}.blok-settings-button svg{height:auto;width:auto}@media(max-width:650px){.blok-settings-button svg{height:28px;width:28px}}.blok-settings-button--active{--tw-text-opacity: 1;color:rgb(56 138 229 / var(--tw-text-opacity, 1))}.blok-settings-button--focused{background-color:#22baff14;--tw-shadow: inset 0 0 0 1px rgba(7, 161, 227, .08);--tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes buttonClicked{0%{transform:scale3d(.95,.95,.95)}60%{transform:scale3d(1.02,1.02,1.02)}80%,to{transform:scaleZ(1)}}.blok-settings-button--focused-animated{animation:buttonClicked .75s cubic-bezier(.215,.61,.355,1) forwards}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-\\[auto_var\\(--offset\\)_calc\\(var\\(--offset\\)\\+env\\(safe-area-inset-bottom\\)\\)_var\\(--offset\\)\\]{inset:auto var(--offset) calc(var(--offset) + env(safe-area-inset-bottom)) var(--offset)}.bottom-0{bottom:0}.bottom-5{bottom:1.25rem}.left-0{left:0}.left-5{left:1.25rem}.left-\\[var\\(--popover-left\\)\\]{left:var(--popover-left)}.left-auto{left:auto}.right-0{right:0}.right-\\[15px\\]{right:15px}.right-full{right:100%}.top-0{top:0}.top-\\[7px\\]{top:7px}.top-\\[var\\(--popover-top\\)\\]{top:var(--popover-top)}.top-auto{top:auto}.z-0{z-index:0}.z-\\[10000\\]{z-index:10000}.z-\\[1\\]{z-index:1}.z-\\[2\\]{z-index:2}.z-\\[3\\]{z-index:3}.z-\\[4\\]{z-index:4}.z-overlay{z-index:999}.\\!m-0{margin:0!important}.-m-px{margin:-1px}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-2\\.5{margin-top:.625rem;margin-bottom:.625rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-\\[-0\\.5em\\]{margin-top:-.5em;margin-bottom:-.5em}.\\!mr-0{margin-right:0!important}.\\!mr-2{margin-right:.5rem!important}.mb-1{margin-bottom:.25rem}.mb-1\\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-\\[30px\\]{margin-bottom:30px}.mb-px{margin-bottom:1px}.ml-3\\.5{margin-left:.875rem}.mr-2{margin-right:.5rem}.mr-auto{margin-right:auto}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\\[15px\\]{margin-top:15px}.mt-\\[2px\\]{margin-top:2px}.mt-\\[3px\\]{margin-top:3px}.mt-\\[5px\\]{margin-top:5px}.box-border{box-sizing:border-box}.\\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\\!hidden{display:none!important}.hidden{display:none}.h-2\\.5{height:.625rem}.h-4{height:1rem}.h-9{height:2.25rem}.h-\\[26px\\]{height:26px}.h-\\[50px\\]{height:50px}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-px{height:1px}.h-toolbox-btn{height:26px}.max-h-0{max-height:0px}.max-h-\\[var\\(--max-height\\)\\]{max-height:var(--max-height)}.max-h-none{max-height:none}.w-2\\.5{width:.625rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-9{width:2.25rem}.w-\\[230px\\]{width:230px}.w-\\[26px\\]{width:26px}.w-\\[var\\(--width\\)\\]{width:var(--width)}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.w-toolbox-btn{width:26px}.min-w-0{min-width:0px}.min-w-\\[calc\\(100\\%-theme\\(\\'spacing\\.6\\'\\)-10px\\)\\]{min-width:calc(100% - 1.5rem - 10px)}.min-w-\\[calc\\(100\\%-var\\(--offset\\)\\*2\\)\\]{min-width:calc(100% - var(--offset) * 2)}.min-w-\\[var\\(--width\\)\\]{min-width:var(--width)}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-\\[130px\\]{max-width:130px}.max-w-content{max-width:650px}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-\\[5px\\]{--tw-translate-x: -5px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-\\[5px\\]{--tw-translate-y: -5px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\\[5px\\]{--tw-translate-x: 5px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\\[5px\\]{--tw-translate-y: 5px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-none{transform:none}@keyframes panelShowingMobile{0%{opacity:0;transform:translateY(14px) scale(.98)}70%{opacity:1;transform:translateY(-4px)}to{transform:translateY(0)}}.animate-\\[panelShowingMobile_250ms_ease\\]{animation:panelShowingMobile .25s ease}@keyframes panelShowing{0%{opacity:0;transform:translateY(-8px) scale(.9)}70%{opacity:1;transform:translateY(2px)}to{transform:translateY(0)}}.animate-\\[panelShowing_100ms_ease\\]{animation:panelShowing .1s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .3s ease forwards}.animate-none{animation:none}@keyframes notifyBounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}.animate-notify-bounce-in{animation:notifyBounceIn .6s 1}@keyframes wobble{0%{transform:translateZ(0)}15%{transform:translate3d(-9%,0,0)}30%{transform:translate3d(9%,0,0)}45%{transform:translate3d(-4%,0,0)}60%{transform:translate3d(4%,0,0)}75%{transform:translate3d(-1%,0,0)}to{transform:translateZ(0)}}.animate-wobble{animation:wobble .4s}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-\\[auto_auto_1fr\\]{grid-template-columns:auto auto 1fr}.grid-rows-\\[auto\\]{grid-template-rows:auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-\\[10px\\]{border-radius:10px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[7px\\]{border-radius:7px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-\\[\\#e8e8eb\\]{--tw-border-opacity: 1;border-color:rgb(232 232 235 / var(--tw-border-opacity, 1))}.border-\\[rgba\\(226\\,226\\,229\\,0\\.2\\)\\],.border-\\[rgba\\(226\\,226\\,229\\,0\\.20\\)\\]{border-color:#e2e2e533}.border-line-gray,.border-popover-border{--tw-border-opacity: 1;border-color:rgb(239 240 241 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.\\!bg-\\[\\#fafffe\\]{--tw-bg-opacity: 1 !important;background-color:rgb(250 255 254 / var(--tw-bg-opacity, 1))!important}.\\!bg-\\[\\#fffbfb\\]{--tw-bg-opacity: 1 !important;background-color:rgb(255 251 251 / var(--tw-bg-opacity, 1))!important}.\\!bg-item-confirm-bg{--tw-bg-opacity: 1 !important;background-color:rgb(226 74 74 / var(--tw-bg-opacity, 1))!important}.\\!bg-item-focus-bg{background-color:#22baff14!important}.bg-\\[\\#34c992\\]{--tw-bg-opacity: 1;background-color:rgb(52 201 146 / var(--tw-bg-opacity, 1))}.bg-\\[\\#F8F8F8\\]{--tw-bg-opacity: 1;background-color:rgb(248 248 248 / var(--tw-bg-opacity, 1))}.bg-\\[\\#eff1f4\\]{--tw-bg-opacity: 1;background-color:rgb(239 241 244 / var(--tw-bg-opacity, 1))}.bg-\\[\\#f2f5f7\\]{--tw-bg-opacity: 1;background-color:rgb(242 245 247 / var(--tw-bg-opacity, 1))}.bg-\\[\\#f7f7f7\\]{--tw-bg-opacity: 1;background-color:rgb(247 247 247 / var(--tw-bg-opacity, 1))}.bg-bg-light{--tw-bg-opacity: 1;background-color:rgb(239 242 245 / var(--tw-bg-opacity, 1))}.bg-dark{--tw-bg-opacity: 1;background-color:rgb(29 32 43 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-item-hover-bg{--tw-bg-opacity: 1;background-color:rgb(248 248 248 / var(--tw-bg-opacity, 1))}.bg-popover-bg{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-popover-border{--tw-bg-opacity: 1;background-color:rgb(239 240 241 / var(--tw-bg-opacity, 1))}.bg-selection{--tw-bg-opacity: 1;background-color:rgb(225 242 255 / var(--tw-bg-opacity, 1))}.bg-selection-highlight{background-color:#2eaadc33}.bg-tooltip-bg{--tw-bg-opacity: 1;background-color:rgb(29 32 43 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-0{padding:0}.p-0\\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-\\[3px\\]{padding:3px}.p-\\[5px\\]{padding:5px}.p-\\[var\\(--item-padding\\)\\]{padding:var(--item-padding)}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-\\[18px\\]{padding-left:18px;padding-right:18px}.px-\\[2px\\]{padding-left:2px;padding-right:2px}.px-\\[30px\\]{padding-left:30px;padding-right:30px}.px-\\[3px\\]{padding-left:3px;padding-right:3px}.py-0{padding-top:0;padding-bottom:0}.py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-\\[0\\.5em\\]{padding-top:.5em;padding-bottom:.5em}.py-\\[13px\\]{padding-top:13px;padding-bottom:13px}.py-\\[3px\\]{padding-top:3px;padding-bottom:3px}.py-\\[5px\\]{padding-top:5px;padding-bottom:5px}.pl-0\\.5{padding-left:.125rem}.pr-1\\.5{padding-right:.375rem}.pr-\\[5px\\]{padding-right:5px}.text-center{text-align:center}.text-right{text-align:right}.text-start{text-align:start}.font-\\[-apple-system\\,BlinkMacSystemFont\\,\\"Segoe_UI\\"\\,\\"Roboto\\"\\,\\"Oxygen\\"\\,\\"Ubuntu\\"\\,\\"Cantarell\\"\\,\\"Fira_Sans\\"\\,\\"Droid_Sans\\"\\,\\"Helvetica_Neue\\"\\,sans-serif\\]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.font-\\[inherit\\]{font-family:inherit}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\\[13px\\]{font-size:13px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.italic{font-style:italic}.\\!leading-\\[1\\.3\\]{line-height:1.3!important}.leading-5{line-height:1.25rem}.leading-\\[1\\.4em\\]{line-height:1.4em}.leading-\\[1\\.6em\\]{line-height:1.6em}.leading-\\[1em\\]{line-height:1em}.leading-\\[22px\\]{line-height:22px}.leading-\\[50px\\]{line-height:50px}.leading-relaxed{line-height:1.625}.-tracking-widest{letter-spacing:-.1em}.tracking-\\[0\\.02em\\]{letter-spacing:.02em}.\\!text-white{--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.text-\\[\\#656b7c\\]{--tw-text-opacity: 1;color:rgb(101 107 124 / var(--tw-text-opacity, 1))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-dark{--tw-text-opacity: 1;color:rgb(29 32 43 / var(--tw-text-opacity, 1))}.text-gray-text{--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.text-inherit{color:inherit}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-text-primary{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-text-secondary{--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.text-tooltip-font{--tw-text-opacity: 1;color:rgb(205 209 224 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-current{accent-color:currentColor}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\\[0_11px_17px_0_rgba\\(23\\,32\\,61\\,0\\.13\\)\\]{--tw-shadow: 0 11px 17px 0 rgba(23,32,61,.13);--tw-shadow-colored: 0 11px 17px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\\[0_1px_1px_0_rgba\\(18\\,49\\,35\\,0\\.05\\)\\]{--tw-shadow: 0 1px 1px 0 rgba(18,49,35,.05);--tw-shadow-colored: 0 1px 1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\\[0_2px_1px_0_rgba\\(16\\,19\\,29\\,0\\)\\]{--tw-shadow: 0 2px 1px 0 rgba(16,19,29,0);--tw-shadow-colored: 0 2px 1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\\[0_3px_15px_-3px_theme\\(colors\\.popover-shadow\\)\\]{--tw-shadow: 0 3px 15px -3px rgba(13, 20, 33, .1);--tw-shadow-colored: 0 3px 15px -3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-tooltip{--tw-shadow: 0 8px 12px 0 rgba(29, 32, 43, .17), 0 4px 5px -3px rgba(5, 6, 12, .49);--tw-shadow-colored: 0 8px 12px 0 var(--tw-shadow-color), 0 4px 5px -3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-none{transition-property:none}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-\\[120ms\\]{transition-duration:.12s}.duration-\\[250ms\\]{transition-duration:.25s}.duration-\\[50ms\\,70ms\\]{transition-duration:50ms,70ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\\[opacity\\,left\\,top\\]{will-change:opacity,left,top}.will-change-\\[opacity\\,top\\,left\\]{will-change:opacity,top,left}.will-change-\\[opacity\\,top\\]{will-change:opacity,top}.will-change-\\[opacity\\]{will-change:opacity}.\\[clip\\:rect\\(0\\,0\\,0\\,0\\)\\]{clip:rect(0,0,0,0)}.\\[direction\\:rtl\\]{direction:rtl}[data-blok-navigation-focused=true]{margin-left:auto;margin-right:auto;width:650px;max-width:100%;border-radius:.375rem;background-color:#22baff14}@media(hover:hover){[data-blok-item-name=delete]:hover{--tw-text-opacity: 1;color:rgb(226 74 74 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}}[data-drop-indicator]{position:relative}[data-drop-indicator]:before{pointer-events:none;position:absolute;z-index:10;height:.375rem;width:100%;max-width:650px;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:.125rem;--tw-bg-opacity: 1;background-color:rgb(212 227 252 / var(--tw-bg-opacity, 1));--tw-content: "";content:var(--tw-content);left:calc(50% + var(--drop-indicator-depth, 0) * 12px);max-width:calc(650px - var(--drop-indicator-depth, 0) * 24px)}[data-drop-indicator=bottom]:before{bottom:0;--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-drop-indicator=top]:before{top:0;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}[data-blok-dragging-multi=true] [data-blok-selected=true]{opacity:.4;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}[data-blok-selected=true] [data-blok-element-content]:has([data-list-style]){background-color:transparent}[data-blok-selected=true] [data-list-style] [role=listitem]{border-radius:4px;--tw-bg-opacity: 1;background-color:rgb(225 242 255 / var(--tw-bg-opacity, 1))}[data-blok-selected=true] [data-list-style] [role=listitem] [contenteditable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.placeholder\\:font-medium::-moz-placeholder{font-weight:500}.placeholder\\:font-medium::placeholder{font-weight:500}.placeholder\\:text-\\[\\#656b7c\\]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(101 107 124 / var(--tw-text-opacity, 1))}.placeholder\\:text-\\[\\#656b7c\\]::placeholder{--tw-text-opacity: 1;color:rgb(101 107 124 / var(--tw-text-opacity, 1))}.placeholder\\:text-gray-text::-moz-placeholder{--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.placeholder\\:text-gray-text::placeholder{--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.before\\:absolute:before{content:var(--tw-content);position:absolute}.before\\:inset-0:before{content:var(--tw-content);inset:0}.before\\:left-0:before{content:var(--tw-content);left:0}.before\\:left-\\[9px\\]:before{content:var(--tw-content);left:9px}.before\\:top-0:before{content:var(--tw-content);top:0}.before\\:top-\\[5px\\]:before{content:var(--tw-content);top:5px}.before\\:-z-10:before{content:var(--tw-content);z-index:-10}.before\\:m-\\[3px\\]:before{content:var(--tw-content);margin:3px}.before\\:block:before{content:var(--tw-content);display:block}.before\\:h-3:before{content:var(--tw-content);height:.75rem}.before\\:h-\\[calc\\(100\\%-6px\\)\\]:before{content:var(--tw-content);height:calc(100% - 6px)}.before\\:w-0\\.5:before{content:var(--tw-content);width:.125rem}.before\\:w-\\[3px\\]:before{content:var(--tw-content);width:3px}.before\\:rotate-\\[-45deg\\]:before{content:var(--tw-content);--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.before\\:rounded-\\[5px\\]:before{content:var(--tw-content);border-radius:5px}.before\\:rounded-lg:before{content:var(--tw-content);border-radius:.5rem}.before\\:\\!bg-\\[\\#41ffb1\\]:before{content:var(--tw-content);--tw-bg-opacity: 1 !important;background-color:rgb(65 255 177 / var(--tw-bg-opacity, 1))!important}.before\\:\\!bg-\\[\\#fb5d5d\\]:before{content:var(--tw-content);--tw-bg-opacity: 1 !important;background-color:rgb(251 93 93 / var(--tw-bg-opacity, 1))!important}.before\\:bg-\\[\\#575d67\\]:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(87 93 103 / var(--tw-bg-opacity, 1))}.before\\:bg-tooltip-bg:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(29 32 43 / var(--tw-bg-opacity, 1))}.before\\:bg-transparent:before{content:var(--tw-content);background-color:transparent}.before\\:content-\\[\\"\\"\\]:before{--tw-content: "";content:var(--tw-content)}.before\\:content-\\[\\\\\\'\\\\\\'\\]:before{--tw-content: \\'\\';content:var(--tw-content)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:left-\\[9px\\]:after{content:var(--tw-content);left:9px}.after\\:top-\\[5px\\]:after{content:var(--tw-content);top:5px}.after\\:mx-3:after{content:var(--tw-content);margin-left:.75rem;margin-right:.75rem}.after\\:h-3:after{content:var(--tw-content);height:.75rem}.after\\:w-0\\.5:after{content:var(--tw-content);width:.125rem}.after\\:rotate-45:after{content:var(--tw-content);--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\\:bg-\\[\\#575d67\\]:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(87 93 103 / var(--tw-bg-opacity, 1))}.after\\:text-\\[\\#ddd\\]:after{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(221 221 221 / var(--tw-text-opacity, 1))}.after\\:content-\\[\\"\\"\\]:after{--tw-content: "";content:var(--tw-content)}.after\\:content-\\[\\'\\|\\'\\]:after{--tw-content: "|";content:var(--tw-content)}.first\\:mt-0:first-child{margin-top:0}.last\\:ml-2\\.5:last-child{margin-left:.625rem}.empty\\:before\\:pointer-events-none:empty:before{content:var(--tw-content);pointer-events:none}.empty\\:before\\:cursor-text:empty:before{content:var(--tw-content);cursor:text}.empty\\:before\\:text-gray-text:empty:before{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.empty\\:before\\:content-\\[attr\\(data-blok-placeholder\\)\\]:empty:before{--tw-content: attr(data-blok-placeholder);content:var(--tw-content)}.empty\\:before\\:content-\\[attr\\(data-blok-placeholder-active\\)\\]:empty:before{--tw-content: attr(data-blok-placeholder-active);content:var(--tw-content)}.empty\\:before\\:content-\\[attr\\(data-placeholder\\)\\]:empty:before{--tw-content: attr(data-placeholder);content:var(--tw-content)}.hover\\:bg-\\[\\#2db583\\]:hover{--tw-bg-opacity: 1;background-color:rgb(45 181 131 / var(--tw-bg-opacity, 1))}.hover\\:bg-\\[\\#e0e4eb\\]:hover{--tw-bg-opacity: 1;background-color:rgb(224 228 235 / var(--tw-bg-opacity, 1))}.hover\\:bg-\\[\\#e9ecee\\]:hover{--tw-bg-opacity: 1;background-color:rgb(233 236 238 / var(--tw-bg-opacity, 1))}.hover\\:opacity-100:hover{opacity:1}.focus\\:placeholder\\:text-\\[rgba\\(101\\,107\\,124\\,0\\.3\\)\\]:focus::-moz-placeholder{color:#656b7c4d}.focus\\:placeholder\\:text-\\[rgba\\(101\\,107\\,124\\,0\\.3\\)\\]:focus::placeholder{color:#656b7c4d}.empty\\:focus\\:before\\:pointer-events-none:focus:empty:before{content:var(--tw-content);pointer-events:none}.empty\\:focus\\:before\\:cursor-text:focus:empty:before{content:var(--tw-content);cursor:text}.empty\\:focus\\:before\\:text-gray-text:focus:empty:before{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.empty\\:focus\\:before\\:content-\\[attr\\(data-blok-placeholder-active\\)\\]:focus:empty:before{--tw-content: attr(data-blok-placeholder-active);content:var(--tw-content)}.active\\:cursor-grabbing:active{cursor:grabbing}.group[data-blok-dragging=true] .group-data-\\[blok-dragging\\=true\\]\\:pointer-events-none{pointer-events:none}.group[data-blok-rtl=true] .group-data-\\[blok-rtl\\=true\\]\\:left-\\[calc\\(-1\\*theme\\(width\\.toolbox-btn\\)\\)\\]{left:-26px}.group[data-blok-rtl=true] .group-data-\\[blok-rtl\\=true\\]\\:left-auto{left:auto}.group[data-blok-rtl=true] .group-data-\\[blok-rtl\\=true\\]\\:right-\\[calc\\(-1\\*theme\\(width\\.toolbox-btn\\)\\)\\]{right:-26px}.group[data-blok-rtl=true] .group-data-\\[blok-rtl\\=true\\]\\:right-auto{right:auto}.group[data-blok-dragging=true] .group-data-\\[blok-dragging\\=true\\]\\:cursor-grabbing{cursor:grabbing}.group[data-blok-block-settings-opened=true] .group-data-\\[blok-block-settings-opened\\=true\\]\\:bg-bg-light,.group[data-blok-toolbox-opened=true] .group-data-\\[blok-toolbox-opened\\=true\\]\\:bg-bg-light{--tw-bg-opacity: 1;background-color:rgb(239 242 245 / var(--tw-bg-opacity, 1))}@media(max-width:650px){.mobile\\:absolute{position:absolute}.mobile\\:right-auto{right:auto}.mobile\\:z-\\[2\\]{z-index:2}.mobile\\:hidden{display:none}.mobile\\:h-toolbox-btn-mobile{height:36px}.mobile\\:w-toolbox-btn-mobile{width:36px}.mobile\\:rounded-\\[6px\\]{border-radius:6px}.mobile\\:border{border-width:1px}.mobile\\:border-\\[\\#e8e8eb\\]{--tw-border-opacity: 1;border-color:rgb(232 232 235 / var(--tw-border-opacity, 1))}.mobile\\:bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.mobile\\:p-1{padding:.25rem}.mobile\\:text-\\[15px\\]{font-size:15px}.mobile\\:font-medium{font-weight:500}.mobile\\:shadow-overlay-pane{--tw-shadow: 0 3px 15px -3px rgba(13, 20, 33, .13);--tw-shadow-colored: 0 3px 15px -3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-blok-rtl=true] .mobile\\:group-data-\\[blok-rtl\\=true\\]\\:ml-0{margin-left:0}.group[data-blok-rtl=true] .mobile\\:group-data-\\[blok-rtl\\=true\\]\\:mr-auto{margin-right:auto}.group[data-blok-rtl=true] .mobile\\:group-data-\\[blok-rtl\\=true\\]\\:pl-\\[10px\\]{padding-left:10px}.group[data-blok-rtl=true] .mobile\\:group-data-\\[blok-rtl\\=true\\]\\:pr-0{padding-right:0}}@media(min-width:651px){.not-mobile\\:w-6{width:1.5rem}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:left-0{left:0}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:left-\\[-5px\\]{left:-5px}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:left-\\[calc\\(-1\\*theme\\(spacing\\.narrow-mode-right-padding\\)-5px\\)\\]{left:-55px}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:right-\\[5px\\]{right:5px}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:right-auto{right:auto}.group[data-blok-narrow=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:left-\\[5px\\]{left:5px}.group[data-blok-narrow=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:right-\\[calc\\(-1\\*theme\\(spacing\\.narrow-mode-right-padding\\)-5px\\)\\]{right:-55px}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:ml-\\[theme\\(spacing\\.narrow-mode-right-padding\\)\\]{margin-left:50px}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:mr-0{margin-right:0}.group[data-blok-narrow=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:mr-\\[theme\\(spacing\\.narrow-mode-right-padding\\)\\]{margin-right:50px}}@media(hover:hover){.can-hover\\:hover\\:cursor-grab:hover{cursor:grab}.can-hover\\:hover\\:cursor-pointer:hover{cursor:pointer}.can-hover\\:hover\\:bg-bg-light:hover{--tw-bg-opacity: 1;background-color:rgb(239 242 245 / var(--tw-bg-opacity, 1))}.can-hover\\:hover\\:bg-item-hover-bg:hover{--tw-bg-opacity: 1;background-color:rgb(248 248 248 / var(--tw-bg-opacity, 1))}.group[data-blok-block-settings-opened=true] .group-data-\\[blok-block-settings-opened\\=true\\]\\:can-hover\\:hover\\:cursor-pointer:hover,.group[data-blok-toolbox-opened=true] .group-data-\\[blok-toolbox-opened\\=true\\]\\:can-hover\\:hover\\:cursor-pointer:hover{cursor:pointer}}.\\[\\&\\>p\\:first-of-type\\]\\:mt-0>p:first-of-type{margin-top:0}.\\[\\&\\>p\\:last-of-type\\]\\:mb-0>p:last-of-type{margin-bottom:0}.\\[\\&\\[data-blok-dragging\\=true\\]\\]\\:cursor-grabbing[data-blok-dragging=true]{cursor:grabbing}.\\[\\&\\[data-blok-empty\\=true\\]\\]\\:before\\:pointer-events-none[data-blok-empty=true]:before{content:var(--tw-content);pointer-events:none}.\\[\\&\\[data-blok-empty\\=true\\]\\]\\:before\\:cursor-text[data-blok-empty=true]:before{content:var(--tw-content);cursor:text}.\\[\\&\\[data-blok-empty\\=true\\]\\]\\:before\\:text-gray-text[data-blok-empty=true]:before{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.\\[\\&\\[data-blok-empty\\=true\\]\\]\\:before\\:content-\\[attr\\(data-blok-placeholder\\)\\][data-blok-empty=true]:before{--tw-content: attr(data-blok-placeholder);content:var(--tw-content)}.\\[\\&\\[data-blok-empty\\=true\\]\\]\\:before\\:content-\\[attr\\(data-placeholder\\)\\][data-blok-empty=true]:before{--tw-content: attr(data-placeholder);content:var(--tw-content)}.\\[\\&\\[data-blok-focused\\=\\"true\\"\\]\\]\\:bg-item-focus-bg[data-blok-focused=true]{background-color:#22baff14}.\\[\\&\\[data-blok-force-hover\\]\\]\\:cursor-pointer[data-blok-force-hover]{cursor:pointer}.\\[\\&\\[data-blok-force-hover\\]\\]\\:bg-item-hover-bg[data-blok-force-hover]{--tw-bg-opacity: 1;background-color:rgb(248 248 248 / var(--tw-bg-opacity, 1))}.\\[\\&\\[data-blok-popover-item-active\\]\\]\\:bg-icon-active-bg[data-blok-popover-item-active]{background-color:#388ae51a}.\\[\\&\\[data-blok-popover-item-active\\]\\]\\:text-icon-active-text[data-blok-popover-item-active]{--tw-text-opacity: 1;color:rgb(56 138 229 / var(--tw-text-opacity, 1))}.\\[\\&\\[data-blok-popover-item-no-hover\\]\\]\\:cursor-default[data-blok-popover-item-no-hover]{cursor:default}.\\[\\&\\[data-blok-popover-item-no-hover\\]\\]\\:hover\\:bg-transparent:hover[data-blok-popover-item-no-hover]{background-color:transparent}.\\[\\&\\[data-blok-toolbox-opened\\=true\\]_\\[contentEditable\\=true\\]\\[data-blok-placeholder\\]\\:focus\\]\\:before\\:\\!opacity-0[data-blok-toolbox-opened=true] [contentEditable=true][data-blok-placeholder]:focus:before{content:var(--tw-content);opacity:0!important}.\\[\\&\\[data-empty\\=true\\]\\:focus\\]\\:before\\:pointer-events-none[data-empty=true]:focus:before{content:var(--tw-content);pointer-events:none}.\\[\\&\\[data-empty\\=true\\]\\:focus\\]\\:before\\:cursor-text[data-empty=true]:focus:before{content:var(--tw-content);cursor:text}.\\[\\&\\[data-empty\\=true\\]\\:focus\\]\\:before\\:text-gray-text[data-empty=true]:focus:before{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.\\[\\&\\[data-empty\\=true\\]\\:focus\\]\\:before\\:content-\\[attr\\(data-blok-placeholder-active\\)\\][data-empty=true]:focus:before{--tw-content: attr(data-blok-placeholder-active);content:var(--tw-content)}.\\[\\&\\[data-empty\\=true\\]\\]\\:before\\:pointer-events-none[data-empty=true]:before{content:var(--tw-content);pointer-events:none}.\\[\\&\\[data-empty\\=true\\]\\]\\:before\\:cursor-text[data-empty=true]:before{content:var(--tw-content);cursor:text}.\\[\\&\\[data-empty\\=true\\]\\]\\:before\\:text-gray-text[data-empty=true]:before{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.\\[\\&\\[data-empty\\=true\\]\\]\\:before\\:content-\\[attr\\(data-blok-placeholder-active\\)\\][data-empty=true]:before{--tw-content: attr(data-blok-placeholder-active);content:var(--tw-content)}.\\[\\&_\\:\\:selection\\]\\:bg-selection-inline ::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(212 236 255 / var(--tw-bg-opacity, 1))}.\\[\\&_\\:\\:selection\\]\\:bg-selection-inline ::selection{--tw-bg-opacity: 1;background-color:rgb(212 236 255 / var(--tw-bg-opacity, 1))}.\\[\\&_\\[contenteditable\\]\\:empty\\]\\:after\\:content-\\[\\"\\\\\\\\feff_\\"\\] [contenteditable]:empty:after{--tw-content: "\\\\feff ";content:var(--tw-content)}.\\[\\&_\\[contenteditable\\]\\]\\:select-none [contenteditable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.\\[\\&_\\[data-blok-tool\\=stub\\]\\]\\:opacity-55 [data-blok-tool=stub]{opacity:.55}.\\[\\&_\\[hidden\\]\\]\\:\\!hidden [hidden]{display:none!important}.\\[\\&_a\\]\\:cursor-pointer a{cursor:pointer}.\\[\\&_a\\]\\:text-link a{--tw-text-opacity: 1;color:rgb(56 138 229 / var(--tw-text-opacity, 1))}.\\[\\&_a\\]\\:underline a{text-decoration-line:underline}.\\[\\&_b\\]\\:font-bold b{font-weight:700}.\\[\\&_div\\]\\:\\!m-0 div{margin:0!important}.\\[\\&_div\\]\\:\\!p-0 div{padding:0!important}.\\[\\&_i\\]\\:italic i{font-style:italic}.\\[\\&_img\\]\\:opacity-55 img{opacity:.55}.\\[\\&_p\\]\\:\\!m-0 p{margin:0!important}.\\[\\&_p\\]\\:\\!p-0 p{padding:0!important}.\\[\\&_path\\]\\:stroke-current path{stroke:currentColor}.\\[\\&_svg\\]\\:block svg{display:block}.\\[\\&_svg\\]\\:size-icon svg{width:20px;height:20px}.\\[\\&_svg\\]\\:h-6 svg{height:1.5rem}.\\[\\&_svg\\]\\:h-7 svg{height:1.75rem}.\\[\\&_svg\\]\\:h-icon svg{height:20px}.\\[\\&_svg\\]\\:max-h-full svg{max-height:100%}.\\[\\&_svg\\]\\:w-6 svg{width:1.5rem}.\\[\\&_svg\\]\\:w-7 svg{width:1.75rem}.\\[\\&_svg\\]\\:w-icon svg{width:20px}.\\[\\&_svg\\]\\:text-gray-text svg{--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}@media(max-width:650px){.mobile\\:\\[\\&_svg\\]\\:h-icon-mobile svg{height:28px}.mobile\\:\\[\\&_svg\\]\\:w-icon-mobile svg{width:28px}}`, po = 100;
|
|
11881
|
-
class
|
|
11907
|
+
let be = Wt;
|
|
11908
|
+
const Ai = `*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:PT Mono,Menlo,Monaco,Consolas,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:651px){.\\!container{max-width:651px!important}.container{max-width:651px}}@media(min-width:768px){.\\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\\!container{max-width:1536px!important}.container{max-width:1536px}}.blok-block{padding:3px 2px}.blok-block::-webkit-input-placeholder{line-height:1.5!important}.blok-inline-tool-button{display:flex;height:100%;width:1.75rem;cursor:pointer;align-items:center;justify-content:center;border-radius:.25rem;border-width:0px;background-color:transparent;padding:0;line-height:1.5;--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.blok-inline-tool-button--active{background-color:#388ae51a;--tw-text-opacity: 1;color:rgb(56 138 229 / var(--tw-text-opacity, 1))}.blok-input{width:100%;border-radius:3px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(239 240 241 / var(--tw-border-opacity, 1));padding:.625rem .75rem;--tw-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, .06);--tw-shadow-colored: inset 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}.blok-input[data-blok-placeholder]:before{pointer-events:none;position:static!important;display:inline-block;width:0px;content:var(--tw-content);white-space:nowrap}.blok-loader{position:relative;border-width:1px;--tw-border-opacity: 1;border-color:rgb(239 240 241 / var(--tw-border-opacity, 1))}.blok-loader:before{position:absolute;left:50%;top:50%;margin-left:-11px;margin-top:-11px;height:18px;content:var(--tw-content);width:18px}@keyframes rotation{0%{content:var(--tw-content);transform:rotate(0)}to{content:var(--tw-content);transform:rotate(360deg)}}.blok-loader:before{animation:rotation 1.2s infinite linear;border-radius:9999px;border-width:2px;border-color:rgb(239 240 241 / var(--tw-border-opacity, 1));--tw-border-opacity: 1;border-left-color:rgb(56 138 229 / var(--tw-border-opacity, 1));--tw-content: "";content:var(--tw-content)}.blok-button{cursor:pointer;border-radius:3px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(239 240 241 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:13px;text-align:center;font-size:14.9px;--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1));--tw-shadow: 0 2px 2px 0 rgba(18, 30, 57, .04);--tw-shadow-colored: 0 2px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blok-button:hover{--tw-bg-opacity: 1;background-color:rgb(251 252 254 / var(--tw-bg-opacity, 1));--tw-shadow: 0 1px 3px 0 rgba(18, 30, 57, .08);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blok-button svg{margin-right:.2em;margin-top:-.125rem;height:1.25rem}.blok-settings-button{margin:0;display:inline-flex;min-height:26px;min-width:26px;cursor:pointer;align-items:center;justify-content:center;border-radius:3px;border-width:0px;background-color:transparent;vertical-align:bottom;color:inherit;outline:2px solid transparent;outline-offset:2px}@media(max-width:650px){.blok-settings-button{height:36px;width:36px;border-radius:.5rem}}@media(hover:hover){.blok-settings-button:hover{--tw-bg-opacity: 1;background-color:rgb(239 242 245 / var(--tw-bg-opacity, 1))}}.blok-settings-button svg{height:auto;width:auto}@media(max-width:650px){.blok-settings-button svg{height:28px;width:28px}}.blok-settings-button--active{--tw-text-opacity: 1;color:rgb(56 138 229 / var(--tw-text-opacity, 1))}.blok-settings-button--focused{background-color:#22baff14;--tw-shadow: inset 0 0 0 1px rgba(7, 161, 227, .08);--tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes buttonClicked{0%{transform:scale3d(.95,.95,.95)}60%{transform:scale3d(1.02,1.02,1.02)}80%,to{transform:scaleZ(1)}}.blok-settings-button--focused-animated{animation:buttonClicked .75s cubic-bezier(.215,.61,.355,1) forwards}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-\\[auto_var\\(--offset\\)_calc\\(var\\(--offset\\)\\+env\\(safe-area-inset-bottom\\)\\)_var\\(--offset\\)\\]{inset:auto var(--offset) calc(var(--offset) + env(safe-area-inset-bottom)) var(--offset)}.bottom-0{bottom:0}.bottom-5{bottom:1.25rem}.left-0{left:0}.left-5{left:1.25rem}.left-\\[var\\(--popover-left\\)\\]{left:var(--popover-left)}.left-auto{left:auto}.right-0{right:0}.right-\\[15px\\]{right:15px}.right-full{right:100%}.top-0{top:0}.top-\\[7px\\]{top:7px}.top-\\[var\\(--popover-top\\)\\]{top:var(--popover-top)}.top-auto{top:auto}.z-0{z-index:0}.z-\\[10000\\]{z-index:10000}.z-\\[1\\]{z-index:1}.z-\\[2\\]{z-index:2}.z-\\[3\\]{z-index:3}.z-\\[4\\]{z-index:4}.z-overlay{z-index:999}.\\!m-0{margin:0!important}.-m-px{margin:-1px}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-2\\.5{margin-top:.625rem;margin-bottom:.625rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-\\[-0\\.5em\\]{margin-top:-.5em;margin-bottom:-.5em}.\\!mr-0{margin-right:0!important}.\\!mr-2{margin-right:.5rem!important}.mb-1{margin-bottom:.25rem}.mb-1\\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-\\[30px\\]{margin-bottom:30px}.mb-px{margin-bottom:1px}.ml-3\\.5{margin-left:.875rem}.mr-2{margin-right:.5rem}.mr-auto{margin-right:auto}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\\[15px\\]{margin-top:15px}.mt-\\[2px\\]{margin-top:2px}.mt-\\[3px\\]{margin-top:3px}.mt-\\[5px\\]{margin-top:5px}.box-border{box-sizing:border-box}.\\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\\!hidden{display:none!important}.hidden{display:none}.h-2\\.5{height:.625rem}.h-4{height:1rem}.h-9{height:2.25rem}.h-\\[26px\\]{height:26px}.h-\\[50px\\]{height:50px}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-px{height:1px}.h-toolbox-btn{height:26px}.max-h-0{max-height:0px}.max-h-\\[var\\(--max-height\\)\\]{max-height:var(--max-height)}.max-h-none{max-height:none}.w-2\\.5{width:.625rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-9{width:2.25rem}.w-\\[230px\\]{width:230px}.w-\\[26px\\]{width:26px}.w-\\[var\\(--width\\)\\]{width:var(--width)}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.w-toolbox-btn{width:26px}.min-w-0{min-width:0px}.min-w-\\[calc\\(100\\%-theme\\(\\'spacing\\.6\\'\\)-10px\\)\\]{min-width:calc(100% - 1.5rem - 10px)}.min-w-\\[calc\\(100\\%-var\\(--offset\\)\\*2\\)\\]{min-width:calc(100% - var(--offset) * 2)}.min-w-\\[var\\(--width\\)\\]{min-width:var(--width)}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-\\[130px\\]{max-width:130px}.max-w-content{max-width:650px}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-\\[5px\\]{--tw-translate-x: -5px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-\\[5px\\]{--tw-translate-y: -5px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\\[5px\\]{--tw-translate-x: 5px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\\[5px\\]{--tw-translate-y: 5px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-none{transform:none}@keyframes panelShowingMobile{0%{opacity:0;transform:translateY(14px) scale(.98)}70%{opacity:1;transform:translateY(-4px)}to{transform:translateY(0)}}.animate-\\[panelShowingMobile_250ms_ease\\]{animation:panelShowingMobile .25s ease}@keyframes panelShowing{0%{opacity:0;transform:translateY(-8px) scale(.9)}70%{opacity:1;transform:translateY(2px)}to{transform:translateY(0)}}.animate-\\[panelShowing_100ms_ease\\]{animation:panelShowing .1s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .3s ease forwards}.animate-none{animation:none}@keyframes notifyBounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}.animate-notify-bounce-in{animation:notifyBounceIn .6s 1}@keyframes wobble{0%{transform:translateZ(0)}15%{transform:translate3d(-9%,0,0)}30%{transform:translate3d(9%,0,0)}45%{transform:translate3d(-4%,0,0)}60%{transform:translate3d(4%,0,0)}75%{transform:translate3d(-1%,0,0)}to{transform:translateZ(0)}}.animate-wobble{animation:wobble .4s}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-\\[auto_auto_1fr\\]{grid-template-columns:auto auto 1fr}.grid-rows-\\[auto\\]{grid-template-rows:auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-\\[10px\\]{border-radius:10px}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[4px\\]{border-radius:4px}.rounded-\\[5px\\]{border-radius:5px}.rounded-\\[7px\\]{border-radius:7px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-\\[\\#e8e8eb\\]{--tw-border-opacity: 1;border-color:rgb(232 232 235 / var(--tw-border-opacity, 1))}.border-\\[rgba\\(226\\,226\\,229\\,0\\.2\\)\\],.border-\\[rgba\\(226\\,226\\,229\\,0\\.20\\)\\]{border-color:#e2e2e533}.border-line-gray,.border-popover-border{--tw-border-opacity: 1;border-color:rgb(239 240 241 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.\\!bg-\\[\\#fafffe\\]{--tw-bg-opacity: 1 !important;background-color:rgb(250 255 254 / var(--tw-bg-opacity, 1))!important}.\\!bg-\\[\\#fffbfb\\]{--tw-bg-opacity: 1 !important;background-color:rgb(255 251 251 / var(--tw-bg-opacity, 1))!important}.\\!bg-item-confirm-bg{--tw-bg-opacity: 1 !important;background-color:rgb(226 74 74 / var(--tw-bg-opacity, 1))!important}.\\!bg-item-focus-bg{background-color:#22baff14!important}.bg-\\[\\#34c992\\]{--tw-bg-opacity: 1;background-color:rgb(52 201 146 / var(--tw-bg-opacity, 1))}.bg-\\[\\#F8F8F8\\]{--tw-bg-opacity: 1;background-color:rgb(248 248 248 / var(--tw-bg-opacity, 1))}.bg-\\[\\#eff1f4\\]{--tw-bg-opacity: 1;background-color:rgb(239 241 244 / var(--tw-bg-opacity, 1))}.bg-\\[\\#f2f5f7\\]{--tw-bg-opacity: 1;background-color:rgb(242 245 247 / var(--tw-bg-opacity, 1))}.bg-\\[\\#f7f7f7\\]{--tw-bg-opacity: 1;background-color:rgb(247 247 247 / var(--tw-bg-opacity, 1))}.bg-bg-light{--tw-bg-opacity: 1;background-color:rgb(239 242 245 / var(--tw-bg-opacity, 1))}.bg-dark{--tw-bg-opacity: 1;background-color:rgb(29 32 43 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-item-hover-bg{--tw-bg-opacity: 1;background-color:rgb(248 248 248 / var(--tw-bg-opacity, 1))}.bg-popover-bg{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-popover-border{--tw-bg-opacity: 1;background-color:rgb(239 240 241 / var(--tw-bg-opacity, 1))}.bg-selection{--tw-bg-opacity: 1;background-color:rgb(225 242 255 / var(--tw-bg-opacity, 1))}.bg-selection-highlight{background-color:#2eaadc33}.bg-tooltip-bg{--tw-bg-opacity: 1;background-color:rgb(29 32 43 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-0{padding:0}.p-0\\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-\\[3px\\]{padding:3px}.p-\\[5px\\]{padding:5px}.p-\\[var\\(--item-padding\\)\\]{padding:var(--item-padding)}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-\\[18px\\]{padding-left:18px;padding-right:18px}.px-\\[2px\\]{padding-left:2px;padding-right:2px}.px-\\[30px\\]{padding-left:30px;padding-right:30px}.px-\\[3px\\]{padding-left:3px;padding-right:3px}.py-0{padding-top:0;padding-bottom:0}.py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-\\[0\\.5em\\]{padding-top:.5em;padding-bottom:.5em}.py-\\[13px\\]{padding-top:13px;padding-bottom:13px}.py-\\[3px\\]{padding-top:3px;padding-bottom:3px}.py-\\[5px\\]{padding-top:5px;padding-bottom:5px}.pl-0\\.5{padding-left:.125rem}.pr-1\\.5{padding-right:.375rem}.pr-\\[5px\\]{padding-right:5px}.text-center{text-align:center}.text-right{text-align:right}.text-start{text-align:start}.font-\\[-apple-system\\,BlinkMacSystemFont\\,\\"Segoe_UI\\"\\,\\"Roboto\\"\\,\\"Oxygen\\"\\,\\"Ubuntu\\"\\,\\"Cantarell\\"\\,\\"Fira_Sans\\"\\,\\"Droid_Sans\\"\\,\\"Helvetica_Neue\\"\\,sans-serif\\]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.font-\\[inherit\\]{font-family:inherit}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\\[13px\\]{font-size:13px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.italic{font-style:italic}.\\!leading-\\[1\\.3\\]{line-height:1.3!important}.leading-5{line-height:1.25rem}.leading-\\[1\\.4em\\]{line-height:1.4em}.leading-\\[1\\.6em\\]{line-height:1.6em}.leading-\\[1em\\]{line-height:1em}.leading-\\[22px\\]{line-height:22px}.leading-\\[50px\\]{line-height:50px}.leading-relaxed{line-height:1.625}.tracking-\\[0\\.02em\\]{letter-spacing:.02em}.tracking-\\[0\\.25px\\]{letter-spacing:.25px}.\\!text-white{--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.text-\\[\\#656b7c\\]{--tw-text-opacity: 1;color:rgb(101 107 124 / var(--tw-text-opacity, 1))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-dark{--tw-text-opacity: 1;color:rgb(29 32 43 / var(--tw-text-opacity, 1))}.text-gray-text{--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.text-inherit{color:inherit}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-text-primary{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-text-secondary{--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.text-tooltip-font{--tw-text-opacity: 1;color:rgb(205 209 224 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-current{accent-color:currentColor}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\\[0_11px_17px_0_rgba\\(23\\,32\\,61\\,0\\.13\\)\\]{--tw-shadow: 0 11px 17px 0 rgba(23,32,61,.13);--tw-shadow-colored: 0 11px 17px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\\[0_1px_1px_0_rgba\\(18\\,49\\,35\\,0\\.05\\)\\]{--tw-shadow: 0 1px 1px 0 rgba(18,49,35,.05);--tw-shadow-colored: 0 1px 1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\\[0_2px_1px_0_rgba\\(16\\,19\\,29\\,0\\)\\]{--tw-shadow: 0 2px 1px 0 rgba(16,19,29,0);--tw-shadow-colored: 0 2px 1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\\[0_3px_15px_-3px_theme\\(colors\\.popover-shadow\\)\\]{--tw-shadow: 0 3px 15px -3px rgba(13, 20, 33, .1);--tw-shadow-colored: 0 3px 15px -3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-tooltip{--tw-shadow: 0 8px 12px 0 rgba(29, 32, 43, .17), 0 4px 5px -3px rgba(5, 6, 12, .49);--tw-shadow-colored: 0 8px 12px 0 var(--tw-shadow-color), 0 4px 5px -3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-none{transition-property:none}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-\\[120ms\\]{transition-duration:.12s}.duration-\\[250ms\\]{transition-duration:.25s}.duration-\\[50ms\\,70ms\\]{transition-duration:50ms,70ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\\[opacity\\,left\\,top\\]{will-change:opacity,left,top}.will-change-\\[opacity\\,top\\,left\\]{will-change:opacity,top,left}.will-change-\\[opacity\\,top\\]{will-change:opacity,top}.will-change-\\[opacity\\]{will-change:opacity}.\\[clip\\:rect\\(0\\,0\\,0\\,0\\)\\]{clip:rect(0,0,0,0)}.\\[direction\\:rtl\\]{direction:rtl}[data-blok-navigation-focused=true]{margin-left:auto;margin-right:auto;width:650px;max-width:100%;border-radius:.375rem;background-color:#22baff14}@media(hover:hover){[data-blok-item-name=delete]:hover{--tw-text-opacity: 1;color:rgb(226 74 74 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}}[data-drop-indicator]{position:relative}[data-drop-indicator]:before{pointer-events:none;position:absolute;z-index:10;height:.375rem;width:100%;max-width:650px;border-radius:.125rem;--tw-bg-opacity: 1;background-color:rgb(212 227 252 / var(--tw-bg-opacity, 1));--tw-content: "";content:var(--tw-content);left:50%;margin-left:calc(var(--drop-indicator-depth, 0) * 12px);max-width:calc(650px - var(--drop-indicator-depth, 0) * 24px)}[data-drop-indicator=bottom]:before{bottom:0;transform:translate(-50%) translateY(50%)}[data-drop-indicator=top]:before{top:0;transform:translate(-50%) translateY(-50%)}[data-blok-dragging-multi=true] [data-blok-selected=true]{opacity:.4;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}[data-blok-selected=true] [data-blok-element-content]:has([data-list-style]){background-color:transparent}[data-blok-selected=true] [data-list-style] [role=listitem]{border-radius:4px;--tw-bg-opacity: 1;background-color:rgb(225 242 255 / var(--tw-bg-opacity, 1))}[data-blok-selected=true] [data-list-style] [role=listitem] [contenteditable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.placeholder\\:font-medium::-moz-placeholder{font-weight:500}.placeholder\\:font-medium::placeholder{font-weight:500}.placeholder\\:text-\\[\\#656b7c\\]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(101 107 124 / var(--tw-text-opacity, 1))}.placeholder\\:text-\\[\\#656b7c\\]::placeholder{--tw-text-opacity: 1;color:rgb(101 107 124 / var(--tw-text-opacity, 1))}.placeholder\\:text-gray-text::-moz-placeholder{--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.placeholder\\:text-gray-text::placeholder{--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.before\\:absolute:before{content:var(--tw-content);position:absolute}.before\\:inset-0:before{content:var(--tw-content);inset:0}.before\\:left-0:before{content:var(--tw-content);left:0}.before\\:left-\\[9px\\]:before{content:var(--tw-content);left:9px}.before\\:top-0:before{content:var(--tw-content);top:0}.before\\:top-\\[5px\\]:before{content:var(--tw-content);top:5px}.before\\:-z-10:before{content:var(--tw-content);z-index:-10}.before\\:m-\\[3px\\]:before{content:var(--tw-content);margin:3px}.before\\:block:before{content:var(--tw-content);display:block}.before\\:h-3:before{content:var(--tw-content);height:.75rem}.before\\:h-\\[calc\\(100\\%-6px\\)\\]:before{content:var(--tw-content);height:calc(100% - 6px)}.before\\:w-0\\.5:before{content:var(--tw-content);width:.125rem}.before\\:w-\\[3px\\]:before{content:var(--tw-content);width:3px}.before\\:rotate-\\[-45deg\\]:before{content:var(--tw-content);--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.before\\:rounded-\\[5px\\]:before{content:var(--tw-content);border-radius:5px}.before\\:rounded-lg:before{content:var(--tw-content);border-radius:.5rem}.before\\:\\!bg-\\[\\#41ffb1\\]:before{content:var(--tw-content);--tw-bg-opacity: 1 !important;background-color:rgb(65 255 177 / var(--tw-bg-opacity, 1))!important}.before\\:\\!bg-\\[\\#fb5d5d\\]:before{content:var(--tw-content);--tw-bg-opacity: 1 !important;background-color:rgb(251 93 93 / var(--tw-bg-opacity, 1))!important}.before\\:bg-\\[\\#575d67\\]:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(87 93 103 / var(--tw-bg-opacity, 1))}.before\\:bg-tooltip-bg:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(29 32 43 / var(--tw-bg-opacity, 1))}.before\\:bg-transparent:before{content:var(--tw-content);background-color:transparent}.before\\:content-\\[\\"\\"\\]:before{--tw-content: "";content:var(--tw-content)}.before\\:content-\\[\\\\\\'\\\\\\'\\]:before{--tw-content: \\'\\';content:var(--tw-content)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:left-\\[9px\\]:after{content:var(--tw-content);left:9px}.after\\:top-\\[5px\\]:after{content:var(--tw-content);top:5px}.after\\:mx-3:after{content:var(--tw-content);margin-left:.75rem;margin-right:.75rem}.after\\:h-3:after{content:var(--tw-content);height:.75rem}.after\\:w-0\\.5:after{content:var(--tw-content);width:.125rem}.after\\:rotate-45:after{content:var(--tw-content);--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\\:bg-\\[\\#575d67\\]:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(87 93 103 / var(--tw-bg-opacity, 1))}.after\\:text-\\[\\#ddd\\]:after{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(221 221 221 / var(--tw-text-opacity, 1))}.after\\:content-\\[\\"\\"\\]:after{--tw-content: "";content:var(--tw-content)}.after\\:content-\\[\\'\\|\\'\\]:after{--tw-content: "|";content:var(--tw-content)}.first\\:mt-0:first-child{margin-top:0}.last\\:ml-2\\.5:last-child{margin-left:.625rem}.empty\\:before\\:pointer-events-none:empty:before{content:var(--tw-content);pointer-events:none}.empty\\:before\\:cursor-text:empty:before{content:var(--tw-content);cursor:text}.empty\\:before\\:text-gray-text:empty:before{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.empty\\:before\\:content-\\[attr\\(data-blok-placeholder\\)\\]:empty:before{--tw-content: attr(data-blok-placeholder);content:var(--tw-content)}.empty\\:before\\:content-\\[attr\\(data-blok-placeholder-active\\)\\]:empty:before{--tw-content: attr(data-blok-placeholder-active);content:var(--tw-content)}.empty\\:before\\:content-\\[attr\\(data-placeholder\\)\\]:empty:before{--tw-content: attr(data-placeholder);content:var(--tw-content)}.hover\\:bg-\\[\\#2db583\\]:hover{--tw-bg-opacity: 1;background-color:rgb(45 181 131 / var(--tw-bg-opacity, 1))}.hover\\:bg-\\[\\#e0e4eb\\]:hover{--tw-bg-opacity: 1;background-color:rgb(224 228 235 / var(--tw-bg-opacity, 1))}.hover\\:bg-\\[\\#e9ecee\\]:hover{--tw-bg-opacity: 1;background-color:rgb(233 236 238 / var(--tw-bg-opacity, 1))}.hover\\:opacity-100:hover{opacity:1}.focus\\:placeholder\\:text-\\[rgba\\(101\\,107\\,124\\,0\\.3\\)\\]:focus::-moz-placeholder{color:#656b7c4d}.focus\\:placeholder\\:text-\\[rgba\\(101\\,107\\,124\\,0\\.3\\)\\]:focus::placeholder{color:#656b7c4d}.empty\\:focus\\:before\\:pointer-events-none:focus:empty:before{content:var(--tw-content);pointer-events:none}.empty\\:focus\\:before\\:cursor-text:focus:empty:before{content:var(--tw-content);cursor:text}.empty\\:focus\\:before\\:text-gray-text:focus:empty:before{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.empty\\:focus\\:before\\:content-\\[attr\\(data-blok-placeholder-active\\)\\]:focus:empty:before{--tw-content: attr(data-blok-placeholder-active);content:var(--tw-content)}.active\\:cursor-grabbing:active{cursor:grabbing}.group[data-blok-dragging=true] .group-data-\\[blok-dragging\\=true\\]\\:pointer-events-none{pointer-events:none}.group[data-blok-rtl=true] .group-data-\\[blok-rtl\\=true\\]\\:left-\\[calc\\(-1\\*theme\\(width\\.toolbox-btn\\)\\)\\]{left:-26px}.group[data-blok-rtl=true] .group-data-\\[blok-rtl\\=true\\]\\:left-auto{left:auto}.group[data-blok-rtl=true] .group-data-\\[blok-rtl\\=true\\]\\:right-\\[calc\\(-1\\*theme\\(width\\.toolbox-btn\\)\\)\\]{right:-26px}.group[data-blok-rtl=true] .group-data-\\[blok-rtl\\=true\\]\\:right-auto{right:auto}.group[data-blok-dragging=true] .group-data-\\[blok-dragging\\=true\\]\\:cursor-grabbing{cursor:grabbing}.group[data-blok-block-settings-opened=true] .group-data-\\[blok-block-settings-opened\\=true\\]\\:bg-bg-light,.group[data-blok-toolbox-opened=true] .group-data-\\[blok-toolbox-opened\\=true\\]\\:bg-bg-light{--tw-bg-opacity: 1;background-color:rgb(239 242 245 / var(--tw-bg-opacity, 1))}@media(max-width:650px){.mobile\\:absolute{position:absolute}.mobile\\:right-auto{right:auto}.mobile\\:z-\\[2\\]{z-index:2}.mobile\\:hidden{display:none}.mobile\\:h-toolbox-btn-mobile{height:36px}.mobile\\:w-toolbox-btn-mobile{width:36px}.mobile\\:rounded-\\[6px\\]{border-radius:6px}.mobile\\:border{border-width:1px}.mobile\\:border-\\[\\#e8e8eb\\]{--tw-border-opacity: 1;border-color:rgb(232 232 235 / var(--tw-border-opacity, 1))}.mobile\\:bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.mobile\\:p-1{padding:.25rem}.mobile\\:text-\\[15px\\]{font-size:15px}.mobile\\:font-medium{font-weight:500}.mobile\\:shadow-overlay-pane{--tw-shadow: 0 3px 15px -3px rgba(13, 20, 33, .13);--tw-shadow-colored: 0 3px 15px -3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-blok-rtl=true] .mobile\\:group-data-\\[blok-rtl\\=true\\]\\:ml-0{margin-left:0}.group[data-blok-rtl=true] .mobile\\:group-data-\\[blok-rtl\\=true\\]\\:mr-auto{margin-right:auto}.group[data-blok-rtl=true] .mobile\\:group-data-\\[blok-rtl\\=true\\]\\:pl-\\[10px\\]{padding-left:10px}.group[data-blok-rtl=true] .mobile\\:group-data-\\[blok-rtl\\=true\\]\\:pr-0{padding-right:0}}@media(min-width:651px){.not-mobile\\:w-6{width:1.5rem}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:left-0{left:0}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:left-\\[-5px\\]{left:-5px}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:left-\\[calc\\(-1\\*theme\\(spacing\\.narrow-mode-right-padding\\)-5px\\)\\]{left:-55px}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:right-\\[5px\\]{right:5px}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:right-auto{right:auto}.group[data-blok-narrow=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:left-\\[5px\\]{left:5px}.group[data-blok-narrow=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:right-\\[calc\\(-1\\*theme\\(spacing\\.narrow-mode-right-padding\\)-5px\\)\\]{right:-55px}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:ml-\\[theme\\(spacing\\.narrow-mode-right-padding\\)\\]{margin-left:50px}.group[data-blok-narrow=true][data-blok-rtl=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:group-data-\\[blok-rtl\\=true\\]\\:mr-0{margin-right:0}.group[data-blok-narrow=true] .not-mobile\\:group-data-\\[blok-narrow\\=true\\]\\:mr-\\[theme\\(spacing\\.narrow-mode-right-padding\\)\\]{margin-right:50px}}@media(hover:hover){.can-hover\\:hover\\:cursor-grab:hover{cursor:grab}.can-hover\\:hover\\:cursor-pointer:hover{cursor:pointer}.can-hover\\:hover\\:bg-bg-light:hover{--tw-bg-opacity: 1;background-color:rgb(239 242 245 / var(--tw-bg-opacity, 1))}.can-hover\\:hover\\:bg-item-hover-bg:hover{--tw-bg-opacity: 1;background-color:rgb(248 248 248 / var(--tw-bg-opacity, 1))}.group[data-blok-block-settings-opened=true] .group-data-\\[blok-block-settings-opened\\=true\\]\\:can-hover\\:hover\\:cursor-pointer:hover,.group[data-blok-toolbox-opened=true] .group-data-\\[blok-toolbox-opened\\=true\\]\\:can-hover\\:hover\\:cursor-pointer:hover{cursor:pointer}}.\\[\\&\\>p\\:first-of-type\\]\\:mt-0>p:first-of-type{margin-top:0}.\\[\\&\\>p\\:last-of-type\\]\\:mb-0>p:last-of-type{margin-bottom:0}.\\[\\&\\[data-blok-dragging\\=true\\]\\]\\:cursor-grabbing[data-blok-dragging=true]{cursor:grabbing}.\\[\\&\\[data-blok-empty\\=true\\]\\]\\:before\\:pointer-events-none[data-blok-empty=true]:before{content:var(--tw-content);pointer-events:none}.\\[\\&\\[data-blok-empty\\=true\\]\\]\\:before\\:cursor-text[data-blok-empty=true]:before{content:var(--tw-content);cursor:text}.\\[\\&\\[data-blok-empty\\=true\\]\\]\\:before\\:text-gray-text[data-blok-empty=true]:before{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.\\[\\&\\[data-blok-empty\\=true\\]\\]\\:before\\:content-\\[attr\\(data-blok-placeholder\\)\\][data-blok-empty=true]:before{--tw-content: attr(data-blok-placeholder);content:var(--tw-content)}.\\[\\&\\[data-blok-empty\\=true\\]\\]\\:before\\:content-\\[attr\\(data-placeholder\\)\\][data-blok-empty=true]:before{--tw-content: attr(data-placeholder);content:var(--tw-content)}.\\[\\&\\[data-blok-focused\\=\\"true\\"\\]\\]\\:bg-item-focus-bg[data-blok-focused=true]{background-color:#22baff14}.\\[\\&\\[data-blok-force-hover\\]\\]\\:cursor-pointer[data-blok-force-hover]{cursor:pointer}.\\[\\&\\[data-blok-force-hover\\]\\]\\:bg-item-hover-bg[data-blok-force-hover]{--tw-bg-opacity: 1;background-color:rgb(248 248 248 / var(--tw-bg-opacity, 1))}.\\[\\&\\[data-blok-popover-item-active\\]\\]\\:bg-icon-active-bg[data-blok-popover-item-active]{background-color:#388ae51a}.\\[\\&\\[data-blok-popover-item-active\\]\\]\\:text-icon-active-text[data-blok-popover-item-active]{--tw-text-opacity: 1;color:rgb(56 138 229 / var(--tw-text-opacity, 1))}.\\[\\&\\[data-blok-popover-item-no-hover\\]\\]\\:cursor-default[data-blok-popover-item-no-hover]{cursor:default}.\\[\\&\\[data-blok-popover-item-no-hover\\]\\]\\:hover\\:bg-transparent:hover[data-blok-popover-item-no-hover]{background-color:transparent}.\\[\\&\\[data-blok-toolbox-opened\\=true\\]_\\[contentEditable\\=true\\]\\[data-blok-placeholder\\]\\:focus\\]\\:before\\:\\!opacity-0[data-blok-toolbox-opened=true] [contentEditable=true][data-blok-placeholder]:focus:before{content:var(--tw-content);opacity:0!important}.\\[\\&\\[data-empty\\=true\\]\\:focus\\]\\:before\\:pointer-events-none[data-empty=true]:focus:before{content:var(--tw-content);pointer-events:none}.\\[\\&\\[data-empty\\=true\\]\\:focus\\]\\:before\\:cursor-text[data-empty=true]:focus:before{content:var(--tw-content);cursor:text}.\\[\\&\\[data-empty\\=true\\]\\:focus\\]\\:before\\:text-gray-text[data-empty=true]:focus:before{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.\\[\\&\\[data-empty\\=true\\]\\:focus\\]\\:before\\:content-\\[attr\\(data-blok-placeholder-active\\)\\][data-empty=true]:focus:before{--tw-content: attr(data-blok-placeholder-active);content:var(--tw-content)}.\\[\\&\\[data-empty\\=true\\]\\]\\:before\\:pointer-events-none[data-empty=true]:before{content:var(--tw-content);pointer-events:none}.\\[\\&\\[data-empty\\=true\\]\\]\\:before\\:cursor-text[data-empty=true]:before{content:var(--tw-content);cursor:text}.\\[\\&\\[data-empty\\=true\\]\\]\\:before\\:text-gray-text[data-empty=true]:before{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}.\\[\\&\\[data-empty\\=true\\]\\]\\:before\\:content-\\[attr\\(data-blok-placeholder-active\\)\\][data-empty=true]:before{--tw-content: attr(data-blok-placeholder-active);content:var(--tw-content)}.\\[\\&_\\:\\:selection\\]\\:bg-selection-inline ::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(212 236 255 / var(--tw-bg-opacity, 1))}.\\[\\&_\\:\\:selection\\]\\:bg-selection-inline ::selection{--tw-bg-opacity: 1;background-color:rgb(212 236 255 / var(--tw-bg-opacity, 1))}.\\[\\&_\\[contenteditable\\]\\:empty\\]\\:after\\:content-\\[\\"\\\\\\\\feff_\\"\\] [contenteditable]:empty:after{--tw-content: "\\\\feff ";content:var(--tw-content)}.\\[\\&_\\[contenteditable\\]\\]\\:select-none [contenteditable]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.\\[\\&_\\[data-blok-tool\\=stub\\]\\]\\:opacity-55 [data-blok-tool=stub]{opacity:.55}.\\[\\&_\\[hidden\\]\\]\\:\\!hidden [hidden]{display:none!important}.\\[\\&_a\\]\\:cursor-pointer a{cursor:pointer}.\\[\\&_a\\]\\:text-link a{--tw-text-opacity: 1;color:rgb(56 138 229 / var(--tw-text-opacity, 1))}.\\[\\&_a\\]\\:underline a{text-decoration-line:underline}.\\[\\&_b\\]\\:font-bold b{font-weight:700}.\\[\\&_div\\]\\:\\!m-0 div{margin:0!important}.\\[\\&_div\\]\\:\\!p-0 div{padding:0!important}.\\[\\&_i\\]\\:italic i{font-style:italic}.\\[\\&_img\\]\\:opacity-55 img{opacity:.55}.\\[\\&_p\\]\\:\\!m-0 p{margin:0!important}.\\[\\&_p\\]\\:\\!p-0 p{padding:0!important}.\\[\\&_path\\]\\:stroke-current path{stroke:currentColor}.\\[\\&_svg\\]\\:block svg{display:block}.\\[\\&_svg\\]\\:size-icon svg{width:20px;height:20px}.\\[\\&_svg\\]\\:h-6 svg{height:1.5rem}.\\[\\&_svg\\]\\:h-7 svg{height:1.75rem}.\\[\\&_svg\\]\\:h-icon svg{height:20px}.\\[\\&_svg\\]\\:max-h-full svg{max-height:100%}.\\[\\&_svg\\]\\:w-6 svg{width:1.5rem}.\\[\\&_svg\\]\\:w-7 svg{width:1.75rem}.\\[\\&_svg\\]\\:w-icon svg{width:20px}.\\[\\&_svg\\]\\:text-gray-text svg{--tw-text-opacity: 1;color:rgb(112 118 132 / var(--tw-text-opacity, 1))}@media(max-width:650px){.mobile\\:\\[\\&_svg\\]\\:h-icon-mobile svg{height:28px}.mobile\\:\\[\\&_svg\\]\\:w-icon-mobile svg{width:28px}}`, fo = 100;
|
|
11909
|
+
class Mi extends T {
|
|
11882
11910
|
constructor() {
|
|
11883
|
-
super(...arguments), this.isMobile = !1, this.contentRectCache = null, this.resizeDebouncer =
|
|
11911
|
+
super(...arguments), this.isMobile = !1, this.contentRectCache = null, this.resizeDebouncer = We(() => {
|
|
11884
11912
|
this.windowResize();
|
|
11885
|
-
}, 200), this.selectionChangeDebounced =
|
|
11913
|
+
}, 200), this.selectionChangeDebounced = We(() => {
|
|
11886
11914
|
this.selectionChanged();
|
|
11887
|
-
},
|
|
11915
|
+
}, mn), this.documentTouchedListener = (t) => {
|
|
11888
11916
|
this.documentTouched(t);
|
|
11889
11917
|
};
|
|
11890
11918
|
}
|
|
@@ -11906,7 +11934,7 @@ class Ai extends T {
|
|
|
11906
11934
|
* Making main interface
|
|
11907
11935
|
*/
|
|
11908
11936
|
async prepare() {
|
|
11909
|
-
this.setIsMobile(), this.make(), this.loadStyles(),
|
|
11937
|
+
this.setIsMobile(), this.make(), this.loadStyles(), ti();
|
|
11910
11938
|
}
|
|
11911
11939
|
/**
|
|
11912
11940
|
* Toggle read-only state
|
|
@@ -11958,7 +11986,7 @@ class Ai extends T {
|
|
|
11958
11986
|
* Clean blok`s UI
|
|
11959
11987
|
*/
|
|
11960
11988
|
destroy() {
|
|
11961
|
-
this.nodes.holder.innerHTML = "", this.unbindReadOnlyInsensitiveListeners(),
|
|
11989
|
+
this.nodes.holder.innerHTML = "", this.unbindReadOnlyInsensitiveListeners(), ei();
|
|
11962
11990
|
}
|
|
11963
11991
|
/**
|
|
11964
11992
|
* Close all Blok's toolbars
|
|
@@ -11971,7 +11999,7 @@ class Ai extends T {
|
|
|
11971
11999
|
* Check for mobile mode and save the result
|
|
11972
12000
|
*/
|
|
11973
12001
|
setIsMobile() {
|
|
11974
|
-
const t = window.innerWidth <
|
|
12002
|
+
const t = window.innerWidth < gn;
|
|
11975
12003
|
t !== this.isMobile && this.eventsDispatcher.emit(yt, {
|
|
11976
12004
|
isEnabled: this.isMobile
|
|
11977
12005
|
}), this.isMobile = t;
|
|
@@ -11997,7 +12025,7 @@ class Ai extends T {
|
|
|
11997
12025
|
// Hide placeholder when toolbox is opened
|
|
11998
12026
|
"[&[data-blok-toolbox-opened=true]_[contentEditable=true][data-blok-placeholder]:focus]:before:!opacity-0",
|
|
11999
12027
|
...this.isRtl ? ["[direction:rtl]"] : []
|
|
12000
|
-
]), this.nodes.wrapper.setAttribute(m.interface,
|
|
12028
|
+
]), this.nodes.wrapper.setAttribute(m.interface, un), this.nodes.wrapper.setAttribute(m.editor, ""), this.nodes.wrapper.setAttribute("data-blok-testid", "blok-editor"), this.isRtl && this.nodes.wrapper.setAttribute(m.rtl, "true"), this.nodes.redactor = g.make("div", [
|
|
12001
12029
|
// Narrow mode: add right margin on non-mobile screens
|
|
12002
12030
|
"not-mobile:group-data-[blok-narrow=true]:mr-[theme(spacing.narrow-mode-right-padding)]",
|
|
12003
12031
|
// RTL narrow mode: add left margin instead
|
|
@@ -12016,7 +12044,7 @@ class Ai extends T {
|
|
|
12016
12044
|
return;
|
|
12017
12045
|
const e = g.make("style", null, {
|
|
12018
12046
|
id: t,
|
|
12019
|
-
textContent:
|
|
12047
|
+
textContent: Ai.toString()
|
|
12020
12048
|
});
|
|
12021
12049
|
this.config.style && !N(this.config.style) && this.config.style.nonce && e.setAttribute("nonce", this.config.style.nonce), g.prepend(document.head, e);
|
|
12022
12050
|
}
|
|
@@ -12058,19 +12086,19 @@ class Ai extends T {
|
|
|
12058
12086
|
watchBlockHoveredEvents() {
|
|
12059
12087
|
const t = {
|
|
12060
12088
|
lastHoveredBlockId: null
|
|
12061
|
-
}, o =
|
|
12089
|
+
}, o = ne(
|
|
12062
12090
|
(n) => {
|
|
12063
12091
|
var l;
|
|
12064
|
-
if (!(n instanceof MouseEvent))
|
|
12092
|
+
if (typeof MouseEvent == "undefined" || !(n instanceof MouseEvent))
|
|
12065
12093
|
return;
|
|
12066
12094
|
const s = (l = n.target) == null ? void 0 : l.closest('[data-blok-testid="block-wrapper"]'), i = s ? null : this.findBlockInHoverZone(n.clientX, n.clientY);
|
|
12067
|
-
if (i !== null && t.lastHoveredBlockId !== i.id && (t.lastHoveredBlockId = i.id, this.eventsDispatcher.emit(
|
|
12095
|
+
if (i !== null && t.lastHoveredBlockId !== i.id && (t.lastHoveredBlockId = i.id, this.eventsDispatcher.emit(ce, {
|
|
12068
12096
|
block: i,
|
|
12069
12097
|
target: i.holder
|
|
12070
12098
|
})), i !== null || !s)
|
|
12071
12099
|
return;
|
|
12072
12100
|
const r = this.Blok.BlockManager.getBlockByChildNode(s);
|
|
12073
|
-
r && t.lastHoveredBlockId !== r.id && (t.lastHoveredBlockId = r.id, this.eventsDispatcher.emit(
|
|
12101
|
+
r && t.lastHoveredBlockId !== r.id && (t.lastHoveredBlockId = r.id, this.eventsDispatcher.emit(ce, {
|
|
12074
12102
|
block: r,
|
|
12075
12103
|
target: n.target
|
|
12076
12104
|
}));
|
|
@@ -12092,7 +12120,7 @@ class Ai extends T {
|
|
|
12092
12120
|
*/
|
|
12093
12121
|
findBlockInHoverZone(t, e) {
|
|
12094
12122
|
const o = this.contentRect;
|
|
12095
|
-
if (!(this.isRtl ? t > o.right && t <= o.right +
|
|
12123
|
+
if (!(this.isRtl ? t > o.right && t <= o.right + fo : t < o.left && t >= o.left - fo))
|
|
12096
12124
|
return null;
|
|
12097
12125
|
for (const s of this.Blok.BlockManager.blocks) {
|
|
12098
12126
|
const i = s.holder.getBoundingClientRect();
|
|
@@ -12190,6 +12218,10 @@ class Ai extends T {
|
|
|
12190
12218
|
this.Blok.BlockSelection.disableNavigationMode(!1);
|
|
12191
12219
|
return;
|
|
12192
12220
|
}
|
|
12221
|
+
if (this.Blok.BlockSettings.opened) {
|
|
12222
|
+
this.Blok.BlockSettings.close();
|
|
12223
|
+
return;
|
|
12224
|
+
}
|
|
12193
12225
|
if (this.Blok.BlockSelection.anyBlockSelected) {
|
|
12194
12226
|
this.Blok.BlockSelection.clearSelection(t);
|
|
12195
12227
|
return;
|
|
@@ -12198,10 +12230,6 @@ class Ai extends T {
|
|
|
12198
12230
|
this.Blok.Toolbar.toolbox.close(), this.Blok.BlockManager.currentBlock && this.Blok.Caret.setToBlock(this.Blok.BlockManager.currentBlock, this.Blok.Caret.positions.END);
|
|
12199
12231
|
return;
|
|
12200
12232
|
}
|
|
12201
|
-
if (this.Blok.BlockSettings.opened) {
|
|
12202
|
-
this.Blok.BlockSettings.close();
|
|
12203
|
-
return;
|
|
12204
|
-
}
|
|
12205
12233
|
if (this.Blok.InlineToolbar.opened && this.Blok.InlineToolbar.hasNestedPopoverOpen) {
|
|
12206
12234
|
t.preventDefault(), t.stopPropagation(), t.stopImmediatePropagation(), this.Blok.InlineToolbar.closeNestedPopover();
|
|
12207
12235
|
return;
|
|
@@ -12308,8 +12336,8 @@ class Ai extends T {
|
|
|
12308
12336
|
const s = e.getAttribute("href");
|
|
12309
12337
|
if (!s)
|
|
12310
12338
|
return;
|
|
12311
|
-
const i =
|
|
12312
|
-
|
|
12339
|
+
const i = pn(s);
|
|
12340
|
+
fn(i);
|
|
12313
12341
|
}
|
|
12314
12342
|
/**
|
|
12315
12343
|
* Check if user clicks on the Blok's bottom zone:
|
|
@@ -12358,12 +12386,12 @@ class Ai extends T {
|
|
|
12358
12386
|
enableInputsEmptyMark() {
|
|
12359
12387
|
const t = (e) => {
|
|
12360
12388
|
const o = e.target;
|
|
12361
|
-
|
|
12389
|
+
mo(o);
|
|
12362
12390
|
};
|
|
12363
12391
|
this.readOnlyMutableListeners.on(this.nodes.wrapper, "input", t), this.readOnlyMutableListeners.on(this.nodes.wrapper, "focusin", t), this.readOnlyMutableListeners.on(this.nodes.wrapper, "focusout", t);
|
|
12364
12392
|
}
|
|
12365
12393
|
}
|
|
12366
|
-
const
|
|
12394
|
+
const Di = 30, Li = 200, Oi = 100, rt = class rt extends T {
|
|
12367
12395
|
constructor() {
|
|
12368
12396
|
super(...arguments), this.undoStack = [], this.redoStack = [], this.registeredShortcuts = [], this.debounceTimeout = null, this.isPerformingUndoRedo = !1, this.initialStateCaptured = !1;
|
|
12369
12397
|
}
|
|
@@ -12372,14 +12400,14 @@ const Mi = 30, Di = 200, Li = 100, rt = class rt extends T {
|
|
|
12372
12400
|
*/
|
|
12373
12401
|
get maxHistoryLength() {
|
|
12374
12402
|
var t;
|
|
12375
|
-
return (t = this.config.maxHistoryLength) != null ? t :
|
|
12403
|
+
return (t = this.config.maxHistoryLength) != null ? t : Di;
|
|
12376
12404
|
}
|
|
12377
12405
|
/**
|
|
12378
12406
|
* Debounce time for batching changes
|
|
12379
12407
|
*/
|
|
12380
12408
|
get debounceTime() {
|
|
12381
12409
|
var t;
|
|
12382
|
-
return (t = this.config.historyDebounceTime) != null ? t :
|
|
12410
|
+
return (t = this.config.historyDebounceTime) != null ? t : Li;
|
|
12383
12411
|
}
|
|
12384
12412
|
/**
|
|
12385
12413
|
* Whether to use document-level shortcuts for undo/redo
|
|
@@ -12689,7 +12717,7 @@ const Mi = 30, Di = 200, Li = 100, rt = class rt extends T {
|
|
|
12689
12717
|
* This helps ignore late-firing events after state restore
|
|
12690
12718
|
*/
|
|
12691
12719
|
cooldown() {
|
|
12692
|
-
return new Promise((t) => setTimeout(t,
|
|
12720
|
+
return new Promise((t) => setTimeout(t, Oi));
|
|
12693
12721
|
}
|
|
12694
12722
|
/**
|
|
12695
12723
|
* Captures current caret position for later restoration
|
|
@@ -12874,7 +12902,7 @@ const Mi = 30, Di = 200, Li = 100, rt = class rt extends T {
|
|
|
12874
12902
|
* Emits history state changed event
|
|
12875
12903
|
*/
|
|
12876
12904
|
emitStateChanged() {
|
|
12877
|
-
this.eventsDispatcher.emit(
|
|
12905
|
+
this.eventsDispatcher.emit(Cn, {
|
|
12878
12906
|
canUndo: this.canUndo(),
|
|
12879
12907
|
canRedo: this.canRedo()
|
|
12880
12908
|
});
|
|
@@ -12891,61 +12919,61 @@ const Mi = 30, Di = 200, Li = 100, rt = class rt extends T {
|
|
|
12891
12919
|
}
|
|
12892
12920
|
};
|
|
12893
12921
|
rt.activeInstance = null;
|
|
12894
|
-
let
|
|
12895
|
-
const
|
|
12922
|
+
let ke = rt;
|
|
12923
|
+
const Ni = {
|
|
12896
12924
|
// API Modules
|
|
12897
12925
|
BlocksAPI: In,
|
|
12898
|
-
CaretAPI:
|
|
12899
|
-
EventsAPI:
|
|
12900
|
-
I18nAPI:
|
|
12901
|
-
API:
|
|
12902
|
-
InlineToolbarAPI:
|
|
12903
|
-
ListenersAPI:
|
|
12904
|
-
NotifierAPI:
|
|
12905
|
-
ReadOnlyAPI:
|
|
12906
|
-
SanitizerAPI:
|
|
12907
|
-
SaverAPI:
|
|
12908
|
-
SelectionAPI:
|
|
12909
|
-
ToolsAPI:
|
|
12910
|
-
StylesAPI:
|
|
12911
|
-
ToolbarAPI:
|
|
12912
|
-
TooltipAPI:
|
|
12913
|
-
UiAPI:
|
|
12914
|
-
HistoryAPI:
|
|
12926
|
+
CaretAPI: An,
|
|
12927
|
+
EventsAPI: Mn,
|
|
12928
|
+
I18nAPI: Dn,
|
|
12929
|
+
API: Ln,
|
|
12930
|
+
InlineToolbarAPI: On,
|
|
12931
|
+
ListenersAPI: Nn,
|
|
12932
|
+
NotifierAPI: Pn,
|
|
12933
|
+
ReadOnlyAPI: Hn,
|
|
12934
|
+
SanitizerAPI: ts,
|
|
12935
|
+
SaverAPI: es,
|
|
12936
|
+
SelectionAPI: os,
|
|
12937
|
+
ToolsAPI: ns,
|
|
12938
|
+
StylesAPI: ss,
|
|
12939
|
+
ToolbarAPI: is,
|
|
12940
|
+
TooltipAPI: gs,
|
|
12941
|
+
UiAPI: ms,
|
|
12942
|
+
HistoryAPI: bs,
|
|
12915
12943
|
// Toolbar Modules
|
|
12916
12944
|
BlockSettings: Is,
|
|
12917
|
-
Toolbar:
|
|
12918
|
-
InlineToolbar:
|
|
12945
|
+
Toolbar: Os,
|
|
12946
|
+
InlineToolbar: Rs,
|
|
12919
12947
|
// Modules
|
|
12920
|
-
I18n:
|
|
12921
|
-
BlockEvents:
|
|
12922
|
-
BlockManager:
|
|
12923
|
-
BlockSelection:
|
|
12924
|
-
Caret:
|
|
12925
|
-
CrossBlockSelection:
|
|
12926
|
-
DragManager:
|
|
12927
|
-
ModificationsObserver:
|
|
12928
|
-
Paste:
|
|
12929
|
-
ReadOnly:
|
|
12930
|
-
RectangleSelection:
|
|
12931
|
-
Renderer:
|
|
12932
|
-
Saver:
|
|
12933
|
-
Tools:
|
|
12934
|
-
UI:
|
|
12935
|
-
History:
|
|
12948
|
+
I18n: Ks,
|
|
12949
|
+
BlockEvents: pe,
|
|
12950
|
+
BlockManager: oi,
|
|
12951
|
+
BlockSelection: ni,
|
|
12952
|
+
Caret: Me,
|
|
12953
|
+
CrossBlockSelection: ri,
|
|
12954
|
+
DragManager: ai,
|
|
12955
|
+
ModificationsObserver: li,
|
|
12956
|
+
Paste: fe,
|
|
12957
|
+
ReadOnly: ci,
|
|
12958
|
+
RectangleSelection: di,
|
|
12959
|
+
Renderer: xi,
|
|
12960
|
+
Saver: Ti,
|
|
12961
|
+
Tools: be,
|
|
12962
|
+
UI: Mi,
|
|
12963
|
+
History: ke
|
|
12936
12964
|
};
|
|
12937
|
-
class
|
|
12965
|
+
class Ri {
|
|
12938
12966
|
/**
|
|
12939
12967
|
* @param {BlokConfig} config - user configuration
|
|
12940
12968
|
*/
|
|
12941
12969
|
constructor(t) {
|
|
12942
|
-
this.moduleInstances = {}, this.eventsDispatcher = new
|
|
12970
|
+
this.moduleInstances = {}, this.eventsDispatcher = new Ct(), this.config = {}, this.isReady = new Promise((e, o) => {
|
|
12943
12971
|
Promise.resolve().then(async () => {
|
|
12944
12972
|
this.configuration = t, this.validate(), this.init(), await this.start(), await this.render();
|
|
12945
12973
|
const { BlockManager: n, Caret: s, UI: i, ModificationsObserver: r, History: l } = this.moduleInstances;
|
|
12946
12974
|
i.checkEmptiness(), r.enable(), await l.captureInitialState(), this.configuration.autofocus === !0 && this.configuration.readOnly !== !0 && s.setToBlock(n.blocks[0], s.positions.START), e();
|
|
12947
12975
|
}).catch((n) => {
|
|
12948
|
-
|
|
12976
|
+
I(`Blok is not ready because of ${n}`, "error"), o(n);
|
|
12949
12977
|
});
|
|
12950
12978
|
});
|
|
12951
12979
|
}
|
|
@@ -12957,10 +12985,10 @@ class Ni {
|
|
|
12957
12985
|
var l, c, d, h;
|
|
12958
12986
|
A(t) ? this.config = w({}, t) : this.config = {
|
|
12959
12987
|
holder: t
|
|
12960
|
-
}, this.config.holder == null && (this.config.holder = "blok"), this.config.logLevel == null && (this.config.logLevel =
|
|
12988
|
+
}, this.config.holder == null && (this.config.holder = "blok"), this.config.logLevel == null && (this.config.logLevel = bn.VERBOSE), kn(this.config.logLevel), this.config.defaultBlock = (l = this.config.defaultBlock) != null ? l : "paragraph";
|
|
12961
12989
|
const e = this.config.tools, o = this.config.defaultBlock, n = e != null && Object.prototype.hasOwnProperty.call(e, o != null ? o : ""), s = (c = this.config.data) == null ? void 0 : c.blocks, i = Array.isArray(s) && s.length > 0;
|
|
12962
12990
|
if (o && o !== "paragraph" && !n && !i) {
|
|
12963
|
-
|
|
12991
|
+
I(
|
|
12964
12992
|
`Default block "${o}" is not configured. Falling back to "paragraph" tool.`,
|
|
12965
12993
|
"warn"
|
|
12966
12994
|
), this.config.defaultBlock = "paragraph";
|
|
@@ -13026,7 +13054,7 @@ class Ni {
|
|
|
13026
13054
|
} catch (n) {
|
|
13027
13055
|
if (n instanceof bt)
|
|
13028
13056
|
throw new Error(n.message);
|
|
13029
|
-
|
|
13057
|
+
I(`Module ${o} was skipped because of %o`, "warn", n);
|
|
13030
13058
|
}
|
|
13031
13059
|
}),
|
|
13032
13060
|
Promise.resolve()
|
|
@@ -13047,14 +13075,14 @@ class Ni {
|
|
|
13047
13075
|
* Make modules instances and save it to the @property this.moduleInstances
|
|
13048
13076
|
*/
|
|
13049
13077
|
constructModules() {
|
|
13050
|
-
Object.entries(
|
|
13078
|
+
Object.entries(Ni).forEach(([t, e]) => {
|
|
13051
13079
|
try {
|
|
13052
13080
|
this.moduleInstances[t] = new e({
|
|
13053
13081
|
config: this.configuration,
|
|
13054
13082
|
eventsDispatcher: this.eventsDispatcher
|
|
13055
13083
|
});
|
|
13056
13084
|
} catch (o) {
|
|
13057
|
-
|
|
13085
|
+
I(`[constructModules] Module ${t} skipped because`, "error", o);
|
|
13058
13086
|
}
|
|
13059
13087
|
});
|
|
13060
13088
|
}
|
|
@@ -13111,10 +13139,10 @@ class Ni {
|
|
|
13111
13139
|
return e;
|
|
13112
13140
|
}
|
|
13113
13141
|
}
|
|
13114
|
-
const
|
|
13142
|
+
const _i = _t(), vt = class vt {
|
|
13115
13143
|
/** Blok version */
|
|
13116
13144
|
static get version() {
|
|
13117
|
-
return
|
|
13145
|
+
return _t();
|
|
13118
13146
|
}
|
|
13119
13147
|
/**
|
|
13120
13148
|
* @param {BlokConfig|string|undefined} [configuration] - user configuration
|
|
@@ -13122,7 +13150,7 @@ const Fi = zt(), vt = class vt {
|
|
|
13122
13150
|
constructor(t) {
|
|
13123
13151
|
this.initialConfiguration = A(t) ? w({}, t) : t;
|
|
13124
13152
|
const e = A(t) && E(t.onReady) ? t.onReady : () => {
|
|
13125
|
-
}, o = new
|
|
13153
|
+
}, o = new Ri(t);
|
|
13126
13154
|
this.destroy = () => {
|
|
13127
13155
|
}, this.isReady = o.isReady.then(() => {
|
|
13128
13156
|
this.exportAPI(o), e();
|
|
@@ -13141,7 +13169,7 @@ const Fi = zt(), vt = class vt {
|
|
|
13141
13169
|
E(k.destroy) && k.destroy();
|
|
13142
13170
|
const B = k.listeners;
|
|
13143
13171
|
B && E(B.removeAll) && B.removeAll();
|
|
13144
|
-
}),
|
|
13172
|
+
}), fs();
|
|
13145
13173
|
for (const k in this)
|
|
13146
13174
|
Object.prototype.hasOwnProperty.call(this, k) && delete this[k];
|
|
13147
13175
|
Object.setPrototypeOf(this, null);
|
|
@@ -13209,9 +13237,9 @@ const Fi = zt(), vt = class vt {
|
|
|
13209
13237
|
}
|
|
13210
13238
|
};
|
|
13211
13239
|
vt.DATA_ATTR = m;
|
|
13212
|
-
let
|
|
13240
|
+
let go = vt;
|
|
13213
13241
|
export {
|
|
13214
|
-
|
|
13215
|
-
|
|
13216
|
-
|
|
13242
|
+
go as B,
|
|
13243
|
+
Fi as e,
|
|
13244
|
+
_i as v
|
|
13217
13245
|
};
|