@bygga.dev/editor 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,12 @@
1
- import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, H as s, I as c, J as l, K as u, L as d, M as f, O as p, R as m, S as h, T as ee, X as g, Z as _, _ as v, b as y, c as te, et as b, f as x, g as S, h as C, j as w, l as T, m as ne, p as E, r as D, rt as O, u as k, v as A, w as j, x as re, z as ie } from "./vue.runtime.esm-bundler-C8OyVIE3.js";
2
- import { $ as ae, $t as oe, E as M, J as se, Jt as ce, Q as le, Qt as ue, S as N, St as P, T as de, Xt as fe, Yt as pe, Zt as me, _t as F, an as he, at as ge, bt as _e, c as ve, ct as ye, dt as be, en as xe, et as Se, f as Ce, ft as I, gt as L, ht as R, it as we, l as Te, lt as z, m as Ee, mt as B, n as V, nt as De, o as Oe, ot as ke, pt as H, rt as U, s as Ae, sn as je, st as W, t as Me, tn as Ne, tt as Pe, ut as Fe, vt as Ie, w as Le, xt as G, yt as Re } from "./urls-BO2HiDHB.js";
1
+ import { A as e, B as t, C as n, D as r, E as i, F as a, G as o, I as s, J as c, K as l, L as u, M as d, N as f, P as p, S as m, T as h, V as g, W as ee, Y as te, Z as _, _ as v, at as y, ct as b, f as x, ft as S, i as ne, j as C, k as w, lt as T, ot as re, q as ie, rt as ae, t as oe, tt as E, v as D, w as O, x as k, y as A, z as j } from "./providerKeys-BrTFiegH.js";
2
+ import { $ as se, $t as ce, K as le, Q as ue, Qt as de, Xt as fe, Yt as pe, Z as me, Zt as he, _ as M, _t as ge, at as N, b as P, bt as F, c as _e, cn as ve, ct as ye, dt as I, en as be, et as xe, ft as L, gt as R, ht as z, it as Se, l as Ce, lt as we, mt as B, n as Te, nn as Ee, nt as V, o as De, on as Oe, ot as H, pt as U, q as ke, rt as Ae, s as je, st as W, t as Me, tn as Ne, tt as Pe, u as Fe, ut as Ie, vt as Le, w as Re, xt as G, y as ze, yt as Be } from "./urls-B4ECLEvt.js";
3
3
  //#region ../../node_modules/.pnpm/prosemirror-dropcursor@1.8.2/node_modules/prosemirror-dropcursor/dist/index.js
4
- function ze(e = {}) {
5
- return new R({ view(t) {
6
- return new Be(t, e);
4
+ function Ve(e = {}) {
5
+ return new B({ view(t) {
6
+ return new He(t, e);
7
7
  } });
8
8
  }
9
- var Be = class {
9
+ var He = class {
10
10
  constructor(e, t) {
11
11
  this.editorView = e, this.cursorPos = null, this.element = null, this.timeout = -1, this.width = t.width ?? 1, this.color = t.color === !1 ? void 0 : t.color || "black", this.class = t.class, this.handlers = [
12
12
  "dragover",
@@ -82,7 +82,7 @@ var Be = class {
82
82
  if (t && !i) {
83
83
  let e = t.pos;
84
84
  if (this.editorView.dragging && this.editorView.dragging.slice) {
85
- let t = _e(this.editorView.state.doc, e, this.editorView.dragging.slice);
85
+ let t = Be(this.editorView.state.doc, e, this.editorView.dragging.slice);
86
86
  t != null && (e = t);
87
87
  }
88
88
  this.setCursor(e), this.scheduleRemoval(5e3);
@@ -97,16 +97,16 @@ var Be = class {
97
97
  dragleave(e) {
98
98
  this.editorView.dom.contains(e.relatedTarget) || this.setCursor(null);
99
99
  }
100
- }, K = class e extends F {
100
+ }, K = class e extends R {
101
101
  constructor(e) {
102
102
  super(e, e);
103
103
  }
104
104
  map(t, n) {
105
105
  let r = t.resolve(n.map(this.head));
106
- return e.valid(r) ? new e(r) : F.near(r);
106
+ return e.valid(r) ? new e(r) : R.near(r);
107
107
  }
108
108
  content() {
109
- return P.empty;
109
+ return G.empty;
110
110
  }
111
111
  eq(t) {
112
112
  return t instanceof e && t.head == this.head;
@@ -122,11 +122,11 @@ var Be = class {
122
122
  return new e(t.resolve(n.pos));
123
123
  }
124
124
  getBookmark() {
125
- return new Ve(this.anchor);
125
+ return new Ue(this.anchor);
126
126
  }
127
127
  static valid(e) {
128
128
  let t = e.parent;
129
- if (t.inlineContent || !Ue(e) || !We(e)) return !1;
129
+ if (t.inlineContent || !Ge(e) || !Ke(e)) return !1;
130
130
  let n = t.type.spec.allowGapCursor;
131
131
  if (n != null) return n;
132
132
  let r = t.contentMatchAt(e.index()).defaultType;
@@ -149,7 +149,7 @@ var Be = class {
149
149
  for (;;) {
150
150
  let o = n > 0 ? a.firstChild : a.lastChild;
151
151
  if (!o) {
152
- if (a.isAtom && !a.isText && !B.isSelectable(a)) {
152
+ if (a.isAtom && !a.isText && !U.isSelectable(a)) {
153
153
  t = t.doc.resolve(i + a.nodeSize * n), r = !1;
154
154
  continue search;
155
155
  }
@@ -163,8 +163,8 @@ var Be = class {
163
163
  }
164
164
  }
165
165
  };
166
- K.prototype.visible = !1, K.findFrom = K.findGapCursorFrom, F.jsonID("gapcursor", K);
167
- var Ve = class e {
166
+ K.prototype.visible = !1, K.findFrom = K.findGapCursorFrom, R.jsonID("gapcursor", K);
167
+ var Ue = class e {
168
168
  constructor(e) {
169
169
  this.pos = e;
170
170
  }
@@ -173,13 +173,13 @@ var Ve = class e {
173
173
  }
174
174
  resolve(e) {
175
175
  let t = e.resolve(this.pos);
176
- return K.valid(t) ? new K(t) : F.near(t);
176
+ return K.valid(t) ? new K(t) : R.near(t);
177
177
  }
178
178
  };
179
- function He(e) {
179
+ function We(e) {
180
180
  return e.isAtom || e.spec.isolating || e.spec.createGapCursor;
181
181
  }
182
- function Ue(e) {
182
+ function Ge(e) {
183
183
  for (let t = e.depth; t >= 0; t--) {
184
184
  let n = e.index(t), r = e.node(t);
185
185
  if (n == 0) {
@@ -187,13 +187,13 @@ function Ue(e) {
187
187
  continue;
188
188
  }
189
189
  for (let e = r.child(n - 1);; e = e.lastChild) {
190
- if (e.childCount == 0 && !e.inlineContent || He(e.type)) return !0;
190
+ if (e.childCount == 0 && !e.inlineContent || We(e.type)) return !0;
191
191
  if (e.inlineContent) return !1;
192
192
  }
193
193
  }
194
194
  return !0;
195
195
  }
196
- function We(e) {
196
+ function Ke(e) {
197
197
  for (let t = e.depth; t >= 0; t--) {
198
198
  let n = e.indexAfter(t), r = e.node(t);
199
199
  if (n == r.childCount) {
@@ -201,24 +201,24 @@ function We(e) {
201
201
  continue;
202
202
  }
203
203
  for (let e = r.child(n);; e = e.firstChild) {
204
- if (e.childCount == 0 && !e.inlineContent || He(e.type)) return !0;
204
+ if (e.childCount == 0 && !e.inlineContent || We(e.type)) return !0;
205
205
  if (e.inlineContent) return !1;
206
206
  }
207
207
  }
208
208
  return !0;
209
209
  }
210
- function Ge() {
211
- return new R({ props: {
212
- decorations: Ye,
210
+ function qe() {
211
+ return new B({ props: {
212
+ decorations: Ze,
213
213
  createSelectionBetween(e, t, n) {
214
214
  return t.pos == n.pos && K.valid(n) ? new K(n) : null;
215
215
  },
216
- handleClick: qe,
217
- handleKeyDown: Ke,
218
- handleDOMEvents: { beforeinput: Je }
216
+ handleClick: Ye,
217
+ handleKeyDown: Je,
218
+ handleDOMEvents: { beforeinput: Xe }
219
219
  } });
220
220
  }
221
- var Ke = be({
221
+ var Je = Ie({
222
222
  ArrowLeft: q("horiz", -1),
223
223
  ArrowRight: q("horiz", 1),
224
224
  ArrowUp: q("vert", -1),
@@ -228,7 +228,7 @@ function q(e, t) {
228
228
  let n = e == "vert" ? t > 0 ? "down" : "up" : t > 0 ? "right" : "left";
229
229
  return function(e, r, i) {
230
230
  let a = e.selection, o = t > 0 ? a.$to : a.$from, s = a.empty;
231
- if (a instanceof Ie) {
231
+ if (a instanceof ge) {
232
232
  if (!i.endOfTextblock(n) || o.depth == 0) return !1;
233
233
  s = !1, o = e.doc.resolve(t > 0 ? o.after() : o.before());
234
234
  }
@@ -236,7 +236,7 @@ function q(e, t) {
236
236
  return c ? (r && r(e.tr.setSelection(new K(c))), !0) : !1;
237
237
  };
238
238
  }
239
- function qe(e, t, n) {
239
+ function Ye(e, t, n) {
240
240
  if (!e || !e.editable) return !1;
241
241
  let r = e.state.doc.resolve(t);
242
242
  if (!K.valid(r)) return !1;
@@ -244,31 +244,31 @@ function qe(e, t, n) {
244
244
  left: n.clientX,
245
245
  top: n.clientY
246
246
  });
247
- return i && i.inside > -1 && B.isSelectable(e.state.doc.nodeAt(i.inside)) ? !1 : (e.dispatch(e.state.tr.setSelection(new K(r))), !0);
247
+ return i && i.inside > -1 && U.isSelectable(e.state.doc.nodeAt(i.inside)) ? !1 : (e.dispatch(e.state.tr.setSelection(new K(r))), !0);
248
248
  }
249
- function Je(e, t) {
249
+ function Xe(e, t) {
250
250
  if (t.inputType != "insertCompositionText" || !(e.state.selection instanceof K)) return !1;
251
251
  let { $from: n } = e.state.selection, r = n.parent.contentMatchAt(n.index()).findWrapping(e.state.schema.nodes.text);
252
252
  if (!r) return !1;
253
- let i = G.empty;
254
- for (let e = r.length - 1; e >= 0; e--) i = G.from(r[e].createAndFill(null, i));
255
- let a = e.state.tr.replace(n.pos, n.pos, new P(i, 0, 0));
256
- return a.setSelection(Ie.near(a.doc.resolve(n.pos + 1))), e.dispatch(a), !1;
253
+ let i = F.empty;
254
+ for (let e = r.length - 1; e >= 0; e--) i = F.from(r[e].createAndFill(null, i));
255
+ let a = e.state.tr.replace(n.pos, n.pos, new G(i, 0, 0));
256
+ return a.setSelection(ge.near(a.doc.resolve(n.pos + 1))), e.dispatch(a), !1;
257
257
  }
258
- function Ye(e) {
258
+ function Ze(e) {
259
259
  if (!(e.selection instanceof K)) return null;
260
260
  let t = document.createElement("div");
261
- return t.className = "ProseMirror-gapcursor", H.create(e.doc, [I.widget(e.selection.head, t, { key: "gapcursor" })]);
261
+ return t.className = "ProseMirror-gapcursor", L.create(e.doc, [I.widget(e.selection.head, t, { key: "gapcursor" })]);
262
262
  }
263
263
  //#endregion
264
264
  //#region ../../node_modules/.pnpm/rope-sequence@1.3.4/node_modules/rope-sequence/dist/index.js
265
- var Xe = 200, J = function() {};
265
+ var Qe = 200, J = function() {};
266
266
  J.prototype.append = function(e) {
267
- return e.length ? (e = J.from(e), !this.length && e || e.length < Xe && this.leafAppend(e) || this.length < Xe && e.leafPrepend(this) || this.appendInner(e)) : this;
267
+ return e.length ? (e = J.from(e), !this.length && e || e.length < Qe && this.leafAppend(e) || this.length < Qe && e.leafPrepend(this) || this.appendInner(e)) : this;
268
268
  }, J.prototype.prepend = function(e) {
269
269
  return e.length ? J.from(e).append(this) : this;
270
270
  }, J.prototype.appendInner = function(e) {
271
- return new Qe(this, e);
271
+ return new et(this, e);
272
272
  }, J.prototype.slice = function(e, t) {
273
273
  return e === void 0 && (e = 0), t === void 0 && (t = this.length), e >= t ? J.empty : this.sliceInner(Math.max(0, e), Math.min(this.length, t));
274
274
  }, J.prototype.get = function(e) {
@@ -282,9 +282,9 @@ J.prototype.append = function(e) {
282
282
  return r.push(e(t, n));
283
283
  }, t, n), r;
284
284
  }, J.from = function(e) {
285
- return e instanceof J ? e : e && e.length ? new Ze(e) : J.empty;
285
+ return e instanceof J ? e : e && e.length ? new $e(e) : J.empty;
286
286
  };
287
- var Ze = /* @__PURE__ */ function(e) {
287
+ var $e = /* @__PURE__ */ function(e) {
288
288
  function t(t) {
289
289
  e.call(this), this.values = t;
290
290
  }
@@ -304,17 +304,17 @@ var Ze = /* @__PURE__ */ function(e) {
304
304
  }, t.prototype.forEachInvertedInner = function(e, t, n, r) {
305
305
  for (var i = t - 1; i >= n; i--) if (e(this.values[i], r + i) === !1) return !1;
306
306
  }, t.prototype.leafAppend = function(e) {
307
- if (this.length + e.length <= Xe) return new t(this.values.concat(e.flatten()));
307
+ if (this.length + e.length <= Qe) return new t(this.values.concat(e.flatten()));
308
308
  }, t.prototype.leafPrepend = function(e) {
309
- if (this.length + e.length <= Xe) return new t(e.flatten().concat(this.values));
309
+ if (this.length + e.length <= Qe) return new t(e.flatten().concat(this.values));
310
310
  }, n.length.get = function() {
311
311
  return this.values.length;
312
312
  }, n.depth.get = function() {
313
313
  return 0;
314
314
  }, Object.defineProperties(t.prototype, n), t;
315
315
  }(J);
316
- J.empty = new Ze([]);
317
- var Qe = /* @__PURE__ */ function(e) {
316
+ J.empty = new $e([]);
317
+ var et = /* @__PURE__ */ function(e) {
318
318
  function t(t, n) {
319
319
  e.call(this), this.left = t, this.right = n, this.length = t.length + n.length, this.depth = Math.max(t.depth, n.depth) + 1;
320
320
  }
@@ -341,7 +341,7 @@ var Qe = /* @__PURE__ */ function(e) {
341
341
  }, t.prototype.appendInner = function(e) {
342
342
  return this.left.depth >= Math.max(this.right.depth, e.depth) + 1 ? new t(this.left, new t(this.right, e)) : new t(this, e);
343
343
  }, t;
344
- }(J), $e = 500, Y = class e {
344
+ }(J), tt = 500, Y = class e {
345
345
  constructor(e, t) {
346
346
  this.items = e, this.eventCount = t;
347
347
  }
@@ -379,10 +379,10 @@ var Qe = /* @__PURE__ */ function(e) {
379
379
  (u = c && c.merge(l)) && (l = u, e ? a.pop() : s = s.slice(0, s.length - 1)), a.push(l), n &&= (o++, void 0), i || (c = l);
380
380
  }
381
381
  let l = o - r.depth;
382
- return l > tt && (s = et(s, l), o -= l), new e(s.append(a), o);
382
+ return l > rt && (s = nt(s, l), o -= l), new e(s.append(a), o);
383
383
  }
384
384
  remapping(e, t) {
385
- let n = new Re();
385
+ let n = new Le();
386
386
  return this.items.forEach((t, r) => {
387
387
  let i = t.mirrorOffset != null && r - t.mirrorOffset >= e ? n.maps.length - t.mirrorOffset : void 0;
388
388
  n.appendMap(t.map, i);
@@ -411,7 +411,7 @@ var Qe = /* @__PURE__ */ function(e) {
411
411
  let l = [];
412
412
  for (let e = n; e < o; e++) l.push(new X(a.maps[e]));
413
413
  let u = new e(this.items.slice(0, i).append(l).append(r), s);
414
- return u.emptyItemCount() > $e && (u = u.compress(this.items.length - r.length)), u;
414
+ return u.emptyItemCount() > tt && (u = u.compress(this.items.length - r.length)), u;
415
415
  }
416
416
  emptyItemCount() {
417
417
  let e = 0;
@@ -436,7 +436,7 @@ var Qe = /* @__PURE__ */ function(e) {
436
436
  }
437
437
  };
438
438
  Y.empty = new Y(J.empty, 0);
439
- function et(e, t) {
439
+ function nt(e, t) {
440
440
  let n;
441
441
  return e.forEach((e, r) => {
442
442
  if (e.selection && t-- == 0) return n = r, !1;
@@ -456,21 +456,21 @@ var X = class e {
456
456
  constructor(e, t, n, r, i) {
457
457
  this.done = e, this.undone = t, this.prevRanges = n, this.prevTime = r, this.prevComposition = i;
458
458
  }
459
- }, tt = 20;
460
- function nt(e, t, n, r) {
459
+ }, rt = 20;
460
+ function it(e, t, n, r) {
461
461
  let i = n.getMeta(Q), a;
462
462
  if (i) return i.historyState;
463
- n.getMeta(ut) && (e = new Z(e.done, e.undone, null, 0, -1));
463
+ n.getMeta(ft) && (e = new Z(e.done, e.undone, null, 0, -1));
464
464
  let o = n.getMeta("appendedTransaction");
465
465
  if (n.steps.length == 0) return e;
466
- if (o && o.getMeta(Q)) return o.getMeta(Q).redo ? new Z(e.done.addTransform(n, void 0, r, lt(t)), e.undone, it(n.mapping.maps), e.prevTime, e.prevComposition) : new Z(e.done, e.undone.addTransform(n, void 0, r, lt(t)), null, e.prevTime, e.prevComposition);
466
+ if (o && o.getMeta(Q)) return o.getMeta(Q).redo ? new Z(e.done.addTransform(n, void 0, r, dt(t)), e.undone, ot(n.mapping.maps), e.prevTime, e.prevComposition) : new Z(e.done, e.undone.addTransform(n, void 0, r, dt(t)), null, e.prevTime, e.prevComposition);
467
467
  if (n.getMeta("addToHistory") !== !1 && !(o && o.getMeta("addToHistory") === !1)) {
468
- let i = n.getMeta("composition"), a = e.prevTime == 0 || !o && e.prevComposition != i && (e.prevTime < (n.time || 0) - r.newGroupDelay || !rt(n, e.prevRanges)), s = o ? at(e.prevRanges, n.mapping) : it(n.mapping.maps);
469
- return new Z(e.done.addTransform(n, a ? t.selection.getBookmark() : void 0, r, lt(t)), Y.empty, s, n.time, i ?? e.prevComposition);
470
- } else if (a = n.getMeta("rebased")) return new Z(e.done.rebased(n, a), e.undone.rebased(n, a), at(e.prevRanges, n.mapping), e.prevTime, e.prevComposition);
471
- else return new Z(e.done.addMaps(n.mapping.maps), e.undone.addMaps(n.mapping.maps), at(e.prevRanges, n.mapping), e.prevTime, e.prevComposition);
468
+ let i = n.getMeta("composition"), a = e.prevTime == 0 || !o && e.prevComposition != i && (e.prevTime < (n.time || 0) - r.newGroupDelay || !at(n, e.prevRanges)), s = o ? st(e.prevRanges, n.mapping) : ot(n.mapping.maps);
469
+ return new Z(e.done.addTransform(n, a ? t.selection.getBookmark() : void 0, r, dt(t)), Y.empty, s, n.time, i ?? e.prevComposition);
470
+ } else if (a = n.getMeta("rebased")) return new Z(e.done.rebased(n, a), e.undone.rebased(n, a), st(e.prevRanges, n.mapping), e.prevTime, e.prevComposition);
471
+ else return new Z(e.done.addMaps(n.mapping.maps), e.undone.addMaps(n.mapping.maps), st(e.prevRanges, n.mapping), e.prevTime, e.prevComposition);
472
472
  }
473
- function rt(e, t) {
473
+ function at(e, t) {
474
474
  if (!t) return !1;
475
475
  if (!e.docChanged) return !0;
476
476
  let n = !1;
@@ -478,12 +478,12 @@ function rt(e, t) {
478
478
  for (let i = 0; i < t.length; i += 2) e <= t[i + 1] && r >= t[i] && (n = !0);
479
479
  }), n;
480
480
  }
481
- function it(e) {
481
+ function ot(e) {
482
482
  let t = [];
483
483
  for (let n = e.length - 1; n >= 0 && t.length == 0; n--) e[n].forEach((e, n, r, i) => t.push(r, i));
484
484
  return t;
485
485
  }
486
- function at(e, t) {
486
+ function st(e, t) {
487
487
  if (!e) return null;
488
488
  let n = [];
489
489
  for (let r = 0; r < e.length; r += 2) {
@@ -492,8 +492,8 @@ function at(e, t) {
492
492
  }
493
493
  return n;
494
494
  }
495
- function ot(e, t, n) {
496
- let r = lt(t), i = Q.get(t).spec.config, a = (n ? e.undone : e.done).popEvent(t, r);
495
+ function ct(e, t, n) {
496
+ let r = dt(t), i = Q.get(t).spec.config, a = (n ? e.undone : e.done).popEvent(t, r);
497
497
  if (!a) return null;
498
498
  let o = a.selection.resolve(a.transform.doc), s = (n ? e.done : e.undone).addTransform(a.transform, t.selection.getBookmark(), i, r), c = new Z(n ? s : a.remaining, n ? a.remaining : s, null, 0, -1);
499
499
  return a.transform.setSelection(o).setMeta(Q, {
@@ -501,53 +501,53 @@ function ot(e, t, n) {
501
501
  historyState: c
502
502
  });
503
503
  }
504
- var st = !1, ct = null;
505
- function lt(e) {
504
+ var lt = !1, ut = null;
505
+ function dt(e) {
506
506
  let t = e.plugins;
507
- if (ct != t) {
508
- st = !1, ct = t;
507
+ if (ut != t) {
508
+ lt = !1, ut = t;
509
509
  for (let e = 0; e < t.length; e++) if (t[e].spec.historyPreserveItems) {
510
- st = !0;
510
+ lt = !0;
511
511
  break;
512
512
  }
513
513
  }
514
- return st;
514
+ return lt;
515
515
  }
516
- var Q = new L("history"), ut = new L("closeHistory");
517
- function dt(e = {}) {
516
+ var Q = new z("history"), ft = new z("closeHistory");
517
+ function pt(e = {}) {
518
518
  return e = {
519
519
  depth: e.depth || 100,
520
520
  newGroupDelay: e.newGroupDelay || 500
521
- }, new R({
521
+ }, new B({
522
522
  key: Q,
523
523
  state: {
524
524
  init() {
525
525
  return new Z(Y.empty, Y.empty, null, 0, -1);
526
526
  },
527
527
  apply(t, n, r) {
528
- return nt(n, r, t, e);
528
+ return it(n, r, t, e);
529
529
  }
530
530
  },
531
531
  config: e,
532
532
  props: { handleDOMEvents: { beforeinput(e, t) {
533
- let n = t.inputType, r = n == "historyUndo" ? pt : n == "historyRedo" ? mt : null;
533
+ let n = t.inputType, r = n == "historyUndo" ? ht : n == "historyRedo" ? gt : null;
534
534
  return !r || !e.editable ? !1 : (t.preventDefault(), r(e.state, e.dispatch));
535
535
  } } }
536
536
  });
537
537
  }
538
- function ft(e, t) {
538
+ function mt(e, t) {
539
539
  return (n, r) => {
540
540
  let i = Q.getState(n);
541
541
  if (!i || (e ? i.undone : i.done).eventCount == 0) return !1;
542
542
  if (r) {
543
- let a = ot(i, n, e);
543
+ let a = ct(i, n, e);
544
544
  a && r(t ? a.scrollIntoView() : a);
545
545
  }
546
546
  return !0;
547
547
  };
548
548
  }
549
- var pt = ft(!1, !0), mt = ft(!0, !0);
550
- U.create({
549
+ var ht = mt(!1, !0), gt = mt(!0, !0);
550
+ V.create({
551
551
  name: "characterCount",
552
552
  addOptions() {
553
553
  return {
@@ -579,8 +579,8 @@ U.create({
579
579
  },
580
580
  addProseMirrorPlugins() {
581
581
  let e = !1;
582
- return [new R({
583
- key: new L("characterCount"),
582
+ return [new B({
583
+ key: new z("characterCount"),
584
584
  appendTransaction: (t, n, r) => {
585
585
  if (e) return;
586
586
  let i = this.options.limit, a = this.options.autoTrim;
@@ -608,7 +608,7 @@ U.create({
608
608
  }
609
609
  })];
610
610
  }
611
- }), U.create({
611
+ }), V.create({
612
612
  name: "dropCursor",
613
613
  addOptions() {
614
614
  return {
@@ -618,9 +618,9 @@ U.create({
618
618
  };
619
619
  },
620
620
  addProseMirrorPlugins() {
621
- return [ze(this.options)];
621
+ return [Ve(this.options)];
622
622
  }
623
- }), U.create({
623
+ }), V.create({
624
624
  name: "focus",
625
625
  addOptions() {
626
626
  return {
@@ -629,11 +629,11 @@ U.create({
629
629
  };
630
630
  },
631
631
  addProseMirrorPlugins() {
632
- return [new R({
633
- key: new L("focus"),
632
+ return [new B({
633
+ key: new z("focus"),
634
634
  props: { decorations: ({ doc: e, selection: t }) => {
635
635
  let { isEditable: n, isFocused: r } = this.editor, { anchor: i } = t, a = [];
636
- if (!n || !r) return H.create(e, []);
636
+ if (!n || !r) return L.create(e, []);
637
637
  let o = 0;
638
638
  this.options.mode === "deepest" && e.descendants((e, t) => {
639
639
  if (!e.isText) {
@@ -646,25 +646,25 @@ U.create({
646
646
  if (e.isText || !(i >= t && i <= t + e.nodeSize - 1)) return !1;
647
647
  if (s += 1, this.options.mode === "deepest" && o - s > 0 || this.options.mode === "shallowest" && s > 1) return this.options.mode === "deepest";
648
648
  a.push(I.node(t, t + e.nodeSize, { class: this.options.className }));
649
- }), H.create(e, a);
649
+ }), L.create(e, a);
650
650
  } }
651
651
  })];
652
652
  }
653
- }), U.create({
653
+ }), V.create({
654
654
  name: "gapCursor",
655
655
  addProseMirrorPlugins() {
656
- return [Ge()];
656
+ return [qe()];
657
657
  },
658
658
  extendNodeSchema(e) {
659
- return { allowGapCursor: ge(W(e, "allowGapCursor", {
659
+ return { allowGapCursor: Se(H(e, "allowGapCursor", {
660
660
  name: e.name,
661
661
  options: e.options,
662
662
  storage: e.storage
663
663
  })) ?? null };
664
664
  }
665
665
  });
666
- var ht = "placeholder", $ = new L("tiptap__placeholder"), gt = 200;
667
- function _t(e) {
666
+ var _t = "placeholder", $ = new z("tiptap__placeholder"), vt = 200;
667
+ function yt(e) {
668
668
  let { editor: t, placeholder: n, dataAttribute: r, pos: i, node: a, isEmptyDoc: o, hasAnchor: s, classes: { emptyNode: c, emptyEditor: l } } = e, u = [c];
669
669
  return o && u.push(l), I.node(i, i + a.nodeSize, {
670
670
  class: u.join(" "),
@@ -676,17 +676,17 @@ function _t(e) {
676
676
  }) : n
677
677
  });
678
678
  }
679
- function vt(e, t) {
679
+ function bt(e, t) {
680
680
  return typeof e == "function" ? e(t) : e;
681
681
  }
682
- function yt({ editor: e, options: t, dataAttribute: n, doc: r, selection: i }) {
682
+ function xt({ editor: e, options: t, dataAttribute: n, doc: r, selection: i }) {
683
683
  if (!(e.isEditable || !t.showOnlyWhenEditable)) return null;
684
684
  let { anchor: a } = i, o = [], s = e.isEmpty;
685
685
  if (t.showOnlyCurrent && !t.includeChildren) {
686
686
  let i = r.resolve(a), c = i.depth > 0 ? i.node(1) : i.nodeAfter, l = i.depth > 0 ? i.before(1) : a;
687
- if (c && c.type.isTextblock && ye(c)) {
687
+ if (c && c.type.isTextblock && W(c)) {
688
688
  let r = a >= l && a <= l + c.nodeSize;
689
- o.push(_t({
689
+ o.push(yt({
690
690
  editor: e,
691
691
  isEmptyDoc: s,
692
692
  dataAttribute: n,
@@ -694,7 +694,7 @@ function yt({ editor: e, options: t, dataAttribute: n, doc: r, selection: i }) {
694
694
  placeholder: t.placeholder,
695
695
  classes: {
696
696
  emptyEditor: t.emptyEditorClass,
697
- emptyNode: vt(t.emptyNodeClass, {
697
+ emptyNode: bt(t.emptyNodeClass, {
698
698
  editor: e,
699
699
  node: c,
700
700
  pos: l,
@@ -708,8 +708,8 @@ function yt({ editor: e, options: t, dataAttribute: n, doc: r, selection: i }) {
708
708
  } else {
709
709
  let i = $.getState(e.state), c = i?.topPos ?? 0, l = i?.bottomPos ?? r.content.size;
710
710
  r.nodesBetween(c, l, (r, i) => {
711
- let c = a >= i && a <= i + r.nodeSize, l = !r.isLeaf && ye(r);
712
- return r.type.isTextblock && (c || !t.showOnlyCurrent) && l && o.push(_t({
711
+ let c = a >= i && a <= i + r.nodeSize, l = !r.isLeaf && W(r);
712
+ return r.type.isTextblock && (c || !t.showOnlyCurrent) && l && o.push(yt({
713
713
  editor: e,
714
714
  isEmptyDoc: s,
715
715
  dataAttribute: n,
@@ -717,7 +717,7 @@ function yt({ editor: e, options: t, dataAttribute: n, doc: r, selection: i }) {
717
717
  placeholder: t.placeholder,
718
718
  classes: {
719
719
  emptyEditor: t.emptyEditorClass,
720
- emptyNode: vt(t.emptyNodeClass, {
720
+ emptyNode: bt(t.emptyNodeClass, {
721
721
  editor: e,
722
722
  node: r,
723
723
  pos: i,
@@ -729,19 +729,19 @@ function yt({ editor: e, options: t, dataAttribute: n, doc: r, selection: i }) {
729
729
  })), t.includeChildren;
730
730
  });
731
731
  }
732
- return H.create(r, o);
732
+ return L.create(r, o);
733
733
  }
734
- function bt(e) {
734
+ function St(e) {
735
735
  return e.replace(/\s+/g, "-").replace(/[^a-zA-Z0-9-]/g, "").replace(/^[0-9-]+/, "").replace(/^-+/, "").toLowerCase();
736
736
  }
737
- function xt(e) {
737
+ function Ct(e) {
738
738
  let t = getComputedStyle(e), n = `${t.overflow} ${t.overflowY} ${t.overflowX}`;
739
739
  return /auto|scroll|overlay/.test(n);
740
740
  }
741
- function St(e) {
741
+ function wt(e) {
742
742
  let t = e;
743
743
  for (; t;) {
744
- if (xt(t)) return t;
744
+ if (Ct(t)) return t;
745
745
  let e = t.parentElement;
746
746
  if (!e) {
747
747
  let e = t.getRootNode();
@@ -755,19 +755,19 @@ function St(e) {
755
755
  }
756
756
  return window;
757
757
  }
758
- function Ct(e) {
758
+ function Tt(e) {
759
759
  return e === window ? {
760
760
  top: 0,
761
761
  bottom: window.innerHeight
762
762
  } : e.getBoundingClientRect();
763
763
  }
764
- function wt({ view: e, scrollContainer: t }) {
764
+ function Et({ view: e, scrollContainer: t }) {
765
765
  let n = e.dom.getBoundingClientRect();
766
766
  if (n.width <= 0 || n.height <= 0) return null;
767
- let r = t ? Ct(t) : {
767
+ let r = t ? Tt(t) : {
768
768
  top: 0,
769
769
  bottom: window.innerHeight
770
- }, i = Math.max(n.top, r.top) - gt, a = Math.min(n.bottom, r.bottom) + gt;
770
+ }, i = Math.max(n.top, r.top) - vt, a = Math.min(n.bottom, r.bottom) + vt;
771
771
  if (i >= a) return null;
772
772
  let o = n.left + 1, s = n.right - 1;
773
773
  if (o > s) return null;
@@ -785,7 +785,7 @@ function wt({ view: e, scrollContainer: t }) {
785
785
  bottom: p.pos
786
786
  };
787
787
  }
788
- var Tt = {
788
+ var Dt = {
789
789
  init() {
790
790
  return {
791
791
  topPos: null,
@@ -803,9 +803,9 @@ var Tt = {
803
803
  } : t;
804
804
  }
805
805
  };
806
- function Et(e) {
807
- let t = St(e.dom), n = () => {
808
- let n = wt({
806
+ function Ot(e) {
807
+ let t = wt(e.dom), n = () => {
808
+ let n = Et({
809
809
  view: e,
810
810
  scrollContainer: t
811
811
  });
@@ -834,13 +834,13 @@ function Et(e) {
834
834
  }
835
835
  };
836
836
  }
837
- function Dt({ editor: e, options: t }) {
838
- let n = t.dataAttribute ? `data-${bt(t.dataAttribute)}` : `data-${ht}`;
839
- return new R({
837
+ function kt({ editor: e, options: t }) {
838
+ let n = t.dataAttribute ? `data-${St(t.dataAttribute)}` : `data-${_t}`;
839
+ return new B({
840
840
  key: $,
841
- state: Tt,
842
- view: Et,
843
- props: { decorations: ({ doc: r, selection: i }) => yt({
841
+ state: Dt,
842
+ view: Ot,
843
+ props: { decorations: ({ doc: r, selection: i }) => xt({
844
844
  editor: e,
845
845
  options: t,
846
846
  dataAttribute: n,
@@ -849,13 +849,13 @@ function Dt({ editor: e, options: t }) {
849
849
  }) }
850
850
  });
851
851
  }
852
- var Ot = U.create({
852
+ var At = V.create({
853
853
  name: "placeholder",
854
854
  addOptions() {
855
855
  return {
856
856
  emptyEditorClass: "is-editor-empty",
857
857
  emptyNodeClass: "is-empty",
858
- dataAttribute: ht,
858
+ dataAttribute: _t,
859
859
  placeholder: "Write something …",
860
860
  showOnlyWhenEditable: !0,
861
861
  showOnlyCurrent: !0,
@@ -863,31 +863,31 @@ var Ot = U.create({
863
863
  };
864
864
  },
865
865
  addProseMirrorPlugins() {
866
- return [Dt({
866
+ return [kt({
867
867
  editor: this.editor,
868
868
  options: this.options
869
869
  })];
870
870
  }
871
- }), kt = ".ProseMirror:not(.ProseMirror-focused) *::selection {\n background: transparent;\n}\n\n.ProseMirror:not(.ProseMirror-focused) *::-moz-selection {\n background: transparent;\n}";
872
- U.create({
871
+ }), jt = ".ProseMirror:not(.ProseMirror-focused) *::selection {\n background: transparent;\n}\n\n.ProseMirror:not(.ProseMirror-focused) *::-moz-selection {\n background: transparent;\n}";
872
+ V.create({
873
873
  name: "selection",
874
874
  addOptions() {
875
875
  return { className: "selection" };
876
876
  },
877
877
  addProseMirrorPlugins() {
878
878
  let { editor: e, options: t } = this;
879
- return e.options.injectCSS && typeof document < "u" && ke(kt, e.options.injectNonce, "selection"), [new R({
880
- key: new L("selection"),
879
+ return e.options.injectCSS && typeof document < "u" && N(jt, e.options.injectNonce, "selection"), [new B({
880
+ key: new z("selection"),
881
881
  props: { decorations(n) {
882
- return n.selection.empty || e.isFocused || !e.isEditable || z(n.selection) || e.view.dragging ? null : H.create(n.doc, [I.inline(n.selection.from, n.selection.to, { class: t.className })]);
882
+ return n.selection.empty || e.isFocused || !e.isEditable || ye(n.selection) || e.view.dragging ? null : L.create(n.doc, [I.inline(n.selection.from, n.selection.to, { class: t.className })]);
883
883
  } }
884
884
  })];
885
885
  }
886
886
  });
887
- function At({ types: e, node: t }) {
887
+ function Mt({ types: e, node: t }) {
888
888
  return t && Array.isArray(e) && e.includes(t.type) || t?.type === e;
889
889
  }
890
- U.create({
890
+ V.create({
891
891
  name: "trailingNode",
892
892
  addOptions() {
893
893
  return {
@@ -896,8 +896,8 @@ U.create({
896
896
  };
897
897
  },
898
898
  addProseMirrorPlugins() {
899
- let e = new L(this.name), t = this.options.node || this.editor.schema.topNodeType.contentMatch.defaultType?.name || "paragraph", n = Object.entries(this.editor.schema.nodes).map(([, e]) => e).filter((e) => (this.options.notAfter || []).concat(t).includes(e.name));
900
- return [new R({
899
+ let e = new z(this.name), t = this.options.node || this.editor.schema.topNodeType.contentMatch.defaultType?.name || "paragraph", n = Object.entries(this.editor.schema.nodes).map(([, e]) => e).filter((e) => (this.options.notAfter || []).concat(t).includes(e.name));
900
+ return [new B({
901
901
  key: e,
902
902
  appendTransaction: (n, r, i) => {
903
903
  let { doc: a, tr: o, schema: s } = i, c = e.getState(i), l = a.content.size, u = s.nodes[t];
@@ -906,7 +906,7 @@ U.create({
906
906
  state: {
907
907
  init: (e, t) => {
908
908
  let r = t.tr.doc.lastChild;
909
- return !At({
909
+ return !Mt({
910
910
  node: r,
911
911
  types: n
912
912
  });
@@ -914,7 +914,7 @@ U.create({
914
914
  apply: (e, t) => {
915
915
  if (!e.docChanged || e.getMeta("__uniqueIDTransaction")) return t;
916
916
  let r = e.doc.lastChild;
917
- return !At({
917
+ return !Mt({
918
918
  node: r,
919
919
  types: n
920
920
  });
@@ -923,7 +923,7 @@ U.create({
923
923
  })];
924
924
  }
925
925
  });
926
- var jt = U.create({
926
+ var Nt = V.create({
927
927
  name: "undoRedo",
928
928
  addOptions() {
929
929
  return {
@@ -933,12 +933,12 @@ var jt = U.create({
933
933
  },
934
934
  addCommands() {
935
935
  return {
936
- undo: () => ({ state: e, dispatch: t }) => pt(e, t),
937
- redo: () => ({ state: e, dispatch: t }) => mt(e, t)
936
+ undo: () => ({ state: e, dispatch: t }) => ht(e, t),
937
+ redo: () => ({ state: e, dispatch: t }) => gt(e, t)
938
938
  };
939
939
  },
940
940
  addProseMirrorPlugins() {
941
- return [dt(this.options)];
941
+ return [pt(this.options)];
942
942
  },
943
943
  addKeyboardShortcuts() {
944
944
  return {
@@ -952,8 +952,8 @@ var jt = U.create({
952
952
  });
953
953
  //#endregion
954
954
  //#region ../../node_modules/.pnpm/@tiptap+vue-3@3.27.1_@floating-ui+dom@1.7.6_@tiptap+core@3.27.1_@tiptap+pm@3.27.1__@tip_533afe27a0e41f53f3674ff5bfd0331c/node_modules/@tiptap/vue-3/dist/index.js
955
- function Mt(e) {
956
- return s((t, n) => ({
955
+ function Pt(e) {
956
+ return _((t, n) => ({
957
957
  get() {
958
958
  return t(), e;
959
959
  },
@@ -966,11 +966,11 @@ function Mt(e) {
966
966
  }
967
967
  }));
968
968
  }
969
- var Nt = class extends De {
969
+ var Ft = class extends Pe {
970
970
  constructor(e = {}) {
971
- return super(e), this.contentComponent = null, this.appContext = null, this.reactiveState = Mt(this.view.state), this.reactiveExtensionStorage = Mt(this.extensionStorage), this.on("beforeTransaction", ({ nextState: e }) => {
971
+ return super(e), this.contentComponent = null, this.appContext = null, this.reactiveState = Pt(this.view.state), this.reactiveExtensionStorage = Pt(this.extensionStorage), this.on("beforeTransaction", ({ nextState: e }) => {
972
972
  this.reactiveState.value = e, this.reactiveExtensionStorage.value = this.extensionStorage;
973
- }), u(this);
973
+ }), E(this);
974
974
  }
975
975
  get state() {
976
976
  return this.reactiveState ? this.reactiveState.value : this.view.state;
@@ -986,36 +986,36 @@ var Nt = class extends De {
986
986
  let t = super.unregisterPlugin(e);
987
987
  return this.reactiveState && t && (this.reactiveState.value = t), t;
988
988
  }
989
- }, Pt = y({
989
+ }, It = w({
990
990
  name: "EditorContent",
991
991
  props: { editor: {
992
992
  default: null,
993
993
  type: Object
994
994
  } },
995
995
  setup(t) {
996
- let n = g(), r = re();
997
- return ie(() => {
998
- let i = t.editor;
999
- i && i.options.element && n.value && a(() => {
1000
- if (!n.value || !i.view.dom?.parentNode) return;
1001
- let t = e(n.value);
1002
- n.value.append(...i.view.dom.parentNode.childNodes), i.contentComponent = r.ctx._, r && (i.appContext = {
996
+ let n = y(), r = e();
997
+ return c(() => {
998
+ let e = t.editor;
999
+ e && e.options.element && n.value && a(() => {
1000
+ if (!n.value || !e.view.dom?.parentNode) return;
1001
+ let t = b(n.value);
1002
+ n.value.append(...e.view.dom.parentNode.childNodes), e.contentComponent = r.ctx._, r && (e.appContext = {
1003
1003
  ...r.appContext,
1004
1004
  provides: r.provides
1005
- }), i.setOptions({ element: t }), i.createNodeViews();
1005
+ }), e.setOptions({ element: t }), e.createNodeViews();
1006
1006
  });
1007
- }), i(() => {
1007
+ }), s(() => {
1008
1008
  let e = t.editor;
1009
1009
  e && (e.contentComponent = null, e.appContext = null);
1010
1010
  }), { rootEl: n };
1011
1011
  },
1012
1012
  render() {
1013
- return h("div", { ref: (e) => {
1013
+ return C("div", { ref: (e) => {
1014
1014
  this.rootEl = e;
1015
1015
  } });
1016
1016
  }
1017
1017
  });
1018
- y({
1018
+ w({
1019
1019
  name: "NodeViewContent",
1020
1020
  props: { as: {
1021
1021
  type: String,
@@ -1031,13 +1031,13 @@ y({
1031
1031
  e && e(null);
1032
1032
  },
1033
1033
  render() {
1034
- return h(this.as, {
1034
+ return C(this.as, {
1035
1035
  style: { whiteSpace: "pre-wrap" },
1036
1036
  "data-node-view-content": ""
1037
1037
  });
1038
1038
  }
1039
1039
  });
1040
- var Ft = y({
1040
+ var Lt = w({
1041
1041
  name: "NodeViewWrapper",
1042
1042
  props: { as: {
1043
1043
  type: String,
@@ -1046,24 +1046,24 @@ var Ft = y({
1046
1046
  inject: ["onDragStart", "decorationClasses"],
1047
1047
  render() {
1048
1048
  var e;
1049
- return h(this.as, {
1049
+ return C(this.as, {
1050
1050
  class: this.decorationClasses,
1051
1051
  style: { whiteSpace: "normal" },
1052
1052
  "data-node-view-wrapper": "",
1053
1053
  onDragstart: this.onDragStart
1054
1054
  }, (e = this.$slots).default?.call(e));
1055
1055
  }
1056
- }), It = (e = {}) => {
1057
- let t = _();
1058
- return p(() => {
1059
- t.value = new Nt(e);
1060
- }), i(() => {
1056
+ }), Rt = (e = {}) => {
1057
+ let t = re();
1058
+ return u(() => {
1059
+ t.value = new Ft(e);
1060
+ }), s(() => {
1061
1061
  var e;
1062
1062
  (e = t.value) == null || e.destroy();
1063
1063
  }), t;
1064
- }, Lt = class {
1064
+ }, zt = class {
1065
1065
  constructor(e, { props: t = {}, editor: n }) {
1066
- this.destroyed = !1, this.editor = n, this.component = u(e), this.el = document.createElement("div"), this.props = l(t), this.renderedComponent = this.renderComponent();
1066
+ this.destroyed = !1, this.editor = n, this.component = E(e), this.el = document.createElement("div"), this.props = ae(t), this.renderedComponent = this.renderComponent();
1067
1067
  }
1068
1068
  get element() {
1069
1069
  return this.renderedComponent.el;
@@ -1073,11 +1073,11 @@ var Ft = y({
1073
1073
  }
1074
1074
  renderComponent() {
1075
1075
  if (this.destroyed) return this.renderedComponent;
1076
- let e = h(this.component, this.props);
1077
- return this.editor.appContext && (e.appContext = this.editor.appContext), typeof document < "u" && this.el && D(e, this.el), {
1076
+ let e = C(this.component, this.props);
1077
+ return this.editor.appContext && (e.appContext = this.editor.appContext), typeof document < "u" && this.el && x(e, this.el), {
1078
1078
  vNode: e,
1079
1079
  destroy: () => {
1080
- this.el && D(null, this.el), this.el = null, e = null;
1080
+ this.el && x(null, this.el), this.el = null, e = null;
1081
1081
  },
1082
1082
  el: this.el ? this.el.firstElementChild : null
1083
1083
  };
@@ -1091,20 +1091,20 @@ var Ft = y({
1091
1091
  this.destroyed || (this.destroyed = !0, this.renderedComponent.destroy());
1092
1092
  }
1093
1093
  };
1094
- y({
1094
+ w({
1095
1095
  name: "MarkViewContent",
1096
1096
  props: { as: {
1097
1097
  type: String,
1098
1098
  default: "span"
1099
1099
  } },
1100
1100
  render() {
1101
- return h(this.as, {
1101
+ return C(this.as, {
1102
1102
  style: { whiteSpace: "inherit" },
1103
1103
  "data-mark-view-content": ""
1104
1104
  });
1105
1105
  }
1106
1106
  });
1107
- var Rt = {
1107
+ var Bt = {
1108
1108
  editor: {
1109
1109
  type: Object,
1110
1110
  required: !0
@@ -1149,7 +1149,7 @@ var Rt = {
1149
1149
  type: Object,
1150
1150
  required: !0
1151
1151
  }
1152
- }, zt = class extends we {
1152
+ }, Vt = class extends Ae {
1153
1153
  constructor(e, t, n) {
1154
1154
  super(e, t, n), this.cachedExtensionWithSyncedStorage = null, this.handlePositionUpdate = () => {
1155
1155
  let e = this.getPos();
@@ -1178,26 +1178,26 @@ var Rt = {
1178
1178
  getPos: () => this.getPos(),
1179
1179
  updateAttributes: (e = {}) => this.updateAttributes(e),
1180
1180
  deleteNode: () => this.deleteNode()
1181
- }, t = e, n = this.onDragStart.bind(this);
1182
- this.decorationClasses = g(this.getDecorationClasses());
1183
- let r = y({
1181
+ }, n = e, r = this.onDragStart.bind(this);
1182
+ this.decorationClasses = y(this.getDecorationClasses());
1183
+ let i = w({
1184
1184
  extends: { ...this.component },
1185
1185
  props: Object.keys(e),
1186
1186
  template: this.component.template,
1187
1187
  setup: (e) => {
1188
- var t;
1189
- return w("onDragStart", n), w("decorationClasses", this.decorationClasses), w("nodeViewContentRef", (e) => {
1188
+ var n;
1189
+ return t("onDragStart", r), t("decorationClasses", this.decorationClasses), t("nodeViewContentRef", (e) => {
1190
1190
  this.contentDOMElement && e && e.firstChild !== this.contentDOMElement && e.appendChild(this.contentDOMElement);
1191
- }), (t = this.component).setup?.call(t, e, { expose: () => void 0 });
1191
+ }), (n = this.component).setup?.call(n, e, { expose: () => void 0 });
1192
1192
  },
1193
1193
  __scopeId: this.component.__scopeId,
1194
1194
  __cssModules: this.component.__cssModules,
1195
1195
  __name: this.component.__name,
1196
1196
  __file: this.component.__file
1197
1197
  });
1198
- this.handleSelectionUpdate = this.handleSelectionUpdate.bind(this), this.editor.on("selectionUpdate", this.handleSelectionUpdate), this.currentPos = this.getPos(), this.node.isLeaf || (this.contentDOMElement = document.createElement(this.node.isInline ? "span" : "div"), this.contentDOMElement.style.whiteSpace = "inherit", this.contentDOMElement.dataset.nodeViewContentVue = ""), this.renderer = new Lt(r, {
1198
+ this.handleSelectionUpdate = this.handleSelectionUpdate.bind(this), this.editor.on("selectionUpdate", this.handleSelectionUpdate), this.currentPos = this.getPos(), this.node.isLeaf || (this.contentDOMElement = document.createElement(this.node.isInline ? "span" : "div"), this.contentDOMElement.style.whiteSpace = "inherit", this.contentDOMElement.dataset.nodeViewContentVue = ""), this.renderer = new zt(i, {
1199
1199
  editor: this.editor,
1200
- props: t
1200
+ props: n
1201
1201
  });
1202
1202
  }
1203
1203
  get dom() {
@@ -1209,7 +1209,7 @@ var Rt = {
1209
1209
  }
1210
1210
  handleSelectionUpdate() {
1211
1211
  let e = this.getPos();
1212
- if (typeof e == "number") if (Fe({
1212
+ if (typeof e == "number") if (we({
1213
1213
  selection: this.editor.state.selection,
1214
1214
  pos: e,
1215
1215
  nodeSize: this.node.nodeSize,
@@ -1267,111 +1267,111 @@ var Rt = {
1267
1267
  this.renderer.destroy(), this.editor.off("selectionUpdate", this.handleSelectionUpdate), this.options.trackNodeViewPosition && this.editor.off("update", this.handlePositionUpdate), this.contentDOMElement = null;
1268
1268
  }
1269
1269
  };
1270
- function Bt(e, t) {
1271
- return (n) => n.editor.contentComponent ? new zt(typeof e == "function" && "__vccOpts" in e ? e.__vccOpts : e, n, t) : {};
1270
+ function Ht(e, t) {
1271
+ return (n) => n.editor.contentComponent ? new Vt(typeof e == "function" && "__vccOpts" in e ? e.__vccOpts : e, n, t) : {};
1272
1272
  }
1273
1273
  //#endregion
1274
1274
  //#region src/components/MergeTagPicker.vue?vue&type=script&setup=true&lang.ts
1275
- var Vt = [
1275
+ var Ut = [
1276
1276
  "title",
1277
1277
  "aria-label",
1278
1278
  "popovertarget",
1279
1279
  "aria-expanded"
1280
- ], Ht = ["id", "aria-label"], Ut = {
1280
+ ], Wt = ["id", "aria-label"], Gt = {
1281
1281
  key: 0,
1282
1282
  class: "merge-tag-list"
1283
- }, Wt = ["onClick"], Gt = { class: "merge-tag-option-label" }, Kt = { class: "merge-tag-option-id" }, qt = {
1283
+ }, Kt = ["onClick"], qt = { class: "merge-tag-option-label" }, Jt = { class: "merge-tag-option-id" }, Yt = {
1284
1284
  key: 1,
1285
1285
  class: "merge-tag-empty"
1286
- }, Jt = /*#__PURE__*/ M(/* @__PURE__ */ y({
1286
+ }, Xt = /*#__PURE__*/ Re(/* @__PURE__ */ w({
1287
1287
  __name: "MergeTagPicker",
1288
1288
  emits: ["select"],
1289
- setup(n, { emit: i }) {
1290
- let s = i, { t: c, locale: l } = Le(), u = r(N, x(() => ({}))), p = x(() => Object.keys(u.value).map((e) => ({
1289
+ setup(e, { emit: t }) {
1290
+ let n = t, { t: i, locale: o } = ze(), s = d(M, k(() => ({}))), c = k(() => Object.keys(s.value).map((e) => ({
1291
1291
  id: e,
1292
- label: V(u.value, e, l.value)
1293
- }))), m = g(""), h = x(() => {
1294
- let e = m.value.trim().toLowerCase();
1295
- return e ? p.value.filter((t) => t.label.toLowerCase().includes(e) || t.id.toLowerCase().includes(e)) : p.value;
1296
- }), ee = o(), _ = x(() => y.value?.matches(":popover-open") ?? !1), v = d("trigger"), y = d("popover"), te = d("filterInput");
1297
- function w(e) {
1292
+ label: Te(s.value, e, o.value)
1293
+ }))), u = y(""), f = k(() => {
1294
+ let e = u.value.trim().toLowerCase();
1295
+ return e ? c.value.filter((t) => t.label.toLowerCase().includes(e) || t.id.toLowerCase().includes(e)) : c.value;
1296
+ }), p = ee(), te = k(() => v.value?.matches(":popover-open") ?? !1), _ = l("trigger"), v = l("popover"), x = l("filterInput");
1297
+ function ne(e) {
1298
1298
  if (e.newState !== "open") return;
1299
- m.value = "";
1300
- let t = y.value, n = v.value?.getBoundingClientRect();
1299
+ u.value = "";
1300
+ let t = v.value, n = _.value?.getBoundingClientRect();
1301
1301
  t && n && (t.style.left = `${n.left}px`, t.style.top = `${n.bottom + 4}px`);
1302
1302
  }
1303
- function ne(e) {
1304
- e.newState === "open" && a(() => te.value?.focus());
1303
+ function C(e) {
1304
+ e.newState === "open" && a(() => x.value?.focus());
1305
1305
  }
1306
- function D(e) {
1307
- let t = e.relatedTarget, n = y.value;
1306
+ function w(e) {
1307
+ let t = e.relatedTarget, n = v.value;
1308
1308
  t instanceof Node && n?.contains(t) || n?.matches(":popover-open") && n.hidePopover();
1309
1309
  }
1310
- function j(e) {
1311
- s("select", e), y.value?.hidePopover();
1310
+ function re(e) {
1311
+ n("select", e), v.value?.hidePopover();
1312
1312
  }
1313
- return (n, r) => (t(), S(k, null, [p.value.length ? (t(), S("button", {
1313
+ return (e, t) => (j(), h(A, null, [c.value.length ? (j(), h("button", {
1314
1314
  key: 0,
1315
1315
  ref_key: "trigger",
1316
- ref: v,
1316
+ ref: _,
1317
1317
  type: "button",
1318
- class: b(["merge-tag-trigger", { active: _.value }]),
1319
- title: e(c)("blocks.text.mergeTag"),
1320
- "aria-label": e(c)("blocks.text.mergeTag"),
1321
- popovertarget: e(ee),
1318
+ class: T(["merge-tag-trigger", { active: te.value }]),
1319
+ title: b(i)("blocks.text.mergeTag"),
1320
+ "aria-label": b(i)("blocks.text.mergeTag"),
1321
+ popovertarget: b(p),
1322
1322
  "aria-haspopup": "dialog",
1323
- "aria-expanded": _.value,
1324
- onMousedown: r[0] ||= T(() => {}, ["prevent"])
1325
- }, [A(de, {
1323
+ "aria-expanded": te.value,
1324
+ onMousedown: t[0] ||= D(() => {}, ["prevent"])
1325
+ }, [r(P, {
1326
1326
  name: "braces",
1327
1327
  size: 16
1328
- })], 42, Vt)) : C("", !0), p.value.length ? (t(), S("div", {
1328
+ })], 42, Ut)) : O("", !0), c.value.length ? (j(), h("div", {
1329
1329
  key: 1,
1330
- id: e(ee),
1330
+ id: b(p),
1331
1331
  ref_key: "popover",
1332
- ref: y,
1332
+ ref: v,
1333
1333
  class: "merge-tag-popover",
1334
1334
  popover: "",
1335
1335
  role: "dialog",
1336
- "aria-label": e(c)("blocks.text.mergeTag"),
1337
- onBeforetoggle: w,
1338
- onToggle: ne,
1339
- onFocusout: D
1340
- }, [A(Te, {
1336
+ "aria-label": b(i)("blocks.text.mergeTag"),
1337
+ onBeforetoggle: ne,
1338
+ onToggle: C,
1339
+ onFocusout: w
1340
+ }, [r(Fe, {
1341
1341
  ref_key: "filterInput",
1342
- ref: te,
1343
- modelValue: m.value,
1344
- "onUpdate:modelValue": r[1] ||= (e) => m.value = e,
1342
+ ref: x,
1343
+ modelValue: u.value,
1344
+ "onUpdate:modelValue": t[1] ||= (e) => u.value = e,
1345
1345
  autocomplete: "off",
1346
- placeholder: e(c)("blocks.text.mergeTagSearch"),
1347
- "aria-label": e(c)("blocks.text.mergeTagSearch"),
1346
+ placeholder: b(i)("blocks.text.mergeTagSearch"),
1347
+ "aria-label": b(i)("blocks.text.mergeTagSearch"),
1348
1348
  spellcheck: "false"
1349
1349
  }, null, 8, [
1350
1350
  "modelValue",
1351
1351
  "placeholder",
1352
1352
  "aria-label"
1353
- ]), h.value.length ? (t(), S("ul", Ut, [(t(!0), S(k, null, f(h.value, (e) => (t(), S("li", { key: e.id }, [E("button", {
1353
+ ]), f.value.length ? (j(), h("ul", Gt, [(j(!0), h(A, null, g(f.value, (e) => (j(), h("li", { key: e.id }, [m("button", {
1354
1354
  type: "button",
1355
1355
  class: "merge-tag-option",
1356
- onClick: (t) => j(e.id),
1357
- onMousedown: r[2] ||= T(() => {}, ["prevent"])
1358
- }, [E("span", Gt, O(e.label), 1), E("span", Kt, O(e.id), 1)], 40, Wt)]))), 128))])) : (t(), S("p", qt, O(e(c)("blocks.text.mergeTagEmpty")), 1))], 40, Ht)) : C("", !0)], 64));
1356
+ onClick: (t) => re(e.id),
1357
+ onMousedown: t[2] ||= D(() => {}, ["prevent"])
1358
+ }, [m("span", qt, S(e.label), 1), m("span", Jt, S(e.id), 1)], 40, Kt)]))), 128))])) : (j(), h("p", Yt, S(b(i)("blocks.text.mergeTagEmpty")), 1))], 40, Wt)) : O("", !0)], 64));
1359
1359
  }
1360
- }), [["styles", [".merge-tag-trigger[data-v-809b7ac9]{border-radius:var(--bygga-radius-sm);color:var(--bygga-color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:1.8em;height:1.8em;padding:0;display:inline-flex}.merge-tag-trigger[data-v-809b7ac9]:hover{background:var(--bygga-color-track);color:var(--bygga-color-accent)}.merge-tag-trigger.active[data-v-809b7ac9]{background:var(--bygga-color-selected,var(--bygga-color-track));color:var(--bygga-color-selected-text,var(--bygga-color-accent));forced-color-adjust:none}.merge-tag-popover[data-v-809b7ac9]{background:var(--bygga-color-surface);border:1px solid var(--bygga-color-border);border-radius:var(--bygga-radius-sm);box-shadow:var(--bygga-shadow-card);box-sizing:border-box;flex-direction:column;gap:.35em;width:15em;margin:0;padding:.4em;position:fixed;inset:auto}.merge-tag-popover[data-v-809b7ac9]:popover-open{display:flex}.merge-tag-list[data-v-809b7ac9]{flex-direction:column;gap:.15em;max-height:14em;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.merge-tag-option[data-v-809b7ac9]{border-radius:var(--bygga-radius-sm);color:var(--bygga-color-text);cursor:pointer;text-align:start;background:0 0;border:none;justify-content:space-between;align-items:baseline;gap:.5em;width:100%;padding:.35em .5em;display:flex}.merge-tag-option[data-v-809b7ac9]:hover,.merge-tag-option[data-v-809b7ac9]:focus-visible{background:var(--bygga-color-track);color:var(--bygga-color-accent);outline:none}.merge-tag-option-id[data-v-809b7ac9]{color:var(--bygga-color-text-muted);font-variant-numeric:tabular-nums;font-size:.85em}.merge-tag-empty[data-v-809b7ac9]{color:var(--bygga-color-text-muted);margin:0;padding:.35em .5em}"]], ["__scopeId", "data-v-809b7ac9"]]), Yt = /* @__PURE__ */ y({
1360
+ }), [["styles", [".merge-tag-trigger[data-v-d5670188]{color:var(--bygga-color-text);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;min-width:30px;height:30px;padding:0;display:inline-flex}.merge-tag-trigger[data-v-d5670188]:hover{background:color-mix(in srgb, var(--bygga-color-text) 30%, transparent)}.merge-tag-trigger.active[data-v-d5670188]{background:var(--bygga-color-selected,var(--bygga-color-text));color:var(--bygga-color-selected-text,#fff);forced-color-adjust:none}.merge-tag-popover[data-v-d5670188]{background:var(--bygga-color-surface);border:1px solid var(--bygga-color-border);border-radius:var(--bygga-radius-sm);box-shadow:var(--bygga-shadow-card);box-sizing:border-box;flex-direction:column;gap:.35em;width:15em;margin:0;padding:.4em;position:fixed;inset:auto}.merge-tag-popover[data-v-d5670188]:popover-open{display:flex}.merge-tag-list[data-v-d5670188]{flex-direction:column;gap:.15em;max-height:14em;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.merge-tag-option[data-v-d5670188]{border-radius:var(--bygga-radius-sm);color:var(--bygga-color-text);cursor:pointer;text-align:start;background:0 0;border:none;justify-content:space-between;align-items:baseline;gap:.5em;width:100%;padding:.35em .5em;display:flex}.merge-tag-option[data-v-d5670188]:hover,.merge-tag-option[data-v-d5670188]:focus-visible{background:var(--bygga-color-track);color:var(--bygga-color-accent);outline:none}.merge-tag-option-id[data-v-d5670188]{color:var(--bygga-color-text-muted);font-variant-numeric:tabular-nums;font-size:.85em}.merge-tag-empty[data-v-d5670188]{color:var(--bygga-color-text-muted);margin:0;padding:.35em .5em}"]], ["__scopeId", "data-v-d5670188"]]), Zt = /* @__PURE__ */ w({
1361
1361
  __name: "MergeTagView",
1362
- props: Rt,
1363
- setup(i) {
1364
- let a = i, { t: o, locale: s } = Le(), c = r(N, x(() => ({}))), l = x(() => String(a.node.attrs.id ?? "")), u = x(() => c.value[l.value] !== void 0), d = x(() => V(c.value, l.value, s.value)), f = x(() => o("blocks.text.mergeTagChip", { name: d.value }));
1365
- return (r, i) => (t(), ne(e(Ft), {
1362
+ props: Bt,
1363
+ setup(e) {
1364
+ let t = e, { t: r, locale: a } = ze(), o = d(M, k(() => ({}))), s = k(() => String(t.node.attrs.id ?? "")), c = k(() => o.value[s.value] !== void 0), l = k(() => Te(o.value, s.value, a.value)), u = k(() => r("blocks.text.mergeTagChip", { name: l.value }));
1365
+ return (e, t) => (j(), n(b(Lt), {
1366
1366
  as: "span",
1367
- class: b(["merge-tag", { "is-unknown": !u.value }]),
1368
- "data-merge-tag": l.value,
1367
+ class: T(["merge-tag", { "is-unknown": !c.value }]),
1368
+ "data-merge-tag": s.value,
1369
1369
  contenteditable: "false",
1370
1370
  role: "img",
1371
- "aria-label": f.value,
1372
- title: f.value
1371
+ "aria-label": u.value,
1372
+ title: u.value
1373
1373
  }, {
1374
- default: n(() => [v(O(d.value), 1)]),
1374
+ default: te(() => [i(S(l.value), 1)]),
1375
1375
  _: 1
1376
1376
  }, 8, [
1377
1377
  "class",
@@ -1380,73 +1380,86 @@ var Vt = [
1380
1380
  "title"
1381
1381
  ]));
1382
1382
  }
1383
- }), Xt = "textStyle";
1384
- function Zt(e) {
1385
- let t = ue(e);
1383
+ });
1384
+ //#endregion
1385
+ //#region src/fontSizes.ts
1386
+ function Qt(e) {
1387
+ return `${e}px`;
1388
+ }
1389
+ var $t = new Set(ke.map(Qt));
1390
+ function en(e) {
1391
+ let t = e.trim();
1392
+ return $t.has(t) ? t : null;
1393
+ }
1394
+ function tn(e) {
1395
+ return $t.has(e);
1396
+ }
1397
+ //#endregion
1398
+ //#region src/panels/contentPanel/components/blocks/sanitizePastedFonts.ts
1399
+ var nn = "textStyle";
1400
+ function rn(e) {
1401
+ let t = ce(e);
1386
1402
  return !t || t.key === "verdana" ? null : t.stack;
1387
1403
  }
1388
- function Qt(e) {
1389
- if (e.type.name !== Xt) return e;
1390
- let { fontFamily: t } = e.attrs;
1391
- if (typeof t != "string") return e;
1392
- let n = Zt(t);
1393
- if (n === t) return e;
1394
- let r = {
1395
- ...e.attrs,
1396
- fontFamily: n
1397
- };
1398
- return n === null ? Object.entries(r).some(([e, t]) => e !== "fontFamily" && t !== null) ? e.type.create(r) : void 0 : e.type.create(r);
1404
+ function an(e, t) {
1405
+ if (e.type.name !== nn) return e;
1406
+ let n = { ...e.attrs };
1407
+ return typeof n.fontFamily == "string" && !t?.has(n.fontFamily) && (n.fontFamily = rn(n.fontFamily)), typeof n.fontSize == "string" && (n.fontSize = en(n.fontSize)), n.fontFamily === e.attrs.fontFamily && n.fontSize === e.attrs.fontSize ? e : Object.values(n).some((e) => e !== null) ? e.type.create(n) : void 0;
1399
1408
  }
1400
- function $t(e) {
1409
+ function on(e, t) {
1401
1410
  return e.flatMap((e) => {
1402
- let t = Qt(e);
1403
- return t ? [t] : [];
1411
+ let n = an(e, t);
1412
+ return n ? [n] : [];
1404
1413
  });
1405
1414
  }
1406
- function en(e) {
1407
- return e.isText ? e.mark($t(e.marks)) : e.copy(tn(e.content)).mark($t(e.marks));
1415
+ function sn(e, t) {
1416
+ return e.isText ? e.mark(on(e.marks, t)) : e.copy(cn(e.content, t)).mark(on(e.marks, t));
1408
1417
  }
1409
- function tn(e) {
1410
- let t = [];
1411
- for (let n = 0; n < e.childCount; n++) t.push(en(e.child(n)));
1412
- return G.fromArray(t);
1418
+ function cn(e, t) {
1419
+ let n = [];
1420
+ for (let r = 0; r < e.childCount; r++) n.push(sn(e.child(r), t));
1421
+ return F.fromArray(n);
1413
1422
  }
1414
- function nn(e) {
1415
- return new P(tn(e.content), e.openStart, e.openEnd);
1423
+ function ln(e, t) {
1424
+ return new G(cn(e.content, t), e.openStart, e.openEnd);
1416
1425
  }
1417
1426
  //#endregion
1418
1427
  //#region src/panels/contentPanel/components/blocks/TextEditor.vue?vue&type=script&setup=true&lang.ts
1419
- var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], sn = ["aria-label", "value"], cn = {
1428
+ var un = { class: "picker" }, dn = ["aria-label", "value"], fn = { value: "paragraph" }, pn = ["value"], mn = { class: "picker" }, hn = ["aria-label", "value"], gn = {
1429
+ value: "mixed",
1430
+ disabled: "",
1431
+ hidden: ""
1432
+ }, _n = ["value"], vn = ["value"], yn = { class: "picker" }, bn = ["aria-label", "value"], xn = {
1420
1433
  value: "mixed",
1421
1434
  disabled: "",
1422
1435
  hidden: ""
1423
- }, ln = ["value"], un = ["title", "aria-label"], dn = ["title", "aria-label"], fn = ["title", "aria-label"], pn = [
1436
+ }, Sn = { value: "" }, Cn = ["value"], wn = ["title", "aria-label"], Tn = ["title", "aria-label"], En = ["title", "aria-label"], Dn = [
1424
1437
  "title",
1425
1438
  "popovertarget",
1426
1439
  "aria-expanded"
1427
- ], mn = ["id", "aria-label"], hn = { class: "link-field" }, gn = {
1440
+ ], On = ["id", "aria-label"], kn = { class: "link-field" }, An = {
1428
1441
  key: 0,
1429
1442
  class: "link-anchor"
1430
- }, _n = {
1443
+ }, jn = {
1431
1444
  key: 0,
1432
1445
  value: ""
1433
- }, vn = {
1446
+ }, Mn = {
1434
1447
  key: 1,
1435
1448
  value: "",
1436
1449
  disabled: "",
1437
1450
  hidden: ""
1438
- }, yn = ["value"], bn = ["title", "aria-label"], xn = ["title", "onClick"], Sn = {
1451
+ }, Nn = ["value"], Pn = ["title", "aria-label"], Fn = ["title", "onClick"], In = {
1439
1452
  "aria-hidden": "true",
1440
1453
  height: "16",
1441
1454
  viewBox: "0 0 16 16",
1442
1455
  width: "16"
1443
- }, Cn = [
1456
+ }, Ln = [
1444
1457
  "width",
1445
1458
  "x",
1446
1459
  "y"
1447
- ], wn = /*#__PURE__*/ M(/* @__PURE__ */ y({
1460
+ ], Rn = 8, zn = 220, Bn = /*#__PURE__*/ Re(/* @__PURE__ */ w({
1448
1461
  __name: "TextEditor",
1449
- props: /*@__PURE__*/ j({
1462
+ props: /*@__PURE__*/ f({
1450
1463
  editable: {
1451
1464
  type: Boolean,
1452
1465
  default: !1
@@ -1462,138 +1475,150 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1462
1475
  textModifiers: {}
1463
1476
  }),
1464
1477
  emits: ["update:text"],
1465
- setup(i) {
1466
- let s = c(i, "text"), l = i, { t: u } = Le(), p = [
1478
+ setup(e) {
1479
+ let t = o(e, "text"), n = e, { t: i } = ze(), s = [
1467
1480
  "left",
1468
1481
  "center",
1469
1482
  "right",
1470
1483
  "justify"
1471
- ], h = x(() => u("blocks.text.label")), _ = It({
1472
- ...ae,
1484
+ ], c = k(() => i("blocks.text.label")), u = Rt({
1485
+ ...ue,
1473
1486
  editorProps: {
1474
1487
  attributes: {
1475
- "aria-label": h.value,
1488
+ "aria-label": c.value,
1476
1489
  "aria-multiline": "true",
1477
1490
  role: "textbox"
1478
1491
  },
1479
- transformPasted: (e) => nn(e)
1492
+ transformPasted: (e) => ln(e, ge.value)
1480
1493
  },
1481
- content: fe(s.value),
1482
- editable: l.editable,
1494
+ content: he(t.value),
1495
+ editable: n.editable,
1483
1496
  extensions: [
1484
- ...Se.map((e) => e.name === "mergeTag" ? e.extend({ addNodeView: () => Bt(Yt) }) : e),
1485
- jt,
1486
- Ot.configure({ placeholder: () => u("blocks.text.placeholder") })
1497
+ ...se.map((e) => e.name === "mergeTag" ? e.extend({ addNodeView: () => Ht(Zt) }) : e),
1498
+ Nt,
1499
+ At.configure({ placeholder: () => i("blocks.text.placeholder") })
1487
1500
  ],
1488
1501
  onUpdate({ editor: e }) {
1489
- s.value = ce(e.getJSON()), j();
1502
+ t.value = pe(e.getJSON()), w();
1490
1503
  },
1491
1504
  onSelectionUpdate() {
1492
- j();
1505
+ w();
1493
1506
  }
1494
1507
  });
1495
- m(h, (e) => {
1496
- _.value?.setOptions({ editorProps: { attributes: { "aria-label": e } } });
1497
- }), m(s, (e) => {
1498
- let t = _.value;
1499
- !t || pe(e, ce(t.getJSON())) || t.commands.setContent(fe(e), { emitUpdate: !1 });
1500
- }), m(() => l.editable, (e) => _.value?.setEditable(e));
1501
- let v = d("root"), y = d("toolbar");
1502
- function w() {
1503
- let e = y.value;
1504
- !e || e.matches(":popover-open") || (e.showPopover(), j());
1508
+ ie(c, (e) => {
1509
+ u.value?.setOptions({ editorProps: { attributes: { "aria-label": e } } });
1510
+ }), ie(t, (e) => {
1511
+ let t = u.value;
1512
+ !t || fe(e, pe(t.getJSON())) || t.commands.setContent(he(e), { emitUpdate: !1 });
1513
+ }), ie(() => n.editable, (e) => u.value?.setEditable(e));
1514
+ let f = l("root"), _ = l("toolbar");
1515
+ function x() {
1516
+ let e = _.value;
1517
+ !e || e.matches(":popover-open") || (e.showPopover(), w());
1505
1518
  }
1506
- function ne(e) {
1519
+ function C(e) {
1507
1520
  let t = e.relatedTarget;
1508
- t instanceof Node && v.value?.contains(t) || y.value?.matches(":popover-open") && y.value.hidePopover();
1509
- }
1510
- function D(e) {
1511
- let t = e.ownerDocument, n = e.getRootNode();
1512
- if (!(n instanceof ShadowRoot)) {
1513
- let e = t.getSelection();
1514
- return e && e.rangeCount > 0 && !e.isCollapsed ? e.getRangeAt(0) : void 0;
1515
- }
1516
- let r = n.getSelection?.();
1517
- if (r) return r.rangeCount > 0 && !r.isCollapsed ? r.getRangeAt(0) : void 0;
1518
- let [i] = t.getSelection()?.getComposedRanges?.({ shadowRoots: [n] }) ?? [];
1519
- if (!i || i.collapsed) return;
1520
- let a = t.createRange();
1521
- return a.setStart(i.startContainer, i.startOffset), a.setEnd(i.endContainer, i.endOffset), a;
1521
+ t instanceof Node && f.value?.contains(t) || _.value?.matches(":popover-open") && _.value.hidePopover();
1522
1522
  }
1523
- function j() {
1524
- let e = _.value?.view, t = y.value, n = v.value;
1523
+ function w() {
1524
+ let e = u.value?.view, t = _.value, n = f.value;
1525
1525
  if (!(e && t && n && t.matches(":popover-open"))) return;
1526
- let r = n.getBoundingClientRect(), i = D(n)?.getBoundingClientRect();
1527
- if (!i || i.left === 0 && i.right === 0) {
1528
- let t = e.coordsAtPos(e.state.selection.from);
1529
- i = {
1530
- left: t.left,
1531
- right: t.left,
1532
- top: t.top
1533
- };
1534
- }
1535
- let a = t.offsetWidth / 2, o = (i.left + i.right) / 2;
1536
- t.style.left = `${Math.min(Math.max(o, r.left + a), r.right - a)}px`, t.style.top = `${i.top}px`;
1526
+ let r = n.closest(".block-container"), i = (r?.querySelector(":scope > .block-label") ?? r ?? n).getBoundingClientRect(), a = Math.max(Rn, window.innerWidth - zn - Rn), o = Math.min(Math.max(i.left, Rn), a);
1527
+ t.style.left = `${o}px`, t.style.maxWidth = `${window.innerWidth - o - Rn}px`, t.style.top = `${i.top}px`;
1537
1528
  }
1538
1529
  function re() {
1539
- let e = _.value;
1530
+ let e = u.value;
1540
1531
  if (!e) return "paragraph";
1541
- let t = le.find((t) => e.isActive("heading", { level: t }));
1532
+ let t = me.find((t) => e.isActive("heading", { level: t }));
1542
1533
  return t ? `h${t}` : "paragraph";
1543
1534
  }
1544
- function ie(e) {
1535
+ function ae(e) {
1545
1536
  let { target: t } = e;
1546
1537
  if (!(t instanceof HTMLSelectElement)) return;
1547
- let n = _.value?.chain().focus();
1538
+ let n = u.value?.chain().focus();
1548
1539
  if (!n) return;
1549
- let r = le.find((e) => `h${e}` === t.value);
1540
+ let r = me.find((e) => `h${e}` === t.value);
1550
1541
  r ? n.setHeading({ level: r }).run() : n.setParagraph().run();
1551
1542
  }
1552
- let M = r(Ee, x(() => me));
1543
+ let E = d(ne, k(() => de)), M = je(), ge = k(() => new Set(M.value.map((e) => e.stack)));
1553
1544
  function N(e) {
1554
- return typeof e == "string" ? ue(e)?.key ?? M.value : M.value;
1545
+ return `custom:${e}`;
1555
1546
  }
1556
- function P() {
1557
- let e = _.value;
1558
- if (!e) return M.value;
1547
+ function F(e) {
1548
+ if (typeof e != "string") return E.value;
1549
+ let t = M.value.find((t) => t.stack === e);
1550
+ return t ? N(t.name) : ce(e)?.key ?? E.value;
1551
+ }
1552
+ function ye() {
1553
+ let e = u.value;
1554
+ if (!e) return E.value;
1559
1555
  let { from: t, to: n, empty: r } = e.state.selection;
1560
- if (r) return N(e.getAttributes("textStyle").fontFamily);
1556
+ if (r) return F(e.getAttributes("textStyle").fontFamily);
1561
1557
  let i = /* @__PURE__ */ new Set();
1562
1558
  e.state.doc.nodesBetween(t, n, (e) => {
1563
1559
  if (!e.isText) return;
1564
1560
  let t = e.marks.find((e) => e.type.name === "textStyle");
1565
- i.add(N(t?.attrs.fontFamily));
1561
+ i.add(F(t?.attrs.fontFamily));
1566
1562
  });
1567
1563
  let a = Array.from(i);
1568
- return a.length > 1 ? "mixed" : a[0] ?? M.value;
1564
+ return a.length > 1 ? "mixed" : a[0] ?? E.value;
1569
1565
  }
1570
- function F(e) {
1566
+ function I(e) {
1571
1567
  let { target: t } = e;
1572
1568
  if (!(t instanceof HTMLSelectElement)) return;
1573
- let n = t.value, r = _.value?.chain().focus();
1574
- r && xe(n) && (n === M.value ? r.unsetFontFamily().run() : r.setFontFamily(oe(n)).run());
1569
+ let n = t.value, r = u.value?.chain().focus();
1570
+ if (!r) return;
1571
+ let i = M.value.find((e) => N(e.name) === n);
1572
+ if (i) {
1573
+ r.setFontFamily(i.stack).run();
1574
+ return;
1575
+ }
1576
+ Ne(n) && (n === E.value ? r.unsetFontFamily().run() : r.setFontFamily(be(n)).run());
1577
+ }
1578
+ function L(e) {
1579
+ return typeof e == "string" && tn(e) ? e : "";
1575
1580
  }
1576
- let ge = Oe(() => {
1577
- let e = P();
1578
- return e === "mixed" ? void 0 : e;
1579
- }), _e = x({
1581
+ function R() {
1582
+ let e = u.value;
1583
+ if (!e) return "";
1584
+ let { from: t, to: n, empty: r } = e.state.selection;
1585
+ if (r) return L(e.getAttributes("textStyle").fontSize);
1586
+ let i = /* @__PURE__ */ new Set();
1587
+ e.state.doc.nodesBetween(t, n, (e) => {
1588
+ if (!e.isText) return;
1589
+ let t = e.marks.find((e) => e.type.name === "textStyle");
1590
+ i.add(L(t?.attrs.fontSize));
1591
+ });
1592
+ let a = Array.from(i);
1593
+ return a.length > 1 ? "mixed" : a[0] ?? "";
1594
+ }
1595
+ function z(e) {
1596
+ let { target: t } = e;
1597
+ if (!(t instanceof HTMLSelectElement)) return;
1598
+ let n = u.value?.chain().focus();
1599
+ n && (t.value === "" ? n.unsetFontSize().run() : tn(t.value) && n.setFontSize(t.value).run());
1600
+ }
1601
+ let Se = De(() => {
1602
+ let e = ye();
1603
+ return Ne(e) ? e : void 0;
1604
+ }), we = k({
1580
1605
  get: () => {
1581
- let e = _.value?.getAttributes("textStyle").color, t = typeof e == "string" ? he(e) : void 0;
1606
+ let e = u.value?.getAttributes("textStyle").color, t = typeof e == "string" ? Oe(e) : void 0;
1582
1607
  return t ? {
1583
1608
  type: "color",
1584
1609
  ...t
1585
- } : Ne;
1610
+ } : Ee;
1586
1611
  },
1587
1612
  set: (e) => {
1588
- e.type !== "transparent" && _.value?.chain().setColor(je(e)).run();
1613
+ e.type !== "transparent" && u.value?.chain().setColor(ve(e)).run();
1589
1614
  }
1590
- }), ye = {
1615
+ }), B = {
1591
1616
  left: "blocks.text.alignLeft",
1592
1617
  center: "blocks.text.alignCenter",
1593
1618
  right: "blocks.text.alignRight",
1594
1619
  justify: "blocks.text.alignJustify"
1595
1620
  };
1596
- function be(e) {
1621
+ function Te(e) {
1597
1622
  return (e === "justify" ? [
1598
1623
  14,
1599
1624
  14,
@@ -1613,218 +1638,252 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1613
1638
  };
1614
1639
  });
1615
1640
  }
1616
- let I = o(), L = d("linkPopover"), R = d("linkInput"), we = d("linkTrigger"), z = g(""), B = g(!1), V = g(!1);
1617
- function De(e) {
1641
+ let V = ee(), H = l("linkPopover"), U = l("linkInput"), Ae = l("linkTrigger"), W = y(""), Pe = y(!1), Ie = y(!1);
1642
+ function Le(e) {
1618
1643
  if (e.newState !== "open") return;
1619
- let t = _.value?.getAttributes("link")?.href;
1620
- z.value = typeof t == "string" ? t : "", V.value = z.value !== "";
1621
- let n = L.value, r = we.value?.getBoundingClientRect();
1644
+ let t = u.value?.getAttributes("link")?.href;
1645
+ W.value = typeof t == "string" ? t : "", Ie.value = W.value !== "";
1646
+ let n = H.value, r = Ae.value?.getBoundingClientRect();
1622
1647
  n && r && (n.style.left = `${r.left}px`, n.style.top = `${r.bottom + 4}px`);
1623
1648
  }
1624
- function ke(e) {
1625
- if (B.value = e.newState === "open", e.newState !== "open") return;
1626
- let t = L.value;
1649
+ function Re(e) {
1650
+ if (Pe.value = e.newState === "open", e.newState !== "open") return;
1651
+ let t = H.value;
1627
1652
  if (t) {
1628
1653
  let e = window.innerWidth - t.offsetWidth - 8;
1629
1654
  Number.parseFloat(t.style.left) > e && (t.style.left = `${Math.max(8, e)}px`);
1630
1655
  }
1631
1656
  a(() => {
1632
- R.value?.focus(), R.value?.select();
1657
+ U.value?.focus(), U.value?.select();
1633
1658
  });
1634
1659
  }
1635
- function H(e) {
1636
- let t = e.relatedTarget, n = L.value;
1660
+ function G(e) {
1661
+ let t = e.relatedTarget, n = H.value;
1637
1662
  t instanceof Node && n?.contains(t) || n?.hidePopover();
1638
1663
  }
1639
- function U() {
1640
- let e = _.value?.chain().focus();
1664
+ function Be() {
1665
+ let e = u.value?.chain().focus();
1641
1666
  if (!e) return;
1642
- let t = Me(z.value);
1667
+ let t = Me(W.value);
1643
1668
  t === "" ? e.unsetLink().run() : e.setLink({
1644
1669
  href: t,
1645
1670
  target: t.startsWith("#") ? null : "_blank"
1646
- }).run(), L.value?.hidePopover();
1671
+ }).run(), H.value?.hidePopover();
1647
1672
  }
1648
- let W = r(Ce, x(() => [])), Fe = x(() => z.value.startsWith("#") && W.value.includes(z.value.slice(1)) ? z.value.slice(1) : "");
1649
- function Ie(e) {
1650
- e === "" ? z.value.startsWith("#") && (z.value = "") : z.value = `#${e}`;
1673
+ let Ve = d(oe, k(() => [])), He = k(() => W.value.startsWith("#") && Ve.value.includes(W.value.slice(1)) ? W.value.slice(1) : "");
1674
+ function K(e) {
1675
+ e === "" ? W.value.startsWith("#") && (W.value = "") : W.value = `#${e}`;
1651
1676
  }
1652
- function G() {
1653
- _.value?.chain().focus().unsetLink().run(), L.value?.hidePopover();
1677
+ function Ue() {
1678
+ u.value?.chain().focus().unsetLink().run(), H.value?.hidePopover();
1654
1679
  }
1655
- function Re(e) {
1656
- _.value?.chain().focus().insertContent({
1657
- type: Pe,
1680
+ function We(e) {
1681
+ u.value?.chain().focus().insertContent({
1682
+ type: xe,
1658
1683
  attrs: { id: e }
1659
1684
  }).run();
1660
1685
  }
1661
- return (r, i) => (t(), S("div", {
1686
+ return (e, t) => (j(), h("div", {
1662
1687
  ref_key: "root",
1663
- ref: v,
1688
+ ref: f,
1664
1689
  style: {
1665
1690
  position: "relative",
1666
1691
  width: "100%"
1667
1692
  },
1668
- onFocusin: w,
1669
- onFocusout: ne
1670
- }, [A(e(Pt), ee(l.editable ? { class: "text-input" } : {}, {
1671
- editor: e(_),
1672
- style: e(se)(l)
1673
- }), null, 16, ["editor", "style"]), l.editable ? (t(), S("div", {
1693
+ onFocusin: x,
1694
+ onFocusout: C
1695
+ }, [r(b(It), p(n.editable ? { class: "text-input" } : {}, {
1696
+ editor: b(u),
1697
+ style: b(le)(n)
1698
+ }), null, 16, ["editor", "style"]), n.editable ? (j(), h("div", {
1674
1699
  key: 0,
1675
1700
  ref_key: "toolbar",
1676
- ref: y,
1701
+ ref: _,
1677
1702
  popover: "manual",
1678
1703
  class: "toolbar"
1679
1704
  }, [
1680
- E("select", {
1681
- "aria-label": e(u)("blocks.text.styleLabel"),
1705
+ m("span", un, [m("select", {
1706
+ "aria-label": b(i)("blocks.text.styleLabel"),
1682
1707
  class: "style",
1683
1708
  value: re(),
1684
- onChange: ie,
1685
- onMousedown: i[0] ||= T(() => {}, ["stop"])
1686
- }, [E("option", an, O(e(u)("blocks.text.styleNormal")), 1), (t(!0), S(k, null, f(e(le), (n) => (t(), S("option", {
1687
- key: n,
1688
- value: `h${n}`
1689
- }, O(e(u)("blocks.text.styleHeading", { level: n })), 9, on))), 128))], 40, rn),
1690
- i[19] ||= E("span", { class: "divider" }, null, -1),
1691
- E("select", {
1692
- "aria-label": e(u)("blocks.text.font"),
1709
+ onChange: ae,
1710
+ onMousedown: t[0] ||= D(() => {}, ["stop"])
1711
+ }, [m("option", fn, S(b(i)("blocks.text.styleNormal")), 1), (j(!0), h(A, null, g(b(me), (e) => (j(), h("option", {
1712
+ key: e,
1713
+ value: `h${e}`
1714
+ }, S(b(i)("blocks.text.styleHeading", { level: e })), 9, pn))), 128))], 40, dn), r(P, {
1715
+ class: "picker-chevron",
1716
+ name: "chevron-down",
1717
+ size: 12
1718
+ })]),
1719
+ t[20] ||= m("span", { class: "divider" }, null, -1),
1720
+ m("span", mn, [m("select", {
1721
+ "aria-label": b(i)("blocks.text.font"),
1693
1722
  class: "font",
1694
- value: P(),
1695
- onChange: F,
1696
- onMousedown: i[1] ||= T(() => {}, ["stop"])
1697
- }, [E("option", cn, O(e(u)("blocks.text.fontMixed")), 1), (t(!0), S(k, null, f(e(ge), (e) => (t(), S("option", {
1698
- key: e.key,
1699
- value: e.key
1700
- }, O(e.name), 9, ln))), 128))], 40, sn),
1701
- A(ve, {
1702
- modelValue: _e.value,
1703
- "onUpdate:modelValue": i[2] ||= (e) => _e.value = e,
1723
+ value: ye(),
1724
+ onChange: I,
1725
+ onMousedown: t[1] ||= D(() => {}, ["stop"])
1726
+ }, [
1727
+ m("option", gn, S(b(i)("blocks.text.fontMixed")), 1),
1728
+ (j(!0), h(A, null, g(b(Se), (e) => (j(), h("option", {
1729
+ key: e.key,
1730
+ value: e.key
1731
+ }, S(e.name), 9, _n))), 128)),
1732
+ (j(!0), h(A, null, g(b(M), (e) => (j(), h("option", {
1733
+ key: N(e.name),
1734
+ value: N(e.name)
1735
+ }, S(e.name), 9, vn))), 128))
1736
+ ], 40, hn), r(P, {
1737
+ class: "picker-chevron",
1738
+ name: "chevron-down",
1739
+ size: 12
1740
+ })]),
1741
+ m("span", yn, [m("select", {
1742
+ "aria-label": b(i)("blocks.text.fontSize"),
1743
+ class: "size",
1744
+ value: R(),
1745
+ onChange: z,
1746
+ onMousedown: t[2] ||= D(() => {}, ["stop"])
1747
+ }, [
1748
+ m("option", xn, S(b(i)("blocks.text.fontMixed")), 1),
1749
+ m("option", Sn, S(b(i)("blocks.text.fontSizeDefault")), 1),
1750
+ (j(!0), h(A, null, g(b(ke), (e) => (j(), h("option", {
1751
+ key: e,
1752
+ value: b(Qt)(e)
1753
+ }, S(e), 9, Cn))), 128))
1754
+ ], 40, bn), r(P, {
1755
+ class: "picker-chevron",
1756
+ name: "chevron-down",
1757
+ size: 12
1758
+ })]),
1759
+ r(Ce, {
1760
+ modelValue: we.value,
1761
+ "onUpdate:modelValue": t[3] ||= (e) => we.value = e,
1704
1762
  "allow-transparent": !1,
1705
- label: e(u)("blocks.text.textColor"),
1706
- onMousedown: i[3] ||= T(() => {}, ["stop"])
1763
+ label: b(i)("blocks.text.textColor"),
1764
+ compact: "",
1765
+ onMousedown: t[4] ||= D(() => {}, ["stop"])
1707
1766
  }, null, 8, ["modelValue", "label"]),
1708
- i[20] ||= E("span", { class: "divider" }, null, -1),
1709
- E("button", {
1710
- class: b({ active: e(_)?.isActive("bold") }),
1767
+ t[21] ||= m("span", { class: "divider" }, null, -1),
1768
+ m("button", {
1769
+ class: T({ active: b(u)?.isActive("bold") }),
1711
1770
  type: "button",
1712
- title: e(u)("blocks.text.bold"),
1713
- "aria-label": e(u)("blocks.text.bold"),
1714
- onClick: i[4] ||= (t) => e(_)?.chain().focus().toggleBold().run(),
1715
- onMousedown: i[5] ||= T(() => {}, ["prevent"])
1716
- }, [...i[16] ||= [E("b", null, "B", -1)]], 42, un),
1717
- E("button", {
1718
- class: b({ active: e(_)?.isActive("italic") }),
1771
+ title: b(i)("blocks.text.bold"),
1772
+ "aria-label": b(i)("blocks.text.bold"),
1773
+ onClick: t[5] ||= (e) => b(u)?.chain().focus().toggleBold().run(),
1774
+ onMousedown: t[6] ||= D(() => {}, ["prevent"])
1775
+ }, [...t[17] ||= [m("b", null, "B", -1)]], 42, wn),
1776
+ m("button", {
1777
+ class: T({ active: b(u)?.isActive("italic") }),
1719
1778
  type: "button",
1720
- title: e(u)("blocks.text.italic"),
1721
- "aria-label": e(u)("blocks.text.italic"),
1722
- onClick: i[6] ||= (t) => e(_)?.chain().focus().toggleItalic().run(),
1723
- onMousedown: i[7] ||= T(() => {}, ["prevent"])
1724
- }, [...i[17] ||= [E("i", null, "I", -1)]], 42, dn),
1725
- E("button", {
1726
- class: b({ active: e(_)?.isActive("underline") }),
1779
+ title: b(i)("blocks.text.italic"),
1780
+ "aria-label": b(i)("blocks.text.italic"),
1781
+ onClick: t[7] ||= (e) => b(u)?.chain().focus().toggleItalic().run(),
1782
+ onMousedown: t[8] ||= D(() => {}, ["prevent"])
1783
+ }, [...t[18] ||= [m("i", null, "I", -1)]], 42, Tn),
1784
+ m("button", {
1785
+ class: T({ active: b(u)?.isActive("underline") }),
1727
1786
  type: "button",
1728
- title: e(u)("blocks.text.underline"),
1729
- "aria-label": e(u)("blocks.text.underline"),
1730
- onClick: i[8] ||= (t) => e(_)?.chain().focus().toggleUnderline().run(),
1731
- onMousedown: i[9] ||= T(() => {}, ["prevent"])
1732
- }, [...i[18] ||= [E("u", null, "U", -1)]], 42, fn),
1733
- E("button", {
1787
+ title: b(i)("blocks.text.underline"),
1788
+ "aria-label": b(i)("blocks.text.underline"),
1789
+ onClick: t[9] ||= (e) => b(u)?.chain().focus().toggleUnderline().run(),
1790
+ onMousedown: t[10] ||= D(() => {}, ["prevent"])
1791
+ }, [...t[19] ||= [m("u", null, "U", -1)]], 42, En),
1792
+ m("button", {
1734
1793
  ref_key: "linkTrigger",
1735
- ref: we,
1736
- class: b({ active: e(_)?.isActive("link") }),
1794
+ ref: Ae,
1795
+ class: T({ active: b(u)?.isActive("link") }),
1737
1796
  type: "button",
1738
- title: e(u)("blocks.text.link"),
1739
- popovertarget: e(I),
1797
+ title: b(i)("blocks.text.link"),
1798
+ popovertarget: b(V),
1740
1799
  "aria-haspopup": "dialog",
1741
- "aria-expanded": B.value,
1742
- onMousedown: i[10] ||= T(() => {}, ["prevent"])
1743
- }, [A(de, {
1800
+ "aria-expanded": Pe.value,
1801
+ onMousedown: t[11] ||= D(() => {}, ["prevent"])
1802
+ }, [r(P, {
1744
1803
  name: "link",
1745
1804
  size: 16
1746
- })], 42, pn),
1747
- l.editable ? (t(), S("div", {
1805
+ })], 42, Dn),
1806
+ n.editable ? (j(), h("div", {
1748
1807
  key: 0,
1749
- id: e(I),
1808
+ id: b(V),
1750
1809
  ref_key: "linkPopover",
1751
- ref: L,
1810
+ ref: H,
1752
1811
  class: "link-popover",
1753
1812
  popover: "",
1754
1813
  role: "dialog",
1755
- "aria-label": e(u)("blocks.text.link"),
1756
- onBeforetoggle: De,
1757
- onToggle: ke,
1758
- onFocusout: H
1814
+ "aria-label": b(i)("blocks.text.link"),
1815
+ onBeforetoggle: Le,
1816
+ onToggle: Re,
1817
+ onFocusout: G
1759
1818
  }, [
1760
- E("span", hn, [A(Te, {
1819
+ m("span", kn, [r(Fe, {
1761
1820
  ref_key: "linkInput",
1762
- ref: R,
1763
- modelValue: z.value,
1764
- "onUpdate:modelValue": i[11] ||= (e) => z.value = e,
1821
+ ref: U,
1822
+ modelValue: W.value,
1823
+ "onUpdate:modelValue": t[12] ||= (e) => W.value = e,
1765
1824
  inputmode: "url",
1766
1825
  spellcheck: "false",
1767
1826
  autocomplete: "off",
1768
- placeholder: e(u)("blocks.text.linkPlaceholder"),
1769
- "aria-label": e(u)("blocks.text.linkPrompt"),
1770
- onKeydown: te(T(U, ["prevent"]), ["enter"])
1827
+ placeholder: b(i)("blocks.text.linkPlaceholder"),
1828
+ "aria-label": b(i)("blocks.text.linkPrompt"),
1829
+ onKeydown: v(D(Be, ["prevent"]), ["enter"])
1771
1830
  }, null, 8, [
1772
1831
  "modelValue",
1773
1832
  "placeholder",
1774
1833
  "aria-label",
1775
1834
  "onKeydown"
1776
1835
  ])]),
1777
- e(W).length ? (t(), S("span", gn, [A(Ae, {
1778
- "aria-label": e(u)("blocks.common.anchorLink.label"),
1779
- "model-value": Fe.value,
1780
- "onUpdate:modelValue": Ie,
1781
- onMousedown: i[12] ||= T(() => {}, ["stop"])
1836
+ b(Ve).length ? (j(), h("span", An, [r(_e, {
1837
+ "aria-label": b(i)("blocks.common.anchorLink.label"),
1838
+ "model-value": He.value,
1839
+ "onUpdate:modelValue": K,
1840
+ onMousedown: t[13] ||= D(() => {}, ["stop"])
1782
1841
  }, {
1783
- default: n(() => [Fe.value ? (t(), S("option", _n, O(e(u)("blocks.common.anchorLink.none")), 1)) : (t(), S("option", vn, O(e(u)("blocks.common.anchorLink.placeholder")), 1)), (t(!0), S(k, null, f(e(W), (e) => (t(), S("option", {
1842
+ default: te(() => [He.value ? (j(), h("option", jn, S(b(i)("blocks.common.anchorLink.none")), 1)) : (j(), h("option", Mn, S(b(i)("blocks.common.anchorLink.placeholder")), 1)), (j(!0), h(A, null, g(b(Ve), (e) => (j(), h("option", {
1784
1843
  key: e,
1785
1844
  value: e
1786
- }, " #" + O(e), 9, yn))), 128))]),
1845
+ }, " #" + S(e), 9, Nn))), 128))]),
1787
1846
  _: 1
1788
- }, 8, ["aria-label", "model-value"])])) : C("", !0),
1789
- E("button", {
1847
+ }, 8, ["aria-label", "model-value"])])) : O("", !0),
1848
+ m("button", {
1790
1849
  class: "link-apply",
1791
1850
  type: "button",
1792
- onClick: U,
1793
- onMousedown: i[13] ||= T(() => {}, ["prevent"])
1794
- }, O(e(u)("blocks.text.linkApply")), 33),
1795
- V.value ? (t(), S("button", {
1851
+ onClick: Be,
1852
+ onMousedown: t[14] ||= D(() => {}, ["prevent"])
1853
+ }, S(b(i)("blocks.text.linkApply")), 33),
1854
+ Ie.value ? (j(), h("button", {
1796
1855
  key: 1,
1797
1856
  class: "link-remove",
1798
1857
  type: "button",
1799
- title: e(u)("blocks.text.linkRemove"),
1800
- "aria-label": e(u)("blocks.text.linkRemove"),
1801
- onClick: G,
1802
- onMousedown: i[14] ||= T(() => {}, ["prevent"])
1803
- }, [A(de, {
1858
+ title: b(i)("blocks.text.linkRemove"),
1859
+ "aria-label": b(i)("blocks.text.linkRemove"),
1860
+ onClick: Ue,
1861
+ onMousedown: t[15] ||= D(() => {}, ["prevent"])
1862
+ }, [r(P, {
1804
1863
  name: "trash",
1805
1864
  size: 16
1806
- })], 40, bn)) : C("", !0)
1807
- ], 40, mn)) : C("", !0),
1808
- A(Jt, { onSelect: Re }),
1809
- i[21] ||= E("span", { class: "divider" }, null, -1),
1810
- (t(), S(k, null, f(p, (n) => E("button", {
1811
- key: n,
1812
- class: b({ active: e(_)?.isActive({ textAlign: n }) }),
1813
- title: e(u)(ye[n]),
1865
+ })], 40, Pn)) : O("", !0)
1866
+ ], 40, On)) : O("", !0),
1867
+ r(Xt, { onSelect: We }),
1868
+ t[22] ||= m("span", { class: "divider" }, null, -1),
1869
+ (j(), h(A, null, g(s, (e) => m("button", {
1870
+ key: e,
1871
+ class: T({ active: b(u)?.isActive({ textAlign: e }) }),
1872
+ title: b(i)(B[e]),
1814
1873
  type: "button",
1815
- onClick: (t) => e(_)?.chain().focus().setTextAlign(n).run(),
1816
- onMousedown: i[15] ||= T(() => {}, ["prevent"])
1817
- }, [(t(), S("svg", Sn, [(t(!0), S(k, null, f(be(n), (e, n) => (t(), S("rect", {
1818
- key: n,
1874
+ onClick: (t) => b(u)?.chain().focus().setTextAlign(e).run(),
1875
+ onMousedown: t[16] ||= D(() => {}, ["prevent"])
1876
+ }, [(j(), h("svg", In, [(j(!0), h(A, null, g(Te(e), (e, t) => (j(), h("rect", {
1877
+ key: t,
1819
1878
  fill: "currentColor",
1820
1879
  height: "1.5",
1821
1880
  rx: "0.5",
1822
1881
  width: e.w,
1823
1882
  x: e.x,
1824
1883
  y: e.y
1825
- }, null, 8, Cn))), 128))]))], 42, xn)), 64))
1826
- ], 512)) : C("", !0)], 544));
1884
+ }, null, 8, Ln))), 128))]))], 42, Fn)), 64))
1885
+ ], 512)) : O("", !0)], 544));
1827
1886
  }
1828
- }), [["styles", [".tiptap{font-feature-settings:\"liga\" 0;font-variant-ligatures:none;overflow-wrap:break-word;white-space:pre-wrap;position:relative}.text-input .tiptap:focus,.text-input .tiptap:focus-visible{outline:none}.text-input .tiptap .is-editor-empty:first-child{position:relative}.text-input .tiptap .is-editor-empty:first-child:before{color:var(--bygga-color-text-muted);content:attr(data-placeholder);pointer-events:none;text-overflow:ellipsis;inset-inline:0;white-space:nowrap;position:absolute;top:0;overflow:hidden}.merge-tag{background:var(--bygga-color-track);border:1px solid var(--bygga-color-border);border-radius:var(--bygga-radius-sm);color:var(--bygga-color-accent);cursor:default;white-space:nowrap;-webkit-user-select:all;user-select:all;padding:0 .3em;font-size:.9em}.merge-tag.is-unknown{color:var(--bygga-color-text-muted);border-style:dashed}.merge-tag.ProseMirror-selectednode{outline:2px solid var(--bygga-color-accent);outline-offset:1px}", ".toolbar[data-v-8210eaaf]{background:var(--bygga-color-surface);border:1px solid var(--bygga-color-border);border-radius:var(--bygga-radius-sm);box-shadow:var(--bygga-shadow-card);white-space:nowrap;font-family:var(--bygga-font-family);direction:ltr;align-items:center;gap:.25em;margin:0;padding:.25em;position:fixed;inset:auto;transform:translate(-50%,calc(-100% - .4em))}.toolbar[data-v-8210eaaf]:popover-open{display:flex}.toolbar>button[data-v-8210eaaf]{border-radius:var(--bygga-radius-sm);color:var(--bygga-color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:1.8em;height:1.8em;padding:0;display:inline-flex}.toolbar>button[data-v-8210eaaf]:hover{background:var(--bygga-color-track);color:var(--bygga-color-accent)}.toolbar>button.active[data-v-8210eaaf]{background:var(--bygga-color-selected,var(--bygga-color-track));color:var(--bygga-color-selected-text,var(--bygga-color-accent));forced-color-adjust:none}.toolbar .style[data-v-8210eaaf],.toolbar .font[data-v-8210eaaf]{background:var(--bygga-color-surface);border:1px solid var(--bygga-color-border);border-radius:var(--bygga-radius-sm);color:var(--bygga-color-text-muted);cursor:pointer;height:1.8em}.toolbar .divider[data-v-8210eaaf]{background:var(--bygga-color-border);width:1px;height:1.4em}.link-popover[data-v-8210eaaf]{background:var(--bygga-color-surface);border:1px solid var(--bygga-color-border);border-radius:var(--bygga-radius-sm);box-shadow:var(--bygga-shadow-card);align-items:center;gap:.25em;margin:0;padding:.25em;position:fixed;inset:auto}.link-popover[data-v-8210eaaf]:popover-open{display:flex}.link-field[data-v-8210eaaf]{width:18em}.link-anchor[data-v-8210eaaf]{width:10em}.link-apply[data-v-8210eaaf]{background:var(--bygga-color-accent);border-radius:var(--bygga-radius-sm);color:var(--bygga-color-surface);cursor:pointer;border:none;padding:.4em .8em}.link-remove[data-v-8210eaaf]{border-radius:var(--bygga-radius-sm);color:var(--bygga-color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:1.8em;height:1.8em;padding:0;display:inline-flex}.link-remove[data-v-8210eaaf]:hover{background:var(--bygga-color-track);color:var(--bygga-color-accent)}"]], ["__scopeId", "data-v-8210eaaf"]]);
1887
+ }), [["styles", [".tiptap{font-feature-settings:\"liga\" 0;font-variant-ligatures:none;overflow-wrap:break-word;white-space:pre-wrap;position:relative}.text-input .tiptap:focus,.text-input .tiptap:focus-visible{outline:none}.text-input .tiptap .is-editor-empty:first-child{position:relative}.text-input .tiptap .is-editor-empty:first-child:before{color:var(--bygga-color-text-muted);content:attr(data-placeholder);pointer-events:none;text-overflow:ellipsis;inset-inline:0;white-space:nowrap;position:absolute;top:0;overflow:hidden}.merge-tag{background:var(--bygga-color-track);border:1px solid var(--bygga-color-border);border-radius:var(--bygga-radius-sm);color:var(--bygga-color-accent);cursor:default;white-space:nowrap;-webkit-user-select:all;user-select:all;padding:0 .3em;font-size:.9em}.merge-tag.is-unknown{color:var(--bygga-color-text-muted);border-style:dashed}.merge-tag.ProseMirror-selectednode{outline:2px solid var(--bygga-color-accent);outline-offset:1px}", ".toolbar[data-v-3445ad1e]{background:var(--bygga-color-surface);border:1px solid var(--bygga-color-border-subtle);box-shadow:var(--bygga-shadow-card);white-space:nowrap;font-family:var(--bygga-font-family);direction:ltr;border-radius:0;flex-wrap:wrap;align-items:center;gap:3px;margin:0;padding:6px 4px;font-size:13px;font-weight:400;position:fixed;inset:auto;transform:translateY(-100%)}.toolbar[data-v-3445ad1e]:popover-open{display:flex}.toolbar>button[data-v-3445ad1e]{color:var(--bygga-color-text);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;min-width:30px;height:30px;padding:0;display:inline-flex}.toolbar>button[data-v-3445ad1e]:hover{background:color-mix(in srgb, var(--bygga-color-text) 30%, transparent)}.toolbar>button.active[data-v-3445ad1e]{background:var(--bygga-color-selected,var(--bygga-color-text));color:var(--bygga-color-selected-text,#fff);forced-color-adjust:none}.toolbar .picker[data-v-3445ad1e]{align-items:center;display:inline-flex;position:relative}.toolbar .style[data-v-3445ad1e],.toolbar .font[data-v-3445ad1e],.toolbar .size[data-v-3445ad1e]{appearance:none;color:var(--bygga-color-text);cursor:pointer;font:inherit;text-align-last:right;background:0 0;border:none;border-radius:4px;height:30px;padding:0 21px 0 6px}.toolbar .style[data-v-3445ad1e]:hover,.toolbar .font[data-v-3445ad1e]:hover,.toolbar .size[data-v-3445ad1e]:hover{background:color-mix(in srgb, var(--bygga-color-text) 7%, transparent)}.toolbar .picker-chevron[data-v-3445ad1e]{color:var(--bygga-color-text);pointer-events:none;position:absolute;right:5px}.toolbar .divider[data-v-3445ad1e]{background:var(--bygga-color-divider);width:1px;height:24px;margin:0 4px}.link-popover[data-v-3445ad1e]{background:var(--bygga-color-surface);border:1px solid var(--bygga-color-border);border-radius:var(--bygga-radius-sm);box-shadow:var(--bygga-shadow-card);align-items:center;gap:.25em;margin:0;padding:.25em;position:fixed;inset:auto}.link-popover[data-v-3445ad1e]:popover-open{display:flex}.link-field[data-v-3445ad1e]{width:18em}.link-anchor[data-v-3445ad1e]{width:10em}.link-apply[data-v-3445ad1e]{background:var(--bygga-color-accent);border-radius:var(--bygga-radius-sm);color:var(--bygga-color-surface);cursor:pointer;border:none;padding:.4em .8em}.link-remove[data-v-3445ad1e]{border-radius:var(--bygga-radius-sm);color:var(--bygga-color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:1.8em;height:1.8em;padding:0;display:inline-flex}.link-remove[data-v-3445ad1e]:hover{background:var(--bygga-color-track);color:var(--bygga-color-accent)}"]], ["__scopeId", "data-v-3445ad1e"]]);
1829
1888
  //#endregion
1830
- export { wn as default };
1889
+ export { Bn as default };