@bygga.dev/editor 0.3.1 → 1.0.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,8 +1,8 @@
1
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 M, Bt as ae, Gt as oe, Ht as se, J as ce, K as le, Q as ue, Rt as de, U as fe, Ut as pe, Vt as me, Wt as he, X as ge, Y as _e, Yt as ve, Z as N, Zt as ye, _ as be, at as xe, b as Se, c as Ce, ct as P, dt as F, et as we, ft as I, gt as L, h as Te, ht as R, it as Ee, l as De, lt as z, m as Oe, mt as ke, n as Ae, nt as je, o as Me, ot as B, pt as Ne, q as Pe, rt as V, s as Fe, st as H, t as Ie, tt as Le, ut as U, x as Re, y as ze, zt as Be } from "./urls-CVvXdmlR.js";
2
+ import { $ as ae, C as oe, Gt as se, Jt as ce, K as le, Kt as ue, Q as de, S as fe, Wt as pe, X as me, Xt as he, Yt as ge, Z as _e, Zt as ve, _t as M, at as ye, b as N, bt as P, c as be, ct as xe, dt as F, et as Se, f as Ce, ft as we, gt as I, ht as L, it as Te, l as Ee, lt as De, m as Oe, mt as R, n as z, nt as ke, o as Ae, ot as je, pt as B, qt as Me, rn as Ne, rt as Pe, s as Fe, st as Ie, t as Le, tn as Re, tt as V, ut as H, vt as ze, w as Be, yt as U } from "./urls-C1-J3Og2.js";
3
3
  //#region ../../node_modules/.pnpm/prosemirror-dropcursor@1.8.2/node_modules/prosemirror-dropcursor/dist/index.js
4
4
  function Ve(e = {}) {
5
- return new z({ view(t) {
5
+ return new B({ view(t) {
6
6
  return new He(t, e);
7
7
  } });
8
8
  }
@@ -82,7 +82,7 @@ var He = 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 = ke(this.editorView.state.doc, e, this.editorView.dragging.slice);
85
+ let t = ze(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 He = class {
97
97
  dragleave(e) {
98
98
  this.editorView.dom.contains(e.relatedTarget) || this.setCursor(null);
99
99
  }
100
- }, W = class e extends F {
100
+ }, W = class e extends L {
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) : L.near(r);
107
107
  }
108
108
  content() {
109
- return L.empty;
109
+ return P.empty;
110
110
  }
111
111
  eq(t) {
112
112
  return t instanceof e && t.head == this.head;
@@ -149,7 +149,7 @@ var He = class {
149
149
  for (;;) {
150
150
  let o = n > 0 ? a.firstChild : a.lastChild;
151
151
  if (!o) {
152
- if (a.isAtom && !a.isText && !P.isSelectable(a)) {
152
+ if (a.isAtom && !a.isText && !we.isSelectable(a)) {
153
153
  t = t.doc.resolve(i + a.nodeSize * n), r = !1;
154
154
  continue search;
155
155
  }
@@ -163,7 +163,7 @@ var He = class {
163
163
  }
164
164
  }
165
165
  };
166
- W.prototype.visible = !1, W.findFrom = W.findGapCursorFrom, F.jsonID("gapcursor", W);
166
+ W.prototype.visible = !1, W.findFrom = W.findGapCursorFrom, L.jsonID("gapcursor", W);
167
167
  var Ue = class e {
168
168
  constructor(e) {
169
169
  this.pos = e;
@@ -173,7 +173,7 @@ var Ue = class e {
173
173
  }
174
174
  resolve(e) {
175
175
  let t = e.resolve(this.pos);
176
- return W.valid(t) ? new W(t) : F.near(t);
176
+ return W.valid(t) ? new W(t) : L.near(t);
177
177
  }
178
178
  };
179
179
  function We(e) {
@@ -208,7 +208,7 @@ function Ke(e) {
208
208
  return !0;
209
209
  }
210
210
  function qe() {
211
- return new z({ props: {
211
+ return new B({ props: {
212
212
  decorations: Ze,
213
213
  createSelectionBetween(e, t, n) {
214
214
  return t.pos == n.pos && W.valid(n) ? new W(n) : null;
@@ -218,7 +218,7 @@ function qe() {
218
218
  handleDOMEvents: { beforeinput: Xe }
219
219
  } });
220
220
  }
221
- var Je = xe({
221
+ var Je = De({
222
222
  ArrowLeft: G("horiz", -1),
223
223
  ArrowRight: G("horiz", 1),
224
224
  ArrowUp: G("vert", -1),
@@ -244,21 +244,21 @@ function Ye(e, t, n) {
244
244
  left: n.clientX,
245
245
  top: n.clientY
246
246
  });
247
- return i && i.inside > -1 && P.isSelectable(e.state.doc.nodeAt(i.inside)) ? !1 : (e.dispatch(e.state.tr.setSelection(new W(r))), !0);
247
+ return i && i.inside > -1 && we.isSelectable(e.state.doc.nodeAt(i.inside)) ? !1 : (e.dispatch(e.state.tr.setSelection(new W(r))), !0);
248
248
  }
249
249
  function Xe(e, t) {
250
250
  if (t.inputType != "insertCompositionText" || !(e.state.selection instanceof W)) 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 = R.empty;
254
- for (let e = r.length - 1; e >= 0; e--) i = R.from(r[e].createAndFill(null, i));
255
- let a = e.state.tr.replace(n.pos, n.pos, new L(i, 0, 0));
253
+ let i = U.empty;
254
+ for (let e = r.length - 1; e >= 0; e--) i = U.from(r[e].createAndFill(null, i));
255
+ let a = e.state.tr.replace(n.pos, n.pos, new P(i, 0, 0));
256
256
  return a.setSelection(I.near(a.doc.resolve(n.pos + 1))), e.dispatch(a), !1;
257
257
  }
258
258
  function Ze(e) {
259
259
  if (!(e.selection instanceof W)) return null;
260
260
  let t = document.createElement("div");
261
- return t.className = "ProseMirror-gapcursor", H.create(e.doc, [B.widget(e.selection.head, t, { key: "gapcursor" })]);
261
+ return t.className = "ProseMirror-gapcursor", F.create(e.doc, [H.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
@@ -382,7 +382,7 @@ var $e = /* @__PURE__ */ function(e) {
382
382
  return l > nt && (s = tt(s, l), o -= l), new e(s.append(a), o);
383
383
  }
384
384
  remapping(e, t) {
385
- let n = new Ne();
385
+ let n = new M();
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);
@@ -513,12 +513,12 @@ function Z(e) {
513
513
  }
514
514
  return ct;
515
515
  }
516
- var Q = new U("history"), ut = new U("closeHistory");
516
+ var Q = new R("history"), ut = new R("closeHistory");
517
517
  function dt(e = {}) {
518
518
  return e = {
519
519
  depth: e.depth || 100,
520
520
  newGroupDelay: e.newGroupDelay || 500
521
- }, new z({
521
+ }, new B({
522
522
  key: Q,
523
523
  state: {
524
524
  init() {
@@ -547,7 +547,7 @@ function ft(e, t) {
547
547
  };
548
548
  }
549
549
  var pt = ft(!1, !0), mt = ft(!0, !0);
550
- N.create({
550
+ V.create({
551
551
  name: "characterCount",
552
552
  addOptions() {
553
553
  return {
@@ -579,8 +579,8 @@ N.create({
579
579
  },
580
580
  addProseMirrorPlugins() {
581
581
  let e = !1;
582
- return [new z({
583
- key: new U("characterCount"),
582
+ return [new B({
583
+ key: new R("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 @@ N.create({
608
608
  }
609
609
  })];
610
610
  }
611
- }), N.create({
611
+ }), V.create({
612
612
  name: "dropCursor",
613
613
  addOptions() {
614
614
  return {
@@ -620,7 +620,7 @@ N.create({
620
620
  addProseMirrorPlugins() {
621
621
  return [Ve(this.options)];
622
622
  }
623
- }), N.create({
623
+ }), V.create({
624
624
  name: "focus",
625
625
  addOptions() {
626
626
  return {
@@ -629,11 +629,11 @@ N.create({
629
629
  };
630
630
  },
631
631
  addProseMirrorPlugins() {
632
- return [new z({
633
- key: new U("focus"),
632
+ return [new B({
633
+ key: new R("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 F.create(e, []);
637
637
  let o = 0;
638
638
  this.options.mode === "deepest" && e.descendants((e, t) => {
639
639
  if (!e.isText) {
@@ -645,28 +645,28 @@ N.create({
645
645
  return e.descendants((e, t) => {
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
- a.push(B.node(t, t + e.nodeSize, { class: this.options.className }));
649
- }), H.create(e, a);
648
+ a.push(H.node(t, t + e.nodeSize, { class: this.options.className }));
649
+ }), F.create(e, a);
650
650
  } }
651
651
  })];
652
652
  }
653
- }), N.create({
653
+ }), V.create({
654
654
  name: "gapCursor",
655
655
  addProseMirrorPlugins() {
656
656
  return [qe()];
657
657
  },
658
658
  extendNodeSchema(e) {
659
- return { allowGapCursor: M(Le(e, "allowGapCursor", {
659
+ return { allowGapCursor: Pe(ye(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 U("tiptap__placeholder"), gt = 200;
666
+ var ht = "placeholder", $ = new R("tiptap__placeholder"), gt = 200;
667
667
  function _t(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
- return o && u.push(l), B.node(i, i + a.nodeSize, {
669
+ return o && u.push(l), H.node(i, i + a.nodeSize, {
670
670
  class: u.join(" "),
671
671
  [r]: typeof n == "function" ? n({
672
672
  editor: t,
@@ -729,7 +729,7 @@ 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 F.create(r, o);
733
733
  }
734
734
  function bt(e) {
735
735
  return e.replace(/\s+/g, "-").replace(/[^a-zA-Z0-9-]/g, "").replace(/^[0-9-]+/, "").replace(/^-+/, "").toLowerCase();
@@ -836,7 +836,7 @@ function Et(e) {
836
836
  }
837
837
  function Dt({ editor: e, options: t }) {
838
838
  let n = t.dataAttribute ? `data-${bt(t.dataAttribute)}` : `data-${ht}`;
839
- return new z({
839
+ return new B({
840
840
  key: $,
841
841
  state: Tt,
842
842
  view: Et,
@@ -849,7 +849,7 @@ function Dt({ editor: e, options: t }) {
849
849
  }) }
850
850
  });
851
851
  }
852
- var Ot = N.create({
852
+ var Ot = V.create({
853
853
  name: "placeholder",
854
854
  addOptions() {
855
855
  return {
@@ -869,17 +869,17 @@ var Ot = N.create({
869
869
  })];
870
870
  }
871
871
  }), kt = ".ProseMirror:not(.ProseMirror-focused) *::selection {\n background: transparent;\n}\n\n.ProseMirror:not(.ProseMirror-focused) *::-moz-selection {\n background: transparent;\n}";
872
- N.create({
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" && we(kt, e.options.injectNonce, "selection"), [new z({
880
- key: new U("selection"),
879
+ return e.options.injectCSS && typeof document < "u" && Te(kt, e.options.injectNonce, "selection"), [new B({
880
+ key: new R("selection"),
881
881
  props: { decorations(n) {
882
- return n.selection.empty || e.isFocused || !e.isEditable || V(n.selection) || e.view.dragging ? null : H.create(n.doc, [B.inline(n.selection.from, n.selection.to, { class: t.className })]);
882
+ return n.selection.empty || e.isFocused || !e.isEditable || Ie(n.selection) || e.view.dragging ? null : F.create(n.doc, [H.inline(n.selection.from, n.selection.to, { class: t.className })]);
883
883
  } }
884
884
  })];
885
885
  }
@@ -887,7 +887,7 @@ N.create({
887
887
  function At({ types: e, node: t }) {
888
888
  return t && Array.isArray(e) && e.includes(t.type) || t?.type === e;
889
889
  }
890
- N.create({
890
+ V.create({
891
891
  name: "trailingNode",
892
892
  addOptions() {
893
893
  return {
@@ -896,8 +896,8 @@ N.create({
896
896
  };
897
897
  },
898
898
  addProseMirrorPlugins() {
899
- let e = new U(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 z({
899
+ let e = new R(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];
@@ -923,7 +923,7 @@ N.create({
923
923
  })];
924
924
  }
925
925
  });
926
- var jt = N.create({
926
+ var jt = V.create({
927
927
  name: "undoRedo",
928
928
  addOptions() {
929
929
  return {
@@ -966,7 +966,7 @@ function Mt(e) {
966
966
  }
967
967
  }));
968
968
  }
969
- var Nt = class extends ge {
969
+ var Nt = class extends Se {
970
970
  constructor(e = {}) {
971
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 }) => {
972
972
  this.reactiveState.value = e, this.reactiveExtensionStorage.value = this.extensionStorage;
@@ -1149,7 +1149,7 @@ var Rt = {
1149
1149
  type: Object,
1150
1150
  required: !0
1151
1151
  }
1152
- }, zt = class extends ue {
1152
+ }, zt = class extends ke {
1153
1153
  constructor(e, t, n) {
1154
1154
  super(e, t, n), this.cachedExtensionWithSyncedStorage = null, this.handlePositionUpdate = () => {
1155
1155
  let e = this.getPos();
@@ -1209,7 +1209,7 @@ var Rt = {
1209
1209
  }
1210
1210
  handleSelectionUpdate() {
1211
1211
  let e = this.getPos();
1212
- if (typeof e == "number") if (Ee({
1212
+ if (typeof e == "number") if (xe({
1213
1213
  selection: this.editor.state.selection,
1214
1214
  pos: e,
1215
1215
  nodeSize: this.node.nodeSize,
@@ -1283,13 +1283,13 @@ var Vt = [
1283
1283
  }, Wt = ["onClick"], Gt = { class: "merge-tag-option-label" }, Kt = { class: "merge-tag-option-id" }, qt = {
1284
1284
  key: 1,
1285
1285
  class: "merge-tag-empty"
1286
- }, Jt = /*#__PURE__*/ Re(/* @__PURE__ */ y({
1286
+ }, Jt = /*#__PURE__*/ Be(/* @__PURE__ */ y({
1287
1287
  __name: "MergeTagPicker",
1288
1288
  emits: ["select"],
1289
1289
  setup(n, { emit: i }) {
1290
- let s = i, { t: c, locale: l } = ze(), u = r(Oe, x(() => ({}))), p = x(() => Object.keys(u.value).map((e) => ({
1290
+ let s = i, { t: c, locale: l } = fe(), u = r(N, x(() => ({}))), p = x(() => Object.keys(u.value).map((e) => ({
1291
1291
  id: e,
1292
- label: Ae(u.value, e, l.value)
1292
+ label: z(u.value, e, l.value)
1293
1293
  }))), m = g(""), h = x(() => {
1294
1294
  let e = m.value.trim().toLowerCase();
1295
1295
  return e ? p.value.filter((t) => t.label.toLowerCase().includes(e) || t.id.toLowerCase().includes(e)) : p.value;
@@ -1322,7 +1322,7 @@ var Vt = [
1322
1322
  "aria-haspopup": "dialog",
1323
1323
  "aria-expanded": _.value,
1324
1324
  onMousedown: r[0] ||= T(() => {}, ["prevent"])
1325
- }, [A(Se, {
1325
+ }, [A(oe, {
1326
1326
  name: "braces",
1327
1327
  size: 16
1328
1328
  })], 42, Vt)) : C("", !0), p.value.length ? (t(), S("div", {
@@ -1337,7 +1337,7 @@ var Vt = [
1337
1337
  onBeforetoggle: w,
1338
1338
  onToggle: ne,
1339
1339
  onFocusout: D
1340
- }, [A(De, {
1340
+ }, [A(Ee, {
1341
1341
  ref_key: "filterInput",
1342
1342
  ref: te,
1343
1343
  modelValue: m.value,
@@ -1345,7 +1345,6 @@ var Vt = [
1345
1345
  autocomplete: "off",
1346
1346
  placeholder: e(c)("blocks.text.mergeTagSearch"),
1347
1347
  "aria-label": e(c)("blocks.text.mergeTagSearch"),
1348
- size: "compact",
1349
1348
  spellcheck: "false"
1350
1349
  }, null, 8, [
1351
1350
  "modelValue",
@@ -1358,11 +1357,11 @@ var Vt = [
1358
1357
  onMousedown: r[2] ||= T(() => {}, ["prevent"])
1359
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));
1360
1359
  }
1361
- }), [["styles", [".merge-tag-trigger[data-v-847c7f49]{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-847c7f49]:hover{background:var(--bygga-color-track);color:var(--bygga-color-accent)}.merge-tag-trigger.active[data-v-847c7f49]{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-847c7f49]{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-847c7f49]:popover-open{display:flex}.merge-tag-list[data-v-847c7f49]{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-847c7f49]{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-847c7f49]:hover,.merge-tag-option[data-v-847c7f49]:focus-visible{background:var(--bygga-color-track);color:var(--bygga-color-accent);outline:none}.merge-tag-option-id[data-v-847c7f49]{color:var(--bygga-color-text-muted);font-variant-numeric:tabular-nums;font-size:.85em}.merge-tag-empty[data-v-847c7f49]{color:var(--bygga-color-text-muted);margin:0;padding:.35em .5em}"]], ["__scopeId", "data-v-847c7f49"]]), Yt = /* @__PURE__ */ y({
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({
1362
1361
  __name: "MergeTagView",
1363
1362
  props: Rt,
1364
1363
  setup(i) {
1365
- let a = i, { t: o, locale: s } = ze(), c = r(Oe, x(() => ({}))), l = x(() => String(a.node.attrs.id ?? "")), u = x(() => c.value[l.value] !== void 0), d = x(() => Ae(c.value, l.value, s.value)), f = x(() => o("blocks.text.mergeTagChip", { name: d.value }));
1364
+ let a = i, { t: o, locale: s } = fe(), c = r(N, x(() => ({}))), l = x(() => String(a.node.attrs.id ?? "")), u = x(() => c.value[l.value] !== void 0), d = x(() => z(c.value, l.value, s.value)), f = x(() => o("blocks.text.mergeTagChip", { name: d.value }));
1366
1365
  return (r, i) => (t(), ne(e(Ft), {
1367
1366
  as: "span",
1368
1367
  class: b(["merge-tag", { "is-unknown": !u.value }]),
@@ -1383,7 +1382,7 @@ var Vt = [
1383
1382
  }
1384
1383
  }), Xt = "textStyle";
1385
1384
  function Zt(e) {
1386
- let t = se(e);
1385
+ let t = ce(e);
1387
1386
  return !t || t.key === "verdana" ? null : t.stack;
1388
1387
  }
1389
1388
  function Qt(e) {
@@ -1410,10 +1409,10 @@ function en(e) {
1410
1409
  function tn(e) {
1411
1410
  let t = [];
1412
1411
  for (let n = 0; n < e.childCount; n++) t.push(en(e.child(n)));
1413
- return R.fromArray(t);
1412
+ return U.fromArray(t);
1414
1413
  }
1415
1414
  function nn(e) {
1416
- return new L(tn(e.content), e.openStart, e.openEnd);
1415
+ return new P(tn(e.content), e.openStart, e.openEnd);
1417
1416
  }
1418
1417
  //#endregion
1419
1418
  //#region src/panels/contentPanel/components/blocks/TextEditor.vue?vue&type=script&setup=true&lang.ts
@@ -1445,7 +1444,7 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1445
1444
  "width",
1446
1445
  "x",
1447
1446
  "y"
1448
- ], wn = /*#__PURE__*/ Re(/* @__PURE__ */ y({
1447
+ ], wn = /*#__PURE__*/ Be(/* @__PURE__ */ y({
1449
1448
  __name: "TextEditor",
1450
1449
  props: /*@__PURE__*/ j({
1451
1450
  editable: {
@@ -1464,13 +1463,13 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1464
1463
  }),
1465
1464
  emits: ["update:text"],
1466
1465
  setup(i) {
1467
- let s = c(i, "text"), l = i, { t: u } = ze(), p = [
1466
+ let s = c(i, "text"), l = i, { t: u } = fe(), p = [
1468
1467
  "left",
1469
1468
  "center",
1470
1469
  "right",
1471
1470
  "justify"
1472
1471
  ], h = x(() => u("blocks.text.label")), _ = It({
1473
- ...Pe,
1472
+ ..._e,
1474
1473
  editorProps: {
1475
1474
  attributes: {
1476
1475
  "aria-label": h.value,
@@ -1479,15 +1478,15 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1479
1478
  },
1480
1479
  transformPasted: (e) => nn(e)
1481
1480
  },
1482
- content: ae(s.value),
1481
+ content: ue(s.value),
1483
1482
  editable: l.editable,
1484
1483
  extensions: [
1485
- ...ce.map((e) => e.name === "mergeTag" ? e.extend({ addNodeView: () => Bt(Yt) }) : e),
1484
+ ...de.map((e) => e.name === "mergeTag" ? e.extend({ addNodeView: () => Bt(Yt) }) : e),
1486
1485
  jt,
1487
1486
  Ot.configure({ placeholder: () => u("blocks.text.placeholder") })
1488
1487
  ],
1489
1488
  onUpdate({ editor: e }) {
1490
- s.value = de(e.getJSON()), j();
1489
+ s.value = pe(e.getJSON()), j();
1491
1490
  },
1492
1491
  onSelectionUpdate() {
1493
1492
  j();
@@ -1497,7 +1496,7 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1497
1496
  _.value?.setOptions({ editorProps: { attributes: { "aria-label": e } } });
1498
1497
  }), m(s, (e) => {
1499
1498
  let t = _.value;
1500
- !t || Be(e, de(t.getJSON())) || t.commands.setContent(ae(e), { emitUpdate: !1 });
1499
+ !t || se(e, pe(t.getJSON())) || t.commands.setContent(ue(e), { emitUpdate: !1 });
1501
1500
  }), m(() => l.editable, (e) => _.value?.setEditable(e));
1502
1501
  let v = d("root"), y = d("toolbar");
1503
1502
  function w() {
@@ -1539,7 +1538,7 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1539
1538
  function re() {
1540
1539
  let e = _.value;
1541
1540
  if (!e) return "paragraph";
1542
- let t = le.find((t) => e.isActive("heading", { level: t }));
1541
+ let t = me.find((t) => e.isActive("heading", { level: t }));
1543
1542
  return t ? `h${t}` : "paragraph";
1544
1543
  }
1545
1544
  function ie(e) {
@@ -1547,48 +1546,48 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1547
1546
  if (!(t instanceof HTMLSelectElement)) return;
1548
1547
  let n = _.value?.chain().focus();
1549
1548
  if (!n) return;
1550
- let r = le.find((e) => `h${e}` === t.value);
1549
+ let r = me.find((e) => `h${e}` === t.value);
1551
1550
  r ? n.setHeading({ level: r }).run() : n.setParagraph().run();
1552
1551
  }
1553
- let M = r(be, x(() => me));
1554
- function ue(e) {
1555
- return typeof e == "string" ? se(e)?.key ?? M.value : M.value;
1552
+ let M = r(Oe, x(() => Me));
1553
+ function ye(e) {
1554
+ return typeof e == "string" ? ce(e)?.key ?? M.value : M.value;
1556
1555
  }
1557
- function ge() {
1556
+ function N() {
1558
1557
  let e = _.value;
1559
1558
  if (!e) return M.value;
1560
1559
  let { from: t, to: n, empty: r } = e.state.selection;
1561
- if (r) return ue(e.getAttributes("textStyle").fontFamily);
1560
+ if (r) return ye(e.getAttributes("textStyle").fontFamily);
1562
1561
  let i = /* @__PURE__ */ new Set();
1563
1562
  e.state.doc.nodesBetween(t, n, (e) => {
1564
1563
  if (!e.isText) return;
1565
1564
  let t = e.marks.find((e) => e.type.name === "textStyle");
1566
- i.add(ue(t?.attrs.fontFamily));
1565
+ i.add(ye(t?.attrs.fontFamily));
1567
1566
  });
1568
1567
  let a = Array.from(i);
1569
1568
  return a.length > 1 ? "mixed" : a[0] ?? M.value;
1570
1569
  }
1571
- function N(e) {
1570
+ function P(e) {
1572
1571
  let { target: t } = e;
1573
1572
  if (!(t instanceof HTMLSelectElement)) return;
1574
1573
  let n = t.value, r = _.value?.chain().focus();
1575
- r && he(n) && (n === M.value ? r.unsetFontFamily().run() : r.setFontFamily(pe(n)).run());
1574
+ r && he(n) && (n === M.value ? r.unsetFontFamily().run() : r.setFontFamily(ge(n)).run());
1576
1575
  }
1577
- let xe = Me(() => {
1578
- let e = ge();
1576
+ let xe = Ae(() => {
1577
+ let e = N();
1579
1578
  return e === "mixed" ? void 0 : e;
1580
- }), P = x({
1579
+ }), F = x({
1581
1580
  get: () => {
1582
- let e = _.value?.getAttributes("textStyle").color, t = typeof e == "string" ? ve(e) : void 0;
1581
+ let e = _.value?.getAttributes("textStyle").color, t = typeof e == "string" ? Re(e) : void 0;
1583
1582
  return t ? {
1584
1583
  type: "color",
1585
1584
  ...t
1586
- } : oe;
1585
+ } : ve;
1587
1586
  },
1588
1587
  set: (e) => {
1589
- e.type !== "transparent" && _.value?.chain().setColor(ye(e)).run();
1588
+ e.type !== "transparent" && _.value?.chain().setColor(Ne(e)).run();
1590
1589
  }
1591
- }), F = {
1590
+ }), Se = {
1592
1591
  left: "blocks.text.alignLeft",
1593
1592
  center: "blocks.text.alignCenter",
1594
1593
  right: "blocks.text.alignRight",
@@ -1614,48 +1613,48 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1614
1613
  };
1615
1614
  });
1616
1615
  }
1617
- let I = o(), L = d("linkPopover"), R = d("linkInput"), Ee = d("linkTrigger"), z = g(""), Oe = g(!1), ke = g(!1);
1618
- function Ae(e) {
1616
+ let I = o(), L = d("linkPopover"), Te = d("linkInput"), De = d("linkTrigger"), R = g(""), z = g(!1), ke = g(!1);
1617
+ function je(e) {
1619
1618
  if (e.newState !== "open") return;
1620
1619
  let t = _.value?.getAttributes("link")?.href;
1621
- z.value = typeof t == "string" ? t : "", ke.value = z.value !== "";
1622
- let n = L.value, r = Ee.value?.getBoundingClientRect();
1620
+ R.value = typeof t == "string" ? t : "", ke.value = R.value !== "";
1621
+ let n = L.value, r = De.value?.getBoundingClientRect();
1623
1622
  n && r && (n.style.left = `${r.left}px`, n.style.top = `${r.bottom + 4}px`);
1624
1623
  }
1625
- function je(e) {
1626
- if (Oe.value = e.newState === "open", e.newState !== "open") return;
1624
+ function B(e) {
1625
+ if (z.value = e.newState === "open", e.newState !== "open") return;
1627
1626
  let t = L.value;
1628
1627
  if (t) {
1629
1628
  let e = window.innerWidth - t.offsetWidth - 8;
1630
1629
  Number.parseFloat(t.style.left) > e && (t.style.left = `${Math.max(8, e)}px`);
1631
1630
  }
1632
1631
  a(() => {
1633
- R.value?.focus(), R.value?.select();
1632
+ Te.value?.focus(), Te.value?.select();
1634
1633
  });
1635
1634
  }
1636
- function B(e) {
1635
+ function Pe(e) {
1637
1636
  let t = e.relatedTarget, n = L.value;
1638
1637
  t instanceof Node && n?.contains(t) || n?.hidePopover();
1639
1638
  }
1640
- function Ne() {
1639
+ function Ie() {
1641
1640
  let e = _.value?.chain().focus();
1642
1641
  if (!e) return;
1643
- let t = Ie(z.value);
1642
+ let t = Le(R.value);
1644
1643
  t === "" ? e.unsetLink().run() : e.setLink({
1645
1644
  href: t,
1646
1645
  target: t.startsWith("#") ? null : "_blank"
1647
1646
  }).run(), L.value?.hidePopover();
1648
1647
  }
1649
- let V = r(Te, x(() => [])), H = x(() => z.value.startsWith("#") && V.value.includes(z.value.slice(1)) ? z.value.slice(1) : "");
1650
- function Le(e) {
1651
- e === "" ? z.value.startsWith("#") && (z.value = "") : z.value = `#${e}`;
1648
+ let V = r(Ce, x(() => [])), H = x(() => R.value.startsWith("#") && V.value.includes(R.value.slice(1)) ? R.value.slice(1) : "");
1649
+ function ze(e) {
1650
+ e === "" ? R.value.startsWith("#") && (R.value = "") : R.value = `#${e}`;
1652
1651
  }
1653
- function U() {
1652
+ function Be() {
1654
1653
  _.value?.chain().focus().unsetLink().run(), L.value?.hidePopover();
1655
1654
  }
1656
- function Re(e) {
1655
+ function U(e) {
1657
1656
  _.value?.chain().focus().insertContent({
1658
- type: _e,
1657
+ type: ae,
1659
1658
  attrs: { id: e }
1660
1659
  }).run();
1661
1660
  }
@@ -1670,7 +1669,7 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1670
1669
  onFocusout: ne
1671
1670
  }, [A(e(Pt), ee(l.editable ? { class: "text-input" } : {}, {
1672
1671
  editor: e(_),
1673
- style: e(fe)(l)
1672
+ style: e(le)(l)
1674
1673
  }), null, 16, ["editor", "style"]), l.editable ? (t(), S("div", {
1675
1674
  key: 0,
1676
1675
  ref_key: "toolbar",
@@ -1684,7 +1683,7 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1684
1683
  value: re(),
1685
1684
  onChange: ie,
1686
1685
  onMousedown: i[0] ||= T(() => {}, ["stop"])
1687
- }, [E("option", an, O(e(u)("blocks.text.styleNormal")), 1), (t(!0), S(k, null, f(e(le), (n) => (t(), S("option", {
1686
+ }, [E("option", an, O(e(u)("blocks.text.styleNormal")), 1), (t(!0), S(k, null, f(e(me), (n) => (t(), S("option", {
1688
1687
  key: n,
1689
1688
  value: `h${n}`
1690
1689
  }, O(e(u)("blocks.text.styleHeading", { level: n })), 9, on))), 128))], 40, rn),
@@ -1692,18 +1691,17 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1692
1691
  E("select", {
1693
1692
  "aria-label": e(u)("blocks.text.font"),
1694
1693
  class: "font",
1695
- value: ge(),
1696
- onChange: N,
1694
+ value: N(),
1695
+ onChange: P,
1697
1696
  onMousedown: i[1] ||= T(() => {}, ["stop"])
1698
1697
  }, [E("option", cn, O(e(u)("blocks.text.fontMixed")), 1), (t(!0), S(k, null, f(e(xe), (e) => (t(), S("option", {
1699
1698
  key: e.key,
1700
1699
  value: e.key
1701
1700
  }, O(e.name), 9, ln))), 128))], 40, sn),
1702
- A(Ce, {
1703
- modelValue: P.value,
1704
- "onUpdate:modelValue": i[2] ||= (e) => P.value = e,
1701
+ A(be, {
1702
+ modelValue: F.value,
1703
+ "onUpdate:modelValue": i[2] ||= (e) => F.value = e,
1705
1704
  "allow-transparent": !1,
1706
- compact: "",
1707
1705
  label: e(u)("blocks.text.textColor"),
1708
1706
  onMousedown: i[3] ||= T(() => {}, ["stop"])
1709
1707
  }, null, 8, ["modelValue", "label"]),
@@ -1734,15 +1732,15 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1734
1732
  }, [...i[18] ||= [E("u", null, "U", -1)]], 42, fn),
1735
1733
  E("button", {
1736
1734
  ref_key: "linkTrigger",
1737
- ref: Ee,
1735
+ ref: De,
1738
1736
  class: b({ active: e(_)?.isActive("link") }),
1739
1737
  type: "button",
1740
1738
  title: e(u)("blocks.text.link"),
1741
1739
  popovertarget: e(I),
1742
1740
  "aria-haspopup": "dialog",
1743
- "aria-expanded": Oe.value,
1741
+ "aria-expanded": z.value,
1744
1742
  onMousedown: i[10] ||= T(() => {}, ["prevent"])
1745
- }, [A(Se, {
1743
+ }, [A(oe, {
1746
1744
  name: "link",
1747
1745
  size: 16
1748
1746
  })], 42, pn),
@@ -1755,22 +1753,21 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1755
1753
  popover: "",
1756
1754
  role: "dialog",
1757
1755
  "aria-label": e(u)("blocks.text.link"),
1758
- onBeforetoggle: Ae,
1759
- onToggle: je,
1760
- onFocusout: B
1756
+ onBeforetoggle: je,
1757
+ onToggle: B,
1758
+ onFocusout: Pe
1761
1759
  }, [
1762
- E("span", hn, [A(De, {
1760
+ E("span", hn, [A(Ee, {
1763
1761
  ref_key: "linkInput",
1764
- ref: R,
1765
- modelValue: z.value,
1766
- "onUpdate:modelValue": i[11] ||= (e) => z.value = e,
1767
- size: "compact",
1762
+ ref: Te,
1763
+ modelValue: R.value,
1764
+ "onUpdate:modelValue": i[11] ||= (e) => R.value = e,
1768
1765
  inputmode: "url",
1769
1766
  spellcheck: "false",
1770
1767
  autocomplete: "off",
1771
1768
  placeholder: e(u)("blocks.text.linkPlaceholder"),
1772
1769
  "aria-label": e(u)("blocks.text.linkPrompt"),
1773
- onKeydown: te(T(Ne, ["prevent"]), ["enter"])
1770
+ onKeydown: te(T(Ie, ["prevent"]), ["enter"])
1774
1771
  }, null, 8, [
1775
1772
  "modelValue",
1776
1773
  "placeholder",
@@ -1778,10 +1775,9 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1778
1775
  "onKeydown"
1779
1776
  ])]),
1780
1777
  e(V).length ? (t(), S("span", gn, [A(Fe, {
1781
- size: "compact",
1782
1778
  "aria-label": e(u)("blocks.common.anchorLink.label"),
1783
1779
  "model-value": H.value,
1784
- "onUpdate:modelValue": Le,
1780
+ "onUpdate:modelValue": ze,
1785
1781
  onMousedown: i[12] ||= T(() => {}, ["stop"])
1786
1782
  }, {
1787
1783
  default: n(() => [H.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(V), (e) => (t(), S("option", {
@@ -1793,7 +1789,7 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1793
1789
  E("button", {
1794
1790
  class: "link-apply",
1795
1791
  type: "button",
1796
- onClick: Ne,
1792
+ onClick: Ie,
1797
1793
  onMousedown: i[13] ||= T(() => {}, ["prevent"])
1798
1794
  }, O(e(u)("blocks.text.linkApply")), 33),
1799
1795
  ke.value ? (t(), S("button", {
@@ -1802,19 +1798,19 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1802
1798
  type: "button",
1803
1799
  title: e(u)("blocks.text.linkRemove"),
1804
1800
  "aria-label": e(u)("blocks.text.linkRemove"),
1805
- onClick: U,
1801
+ onClick: Be,
1806
1802
  onMousedown: i[14] ||= T(() => {}, ["prevent"])
1807
- }, [A(Se, {
1803
+ }, [A(oe, {
1808
1804
  name: "trash",
1809
1805
  size: 16
1810
1806
  })], 40, bn)) : C("", !0)
1811
1807
  ], 40, mn)) : C("", !0),
1812
- A(Jt, { onSelect: Re }),
1808
+ A(Jt, { onSelect: U }),
1813
1809
  i[21] ||= E("span", { class: "divider" }, null, -1),
1814
1810
  (t(), S(k, null, f(p, (n) => E("button", {
1815
1811
  key: n,
1816
1812
  class: b({ active: e(_)?.isActive({ textAlign: n }) }),
1817
- title: e(u)(F[n]),
1813
+ title: e(u)(Se[n]),
1818
1814
  type: "button",
1819
1815
  onClick: (t) => e(_)?.chain().focus().setTextAlign(n).run(),
1820
1816
  onMousedown: i[15] ||= T(() => {}, ["prevent"])
@@ -1829,6 +1825,6 @@ var rn = ["aria-label", "value"], an = { value: "paragraph" }, on = ["value"], s
1829
1825
  }, null, 8, Cn))), 128))]))], 42, xn)), 64))
1830
1826
  ], 512)) : C("", !0)], 544));
1831
1827
  }
1832
- }), [["styles", [".tiptap{font-feature-settings:\"liga\" 0;font-variant-ligatures:none;overflow-wrap:break-word;white-space:pre-wrap;position:relative}.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-f337d1e6]{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);align-items:center;gap:.25em;margin:0;padding:.25em;position:fixed;inset:auto;transform:translate(-50%,calc(-100% - .4em))}.toolbar[data-v-f337d1e6]:popover-open{display:flex}.toolbar>button[data-v-f337d1e6]{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-f337d1e6]:hover{background:var(--bygga-color-track);color:var(--bygga-color-accent)}.toolbar>button.active[data-v-f337d1e6]{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-f337d1e6],.toolbar .font[data-v-f337d1e6]{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-f337d1e6]{background:var(--bygga-color-border);width:1px;height:1.4em}.link-popover[data-v-f337d1e6]{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-f337d1e6]:popover-open{display:flex}.link-field[data-v-f337d1e6]{width:18em}.link-anchor[data-v-f337d1e6]{width:10em}.link-apply[data-v-f337d1e6]{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-f337d1e6]{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-f337d1e6]:hover{background:var(--bygga-color-track);color:var(--bygga-color-accent)}"]], ["__scopeId", "data-v-f337d1e6"]]);
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"]]);
1833
1829
  //#endregion
1834
1830
  export { wn as default };