lexical-medium-editor 1.2.18 → 1.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,245 +1,245 @@
1
1
  import './lexical-medium-editor.css';
2
- import { jsxs as D, Fragment as Xe, jsx as h } from "react/jsx-runtime";
3
- import { AutoFocusPlugin as Ct } from "@lexical/react/LexicalAutoFocusPlugin";
4
- import { LexicalComposer as yt } from "@lexical/react/LexicalComposer";
5
- import { RichTextPlugin as Nt } from "@lexical/react/LexicalRichTextPlugin";
6
- import { HistoryPlugin as xt } from "@lexical/react/LexicalHistoryPlugin";
7
- import { LexicalErrorBoundary as Et } from "@lexical/react/LexicalErrorBoundary";
2
+ import { jsxs as D, Fragment as rt, jsx as h } from "react/jsx-runtime";
3
+ import { AutoFocusPlugin as Nt } from "@lexical/react/LexicalAutoFocusPlugin";
4
+ import { LexicalComposer as xt } from "@lexical/react/LexicalComposer";
5
+ import { RichTextPlugin as Tt } from "@lexical/react/LexicalRichTextPlugin";
6
+ import { HistoryPlugin as At } from "@lexical/react/LexicalHistoryPlugin";
7
+ import { LexicalErrorBoundary as Lt } from "@lexical/react/LexicalErrorBoundary";
8
8
  import { useLexicalComposerContext as M } from "@lexical/react/LexicalComposerContext";
9
- import { createCommand as Y, $getSelection as L, $isRangeSelection as w, $createParagraphNode as re, COMMAND_PRIORITY_HIGH as $, $getRoot as fe, CLICK_COMMAND as Tt, COMMAND_PRIORITY_LOW as Ve, TextNode as ie, $isParagraphNode as V, $getCharacterOffsets as At, FORMAT_TEXT_COMMAND as xe, SELECTION_CHANGE_COMMAND as j, BLUR_COMMAND as be, $getNodeByKey as oe, $isLineBreakNode as te, $getPreviousSelection as he, KEY_BACKSPACE_COMMAND as Le, $isNodeSelection as we, PASTE_COMMAND as ke, $setSelection as Je, KEY_ARROW_RIGHT_COMMAND as St, $getAdjacentNode as Fe, $createTextNode as Ft, COMMAND_PRIORITY_NORMAL as $t, KEY_ENTER_COMMAND as Lt, $isTextNode as wt, ParagraphNode as kt, $createLineBreakNode as It, KEY_TAB_COMMAND as Mt } from "lexical";
10
- import { useEffect as C, useState as O, useRef as se, useLayoutEffect as Ot, useCallback as de } from "react";
11
- import { createPortal as Ie } from "react-dom";
12
- import { $findMatchingParent as I, $dfs as Pt } from "@lexical/utils";
13
- import { Toolbar as Me, TextField as _t, Input as et, Group as ne, Button as U, ToggleButton as ee, Separator as He, ComboBox as Dt, Popover as tt, ListBox as Bt, ListBoxItem as Ht, DialogTrigger as Rt, FileTrigger as zt } from "react-aria-components";
14
- import { IconCheck as Wt, IconX as Gt, IconBold as Kt, IconItalic as qt, IconCode as Ut, IconTextSize as jt, IconBlockquote as Yt, IconLink as Zt, IconCaretDownFilled as Qt, IconPlus as Xt, IconPhoto as Vt, IconCodePlus as Jt, IconLineDashed as en } from "@tabler/icons-react";
15
- import { $isAtNodeEnd as Re, $setBlocksType as nt, createDOMRange as tn } from "@lexical/selection";
16
- import { $createHeadingNode as rt, HeadingNode as nn, $createQuoteNode as rn, $isHeadingNode as $e, $isQuoteNode as on } from "@lexical/rich-text";
17
- import { $toggleLink as sn, $isLinkNode as an } from "@lexical/link";
18
- import { $isListNode as ln, $isListItemNode as ze, $insertList as We } from "@lexical/list";
19
- import { $ as X, a as Q, b as G, H as cn, c as un, I as Ge, d as Ke, e as dn, M as me, f as gn, g as Ee, h as q, i as fn, j as Te } from "./ImageNode-BhH71HMX.js";
20
- import { $isCodeNode as pe, getCodeLanguages as hn, getLanguageFriendlyName as Ae, registerCodeHighlighting as mn, $createCodeNode as qe } from "@lexical/code";
21
- import { NodeEventPlugin as Oe } from "@lexical/react/LexicalNodeEventPlugin";
22
- import { ListPlugin as pn } from "@lexical/react/LexicalListPlugin";
23
- import { OnChangePlugin as bn } from "@lexical/react/LexicalOnChangePlugin";
24
- import { ContentEditable as vn } from "@lexical/react/LexicalContentEditable";
25
- import { ClearEditorPlugin as Cn } from "@lexical/react/LexicalClearEditorPlugin";
9
+ import { createCommand as Z, $getSelection as $, $isRangeSelection as k, $createParagraphNode as Ce, COMMAND_PRIORITY_HIGH as F, $getRoot as me, CLICK_COMMAND as St, COMMAND_PRIORITY_LOW as ke, TextNode as se, $isParagraphNode as J, $getCharacterOffsets as $t, FORMAT_TEXT_COMMAND as Ae, SELECTION_CHANGE_COMMAND as Y, BLUR_COMMAND as ae, $getNodeByKey as j, $isLineBreakNode as ie, $getPreviousSelection as ye, KEY_BACKSPACE_COMMAND as Oe, $isNodeSelection as pe, $setSelection as Pe, PASTE_COMMAND as _e, KEY_ARROW_RIGHT_COMMAND as Ft, $getAdjacentNode as we, $createTextNode as kt, COMMAND_PRIORITY_NORMAL as wt, KEY_ENTER_COMMAND as It, $isTextNode as Mt, ParagraphNode as Ot, $createLineBreakNode as Pt, KEY_TAB_COMMAND as _t } from "lexical";
10
+ import { useEffect as b, useState as O, useRef as ee, useLayoutEffect as Dt, useCallback as ge } from "react";
11
+ import { createPortal as De } from "react-dom";
12
+ import { $findMatchingParent as I, $dfs as Bt } from "@lexical/utils";
13
+ import { Toolbar as Be, TextField as Ht, Input as it, Group as oe, Button as q, ToggleButton as ne, Separator as Ke, ComboBox as Rt, Popover as ot, ListBox as zt, ListBoxItem as Gt, DialogTrigger as Wt, FileTrigger as Kt } from "react-aria-components";
14
+ import { IconCheck as Ut, IconX as qt, IconBold as jt, IconItalic as Yt, IconCode as Zt, IconTextSize as Qt, IconBlockquote as Xt, IconLink as Vt, IconCaretDownFilled as Jt, IconPlus as en, IconPhoto as tn, IconCodePlus as nn, IconLineDashed as rn } from "@tabler/icons-react";
15
+ import { $isAtNodeEnd as Ue, $setBlocksType as st, createDOMRange as on } from "@lexical/selection";
16
+ import { $createHeadingNode as at, HeadingNode as sn, $createQuoteNode as an, $isHeadingNode as Ie, $isQuoteNode as ln } from "@lexical/rich-text";
17
+ import { $toggleLink as cn, $isLinkNode as un } from "@lexical/link";
18
+ import { $isListNode as dn, $isListItemNode as qe, $insertList as je } from "@lexical/list";
19
+ import { $ as V, a as X, b as W, H as gn, c as fn, I as Ye, d as fe, e as hn, f as re, M as be, g as mn, h as Le, i as U, j as pn, k as Se } from "./ImageNode-Cqkp_4Y6.js";
20
+ import { $isCodeNode as ve, getCodeLanguages as bn, getLanguageFriendlyName as $e, registerCodeHighlighting as vn, $createCodeNode as Ze } from "@lexical/code";
21
+ import { NodeEventPlugin as He } from "@lexical/react/LexicalNodeEventPlugin";
22
+ import { ListPlugin as Cn } from "@lexical/react/LexicalListPlugin";
23
+ import { OnChangePlugin as yn } from "@lexical/react/LexicalOnChangePlugin";
24
+ import { ContentEditable as En } from "@lexical/react/LexicalContentEditable";
25
+ import { ClearEditorPlugin as Nn } from "@lexical/react/LexicalClearEditorPlugin";
26
26
  const B = -1e3;
27
- function yn(t, a, e = 0) {
28
- if (!a || !a.current)
27
+ function xn(n, s, e = 0) {
28
+ if (!s || !s.current)
29
29
  return console.error("Invalid popover reference"), {
30
30
  x: B,
31
31
  y: B
32
32
  };
33
- const n = a.current, { x: i, y: r } = t, { width: o, height: s } = n.getBoundingClientRect(), u = i - o / 2, m = r - s - e;
33
+ const t = s.current, { x: o, y: i } = n, { width: r, height: a } = t.getBoundingClientRect(), u = o - r / 2, m = i - a - e;
34
34
  return {
35
35
  x: u,
36
36
  y: m
37
37
  };
38
38
  }
39
- function Nn(t) {
40
- if (!t || typeof t.getBoundingClientRect != "function")
39
+ function Tn(n) {
40
+ if (!n || typeof n.getBoundingClientRect != "function")
41
41
  return console.error("Invalid DOM range"), null;
42
- const a = t.getBoundingClientRect(), e = a.left + a.width / 2, n = a.top + window.scrollY;
42
+ const s = n.getBoundingClientRect(), e = s.left + s.width / 2, t = s.top + window.scrollY;
43
43
  return {
44
44
  x: e,
45
- y: n
45
+ y: t
46
46
  };
47
47
  }
48
- function xn(t, a, e = 0) {
49
- if (!a || !a.current)
48
+ function An(n, s, e = 0) {
49
+ if (!s || !s.current)
50
50
  return console.error("Invalid popover reference"), {
51
51
  x: B,
52
52
  y: B
53
53
  };
54
- const { x: n, y: i } = t, r = a.current, { width: o, height: s } = r.getBoundingClientRect(), u = n - o - e, m = i - s / 2;
54
+ const { x: t, y: o } = n, i = s.current, { width: r, height: a } = i.getBoundingClientRect(), u = t - r - e, m = o - a / 2;
55
55
  return {
56
56
  x: u,
57
57
  y: m
58
58
  };
59
59
  }
60
- function En(t, a, e = 16, n = 12) {
61
- if (!a || !a.current)
60
+ function Ln(n, s, e = 16, t = 12) {
61
+ if (!s || !s.current)
62
62
  return console.error("Invalid popover reference"), {
63
63
  x: B,
64
64
  y: B
65
65
  };
66
- const i = a.current, { x: r, y: o } = t, { width: s } = i.getBoundingClientRect(), u = r - s - e, m = o + n;
66
+ const o = s.current, { x: i, y: r } = n, { width: a } = o.getBoundingClientRect(), u = i - a - e, m = r + t;
67
67
  return {
68
68
  x: u,
69
69
  y: m
70
70
  };
71
71
  }
72
- const it = Y("TOGGLE_HEADING_COMMAND"), ot = Y("TOGGLE_QUOTE_COMMAND"), st = Y("TOGGLE_LINK_COMMAND");
73
- function ve(t) {
74
- const a = t.anchor, e = t.focus, n = t.anchor.getNode(), i = t.focus.getNode();
75
- return n === i ? n : t.isBackward() ? Re(e) ? n : i : Re(a) ? n : i;
72
+ const lt = Z("TOGGLE_HEADING_COMMAND"), ct = Z("TOGGLE_QUOTE_COMMAND"), ut = Z("TOGGLE_LINK_COMMAND");
73
+ function Ee(n) {
74
+ const s = n.anchor, e = n.focus, t = n.anchor.getNode(), o = n.focus.getNode();
75
+ return t === o ? t : n.isBackward() ? Ue(e) ? t : o : Ue(s) ? t : o;
76
76
  }
77
- function Ue(t) {
78
- const a = I(t, $e);
79
- return a ? a.getTag() : null;
77
+ function Qe(n) {
78
+ const s = I(n, Ie);
79
+ return s ? s.getTag() : null;
80
80
  }
81
- function Tn(t) {
82
- const a = {
81
+ function Sn(n) {
82
+ const s = {
83
83
  isHeadingOne: !1,
84
84
  isHeadingTwo: !1,
85
85
  isHeadingThree: !1
86
- }, e = t.getNodes();
87
- if (!e.length) return a;
88
- const n = Ue(e[0]);
89
- if (!n) return a;
86
+ }, e = n.getNodes();
87
+ if (!e.length) return s;
88
+ const t = Qe(e[0]);
89
+ if (!t) return s;
90
90
  if (e.every(
91
- (r) => Ue(r) === n
91
+ (i) => Qe(i) === t
92
92
  )) {
93
- const r = {
93
+ const i = {
94
94
  h1: "isHeadingOne",
95
95
  h2: "isHeadingTwo",
96
96
  h3: "isHeadingThree"
97
- }[n];
98
- r && (a[r] = !0);
97
+ }[t];
98
+ i && (s[i] = !0);
99
99
  }
100
- return a;
100
+ return s;
101
101
  }
102
- function An() {
103
- const [t] = M();
104
- return C(() => t.registerCommand(
105
- it,
102
+ function $n() {
103
+ const [n] = M();
104
+ return b(() => n.registerCommand(
105
+ lt,
106
106
  (e) => {
107
- const { isHeadingOne: n, isHeadingTwo: i, isHeadingThree: r } = e, o = L();
108
- if (w(o)) {
109
- let s;
110
- n || i ? s = "h3" : r ? s = null : s = "h2", nt(
111
- o,
112
- () => s ? rt(s) : re()
107
+ const { isHeadingOne: t, isHeadingTwo: o, isHeadingThree: i } = e, r = $();
108
+ if (k(r)) {
109
+ let a;
110
+ t || o ? a = "h3" : i ? a = null : a = "h2", st(
111
+ r,
112
+ () => a ? at(a) : Ce()
113
113
  );
114
114
  }
115
115
  return !0;
116
116
  },
117
- $
118
- ), [t]), null;
117
+ F
118
+ ), [n]), null;
119
119
  }
120
- function Sn() {
121
- const [t] = M();
122
- return C(() => {
123
- const a = t.registerNodeTransform(
124
- nn,
120
+ function Fn() {
121
+ const [n] = M();
122
+ return b(() => {
123
+ const s = n.registerNodeTransform(
124
+ sn,
125
125
  (e) => {
126
126
  if (e.getTag() !== "h2")
127
127
  return;
128
- const i = fe().getFirstChild();
129
- if (i !== null && e.is(i)) {
130
- const r = e.getChildren(), o = rt("h1");
131
- o.append(...r), e.replace(o);
128
+ const o = me().getFirstChild();
129
+ if (o !== null && e.is(o)) {
130
+ const i = e.getChildren(), r = at("h1");
131
+ r.append(...i), e.replace(r);
132
132
  }
133
133
  }
134
134
  );
135
135
  return () => {
136
- a();
136
+ s();
137
137
  };
138
- }, [t]), null;
138
+ }, [n]), null;
139
139
  }
140
- function Fn(t) {
141
- return I(t, on);
140
+ function kn(n) {
141
+ return I(n, ln);
142
142
  }
143
- function $n(t) {
144
- const a = t.getNodes();
145
- return a.length ? a.length > 0 && a.every((e) => Fn(e)) : !1;
143
+ function wn(n) {
144
+ const s = n.getNodes();
145
+ return s.length ? s.length > 0 && s.every((e) => kn(e)) : !1;
146
146
  }
147
- function Ln() {
148
- const [t] = M();
149
- return C(() => t.registerCommand(
150
- ot,
147
+ function In() {
148
+ const [n] = M();
149
+ return b(() => n.registerCommand(
150
+ ct,
151
151
  (e) => {
152
- const n = L();
153
- return w(n) && nt(
154
- n,
155
- () => e.isQuote ? re() : rn()
152
+ const t = $();
153
+ return k(t) && st(
154
+ t,
155
+ () => e.isQuote ? Ce() : an()
156
156
  ), !0;
157
157
  },
158
- $
159
- ), [t]), null;
158
+ F
159
+ ), [n]), null;
160
160
  }
161
- function at(t) {
162
- if (!w(t))
161
+ function dt(n) {
162
+ if (!k(n))
163
163
  return null;
164
- const a = ve(t);
165
- return I(a, an);
164
+ const s = Ee(n);
165
+ return I(s, un);
166
166
  }
167
- function wn() {
168
- const [t] = M();
169
- return C(() => t.registerCommand(
170
- Tt,
167
+ function Mn() {
168
+ const [n] = M();
169
+ return b(() => n.registerCommand(
170
+ St,
171
171
  (e) => {
172
- const n = L(), i = at(n);
173
- return i && (e.metaKey || e.ctrlKey) ? (window.open(i.getURL(), "_blank"), !0) : !1;
172
+ const t = $(), o = dt(t);
173
+ return o && (e.metaKey || e.ctrlKey) ? (window.open(o.getURL(), "_blank"), !0) : !1;
174
174
  },
175
- Ve
176
- ), [t]), C(() => t.registerCommand(
177
- st,
178
- (e) => (sn(e), !0),
179
- $
180
- ), [t]), null;
175
+ ke
176
+ ), [n]), b(() => n.registerCommand(
177
+ ut,
178
+ (e) => (cn(e), !0),
179
+ F
180
+ ), [n]), null;
181
181
  }
182
- function kn() {
183
- const [t] = M(), a = "heading-above";
184
- return C(() => t.registerNodeTransform(
185
- ie,
186
- (n) => {
187
- const i = I(n, V) || I(n, ln);
188
- if (!i || $e(i))
182
+ function On() {
183
+ const [n] = M(), s = "heading-above";
184
+ return b(() => n.registerNodeTransform(
185
+ se,
186
+ (t) => {
187
+ const o = I(t, J) || I(t, dn);
188
+ if (!o || Ie(o))
189
189
  return;
190
- const r = i, o = t.getElementByKey(r.getKey());
191
- if (!o)
190
+ const i = o, r = n.getElementByKey(i.getKey());
191
+ if (!r)
192
192
  return;
193
- const s = r.getPreviousSibling(), u = $e(s), m = o.classList.contains(a);
194
- u && !m ? o.classList.add(a) : !u && m && o.classList.remove(a);
193
+ const a = i.getPreviousSibling(), u = Ie(a), m = r.classList.contains(s);
194
+ u && !m ? r.classList.add(s) : !u && m && r.classList.remove(s);
195
195
  }
196
- ), [t]), null;
196
+ ), [n]), null;
197
197
  }
198
- function In({ isHeadingOneFirst: t }) {
199
- return /* @__PURE__ */ D(Xe, { children: [
200
- /* @__PURE__ */ h(An, {}),
201
- t && /* @__PURE__ */ h(Sn, {}),
202
- /* @__PURE__ */ h(Ln, {}),
203
- /* @__PURE__ */ h(wn, {}),
204
- /* @__PURE__ */ h(kn, {})
198
+ function Pn({ isHeadingOneFirst: n }) {
199
+ return /* @__PURE__ */ D(rt, { children: [
200
+ /* @__PURE__ */ h($n, {}),
201
+ n && /* @__PURE__ */ h(Fn, {}),
202
+ /* @__PURE__ */ h(In, {}),
203
+ /* @__PURE__ */ h(Mn, {}),
204
+ /* @__PURE__ */ h(On, {})
205
205
  ] });
206
206
  }
207
- function Mn({ style: t, closeToolbar: a, existingLinkURL: e }) {
208
- const [n] = M(), [i, r] = O(e);
209
- return /* @__PURE__ */ D(Me, { style: t, "aria-details": "link toolbar", id: "link-toolbar", children: [
207
+ function _n({ style: n, closeToolbar: s, existingLinkURL: e }) {
208
+ const [t] = M(), [o, i] = O(e);
209
+ return /* @__PURE__ */ D(Be, { style: n, "aria-details": "link toolbar", id: "link-toolbar", children: [
210
210
  /* @__PURE__ */ h(
211
- _t,
211
+ Ht,
212
212
  {
213
213
  "aria-label": "url",
214
214
  autoFocus: !0,
215
- defaultValue: i,
216
- onChange: r,
217
- children: /* @__PURE__ */ h(et, { placeholder: "Enter Link" })
215
+ defaultValue: o,
216
+ onChange: i,
217
+ children: /* @__PURE__ */ h(it, { placeholder: "Enter Link" })
218
218
  }
219
219
  ),
220
- /* @__PURE__ */ D(ne, { "aria-label": "edit link", children: [
220
+ /* @__PURE__ */ D(oe, { "aria-label": "edit link", children: [
221
221
  /* @__PURE__ */ h(
222
- U,
222
+ q,
223
223
  {
224
224
  "aria-label": "Update link",
225
225
  onPress: () => {
226
- const o = i === "" ? null : i;
227
- n.dispatchCommand(st, o), a();
226
+ const r = o === "" ? null : o;
227
+ t.dispatchCommand(ut, r), s();
228
228
  },
229
- children: /* @__PURE__ */ h(Wt, { size: K })
229
+ children: /* @__PURE__ */ h(Ut, { size: K })
230
230
  }
231
231
  ),
232
- /* @__PURE__ */ h(U, { "aria-label": "Discard changes", onPress: a, children: /* @__PURE__ */ h(Gt, { size: K }) })
232
+ /* @__PURE__ */ h(q, { "aria-label": "Discard changes", onPress: s, children: /* @__PURE__ */ h(qt, { size: K }) })
233
233
  ] }),
234
234
  /* @__PURE__ */ h("div", { className: "inline-toolbar-pointer" })
235
235
  ] });
236
236
  }
237
- const K = 24, On = 16;
238
- function Pn({ editor: t }) {
239
- const [a, e] = O(null), [n, i] = O({
237
+ const K = 24, Dn = 16;
238
+ function Bn({ editor: n }) {
239
+ const [s, e] = O(null), [t, o] = O({
240
240
  x: B,
241
241
  y: B
242
- }), r = se(null), [o, s] = O({
242
+ }), i = ee(null), [r, a] = O({
243
243
  isBold: !1,
244
244
  isItalic: !1,
245
245
  isCode: !1,
@@ -247,76 +247,76 @@ function Pn({ editor: t }) {
247
247
  isHeadingTwo: !1,
248
248
  isHeadingThree: !1,
249
249
  isQuote: !1
250
- }), [u, m] = O(!1), [A, T] = O(0), [S, F] = O(""), N = (p) => {
251
- if (w(p)) {
252
- s({
250
+ }), [u, m] = O(!1), [A, L] = O(0), [S, T] = O(""), E = (p) => {
251
+ if (k(p)) {
252
+ a({
253
253
  isBold: p.hasFormat("bold"),
254
254
  isItalic: p.hasFormat("italic"),
255
255
  isCode: p.hasFormat("code"),
256
- isQuote: $n(p)
256
+ isQuote: wn(p)
257
257
  });
258
- const y = Tn(p);
259
- s((l) => ({
258
+ const y = Sn(p);
259
+ a((l) => ({
260
260
  ...l,
261
261
  ...y
262
262
  }));
263
- const E = at(p);
264
- F(E ? E.getURL() : "");
263
+ const x = dt(p);
264
+ T(x ? x.getURL() : "");
265
265
  }
266
266
  };
267
- return C(() => {
268
- t.read(() => {
269
- const p = L();
270
- N(p);
267
+ return b(() => {
268
+ n.read(() => {
269
+ const p = $();
270
+ E(p);
271
271
  });
272
- }, [t]), C(() => t.registerUpdateListener(
272
+ }, [n]), b(() => n.registerUpdateListener(
273
273
  ({ editorState: y }) => {
274
274
  y.read(() => {
275
- const E = L();
276
- N(E);
275
+ const x = $();
276
+ E(x);
277
277
  });
278
278
  }
279
- ), [t]), C(() => {
280
- t.read(() => {
281
- const p = L();
282
- if (w(p)) {
283
- const [y, E] = p.getStartEndPoints(), [l, c] = [
279
+ ), [n]), b(() => {
280
+ n.read(() => {
281
+ const p = $();
282
+ if (k(p)) {
283
+ const [y, x] = p.getStartEndPoints(), [l, c] = [
284
284
  y.getNode(),
285
- E.getNode()
286
- ], [d, g] = At(p), f = tn(
287
- t,
285
+ x.getNode()
286
+ ], [d, g] = $t(p), f = on(
287
+ n,
288
288
  l,
289
289
  d,
290
290
  c,
291
291
  g
292
292
  );
293
- e(Nn(f));
293
+ e(Tn(f));
294
294
  }
295
295
  });
296
- }, [t, o]), C(() => {
296
+ }, [n, r]), b(() => {
297
297
  var p;
298
- a ? (i(
299
- yn(
300
- a,
301
- r,
302
- On
298
+ s ? (o(
299
+ xn(
300
+ s,
301
+ i,
302
+ Dn
303
303
  )
304
304
  ), setTimeout(() => {
305
305
  var y;
306
- (y = r.current) == null || y.classList.add("visible");
307
- }, 50)) : (p = r.current) == null || p.classList.remove("visible");
308
- }, [a]), Ot(() => {
309
- if (r.current) {
310
- const p = window.getComputedStyle(r.current), y = parseFloat(p.width);
311
- T(y);
306
+ (y = i.current) == null || y.classList.add("visible");
307
+ }, 50)) : (p = i.current) == null || p.classList.remove("visible");
308
+ }, [s]), Dt(() => {
309
+ if (i.current) {
310
+ const p = window.getComputedStyle(i.current), y = parseFloat(p.width);
311
+ L(y);
312
312
  }
313
- }, [a]), a && (u ? /* @__PURE__ */ h(
314
- Mn,
313
+ }, [s]), s && (u ? /* @__PURE__ */ h(
314
+ _n,
315
315
  {
316
316
  style: {
317
317
  position: "absolute",
318
- top: n.y,
319
- left: n.x,
318
+ top: t.y,
319
+ left: t.x,
320
320
  width: A
321
321
  },
322
322
  closeToolbar: () => {
@@ -325,77 +325,77 @@ function Pn({ editor: t }) {
325
325
  existingLinkURL: S
326
326
  }
327
327
  ) : /* @__PURE__ */ D(
328
- Me,
328
+ Be,
329
329
  {
330
330
  style: {
331
331
  position: "absolute",
332
- top: n.y,
333
- left: n.x
332
+ top: t.y,
333
+ left: t.x
334
334
  },
335
335
  "aria-label": "Text formatting",
336
336
  id: "inline-toolbar",
337
- ref: r,
337
+ ref: i,
338
338
  children: [
339
- /* @__PURE__ */ D(ne, { "aria-label": "Style", children: [
339
+ /* @__PURE__ */ D(oe, { "aria-label": "Style", children: [
340
340
  /* @__PURE__ */ h(
341
- ee,
341
+ ne,
342
342
  {
343
343
  "aria-label": "Bold",
344
- isSelected: o.isBold,
345
- isDisabled: o.isCode || o.isHeadingOne || o.isHeadingTwo || o.isHeadingThree,
346
- onChange: () => t.dispatchCommand(xe, "bold"),
347
- children: /* @__PURE__ */ h(Kt, { size: K })
344
+ isSelected: r.isBold,
345
+ isDisabled: r.isCode || r.isHeadingOne || r.isHeadingTwo || r.isHeadingThree,
346
+ onChange: () => n.dispatchCommand(Ae, "bold"),
347
+ children: /* @__PURE__ */ h(jt, { size: K })
348
348
  }
349
349
  ),
350
350
  /* @__PURE__ */ h(
351
- ee,
351
+ ne,
352
352
  {
353
353
  "aria-label": "Italic",
354
- isSelected: o.isItalic,
355
- isDisabled: o.isCode || o.isHeadingOne,
356
- onChange: () => t.dispatchCommand(xe, "italic"),
357
- children: /* @__PURE__ */ h(qt, { size: K })
354
+ isSelected: r.isItalic,
355
+ isDisabled: r.isCode || r.isHeadingOne,
356
+ onChange: () => n.dispatchCommand(Ae, "italic"),
357
+ children: /* @__PURE__ */ h(Yt, { size: K })
358
358
  }
359
359
  ),
360
360
  /* @__PURE__ */ h(
361
- ee,
361
+ ne,
362
362
  {
363
363
  "aria-label": "inline-code",
364
- isDisabled: o.isHeadingOne,
365
- isSelected: o.isCode,
366
- onChange: () => t.dispatchCommand(xe, "code"),
367
- children: /* @__PURE__ */ h(Ut, { size: K })
364
+ isDisabled: r.isHeadingOne,
365
+ isSelected: r.isCode,
366
+ onChange: () => n.dispatchCommand(Ae, "code"),
367
+ children: /* @__PURE__ */ h(Zt, { size: K })
368
368
  }
369
369
  )
370
370
  ] }),
371
- /* @__PURE__ */ h(He, { orientation: "vertical" }),
372
- /* @__PURE__ */ D(ne, { "aria-label": "Text Blocks", children: [
371
+ /* @__PURE__ */ h(Ke, { orientation: "vertical" }),
372
+ /* @__PURE__ */ D(oe, { "aria-label": "Text Blocks", children: [
373
373
  /* @__PURE__ */ h(
374
- ee,
374
+ ne,
375
375
  {
376
376
  "aria-label": "Heading",
377
- isSelected: o.isHeadingOne || o.isHeadingTwo || o.isHeadingThree,
378
- onChange: () => t.dispatchCommand(it, o),
379
- children: /* @__PURE__ */ h(jt, { size: K })
377
+ isSelected: r.isHeadingOne || r.isHeadingTwo || r.isHeadingThree,
378
+ onChange: () => n.dispatchCommand(lt, r),
379
+ children: /* @__PURE__ */ h(Qt, { size: K })
380
380
  }
381
381
  ),
382
382
  /* @__PURE__ */ h(
383
- ee,
383
+ ne,
384
384
  {
385
385
  "aria-label": "Quote",
386
- isSelected: o.isQuote,
387
- onChange: () => t.dispatchCommand(ot, o),
388
- children: /* @__PURE__ */ h(Yt, { size: K })
386
+ isSelected: r.isQuote,
387
+ onChange: () => n.dispatchCommand(ct, r),
388
+ children: /* @__PURE__ */ h(Xt, { size: K })
389
389
  }
390
390
  )
391
391
  ] }),
392
- /* @__PURE__ */ h(He, { orientation: "vertical" }),
393
- /* @__PURE__ */ h(ne, { "aria-label": "Links", children: /* @__PURE__ */ h(
394
- U,
392
+ /* @__PURE__ */ h(Ke, { orientation: "vertical" }),
393
+ /* @__PURE__ */ h(oe, { "aria-label": "Links", children: /* @__PURE__ */ h(
394
+ q,
395
395
  {
396
396
  onPress: () => m(!0),
397
- isDisabled: o.isHeadingOne,
398
- children: /* @__PURE__ */ h(Zt, { size: K })
397
+ isDisabled: r.isHeadingOne,
398
+ children: /* @__PURE__ */ h(Vt, { size: K })
399
399
  }
400
400
  ) }),
401
401
  /* @__PURE__ */ h("div", { className: "inline-toolbar-pointer" })
@@ -403,38 +403,42 @@ function Pn({ editor: t }) {
403
403
  }
404
404
  ));
405
405
  }
406
- const _n = document.body;
407
- function Dn() {
408
- const [t, a] = O(!1), [e] = M();
409
- return C(() => e.registerCommand(
410
- j,
406
+ const Hn = document.body;
407
+ function Rn() {
408
+ const [n, s] = O(!1), [e] = M();
409
+ return b(() => e.registerEditableListener((t) => {
410
+ t || s(!1);
411
+ }), [e]), b(() => e.registerCommand(
412
+ Y,
411
413
  () => {
412
- const i = L();
413
- if (!w(i) || i.isCollapsed())
414
- return a(!1), !1;
415
- const r = i.getNodes(), o = r.some((m) => X(m)), s = r.length === 1 && (Q(r[0]) || I(r[0], G)), u = r.some(
416
- (m) => I(m, pe)
414
+ if (!e.isEditable())
415
+ return s(!1), !1;
416
+ const o = $();
417
+ if (!k(o) || o.isCollapsed())
418
+ return s(!1), !1;
419
+ const i = o.getNodes(), r = i.some((m) => V(m)), a = i.length === 1 && (X(i[0]) || I(i[0], W)), u = i.some(
420
+ (m) => I(m, ve)
417
421
  );
418
- return a(!o && !s && !u), !1;
422
+ return s(!r && !a && !u), !1;
419
423
  },
420
- $
421
- ), [e]), C(() => e.registerCommand(
422
- be,
424
+ F
425
+ ), [e]), b(() => e.registerCommand(
426
+ ae,
423
427
  () => (setTimeout(() => {
424
- const i = document.getElementById("inline-toolbar"), r = document.getElementById("link-toolbar"), o = document.activeElement;
425
- i && (i === o || i.contains(o)) || r && (r === o || r.contains(o)) || a(!1);
428
+ const o = document.getElementById("inline-toolbar"), i = document.getElementById("link-toolbar"), r = document.activeElement;
429
+ o && (o === r || o.contains(r)) || i && (i === r || i.contains(r)) || s(!1);
426
430
  }, 0), !1),
427
- $
428
- ), [e]), t && Ie(/* @__PURE__ */ h(Pn, { editor: e }), _n);
431
+ F
432
+ ), [e]), n && De(/* @__PURE__ */ h(Bn, { editor: e }), Hn);
429
433
  }
430
- var je = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
431
- function Bn(t) {
432
- return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
434
+ var Xe = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
435
+ function zn(n) {
436
+ return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, "default") ? n.default : n;
433
437
  }
434
- var Se = { exports: {} }, Ye;
435
- function Hn() {
436
- return Ye || (Ye = 1, function(t) {
437
- var a = typeof window < "u" ? window : typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope ? self : {};
438
+ var Fe = { exports: {} }, Ve;
439
+ function Gn() {
440
+ return Ve || (Ve = 1, function(n) {
441
+ var s = typeof window < "u" ? window : typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope ? self : {};
438
442
  /**
439
443
  * Prism: Lightweight, robust, elegant syntax highlighting
440
444
  *
@@ -443,8 +447,8 @@ function Hn() {
443
447
  * @namespace
444
448
  * @public
445
449
  */
446
- var e = function(n) {
447
- var i = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i, r = 0, o = {}, s = {
450
+ var e = function(t) {
451
+ var o = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i, i = 0, r = {}, a = {
448
452
  /**
449
453
  * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the
450
454
  * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load
@@ -466,7 +470,7 @@ function Hn() {
466
470
  * @memberof Prism
467
471
  * @public
468
472
  */
469
- manual: n.Prism && n.Prism.manual,
473
+ manual: t.Prism && t.Prism.manual,
470
474
  /**
471
475
  * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses
472
476
  * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your
@@ -488,7 +492,7 @@ function Hn() {
488
492
  * @memberof Prism
489
493
  * @public
490
494
  */
491
- disableWorkerMessageHandler: n.Prism && n.Prism.disableWorkerMessageHandler,
495
+ disableWorkerMessageHandler: t.Prism && t.Prism.disableWorkerMessageHandler,
492
496
  /**
493
497
  * A namespace for utility methods.
494
498
  *
@@ -528,7 +532,7 @@ function Hn() {
528
532
  * @returns {number}
529
533
  */
530
534
  objId: function(l) {
531
- return l.__id || Object.defineProperty(l, "__id", { value: ++r }), l.__id;
535
+ return l.__id || Object.defineProperty(l, "__id", { value: ++i }), l.__id;
532
536
  },
533
537
  /**
534
538
  * Creates a deep clone of the given object.
@@ -543,23 +547,23 @@ function Hn() {
543
547
  clone: function l(c, d) {
544
548
  d = d || {};
545
549
  var g, f;
546
- switch (s.util.type(c)) {
550
+ switch (a.util.type(c)) {
547
551
  case "Object":
548
- if (f = s.util.objId(c), d[f])
552
+ if (f = a.util.objId(c), d[f])
549
553
  return d[f];
550
554
  g = /** @type {Record<string, any>} */
551
555
  {}, d[f] = g;
552
- for (var v in c)
553
- c.hasOwnProperty(v) && (g[v] = l(c[v], d));
556
+ for (var C in c)
557
+ c.hasOwnProperty(C) && (g[C] = l(c[C], d));
554
558
  return (
555
559
  /** @type {any} */
556
560
  g
557
561
  );
558
562
  case "Array":
559
- return f = s.util.objId(c), d[f] ? d[f] : (g = [], d[f] = g, /** @type {Array} */
563
+ return f = a.util.objId(c), d[f] ? d[f] : (g = [], d[f] = g, /** @type {Array} */
560
564
  /** @type {any} */
561
- c.forEach(function(x, b) {
562
- g[b] = l(x, d);
565
+ c.forEach(function(N, v) {
566
+ g[v] = l(N, d);
563
567
  }), /** @type {any} */
564
568
  g);
565
569
  default:
@@ -576,7 +580,7 @@ function Hn() {
576
580
  */
577
581
  getLanguage: function(l) {
578
582
  for (; l; ) {
579
- var c = i.exec(l.className);
583
+ var c = o.exec(l.className);
580
584
  if (c)
581
585
  return c[1].toLowerCase();
582
586
  l = l.parentElement;
@@ -591,7 +595,7 @@ function Hn() {
591
595
  * @returns {void}
592
596
  */
593
597
  setLanguage: function(l, c) {
594
- l.className = l.className.replace(RegExp(i, "gi"), ""), l.classList.add("language-" + c);
598
+ l.className = l.className.replace(RegExp(o, "gi"), ""), l.classList.add("language-" + c);
595
599
  },
596
600
  /**
597
601
  * Returns the script element that is currently executing.
@@ -663,10 +667,10 @@ function Hn() {
663
667
  /**
664
668
  * The grammar for plain, unformatted text.
665
669
  */
666
- plain: o,
667
- plaintext: o,
668
- text: o,
669
- txt: o,
670
+ plain: r,
671
+ plaintext: r,
672
+ text: r,
673
+ txt: r,
670
674
  /**
671
675
  * Creates a deep copy of the language with the given id and appends the given tokens.
672
676
  *
@@ -696,7 +700,7 @@ function Hn() {
696
700
  * });
697
701
  */
698
702
  extend: function(l, c) {
699
- var d = s.util.clone(s.languages[l]);
703
+ var d = a.util.clone(a.languages[l]);
700
704
  for (var g in c)
701
705
  d[g] = c[g];
702
706
  return d;
@@ -778,29 +782,29 @@ function Hn() {
778
782
  */
779
783
  insertBefore: function(l, c, d, g) {
780
784
  g = g || /** @type {any} */
781
- s.languages;
782
- var f = g[l], v = {};
783
- for (var x in f)
784
- if (f.hasOwnProperty(x)) {
785
- if (x == c)
786
- for (var b in d)
787
- d.hasOwnProperty(b) && (v[b] = d[b]);
788
- d.hasOwnProperty(x) || (v[x] = f[x]);
785
+ a.languages;
786
+ var f = g[l], C = {};
787
+ for (var N in f)
788
+ if (f.hasOwnProperty(N)) {
789
+ if (N == c)
790
+ for (var v in d)
791
+ d.hasOwnProperty(v) && (C[v] = d[v]);
792
+ d.hasOwnProperty(N) || (C[N] = f[N]);
789
793
  }
790
- var k = g[l];
791
- return g[l] = v, s.languages.DFS(s.languages, function(P, z) {
792
- z === k && P != l && (this[P] = v);
793
- }), v;
794
+ var w = g[l];
795
+ return g[l] = C, a.languages.DFS(a.languages, function(P, z) {
796
+ z === w && P != l && (this[P] = C);
797
+ }), C;
794
798
  },
795
799
  // Traverse a language definition with Depth First Search
796
800
  DFS: function l(c, d, g, f) {
797
801
  f = f || {};
798
- var v = s.util.objId;
799
- for (var x in c)
800
- if (c.hasOwnProperty(x)) {
801
- d.call(c, x, c[x], g || x);
802
- var b = c[x], k = s.util.type(b);
803
- k === "Object" && !f[v(b)] ? (f[v(b)] = !0, l(b, d, null, f)) : k === "Array" && !f[v(b)] && (f[v(b)] = !0, l(b, d, x, f));
802
+ var C = a.util.objId;
803
+ for (var N in c)
804
+ if (c.hasOwnProperty(N)) {
805
+ d.call(c, N, c[N], g || N);
806
+ var v = c[N], w = a.util.type(v);
807
+ w === "Object" && !f[C(v)] ? (f[C(v)] = !0, l(v, d, null, f)) : w === "Array" && !f[C(v)] && (f[C(v)] = !0, l(v, d, N, f));
804
808
  }
805
809
  }
806
810
  },
@@ -818,7 +822,7 @@ function Hn() {
818
822
  * @public
819
823
  */
820
824
  highlightAll: function(l, c) {
821
- s.highlightAllUnder(document, l, c);
825
+ a.highlightAllUnder(document, l, c);
822
826
  },
823
827
  /**
824
828
  * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls
@@ -841,9 +845,9 @@ function Hn() {
841
845
  container: l,
842
846
  selector: 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
843
847
  };
844
- s.hooks.run("before-highlightall", g), g.elements = Array.prototype.slice.apply(g.container.querySelectorAll(g.selector)), s.hooks.run("before-all-elements-highlight", g);
845
- for (var f = 0, v; v = g.elements[f++]; )
846
- s.highlightElement(v, c === !0, g.callback);
848
+ a.hooks.run("before-highlightall", g), g.elements = Array.prototype.slice.apply(g.container.querySelectorAll(g.selector)), a.hooks.run("before-all-elements-highlight", g);
849
+ for (var f = 0, C; C = g.elements[f++]; )
850
+ a.highlightElement(C, c === !0, g.callback);
847
851
  },
848
852
  /**
849
853
  * Highlights the code inside a single element.
@@ -874,38 +878,38 @@ function Hn() {
874
878
  * @public
875
879
  */
876
880
  highlightElement: function(l, c, d) {
877
- var g = s.util.getLanguage(l), f = s.languages[g];
878
- s.util.setLanguage(l, g);
879
- var v = l.parentElement;
880
- v && v.nodeName.toLowerCase() === "pre" && s.util.setLanguage(v, g);
881
- var x = l.textContent, b = {
881
+ var g = a.util.getLanguage(l), f = a.languages[g];
882
+ a.util.setLanguage(l, g);
883
+ var C = l.parentElement;
884
+ C && C.nodeName.toLowerCase() === "pre" && a.util.setLanguage(C, g);
885
+ var N = l.textContent, v = {
882
886
  element: l,
883
887
  language: g,
884
888
  grammar: f,
885
- code: x
889
+ code: N
886
890
  };
887
- function k(z) {
888
- b.highlightedCode = z, s.hooks.run("before-insert", b), b.element.innerHTML = b.highlightedCode, s.hooks.run("after-highlight", b), s.hooks.run("complete", b), d && d.call(b.element);
891
+ function w(z) {
892
+ v.highlightedCode = z, a.hooks.run("before-insert", v), v.element.innerHTML = v.highlightedCode, a.hooks.run("after-highlight", v), a.hooks.run("complete", v), d && d.call(v.element);
889
893
  }
890
- if (s.hooks.run("before-sanity-check", b), v = b.element.parentElement, v && v.nodeName.toLowerCase() === "pre" && !v.hasAttribute("tabindex") && v.setAttribute("tabindex", "0"), !b.code) {
891
- s.hooks.run("complete", b), d && d.call(b.element);
894
+ if (a.hooks.run("before-sanity-check", v), C = v.element.parentElement, C && C.nodeName.toLowerCase() === "pre" && !C.hasAttribute("tabindex") && C.setAttribute("tabindex", "0"), !v.code) {
895
+ a.hooks.run("complete", v), d && d.call(v.element);
892
896
  return;
893
897
  }
894
- if (s.hooks.run("before-highlight", b), !b.grammar) {
895
- k(s.util.encode(b.code));
898
+ if (a.hooks.run("before-highlight", v), !v.grammar) {
899
+ w(a.util.encode(v.code));
896
900
  return;
897
901
  }
898
- if (c && n.Worker) {
899
- var P = new Worker(s.filename);
902
+ if (c && t.Worker) {
903
+ var P = new Worker(a.filename);
900
904
  P.onmessage = function(z) {
901
- k(z.data);
905
+ w(z.data);
902
906
  }, P.postMessage(JSON.stringify({
903
- language: b.language,
904
- code: b.code,
907
+ language: v.language,
908
+ code: v.code,
905
909
  immediateClose: !0
906
910
  }));
907
911
  } else
908
- k(s.highlight(b.code, b.grammar, b.language));
912
+ w(a.highlight(v.code, v.grammar, v.language));
909
913
  },
910
914
  /**
911
915
  * Low-level function, only use if you know what you’re doing. It accepts a string of text as input
@@ -933,9 +937,9 @@ function Hn() {
933
937
  grammar: c,
934
938
  language: d
935
939
  };
936
- if (s.hooks.run("before-tokenize", g), !g.grammar)
940
+ if (a.hooks.run("before-tokenize", g), !g.grammar)
937
941
  throw new Error('The language "' + g.language + '" has no grammar.');
938
- return g.tokens = s.tokenize(g.code, g.grammar), s.hooks.run("after-tokenize", g), u.stringify(s.util.encode(g.tokens), g.language);
942
+ return g.tokens = a.tokenize(g.code, g.grammar), a.hooks.run("after-tokenize", g), u.stringify(a.util.encode(g.tokens), g.language);
939
943
  },
940
944
  /**
941
945
  * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input
@@ -968,8 +972,8 @@ function Hn() {
968
972
  c[g] = d[g];
969
973
  delete c.rest;
970
974
  }
971
- var f = new T();
972
- return S(f, f.head, l), A(l, f, c, f.head, 0), N(f);
975
+ var f = new L();
976
+ return S(f, f.head, l), A(l, f, c, f.head, 0), E(f);
973
977
  },
974
978
  /**
975
979
  * @namespace
@@ -991,7 +995,7 @@ function Hn() {
991
995
  * @public
992
996
  */
993
997
  add: function(l, c) {
994
- var d = s.hooks.all;
998
+ var d = a.hooks.all;
995
999
  d[l] = d[l] || [], d[l].push(c);
996
1000
  },
997
1001
  /**
@@ -1004,7 +1008,7 @@ function Hn() {
1004
1008
  * @public
1005
1009
  */
1006
1010
  run: function(l, c) {
1007
- var d = s.hooks.all[l];
1011
+ var d = a.hooks.all[l];
1008
1012
  if (!(!d || !d.length))
1009
1013
  for (var g = 0, f; f = d[g++]; )
1010
1014
  f(c);
@@ -1012,7 +1016,7 @@ function Hn() {
1012
1016
  },
1013
1017
  Token: u
1014
1018
  };
1015
- n.Prism = s;
1019
+ t.Prism = a;
1016
1020
  function u(l, c, d, g) {
1017
1021
  this.type = l, this.content = c, this.alias = d, this.length = (g || "").length | 0;
1018
1022
  }
@@ -1021,8 +1025,8 @@ function Hn() {
1021
1025
  return c;
1022
1026
  if (Array.isArray(c)) {
1023
1027
  var g = "";
1024
- return c.forEach(function(k) {
1025
- g += l(k, d);
1028
+ return c.forEach(function(w) {
1029
+ g += l(w, d);
1026
1030
  }), g;
1027
1031
  }
1028
1032
  var f = {
@@ -1032,72 +1036,72 @@ function Hn() {
1032
1036
  classes: ["token", c.type],
1033
1037
  attributes: {},
1034
1038
  language: d
1035
- }, v = c.alias;
1036
- v && (Array.isArray(v) ? Array.prototype.push.apply(f.classes, v) : f.classes.push(v)), s.hooks.run("wrap", f);
1037
- var x = "";
1038
- for (var b in f.attributes)
1039
- x += " " + b + '="' + (f.attributes[b] || "").replace(/"/g, "&quot;") + '"';
1040
- return "<" + f.tag + ' class="' + f.classes.join(" ") + '"' + x + ">" + f.content + "</" + f.tag + ">";
1039
+ }, C = c.alias;
1040
+ C && (Array.isArray(C) ? Array.prototype.push.apply(f.classes, C) : f.classes.push(C)), a.hooks.run("wrap", f);
1041
+ var N = "";
1042
+ for (var v in f.attributes)
1043
+ N += " " + v + '="' + (f.attributes[v] || "").replace(/"/g, "&quot;") + '"';
1044
+ return "<" + f.tag + ' class="' + f.classes.join(" ") + '"' + N + ">" + f.content + "</" + f.tag + ">";
1041
1045
  };
1042
1046
  function m(l, c, d, g) {
1043
1047
  l.lastIndex = c;
1044
1048
  var f = l.exec(d);
1045
1049
  if (f && g && f[1]) {
1046
- var v = f[1].length;
1047
- f.index += v, f[0] = f[0].slice(v);
1050
+ var C = f[1].length;
1051
+ f.index += C, f[0] = f[0].slice(C);
1048
1052
  }
1049
1053
  return f;
1050
1054
  }
1051
- function A(l, c, d, g, f, v) {
1052
- for (var x in d)
1053
- if (!(!d.hasOwnProperty(x) || !d[x])) {
1054
- var b = d[x];
1055
- b = Array.isArray(b) ? b : [b];
1056
- for (var k = 0; k < b.length; ++k) {
1057
- if (v && v.cause == x + "," + k)
1055
+ function A(l, c, d, g, f, C) {
1056
+ for (var N in d)
1057
+ if (!(!d.hasOwnProperty(N) || !d[N])) {
1058
+ var v = d[N];
1059
+ v = Array.isArray(v) ? v : [v];
1060
+ for (var w = 0; w < v.length; ++w) {
1061
+ if (C && C.cause == N + "," + w)
1058
1062
  return;
1059
- var P = b[k], z = P.inside, Pe = !!P.lookbehind, _e = !!P.greedy, mt = P.alias;
1060
- if (_e && !P.pattern.global) {
1061
- var pt = P.pattern.toString().match(/[imsuy]*$/)[0];
1062
- P.pattern = RegExp(P.pattern.source, pt + "g");
1063
+ var P = v[w], z = P.inside, Re = !!P.lookbehind, ze = !!P.greedy, vt = P.alias;
1064
+ if (ze && !P.pattern.global) {
1065
+ var Ct = P.pattern.toString().match(/[imsuy]*$/)[0];
1066
+ P.pattern = RegExp(P.pattern.source, Ct + "g");
1063
1067
  }
1064
- for (var De = P.pattern || P, _ = g.next, R = f; _ !== c.tail && !(v && R >= v.reach); R += _.value.length, _ = _.next) {
1065
- var Z = _.value;
1068
+ for (var Ge = P.pattern || P, _ = g.next, R = f; _ !== c.tail && !(C && R >= C.reach); R += _.value.length, _ = _.next) {
1069
+ var Q = _.value;
1066
1070
  if (c.length > l.length)
1067
1071
  return;
1068
- if (!(Z instanceof u)) {
1069
- var ae = 1, H;
1070
- if (_e) {
1071
- if (H = m(De, R, l, Pe), !H || H.index >= l.length)
1072
+ if (!(Q instanceof u)) {
1073
+ var le = 1, H;
1074
+ if (ze) {
1075
+ if (H = m(Ge, R, l, Re), !H || H.index >= l.length)
1072
1076
  break;
1073
- var le = H.index, bt = H.index + H[0].length, W = R;
1074
- for (W += _.value.length; le >= W; )
1075
- _ = _.next, W += _.value.length;
1076
- if (W -= _.value.length, R = W, _.value instanceof u)
1077
+ var ce = H.index, yt = H.index + H[0].length, G = R;
1078
+ for (G += _.value.length; ce >= G; )
1079
+ _ = _.next, G += _.value.length;
1080
+ if (G -= _.value.length, R = G, _.value instanceof u)
1077
1081
  continue;
1078
- for (var J = _; J !== c.tail && (W < bt || typeof J.value == "string"); J = J.next)
1079
- ae++, W += J.value.length;
1080
- ae--, Z = l.slice(R, W), H.index -= R;
1081
- } else if (H = m(De, 0, Z, Pe), !H)
1082
+ for (var te = _; te !== c.tail && (G < yt || typeof te.value == "string"); te = te.next)
1083
+ le++, G += te.value.length;
1084
+ le--, Q = l.slice(R, G), H.index -= R;
1085
+ } else if (H = m(Ge, 0, Q, Re), !H)
1082
1086
  continue;
1083
- var le = H.index, ce = H[0], Ce = Z.slice(0, le), Be = Z.slice(le + ce.length), ye = R + Z.length;
1084
- v && ye > v.reach && (v.reach = ye);
1085
- var ue = _.prev;
1086
- Ce && (ue = S(c, ue, Ce), R += Ce.length), F(c, ue, ae);
1087
- var vt = new u(x, z ? s.tokenize(ce, z) : ce, mt, ce);
1088
- if (_ = S(c, ue, vt), Be && S(c, _, Be), ae > 1) {
1089
- var Ne = {
1090
- cause: x + "," + k,
1091
- reach: ye
1087
+ var ce = H.index, ue = H[0], Ne = Q.slice(0, ce), We = Q.slice(ce + ue.length), xe = R + Q.length;
1088
+ C && xe > C.reach && (C.reach = xe);
1089
+ var de = _.prev;
1090
+ Ne && (de = S(c, de, Ne), R += Ne.length), T(c, de, le);
1091
+ var Et = new u(N, z ? a.tokenize(ue, z) : ue, vt, ue);
1092
+ if (_ = S(c, de, Et), We && S(c, _, We), le > 1) {
1093
+ var Te = {
1094
+ cause: N + "," + w,
1095
+ reach: xe
1092
1096
  };
1093
- A(l, c, d, _.prev, R, Ne), v && Ne.reach > v.reach && (v.reach = Ne.reach);
1097
+ A(l, c, d, _.prev, R, Te), C && Te.reach > C.reach && (C.reach = Te.reach);
1094
1098
  }
1095
1099
  }
1096
1100
  }
1097
1101
  }
1098
1102
  }
1099
1103
  }
1100
- function T() {
1104
+ function L() {
1101
1105
  var l = { value: null, prev: null, next: null }, c = { value: null, prev: l, next: null };
1102
1106
  l.next = c, this.head = l, this.tail = c, this.length = 0;
1103
1107
  }
@@ -1105,33 +1109,33 @@ function Hn() {
1105
1109
  var g = c.next, f = { value: d, prev: c, next: g };
1106
1110
  return c.next = f, g.prev = f, l.length++, f;
1107
1111
  }
1108
- function F(l, c, d) {
1112
+ function T(l, c, d) {
1109
1113
  for (var g = c.next, f = 0; f < d && g !== l.tail; f++)
1110
1114
  g = g.next;
1111
1115
  c.next = g, g.prev = c, l.length -= f;
1112
1116
  }
1113
- function N(l) {
1117
+ function E(l) {
1114
1118
  for (var c = [], d = l.head.next; d !== l.tail; )
1115
1119
  c.push(d.value), d = d.next;
1116
1120
  return c;
1117
1121
  }
1118
- if (!n.document)
1119
- return n.addEventListener && (s.disableWorkerMessageHandler || n.addEventListener("message", function(l) {
1122
+ if (!t.document)
1123
+ return t.addEventListener && (a.disableWorkerMessageHandler || t.addEventListener("message", function(l) {
1120
1124
  var c = JSON.parse(l.data), d = c.language, g = c.code, f = c.immediateClose;
1121
- n.postMessage(s.highlight(g, s.languages[d], d)), f && n.close();
1122
- }, !1)), s;
1123
- var p = s.util.currentScript();
1124
- p && (s.filename = p.src, p.hasAttribute("data-manual") && (s.manual = !0));
1125
+ t.postMessage(a.highlight(g, a.languages[d], d)), f && t.close();
1126
+ }, !1)), a;
1127
+ var p = a.util.currentScript();
1128
+ p && (a.filename = p.src, p.hasAttribute("data-manual") && (a.manual = !0));
1125
1129
  function y() {
1126
- s.manual || s.highlightAll();
1130
+ a.manual || a.highlightAll();
1127
1131
  }
1128
- if (!s.manual) {
1129
- var E = document.readyState;
1130
- E === "loading" || E === "interactive" && p && p.defer ? document.addEventListener("DOMContentLoaded", y) : window.requestAnimationFrame ? window.requestAnimationFrame(y) : window.setTimeout(y, 16);
1132
+ if (!a.manual) {
1133
+ var x = document.readyState;
1134
+ x === "loading" || x === "interactive" && p && p.defer ? document.addEventListener("DOMContentLoaded", y) : window.requestAnimationFrame ? window.requestAnimationFrame(y) : window.setTimeout(y, 16);
1131
1135
  }
1132
- return s;
1133
- }(a);
1134
- t.exports && (t.exports = e), typeof je < "u" && (je.Prism = e), e.languages.markup = {
1136
+ return a;
1137
+ }(s);
1138
+ n.exports && (n.exports = e), typeof Xe < "u" && (Xe.Prism = e), e.languages.markup = {
1135
1139
  comment: {
1136
1140
  pattern: /<!--(?:(?!<!--)[\s\S])*?-->/,
1137
1141
  greedy: !0
@@ -1208,8 +1212,8 @@ function Hn() {
1208
1212
  },
1209
1213
  /&#x?[\da-f]{1,8};/i
1210
1214
  ]
1211
- }, e.languages.markup.tag.inside["attr-value"].inside.entity = e.languages.markup.entity, e.languages.markup.doctype.inside["internal-subset"].inside = e.languages.markup, e.hooks.add("wrap", function(n) {
1212
- n.type === "entity" && (n.attributes.title = n.content.replace(/&amp;/, "&"));
1215
+ }, e.languages.markup.tag.inside["attr-value"].inside.entity = e.languages.markup.entity, e.languages.markup.doctype.inside["internal-subset"].inside = e.languages.markup, e.hooks.add("wrap", function(t) {
1216
+ t.type === "entity" && (t.attributes.title = t.content.replace(/&amp;/, "&"));
1213
1217
  }), Object.defineProperty(e.languages.markup.tag, "addInlined", {
1214
1218
  /**
1215
1219
  * Adds an inlined language to markup.
@@ -1222,31 +1226,31 @@ function Hn() {
1222
1226
  * @example
1223
1227
  * addInlined('style', 'css');
1224
1228
  */
1225
- value: function(i, r) {
1226
- var o = {};
1227
- o["language-" + r] = {
1229
+ value: function(o, i) {
1230
+ var r = {};
1231
+ r["language-" + i] = {
1228
1232
  pattern: /(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,
1229
1233
  lookbehind: !0,
1230
- inside: e.languages[r]
1231
- }, o.cdata = /^<!\[CDATA\[|\]\]>$/i;
1232
- var s = {
1234
+ inside: e.languages[i]
1235
+ }, r.cdata = /^<!\[CDATA\[|\]\]>$/i;
1236
+ var a = {
1233
1237
  "included-cdata": {
1234
1238
  pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i,
1235
- inside: o
1239
+ inside: r
1236
1240
  }
1237
1241
  };
1238
- s["language-" + r] = {
1242
+ a["language-" + i] = {
1239
1243
  pattern: /[\s\S]+/,
1240
- inside: e.languages[r]
1244
+ inside: e.languages[i]
1241
1245
  };
1242
1246
  var u = {};
1243
- u[i] = {
1247
+ u[o] = {
1244
1248
  pattern: RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g, function() {
1245
- return i;
1249
+ return o;
1246
1250
  }), "i"),
1247
1251
  lookbehind: !0,
1248
1252
  greedy: !0,
1249
- inside: s
1253
+ inside: a
1250
1254
  }, e.languages.insertBefore("markup", "cdata", u);
1251
1255
  }
1252
1256
  }), Object.defineProperty(e.languages.markup.tag, "addAttribute", {
@@ -1261,10 +1265,10 @@ function Hn() {
1261
1265
  * @example
1262
1266
  * addAttribute('style', 'css');
1263
1267
  */
1264
- value: function(n, i) {
1268
+ value: function(t, o) {
1265
1269
  e.languages.markup.tag.inside["special-attr"].push({
1266
1270
  pattern: RegExp(
1267
- /(^|["'\s])/.source + "(?:" + n + ")" + /\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,
1271
+ /(^|["'\s])/.source + "(?:" + t + ")" + /\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,
1268
1272
  "i"
1269
1273
  ),
1270
1274
  lookbehind: !0,
@@ -1276,8 +1280,8 @@ function Hn() {
1276
1280
  value: {
1277
1281
  pattern: /(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,
1278
1282
  lookbehind: !0,
1279
- alias: [i, "language-" + i],
1280
- inside: e.languages[i]
1283
+ alias: [o, "language-" + o],
1284
+ inside: e.languages[o]
1281
1285
  },
1282
1286
  punctuation: [
1283
1287
  {
@@ -1291,12 +1295,12 @@ function Hn() {
1291
1295
  }
1292
1296
  });
1293
1297
  }
1294
- }), e.languages.html = e.languages.markup, e.languages.mathml = e.languages.markup, e.languages.svg = e.languages.markup, e.languages.xml = e.languages.extend("markup", {}), e.languages.ssml = e.languages.xml, e.languages.atom = e.languages.xml, e.languages.rss = e.languages.xml, function(n) {
1295
- var i = /(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;
1296
- n.languages.css = {
1298
+ }), e.languages.html = e.languages.markup, e.languages.mathml = e.languages.markup, e.languages.svg = e.languages.markup, e.languages.xml = e.languages.extend("markup", {}), e.languages.ssml = e.languages.xml, e.languages.atom = e.languages.xml, e.languages.rss = e.languages.xml, function(t) {
1299
+ var o = /(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;
1300
+ t.languages.css = {
1297
1301
  comment: /\/\*[\s\S]*?\*\//,
1298
1302
  atrule: {
1299
- pattern: RegExp("@[\\w-](?:" + /[^;{\s"']|\s+(?!\s)/.source + "|" + i.source + ")*?" + /(?:;|(?=\s*\{))/.source),
1303
+ pattern: RegExp("@[\\w-](?:" + /[^;{\s"']|\s+(?!\s)/.source + "|" + o.source + ")*?" + /(?:;|(?=\s*\{))/.source),
1300
1304
  inside: {
1301
1305
  rule: /^@[\w-]+/,
1302
1306
  "selector-function-argument": {
@@ -1313,23 +1317,23 @@ function Hn() {
1313
1317
  },
1314
1318
  url: {
1315
1319
  // https://drafts.csswg.org/css-values-3/#urls
1316
- pattern: RegExp("\\burl\\((?:" + i.source + "|" + /(?:[^\\\r\n()"']|\\[\s\S])*/.source + ")\\)", "i"),
1320
+ pattern: RegExp("\\burl\\((?:" + o.source + "|" + /(?:[^\\\r\n()"']|\\[\s\S])*/.source + ")\\)", "i"),
1317
1321
  greedy: !0,
1318
1322
  inside: {
1319
1323
  function: /^url/i,
1320
1324
  punctuation: /^\(|\)$/,
1321
1325
  string: {
1322
- pattern: RegExp("^" + i.source + "$"),
1326
+ pattern: RegExp("^" + o.source + "$"),
1323
1327
  alias: "url"
1324
1328
  }
1325
1329
  }
1326
1330
  },
1327
1331
  selector: {
1328
- pattern: RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|` + i.source + ")*(?=\\s*\\{)"),
1332
+ pattern: RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|` + o.source + ")*(?=\\s*\\{)"),
1329
1333
  lookbehind: !0
1330
1334
  },
1331
1335
  string: {
1332
- pattern: i,
1336
+ pattern: o,
1333
1337
  greedy: !0
1334
1338
  },
1335
1339
  property: {
@@ -1342,9 +1346,9 @@ function Hn() {
1342
1346
  lookbehind: !0
1343
1347
  },
1344
1348
  punctuation: /[(){};:,]/
1345
- }, n.languages.css.atrule.inside.rest = n.languages.css;
1346
- var r = n.languages.markup;
1347
- r && (r.tag.addInlined("style", "css"), r.tag.addAttribute("style", "css"));
1349
+ }, t.languages.css.atrule.inside.rest = t.languages.css;
1350
+ var i = t.languages.markup;
1351
+ i && (i.tag.addInlined("style", "css"), i.tag.addAttribute("style", "css"));
1348
1352
  }(e), e.languages.clike = {
1349
1353
  comment: [
1350
1354
  {
@@ -1509,9 +1513,9 @@ function Hn() {
1509
1513
  if (typeof e > "u" || typeof document > "u")
1510
1514
  return;
1511
1515
  Element.prototype.matches || (Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector);
1512
- var n = "Loading…", i = function(p, y) {
1516
+ var t = "Loading…", o = function(p, y) {
1513
1517
  return "✖ Error " + p + " while fetching file: " + y;
1514
- }, r = "✖ Error: File does not exist or is empty", o = {
1518
+ }, i = "✖ Error: File does not exist or is empty", r = {
1515
1519
  js: "javascript",
1516
1520
  py: "python",
1517
1521
  rb: "ruby",
@@ -1521,52 +1525,52 @@ function Hn() {
1521
1525
  bat: "batch",
1522
1526
  h: "c",
1523
1527
  tex: "latex"
1524
- }, s = "data-src-status", u = "loading", m = "loaded", A = "failed", T = "pre[data-src]:not([" + s + '="' + m + '"]):not([' + s + '="' + u + '"])';
1525
- function S(p, y, E) {
1528
+ }, a = "data-src-status", u = "loading", m = "loaded", A = "failed", L = "pre[data-src]:not([" + a + '="' + m + '"]):not([' + a + '="' + u + '"])';
1529
+ function S(p, y, x) {
1526
1530
  var l = new XMLHttpRequest();
1527
1531
  l.open("GET", p, !0), l.onreadystatechange = function() {
1528
- l.readyState == 4 && (l.status < 400 && l.responseText ? y(l.responseText) : l.status >= 400 ? E(i(l.status, l.statusText)) : E(r));
1532
+ l.readyState == 4 && (l.status < 400 && l.responseText ? y(l.responseText) : l.status >= 400 ? x(o(l.status, l.statusText)) : x(i));
1529
1533
  }, l.send(null);
1530
1534
  }
1531
- function F(p) {
1535
+ function T(p) {
1532
1536
  var y = /^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(p || "");
1533
1537
  if (y) {
1534
- var E = Number(y[1]), l = y[2], c = y[3];
1535
- return l ? c ? [E, Number(c)] : [E, void 0] : [E, E];
1538
+ var x = Number(y[1]), l = y[2], c = y[3];
1539
+ return l ? c ? [x, Number(c)] : [x, void 0] : [x, x];
1536
1540
  }
1537
1541
  }
1538
1542
  e.hooks.add("before-highlightall", function(p) {
1539
- p.selector += ", " + T;
1543
+ p.selector += ", " + L;
1540
1544
  }), e.hooks.add("before-sanity-check", function(p) {
1541
1545
  var y = (
1542
1546
  /** @type {HTMLPreElement} */
1543
1547
  p.element
1544
1548
  );
1545
- if (y.matches(T)) {
1546
- p.code = "", y.setAttribute(s, u);
1547
- var E = y.appendChild(document.createElement("CODE"));
1548
- E.textContent = n;
1549
+ if (y.matches(L)) {
1550
+ p.code = "", y.setAttribute(a, u);
1551
+ var x = y.appendChild(document.createElement("CODE"));
1552
+ x.textContent = t;
1549
1553
  var l = y.getAttribute("data-src"), c = p.language;
1550
1554
  if (c === "none") {
1551
1555
  var d = (/\.(\w+)$/.exec(l) || [, "none"])[1];
1552
- c = o[d] || d;
1556
+ c = r[d] || d;
1553
1557
  }
1554
- e.util.setLanguage(E, c), e.util.setLanguage(y, c);
1558
+ e.util.setLanguage(x, c), e.util.setLanguage(y, c);
1555
1559
  var g = e.plugins.autoloader;
1556
1560
  g && g.loadLanguages(c), S(
1557
1561
  l,
1558
1562
  function(f) {
1559
- y.setAttribute(s, m);
1560
- var v = F(y.getAttribute("data-range"));
1561
- if (v) {
1562
- var x = f.split(/\r\n?|\n/g), b = v[0], k = v[1] == null ? x.length : v[1];
1563
- b < 0 && (b += x.length), b = Math.max(0, Math.min(b - 1, x.length)), k < 0 && (k += x.length), k = Math.max(0, Math.min(k, x.length)), f = x.slice(b, k).join(`
1564
- `), y.hasAttribute("data-start") || y.setAttribute("data-start", String(b + 1));
1563
+ y.setAttribute(a, m);
1564
+ var C = T(y.getAttribute("data-range"));
1565
+ if (C) {
1566
+ var N = f.split(/\r\n?|\n/g), v = C[0], w = C[1] == null ? N.length : C[1];
1567
+ v < 0 && (v += N.length), v = Math.max(0, Math.min(v - 1, N.length)), w < 0 && (w += N.length), w = Math.max(0, Math.min(w, N.length)), f = N.slice(v, w).join(`
1568
+ `), y.hasAttribute("data-start") || y.setAttribute("data-start", String(v + 1));
1565
1569
  }
1566
- E.textContent = f, e.highlightElement(E);
1570
+ x.textContent = f, e.highlightElement(x);
1567
1571
  },
1568
1572
  function(f) {
1569
- y.setAttribute(s, A), E.textContent = f;
1573
+ y.setAttribute(a, A), x.textContent = f;
1570
1574
  }
1571
1575
  );
1572
1576
  }
@@ -1579,837 +1583,867 @@ function Hn() {
1579
1583
  * @param {ParentNode} [container=document]
1580
1584
  */
1581
1585
  highlight: function(y) {
1582
- for (var E = (y || document).querySelectorAll(T), l = 0, c; c = E[l++]; )
1586
+ for (var x = (y || document).querySelectorAll(L), l = 0, c; c = x[l++]; )
1583
1587
  e.highlightElement(c);
1584
1588
  }
1585
1589
  };
1586
- var N = !1;
1590
+ var E = !1;
1587
1591
  e.fileHighlight = function() {
1588
- N || (console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."), N = !0), e.plugins.fileHighlight.highlight.apply(this, arguments);
1592
+ E || (console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."), E = !0), e.plugins.fileHighlight.highlight.apply(this, arguments);
1589
1593
  };
1590
1594
  }();
1591
- }(Se)), Se.exports;
1595
+ }(Fe)), Fe.exports;
1592
1596
  }
1593
- var Rn = Hn();
1594
- const zn = /* @__PURE__ */ Bn(Rn);
1595
- typeof globalThis < "u" && (globalThis.Prism = zn);
1596
- function Wn({ codeBlockCoords: t, codeNodeKey: a }) {
1597
- const [e] = M(), [n, i] = O({
1597
+ var Wn = Gn();
1598
+ const Kn = /* @__PURE__ */ zn(Wn);
1599
+ typeof globalThis < "u" && (globalThis.Prism = Kn);
1600
+ function Un({ codeBlockCoords: n, codeNodeKey: s }) {
1601
+ const [e] = M(), [t, o] = O({
1598
1602
  x: B,
1599
1603
  y: B
1600
- }), r = se(null), [o, s] = O(""), u = hn(), m = Array.from(
1601
- new Set(u.map((T) => Ae(T)))
1604
+ }), i = ee(null), [r, a] = O(""), u = bn(), m = Array.from(
1605
+ new Set(u.map((L) => $e(L)))
1602
1606
  ), A = {};
1603
- return u.forEach((T) => {
1604
- const S = Ae(T);
1605
- A[S] || (A[S] = T);
1606
- }), C(() => {
1607
- i(En(t, r));
1608
- }, [t]), C(() => {
1607
+ return u.forEach((L) => {
1608
+ const S = $e(L);
1609
+ A[S] || (A[S] = L);
1610
+ }), b(() => {
1611
+ o(Ln(n, i));
1612
+ }, [n]), b(() => {
1609
1613
  e.read(() => {
1610
- if (a) {
1611
- const S = oe(a).getLanguage();
1612
- s(Ae(S));
1614
+ if (s) {
1615
+ const S = j(s).getLanguage();
1616
+ a($e(S));
1613
1617
  }
1614
1618
  });
1615
- }, [e, a]), /* @__PURE__ */ D(
1616
- Dt,
1619
+ }, [e, s]), /* @__PURE__ */ D(
1620
+ Rt,
1617
1621
  {
1618
1622
  id: "code-highlight-menu",
1619
- ref: r,
1623
+ ref: i,
1620
1624
  style: {
1621
1625
  position: "absolute",
1622
- top: n.y,
1623
- left: n.x
1626
+ top: t.y,
1627
+ left: t.x
1624
1628
  },
1625
1629
  "aria-label": "Code menu",
1626
- inputValue: o,
1627
- onInputChange: (T) => {
1628
- const S = A[T];
1629
- e.dispatchCommand(ct, [
1630
- a,
1630
+ inputValue: r,
1631
+ onInputChange: (L) => {
1632
+ const S = A[L];
1633
+ e.dispatchCommand(ft, [
1634
+ s,
1631
1635
  S
1632
- ]), s(T);
1636
+ ]), a(L);
1633
1637
  },
1634
1638
  children: [
1635
1639
  /* @__PURE__ */ D("div", { children: [
1636
- /* @__PURE__ */ h(et, {}),
1637
- /* @__PURE__ */ h(U, { children: /* @__PURE__ */ h(Qt, { size: 24 }) })
1640
+ /* @__PURE__ */ h(it, {}),
1641
+ /* @__PURE__ */ h(q, { children: /* @__PURE__ */ h(Jt, { size: 24 }) })
1638
1642
  ] }),
1639
- /* @__PURE__ */ h(tt, { children: /* @__PURE__ */ h(Bt, { children: m.map((T, S) => /* @__PURE__ */ h(Ht, { children: T }, S)) }) })
1643
+ /* @__PURE__ */ h(ot, { children: /* @__PURE__ */ h(zt, { children: m.map((L, S) => /* @__PURE__ */ h(Gt, { children: L }, S)) }) })
1640
1644
  ]
1641
1645
  }
1642
1646
  );
1643
1647
  }
1644
- const Gn = document.body, lt = Y(
1648
+ const qn = document.body, gt = Z(
1645
1649
  "INSERT_CODE_BLOCK_COMMAND"
1646
- ), ct = Y(
1650
+ ), ft = Z(
1647
1651
  "SET_CODE_LANGUAGE_COMMAND"
1648
1652
  );
1649
- function Kn() {
1650
- const [t, a] = O(null), [e, n] = O(null), [i, r] = O(!1), [o, s] = O(!1), [u] = M(), m = de(() => {
1651
- a(null), n(null);
1652
- }, []), A = de(() => {
1653
- const F = document.getElementById("code-highlight-menu"), N = document.activeElement;
1654
- return !!(F && N && (F === N || F.contains(N)));
1655
- }, []), T = de(() => {
1656
- const F = A();
1657
- return s(F), F;
1658
- }, [A]), S = de(() => {
1659
- const F = T();
1660
- r(!1), F || m();
1661
- }, [m, T]);
1662
- return C(() => u.registerCommand(
1663
- j,
1653
+ function jn() {
1654
+ const [n, s] = O(null), [e, t] = O(null), [o, i] = O(!1), [r, a] = O(!1), [u] = M(), m = ge(() => {
1655
+ s(null), t(null);
1656
+ }, []), A = ge(() => {
1657
+ const T = document.getElementById("code-highlight-menu"), E = document.activeElement;
1658
+ return !!(T && E && (T === E || T.contains(E)));
1659
+ }, []), L = ge(() => {
1660
+ const T = A();
1661
+ return a(T), T;
1662
+ }, [A]), S = ge(() => {
1663
+ const T = L();
1664
+ i(!1), T || m();
1665
+ }, [m, L]);
1666
+ return b(() => u.registerCommand(
1667
+ Y,
1664
1668
  () => {
1665
- const N = T(), p = u.getRootElement();
1669
+ const E = L(), p = u.getRootElement();
1666
1670
  if (p) {
1667
1671
  const c = p === document.activeElement || p.contains(document.activeElement);
1668
- r((d) => d === c ? d : c);
1672
+ i((d) => d === c ? d : c);
1669
1673
  }
1670
- const y = L();
1671
- if (!w(y))
1672
- return N || m(), !1;
1673
- const E = ve(y), l = I(E, pe);
1674
+ const y = $();
1675
+ if (!k(y))
1676
+ return E || m(), !1;
1677
+ const x = Ee(y), l = I(x, ve);
1674
1678
  if (l) {
1675
1679
  const d = u.getElementByKey(l.getKey()).getBoundingClientRect(), g = d.right, f = d.top + window.scrollY;
1676
- a({ x: g, y: f }), n(l.getKey());
1680
+ s({ x: g, y: f }), t(l.getKey());
1677
1681
  } else
1678
- N || m();
1682
+ E || m();
1679
1683
  return !1;
1680
1684
  },
1681
- $
1682
- ), [u, T, m]), C(() => u.registerCommand(
1683
- be,
1685
+ F
1686
+ ), [u, L, m]), b(() => u.registerCommand(
1687
+ ae,
1684
1688
  () => (setTimeout(S, 0), !1),
1685
- $
1686
- ), [u, S]), C(() => {
1687
- const F = () => {
1688
- r(!0), s(!1);
1689
- }, N = () => setTimeout(S, 0);
1689
+ F
1690
+ ), [u, S]), b(() => {
1691
+ const T = () => {
1692
+ i(!0), a(!1);
1693
+ }, E = () => setTimeout(S, 0);
1690
1694
  return u.registerRootListener((p, y) => {
1691
- p && (p.addEventListener("focus", F), p.addEventListener("blur", N)), y && (y.removeEventListener("focus", F), y.removeEventListener("blur", N));
1695
+ p && (p.addEventListener("focus", T), p.addEventListener("blur", E)), y && (y.removeEventListener("focus", T), y.removeEventListener("blur", E));
1692
1696
  });
1693
- }, [u, S]), t && (i || o) && Ie(
1694
- /* @__PURE__ */ h(Wn, { codeBlockCoords: t, codeNodeKey: e }),
1695
- Gn
1697
+ }, [u, S]), n && (o || r) && De(
1698
+ /* @__PURE__ */ h(Un, { codeBlockCoords: n, codeNodeKey: e }),
1699
+ qn
1696
1700
  );
1697
1701
  }
1698
- function qn() {
1699
- const [t] = M();
1700
- return C(() => mn(t), [t]), C(() => t.registerNodeTransform(ie, (e) => {
1702
+ function Yn() {
1703
+ const [n] = M();
1704
+ return b(() => vn(n), [n]), b(() => n.registerNodeTransform(se, (e) => {
1701
1705
  if (!e.isSimpleText())
1702
1706
  return;
1703
- const n = e.getTextContent();
1704
- if (n.startsWith("``` ")) {
1705
- const i = e.getPreviousSibling(), r = I(e, V), o = r !== null && r.getChildrenSize() === 1, s = te(i);
1706
- if (o || s) {
1707
- if (n.length > 4)
1707
+ const t = e.getTextContent();
1708
+ if (t.startsWith("``` ")) {
1709
+ const o = e.getPreviousSibling(), i = I(e, J), r = i !== null && i.getChildrenSize() === 1, a = ie(o);
1710
+ if (r || a) {
1711
+ if (t.length > 4)
1708
1712
  return;
1709
- const u = qe();
1713
+ const u = Ze();
1710
1714
  e.replace(u), u.select();
1711
1715
  const m = u.getNextSibling();
1712
- te(m) && m.remove();
1716
+ ie(m) && m.remove();
1713
1717
  return;
1714
1718
  }
1715
1719
  }
1716
- }), [t]), C(() => t.registerCommand(
1717
- lt,
1720
+ }), [n]), b(() => n.registerCommand(
1721
+ gt,
1718
1722
  () => {
1719
- const e = he();
1720
- if (w(e)) {
1721
- const n = qe();
1722
- return e.insertNodes([n]), n.selectStart(), setTimeout(() => {
1723
- t.focus();
1723
+ const e = ye();
1724
+ if (k(e)) {
1725
+ const t = Ze();
1726
+ return e.insertNodes([t]), t.selectStart(), setTimeout(() => {
1727
+ n.focus();
1724
1728
  }, 0), !0;
1725
1729
  }
1726
1730
  return !1;
1727
1731
  },
1728
- $
1729
- ), [t]), C(() => t.registerCommand(
1730
- ct,
1732
+ F
1733
+ ), [n]), b(() => n.registerCommand(
1734
+ ft,
1731
1735
  (e) => {
1732
- const [n, i] = e, r = oe(n);
1733
- return pe(r) ? (r.setLanguage(i), !0) : !1;
1736
+ const [t, o] = e, i = j(t);
1737
+ return ve(i) ? (i.setLanguage(o), !0) : !1;
1734
1738
  },
1735
- $
1736
- ), [t]), C(() => t.registerCommand(
1737
- Le,
1739
+ F
1740
+ ), [n]), b(() => n.registerCommand(
1741
+ Oe,
1738
1742
  (e) => {
1739
- const n = L();
1740
- if (!w(n) || !n.isCollapsed())
1743
+ const t = $();
1744
+ if (!k(t) || !t.isCollapsed())
1741
1745
  return !1;
1742
- const i = n.anchor.getNode(), r = I(i, pe);
1743
- return r && n.anchor.offset === 0 && r.getTextContent() === "" ? (r.remove(), !0) : !1;
1746
+ const o = t.anchor.getNode(), i = I(o, ve);
1747
+ return i && t.anchor.offset === 0 && i.getTextContent() === "" ? (i.remove(), !0) : !1;
1744
1748
  },
1745
- $
1746
- ), [t]), null;
1749
+ F
1750
+ ), [n]), null;
1747
1751
  }
1748
- function Un() {
1749
- return /* @__PURE__ */ D(Xe, { children: [
1750
- /* @__PURE__ */ h(qn, {}),
1751
- /* @__PURE__ */ h(Kn, {})
1752
+ function Zn() {
1753
+ return /* @__PURE__ */ D(rt, { children: [
1754
+ /* @__PURE__ */ h(Yn, {}),
1755
+ /* @__PURE__ */ h(jn, {})
1752
1756
  ] });
1753
1757
  }
1754
- const ut = Y(
1758
+ const ht = Z(
1755
1759
  "INSERT_HORIZONTAL_DIVIDER_COMMAND"
1756
1760
  );
1757
- function jn() {
1758
- const [t] = M();
1759
- return C(() => {
1760
- if (!t.hasNodes([cn]))
1761
+ function Qn() {
1762
+ const [n] = M();
1763
+ return b(() => {
1764
+ if (!n.hasNodes([gn]))
1761
1765
  throw new Error("HorizontalDividerNode not registered on editor");
1762
- return t.registerCommand(
1763
- ut,
1766
+ return n.registerCommand(
1767
+ ht,
1764
1768
  () => {
1765
- const e = he();
1766
- if (w(e)) {
1767
- const n = un();
1768
- e.insertNodes([n]);
1769
- let i = n.getNextSibling() || n.getParent().getNextSibling();
1770
- return i || (i = re(), n.insertAfter(i)), i.selectStart(), setTimeout(() => {
1771
- t.focus();
1769
+ const e = ye();
1770
+ if (k(e)) {
1771
+ const t = fn();
1772
+ e.insertNodes([t]);
1773
+ let o = t.getNextSibling() || t.getParent().getNextSibling();
1774
+ return o || (o = Ce(), t.insertAfter(o)), o.selectStart(), setTimeout(() => {
1775
+ n.focus();
1772
1776
  }, 0), !0;
1773
1777
  }
1774
1778
  return !1;
1775
1779
  },
1776
- $
1780
+ F
1777
1781
  );
1778
- }, [t]), null;
1782
+ }, [n]), null;
1779
1783
  }
1780
- const dt = Y("INSERT_IMAGE_COMMAND"), Ze = "selected";
1781
- function Yn(t) {
1782
- return t && t.type && t.type.startsWith("image/");
1784
+ const Me = Z("INSERT_IMAGE_COMMAND"), Je = "selected";
1785
+ function et(n) {
1786
+ return n && n.type && n.type.startsWith("image/");
1783
1787
  }
1784
- function Zn() {
1785
- const [t] = M(), a = se(null);
1786
- return C(() => {
1787
- if (!t.hasNode(Ge))
1788
+ function tt(n, s) {
1789
+ const e = ye() || $();
1790
+ if (!k(e))
1791
+ return null;
1792
+ const t = hn(n, s);
1793
+ e.insertNodes([t]);
1794
+ let o = t.getNextSibling() || t.getParent().getNextSibling();
1795
+ return o || (o = Ce(), t.insertAfter(o)), t.select(), t.getKey();
1796
+ }
1797
+ function Xn({ onImageUpload: n }) {
1798
+ const [s] = M(), e = ee(null), t = ee(n);
1799
+ b(() => {
1800
+ t.current = n;
1801
+ }, [n]), b(() => {
1802
+ if (!s.hasNode(Ye))
1788
1803
  throw new Error("ImagePlugin: ImageNode not registered on editor");
1789
- return t.registerCommand(
1790
- dt,
1791
- (n) => {
1792
- const i = n, r = he();
1793
- if (w(r)) {
1794
- const o = Ke(i);
1795
- r.insertNodes([o]);
1796
- let s = o.getNextSibling() || o.getParent().getNextSibling();
1797
- return s || (s = re(), o.insertAfter(s)), o.select(), !0;
1798
- }
1799
- return !1;
1800
- },
1801
- $
1802
- );
1803
- }, [t]), C(() => t.registerCommand(
1804
- j,
1805
- () => {
1806
- a.current && (a.current.classList.remove(Ze), a.current = null);
1807
- const n = L();
1808
- if (we(n) && n.getNodes().length === 1) {
1809
- const i = n.getNodes()[0];
1810
- if (dn(i)) {
1811
- const r = t.getElementByKey(i.getKey());
1812
- r.classList.add(Ze), a.current = r;
1813
- }
1804
+ }, [s]);
1805
+ const o = (i, r, a) => {
1806
+ const u = t.current;
1807
+ u && Promise.resolve().then(() => u(r)).then((m) => {
1808
+ if (typeof m != "string" || !m)
1809
+ throw new Error("onImageUpload must resolve to a URL string");
1810
+ s.update(() => {
1811
+ const A = j(i);
1812
+ fe(A) && (A.setSrc(m), A.setUploadState(re.UPLOADED));
1813
+ }), URL.revokeObjectURL(a);
1814
+ }).catch((m) => {
1815
+ console.error("ImagePlugin: image upload failed", m), s.update(() => {
1816
+ const A = j(i);
1817
+ fe(A) && A.setUploadState(re.ERROR);
1818
+ });
1819
+ });
1820
+ };
1821
+ return b(() => s.registerCommand(
1822
+ Me,
1823
+ (r) => {
1824
+ if (typeof r == "string")
1825
+ return tt(r, re.UPLOADED), !0;
1826
+ if (r instanceof File && et(r)) {
1827
+ const a = URL.createObjectURL(r), u = !!t.current, m = tt(
1828
+ a,
1829
+ u ? re.UPLOADING : re.UPLOADED
1830
+ );
1831
+ return m && u && o(m, r, a), !0;
1814
1832
  }
1815
1833
  return !1;
1816
1834
  },
1817
- Ve
1818
- ), [t]), C(() => t.registerCommand(
1819
- ke,
1820
- (n) => {
1821
- const i = n.clipboardData;
1822
- if (!i)
1823
- return !1;
1824
- const o = Array.from(i.files).filter(Yn);
1825
- if (o.length === 1) {
1826
- n.preventDefault();
1827
- const s = o[0], u = L() || he();
1828
- if (!w(u))
1829
- return !1;
1830
- const m = URL.createObjectURL(s), A = Ke(m);
1831
- u.insertNodes([A]);
1832
- let T = A.getNextSibling() || A.getParent().getNextSibling();
1833
- return T || (T = re(), A.insertAfter(T)), A.select(), !0;
1835
+ F
1836
+ ), [s]), b(() => s.registerCommand(
1837
+ Y,
1838
+ () => {
1839
+ e.current && (e.current.classList.remove(Je), e.current = null);
1840
+ const r = $();
1841
+ if (pe(r) && r.getNodes().length === 1) {
1842
+ const a = r.getNodes()[0];
1843
+ if (fe(a)) {
1844
+ const u = s.getElementByKey(a.getKey());
1845
+ u.classList.add(Je), e.current = u;
1846
+ }
1834
1847
  }
1835
1848
  return !1;
1836
1849
  },
1837
- $
1838
- ), [t]), // Make the Image selectable
1839
- /* @__PURE__ */ h(
1840
- Oe,
1850
+ ke
1851
+ ), [s]), b(() => s.registerCommand(
1852
+ ae,
1853
+ () => {
1854
+ const r = $();
1855
+ return pe(r) && r.getNodes().length === 1 && fe(r.getNodes()[0]) && Pe(null), !1;
1856
+ },
1857
+ ke
1858
+ ), [s]), b(() => s.registerCommand(
1859
+ _e,
1860
+ (r) => {
1861
+ const a = r.clipboardData;
1862
+ if (!a) return !1;
1863
+ const u = Array.from(a.files).filter(et);
1864
+ if (u.length !== 1) return !1;
1865
+ const m = $() || ye();
1866
+ return k(m) ? (r.preventDefault(), s.dispatchCommand(Me, u[0]), !0) : !1;
1867
+ },
1868
+ F
1869
+ ), [s]), /* @__PURE__ */ h(
1870
+ He,
1841
1871
  {
1842
- nodeType: Ge,
1872
+ nodeType: Ye,
1843
1873
  eventType: "click",
1844
- eventListener: (e, n, i) => {
1845
- oe(i).select();
1874
+ eventListener: (i, r, a) => {
1875
+ if (!r.isEditable())
1876
+ return;
1877
+ j(a).select();
1846
1878
  }
1847
1879
  }
1848
1880
  );
1849
1881
  }
1850
- const ge = 24;
1851
- function Qn() {
1852
- const [t] = M();
1853
- return /* @__PURE__ */ h(Me, { "aria-label": "Block toolbar", id: "block-toolbar", children: /* @__PURE__ */ D(ne, { "aria-label": "Media", children: [
1882
+ const he = 24;
1883
+ function Vn() {
1884
+ const [n] = M();
1885
+ return /* @__PURE__ */ h(Be, { "aria-label": "Block toolbar", id: "block-toolbar", children: /* @__PURE__ */ D(oe, { "aria-label": "Media", children: [
1854
1886
  /* @__PURE__ */ h(
1855
- zt,
1887
+ Kt,
1856
1888
  {
1857
1889
  acceptedFileTypes: ["image/png", "image/jpeg", "image/gif"],
1858
1890
  onSelect: (e) => {
1859
1891
  if (!e || e.length === 0)
1860
1892
  return;
1861
- const n = e[0];
1862
- if (!n.type.startsWith("image/")) {
1893
+ const t = e[0];
1894
+ if (!t.type.startsWith("image/")) {
1863
1895
  alert("Please select an image file.");
1864
1896
  return;
1865
1897
  }
1866
- const i = new FileReader();
1867
- i.onload = (r) => {
1868
- var s;
1869
- const o = (s = r.target) == null ? void 0 : s.result;
1870
- typeof o == "string" ? t.dispatchCommand(dt, o) : alert("Failed to read file as Data URL.");
1871
- }, i.onerror = (r) => {
1872
- console.error("Error reading file:", r), alert("Error reading file.");
1873
- }, i.readAsDataURL(n);
1898
+ n.dispatchCommand(Me, t);
1874
1899
  },
1875
1900
  allowsMultiple: !1,
1876
- children: /* @__PURE__ */ h(U, { "aria-label": "image", children: /* @__PURE__ */ h(Vt, { size: ge }) })
1901
+ children: /* @__PURE__ */ h(q, { "aria-label": "image", children: /* @__PURE__ */ h(tn, { size: he }) })
1877
1902
  }
1878
1903
  ),
1879
1904
  /* @__PURE__ */ h(
1880
- U,
1905
+ q,
1881
1906
  {
1882
1907
  "aria-label": "code block",
1883
1908
  onPress: () => {
1884
- t.dispatchCommand(lt, void 0);
1909
+ n.dispatchCommand(gt, void 0);
1885
1910
  },
1886
- children: /* @__PURE__ */ h(Jt, { size: ge })
1911
+ children: /* @__PURE__ */ h(nn, { size: he })
1887
1912
  }
1888
1913
  ),
1889
1914
  /* @__PURE__ */ h(
1890
- U,
1915
+ q,
1891
1916
  {
1892
1917
  "aria-label": "horizontal divider",
1893
1918
  onPress: () => {
1894
- t.dispatchCommand(
1895
- ut,
1919
+ n.dispatchCommand(
1920
+ ht,
1896
1921
  void 0
1897
1922
  );
1898
1923
  },
1899
- children: /* @__PURE__ */ h(en, { size: ge })
1924
+ children: /* @__PURE__ */ h(rn, { size: he })
1900
1925
  }
1901
1926
  )
1902
1927
  ] }) });
1903
1928
  }
1904
- function Xn({
1905
- selectionRectCoords: t,
1906
- TOOLBAR_OFFSET: a,
1929
+ function Jn({
1930
+ selectionRectCoords: n,
1931
+ TOOLBAR_OFFSET: s,
1907
1932
  toolbarTriggerId: e,
1908
- toolbarPopoverId: n
1933
+ toolbarPopoverId: t
1909
1934
  }) {
1910
- const [i, r] = O({
1935
+ const [o, i] = O({
1911
1936
  x: B,
1912
1937
  y: B
1913
- }), o = se(null);
1914
- return C(() => {
1915
- r(
1916
- xn(
1917
- t,
1918
- o,
1919
- a
1938
+ }), r = ee(null);
1939
+ return b(() => {
1940
+ i(
1941
+ An(
1942
+ n,
1943
+ r,
1944
+ s
1920
1945
  )
1921
1946
  );
1922
- }, [t]), /* @__PURE__ */ D(Rt, { children: [
1947
+ }, [n]), /* @__PURE__ */ D(Wt, { children: [
1923
1948
  /* @__PURE__ */ h(
1924
- U,
1949
+ q,
1925
1950
  {
1926
1951
  "aria-label": "Block toolbar trigger",
1927
1952
  className: "block-toolbar-trigger",
1928
1953
  id: e,
1929
- ref: o,
1954
+ ref: r,
1930
1955
  style: {
1931
1956
  position: "absolute",
1932
- top: i.y,
1933
- left: i.x
1957
+ top: o.y,
1958
+ left: o.x
1934
1959
  },
1935
- children: /* @__PURE__ */ h(Xt, { size: ge })
1960
+ children: /* @__PURE__ */ h(en, { size: he })
1936
1961
  }
1937
1962
  ),
1938
1963
  /* @__PURE__ */ h(
1939
- tt,
1964
+ ot,
1940
1965
  {
1941
1966
  className: "block-toolbar-popover",
1942
- id: n,
1967
+ id: t,
1943
1968
  placement: "end",
1944
1969
  shouldFlip: !1,
1945
- offset: a,
1946
- children: /* @__PURE__ */ h(Qn, {})
1970
+ offset: s,
1971
+ children: /* @__PURE__ */ h(Vn, {})
1947
1972
  }
1948
1973
  )
1949
1974
  ] });
1950
1975
  }
1951
- const Vn = document.body;
1952
- function Jn({ toolbarGap: t }) {
1953
- const [a, e] = O(null), [n] = M(), [i, r] = O(!1), [o, s] = O(!1), u = se(Math.random().toString(36).substring(2, 9)), m = `block-toolbar-trigger-${u.current}`, A = `block-toolbar-popover-${u.current}`, T = () => r(!0), S = (F) => {
1976
+ const er = document.body;
1977
+ function tr({ toolbarGap: n }) {
1978
+ const [s, e] = O(null), [t] = M(), [o, i] = O(!1), [r, a] = O(!1), u = ee(Math.random().toString(36).substring(2, 9)), m = `block-toolbar-trigger-${u.current}`, A = `block-toolbar-popover-${u.current}`, L = () => i(!0), S = (T) => {
1954
1979
  setTimeout(() => {
1955
- const N = document.getElementById(m);
1956
- N && (N === document.activeElement || N.contains(document.activeElement) || N.contains(F.relatedTarget)) || r(!1);
1980
+ const E = document.getElementById(m);
1981
+ E && (E === document.activeElement || E.contains(document.activeElement) || E.contains(T.relatedTarget)) || i(!1);
1957
1982
  }, 10);
1958
1983
  };
1959
- return C(() => {
1960
- const F = () => {
1984
+ return b(() => {
1985
+ const T = () => {
1961
1986
  const p = !!document.getElementById(A);
1962
- s(p);
1963
- }, N = new MutationObserver(F);
1964
- return N.observe(document.body, {
1987
+ a(p);
1988
+ }, E = new MutationObserver(T);
1989
+ return E.observe(document.body, {
1965
1990
  childList: !0,
1966
1991
  subtree: !0
1967
- }), F(), () => N.disconnect();
1968
- }, []), C(() => n.registerRootListener(
1969
- (N, p) => {
1970
- N && (N.addEventListener("focus", T), N.addEventListener("blur", S)), p && (p.removeEventListener("focus", T), p.removeEventListener("blur", S));
1992
+ }), T(), () => E.disconnect();
1993
+ }, []), b(() => t.registerRootListener(
1994
+ (E, p) => {
1995
+ E && (E.addEventListener("focus", L), E.addEventListener("blur", S)), p && (p.removeEventListener("focus", L), p.removeEventListener("blur", S));
1971
1996
  }
1972
- ), [n]), C(() => n.registerCommand(
1973
- j,
1997
+ ), [t]), b(() => t.registerEditableListener((T) => {
1998
+ T || e(null);
1999
+ }), [t]), b(() => t.registerCommand(
2000
+ Y,
1974
2001
  () => {
1975
- const N = n.getRootElement();
1976
- if (N) {
1977
- const E = N === document.activeElement || N.contains(document.activeElement);
1978
- E !== i && r(E);
2002
+ if (!t.isEditable())
2003
+ return e(null), !1;
2004
+ const E = t.getRootElement();
2005
+ if (E) {
2006
+ const x = E === document.activeElement || E.contains(document.activeElement);
2007
+ x !== o && i(x);
1979
2008
  }
1980
- const p = L();
1981
- if (!w(p) || !p.isCollapsed())
2009
+ const p = $();
2010
+ if (!k(p) || !p.isCollapsed())
1982
2011
  return e(null), !1;
1983
- const y = ve(p);
1984
- if (V(y) && y.getTextContent() === "") {
1985
- const l = n.getElementByKey(y.getKey()).getBoundingClientRect(), c = l.left, d = l.top + l.height / 2 + window.scrollY;
2012
+ const y = Ee(p);
2013
+ if (J(y) && y.getTextContent() === "") {
2014
+ const l = t.getElementByKey(y.getKey()).getBoundingClientRect(), c = l.left, d = l.top + l.height / 2 + window.scrollY;
1986
2015
  e({ x: c, y: d });
1987
2016
  } else
1988
2017
  e(null);
1989
2018
  return !1;
1990
2019
  },
1991
- $
1992
- ), [n]), a && (i || o) && Ie(
2020
+ F
2021
+ ), [t]), s && (o || r) && De(
1993
2022
  /* @__PURE__ */ h(
1994
- Xn,
2023
+ Jn,
1995
2024
  {
1996
- selectionRectCoords: a,
1997
- TOOLBAR_OFFSET: t,
2025
+ selectionRectCoords: s,
2026
+ TOOLBAR_OFFSET: n,
1998
2027
  toolbarTriggerId: m,
1999
2028
  toolbarPopoverId: A
2000
2029
  }
2001
2030
  ),
2002
- Vn
2031
+ er
2003
2032
  );
2004
2033
  }
2005
- const er = [
2034
+ const nr = [
2006
2035
  ["$", "$"],
2007
2036
  ["\\(", "\\)"]
2008
- ], tr = [
2037
+ ], rr = [
2009
2038
  ["$$", "$$"],
2010
2039
  ["\\[", "\\]"]
2011
- ], Qe = (t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), gt = (t, a) => {
2040
+ ], nt = (n) => n.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), mt = (n, s) => {
2012
2041
  let e = null;
2013
- for (const [n, i] of a) {
2014
- const o = new RegExp(
2015
- `(.*?)(${Qe(n)})(.*?)(${Qe(i)})`,
2042
+ for (const [t, o] of s) {
2043
+ const r = new RegExp(
2044
+ `(.*?)(${nt(t)})(.*?)(${nt(o)})`,
2016
2045
  "g"
2017
- ).exec(t);
2018
- if (o) {
2019
- const s = o[3];
2020
- if (s && s.trim() !== "") {
2021
- const u = o.index + o[1].length, m = o.index + o[0].length;
2046
+ ).exec(n);
2047
+ if (r) {
2048
+ const a = r[3];
2049
+ if (a && a.trim() !== "") {
2050
+ const u = r.index + r[1].length, m = r.index + r[0].length;
2022
2051
  (!e || u < e.start) && (e = {
2023
2052
  start: u,
2024
2053
  end: m,
2025
- content: n + s + i
2054
+ content: t + a + o
2026
2055
  });
2027
2056
  }
2028
2057
  }
2029
2058
  }
2030
2059
  return e;
2031
- }, ft = (t, a) => {
2032
- if (!w(t))
2060
+ }, pt = (n, s) => {
2061
+ if (!k(n))
2033
2062
  return null;
2034
- const e = t.anchor.getNode(), n = t.focus.getNode(), i = a(e) ? e : I(e, a), r = a(n) ? n : I(n, a);
2035
- return !i || !r ? null : i.getKey() === r.getKey() ? i : null;
2036
- }, ht = (t) => t.getData("text/plain") || t.getData("text") || t.getData("text/uri-list");
2037
- function nr() {
2038
- const [t] = M();
2039
- return C(() => {
2040
- if (!t.hasNodes([me, gn]))
2063
+ const e = n.anchor.getNode(), t = n.focus.getNode(), o = s(e) ? e : I(e, s), i = s(t) ? t : I(t, s);
2064
+ return !o || !i ? null : o.getKey() === i.getKey() ? o : null;
2065
+ }, bt = (n) => n.getData("text/plain") || n.getData("text") || n.getData("text/uri-list");
2066
+ function ir() {
2067
+ const [n] = M();
2068
+ return b(() => {
2069
+ if (!n.hasNodes([be, mn]))
2041
2070
  throw new Error(
2042
2071
  "MathInlinePlugin: MathNode or MathHighlightNodeInline not registered on editor"
2043
2072
  );
2044
- }, [t]), C(() => t.registerNodeTransform(ie, (e) => {
2045
- if (!e.isSimpleText() || Q(e) || I(e, G))
2073
+ }, [n]), b(() => n.registerNodeTransform(se, (e) => {
2074
+ if (!e.isSimpleText() || X(e) || I(e, W))
2046
2075
  return;
2047
- const n = e.getTextContent(), i = gt(n, er);
2048
- if (i) {
2049
- const { start: r, end: o, content: s } = i;
2076
+ const t = e.getTextContent(), o = mt(t, nr);
2077
+ if (o) {
2078
+ const { start: i, end: r, content: a } = o;
2050
2079
  let u;
2051
- const m = q(s, !0);
2052
- return r === 0 ? ([u] = e.splitText(o), u.insertBefore(m), u.remove()) : ([, u] = e.splitText(r, o), u.replace(m)), m;
2080
+ const m = U(a, !0);
2081
+ return i === 0 ? ([u] = e.splitText(r), u.insertBefore(m), u.remove()) : ([, u] = e.splitText(i, r), u.replace(m)), m;
2053
2082
  }
2054
- }), [t]), C(() => t.registerCommand(
2055
- j,
2083
+ }), [n]), b(() => n.registerCommand(
2084
+ Y,
2056
2085
  () => {
2057
- const e = L(), n = /* @__PURE__ */ new Set();
2058
- if (we(e)) {
2059
- const o = e.getNodes();
2060
- if (o.length === 1 && X(o[0])) {
2061
- const s = o[0];
2062
- if (s.isInline()) {
2063
- let u = s.getEquation();
2086
+ const e = $(), t = /* @__PURE__ */ new Set();
2087
+ if (pe(e)) {
2088
+ const r = e.getNodes();
2089
+ if (r.length === 1 && V(r[0]) && n.isEditable()) {
2090
+ const a = r[0];
2091
+ if (a.isInline()) {
2092
+ let u = a.getEquation();
2064
2093
  u.startsWith("$") && u.endsWith("$") ? u = u.slice(1, -1) : u.startsWith("\\(") && u.endsWith("\\)") && (u = u.slice(2, -2));
2065
- const m = Ee(u);
2066
- return s.replace(m), m.select(), !0;
2094
+ const m = Le(u);
2095
+ return a.replace(m), m.select(), !0;
2067
2096
  }
2068
2097
  }
2069
- } else w(e) && e.getNodes().forEach((o) => n.add(o.getKey()));
2070
- return fe().getAllTextNodes().forEach((o) => {
2071
- if (Q(o) && !n.has(o.getKey())) {
2072
- let s = o.getTextContent();
2073
- if (!s) {
2074
- o.remove();
2098
+ } else k(e) && e.getNodes().forEach((r) => t.add(r.getKey()));
2099
+ return me().getAllTextNodes().forEach((r) => {
2100
+ if (X(r) && !t.has(r.getKey())) {
2101
+ let a = r.getTextContent();
2102
+ if (!a) {
2103
+ r.remove();
2075
2104
  return;
2076
2105
  }
2077
2106
  let u = !1;
2078
- s.startsWith("$") && s.endsWith("$") && s.length >= 2 && (s = s.slice(1, -1), u = !0);
2079
- const m = u ? q(`$$${s}$$`, !1) : q(`$${s}$`, !0);
2080
- o.replace(m);
2107
+ a.startsWith("$") && a.endsWith("$") && a.length >= 2 && (a = a.slice(1, -1), u = !0);
2108
+ const m = u ? U(`$$${a}$$`, !1) : U(`$${a}$`, !0);
2109
+ r.replace(m);
2081
2110
  }
2082
2111
  }), !1;
2083
2112
  },
2084
- $
2085
- ), [t]), C(() => t.registerCommand(
2086
- be,
2087
- () => (t.update(() => {
2088
- fe().getAllTextNodes().forEach((n) => {
2089
- if (Q(n)) {
2090
- let i = n.getTextContent();
2091
- if (!i) {
2092
- n.remove();
2113
+ F
2114
+ ), [n]), b(() => n.registerCommand(
2115
+ ae,
2116
+ () => (n.update(() => {
2117
+ me().getAllTextNodes().forEach((t) => {
2118
+ if (X(t)) {
2119
+ let o = t.getTextContent();
2120
+ if (!o) {
2121
+ t.remove();
2093
2122
  return;
2094
2123
  }
2095
- let r = !1;
2096
- i.startsWith("$") && i.endsWith("$") && i.length >= 2 && (i = i.slice(1, -1), r = !0);
2097
- const o = r ? q(`$$${i}$$`, !1) : q(`$${i}$`, !0);
2098
- n.replace(o), Je(null);
2124
+ let i = !1;
2125
+ o.startsWith("$") && o.endsWith("$") && o.length >= 2 && (o = o.slice(1, -1), i = !0);
2126
+ const r = i ? U(`$$${o}$$`, !1) : U(`$${o}$`, !0);
2127
+ t.replace(r), Pe(null);
2099
2128
  }
2100
2129
  });
2101
2130
  }), !1),
2102
- $
2103
- ), [t]), C(() => t.registerCommand(
2104
- St,
2105
- (a) => {
2106
- const e = L();
2107
- if (!w(e) || !e.isCollapsed())
2131
+ F
2132
+ ), [n]), b(() => n.registerCommand(
2133
+ Ft,
2134
+ (s) => {
2135
+ const e = $();
2136
+ if (!k(e) || !e.isCollapsed())
2108
2137
  return !1;
2109
- const n = Fe(e.anchor, !1);
2110
- if (X(n) && n.isInline()) {
2111
- let r = n.getEquation();
2112
- r.startsWith("$") && r.endsWith("$") ? r = r.slice(1, -1) : r.startsWith("\\(") && r.endsWith("\\)") && (r = r.slice(2, -2));
2113
- const o = Ee(r);
2114
- return n.replace(o), o.select(0, 0), !0;
2138
+ const t = we(e.anchor, !1);
2139
+ if (V(t) && t.isInline()) {
2140
+ let i = t.getEquation();
2141
+ i.startsWith("$") && i.endsWith("$") ? i = i.slice(1, -1) : i.startsWith("\\(") && i.endsWith("\\)") && (i = i.slice(2, -2));
2142
+ const r = Le(i);
2143
+ return t.replace(r), r.select(0, 0), !0;
2115
2144
  }
2116
2145
  return !1;
2117
2146
  },
2118
- $
2119
- ), [t]), C(() => t.registerCommand(
2120
- Le,
2121
- (a) => {
2122
- const e = L();
2123
- if (!w(e) || !e.isCollapsed())
2147
+ F
2148
+ ), [n]), b(() => n.registerCommand(
2149
+ Oe,
2150
+ (s) => {
2151
+ const e = $();
2152
+ if (!k(e) || !e.isCollapsed())
2124
2153
  return !1;
2125
- const n = Fe(e.anchor, !0);
2126
- if (X(n) && n.isInline()) {
2127
- let r = n.getEquation();
2128
- r.startsWith("$") && r.endsWith("$") ? r = r.slice(1, -1) : r.startsWith("\\(") && r.endsWith("\\)") && (r = r.slice(2, -2));
2129
- const o = Ee(r);
2130
- return n.replace(o), o.select(), !0;
2154
+ const t = we(e.anchor, !0);
2155
+ if (V(t) && t.isInline()) {
2156
+ let i = t.getEquation();
2157
+ i.startsWith("$") && i.endsWith("$") ? i = i.slice(1, -1) : i.startsWith("\\(") && i.endsWith("\\)") && (i = i.slice(2, -2));
2158
+ const r = Le(i);
2159
+ return t.replace(r), r.select(), !0;
2131
2160
  }
2132
2161
  return !1;
2133
2162
  },
2134
- $
2135
- ), [t]), C(() => t.registerCommand(
2136
- ke,
2137
- (a) => {
2138
- const e = a.clipboardData;
2163
+ F
2164
+ ), [n]), b(() => n.registerCommand(
2165
+ _e,
2166
+ (s) => {
2167
+ const e = s.clipboardData;
2139
2168
  if (!e)
2140
2169
  return !1;
2141
- const n = L();
2142
- if (!ft(
2143
- n,
2144
- Q
2170
+ const t = $();
2171
+ if (!pt(
2172
+ t,
2173
+ X
2145
2174
  ))
2146
2175
  return !1;
2147
- const r = ht(e);
2148
- return r ? (a.preventDefault(), n.insertText(r), !0) : !1;
2176
+ const i = bt(e);
2177
+ return i ? (s.preventDefault(), t.insertText(i), !0) : !1;
2149
2178
  },
2150
- $
2151
- ), [t]), C(() => t.registerCommand(
2152
- j,
2179
+ F
2180
+ ), [n]), b(() => n.registerCommand(
2181
+ Y,
2153
2182
  () => {
2154
- const a = L();
2155
- if (!w(a) || !a.isCollapsed())
2183
+ const s = $();
2184
+ if (!k(s) || !s.isCollapsed())
2156
2185
  return !1;
2157
- const e = a.anchor.getNode();
2158
- return Q(e) && (e.getNextSibling() || e.insertAfter(Ft(" "))), !1;
2186
+ const e = s.anchor.getNode();
2187
+ return X(e) && (e.getNextSibling() || e.insertAfter(kt(" "))), !1;
2159
2188
  },
2160
- $t
2161
- ), [t]), // Register click event for MathNode
2189
+ wt
2190
+ ), [n]), // Register click event for MathNode
2162
2191
  /* @__PURE__ */ h(
2163
- Oe,
2192
+ He,
2164
2193
  {
2165
- nodeType: me,
2194
+ nodeType: be,
2166
2195
  eventType: "click",
2167
- eventListener: (a, e, n) => {
2168
- const i = oe(n);
2169
- i && i.isInline() && i.select();
2196
+ eventListener: (s, e, t) => {
2197
+ if (!e.isEditable())
2198
+ return;
2199
+ const o = j(t);
2200
+ o && o.isInline() && o.select();
2170
2201
  }
2171
2202
  }
2172
2203
  );
2173
2204
  }
2174
- function rr() {
2175
- const [t] = M();
2176
- return C(() => {
2177
- if (!t.hasNodes([me, fn]))
2205
+ function or() {
2206
+ const [n] = M();
2207
+ return b(() => {
2208
+ if (!n.hasNodes([be, pn]))
2178
2209
  throw new Error(
2179
2210
  "MathBlockPlugin: MathNode or MathHighlightNodeBlock not registered on editor"
2180
2211
  );
2181
- }, [t]), C(() => t.registerNodeTransform(ie, (e) => {
2182
- if (!e.isSimpleText() || I(e, G))
2212
+ }, [n]), b(() => n.registerNodeTransform(se, (e) => {
2213
+ if (!e.isSimpleText() || I(e, W))
2183
2214
  return;
2184
- const n = e.getTextContent();
2185
- if (n.startsWith("$$ ")) {
2186
- const r = e.getPreviousSibling(), o = I(e, V), s = o !== null && o.getChildrenSize() === 1, u = te(r);
2187
- if (s || u) {
2188
- if (n.length > 3)
2215
+ const t = e.getTextContent();
2216
+ if (t.startsWith("$$ ")) {
2217
+ const i = e.getPreviousSibling(), r = I(e, J), a = r !== null && r.getChildrenSize() === 1, u = ie(i);
2218
+ if (a || u) {
2219
+ if (t.length > 3)
2189
2220
  return;
2190
- const m = Te("");
2221
+ const m = Se("");
2191
2222
  e.replace(m), m.select();
2192
2223
  const A = m.getNextSibling();
2193
- te(A) && A.remove();
2224
+ ie(A) && A.remove();
2194
2225
  return;
2195
2226
  }
2196
2227
  }
2197
- const i = gt(n, tr);
2198
- if (i) {
2199
- const { start: r, end: o, content: s } = i;
2228
+ const o = mt(t, rr);
2229
+ if (o) {
2230
+ const { start: i, end: r, content: a } = o;
2200
2231
  let u;
2201
- const m = q(s, !1);
2202
- return r === 0 ? ([u] = e.splitText(o), u.insertBefore(m), u.remove()) : ([, u] = e.splitText(r, o), u.replace(m)), m;
2232
+ const m = U(a, !1);
2233
+ return i === 0 ? ([u] = e.splitText(r), u.insertBefore(m), u.remove()) : ([, u] = e.splitText(i, r), u.replace(m)), m;
2203
2234
  }
2204
- }), [t]), C(() => t.registerCommand(
2205
- j,
2235
+ }), [n]), b(() => n.registerCommand(
2236
+ Y,
2206
2237
  () => {
2207
- const e = L(), n = /* @__PURE__ */ new Set();
2208
- if (we(e)) {
2209
- const o = e.getNodes();
2210
- if (o.length === 1 && X(o[0])) {
2211
- const s = o[0];
2212
- if (!s.isInline()) {
2213
- let u = s.getEquation();
2238
+ const e = $(), t = /* @__PURE__ */ new Set();
2239
+ if (pe(e)) {
2240
+ const r = e.getNodes();
2241
+ if (r.length === 1 && V(r[0]) && n.isEditable()) {
2242
+ const a = r[0];
2243
+ if (!a.isInline()) {
2244
+ let u = a.getEquation();
2214
2245
  (u.startsWith("$$") && u.endsWith("$$") || u.startsWith("\\[") && u.endsWith("\\]")) && (u = u.slice(2, -2));
2215
- const m = Te(u);
2216
- return s.replace(m), m.select(), !0;
2246
+ const m = Se(u);
2247
+ return a.replace(m), m.select(), !0;
2217
2248
  }
2218
2249
  }
2219
- } else w(e) && e.getNodes().forEach((o) => {
2220
- n.add(o.getKey());
2221
- const s = I(o, G);
2222
- s && n.add(s.getKey());
2250
+ } else k(e) && e.getNodes().forEach((r) => {
2251
+ t.add(r.getKey());
2252
+ const a = I(r, W);
2253
+ a && t.add(a.getKey());
2223
2254
  });
2224
- const r = t.getEditorState()._nodeMap;
2225
- for (const [, o] of r)
2226
- if (G(o) && o.isAttached() && !n.has(o.getKey())) {
2227
- const s = o.getTextContent();
2228
- if (!s) {
2229
- o.remove();
2255
+ const i = n.getEditorState()._nodeMap;
2256
+ for (const [, r] of i)
2257
+ if (W(r) && r.isAttached() && !t.has(r.getKey())) {
2258
+ const a = r.getTextContent();
2259
+ if (!a) {
2260
+ r.remove();
2230
2261
  continue;
2231
2262
  }
2232
- const u = q(`$$${s}$$`, !1);
2233
- o.replace(u);
2263
+ const u = U(`$$${a}$$`, !1);
2264
+ r.replace(u);
2234
2265
  }
2235
2266
  return !1;
2236
2267
  },
2237
- $
2238
- ), [t]), C(() => t.registerCommand(
2239
- be,
2240
- () => (t.update(() => {
2241
- const a = fe();
2242
- Pt(a).forEach(({ node: n }) => {
2243
- if (G(n)) {
2244
- const i = n.getTextContent();
2245
- if (!i) {
2246
- n.remove();
2268
+ F
2269
+ ), [n]), b(() => n.registerCommand(
2270
+ ae,
2271
+ () => (n.update(() => {
2272
+ const s = me();
2273
+ Bt(s).forEach(({ node: t }) => {
2274
+ if (W(t)) {
2275
+ const o = t.getTextContent();
2276
+ if (!o) {
2277
+ t.remove();
2247
2278
  return;
2248
2279
  }
2249
- const r = q(`$$${i}$$`, !1);
2250
- n.replace(r), Je(null);
2280
+ const i = U(`$$${o}$$`, !1);
2281
+ t.replace(i), Pe(null);
2251
2282
  }
2252
2283
  });
2253
2284
  }), !1),
2254
- $
2255
- ), [t]), C(() => t.registerCommand(
2256
- Lt,
2285
+ F
2286
+ ), [n]), b(() => n.registerCommand(
2287
+ It,
2257
2288
  () => {
2258
- const e = L();
2259
- if (!w(e))
2289
+ const e = $();
2290
+ if (!k(e))
2260
2291
  return !1;
2261
- const n = e.getNodes()[0], i = I(
2262
- n,
2263
- G
2292
+ const t = e.getNodes()[0], o = I(
2293
+ t,
2294
+ W
2264
2295
  );
2265
- if (!i)
2296
+ if (!o)
2266
2297
  return !1;
2267
- const r = i.getLastChild();
2268
- return e.isCollapsed() && (e.anchor.getNode().getKey() === i.getKey() && e.anchor.offset === 0 && i.getChildrenSize() === 0 || r && te(r) && e.anchor.getNode().getKey() === i.getKey() && e.anchor.offset === i.getChildrenSize() || r && wt(r) && e.anchor.getNode().getKey() === r.getKey() && e.anchor.offset === r.getTextContent().length) ? !1 : (e.insertLineBreak(), !0);
2298
+ const i = o.getLastChild();
2299
+ return e.isCollapsed() && (e.anchor.getNode().getKey() === o.getKey() && e.anchor.offset === 0 && o.getChildrenSize() === 0 || i && ie(i) && e.anchor.getNode().getKey() === o.getKey() && e.anchor.offset === o.getChildrenSize() || i && Mt(i) && e.anchor.getNode().getKey() === i.getKey() && e.anchor.offset === i.getTextContent().length) ? !1 : (e.insertLineBreak(), !0);
2269
2300
  },
2270
- $
2271
- ), [t]), C(() => t.registerCommand(
2272
- Le,
2273
- (a) => {
2274
- const e = L();
2275
- if (!w(e) || !e.isCollapsed())
2301
+ F
2302
+ ), [n]), b(() => n.registerCommand(
2303
+ Oe,
2304
+ (s) => {
2305
+ const e = $();
2306
+ if (!k(e) || !e.isCollapsed())
2276
2307
  return !1;
2277
- const n = Fe(e.anchor, !0);
2278
- if (X(n) && !n.isInline()) {
2279
- let r = n.getEquation();
2280
- (r.startsWith("$$") && r.endsWith("$$") || r.startsWith("\\[") && r.endsWith("\\]")) && (r = r.slice(2, -2));
2281
- const o = Te(r);
2282
- return n.replace(o), o.select(), !0;
2308
+ const t = we(e.anchor, !0);
2309
+ if (V(t) && !t.isInline()) {
2310
+ let i = t.getEquation();
2311
+ (i.startsWith("$$") && i.endsWith("$$") || i.startsWith("\\[") && i.endsWith("\\]")) && (i = i.slice(2, -2));
2312
+ const r = Se(i);
2313
+ return t.replace(r), r.select(), !0;
2283
2314
  }
2284
2315
  return !1;
2285
2316
  },
2286
- $
2287
- ), [t]), C(() => t.registerCommand(
2288
- ke,
2289
- (a) => {
2290
- const e = a.clipboardData;
2317
+ F
2318
+ ), [n]), b(() => n.registerCommand(
2319
+ _e,
2320
+ (s) => {
2321
+ const e = s.clipboardData;
2291
2322
  if (!e)
2292
2323
  return !1;
2293
- const n = L();
2294
- if (!ft(
2295
- n,
2296
- G
2324
+ const t = $();
2325
+ if (!pt(
2326
+ t,
2327
+ W
2297
2328
  ))
2298
2329
  return !1;
2299
- const r = ht(e);
2300
- return r ? (a.preventDefault(), n.insertRawText(r), !0) : !1;
2330
+ const i = bt(e);
2331
+ return i ? (s.preventDefault(), t.insertRawText(i), !0) : !1;
2301
2332
  },
2302
- $
2303
- ), [t]), /* @__PURE__ */ h(
2304
- Oe,
2333
+ F
2334
+ ), [n]), /* @__PURE__ */ h(
2335
+ He,
2305
2336
  {
2306
- nodeType: me,
2337
+ nodeType: be,
2307
2338
  eventType: "click",
2308
- eventListener: (a, e, n) => {
2309
- const i = oe(n);
2310
- i && !i.isInline() && i.select();
2339
+ eventListener: (s, e, t) => {
2340
+ if (!e.isEditable())
2341
+ return;
2342
+ const o = j(t);
2343
+ o && !o.isInline() && o.select();
2311
2344
  }
2312
2345
  }
2313
2346
  );
2314
2347
  }
2315
- const ir = 3;
2316
- function or() {
2317
- const [t] = M();
2318
- return C(() => t.registerNodeTransform(
2319
- kt,
2348
+ const sr = 3;
2349
+ function ar() {
2350
+ const [n] = M();
2351
+ return b(() => n.registerNodeTransform(
2352
+ Ot,
2320
2353
  (e) => {
2321
- const n = e.getParent();
2322
- if (ze(n)) {
2323
- const i = It();
2324
- e.replace(i), i.selectEnd();
2354
+ const t = e.getParent();
2355
+ if (qe(t)) {
2356
+ const o = Pt();
2357
+ e.replace(o), o.selectEnd();
2325
2358
  }
2326
2359
  }
2327
- ), [t]), C(() => t.registerNodeTransform(ie, (e) => {
2328
- if (!I(e, V) || I(e, V).getFirstDescendant() !== e)
2360
+ ), [n]), b(() => n.registerNodeTransform(se, (e) => {
2361
+ if (!I(e, J) || I(e, J).getFirstDescendant() !== e)
2329
2362
  return;
2330
- const i = L();
2331
- if (w(i) && i.isCollapsed()) {
2332
- const o = i.anchor.offset;
2333
- e.getTextContent() === "1. " && o === 3 ? (We("number"), e.setTextContent("")) : e.getTextContent() === "- " && o === 2 && (We("bullet"), e.setTextContent(""));
2363
+ const o = $();
2364
+ if (k(o) && o.isCollapsed()) {
2365
+ const r = o.anchor.offset;
2366
+ e.getTextContent() === "1. " && r === 3 ? (je("number"), e.setTextContent("")) : e.getTextContent() === "- " && r === 2 && (je("bullet"), e.setTextContent(""));
2334
2367
  }
2335
- }), [t]), C(() => t.registerCommand(
2336
- Mt,
2368
+ }), [n]), b(() => n.registerCommand(
2369
+ _t,
2337
2370
  (e) => {
2338
- const n = L();
2339
- if (!w(n))
2371
+ const t = $();
2372
+ if (!k(t))
2340
2373
  return !1;
2341
- const i = ve(n), r = I(i, ze);
2342
- if (!r)
2374
+ const o = Ee(t), i = I(o, qe);
2375
+ if (!i)
2343
2376
  return !1;
2344
- const o = r.getIndent();
2377
+ const r = i.getIndent();
2345
2378
  if (e.shiftKey) {
2346
- if (o <= 0)
2379
+ if (r <= 0)
2347
2380
  return !1;
2348
- r.setIndent(o - 1);
2381
+ i.setIndent(r - 1);
2349
2382
  } else {
2350
- if (o > ir)
2383
+ if (r > sr)
2351
2384
  return !1;
2352
- r.setIndent(o + 1);
2385
+ i.setIndent(r + 1);
2353
2386
  }
2354
2387
  return !0;
2355
2388
  },
2356
- $
2357
- ), [t]), null;
2389
+ F
2390
+ ), [n]), null;
2358
2391
  }
2359
- function sr() {
2360
- const [t] = M(), a = (e) => {
2392
+ function lr() {
2393
+ const [n] = M(), s = (e) => {
2361
2394
  e.key === "Tab" && e.preventDefault();
2362
2395
  };
2363
- return C(() => t.registerRootListener(
2364
- (n, i) => {
2365
- n && n.addEventListener("keydown", a), i && i.removeEventListener("keydown", a);
2396
+ return b(() => n.registerRootListener(
2397
+ (t, o) => {
2398
+ t && t.addEventListener("keydown", s), o && o.removeEventListener("keydown", s);
2366
2399
  }
2367
- ), [t]), null;
2400
+ ), [n]), null;
2368
2401
  }
2369
- function ar({ editorRef: t }) {
2370
- const [a] = M();
2371
- return C(() => {
2372
- if (t)
2373
- return t.current = a, () => {
2374
- t && (t.current = null);
2402
+ function cr({ editorRef: n }) {
2403
+ const [s] = M();
2404
+ return b(() => {
2405
+ if (n)
2406
+ return n.current = s, () => {
2407
+ n && (n.current = null);
2375
2408
  };
2376
- }, [a, t]), null;
2409
+ }, [s, n]), null;
2377
2410
  }
2378
- function Ir({
2379
- initialConfig: t,
2380
- onChange: a,
2411
+ function Or({
2412
+ initialConfig: n,
2413
+ onChange: s,
2381
2414
  editorRef: e,
2382
- blockToolbarGap: n,
2383
- spellCheck: i,
2384
- isHeadingOneFirst: r
2415
+ blockToolbarGap: t,
2416
+ spellCheck: o,
2417
+ isHeadingOneFirst: i,
2418
+ onImageUpload: r
2385
2419
  }) {
2386
- return /* @__PURE__ */ D(yt, { initialConfig: t, children: [
2420
+ return /* @__PURE__ */ D(xt, { initialConfig: n, children: [
2387
2421
  /* @__PURE__ */ h(
2388
- Nt,
2422
+ Tt,
2389
2423
  {
2390
- contentEditable: /* @__PURE__ */ h(vn, { spellCheck: i, className: "editor-input" }),
2391
- ErrorBoundary: Et
2424
+ contentEditable: /* @__PURE__ */ h(En, { spellCheck: o, className: "editor-input" }),
2425
+ ErrorBoundary: Lt
2392
2426
  }
2393
2427
  ),
2394
- /* @__PURE__ */ h(In, { isHeadingOneFirst: r }),
2395
- /* @__PURE__ */ h(Dn, {}),
2396
- /* @__PURE__ */ h(Jn, { toolbarGap: n }),
2397
- /* @__PURE__ */ h(Ct, {}),
2398
- /* @__PURE__ */ h(xt, {}),
2399
- /* @__PURE__ */ h(nr, {}),
2400
- /* @__PURE__ */ h(rr, {}),
2401
- /* @__PURE__ */ h(Un, {}),
2402
- /* @__PURE__ */ h(jn, {}),
2403
- /* @__PURE__ */ h(Zn, {}),
2404
- /* @__PURE__ */ h(pn, {}),
2428
+ /* @__PURE__ */ h(Pn, { isHeadingOneFirst: i }),
2429
+ /* @__PURE__ */ h(Rn, {}),
2430
+ /* @__PURE__ */ h(tr, { toolbarGap: t }),
2431
+ /* @__PURE__ */ h(Nt, {}),
2432
+ /* @__PURE__ */ h(At, {}),
2433
+ /* @__PURE__ */ h(ir, {}),
2405
2434
  /* @__PURE__ */ h(or, {}),
2406
- /* @__PURE__ */ h(sr, {}),
2407
- /* @__PURE__ */ h(bn, { onChange: a }),
2408
- /* @__PURE__ */ h(ar, { editorRef: e }),
2409
- /* @__PURE__ */ h(Cn, {})
2435
+ /* @__PURE__ */ h(Zn, {}),
2436
+ /* @__PURE__ */ h(Qn, {}),
2437
+ /* @__PURE__ */ h(Xn, { onImageUpload: r }),
2438
+ /* @__PURE__ */ h(Cn, {}),
2439
+ /* @__PURE__ */ h(ar, {}),
2440
+ /* @__PURE__ */ h(lr, {}),
2441
+ /* @__PURE__ */ h(yn, { onChange: s }),
2442
+ /* @__PURE__ */ h(cr, { editorRef: e }),
2443
+ /* @__PURE__ */ h(Nn, {})
2410
2444
  ] });
2411
2445
  }
2412
2446
  export {
2413
- Ir as default
2447
+ Or as default
2414
2448
  };
2415
2449
  //# sourceMappingURL=index.es.js.map