@damiro/stylo 0.19.1 → 0.20.1

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.
Files changed (34) hide show
  1. package/dist/{InPlaceView-rt6po4_E.js → InPlaceView-gei6uiAm.js} +634 -439
  2. package/dist/InPlaceView-gei6uiAm.js.map +1 -0
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/inplace/InPlaceView.d.ts.map +1 -1
  6. package/dist/inplace/config.d.ts +4 -2
  7. package/dist/inplace/config.d.ts.map +1 -1
  8. package/dist/inplace/context-menu-actions.d.ts.map +1 -1
  9. package/dist/inplace/extension.d.ts +4 -2
  10. package/dist/inplace/extension.d.ts.map +1 -1
  11. package/dist/inplace/host-items.d.ts +2 -0
  12. package/dist/inplace/host-items.d.ts.map +1 -1
  13. package/dist/inplace/selection-rect.d.ts +11 -0
  14. package/dist/inplace/selection-rect.d.ts.map +1 -0
  15. package/dist/inplace/table-cell-dom.d.ts +3 -2
  16. package/dist/inplace/table-cell-dom.d.ts.map +1 -1
  17. package/dist/inplace/table-cell-marks.d.ts +50 -0
  18. package/dist/inplace/table-cell-marks.d.ts.map +1 -0
  19. package/dist/inplace/table-marks-plugin.d.ts +12 -0
  20. package/dist/inplace/table-marks-plugin.d.ts.map +1 -0
  21. package/dist/inplace/table-widget-render.d.ts +6 -0
  22. package/dist/inplace/table-widget-render.d.ts.map +1 -1
  23. package/dist/inplace/table-widget.d.ts +12 -0
  24. package/dist/inplace/table-widget.d.ts.map +1 -1
  25. package/dist/stylo.js +2 -2
  26. package/dist/types/inplace.d.ts +26 -2
  27. package/dist/types/inplace.d.ts.map +1 -1
  28. package/dist/types.d.ts +1 -1
  29. package/dist/types.d.ts.map +1 -1
  30. package/dist/{useCodeMirror-Fn6qEfMx.js → useCodeMirror-DbhMZGZ7.js} +334 -322
  31. package/dist/useCodeMirror-DbhMZGZ7.js.map +1 -0
  32. package/package.json +1 -1
  33. package/dist/InPlaceView-rt6po4_E.js.map +0 -1
  34. package/dist/useCodeMirror-Fn6qEfMx.js.map +0 -1
@@ -1,17 +1,17 @@
1
1
  import { l as e, s as t, u as n } from "./embed-cache-BU9Smn-h.js";
2
- import { C as r, D as i, E as a, O as o, S as s, T as c, _ as l, a as u, b as d, c as f, d as p, f as m, g as h, h as ee, i as te, k as ne, l as re, m as ie, n as g, o as ae, p as oe, r as se, s as _, t as ce, u as le, v, w as y, x as ue, y as de } from "./useCodeMirror-Fn6qEfMx.js";
3
- import { a as fe, i as b } from "./config-DTBxVhtH.js";
4
- import { a as pe, n as me, o as he, r as ge, t as x } from "./embed-DJAydn-v.js";
5
- import { t as _e } from "./katex-BfiLlqfN.js";
6
- import { useRef as S, useState as ve, useSyncExternalStore as ye } from "react";
7
- import { Decoration as C, EditorView as w, ViewPlugin as T, WidgetType as E, hoverTooltip as be, keymap as D, showPanel as xe } from "@codemirror/view";
8
- import { createPortal as Se, flushSync as Ce } from "react-dom";
9
- import { Annotation as we, EditorSelection as Te, EditorState as Ee, Facet as O, Prec as k, StateEffect as De, StateField as A } from "@codemirror/state";
10
- import { syntaxTree as j } from "@codemirror/language";
11
- import { jsx as Oe, jsxs as ke } from "react/jsx-runtime";
12
- import { createRoot as Ae } from "react-dom/client";
2
+ import { C as r, D as i, E as a, O as o, S as s, T as c, _ as l, a as u, b as d, c as f, d as p, f as m, g as h, h as ee, i as te, k as ne, l as re, m as ie, n as g, o as _, p as ae, r as oe, s as se, t as ce, u as v, v as le, w as y, x as b, y as x } from "./useCodeMirror-DbhMZGZ7.js";
3
+ import { a as ue, i as S } from "./config-DTBxVhtH.js";
4
+ import { a as de, n as fe, o as pe, r as me, t as C } from "./embed-DJAydn-v.js";
5
+ import { t as he } from "./katex-BfiLlqfN.js";
6
+ import { useRef as w, useState as T, useSyncExternalStore as ge } from "react";
7
+ import { Decoration as E, EditorView as D, ViewPlugin as O, WidgetType as k, hoverTooltip as _e, keymap as ve, showPanel as ye } from "@codemirror/view";
8
+ import { createPortal as be, flushSync as xe } from "react-dom";
9
+ import { Annotation as Se, EditorSelection as Ce, EditorState as we, Facet as A, Prec as j, StateEffect as Te, StateField as M } from "@codemirror/state";
10
+ import { syntaxTree as N } from "@codemirror/language";
11
+ import { jsx as Ee, jsxs as De } from "react/jsx-runtime";
12
+ import { createRoot as Oe } from "react-dom/client";
13
13
  //#region src/inplace/embed-registry.ts
14
- var je = class {
14
+ var ke = class {
15
15
  slots = /* @__PURE__ */ new Map();
16
16
  listeners = /* @__PURE__ */ new Set();
17
17
  snapshot = [];
@@ -34,7 +34,7 @@ var je = class {
34
34
  for (let e of this.listeners) e();
35
35
  }));
36
36
  }
37
- }, Me = {
37
+ }, Ae = {
38
38
  headings: !0,
39
39
  emphasis: !0,
40
40
  links: !0,
@@ -49,20 +49,20 @@ var je = class {
49
49
  tables: !0,
50
50
  embeds: !0
51
51
  };
52
- function Ne(e) {
52
+ function je(e) {
53
53
  return {
54
- ...Me,
54
+ ...Ae,
55
55
  ...e?.decorations
56
56
  };
57
57
  }
58
- var M = O.define({ combine: (e) => e[0] ?? Me }), N = O.define({ combine: (e) => e[0] ?? null }), P = O.define({ combine: (e) => e[0] ?? "source" }), F = O.define({ combine: (e) => e[0] ?? "caret" }), Pe = O.define({ combine: (e) => e[0] ?? null }), Fe = O.define({ combine: (e) => e[0] ?? !0 }), Ie = [
58
+ var P = A.define({ combine: (e) => e[0] ?? Ae }), F = A.define({ combine: (e) => e[0] ?? null }), I = A.define({ combine: (e) => e[0] ?? "source" }), L = A.define({ combine: (e) => e[0] ?? "caret" }), Me = A.define({ combine: (e) => e[0] ?? null }), Ne = A.define({ combine: (e) => e[0] ?? !0 }), Pe = [
59
59
  "host",
60
60
  "link",
61
61
  "format",
62
62
  "paragraph",
63
63
  "insert",
64
64
  "clipboard"
65
- ], I = [
65
+ ], R = [
66
66
  "bold",
67
67
  "italic",
68
68
  "strike",
@@ -71,48 +71,48 @@ var M = O.define({ combine: (e) => e[0] ?? Me }), N = O.define({ combine: (e) =>
71
71
  "wikilink",
72
72
  "math"
73
73
  ];
74
- function Le(e) {
74
+ function Fe(e) {
75
75
  return e === !1 ? {
76
76
  enabled: !1,
77
77
  groups: [],
78
78
  items: []
79
79
  } : e == null || e === !0 ? {
80
80
  enabled: !0,
81
- groups: Ie,
81
+ groups: Pe,
82
82
  items: []
83
83
  } : {
84
84
  enabled: !0,
85
- groups: e.groups?.length ? e.groups : Ie,
85
+ groups: e.groups?.length ? e.groups : Pe,
86
86
  items: e.items ?? []
87
87
  };
88
88
  }
89
- var Re = O.define({ combine: (e) => e[0] ?? (() => []) }), L = O.define({ combine: (e) => e[0] ?? Ie });
89
+ var Ie = A.define({ combine: (e) => e[0] ?? (() => []) }), Le = A.define({ combine: (e) => e[0] ?? (() => []) }), Re = A.define({ combine: (e) => e[0] ?? Pe });
90
90
  function ze(e) {
91
- if (!e?.length) return I;
92
- let t = e.filter((e) => I.includes(e));
93
- return t.length ? t : I;
91
+ if (!e?.length) return R;
92
+ let t = e.filter((e) => R.includes(e));
93
+ return t.length ? t : R;
94
94
  }
95
- var Be = O.define({ combine: (e) => e[0] ?? I }), Ve = O.define({ combine: (e) => e[0] ?? "menu" });
95
+ var Be = A.define({ combine: (e) => e[0] ?? R }), Ve = A.define({ combine: (e) => e[0] ?? "menu" });
96
96
  //#endregion
97
97
  //#region src/inplace/frontmatter.ts
98
98
  function He(e) {
99
- if (!e.facet(M).frontmatter) return C.none;
99
+ if (!e.facet(P).frontmatter) return E.none;
100
100
  let n = t(e.doc);
101
- if (!n) return C.none;
101
+ if (!n) return E.none;
102
102
  let r = e.doc.lineAt(n.from).number, i = e.doc.lineAt(n.to).number, a = e.selection.ranges.some((t) => {
103
103
  let n = e.doc.lineAt(t.from).number;
104
104
  return n >= r && n <= i;
105
105
  }), o = [];
106
106
  for (let t = r; t <= i; t++) {
107
107
  let n = e.doc.line(t), s = t === r ? "cm-inplace-fm cm-inplace-fm-first" : "cm-inplace-fm";
108
- o.push(C.line({ class: s }).range(n.from)), (t === r || t === i) && !a && n.to > n.from && o.push(C.replace({}).range(n.from, n.to));
108
+ o.push(E.line({ class: s }).range(n.from)), (t === r || t === i) && !a && n.to > n.from && o.push(E.replace({}).range(n.from, n.to));
109
109
  }
110
- return C.set(o, !0);
110
+ return E.set(o, !0);
111
111
  }
112
- var Ue = A.define({
112
+ var Ue = M.define({
113
113
  create: He,
114
114
  update: (e, t) => t.docChanged || t.selection ? He(t.state) : e,
115
- provide: (e) => w.decorations.from(e)
115
+ provide: (e) => D.decorations.from(e)
116
116
  });
117
117
  //#endregion
118
118
  //#region src/inplace/list-guides.ts
@@ -130,16 +130,16 @@ function Ge(e, t, n, r, i, a) {
130
130
  enter: (e) => {
131
131
  if (e.name !== "ListItem") return;
132
132
  let t = We(e), n = t - 1, i = r.lineAt(e.from).number, s = r.lineAt(Math.min(e.to, r.length)).number, c = e.node.getChild("BulletList") ?? e.node.getChild("OrderedList"), l = c ? r.lineAt(c.from).number : -1, u = c ? r.lineAt(Math.max(c.from, c.to - 1)).number : -1, d = e.node.prevSibling ? "cm-inplace-item-gap" : t > 1 ? "cm-inplace-item-gap-nested" : null;
133
- for (let e = i; e <= s; e++) c && e >= l && e <= u || (n >= 1 && !o.has(e) && (o.add(e), a.push(C.line({
133
+ for (let e = i; e <= s; e++) c && e >= l && e <= u || (n >= 1 && !o.has(e) && (o.add(e), a.push(E.line({
134
134
  class: "cm-inplace-li",
135
135
  attributes: { style: `--sl-li-depth:${n}` }
136
- }).range(r.line(e).from))), e === i && d && a.push(C.line({ class: d }).range(r.line(e).from)));
136
+ }).range(r.line(e).from))), e === i && d && a.push(E.line({ class: d }).range(r.line(e).from)));
137
137
  }
138
138
  });
139
139
  }
140
140
  //#endregion
141
141
  //#region src/inplace/reveal.ts
142
- function R(e) {
142
+ function z(e) {
143
143
  let t = /* @__PURE__ */ new Set();
144
144
  for (let n of e.selection.ranges) {
145
145
  let r = e.doc.lineAt(n.from).number, i = e.doc.lineAt(n.to).number;
@@ -155,7 +155,7 @@ var Ke = /* @__PURE__ */ new Set([
155
155
  "CodeBlock",
156
156
  "CodeText"
157
157
  ]);
158
- function z(e, t) {
158
+ function B(e, t) {
159
159
  let n = e.resolveInner(t, 1);
160
160
  for (;;) {
161
161
  if (Ke.has(n.name)) return !0;
@@ -202,7 +202,7 @@ function Qe(e, t) {
202
202
  }
203
203
  return null;
204
204
  }
205
- var $e = class extends E {
205
+ var $e = class extends k {
206
206
  src;
207
207
  block;
208
208
  constructor(e, t) {
@@ -215,7 +215,7 @@ var $e = class extends E {
215
215
  let e = document.createElement(this.block ? "div" : "span");
216
216
  e.className = this.block ? "cm-inplace-math cm-inplace-math-block" : "cm-inplace-math";
217
217
  try {
218
- _e.render(this.src, e, {
218
+ he.render(this.src, e, {
219
219
  displayMode: this.block,
220
220
  throwOnError: !1
221
221
  });
@@ -233,11 +233,11 @@ function et(e, t, n, r, i, a, o) {
233
233
  let { doc: s } = e.state, c = [];
234
234
  for (let e of r.matchAll(Xe)) {
235
235
  let n = (e[1] ?? "").trim(), r = t + (e.index ?? 0), l = r + (e[0] ?? "").length;
236
- !n || z(a, r + 2) || (c.push([r, l]), !Je(i, s, r, l) && o.push(C.replace({ widget: new $e(n, !0) }).range(r, l)));
236
+ !n || B(a, r + 2) || (c.push([r, l]), !Je(i, s, r, l) && o.push(E.replace({ widget: new $e(n, !0) }).range(r, l)));
237
237
  }
238
238
  for (let e of r.matchAll(Ye)) {
239
239
  let n = (e[1] ?? "").trim(), r = t + (e.index ?? 0), l = r + (e[0] ?? "").length;
240
- !n || z(a, r + 1) || c.some(([e, t]) => r >= e && l <= t) || Je(i, s, r, l) || o.push(C.replace({ widget: new $e(n, !1) }).range(r, l));
240
+ !n || B(a, r + 1) || c.some(([e, t]) => r >= e && l <= t) || Je(i, s, r, l) || o.push(E.replace({ widget: new $e(n, !1) }).range(r, l));
241
241
  }
242
242
  }
243
243
  function tt(e, t, n) {
@@ -251,38 +251,38 @@ function tt(e, t, n) {
251
251
  }
252
252
  return !1;
253
253
  }
254
- var nt = A.define({
254
+ var nt = M.define({
255
255
  create: rt,
256
256
  update(e, t) {
257
257
  return t.docChanged || t.selection && (tt(t.state, t.startState.selection, e.ranges) || tt(t.state, t.state.selection, e.ranges)) ? rt(t.state) : e;
258
258
  },
259
- provide: (e) => [w.decorations.from(e, (e) => e.decorations), w.atomicRanges.of((t) => t.state.field(e).decorations)]
259
+ provide: (e) => [D.decorations.from(e, (e) => e.decorations), D.atomicRanges.of((t) => t.state.field(e).decorations)]
260
260
  });
261
261
  function rt(e) {
262
- if (!e.facet(M).math) return {
263
- decorations: C.none,
262
+ if (!e.facet(P).math) return {
263
+ decorations: E.none,
264
264
  ranges: []
265
265
  };
266
266
  let t = e.doc.toString();
267
267
  if (!t.includes("$$")) return {
268
- decorations: C.none,
268
+ decorations: E.none,
269
269
  ranges: []
270
270
  };
271
- let n = [], r = [], i = R(e), a = j(e);
271
+ let n = [], r = [], i = z(e), a = N(e);
272
272
  for (let o of t.matchAll(Ze)) {
273
273
  let t = o[0] ?? "", s = (o[1] ?? "").trim();
274
274
  if (!s || !t.includes("\n")) continue;
275
275
  let c = o.index ?? 0, l = c + t.length, u = e.doc.lineAt(c), d = e.doc.lineAt(l), f = e.doc.sliceString(u.from, c).trim(), p = e.doc.sliceString(l, d.to).trim();
276
- f === "" && p === "" && (z(a, c + 2) || (r.push({
276
+ f === "" && p === "" && (B(a, c + 2) || (r.push({
277
277
  from: c,
278
278
  to: l
279
- }), !Je(i, e.doc, c, l) && n.push(C.replace({
279
+ }), !Je(i, e.doc, c, l) && n.push(E.replace({
280
280
  widget: new $e(s, !0),
281
281
  block: !0
282
282
  }).range(c, l))));
283
283
  }
284
284
  return {
285
- decorations: C.set(n, !0),
285
+ decorations: E.set(n, !0),
286
286
  ranges: r
287
287
  };
288
288
  }
@@ -314,22 +314,22 @@ function at(e, t, n) {
314
314
  let { doc: r, revealed: i, out: a, toggles: o } = t;
315
315
  if (!o[n.toggle]) return;
316
316
  let s = e.node.getChildren(n.mark), c = s[0], l = s[s.length - 1], u = c && l && c !== l, d = u ? c.to : e.from, f = u ? l.from : e.to;
317
- f > d && a.push(C.mark({ class: n.className }).range(d, f)), u && !i.has(r.lineAt(e.from).number) && (a.push(C.replace({}).range(c.from, c.to)), a.push(C.replace({}).range(l.from, l.to)));
317
+ f > d && a.push(E.mark({ class: n.className }).range(d, f)), u && !i.has(r.lineAt(e.from).number) && (a.push(E.replace({}).range(c.from, c.to)), a.push(E.replace({}).range(l.from, l.to)));
318
318
  }
319
319
  function ot(e, t) {
320
320
  let { doc: n, revealed: r, out: i, toggles: a } = t, o = n.sliceString(Math.max(0, e.from - 1), e.from), s = n.sliceString(e.to, e.to + 1);
321
321
  if (o === "[" && s === "]" || !a.links) return !1;
322
- let c = n.lineAt(e.from), l = ge.exec(c.text);
322
+ let c = n.lineAt(e.from), l = me.exec(c.text);
323
323
  if (l && e.from - c.from < l[1].length + l[2].length) return !1;
324
324
  let u = e.node.getChildren("LinkMark");
325
325
  if (u.length >= 2) {
326
326
  let t = u[0], a = u[1];
327
- a.from > t.to && i.push(C.mark({ class: "cm-inplace-link" }).range(t.to, a.from)), r.has(n.lineAt(e.from).number) || (i.push(C.replace({}).range(e.from, t.to)), i.push(C.replace({}).range(a.from, e.to)));
327
+ a.from > t.to && i.push(E.mark({ class: "cm-inplace-link" }).range(t.to, a.from)), r.has(n.lineAt(e.from).number) || (i.push(E.replace({}).range(e.from, t.to)), i.push(E.replace({}).range(a.from, e.to)));
328
328
  }
329
329
  }
330
330
  //#endregion
331
331
  //#region src/inplace/widgets.ts
332
- var st = class extends E {
332
+ var st = class extends k {
333
333
  eq() {
334
334
  return !0;
335
335
  }
@@ -340,7 +340,7 @@ var st = class extends E {
340
340
  ignoreEvent() {
341
341
  return !1;
342
342
  }
343
- }, ct = class extends E {
343
+ }, ct = class extends k {
344
344
  eq() {
345
345
  return !0;
346
346
  }
@@ -351,7 +351,7 @@ var st = class extends E {
351
351
  ignoreEvent() {
352
352
  return !1;
353
353
  }
354
- }, lt = class extends E {
354
+ }, lt = class extends k {
355
355
  checked;
356
356
  constructor(e) {
357
357
  super(), this.checked = e;
@@ -378,26 +378,26 @@ function dt(e, t) {
378
378
  let { doc: n, revealed: r, out: i, toggles: a } = t;
379
379
  if (!a.horizontalRule) return !1;
380
380
  let o = n.lineAt(e.from);
381
- return r.has(o.number) || (i.push(C.line({ class: "cm-inplace-hr-line" }).range(o.from)), i.push(C.replace({ widget: new st() }).range(o.from, o.to))), !1;
381
+ return r.has(o.number) || (i.push(E.line({ class: "cm-inplace-hr-line" }).range(o.from)), i.push(E.replace({ widget: new st() }).range(o.from, o.to))), !1;
382
382
  }
383
383
  function ft(e, t) {
384
384
  let { doc: n, revealed: r, caretRevealed: i, out: a, toggles: o, quoteRevealed: s } = t;
385
385
  if (o.blockquote) {
386
- let t = n.lineAt(e.from).number, o = n.lineAt(Math.min(e.to, n.length)).number, c = n.line(t), l = ge.exec(c.text), u = l ? pe(l[3]) : null, d = !1;
386
+ let t = n.lineAt(e.from).number, o = n.lineAt(Math.min(e.to, n.length)).number, c = n.line(t), l = me.exec(c.text), u = l ? de(l[3]) : null, d = !1;
387
387
  for (let e = t; e <= o; e++) i.has(e) && (d = !0);
388
388
  if (d) for (let e = t; e <= o; e++) s.add(e);
389
389
  for (let e = t; e <= o; e++) {
390
390
  let r = u ? `cm-inplace-callout cm-inplace-callout-${u}` : "cm-inplace-quote";
391
391
  u && e === t && (r += " cm-inplace-callout-head"), u && e === o && (r += " cm-inplace-callout-foot");
392
392
  let i = {};
393
- u && (i["data-callout"] = l[3].toLowerCase()), u && d && (i["data-revealed"] = ""), a.push(C.line({
393
+ u && (i["data-callout"] = l[3].toLowerCase()), u && d && (i["data-revealed"] = ""), a.push(E.line({
394
394
  class: r,
395
395
  attributes: i
396
396
  }).range(n.line(e).from));
397
397
  }
398
398
  if (u && !d && !r.has(t)) {
399
399
  let e = c.from + l[1].length;
400
- a.push(C.replace({}).range(e, e + l[2].length));
400
+ a.push(E.replace({}).range(e, e + l[2].length));
401
401
  }
402
402
  }
403
403
  }
@@ -406,21 +406,21 @@ function pt(e, t) {
406
406
  if (!a.blockquote) return !1;
407
407
  let s = n.lineAt(e.from);
408
408
  if (!r.has(s.number) && !o.has(s.number)) {
409
- let t = Math.min(e.to + 1, s.to), n = ge.exec(s.text), r = n ? s.text.slice(n[1].length + n[2].length) : s.text.slice(t - s.from);
410
- i.push(C.replace({}).range(e.from, r.trim() === "" ? e.to : t));
409
+ let t = Math.min(e.to + 1, s.to), n = me.exec(s.text), r = n ? s.text.slice(n[1].length + n[2].length) : s.text.slice(t - s.from);
410
+ i.push(E.replace({}).range(e.from, r.trim() === "" ? e.to : t));
411
411
  }
412
412
  return !1;
413
413
  }
414
414
  function mt(e, t) {
415
415
  let { doc: n, revealed: r, out: i, toggles: a } = t, o = n.sliceString(e.from, e.to), s = n.lineAt(e.from), c = e.node.parent, l = !!(c?.getChild("Task") ?? c?.getChild("TaskMarker"));
416
- return r.has(s.number) || (l ? a.tasks && i.push(C.replace({}).range(e.from, Math.min(e.to + 1, s.to))) : a.lists && ut.test(o) && i.push(C.replace({ widget: new ct() }).range(e.from, e.to))), !1;
416
+ return r.has(s.number) || (l ? a.tasks && i.push(E.replace({}).range(e.from, Math.min(e.to + 1, s.to))) : a.lists && ut.test(o) && i.push(E.replace({ widget: new ct() }).range(e.from, e.to))), !1;
417
417
  }
418
418
  function ht(e, t) {
419
419
  let { doc: n, revealed: r, out: i, toggles: a } = t;
420
420
  if (!a.tasks) return !1;
421
421
  if (!r.has(n.lineAt(e.from).number)) {
422
422
  let t = n.sliceString(e.from + 1, e.to - 1).toLowerCase() === "x";
423
- i.push(C.replace({ widget: new lt(t) }).range(e.from, e.to));
423
+ i.push(E.replace({ widget: new lt(t) }).range(e.from, e.to));
424
424
  }
425
425
  return !1;
426
426
  }
@@ -434,7 +434,7 @@ function gt(e, t) {
434
434
  let t = s && (e === c || e === l), r = "cm-inplace-mono";
435
435
  e === c && (r += " cm-inplace-code-top"), e === l && (r += " cm-inplace-code-bottom"), t && (r += f ? " cm-inplace-code-pad" : " cm-inplace-fence");
436
436
  let i = n.line(e);
437
- a.push(C.line({ class: r }).range(i.from)), t && f && i.to > i.from && a.push(C.replace({}).range(i.from, i.to));
437
+ a.push(E.line({ class: r }).range(i.from)), t && f && i.to > i.from && a.push(E.replace({}).range(i.from, i.to));
438
438
  }
439
439
  return !1;
440
440
  }
@@ -445,7 +445,7 @@ function yt(e, t, n) {
445
445
  let { doc: r, revealed: i, out: a, toggles: o } = t;
446
446
  if (o.headings) {
447
447
  let t = r.lineAt(e.from);
448
- if (a.push(C.line({
448
+ if (a.push(E.line({
449
449
  class: `cm-inplace-heading cm-inplace-h${n}`,
450
450
  attributes: {
451
451
  role: "heading",
@@ -453,7 +453,7 @@ function yt(e, t, n) {
453
453
  }
454
454
  }).range(t.from)), !i.has(t.number)) {
455
455
  let n = e.node.firstChild;
456
- n?.name === "HeaderMark" && a.push(C.replace({}).range(n.from, Math.min(n.to + 1, t.to)));
456
+ n?.name === "HeaderMark" && a.push(E.replace({}).range(n.from, Math.min(n.to + 1, t.to)));
457
457
  }
458
458
  }
459
459
  }
@@ -461,7 +461,7 @@ function bt(e, t, n) {
461
461
  let { doc: r, caretRevealed: i, out: a, toggles: o } = t;
462
462
  if (o.headings) {
463
463
  let t = r.lineAt(e.from);
464
- a.push(C.line({
464
+ a.push(E.line({
465
465
  class: `cm-inplace-heading cm-inplace-h${n}`,
466
466
  attributes: {
467
467
  role: "heading",
@@ -471,7 +471,7 @@ function bt(e, t, n) {
471
471
  let o = e.node.getChild("HeaderMark");
472
472
  if (o) {
473
473
  let e = r.lineAt(o.from);
474
- !i.has(t.number) && !i.has(e.number) && (a.push(C.line({ class: "cm-inplace-setext-rule" }).range(e.from)), a.push(C.replace({}).range(o.from, o.to)));
474
+ !i.has(t.number) && !i.has(e.number) && (a.push(E.line({ class: "cm-inplace-setext-rule" }).range(e.from)), a.push(E.replace({}).range(o.from, o.to)));
475
475
  }
476
476
  }
477
477
  }
@@ -495,22 +495,22 @@ function xt(e, t) {
495
495
  //#region src/inplace/wikilinks.ts
496
496
  function St(t, n, r, i, a, o, s) {
497
497
  if (!i.includes("[[")) return;
498
- let c = t.state.facet(N) != null;
498
+ let c = t.state.facet(F) != null;
499
499
  for (let r of i.matchAll(e)) {
500
500
  let [e = "", i = "", l] = r, u = i.trim(), d = n + (r.index ?? 0);
501
- if (!u || z(o, d + 1) || c && d > 0 && t.state.doc.sliceString(d - 1, d) === "!") continue;
501
+ if (!u || B(o, d + 1) || c && d > 0 && t.state.doc.sliceString(d - 1, d) === "!") continue;
502
502
  let f = d + e.length, p = l == null ? d + 2 : d + 2 + i.length + 1, m = f - 2;
503
- s.push(C.mark({
503
+ s.push(E.mark({
504
504
  class: "cm-inplace-link cm-inplace-wikilink",
505
505
  attributes: { "data-stylo-wikilink": u }
506
- }).range(p, m)), a.has(t.state.doc.lineAt(d).number) || (s.push(C.replace({}).range(d, p)), s.push(C.replace({}).range(m, f)));
506
+ }).range(p, m)), a.has(t.state.doc.lineAt(d).number) || (s.push(E.replace({}).range(d, p)), s.push(E.replace({}).range(m, f)));
507
507
  }
508
508
  }
509
509
  //#endregion
510
510
  //#region src/inplace/decorate.ts
511
- var Ct = /* @__PURE__ */ new Set(), wt = C.replace({});
511
+ var Ct = /* @__PURE__ */ new Set(), wt = E.replace({});
512
512
  function Tt(e) {
513
- let n = [], r = R(e.state), i = e.state.facet(F) === "never" ? Ct : r, a = j(e.state), { doc: o } = e.state, s = e.state.facet(M), c = {
513
+ let n = [], r = z(e.state), i = e.state.facet(L) === "never" ? Ct : r, a = N(e.state), { doc: o } = e.state, s = e.state.facet(P), c = {
514
514
  doc: o,
515
515
  revealed: i,
516
516
  caretRevealed: r,
@@ -538,13 +538,13 @@ function Tt(e) {
538
538
  t && e.from <= t.to ? e.to > t.to && (u[u.length - 1] = wt.range(t.from, e.to)) : u.push(wt.range(e.from, e.to));
539
539
  }
540
540
  return {
541
- decorations: C.set(n, !0),
542
- atomic: C.set(u, !0)
541
+ decorations: E.set(n, !0),
542
+ atomic: E.set(u, !0)
543
543
  };
544
544
  }
545
545
  //#endregion
546
546
  //#region src/inplace/plugin.ts
547
- var Et = T.fromClass(class {
547
+ var Et = O.fromClass(class {
548
548
  decorations;
549
549
  atomic;
550
550
  constructor(e) {
@@ -559,7 +559,7 @@ var Et = T.fromClass(class {
559
559
  }
560
560
  }, {
561
561
  decorations: (e) => e.decorations,
562
- provide: (e) => w.atomicRanges.of((t) => t.plugin(e)?.atomic ?? C.none)
562
+ provide: (e) => D.atomicRanges.of((t) => t.plugin(e)?.atomic ?? E.none)
563
563
  });
564
564
  function Dt() {
565
565
  return Et;
@@ -584,13 +584,13 @@ var Ot = {
584
584
  toggle: "code"
585
585
  }
586
586
  };
587
- function B(e, t) {
588
- return e.facet(F) === "never" || !R(e).has(t);
587
+ function V(e, t) {
588
+ return e.facet(L) === "never" || !z(e).has(t);
589
589
  }
590
- function V(t, n, r = !1, i = !1) {
590
+ function H(t, n, r = !1, i = !1) {
591
591
  let a = t.doc.lineAt(n);
592
- if (!i && !B(t, a.number)) return null;
593
- let o = t.facet(M), s = j(t);
592
+ if (!i && !V(t, a.number)) return null;
593
+ let o = t.facet(P), s = N(t);
594
594
  for (let e of [-1, 1]) for (let i = s.resolveInner(n, e); i; i = i.parent) {
595
595
  let e = Ot[i.name];
596
596
  if (e) {
@@ -648,13 +648,13 @@ var At = (e) => (t) => {
648
648
  let n = t.state.selection.main;
649
649
  if (!n.empty) return !1;
650
650
  let { state: r } = t;
651
- if (!B(r, r.doc.lineAt(n.head).number)) return !1;
651
+ if (!V(r, r.doc.lineAt(n.head).number)) return !1;
652
652
  let i = kt(t, n.head, e);
653
653
  if (i === n.head) return !1;
654
654
  let a = r.doc;
655
655
  if (e < 0 ? i <= 0 : i >= a.length) return !0;
656
656
  let o = e < 0 ? i - 1 : i, s = e < 0 ? i : i + 1;
657
- for (let e = V(r, o); e && o <= e.contentFrom && s >= e.contentTo && e.contentTo > e.contentFrom && !(e.from >= o && e.to <= s); e = V(r, o)) o = Math.min(o, e.from), s = Math.max(s, e.to);
657
+ for (let e = H(r, o); e && o <= e.contentFrom && s >= e.contentTo && e.contentTo > e.contentFrom && !(e.from >= o && e.to <= s); e = H(r, o)) o = Math.min(o, e.from), s = Math.max(s, e.to);
658
658
  return t.dispatch({
659
659
  changes: {
660
660
  from: o,
@@ -675,18 +675,18 @@ function Nt(e, t, n) {
675
675
  n.spec.widget || n.spec.class || t <= e || e <= i && (i = Math.max(i, t));
676
676
  }), i >= n;
677
677
  }
678
- var H = (e, t) => (n) => {
678
+ var U = (e, t) => (n) => {
679
679
  if (h(n)) return !1;
680
680
  let r = n.state.selection.main;
681
- if (!t && !r.empty || !B(n.state, n.state.doc.lineAt(r.head).number)) return !1;
681
+ if (!t && !r.empty || !V(n.state, n.state.doc.lineAt(r.head).number)) return !1;
682
682
  let i = n.moveByChar(r, e);
683
683
  if (Nt(n, Math.min(r.head, i.head), Math.max(r.head, i.head)) && (i = n.moveByChar(i, e)), i.head === r.head) return !1;
684
- let a = t ? Te.range(r.anchor, i.head) : Te.cursor(i.head);
684
+ let a = t ? Ce.range(r.anchor, i.head) : Ce.cursor(i.head);
685
685
  return n.dispatch({
686
686
  selection: a,
687
687
  userEvent: "select"
688
688
  }), !0;
689
- }, Pt = H(!1, !1), Ft = H(!0, !1), It = H(!1, !0), Lt = H(!0, !0), Rt = k.high(D.of([
689
+ }, Pt = U(!1, !1), Ft = U(!0, !1), It = U(!1, !0), Lt = U(!0, !0), Rt = j.high(ve.of([
690
690
  {
691
691
  key: "Backspace",
692
692
  run: jt
@@ -711,43 +711,155 @@ var H = (e, t) => (n) => {
711
711
  key: "Shift-ArrowRight",
712
712
  run: Lt
713
713
  }
714
- ])), zt = (e) => e === "h1" || e === "h2" || e === "h3" ? b.heading : b[e], Bt = [
714
+ ]));
715
+ //#endregion
716
+ //#region src/inplace/table-cell-marks.ts
717
+ function zt(e, t, n, r) {
718
+ let i = {
719
+ marks: [],
720
+ cellClass: []
721
+ };
722
+ for (let a of e) if (!(a.to <= t || a.from >= t + r || a.to <= a.from)) {
723
+ i.marks.push({
724
+ from: Math.max(a.from - t, 0) + n,
725
+ to: Math.min(a.to - t, r) + n,
726
+ class: a.class,
727
+ attributes: a.attributes
728
+ });
729
+ for (let e of a.cellClass?.split(/\s+/) ?? []) e && !i.cellClass.includes(e) && i.cellClass.push(e);
730
+ }
731
+ return i.marks.length || i.cellClass.length ? i : null;
732
+ }
733
+ function Bt(e, t) {
734
+ let n = document.createElement("span");
735
+ n.className = e.class, n.dataset.styloCellMark = "";
736
+ for (let [t, r] of Object.entries(e.attributes ?? {})) try {
737
+ n.setAttribute(t, r);
738
+ } catch {}
739
+ return n.append(t), n;
740
+ }
741
+ function Vt(e, t) {
742
+ let n = e.node.data, r = e.start + n.length, i = t.filter((t) => t.from < r && t.to > e.start);
743
+ if (!i.length) return !1;
744
+ let a = /* @__PURE__ */ new Set([e.start, r]);
745
+ for (let t of i) a.add(Math.max(t.from, e.start)), a.add(Math.min(t.to, r));
746
+ let o = [...a].sort((e, t) => e - t), s = document.createDocumentFragment();
747
+ for (let t = 0; t < o.length - 1; t++) {
748
+ let [r, a] = [o[t], o[t + 1]], c = document.createTextNode(n.slice(r - e.start, a - e.start));
749
+ for (let e of i) e.from <= r && e.to >= a && (c = Bt(e, c));
750
+ s.append(c);
751
+ }
752
+ return e.node.replaceWith(s), !0;
753
+ }
754
+ function Ht(e, t) {
755
+ let n = [], r = 0, i = (e) => {
756
+ for (let a of e.childNodes) if (a instanceof Text) {
757
+ let e = t.indexOf(a.data, r);
758
+ if (e < 0) return !1;
759
+ n.push({
760
+ node: a,
761
+ start: e
762
+ }), r = e + a.data.length;
763
+ } else if (a.hasAttribute?.("data-stylo-wikilink")) {
764
+ let e = t.indexOf("[[", r), i = e < 0 ? -1 : t.indexOf("]]", e), o = a.firstChild;
765
+ if (i < 0 || !(o instanceof Text)) return !1;
766
+ n.push({
767
+ node: o,
768
+ start: i - o.data.length
769
+ }), r = i + 2;
770
+ } else if (a.classList?.contains("cm-inplace-math")) {
771
+ let e = t.indexOf("$", r), n = e < 0 ? -1 : t.indexOf("$", e + 1);
772
+ if (n < 0) return !1;
773
+ r = n + 1;
774
+ } else if (!i(a)) return !1;
775
+ return !0;
776
+ };
777
+ return i(e) ? n : null;
778
+ }
779
+ function Ut(e, t) {
780
+ for (let n of t) {
781
+ let t = Bt(n, e.ownerDocument.createDocumentFragment());
782
+ t.append(...e.childNodes), e.append(t);
783
+ }
784
+ }
785
+ function Wt(e, t, n, r) {
786
+ let i = n.marks, a = [], o;
787
+ if (r) o = e.firstChild instanceof Text ? [{
788
+ node: e.firstChild,
789
+ start: 0
790
+ }] : null;
791
+ else {
792
+ let n = [...t.matchAll(/\\\|/g)].map((e) => e.index), r = (e) => e - n.filter((t) => t < e).length;
793
+ o = Ht(e, t.replace(/\\\|/g, "|")), i = i.map((e) => ({
794
+ ...e,
795
+ from: r(e.from),
796
+ to: r(e.to)
797
+ }));
798
+ }
799
+ if (!o) return Ut(e, i);
800
+ let s = /* @__PURE__ */ new Set();
801
+ for (let e of o) for (let t of i) t.from < e.start + e.node.data.length && t.to > e.start && s.add(t);
802
+ for (let e of i) s.has(e) || a.push(e);
803
+ for (let e of o) Vt(e, i);
804
+ Ut(e, a);
805
+ }
806
+ function Gt(e) {
807
+ let t = null;
808
+ return (n, r) => {
809
+ let i = e.view();
810
+ if (!i || !e.mounted()) return null;
811
+ if (t?.state !== i.state) {
812
+ let n = i.state.facet(Le)(i.state);
813
+ t = {
814
+ state: i.state,
815
+ marks: n,
816
+ from: n.length ? e.from(i) : 0
817
+ };
818
+ }
819
+ if (!t.marks.length) return null;
820
+ let a = v(i.state.doc, t.from, n, r), o = e.raw(n, r);
821
+ return a == null ? null : zt(t.marks, a, o.length - o.trimStart().length, o.trim().length);
822
+ };
823
+ }
824
+ //#endregion
825
+ //#region src/inplace/context-menu-helpers.ts
826
+ var Kt = (e) => e === "h1" || e === "h2" || e === "h3" ? S.heading : S[e], qt = [
715
827
  "bold",
716
828
  "italic",
717
829
  "strike"
718
- ], Vt = ["code", "math"], Ht = [
830
+ ], Jt = ["code", "math"], Yt = [
719
831
  "bulletList",
720
832
  "orderedList",
721
833
  "task"
722
- ], Ut = [
834
+ ], Xt = [
723
835
  "h1",
724
836
  "h2",
725
837
  "h3"
726
- ], Wt = ["table", "hr"], Gt = [
838
+ ], Zt = ["table", "hr"], Qt = [
727
839
  "codeBlock",
728
840
  "mathBlock",
729
841
  "frontmatter"
730
- ], Kt = (e, t, n = !1) => {
842
+ ], $t = (e, t, n = !1) => {
731
843
  let r = g[t];
732
844
  if (!r) return null;
733
845
  let { disabled: i, active: a } = re(e.state, r, n);
734
846
  return {
735
847
  label: r.title,
736
- icon: zt(t),
848
+ icon: Kt(t),
737
849
  active: a,
738
850
  disabled: i,
739
851
  onSelect: () => {
740
852
  r.run(e), e.focus();
741
853
  }
742
854
  };
743
- }, U = (e, t, n = !1, r = !1) => {
855
+ }, W = (e, t, n = !1, r = !1) => {
744
856
  let i = [];
745
857
  for (let a of t) {
746
- let t = Kt(e, a, r);
858
+ let t = $t(e, a, r);
747
859
  t && !(n && t.disabled) && i.push(t);
748
860
  }
749
861
  return i;
750
- }, W = (e) => {
862
+ }, G = (e) => {
751
863
  let t = e.contentDOM.ownerDocument, n = (n) => () => {
752
864
  e.focus();
753
865
  try {
@@ -757,17 +869,17 @@ var H = (e, t) => (n) => {
757
869
  return [
758
870
  {
759
871
  label: "Cut",
760
- icon: b.cut,
872
+ icon: S.cut,
761
873
  onSelect: n("cut")
762
874
  },
763
875
  {
764
876
  label: "Copy",
765
- icon: b.copy,
877
+ icon: S.copy,
766
878
  onSelect: n("copy")
767
879
  },
768
880
  i ? {
769
881
  label: "Paste",
770
- icon: b.paste,
882
+ icon: S.paste,
771
883
  onSelect: () => {
772
884
  let n = h(e);
773
885
  n || e.focus(), r?.readText().then((r) => {
@@ -776,45 +888,45 @@ var H = (e, t) => (n) => {
776
888
  }
777
889
  } : {
778
890
  label: "Paste",
779
- icon: b.paste,
891
+ icon: S.paste,
780
892
  disabled: !0,
781
893
  title: "Paste with the keyboard shortcut",
782
894
  onSelect: () => {}
783
895
  }
784
896
  ];
785
- }, G = (e, t, n, r = !1) => ({
897
+ }, K = (e, t, n, r = !1) => ({
786
898
  label: e,
787
899
  icon: t,
788
900
  rows: n,
789
901
  disabled: r
790
902
  });
791
- function K(e, t) {
903
+ function q(e, t) {
792
904
  t.length && (e.length && e.push("separator"), e.push(...t));
793
905
  }
794
906
  //#endregion
795
907
  //#region src/inplace/edit-divider.ts
796
- function qt(e) {
908
+ function en(e) {
797
909
  let t = e.selection.main;
798
910
  if (!t.empty) return !1;
799
911
  let n = e.doc.lineAt(t.head);
800
- if (!B(e, n.number)) return !1;
801
- for (let t = j(e).resolveInner(n.from, 1); t; t = t.parent) {
912
+ if (!V(e, n.number)) return !1;
913
+ for (let t = N(e).resolveInner(n.from, 1); t; t = t.parent) {
802
914
  if (t.name === "HorizontalRule") return !0;
803
915
  if (!t.parent) break;
804
916
  }
805
917
  return !1;
806
918
  }
807
- var Jt = (e) => h(e) || !qt(e.state) ? !1 : se(e), Yt = k.high(D.of([{
919
+ var tn = (e) => h(e) || !en(e.state) ? !1 : oe(e), nn = j.high(ve.of([{
808
920
  key: "Backspace",
809
- run: Jt
921
+ run: tn
810
922
  }, {
811
923
  key: "Delete",
812
- run: Jt
924
+ run: tn
813
925
  }]));
814
- function Xt(e) {
926
+ function rn(e) {
815
927
  return {
816
928
  label: "Remove divider",
817
- icon: b.hr,
929
+ icon: S.hr,
818
930
  onSelect: () => {
819
931
  g.hr?.run(e), e.focus();
820
932
  }
@@ -822,66 +934,66 @@ function Xt(e) {
822
934
  }
823
935
  //#endregion
824
936
  //#region src/inplace/inline-md.ts
825
- function Zt(e, t = !1) {
937
+ function an(e, t = !1) {
826
938
  let n = document.createDocumentFragment();
827
- return en(n, e, t), n;
939
+ return cn(n, e, t), n;
828
940
  }
829
- var Qt = /!\[\[[^\]\n]+?\]\]/, $t = [
941
+ var on = /!\[\[[^\]\n]+?\]\]/, sn = [
830
942
  {
831
943
  re: /`([^`\n]+)`/,
832
- build: (e) => q("code", "cm-inplace-code", document.createTextNode(e[1]))
944
+ build: (e) => J("code", "cm-inplace-code", document.createTextNode(e[1]))
833
945
  },
834
946
  {
835
947
  re: new RegExp(Ye.source),
836
948
  build: (e) => {
837
- let t = q("span", "cm-inplace-math");
838
- return _e.render(e[1], t, { throwOnError: !1 }), t;
949
+ let t = J("span", "cm-inplace-math");
950
+ return he.render(e[1], t, { throwOnError: !1 }), t;
839
951
  }
840
952
  },
841
953
  {
842
954
  re: new RegExp(e.source),
843
955
  build: (e) => {
844
- let t = q("span", "cm-inplace-wikilink", document.createTextNode(e[2] || e[1] || ""));
956
+ let t = J("span", "cm-inplace-wikilink", document.createTextNode(e[2] || e[1] || ""));
845
957
  return t.dataset.styloWikilink = e[1] ?? "", t;
846
958
  }
847
959
  },
848
960
  {
849
961
  re: /\[([^\]\n]*)\]\(([^)\n]*)\)/,
850
962
  build: (e, t) => {
851
- let n = q("a", "cm-inplace-link");
852
- return n.href = e[2] ?? "", n.append(J(e[1] ?? "", t)), n;
963
+ let n = J("a", "cm-inplace-link");
964
+ return n.href = e[2] ?? "", n.append(Y(e[1] ?? "", t)), n;
853
965
  }
854
966
  },
855
967
  {
856
968
  re: /\*\*\*([^*\n]+?)\*\*\*/,
857
- build: (e, t) => q("strong", "cm-inplace-strong", q("em", "cm-inplace-em", J(e[1], t)))
969
+ build: (e, t) => J("strong", "cm-inplace-strong", J("em", "cm-inplace-em", Y(e[1], t)))
858
970
  },
859
971
  {
860
972
  re: /\*\*([^\n]+?)\*\*/,
861
- build: (e, t) => q("strong", "cm-inplace-strong", J(e[1], t))
973
+ build: (e, t) => J("strong", "cm-inplace-strong", Y(e[1], t))
862
974
  },
863
975
  {
864
976
  re: /~~([^\n]+?)~~/,
865
- build: (e, t) => q("span", "cm-inplace-strike", J(e[1], t))
977
+ build: (e, t) => J("span", "cm-inplace-strike", Y(e[1], t))
866
978
  },
867
979
  {
868
980
  re: /(?<!\*)\*(?!\*|\s)([^\n]+?)(?<!\s)\*(?!\*)/,
869
- build: (e, t) => q("em", "cm-inplace-em", J(e[1], t))
981
+ build: (e, t) => J("em", "cm-inplace-em", Y(e[1], t))
870
982
  }
871
983
  ];
872
- function q(e, t, ...n) {
984
+ function J(e, t, ...n) {
873
985
  let r = document.createElement(e);
874
986
  return r.className = t, r.append(...n), r;
875
987
  }
876
- function J(e, t) {
988
+ function Y(e, t) {
877
989
  let n = document.createDocumentFragment();
878
- return en(n, e, t), n;
990
+ return cn(n, e, t), n;
879
991
  }
880
- function en(e, t, n) {
992
+ function cn(e, t, n) {
881
993
  for (; t;) {
882
- let r = -1, i = null, a = n ? Qt.exec(t) : null;
994
+ let r = -1, i = null, a = n ? on.exec(t) : null;
883
995
  a && (r = a.index, i = { literal: a[0] });
884
- for (let e of $t) {
996
+ for (let e of sn) {
885
997
  let n = e.re.exec(t);
886
998
  n && (r < 0 || n.index < r) && (r = n.index, i = {
887
999
  rule: e,
@@ -897,7 +1009,7 @@ function en(e, t, n) {
897
1009
  }
898
1010
  //#endregion
899
1011
  //#region src/inplace/tables.ts
900
- var tn = class extends E {
1012
+ var ln = class extends k {
901
1013
  table;
902
1014
  embeds;
903
1015
  constructor(e, t) {
@@ -909,17 +1021,17 @@ var tn = class extends E {
909
1021
  toDOM() {
910
1022
  let { head: e, body: t, aligns: n } = this.table, r = document.createElement("table");
911
1023
  r.className = "cm-inplace-table";
912
- let i = (e) => Zt(e.replace(/\\\|/g, "|"), this.embeds), a = r.createTHead().insertRow();
1024
+ let i = (e) => an(e.replace(/\\\|/g, "|"), this.embeds), a = r.createTHead().insertRow();
913
1025
  e.forEach((e, t) => {
914
1026
  let r = document.createElement("th");
915
- r.appendChild(i(e)), r.dataset.styloRow = "0", r.dataset.styloCol = String(t), nn(r, n[t]), a.appendChild(r);
1027
+ r.appendChild(i(e)), r.dataset.styloRow = "0", r.dataset.styloCol = String(t), un(r, n[t]), a.appendChild(r);
916
1028
  });
917
1029
  let o = r.createTBody();
918
1030
  return t.forEach((t, r) => {
919
1031
  let a = o.insertRow();
920
1032
  for (let o = 0; o < e.length; o++) {
921
1033
  let e = a.insertCell();
922
- e.appendChild(i(t[o] ?? "")), e.dataset.styloRow = String(r + 1), e.dataset.styloCol = String(o), nn(e, n[o]);
1034
+ e.appendChild(i(t[o] ?? "")), e.dataset.styloRow = String(r + 1), e.dataset.styloCol = String(o), un(e, n[o]);
923
1035
  }
924
1036
  }), r;
925
1037
  }
@@ -927,10 +1039,10 @@ var tn = class extends E {
927
1039
  return !1;
928
1040
  }
929
1041
  };
930
- function nn(e, t) {
1042
+ function un(e, t) {
931
1043
  t && (e.style.textAlign = t);
932
1044
  }
933
- function rn(e, t) {
1045
+ function dn(e, t) {
934
1046
  let n = t.lineAt(e.from).number, r = t.lineAt(e.to).number, i = [];
935
1047
  for (let e = n; e <= r; e++) i.push(t.line(e).text);
936
1048
  let a = p(i);
@@ -940,17 +1052,17 @@ function rn(e, t) {
940
1052
  aligns: a.aligns
941
1053
  };
942
1054
  }
943
- function an(e, t) {
944
- let n = j(e);
1055
+ function fn(e, t) {
1056
+ let n = N(e);
945
1057
  for (let e of [-1, 1]) for (let r = n.resolveInner(t, e); r; r = r.parent) if (r.name === "Table") return !0;
946
1058
  return !1;
947
1059
  }
948
- function on(e, t) {
949
- return t.ranges.some((t) => an(e, t.from) || an(e, t.to));
1060
+ function pn(e, t) {
1061
+ return t.ranges.some((t) => fn(e, t.from) || fn(e, t.to));
950
1062
  }
951
- function sn(e) {
952
- if (!e.facet(M).tables) return C.none;
953
- let n = e.facet(P) === "cells" && !e.readOnly, r = e.facet(N) != null && e.facet(M).embeds, i = j(e), a = t(e.doc), o = n ? null : R(e), s = [];
1063
+ function mn(e) {
1064
+ if (!e.facet(P).tables) return E.none;
1065
+ let n = e.facet(I) === "cells" && !e.readOnly, r = e.facet(F) != null && e.facet(P).embeds, i = N(e), a = t(e.doc), o = n ? null : z(e), s = [];
954
1066
  return i.iterate({ enter: (t) => {
955
1067
  if (t.name !== "Table") return;
956
1068
  if (a && t.from < a.to) return !1;
@@ -958,34 +1070,34 @@ function sn(e) {
958
1070
  let n = e.doc.lineAt(t.from).number, r = e.doc.lineAt(t.to).number;
959
1071
  for (let e = n; e <= r; e++) if (o.has(e)) return !1;
960
1072
  }
961
- let i = rn(t.node, e.doc);
1073
+ let i = dn(t.node, e.doc);
962
1074
  if (i) {
963
- let e = n ? new Jn(i, r) : new tn(i, r);
964
- s.push(C.replace({
1075
+ let e = n ? new ur(i, r) : new ln(i, r);
1076
+ s.push(E.replace({
965
1077
  widget: e,
966
1078
  block: !0
967
1079
  }).range(t.from, t.to));
968
1080
  }
969
1081
  return !1;
970
- } }), C.set(s, !0);
1082
+ } }), E.set(s, !0);
971
1083
  }
972
- var Y = A.define({
973
- create: sn,
1084
+ var X = M.define({
1085
+ create: mn,
974
1086
  update: (e, t) => {
975
- if (t.annotation($)) return e.map(t.changes);
1087
+ if (t.annotation(cr)) return e.map(t.changes);
976
1088
  let n = t.startState.readOnly !== t.state.readOnly;
977
- return t.state.facet(P) === "cells" ? t.docChanged || n ? sn(t.state) : e.map(t.changes) : t.docChanged || n || t.selection && (on(t.state, t.startState.selection) || on(t.state, t.state.selection)) ? sn(t.state) : e;
1089
+ return t.state.facet(I) === "cells" ? t.docChanged || n ? mn(t.state) : e.map(t.changes) : t.docChanged || n || t.selection && (pn(t.state, t.startState.selection) || pn(t.state, t.state.selection)) ? mn(t.state) : e;
978
1090
  },
979
- provide: (e) => [w.decorations.from(e), w.atomicRanges.of((t) => t.state.field(e))]
1091
+ provide: (e) => [D.decorations.from(e), D.atomicRanges.of((t) => t.state.field(e))]
980
1092
  });
981
1093
  //#endregion
982
1094
  //#region src/inplace/host-cell.ts
983
- function cn(e, t, n) {
1095
+ function hn(e, t, n) {
984
1096
  let i = t.closest("table");
985
1097
  if (!i) return;
986
1098
  let a = e.posAtDOM(i), o = a;
987
- e.state.field(Y).between(a, a, (e) => (o = e, !1));
988
- let s = le(e.state.doc, o, Number(t.dataset.r), Number(t.dataset.c));
1099
+ e.state.field(X).between(a, a, (e) => (o = e, !1));
1100
+ let s = v(e.state.doc, o, Number(t.dataset.r), Number(t.dataset.c));
989
1101
  if (s == null) return;
990
1102
  let { from: c, to: l } = n ? r(t) : {
991
1103
  from: 0,
@@ -997,46 +1109,76 @@ function cn(e, t, n) {
997
1109
  } });
998
1110
  }
999
1111
  //#endregion
1112
+ //#region src/inplace/selection-rect.ts
1113
+ var gn = (e, t, n, r) => {
1114
+ let i = {
1115
+ x: e,
1116
+ y: t,
1117
+ left: e,
1118
+ top: t,
1119
+ right: n,
1120
+ bottom: r,
1121
+ width: n - e,
1122
+ height: r - t
1123
+ };
1124
+ return {
1125
+ ...i,
1126
+ toJSON: () => i
1127
+ };
1128
+ };
1129
+ function _n(e) {
1130
+ let { from: t, to: n } = e.state.selection.main, r = e.coordsAtPos(t), i = t === n ? r : e.coordsAtPos(n, -1);
1131
+ return !r || !i ? e.dom.getBoundingClientRect() : gn(Math.min(r.left, i.left), Math.min(r.top, i.top), Math.max(r.right, i.right), Math.max(r.bottom, i.bottom));
1132
+ }
1133
+ function vn(e, t) {
1134
+ let n = e?.ownerDocument.getSelection();
1135
+ if (e && t && n && n.rangeCount > 0) {
1136
+ let e = n.getRangeAt(0).getBoundingClientRect?.();
1137
+ if (e && (e.width > 0 || e.height > 0)) return e;
1138
+ }
1139
+ return e?.getBoundingClientRect() ?? gn(0, 0, 0, 0);
1140
+ }
1141
+ //#endregion
1000
1142
  //#region src/inplace/host-items.ts
1001
- var ln = /* @__PURE__ */ new WeakMap();
1002
- function un(e, t) {
1143
+ var yn = /* @__PURE__ */ new WeakMap();
1144
+ function bn(e, t) {
1003
1145
  if (e == null || typeof e == "string") return null;
1004
- if (ln.has(t)) return ln.get(t) ?? null;
1005
- let n = document.createElement("span"), r = Ae(n), i = null;
1146
+ if (yn.has(t)) return yn.get(t) ?? null;
1147
+ let n = document.createElement("span"), r = Oe(n), i = null;
1006
1148
  try {
1007
- Ce(() => r.render(e)), i = n.firstElementChild;
1149
+ xe(() => r.render(e)), i = n.firstElementChild;
1008
1150
  } catch {}
1009
- return r.unmount(), ln.set(t, i), i;
1010
- }
1011
- var dn = (e) => e.state.facet(L).includes("host"), fn = (e) => dn(e) && e.state.facet(Re)().some((e) => e.readOnlySafe);
1012
- function pn(e, t) {
1013
- if (!dn(e)) return [];
1014
- let n = e.state.readOnly, r = [];
1015
- for (let i of e.state.facet(Re)()) {
1016
- if (n && !i.readOnlySafe) continue;
1017
- let a = i.when ?? "always";
1018
- if (a === "selection" && !t.selected || a === "no-selection" && t.selected) continue;
1019
- let o = un(i.icon, i);
1151
+ return r.unmount(), yn.set(t, i), i;
1152
+ }
1153
+ var xn = (e) => e.state.facet(Re).includes("host"), Sn = (e) => xn(e) && e.state.facet(Ie)().some((e) => e.readOnlySafe);
1154
+ function Cn(e, t) {
1155
+ if (!xn(e)) return [];
1156
+ let n = e.state.readOnly, r = [], i;
1157
+ for (let a of e.state.facet(Ie)()) {
1158
+ if (n && !a.readOnlySafe) continue;
1159
+ let o = a.when ?? "always";
1160
+ if (o === "selection" && !t.selected || o === "no-selection" && t.selected) continue;
1161
+ let s = bn(a.icon, a);
1020
1162
  r.push({
1021
- id: i.id,
1022
- label: i.title,
1023
- icon: typeof i.icon == "string" ? i.icon : void 0,
1024
- iconNode: o ?? void 0,
1025
- disabled: i.disabled?.(e.state) ?? !1,
1163
+ id: a.id,
1164
+ label: a.title,
1165
+ icon: typeof a.icon == "string" ? a.icon : void 0,
1166
+ iconNode: s ?? void 0,
1167
+ disabled: a.disabled?.(e.state) ?? !1,
1026
1168
  onSelect: () => {
1027
- t.prepare?.(), i.run(e);
1169
+ t.prepare?.(), a.run(e, { rect: i });
1028
1170
  }
1029
1171
  });
1030
1172
  }
1031
- return r;
1173
+ return r.length && (i = t.rect?.() ?? _n(e)), r;
1032
1174
  }
1033
1175
  //#endregion
1034
1176
  //#region src/inplace/link-row.ts
1035
- var mn = (e) => {
1177
+ var wn = (e) => {
1036
1178
  let t = e.trim().replace(/^<([^]*)>$/, "$1");
1037
1179
  return /[\s()]/.test(t) ? `<${t.replace(/[<>]/g, "")}>` : t;
1038
- }, hn = (e) => e.replace(/^<([^]*)>$/, "$1");
1039
- function gn(e, t) {
1180
+ }, Tn = (e) => e.replace(/^<([^]*)>$/, "$1");
1181
+ function En(e, t) {
1040
1182
  let n = e.doc.lineAt(t.from);
1041
1183
  if (e.doc.lineAt(t.to).number !== n.number) return null;
1042
1184
  let r = t.from - n.from, i = t.to - n.from, s = o(n.text, r) ?? o(n.text, i);
@@ -1052,7 +1194,7 @@ function gn(e, t) {
1052
1194
  text: c.label
1053
1195
  } : null;
1054
1196
  }
1055
- function _n(e, t) {
1197
+ function Dn(e, t) {
1056
1198
  let { state: n } = e, r = n.selection.main, i = n.doc.lineAt(r.head), a = t.partsIn(i.text, r.head - i.from);
1057
1199
  if (a) {
1058
1200
  let n = i.from + a.from, r = i.from + a.to, o = t.editActions?.(e, a) ?? [];
@@ -1081,7 +1223,7 @@ function _n(e, t) {
1081
1223
  actions: o
1082
1224
  };
1083
1225
  }
1084
- let o = gn(n, r), s = o ? o.from : r.from, c = o ? o.to : r.to, l = o ? o.text : n.sliceDoc(r.from, r.to);
1226
+ let o = En(n, r), s = o ? o.from : r.from, c = o ? o.to : r.to, l = o ? o.text : n.sliceDoc(r.from, r.to);
1085
1227
  return {
1086
1228
  field: !0,
1087
1229
  label: t.addLabel,
@@ -1091,18 +1233,18 @@ function _n(e, t) {
1091
1233
  onSubmit: (n) => t.onAdd(e, s, c, l, n)
1092
1234
  };
1093
1235
  }
1094
- var vn = {
1095
- icon: b.link,
1236
+ var On = {
1237
+ icon: S.link,
1096
1238
  placeholder: "https://…",
1097
1239
  editLabel: "Edit external link",
1098
1240
  addLabel: "Add external link",
1099
1241
  partsIn: o,
1100
- editValue: (e) => hn(e.url),
1242
+ editValue: (e) => Tn(e.url),
1101
1243
  editActions: (e, t) => {
1102
- let n = e.state.facet(Pe);
1244
+ let n = e.state.facet(Me);
1103
1245
  return !n || !t.url ? [] : [{
1104
1246
  label: "Open link",
1105
- icon: b.link,
1247
+ icon: S.link,
1106
1248
  onSelect: () => n(t.url)
1107
1249
  }];
1108
1250
  },
@@ -1110,7 +1252,7 @@ var vn = {
1110
1252
  e.dispatch({ changes: {
1111
1253
  from: t.urlFrom,
1112
1254
  to: t.urlTo,
1113
- insert: mn(n)
1255
+ insert: wn(n)
1114
1256
  } }), e.focus();
1115
1257
  },
1116
1258
  onAdd: (e, t, n, r, i) => {
@@ -1119,7 +1261,7 @@ var vn = {
1119
1261
  changes: {
1120
1262
  from: t,
1121
1263
  to: n,
1122
- insert: `[${a}](${mn(i)})`
1264
+ insert: `[${a}](${wn(i)})`
1123
1265
  },
1124
1266
  selection: {
1125
1267
  anchor: t + 1,
@@ -1127,8 +1269,8 @@ var vn = {
1127
1269
  }
1128
1270
  }), e.focus();
1129
1271
  }
1130
- }, yn = {
1131
- icon: b.wikilink,
1272
+ }, kn = {
1273
+ icon: S.wikilink,
1132
1274
  placeholder: "note or path",
1133
1275
  editLabel: "Edit link",
1134
1276
  addLabel: "Add link",
@@ -1156,27 +1298,27 @@ var vn = {
1156
1298
  }), e.focus();
1157
1299
  }
1158
1300
  };
1159
- function bn(e) {
1160
- return _n(e, vn);
1301
+ function An(e) {
1302
+ return Dn(e, On);
1161
1303
  }
1162
- function xn(e) {
1163
- return _n(e, yn);
1304
+ function jn(e) {
1305
+ return Dn(e, kn);
1164
1306
  }
1165
1307
  //#endregion
1166
1308
  //#region src/inplace/context-menu-shell.ts
1167
- function Sn(e, t, n, r) {
1309
+ function Mn(e, t, n, r) {
1168
1310
  let i = r?.innerWidth ?? 0, a = r?.innerHeight ?? 0;
1169
1311
  e.style.left = "0", e.style.top = "0";
1170
1312
  let { width: o, height: s } = e.getBoundingClientRect();
1171
1313
  e.style.left = `${Math.max(4, Math.min(t, i - o - 4))}px`, e.style.top = `${Math.max(4, Math.min(n, a - s - 4))}px`;
1172
1314
  }
1173
- function Cn(e, t, n) {
1315
+ function Nn(e, t, n) {
1174
1316
  let r = n?.innerWidth ?? 0, i = n?.innerHeight ?? 0;
1175
1317
  e.style.left = "0", e.style.top = "0";
1176
1318
  let { width: a, height: o } = e.getBoundingClientRect(), s = t.right - 4, c = s + a > r - 4 ? t.left - a + 4 : s;
1177
1319
  e.style.left = `${Math.max(4, c)}px`, e.style.top = `${Math.max(4, Math.min(t.top - 4, i - o - 4))}px`;
1178
1320
  }
1179
- function wn(e, t, n, r = 350) {
1321
+ function Pn(e, t, n, r = 350) {
1180
1322
  let i = Date.now(), a = (e) => !t.contains(e.target), o = (e) => {
1181
1323
  a(e) && n();
1182
1324
  }, s = (e) => {
@@ -1190,10 +1332,10 @@ function wn(e, t, n, r = 350) {
1190
1332
  }
1191
1333
  //#endregion
1192
1334
  //#region src/inplace/context-menu-types.ts
1193
- var Tn = (e) => typeof e != "string" && "rows" in e, En = (e) => typeof e != "string" && "field" in e;
1335
+ var Fn = (e) => typeof e != "string" && "rows" in e, In = (e) => typeof e != "string" && "field" in e;
1194
1336
  //#endregion
1195
1337
  //#region src/inplace/context-menu.ts
1196
- function X(e, t = "cm-inplace-menu", n) {
1338
+ function Z(e, t = "cm-inplace-menu", n) {
1197
1339
  let r = e.defaultView, i = e.createElement("div");
1198
1340
  i.className = t, i.setAttribute("contenteditable", "false"), i.hidden = !0;
1199
1341
  let a = null, o = null, s = () => {
@@ -1203,7 +1345,7 @@ function X(e, t = "cm-inplace-menu", n) {
1203
1345
  }, l = (e) => e.addEventListener("mousedown", (e) => {
1204
1346
  e.preventDefault(), e.stopPropagation();
1205
1347
  }), u = (t, n, r, i) => {
1206
- i ? t.appendChild(i.cloneNode(!0)) : r && t.appendChild(fe(e, r));
1348
+ i ? t.appendChild(i.cloneNode(!0)) : r && t.appendChild(ue(e, r));
1207
1349
  let a = e.createElement("span");
1208
1350
  a.textContent = n, t.appendChild(a);
1209
1351
  }, d = (n) => {
@@ -1221,7 +1363,7 @@ function X(e, t = "cm-inplace-menu", n) {
1221
1363
  if (a?.dataset.for === n) return;
1222
1364
  s();
1223
1365
  let e = c();
1224
- e.dataset.for = n, i.appendChild(e), Cn(e, f.getBoundingClientRect(), r), a = e, e.querySelector("input")?.focus({ preventScroll: !0 });
1366
+ e.dataset.for = n, i.appendChild(e), Nn(e, f.getBoundingClientRect(), r), a = e, e.querySelector("input")?.focus({ preventScroll: !0 });
1225
1367
  };
1226
1368
  return f.addEventListener("pointerenter", p), f.addEventListener("click", (e) => {
1227
1369
  e.stopPropagation(), p();
@@ -1244,7 +1386,7 @@ function X(e, t = "cm-inplace-menu", n) {
1244
1386
  for (let i of n) if (i === "separator") {
1245
1387
  let n = e.createElement("div");
1246
1388
  n.className = `${t}-sep`, r.appendChild(n);
1247
- } else Tn(i) ? r.appendChild(f(i.label, i.icon, () => m(i.rows), i.disabled)) : En(i) ? r.appendChild(f(i.label, i.icon, () => p(i))) : r.appendChild(d(i));
1389
+ } else Fn(i) ? r.appendChild(f(i.label, i.icon, () => m(i.rows), i.disabled)) : In(i) ? r.appendChild(f(i.label, i.icon, () => p(i))) : r.appendChild(d(i));
1248
1390
  return r;
1249
1391
  };
1250
1392
  return {
@@ -1255,12 +1397,12 @@ function X(e, t = "cm-inplace-menu", n) {
1255
1397
  show: (t, a, s) => {
1256
1398
  c();
1257
1399
  let l = m(t);
1258
- i.appendChild(l), i.hidden = !1, Sn(l, a, s, r), o = wn(e, i, c), n?.(!0);
1400
+ i.appendChild(l), i.hidden = !1, Mn(l, a, s, r), o = Pn(e, i, c), n?.(!0);
1259
1401
  },
1260
1402
  showField: (t, a, s) => {
1261
1403
  c();
1262
1404
  let l = p(t);
1263
- i.appendChild(l), i.hidden = !1, Sn(l, a, s, r), l.querySelector("input")?.focus({ preventScroll: !0 }), o = wn(e, i, c), n?.(!0);
1405
+ i.appendChild(l), i.hidden = !1, Mn(l, a, s, r), l.querySelector("input")?.focus({ preventScroll: !0 }), o = Pn(e, i, c), n?.(!0);
1264
1406
  },
1265
1407
  hide: c,
1266
1408
  destroy: () => {
@@ -1270,14 +1412,14 @@ function X(e, t = "cm-inplace-menu", n) {
1270
1412
  }
1271
1413
  //#endregion
1272
1414
  //#region src/inplace/math-edit.ts
1273
- function Dn(e) {
1415
+ function Ln(e) {
1274
1416
  let { state: t } = e, n = t.selection.main, r = t.doc.lineAt(n.head), i = Qe(r.text, n.head - r.from);
1275
1417
  if (i) {
1276
1418
  let t = r.from + i.from, n = r.from + i.to, a = i.block ? "$$" : "$";
1277
1419
  return {
1278
1420
  field: !0,
1279
1421
  label: "Edit math",
1280
- icon: b.math,
1422
+ icon: S.math,
1281
1423
  value: i.src,
1282
1424
  placeholder: "e^{i\\pi} + 1 = 0",
1283
1425
  onSubmit: (r) => {
@@ -1310,7 +1452,7 @@ function Dn(e) {
1310
1452
  return {
1311
1453
  field: !0,
1312
1454
  label: "Add math",
1313
- icon: b.math,
1455
+ icon: S.math,
1314
1456
  value: "",
1315
1457
  placeholder: "e^{i\\pi} + 1 = 0",
1316
1458
  onSubmit: (t) => {
@@ -1329,26 +1471,26 @@ function Dn(e) {
1329
1471
  }
1330
1472
  };
1331
1473
  }
1332
- var On = class {
1474
+ var Rn = class {
1333
1475
  menu;
1334
1476
  contentDOM;
1335
1477
  onClick;
1336
1478
  constructor(e) {
1337
- this.menu = X(e.dom.ownerDocument), e.dom.appendChild(this.menu.el), this.contentDOM = e.contentDOM, this.onClick = (t) => {
1338
- if (!e.state.facet(M).math) return;
1479
+ this.menu = Z(e.dom.ownerDocument), e.dom.appendChild(this.menu.el), this.contentDOM = e.contentDOM, this.onClick = (t) => {
1480
+ if (!e.state.facet(P).math) return;
1339
1481
  let n = t.target?.closest(".cm-inplace-math");
1340
1482
  if (!n) return;
1341
1483
  let r = e.posAtDOM(n);
1342
1484
  if (r < 0) return;
1343
1485
  let i = e.state.doc.lineAt(r);
1344
- Qe(i.text, r - i.from) && (e.dispatch({ selection: { anchor: r } }), this.menu.showField(Dn(e), t.clientX, t.clientY));
1486
+ Qe(i.text, r - i.from) && (e.dispatch({ selection: { anchor: r } }), this.menu.showField(Ln(e), t.clientX, t.clientY));
1345
1487
  }, this.contentDOM.addEventListener("click", this.onClick);
1346
1488
  }
1347
1489
  destroy() {
1348
1490
  this.contentDOM.removeEventListener("click", this.onClick), this.menu.destroy();
1349
1491
  }
1350
- }, kn = T.fromClass(On), An = be((e, t) => {
1351
- if (!e.state.facet(M).math) return null;
1492
+ }, zn = O.fromClass(Rn), Bn = _e((e, t) => {
1493
+ if (!e.state.facet(P).math) return null;
1352
1494
  let n = e.state.doc.lineAt(t), r = Qe(n.text, t - n.from);
1353
1495
  return r ? {
1354
1496
  pos: n.from + r.from,
@@ -1362,18 +1504,18 @@ var On = class {
1362
1504
  });
1363
1505
  //#endregion
1364
1506
  //#region src/inplace/context-menu-actions.ts
1365
- function Z(e) {
1507
+ function Vn(e) {
1366
1508
  let t = h(e);
1367
1509
  if (!t) return !1;
1368
1510
  let { from: n, to: i } = r(t);
1369
1511
  return i > n;
1370
1512
  }
1371
- function jn(e) {
1513
+ function Hn(e) {
1372
1514
  let t = ie(e.state);
1373
1515
  return {
1374
1516
  field: !0,
1375
1517
  label: "Language",
1376
- icon: b.codeBlock,
1518
+ icon: S.codeBlock,
1377
1519
  value: t?.lang ?? "",
1378
1520
  placeholder: "ts, python, …",
1379
1521
  onSubmit: (n) => {
@@ -1391,48 +1533,49 @@ function jn(e) {
1391
1533
  }]
1392
1534
  };
1393
1535
  }
1394
- var Mn = (e, t = !1) => [
1395
- ...U(e, Bt, !1, t),
1536
+ var Un = (e, t = !1) => [
1537
+ ...W(e, qt, !1, t),
1396
1538
  "separator",
1397
- ...t ? U(e, Vt, !1, !0) : [Kt(e, "code", !1), Dn(e)]
1539
+ ...t ? W(e, Jt, !1, !0) : [$t(e, "code", !1), Ln(e)]
1398
1540
  ];
1399
- function Nn(e, t) {
1400
- let n = e.state.facet(L), r = t ?? h(e), i = Z(e) && r === h(e), a = [];
1401
- return K(a, pn(e, {
1541
+ function Wn(e, t) {
1542
+ let n = e.state.facet(Re), r = t ?? h(e), i = Vn(e) && r === h(e), a = [];
1543
+ return q(a, Cn(e, {
1402
1544
  selected: i,
1403
- prepare: () => r && cn(e, r, i)
1404
- })), i ? (n.includes("format") && K(a, [G("Format", b.format, Mn(e, !0))]), n.includes("clipboard") && K(a, W(e)), a) : a;
1545
+ prepare: () => r && hn(e, r, i),
1546
+ rect: () => vn(r, i)
1547
+ })), i ? (n.includes("format") && q(a, [K("Format", S.format, Un(e, !0))]), n.includes("clipboard") && q(a, G(e)), a) : a;
1405
1548
  }
1406
- var Pn = (e) => [
1407
- ...U(e, Ht),
1549
+ var Gn = (e) => [
1550
+ ...W(e, Yt),
1408
1551
  "separator",
1409
- ...U(e, [...Ut, "body"]),
1552
+ ...W(e, [...Xt, "body"]),
1410
1553
  "separator",
1411
- ...U(e, ["quote"])
1412
- ], Fn = (e) => [
1413
- ...U(e, Wt),
1554
+ ...W(e, ["quote"])
1555
+ ], Kn = (e) => [
1556
+ ...W(e, Zt),
1414
1557
  "separator",
1415
- ...U(e, Gt)
1558
+ ...W(e, Qt)
1416
1559
  ];
1417
- function In(e) {
1418
- let { state: t } = e, n = t.facet(L), r = (e) => n.includes(e);
1419
- if (Z(e)) return Nn(e);
1420
- let i = pn(e, { selected: !t.selection.main.empty });
1560
+ function qn(e) {
1561
+ let { state: t } = e, n = t.facet(Re), r = (e) => n.includes(e);
1562
+ if (Vn(e)) return Wn(e);
1563
+ let i = Cn(e, { selected: !t.selection.main.empty });
1421
1564
  if (ee(t)) {
1422
1565
  let t = [];
1423
- return K(t, i), K(t, [jn(e)]), r("clipboard") && K(t, W(e)), t;
1566
+ return q(t, i), q(t, [Hn(e)]), r("clipboard") && q(t, G(e)), t;
1424
1567
  }
1425
- if (qt(t)) {
1568
+ if (en(t)) {
1426
1569
  let t = [];
1427
- return K(t, i), K(t, [Xt(e)]), r("clipboard") && K(t, W(e)), t;
1570
+ return q(t, i), q(t, [rn(e)]), r("clipboard") && q(t, G(e)), t;
1428
1571
  }
1429
1572
  let a = t.selection.main, o = t.doc.lineAt(a.head).text.trim() === "", s = !a.empty || !!t.wordAt(a.head), c = t.facet(Ve) === "menu", l = [];
1430
- for (let t of n) t === "host" ? K(l, i) : t === "link" && c ? K(l, [xn(e), bn(e)]) : t === "format" && c ? K(l, [G("Format", b.format, Mn(e), !s)]) : t === "paragraph" ? K(l, [G("Paragraph", b.paragraph, Pn(e))]) : t === "insert" ? K(l, [G("Insert", b.insert, Fn(e), !o)]) : t === "clipboard" && K(l, W(e));
1573
+ for (let t of n) t === "host" ? q(l, i) : t === "link" && c ? q(l, [jn(e), An(e)]) : t === "format" && c ? q(l, [K("Format", S.format, Un(e), !s)]) : t === "paragraph" ? q(l, [K("Paragraph", S.paragraph, Gn(e))]) : t === "insert" ? q(l, [K("Insert", S.insert, Kn(e), !o)]) : t === "clipboard" && q(l, G(e));
1431
1574
  return l;
1432
1575
  }
1433
1576
  //#endregion
1434
1577
  //#region src/inplace/long-press.ts
1435
- function Ln(e, t) {
1578
+ function Jn(e, t) {
1436
1579
  let n = t.delay ?? 450, r = t.slop ?? 20, i = null, a = 0, o = 0, s = () => {
1437
1580
  i != null && (clearTimeout(i), i = null);
1438
1581
  }, c = (e) => {
@@ -1454,10 +1597,10 @@ function Ln(e, t) {
1454
1597
  }
1455
1598
  //#endregion
1456
1599
  //#region src/inplace/table-gizmos.ts
1457
- function Rn(e, t) {
1600
+ function Yn(e, t) {
1458
1601
  let n = e.createElement("div");
1459
1602
  n.className = "cm-inplace-table-gizmos", n.setAttribute("contenteditable", "false");
1460
- let r = X(e), i = (t, n, r) => {
1603
+ let r = Z(e), i = (t, n, r) => {
1461
1604
  let i = e.createElement("button");
1462
1605
  return i.type = "button", i.className = t, i.setAttribute("aria-label", n), i.addEventListener("mousedown", (e) => {
1463
1606
  e.preventDefault(), e.stopPropagation();
@@ -1540,7 +1683,7 @@ function Rn(e, t) {
1540
1683
  }
1541
1684
  //#endregion
1542
1685
  //#region src/inplace/table-widget-keys.ts
1543
- function zn(e, t, n) {
1686
+ function Xn(e, t, n) {
1544
1687
  let r = e.target.closest("td, th");
1545
1688
  if (!r) return;
1546
1689
  if (l(e, r)) {
@@ -1609,65 +1752,75 @@ function zn(e, t, n) {
1609
1752
  }
1610
1753
  //#endregion
1611
1754
  //#region src/inplace/table-widget-render.ts
1612
- function Bn(e, t, n) {
1755
+ var Zn = /* @__PURE__ */ new WeakMap(), Qn = (e) => JSON.stringify(e), $n = (e, t) => (Zn.get(e)?.sig ?? "null") === Qn(t);
1756
+ function er(e, t, n) {
1613
1757
  let r = Number(e.dataset.r), i = Number(e.dataset.c), a = t.rows[r]?.[i] ?? "";
1614
- e.replaceChildren(n ? e.ownerDocument.createTextNode(a) : Zt(c(a), t.embeds));
1758
+ e.replaceChildren(n ? e.ownerDocument.createTextNode(a) : an(c(a), t.embeds));
1759
+ let o = Zn.get(e);
1760
+ o && e.classList.remove(...o.cellClass);
1761
+ let s = t.paintOf?.(r, i) ?? null;
1762
+ s && (Wt(e, a, s, n), e.classList.add(...s.cellClass)), Zn.set(e, {
1763
+ sig: Qn(s),
1764
+ cellClass: s?.cellClass ?? []
1765
+ });
1615
1766
  }
1616
- function Vn(e, t, n, r) {
1767
+ function tr(e, t, n, r) {
1617
1768
  let i = document.createElement(r ? "th" : "td");
1618
1769
  i.className = "cm-inplace-tcell", i.setAttribute("contenteditable", "true"), i.dataset.r = String(t), i.dataset.c = String(n);
1619
1770
  let a = e.aligns[n];
1620
- return a && (i.style.textAlign = a), Bn(i, e, !1), i;
1771
+ return a && (i.style.textAlign = a), er(i, e, !1), i;
1621
1772
  }
1622
- function Hn(e, t) {
1773
+ function nr(e, t) {
1623
1774
  e.replaceChildren();
1624
1775
  let n = t.aligns.length, r = e.createTHead().insertRow();
1625
- for (let e = 0; e < n; e++) r.appendChild(Vn(t, 0, e, !0));
1776
+ for (let e = 0; e < n; e++) r.appendChild(tr(t, 0, e, !0));
1626
1777
  let i = e.createTBody();
1627
1778
  for (let e = 1; e < t.rows.length; e++) {
1628
1779
  let r = i.insertRow();
1629
- for (let i = 0; i < n; i++) r.appendChild(Vn(t, e, i, !1));
1780
+ for (let i = 0; i < n; i++) r.appendChild(tr(t, e, i, !1));
1630
1781
  }
1631
1782
  }
1632
1783
  //#endregion
1633
1784
  //#region src/inplace/table-structure.ts
1634
1785
  var Q = (e) => e.aligns.length;
1635
- function Un(e, t) {
1786
+ function rr(e, t) {
1636
1787
  let n = Math.max(0, Math.min(t, Q(e)));
1637
1788
  for (let t of e.rows) t.splice(n, 0, "");
1638
1789
  e.aligns.splice(n, 0, "");
1639
1790
  }
1640
- function Wn(e, t) {
1791
+ function ir(e, t) {
1641
1792
  if (!(Q(e) <= 1 || t < 0 || t >= Q(e))) {
1642
1793
  for (let n of e.rows) n.splice(t, 1);
1643
1794
  e.aligns.splice(t, 1);
1644
1795
  }
1645
1796
  }
1646
- function Gn(e, t) {
1797
+ function ar(e, t) {
1647
1798
  let n = Math.max(1, Math.min(t, e.rows.length));
1648
1799
  e.rows.splice(n, 0, Array(Q(e)).fill(""));
1649
1800
  }
1650
- function Kn(e, t) {
1801
+ function or(e, t) {
1651
1802
  t <= 0 || t >= e.rows.length || e.rows.length <= 2 || e.rows.splice(t, 1);
1652
1803
  }
1653
- function qn(e, t, n) {
1804
+ function sr(e, t, n) {
1654
1805
  t >= 0 && t < Q(e) && (e.aligns[t] = n);
1655
1806
  }
1656
1807
  //#endregion
1657
1808
  //#region src/inplace/table-widget.ts
1658
- var $ = we.define(), Jn = class extends E {
1809
+ var cr = Se.define(), lr = /* @__PURE__ */ new WeakMap(), ur = class extends k {
1659
1810
  data;
1660
1811
  embeds;
1661
1812
  table = null;
1813
+ view = null;
1662
1814
  rows;
1663
1815
  editing = null;
1664
1816
  syncing = !1;
1665
1817
  pendingOffset = null;
1818
+ pressOnMark = !1;
1666
1819
  gizmos = null;
1667
1820
  longPress = null;
1668
1821
  longPressAt = 0;
1669
1822
  constructor(e, t = !1) {
1670
- super(), this.data = e, this.embeds = t, this.rows = v(e);
1823
+ super(), this.data = e, this.embeds = t, this.rows = le(e);
1671
1824
  }
1672
1825
  eq(e) {
1673
1826
  return !this.table && JSON.stringify(y(this.rows)) === JSON.stringify(y(e.rows));
@@ -1680,7 +1833,7 @@ var $ = we.define(), Jn = class extends E {
1680
1833
  }
1681
1834
  bounds(e) {
1682
1835
  let t = e.posAtDOM(this.table), n = null;
1683
- return e.state.field(Y).between(t, t, (e, t) => (n = {
1836
+ return e.state.field(X).between(t, t, (e, t) => (n = {
1684
1837
  from: e,
1685
1838
  to: t
1686
1839
  }, !1)), n ?? e.state.doc.lineAt(t);
@@ -1694,22 +1847,34 @@ var $ = we.define(), Jn = class extends E {
1694
1847
  c: Number(e.dataset.c)
1695
1848
  };
1696
1849
  }
1697
- paint(e, t) {
1698
- Bn(e, {
1850
+ paintOf = Gt({
1851
+ view: () => this.view,
1852
+ mounted: () => !!this.table?.isConnected,
1853
+ from: (e) => this.bounds(e).from,
1854
+ raw: (e, t) => this.rows[e]?.[t] ?? ""
1855
+ });
1856
+ grid() {
1857
+ return {
1699
1858
  rows: this.rows,
1700
1859
  aligns: this.data.aligns,
1701
- embeds: this.embeds
1702
- }, t);
1860
+ embeds: this.embeds,
1861
+ paintOf: this.paintOf
1862
+ };
1863
+ }
1864
+ paint(e, t) {
1865
+ er(e, this.grid(), t);
1866
+ }
1867
+ repaintMarks() {
1868
+ for (let e of this.table?.querySelectorAll("td, th") ?? []) {
1869
+ let { r: t, c: n } = this.coords(e);
1870
+ e !== this.editing && !$n(e, this.paintOf(t, n)) && this.paint(e, !1);
1871
+ }
1703
1872
  }
1704
1873
  renderCells() {
1705
- Hn(this.table, {
1706
- rows: this.rows,
1707
- aligns: this.data.aligns,
1708
- embeds: this.embeds
1709
- });
1874
+ nr(this.table, this.grid());
1710
1875
  }
1711
1876
  appendRow() {
1712
- Gn(this.model(), this.rows.length), this.renderCells(), this.gizmos?.layout(this.table);
1877
+ ar(this.model(), this.rows.length), this.renderCells(), this.gizmos?.layout(this.table);
1713
1878
  }
1714
1879
  model() {
1715
1880
  return {
@@ -1720,7 +1885,7 @@ var $ = we.define(), Jn = class extends E {
1720
1885
  runOp(e, t) {
1721
1886
  if (!this.table) return;
1722
1887
  let n = this.model();
1723
- if (t.kind === "insertColumn" ? Un(n, t.at) : t.kind === "deleteColumn" ? Wn(n, t.at) : t.kind === "insertRow" ? Gn(n, t.at) : t.kind === "deleteRow" ? Kn(n, t.at) : qn(n, t.at, n.aligns[t.at] === t.value ? "" : t.value), this.editing = null, this.sync(e), this.renderCells(), this.gizmos?.layout(this.table), t.kind !== "align") {
1888
+ if (t.kind === "insertColumn" ? rr(n, t.at) : t.kind === "deleteColumn" ? ir(n, t.at) : t.kind === "insertRow" ? ar(n, t.at) : t.kind === "deleteRow" ? or(n, t.at) : sr(n, t.at, n.aligns[t.at] === t.value ? "" : t.value), this.editing = null, this.sync(e), this.renderCells(), this.gizmos?.layout(this.table), t.kind !== "align") {
1724
1889
  let e = Math.max(0, Math.min(t.focus[0], this.rows.length - 1)), n = Math.max(0, Math.min(t.focus[1], this.cols() - 1));
1725
1890
  this.cellAt(e, n)?.focus();
1726
1891
  }
@@ -1731,9 +1896,18 @@ var $ = we.define(), Jn = class extends E {
1731
1896
  }
1732
1897
  onFocusIn(e) {
1733
1898
  let t = e.target.closest("td, th");
1734
- if (!t || t === this.editing) return;
1735
- let n = this.pendingOffset ?? ue(t);
1736
- this.pendingOffset = null, this.editing && this.finish(this.editing, !1), this.editing = t, this.paint(t, !0), d(t, n);
1899
+ if (!(!t || t === this.editing)) {
1900
+ if (this.pressOnMark) {
1901
+ this.pressOnMark = !1, document.addEventListener("mouseup", () => setTimeout(() => this.enterCell(t)), { once: !0 });
1902
+ return;
1903
+ }
1904
+ this.enterCell(t);
1905
+ }
1906
+ }
1907
+ enterCell(e) {
1908
+ if (!this.table?.contains(e) || e === this.editing) return;
1909
+ let t = this.pendingOffset ?? b(e);
1910
+ this.pendingOffset = null, this.editing && this.finish(this.editing, !1), this.editing = e, this.paint(e, !0), d(e, t);
1737
1911
  }
1738
1912
  onFocusOut(e) {
1739
1913
  if (this.syncing || !this.editing) return;
@@ -1766,14 +1940,14 @@ var $ = we.define(), Jn = class extends E {
1766
1940
  to: i,
1767
1941
  insert: n
1768
1942
  },
1769
- annotations: $.of(!0),
1943
+ annotations: cr.of(!0),
1770
1944
  userEvent: "input"
1771
1945
  }), this.syncing = !1, t && (this.writeCaret(t), requestAnimationFrame(() => {
1772
1946
  this.table && t && this.writeCaret(t);
1773
1947
  })));
1774
1948
  }
1775
1949
  onKey(e, t) {
1776
- this.table && zn(e, t, {
1950
+ this.table && Xn(e, t, {
1777
1951
  coords: (e) => this.coords(e),
1778
1952
  rows: () => this.rows.length,
1779
1953
  cols: () => this.cols(),
@@ -1796,18 +1970,22 @@ var $ = we.define(), Jn = class extends E {
1796
1970
  openCellMenuAt(e, t, n, r) {
1797
1971
  let i = r?.closest("td, th");
1798
1972
  if (!i) return;
1799
- this.editing === i && !Z(e) && s(i, t, n);
1800
- let a = Nn(e, i);
1973
+ this.editing === i && !Vn(e) && s(i, t, n);
1974
+ let a = Wn(e, i);
1801
1975
  this.gizmos?.openFor(i, t, n, a);
1802
1976
  }
1803
1977
  toDOM(e) {
1804
1978
  let t = document.createElement("div");
1805
1979
  t.className = "cm-inplace-table-wrap";
1806
1980
  let n = document.createElement("table");
1807
- this.table = n, this.editing = null, n.className = "cm-inplace-table cm-inplace-table-edit", this.renderCells(), n.addEventListener("mousedown", (e) => {
1981
+ this.table = n, this.view = e, this.editing = null, lr.set(n, this), n.className = "cm-inplace-table cm-inplace-table-edit", this.renderCells(), e.requestMeasure({
1982
+ read: () => null,
1983
+ write: () => this.repaintMarks(),
1984
+ key: this
1985
+ }), n.addEventListener("mousedown", (e) => {
1808
1986
  e.stopPropagation();
1809
1987
  let t = e.target.closest("td, th");
1810
- this.pendingOffset = t && t !== this.editing ? de(t, e.clientX, e.clientY) : null;
1988
+ this.pendingOffset = t && t !== this.editing ? x(t, e.clientX, e.clientY) : null, this.pressOnMark = !!e.target.closest("[data-stylo-cell-mark]");
1811
1989
  }), n.addEventListener("focusin", (e) => this.onFocusIn(e)), n.addEventListener("focusout", (e) => this.onFocusOut(e));
1812
1990
  let r = (t) => {
1813
1991
  t && (this.editing = t, this.finish(t, !0), this.sync(e));
@@ -1820,9 +1998,9 @@ var $ = we.define(), Jn = class extends E {
1820
1998
  document.execCommand("insertText", !1, t);
1821
1999
  }), n.addEventListener("contextmenu", (t) => {
1822
2000
  t.target.closest("td, th") && (t.preventDefault(), t.stopPropagation(), this.longPress?.cancel(), !(Date.now() - this.longPressAt < 700) && this.openCellMenuAt(e, t.clientX, t.clientY, t.target));
1823
- }), this.longPress = Ln(n, { onLongPress: (t, n, r) => {
2001
+ }), this.longPress = Jn(n, { onLongPress: (t, n, r) => {
1824
2002
  this.longPressAt = Date.now(), this.openCellMenuAt(e, t, n, r);
1825
- } }), this.gizmos = Rn(document, {
2003
+ } }), this.gizmos = Yn(document, {
1826
2004
  dims: () => ({
1827
2005
  cols: this.cols(),
1828
2006
  rows: this.rows.length,
@@ -1832,14 +2010,14 @@ var $ = we.define(), Jn = class extends E {
1832
2010
  }), t.append(n, this.gizmos.el), t.addEventListener("mouseenter", () => this.gizmos?.layout(n)), requestAnimationFrame(() => this.gizmos?.layout(n)), t;
1833
2011
  }
1834
2012
  destroy() {
1835
- this.longPress?.dispose(), this.longPress = null, this.gizmos?.destroy(), this.gizmos = null, this.table = null, this.editing = null;
2013
+ this.longPress?.dispose(), this.longPress = null, this.gizmos?.destroy(), this.gizmos = null, this.table = null, this.view = null, this.editing = null;
1836
2014
  }
1837
- }, Yn = /* @__PURE__ */ new Set([
2015
+ }, dr = /* @__PURE__ */ new Set([
1838
2016
  "-",
1839
2017
  "*",
1840
2018
  "_"
1841
- ]), Xn = Ee.transactionFilter.of((e) => {
1842
- if (!e.docChanged || e.isUserEvent("undo") || e.isUserEvent("redo") || e.annotation($) || !e.startState.selection.main.empty) return e;
2019
+ ]), fr = we.transactionFilter.of((e) => {
2020
+ if (!e.docChanged || e.isUserEvent("undo") || e.isUserEvent("redo") || e.annotation(cr) || !e.startState.selection.main.empty) return e;
1843
2021
  let t = e.startState.selection.main.head, n = "", r = 0;
1844
2022
  if (e.changes.iterChanges((e, i, a, o, s) => {
1845
2023
  r += 1, e === i && e === t && (n = s.toString());
@@ -1869,7 +2047,7 @@ var $ = we.define(), Jn = class extends E {
1869
2047
  },
1870
2048
  anchor: a + 1
1871
2049
  };
1872
- else if (Yn.has(n) && RegExp(`^\\${n}{3,}$`).test(s)) {
2050
+ else if (dr.has(n) && RegExp(`^\\${n}{3,}$`).test(s)) {
1873
2051
  let e = o.number === 1 || i.line(o.number - 1).text.trim() === "", t = n === "-" && !e, r = o.number === i.lines;
1874
2052
  if (t || r) {
1875
2053
  let e = [];
@@ -1892,38 +2070,38 @@ var $ = we.define(), Jn = class extends E {
1892
2070
  scrollIntoView: !0,
1893
2071
  userEvent: "input.autoformat"
1894
2072
  }] : e;
1895
- }), Zn = /* @__PURE__ */ new Set([
2073
+ }), pr = /* @__PURE__ */ new Set([
1896
2074
  "EmphasisMark",
1897
2075
  "CodeMark",
1898
2076
  "StrikethroughMark"
1899
2077
  ]);
1900
- function Qn(e, t, n) {
2078
+ function mr(e, t, n) {
1901
2079
  let r = t;
1902
2080
  for (;;) {
1903
2081
  let t = e.resolveInner(r, n);
1904
- if (!Zn.has(t.name) || t.from >= t.to) return r;
2082
+ if (!pr.has(t.name) || t.from >= t.to) return r;
1905
2083
  let i = n < 0 ? t.from : t.to;
1906
2084
  if (i === r) return r;
1907
2085
  r = i;
1908
2086
  }
1909
2087
  }
1910
- function $n(e, t) {
1911
- let n = V(e, t, !0);
2088
+ function hr(e, t) {
2089
+ let n = H(e, t, !0);
1912
2090
  if (!n) return t;
1913
- let r = j(e);
1914
- return t === n.contentTo ? Qn(r, t, 1) : t === n.contentFrom ? Qn(r, t, -1) : t;
2091
+ let r = N(e);
2092
+ return t === n.contentTo ? mr(r, t, 1) : t === n.contentFrom ? mr(r, t, -1) : t;
1915
2093
  }
1916
- var er = Ee.transactionFilter.of((e) => {
1917
- if (!e.docChanged || e.isUserEvent("undo") || e.isUserEvent("redo") || e.annotation($)) return e;
2094
+ var gr = we.transactionFilter.of((e) => {
2095
+ if (!e.docChanged || e.isUserEvent("undo") || e.isUserEvent("redo") || e.annotation(cr)) return e;
1918
2096
  let t = e.startState, n = t.selection.main;
1919
- if (!n.empty || !B(t, t.doc.lineAt(n.head).number)) return e;
2097
+ if (!n.empty || !V(t, t.doc.lineAt(n.head).number)) return e;
1920
2098
  let r = [], i = 0;
1921
2099
  e.changes.iterChanges((e, t, a, o, s) => {
1922
2100
  i++, e === t && e === n.head && s.length > 0 && r.push(s.toString());
1923
2101
  });
1924
2102
  let a = r[0];
1925
2103
  if (i !== 1 || a === void 0) return e;
1926
- let o = $n(t, n.head);
2104
+ let o = hr(t, n.head);
1927
2105
  return o === n.head ? e : {
1928
2106
  changes: {
1929
2107
  from: o,
@@ -1933,25 +2111,25 @@ var er = Ee.transactionFilter.of((e) => {
1933
2111
  scrollIntoView: !0,
1934
2112
  userEvent: "input.type"
1935
2113
  };
1936
- }), tr = RegExp(`^(?:${_.match.source.replace(/^\^/, "")})+`);
1937
- function nr(e, t) {
2114
+ }), _r = RegExp(`^(?:${se.match.source.replace(/^\^/, "")})+`);
2115
+ function vr(e, t) {
1938
2116
  let n = e.doc.lineAt(t).number;
1939
- for (let r = j(e).resolveInner(t, 1); r; r = r.parent) {
2117
+ for (let r = N(e).resolveInner(t, 1); r; r = r.parent) {
1940
2118
  if (r.name !== "ListItem" || e.doc.lineAt(r.from).number === n) continue;
1941
2119
  let t = u.exec(e.doc.lineAt(r.from).text);
1942
2120
  if (t) return t[0].length;
1943
2121
  }
1944
2122
  return null;
1945
2123
  }
1946
- function rr(e, t) {
1947
- let n = t.text, r = oe.exec(n);
2124
+ function yr(e, t) {
2125
+ let n = t.text, r = ae.exec(n);
1948
2126
  if (r) return {
1949
2127
  prefixLen: r[0].length,
1950
2128
  drop: [0, r[0].length]
1951
2129
  };
1952
- let i = tr.exec(n);
2130
+ let i = _r.exec(n);
1953
2131
  if (i) {
1954
- let e = _.match.exec(n)[0].length;
2132
+ let e = se.match.exec(n)[0].length;
1955
2133
  return {
1956
2134
  prefixLen: i[0].length,
1957
2135
  drop: [0, e]
@@ -1962,11 +2140,11 @@ function rr(e, t) {
1962
2140
  prefixLen: a[0].length,
1963
2141
  drop: [0, a[0].length]
1964
2142
  };
1965
- let o = te.match.exec(n) ?? ae.match.exec(n);
2143
+ let o = te.match.exec(n) ?? _.match.exec(n);
1966
2144
  if (o) {
1967
2145
  let n = o[1] ?? "", r = o[0].length - n.length;
1968
2146
  if (n) {
1969
- let r = nr(e, t.from) ?? 2, i = n.startsWith(" ") ? 1 : Math.min(r, n.length);
2147
+ let r = vr(e, t.from) ?? 2, i = n.startsWith(" ") ? 1 : Math.min(r, n.length);
1970
2148
  return {
1971
2149
  prefixLen: o[0].length,
1972
2150
  drop: [0, i]
@@ -1979,15 +2157,15 @@ function rr(e, t) {
1979
2157
  }
1980
2158
  return null;
1981
2159
  }
1982
- var ir = k.high(D.of([{
2160
+ var br = j.high(ve.of([{
1983
2161
  key: "Backspace",
1984
2162
  run: (e) => {
1985
2163
  if (h(e)) return !1;
1986
2164
  let { state: t } = e, n = t.selection.main;
1987
2165
  if (!n.empty) return !1;
1988
2166
  let r = t.doc.lineAt(n.head);
1989
- if (!B(t, r.number)) return !1;
1990
- let i = rr(t, r);
2167
+ if (!V(t, r.number)) return !1;
2168
+ let i = yr(t, r);
1991
2169
  if (!i || n.head < r.from || n.head > r.from + i.prefixLen) return !1;
1992
2170
  let [a, o] = i.drop;
1993
2171
  return e.dispatch({
@@ -2001,13 +2179,13 @@ var ir = k.high(D.of([{
2001
2179
  scrollIntoView: !0
2002
2180
  }), !0;
2003
2181
  }
2004
- }])), ar = class {
2182
+ }])), xr = class {
2005
2183
  menu;
2006
2184
  contentDOM;
2007
2185
  onClick;
2008
2186
  constructor(e) {
2009
- this.menu = X(e.dom.ownerDocument), e.dom.appendChild(this.menu.el), this.contentDOM = e.contentDOM, this.onClick = (t) => {
2010
- if (e.state.facet(F) !== "never" || !e.state.facet(M).links) return;
2187
+ this.menu = Z(e.dom.ownerDocument), e.dom.appendChild(this.menu.el), this.contentDOM = e.contentDOM, this.onClick = (t) => {
2188
+ if (e.state.facet(L) !== "never" || !e.state.facet(P).links) return;
2011
2189
  let n = t.target?.closest(".cm-inplace-link");
2012
2190
  if (!n || n.classList.contains("cm-inplace-wikilink")) return;
2013
2191
  let r = e.posAtDOM(n);
@@ -2019,13 +2197,13 @@ var ir = k.high(D.of([{
2019
2197
  if (n == null) return;
2020
2198
  r = n;
2021
2199
  }
2022
- e.dispatch({ selection: { anchor: r } }), this.menu.showField(bn(e), t.clientX, t.clientY);
2200
+ e.dispatch({ selection: { anchor: r } }), this.menu.showField(An(e), t.clientX, t.clientY);
2023
2201
  }, this.contentDOM.addEventListener("click", this.onClick);
2024
2202
  }
2025
2203
  destroy() {
2026
2204
  this.contentDOM.removeEventListener("click", this.onClick), this.menu.destroy();
2027
2205
  }
2028
- }, or = T.fromClass(ar), sr = (e) => e.replace(/^<([^]*)>$/, "$1").trim(), cr = (e, t, n) => n ? {
2206
+ }, Sr = O.fromClass(xr), Cr = (e) => e.replace(/^<([^]*)>$/, "$1").trim(), wr = (e, t, n) => n ? {
2029
2207
  pos: e,
2030
2208
  end: t,
2031
2209
  above: !0,
@@ -2034,27 +2212,27 @@ var ir = k.high(D.of([{
2034
2212
  return e.className = "cm-inplace-href-tip", e.textContent = n, { dom: e };
2035
2213
  }
2036
2214
  } : null;
2037
- function lr(e, t) {
2038
- for (let n = j(e.state).resolveInner(t, -1); n; n = n.parent) {
2215
+ function Tr(e, t) {
2216
+ for (let n = N(e.state).resolveInner(t, -1); n; n = n.parent) {
2039
2217
  if (n.name !== "Link") continue;
2040
2218
  if (e.state.doc.sliceString(Math.max(0, n.from - 1), n.from) === "[") break;
2041
2219
  let t = n.getChild("URL"), r = t ? e.state.sliceDoc(t.from, t.to) : e.state.sliceDoc(n.from, n.to);
2042
- return cr(n.from, n.to, sr(r));
2220
+ return wr(n.from, n.to, Cr(r));
2043
2221
  }
2044
2222
  return null;
2045
2223
  }
2046
- function ur(t, n) {
2224
+ function Er(t, n) {
2047
2225
  let r = t.state.doc.lineAt(n);
2048
2226
  for (let t of r.text.matchAll(e)) {
2049
2227
  let e = r.from + (t.index ?? 0), i = e + t[0].length;
2050
- if (!(n < e || n > i)) return cr(e, i, (t[1] ?? "").trim());
2228
+ if (!(n < e || n > i)) return wr(e, i, (t[1] ?? "").trim());
2051
2229
  }
2052
2230
  return null;
2053
2231
  }
2054
- var dr = be((e, t) => {
2055
- let n = e.state.facet(M);
2056
- return (n.links ? lr(e, t) : null) ?? (n.wikilinks ? ur(e, t) : null);
2057
- }), fr = class extends E {
2232
+ var Dr = _e((e, t) => {
2233
+ let n = e.state.facet(P);
2234
+ return (n.links ? Tr(e, t) : null) ?? (n.wikilinks ? Er(e, t) : null);
2235
+ }), Or = class extends k {
2058
2236
  ref;
2059
2237
  inline;
2060
2238
  registry;
@@ -2081,52 +2259,52 @@ var dr = be((e, t) => {
2081
2259
  return !1;
2082
2260
  }
2083
2261
  };
2084
- function pr(e) {
2085
- let t = e.facet(N);
2086
- if (!t || !e.facet(M).embeds || !e.doc.toString().includes("![[")) return C.none;
2087
- let n = R(e), r = j(e), i = [];
2262
+ function kr(e) {
2263
+ let t = e.facet(F);
2264
+ if (!t || !e.facet(P).embeds || !e.doc.toString().includes("![[")) return E.none;
2265
+ let n = z(e), r = N(e), i = [];
2088
2266
  for (let a = 1; a <= e.doc.lines; a++) {
2089
2267
  let o = e.doc.line(a);
2090
2268
  if (!(!o.text.includes("![[") || n.has(a))) {
2091
- if (me(o.text)) {
2092
- x.lastIndex = 0;
2093
- let e = (x.exec(o.text.trim())?.[1] ?? "").trim();
2094
- if (!e || z(r, o.from + o.text.indexOf("!["))) continue;
2095
- i.push(C.replace({
2096
- widget: new fr(e, !1, t),
2269
+ if (fe(o.text)) {
2270
+ C.lastIndex = 0;
2271
+ let e = (C.exec(o.text.trim())?.[1] ?? "").trim();
2272
+ if (!e || B(r, o.from + o.text.indexOf("!["))) continue;
2273
+ i.push(E.replace({
2274
+ widget: new Or(e, !1, t),
2097
2275
  block: !0
2098
2276
  }).range(o.from, o.to));
2099
2277
  continue;
2100
2278
  }
2101
- x.lastIndex = 0;
2102
- for (let e of o.text.matchAll(x)) {
2279
+ C.lastIndex = 0;
2280
+ for (let e of o.text.matchAll(C)) {
2103
2281
  let n = (e[1] ?? "").trim();
2104
2282
  if (!n) continue;
2105
2283
  let a = o.from + (e.index ?? 0);
2106
- z(r, a + 2) || qe(r, a + 2) || i.push(C.replace({ widget: new fr(n, !0, t) }).range(a, a + e[0].length));
2284
+ B(r, a + 2) || qe(r, a + 2) || i.push(E.replace({ widget: new Or(n, !0, t) }).range(a, a + e[0].length));
2107
2285
  }
2108
2286
  }
2109
2287
  }
2110
- return C.set(i, !0);
2288
+ return E.set(i, !0);
2111
2289
  }
2112
- function mr(e, t) {
2290
+ function Ar(e, t) {
2113
2291
  for (let n of t.ranges) {
2114
2292
  let t = e.doc.lineAt(n.from).number, r = e.doc.lineAt(n.to).number;
2115
2293
  for (let n = t; n <= r; n++) if (e.doc.line(n).text.includes("![[")) return !0;
2116
2294
  }
2117
2295
  return !1;
2118
2296
  }
2119
- var hr = A.define({
2120
- create: pr,
2121
- update: (e, t) => t.docChanged || t.selection && (mr(t.state, t.startState.selection) || mr(t.state, t.state.selection)) ? pr(t.state) : e,
2122
- provide: (e) => [w.decorations.from(e), w.atomicRanges.of((t) => t.state.field(e))]
2123
- }), gr = De.define(), _r = A.define({
2297
+ var jr = M.define({
2298
+ create: kr,
2299
+ update: (e, t) => t.docChanged || t.selection && (Ar(t.state, t.startState.selection) || Ar(t.state, t.state.selection)) ? kr(t.state) : e,
2300
+ provide: (e) => [D.decorations.from(e), D.atomicRanges.of((t) => t.state.field(e))]
2301
+ }), Mr = Te.define(), $ = M.define({
2124
2302
  create: () => !1,
2125
2303
  update(e, t) {
2126
- for (let n of t.effects) n.is(gr) && (e = n.value);
2304
+ for (let n of t.effects) n.is(Mr) && (e = n.value);
2127
2305
  return e;
2128
2306
  }
2129
- }), vr = class {
2307
+ }), Nr = class {
2130
2308
  view;
2131
2309
  menu;
2132
2310
  onContextMenu;
@@ -2137,8 +2315,8 @@ var hr = A.define({
2137
2315
  longPressAt = 0;
2138
2316
  destroyed = !1;
2139
2317
  constructor(e) {
2140
- this.view = e, this.menu = X(e.dom.ownerDocument, "cm-inplace-menu", (t) => {
2141
- this.destroyed || e.dispatch({ effects: gr.of(t) });
2318
+ this.view = e, this.menu = Z(e.dom.ownerDocument, "cm-inplace-menu", (t) => {
2319
+ this.destroyed || e.dispatch({ effects: Mr.of(t) });
2142
2320
  }), e.dom.appendChild(this.menu.el), this.contentDOM = e.contentDOM, this.onPointerDown = () => {
2143
2321
  let t = e.state.selection.main;
2144
2322
  this.stashed = t.empty ? null : {
@@ -2148,17 +2326,17 @@ var hr = A.define({
2148
2326
  }, this.contentDOM.addEventListener("pointerdown", this.onPointerDown, !0), this.onContextMenu = (e) => {
2149
2327
  let t = e.target;
2150
2328
  this.canOpen() && (t?.closest(".cm-inplace-table-edit") || (this.longPress.cancel(), (Date.now() - this.longPressAt < 700 || this.openMenuAt(e.clientX, e.clientY, t)) && e.preventDefault()));
2151
- }, this.contentDOM.addEventListener("contextmenu", this.onContextMenu), this.longPress = Ln(this.contentDOM, { onLongPress: (e, t, n) => {
2329
+ }, this.contentDOM.addEventListener("contextmenu", this.onContextMenu), this.longPress = Jn(this.contentDOM, { onLongPress: (e, t, n) => {
2152
2330
  this.longPressAt = Date.now(), this.openMenuAt(e, t, n);
2153
2331
  } });
2154
2332
  }
2155
2333
  canOpen() {
2156
2334
  let { state: e } = this.view;
2157
- return e.facet(Fe) && (!e.readOnly || fn(this.view));
2335
+ return e.facet(Ne) && (!e.readOnly || Sn(this.view));
2158
2336
  }
2159
2337
  rows() {
2160
2338
  let e = this.view;
2161
- return e.state.readOnly ? pn(e, { selected: !e.state.selection.main.empty }) : In(e);
2339
+ return e.state.readOnly ? Cn(e, { selected: !e.state.selection.main.empty }) : qn(e);
2162
2340
  }
2163
2341
  openMenuAt(e, t, n) {
2164
2342
  let r = this.view;
@@ -2175,7 +2353,7 @@ var hr = A.define({
2175
2353
  y: t
2176
2354
  });
2177
2355
  if (n != null) {
2178
- let e = V(r.state, n, !1, !0), t = r.state.wordAt(n) ?? { anchor: n };
2356
+ let e = H(r.state, n, !1, !0), t = r.state.wordAt(n) ?? { anchor: n };
2179
2357
  e?.kind === "link" ? t = {
2180
2358
  anchor: e.from,
2181
2359
  head: e.to
@@ -2194,10 +2372,10 @@ var hr = A.define({
2194
2372
  destroy() {
2195
2373
  this.destroyed = !0, this.contentDOM.removeEventListener("pointerdown", this.onPointerDown, !0), this.contentDOM.removeEventListener("contextmenu", this.onContextMenu), this.longPress.dispose(), this.menu.destroy();
2196
2374
  }
2197
- }, yr = T.fromClass(vr);
2375
+ }, Pr = O.fromClass(Nr);
2198
2376
  //#endregion
2199
2377
  //#region src/inplace/selection-bar-position.ts
2200
- function br(e) {
2378
+ function Fr(e) {
2201
2379
  let t = e.state.selection.main;
2202
2380
  if (!t.empty) {
2203
2381
  let n = e.coordsAtPos(t.from), r = e.coordsAtPos(t.to);
@@ -2211,7 +2389,7 @@ function br(e) {
2211
2389
  }
2212
2390
  };
2213
2391
  }
2214
- if (!Z(e)) return null;
2392
+ if (!Vn(e)) return null;
2215
2393
  let n = e.dom.ownerDocument.getSelection();
2216
2394
  if (!n || n.rangeCount === 0) return null;
2217
2395
  let r = n.getRangeAt(0).getBoundingClientRect();
@@ -2225,9 +2403,9 @@ function br(e) {
2225
2403
  }
2226
2404
  };
2227
2405
  }
2228
- function xr(e, t, n) {
2229
- if (e.state.facet(Ve) !== "bar" || e.state.readOnly || e.state.field(_r, !1)) return null;
2230
- let r = br(e);
2406
+ function Ir(e, t, n) {
2407
+ if (e.state.facet(Ve) !== "bar" || e.state.readOnly || e.state.field($, !1)) return null;
2408
+ let r = Fr(e);
2231
2409
  if (!r) return null;
2232
2410
  let { box: i, inCell: a } = r;
2233
2411
  if (!a && !e.hasFocus) return null;
@@ -2245,7 +2423,7 @@ function xr(e, t, n) {
2245
2423
  }
2246
2424
  //#endregion
2247
2425
  //#region src/inplace/selection-bar.ts
2248
- var Sr = class {
2426
+ var Lr = class {
2249
2427
  view;
2250
2428
  bar;
2251
2429
  ids;
@@ -2260,12 +2438,12 @@ var Sr = class {
2260
2438
  constructor(e) {
2261
2439
  this.view = e;
2262
2440
  let t = e.dom.ownerDocument;
2263
- this.ids = e.state.facet(Be), this.linkMenu = X(t), e.dom.appendChild(this.linkMenu.el), this.bar = t.createElement("div"), this.bar.className = "cm-inplace-selbar", this.bar.setAttribute("contenteditable", "false"), this.bar.hidden = !0;
2441
+ this.ids = e.state.facet(Be), this.linkMenu = Z(t), e.dom.appendChild(this.linkMenu.el), this.bar = t.createElement("div"), this.bar.className = "cm-inplace-selbar", this.bar.setAttribute("contenteditable", "false"), this.bar.hidden = !0;
2264
2442
  for (let n of this.ids) {
2265
2443
  let r = g[n], i = t.createElement("button");
2266
- i.type = "button", i.className = "cm-inplace-selbar-btn", i.title = r.title, i.setAttribute("aria-label", r.title), i.appendChild(fe(t, b[n] ?? "")), i.addEventListener("mousedown", (e) => e.preventDefault()), i.addEventListener("click", (t) => {
2444
+ i.type = "button", i.className = "cm-inplace-selbar-btn", i.title = r.title, i.setAttribute("aria-label", r.title), i.appendChild(ue(t, S[n] ?? "")), i.addEventListener("mousedown", (e) => e.preventDefault()), i.addEventListener("click", (t) => {
2267
2445
  t.preventDefault();
2268
- let a = !!h(e), o = !a && n === "link" ? bn(e) : !a && n === "wikilink" ? xn(e) : null;
2446
+ let a = !!h(e), o = !a && n === "link" ? An(e) : !a && n === "wikilink" ? jn(e) : null;
2269
2447
  if (o) {
2270
2448
  let e = i.getBoundingClientRect();
2271
2449
  this.linkMenu.showField(o, e.left, e.bottom + 6);
@@ -2277,7 +2455,7 @@ var Sr = class {
2277
2455
  e.dom.appendChild(this.bar), t.addEventListener("scroll", this.onScroll, !0), t.addEventListener("selectionchange", this.onSelectionChange);
2278
2456
  }
2279
2457
  update(e) {
2280
- let t = e.startState.field(_r, !1) !== e.state.field(_r, !1), n = e.startState.readOnly !== e.state.readOnly;
2458
+ let t = e.startState.field($, !1) !== e.state.field($, !1), n = e.startState.readOnly !== e.state.readOnly;
2281
2459
  (e.selectionSet || e.docChanged || e.focusChanged || t || n) && this.schedule();
2282
2460
  }
2283
2461
  schedule() {
@@ -2288,7 +2466,7 @@ var Sr = class {
2288
2466
  });
2289
2467
  }
2290
2468
  measure() {
2291
- return xr(this.view, this.bar, this.ids);
2469
+ return Ir(this.view, this.bar, this.ids);
2292
2470
  }
2293
2471
  apply(e) {
2294
2472
  if (!e) {
@@ -2302,30 +2480,42 @@ var Sr = class {
2302
2480
  let e = this.view.dom.ownerDocument;
2303
2481
  e.removeEventListener("scroll", this.onScroll, !0), e.removeEventListener("selectionchange", this.onSelectionChange), this.linkMenu.destroy(), this.bar.remove();
2304
2482
  }
2305
- }, Cr = T.fromClass(Sr), wr = (e) => (t) => {
2483
+ }, Rr = O.fromClass(Lr), zr = (e) => (t) => {
2306
2484
  if (h(t)) return !1;
2307
2485
  let n = t.state.selection.main;
2308
2486
  if (!n.empty) return !1;
2309
2487
  let { doc: r } = t.state, i = r.lineAt(n.head), a = e ? i.number + 1 : i.number - 1;
2310
2488
  if (a < 1 || a > r.lines) return !1;
2311
2489
  let o = r.line(a), s = -1, c = -1, l;
2312
- if (t.state.field(Y).between(o.from, o.to, (t, n, r) => {
2490
+ if (t.state.field(X).between(o.from, o.to, (t, n, r) => {
2313
2491
  if (e ? t === o.from : n === o.to) return s = t, c = n, l = r.spec.widget, !1;
2314
2492
  }), s < 0) return !1;
2315
- if (t.state.facet(P) === "cells") return l instanceof Jn && l.focusEdge(e ? "first" : "last");
2493
+ if (t.state.facet(I) === "cells") return l instanceof ur && l.focusEdge(e ? "first" : "last");
2316
2494
  let u = e ? r.lineAt(s).from : r.lineAt(c).to;
2317
2495
  return t.dispatch({
2318
2496
  selection: { anchor: u },
2319
2497
  userEvent: "select",
2320
2498
  scrollIntoView: !0
2321
2499
  }), !0;
2322
- }, Tr = wr(!0), Er = wr(!1), Dr = k.high(D.of([{
2500
+ }, Br = zr(!0), Vr = zr(!1), Hr = j.high(ve.of([{
2323
2501
  key: "ArrowDown",
2324
- run: Tr
2502
+ run: Br
2325
2503
  }, {
2326
2504
  key: "ArrowUp",
2327
- run: Er
2328
- }])), Or = {
2505
+ run: Vr
2506
+ }])), Ur = O.fromClass(class {
2507
+ last = "[]";
2508
+ update(e) {
2509
+ let t = JSON.stringify(e.state.facet(Le)(e.state));
2510
+ t === this.last && !e.docChanged || (t !== "[]" || this.last !== "[]") && (this.last = t, e.view.requestMeasure({
2511
+ read: () => null,
2512
+ write: (e, t) => {
2513
+ for (let e of t.dom.querySelectorAll(".cm-inplace-table-edit")) lr.get(e)?.repaintMarks();
2514
+ },
2515
+ key: this
2516
+ }));
2517
+ }
2518
+ }), Wr = {
2329
2519
  ".cm-inplace-callout": {
2330
2520
  borderLeft: "0.25rem solid var(--stylo-callout-accent, var(--stylo-border))",
2331
2521
  padding: "0 var(--stylo-rhythm-callout-padding-x, 1rem)",
@@ -2359,9 +2549,9 @@ var Sr = class {
2359
2549
  content: "\"\"",
2360
2550
  display: "none"
2361
2551
  }
2362
- }, kr = "var(--stylo-font-family-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)", Ar = "var(--stylo-font-family, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif)", jr = {
2552
+ }, Gr = "var(--stylo-font-family-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)", Kr = "var(--stylo-font-family, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif)", qr = {
2363
2553
  "& .cm-content": {
2364
- fontFamily: Ar,
2554
+ fontFamily: Kr,
2365
2555
  lineHeight: "1.75",
2366
2556
  padding: "0.75rem",
2367
2557
  WebkitTouchCallout: "none"
@@ -2404,14 +2594,14 @@ var Sr = class {
2404
2594
  ".cm-inplace-em": { fontStyle: "italic" },
2405
2595
  ".cm-inplace-strike": { textDecoration: "line-through" },
2406
2596
  ".cm-inplace-code": {
2407
- fontFamily: kr,
2597
+ fontFamily: Gr,
2408
2598
  fontSize: "0.9em",
2409
2599
  padding: "0.1em 0.35em",
2410
2600
  borderRadius: "3px",
2411
2601
  background: "color-mix(in srgb, var(--stylo-border) 45%, transparent)"
2412
2602
  },
2413
2603
  ".cm-inplace-mono": {
2414
- fontFamily: kr,
2604
+ fontFamily: Gr,
2415
2605
  fontSize: "0.9em",
2416
2606
  background: "color-mix(in srgb, var(--stylo-border) 35%, transparent)",
2417
2607
  padding: "0 0.9rem"
@@ -2489,21 +2679,21 @@ var Sr = class {
2489
2679
  cursor: "pointer"
2490
2680
  },
2491
2681
  ".cm-inplace-fm": {
2492
- fontFamily: kr,
2682
+ fontFamily: Gr,
2493
2683
  fontSize: "0.85em",
2494
2684
  color: "var(--stylo-text-muted)"
2495
2685
  },
2496
2686
  ".cm-inplace-fm-first::before": {
2497
2687
  content: "\"Frontmatter\"",
2498
2688
  marginRight: "0.6em",
2499
- fontFamily: Ar,
2689
+ fontFamily: Kr,
2500
2690
  fontSize: "0.8rem",
2501
2691
  fontWeight: "600",
2502
2692
  textTransform: "uppercase",
2503
2693
  letterSpacing: "0.04em",
2504
2694
  color: "var(--stylo-text-muted)"
2505
2695
  }
2506
- }, Mr = {
2696
+ }, Jr = {
2507
2697
  ".cm-inplace-menu": {
2508
2698
  position: "fixed",
2509
2699
  inset: "0",
@@ -2577,7 +2767,7 @@ var Sr = class {
2577
2767
  outline: "none"
2578
2768
  },
2579
2769
  ".cm-inplace-menu-input:focus": { borderColor: "var(--stylo-ring)" }
2580
- }, Nr = {
2770
+ }, Yr = {
2581
2771
  ".cm-inplace-selbar": {
2582
2772
  position: "fixed",
2583
2773
  zIndex: "20",
@@ -2662,7 +2852,7 @@ var Sr = class {
2662
2852
  lineHeight: "1.4",
2663
2853
  wordBreak: "break-all"
2664
2854
  }
2665
- }, Pr = {
2855
+ }, Xr = {
2666
2856
  ".cm-inplace-table": {
2667
2857
  borderCollapse: "collapse",
2668
2858
  padding: "1em 0 1.4em",
@@ -2685,7 +2875,7 @@ var Sr = class {
2685
2875
  outline: "none"
2686
2876
  },
2687
2877
  ".cm-inplace-table-edit .cm-inplace-tcell:focus": { boxShadow: "inset 0 0 0 2px var(--stylo-ring)" }
2688
- }, Fr = {
2878
+ }, Zr = {
2689
2879
  ".cm-inplace-table-wrap": {
2690
2880
  position: "relative",
2691
2881
  display: "inline-block",
@@ -2727,58 +2917,60 @@ var Sr = class {
2727
2917
  },
2728
2918
  ".cm-inplace-tg-edge:hover .cm-inplace-tg-plus": { color: "var(--stylo-text)" },
2729
2919
  "@media (hover: none)": { ".cm-inplace-tg-edge": { opacity: "0.5" } }
2730
- }, Ir = w.theme({
2731
- ...jr,
2732
- ...Or,
2733
- ...Pr,
2734
- ...Fr,
2735
- ...Mr,
2736
- ...Nr
2737
- }), Lr = ".cm-inplace-math, .cm-inplace-hr, .cm-inplace-table, .cm-inplace-embed, .cm-inplace-embed-inline";
2738
- function Rr(e = {}) {
2739
- let t = Le(e.inPlace?.contextMenu);
2920
+ }, Qr = D.theme({
2921
+ ...qr,
2922
+ ...Wr,
2923
+ ...Xr,
2924
+ ...Zr,
2925
+ ...Jr,
2926
+ ...Yr
2927
+ }), $r = ".cm-inplace-math, .cm-inplace-hr, .cm-inplace-table, .cm-inplace-embed, .cm-inplace-embed-inline";
2928
+ function ei(e = {}) {
2929
+ let t = Fe(e.inPlace?.contextMenu);
2740
2930
  return [
2741
- M.of(Ne(e.inPlace)),
2742
- N.of(e.embedRegistry ?? null),
2743
- P.of(e.inPlace?.table ?? "source"),
2744
- F.of(e.inPlace?.reveal ?? "caret"),
2745
- Pe.of(e.onLinkClick ?? null),
2746
- Fe.of(t.enabled),
2747
- L.of(t.groups),
2748
- Re.of(e.hostItems ?? (() => t.items)),
2931
+ P.of(je(e.inPlace)),
2932
+ F.of(e.embedRegistry ?? null),
2933
+ I.of(e.inPlace?.table ?? "source"),
2934
+ L.of(e.inPlace?.reveal ?? "caret"),
2935
+ Me.of(e.onLinkClick ?? null),
2936
+ Ne.of(t.enabled),
2937
+ Re.of(t.groups),
2938
+ Ie.of(e.hostItems ?? (() => t.items)),
2939
+ Le.of(e.cellMarks ?? e.inPlace?.cellMarks ?? (() => [])),
2749
2940
  Ve.of(e.inPlace?.selectionUI ?? "menu"),
2750
2941
  Be.of(ze(e.inPlace?.selectionBarItems)),
2751
2942
  Dt(),
2752
- ir,
2753
- Yt,
2943
+ br,
2944
+ nn,
2754
2945
  Rt,
2755
- Dr,
2756
- er,
2757
- Xn,
2946
+ Hr,
2947
+ gr,
2948
+ fr,
2758
2949
  nt,
2759
- hr,
2950
+ jr,
2760
2951
  Ue,
2761
- Y,
2762
- _r,
2763
- yr,
2764
- Cr,
2765
- or,
2766
- dr,
2767
- kn,
2768
- An,
2769
- k.high(Ir),
2770
- w.domEventHandlers({
2952
+ X,
2953
+ Ur,
2954
+ $,
2955
+ Pr,
2956
+ Rr,
2957
+ Sr,
2958
+ Dr,
2959
+ zn,
2960
+ Bn,
2961
+ j.high(Qr),
2962
+ D.domEventHandlers({
2771
2963
  mousedown(e, t) {
2772
2964
  let n = e.target;
2773
2965
  if (n?.closest(".cm-inplace-table-edit") || n?.closest(".stylo-embed-content")) return !1;
2774
- let r = n?.closest(Lr);
2966
+ let r = n?.closest($r);
2775
2967
  if (!r) return !1;
2776
2968
  let i = t.posAtDOM(r);
2777
2969
  if (i < 0) return !1;
2778
2970
  let a = n?.closest("[data-stylo-row]");
2779
2971
  if (a && r.contains(a)) {
2780
- let n = le(t.state.doc, i, Number(a.dataset.styloRow), Number(a.dataset.styloCol));
2781
- n != null && (i = n + de(a, e.clientX, e.clientY));
2972
+ let n = v(t.state.doc, i, Number(a.dataset.styloRow), Number(a.dataset.styloCol));
2973
+ n != null && (i = n + x(a, e.clientX, e.clientY));
2782
2974
  }
2783
2975
  return t.focus(), t.dispatch({ selection: { anchor: i } }), !0;
2784
2976
  },
@@ -2792,21 +2984,23 @@ function Rr(e = {}) {
2792
2984
  }
2793
2985
  //#endregion
2794
2986
  //#region src/inplace/InPlaceView.tsx
2795
- var zr = () => () => {}, Br = () => null;
2796
- function Vr({ value: e, onChange: t, readOnly: r, placeholder: i, onWikiLinkClick: a, onLinkClick: o, inPlace: s, codeLanguages: c, wikiLinkSource: l, tagSource: u, embedSource: d, onResolveError: f, onSave: p, onViewChange: m, canvasHeader: h, hostExtensions: ee }) {
2797
- let te = S(a);
2987
+ var ti = () => () => {}, ni = () => null;
2988
+ function ri({ value: e, onChange: t, readOnly: r, placeholder: i, onWikiLinkClick: a, onLinkClick: o, inPlace: s, codeLanguages: c, wikiLinkSource: l, tagSource: u, embedSource: d, onResolveError: f, onSave: p, onViewChange: m, canvasHeader: h, hostExtensions: ee }) {
2989
+ let te = w(a);
2798
2990
  te.current = a;
2799
- let re = S(o);
2991
+ let re = w(o);
2800
2992
  re.current = o;
2801
- let ie = S(s?.contextMenu);
2993
+ let ie = w(s?.contextMenu);
2802
2994
  ie.current = s?.contextMenu;
2803
- let [g] = ve(() => new je()), ae = ye(g.subscribe, g.getSnapshot, g.getSnapshot), [oe, se] = ve(null), _ = S(m);
2804
- _.current = m;
2805
- let le = S((e) => {
2806
- se(e), _.current?.(e);
2807
- }).current, v = S(h);
2808
- v.current = h;
2809
- let [y] = ve(() => h ? new ne() : null), ue = ye(y?.subscribe ?? zr, y?.getSnapshot ?? Br), [de] = ve(() => [Rr({
2995
+ let g = w(s?.cellMarks);
2996
+ g.current = s?.cellMarks;
2997
+ let [_] = T(() => new ke()), ae = ge(_.subscribe, _.getSnapshot, _.getSnapshot), [oe, se] = T(null), v = w(m);
2998
+ v.current = m;
2999
+ let le = w((e) => {
3000
+ se(e), v.current?.(e);
3001
+ }).current, y = w(h);
3002
+ y.current = h;
3003
+ let [b] = T(() => h ? new ne() : null), x = ge(b?.subscribe ?? ti, b?.getSnapshot ?? ni), [ue] = T(() => [ei({
2810
3004
  onWikiLinkClick: (e) => te.current?.(e),
2811
3005
  onLinkClick: (e) => re.current?.(e),
2812
3006
  inPlace: s,
@@ -2814,13 +3008,14 @@ function Vr({ value: e, onChange: t, readOnly: r, placeholder: i, onWikiLinkClic
2814
3008
  let e = ie.current;
2815
3009
  return typeof e == "object" ? e.items ?? [] : [];
2816
3010
  },
2817
- embedRegistry: d ? g : void 0
2818
- }), ...y ? [xe.of(y.panel)] : []]), fe = ce({
3011
+ cellMarks: (e) => g.current?.(e) ?? [],
3012
+ embedRegistry: d ? _ : void 0
3013
+ }), ...b ? [ye.of(b.panel)] : []]), S = ce({
2819
3014
  value: e,
2820
3015
  onChange: t,
2821
3016
  readOnly: r,
2822
3017
  placeholder: i,
2823
- extensions: de,
3018
+ extensions: ue,
2824
3019
  codeLanguages: c,
2825
3020
  wikiLinkSource: l,
2826
3021
  tagSource: u,
@@ -2829,18 +3024,18 @@ function Vr({ value: e, onChange: t, readOnly: r, placeholder: i, onWikiLinkClic
2829
3024
  onViewChange: le,
2830
3025
  hostExtensions: ee
2831
3026
  });
2832
- return /* @__PURE__ */ ke("div", {
3027
+ return /* @__PURE__ */ De("div", {
2833
3028
  className: n.inplace,
2834
- ref: fe,
2835
- children: [d && ae.map((e) => Se(/* @__PURE__ */ Oe(he, {
3029
+ ref: S,
3030
+ children: [d && ae.map((e) => be(/* @__PURE__ */ Ee(pe, {
2836
3031
  reference: e.ref,
2837
3032
  source: d,
2838
3033
  onError: f,
2839
3034
  inline: e.inline
2840
- }), e.el, String(e.id))), ue && v.current && Se(v.current({ view: oe }), ue)]
3035
+ }), e.el, String(e.id))), x && y.current && be(y.current({ view: oe }), x)]
2841
3036
  });
2842
3037
  }
2843
3038
  //#endregion
2844
- export { Vr as InPlaceView };
3039
+ export { ri as InPlaceView };
2845
3040
 
2846
- //# sourceMappingURL=InPlaceView-rt6po4_E.js.map
3041
+ //# sourceMappingURL=InPlaceView-gei6uiAm.js.map