@jackuait/blok 0.4.1-beta.11 → 0.4.1-beta.12
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-BU6NwVkN.mjs} +423 -401
- package/dist/chunks/{i18next-loader-BdNRw4n4.mjs → i18next-loader-D8GzSwio.mjs} +1 -1
- package/dist/chunks/{index-DHgXmfki.mjs → index-C5e_WLFg.mjs} +1 -1
- package/dist/chunks/{inline-tool-convert-CRqgjRim.mjs → inline-tool-convert-CLUxkCe_.mjs} +2 -1
- package/dist/full.mjs +2 -2
- package/dist/tools.mjs +16 -7
- package/package.json +1 -1
- 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 +1 -1
- package/src/components/ui/toolbox.ts +14 -5
- 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 +11 -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
1
|
var _o = Object.defineProperty, zo = Object.defineProperties;
|
|
2
2
|
var Uo = 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 ? _o(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
12
|
}, R = (a, t) => zo(a, Uo(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 Ko, a as g, b as
|
|
22
|
+
import { i as N, g as Ko, a as g, b as ve, c as E, l as I, S as y, d as Wo, e as $o, D as m, t as C, f as j, h as go, P as O, j as Ht, k as V, m as A, n as Bt, o as ht, p as mo, q as nt, T as Yt, r as Ft, s as v, I as jo, u as Yo, v as ct, w as oe, x as Vo, y as Xo, z as qo, A as bo, B as Zo, C as ko, E as vo, F as Go, G as _e, H as Jo, J as Qo, K as tn, L as Be, M as ze, N as en, O as Ue, Q as Ke, R as on, U as nn, V as sn, W as rn, X as an, Y as ne, Z as _t, _ as ln, $ as cn, a0 as dn, a1 as We, a2 as hn, a3 as un, a4 as pn, a5 as fn, a6 as gn, a7 as mn, a8 as bn } from "./inline-tool-convert-CLUxkCe_.mjs";
|
|
23
23
|
function kn(a) {
|
|
24
24
|
return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, "default") ? a.default : a;
|
|
25
25
|
}
|
|
26
|
-
var Vt,
|
|
26
|
+
var Vt, $e;
|
|
27
27
|
function vn() {
|
|
28
|
-
if (
|
|
29
|
-
|
|
28
|
+
if ($e) return Vt;
|
|
29
|
+
$e = 1;
|
|
30
30
|
function a() {
|
|
31
31
|
}
|
|
32
32
|
return Vt = Object.assign(a, {
|
|
@@ -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 Bn = globalThis.setTimeout.bind(globalThis), wn = globalThis.clearTimeout.bind(globalThis),
|
|
48
|
+
const Bn = globalThis.setTimeout.bind(globalThis), wn = globalThis.clearTimeout.bind(globalThis), zt = /* @__PURE__ */ new Map(), yn = (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
53
|
const t = Date.now(), e = {}, o = Bn(() => {
|
|
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
61
|
}, 1), n = yn(o);
|
|
62
|
-
return e.value = n,
|
|
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), wn(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
|
}
|
|
@@ -244,7 +244,7 @@ const xn = function(t) {
|
|
|
244
244
|
}
|
|
245
245
|
}), this;
|
|
246
246
|
}, q = xn;
|
|
247
|
-
class
|
|
247
|
+
class It {
|
|
248
248
|
constructor() {
|
|
249
249
|
this.allListeners = [];
|
|
250
250
|
}
|
|
@@ -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
|
|
@@ -462,9 +462,9 @@ class T {
|
|
|
462
462
|
const Tn = (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", Bo = "fake cursor is about to be toggled", wo = "fake cursor have been set", yt = "blok mobile layout toggled", ie = "block-settings-opened", re = "block-settings-closed", Sn = "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)
|
|
@@ -887,7 +887,7 @@ 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
893
|
!e && !o || ((n = this.blokEventBus) == null || n.emit(Bo, { state: t }), e && y.addFakeCursor(), o && y.removeFakeCursor(this.holder), (s = this.blokEventBus) == null || s.emit(wo, { state: t }));
|
|
@@ -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);
|
|
@@ -1023,7 +1023,7 @@ const U = class U extends It {
|
|
|
1023
1023
|
return;
|
|
1024
1024
|
const s = o.filter((i) => Tn(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;
|
|
@@ -1079,7 +1079,7 @@ U.styles = {
|
|
|
1079
1079
|
contentStretched: "max-w-none"
|
|
1080
1080
|
};
|
|
1081
1081
|
let xt = U;
|
|
1082
|
-
class
|
|
1082
|
+
class Cn extends T {
|
|
1083
1083
|
constructor() {
|
|
1084
1084
|
super(...arguments), this.insert = (t, e = {}, o = {}, n, s, i, r) => {
|
|
1085
1085
|
const l = t != null ? t : this.config.defaultBlock, c = this.Blok.BlockManager.insert({
|
|
@@ -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
|
|
1294
|
+
const In = (a, t) => typeof a == "number" ? t.BlockManager.getBlockByIndex(a) : typeof a == "string" ? t.BlockManager.getBlockById(a) : t.BlockManager.getBlockById(a.id);
|
|
1295
1295
|
class En 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 = In(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
|
}
|
|
@@ -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-C5e_WLFg.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.');
|
|
@@ -1555,7 +1555,7 @@ class Pn extends T {
|
|
|
1555
1555
|
return this.Blok.ReadOnly.isEnabled;
|
|
1556
1556
|
}
|
|
1557
1557
|
}
|
|
1558
|
-
var
|
|
1558
|
+
var Ot = { exports: {} }, Hn = Ot.exports, je;
|
|
1559
1559
|
function Fn() {
|
|
1560
1560
|
return je || (je = 1, (function(a, t) {
|
|
1561
1561
|
(function(e, o) {
|
|
@@ -1633,40 +1633,40 @@ function Fn() {
|
|
|
1633
1633
|
}
|
|
1634
1634
|
return e;
|
|
1635
1635
|
});
|
|
1636
|
-
})(
|
|
1636
|
+
})(Ot)), Ot.exports;
|
|
1637
1637
|
}
|
|
1638
1638
|
var _n = Fn();
|
|
1639
|
-
const zn = /* @__PURE__ */ kn(_n), Un = /^\s*(?:javascript\s*:|data\s*:\s*text\s*\/\s*html)/i, Kn = /\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,
|
|
1639
|
+
const zn = /* @__PURE__ */ kn(_n), Un = /^\s*(?:javascript\s*:|data\s*:\s*text\s*\/\s*html)/i, Kn = /\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
1648
|
return new zn(e).clean(a);
|
|
1649
|
-
},
|
|
1649
|
+
}, ye = (a, t, e) => Array.isArray(a) ? Wn(a, t, e) : A(a) ? $n(a, t, e) : ht(a) ? jn(a, t, e) : a, Wn = (a, t, e) => a.map((o) => ye(o, t, e)), $n = (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 && Yn(l) ? l : t;
|
|
1655
|
+
o[s] = ye(i, c, e);
|
|
1656
1656
|
}
|
|
1657
1657
|
return o;
|
|
1658
|
-
},
|
|
1658
|
+
}, jn = (a, t, e) => {
|
|
1659
1659
|
const o = Jn(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
|
+
}, Yn = (a) => A(a) || mo(a) || E(a), Vn = (a) => a ? Un.test(a) : !1, Xt = (a) => {
|
|
1670
1670
|
if (!a || a.indexOf("<") === -1)
|
|
1671
1671
|
return a;
|
|
1672
1672
|
if (typeof document != "undefined") {
|
|
@@ -1674,32 +1674,32 @@ const zn = /* @__PURE__ */ kn(_n), Un = /^\s*(?:javascript\s*:|data\s*:\s*text\s
|
|
|
1674
1674
|
return t.innerHTML = a, t.content.querySelectorAll("[href],[src]").forEach((o) => {
|
|
1675
1675
|
["href", "src"].forEach((n) => {
|
|
1676
1676
|
const s = o.getAttribute(n);
|
|
1677
|
-
|
|
1677
|
+
Vn(s) && o.removeAttribute(n);
|
|
1678
1678
|
});
|
|
1679
1679
|
}), t.innerHTML;
|
|
1680
1680
|
}
|
|
1681
1681
|
return a.replace(Kn, "");
|
|
1682
|
-
},
|
|
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
|
+
}, Xn = /* @__PURE__ */ new Set(["class", "id", "title", "role", "dir", "lang"]), qn = (a) => {
|
|
1693
1693
|
const t = a.toLowerCase();
|
|
1694
|
-
return t.startsWith("data-") || t.startsWith("aria-") ||
|
|
1694
|
+
return t.startsWith("data-") || t.startsWith("aria-") || Xn.has(t);
|
|
1695
1695
|
}, Zn = (a) => {
|
|
1696
1696
|
const t = {};
|
|
1697
1697
|
return Array.from(a.attributes).forEach((e) => {
|
|
1698
1698
|
qn(e.name) && (t[e.name] = !0);
|
|
1699
1699
|
}), t;
|
|
1700
|
-
}, at = (a) => a === !0 ?
|
|
1700
|
+
}, at = (a) => a === !0 ? Ye(Zn) : a === !1 ? !1 : E(a) ? Ye(a) : ht(a) ? a : A(a) ? Bt({}, a) : a, Gn = (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
|
-
}, Jn = (a, t) => A(a) && !E(a) ? Gn(t, a) : a === !1 ? {} : N(t) ? null :
|
|
1727
|
+
}, Jn = (a, t) => A(a) && !E(a) ? Gn(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) {
|
|
@@ -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;
|
|
@@ -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, is = "tooltip", rs = "aria-hidden", as = "false", ls = "true", cs = "visibility", ds = "visible", hs = "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
|
|
@@ -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", is), this.watchTooltipVisibility());
|
|
2143
2143
|
}
|
|
2144
2144
|
/**
|
|
2145
2145
|
* Calculates element coords and moves tooltip bottom of the element
|
|
@@ -2231,15 +2231,15 @@ 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(), us = (a, t, e) => {
|
|
2236
|
+
$t().show(a, t, e != null ? e : {});
|
|
2237
2237
|
}, Tt = () => {
|
|
2238
|
-
|
|
2239
|
-
},
|
|
2240
|
-
|
|
2238
|
+
$t().hide();
|
|
2239
|
+
}, Ut = (a, t, e) => {
|
|
2240
|
+
$t().onHover(a, t, e != null ? e : {});
|
|
2241
2241
|
}, ps = () => {
|
|
2242
|
-
|
|
2242
|
+
$t().destroy();
|
|
2243
2243
|
};
|
|
2244
2244
|
class fs extends T {
|
|
2245
2245
|
/**
|
|
@@ -2286,7 +2286,7 @@ 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
2292
|
class gs extends T {
|
|
@@ -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 = {
|
|
@@ -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
|
|
@@ -2778,7 +2778,7 @@ class Ie {
|
|
|
2778
2778
|
*/
|
|
2779
2779
|
addHint(t, e) {
|
|
2780
2780
|
const o = new bs(e);
|
|
2781
|
-
|
|
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
|
*/
|
|
@@ -2876,7 +2884,7 @@ const lt = {
|
|
|
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,11 +3018,11 @@ 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");
|
|
3017
|
-
u.className = this.getChevronClass(s), u.setAttribute(m.popoverItemIcon, ""), u.setAttribute(m.popoverItemIconChevronRight, ""), u.setAttribute("data-blok-testid", "popover-item-chevron-right"), u.innerHTML =
|
|
3025
|
+
u.className = this.getChevronClass(s), u.setAttribute(m.popoverItemIcon, ""), u.setAttribute(m.popoverItemIconChevronRight, ""), u.setAttribute("data-blok-testid", "popover-item-chevron-right"), u.innerHTML = jo, t.appendChild(u), this.nodes.chevron = u;
|
|
3018
3026
|
}
|
|
3019
3027
|
}
|
|
3020
3028
|
/**
|
|
@@ -3030,7 +3038,7 @@ 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
3043
|
t && ks.item,
|
|
3036
3044
|
e && vs.item,
|
|
@@ -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 yo extends
|
|
3250
|
+
class yo 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"
|
|
@@ -3374,7 +3382,7 @@ const L = {
|
|
|
3374
3382
|
popoverContainer: "flex-row top-0 min-w-max w-max p-1 mobile:absolute"
|
|
3375
3383
|
}, Bs = (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 xo extends
|
|
3385
|
+
class xo 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
|
|
@@ -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,
|
|
@@ -3589,12 +3597,12 @@ const To = (a, t) => {
|
|
|
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 ws extends
|
|
3605
|
+
class ws 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: Yo
|
|
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
|
/**
|
|
@@ -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.
|
|
@@ -3975,7 +3986,7 @@ class ft extends xo {
|
|
|
3975
3986
|
}
|
|
3976
3987
|
}
|
|
3977
3988
|
const ys = "38px", xs = "46px";
|
|
3978
|
-
class
|
|
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", ys), this.nodes.popover.style.setProperty("--height-mobile", xs), 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, Bs(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,8 +4206,8 @@ 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"
|
|
@@ -4207,20 +4218,20 @@ class Ts {
|
|
|
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
|
})
|
|
4223
|
-
}, this.nodes.backButton.innerHTML =
|
|
4234
|
+
}, this.nodes.backButton.innerHTML = Vo, this.nodes.root.appendChild(this.nodes.backButton), this.listeners.on(this.nodes.backButton, "click", this.onBackButtonClick), this.nodes.text.innerText = this.text, this.nodes.root.appendChild(this.nodes.text);
|
|
4224
4235
|
}
|
|
4225
4236
|
/**
|
|
4226
4237
|
* Returns popover header root html element
|
|
@@ -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 Ss(), 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);
|
|
@@ -4362,7 +4373,7 @@ class So extends xo {
|
|
|
4362
4373
|
});
|
|
4363
4374
|
}
|
|
4364
4375
|
}
|
|
4365
|
-
class
|
|
4376
|
+
class Cs extends T {
|
|
4366
4377
|
constructor() {
|
|
4367
4378
|
super(...arguments), this.opened = !1, this.selection = new y(), this.popover = null, this.flipperInstance = new J({
|
|
4368
4379
|
focusedItemClass: lt.focused,
|
|
@@ -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
|
/**
|
|
@@ -4430,16 +4441,17 @@ class Is extends T {
|
|
|
4430
4441
|
return;
|
|
4431
4442
|
this.selection.save(), n || (this.Blok.BlockSelection.selectBlock(s), this.Blok.BlockSelection.clearCache());
|
|
4432
4443
|
const { toolTunes: i, commonTunes: r } = s.getTunes(), l = ct() ? So : ft, c = {
|
|
4433
|
-
searchable: !
|
|
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,7 +4479,7 @@ 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 Xo(
|
|
4471
4483
|
s.map((d) => new q(d)),
|
|
4472
4484
|
r
|
|
4473
4485
|
) : await qo(t, r)).reduce((d, h) => (h.toolbox === void 0 || h.toolbox.forEach((u) => {
|
|
@@ -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
|
+
}, Is = {
|
|
4711
4723
|
0: "Digit0",
|
|
4712
4724
|
1: "Digit1",
|
|
4713
4725
|
2: "Digit2",
|
|
@@ -4754,8 +4766,8 @@ const Ge = {
|
|
|
4754
4766
|
INSERT: "Insert",
|
|
4755
4767
|
DELETE: "Delete",
|
|
4756
4768
|
".": "Period"
|
|
4757
|
-
}, Es = (a) => Object.keys(
|
|
4758
|
-
(e) =>
|
|
4769
|
+
}, Es = (a) => Object.keys(Ze).find(
|
|
4770
|
+
(e) => Ze[e].includes(a)
|
|
4759
4771
|
);
|
|
4760
4772
|
class As {
|
|
4761
4773
|
/**
|
|
@@ -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 = Is[o];
|
|
4814
4826
|
return t.code === n;
|
|
4815
4827
|
});
|
|
4816
4828
|
}
|
|
@@ -4874,8 +4886,8 @@ class Ms {
|
|
|
4874
4886
|
}
|
|
4875
4887
|
}
|
|
4876
4888
|
const z = new Ms();
|
|
4877
|
-
var
|
|
4878
|
-
class Ds extends
|
|
4889
|
+
var Nt = /* @__PURE__ */ ((a) => (a.Opened = "toolbox-opened", a.Closed = "toolbox-closed", a.BlockAdded = "toolbox-block-added", a))(Nt || {});
|
|
4890
|
+
class Ds 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
|
|
@@ -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: bo(this.i18n, o,
|
|
5036
|
-
name: (
|
|
5047
|
+
title: bo(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 ? vo(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,7 +5152,7 @@ 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
|
|
5155
|
+
const ce = "block hovered", Ge = 10;
|
|
5144
5156
|
class Ls extends T {
|
|
5145
5157
|
/**
|
|
5146
5158
|
* @class
|
|
@@ -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();
|
|
@@ -5427,27 +5438,19 @@ class Ls extends T {
|
|
|
5427
5438
|
innerHTML: Go
|
|
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", [
|
|
@@ -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();
|
|
@@ -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,12 +5646,34 @@ 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 || {});
|
|
@@ -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 || {}), Co = /* @__PURE__ */ ((a) => (a.Shortcut = "shortcut", a.SanitizeConfig = "sanitize", a))(Co || {}), pt = /* @__PURE__ */ ((a) => (a.IsEnabledLineBreaks = "enableLineBreaks", a.Toolbox = "toolbox", a.ConversionConfig = "conversionConfig", a.IsReadOnlySupported = "isReadOnlySupported", a.PasteConfig = "pasteConfig", a))(pt || {}), Io = /* @__PURE__ */ ((a) => (a.IsInline = "isInline", a.Title = "title", a.IsReadOnlySupported = "isReadOnlySupported", a))(Io || {}), Eo = /* @__PURE__ */ ((a) => (a.IsTune = "isTune", a))(Eo || {});
|
|
5690
|
+
class Ie {
|
|
5669
5691
|
/**
|
|
5670
5692
|
* @class
|
|
5671
5693
|
* @param {ConstructorOptions} options - Constructor options
|
|
@@ -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,7 +5917,7 @@ 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]",
|
|
@@ -5906,12 +5928,12 @@ class Ns extends T {
|
|
|
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 ? vo(r) : void 0, c = tn(this.Blok.I18n, n.titleKey, n.title ||
|
|
5953
|
+
const i = await s.render(), r = this.getToolShortcut(n.name), l = r !== void 0 ? vo(r) : void 0, c = tn(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);
|
|
@@ -6037,7 +6059,7 @@ class Ns extends T {
|
|
|
6037
6059
|
*/
|
|
6038
6060
|
getToolShortcut(t) {
|
|
6039
6061
|
const { Tools: e } = this.Blok, o = e.inlineTools.get(t), n = e.internal.inlineTools;
|
|
6040
|
-
return Array.from(n.keys()).includes(t) ? this.inlineTools[t][
|
|
6062
|
+
return Array.from(n.keys()).includes(t) ? this.inlineTools[t][Co.Shortcut] : o == null ? void 0 : o.shortcut;
|
|
6041
6063
|
}
|
|
6042
6064
|
/**
|
|
6043
6065
|
* Enable Tool shortcut with Blok Shortcuts Module
|
|
@@ -6172,9 +6194,9 @@ const Et = {
|
|
|
6172
6194
|
"ug",
|
|
6173
6195
|
"ur",
|
|
6174
6196
|
"yi"
|
|
6175
|
-
]),
|
|
6197
|
+
]), de = (a) => Rs.has(a) ? "rtl" : "ltr", Ao = (a, t) => ({
|
|
6176
6198
|
dictionary: t,
|
|
6177
|
-
direction:
|
|
6199
|
+
direction: de(a)
|
|
6178
6200
|
}), Ps = [
|
|
6179
6201
|
"am",
|
|
6180
6202
|
"ar",
|
|
@@ -6244,8 +6266,8 @@ const Et = {
|
|
|
6244
6266
|
"vi",
|
|
6245
6267
|
"yi",
|
|
6246
6268
|
"zh"
|
|
6247
|
-
], Je = "en", Hs = Ao("en", Et),
|
|
6248
|
-
|
|
6269
|
+
], Je = "en", Hs = Ao("en", Et), he = /* @__PURE__ */ new Map();
|
|
6270
|
+
he.set("en", Hs);
|
|
6249
6271
|
const Fs = {
|
|
6250
6272
|
am: () => import("./messages-Bdv-IkfG.mjs"),
|
|
6251
6273
|
ar: () => import("./messages-AHESHJm_.mjs"),
|
|
@@ -6316,11 +6338,11 @@ const Fs = {
|
|
|
6316
6338
|
yi: () => import("./messages-RvMHb2Ht.mjs"),
|
|
6317
6339
|
zh: () => import("./messages-B66ZSDCJ.mjs")
|
|
6318
6340
|
}, _s = async (a) => {
|
|
6319
|
-
const t =
|
|
6341
|
+
const t = he.get(a);
|
|
6320
6342
|
if (t !== void 0)
|
|
6321
6343
|
return t;
|
|
6322
6344
|
const e = Fs[a], o = await e(), n = Ao(a, o.default);
|
|
6323
|
-
return
|
|
6345
|
+
return he.set(a, n), n;
|
|
6324
6346
|
};
|
|
6325
6347
|
class zs {
|
|
6326
6348
|
constructor() {
|
|
@@ -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-D8GzSwio.mjs");
|
|
6493
6515
|
this.i18nextWrapper = await o(t, e);
|
|
6494
6516
|
}
|
|
6495
6517
|
/**
|
|
@@ -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)
|
|
@@ -6565,7 +6587,7 @@ const Ae = " ", pe = /* @__PURE__ */ new WeakSet(), Me = () => {
|
|
|
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) => Mo(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;
|
|
@@ -6580,7 +6602,7 @@ 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
6608
|
}) : null, to = /* @__PURE__ */ new WeakSet(), Do = (a) => {
|
|
@@ -6598,7 +6620,7 @@ typeof window != "undefined" && typeof window.document != "undefined" && Do(wind
|
|
|
6598
6620
|
const Ks = (a) => {
|
|
6599
6621
|
var n, s;
|
|
6600
6622
|
Do(a.ownerDocument);
|
|
6601
|
-
const [t, e] =
|
|
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,10 +6645,10 @@ 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
|
};
|
|
@@ -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,7 +6676,7 @@ 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;
|
|
@@ -6665,7 +6687,7 @@ const Ks = (a) => {
|
|
|
6665
6687
|
return !0;
|
|
6666
6688
|
if (g.isNativeInput(t))
|
|
6667
6689
|
return t.selectionEnd === t.value.length;
|
|
6668
|
-
const [e, o] =
|
|
6690
|
+
const [e, o] = Ae();
|
|
6669
6691
|
return e === null ? !1 : Lo(a, e, o, "right");
|
|
6670
6692
|
}, Oo = (a, t) => {
|
|
6671
6693
|
const e = a.getBoundingClientRect();
|
|
@@ -6774,11 +6796,11 @@ const Ks = (a) => {
|
|
|
6774
6796
|
return s ? s.getBoundingClientRect().left : null;
|
|
6775
6797
|
}, oo = (a, t, e) => {
|
|
6776
6798
|
if (g.isNativeInput(a)) {
|
|
6777
|
-
|
|
6799
|
+
js(a, t, e);
|
|
6778
6800
|
return;
|
|
6779
6801
|
}
|
|
6780
|
-
|
|
6781
|
-
},
|
|
6802
|
+
Ys(a, t, e);
|
|
6803
|
+
}, js = (a, t, e) => {
|
|
6782
6804
|
a.focus();
|
|
6783
6805
|
const o = a.value;
|
|
6784
6806
|
if (o.length === 0) {
|
|
@@ -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
|
+
}, Ys = (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
|
-
const s =
|
|
6834
|
+
const s = Vs(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 = Xs(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)
|
|
@@ -6838,7 +6860,7 @@ const Ks = (a) => {
|
|
|
6838
6860
|
} catch (r) {
|
|
6839
6861
|
No(a, e);
|
|
6840
6862
|
}
|
|
6841
|
-
},
|
|
6863
|
+
}, Vs = (a, t, e) => {
|
|
6842
6864
|
const o = document.createRange();
|
|
6843
6865
|
try {
|
|
6844
6866
|
if (e)
|
|
@@ -6856,7 +6878,7 @@ const Ks = (a) => {
|
|
|
6856
6878
|
} catch (n) {
|
|
6857
6879
|
return null;
|
|
6858
6880
|
}
|
|
6859
|
-
},
|
|
6881
|
+
}, Xs = (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
|
-
}, qs = /* @__PURE__ */ new Set(["Enter", "Process", "Spacebar", "Space", "Dead"]),
|
|
6896
|
+
}, qs = /* @__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
|
|
@@ -7338,8 +7360,8 @@ 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();
|
|
@@ -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
|
}
|
|
@@ -7433,8 +7455,8 @@ const Ks = (a) => {
|
|
|
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
|
|
@@ -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
|
|
@@ -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",
|
|
@@ -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,11 +8256,11 @@ 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;
|
|
@@ -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
|
/**
|
|
@@ -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,7 +8786,7 @@ 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)();
|
|
@@ -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
|
|
@@ -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
|
/**
|
|
@@ -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
|
|
@@ -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 = {
|
|
@@ -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);
|
|
@@ -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) => sn(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({
|
|
@@ -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,8 +10440,8 @@ const ho = /* @__PURE__ */ new Set([
|
|
|
10418
10440
|
});
|
|
10419
10441
|
}
|
|
10420
10442
|
};
|
|
10421
|
-
|
|
10422
|
-
let
|
|
10443
|
+
Kt.PATTERN_PROCESSING_MAX_LENGTH = 450;
|
|
10444
|
+
let fe = Kt;
|
|
10423
10445
|
class li extends T {
|
|
10424
10446
|
constructor() {
|
|
10425
10447
|
super(...arguments), this.toolsDontSupportReadOnly = [], this.readOnlyEnabled = !1;
|
|
@@ -10507,10 +10529,10 @@ 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
|
-
|
|
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),
|
|
10514
10536
|
an
|
|
10515
10537
|
].some((b) => !!h.closest(b))) || (this.Blok.Toolbar.close(), this.mousedown = !0, this.startX = t, this.startY = e);
|
|
10516
10538
|
}
|
|
@@ -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,
|
|
@@ -10785,7 +10807,7 @@ const di = (a) => a.some((t) => t.items !== void 0 && t.items.length > 0), hi =
|
|
|
10785
10807
|
}, ui = (a) => a.parent !== void 0 || a.content !== void 0 && a.content.length > 0, pi = (a) => a.some(ui) ? { format: "hierarchical", hasHierarchy: !0 } : a.some(hi) ? { format: "legacy", hasHierarchy: !0 } : { format: "flat", hasHierarchy: !1 }, Ho = (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
10812
|
const h = l.items && l.items.length > 0 ? Ho(l.items, d, e + 1, o, void 0, s, i) : [], u = o === "ordered" && e === 0 && c === 0 && n !== void 0 && n !== 1, f = w(w(w({
|
|
10791
10813
|
id: d,
|
|
@@ -10805,7 +10827,7 @@ const di = (a) => a.some((t) => t.items !== void 0 && t.items.length > 0), hi =
|
|
|
10805
10827
|
var e, o;
|
|
10806
10828
|
const t = [];
|
|
10807
10829
|
for (const n of a) {
|
|
10808
|
-
const s = (e = n.id) != null ? e :
|
|
10830
|
+
const s = (e = n.id) != null ? e : ve();
|
|
10809
10831
|
if (n.type === "list" && ((o = n.data) == null ? void 0 : o.items)) {
|
|
10810
10832
|
const r = n.data, l = fi(r, n.tunes);
|
|
10811
10833
|
t.push(...l);
|
|
@@ -10895,7 +10917,7 @@ class yi extends T {
|
|
|
10895
10917
|
const { tunes: d, id: h, parent: u, content: f } = c, p = c.type, b = o.available.has(p) ? {
|
|
10896
10918
|
tool: p,
|
|
10897
10919
|
data: c.data
|
|
10898
|
-
} : (
|
|
10920
|
+
} : (V(`Tool «${p}» is not found. Check 'tools' property at the Blok config.`, "warn"), {
|
|
10899
10921
|
tool: o.stubTool,
|
|
10900
10922
|
data: this.composeStubDataForTool(p, c.data, h)
|
|
10901
10923
|
});
|
|
@@ -10910,7 +10932,7 @@ class yi extends T {
|
|
|
10910
10932
|
contentIds: f
|
|
10911
10933
|
});
|
|
10912
10934
|
} catch (S) {
|
|
10913
|
-
|
|
10935
|
+
I(`Block «${B}» skipped because of plugins error`, "error", {
|
|
10914
10936
|
data: x,
|
|
10915
10937
|
error: S
|
|
10916
10938
|
});
|
|
@@ -10967,7 +10989,7 @@ class xi extends T {
|
|
|
10967
10989
|
return {
|
|
10968
10990
|
time: +/* @__PURE__ */ new Date(),
|
|
10969
10991
|
blocks: [],
|
|
10970
|
-
version:
|
|
10992
|
+
version: _t()
|
|
10971
10993
|
};
|
|
10972
10994
|
const n = o.map((s) => this.getSavedData(s));
|
|
10973
10995
|
this.lastSaveError = void 0;
|
|
@@ -10984,7 +11006,7 @@ class xi extends T {
|
|
|
10984
11006
|
} catch (s) {
|
|
10985
11007
|
this.lastSaveError = s;
|
|
10986
11008
|
const i = s instanceof Error ? s : new Error(String(s));
|
|
10987
|
-
|
|
11009
|
+
V("Saving failed due to the Error %o", "error", i);
|
|
10988
11010
|
return;
|
|
10989
11011
|
}
|
|
10990
11012
|
}
|
|
@@ -11017,11 +11039,11 @@ class xi extends T {
|
|
|
11017
11039
|
const e = [];
|
|
11018
11040
|
t.forEach(({ id: c, tool: d, data: h, tunes: u, isValid: f, parentId: p, contentIds: b }) => {
|
|
11019
11041
|
if (!f) {
|
|
11020
|
-
|
|
11042
|
+
I(`Block «${d}» skipped because saved data is invalid`);
|
|
11021
11043
|
return;
|
|
11022
11044
|
}
|
|
11023
11045
|
if (d === void 0 || h === void 0) {
|
|
11024
|
-
|
|
11046
|
+
I("Block skipped because saved data is missing required fields");
|
|
11025
11047
|
return;
|
|
11026
11048
|
}
|
|
11027
11049
|
if (d === this.Blok.Tools.stubTool && this.isStubSavedData(h)) {
|
|
@@ -11029,7 +11051,7 @@ class xi extends T {
|
|
|
11029
11051
|
return;
|
|
11030
11052
|
}
|
|
11031
11053
|
if (d === this.Blok.Tools.stubTool) {
|
|
11032
|
-
|
|
11054
|
+
I("Stub block data is malformed and was skipped");
|
|
11033
11055
|
return;
|
|
11034
11056
|
}
|
|
11035
11057
|
const k = u === void 0 || N(u), B = p != null, x = b !== void 0 && b.length > 0, S = w(w(w({
|
|
@@ -11049,7 +11071,7 @@ class xi extends T {
|
|
|
11049
11071
|
return {
|
|
11050
11072
|
time: +/* @__PURE__ */ new Date(),
|
|
11051
11073
|
blocks: s,
|
|
11052
|
-
version:
|
|
11074
|
+
version: _t()
|
|
11053
11075
|
};
|
|
11054
11076
|
}
|
|
11055
11077
|
/**
|
|
@@ -11067,7 +11089,7 @@ class xi extends T {
|
|
|
11067
11089
|
});
|
|
11068
11090
|
}), n.length === 0)
|
|
11069
11091
|
return t;
|
|
11070
|
-
const s =
|
|
11092
|
+
const s = we(
|
|
11071
11093
|
n.map(({ data: r }) => r),
|
|
11072
11094
|
e,
|
|
11073
11095
|
o
|
|
@@ -11120,7 +11142,7 @@ class xi extends T {
|
|
|
11120
11142
|
});
|
|
11121
11143
|
}
|
|
11122
11144
|
}
|
|
11123
|
-
const
|
|
11145
|
+
const De = class De {
|
|
11124
11146
|
/**
|
|
11125
11147
|
* @param options - constructor options
|
|
11126
11148
|
* @param options.data - stub tool data
|
|
@@ -11156,9 +11178,9 @@ const Le = class Le {
|
|
|
11156
11178
|
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
11179
|
}
|
|
11158
11180
|
};
|
|
11159
|
-
|
|
11160
|
-
let
|
|
11161
|
-
class Ti extends
|
|
11181
|
+
De.isReadOnlySupported = !0;
|
|
11182
|
+
let ge = De;
|
|
11183
|
+
class Ti extends Ie {
|
|
11162
11184
|
constructor() {
|
|
11163
11185
|
super(...arguments), this.type = dt.Inline;
|
|
11164
11186
|
}
|
|
@@ -11202,7 +11224,7 @@ class Ti extends Ee {
|
|
|
11202
11224
|
return this.constructable.titleKey;
|
|
11203
11225
|
}
|
|
11204
11226
|
}
|
|
11205
|
-
class Si extends
|
|
11227
|
+
class Si extends Ie {
|
|
11206
11228
|
constructor() {
|
|
11207
11229
|
super(...arguments), this.type = dt.Tune;
|
|
11208
11230
|
}
|
|
@@ -11258,7 +11280,7 @@ class _ extends Map {
|
|
|
11258
11280
|
return new _(t);
|
|
11259
11281
|
}
|
|
11260
11282
|
}
|
|
11261
|
-
class
|
|
11283
|
+
class Ci extends Ie {
|
|
11262
11284
|
constructor() {
|
|
11263
11285
|
super(...arguments), this.type = dt.Block, this.inlineTools = new _(), this.tunes = new _();
|
|
11264
11286
|
}
|
|
@@ -11308,7 +11330,7 @@ class Ii extends Ee {
|
|
|
11308
11330
|
* whose `data.style` matches one of the specified styles will be included.
|
|
11309
11331
|
*/
|
|
11310
11332
|
get toolbox() {
|
|
11311
|
-
const t = this.constructable[pt.Toolbox], e = this.config[
|
|
11333
|
+
const t = this.constructable[pt.Toolbox], e = this.config[Rt.Toolbox];
|
|
11312
11334
|
if (!t || N(t) || e === !1)
|
|
11313
11335
|
return;
|
|
11314
11336
|
const o = this.mergeToolboxSettings(t, e), n = this.filterToolboxEntriesByStyles(o);
|
|
@@ -11358,14 +11380,14 @@ class Ii extends Ee {
|
|
|
11358
11380
|
* Defaults to true (all inline tools) unless explicitly set to false or array.
|
|
11359
11381
|
*/
|
|
11360
11382
|
get enabledInlineTools() {
|
|
11361
|
-
const t = this.config[
|
|
11383
|
+
const t = this.config[Rt.EnabledInlineTools];
|
|
11362
11384
|
return t === void 0 ? !0 : t;
|
|
11363
11385
|
}
|
|
11364
11386
|
/**
|
|
11365
11387
|
* Returns enabled tunes for Tool
|
|
11366
11388
|
*/
|
|
11367
11389
|
get enabledBlockTunes() {
|
|
11368
|
-
return this.config[
|
|
11390
|
+
return this.config[Rt.EnabledBlockTunes];
|
|
11369
11391
|
}
|
|
11370
11392
|
/**
|
|
11371
11393
|
* User-provided search terms from tool settings.
|
|
@@ -11417,7 +11439,7 @@ class Ii extends Ee {
|
|
|
11417
11439
|
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
11440
|
}
|
|
11419
11441
|
}
|
|
11420
|
-
class
|
|
11442
|
+
class Ii {
|
|
11421
11443
|
/**
|
|
11422
11444
|
* @class
|
|
11423
11445
|
* @param config - tools config
|
|
@@ -11479,16 +11501,16 @@ class Ci {
|
|
|
11479
11501
|
*/
|
|
11480
11502
|
getConstructor(t) {
|
|
11481
11503
|
switch (!0) {
|
|
11482
|
-
case !!Reflect.get(t,
|
|
11504
|
+
case !!Reflect.get(t, Io.IsInline):
|
|
11483
11505
|
return Ti;
|
|
11484
11506
|
case !!Reflect.get(t, Eo.IsTune):
|
|
11485
11507
|
return Si;
|
|
11486
11508
|
default:
|
|
11487
|
-
return
|
|
11509
|
+
return Ci;
|
|
11488
11510
|
}
|
|
11489
11511
|
}
|
|
11490
11512
|
}
|
|
11491
|
-
const
|
|
11513
|
+
const Le = class Le {
|
|
11492
11514
|
/**
|
|
11493
11515
|
* DeleteTune constructor
|
|
11494
11516
|
* @param {API} api - Blok's API
|
|
@@ -11514,13 +11536,13 @@ const Oe = class Oe {
|
|
|
11514
11536
|
this.api.blocks.delete();
|
|
11515
11537
|
}
|
|
11516
11538
|
};
|
|
11517
|
-
|
|
11518
|
-
let
|
|
11519
|
-
const
|
|
11539
|
+
Le.isTune = !0;
|
|
11540
|
+
let me = Le;
|
|
11541
|
+
const ee = (a) => {
|
|
11520
11542
|
if (!E(a))
|
|
11521
11543
|
throw new Error("Tool constructable must be a function");
|
|
11522
11544
|
return a;
|
|
11523
|
-
},
|
|
11545
|
+
}, Wt = class Wt extends T {
|
|
11524
11546
|
constructor() {
|
|
11525
11547
|
super(...arguments), this.stubTool = "stub", this.factory = null, this.toolsAvailable = new _(), this.toolsUnavailable = new _(), this.inlineToolsSanitizeConfigCache = null;
|
|
11526
11548
|
}
|
|
@@ -11585,7 +11607,7 @@ const oe = (a) => {
|
|
|
11585
11607
|
if (!e || Object.keys(e).length === 0)
|
|
11586
11608
|
throw Error("Can't start without tools");
|
|
11587
11609
|
const o = this.prepareConfig(e);
|
|
11588
|
-
this.factory = new
|
|
11610
|
+
this.factory = new Ii(o, this.config, this.Blok.API);
|
|
11589
11611
|
const n = this.getListOfPrepareFunctions(o);
|
|
11590
11612
|
if (n.length === 0)
|
|
11591
11613
|
return Promise.resolve();
|
|
@@ -11625,12 +11647,12 @@ const oe = (a) => {
|
|
|
11625
11647
|
try {
|
|
11626
11648
|
return t.reset();
|
|
11627
11649
|
} catch (o) {
|
|
11628
|
-
|
|
11650
|
+
I(`Tool "${t.name}" reset failed`, "warn", o);
|
|
11629
11651
|
return;
|
|
11630
11652
|
}
|
|
11631
11653
|
})();
|
|
11632
11654
|
e instanceof Promise && e.catch((o) => {
|
|
11633
|
-
|
|
11655
|
+
I(`Tool "${t.name}" reset failed`, "warn", o);
|
|
11634
11656
|
});
|
|
11635
11657
|
}
|
|
11636
11658
|
}
|
|
@@ -11647,15 +11669,15 @@ const oe = (a) => {
|
|
|
11647
11669
|
get internalTools() {
|
|
11648
11670
|
return {
|
|
11649
11671
|
stub: {
|
|
11650
|
-
class:
|
|
11672
|
+
class: ee(ge),
|
|
11651
11673
|
isInternal: !0
|
|
11652
11674
|
},
|
|
11653
11675
|
delete: {
|
|
11654
|
-
class:
|
|
11676
|
+
class: ee(me),
|
|
11655
11677
|
isInternal: !0
|
|
11656
11678
|
},
|
|
11657
11679
|
convertTo: {
|
|
11658
|
-
class:
|
|
11680
|
+
class: ee(dn),
|
|
11659
11681
|
isInternal: !0
|
|
11660
11682
|
}
|
|
11661
11683
|
};
|
|
@@ -11672,7 +11694,7 @@ const oe = (a) => {
|
|
|
11672
11694
|
}
|
|
11673
11695
|
const o = ["render"], n = e.getMissingMethods(o);
|
|
11674
11696
|
if (n.length) {
|
|
11675
|
-
|
|
11697
|
+
I(
|
|
11676
11698
|
`Incorrect Inline Tool: ${e.name}. Some of required methods is not implemented %o`,
|
|
11677
11699
|
"warn",
|
|
11678
11700
|
n
|
|
@@ -11722,7 +11744,7 @@ const oe = (a) => {
|
|
|
11722
11744
|
var n;
|
|
11723
11745
|
const e = (n = t.config) != null ? n : {}, o = {};
|
|
11724
11746
|
for (const s of Object.keys(t))
|
|
11725
|
-
|
|
11747
|
+
Wt.BLOK_SETTINGS_KEYS.has(s) || (o[s] = t[s]);
|
|
11726
11748
|
return w(w({}, e), o);
|
|
11727
11749
|
}
|
|
11728
11750
|
/**
|
|
@@ -11842,7 +11864,7 @@ const oe = (a) => {
|
|
|
11842
11864
|
for (const o of t) {
|
|
11843
11865
|
const n = this.inlineTools.get(o);
|
|
11844
11866
|
if (!n) {
|
|
11845
|
-
|
|
11867
|
+
I(`Inline tool "${o}" is not available and will be skipped`, "warn");
|
|
11846
11868
|
continue;
|
|
11847
11869
|
}
|
|
11848
11870
|
e.push([o, n]);
|
|
@@ -11859,7 +11881,7 @@ const oe = (a) => {
|
|
|
11859
11881
|
for (const o of t) {
|
|
11860
11882
|
const n = this.blockTunes.get(o);
|
|
11861
11883
|
if (!n) {
|
|
11862
|
-
|
|
11884
|
+
I(`Block tune "${o}" is not available and will be skipped`, "warn");
|
|
11863
11885
|
continue;
|
|
11864
11886
|
}
|
|
11865
11887
|
e.push([o, n]);
|
|
@@ -11867,7 +11889,7 @@ const oe = (a) => {
|
|
|
11867
11889
|
return new _(e);
|
|
11868
11890
|
}
|
|
11869
11891
|
};
|
|
11870
|
-
|
|
11892
|
+
Wt.BLOK_SETTINGS_KEYS = /* @__PURE__ */ new Set([
|
|
11871
11893
|
"class",
|
|
11872
11894
|
"inlineToolbar",
|
|
11873
11895
|
"tunes",
|
|
@@ -11876,13 +11898,13 @@ $t.BLOK_SETTINGS_KEYS = /* @__PURE__ */ new Set([
|
|
|
11876
11898
|
"config",
|
|
11877
11899
|
"isInternal"
|
|
11878
11900
|
]);
|
|
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;
|
|
11901
|
+
let be = Wt;
|
|
11902
|
+
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-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}}`, po = 100;
|
|
11881
11903
|
class Ai extends T {
|
|
11882
11904
|
constructor() {
|
|
11883
|
-
super(...arguments), this.isMobile = !1, this.contentRectCache = null, this.resizeDebouncer =
|
|
11905
|
+
super(...arguments), this.isMobile = !1, this.contentRectCache = null, this.resizeDebouncer = We(() => {
|
|
11884
11906
|
this.windowResize();
|
|
11885
|
-
}, 200), this.selectionChangeDebounced =
|
|
11907
|
+
}, 200), this.selectionChangeDebounced = We(() => {
|
|
11886
11908
|
this.selectionChanged();
|
|
11887
11909
|
}, gn), this.documentTouchedListener = (t) => {
|
|
11888
11910
|
this.documentTouched(t);
|
|
@@ -12058,19 +12080,19 @@ class Ai extends T {
|
|
|
12058
12080
|
watchBlockHoveredEvents() {
|
|
12059
12081
|
const t = {
|
|
12060
12082
|
lastHoveredBlockId: null
|
|
12061
|
-
}, o =
|
|
12083
|
+
}, o = ne(
|
|
12062
12084
|
(n) => {
|
|
12063
12085
|
var l;
|
|
12064
|
-
if (!(n instanceof MouseEvent))
|
|
12086
|
+
if (typeof MouseEvent == "undefined" || !(n instanceof MouseEvent))
|
|
12065
12087
|
return;
|
|
12066
12088
|
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(
|
|
12089
|
+
if (i !== null && t.lastHoveredBlockId !== i.id && (t.lastHoveredBlockId = i.id, this.eventsDispatcher.emit(ce, {
|
|
12068
12090
|
block: i,
|
|
12069
12091
|
target: i.holder
|
|
12070
12092
|
})), i !== null || !s)
|
|
12071
12093
|
return;
|
|
12072
12094
|
const r = this.Blok.BlockManager.getBlockByChildNode(s);
|
|
12073
|
-
r && t.lastHoveredBlockId !== r.id && (t.lastHoveredBlockId = r.id, this.eventsDispatcher.emit(
|
|
12095
|
+
r && t.lastHoveredBlockId !== r.id && (t.lastHoveredBlockId = r.id, this.eventsDispatcher.emit(ce, {
|
|
12074
12096
|
block: r,
|
|
12075
12097
|
target: n.target
|
|
12076
12098
|
}));
|
|
@@ -12891,10 +12913,10 @@ const Mi = 30, Di = 200, Li = 100, rt = class rt extends T {
|
|
|
12891
12913
|
}
|
|
12892
12914
|
};
|
|
12893
12915
|
rt.activeInstance = null;
|
|
12894
|
-
let
|
|
12916
|
+
let ke = rt;
|
|
12895
12917
|
const Oi = {
|
|
12896
12918
|
// API Modules
|
|
12897
|
-
BlocksAPI:
|
|
12919
|
+
BlocksAPI: Cn,
|
|
12898
12920
|
CaretAPI: En,
|
|
12899
12921
|
EventsAPI: An,
|
|
12900
12922
|
I18nAPI: Mn,
|
|
@@ -12913,39 +12935,39 @@ const Oi = {
|
|
|
12913
12935
|
UiAPI: gs,
|
|
12914
12936
|
HistoryAPI: ms,
|
|
12915
12937
|
// Toolbar Modules
|
|
12916
|
-
BlockSettings:
|
|
12938
|
+
BlockSettings: Cs,
|
|
12917
12939
|
Toolbar: Ls,
|
|
12918
12940
|
InlineToolbar: Ns,
|
|
12919
12941
|
// Modules
|
|
12920
12942
|
I18n: Us,
|
|
12921
|
-
BlockEvents:
|
|
12943
|
+
BlockEvents: pe,
|
|
12922
12944
|
BlockManager: ei,
|
|
12923
12945
|
BlockSelection: oi,
|
|
12924
|
-
Caret:
|
|
12946
|
+
Caret: Me,
|
|
12925
12947
|
CrossBlockSelection: ii,
|
|
12926
12948
|
DragManager: ri,
|
|
12927
12949
|
ModificationsObserver: ai,
|
|
12928
|
-
Paste:
|
|
12950
|
+
Paste: fe,
|
|
12929
12951
|
ReadOnly: li,
|
|
12930
12952
|
RectangleSelection: ci,
|
|
12931
12953
|
Renderer: yi,
|
|
12932
12954
|
Saver: xi,
|
|
12933
|
-
Tools:
|
|
12955
|
+
Tools: be,
|
|
12934
12956
|
UI: Ai,
|
|
12935
|
-
History:
|
|
12957
|
+
History: ke
|
|
12936
12958
|
};
|
|
12937
12959
|
class Ni {
|
|
12938
12960
|
/**
|
|
12939
12961
|
* @param {BlokConfig} config - user configuration
|
|
12940
12962
|
*/
|
|
12941
12963
|
constructor(t) {
|
|
12942
|
-
this.moduleInstances = {}, this.eventsDispatcher = new
|
|
12964
|
+
this.moduleInstances = {}, this.eventsDispatcher = new Ct(), this.config = {}, this.isReady = new Promise((e, o) => {
|
|
12943
12965
|
Promise.resolve().then(async () => {
|
|
12944
12966
|
this.configuration = t, this.validate(), this.init(), await this.start(), await this.render();
|
|
12945
12967
|
const { BlockManager: n, Caret: s, UI: i, ModificationsObserver: r, History: l } = this.moduleInstances;
|
|
12946
12968
|
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
12969
|
}).catch((n) => {
|
|
12948
|
-
|
|
12970
|
+
I(`Blok is not ready because of ${n}`, "error"), o(n);
|
|
12949
12971
|
});
|
|
12950
12972
|
});
|
|
12951
12973
|
}
|
|
@@ -12960,7 +12982,7 @@ class Ni {
|
|
|
12960
12982
|
}, this.config.holder == null && (this.config.holder = "blok"), this.config.logLevel == null && (this.config.logLevel = mn.VERBOSE), bn(this.config.logLevel), this.config.defaultBlock = (l = this.config.defaultBlock) != null ? l : "paragraph";
|
|
12961
12983
|
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
12984
|
if (o && o !== "paragraph" && !n && !i) {
|
|
12963
|
-
|
|
12985
|
+
I(
|
|
12964
12986
|
`Default block "${o}" is not configured. Falling back to "paragraph" tool.`,
|
|
12965
12987
|
"warn"
|
|
12966
12988
|
), this.config.defaultBlock = "paragraph";
|
|
@@ -13026,7 +13048,7 @@ class Ni {
|
|
|
13026
13048
|
} catch (n) {
|
|
13027
13049
|
if (n instanceof bt)
|
|
13028
13050
|
throw new Error(n.message);
|
|
13029
|
-
|
|
13051
|
+
I(`Module ${o} was skipped because of %o`, "warn", n);
|
|
13030
13052
|
}
|
|
13031
13053
|
}),
|
|
13032
13054
|
Promise.resolve()
|
|
@@ -13054,7 +13076,7 @@ class Ni {
|
|
|
13054
13076
|
eventsDispatcher: this.eventsDispatcher
|
|
13055
13077
|
});
|
|
13056
13078
|
} catch (o) {
|
|
13057
|
-
|
|
13079
|
+
I(`[constructModules] Module ${t} skipped because`, "error", o);
|
|
13058
13080
|
}
|
|
13059
13081
|
});
|
|
13060
13082
|
}
|
|
@@ -13111,10 +13133,10 @@ class Ni {
|
|
|
13111
13133
|
return e;
|
|
13112
13134
|
}
|
|
13113
13135
|
}
|
|
13114
|
-
const Fi =
|
|
13136
|
+
const Fi = _t(), vt = class vt {
|
|
13115
13137
|
/** Blok version */
|
|
13116
13138
|
static get version() {
|
|
13117
|
-
return
|
|
13139
|
+
return _t();
|
|
13118
13140
|
}
|
|
13119
13141
|
/**
|
|
13120
13142
|
* @param {BlokConfig|string|undefined} [configuration] - user configuration
|