@jackuait/blok 0.4.3-beta.4 → 0.4.3-beta.6
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-N-sAekLt.mjs → blok-B6xeFB1r.mjs} +153 -125
- package/dist/chunks/{i18next-loader-aMaQI76a.mjs → i18next-loader-DolG6O7i.mjs} +1 -1
- package/dist/chunks/{index-B6xvzBsa.mjs → index-Bqo-x11-.mjs} +1 -1
- package/dist/chunks/{inline-tool-convert-BBeAtLcM.mjs → inline-tool-convert-DqYXfC5g.mjs} +8 -8
- package/dist/full.mjs +2 -2
- package/dist/tools.mjs +128 -87
- package/package.json +1 -1
- package/src/components/modules/api/i18n.ts +1 -0
- package/src/components/tools/block.ts +10 -1
- package/src/components/tools/factory.ts +50 -1
- package/src/tools/header/index.ts +73 -0
- package/types/api/i18n.d.ts +8 -0
|
@@ -2,14 +2,14 @@ var No = Object.defineProperty, Ro = Object.defineProperties;
|
|
|
2
2
|
var Po = Object.getOwnPropertyDescriptors;
|
|
3
3
|
var Et = Object.getOwnPropertySymbols;
|
|
4
4
|
var Re = Object.prototype.hasOwnProperty, Pe = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var Ne = (a, t, e) => t in a ? No(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e,
|
|
5
|
+
var Ne = (a, t, e) => t in a ? No(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e, y = (a, t) => {
|
|
6
6
|
for (var e in t || (t = {}))
|
|
7
7
|
Re.call(t, e) && Ne(a, e, t[e]);
|
|
8
8
|
if (Et)
|
|
9
9
|
for (var e of Et(t))
|
|
10
10
|
Pe.call(t, e) && Ne(a, e, t[e]);
|
|
11
11
|
return a;
|
|
12
|
-
},
|
|
12
|
+
}, P = (a, t) => Ro(a, Po(t));
|
|
13
13
|
var Yt = (a, t) => {
|
|
14
14
|
var e = {};
|
|
15
15
|
for (var o in a)
|
|
@@ -19,7 +19,7 @@ var Yt = (a, t) => {
|
|
|
19
19
|
t.indexOf(o) < 0 && Pe.call(a, o) && (e[o] = a[o]);
|
|
20
20
|
return e;
|
|
21
21
|
};
|
|
22
|
-
import { i as N, g as Ho, a as f, b as be, c as E, l as I, S as
|
|
22
|
+
import { i as N, g as Ho, a as f, b as be, c as E, l as I, S as B, d as Fo, e as _o, D as m, t as C, f as $, h as co, P as O, j as Ht, k as j, m as A, n as wt, o as ht, p as ho, q as J, T as jt, r as Ft, s as v, I as zo, u as Uo, v as ct, w as oe, x as Ko, y as Wo, z as $o, A as uo, B as Yo, C as po, E as fo, F as jo, G as Xo, H as Vo, J as qo, K as Go, L as ke, M as He, N as Zo, O as Fe, Q as _e, R as Jo, U as Qo, V as ts, W as es, X as os, Y as se, Z as _t, _ as ss, $ as ns, a0 as is, a1 as ze, a2 as rs, a3 as as, a4 as ls, a5 as cs, a6 as ds, a7 as hs, a8 as us } from "./inline-tool-convert-DqYXfC5g.mjs";
|
|
23
23
|
function ps(a) {
|
|
24
24
|
return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, "default") ? a.default : a;
|
|
25
25
|
}
|
|
@@ -577,7 +577,7 @@ const z = class z extends Ct {
|
|
|
577
577
|
const t = await this.extractToolData();
|
|
578
578
|
if (t === void 0)
|
|
579
579
|
return;
|
|
580
|
-
const e =
|
|
580
|
+
const e = y({}, this.unavailableTunesData);
|
|
581
581
|
[
|
|
582
582
|
...this.tunesInstances.entries(),
|
|
583
583
|
...this.defaultTunesInstances.entries()
|
|
@@ -590,7 +590,7 @@ const z = class z extends Ct {
|
|
|
590
590
|
}
|
|
591
591
|
});
|
|
592
592
|
const o = window.performance.now();
|
|
593
|
-
this.lastSavedData = t, this.lastSavedTunes =
|
|
593
|
+
this.lastSavedData = t, this.lastSavedTunes = y({}, e);
|
|
594
594
|
const s = window.performance.now();
|
|
595
595
|
return {
|
|
596
596
|
id: this.id,
|
|
@@ -608,7 +608,7 @@ const z = class z extends Ct {
|
|
|
608
608
|
const t = await this.toolInstance.save(this.pluginsContent);
|
|
609
609
|
if (!this.isEmpty || t === void 0 || t === null || typeof t != "object")
|
|
610
610
|
return t;
|
|
611
|
-
const e =
|
|
611
|
+
const e = y({}, t), o = (s) => {
|
|
612
612
|
const n = e[s];
|
|
613
613
|
if (typeof n != "string")
|
|
614
614
|
return;
|
|
@@ -672,7 +672,7 @@ const z = class z extends Ct {
|
|
|
672
672
|
*/
|
|
673
673
|
updateCurrentInput() {
|
|
674
674
|
var n;
|
|
675
|
-
const t =
|
|
675
|
+
const t = B.anchorNode, e = document.activeElement, o = (i) => {
|
|
676
676
|
if (!i)
|
|
677
677
|
return;
|
|
678
678
|
const r = i instanceof HTMLElement ? i : i.parentElement;
|
|
@@ -889,8 +889,8 @@ const z = class z extends Ct {
|
|
|
889
889
|
const i = this.stretched ? z.styles.contentStretched : "";
|
|
890
890
|
this.contentElement.className = t ? C(z.styles.content, z.styles.contentSelected) : C(z.styles.content, i);
|
|
891
891
|
}
|
|
892
|
-
const e = t === !0 &&
|
|
893
|
-
!e && !o || ((s = this.blokEventBus) == null || s.emit(go, { state: t }), e &&
|
|
892
|
+
const e = t === !0 && B.isRangeInsideContainer(this.holder), o = t === !1 && B.isFakeCursorInsideContainer(this.holder);
|
|
893
|
+
!e && !o || ((s = this.blokEventBus) == null || s.emit(go, { state: t }), e && B.addFakeCursor(), o && B.removeFakeCursor(this.holder), (n = this.blokEventBus) == null || n.emit(mo, { state: t }));
|
|
894
894
|
}
|
|
895
895
|
/**
|
|
896
896
|
* Returns True if it is Selected
|
|
@@ -1355,7 +1355,8 @@ class Ss extends T {
|
|
|
1355
1355
|
*/
|
|
1356
1356
|
get methods() {
|
|
1357
1357
|
return this.cachedMethods === null && (this.cachedMethods = {
|
|
1358
|
-
t: (t) => this.Blok.I18n.t(t)
|
|
1358
|
+
t: (t) => this.Blok.I18n.t(t),
|
|
1359
|
+
has: (t) => this.Blok.I18n.has(t)
|
|
1359
1360
|
}), this.cachedMethods;
|
|
1360
1361
|
}
|
|
1361
1362
|
}
|
|
@@ -1458,7 +1459,7 @@ class As {
|
|
|
1458
1459
|
* @returns {Promise<NotifierModule>} loaded notifier module
|
|
1459
1460
|
*/
|
|
1460
1461
|
loadNotifierModule() {
|
|
1461
|
-
return this.notifierModule !== null ? Promise.resolve(this.notifierModule) : (this.loadingPromise === null && (this.loadingPromise = import("./index-
|
|
1462
|
+
return this.notifierModule !== null ? Promise.resolve(this.notifierModule) : (this.loadingPromise === null && (this.loadingPromise = import("./index-Bqo-x11-.mjs").then((t) => {
|
|
1462
1463
|
const e = t;
|
|
1463
1464
|
if (!this.isNotifierModule(e))
|
|
1464
1465
|
throw new Error('notifier module does not expose a "show" method.');
|
|
@@ -1625,7 +1626,7 @@ function Os() {
|
|
|
1625
1626
|
var Ns = Os();
|
|
1626
1627
|
const Rs = /* @__PURE__ */ ps(Ns), Ps = /^\s*(?:javascript\s*:|data\s*:\s*text\s*\/\s*html)/i, Hs = /\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, ve = (a, t, e = {}) => a.map((o) => {
|
|
1627
1628
|
const s = E(t) ? t(o.tool) : t, n = s != null ? s : {};
|
|
1628
|
-
return A(n) && N(n) && N(e) ? o :
|
|
1629
|
+
return A(n) && N(n) && N(e) ? o : P(y({}, o), {
|
|
1629
1630
|
data: we(o.data, n, e)
|
|
1630
1631
|
});
|
|
1631
1632
|
}), q = (a, t = {}) => {
|
|
@@ -1814,7 +1815,7 @@ class qs extends T {
|
|
|
1814
1815
|
}
|
|
1815
1816
|
class Gs extends T {
|
|
1816
1817
|
constructor() {
|
|
1817
|
-
super(...arguments), this.selectionUtils = new
|
|
1818
|
+
super(...arguments), this.selectionUtils = new B();
|
|
1818
1819
|
}
|
|
1819
1820
|
/**
|
|
1820
1821
|
* Available methods
|
|
@@ -2446,7 +2447,7 @@ const it = class it {
|
|
|
2446
2447
|
*/
|
|
2447
2448
|
(this.items.length + o - 1) % this.items.length
|
|
2448
2449
|
);
|
|
2449
|
-
return f.canSetCaret(this.items[s]) && Ft(() =>
|
|
2450
|
+
return f.canSetCaret(this.items[s]) && Ft(() => B.setCursor(this.items[s]), 50)(), this.items[s].classList.add(this.focusedCssClass), this.items[s].setAttribute("data-blok-focused", "true"), s;
|
|
2450
2451
|
}
|
|
2451
2452
|
};
|
|
2452
2453
|
it.directions = {
|
|
@@ -2978,7 +2979,7 @@ class G extends xe {
|
|
|
2978
2979
|
const o = (i = e == null ? void 0 : e.wrapperTag) != null ? i : "div", s = document.createElement(o);
|
|
2979
2980
|
return o === "button" && s.setAttribute("type", "button"), s.className = this.getContainerClass(), s.setAttribute(m.popoverItem, ""), s.setAttribute("data-blok-testid", "popover-item"), t.name && s.setAttribute("data-blok-item-name", t.name), t.dataset && Object.entries(t.dataset).forEach(([d, h]) => {
|
|
2980
2981
|
s.setAttribute(`data-${d}`, h);
|
|
2981
|
-
}), t.isDisabled && s.setAttribute(m.disabled, "true"), this.isActive && s.setAttribute(m.popoverItemActive, "true"), this.hasChildren && s.setAttribute(m.hasChildren, "true"), this.createContentElements(s, t, e), t.hint !== void 0 && ((r = e == null ? void 0 : e.hint) == null ? void 0 : r.enabled) !== !1 && t.hint !== void 0 && this.addHint(s,
|
|
2982
|
+
}), t.isDisabled && s.setAttribute(m.disabled, "true"), this.isActive && s.setAttribute(m.popoverItemActive, "true"), this.hasChildren && s.setAttribute(m.hasChildren, "true"), this.createContentElements(s, t, e), t.hint !== void 0 && ((r = e == null ? void 0 : e.hint) == null ? void 0 : r.enabled) !== !1 && t.hint !== void 0 && this.addHint(s, P(y({}, t.hint), {
|
|
2982
2983
|
position: ((l = e == null ? void 0 : e.hint) == null ? void 0 : l.position) || "right",
|
|
2983
2984
|
alignment: ((c = e == null ? void 0 : e.hint) == null ? void 0 : c.alignment) || "center"
|
|
2984
2985
|
})), s;
|
|
@@ -3083,7 +3084,7 @@ class G extends xe {
|
|
|
3083
3084
|
enableConfirmationMode(t) {
|
|
3084
3085
|
if (this.nodes.root === null)
|
|
3085
3086
|
return;
|
|
3086
|
-
const e =
|
|
3087
|
+
const e = P(y(y({}, this.params), t), {
|
|
3087
3088
|
confirmation: "confirmation" in t ? t.confirmation : void 0
|
|
3088
3089
|
});
|
|
3089
3090
|
this.setConfirmation(e), this.confirmationState = t, this.enableSpecialHoverAndFocusBehavior();
|
|
@@ -3335,7 +3336,7 @@ class St extends xe {
|
|
|
3335
3336
|
return o.className = C(
|
|
3336
3337
|
Gt.root,
|
|
3337
3338
|
this.isInline && Ye.root
|
|
3338
|
-
), 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 && ((s = e == null ? void 0 : e.hint) == null ? void 0 : s.enabled) !== !1 && this.addHint(o,
|
|
3339
|
+
), 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 && ((s = e == null ? void 0 : e.hint) == null ? void 0 : s.enabled) !== !1 && this.addHint(o, P(y({}, t.hint), {
|
|
3339
3340
|
position: ((n = e == null ? void 0 : e.hint) == null ? void 0 : n.position) || "right",
|
|
3340
3341
|
alignment: ((i = e == null ? void 0 : e.hint) == null ? void 0 : i.alignment) || "center"
|
|
3341
3342
|
})), o;
|
|
@@ -3370,7 +3371,7 @@ class ko extends Ct {
|
|
|
3370
3371
|
super(), this.params = t, this.itemsRenderParams = e, this.listeners = new It(), this.messages = {
|
|
3371
3372
|
nothingFound: "Nothing found",
|
|
3372
3373
|
search: "Search"
|
|
3373
|
-
}, this.items = this.buildItems(t.items), t.messages && (this.messages =
|
|
3374
|
+
}, this.items = this.buildItems(t.items), t.messages && (this.messages = y(y({}, this.messages), t.messages)), this.nodes = this.createPopoverDOM(), this.appendItemElements(), this.nodes.popoverContainer && this.listeners.on(this.nodes.popoverContainer, "click", (o) => this.handleClick(o));
|
|
3374
3375
|
}
|
|
3375
3376
|
/**
|
|
3376
3377
|
* List of default popover items that are searchable and may have confirmation state
|
|
@@ -3953,7 +3954,7 @@ class je extends ft {
|
|
|
3953
3954
|
]
|
|
3954
3955
|
});
|
|
3955
3956
|
super(
|
|
3956
|
-
|
|
3957
|
+
P(y({}, t), {
|
|
3957
3958
|
flipper: o
|
|
3958
3959
|
}),
|
|
3959
3960
|
{
|
|
@@ -4108,7 +4109,7 @@ class je extends ft {
|
|
|
4108
4109
|
t !== this.nestedPopoverTriggerItem && ((e = this.nestedPopoverTriggerItem) == null || e.handleClick(), super.destroyNestedPopoverIfExists()), super.handleItemClick(t);
|
|
4109
4110
|
}
|
|
4110
4111
|
}
|
|
4111
|
-
const
|
|
4112
|
+
const H = class H {
|
|
4112
4113
|
constructor() {
|
|
4113
4114
|
this.scrollPosition = null;
|
|
4114
4115
|
}
|
|
@@ -4116,13 +4117,13 @@ const P = class P {
|
|
|
4116
4117
|
* Locks body element scroll
|
|
4117
4118
|
*/
|
|
4118
4119
|
lock() {
|
|
4119
|
-
oe ? this.lockHard() : (document.body.classList.add(
|
|
4120
|
+
oe ? this.lockHard() : (document.body.classList.add(H.CSS.overflowHidden), document.body.setAttribute(H.DATA_ATTR.scrollLocked, "true"));
|
|
4120
4121
|
}
|
|
4121
4122
|
/**
|
|
4122
4123
|
* Unlocks body element scroll
|
|
4123
4124
|
*/
|
|
4124
4125
|
unlock() {
|
|
4125
|
-
oe ? this.unlockHard() : (document.body.classList.remove(
|
|
4126
|
+
oe ? this.unlockHard() : (document.body.classList.remove(H.CSS.overflowHidden), document.body.removeAttribute(H.DATA_ATTR.scrollLocked));
|
|
4126
4127
|
}
|
|
4127
4128
|
/**
|
|
4128
4129
|
* Locks scroll in a hard way (via setting fixed position to body element)
|
|
@@ -4132,31 +4133,31 @@ const P = class P {
|
|
|
4132
4133
|
"--window-scroll-offset",
|
|
4133
4134
|
`${this.scrollPosition}px`
|
|
4134
4135
|
), document.body.classList.add(
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
), document.body.style.top = "calc(-1 * var(--window-scroll-offset))", document.body.setAttribute(
|
|
4136
|
+
H.CSS.overflowHidden,
|
|
4137
|
+
H.CSS.fixed,
|
|
4138
|
+
H.CSS.wFull
|
|
4139
|
+
), document.body.style.top = "calc(-1 * var(--window-scroll-offset))", document.body.setAttribute(H.DATA_ATTR.scrollLockedHard, "true");
|
|
4139
4140
|
}
|
|
4140
4141
|
/**
|
|
4141
4142
|
* Unlocks hard scroll lock
|
|
4142
4143
|
*/
|
|
4143
4144
|
unlockHard() {
|
|
4144
4145
|
document.body.classList.remove(
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
), document.body.style.top = "", document.body.removeAttribute(
|
|
4146
|
+
H.CSS.overflowHidden,
|
|
4147
|
+
H.CSS.fixed,
|
|
4148
|
+
H.CSS.wFull
|
|
4149
|
+
), document.body.style.top = "", document.body.removeAttribute(H.DATA_ATTR.scrollLockedHard), this.scrollPosition !== null && window.scrollTo(0, this.scrollPosition), this.scrollPosition = null;
|
|
4149
4150
|
}
|
|
4150
4151
|
};
|
|
4151
|
-
|
|
4152
|
+
H.CSS = {
|
|
4152
4153
|
overflowHidden: "overflow-hidden",
|
|
4153
4154
|
fixed: "fixed",
|
|
4154
4155
|
wFull: "w-full"
|
|
4155
|
-
},
|
|
4156
|
+
}, H.DATA_ATTR = {
|
|
4156
4157
|
scrollLocked: "data-blok-scroll-locked",
|
|
4157
4158
|
scrollLockedHard: "data-blok-scroll-locked-hard"
|
|
4158
4159
|
};
|
|
4159
|
-
let le =
|
|
4160
|
+
let le = H;
|
|
4160
4161
|
const Jt = {
|
|
4161
4162
|
root: "flex items-center mb-2 mt-1",
|
|
4162
4163
|
text: "text-lg font-semibold text-text-primary",
|
|
@@ -4325,7 +4326,7 @@ class vo extends ko {
|
|
|
4325
4326
|
}
|
|
4326
4327
|
class Bn extends T {
|
|
4327
4328
|
constructor() {
|
|
4328
|
-
super(...arguments), this.opened = !1, this.selection = new
|
|
4329
|
+
super(...arguments), this.opened = !1, this.selection = new B(), this.popover = null, this.flipperInstance = new Z({
|
|
4329
4330
|
focusedItemClass: lt.focused,
|
|
4330
4331
|
allowedKeys: [
|
|
4331
4332
|
v.TAB,
|
|
@@ -4336,7 +4337,7 @@ class Bn extends T {
|
|
|
4336
4337
|
v.LEFT
|
|
4337
4338
|
]
|
|
4338
4339
|
}), this.flipperKeydownHandler = null, this.flipperKeydownSource = null, this.close = () => {
|
|
4339
|
-
this.opened && (this.opened = !1,
|
|
4340
|
+
this.opened && (this.opened = !1, B.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));
|
|
4340
4341
|
}, this.onPopoverClose = () => {
|
|
4341
4342
|
this.close();
|
|
4342
4343
|
};
|
|
@@ -4836,7 +4837,7 @@ class Cn {
|
|
|
4836
4837
|
return (this.registeredShortcuts.get(t) || []).find(({ name: s }) => s === e);
|
|
4837
4838
|
}
|
|
4838
4839
|
}
|
|
4839
|
-
const
|
|
4840
|
+
const _ = new Cn();
|
|
4840
4841
|
var Nt = /* @__PURE__ */ ((a) => (a.Opened = "toolbox-opened", a.Closed = "toolbox-closed", a.BlockAdded = "toolbox-block-added", a))(Nt || {});
|
|
4841
4842
|
class In extends Ct {
|
|
4842
4843
|
/**
|
|
@@ -5009,7 +5010,7 @@ class In extends Ct {
|
|
|
5009
5010
|
* @param {string} shortcut - shortcut according to the ShortcutData Module format
|
|
5010
5011
|
*/
|
|
5011
5012
|
enableShortcutForTool(t, e) {
|
|
5012
|
-
|
|
5013
|
+
_.add({
|
|
5013
5014
|
name: e,
|
|
5014
5015
|
on: this.api.ui.nodes.redactor,
|
|
5015
5016
|
handler: async (o) => {
|
|
@@ -5033,7 +5034,7 @@ class In extends Ct {
|
|
|
5033
5034
|
removeAllShortcuts() {
|
|
5034
5035
|
this.toolsToBeDisplayed.forEach((t) => {
|
|
5035
5036
|
const e = t.shortcut;
|
|
5036
|
-
e &&
|
|
5037
|
+
e && _.remove(this.api.ui.nodes.redactor, e);
|
|
5037
5038
|
});
|
|
5038
5039
|
}
|
|
5039
5040
|
/**
|
|
@@ -5427,7 +5428,7 @@ class En extends T {
|
|
|
5427
5428
|
*/
|
|
5428
5429
|
plusButtonClicked() {
|
|
5429
5430
|
var t, e;
|
|
5430
|
-
this.hoveredBlock && (this.Blok.BlockManager.currentBlock = this.hoveredBlock), this.Blok.BlockSettings.opened && this.Blok.BlockSettings.close(), this.Blok.BlockSelection.anyBlockSelected && this.Blok.BlockSelection.clearSelection(), (t =
|
|
5431
|
+
this.hoveredBlock && (this.Blok.BlockManager.currentBlock = this.hoveredBlock), this.Blok.BlockSettings.opened && this.Blok.BlockSettings.close(), this.Blok.BlockSelection.anyBlockSelected && this.Blok.BlockSelection.clearSelection(), (t = B.get()) == null || t.removeAllRanges(), (e = this.toolboxInstance) == null || e.toggle();
|
|
5431
5432
|
}
|
|
5432
5433
|
/**
|
|
5433
5434
|
* Enable bindings
|
|
@@ -5839,14 +5840,14 @@ class An extends T {
|
|
|
5839
5840
|
if (t instanceof HTMLElement)
|
|
5840
5841
|
return i;
|
|
5841
5842
|
if (t.type === O.Html)
|
|
5842
|
-
return i.push(
|
|
5843
|
+
return i.push(P(y(y({}, r), t), {
|
|
5843
5844
|
type: O.Html
|
|
5844
5845
|
})), i;
|
|
5845
5846
|
if (t.type === O.Separator)
|
|
5846
5847
|
return i.push({
|
|
5847
5848
|
type: O.Separator
|
|
5848
5849
|
}), i;
|
|
5849
|
-
const l =
|
|
5850
|
+
const l = P(y(y({}, r), t), {
|
|
5850
5851
|
type: O.Default
|
|
5851
5852
|
});
|
|
5852
5853
|
return i.push(l), "children" in l && n && i.push({
|
|
@@ -5859,7 +5860,7 @@ class An extends T {
|
|
|
5859
5860
|
applyPosition(t) {
|
|
5860
5861
|
if (!this.nodes.wrapper)
|
|
5861
5862
|
return;
|
|
5862
|
-
const e = this.Blok.UI.nodes.wrapper.getBoundingClientRect(), o = this.Blok.UI.contentRect, s =
|
|
5863
|
+
const e = this.Blok.UI.nodes.wrapper.getBoundingClientRect(), o = this.Blok.UI.contentRect, s = B.rect, n = {
|
|
5863
5864
|
x: s.x - e.x,
|
|
5864
5865
|
y: s.y + s.height - e.top + this.toolbarVerticalMargin
|
|
5865
5866
|
};
|
|
@@ -5869,7 +5870,7 @@ class An extends T {
|
|
|
5869
5870
|
* Need to show Inline Toolbar or not
|
|
5870
5871
|
*/
|
|
5871
5872
|
allowedToShow() {
|
|
5872
|
-
const t = ["IMG", "INPUT"], e = this.resolveSelection(), o =
|
|
5873
|
+
const t = ["IMG", "INPUT"], e = this.resolveSelection(), o = B.text;
|
|
5873
5874
|
if (!e || !e.anchorNode || e.isCollapsed || o.length < 1)
|
|
5874
5875
|
return !1;
|
|
5875
5876
|
const s = f.isElement(e.anchorNode) ? e.anchorNode : e.anchorNode.parentElement;
|
|
@@ -5882,7 +5883,7 @@ class An extends T {
|
|
|
5882
5883
|
if (s.closest(d) !== null)
|
|
5883
5884
|
return !0;
|
|
5884
5885
|
const u = r.holder;
|
|
5885
|
-
return u && (u.matches(d) ? u : u.closest(d)) ? !0 : this.Blok.ReadOnly.isEnabled ?
|
|
5886
|
+
return u && (u.matches(d) ? u : u.closest(d)) ? !0 : this.Blok.ReadOnly.isEnabled ? B.isSelectionAtBlok(e) : !1;
|
|
5886
5887
|
}
|
|
5887
5888
|
/**
|
|
5888
5889
|
* Working with Tools
|
|
@@ -5933,7 +5934,7 @@ class An extends T {
|
|
|
5933
5934
|
*/
|
|
5934
5935
|
enableShortcuts(t, e) {
|
|
5935
5936
|
const o = this.registeredShortcuts.get(t);
|
|
5936
|
-
o !== e && (this.isShortcutTakenByAnotherTool(t, e) || (o !== void 0 && (
|
|
5937
|
+
o !== e && (this.isShortcutTakenByAnotherTool(t, e) || (o !== void 0 && (_.remove(document, o), this.registeredShortcuts.delete(t)), _.add({
|
|
5937
5938
|
name: e,
|
|
5938
5939
|
handler: (s) => {
|
|
5939
5940
|
const { currentBlock: n } = this.Blok.BlockManager;
|
|
@@ -5999,11 +6000,11 @@ class An extends T {
|
|
|
5999
6000
|
* Resolves the current selection, handling test mocks
|
|
6000
6001
|
*/
|
|
6001
6002
|
resolveSelection() {
|
|
6002
|
-
const t =
|
|
6003
|
+
const t = B.selection;
|
|
6003
6004
|
if (t !== void 0)
|
|
6004
6005
|
return t;
|
|
6005
|
-
const e =
|
|
6006
|
-
return e !== void 0 ? e :
|
|
6006
|
+
const e = B.instance;
|
|
6007
|
+
return e !== void 0 ? e : B.get();
|
|
6007
6008
|
}
|
|
6008
6009
|
}
|
|
6009
6010
|
const $t = {
|
|
@@ -6240,7 +6241,7 @@ class Rn {
|
|
|
6240
6241
|
* Add custom dictionary overrides
|
|
6241
6242
|
*/
|
|
6242
6243
|
setDictionary(t) {
|
|
6243
|
-
this.overrides =
|
|
6244
|
+
this.overrides = y(y({}, this.overrides), t);
|
|
6244
6245
|
}
|
|
6245
6246
|
/**
|
|
6246
6247
|
* Get the current locale
|
|
@@ -6366,7 +6367,7 @@ class Pn extends T {
|
|
|
6366
6367
|
async ensureI18nextLoaded(t, e) {
|
|
6367
6368
|
if (this.i18nextWrapper !== null)
|
|
6368
6369
|
return;
|
|
6369
|
-
const { loadI18next: o } = await import("./i18next-loader-
|
|
6370
|
+
const { loadI18next: o } = await import("./i18next-loader-DolG6O7i.mjs");
|
|
6370
6371
|
this.i18nextWrapper = await o(t, e);
|
|
6371
6372
|
}
|
|
6372
6373
|
/**
|
|
@@ -6798,7 +6799,7 @@ const Hn = (a) => {
|
|
|
6798
6799
|
const { BlockSelection: e, BlockManager: o, Caret: s, BlockSettings: n } = this.Blok;
|
|
6799
6800
|
if (n.contains(t.target))
|
|
6800
6801
|
return !1;
|
|
6801
|
-
const i = t.key === "Backspace" || t.key === "Delete", r =
|
|
6802
|
+
const i = t.key === "Backspace" || t.key === "Delete", r = B.isSelectionExists, l = B.isCollapsed === !0;
|
|
6802
6803
|
if (!(i && e.anyBlockSelected && (!r || l)))
|
|
6803
6804
|
return !1;
|
|
6804
6805
|
const d = o.removeSelectedBlocks();
|
|
@@ -6883,7 +6884,7 @@ const Hn = (a) => {
|
|
|
6883
6884
|
return;
|
|
6884
6885
|
const i = n.textContent || "", r = o.holder.getAttribute("data-blok-depth"), l = r ? parseInt(r, 10) : 0, c = tt.CHECKLIST_PATTERN.exec(i);
|
|
6885
6886
|
if (c) {
|
|
6886
|
-
const S = ((x = c[1]) == null ? void 0 : x.toLowerCase()) === "x", M = c[1] !== void 0 ? 4 : 3, R = this.extractRemainingHtml(n, M), D = this.getCaretOffset(n) - M, et = t.replace(o, "list",
|
|
6887
|
+
const S = ((x = c[1]) == null ? void 0 : x.toLowerCase()) === "x", M = c[1] !== void 0 ? 4 : 3, R = this.extractRemainingHtml(n, M), D = this.getCaretOffset(n) - M, et = t.replace(o, "list", y({
|
|
6887
6888
|
text: R,
|
|
6888
6889
|
style: "checklist",
|
|
6889
6890
|
checked: S
|
|
@@ -6892,7 +6893,7 @@ const Hn = (a) => {
|
|
|
6892
6893
|
return;
|
|
6893
6894
|
}
|
|
6894
6895
|
if (tt.UNORDERED_LIST_PATTERN.exec(i)) {
|
|
6895
|
-
const M = this.extractRemainingHtml(n, 2), R = this.getCaretOffset(n) - 2, D = t.replace(o, "list",
|
|
6896
|
+
const M = this.extractRemainingHtml(n, 2), R = this.getCaretOffset(n) - 2, D = t.replace(o, "list", y({
|
|
6896
6897
|
text: M,
|
|
6897
6898
|
style: "unordered",
|
|
6898
6899
|
checked: !1
|
|
@@ -7035,7 +7036,7 @@ const Hn = (a) => {
|
|
|
7035
7036
|
*/
|
|
7036
7037
|
backspace(t) {
|
|
7037
7038
|
const { BlockManager: e, Caret: o } = this.Blok, { currentBlock: s, previousBlock: n } = e;
|
|
7038
|
-
if (s === void 0 || !
|
|
7039
|
+
if (s === void 0 || !B.isCollapsed || !s.currentInput || !Pt(s.currentInput))
|
|
7039
7040
|
return;
|
|
7040
7041
|
if (t.preventDefault(), this.Blok.Toolbar.close(), !(s.currentInput === s.firstInput)) {
|
|
7041
7042
|
o.navigatePrevious();
|
|
@@ -7063,7 +7064,7 @@ const Hn = (a) => {
|
|
|
7063
7064
|
*/
|
|
7064
7065
|
delete(t) {
|
|
7065
7066
|
const { BlockManager: e, Caret: o } = this.Blok, { currentBlock: s, nextBlock: n } = e;
|
|
7066
|
-
if (s === void 0 || !
|
|
7067
|
+
if (s === void 0 || !B.isCollapsed || !s.currentInput || !kt(s.currentInput))
|
|
7067
7068
|
return;
|
|
7068
7069
|
if (t.preventDefault(), this.Blok.Toolbar.close(), !(s.currentInput === s.lastInput)) {
|
|
7069
7070
|
o.navigateNext();
|
|
@@ -7106,7 +7107,7 @@ const Hn = (a) => {
|
|
|
7106
7107
|
if (this.Blok.UI.someToolbarOpened && o)
|
|
7107
7108
|
return;
|
|
7108
7109
|
t.shiftKey || (this.Blok.Toolbar.close(), this.Blok.InlineToolbar.close());
|
|
7109
|
-
const s =
|
|
7110
|
+
const s = B.get();
|
|
7110
7111
|
s != null && s.anchorNode && !this.Blok.BlockSelection.anyBlockSelected && this.Blok.BlockManager.setCurrentBlockByChildNode(s.anchorNode);
|
|
7111
7112
|
const { currentBlock: n } = this.Blok.BlockManager, i = t.target, r = document.activeElement instanceof HTMLElement ? document.activeElement : null, l = [
|
|
7112
7113
|
n == null ? void 0 : n.inputs.find((S) => i !== null && S.contains(i)),
|
|
@@ -7121,7 +7122,7 @@ const Hn = (a) => {
|
|
|
7121
7122
|
u && this.Blok.InlineToolbar.tryToShow();
|
|
7122
7123
|
const p = e === v.RIGHT && !t.shiftKey && !this.isRtl && c instanceof HTMLElement ? Hn(c) : null;
|
|
7123
7124
|
if (p !== null) {
|
|
7124
|
-
|
|
7125
|
+
B.setCursor(p.node, p.offset), t.preventDefault();
|
|
7125
7126
|
return;
|
|
7126
7127
|
}
|
|
7127
7128
|
const b = e === v.DOWN, k = e === v.RIGHT && !this.isRtl;
|
|
@@ -8114,13 +8115,13 @@ class Gn extends T {
|
|
|
8114
8115
|
*/
|
|
8115
8116
|
setupKeyboardShortcuts() {
|
|
8116
8117
|
setTimeout(() => {
|
|
8117
|
-
["CMD+SHIFT+UP", "CMD+SHIFT+DOWN"].forEach((e) =>
|
|
8118
|
+
["CMD+SHIFT+UP", "CMD+SHIFT+DOWN"].forEach((e) => _.remove(document, e)), _.add({
|
|
8118
8119
|
name: "CMD+SHIFT+UP",
|
|
8119
8120
|
on: document,
|
|
8120
8121
|
handler: (e) => {
|
|
8121
8122
|
this.shouldHandleShortcut(e) && (e.preventDefault(), this.moveCurrentBlockUp());
|
|
8122
8123
|
}
|
|
8123
|
-
}), this.registeredShortcuts.push("CMD+SHIFT+UP"),
|
|
8124
|
+
}), this.registeredShortcuts.push("CMD+SHIFT+UP"), _.add({
|
|
8124
8125
|
name: "CMD+SHIFT+DOWN",
|
|
8125
8126
|
on: document,
|
|
8126
8127
|
handler: (e) => {
|
|
@@ -8146,7 +8147,7 @@ class Gn extends T {
|
|
|
8146
8147
|
*/
|
|
8147
8148
|
async destroy() {
|
|
8148
8149
|
for (const t of this.registeredShortcuts)
|
|
8149
|
-
|
|
8150
|
+
_.remove(document, t);
|
|
8150
8151
|
this.registeredShortcuts = [], await Promise.all(this.blocks.map((t) => t.destroy()));
|
|
8151
8152
|
}
|
|
8152
8153
|
/**
|
|
@@ -8200,10 +8201,10 @@ class Gn extends T {
|
|
|
8200
8201
|
* @param detailData - additional data to pass with change event
|
|
8201
8202
|
*/
|
|
8202
8203
|
blockDidMutated(t, e, o) {
|
|
8203
|
-
const s =
|
|
8204
|
+
const s = y({
|
|
8204
8205
|
target: new V(e)
|
|
8205
8206
|
}, o), n = new CustomEvent(t, {
|
|
8206
|
-
detail:
|
|
8207
|
+
detail: y({}, s)
|
|
8207
8208
|
});
|
|
8208
8209
|
return Object.prototype.propertyIsEnumerable.call(n, "type") || Object.defineProperty(n, "type", {
|
|
8209
8210
|
value: t,
|
|
@@ -8220,7 +8221,7 @@ class Gn extends T {
|
|
|
8220
8221
|
}
|
|
8221
8222
|
class Zn extends T {
|
|
8222
8223
|
constructor() {
|
|
8223
|
-
super(...arguments), this.anyBlockSelectedCache = null, this._navigationModeEnabled = !1, this.navigationFocusIndex = -1, this.needToSelectAll = !1, this.nativeInputSelected = !1, this.readyToBlockSelection = !1, this.selection = new
|
|
8224
|
+
super(...arguments), this.anyBlockSelectedCache = null, this._navigationModeEnabled = !1, this.navigationFocusIndex = -1, this.needToSelectAll = !1, this.nativeInputSelected = !1, this.readyToBlockSelection = !1, this.selection = new B();
|
|
8224
8225
|
}
|
|
8225
8226
|
/**
|
|
8226
8227
|
* Sanitizer Config
|
|
@@ -8307,7 +8308,7 @@ class Zn extends T {
|
|
|
8307
8308
|
* to select all and copy them
|
|
8308
8309
|
*/
|
|
8309
8310
|
prepare() {
|
|
8310
|
-
this.selection = new
|
|
8311
|
+
this.selection = new B(), _.add({
|
|
8311
8312
|
name: "CMD+A",
|
|
8312
8313
|
handler: (t) => {
|
|
8313
8314
|
const { BlockManager: e, ReadOnly: o } = this.Blok;
|
|
@@ -8327,7 +8328,7 @@ class Zn extends T {
|
|
|
8327
8328
|
* - Unselect all Blocks
|
|
8328
8329
|
*/
|
|
8329
8330
|
toggleReadOnly() {
|
|
8330
|
-
const t =
|
|
8331
|
+
const t = B.get();
|
|
8331
8332
|
t == null || t.removeAllRanges(), this.allBlocksSelected = !1;
|
|
8332
8333
|
}
|
|
8333
8334
|
/**
|
|
@@ -8347,7 +8348,7 @@ class Zn extends T {
|
|
|
8347
8348
|
const { RectangleSelection: o } = this.Blok;
|
|
8348
8349
|
this.needToSelectAll = !1, this.nativeInputSelected = !1, this.readyToBlockSelection = !1, this._navigationModeEnabled && this.disableNavigationMode();
|
|
8349
8350
|
const s = t && t instanceof KeyboardEvent, n = t, i = s && n.key && n.key.length === 1;
|
|
8350
|
-
this.anyBlockSelected && s && i && !
|
|
8351
|
+
this.anyBlockSelected && s && i && !B.isSelectionExists && this.replaceSelectedBlocksWithPrintableKey(t), this.Blok.CrossBlockSelection.clear(t), e && this.selection.restore(), o.isRectActivated() && this.Blok.RectangleSelection.clearSelection(), this.anyBlockSelected && (this.allBlocksSelected = !1);
|
|
8351
8352
|
}
|
|
8352
8353
|
/**
|
|
8353
8354
|
* Reduce each Block and copy its content
|
|
@@ -8396,7 +8397,7 @@ class Zn extends T {
|
|
|
8396
8397
|
*/
|
|
8397
8398
|
selectBlock(t) {
|
|
8398
8399
|
this.selection.save();
|
|
8399
|
-
const e =
|
|
8400
|
+
const e = B.get();
|
|
8400
8401
|
e == null || e.removeAllRanges();
|
|
8401
8402
|
const o = t;
|
|
8402
8403
|
o.selected = !0, this.clearCache(), this.Blok.InlineToolbar.close();
|
|
@@ -8471,7 +8472,7 @@ class Zn extends T {
|
|
|
8471
8472
|
return;
|
|
8472
8473
|
const s = this.navigationFocusedBlock;
|
|
8473
8474
|
s && s.holder.removeAttribute("data-blok-navigation-focused"), this.navigationFocusIndex = t, o.holder.setAttribute("data-blok-navigation-focused", "true");
|
|
8474
|
-
const n =
|
|
8475
|
+
const n = B.get();
|
|
8475
8476
|
n == null || n.removeAllRanges(), document.activeElement instanceof HTMLElement && document.activeElement.blur(), o.holder.scrollIntoView({
|
|
8476
8477
|
behavior: "smooth",
|
|
8477
8478
|
block: "nearest"
|
|
@@ -8482,7 +8483,7 @@ class Zn extends T {
|
|
|
8482
8483
|
* De-registers Shortcut CMD+A
|
|
8483
8484
|
*/
|
|
8484
8485
|
destroy() {
|
|
8485
|
-
|
|
8486
|
+
_.remove(this.Blok.UI.nodes.redactor, "CMD+A");
|
|
8486
8487
|
}
|
|
8487
8488
|
/**
|
|
8488
8489
|
* First CMD+A selects all input content by native behaviour,
|
|
@@ -8518,7 +8519,7 @@ class Zn extends T {
|
|
|
8518
8519
|
*/
|
|
8519
8520
|
selectAllBlocks() {
|
|
8520
8521
|
this.selection.save();
|
|
8521
|
-
const t =
|
|
8522
|
+
const t = B.get();
|
|
8522
8523
|
t == null || t.removeAllRanges(), this.allBlocksSelected = !0, this.Blok.InlineToolbar.close();
|
|
8523
8524
|
}
|
|
8524
8525
|
/**
|
|
@@ -8751,7 +8752,7 @@ class Ee extends T {
|
|
|
8751
8752
|
* @param {number} offset - offset
|
|
8752
8753
|
*/
|
|
8753
8754
|
set(t, e = 0) {
|
|
8754
|
-
const { top: s, bottom: n } =
|
|
8755
|
+
const { top: s, bottom: n } = B.setCursor(t, e), { innerHeight: i } = window;
|
|
8755
8756
|
if (s < 0) {
|
|
8756
8757
|
window.scrollBy(0, s - 30);
|
|
8757
8758
|
return;
|
|
@@ -8777,7 +8778,7 @@ class Ee extends T {
|
|
|
8777
8778
|
*/
|
|
8778
8779
|
extractFragmentFromCaretPosition() {
|
|
8779
8780
|
var i;
|
|
8780
|
-
const t =
|
|
8781
|
+
const t = B.get();
|
|
8781
8782
|
if (!t || !t.rangeCount)
|
|
8782
8783
|
return;
|
|
8783
8784
|
const e = t.getRangeAt(0), o = this.Blok.BlockManager.currentBlock;
|
|
@@ -8900,7 +8901,7 @@ class Ee extends T {
|
|
|
8900
8901
|
const e = t.querySelector('[data-blok-testid="shadow-caret"]');
|
|
8901
8902
|
if (!e)
|
|
8902
8903
|
return;
|
|
8903
|
-
new
|
|
8904
|
+
new B().expandToTag(e);
|
|
8904
8905
|
const s = document.createRange();
|
|
8905
8906
|
s.selectNode(e), s.extractContents();
|
|
8906
8907
|
}
|
|
@@ -8909,7 +8910,7 @@ class Ee extends T {
|
|
|
8909
8910
|
* @param {string} content - content to insert
|
|
8910
8911
|
*/
|
|
8911
8912
|
insertContentAtCaretPosition(t) {
|
|
8912
|
-
const e = document.createDocumentFragment(), o = document.createElement("div"), s =
|
|
8913
|
+
const e = document.createDocumentFragment(), o = document.createElement("div"), s = B.get(), n = B.range;
|
|
8913
8914
|
if (!s || !n)
|
|
8914
8915
|
return;
|
|
8915
8916
|
o.innerHTML = t, Array.from(o.childNodes).forEach((c) => e.appendChild(c)), e.childNodes.length === 0 && e.appendChild(new Text());
|
|
@@ -8931,7 +8932,7 @@ class ti extends T {
|
|
|
8931
8932
|
const r = o.getBlockByChildNode(e.relatedTarget) || this.lastSelectedBlock, l = o.getBlockByChildNode(e.target);
|
|
8932
8933
|
if (!(!r || !l) && l !== r) {
|
|
8933
8934
|
if (this.firstSelectedBlock && r === this.firstSelectedBlock) {
|
|
8934
|
-
(c =
|
|
8935
|
+
(c = B.get()) == null || c.removeAllRanges(), r.selected = !0, l.selected = !0, s.clearCache();
|
|
8935
8936
|
return;
|
|
8936
8937
|
}
|
|
8937
8938
|
if (this.firstSelectedBlock && l === this.firstSelectedBlock) {
|
|
@@ -8976,7 +8977,7 @@ class ti extends T {
|
|
|
8976
8977
|
toggleBlockSelectedState(t = !0) {
|
|
8977
8978
|
var r;
|
|
8978
8979
|
const { BlockManager: e, BlockSelection: o } = this.Blok, s = e.currentBlock;
|
|
8979
|
-
if (!this.lastSelectedBlock && !s || (!this.lastSelectedBlock && s && (this.lastSelectedBlock = this.firstSelectedBlock = s), this.firstSelectedBlock === this.lastSelectedBlock && this.firstSelectedBlock && (this.firstSelectedBlock.selected = !0, o.clearCache(), (r =
|
|
8980
|
+
if (!this.lastSelectedBlock && !s || (!this.lastSelectedBlock && s && (this.lastSelectedBlock = this.firstSelectedBlock = s), this.firstSelectedBlock === this.lastSelectedBlock && this.firstSelectedBlock && (this.firstSelectedBlock.selected = !0, o.clearCache(), (r = B.get()) == null || r.removeAllRanges(), this.Blok.Toolbar.close()), !this.lastSelectedBlock))
|
|
8980
8981
|
return;
|
|
8981
8982
|
const n = e.blocks.indexOf(this.lastSelectedBlock) + (t ? 1 : -1), i = e.blocks[n];
|
|
8982
8983
|
i && (this.lastSelectedBlock.selected !== i.selected ? (i.selected = !0, o.clearCache(), this.Blok.Toolbar.close()) : (this.lastSelectedBlock.selected = !1, o.clearCache(), this.Blok.Toolbar.close()), this.lastSelectedBlock = i, this.Blok.InlineToolbar.close(), i.holder.scrollIntoView({
|
|
@@ -9017,7 +9018,7 @@ class ti extends T {
|
|
|
9017
9018
|
*/
|
|
9018
9019
|
enableCrossBlockSelection(t) {
|
|
9019
9020
|
const { UI: e } = this.Blok;
|
|
9020
|
-
e.nodes.redactor && (
|
|
9021
|
+
e.nodes.redactor && (B.isCollapsed || this.Blok.BlockSelection.clearSelection(t), e.nodes.redactor.contains(t.target) ? this.watchSelection(t) : this.Blok.BlockSelection.clearSelection(t));
|
|
9021
9022
|
}
|
|
9022
9023
|
/**
|
|
9023
9024
|
* Change blocks selection state between passed two blocks.
|
|
@@ -9946,7 +9947,7 @@ const ro = /* @__PURE__ */ new Set([
|
|
|
9946
9947
|
if (!i)
|
|
9947
9948
|
return null;
|
|
9948
9949
|
const { content: r, tool: l, isBlock: c } = i, h = (l.pasteConfig === !1 ? [] : ((k = l.pasteConfig) == null ? void 0 : k.tags) || []).reduce((w, x) => {
|
|
9949
|
-
const S = this.collectTagNames(x), M =
|
|
9950
|
+
const S = this.collectTagNames(x), M = y({}, w);
|
|
9950
9951
|
return S.forEach((R) => {
|
|
9951
9952
|
const D = A(x) ? x[R] : null;
|
|
9952
9953
|
M[R.toLowerCase()] = D != null ? D : {};
|
|
@@ -10389,7 +10390,7 @@ class ni extends T {
|
|
|
10389
10390
|
if (this.rectCrossesBlocks = !(i || r), this.isRectSelectionActivated || (this.rectCrossesBlocks = !1, this.isRectSelectionActivated = !0, this.shrinkRectangleToPoint(), e.style.display = "block"), this.updateRectangleSize(), this.Blok.Toolbar.close(), n === void 0)
|
|
10390
10391
|
return;
|
|
10391
10392
|
this.trySelectNextBlock(n), this.inverseSelection();
|
|
10392
|
-
const l =
|
|
10393
|
+
const l = B.get();
|
|
10393
10394
|
l && l.removeAllRanges();
|
|
10394
10395
|
}
|
|
10395
10396
|
/**
|
|
@@ -10512,10 +10513,10 @@ const ii = (a) => a.some((t) => t.items !== void 0 && t.items.length > 0), ri =
|
|
|
10512
10513
|
return a.forEach((l, c) => {
|
|
10513
10514
|
const d = be();
|
|
10514
10515
|
r.push(d);
|
|
10515
|
-
const h = l.items && l.items.length > 0 ? Lo(l.items, d, e + 1, o, void 0, n, i) : [], u = o === "ordered" && e === 0 && c === 0 && s !== void 0 && s !== 1, g =
|
|
10516
|
+
const h = l.items && l.items.length > 0 ? Lo(l.items, d, e + 1, o, void 0, n, i) : [], u = o === "ordered" && e === 0 && c === 0 && s !== void 0 && s !== 1, g = y(y(y({
|
|
10516
10517
|
id: d,
|
|
10517
10518
|
type: "list_item",
|
|
10518
|
-
data:
|
|
10519
|
+
data: y({
|
|
10519
10520
|
text: l.content,
|
|
10520
10521
|
checked: l.checked,
|
|
10521
10522
|
style: o
|
|
@@ -10535,7 +10536,7 @@ const ii = (a) => a.some((t) => t.items !== void 0 && t.items.length > 0), ri =
|
|
|
10535
10536
|
const r = s.data, l = ci(r, s.tunes);
|
|
10536
10537
|
t.push(...l);
|
|
10537
10538
|
} else
|
|
10538
|
-
t.push(
|
|
10539
|
+
t.push(P(y({}, s), {
|
|
10539
10540
|
id: n
|
|
10540
10541
|
}));
|
|
10541
10542
|
}
|
|
@@ -10567,10 +10568,10 @@ const ii = (a) => a.some((t) => t.items !== void 0 && t.items.length > 0), ri =
|
|
|
10567
10568
|
}, pi = (a, t, e) => {
|
|
10568
10569
|
var r, l;
|
|
10569
10570
|
const o = Oo(a, t, e), s = ((r = a.data) == null ? void 0 : r.style) || "unordered", n = (l = a.data) == null ? void 0 : l.start;
|
|
10570
|
-
return
|
|
10571
|
+
return y({
|
|
10571
10572
|
id: a.id,
|
|
10572
10573
|
type: "list",
|
|
10573
|
-
data:
|
|
10574
|
+
data: y({
|
|
10574
10575
|
style: s,
|
|
10575
10576
|
items: o
|
|
10576
10577
|
}, s === "ordered" && n !== void 0 && n !== 1 ? { start: n } : {})
|
|
@@ -10726,7 +10727,7 @@ class ki extends T {
|
|
|
10726
10727
|
isValid: !1
|
|
10727
10728
|
};
|
|
10728
10729
|
const n = await t.validate(s.data);
|
|
10729
|
-
return
|
|
10730
|
+
return P(y({}, s), {
|
|
10730
10731
|
isValid: n,
|
|
10731
10732
|
parentId: t.parentId,
|
|
10732
10733
|
contentIds: t.contentIds
|
|
@@ -10757,7 +10758,7 @@ class ki extends T {
|
|
|
10757
10758
|
I("Stub block data is malformed and was skipped");
|
|
10758
10759
|
return;
|
|
10759
10760
|
}
|
|
10760
|
-
const k = u === void 0 || N(u), w = p != null, x = b !== void 0 && b.length > 0, S =
|
|
10761
|
+
const k = u === void 0 || N(u), w = p != null, x = b !== void 0 && b.length > 0, S = y(y(y({
|
|
10761
10762
|
id: c,
|
|
10762
10763
|
type: d,
|
|
10763
10764
|
data: h
|
|
@@ -10796,10 +10797,10 @@ class ki extends T {
|
|
|
10796
10797
|
s.map(({ data: r }) => r),
|
|
10797
10798
|
e,
|
|
10798
10799
|
o
|
|
10799
|
-
), i = t.map((r) =>
|
|
10800
|
+
), i = t.map((r) => y({}, r));
|
|
10800
10801
|
return s.forEach(({ index: r }, l) => {
|
|
10801
10802
|
const c = n[l];
|
|
10802
|
-
i[r] =
|
|
10803
|
+
i[r] = P(y({}, i[r]), {
|
|
10803
10804
|
data: c.data
|
|
10804
10805
|
});
|
|
10805
10806
|
}), i;
|
|
@@ -10836,7 +10837,7 @@ class ki extends T {
|
|
|
10836
10837
|
if (N(e))
|
|
10837
10838
|
return;
|
|
10838
10839
|
const o = t.preservedTunes;
|
|
10839
|
-
return
|
|
10840
|
+
return P(y({
|
|
10840
10841
|
id: t.id,
|
|
10841
10842
|
tool: t.name,
|
|
10842
10843
|
data: e
|
|
@@ -10946,46 +10947,46 @@ class wi extends Se {
|
|
|
10946
10947
|
});
|
|
10947
10948
|
}
|
|
10948
10949
|
}
|
|
10949
|
-
class
|
|
10950
|
+
class F extends Map {
|
|
10950
10951
|
/**
|
|
10951
10952
|
* Returns Block Tools collection
|
|
10952
10953
|
*/
|
|
10953
10954
|
get blockTools() {
|
|
10954
10955
|
const t = Array.from(this.entries()).filter(([, e]) => e.isBlock());
|
|
10955
|
-
return new
|
|
10956
|
+
return new F(t);
|
|
10956
10957
|
}
|
|
10957
10958
|
/**
|
|
10958
10959
|
* Returns Inline Tools collection
|
|
10959
10960
|
*/
|
|
10960
10961
|
get inlineTools() {
|
|
10961
10962
|
const t = Array.from(this.entries()).filter(([, e]) => e.isInline());
|
|
10962
|
-
return new
|
|
10963
|
+
return new F(t);
|
|
10963
10964
|
}
|
|
10964
10965
|
/**
|
|
10965
10966
|
* Returns Block Tunes collection
|
|
10966
10967
|
*/
|
|
10967
10968
|
get blockTunes() {
|
|
10968
10969
|
const t = Array.from(this.entries()).filter(([, e]) => e.isTune());
|
|
10969
|
-
return new
|
|
10970
|
+
return new F(t);
|
|
10970
10971
|
}
|
|
10971
10972
|
/**
|
|
10972
10973
|
* Returns internal Tools collection
|
|
10973
10974
|
*/
|
|
10974
10975
|
get internalTools() {
|
|
10975
10976
|
const t = Array.from(this.entries()).filter(([, e]) => e.isInternal);
|
|
10976
|
-
return new
|
|
10977
|
+
return new F(t);
|
|
10977
10978
|
}
|
|
10978
10979
|
/**
|
|
10979
10980
|
* Returns Tools collection provided by user
|
|
10980
10981
|
*/
|
|
10981
10982
|
get externalTools() {
|
|
10982
10983
|
const t = Array.from(this.entries()).filter(([, e]) => !e.isInternal);
|
|
10983
|
-
return new
|
|
10984
|
+
return new F(t);
|
|
10984
10985
|
}
|
|
10985
10986
|
}
|
|
10986
10987
|
class yi extends Se {
|
|
10987
10988
|
constructor() {
|
|
10988
|
-
super(...arguments), this.type = dt.Block, this.inlineTools = new
|
|
10989
|
+
super(...arguments), this.type = dt.Block, this.inlineTools = new F(), this.tunes = new F();
|
|
10989
10990
|
}
|
|
10990
10991
|
/**
|
|
10991
10992
|
* Creates new Tool instance
|
|
@@ -10994,12 +10995,13 @@ class yi extends Se {
|
|
|
10994
10995
|
* @param readOnly - True if Blok is in read-only mode
|
|
10995
10996
|
*/
|
|
10996
10997
|
create(t, e, o) {
|
|
10998
|
+
const s = this.toolbox, n = s !== void 0 ? P(y({}, this.settings), { _toolboxEntries: s }) : this.settings;
|
|
10997
10999
|
return new this.constructable({
|
|
10998
11000
|
data: t,
|
|
10999
11001
|
block: e,
|
|
11000
11002
|
readOnly: o,
|
|
11001
11003
|
api: this.api,
|
|
11002
|
-
config:
|
|
11004
|
+
config: n
|
|
11003
11005
|
});
|
|
11004
11006
|
}
|
|
11005
11007
|
/**
|
|
@@ -11044,9 +11046,9 @@ class yi extends Se {
|
|
|
11044
11046
|
mergeToolboxSettings(t, e) {
|
|
11045
11047
|
return e == null ? Array.isArray(t) ? t : [t] : !Array.isArray(e) && Array.isArray(t) ? [e] : Array.isArray(e) ? Array.isArray(t) ? e.map((o, s) => {
|
|
11046
11048
|
const n = t[s];
|
|
11047
|
-
return n ?
|
|
11049
|
+
return n ? y(y({}, n), o) : o;
|
|
11048
11050
|
}) : e : [
|
|
11049
|
-
|
|
11051
|
+
y(y({}, t), e)
|
|
11050
11052
|
];
|
|
11051
11053
|
}
|
|
11052
11054
|
/**
|
|
@@ -11136,20 +11138,46 @@ class Bi {
|
|
|
11136
11138
|
* @param name - tool name
|
|
11137
11139
|
*/
|
|
11138
11140
|
get(t) {
|
|
11139
|
-
const
|
|
11141
|
+
const l = this.config[t], { class: e, isInternal: o = !1 } = l, s = Yt(l, ["class", "isInternal"]), n = e;
|
|
11140
11142
|
if (n === void 0)
|
|
11141
11143
|
throw new Error(`Tool "${t}" does not provide a class.`);
|
|
11142
|
-
const i = this.getConstructor(n);
|
|
11144
|
+
const i = this.getConstructor(n), r = this.createToolApi(t);
|
|
11143
11145
|
return new i({
|
|
11144
11146
|
name: t,
|
|
11145
11147
|
constructable: n,
|
|
11146
11148
|
config: s,
|
|
11147
|
-
api:
|
|
11149
|
+
api: r,
|
|
11148
11150
|
isDefault: t === this.blokConfig.defaultBlock,
|
|
11149
11151
|
defaultPlaceholder: this.blokConfig.placeholder,
|
|
11150
11152
|
isInternal: o
|
|
11151
11153
|
});
|
|
11152
11154
|
}
|
|
11155
|
+
/**
|
|
11156
|
+
* Creates a tool-specific API with namespaced i18n.
|
|
11157
|
+
*
|
|
11158
|
+
* EditorJS tools expect `api.i18n.t('key')` to automatically look up
|
|
11159
|
+
* `tools.{toolName}.key`. This wrapper provides that behavior while
|
|
11160
|
+
* falling back to direct key lookup for Blok internal tools that use
|
|
11161
|
+
* fully-qualified keys like `tools.stub.error`.
|
|
11162
|
+
*
|
|
11163
|
+
* @param toolName - Name of the tool
|
|
11164
|
+
* @returns API object with tool-namespaced i18n
|
|
11165
|
+
*/
|
|
11166
|
+
createToolApi(t) {
|
|
11167
|
+
const e = this.api.methods, o = `tools.${t}`, s = {
|
|
11168
|
+
t: (n) => {
|
|
11169
|
+
const i = `${o}.${n}`;
|
|
11170
|
+
return e.i18n.has(i) ? e.i18n.t(i) : e.i18n.t(n);
|
|
11171
|
+
},
|
|
11172
|
+
has: (n) => {
|
|
11173
|
+
const i = `${o}.${n}`;
|
|
11174
|
+
return e.i18n.has(i) || e.i18n.has(n);
|
|
11175
|
+
}
|
|
11176
|
+
};
|
|
11177
|
+
return P(y({}, e), {
|
|
11178
|
+
i18n: s
|
|
11179
|
+
});
|
|
11180
|
+
}
|
|
11153
11181
|
/**
|
|
11154
11182
|
* Find appropriate Tool object constructor for Tool constructable
|
|
11155
11183
|
* @param constructable - Tools constructable
|
|
@@ -11200,7 +11228,7 @@ const ee = (a) => {
|
|
|
11200
11228
|
};
|
|
11201
11229
|
class xi extends T {
|
|
11202
11230
|
constructor() {
|
|
11203
|
-
super(...arguments), this.stubTool = "stub", this.factory = null, this.toolsAvailable = new
|
|
11231
|
+
super(...arguments), this.stubTool = "stub", this.factory = null, this.toolsAvailable = new F(), this.toolsUnavailable = new F(), this.inlineToolsSanitizeConfigCache = null;
|
|
11204
11232
|
}
|
|
11205
11233
|
/**
|
|
11206
11234
|
* Returns available Tools
|
|
@@ -11429,7 +11457,7 @@ class xi extends T {
|
|
|
11429
11457
|
...Array.from(o.entries()),
|
|
11430
11458
|
...Array.from(this.blockTunes.internalTools.entries())
|
|
11431
11459
|
];
|
|
11432
|
-
e.tunes = new
|
|
11460
|
+
e.tunes = new F(s);
|
|
11433
11461
|
return;
|
|
11434
11462
|
}
|
|
11435
11463
|
if (Array.isArray(this.config.tunes)) {
|
|
@@ -11437,10 +11465,10 @@ class xi extends T {
|
|
|
11437
11465
|
...Array.from(o.entries()),
|
|
11438
11466
|
...Array.from(this.blockTunes.internalTools.entries())
|
|
11439
11467
|
];
|
|
11440
|
-
e.tunes = new
|
|
11468
|
+
e.tunes = new F(s);
|
|
11441
11469
|
return;
|
|
11442
11470
|
}
|
|
11443
|
-
e.tunes = new
|
|
11471
|
+
e.tunes = new F(
|
|
11444
11472
|
Array.from(this.blockTunes.internalTools.entries())
|
|
11445
11473
|
);
|
|
11446
11474
|
}
|
|
@@ -11513,7 +11541,7 @@ class xi extends T {
|
|
|
11513
11541
|
}
|
|
11514
11542
|
e.push([o, s]);
|
|
11515
11543
|
}
|
|
11516
|
-
return new
|
|
11544
|
+
return new F(e);
|
|
11517
11545
|
}
|
|
11518
11546
|
/**
|
|
11519
11547
|
* Builds block tunes collection for provided tune names, skipping unavailable ones.
|
|
@@ -11530,7 +11558,7 @@ class xi extends T {
|
|
|
11530
11558
|
}
|
|
11531
11559
|
e.push([o, s]);
|
|
11532
11560
|
}
|
|
11533
|
-
return new
|
|
11561
|
+
return new F(e);
|
|
11534
11562
|
}
|
|
11535
11563
|
}
|
|
11536
11564
|
const Ti = `*,: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-\\[1100px\\]{max-width:1100px}.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}@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-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}}`;
|
|
@@ -11792,7 +11820,7 @@ class Si extends T {
|
|
|
11792
11820
|
backspacePressed(t) {
|
|
11793
11821
|
if (this.Blok.BlockSettings.contains(t.target))
|
|
11794
11822
|
return;
|
|
11795
|
-
const { BlockManager: e, BlockSelection: o, Caret: s } = this.Blok, n =
|
|
11823
|
+
const { BlockManager: e, BlockSelection: o, Caret: s } = this.Blok, n = B.isSelectionExists, i = B.isCollapsed;
|
|
11796
11824
|
if (!(o.anyBlockSelected && (!n || i === !0 || this.Blok.CrossBlockSelection.isCrossBlockSelectionStarted)))
|
|
11797
11825
|
return;
|
|
11798
11826
|
const l = e.removeSelectedBlocks();
|
|
@@ -11851,7 +11879,7 @@ class Si extends T {
|
|
|
11851
11879
|
s.keydown(t);
|
|
11852
11880
|
return;
|
|
11853
11881
|
}
|
|
11854
|
-
const n = e.currentBlockIndex >= 0, i =
|
|
11882
|
+
const n = e.currentBlockIndex >= 0, i = B.isSelectionExists, r = B.isCollapsed;
|
|
11855
11883
|
if (o.anyBlockSelected && (!i || r === !0)) {
|
|
11856
11884
|
o.clearSelection(t), t.preventDefault(), t.stopImmediatePropagation(), t.stopPropagation();
|
|
11857
11885
|
return;
|
|
@@ -11870,7 +11898,7 @@ class Si extends T {
|
|
|
11870
11898
|
var p, b;
|
|
11871
11899
|
if (!t.isTrusted)
|
|
11872
11900
|
return;
|
|
11873
|
-
const e = t.target, o = this.nodes.holder.contains(e) ||
|
|
11901
|
+
const e = t.target, o = this.nodes.holder.contains(e) || B.isAtBlok, s = this.nodes.redactor.contains(e), n = this.Blok.Toolbar.contains(e), i = this.Blok.InlineToolbar.containsNode(e), r = o || n, l = this.Blok.BlockSettings.contains(e), c = (p = this.Blok.Toolbar.nodes.settingsToggler) == null ? void 0 : p.contains(e), d = (b = this.Blok.Toolbar.nodes.plusButton) == null ? void 0 : b.contains(e), h = l || c || d;
|
|
11874
11902
|
(!r || !s && !n) && !h && (this.Blok.BlockManager.unsetCurrentBlock(), this.Blok.Toolbar.close());
|
|
11875
11903
|
const g = this.Blok.BlockSettings.opened && !h;
|
|
11876
11904
|
if (g && this.Blok.BlockSettings.close(), g && s) {
|
|
@@ -11919,7 +11947,7 @@ class Si extends T {
|
|
|
11919
11947
|
* - otherwise, add a new empty Block and set a Caret to that
|
|
11920
11948
|
*/
|
|
11921
11949
|
redactorClicked(t) {
|
|
11922
|
-
if (!
|
|
11950
|
+
if (!B.isCollapsed)
|
|
11923
11951
|
return;
|
|
11924
11952
|
const e = t.target, o = t.metaKey || t.ctrlKey;
|
|
11925
11953
|
if (!(f.isAnchor(e) && o)) {
|
|
@@ -11960,10 +11988,10 @@ class Si extends T {
|
|
|
11960
11988
|
*/
|
|
11961
11989
|
selectionChanged() {
|
|
11962
11990
|
var u, g, p;
|
|
11963
|
-
const { CrossBlockSelection: t, BlockSelection: e } = this.Blok, o =
|
|
11964
|
-
if (t.isCrossBlockSelectionStarted && e.anyBlockSelected && ((u =
|
|
11991
|
+
const { CrossBlockSelection: t, BlockSelection: e } = this.Blok, o = B.anchorElement;
|
|
11992
|
+
if (t.isCrossBlockSelectionStarted && e.anyBlockSelected && ((u = B.get()) == null || u.removeAllRanges()), document.querySelector('[data-blok-fake-background="true"]') !== null && ((p = (g = this.Blok) == null ? void 0 : g.InlineToolbar) != null && p.opened) || (!o && !B.range && this.Blok.InlineToolbar.close(), !o))
|
|
11965
11993
|
return;
|
|
11966
|
-
const n = o.closest('[data-blok-testid="block-content"]'), i = n === null || n.closest('[data-blok-testid="blok-editor"]') !== this.nodes.wrapper, r = o.getAttribute("data-blok-inline-toolbar") === "true", l = i && !this.Blok.InlineToolbar.containsNode(o), c =
|
|
11994
|
+
const n = o.closest('[data-blok-testid="block-content"]'), i = n === null || n.closest('[data-blok-testid="blok-editor"]') !== this.nodes.wrapper, r = o.getAttribute("data-blok-inline-toolbar") === "true", l = i && !this.Blok.InlineToolbar.containsNode(o), c = B.get(), d = !c || c.isCollapsed || B.text.length === 0, h = this.Blok.InlineToolbar.hasFlipperFocus;
|
|
11967
11995
|
if (d && this.Blok.InlineToolbar.opened && !h) {
|
|
11968
11996
|
this.Blok.InlineToolbar.close();
|
|
11969
11997
|
return;
|
|
@@ -12118,19 +12146,19 @@ const Ci = 30, Ii = 200, Ei = 100, rt = class rt extends T {
|
|
|
12118
12146
|
if (!t)
|
|
12119
12147
|
return;
|
|
12120
12148
|
const e = this.globalUndoRedo ? document : t;
|
|
12121
|
-
["CMD+Z", "CMD+SHIFT+Z", "CMD+Y"].forEach((i) =>
|
|
12149
|
+
["CMD+Z", "CMD+SHIFT+Z", "CMD+Y"].forEach((i) => _.remove(e, i)), _.add({
|
|
12122
12150
|
name: "CMD+Z",
|
|
12123
12151
|
on: e,
|
|
12124
12152
|
handler: (i) => {
|
|
12125
12153
|
this.shouldHandleShortcut(i) && (i.preventDefault(), this.undo());
|
|
12126
12154
|
}
|
|
12127
|
-
}), this.registeredShortcuts.push({ name: "CMD+Z", element: e }),
|
|
12155
|
+
}), this.registeredShortcuts.push({ name: "CMD+Z", element: e }), _.add({
|
|
12128
12156
|
name: "CMD+SHIFT+Z",
|
|
12129
12157
|
on: e,
|
|
12130
12158
|
handler: (i) => {
|
|
12131
12159
|
this.shouldHandleShortcut(i) && (i.preventDefault(), this.redo());
|
|
12132
12160
|
}
|
|
12133
|
-
}), this.registeredShortcuts.push({ name: "CMD+SHIFT+Z", element: e }),
|
|
12161
|
+
}), this.registeredShortcuts.push({ name: "CMD+SHIFT+Z", element: e }), _.add({
|
|
12134
12162
|
name: "CMD+Y",
|
|
12135
12163
|
on: e,
|
|
12136
12164
|
handler: (i) => {
|
|
@@ -12209,7 +12237,7 @@ const Ci = 30, Ii = 200, Ei = 100, rt = class rt extends T {
|
|
|
12209
12237
|
};
|
|
12210
12238
|
const o = e.map(async (i) => {
|
|
12211
12239
|
const r = await i.save();
|
|
12212
|
-
return !r || r.data === void 0 || !await i.validate(r.data) ? null :
|
|
12240
|
+
return !r || r.data === void 0 || !await i.validate(r.data) ? null : y({
|
|
12213
12241
|
id: r.id,
|
|
12214
12242
|
type: r.tool,
|
|
12215
12243
|
data: r.data
|
|
@@ -12508,7 +12536,7 @@ const Ci = 30, Ii = 200, Ei = 100, rt = class rt extends T {
|
|
|
12508
12536
|
destroy() {
|
|
12509
12537
|
this.clearDebounce();
|
|
12510
12538
|
for (const { name: t, element: e } of this.registeredShortcuts)
|
|
12511
|
-
|
|
12539
|
+
_.remove(e, t);
|
|
12512
12540
|
this.registeredShortcuts = [], rt.activeInstance === this && (rt.activeInstance = null), this.undoStack = [], this.redoStack = [], this.initialStateCaptured = !1;
|
|
12513
12541
|
}
|
|
12514
12542
|
};
|
|
@@ -12577,7 +12605,7 @@ class Mi {
|
|
|
12577
12605
|
*/
|
|
12578
12606
|
set configuration(t) {
|
|
12579
12607
|
var l, c, d, h;
|
|
12580
|
-
A(t) ? this.config =
|
|
12608
|
+
A(t) ? this.config = y({}, t) : this.config = {
|
|
12581
12609
|
holder: t
|
|
12582
12610
|
}, this.config.holder == null && (this.config.holder = "blok"), this.config.logLevel == null && (this.config.logLevel = hs.VERBOSE), us(this.config.logLevel), this.config.defaultBlock = (l = this.config.defaultBlock) != null ? l : "paragraph";
|
|
12583
12611
|
const e = this.config.tools, o = this.config.defaultBlock, s = e != null && Object.prototype.hasOwnProperty.call(e, o != null ? o : ""), n = (c = this.config.data) == null ? void 0 : c.blocks, i = Array.isArray(n) && n.length > 0;
|
|
@@ -12586,7 +12614,7 @@ class Mi {
|
|
|
12586
12614
|
`Default block "${o}" is not configured. Falling back to "paragraph" tool.`,
|
|
12587
12615
|
"warn"
|
|
12588
12616
|
), this.config.defaultBlock = "paragraph";
|
|
12589
|
-
const u = this.config.tools, g =
|
|
12617
|
+
const u = this.config.tools, g = y({}, u != null ? u : {}), p = g.paragraph;
|
|
12590
12618
|
g.paragraph = this.createParagraphToolConfig(p), this.config.tools = g;
|
|
12591
12619
|
}
|
|
12592
12620
|
this.config.minHeight = this.config.minHeight !== void 0 ? this.config.minHeight : 300;
|
|
@@ -12710,8 +12738,8 @@ class Mi {
|
|
|
12710
12738
|
};
|
|
12711
12739
|
if (A(t)) {
|
|
12712
12740
|
const e = t, o = e.config;
|
|
12713
|
-
return
|
|
12714
|
-
config:
|
|
12741
|
+
return P(y({}, e), {
|
|
12742
|
+
config: P(y({}, A(o) ? o : {}), {
|
|
12715
12743
|
preserveBlank: !0
|
|
12716
12744
|
})
|
|
12717
12745
|
});
|
|
@@ -12742,7 +12770,7 @@ const Ni = _t(), vt = class vt {
|
|
|
12742
12770
|
* @param {BlokConfig|string|undefined} [configuration] - user configuration
|
|
12743
12771
|
*/
|
|
12744
12772
|
constructor(t) {
|
|
12745
|
-
this.initialConfiguration = A(t) ?
|
|
12773
|
+
this.initialConfiguration = A(t) ? y({}, t) : t;
|
|
12746
12774
|
const e = A(t) && E(t.onReady) ? t.onReady : () => {
|
|
12747
12775
|
}, o = new Mi(t);
|
|
12748
12776
|
this.destroy = () => {
|