bridgerte 0.9.17 → 0.9.18

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,37 +1,37 @@
1
- var nr = Object.defineProperty;
2
- var rr = (e, t, n) => t in e ? nr(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
- var Oe = (e, t, n) => rr(e, typeof t != "symbol" ? t + "" : t, n);
4
- import { BRIDGE_CONTENT_CHANGE_DEBOUNCE_MS as or, isBridgeMessage as ar, BRIDGE_HEIGHT_CHANGE_THROTTLE_MS as sr, defaultBridgeEventTiming as ir } from "./bridge.js";
1
+ var or = Object.defineProperty;
2
+ var ar = (e, t, n) => t in e ? or(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
+ var Oe = (e, t, n) => ar(e, typeof t != "symbol" ? t + "" : t, n);
4
+ import { BRIDGE_CONTENT_CHANGE_DEBOUNCE_MS as sr, isBridgeMessage as ir, BRIDGE_HEIGHT_CHANGE_THROTTLE_MS as lr, defaultBridgeEventTiming as cr } from "./bridge.js";
5
5
  import { B as Ie, b as Qt, a as Zt } from "./index-CuNKUHed.js";
6
- import { DecoratorNode as en, $applyNodeReplacement as tt, $getRoot as H, $isElementNode as ge, $createParagraphNode as F, KEY_BACKSPACE_COMMAND as tn, COMMAND_PRIORITY_HIGH as se, KEY_DELETE_COMMAND as nn, DELETE_CHARACTER_COMMAND as rn, $getSelection as R, $isNodeSelection as lr, $isRangeSelection as D, TextNode as X, $isParagraphNode as cr, $insertNodes as W, FORMAT_ELEMENT_COMMAND as dr, $createTextNode as Re, FORMAT_TEXT_COMMAND as ur, REDO_COMMAND as mr, UNDO_COMMAND as gr, OUTDENT_CONTENT_COMMAND as hr, INDENT_CONTENT_COMMAND as pr, SKIP_SCROLL_INTO_VIEW_TAG as fr, $getNodeByKey as he, $setSelection as br, SELECTION_CHANGE_COMMAND as on, COMMAND_PRIORITY_LOW as j, KEY_ESCAPE_COMMAND as an, KEY_ARROW_DOWN_COMMAND as yr, KEY_ARROW_UP_COMMAND as vr, KEY_ENTER_COMMAND as wr, mergeRegister as sn, $getNearestNodeFromDOMNode as Cr, CAN_UNDO_COMMAND as _r, CAN_REDO_COMMAND as kr, createEditor as Er, CLEAR_HISTORY_COMMAND as xr } from "lexical";
7
- import { $isHeadingNode as Mr, $isQuoteNode as Tr, $createQuoteNode as Lr, $createHeadingNode as Nr, registerRichText as Sr, HeadingNode as Pr, QuoteNode as Ir } from "@lexical/rich-text";
8
- import { $isCodeNode as G, $createCodeNode as Rr, $isCodeHighlightNode as Ar, $createCodeHighlightNode as Br, CodeNode as ln, CodeHighlightNode as Dr } from "@lexical/code";
9
- import { $isListNode as Or, ListNode as cn, INSERT_CHECK_LIST_COMMAND as Hr, INSERT_UNORDERED_LIST_COMMAND as $r, INSERT_ORDERED_LIST_COMMAND as Fr, $isListItemNode as zr, registerList as Wr, registerCheckList as Vr, ListItemNode as Ur } from "@lexical/list";
10
- import { $isTableSelection as dn, $findTableNode as jr, $deleteTableColumnAtSelection as qr, $deleteTableRowAtSelection as Kr, $insertTableColumnAtSelection as Gr, $insertTableRowAtSelection as Xr, INSERT_TABLE_COMMAND as Yr, $findCellNode as Jr, TableNode as qe, $isTableRowNode as Qr, $isTableCellNode as Zr, registerTablePlugin as eo, TableRowNode as to, TableCellNode as no, setScrollableTablesActive as ro } from "@lexical/table";
11
- import { $isLinkNode as Te, $toggleLink as gt, formatUrl as oo, $createLinkNode as ao, registerAutoLink as so, createLinkMatcherWithRegExp as ht, LinkNode as io, AutoLinkNode as lo } from "@lexical/link";
12
- import { registerHistory as co, createEmptyHistoryState as uo } from "@lexical/history";
13
- import { $generateNodesFromDOM as un, $generateHtmlFromNodes as mo } from "@lexical/html";
14
- import { $getSelectionStyleValueForProperty as go, $setBlocksType as He, $patchStyleText as pt, $trimTextContentFromAnchor as ft } from "@lexical/selection";
15
- import { $getNearestNodeOfType as ho, $findMatchingParent as po, $insertNodeToNearestRoot as mn } from "@lexical/utils";
16
- import { codeBlockLanguagePanel as Ke, isCommandStateForCommand as fo, resolveToolbarMenu as nt, defaultMenuSchema as Ae, tableHeaderMenuItems as bo } from "./native-spec.js";
17
- import { r as gn } from "./index-sbZNOcCB.js";
18
- import { computePosition as hn, platform as pn, offset as fn, flip as bn, shift as yn, autoUpdate as yo } from "@floating-ui/dom";
19
- import { normalizeCodeLanguage as vo, getCodeLanguageOptions as wo, ShikiTokenizer as bt, isCodeLanguageLoaded as vn, loadCodeLanguage as Co, loadCodeTheme as _o, registerCodeHighlighting as ko } from "@lexical/code-shiki";
20
- const yt = "bridgerte-media", wn = "Loading", vt = (e, t) => `${e}:${t}`, re = (e) => typeof e == "number" && Number.isFinite(e) && e > 0 ? Math.floor(e) : void 0, wt = (e) => typeof e == "number" && Number.isFinite(e) ? Math.min(Math.max(e, 0), 100) : void 0, Eo = (e) => e === 20 || e === 50 || e === 100, Ct = (e) => Eo(e) ? e : void 0, _t = (e) => e === "center" || e === "right" ? e : void 0, xo = (e) => e.status === "error" ? e.errorMessage ?? "媒体加载失败" : wn, Mo = (e, t) => !t || e.status === void 0 || e.status === "success", $e = (e, t, n) => {
6
+ import { DecoratorNode as en, $applyNodeReplacement as tt, $getRoot as H, $isElementNode as ie, $createParagraphNode as F, KEY_BACKSPACE_COMMAND as tn, COMMAND_PRIORITY_HIGH as G, KEY_DELETE_COMMAND as nn, DELETE_CHARACTER_COMMAND as rn, $getSelection as I, $isNodeSelection as dr, $isRangeSelection as D, TextNode as Y, $isParagraphNode as ur, $insertNodes as W, FORMAT_ELEMENT_COMMAND as mr, $createTextNode as Re, FORMAT_TEXT_COMMAND as gr, REDO_COMMAND as hr, UNDO_COMMAND as pr, OUTDENT_CONTENT_COMMAND as fr, INDENT_CONTENT_COMMAND as br, SKIP_SCROLL_INTO_VIEW_TAG as yr, $getNodeByKey as he, $setSelection as vr, SELECTION_CHANGE_COMMAND as on, COMMAND_PRIORITY_LOW as j, KEY_ESCAPE_COMMAND as an, KEY_ARROW_DOWN_COMMAND as wr, KEY_ARROW_UP_COMMAND as Cr, KEY_ENTER_COMMAND as _r, mergeRegister as sn, INSERT_PARAGRAPH_COMMAND as kr, INSERT_LINE_BREAK_COMMAND as Er, $isLineBreakNode as ln, $getNearestNodeFromDOMNode as xr, CAN_UNDO_COMMAND as Mr, CAN_REDO_COMMAND as Tr, createEditor as Lr, CLEAR_HISTORY_COMMAND as Sr } from "lexical";
7
+ import { $isHeadingNode as Nr, $isQuoteNode as cn, $createQuoteNode as Pr, $createHeadingNode as Ir, registerRichText as Rr, HeadingNode as Ar, QuoteNode as Br } from "@lexical/rich-text";
8
+ import { $isCodeNode as X, $createCodeNode as Dr, $isCodeHighlightNode as Or, $createCodeHighlightNode as Hr, CodeNode as dn, CodeHighlightNode as $r } from "@lexical/code";
9
+ import { $isListNode as Fr, ListNode as un, INSERT_CHECK_LIST_COMMAND as zr, INSERT_UNORDERED_LIST_COMMAND as Wr, INSERT_ORDERED_LIST_COMMAND as Vr, $isListItemNode as Ur, registerList as jr, registerCheckList as Kr, ListItemNode as qr } from "@lexical/list";
10
+ import { $isTableSelection as mn, $findTableNode as Gr, $deleteTableColumnAtSelection as Xr, $deleteTableRowAtSelection as Yr, $insertTableColumnAtSelection as Jr, $insertTableRowAtSelection as Qr, INSERT_TABLE_COMMAND as Zr, $findCellNode as eo, TableNode as Ke, $isTableRowNode as to, $isTableCellNode as no, registerTablePlugin as ro, TableRowNode as oo, TableCellNode as ao, setScrollableTablesActive as so } from "@lexical/table";
11
+ import { $isLinkNode as Te, $toggleLink as gt, formatUrl as io, $createLinkNode as lo, registerAutoLink as co, createLinkMatcherWithRegExp as ht, LinkNode as uo, AutoLinkNode as mo } from "@lexical/link";
12
+ import { registerHistory as go, createEmptyHistoryState as ho } from "@lexical/history";
13
+ import { $generateNodesFromDOM as gn, $generateHtmlFromNodes as po } from "@lexical/html";
14
+ import { $getSelectionStyleValueForProperty as fo, $setBlocksType as He, $patchStyleText as pt, $trimTextContentFromAnchor as ft } from "@lexical/selection";
15
+ import { $getNearestNodeOfType as bo, $findMatchingParent as yo, $insertNodeToNearestRoot as hn } from "@lexical/utils";
16
+ import { codeBlockLanguagePanel as qe, isCommandStateForCommand as vo, resolveToolbarMenu as nt, defaultMenuSchema as Ae, tableHeaderMenuItems as wo } from "./native-spec.js";
17
+ import { r as pn } from "./index-sbZNOcCB.js";
18
+ import { computePosition as fn, platform as bn, offset as yn, flip as vn, shift as wn, autoUpdate as Co } from "@floating-ui/dom";
19
+ import { normalizeCodeLanguage as _o, getCodeLanguageOptions as ko, ShikiTokenizer as bt, isCodeLanguageLoaded as Cn, loadCodeLanguage as Eo, loadCodeTheme as xo, registerCodeHighlighting as Mo } from "@lexical/code-shiki";
20
+ const yt = "bridgerte-media", _n = "Loading", vt = (e, t) => `${e}:${t}`, oe = (e) => typeof e == "number" && Number.isFinite(e) && e > 0 ? Math.floor(e) : void 0, wt = (e) => typeof e == "number" && Number.isFinite(e) ? Math.min(Math.max(e, 0), 100) : void 0, To = (e) => e === 20 || e === 50 || e === 100, Ct = (e) => To(e) ? e : void 0, _t = (e) => e === "center" || e === "right" ? e : void 0, Lo = (e) => e.status === "error" ? e.errorMessage ?? "媒体加载失败" : _n, So = (e, t) => !t || e.status === void 0 || e.status === "success", $e = (e, t, n) => {
21
21
  n && e.setAttribute(t, n);
22
22
  }, kt = (e, t, n) => {
23
23
  n !== void 0 && e.setAttribute(t, String(n));
24
24
  };
25
- class ie extends en {
25
+ class le extends en {
26
26
  constructor(n, r) {
27
27
  super(r);
28
28
  Oe(this, "__payload");
29
29
  this.__payload = {
30
30
  ...n,
31
31
  assetId: n.assetId ?? vt(n.mediaType, n.url),
32
- width: re(n.width),
33
- height: re(n.height),
34
- duration: re(n.duration),
32
+ width: oe(n.width),
33
+ height: oe(n.height),
34
+ duration: oe(n.duration),
35
35
  progress: wt(n.progress),
36
36
  displayWidthPercent: Ct(n.displayWidthPercent),
37
37
  align: _t(n.align)
@@ -41,7 +41,7 @@ class ie extends en {
41
41
  return yt;
42
42
  }
43
43
  static clone(n) {
44
- return new ie(n.__payload, n.__key);
44
+ return new le(n.__payload, n.__key);
45
45
  }
46
46
  createDOM(n) {
47
47
  return this.createMediaElement(!0);
@@ -57,17 +57,17 @@ class ie extends en {
57
57
  static importDOM() {
58
58
  return {
59
59
  img: () => ({
60
- conversion: To,
60
+ conversion: No,
61
61
  priority: 1
62
62
  }),
63
63
  video: () => ({
64
- conversion: Lo,
64
+ conversion: Po,
65
65
  priority: 1
66
66
  })
67
67
  };
68
68
  }
69
69
  static importJSON(n) {
70
- return le(n).updateFromJSON(n);
70
+ return ce(n).updateFromJSON(n);
71
71
  }
72
72
  exportJSON() {
73
73
  return {
@@ -105,9 +105,9 @@ class ie extends en {
105
105
  r.__payload = {
106
106
  ...r.__payload,
107
107
  ...n,
108
- width: re(n.width ?? r.__payload.width),
109
- height: re(n.height ?? r.__payload.height),
110
- duration: re(n.duration ?? r.__payload.duration),
108
+ width: oe(n.width ?? r.__payload.width),
109
+ height: oe(n.height ?? r.__payload.height),
110
+ duration: oe(n.duration ?? r.__payload.duration),
111
111
  progress: wt(n.progress ?? r.__payload.progress),
112
112
  displayWidthPercent: Object.prototype.hasOwnProperty.call(
113
113
  n,
@@ -133,26 +133,26 @@ class ie extends en {
133
133
  ), a.addEventListener("error", () => {
134
134
  o.dataset.loadState = "error";
135
135
  }, { once: !0 }));
136
- const l = Mo(r, n);
136
+ const l = So(r, n);
137
137
  if (r.mediaType === "image" ? (l && a.setAttribute("src", r.url), a.setAttribute("loading", "lazy"), $e(a, "alt", r.alt ?? r.title)) : (l && a.setAttribute("src", r.url), a.setAttribute("controls", "true"), a.setAttribute("preload", "metadata"), $e(a, "poster", r.poster)), $e(a, "title", r.title), kt(a, "width", r.width), kt(a, "height", r.height), n) {
138
138
  const d = document.createElement("div"), c = document.createElement("span"), h = document.createElement("span");
139
- d.className = "bridgerte__media-placeholder", d.setAttribute("aria-hidden", "true"), c.className = "bridgerte__media-placeholder-icon", c.textContent = r.mediaType === "image" ? "IMG" : "VIDEO", h.className = "bridgerte__media-placeholder-text", h.textContent = xo(r), d.append(c, h), o.append(d);
139
+ d.className = "bridgerte__media-placeholder", d.setAttribute("aria-hidden", "true"), c.className = "bridgerte__media-placeholder-icon", c.textContent = r.mediaType === "image" ? "IMG" : "VIDEO", h.className = "bridgerte__media-placeholder-text", h.textContent = Lo(r), d.append(c, h), o.append(d);
140
140
  }
141
141
  if (o.append(a), r.status === "uploading" || r.status === "error") {
142
142
  const d = document.createElement("figcaption");
143
- d.className = "bridgerte__media-status", d.textContent = r.status === "error" ? r.errorMessage ?? "上传失败" : wn, o.append(d);
143
+ d.className = "bridgerte__media-status", d.textContent = r.status === "error" ? r.errorMessage ?? "上传失败" : _n, o.append(d);
144
144
  }
145
145
  return o;
146
146
  }
147
147
  }
148
- const To = (e) => {
148
+ const No = (e) => {
149
149
  const t = e instanceof HTMLImageElement ? e : null;
150
150
  return {
151
151
  /*
152
152
  * 外部 HTML 粘贴或 setContent 导入 img 时,只认带 src 的真实媒体。
153
153
  * 状态统一设为 success,因为浏览器 DOM 不包含 BridgeRTE 上传任务信息。
154
154
  */
155
- node: t != null && t.src ? le({
155
+ node: t != null && t.src ? ce({
156
156
  mediaType: "image",
157
157
  url: t.src,
158
158
  alt: t.alt,
@@ -162,13 +162,13 @@ const To = (e) => {
162
162
  status: "success"
163
163
  }) : null
164
164
  };
165
- }, Lo = (e) => {
165
+ }, Po = (e) => {
166
166
  const t = e instanceof HTMLVideoElement ? e : null;
167
167
  return {
168
168
  /*
169
169
  * video 导入只保留可序列化的展示元信息;controls、preload 等播放属性由 createDOM 重建。
170
170
  */
171
- node: t != null && t.src ? le({
171
+ node: t != null && t.src ? ce({
172
172
  mediaType: "video",
173
173
  url: t.src,
174
174
  poster: t.poster,
@@ -178,7 +178,7 @@ const To = (e) => {
178
178
  status: "success"
179
179
  }) : null
180
180
  };
181
- }, le = (e) => tt(new ie(e)), No = (e) => le({
181
+ }, ce = (e) => tt(new le(e)), Io = (e) => ce({
182
182
  mediaType: "image",
183
183
  url: e.url,
184
184
  alt: e.alt,
@@ -189,7 +189,7 @@ const To = (e) => {
189
189
  align: e.align,
190
190
  assetId: e.assetId,
191
191
  status: "success"
192
- }), So = (e) => le({
192
+ }), Ro = (e) => ce({
193
193
  mediaType: "video",
194
194
  url: e.url,
195
195
  poster: e.poster,
@@ -200,10 +200,10 @@ const To = (e) => {
200
200
  align: e.align,
201
201
  assetId: e.assetId,
202
202
  status: "success"
203
- }), Cn = (e) => e instanceof ie, me = (e) => {
203
+ }), kn = (e) => e instanceof le, ge = (e) => {
204
204
  const t = (n) => {
205
- if (Cn(n) && n.getAsset().id === e) return n;
206
- if (!ge(n)) return null;
205
+ if (kn(n) && n.getAsset().id === e) return n;
206
+ if (!ie(n)) return null;
207
207
  for (const r of n.getChildren()) {
208
208
  const o = t(r);
209
209
  if (o) return o;
@@ -211,7 +211,7 @@ const To = (e) => {
211
211
  return null;
212
212
  };
213
213
  return t(H());
214
- }, _n = {
214
+ }, En = {
215
215
  root: {
216
216
  type: "root",
217
217
  version: 1,
@@ -221,41 +221,41 @@ const To = (e) => {
221
221
  function Ge(e = {}) {
222
222
  return {
223
223
  html: e.html ?? "",
224
- json: e.json ?? _n,
224
+ json: e.json ?? En,
225
225
  plainText: e.plainText ?? "",
226
226
  assets: e.assets ?? [],
227
227
  version: e.version ?? Ie
228
228
  };
229
229
  }
230
- const Po = (e) => e.toJSON(), Io = (e) => {
230
+ const Ao = (e) => e.toJSON(), Bo = (e) => {
231
231
  var t;
232
232
  return ((t = e.root.children) == null ? void 0 : t.length) === 0;
233
- }, Ro = (e) => e.read(() => {
233
+ }, Do = (e) => e.read(() => {
234
234
  const t = /* @__PURE__ */ new Map(), n = (r) => {
235
- ge(r) && r.getChildren().forEach((o) => {
236
- if (Cn(o)) {
235
+ ie(r) && r.getChildren().forEach((o) => {
236
+ if (kn(o)) {
237
237
  const a = o.getAsset();
238
238
  t.set(a.id, a);
239
239
  return;
240
240
  }
241
- ge(o) && n(o);
241
+ ie(o) && n(o);
242
242
  });
243
243
  };
244
244
  return n(H()), [...t.values()];
245
- }), kn = (e, t) => {
246
- const n = t.read(() => mo(t)), r = e.read(() => H().getTextContent()), o = Ro(e);
245
+ }), xn = (e, t) => {
246
+ const n = t.read(() => po(t)), r = e.read(() => H().getTextContent()), o = Do(e);
247
247
  return {
248
248
  html: n,
249
- json: Po(e),
249
+ json: Ao(e),
250
250
  plainText: r,
251
251
  assets: o,
252
252
  version: Ie
253
253
  };
254
- }, Ao = (e, t) => {
254
+ }, Oo = (e, t) => {
255
255
  const n = Ge(t);
256
- return En(e, n), kn(e.getEditorState(), e);
257
- }, En = (e, t) => {
258
- if (t.json !== _n && !Io(t.json)) {
256
+ return Mn(e, n), xn(e.getEditorState(), e);
257
+ }, Mn = (e, t) => {
258
+ if (t.json !== En && !Bo(t.json)) {
259
259
  const o = t.json;
260
260
  e.setEditorState(e.parseEditorState(o));
261
261
  return;
@@ -273,12 +273,12 @@ const Po = (e) => e.toJSON(), Io = (e) => {
273
273
  const r = new DOMParser().parseFromString(t.html, "text/html");
274
274
  e.update(
275
275
  () => {
276
- const o = H(), a = un(e, r);
276
+ const o = H(), a = gn(e, r);
277
277
  o.clear(), o.append(...a);
278
278
  },
279
279
  { discrete: !0 }
280
280
  );
281
- }, Bo = "bridgerte-divider", xn = (e) => (e == null ? void 0 : e.getType()) === Bo, Do = (e, t, n) => {
281
+ }, Ho = "bridgerte-divider", Tn = (e) => (e == null ? void 0 : e.getType()) === Ho, $o = (e, t, n) => {
282
282
  const r = H();
283
283
  if (r.getChildrenSize() === 0) {
284
284
  const o = F();
@@ -290,34 +290,34 @@ const Po = (e) => e.toJSON(), Io = (e) => {
290
290
  return;
291
291
  }
292
292
  t == null || t.selectStart(), t || e == null || e.selectEnd();
293
- }, Oo = (e, t) => {
293
+ }, Fo = (e, t) => {
294
294
  const n = e.getPreviousSibling(), r = e.getNextSibling();
295
- e.remove(), Do(n, r, t);
296
- }, Ho = () => {
297
- const e = R();
298
- if (!lr(e)) return null;
295
+ e.remove(), $o(n, r, t);
296
+ }, zo = () => {
297
+ const e = I();
298
+ if (!dr(e)) return null;
299
299
  const t = e.getNodes();
300
- return t.length === 1 && xn(t[0]) ? t[0] : null;
301
- }, $o = (e) => e.getKey() === "root" ? null : e.getTopLevelElement(), Fo = (e) => {
302
- const t = R();
300
+ return t.length === 1 && Tn(t[0]) ? t[0] : null;
301
+ }, Wo = (e) => e.getKey() === "root" ? null : e.getTopLevelElement(), Vo = (e) => {
302
+ const t = I();
303
303
  if (!D(t) || !t.isCollapsed()) return null;
304
- const n = t.anchor, r = n.getNode(), o = $o(r);
305
- if (!o || !ge(o)) return null;
306
- if (ge(r)) {
304
+ const n = t.anchor, r = n.getNode(), o = Wo(r);
305
+ if (!o || !ie(o)) return null;
306
+ if (ie(r)) {
307
307
  const l = r.isEmpty() && n.offset === 0, d = r === o && n.offset === 0, c = r === o && n.offset === o.getChildrenSize();
308
308
  return l || (e ? d : c) ? o : null;
309
309
  }
310
- if (!(r instanceof X)) return null;
310
+ if (!(r instanceof Y)) return null;
311
311
  const a = e ? o.getFirstDescendant() : o.getLastDescendant(), s = e ? 0 : r.getTextContentSize();
312
312
  return a === r && n.offset === s ? o : null;
313
- }, zo = (e) => {
314
- const t = Fo(e), n = e ? t == null ? void 0 : t.getPreviousSibling() : t == null ? void 0 : t.getNextSibling();
315
- return xn(n) ? n : null;
316
- }, Wo = (e, t) => {
313
+ }, Uo = (e) => {
314
+ const t = Vo(e), n = e ? t == null ? void 0 : t.getPreviousSibling() : t == null ? void 0 : t.getNextSibling();
315
+ return Tn(n) ? n : null;
316
+ }, jo = (e, t) => {
317
317
  const n = (o) => {
318
318
  if (t()) return !1;
319
- const a = Ho() ?? zo(o);
320
- return a ? (Oo(a, o), !0) : !1;
319
+ const a = zo() ?? Uo(o);
320
+ return a ? (Fo(a, o), !0) : !1;
321
321
  }, r = (o, a) => {
322
322
  const s = n(a);
323
323
  return s && o.preventDefault(), s;
@@ -326,17 +326,17 @@ const Po = (e) => e.toJSON(), Io = (e) => {
326
326
  e.registerCommand(
327
327
  tn,
328
328
  (o) => r(o, !0),
329
- se
329
+ G
330
330
  ),
331
331
  e.registerCommand(
332
332
  nn,
333
333
  (o) => r(o, !1),
334
- se
334
+ G
335
335
  ),
336
336
  e.registerCommand(
337
337
  rn,
338
338
  (o) => n(o),
339
- se
339
+ G
340
340
  )
341
341
  ];
342
342
  };
@@ -364,7 +364,7 @@ class pe extends en {
364
364
  static importDOM() {
365
365
  return {
366
366
  hr: () => ({
367
- conversion: Vo,
367
+ conversion: Ko,
368
368
  priority: 0
369
369
  })
370
370
  };
@@ -386,14 +386,14 @@ class pe extends en {
386
386
  return !1;
387
387
  }
388
388
  }
389
- const Vo = (e) => ({
389
+ const Ko = (e) => ({
390
390
  node: rt()
391
- }), rt = () => tt(new pe()), Et = "bridgerte-mention", ot = "mention", Mn = (e) => e.label.startsWith("@") ? e.label : `@${e.label}`, Uo = (e) => {
391
+ }), rt = () => tt(new pe()), Et = "bridgerte-mention", ot = "mention", Ln = (e) => e.label.startsWith("@") ? e.label : `@${e.label}`, qo = (e) => {
392
392
  const t = document.createElement("span");
393
- return t.className = "bridgerte__mention", t.dataset.type = ot, t.dataset.id = e.id, t.dataset.value = e.value, t.contentEditable = "false", t.textContent = Mn(e), e.description && (t.dataset.description = e.description), t;
393
+ return t.className = "bridgerte__mention", t.dataset.type = ot, t.dataset.id = e.id, t.dataset.value = e.value, t.contentEditable = "false", t.textContent = Ln(e), e.description && (t.dataset.description = e.description), t;
394
394
  };
395
- class ye extends X {
396
- constructor(n, r = Mn(n), o) {
395
+ class ye extends Y {
396
+ constructor(n, r = Ln(n), o) {
397
397
  super(r, o);
398
398
  Oe(this, "__item");
399
399
  this.__item = n;
@@ -412,12 +412,12 @@ class ye extends X {
412
412
  return super.updateDOM(n, r, o) ? !0 : (r.dataset.id = this.__item.id, r.dataset.value = this.__item.value, this.__item.description ? r.dataset.description = this.__item.description : delete r.dataset.description, !1);
413
413
  }
414
414
  exportDOM(n) {
415
- return { element: Uo(this.__item) };
415
+ return { element: qo(this.__item) };
416
416
  }
417
417
  static importDOM() {
418
418
  return {
419
419
  span: () => ({
420
- conversion: jo,
420
+ conversion: Go,
421
421
  priority: 2
422
422
  })
423
423
  };
@@ -442,7 +442,7 @@ class ye extends X {
442
442
  return this.__item;
443
443
  }
444
444
  }
445
- const jo = (e) => {
445
+ const Go = (e) => {
446
446
  var a;
447
447
  const t = e instanceof HTMLElement ? e : null;
448
448
  if (!t || t.dataset.type !== ot)
@@ -456,19 +456,19 @@ const jo = (e) => {
456
456
  description: t.dataset.description
457
457
  })
458
458
  };
459
- }, at = (e) => tt(new ye(e).setMode("token")), xt = (e) => e instanceof ye, qo = "请输入内容", Ko = () => {
459
+ }, at = (e) => tt(new ye(e).setMode("token")), xt = (e) => e instanceof ye, Xo = "请输入内容", Yo = () => {
460
460
  const t = H().getChildren();
461
461
  if (t.length === 0) return !0;
462
462
  if (t.length > 1) return !1;
463
463
  const n = t[0];
464
- return cr(n) && n.getChildrenSize() === 0;
465
- }, Go = ({
464
+ return ur(n) && n.getChildrenSize() === 0;
465
+ }, Jo = ({
466
466
  editor: e,
467
467
  contentElement: t
468
468
  }) => {
469
- const n = e.getEditorState().read(Ko);
469
+ const n = e.getEditorState().read(Yo);
470
470
  t.dataset.empty = String(n);
471
- }, Xo = ({
471
+ }, Qo = ({
472
472
  editor: e,
473
473
  contentElement: t,
474
474
  isReadonly: n
@@ -483,7 +483,7 @@ const jo = (e) => {
483
483
  return t.addEventListener("pointerdown", r), () => {
484
484
  t.removeEventListener("pointerdown", r);
485
485
  };
486
- }, Yo = [
486
+ }, Zo = [
487
487
  { command: "format.bold", format: "bold" },
488
488
  { command: "format.italic", format: "italic" },
489
489
  { command: "format.underline", format: "underline" },
@@ -491,86 +491,86 @@ const jo = (e) => {
491
491
  { command: "format.inlineCode", format: "code" },
492
492
  { command: "format.superscript", format: "superscript" },
493
493
  { command: "format.subscript", format: "subscript" }
494
- ], Jo = [
494
+ ], ea = [
495
495
  { command: "format.color", property: "color" },
496
496
  { command: "format.backgroundColor", property: "background-color" },
497
497
  { command: "format.fontSize", property: "font-size" },
498
498
  { command: "format.fontFamily", property: "font-family" },
499
499
  { command: "format.lineHeight", property: "line-height" }
500
- ], Qo = [
500
+ ], ta = [
501
501
  { command: "list.ordered", listType: "ordered" },
502
502
  { command: "list.unordered", listType: "unordered" },
503
503
  { command: "list.todo", listType: "todo" }
504
- ], Zo = [
504
+ ], na = [
505
505
  "media.pickImage",
506
506
  "media.pickVideo"
507
- ], Tn = () => {
508
- const e = R();
507
+ ], Sn = () => {
508
+ const e = I();
509
509
  if (!D(e)) return null;
510
510
  const t = e.anchor.getNode();
511
511
  return t.getKey() === "root" ? t : t.getTopLevelElementOrThrow();
512
- }, ea = () => {
513
- const e = Tn();
512
+ }, ra = () => {
513
+ const e = Sn();
514
514
  if (!e) return null;
515
- if (Mr(e)) {
515
+ if (Nr(e)) {
516
516
  const t = Number(e.getTag().replace("h", ""));
517
517
  return {
518
518
  command: "block.heading",
519
519
  value: Number.isNaN(t) ? void 0 : t
520
520
  };
521
521
  }
522
- if (Tr(e))
522
+ if (cn(e))
523
523
  return {
524
524
  command: "block.quote"
525
525
  };
526
- if (G(e)) {
526
+ if (X(e)) {
527
527
  const t = e.getLatest();
528
528
  return {
529
529
  command: "block.code",
530
- value: G(t) ? t.getLanguage() ?? "" : ""
530
+ value: X(t) ? t.getLanguage() ?? "" : ""
531
531
  };
532
532
  }
533
533
  return {
534
534
  command: "block.paragraph"
535
535
  };
536
- }, ta = () => {
537
- const e = Tn();
536
+ }, oa = () => {
537
+ const e = Sn();
538
538
  if (!e || !("getFormatType" in e)) return;
539
539
  const t = e.getFormatType();
540
540
  return t === "" ? void 0 : t;
541
- }, na = () => {
542
- const e = R();
541
+ }, aa = () => {
542
+ const e = I();
543
543
  if (!D(e)) return null;
544
- const t = e.anchor.getNode(), n = Or(t) ? t : ho(t, cn);
544
+ const t = e.anchor.getNode(), n = Fr(t) ? t : bo(t, un);
545
545
  return n ? n.getListType() === "check" ? "todo" : n.getTag() === "ol" ? "ordered" : "unordered" : null;
546
- }, ra = (e) => {
547
- const t = R();
546
+ }, sa = (e) => {
547
+ const t = I();
548
548
  if (!D(t)) return;
549
- const n = go(t, e);
549
+ const n = fo(t, e);
550
550
  return n === "" ? void 0 : n;
551
- }, oa = () => {
552
- const e = R();
551
+ }, ia = () => {
552
+ const e = I();
553
553
  if (!D(e)) return !1;
554
554
  const t = e.anchor.getNode(), n = t.getParent();
555
555
  return Te(t) || Te(n);
556
- }, aa = (e) => {
557
- const t = R(), n = D(t), r = ea(), o = na(), a = ta(), s = oa(), l = e.readonly || !n, d = Yo.map((w) => ({
556
+ }, la = (e) => {
557
+ const t = I(), n = D(t), r = ra(), o = aa(), a = oa(), s = ia(), l = e.readonly || !n, d = Zo.map((w) => ({
558
558
  command: w.command,
559
559
  active: n && t.hasFormat(w.format),
560
560
  disabled: l
561
- })), c = Jo.map((w) => {
562
- const T = ra(w.property);
561
+ })), c = ea.map((w) => {
562
+ const T = sa(w.property);
563
563
  return {
564
564
  command: w.command,
565
565
  active: T !== void 0,
566
566
  disabled: l,
567
567
  value: T
568
568
  };
569
- }), h = Qo.map((w) => ({
569
+ }), h = ta.map((w) => ({
570
570
  command: w.command,
571
571
  active: o === w.listType,
572
572
  disabled: l
573
- })), y = Zo.map((w) => ({
573
+ })), y = na.map((w) => ({
574
574
  command: w,
575
575
  active: !1,
576
576
  disabled: e.readonly || !e.canUploadMedia
@@ -669,69 +669,69 @@ const jo = (e) => {
669
669
  disabled: !1
670
670
  }
671
671
  ];
672
- }, sa = (e, t) => e.length === t.length && e.every((n, r) => {
672
+ }, ca = (e, t) => e.length === t.length && e.every((n, r) => {
673
673
  const o = t[r];
674
674
  return o !== void 0 && n.command === o.command && n.active === o.active && n.disabled === o.disabled && n.value === o.value;
675
- }), q = (e, t, n, r) => {
675
+ }), K = (e, t, n, r) => {
676
676
  var o;
677
677
  try {
678
678
  (o = e.onError) == null || o.call(e, { code: t, message: n, cause: r });
679
679
  } catch (a) {
680
680
  console.error("[BridgeRTE] onError callback failed.", a);
681
681
  }
682
- }, ia = (e, t) => {
682
+ }, da = (e, t) => {
683
683
  var n;
684
684
  try {
685
685
  (n = e.onChange) == null || n.call(e, t);
686
686
  } catch (r) {
687
- q(e, "callback.onChange", "onChange callback failed.", r);
687
+ K(e, "callback.onChange", "onChange callback failed.", r);
688
688
  }
689
- }, la = (e, t) => {
689
+ }, ua = (e, t) => {
690
690
  var n;
691
691
  try {
692
692
  (n = e.onContentChange) == null || n.call(e, t);
693
693
  } catch (r) {
694
- q(
694
+ K(
695
695
  e,
696
696
  "callback.onContentChange",
697
697
  "onContentChange callback failed.",
698
698
  r
699
699
  );
700
700
  }
701
- }, ca = (e, t) => {
701
+ }, ma = (e, t) => {
702
702
  var n;
703
703
  try {
704
704
  (n = e.onCommandStateChange) == null || n.call(e, [...t]);
705
705
  } catch (r) {
706
- q(
706
+ K(
707
707
  e,
708
708
  "callback.onCommandStateChange",
709
709
  "onCommandStateChange callback failed.",
710
710
  r
711
711
  );
712
712
  }
713
- }, da = (e) => {
713
+ }, ga = (e) => {
714
714
  var t;
715
715
  try {
716
716
  (t = e.onFocus) == null || t.call(e);
717
717
  } catch (n) {
718
- q(e, "callback.onFocus", "onFocus callback failed.", n);
718
+ K(e, "callback.onFocus", "onFocus callback failed.", n);
719
719
  }
720
- }, ua = (e) => {
720
+ }, ha = (e) => {
721
721
  var t;
722
722
  try {
723
723
  (t = e.onBlur) == null || t.call(e);
724
724
  } catch (n) {
725
- q(e, "callback.onBlur", "onBlur callback failed.", n);
725
+ K(e, "callback.onBlur", "onBlur callback failed.", n);
726
726
  }
727
- }, ma = (e, t) => {
727
+ }, pa = (e, t) => {
728
728
  var n;
729
729
  try {
730
730
  (n = e.onReady) == null || n.call(e, t);
731
731
  } catch (r) {
732
- q(e, "callback.onReady", "onReady callback failed.", r);
732
+ K(e, "callback.onReady", "onReady callback failed.", r);
733
733
  }
734
- }, ga = ({
734
+ }, fa = ({
735
735
  lexicalEditor: e,
736
736
  options: t,
737
737
  isDestroyed: n,
@@ -745,7 +745,7 @@ const jo = (e) => {
745
745
  try {
746
746
  w(y);
747
747
  } catch (T) {
748
- q(
748
+ K(
749
749
  t,
750
750
  "callback.commandStateSubscriber",
751
751
  "Command state subscriber failed.",
@@ -757,13 +757,13 @@ const jo = (e) => {
757
757
  if (n()) return;
758
758
  const w = l;
759
759
  e.getEditorState().read(() => {
760
- l = aa({
760
+ l = la({
761
761
  canUndo: a,
762
762
  canRedo: s,
763
763
  readonly: o(),
764
764
  canUploadMedia: r()
765
765
  });
766
- }), y && !sa(w, l) && (ca(t, l), c());
766
+ }), y && !ca(w, l) && (ma(t, l), c());
767
767
  };
768
768
  return {
769
769
  refreshCommandStates: h,
@@ -789,14 +789,14 @@ const jo = (e) => {
789
789
  d.clear();
790
790
  }
791
791
  };
792
- }, ha = (e) => `upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`, pa = (e) => typeof URL.createObjectURL == "function" ? URL.createObjectURL(e) : e.name, ve = (e) => {
792
+ }, ba = (e) => `upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`, ya = (e) => typeof URL.createObjectURL == "function" ? URL.createObjectURL(e) : e.name, ve = (e) => {
793
793
  typeof URL.revokeObjectURL == "function" && e.startsWith("blob:") && URL.revokeObjectURL(e);
794
794
  }, Mt = (e) => ({
795
795
  name: e.name,
796
796
  mimeType: e.type || void 0,
797
797
  size: e.size,
798
798
  data: e
799
- }), fa = (e) => typeof DOMException < "u" && e instanceof DOMException && e.name === "AbortError", ba = (e) => new Promise((t) => {
799
+ }), va = (e) => typeof DOMException < "u" && e instanceof DOMException && e.name === "AbortError", wa = (e) => new Promise((t) => {
800
800
  const n = new Image(), r = () => {
801
801
  n.onload = null, n.onerror = null;
802
802
  };
@@ -809,7 +809,7 @@ const jo = (e) => {
809
809
  }, n.onerror = () => {
810
810
  r(), t({});
811
811
  }, n.src = e;
812
- }), ya = (e) => new Promise((t) => {
812
+ }), Ca = (e) => new Promise((t) => {
813
813
  const n = document.createElement("video"), r = () => {
814
814
  n.removeAttribute("src"), n.load(), n.onloadedmetadata = null, n.onerror = null;
815
815
  };
@@ -823,12 +823,12 @@ const jo = (e) => {
823
823
  }, n.onerror = () => {
824
824
  r(), t({});
825
825
  }, n.src = e, n.load();
826
- }), va = (e, t) => t.startsWith("blob:") ? e === "image" ? ba(t) : ya(t) : Promise.resolve({}), wa = (e, t) => ({
826
+ }), _a = (e, t) => t.startsWith("blob:") ? e === "image" ? wa(t) : Ca(t) : Promise.resolve({}), ka = (e, t) => ({
827
827
  ...e,
828
828
  width: e.width ?? t.width,
829
829
  height: e.height ?? t.height,
830
830
  duration: e.duration ?? t.duration
831
- }), Ca = ({
831
+ }), Ea = ({
832
832
  container: e,
833
833
  lexicalEditor: t,
834
834
  options: n,
@@ -839,12 +839,12 @@ const jo = (e) => {
839
839
  const s = (m, p) => {
840
840
  t.update(() => {
841
841
  var k;
842
- (k = me(m)) == null || k.updatePayload(p);
842
+ (k = ge(m)) == null || k.updatePayload(p);
843
843
  });
844
844
  }, l = (m) => {
845
845
  let p = null;
846
846
  return t.update(() => {
847
- const k = me(m);
847
+ const k = ge(m);
848
848
  if (!k) return;
849
849
  const _ = k.getAsset();
850
850
  p = {
@@ -876,7 +876,7 @@ const jo = (e) => {
876
876
  }, y = (m, p, k, _) => {
877
877
  t.update(
878
878
  () => {
879
- const P = le({
879
+ const P = ce({
880
880
  mediaType: m,
881
881
  url: _,
882
882
  assetId: k,
@@ -885,8 +885,8 @@ const jo = (e) => {
885
885
  title: p.name,
886
886
  mimeType: p.type || void 0,
887
887
  size: p.size
888
- }), I = F();
889
- R() || H().selectEnd(), W([P, I]), I.selectStart();
888
+ }), R = F();
889
+ I() || H().selectEnd(), W([P, R]), R.selectStart();
890
890
  },
891
891
  { discrete: !0 }
892
892
  );
@@ -906,7 +906,7 @@ const jo = (e) => {
906
906
  }), ve(k);
907
907
  }, T = (m, p, k) => {
908
908
  var _;
909
- fa(k) || (s(p, {
909
+ va(k) || (s(p, {
910
910
  mediaType: m,
911
911
  status: "error",
912
912
  errorMessage: "上传失败"
@@ -931,8 +931,8 @@ const jo = (e) => {
931
931
  });
932
932
  }
933
933
  };
934
- let I = {};
935
- const L = va(m.type, m.previewUrl);
934
+ let R = {};
935
+ const L = _a(m.type, m.previewUrl);
936
936
  let C;
937
937
  try {
938
938
  C = m.type === "image" ? p.uploadImage(Mt(m.file), P) : p.uploadVideo(Mt(m.file), P);
@@ -941,7 +941,7 @@ const jo = (e) => {
941
941
  return;
942
942
  }
943
943
  L.then((i) => {
944
- I = i, !(r() || !d(m.assetId, _)) && (i.width === void 0 && i.height === void 0 || s(m.assetId, {
944
+ R = i, !(r() || !d(m.assetId, _)) && (i.width === void 0 && i.height === void 0 || s(m.assetId, {
945
945
  mediaType: m.type,
946
946
  width: i.width,
947
947
  height: i.height,
@@ -952,14 +952,14 @@ const jo = (e) => {
952
952
  m.type,
953
953
  m.assetId,
954
954
  m.previewUrl,
955
- wa(i, I)
955
+ ka(i, R)
956
956
  ), o.delete(m.assetId));
957
957
  }).catch((i) => {
958
958
  r() || !d(m.assetId, _) || T(m.type, m.assetId, i);
959
959
  });
960
960
  }, v = (m, p) => {
961
961
  if (!n.uploadAdapter) return;
962
- const k = ha(m), _ = pa(p), P = {
962
+ const k = ba(m), _ = ya(p), P = {
963
963
  assetId: k,
964
964
  type: m,
965
965
  file: p,
@@ -1000,14 +1000,14 @@ const jo = (e) => {
1000
1000
  }), o.clear();
1001
1001
  }
1002
1002
  };
1003
- }, Ln = (e) => Rr(e), _a = {
1003
+ }, Nn = (e) => Dr(e), xa = {
1004
1004
  1: "h1",
1005
1005
  2: "h2",
1006
1006
  3: "h3",
1007
1007
  4: "h4",
1008
1008
  5: "h5",
1009
1009
  6: "h6"
1010
- }, ka = {
1010
+ }, Ma = {
1011
1011
  code: "bridgerte__code-block",
1012
1012
  codeHighlight: {
1013
1013
  attr: "bridgerte__code-token bridgerte__code-token--attr",
@@ -1068,23 +1068,23 @@ const jo = (e) => {
1068
1068
  tableCellHeader: "bridgerte__table-cell bridgerte__table-cell--header",
1069
1069
  tableRow: "bridgerte__table-row",
1070
1070
  tableScrollableWrapper: "bridgerte__table-wrapper"
1071
- }, Ea = (e) => ({
1071
+ }, Ta = (e) => ({
1072
1072
  setBlockHeading: (c) => {
1073
1073
  e.update(() => {
1074
- const h = R();
1075
- D(h) && He(h, () => Nr(_a[c]));
1074
+ const h = I();
1075
+ D(h) && He(h, () => Ir(xa[c]));
1076
1076
  });
1077
1077
  },
1078
1078
  setParagraphBlock: () => {
1079
1079
  e.update(() => {
1080
- const c = R();
1080
+ const c = I();
1081
1081
  D(c) && He(c, () => F());
1082
1082
  });
1083
1083
  },
1084
1084
  setQuoteBlock: () => {
1085
1085
  e.update(() => {
1086
- const c = R();
1087
- D(c) && He(c, () => Lr());
1086
+ const c = I();
1087
+ D(c) && He(c, () => Pr());
1088
1088
  });
1089
1089
  },
1090
1090
  insertDividerBlock: () => {
@@ -1095,16 +1095,16 @@ const jo = (e) => {
1095
1095
  },
1096
1096
  insertCodeBlock: (c) => {
1097
1097
  e.update(() => {
1098
- const h = Ln(c), y = F();
1098
+ const h = Nn(c), y = F();
1099
1099
  W([h, y]), h.selectEnd();
1100
1100
  });
1101
1101
  },
1102
1102
  setSelectedCodeBlockLanguage: (c) => {
1103
1103
  e.update(() => {
1104
- const h = R();
1104
+ const h = I();
1105
1105
  if (!D(h)) return;
1106
1106
  const y = h.anchor.getNode(), w = y.getKey() === "root" ? y : y.getTopLevelElementOrThrow();
1107
- G(w) && w.setLanguage(c);
1107
+ X(w) && w.setLanguage(c);
1108
1108
  });
1109
1109
  },
1110
1110
  clearContent: () => {
@@ -1114,15 +1114,15 @@ const jo = (e) => {
1114
1114
  });
1115
1115
  },
1116
1116
  formatAlign: (c) => {
1117
- e.dispatchCommand(dr, c);
1117
+ e.dispatchCommand(mr, c);
1118
1118
  }
1119
- }), xa = (e) => ({
1119
+ }), La = (e) => ({
1120
1120
  setLink: (o, a) => {
1121
1121
  e.update(() => {
1122
- const s = R(), l = oo(o), d = (a == null ? void 0 : a.trim()) || o.trim();
1122
+ const s = I(), l = io(o), d = (a == null ? void 0 : a.trim()) || o.trim();
1123
1123
  if (!(!D(s) || !o.trim())) {
1124
1124
  if (s.isCollapsed()) {
1125
- const c = ao(l, {
1125
+ const c = lo(l, {
1126
1126
  rel: "noreferrer noopener",
1127
1127
  target: "_blank"
1128
1128
  });
@@ -1144,9 +1144,9 @@ const jo = (e) => {
1144
1144
  openSelectedLink: () => {
1145
1145
  if (typeof window > "u") return;
1146
1146
  const o = e.getEditorState().read(() => {
1147
- const a = R();
1147
+ const a = I();
1148
1148
  if (!D(a)) return null;
1149
- const s = a.anchor.getNode(), l = Te(s) ? s : po(s, Te);
1149
+ const s = a.anchor.getNode(), l = Te(s) ? s : yo(s, Te);
1150
1150
  return l ? {
1151
1151
  target: l.getTarget() ?? "_blank",
1152
1152
  url: l.sanitizeUrl(l.getURL())
@@ -1154,23 +1154,23 @@ const jo = (e) => {
1154
1154
  });
1155
1155
  o && window.open(o.url, o.target, "noopener,noreferrer");
1156
1156
  }
1157
- }), Ma = (e) => ({
1157
+ }), Sa = (e) => ({
1158
1158
  insertImage: (s) => {
1159
1159
  s.url.trim() && e.update(() => {
1160
1160
  const l = F();
1161
- W([No(s), l]), l.selectStart();
1161
+ W([Io(s), l]), l.selectStart();
1162
1162
  });
1163
1163
  },
1164
1164
  insertVideo: (s) => {
1165
1165
  s.url.trim() && e.update(() => {
1166
1166
  const l = F();
1167
- W([So(s), l]), l.selectStart();
1167
+ W([Ro(s), l]), l.selectStart();
1168
1168
  });
1169
1169
  },
1170
1170
  resizeMedia: (s) => {
1171
1171
  e.update(() => {
1172
1172
  var l;
1173
- (l = me(s.assetId)) == null || l.updatePayload({
1173
+ (l = ge(s.assetId)) == null || l.updatePayload({
1174
1174
  displayWidthPercent: s.widthPercent
1175
1175
  });
1176
1176
  });
@@ -1178,7 +1178,7 @@ const jo = (e) => {
1178
1178
  resetMediaSize: (s) => {
1179
1179
  e.update(() => {
1180
1180
  var l;
1181
- (l = me(s)) == null || l.updatePayload({
1181
+ (l = ge(s)) == null || l.updatePayload({
1182
1182
  displayWidthPercent: void 0
1183
1183
  });
1184
1184
  });
@@ -1186,25 +1186,25 @@ const jo = (e) => {
1186
1186
  alignMedia: (s) => {
1187
1187
  e.update(() => {
1188
1188
  var l;
1189
- (l = me(s.assetId)) == null || l.updatePayload({
1189
+ (l = ge(s.assetId)) == null || l.updatePayload({
1190
1190
  align: s.value === "left" ? void 0 : s.value
1191
1191
  });
1192
1192
  });
1193
1193
  }
1194
- }), Ta = (e) => ({
1194
+ }), Na = (e) => ({
1195
1195
  insertMention: (n) => {
1196
1196
  e.update(() => {
1197
- const r = R();
1197
+ const r = I();
1198
1198
  D(r) && W([
1199
1199
  at(n),
1200
1200
  Re(" ")
1201
1201
  ]);
1202
1202
  });
1203
1203
  }
1204
- }), La = (e) => ({
1204
+ }), Pa = (e) => ({
1205
1205
  clearSelectionFormat: () => {
1206
1206
  e.update(() => {
1207
- const r = R();
1207
+ const r = I();
1208
1208
  D(r) && (r.setFormat(0), pt(r, {
1209
1209
  color: null,
1210
1210
  "background-color": null,
@@ -1216,19 +1216,19 @@ const jo = (e) => {
1216
1216
  },
1217
1217
  setSelectionStyle: (r, o) => {
1218
1218
  e.update(() => {
1219
- const a = R();
1219
+ const a = I();
1220
1220
  D(a) && pt(a, {
1221
1221
  [r]: o === "" ? null : o
1222
1222
  });
1223
1223
  });
1224
1224
  }
1225
- }), Na = 20, Tt = (e, t) => Number.isFinite(e) && e > 0 ? Math.min(Math.floor(e), t) : 1, we = (e) => Number.isFinite(e) && (e ?? 0) > 0 ? Math.min(Math.floor(e ?? 1), Na) : 1, Ce = () => {
1226
- const e = R();
1227
- return !D(e) && !dn(e) ? !1 : Jr(e.anchor.getNode()) !== null;
1228
- }, Sa = (e) => ({
1225
+ }), Ia = 20, Tt = (e, t) => Number.isFinite(e) && e > 0 ? Math.min(Math.floor(e), t) : 1, we = (e) => Number.isFinite(e) && (e ?? 0) > 0 ? Math.min(Math.floor(e ?? 1), Ia) : 1, Ce = () => {
1226
+ const e = I();
1227
+ return !D(e) && !mn(e) ? !1 : eo(e.anchor.getNode()) !== null;
1228
+ }, Ra = (e) => ({
1229
1229
  insertTable: (l, d) => {
1230
1230
  const c = Tt(l, Qt), h = Tt(d, Zt);
1231
- e.dispatchCommand(Yr, {
1231
+ e.dispatchCommand(Zr, {
1232
1232
  rows: String(c),
1233
1233
  columns: String(h),
1234
1234
  /*
@@ -1246,7 +1246,7 @@ const jo = (e) => {
1246
1246
  if (!Ce()) return;
1247
1247
  const d = we(l.count);
1248
1248
  for (let c = 0; c < d; c += 1)
1249
- Xr(l.direction !== "before");
1249
+ Qr(l.direction !== "before");
1250
1250
  });
1251
1251
  },
1252
1252
  insertTableColumn: (l) => {
@@ -1254,7 +1254,7 @@ const jo = (e) => {
1254
1254
  if (!Ce()) return;
1255
1255
  const d = we(l.count);
1256
1256
  for (let c = 0; c < d; c += 1)
1257
- Gr(l.direction !== "before");
1257
+ Jr(l.direction !== "before");
1258
1258
  });
1259
1259
  },
1260
1260
  deleteTableRow: (l) => {
@@ -1262,7 +1262,7 @@ const jo = (e) => {
1262
1262
  const d = we(l.count);
1263
1263
  for (let c = 0; c < d; c += 1) {
1264
1264
  if (!Ce()) return;
1265
- Kr();
1265
+ Yr();
1266
1266
  }
1267
1267
  });
1268
1268
  },
@@ -1271,22 +1271,22 @@ const jo = (e) => {
1271
1271
  const d = we(l.count);
1272
1272
  for (let c = 0; c < d; c += 1) {
1273
1273
  if (!Ce()) return;
1274
- qr();
1274
+ Xr();
1275
1275
  }
1276
1276
  });
1277
1277
  },
1278
1278
  deleteTable: () => {
1279
1279
  e.update(() => {
1280
- const l = R();
1281
- if (!D(l) && !dn(l)) return;
1282
- const d = jr(l.anchor.getNode());
1280
+ const l = I();
1281
+ if (!D(l) && !mn(l)) return;
1282
+ const d = Gr(l.anchor.getNode());
1283
1283
  if (!d) return;
1284
1284
  const c = F();
1285
1285
  d.insertAfter(c), d.remove(), c.selectStart();
1286
1286
  });
1287
1287
  }
1288
- }), Pa = (e) => {
1289
- const t = Sa(e);
1288
+ }), Aa = (e) => {
1289
+ const t = Ra(e);
1290
1290
  return {
1291
1291
  insertTable: (n) => {
1292
1292
  t.insertTable(n.rows, n.cols);
@@ -1307,7 +1307,7 @@ const jo = (e) => {
1307
1307
  t.deleteTable();
1308
1308
  }
1309
1309
  };
1310
- }, Ia = {
1310
+ }, Ba = {
1311
1311
  "format.bold": "bold",
1312
1312
  "format.italic": "italic",
1313
1313
  "format.underline": "underline",
@@ -1315,22 +1315,22 @@ const jo = (e) => {
1315
1315
  "format.inlineCode": "code",
1316
1316
  "format.superscript": "superscript",
1317
1317
  "format.subscript": "subscript"
1318
- }, Ra = {
1319
- "list.ordered": Fr,
1320
- "list.unordered": $r,
1321
- "list.todo": Hr
1322
- }, Aa = {
1323
- "indent.increase": pr,
1324
- "indent.decrease": hr,
1325
- "history.undo": gr,
1326
- "history.redo": mr
1327
- }, Ba = {
1318
+ }, Da = {
1319
+ "list.ordered": Vr,
1320
+ "list.unordered": Wr,
1321
+ "list.todo": zr
1322
+ }, Oa = {
1323
+ "indent.increase": br,
1324
+ "indent.decrease": fr,
1325
+ "history.undo": pr,
1326
+ "history.redo": hr
1327
+ }, Ha = {
1328
1328
  "format.color": "color",
1329
1329
  "format.backgroundColor": "background-color",
1330
1330
  "format.fontSize": "font-size",
1331
1331
  "format.fontFamily": "font-family",
1332
1332
  "format.lineHeight": "line-height"
1333
- }, Da = ({
1333
+ }, $a = ({
1334
1334
  container: e,
1335
1335
  lexicalEditor: t,
1336
1336
  options: n,
@@ -1338,12 +1338,12 @@ const jo = (e) => {
1338
1338
  isReadonly: o,
1339
1339
  reportError: a
1340
1340
  }) => {
1341
- const s = Ca({
1341
+ const s = Ea({
1342
1342
  container: e,
1343
1343
  lexicalEditor: t,
1344
1344
  options: n,
1345
1345
  isDestroyed: r
1346
- }), l = Ea(t), d = xa(t), c = Ma(t), h = Ta(t), y = La(t), w = Pa(t), T = () => {
1346
+ }), l = Ta(t), d = La(t), c = Sa(t), h = Na(t), y = Pa(t), w = Aa(t), T = () => {
1347
1347
  var x, m;
1348
1348
  if (document.fullscreenElement) {
1349
1349
  (x = document.exitFullscreen) == null || x.call(document).catch((p) => {
@@ -1356,22 +1356,22 @@ const jo = (e) => {
1356
1356
  });
1357
1357
  }, b = ((v) => {
1358
1358
  if (r() || o()) return;
1359
- const x = Ia[v.type];
1359
+ const x = Ba[v.type];
1360
1360
  if (x) {
1361
- t.dispatchCommand(ur, x);
1361
+ t.dispatchCommand(gr, x);
1362
1362
  return;
1363
1363
  }
1364
- const m = Ra[v.type];
1364
+ const m = Da[v.type];
1365
1365
  if (m) {
1366
1366
  t.dispatchCommand(m, void 0);
1367
1367
  return;
1368
1368
  }
1369
- const p = Aa[v.type];
1369
+ const p = Oa[v.type];
1370
1370
  if (p) {
1371
1371
  t.dispatchCommand(p, void 0);
1372
1372
  return;
1373
1373
  }
1374
- const k = Ba[v.type];
1374
+ const k = Ha[v.type];
1375
1375
  if (k && "value" in v) {
1376
1376
  y.setSelectionStyle(k, v.value);
1377
1377
  return;
@@ -1469,18 +1469,18 @@ const jo = (e) => {
1469
1469
  return b.uploadMediaFile = s.uploadMediaFile, b.destroy = () => {
1470
1470
  s.destroy();
1471
1471
  }, b;
1472
- }, Oa = 300, Ha = "BridgeRTE", Lt = ({
1472
+ }, Fa = 300, za = "BridgeRTE", Lt = ({
1473
1473
  editor: e,
1474
1474
  overflowLength: t
1475
1475
  }) => {
1476
1476
  if (t <= 0) return !1;
1477
- const n = R();
1477
+ const n = I();
1478
1478
  if (D(n))
1479
1479
  return ft(e, n.anchor, t), !0;
1480
1480
  H().selectEnd();
1481
- const r = R();
1481
+ const r = I();
1482
1482
  return D(r) ? (ft(e, r.anchor, t), !0) : !1;
1483
- }, $a = ({
1483
+ }, Wa = ({
1484
1484
  lexicalEditor: e,
1485
1485
  options: t,
1486
1486
  isDestroyed: n,
@@ -1492,8 +1492,8 @@ const jo = (e) => {
1492
1492
  s && (clearTimeout(s), s = null);
1493
1493
  }, d = (m) => {
1494
1494
  if (n()) return;
1495
- const p = kn(e.getEditorState(), e);
1496
- r(p), m && ia(t, p);
1495
+ const p = xn(e.getEditorState(), e);
1496
+ r(p), m && da(t, p);
1497
1497
  }, c = (m) => {
1498
1498
  const p = t.maxLength !== void 0 && t.maxLength >= 0 ? t.maxLength : void 0;
1499
1499
  return {
@@ -1504,11 +1504,11 @@ const jo = (e) => {
1504
1504
  isOverMaxLength: p === void 0 ? !1 : m > p
1505
1505
  };
1506
1506
  }, h = (m) => {
1507
- la(t, c(m));
1507
+ ua(t, c(m));
1508
1508
  }, y = () => {
1509
1509
  t.onChange && (l(), s = setTimeout(() => {
1510
1510
  d(!0);
1511
- }, or));
1511
+ }, sr));
1512
1512
  }, w = (m) => {
1513
1513
  if (a > 0) {
1514
1514
  a -= 1;
@@ -1539,14 +1539,14 @@ const jo = (e) => {
1539
1539
  o(), w(m);
1540
1540
  }
1541
1541
  };
1542
- }, Be = "data-language", Nn = "纯文本", Fa = "language", za = /* @__PURE__ */ new Set(["plain", "plaintext", "text", "txt"]), Wa = new Set(wo().map(([e]) => e)), Va = [
1542
+ }, Be = "data-language", Pn = "纯文本", Va = "language", Ua = /* @__PURE__ */ new Set(["plain", "plaintext", "text", "txt"]), ja = new Set(ko().map(([e]) => e)), Ka = [
1543
1543
  Be,
1544
1544
  "data-lang",
1545
1545
  "data-code-language",
1546
1546
  "data-highlight-language",
1547
1547
  "lang",
1548
1548
  "language"
1549
- ], Ua = /^[a-z][a-z0-9_+#.-]{0,31}$/i, ja = /^(?:language|lang)-([a-z][a-z0-9_+#.-]{0,31})$/i, qa = /^brush:\s*([a-z][a-z0-9_+#.-]{0,31})$/i, Ka = /* @__PURE__ */ new Map([
1549
+ ], qa = /^[a-z][a-z0-9_+#.-]{0,31}$/i, Ga = /^(?:language|lang)-([a-z][a-z0-9_+#.-]{0,31})$/i, Xa = /^brush:\s*([a-z][a-z0-9_+#.-]{0,31})$/i, Ya = /* @__PURE__ */ new Map([
1550
1550
  ["dockerfile", "docker"],
1551
1551
  ["shell", "shellscript"],
1552
1552
  ["sh", "shellscript"],
@@ -1559,56 +1559,56 @@ const jo = (e) => {
1559
1559
  ["ts", "typescript"],
1560
1560
  ["tsx", "tsx"],
1561
1561
  ["yml", "yaml"]
1562
- ]), Ga = (e) => e.type === "select", Nt = (e) => e.find((t) => t.name === Fa && Ga(t)), te = (e) => {
1562
+ ]), Ja = (e) => e.type === "select", St = (e) => e.find((t) => t.name === Va && Ja(t)), ne = (e) => {
1563
1563
  const t = e == null ? void 0 : e.trim().toLowerCase();
1564
- if (!t || !Ua.test(t)) return null;
1565
- if (za.has(t)) return "";
1566
- const n = Ka.get(t) ?? vo(t);
1567
- return Wa.has(n) ? n : null;
1568
- }, Xa = (e) => {
1569
- for (const t of Va) {
1570
- const n = te(e.getAttribute(t));
1564
+ if (!t || !qa.test(t)) return null;
1565
+ if (Ua.has(t)) return "";
1566
+ const n = Ya.get(t) ?? _o(t);
1567
+ return ja.has(n) ? n : null;
1568
+ }, Qa = (e) => {
1569
+ for (const t of Ka) {
1570
+ const n = ne(e.getAttribute(t));
1571
1571
  if (n) return n;
1572
1572
  }
1573
1573
  return null;
1574
- }, Ya = (e) => {
1575
- const [, t] = e.match(qa) ?? [], n = te(t);
1574
+ }, Za = (e) => {
1575
+ const [, t] = e.match(Xa) ?? [], n = ne(t);
1576
1576
  if (n) return n;
1577
1577
  for (const r of e.split(/\s+/)) {
1578
- const [, o] = r.match(ja) ?? [], a = te(o);
1578
+ const [, o] = r.match(Ga) ?? [], a = ne(o);
1579
1579
  if (a) return a;
1580
1580
  }
1581
1581
  return null;
1582
- }, Sn = (e = Ke) => {
1582
+ }, In = (e = qe) => {
1583
1583
  var t, n;
1584
- return ((t = Nt(e.fields)) == null ? void 0 : t.options) ?? ((n = Nt(Ke.fields)) == null ? void 0 : n.options) ?? [{ label: Nn, value: "" }];
1585
- }, Pn = (e, t) => {
1584
+ return ((t = St(e.fields)) == null ? void 0 : t.options) ?? ((n = St(qe.fields)) == null ? void 0 : n.options) ?? [{ label: Pn, value: "" }];
1585
+ }, Rn = (e, t) => {
1586
1586
  var n, r, o;
1587
- return ((n = e.find((a) => a.value === t)) == null ? void 0 : n.label) ?? ((r = e.find((a) => te(a.value) === te(t))) == null ? void 0 : r.label) ?? ((o = e[0]) == null ? void 0 : o.label) ?? Nn;
1587
+ return ((n = e.find((a) => a.value === t)) == null ? void 0 : n.label) ?? ((r = e.find((a) => ne(a.value) === ne(t))) == null ? void 0 : r.label) ?? ((o = e[0]) == null ? void 0 : o.label) ?? Pn;
1588
1588
  };
1589
- Sn();
1590
- const Ja = (e) => {
1589
+ In();
1590
+ const es = (e) => {
1591
1591
  [...e.querySelectorAll("pre,code")].forEach((t) => {
1592
- const n = Xa(t) ?? Ya(t.className), r = t.tagName === "PRE" ? t : t.closest("pre");
1592
+ const n = Qa(t) ?? Za(t.className), r = t.tagName === "PRE" ? t : t.closest("pre");
1593
1593
  r && n && r.setAttribute(Be, n);
1594
1594
  });
1595
- }, Qa = (e) => {
1595
+ }, ts = (e) => {
1596
1596
  e.querySelectorAll("pre").forEach((t) => {
1597
1597
  [...t.children].forEach((r) => {
1598
1598
  r.tagName === "CODE" && r.replaceWith(...r.childNodes);
1599
1599
  });
1600
1600
  });
1601
- }, Za = (e, t) => {
1601
+ }, ns = (e, t) => {
1602
1602
  const n = [...t.querySelectorAll("pre[data-language]")];
1603
1603
  let r = 0;
1604
1604
  e.forEach((o) => {
1605
- if (!G(o)) return;
1605
+ if (!X(o)) return;
1606
1606
  const a = n[r];
1607
1607
  if (r += 1, !a) return;
1608
1608
  const s = a.getAttribute(Be);
1609
1609
  s && !o.getLanguage() && o.setLanguage(s);
1610
1610
  });
1611
- }, In = "one-light", J = {
1611
+ }, An = "one-light", Q = {
1612
1612
  keyword: "#a626a4",
1613
1613
  function: "#4078f2",
1614
1614
  operator: "#0184bc",
@@ -1616,33 +1616,33 @@ const Ja = (e) => {
1616
1616
  property: "#e45649",
1617
1617
  string: "#50a14f",
1618
1618
  attrName: "#986801"
1619
- }, es = {
1620
- [J.keyword]: "keyword",
1621
- [J.function]: "function",
1622
- [J.operator]: "operator",
1623
- [J.tag]: "tag",
1624
- [J.property]: "property",
1625
- [J.string]: "string",
1626
- [J.attrName]: "attr-name"
1627
- }, ts = (e) => {
1619
+ }, rs = {
1620
+ [Q.keyword]: "keyword",
1621
+ [Q.function]: "function",
1622
+ [Q.operator]: "operator",
1623
+ [Q.tag]: "tag",
1624
+ [Q.property]: "property",
1625
+ [Q.string]: "string",
1626
+ [Q.attrName]: "attr-name"
1627
+ }, os = (e) => {
1628
1628
  const [, t] = e.match(/(?:^|;)color:\s*(#[0-9a-f]{3,8})/i) ?? [];
1629
- return t ? es[t.toLowerCase()] : void 0;
1630
- }, ns = {
1629
+ return t ? rs[t.toLowerCase()] : void 0;
1630
+ }, as = {
1631
1631
  ...bt,
1632
1632
  defaultLanguage: null,
1633
- defaultTheme: In,
1633
+ defaultTheme: An,
1634
1634
  $tokenize(e, t) {
1635
1635
  const n = bt.$tokenize.call(this, e, t);
1636
- return e.getStyle() && e.setStyle(""), n.map((r) => Ar(r) ? Br(
1636
+ return e.getStyle() && e.setStyle(""), n.map((r) => Or(r) ? Hr(
1637
1637
  r.getTextContent(),
1638
- ts(r.getStyle())
1638
+ os(r.getStyle())
1639
1639
  ) : r);
1640
1640
  }
1641
- }, rs = 1200, fe = /* @__PURE__ */ new Set(), Le = /* @__PURE__ */ new Set(), Xe = /* @__PURE__ */ new Set(), Ne = [];
1642
- let Q = 0, oe = null, _e = !1, ke = null, St = !1;
1643
- const os = (e) => "requestIdleCallback" in window ? {
1641
+ }, ss = 1200, fe = /* @__PURE__ */ new Set(), Le = /* @__PURE__ */ new Set(), Xe = /* @__PURE__ */ new Set(), Se = [];
1642
+ let Z = 0, ae = null, _e = !1, ke = null, Nt = !1;
1643
+ const is = (e) => "requestIdleCallback" in window ? {
1644
1644
  id: window.requestIdleCallback(e, {
1645
- timeout: rs
1645
+ timeout: ss
1646
1646
  }),
1647
1647
  kind: "idle"
1648
1648
  } : {
@@ -1653,37 +1653,37 @@ const os = (e) => "requestIdleCallback" in window ? {
1653
1653
  });
1654
1654
  }, 0),
1655
1655
  kind: "timeout"
1656
- }, as = (e) => {
1656
+ }, ls = (e) => {
1657
1657
  if (e.kind === "idle") {
1658
1658
  window.cancelIdleCallback(e.id);
1659
1659
  return;
1660
1660
  }
1661
1661
  globalThis.clearTimeout(e.id);
1662
- }, ss = (e) => e.map((t) => t.value).filter((t) => t !== ""), is = (e) => {
1663
- ss(e).forEach((t) => {
1664
- if (fe.has(t) || Le.has(t) || Xe.has(t) || vn(t)) {
1662
+ }, cs = (e) => e.map((t) => t.value).filter((t) => t !== ""), ds = (e) => {
1663
+ cs(e).forEach((t) => {
1664
+ if (fe.has(t) || Le.has(t) || Xe.has(t) || Cn(t)) {
1665
1665
  fe.add(t);
1666
1666
  return;
1667
1667
  }
1668
- Xe.add(t), Ne.push(t);
1668
+ Xe.add(t), Se.push(t);
1669
1669
  });
1670
- }, ls = () => {
1671
- for (; Ne.length > 0; ) {
1672
- const e = Ne.shift();
1670
+ }, us = () => {
1671
+ for (; Se.length > 0; ) {
1672
+ const e = Se.shift();
1673
1673
  if (e && (Xe.delete(e), !(fe.has(e) || Le.has(e)))) {
1674
- if (vn(e)) {
1674
+ if (Cn(e)) {
1675
1675
  fe.add(e);
1676
1676
  continue;
1677
1677
  }
1678
1678
  return e;
1679
1679
  }
1680
1680
  }
1681
- }, cs = async () => {
1682
- if (!St) {
1681
+ }, ms = async () => {
1682
+ if (!Nt) {
1683
1683
  if (!ke) {
1684
- const e = _o(In);
1684
+ const e = xo(An);
1685
1685
  ke = Promise.resolve(e ?? void 0).then(() => {
1686
- St = !0;
1686
+ Nt = !0;
1687
1687
  }).catch(() => {
1688
1688
  }).finally(() => {
1689
1689
  ke = null;
@@ -1691,16 +1691,16 @@ const os = (e) => "requestIdleCallback" in window ? {
1691
1691
  }
1692
1692
  await ke;
1693
1693
  }
1694
- }, ds = (e) => {
1695
- Q += 1, is(e);
1694
+ }, gs = (e) => {
1695
+ Z += 1, ds(e);
1696
1696
  const t = async () => {
1697
- if (!(Q <= 0 || _e)) {
1697
+ if (!(Z <= 0 || _e)) {
1698
1698
  _e = !0;
1699
1699
  try {
1700
- if (await cs(), Q <= 0) return;
1701
- const r = ls();
1700
+ if (await ms(), Z <= 0) return;
1701
+ const r = us();
1702
1702
  if (!r) return;
1703
- Le.add(r), await Promise.resolve(Co(r) ?? void 0).then(() => {
1703
+ Le.add(r), await Promise.resolve(Eo(r) ?? void 0).then(() => {
1704
1704
  fe.add(r);
1705
1705
  }).catch(() => {
1706
1706
  }).finally(() => {
@@ -1711,14 +1711,14 @@ const os = (e) => "requestIdleCallback" in window ? {
1711
1711
  }
1712
1712
  }
1713
1713
  }, n = () => {
1714
- Q <= 0 || oe !== null || _e || Ne.length === 0 || (oe = os(() => {
1715
- oe = null, t();
1714
+ Z <= 0 || ae !== null || _e || Se.length === 0 || (ae = is(() => {
1715
+ ae = null, t();
1716
1716
  }));
1717
1717
  };
1718
1718
  return n(), () => {
1719
- Q = Math.max(0, Q - 1), Q === 0 && oe !== null && (as(oe), oe = null);
1719
+ Z = Math.max(0, Z - 1), Z === 0 && ae !== null && (ls(ae), ae = null);
1720
1720
  };
1721
- }, z = 12, us = 6, Se = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), Rn = () => {
1721
+ }, z = 12, hs = 6, Ne = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n)), Bn = () => {
1722
1722
  const e = window.visualViewport;
1723
1723
  return {
1724
1724
  left: (e == null ? void 0 : e.offsetLeft) ?? 0,
@@ -1726,7 +1726,7 @@ const os = (e) => "requestIdleCallback" in window ? {
1726
1726
  width: (e == null ? void 0 : e.width) ?? window.innerWidth,
1727
1727
  height: (e == null ? void 0 : e.height) ?? window.innerHeight
1728
1728
  };
1729
- }, ms = (e, t) => ({
1729
+ }, ps = (e, t) => ({
1730
1730
  /*
1731
1731
  * dialog request 里传的是 viewport 坐标。用 virtual reference 交给 floating-ui,
1732
1732
  * 让 dialog 和 toolbar group、hoverbar 等轻浮层复用同一套翻转和边界避让逻辑。
@@ -1742,21 +1742,21 @@ const os = (e) => "requestIdleCallback" in window ? {
1742
1742
  width: t.width,
1743
1743
  height: t.height
1744
1744
  })
1745
- }), gs = (e, t) => {
1746
- const n = e.getBoundingClientRect(), r = Rn(), o = t.getBoundingClientRect(), a = o.left + z, s = o.top + z, l = r.left + z, d = r.top + z, c = r.left + r.width - n.width - z, h = r.top + r.height - n.height - z;
1745
+ }), fs = (e, t) => {
1746
+ const n = e.getBoundingClientRect(), r = Bn(), o = t.getBoundingClientRect(), a = o.left + z, s = o.top + z, l = r.left + z, d = r.top + z, c = r.left + r.width - n.width - z, h = r.top + r.height - n.height - z;
1747
1747
  return {
1748
- left: Se(a, l, c),
1749
- top: Se(s, d, h),
1748
+ left: Ne(a, l, c),
1749
+ top: Ne(s, d, h),
1750
1750
  viewportHeight: r.height
1751
1751
  };
1752
- }, hs = (e, t, n) => {
1753
- const r = e.getBoundingClientRect(), o = Rn(), a = o.left + z, s = o.top + z, l = o.left + o.width - r.width - z, d = o.top + o.height - r.height - z;
1752
+ }, bs = (e, t, n) => {
1753
+ const r = e.getBoundingClientRect(), o = Bn(), a = o.left + z, s = o.top + z, l = o.left + o.width - r.width - z, d = o.top + o.height - r.height - z;
1754
1754
  return {
1755
- left: Se(t, a, l),
1756
- top: Se(n, s, d),
1755
+ left: Ne(t, a, l),
1756
+ top: Ne(n, s, d),
1757
1757
  viewportHeight: o.height
1758
1758
  };
1759
- }, An = (e) => {
1759
+ }, Dn = (e) => {
1760
1760
  var c, h;
1761
1761
  const t = document.createElement("div"), n = document.createElement("div"), r = document.createElement("div");
1762
1762
  let o;
@@ -1769,24 +1769,24 @@ const os = (e) => "requestIdleCallback" in window ? {
1769
1769
  );
1770
1770
  }, l = async () => {
1771
1771
  if (!o) {
1772
- const T = gs(n, e.root);
1772
+ const T = fs(n, e.root);
1773
1773
  s(T.left, T.top, T.viewportHeight);
1774
1774
  return;
1775
1775
  }
1776
- const y = await hn(
1777
- ms(e.root, o),
1776
+ const y = await fn(
1777
+ ps(e.root, o),
1778
1778
  n,
1779
1779
  {
1780
1780
  placement: "bottom-start",
1781
1781
  strategy: "fixed",
1782
- platform: pn,
1782
+ platform: bn,
1783
1783
  middleware: [
1784
- fn(us),
1785
- bn(),
1786
- yn({ padding: z })
1784
+ yn(hs),
1785
+ vn(),
1786
+ wn({ padding: z })
1787
1787
  ]
1788
1788
  }
1789
- ), w = hs(n, y.x, y.y);
1789
+ ), w = bs(n, y.x, y.y);
1790
1790
  s(
1791
1791
  w.left,
1792
1792
  w.top,
@@ -1835,36 +1835,36 @@ const os = (e) => "requestIdleCallback" in window ? {
1835
1835
  return e.addEventListener("pointerdown", o), e.addEventListener("pointerup", a), e.addEventListener("pointercancel", a), e.addEventListener("lostpointercapture", a), () => {
1836
1836
  a(), e.removeEventListener("pointerdown", o), e.removeEventListener("pointerup", a), e.removeEventListener("pointercancel", a), e.removeEventListener("lostpointercapture", a);
1837
1837
  };
1838
- }, ps = (e, t, n) => {
1838
+ }, ys = (e, t, n) => {
1839
1839
  e.update(
1840
1840
  t,
1841
1841
  {
1842
- tag: fr,
1842
+ tag: yr,
1843
1843
  onUpdate: n
1844
1844
  }
1845
1845
  );
1846
- }, Pt = "language", fs = "bridgerte-code-block-language", It = 8;
1846
+ }, Pt = "language", vs = "bridgerte-code-block-language", It = 8;
1847
1847
  let Rt = 0;
1848
- const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
1848
+ const ws = () => (Rt += 1, `${vs}-${Rt}`), Cs = (e, t, n) => {
1849
1849
  const r = e.querySelector(".bridgerte__code-block-control-label");
1850
- e.dataset.language = n ?? "", r && (r.textContent = Pn(t, n));
1851
- }, vs = (e, t) => {
1850
+ e.dataset.language = n ?? "", r && (r.textContent = Rn(t, n));
1851
+ }, _s = (e, t) => {
1852
1852
  const n = document.createElement("button"), r = document.createElement("span"), o = document.createElement("span");
1853
- return n.type = "button", n.className = "bridgerte__code-block-control", n.contentEditable = "false", n.dataset.language = t ?? "", n.setAttribute("aria-label", "选择代码块语言"), r.className = "bridgerte__code-block-control-label", r.textContent = Pn(e, t), o.className = "bridgerte__code-block-control-arrow", n.append(r, o), n;
1854
- }, ws = (e) => {
1855
- const t = document.createElement("div"), n = e.root.querySelector(".bridgerte__content") ?? e.root, r = gn(
1856
- e.languagePanel ?? Ke,
1853
+ return n.type = "button", n.className = "bridgerte__code-block-control", n.contentEditable = "false", n.dataset.language = t ?? "", n.setAttribute("aria-label", "选择代码块语言"), r.className = "bridgerte__code-block-control-label", r.textContent = Rn(e, t), o.className = "bridgerte__code-block-control-arrow", n.append(r, o), n;
1854
+ }, ks = (e) => {
1855
+ const t = document.createElement("div"), n = e.root.querySelector(".bridgerte__content") ?? e.root, r = pn(
1856
+ e.languagePanel ?? qe,
1857
1857
  e.payloadPanelConfig
1858
- ), o = Sn(r);
1858
+ ), o = In(r);
1859
1859
  let a = null, s = null, l = null;
1860
1860
  const d = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), h = () => {
1861
- l ?? (l = ds(o));
1861
+ l ?? (l = gs(o));
1862
1862
  }, y = () => {
1863
1863
  a == null || a.close();
1864
1864
  }, w = (i, u) => {
1865
- e.isReadonly() || ps(e.editor, () => {
1865
+ e.isReadonly() || ys(e.editor, () => {
1866
1866
  const g = he(i);
1867
- G(g) && g.setLanguage(u);
1867
+ X(g) && g.setLanguage(u);
1868
1868
  });
1869
1869
  }, T = (i, u) => {
1870
1870
  Pe(() => {
@@ -1873,7 +1873,7 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
1873
1873
  }, b = (i, u, g) => {
1874
1874
  var f;
1875
1875
  return ((f = e.onRequest) == null ? void 0 : f.call(e, {
1876
- id: bs(),
1876
+ id: ws(),
1877
1877
  readonly: e.isReadonly(),
1878
1878
  menuId: "code-block-language",
1879
1879
  command: { type: "block.setCodeLanguage", language: g },
@@ -1905,11 +1905,11 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
1905
1905
  h(), u.dataset.lexicalKey = i;
1906
1906
  const g = u.getAttribute("data-language"), f = d.get(i);
1907
1907
  if (f) {
1908
- ys(f, o, g), v(f, u);
1908
+ Cs(f, o, g), v(f, u);
1909
1909
  return;
1910
1910
  }
1911
- const M = vs(o, g), S = V(M);
1912
- M.dataset.lexicalKey = i, d.set(i, M), c.set(M, S), t.append(M), v(M, u);
1911
+ const M = _s(o, g), N = V(M);
1912
+ M.dataset.lexicalKey = i, d.set(i, M), c.set(M, N), t.append(M), v(M, u);
1913
1913
  }, m = () => {
1914
1914
  s = null, d.forEach((i, u) => {
1915
1915
  x(u);
@@ -1923,18 +1923,18 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
1923
1923
  y();
1924
1924
  return;
1925
1925
  }
1926
- a || (a = An({
1926
+ a || (a = Dn({
1927
1927
  root: e.root,
1928
1928
  className: "bridgerte__code-block-menu",
1929
1929
  onBackdropClick: y
1930
1930
  }));
1931
1931
  const M = document.createElement("div");
1932
- a.content.replaceChildren(), a.element.style.minWidth = "180px", M.className = "bridgerte__code-block-menu-list", o.forEach((S) => {
1932
+ a.content.replaceChildren(), a.element.style.minWidth = "180px", M.className = "bridgerte__code-block-menu-list", o.forEach((N) => {
1933
1933
  const A = document.createElement("button");
1934
- A.type = "button", A.className = "bridgerte__menu-item bridgerte__code-block-menu-item", A.textContent = S.label, V(A), A.addEventListener("pointerdown", (O) => {
1934
+ A.type = "button", A.className = "bridgerte__menu-item bridgerte__code-block-menu-item", A.textContent = N.label, V(A), A.addEventListener("pointerdown", (O) => {
1935
1935
  O.preventDefault();
1936
1936
  }), A.addEventListener("click", () => {
1937
- y(), T(u, S.value);
1937
+ y(), T(u, N.value);
1938
1938
  }), M.append(A);
1939
1939
  }), a.content.append(M), a.open({
1940
1940
  x: g.left,
@@ -1945,7 +1945,7 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
1945
1945
  };
1946
1946
  t.className = "bridgerte__code-block-controls-layer", e.root.append(t);
1947
1947
  const _ = e.editor.registerMutationListener(
1948
- ln,
1948
+ dn,
1949
1949
  (i) => {
1950
1950
  i.forEach((u, g) => {
1951
1951
  if (u === "destroyed") {
@@ -1960,7 +1960,7 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
1960
1960
  x(g);
1961
1961
  });
1962
1962
  }
1963
- ), P = e.editor.registerUpdateListener(p), I = (i) => {
1963
+ ), P = e.editor.registerUpdateListener(p), R = (i) => {
1964
1964
  const u = i.target;
1965
1965
  if (!(u instanceof HTMLElement)) return;
1966
1966
  const g = u.closest(".bridgerte__code-block-control");
@@ -1982,18 +1982,18 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
1982
1982
  const f = g.dataset.lexicalKey;
1983
1983
  f && (e.editor.update(() => {
1984
1984
  const M = he(f);
1985
- G(M) && M.selectEnd();
1985
+ X(M) && M.selectEnd();
1986
1986
  }), e.editor.focus());
1987
1987
  };
1988
- return t.addEventListener("pointerdown", L), t.addEventListener("click", I), n.addEventListener("pointerdown", C), n.addEventListener("scroll", p, { passive: !0 }), window.addEventListener("resize", p), {
1988
+ return t.addEventListener("pointerdown", L), t.addEventListener("click", R), n.addEventListener("pointerdown", C), n.addEventListener("scroll", p, { passive: !0 }), window.addEventListener("resize", p), {
1989
1989
  destroy() {
1990
- _(), P(), l == null || l(), l = null, s !== null && (st(s), s = null), t.removeEventListener("pointerdown", L), t.removeEventListener("click", I), n.removeEventListener("pointerdown", C), n.removeEventListener("scroll", p), window.removeEventListener("resize", p), d.forEach((i) => {
1990
+ _(), P(), l == null || l(), l = null, s !== null && (st(s), s = null), t.removeEventListener("pointerdown", L), t.removeEventListener("click", R), n.removeEventListener("pointerdown", C), n.removeEventListener("scroll", p), window.removeEventListener("resize", p), d.forEach((i) => {
1991
1991
  var u;
1992
1992
  (u = c.get(i)) == null || u(), i.remove();
1993
1993
  }), d.clear(), c.clear(), t.remove(), a == null || a.destroy(), a = null;
1994
1994
  }
1995
1995
  };
1996
- }, Bn = (e) => {
1996
+ }, On = (e) => {
1997
1997
  const t = (o) => {
1998
1998
  const a = e.getBlockFromTarget(o.target);
1999
1999
  if (a) {
@@ -2015,17 +2015,17 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2015
2015
  };
2016
2016
  }, it = (e, t = {}) => e.map((n) => {
2017
2017
  var a;
2018
- const r = (a = t.menuLabels) == null ? void 0 : a[n.id], o = n.payloadPanel ? gn(n.payloadPanel, t.payloadPanelConfig) : void 0;
2018
+ const r = (a = t.menuLabels) == null ? void 0 : a[n.id], o = n.payloadPanel ? pn(n.payloadPanel, t.payloadPanelConfig) : void 0;
2019
2019
  return {
2020
2020
  ...n,
2021
2021
  ...r === void 0 ? {} : { label: r },
2022
2022
  ...o === void 0 ? {} : { payloadPanel: o }
2023
2023
  };
2024
- }), Cs = (e, t) => {
2024
+ }), Es = (e, t) => {
2025
2025
  const n = t.find((r) => r.command === e.command.type);
2026
2026
  return (n == null ? void 0 : n.value) === void 0 ? void 0 : { value: String(n.value) };
2027
- }, _s = (e, t) => {
2028
- const n = t.find((o) => fo(e.command, o)), r = t.find((o) => o.command === e.command.type);
2027
+ }, xs = (e, t) => {
2028
+ const n = t.find((o) => vo(e.command, o)), r = t.find((o) => o.command === e.command.type);
2029
2029
  return {
2030
2030
  active: (n == null ? void 0 : n.active) === !0,
2031
2031
  disabled: e.payloadPanel ? (r == null ? void 0 : r.disabled) === !0 : (n == null ? void 0 : n.disabled) === !0 || (r == null ? void 0 : r.disabled) === !0
@@ -2034,7 +2034,7 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2034
2034
  "media-resize-20",
2035
2035
  "media-resize-50",
2036
2036
  "media-resize-100"
2037
- ], ks = [
2037
+ ], Ms = [
2038
2038
  "media-align-left",
2039
2039
  "media-align-center",
2040
2040
  "media-align-right",
@@ -2042,11 +2042,11 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2042
2042
  ...be,
2043
2043
  "|",
2044
2044
  "media-remove"
2045
- ], Es = [
2045
+ ], Ts = [
2046
2046
  "media-retry",
2047
2047
  "|",
2048
2048
  "media-remove"
2049
- ], xs = [
2049
+ ], Ls = [
2050
2050
  {
2051
2051
  id: "media-align-left",
2052
2052
  command: { type: "media.align", assetId: "", value: "left" },
@@ -2095,7 +2095,7 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2095
2095
  label: "删除",
2096
2096
  icon: "trash-2"
2097
2097
  }
2098
- ], Dn = (e) => be.includes(e), Ms = (e) => typeof e == "object" && Array.isArray(e.menuKeys), Ts = (e) => new Set(e.flatMap((t) => t === "|" ? [] : typeof t == "string" ? [t] : Ms(t) ? [t.key, ...t.menuKeys] : [])), Fe = (e) => typeof e == "string" && Dn(e), Ls = (e) => {
2098
+ ], Hn = (e) => be.includes(e), Ss = (e) => typeof e == "object" && Array.isArray(e.menuKeys), Ns = (e) => new Set(e.flatMap((t) => t === "|" ? [] : typeof t == "string" ? [t] : Ss(t) ? [t.key, ...t.menuKeys] : [])), Fe = (e) => typeof e == "string" && Hn(e), Ps = (e) => {
2099
2099
  const t = e.findIndex((r) => r === "media-remove"), n = t === -1 ? e.length : t;
2100
2100
  return [
2101
2101
  ...e.slice(0, n),
@@ -2104,24 +2104,24 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2104
2104
  "|",
2105
2105
  ...e.slice(n)
2106
2106
  ];
2107
- }, Ns = (e) => {
2108
- const t = Ts(e);
2107
+ }, Is = (e) => {
2108
+ const t = Ns(e);
2109
2109
  if (be.filter((o) => !t.has(o)).length === 0) return e;
2110
2110
  const r = e.findIndex(Fe);
2111
- return r === -1 ? Ls(e) : [
2111
+ return r === -1 ? Ps(e) : [
2112
2112
  ...e.slice(0, r).filter((o) => !Fe(o)),
2113
2113
  ...be,
2114
2114
  ...e.slice(r + 1).filter((o) => !Fe(o))
2115
2115
  ];
2116
- }, Ss = (e) => {
2116
+ }, Rs = (e) => {
2117
2117
  var r;
2118
- const t = (e == null ? void 0 : e.toolbarKeys) ?? ks;
2118
+ const t = (e == null ? void 0 : e.toolbarKeys) ?? Ms;
2119
2119
  return {
2120
2120
  ...e,
2121
- toolbarKeys: Ns(t),
2122
- excludeKeys: (r = e == null ? void 0 : e.excludeKeys) == null ? void 0 : r.filter((o) => !Dn(o))
2121
+ toolbarKeys: Is(t),
2122
+ excludeKeys: (r = e == null ? void 0 : e.excludeKeys) == null ? void 0 : r.filter((o) => !Hn(o))
2123
2123
  };
2124
- }, Ps = (e, t) => {
2124
+ }, As = (e, t) => {
2125
2125
  switch (e.command.type) {
2126
2126
  case "media.retry":
2127
2127
  return { ...e.command, assetId: t };
@@ -2134,53 +2134,53 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2134
2134
  default:
2135
2135
  return null;
2136
2136
  }
2137
- }, Is = (e, t, n) => e.command.type === "media.resize" ? e.command.widthPercent === t : e.command.type === "media.align" && e.command.value === n, On = (e, t = {}) => {
2138
- const n = it(xs, {
2137
+ }, Bs = (e, t, n) => e.command.type === "media.resize" ? e.command.widthPercent === t : e.command.type === "media.align" && e.command.value === n, $n = (e, t = {}) => {
2138
+ const n = it(Ls, {
2139
2139
  menuLabels: t.menuLabels
2140
- }), r = e === "error" ? { toolbarKeys: Es } : Ss(t.config);
2140
+ }), r = e === "error" ? { toolbarKeys: Ts } : Rs(t.config);
2141
2141
  return nt(r, n);
2142
- }, ae = 8, ce = "bridgerte__media-controls-button", Rs = (e) => e.querySelector(".bridgerte__content") ?? e, As = (e) => e instanceof Element ? e.closest(".bridgerte__media") : null, Bs = (e, t = !1) => {
2142
+ }, se = 8, de = "bridgerte__media-controls-button", Ds = (e) => e.querySelector(".bridgerte__content") ?? e, Os = (e) => e instanceof Element ? e.closest(".bridgerte__media") : null, Hs = (e, t = !1) => {
2143
2143
  const n = document.createElement("button");
2144
- return n.type = "button", n.className = ce, n.textContent = e.label, n.dataset.menuItemId = e.id, n.dataset.action = e.id.replace(/^media-/, ""), t && (n.dataset.active = "true"), n.setAttribute("aria-label", e.label), n;
2145
- }, Hn = (e) => e.flatMap((t) => t.type === "button" ? [t.item] : t.type === "group" ? t.items : []), Ds = (e, t, n, r) => {
2144
+ return n.type = "button", n.className = de, n.textContent = e.label, n.dataset.menuItemId = e.id, n.dataset.action = e.id.replace(/^media-/, ""), t && (n.dataset.active = "true"), n.setAttribute("aria-label", e.label), n;
2145
+ }, Fn = (e) => e.flatMap((t) => t.type === "button" ? [t.item] : t.type === "group" ? t.items : []), $s = (e, t, n, r) => {
2146
2146
  if (t.type === "separator") {
2147
2147
  const a = document.createElement("span");
2148
2148
  a.className = "bridgerte__media-controls-separator", a.dataset.separatorId = t.key, a.setAttribute("aria-hidden", "true"), e.append(a);
2149
2149
  return;
2150
2150
  }
2151
2151
  (t.type === "button" ? [t.item] : t.items).forEach((a) => {
2152
- e.append(Bs(
2152
+ e.append(Hs(
2153
2153
  a,
2154
- Is(a, n, r)
2154
+ Bs(a, n, r)
2155
2155
  ));
2156
2156
  });
2157
- }, Os = (e, t, n) => {
2157
+ }, Fs = (e, t, n) => {
2158
2158
  const r = document.createElement("div"), o = e.dataset.status, a = Number(
2159
2159
  e.dataset.displayWidthPercent ?? t
2160
- ), s = e.dataset.align ?? "left", l = On(o, {
2160
+ ), s = e.dataset.align ?? "left", l = $n(o, {
2161
2161
  config: n.mediaControlsConfig,
2162
2162
  menuLabels: n.menuLabels
2163
2163
  });
2164
- return r.className = "bridgerte__media-controls", r.contentEditable = "false", r.setAttribute("aria-label", "媒体操作"), r.dataset.status = o ?? "success", r.dataset.displayWidthPercent = e.dataset.displayWidthPercent ?? "", r.dataset.align = e.dataset.align ?? "", r.dataset.menuItemIds = Hn(l).map((d) => d.id).join("|"), l.forEach((d) => {
2165
- Ds(r, d, a, s);
2164
+ return r.className = "bridgerte__media-controls", r.contentEditable = "false", r.setAttribute("aria-label", "媒体操作"), r.dataset.status = o ?? "success", r.dataset.displayWidthPercent = e.dataset.displayWidthPercent ?? "", r.dataset.align = e.dataset.align ?? "", r.dataset.menuItemIds = Fn(l).map((d) => d.id).join("|"), l.forEach((d) => {
2165
+ $s(r, d, a, s);
2166
2166
  }), r;
2167
- }, Hs = (e) => {
2168
- const t = document.createElement("div"), n = Rs(e.root), r = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
2167
+ }, zs = (e) => {
2168
+ const t = document.createElement("div"), n = Ds(e.root), r = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
2169
2169
  let s = null, l = null, d = !1, c = null;
2170
2170
  const h = (i) => {
2171
2171
  var g;
2172
2172
  const u = r.get(i);
2173
2173
  u && ((g = o.get(u)) == null || g(), o.delete(u), u.remove(), r.delete(i), c === i && (c = null));
2174
2174
  }, y = (i, u) => u.dataset.status === "error" || c === i, w = (i, u) => {
2175
- const g = e.root.getBoundingClientRect(), f = u.getBoundingClientRect(), M = f.bottom < g.top || f.top > g.bottom, S = Math.max(
2176
- ae,
2177
- g.width - i.offsetWidth - ae
2175
+ const g = e.root.getBoundingClientRect(), f = u.getBoundingClientRect(), M = f.bottom < g.top || f.top > g.bottom, N = Math.max(
2176
+ se,
2177
+ g.width - i.offsetWidth - se
2178
2178
  ), A = Math.min(
2179
- Math.max(f.left - g.left + ae, ae),
2180
- S
2179
+ Math.max(f.left - g.left + se, se),
2180
+ N
2181
2181
  ), O = Math.max(
2182
- ae,
2183
- f.top - g.top - i.offsetHeight - ae
2182
+ se,
2183
+ f.top - g.top - i.offsetHeight - se
2184
2184
  );
2185
2185
  i.hidden = M, i.style.transform = `translate(${A}px, ${O}px)`;
2186
2186
  }, T = (i) => {
@@ -2196,15 +2196,15 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2196
2196
  return;
2197
2197
  }
2198
2198
  if (g) {
2199
- const S = u.dataset.status === "error", A = g.querySelector('[data-action="retry"]') !== null, O = u.dataset.displayWidthPercent ?? "", U = u.dataset.align ?? "";
2200
- if (S === A && g.dataset.displayWidthPercent === O && g.dataset.align === U) {
2199
+ const N = u.dataset.status === "error", A = g.querySelector('[data-action="retry"]') !== null, O = u.dataset.displayWidthPercent ?? "", U = u.dataset.align ?? "";
2200
+ if (N === A && g.dataset.displayWidthPercent === O && g.dataset.align === U) {
2201
2201
  w(g, u);
2202
2202
  return;
2203
2203
  }
2204
2204
  h(i);
2205
2205
  }
2206
- const f = Os(u, e.defaultWidthPercent, e), M = V(f, {
2207
- targetSelector: `.${ce}`
2206
+ const f = Fs(u, e.defaultWidthPercent, e), M = V(f, {
2207
+ targetSelector: `.${de}`
2208
2208
  });
2209
2209
  f.dataset.lexicalKey = i, f.dataset.assetId = u.dataset.assetId, r.set(i, f), o.set(f, M), t.append(f), w(f, u);
2210
2210
  }, b = () => {
@@ -2219,12 +2219,12 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2219
2219
  }, v = () => {
2220
2220
  s === null && (s = Pe(b));
2221
2221
  }, x = (i, u) => {
2222
- const g = u.dataset.assetId, f = Hn(On(u.dataset.status, {
2222
+ const g = u.dataset.assetId, f = Fn($n(u.dataset.status, {
2223
2223
  config: e.mediaControlsConfig,
2224
2224
  menuLabels: e.menuLabels
2225
- })).find((S) => S.id === i.dataset.menuItemId);
2225
+ })).find((N) => N.id === i.dataset.menuItemId);
2226
2226
  if (!g || !f) return;
2227
- const M = Ps(f, g);
2227
+ const M = As(f, g);
2228
2228
  M && e.executeCommand(M);
2229
2229
  }, m = (i) => {
2230
2230
  if (!i) {
@@ -2239,11 +2239,11 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2239
2239
  }, p = (i) => {
2240
2240
  const u = i.target;
2241
2241
  if (!(u instanceof HTMLElement)) return;
2242
- const g = u.closest(`.${ce}`);
2242
+ const g = u.closest(`.${de}`);
2243
2243
  g && (i.preventDefault(), l = i.pointerType === "mouse" ? null : g);
2244
2244
  }, k = (i) => {
2245
2245
  if (i.pointerType === "mouse" || !l) return;
2246
- const u = i.target, g = u instanceof HTMLElement ? u.closest(".bridgerte__media-controls") : null, f = u instanceof HTMLElement ? u.closest(`.${ce}`) : null;
2246
+ const u = i.target, g = u instanceof HTMLElement ? u.closest(".bridgerte__media-controls") : null, f = u instanceof HTMLElement ? u.closest(`.${de}`) : null;
2247
2247
  f === l && g && (i.preventDefault(), i.stopPropagation(), x(f, g), d = !0), l = null;
2248
2248
  }, _ = () => {
2249
2249
  l = null;
@@ -2254,10 +2254,10 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2254
2254
  }
2255
2255
  const u = i.target;
2256
2256
  if (!(u instanceof HTMLElement)) return;
2257
- const g = u.closest(`.${ce}`), f = u.closest(".bridgerte__media-controls");
2257
+ const g = u.closest(`.${de}`), f = u.closest(".bridgerte__media-controls");
2258
2258
  !g || !f || (i.preventDefault(), i.stopPropagation(), x(g, f));
2259
- }, I = e.editor.registerMutationListener(
2260
- ie,
2259
+ }, R = e.editor.registerMutationListener(
2260
+ le,
2261
2261
  (i) => {
2262
2262
  i.forEach((u, g) => {
2263
2263
  if (u === "destroyed") {
@@ -2267,36 +2267,36 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2267
2267
  T(g);
2268
2268
  });
2269
2269
  }
2270
- ), L = e.editor.registerUpdateListener(v), C = Bn({
2270
+ ), L = e.editor.registerUpdateListener(v), C = On({
2271
2271
  root: e.root,
2272
2272
  content: n,
2273
- getBlockFromTarget: As,
2273
+ getBlockFromTarget: Os,
2274
2274
  activateBlock: m,
2275
2275
  clearBlock: () => m(null)
2276
2276
  });
2277
2277
  return t.className = "bridgerte__media-controls-layer", e.root.append(t), t.addEventListener("pointerdown", p), t.addEventListener("pointerup", k), t.addEventListener("pointercancel", _), t.addEventListener("click", P), n.addEventListener("scroll", v, { passive: !0 }), window.addEventListener("resize", v), {
2278
2278
  destroy() {
2279
- I(), L(), s !== null && (st(s), s = null), t.removeEventListener("pointerdown", p), t.removeEventListener("pointerup", k), t.removeEventListener("pointercancel", _), t.removeEventListener("click", P), C.destroy(), n.removeEventListener("scroll", v), window.removeEventListener("resize", v), r.forEach((i) => {
2279
+ R(), L(), s !== null && (st(s), s = null), t.removeEventListener("pointerdown", p), t.removeEventListener("pointerup", k), t.removeEventListener("pointercancel", _), t.removeEventListener("click", P), C.destroy(), n.removeEventListener("scroll", v), window.removeEventListener("resize", v), r.forEach((i) => {
2280
2280
  var u;
2281
2281
  (u = o.get(i)) == null || u(), i.remove();
2282
2282
  }), r.clear(), o.clear(), a.clear(), t.remove();
2283
2283
  }
2284
2284
  };
2285
- }, $s = ["width", "height"], K = (e, t) => {
2285
+ }, Ws = ["width", "height"], q = (e, t) => {
2286
2286
  var r;
2287
2287
  const n = (r = e[t]) == null ? void 0 : r.trim();
2288
2288
  return n || void 0;
2289
2289
  }, Ye = (e, t) => {
2290
2290
  const n = Number.parseInt(e[t] ?? "", 10);
2291
2291
  return Number.isFinite(n) && n > 0 ? n : void 0;
2292
- }, At = (e, t) => $s.reduce((n, r) => {
2292
+ }, At = (e, t) => Ws.reduce((n, r) => {
2293
2293
  const o = Ye(t, r);
2294
2294
  return o === void 0 ? n : { ...n, [r]: o };
2295
- }, e), Fs = (e, t) => {
2295
+ }, e), Vs = (e, t) => {
2296
2296
  if (e.type === "format.color" || e.type === "format.backgroundColor" || e.type === "format.fontSize" || e.type === "format.fontFamily" || e.type === "format.lineHeight")
2297
2297
  return t.value !== void 0 ? { ...e, value: t.value } : e;
2298
2298
  if (e.type === "link.set") {
2299
- const n = K(t, "href"), r = K(t, "text");
2299
+ const n = q(t, "href"), r = q(t, "text");
2300
2300
  return n ? { ...e, href: n, text: r } : null;
2301
2301
  }
2302
2302
  if (e.type === "block.code")
@@ -2308,25 +2308,25 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2308
2308
  return n && r ? { type: "table.insert", rows: n, cols: r } : null;
2309
2309
  }
2310
2310
  if (e.type === "media.insertImage") {
2311
- const n = K(t, "url");
2311
+ const n = q(t, "url");
2312
2312
  return n ? At({
2313
2313
  ...e,
2314
2314
  url: n,
2315
- alt: K(t, "alt"),
2316
- title: K(t, "title")
2315
+ alt: q(t, "alt"),
2316
+ title: q(t, "title")
2317
2317
  }, t) : null;
2318
2318
  }
2319
2319
  if (e.type === "media.insertVideo") {
2320
- const n = K(t, "url");
2320
+ const n = q(t, "url");
2321
2321
  return n ? At({
2322
2322
  ...e,
2323
2323
  url: n,
2324
- poster: K(t, "poster"),
2325
- title: K(t, "title")
2324
+ poster: q(t, "poster"),
2325
+ title: q(t, "title")
2326
2326
  }, t) : null;
2327
2327
  }
2328
2328
  return e;
2329
- }, Z = (e) => Math.min(Math.max(Math.round(e), 0), 255), Je = ({ r: e, g: t, b: n }) => `#${[e, t, n].map((r) => Z(r).toString(16).padStart(2, "0")).join("")}`, $n = (e) => {
2329
+ }, ee = (e) => Math.min(Math.max(Math.round(e), 0), 255), Je = ({ r: e, g: t, b: n }) => `#${[e, t, n].map((r) => ee(r).toString(16).padStart(2, "0")).join("")}`, zn = (e) => {
2330
2330
  const n = e.trim().match(/^#([0-9a-f]{6})$/i);
2331
2331
  if (!n) return null;
2332
2332
  const r = n[1] ?? "";
@@ -2335,18 +2335,18 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2335
2335
  g: Number.parseInt(r.slice(2, 4), 16),
2336
2336
  b: Number.parseInt(r.slice(4, 6), 16)
2337
2337
  };
2338
- }, zs = (e) => {
2338
+ }, Us = (e) => {
2339
2339
  const t = e.trim().match(/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i);
2340
2340
  return t ? {
2341
- r: Z(Number(t[1])),
2342
- g: Z(Number(t[2])),
2343
- b: Z(Number(t[3]))
2341
+ r: ee(Number(t[1])),
2342
+ g: ee(Number(t[2])),
2343
+ b: ee(Number(t[3]))
2344
2344
  } : null;
2345
2345
  }, ze = (e) => {
2346
- const t = $n(e) ?? zs(e);
2346
+ const t = zn(e) ?? Us(e);
2347
2347
  return t ? Je(t) : null;
2348
- }, Fn = (e) => Math.min(Math.max(e, 0), 1), Ws = ({ r: e, g: t, b: n }) => {
2349
- const r = Z(e) / 255, o = Z(t) / 255, a = Z(n) / 255, s = Math.max(r, o, a), l = Math.min(r, o, a), d = s - l;
2348
+ }, Wn = (e) => Math.min(Math.max(e, 0), 1), js = ({ r: e, g: t, b: n }) => {
2349
+ const r = ee(e) / 255, o = ee(t) / 255, a = ee(n) / 255, s = Math.max(r, o, a), l = Math.min(r, o, a), d = s - l;
2350
2350
  let c = 0;
2351
2351
  return d !== 0 && (s === r ? c = 60 * ((o - a) / d % 6) : s === o ? c = 60 * ((a - r) / d + 2) : c = 60 * ((r - o) / d + 4)), {
2352
2352
  h: c < 0 ? c + 360 : c,
@@ -2365,8 +2365,8 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2365
2365
  g: (l + a) * 255,
2366
2366
  b: (d + a) * 255
2367
2367
  };
2368
- }, Vs = ({ h: e, s: t }) => {
2369
- const n = e * Math.PI / 180, r = Fn(t) * 50;
2368
+ }, Ks = ({ h: e, s: t }) => {
2369
+ const n = e * Math.PI / 180, r = Wn(t) * 50;
2370
2370
  return {
2371
2371
  x: 50 + Math.cos(n) * r,
2372
2372
  y: 50 + Math.sin(n) * r
@@ -2375,20 +2375,20 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2375
2375
  const n = t.getBoundingClientRect(), r = n.left + n.width / 2, o = n.top + n.height / 2, a = e.clientX - r, s = e.clientY - o, l = Math.min(Math.sqrt(a * a + s * s), n.width / 2), d = Math.atan2(s, a) * 180 / Math.PI;
2376
2376
  return {
2377
2377
  h: d < 0 ? d + 360 : d,
2378
- s: Fn(l / (n.width / 2)),
2378
+ s: Wn(l / (n.width / 2)),
2379
2379
  v: 1
2380
2380
  };
2381
- }, Us = [
2381
+ }, qs = [
2382
2382
  "#000000",
2383
2383
  "#ffffff"
2384
- ], js = (e) => {
2384
+ ], Gs = (e) => {
2385
2385
  var t;
2386
- return (t = e.options) != null && t.length ? e.options : Us.map((n) => ({ label: n, value: n }));
2387
- }, zn = () => {
2386
+ return (t = e.options) != null && t.length ? e.options : qs.map((n) => ({ label: n, value: n }));
2387
+ }, Vn = () => {
2388
2388
  const e = document.createElement("section");
2389
2389
  return e.className = "bridgerte__payload-panel-field", e;
2390
- }, qs = (e, t, n) => {
2391
- const r = zn(), o = document.createElement("div");
2390
+ }, Xs = (e, t, n) => {
2391
+ const r = Vn(), o = document.createElement("div");
2392
2392
  return o.className = "bridgerte__payload-panel-option-list", e.options.forEach((a) => {
2393
2393
  const s = document.createElement("button");
2394
2394
  s.type = "button", s.className = "bridgerte__payload-panel-option", s.textContent = a.label, s.dataset.bridgertePayloadOption = a.value, s.dataset.active = t[e.name] === a.value ? "true" : "false", V(s), s.addEventListener("pointerdown", (l) => {
@@ -2400,8 +2400,8 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2400
2400
  });
2401
2401
  }), o.append(s);
2402
2402
  }), r.append(o), r;
2403
- }, Ks = (e, t, n) => {
2404
- const r = zn(), o = document.createElement("div"), a = document.createElement("div"), s = document.createElement("span"), l = document.createElement("div"), d = document.createElement("div"), c = js(e), h = c.length === 2;
2403
+ }, Ys = (e, t, n) => {
2404
+ const r = Vn(), o = document.createElement("div"), a = document.createElement("div"), s = document.createElement("span"), l = document.createElement("div"), d = document.createElement("div"), c = Gs(e), h = c.length === 2;
2405
2405
  let y = { h: 0, s: 0, v: 1 }, w = null;
2406
2406
  const T = (m) => {
2407
2407
  const p = ze(m);
@@ -2409,8 +2409,8 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2409
2409
  }, b = (m, p = !0) => {
2410
2410
  const k = ze(m);
2411
2411
  if (!k) return;
2412
- t[e.name] = k, d.style.background = k, y = Ws($n(k) ?? { r: 255, g: 255, b: 255 });
2413
- const _ = Vs(y);
2412
+ t[e.name] = k, d.style.background = k, y = js(zn(k) ?? { r: 255, g: 255, b: 255 });
2413
+ const _ = Ks(y);
2414
2414
  a.dataset.active = p ? "true" : "false", d.dataset.empty = "false", p && (s.style.left = `${_.x}%`, s.style.top = `${_.y}%`);
2415
2415
  }, v = () => {
2416
2416
  const m = t[e.name];
@@ -2437,35 +2437,35 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2437
2437
  });
2438
2438
  const x = t[e.name];
2439
2439
  return x && b(x, !(h && T(x))), o.append(a, l), r.append(o, d), r;
2440
- }, Gs = (e, t, n) => {
2440
+ }, Js = (e, t, n) => {
2441
2441
  const r = document.createElement("label"), o = document.createElement("input");
2442
2442
  return r.className = "bridgerte__payload-panel-text-field", r.textContent = e.label, o.type = e.name === "href" || e.name === "url" ? "url" : "text", o.className = "bridgerte__payload-panel-text-input", o.value = t[e.name] ?? "", o.placeholder = e.placeholder ?? "", o.spellcheck = !1, o.addEventListener("input", () => {
2443
2443
  t[e.name] = o.value;
2444
2444
  }), o.addEventListener("keydown", (a) => {
2445
2445
  a.key === "Enter" && (a.preventDefault(), n(t));
2446
2446
  }), r.append(o), r;
2447
- }, Xs = (e, t, n) => {
2447
+ }, Qs = (e, t, n) => {
2448
2448
  const r = document.createElement("label"), o = document.createElement("input");
2449
2449
  return r.className = "bridgerte__payload-panel-text-field", r.textContent = e.label, o.type = "number", o.className = "bridgerte__payload-panel-text-input", o.value = t[e.name] ?? "", o.placeholder = e.placeholder ?? "", e.min !== void 0 && (o.min = String(e.min)), e.max !== void 0 && (o.max = String(e.max)), e.step !== void 0 && (o.step = String(e.step)), o.addEventListener("input", () => {
2450
2450
  t[e.name] = o.value;
2451
2451
  }), o.addEventListener("keydown", (a) => {
2452
2452
  a.key === "Enter" && (a.preventDefault(), n(t));
2453
2453
  }), r.append(o), r;
2454
- }, Ys = ({
2454
+ }, Zs = ({
2455
2455
  field: e,
2456
2456
  values: t,
2457
2457
  onSubmit: n
2458
- }) => e.type === "color" ? Ks(e, t, n) : e.type === "text" ? Gs(e, t, n) : e.type === "number" ? Xs(e, t, n) : qs(e, t, n), Js = (e) => {
2458
+ }) => e.type === "color" ? Ys(e, t, n) : e.type === "text" ? Js(e, t, n) : e.type === "number" ? Qs(e, t, n) : Xs(e, t, n), ei = (e) => {
2459
2459
  var t, n, r;
2460
2460
  return e.defaultValue ?? (e.type === "select" ? (t = e.options[0]) == null ? void 0 : t.value : void 0) ?? (e.type === "color" ? (r = (n = e.options) == null ? void 0 : n[0]) == null ? void 0 : r.value : void 0) ?? "";
2461
- }, Qs = (e, t) => (t == null ? void 0 : t[e.name]) ?? (e.type === "color" ? "" : Js(e)), Ot = (e) => e.some((t) => t.type === "text" || t.type === "number"), Zs = (e) => {
2461
+ }, ti = (e, t) => (t == null ? void 0 : t[e.name]) ?? (e.type === "color" ? "" : ei(e)), Ot = (e) => e.some((t) => t.type === "text" || t.type === "number"), ni = (e) => {
2462
2462
  const t = e.querySelector(
2463
2463
  ".bridgerte__payload-panel-text-input"
2464
2464
  );
2465
2465
  queueMicrotask(() => {
2466
2466
  t == null || t.focus(), t == null || t.select();
2467
2467
  });
2468
- }, ei = (e, t, n) => {
2468
+ }, ri = (e, t, n) => {
2469
2469
  const r = document.createElement("div"), o = document.createElement("span"), a = (n == null ? void 0 : n(e)) ?? null;
2470
2470
  if (r.className = "bridgerte__payload-panel-title", o.textContent = e.panel.title, r.append(o), a) {
2471
2471
  const s = document.createElement("button");
@@ -2476,20 +2476,20 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2476
2476
  }), r.append(s);
2477
2477
  }
2478
2478
  return r;
2479
- }, ti = (e) => (
2479
+ }, oi = (e) => (
2480
2480
  /*
2481
2481
  * 字体类面板只需要紧凑候选列表,颜色面板需要保留一点横向空间给圆盘和黑白按钮。
2482
2482
  * 输入型面板保留默认宽度;table-insert 会按 schema 网格列数单独计算。
2483
2483
  */
2484
2484
  e === "font-size" || e === "font-family" || e === "line-height" ? "180px" : "220px"
2485
- ), ni = 3, ri = 3, oi = 10, Wn = 10, ai = 16, si = 2, ii = 24, li = () => {
2485
+ ), ai = 3, si = 3, ii = 10, Un = 10, li = 16, ci = 2, di = 24, ui = () => {
2486
2486
  var e;
2487
2487
  return typeof window < "u" && ((e = window.matchMedia) == null ? void 0 : e.call(window, "(hover: hover) and (pointer: fine)").matches) === !0;
2488
- }, de = (e, t) => {
2488
+ }, ue = (e, t) => {
2489
2489
  const n = Number.parseInt(e ?? "", 10);
2490
2490
  return Number.isFinite(n) ? Math.min(Math.max(n, t.min), t.max) : t.defaultValue;
2491
- }, ci = (e, t) => e.type === "number" && e.name === t, Ht = (e, t) => typeof e == "number" && Number.isFinite(e) && e > 0 ? Math.floor(e) : t, $t = (e, t, n, r) => {
2492
- const o = e.find((h) => ci(h, t)), a = Ht(o == null ? void 0 : o.min, 1), s = Ht(o == null ? void 0 : o.max, n), l = Math.max(a, s), d = Math.min(Math.max(r, a), l), c = de(o == null ? void 0 : o.defaultValue, {
2491
+ }, mi = (e, t) => e.type === "number" && e.name === t, Ht = (e, t) => typeof e == "number" && Number.isFinite(e) && e > 0 ? Math.floor(e) : t, $t = (e, t, n, r) => {
2492
+ const o = e.find((h) => mi(h, t)), a = Ht(o == null ? void 0 : o.min, 1), s = Ht(o == null ? void 0 : o.max, n), l = Math.max(a, s), d = Math.min(Math.max(r, a), l), c = ue(o == null ? void 0 : o.defaultValue, {
2493
2493
  min: a,
2494
2494
  max: l,
2495
2495
  defaultValue: d
@@ -2499,28 +2499,28 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2499
2499
  max: l,
2500
2500
  defaultValue: c
2501
2501
  };
2502
- }, Vn = (e) => ({
2502
+ }, jn = (e) => ({
2503
2503
  rows: $t(
2504
2504
  e,
2505
2505
  "rows",
2506
2506
  Qt,
2507
- ni
2507
+ ai
2508
2508
  ),
2509
2509
  cols: $t(
2510
2510
  e,
2511
2511
  "cols",
2512
2512
  Zt,
2513
- ri
2513
+ si
2514
2514
  )
2515
- }), di = (e) => {
2516
- const t = Math.min(e.cols.max, Wn);
2517
- return `${t * ai + Math.max(t - 1, 0) * si + ii}px`;
2518
- }, ui = ({
2515
+ }), gi = (e) => {
2516
+ const t = Math.min(e.cols.max, Un);
2517
+ return `${t * li + Math.max(t - 1, 0) * ci + di}px`;
2518
+ }, hi = ({
2519
2519
  fields: e,
2520
2520
  values: t,
2521
2521
  onSubmit: n
2522
2522
  }) => {
2523
- const r = Vn(e), o = document.createElement("section"), a = document.createElement("div"), s = document.createElement("div"), l = [], d = li(), c = Math.min(r.rows.max, oi), h = Math.min(r.cols.max, Wn), y = {
2523
+ const r = jn(e), o = document.createElement("section"), a = document.createElement("div"), s = document.createElement("div"), l = [], d = ui(), c = Math.min(r.rows.max, ii), h = Math.min(r.cols.max, Un), y = {
2524
2524
  ...r.rows,
2525
2525
  max: c,
2526
2526
  defaultValue: Math.min(r.rows.defaultValue, c)
@@ -2529,10 +2529,10 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2529
2529
  max: h,
2530
2530
  defaultValue: Math.min(r.cols.defaultValue, h)
2531
2531
  };
2532
- let T = de(
2532
+ let T = ue(
2533
2533
  t.rows,
2534
2534
  y
2535
- ), b = de(
2535
+ ), b = ue(
2536
2536
  t.cols,
2537
2537
  w
2538
2538
  ), v = null;
@@ -2546,10 +2546,10 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2546
2546
  return ((C = document.elementFromPoint(L.clientX, L.clientY)) == null ? void 0 : C.closest(".bridgerte__payload-panel-table-cell")) ?? null;
2547
2547
  }, p = (L) => {
2548
2548
  if (!L) return;
2549
- const C = de(
2549
+ const C = ue(
2550
2550
  L.dataset.rows,
2551
2551
  y
2552
- ), i = de(
2552
+ ), i = ue(
2553
2553
  L.dataset.cols,
2554
2554
  w
2555
2555
  );
@@ -2564,7 +2564,7 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2564
2564
  v = null;
2565
2565
  }, P = () => {
2566
2566
  window.setTimeout(_, 0);
2567
- }, I = (L, C) => {
2567
+ }, R = (L, C) => {
2568
2568
  if (L.detail > 0 && v !== C) {
2569
2569
  L.preventDefault(), L.stopPropagation();
2570
2570
  return;
@@ -2577,7 +2577,7 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2577
2577
  i.type = "button", i.className = "bridgerte__payload-panel-table-cell", i.dataset.rows = String(L), i.dataset.cols = String(C), i.setAttribute("aria-label", `插入 ${L} 行 ${C} 列表格`), V(i), i.addEventListener("pointerdown", (u) => {
2578
2578
  v = i, p(i), u.preventDefault();
2579
2579
  }), i.addEventListener("pointerup", P), i.addEventListener("pointercancel", _), i.addEventListener("click", (u) => {
2580
- I(u, i);
2580
+ R(u, i);
2581
2581
  }), d && i.addEventListener("pointerenter", () => {
2582
2582
  p(i);
2583
2583
  }), l.push(i), a.append(i);
@@ -2588,18 +2588,18 @@ const bs = () => (Rt += 1, `${fs}-${Rt}`), ys = (e, t, n) => {
2588
2588
  ), s.className = "bridgerte__payload-panel-table-status", s.setAttribute("aria-live", "polite"), a.addEventListener("pointermove", (L) => {
2589
2589
  d || p(m(L));
2590
2590
  }), x(T, b), o.append(a, s), o;
2591
- }, mi = "bridgerte-payload-panel";
2591
+ }, pi = "bridgerte-payload-panel";
2592
2592
  let Ft = 0;
2593
- const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-insert", hi = (e, t) => {
2593
+ const fi = () => (Ft += 1, `${pi}-${Ft}`), Ee = (e) => e.panel.id === "table-insert", bi = (e, t) => {
2594
2594
  const n = document.createElement("button");
2595
2595
  return n.type = "button", n.className = "bridgerte__payload-panel-submit", n.textContent = "应用", V(n), n.addEventListener("pointerdown", (r) => {
2596
2596
  r.preventDefault();
2597
2597
  }), n.addEventListener("click", () => {
2598
2598
  t(e);
2599
2599
  }), n;
2600
- }, pi = (e) => {
2600
+ }, yi = (e) => {
2601
2601
  let t = null, n = {};
2602
- const r = An({
2602
+ const r = Dn({
2603
2603
  root: e.editorRoot,
2604
2604
  className: "bridgerte__payload-panel",
2605
2605
  onBackdropClick: () => {
@@ -2612,7 +2612,7 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2612
2612
  const a = (c) => {
2613
2613
  var y;
2614
2614
  if (!t || t.readonly || e.isReadonly()) return;
2615
- const h = Fs(t.command, c);
2615
+ const h = Vs(t.command, c);
2616
2616
  h && ((y = e.restoreEditorFocus) == null || y.call(e, () => {
2617
2617
  o(), e.isReadonly() || e.executeCommand(h);
2618
2618
  }));
@@ -2622,19 +2622,19 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2622
2622
  o(), e.isReadonly() || e.executeCommand(c);
2623
2623
  });
2624
2624
  }, l = (c) => {
2625
- n = c.panel.fields.reduce((y, w) => (y[w.name] = Qs(w, c.currentValues), y), {});
2626
- const h = Ee(c) ? di(Vn(c.panel.fields)) : ti(c.panel.id);
2627
- r.element.style.width = `min(${h}, calc(100vw - 24px))`, r.content.append(ei(c, s, e.getClearCommand)), Ee(c) ? r.content.append(ui({
2625
+ n = c.panel.fields.reduce((y, w) => (y[w.name] = ti(w, c.currentValues), y), {});
2626
+ const h = Ee(c) ? gi(jn(c.panel.fields)) : oi(c.panel.id);
2627
+ r.element.style.width = `min(${h}, calc(100vw - 24px))`, r.content.append(ri(c, s, e.getClearCommand)), Ee(c) ? r.content.append(hi({
2628
2628
  fields: c.panel.fields,
2629
2629
  values: n,
2630
2630
  onSubmit: a
2631
2631
  })) : c.panel.fields.forEach((y) => {
2632
- r.content.append(Ys({
2632
+ r.content.append(Zs({
2633
2633
  field: y,
2634
2634
  values: n,
2635
2635
  onSubmit: a
2636
2636
  }));
2637
- }), !Ee(c) && Ot(c.panel.fields) && r.content.append(hi(n, a)), r.open(c.anchorRect), !Ee(c) && Ot(c.panel.fields) && Zs(r.content);
2637
+ }), !Ee(c) && Ot(c.panel.fields) && r.content.append(bi(n, a)), r.open(c.anchorRect), !Ee(c) && Ot(c.panel.fields) && ni(r.content);
2638
2638
  };
2639
2639
  return {
2640
2640
  open: (c) => {
@@ -2642,7 +2642,7 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2642
2642
  o();
2643
2643
  const h = {
2644
2644
  ...c,
2645
- id: gi(),
2645
+ id: fi(),
2646
2646
  readonly: e.isReadonly(),
2647
2647
  submit: a,
2648
2648
  cancel: o
@@ -2660,46 +2660,46 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2660
2660
  o(), r.destroy();
2661
2661
  }
2662
2662
  };
2663
- }, ue = "bridgerte__table-controls-button", fi = [
2663
+ }, me = "bridgerte__table-controls-button", vi = [
2664
2664
  "table-insert-row-after",
2665
2665
  "table-delete-row",
2666
2666
  "table-insert-column-after",
2667
2667
  "table-delete-column",
2668
2668
  "table-delete"
2669
- ], bi = () => {
2669
+ ], wi = () => {
2670
2670
  const e = new Map(Ae.map((t) => [t.id, t]));
2671
- return fi.map((t) => bo.find((n) => n.id === t) ?? e.get(t)).filter((t) => t !== void 0);
2672
- }, Un = bi(), yi = new Map(
2671
+ return vi.map((t) => wo.find((n) => n.id === t) ?? e.get(t)).filter((t) => t !== void 0);
2672
+ }, Kn = wi(), Ci = new Map(
2673
2673
  /*
2674
2674
  * Controls 按钮用 MenuItem.id 查完整 command,同类命令的不同 payload 不能用 command.type 合并。
2675
2675
  * 后续加入插入前/后、合并/拆分等表格菜单时,只要 id 稳定,就不会互相覆盖。
2676
2676
  */
2677
- Un.map((e) => [e.id, e])
2678
- ), vi = (e) => e.matches(".bridgerte__table") ? e : e.querySelector(".bridgerte__table") ?? e, wi = (e, t) => e.classList.contains("bridgerte__table-wrapper") ? e : t.parentElement instanceof HTMLElement ? t.parentElement : t, Ci = (e) => e.querySelector(".bridgerte__content") ?? e, _i = (e) => e instanceof Element ? e.closest(".bridgerte__table-wrapper") : null, ki = (e) => {
2677
+ Kn.map((e) => [e.id, e])
2678
+ ), _i = (e) => e.matches(".bridgerte__table") ? e : e.querySelector(".bridgerte__table") ?? e, ki = (e, t) => e.classList.contains("bridgerte__table-wrapper") ? e : t.parentElement instanceof HTMLElement ? t.parentElement : t, Ei = (e) => e.querySelector(".bridgerte__content") ?? e, xi = (e) => e instanceof Element ? e.closest(".bridgerte__table-wrapper") : null, Mi = (e) => {
2679
2679
  const t = e.getFirstChild();
2680
- if (!Qr(t)) return null;
2680
+ if (!to(t)) return null;
2681
2681
  const n = t.getFirstChild();
2682
- return Zr(n) ? n : null;
2683
- }, Ei = (e) => {
2682
+ return no(n) ? n : null;
2683
+ }, Ti = (e) => {
2684
2684
  const t = document.createElement("button");
2685
- return t.type = "button", t.className = ue, t.textContent = e.label, t.dataset.menuItemId = e.id, t.setAttribute("aria-label", e.label), t;
2686
- }, xi = () => {
2685
+ return t.type = "button", t.className = me, t.textContent = e.label, t.dataset.menuItemId = e.id, t.setAttribute("aria-label", e.label), t;
2686
+ }, Li = () => {
2687
2687
  const e = document.createElement("div");
2688
- return e.className = "bridgerte__table-controls", e.contentEditable = "false", e.setAttribute("aria-label", "表格操作"), Un.forEach((t) => {
2689
- e.append(Ei(t));
2688
+ return e.className = "bridgerte__table-controls", e.contentEditable = "false", e.setAttribute("aria-label", "表格操作"), Kn.forEach((t) => {
2689
+ e.append(Ti(t));
2690
2690
  }), e;
2691
- }, Mi = (e) => {
2692
- const t = document.createElement("div"), n = Ci(e.root), r = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
2691
+ }, Si = (e) => {
2692
+ const t = document.createElement("div"), n = Ei(e.root), r = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
2693
2693
  let s = null, l = null, d = !1, c = null;
2694
2694
  const h = (g, f) => {
2695
- const M = e.root.getBoundingClientRect(), S = f.getBoundingClientRect(), A = S.bottom < M.top || S.top > M.bottom, O = Math.max(
2695
+ const M = e.root.getBoundingClientRect(), N = f.getBoundingClientRect(), A = N.bottom < M.top || N.top > M.bottom, O = Math.max(
2696
2696
  8,
2697
2697
  M.width - g.offsetWidth - 8
2698
2698
  ), U = Math.min(
2699
- Math.max(S.left - M.left + 8, 8),
2699
+ Math.max(N.left - M.left + 8, 8),
2700
2700
  O
2701
- ), N = Math.max(8, S.top - M.top - g.offsetHeight - 8);
2702
- g.hidden = A, g.style.transform = `translate(${U}px, ${N}px)`;
2701
+ ), S = Math.max(8, N.top - M.top - g.offsetHeight - 8);
2702
+ g.hidden = A, g.style.transform = `translate(${U}px, ${S}px)`;
2703
2703
  }, y = (g) => c === g, w = (g) => {
2704
2704
  const f = e.editor.getElementByKey(g);
2705
2705
  if (!f) {
@@ -2707,21 +2707,21 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2707
2707
  return;
2708
2708
  }
2709
2709
  f.dataset.lexicalKey = g;
2710
- const M = vi(f), S = wi(f, M);
2711
- a.set(S, g);
2710
+ const M = _i(f), N = ki(f, M);
2711
+ a.set(N, g);
2712
2712
  const A = r.get(g);
2713
2713
  if (!y(g)) {
2714
2714
  T(g);
2715
2715
  return;
2716
2716
  }
2717
2717
  if (A) {
2718
- h(A, S);
2718
+ h(A, N);
2719
2719
  return;
2720
2720
  }
2721
- const O = xi(), U = V(O, {
2722
- targetSelector: `.${ue}`
2721
+ const O = Li(), U = V(O, {
2722
+ targetSelector: `.${me}`
2723
2723
  });
2724
- O.dataset.lexicalKey = g, r.set(g, O), o.set(O, U), t.append(O), h(O, S);
2724
+ O.dataset.lexicalKey = g, r.set(g, O), o.set(O, U), t.append(O), h(O, N);
2725
2725
  }, T = (g) => {
2726
2726
  var M;
2727
2727
  const f = r.get(g);
@@ -2741,17 +2741,17 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2741
2741
  e.editor.update(() => {
2742
2742
  var M;
2743
2743
  const f = he(g);
2744
- f instanceof qe && ((M = ki(f)) == null || M.selectStart());
2744
+ f instanceof Ke && ((M = Mi(f)) == null || M.selectStart());
2745
2745
  }), e.editor.focus();
2746
2746
  }, m = (g, f) => {
2747
2747
  x(g), e.executeCommand(f);
2748
2748
  }, p = (g, f) => {
2749
- const M = f.dataset.lexicalKey, S = g.dataset.menuItemId, A = S ? yi.get(S) : void 0;
2749
+ const M = f.dataset.lexicalKey, N = g.dataset.menuItemId, A = N ? Ci.get(N) : void 0;
2750
2750
  !M || !A || m(M, A.command);
2751
2751
  }, k = (g) => {
2752
2752
  if (!g) {
2753
- const S = c;
2754
- c = null, S !== null && w(S);
2753
+ const N = c;
2754
+ c = null, N !== null && w(N);
2755
2755
  return;
2756
2756
  }
2757
2757
  const f = g.dataset.lexicalKey ? g.dataset.lexicalKey : a.get(g) ?? null;
@@ -2761,13 +2761,13 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2761
2761
  }, _ = (g) => {
2762
2762
  const f = g.target;
2763
2763
  if (!(f instanceof HTMLElement)) return;
2764
- const M = f.closest(`.${ue}`);
2764
+ const M = f.closest(`.${me}`);
2765
2765
  M && (g.preventDefault(), l = g.pointerType === "mouse" ? null : M);
2766
2766
  }, P = (g) => {
2767
2767
  if (g.pointerType === "mouse" || !l) return;
2768
- const f = g.target, M = f instanceof HTMLElement ? f.closest(".bridgerte__table-controls") : null, S = f instanceof HTMLElement ? f.closest(`.${ue}`) : null;
2769
- S === l && M && (g.preventDefault(), g.stopPropagation(), p(S, M), d = !0), l = null;
2770
- }, I = () => {
2768
+ const f = g.target, M = f instanceof HTMLElement ? f.closest(".bridgerte__table-controls") : null, N = f instanceof HTMLElement ? f.closest(`.${me}`) : null;
2769
+ N === l && M && (g.preventDefault(), g.stopPropagation(), p(N, M), d = !0), l = null;
2770
+ }, R = () => {
2771
2771
  l = null;
2772
2772
  }, L = (g) => {
2773
2773
  if (d) {
@@ -2776,10 +2776,10 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2776
2776
  }
2777
2777
  const f = g.target;
2778
2778
  if (!(f instanceof HTMLElement)) return;
2779
- const M = f.closest(`.${ue}`), S = f.closest(".bridgerte__table-controls");
2780
- !M || !S || (g.preventDefault(), g.stopPropagation(), p(M, S));
2779
+ const M = f.closest(`.${me}`), N = f.closest(".bridgerte__table-controls");
2780
+ !M || !N || (g.preventDefault(), g.stopPropagation(), p(M, N));
2781
2781
  }, C = e.editor.registerMutationListener(
2782
- qe,
2782
+ Ke,
2783
2783
  (g) => {
2784
2784
  g.forEach((f, M) => {
2785
2785
  if (f === "destroyed") {
@@ -2789,41 +2789,41 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2789
2789
  w(M);
2790
2790
  });
2791
2791
  }
2792
- ), i = e.editor.registerUpdateListener(v), u = Bn({
2792
+ ), i = e.editor.registerUpdateListener(v), u = On({
2793
2793
  root: e.root,
2794
2794
  content: n,
2795
- getBlockFromTarget: _i,
2795
+ getBlockFromTarget: xi,
2796
2796
  activateBlock: k,
2797
2797
  clearBlock: () => k(null)
2798
2798
  });
2799
- return t.className = "bridgerte__table-controls-layer", e.root.append(t), t.addEventListener("pointerdown", _), t.addEventListener("pointerup", P), t.addEventListener("pointercancel", I), t.addEventListener("click", L), n.addEventListener("scroll", v, { passive: !0 }), window.addEventListener("resize", v), {
2799
+ return t.className = "bridgerte__table-controls-layer", e.root.append(t), t.addEventListener("pointerdown", _), t.addEventListener("pointerup", P), t.addEventListener("pointercancel", R), t.addEventListener("click", L), n.addEventListener("scroll", v, { passive: !0 }), window.addEventListener("resize", v), {
2800
2800
  destroy() {
2801
- C(), i(), s !== null && (st(s), s = null), t.removeEventListener("pointerdown", _), t.removeEventListener("pointerup", P), t.removeEventListener("pointercancel", I), t.removeEventListener("click", L), u.destroy(), n.removeEventListener("scroll", v), window.removeEventListener("resize", v), r.forEach((g) => {
2801
+ C(), i(), s !== null && (st(s), s = null), t.removeEventListener("pointerdown", _), t.removeEventListener("pointerup", P), t.removeEventListener("pointercancel", R), t.removeEventListener("click", L), u.destroy(), n.removeEventListener("scroll", v), window.removeEventListener("resize", v), r.forEach((g) => {
2802
2802
  var f;
2803
2803
  (f = o.get(g)) == null || f(), g.remove();
2804
2804
  }), r.clear(), o.clear(), a.clear(), t.remove();
2805
2805
  }
2806
2806
  };
2807
- }, Ti = (e) => {
2808
- const t = pi({
2807
+ }, Ni = (e) => {
2808
+ const t = yi({
2809
2809
  editorRoot: e.editorRoot,
2810
2810
  isReadonly: e.isReadonly,
2811
2811
  restoreEditorFocus: e.restoreEditorFocus,
2812
2812
  executeCommand: e.executeCommand,
2813
2813
  getClearCommand: e.getClearCommand,
2814
2814
  onRequest: e.onRequest
2815
- }), n = ws({
2815
+ }), n = ks({
2816
2816
  editor: e.lexicalEditor,
2817
2817
  root: e.editorRoot,
2818
2818
  isReadonly: e.isReadonly,
2819
2819
  languagePanel: e.codeBlockLanguagePanel,
2820
2820
  payloadPanelConfig: e.payloadPanelConfig,
2821
2821
  onRequest: e.onRequest
2822
- }), r = Mi({
2822
+ }), r = Si({
2823
2823
  editor: e.lexicalEditor,
2824
2824
  root: e.editorRoot,
2825
2825
  executeCommand: e.executeCommand
2826
- }), o = Hs({
2826
+ }), o = zs({
2827
2827
  editor: e.lexicalEditor,
2828
2828
  root: e.editorRoot,
2829
2829
  defaultWidthPercent: e.defaultMediaWidthPercent,
@@ -2840,14 +2840,14 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2840
2840
  t.destroy(), n.destroy(), r.destroy(), o.destroy();
2841
2841
  }
2842
2842
  };
2843
- }, Li = (e, t) => {
2843
+ }, Pi = (e, t) => {
2844
2844
  const n = document.createElement("div"), r = document.createElement("div"), o = document.createElement("div");
2845
2845
  return e.classList.add("bridgerte"), e.textContent = "", n.className = "bridgerte__editor", r.className = "bridgerte__body", o.className = "bridgerte__content", o.dataset.placeholder = t.placeholder, o.setAttribute("role", "textbox"), o.setAttribute("aria-multiline", "true"), r.append(o), n.append(r), e.append(n), {
2846
2846
  rootElement: n,
2847
2847
  bodyElement: r,
2848
2848
  contentElement: o
2849
2849
  };
2850
- }, Ni = ({
2850
+ }, Ii = ({
2851
2851
  editor: e
2852
2852
  }) => {
2853
2853
  let t = null;
@@ -2855,28 +2855,28 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2855
2855
  capture() {
2856
2856
  e.getEditorState().read(() => {
2857
2857
  var n;
2858
- t = ((n = R()) == null ? void 0 : n.clone()) ?? null;
2858
+ t = ((n = I()) == null ? void 0 : n.clone()) ?? null;
2859
2859
  });
2860
2860
  },
2861
2861
  restore() {
2862
2862
  t && e.update(() => {
2863
- br((t == null ? void 0 : t.clone()) ?? null);
2863
+ vr((t == null ? void 0 : t.clone()) ?? null);
2864
2864
  });
2865
2865
  },
2866
2866
  clear() {
2867
2867
  t = null;
2868
2868
  }
2869
2869
  };
2870
- }, Si = /((https?:\/\/|www\.)[^\s<>()]+[^\s<>().,;:!?])/i, Pi = /([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,})/i, Ii = {
2870
+ }, Ri = /((https?:\/\/|www\.)[^\s<>()]+[^\s<>().,;:!?])/i, Ai = /([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,})/i, Bi = {
2871
2871
  changeHandlers: [],
2872
2872
  excludeParents: [],
2873
2873
  matchers: [
2874
- ht(Si, (e) => e.startsWith("http://") || e.startsWith("https://") ? e : `https://${e}`),
2875
- ht(Pi, (e) => `mailto:${e}`)
2874
+ ht(Ri, (e) => e.startsWith("http://") || e.startsWith("https://") ? e : `https://${e}`),
2875
+ ht(Ai, (e) => `mailto:${e}`)
2876
2876
  ]
2877
- }, Ri = ({
2877
+ }, Di = ({
2878
2878
  editor: e
2879
- }) => so(e, Ii), Ai = [
2879
+ }) => co(e, Bi), Oi = [
2880
2880
  ".bridgerte__code-header",
2881
2881
  ".bridgerte__code-block-control",
2882
2882
  ".bridgerte__code-block-controls-layer",
@@ -2888,32 +2888,32 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2888
2888
  ".bridgerte__dialog-backdrop",
2889
2889
  ".bridgerte__dialog",
2890
2890
  ".bridgerte__payload-panel"
2891
- ].join(","), Bi = (e, t) => {
2891
+ ].join(","), Hi = (e, t) => {
2892
2892
  const n = e.anchorNode, r = e.focusNode;
2893
2893
  return n !== null && r !== null && t.contains(n) && t.contains(r);
2894
- }, Di = (e) => {
2895
- e.querySelectorAll(Ai).forEach((t) => {
2894
+ }, $i = (e) => {
2895
+ e.querySelectorAll(Oi).forEach((t) => {
2896
2896
  t.remove();
2897
2897
  }), e.querySelectorAll('[contenteditable="false"]').forEach((t) => {
2898
2898
  t.classList.contains("bridgerte__media") || t.remove();
2899
2899
  });
2900
- }, Oi = (e) => {
2900
+ }, Fi = (e) => {
2901
2901
  const t = e.ownerDocument.getSelection();
2902
- if (!t || t.rangeCount === 0 || !Bi(t, e))
2902
+ if (!t || t.rangeCount === 0 || !Hi(t, e))
2903
2903
  return null;
2904
2904
  const n = t.getRangeAt(0).cloneContents();
2905
- Di(n);
2905
+ $i(n);
2906
2906
  const r = e.ownerDocument.createElement("div");
2907
2907
  return r.append(n), {
2908
2908
  html: r.innerHTML,
2909
2909
  text: r.textContent ?? ""
2910
2910
  };
2911
- }, Hi = ({
2911
+ }, zi = ({
2912
2912
  target: e,
2913
2913
  isReadonly: t
2914
2914
  }) => {
2915
2915
  const n = (o) => {
2916
- const a = Oi(e);
2916
+ const a = Fi(e);
2917
2917
  !a || !o.clipboardData || (o.clipboardData.setData("text/html", a.html), o.clipboardData.setData("text/plain", a.text), o.preventDefault(), o.stopImmediatePropagation());
2918
2918
  }, r = (o) => {
2919
2919
  if (t()) {
@@ -2925,7 +2925,7 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2925
2925
  return e.addEventListener("copy", n, { capture: !0 }), e.addEventListener("cut", r, { capture: !0 }), () => {
2926
2926
  e.removeEventListener("copy", n, { capture: !0 }), e.removeEventListener("cut", r, { capture: !0 });
2927
2927
  };
2928
- }, xe = 8, $i = () => {
2928
+ }, xe = 8, Wi = () => {
2929
2929
  const e = window.visualViewport;
2930
2930
  return {
2931
2931
  left: (e == null ? void 0 : e.offsetLeft) ?? 0,
@@ -2934,23 +2934,23 @@ const gi = () => (Ft += 1, `${mi}-${Ft}`), Ee = (e) => e.panel.id === "table-ins
2934
2934
  height: (e == null ? void 0 : e.height) ?? window.innerHeight
2935
2935
  };
2936
2936
  }, zt = (e, t, n) => Math.min(Math.max(e, t), Math.max(t, n));
2937
- function jn(e, t, n = {}) {
2937
+ function qn(e, t, n = {}) {
2938
2938
  const r = n.placement ?? "bottom-start", o = n.offset ?? 8, a = n.shiftPadding ?? 8, s = n.strategy ?? "absolute";
2939
2939
  let l = null, d = !1;
2940
2940
  const c = () => {
2941
2941
  t.style.position = s, t.style.left = "0px", t.style.top = "0px", t.style.opacity = "0", t.style.pointerEvents = "none";
2942
2942
  }, h = (b, v) => {
2943
- const x = $i(), m = t.getBoundingClientRect(), p = x.left + xe, k = x.top + xe, _ = x.left + x.width - m.width - xe, P = x.top + x.height - m.height - xe;
2943
+ const x = Wi(), m = t.getBoundingClientRect(), p = x.left + xe, k = x.top + xe, _ = x.left + x.width - m.width - xe, P = x.top + x.height - m.height - xe;
2944
2944
  t.style.left = `${zt(b, p, _)}px`, t.style.top = `${zt(v, k, P)}px`, t.style.opacity = "", t.style.pointerEvents = "";
2945
2945
  }, y = async () => {
2946
- const b = await hn(e, t, {
2946
+ const b = await fn(e, t, {
2947
2947
  placement: r,
2948
2948
  strategy: s,
2949
- platform: pn,
2949
+ platform: bn,
2950
2950
  middleware: [
2951
- fn(o),
2952
- bn(),
2953
- yn({ padding: a })
2951
+ yn(o),
2952
+ vn(),
2953
+ wn({ padding: a })
2954
2954
  ]
2955
2955
  });
2956
2956
  h(b.x, b.y);
@@ -2959,7 +2959,7 @@ function jn(e, t, n = {}) {
2959
2959
  }, T = (b) => {
2960
2960
  if (d !== b) {
2961
2961
  if (d = b, w(), d) {
2962
- c(), t.hidden = !1, l = yo(e, t, y), y();
2962
+ c(), t.hidden = !1, l = Co(e, t, y), y();
2963
2963
  return;
2964
2964
  }
2965
2965
  t.hidden = !0, t.style.opacity = "", t.style.pointerEvents = "";
@@ -2973,7 +2973,7 @@ function jn(e, t, n = {}) {
2973
2973
  }
2974
2974
  };
2975
2975
  }
2976
- const qn = {
2976
+ const Gn = {
2977
2977
  // 居中对齐菜单使用,和 align 命令的 center value 对应。
2978
2978
  "align-center": '<svg aria-hidden="true" class="lucide lucide-align-center" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 5H3" /> <path d="M17 12H7" /> <path d="M19 19H5" /> </svg>',
2979
2979
  // 两端对齐菜单使用,保留段落排版语义,不和普通居中/左右对齐混用。
@@ -3066,19 +3066,19 @@ const qn = {
3066
3066
  "upload-video": '<svg aria-hidden="true" class="lucide lucide-film" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect width="18" height="18" x="3" y="3" rx="2" /> <path d="M7 3v18" /> <path d="M3 7.5h4" /> <path d="M3 12h18" /> <path d="M3 16.5h4" /> <path d="M17 3v18" /> <path d="M17 7.5h4" /> <path d="M17 16.5h4" /> </svg>',
3067
3067
  // 行高菜单使用,表示 format.lineHeight。
3068
3068
  "wrap-text": '<svg aria-hidden="true" class="lucide lucide-wrap-text" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="m16 16-3 3 3 3" /> <path d="M3 12h14.5a1 1 0 0 1 0 7H13" /> <path d="M3 19h6" /> <path d="M3 5h18" /> </svg>'
3069
- }, Fi = (e) => {
3069
+ }, Vi = (e) => {
3070
3070
  const t = document.createElement("span");
3071
3071
  return t.className = "bridgerte__menu-icon-text", t.textContent = e, t;
3072
- }, Kn = (e, t, n) => {
3072
+ }, Xn = (e, t, n) => {
3073
3073
  if (t) {
3074
3074
  e.innerHTML = t;
3075
3075
  return;
3076
3076
  }
3077
- e.append(Fi(n));
3077
+ e.append(Vi(n));
3078
3078
  }, Qe = () => {
3079
3079
  const e = window.getSelection(), t = e != null && e.rangeCount ? e.getRangeAt(0) : null, n = t == null ? void 0 : t.getBoundingClientRect();
3080
3080
  return !n || n.width === 0 && n.height === 0 ? null : n;
3081
- }, zi = 160, Wi = {
3081
+ }, Ui = 160, ji = {
3082
3082
  toolbarKeys: [
3083
3083
  "bold",
3084
3084
  "italic",
@@ -3093,16 +3093,16 @@ const qn = {
3093
3093
  "font-family",
3094
3094
  "line-height"
3095
3095
  ]
3096
- }, Vi = () => {
3097
- const e = R();
3096
+ }, Ki = () => {
3097
+ const e = I();
3098
3098
  return D(e) && !e.isCollapsed();
3099
- }, Wt = (e, t) => e.target instanceof Node && t.contains(e.target), Vt = (e) => e instanceof Element ? e.closest(".bridgerte__hoverbar-button") : null, Ui = (e) => e.flatMap((t) => t.type === "button" ? [t.item] : t.type === "group" ? t.items : []), ji = (e) => {
3099
+ }, Wt = (e, t) => e.target instanceof Node && t.contains(e.target), Vt = (e) => e instanceof Element ? e.closest(".bridgerte__hoverbar-button") : null, qi = (e) => e.flatMap((t) => t.type === "button" ? [t.item] : t.type === "group" ? t.items : []), Gi = (e) => {
3100
3100
  const t = document.createElement("span");
3101
3101
  return t.className = "bridgerte__hoverbar-separator", t.dataset.separatorId = e.key, t.setAttribute("aria-hidden", "true"), t;
3102
- }, qi = (e, t, n) => {
3103
- const r = _s(e, t), o = document.createElement("button");
3104
- return o.type = "button", o.className = "bridgerte__hoverbar-button", o.dataset.hoverbarItemId = e.id, o.dataset.active = String(r.active), o.disabled = r.disabled, o.setAttribute("aria-label", e.label), o.setAttribute("aria-pressed", String(r.active)), Kn(o, n[e.icon] ?? qn[e.icon], e.label), o;
3105
- }, Ki = ({
3102
+ }, Xi = (e, t, n) => {
3103
+ const r = xs(e, t), o = document.createElement("button");
3104
+ return o.type = "button", o.className = "bridgerte__hoverbar-button", o.dataset.hoverbarItemId = e.id, o.dataset.active = String(r.active), o.disabled = r.disabled, o.setAttribute("aria-label", e.label), o.setAttribute("aria-pressed", String(r.active)), Xn(o, n[e.icon] ?? Gn[e.icon], e.label), o;
3105
+ }, Yi = ({
3106
3106
  editorRoot: e,
3107
3107
  contentElement: t,
3108
3108
  editor: n,
@@ -3119,48 +3119,48 @@ const qn = {
3119
3119
  const w = it(l ?? Ae, {
3120
3120
  menuLabels: c,
3121
3121
  payloadPanelConfig: h
3122
- }), T = nt(d ?? Wi, w), b = Ui(T), v = document.createElement("span"), x = document.createElement("div");
3122
+ }), T = nt(d ?? ji, w), b = qi(T), v = document.createElement("span"), x = document.createElement("div");
3123
3123
  let m = null, p = !1, k = null;
3124
3124
  const _ = V(x, {
3125
3125
  targetSelector: ".bridgerte__hoverbar-button"
3126
3126
  });
3127
- v.className = "bridgerte__hoverbar-anchor", v.setAttribute("aria-hidden", "true"), x.className = "bridgerte__floating-menu bridgerte__hoverbar", x.setAttribute("role", "toolbar"), x.setAttribute("aria-label", "BridgeRTE hoverbar"), e.append(v, x), m = jn(v, x, {
3127
+ v.className = "bridgerte__hoverbar-anchor", v.setAttribute("aria-hidden", "true"), x.className = "bridgerte__floating-menu bridgerte__hoverbar", x.setAttribute("role", "toolbar"), x.setAttribute("aria-label", "BridgeRTE hoverbar"), e.append(v, x), m = qn(v, x, {
3128
3128
  placement: "top",
3129
3129
  offset: 8,
3130
3130
  strategy: "fixed"
3131
3131
  });
3132
3132
  const P = () => {
3133
3133
  k && (window.clearTimeout(k), k = null);
3134
- }, I = () => {
3134
+ }, R = () => {
3135
3135
  P(), p = !1, x.replaceChildren(), x.dataset.visible = "false", m == null || m.setOpen(!1);
3136
3136
  }, L = () => {
3137
- const N = Qe(), E = t.getBoundingClientRect();
3138
- v.style.left = `${(N == null ? void 0 : N.left) ?? E.left}px`, v.style.top = `${(N == null ? void 0 : N.top) ?? E.top}px`, v.style.width = `${(N == null ? void 0 : N.width) || 1}px`, v.style.height = `${(N == null ? void 0 : N.height) || 1}px`;
3137
+ const S = Qe(), E = t.getBoundingClientRect();
3138
+ v.style.left = `${(S == null ? void 0 : S.left) ?? E.left}px`, v.style.top = `${(S == null ? void 0 : S.top) ?? E.top}px`, v.style.width = `${(S == null ? void 0 : S.width) || 1}px`, v.style.height = `${(S == null ? void 0 : S.height) || 1}px`;
3139
3139
  }, C = () => {
3140
- const N = s();
3141
- x.replaceChildren(...T.flatMap((E) => E.type === "separator" ? [ji(E)] : (E.type === "button" ? [E.item] : E.items).map(($) => qi($, N, y)))), L(), p = !0, x.dataset.visible = "true", m == null || m.setOpen(!0), m == null || m.update();
3142
- }, i = () => r() ? !1 : n.getEditorState().read(Vi), u = (N = !1) => {
3140
+ const S = s();
3141
+ x.replaceChildren(...T.flatMap((E) => E.type === "separator" ? [Gi(E)] : (E.type === "button" ? [E.item] : E.items).map(($) => Xi($, S, y)))), L(), p = !0, x.dataset.visible = "true", m == null || m.setOpen(!0), m == null || m.update();
3142
+ }, i = () => r() ? !1 : n.getEditorState().read(Ki), u = (S = !1) => {
3143
3143
  if (P(), !i()) {
3144
- I();
3144
+ R();
3145
3145
  return;
3146
3146
  }
3147
- if (N) {
3147
+ if (S) {
3148
3148
  C();
3149
3149
  return;
3150
3150
  }
3151
- p && I(), k = window.setTimeout(() => {
3151
+ p && R(), k = window.setTimeout(() => {
3152
3152
  k = null, i() && C();
3153
- }, zi);
3154
- }, g = (N) => {
3155
- const E = b.find((B) => B.id === N.dataset.hoverbarItemId);
3156
- if (!(!E || N.disabled)) {
3153
+ }, Ui);
3154
+ }, g = (S) => {
3155
+ const E = b.find((B) => B.id === S.dataset.hoverbarItemId);
3156
+ if (!(!E || S.disabled)) {
3157
3157
  if (E.payloadPanel) {
3158
- const B = N.getBoundingClientRect();
3158
+ const B = S.getBoundingClientRect();
3159
3159
  a({
3160
3160
  menuId: E.id,
3161
3161
  command: E.command,
3162
3162
  panel: E.payloadPanel,
3163
- currentValues: Cs(E, s()),
3163
+ currentValues: Es(E, s()),
3164
3164
  anchorRect: {
3165
3165
  x: B.left,
3166
3166
  y: B.top,
@@ -3172,13 +3172,13 @@ const qn = {
3172
3172
  }
3173
3173
  o(E.command), u(!0);
3174
3174
  }
3175
- }, f = (N) => {
3176
- Vt(N.target) && N.preventDefault();
3177
- }, M = (N) => {
3178
- const E = Vt(N.target);
3179
- E && (N.preventDefault(), g(E));
3180
- }, S = (N) => {
3181
- !p || Wt(N, x) || Wt(N, t) || I();
3175
+ }, f = (S) => {
3176
+ Vt(S.target) && S.preventDefault();
3177
+ }, M = (S) => {
3178
+ const E = Vt(S.target);
3179
+ E && (S.preventDefault(), g(E));
3180
+ }, N = (S) => {
3181
+ !p || Wt(S, x) || Wt(S, t) || R();
3182
3182
  }, A = n.registerCommand(
3183
3183
  on,
3184
3184
  () => (u(), !1),
@@ -3187,24 +3187,24 @@ const qn = {
3187
3187
  u();
3188
3188
  }), U = n.registerCommand(
3189
3189
  an,
3190
- (N) => p ? (N == null || N.preventDefault(), I(), !0) : !1,
3190
+ (S) => p ? (S == null || S.preventDefault(), R(), !0) : !1,
3191
3191
  j
3192
3192
  );
3193
- return x.addEventListener("pointerdown", f), x.addEventListener("click", M), document.addEventListener("pointerdown", S, !0), () => {
3194
- P(), A(), O(), U(), x.removeEventListener("pointerdown", f), x.removeEventListener("click", M), document.removeEventListener("pointerdown", S, !0), _(), m == null || m.destroy(), v.remove(), x.remove();
3193
+ return x.addEventListener("pointerdown", f), x.addEventListener("click", M), document.addEventListener("pointerdown", N, !0), () => {
3194
+ P(), A(), O(), U(), x.removeEventListener("pointerdown", f), x.removeEventListener("click", M), document.removeEventListener("pointerdown", N, !0), _(), m == null || m.destroy(), v.remove(), x.remove();
3195
3195
  };
3196
- }, Gi = (e) => e.metaKey || e.ctrlKey, Xi = {
3196
+ }, Ji = (e) => e.metaKey || e.ctrlKey, Qi = {
3197
3197
  b: { type: "format.bold" },
3198
3198
  i: { type: "format.italic" },
3199
3199
  u: { type: "format.underline" },
3200
3200
  "\\": { type: "format.clear" }
3201
- }, Yi = {
3201
+ }, Zi = {
3202
3202
  x: { type: "format.strike" },
3203
3203
  l: { type: "align", value: "left" },
3204
3204
  e: { type: "align", value: "center" },
3205
3205
  r: { type: "align", value: "right" },
3206
3206
  j: { type: "align", value: "justify" }
3207
- }, Ji = {
3207
+ }, el = {
3208
3208
  0: { type: "block.paragraph" },
3209
3209
  1: { type: "block.heading", level: 1 },
3210
3210
  2: { type: "block.heading", level: 2 },
@@ -3212,30 +3212,30 @@ const qn = {
3212
3212
  4: { type: "block.heading", level: 4 },
3213
3213
  5: { type: "block.heading", level: 5 },
3214
3214
  6: { type: "block.heading", level: 6 }
3215
- }, Qi = (e) => {
3215
+ }, tl = (e) => {
3216
3216
  const t = e.key.toLowerCase(), n = e.code;
3217
- if (!e.metaKey && !e.ctrlKey && !e.altKey && !e.shiftKey || !Gi(e)) return null;
3217
+ if (!e.metaKey && !e.ctrlKey && !e.altKey && !e.shiftKey || !Ji(e)) return null;
3218
3218
  if (e.altKey) {
3219
3219
  if (e.shiftKey) return null;
3220
3220
  if (t === "c" || n === "KeyC") return { type: "block.code" };
3221
3221
  const r = n.startsWith("Digit") ? n.slice(5) : t;
3222
- return Ji[r] ?? null;
3222
+ return el[r] ?? null;
3223
3223
  }
3224
- return e.shiftKey ? t === "z" ? { type: "history.redo" } : t === "." || t === ">" || n === "Period" ? { type: "block.quote" } : t === "7" || t === "&" || n === "Digit7" ? { type: "list.ordered" } : t === "8" || t === "*" || n === "Digit8" ? { type: "list.unordered" } : t === "9" || t === "(" || n === "Digit9" ? { type: "list.todo" } : t === "-" || t === "_" || n === "Minus" ? { type: "block.divider" } : Yi[t] ?? null : t === "z" ? { type: "history.undo" } : t === "y" && e.ctrlKey && !e.metaKey ? { type: "history.redo" } : t === "`" || t === "~" || n === "Backquote" ? { type: "format.inlineCode" } : Xi[t] ?? null;
3225
- }, Zi = ({
3224
+ return e.shiftKey ? t === "z" ? { type: "history.redo" } : t === "." || t === ">" || n === "Period" ? { type: "block.quote" } : t === "7" || t === "&" || n === "Digit7" ? { type: "list.ordered" } : t === "8" || t === "*" || n === "Digit8" ? { type: "list.unordered" } : t === "9" || t === "(" || n === "Digit9" ? { type: "list.todo" } : t === "-" || t === "_" || n === "Minus" ? { type: "block.divider" } : Zi[t] ?? null : t === "z" ? { type: "history.undo" } : t === "y" && e.ctrlKey && !e.metaKey ? { type: "history.redo" } : t === "`" || t === "~" || n === "Backquote" ? { type: "format.inlineCode" } : Qi[t] ?? null;
3225
+ }, nl = ({
3226
3226
  target: e,
3227
3227
  isReadonly: t,
3228
3228
  executeCommand: n
3229
3229
  }) => {
3230
3230
  const r = (o) => {
3231
3231
  if (t()) return;
3232
- const a = Qi(o);
3232
+ const a = tl(o);
3233
3233
  a && (o.preventDefault(), n(a));
3234
3234
  };
3235
3235
  return e.addEventListener("keydown", r), () => {
3236
3236
  e.removeEventListener("keydown", r);
3237
3237
  };
3238
- }, el = (e, t) => {
3238
+ }, rl = (e, t) => {
3239
3239
  const n = t.offsetTop, r = n + t.offsetHeight, o = e.scrollTop, a = o + e.clientHeight;
3240
3240
  if (n < o) {
3241
3241
  e.scrollTop = n;
@@ -3250,7 +3250,7 @@ const qn = {
3250
3250
  if (o) return o;
3251
3251
  }
3252
3252
  return null;
3253
- }, Gn = ({
3253
+ }, Yn = ({
3254
3254
  editorRoot: e,
3255
3255
  contentElement: t,
3256
3256
  editor: n,
@@ -3269,7 +3269,7 @@ const qn = {
3269
3269
  let b = null, v = 0;
3270
3270
  const x = V(o, {
3271
3271
  targetSelector: s
3272
- }), m = jn(a, o, {
3272
+ }), m = qn(a, o, {
3273
3273
  placement: "bottom-start",
3274
3274
  offset: 2,
3275
3275
  strategy: "fixed"
@@ -3285,8 +3285,8 @@ const qn = {
3285
3285
  b = null, o.dataset.visible = "false", E && o.replaceChildren(), m.setOpen(!1);
3286
3286
  }, P = () => {
3287
3287
  const E = o.querySelector(`${s}[data-active="true"]`);
3288
- E && el(o, E);
3289
- }, I = (E, B) => {
3288
+ E && rl(o, E);
3289
+ }, R = (E, B) => {
3290
3290
  !b || b.requestId !== B.requestId || (_(), T(E, B.trigger));
3291
3291
  }, L = () => {
3292
3292
  if (!b) {
@@ -3297,36 +3297,36 @@ const qn = {
3297
3297
  if ((w == null ? void 0 : w(E, {
3298
3298
  anchorRect: B,
3299
3299
  close: _,
3300
- selectItem: (ne) => I(ne, E)
3300
+ selectItem: (re) => R(re, E)
3301
3301
  })) === !0) {
3302
3302
  o.replaceChildren(), o.dataset.visible = "false", m.setOpen(!1);
3303
3303
  return;
3304
3304
  }
3305
3305
  if (E.status === "success")
3306
3306
  o.replaceChildren(
3307
- ...E.items.map((ne, mt) => h(ne, mt, mt === E.activeIndex))
3307
+ ...E.items.map((re, mt) => h(re, mt, mt === E.activeIndex))
3308
3308
  );
3309
3309
  else {
3310
- const ne = y == null ? void 0 : y(
3310
+ const re = y == null ? void 0 : y(
3311
3311
  E.status,
3312
3312
  E.trigger.query,
3313
3313
  E.error
3314
3314
  );
3315
- o.replaceChildren(...ne ? [ne] : []);
3315
+ o.replaceChildren(...re ? [re] : []);
3316
3316
  }
3317
- const Y = o.children.length > 0;
3318
- o.dataset.visible = String(Y), k(), m.setOpen(Y), P(), m.update();
3317
+ const J = o.children.length > 0;
3318
+ o.dataset.visible = String(J), k(), m.setOpen(J), P(), m.update();
3319
3319
  }, C = async (E, B) => {
3320
3320
  let $;
3321
3321
  try {
3322
3322
  $ = await Promise.resolve(c(E));
3323
- } catch (Y) {
3323
+ } catch (J) {
3324
3324
  (b == null ? void 0 : b.requestId) === B && (b = {
3325
3325
  ...b,
3326
3326
  items: [],
3327
3327
  activeIndex: 0,
3328
3328
  status: "error",
3329
- error: Y
3329
+ error: J
3330
3330
  }, L());
3331
3331
  return;
3332
3332
  }
@@ -3363,26 +3363,26 @@ const qn = {
3363
3363
  ...b,
3364
3364
  activeIndex: (b.activeIndex + E + b.items.length) % b.items.length
3365
3365
  }, L(), !0), f = (E) => {
3366
- const B = E.target, $ = B instanceof HTMLElement ? B.closest(s) : null, Y = $ != null && $.dataset.index ? Number.parseInt($.dataset.index, 10) : Number.NaN;
3367
- !b || b.status !== "success" || Number.isNaN(Y) || (b = { ...b, activeIndex: Y }, E.preventDefault(), u());
3366
+ const B = E.target, $ = B instanceof HTMLElement ? B.closest(s) : null, J = $ != null && $.dataset.index ? Number.parseInt($.dataset.index, 10) : Number.NaN;
3367
+ !b || b.status !== "success" || Number.isNaN(J) || (b = { ...b, activeIndex: J }, E.preventDefault(), u());
3368
3368
  }, M = (E) => {
3369
3369
  const B = E.target;
3370
3370
  B instanceof HTMLElement && B.closest(s) && E.preventDefault();
3371
- }, S = n.registerUpdateListener(() => {
3371
+ }, N = n.registerUpdateListener(() => {
3372
3372
  i();
3373
3373
  }), A = n.registerCommand(
3374
- yr,
3374
+ wr,
3375
3375
  (E) => g(1) ? (E == null || E.preventDefault(), !0) : !1,
3376
3376
  j
3377
3377
  ), O = n.registerCommand(
3378
- vr,
3378
+ Cr,
3379
3379
  (E) => g(-1) ? (E == null || E.preventDefault(), !0) : !1,
3380
3380
  j
3381
3381
  ), U = n.registerCommand(
3382
- wr,
3382
+ _r,
3383
3383
  (E) => u() ? (E == null || E.preventDefault(), !0) : !1,
3384
3384
  j
3385
- ), N = n.registerCommand(
3385
+ ), S = n.registerCommand(
3386
3386
  an,
3387
3387
  (E) => b ? (E == null || E.preventDefault(), _(), !0) : !1,
3388
3388
  j
@@ -3390,10 +3390,10 @@ const qn = {
3390
3390
  return o.addEventListener("click", f), o.addEventListener("pointerdown", M), {
3391
3391
  close: _,
3392
3392
  destroy() {
3393
- S(), A(), O(), U(), N(), o.removeEventListener("click", f), o.removeEventListener("pointerdown", M), x(), m.destroy(), a.remove(), o.remove();
3393
+ N(), A(), O(), U(), S(), o.removeEventListener("click", f), o.removeEventListener("pointerdown", M), x(), m.destroy(), a.remove(), o.remove();
3394
3394
  }
3395
3395
  };
3396
- }, tl = {
3396
+ }, ol = {
3397
3397
  labelField: "label",
3398
3398
  descriptionField: "description",
3399
3399
  avatarField: "avatar",
@@ -3404,53 +3404,53 @@ const qn = {
3404
3404
  loadingText: "加载中",
3405
3405
  emptyText: "没有匹配的提及",
3406
3406
  errorText: "提及加载失败"
3407
- }, nl = (e) => ({
3408
- ...tl,
3407
+ }, al = (e) => ({
3408
+ ...ol,
3409
3409
  ...e
3410
- }), rl = (e, t) => {
3410
+ }), sl = (e, t) => {
3411
3411
  var o;
3412
3412
  const n = t.slice(5), r = (o = e.data) == null ? void 0 : o[n];
3413
3413
  return typeof r == "string" && r ? r : void 0;
3414
3414
  }, Me = (e, t) => {
3415
- if (t.startsWith("data.")) return rl(e, t);
3415
+ if (t.startsWith("data.")) return sl(e, t);
3416
3416
  const n = t === "id" ? e.id : t === "label" ? e.label : t === "value" ? e.value : t === "avatar" ? e.avatar : e.description;
3417
3417
  return typeof n == "string" && n ? n : void 0;
3418
- }, ol = (e) => e.startsWith("@") ? e : `@${e}`, Xn = (e, t) => {
3418
+ }, il = (e) => e.startsWith("@") ? e : `@${e}`, Jn = (e, t) => {
3419
3419
  const n = Me(e, t.labelField) ?? e.label ?? e.value ?? e.id, r = t.showDescription ? Me(e, t.descriptionField) ?? e.description : void 0, o = t.showAvatar ? Me(e, t.avatarField) ?? e.avatar : void 0, a = t.showIcon && !o ? Me(e, t.iconField) : void 0;
3420
3420
  return {
3421
3421
  item: e,
3422
- label: ol(n),
3422
+ label: il(n),
3423
3423
  ...r ? { description: r } : {},
3424
3424
  ...o ? { avatar: o } : {},
3425
3425
  ...a ? { icon: a } : {}
3426
3426
  };
3427
- }, al = (e, t) => e.map((n) => Xn(n, t)), Ze = (e) => e instanceof X && e.getTextContent().startsWith(" "), sl = (e) => {
3427
+ }, ll = (e, t) => e.map((n) => Jn(n, t)), Ze = (e) => e instanceof Y && e.getTextContent().startsWith(" "), cl = (e) => {
3428
3428
  const n = e.getTextContent().slice(1);
3429
3429
  if (!n) {
3430
3430
  e.remove();
3431
3431
  return;
3432
3432
  }
3433
3433
  e.setTextContent(n);
3434
- }, il = (e, t) => {
3434
+ }, dl = (e, t) => {
3435
3435
  const n = e.getPreviousSibling(), r = e.getNextSibling(), o = Ze(r) ? r.getNextSibling() : r;
3436
- if (Ze(r) && sl(r), e.remove(), t) {
3436
+ if (Ze(r) && cl(r), e.remove(), t) {
3437
3437
  n == null || n.selectEnd();
3438
3438
  return;
3439
3439
  }
3440
3440
  o == null || o.selectStart();
3441
- }, ll = (e) => {
3442
- const t = R();
3441
+ }, ul = (e) => {
3442
+ const t = I();
3443
3443
  if (!D(t) || !t.isCollapsed()) return null;
3444
3444
  const n = t.anchor, r = n.getNode();
3445
3445
  if (xt(r)) return r;
3446
- if (!(r instanceof X)) return null;
3446
+ if (!(r instanceof Y)) return null;
3447
3447
  const o = r.getTextContentSize(), a = r.getPreviousSibling(), s = r.getNextSibling(), l = Ze(r) && n.offset === 1, d = e ? n.offset === 0 || l ? a : null : n.offset === o ? s : null;
3448
3448
  return xt(d) ? d : null;
3449
- }, cl = (e, t, n) => {
3449
+ }, ml = (e, t, n) => {
3450
3450
  const r = (a) => {
3451
3451
  if (t()) return !1;
3452
- const s = ll(a);
3453
- return s ? (il(s, a), n(), !0) : !1;
3452
+ const s = ul(a);
3453
+ return s ? (dl(s, a), n(), !0) : !1;
3454
3454
  }, o = (a, s) => {
3455
3455
  const l = r(s);
3456
3456
  return l && a.preventDefault(), l;
@@ -3459,32 +3459,32 @@ const qn = {
3459
3459
  e.registerCommand(
3460
3460
  tn,
3461
3461
  (a) => o(a, !0),
3462
- se
3462
+ G
3463
3463
  ),
3464
3464
  e.registerCommand(
3465
3465
  nn,
3466
3466
  (a) => o(a, !1),
3467
- se
3467
+ G
3468
3468
  ),
3469
3469
  e.registerCommand(
3470
3470
  rn,
3471
3471
  (a) => r(a),
3472
- se
3472
+ G
3473
3473
  )
3474
3474
  ];
3475
- }, dl = /(?:^|\s)@([\p{L}\p{N}_-]*)$/u, Ut = [
3475
+ }, gl = /(?:^|\s)@([\p{L}\p{N}_-]*)$/u, Ut = [
3476
3476
  { id: "bridgerte-team", label: "BridgeRTE Team", value: "bridgerte-team" },
3477
3477
  { id: "frontend", label: "Frontend", value: "frontend" },
3478
3478
  { id: "designer", label: "Designer", value: "designer" }
3479
- ], ul = (e) => e.trim().toLowerCase(), ml = (e) => [e.label, e.value, e.description].filter(Boolean).join(" ").toLowerCase(), gl = (e) => {
3480
- const t = ul(e);
3481
- return t ? Ut.filter((n) => ml(n).includes(t)) : Ut;
3482
- }, hl = () => {
3483
- const e = R();
3479
+ ], hl = (e) => e.trim().toLowerCase(), pl = (e) => [e.label, e.value, e.description].filter(Boolean).join(" ").toLowerCase(), fl = (e) => {
3480
+ const t = hl(e);
3481
+ return t ? Ut.filter((n) => pl(n).includes(t)) : Ut;
3482
+ }, bl = () => {
3483
+ const e = I();
3484
3484
  if (!D(e) || !e.isCollapsed()) return null;
3485
3485
  const t = e.anchor, n = t.getNode();
3486
- if (!(n instanceof X)) return null;
3487
- const o = n.getTextContent().slice(0, t.offset).match(dl);
3486
+ if (!(n instanceof Y)) return null;
3487
+ const o = n.getTextContent().slice(0, t.offset).match(gl);
3488
3488
  if (!o) return null;
3489
3489
  const a = o[1] ?? "", s = o[0] ?? "", l = s.startsWith("@") ? 0 : 1, d = t.offset - s.length + l;
3490
3490
  return {
@@ -3493,19 +3493,19 @@ const qn = {
3493
3493
  startOffset: d,
3494
3494
  endOffset: t.offset
3495
3495
  };
3496
- }, pl = () => {
3496
+ }, yl = () => {
3497
3497
  const e = document.createElement("div");
3498
3498
  return e.className = "bridgerte__floating-menu bridgerte__mention-menu", e.dataset.visible = "false", e;
3499
- }, fl = () => {
3499
+ }, vl = () => {
3500
3500
  const e = document.createElement("span");
3501
3501
  return e.className = "bridgerte__mention-anchor", e.setAttribute("aria-hidden", "true"), e;
3502
- }, bl = (e, t) => {
3502
+ }, wl = (e, t) => {
3503
3503
  var s;
3504
3504
  const n = e.getElementByKey(t.nodeKey), r = lt(n, t.startOffset + 1);
3505
3505
  if (!(r instanceof Text)) return null;
3506
3506
  const o = document.createRange(), a = Math.min(t.startOffset + 1, ((s = r.textContent) == null ? void 0 : s.length) ?? 0);
3507
3507
  return a <= t.startOffset ? null : (o.setStart(r, t.startOffset), o.setEnd(r, a), o.getBoundingClientRect());
3508
- }, yl = (e, t, n) => {
3508
+ }, Cl = (e, t, n) => {
3509
3509
  const r = document.createElement("button"), o = document.createElement("span");
3510
3510
  if (r.type = "button", r.className = "bridgerte__menu-item bridgerte__mention-item", r.dataset.mentionId = e.item.id, r.dataset.index = String(t), r.dataset.active = String(n), e.avatar) {
3511
3511
  const a = document.createElement("img");
@@ -3519,10 +3519,10 @@ const qn = {
3519
3519
  a.className = "bridgerte__mention-item-description", a.textContent = e.description, r.append(a);
3520
3520
  }
3521
3521
  return r;
3522
- }, vl = (e, t) => {
3522
+ }, _l = (e, t) => {
3523
3523
  const n = document.createElement("div");
3524
3524
  return n.className = "bridgerte__mention-status", n.dataset.status = e, n.textContent = t, n;
3525
- }, wl = (e, t) => {
3525
+ }, kl = (e, t) => {
3526
3526
  switch (e) {
3527
3527
  case "loading":
3528
3528
  return t.loadingText;
@@ -3531,12 +3531,12 @@ const qn = {
3531
3531
  case "error":
3532
3532
  return t.errorText;
3533
3533
  }
3534
- }, Cl = (e) => e ? {
3534
+ }, El = (e) => e ? {
3535
3535
  x: e.x,
3536
3536
  y: e.y,
3537
3537
  width: e.width,
3538
3538
  height: e.height
3539
- } : void 0, _l = ({
3539
+ } : void 0, xl = ({
3540
3540
  editorRoot: e,
3541
3541
  contentElement: t,
3542
3542
  editor: n,
@@ -3546,12 +3546,12 @@ const qn = {
3546
3546
  mentionMenuConfig: s,
3547
3547
  onMentionMenuRequest: l
3548
3548
  }) => {
3549
- const d = pl(), c = fl(), h = nl(s), y = (b, v) => {
3549
+ const d = yl(), c = vl(), h = al(s), y = (b, v) => {
3550
3550
  n.update(() => {
3551
3551
  const x = he(v.nodeKey);
3552
- x instanceof X && (x.spliceText(v.startOffset, v.endOffset - v.startOffset, ""), x.select(v.startOffset, v.startOffset));
3552
+ x instanceof Y && (x.spliceText(v.startOffset, v.endOffset - v.startOffset, ""), x.select(v.startOffset, v.startOffset));
3553
3553
  }), o({ type: "mention.insert", item: b });
3554
- }, w = Gn({
3554
+ }, w = Yn({
3555
3555
  editorRoot: e,
3556
3556
  contentElement: t,
3557
3557
  editor: n,
@@ -3559,18 +3559,18 @@ const qn = {
3559
3559
  menu: d,
3560
3560
  anchor: c,
3561
3561
  itemSelector: ".bridgerte__mention-item",
3562
- getCurrentTrigger: hl,
3563
- getTriggerRect: (b) => bl(n, b),
3562
+ getCurrentTrigger: bl,
3563
+ getTriggerRect: (b) => wl(n, b),
3564
3564
  resolveItems: async (b) => {
3565
3565
  const v = await Promise.resolve(
3566
- a ? a(b) : gl(b)
3566
+ a ? a(b) : fl(b)
3567
3567
  );
3568
- return al(v, h);
3568
+ return ll(v, h);
3569
3569
  },
3570
- renderItem: yl,
3571
- renderStatus: (b) => vl(
3570
+ renderItem: Cl,
3571
+ renderStatus: (b) => _l(
3572
3572
  b,
3573
- wl(b, h)
3573
+ kl(b, h)
3574
3574
  ),
3575
3575
  onStateChange: l ? (b, v) => l({
3576
3576
  id: `bridgerte-mention-menu-${b.requestId}`,
@@ -3579,21 +3579,21 @@ const qn = {
3579
3579
  items: b.items,
3580
3580
  config: h,
3581
3581
  readonly: r(),
3582
- anchorRect: Cl(v.anchorRect),
3582
+ anchorRect: El(v.anchorRect),
3583
3583
  ...b.error ? { error: b.error } : {},
3584
3584
  submit: (x) => v.selectItem(
3585
- Xn(x, h)
3585
+ Jn(x, h)
3586
3586
  ),
3587
3587
  cancel: v.close
3588
3588
  }) : void 0,
3589
3589
  onSelect: (b, v) => y(b.item, v)
3590
3590
  }), T = sn(
3591
- ...cl(n, r, () => w.close(!1))
3591
+ ...ml(n, r, () => w.close(!1))
3592
3592
  );
3593
3593
  return () => {
3594
3594
  T(), w.destroy();
3595
3595
  };
3596
- }, kl = [
3596
+ }, Ml = [
3597
3597
  "script",
3598
3598
  "style",
3599
3599
  "iframe",
@@ -3610,7 +3610,7 @@ const qn = {
3610
3610
  "button",
3611
3611
  "select",
3612
3612
  "textarea"
3613
- ].join(","), El = [
3613
+ ].join(","), Tl = [
3614
3614
  ".bridgerte__code-header",
3615
3615
  ".bridgerte__code-block-control",
3616
3616
  ".bridgerte__code-block-controls-layer",
@@ -3623,7 +3623,7 @@ const qn = {
3623
3623
  ".bridgerte__dialog",
3624
3624
  ".bridgerte__payload-panel",
3625
3625
  '[data-bridgerte-clipboard-ui="true"]'
3626
- ].join(","), xl = /* @__PURE__ */ new Set([
3626
+ ].join(","), Ll = /* @__PURE__ */ new Set([
3627
3627
  "A",
3628
3628
  "B",
3629
3629
  "BLOCKQUOTE",
@@ -3660,16 +3660,16 @@ const qn = {
3660
3660
  "TT",
3661
3661
  "U",
3662
3662
  "UL"
3663
- ]), Ml = /* @__PURE__ */ new Set(["http:", "https:", "mailto:"]), Tl = "p,div,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table", Ll = "p,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table", Nl = /* @__PURE__ */ new Set(["colspan", "rowspan"]), Sl = /* @__PURE__ */ new Set(["TD", "TH"]), Pl = /* @__PURE__ */ new Set(["M", "O", "V", "W"]), Il = /* @__PURE__ */ new Set(["SPAN"]), Rl = /* @__PURE__ */ new Set(["color", "background-color"]), Al = /^#([\da-f]{3}|[\da-f]{6}|[\da-f]{8})$/i, jt = /* @__PURE__ */ new Map([
3663
+ ]), Sl = /* @__PURE__ */ new Set(["http:", "https:", "mailto:"]), Nl = "p,div,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table", Pl = "p,blockquote,pre,h1,h2,h3,h4,h5,h6,ul,ol,table", Il = /* @__PURE__ */ new Set(["colspan", "rowspan"]), Rl = /* @__PURE__ */ new Set(["TD", "TH"]), Al = /* @__PURE__ */ new Set(["M", "O", "V", "W"]), Bl = /* @__PURE__ */ new Set(["SPAN"]), Dl = /* @__PURE__ */ new Set(["color", "background-color"]), Ol = /^#([\da-f]{3}|[\da-f]{6}|[\da-f]{8})$/i, jt = /* @__PURE__ */ new Map([
3664
3664
  ["B", "strong"],
3665
3665
  ["DEL", "s"],
3666
3666
  ["I", "em"],
3667
3667
  ["STRIKE", "s"],
3668
3668
  ["TT", "code"]
3669
- ]), Bl = (e) => {
3669
+ ]), Hl = (e) => {
3670
3670
  try {
3671
3671
  const t = new URL(e, window.location.href);
3672
- return Ml.has(t.protocol);
3672
+ return Sl.has(t.protocol);
3673
3673
  } catch {
3674
3674
  return !1;
3675
3675
  }
@@ -3678,18 +3678,18 @@ const qn = {
3678
3678
  }, dt = (e, t) => {
3679
3679
  const n = e.ownerDocument.createElement(t);
3680
3680
  return n.append(...e.childNodes), e.replaceWith(n), n;
3681
- }, Dl = (e) => {
3681
+ }, $l = (e) => {
3682
3682
  const t = e.tagName.split(":")[0] ?? "";
3683
- return e.tagName.includes(":") && Pl.has(t);
3684
- }, Yn = (e) => {
3683
+ return e.tagName.includes(":") && Al.has(t);
3684
+ }, Qn = (e) => {
3685
3685
  [...e.childNodes].forEach((t) => {
3686
3686
  if (t.nodeType === Node.COMMENT_NODE) {
3687
3687
  t.remove();
3688
3688
  return;
3689
3689
  }
3690
- Yn(t);
3690
+ Qn(t);
3691
3691
  });
3692
- }, Jn = (e) => {
3692
+ }, Zn = (e) => {
3693
3693
  [...e.childNodes].forEach((t) => {
3694
3694
  if (t.nodeType === Node.TEXT_NODE) {
3695
3695
  const n = t.parentElement, r = !!(n != null && n.closest("pre,code,textarea")), o = (t.textContent ?? "").replace(/[\u200B-\u200D\uFEFF]/g, "").replace(/\u00A0/g, r ? " " : " ");
@@ -3701,24 +3701,24 @@ const qn = {
3701
3701
  t.previousSibling || (a = a.trimStart()), t.nextSibling || (a = a.trimEnd()), t.textContent = a;
3702
3702
  return;
3703
3703
  }
3704
- Jn(t);
3704
+ Zn(t);
3705
3705
  });
3706
- }, Ol = (e) => /^[1-9]\d*$/.test(e.trim()), ut = (e) => {
3707
- const t = e.trim().toLowerCase(), [, n] = t.match(Al) ?? [];
3706
+ }, Fl = (e) => /^[1-9]\d*$/.test(e.trim()), ut = (e) => {
3707
+ const t = e.trim().toLowerCase(), [, n] = t.match(Ol) ?? [];
3708
3708
  return n ? n.length === 8 ? `#${n.slice(2)}` : t : null;
3709
- }, Hl = (e, t) => {
3710
- if (!Il.has(e)) return null;
3709
+ }, zl = (e, t) => {
3710
+ if (!Bl.has(e)) return null;
3711
3711
  const n = t.split(";").flatMap((r) => {
3712
3712
  const [o, ...a] = r.split(":"), s = o == null ? void 0 : o.trim().toLowerCase(), l = ut(a.join(":"));
3713
- return !s || !l || !Rl.has(s) ? [] : [`${s}: ${l}`];
3713
+ return !s || !l || !Dl.has(s) ? [] : [`${s}: ${l}`];
3714
3714
  });
3715
3715
  return n.length > 0 ? `${n.join("; ")};` : null;
3716
- }, $l = (e) => {
3717
- if (Dl(e)) {
3716
+ }, Wl = (e) => {
3717
+ if ($l(e)) {
3718
3718
  e.remove();
3719
3719
  return;
3720
3720
  }
3721
- if (!xl.has(e.tagName)) {
3721
+ if (!Ll.has(e.tagName)) {
3722
3722
  ct(e);
3723
3723
  return;
3724
3724
  }
@@ -3729,7 +3729,7 @@ const qn = {
3729
3729
  return;
3730
3730
  }
3731
3731
  if (n === "style") {
3732
- const r = Hl(e.tagName, t.value);
3732
+ const r = zl(e.tagName, t.value);
3733
3733
  if (r) {
3734
3734
  e.setAttribute(t.name, r);
3735
3735
  return;
@@ -3738,13 +3738,13 @@ const qn = {
3738
3738
  return;
3739
3739
  }
3740
3740
  if (e.tagName === "A" && n === "href") {
3741
- if (Bl(t.value)) return;
3741
+ if (Hl(t.value)) return;
3742
3742
  e.removeAttribute(t.name);
3743
3743
  return;
3744
3744
  }
3745
3745
  if (!(e.tagName === "A" && ["target", "rel", "title"].includes(n))) {
3746
3746
  if (e.tagName === "PRE" && n === Be) {
3747
- const r = te(t.value);
3747
+ const r = ne(t.value);
3748
3748
  if (r) {
3749
3749
  e.setAttribute(t.name, r);
3750
3750
  return;
@@ -3757,39 +3757,39 @@ const qn = {
3757
3757
  e.removeAttribute(t.name);
3758
3758
  return;
3759
3759
  }
3760
- Sl.has(e.tagName) && Nl.has(n) && Ol(t.value) || e.removeAttribute(t.name);
3760
+ Rl.has(e.tagName) && Il.has(n) && Fl(t.value) || e.removeAttribute(t.name);
3761
3761
  }
3762
3762
  });
3763
- }, Fl = (e) => {
3763
+ }, Vl = (e) => {
3764
3764
  [...e.querySelectorAll("font")].forEach((t) => {
3765
3765
  const n = t.getAttribute("color"), r = n ? ut(n) : null, o = dt(t, "span");
3766
3766
  r && o.setAttribute("style", `color: ${r};`);
3767
3767
  });
3768
- }, zl = (e) => {
3768
+ }, Ul = (e) => {
3769
3769
  [...e.querySelectorAll([...jt.keys()].join(","))].forEach((t) => {
3770
3770
  const n = jt.get(t.tagName);
3771
3771
  n && dt(t, n);
3772
3772
  });
3773
- }, Wl = (e) => {
3773
+ }, jl = (e) => {
3774
3774
  [...e.querySelectorAll("div")].reverse().forEach((t) => {
3775
- if (t.querySelector(Ll)) {
3775
+ if (t.querySelector(Pl)) {
3776
3776
  ct(t);
3777
3777
  return;
3778
3778
  }
3779
3779
  dt(t, "p");
3780
3780
  });
3781
- }, Vl = (e) => {
3781
+ }, Kl = (e) => {
3782
3782
  [...e.querySelectorAll("span")].forEach((t) => {
3783
3783
  t.attributes.length === 0 && ct(t);
3784
3784
  });
3785
- }, Ul = (e) => !["P", "DIV", "SPAN"].includes(e.tagName) || e.querySelector("br,table,ul,ol") ? !1 : !(e.textContent ?? "").trim(), qt = (e) => {
3785
+ }, ql = (e) => !["P", "DIV", "SPAN"].includes(e.tagName) || e.querySelector("br,table,ul,ol") ? !1 : !(e.textContent ?? "").trim(), Kt = (e) => {
3786
3786
  [...e.querySelectorAll("p,div,span")].reverse().forEach((t) => {
3787
- Ul(t) && t.remove();
3787
+ ql(t) && t.remove();
3788
3788
  });
3789
- }, jl = (e) => {
3789
+ }, Gl = (e) => {
3790
3790
  var t;
3791
- return e.nodeType === Node.TEXT_NODE ? !!((t = e.textContent) != null && t.trim()) : e.nodeType !== Node.ELEMENT_NODE ? !1 : !e.matches(Tl);
3792
- }, ql = (e) => {
3791
+ return e.nodeType === Node.TEXT_NODE ? !!((t = e.textContent) != null && t.trim()) : e.nodeType !== Node.ELEMENT_NODE ? !1 : !e.matches(Nl);
3792
+ }, Xl = (e) => {
3793
3793
  let t = [];
3794
3794
  const n = () => {
3795
3795
  if (t.length === 0) return;
@@ -3804,47 +3804,47 @@ const qn = {
3804
3804
  r.remove();
3805
3805
  return;
3806
3806
  }
3807
- if (jl(r)) {
3807
+ if (Gl(r)) {
3808
3808
  t.push(r);
3809
3809
  return;
3810
3810
  }
3811
3811
  n();
3812
3812
  }), n();
3813
- }, Kl = (e) => {
3813
+ }, Yl = (e) => {
3814
3814
  const t = document.createElement("template");
3815
- t.innerHTML = e, t.content.querySelectorAll(kl).forEach((r) => {
3815
+ t.innerHTML = e, t.content.querySelectorAll(Ml).forEach((r) => {
3816
3816
  r.remove();
3817
- }), t.content.querySelectorAll(El).forEach((r) => {
3817
+ }), t.content.querySelectorAll(Tl).forEach((r) => {
3818
3818
  r.remove();
3819
- }), Yn(t.content), Ja(t.content), [...t.content.querySelectorAll("*")].forEach($l), Jn(t.content), Fl(t.content), zl(t.content), Wl(t.content), Vl(t.content), qt(t.content);
3819
+ }), Qn(t.content), es(t.content), [...t.content.querySelectorAll("*")].forEach(Wl), Zn(t.content), Vl(t.content), Ul(t.content), jl(t.content), Kl(t.content), Kt(t.content);
3820
3820
  const n = document.createElement("div");
3821
- return n.append(t.content.cloneNode(!0)), ql(n), qt(n), n.innerHTML;
3822
- }, Gl = /^https?:\/\/[^\s<>"']+\.[^\s<>"']+$/i, Xl = /^www\.[^\s<>"']+\.[^\s<>"']+$/i, Yl = new RegExp(
3821
+ return n.append(t.content.cloneNode(!0)), Xl(n), Kt(n), n.innerHTML;
3822
+ }, Jl = /^https?:\/\/[^\s<>"']+\.[^\s<>"']+$/i, Ql = /^www\.[^\s<>"']+\.[^\s<>"']+$/i, Zl = new RegExp(
3823
3823
  `^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+(?:/[^\\s<>"']*)?$`,
3824
3824
  "i"
3825
- ), Jl = /^[^\s@]+@[^\s@]+\.[^\s@]+$/i, Ql = /^\s*```([a-z0-9_+#.-]+)\s*\n([\s\S]*?)\n?```\s*$/i, Zl = (e) => e.type.startsWith("image/") ? "image" : e.type.startsWith("video/") ? "video" : null, Qn = (e) => e ? [...e].flatMap((t) => {
3826
- const n = Zl(t);
3825
+ ), ec = /^[^\s@]+@[^\s@]+\.[^\s@]+$/i, tc = /^\s*```([a-z0-9_+#.-]+)\s*\n([\s\S]*?)\n?```\s*$/i, nc = (e) => e.type.startsWith("image/") ? "image" : e.type.startsWith("video/") ? "video" : null, er = (e) => e ? [...e].flatMap((t) => {
3826
+ const n = nc(t);
3827
3827
  return n ? [{ type: n, file: t }] : [];
3828
3828
  }) : [], De = (e) => ({
3829
3829
  text: (e == null ? void 0 : e.getData("text/plain")) ?? "",
3830
3830
  html: (e == null ? void 0 : e.getData("text/html")) ?? "",
3831
3831
  files: e != null && e.files ? [...e.files] : []
3832
- }), ec = (e) => ({
3832
+ }), rc = (e) => ({
3833
3833
  name: e.name,
3834
3834
  mimeType: e.type || void 0,
3835
3835
  size: e.size,
3836
3836
  data: e
3837
- }), tc = (e) => {
3837
+ }), oc = (e) => {
3838
3838
  const [, t, n] = e.replace(/\r\n/g, `
3839
- `).match(Ql) ?? [], r = te(t);
3839
+ `).match(tc) ?? [], r = ne(t);
3840
3840
  return n !== void 0 && r !== null ? { code: n, language: r } : null;
3841
- }, nc = (e) => {
3841
+ }, ac = (e) => {
3842
3842
  const t = e.trim();
3843
- return !t || /\s/.test(t) || t.includes("<") || t.includes(">") || /^[a-z][a-z0-9+.-]*:/i.test(t) && !/^https?:\/\//i.test(t) || Jl.test(t) ? !1 : Gl.test(t) || Xl.test(t) || Yl.test(t);
3844
- }, Zn = (e, {
3843
+ return !t || /\s/.test(t) || t.includes("<") || t.includes(">") || /^[a-z][a-z0-9+.-]*:/i.test(t) && !/^https?:\/\//i.test(t) || ec.test(t) ? !1 : Jl.test(t) || Ql.test(t) || Zl.test(t);
3844
+ }, tr = (e, {
3845
3845
  isReadonly: t,
3846
3846
  executeCommand: n
3847
- }) => t() || !nc(e.text) ? !1 : (n({
3847
+ }) => t() || !ac(e.text) ? !1 : (n({
3848
3848
  type: "link.set",
3849
3849
  href: e.text.trim()
3850
3850
  }), !0), et = (e, {
@@ -3853,86 +3853,86 @@ const qn = {
3853
3853
  uploadMediaFile: r
3854
3854
  }) => {
3855
3855
  if (t() || !n()) return !1;
3856
- const o = Qn(e.files);
3856
+ const o = er(e.files);
3857
3857
  return o.length === 0 ? !1 : (o.forEach(({ type: a, file: s }) => {
3858
3858
  r(a, s);
3859
3859
  }), !0);
3860
- }, rc = (e, t) => {
3860
+ }, sc = (e, t) => {
3861
3861
  const r = new DOMParser().parseFromString(t, "text/html");
3862
- Qa(r.body);
3863
- const o = un(e, r);
3864
- return Za(o, r.body), o;
3865
- }, oc = (e, t) => {
3866
- const n = rc(e, t);
3862
+ ts(r.body);
3863
+ const o = gn(e, r);
3864
+ return ns(o, r.body), o;
3865
+ }, ic = (e, t) => {
3866
+ const n = sc(e, t);
3867
3867
  if (n.length === 0) return !1;
3868
- if (R() || H().selectEnd(), n.some(G)) {
3868
+ if (I() || H().selectEnd(), n.some(X)) {
3869
3869
  n.forEach((o) => {
3870
- mn(o);
3870
+ hn(o);
3871
3871
  });
3872
3872
  const r = n[n.length - 1];
3873
- return r && G(r) && W([F()]), !0;
3873
+ return r && X(r) && W([F()]), !0;
3874
3874
  }
3875
3875
  return W(n), !0;
3876
- }, ac = (e, {
3876
+ }, lc = (e, {
3877
3877
  editor: t,
3878
3878
  isReadonly: n
3879
3879
  }) => {
3880
3880
  if (n()) return !1;
3881
- if (!e.html.trim()) return ic(e, { editor: t, isReadonly: n });
3882
- const r = Kl(e.html);
3881
+ if (!e.html.trim()) return dc(e, { editor: t, isReadonly: n });
3882
+ const r = Yl(e.html);
3883
3883
  return r.trim() ? (t.update(() => {
3884
- oc(t, r);
3884
+ ic(t, r);
3885
3885
  }), !0) : !1;
3886
- }, sc = (e, {
3886
+ }, cc = (e, {
3887
3887
  editor: t,
3888
3888
  isReadonly: n
3889
3889
  }) => {
3890
3890
  if (n() || e.html.trim() || !e.text.trim()) return !1;
3891
- const r = tc(e.text);
3891
+ const r = oc(e.text);
3892
3892
  return r ? (t.update(() => {
3893
- const o = Ln(r.language || void 0), a = F();
3894
- R() || H().selectEnd(), o.append(Re(r.code)), mn(o), W([a]), a.selectStart();
3893
+ const o = Nn(r.language || void 0), a = F();
3894
+ I() || H().selectEnd(), o.append(Re(r.code)), hn(o), W([a]), a.selectStart();
3895
3895
  }), !0) : !1;
3896
- }, ic = (e, {
3896
+ }, dc = (e, {
3897
3897
  editor: t,
3898
3898
  isReadonly: n
3899
3899
  }) => n() || e.html.trim() || !e.text ? !1 : (t.update(() => {
3900
- R() || H().selectEnd(), W([Re(e.text)]);
3901
- }), !0), er = (e, t) => sc(e, t) || ac(e, t), ee = (e) => {
3900
+ I() || H().selectEnd(), W([Re(e.text)]);
3901
+ }), !0), nr = (e, t) => cc(e, t) || lc(e, t), te = (e) => {
3902
3902
  e.preventDefault(), e.stopImmediatePropagation();
3903
- }, lc = (e, t) => et(e, t) || Zn(e, t) || er(e, t), cc = (e) => {
3903
+ }, uc = (e, t) => et(e, t) || tr(e, t) || nr(e, t), mc = (e) => {
3904
3904
  const t = (n) => {
3905
- n.defaultPrevented || Zn(De(n.clipboardData), e) && ee(n);
3905
+ n.defaultPrevented || tr(De(n.clipboardData), e) && te(n);
3906
3906
  };
3907
3907
  return e.target.addEventListener("paste", t, { capture: !0 }), () => {
3908
3908
  e.target.removeEventListener("paste", t, { capture: !0 });
3909
3909
  };
3910
- }, dc = (e) => {
3910
+ }, gc = (e) => {
3911
3911
  const t = (o) => {
3912
- o.defaultPrevented || et(De(o.clipboardData), e) && ee(o);
3912
+ o.defaultPrevented || et(De(o.clipboardData), e) && te(o);
3913
3913
  }, n = (o) => {
3914
3914
  var s;
3915
3915
  if (e.isReadonly() || !e.canUploadMedia()) return;
3916
3916
  const a = (s = o.dataTransfer) != null && s.files ? [...o.dataTransfer.files] : [];
3917
- Qn(a).length !== 0 && (o.preventDefault(), o.dataTransfer && (o.dataTransfer.dropEffect = "copy"));
3917
+ er(a).length !== 0 && (o.preventDefault(), o.dataTransfer && (o.dataTransfer.dropEffect = "copy"));
3918
3918
  }, r = (o) => {
3919
3919
  var s;
3920
3920
  const a = {
3921
3921
  files: (s = o.dataTransfer) != null && s.files ? [...o.dataTransfer.files] : []
3922
3922
  };
3923
- et(a, e) && ee(o);
3923
+ et(a, e) && te(o);
3924
3924
  };
3925
3925
  return e.target.addEventListener("paste", t, { capture: !0 }), e.target.addEventListener("dragover", n), e.target.addEventListener("drop", r), () => {
3926
3926
  e.target.removeEventListener("paste", t, { capture: !0 }), e.target.removeEventListener("dragover", n), e.target.removeEventListener("drop", r);
3927
3927
  };
3928
- }, uc = (e) => {
3928
+ }, hc = (e) => {
3929
3929
  const t = (n) => {
3930
- n.defaultPrevented || !er(De(n.clipboardData), e) || ee(n);
3930
+ n.defaultPrevented || !nr(De(n.clipboardData), e) || te(n);
3931
3931
  };
3932
3932
  return e.target.addEventListener("paste", t, { capture: !0 }), () => {
3933
3933
  e.target.removeEventListener("paste", t, { capture: !0 });
3934
3934
  };
3935
- }, mc = ({
3935
+ }, pc = ({
3936
3936
  target: e,
3937
3937
  isReadonly: t,
3938
3938
  onPaste: n,
@@ -3941,7 +3941,7 @@ const qn = {
3941
3941
  executeCommand: a,
3942
3942
  editor: s
3943
3943
  }) => {
3944
- const l = (c, h) => lc({
3944
+ const l = (c, h) => uc({
3945
3945
  text: h.text ?? c.text,
3946
3946
  html: h.html ?? c.html,
3947
3947
  files: c.files
@@ -3956,24 +3956,53 @@ const qn = {
3956
3956
  const h = De(c.clipboardData), y = n({
3957
3957
  text: h.text,
3958
3958
  html: h.html,
3959
- files: h.files.map(ec)
3959
+ files: h.files.map(rc)
3960
3960
  });
3961
3961
  if (y instanceof Promise) {
3962
- ee(c), y.then((w) => {
3962
+ te(c), y.then((w) => {
3963
3963
  w !== !0 && w && l(h, w);
3964
3964
  });
3965
3965
  return;
3966
3966
  }
3967
3967
  if (y === !0) {
3968
- ee(c);
3968
+ te(c);
3969
3969
  return;
3970
3970
  }
3971
- y && (ee(c), l(h, y));
3971
+ y && (te(c), l(h, y));
3972
3972
  };
3973
3973
  return e.addEventListener("paste", d, { capture: !0 }), () => {
3974
3974
  e.removeEventListener("paste", d, { capture: !0 });
3975
3975
  };
3976
- }, gc = [
3976
+ }, fc = (e) => e.getKey() === "root" ? null : e.getTopLevelElement(), bc = (e, t, n) => {
3977
+ const r = e.getLastDescendant();
3978
+ return ie(t) ? t === e && n === e.getChildrenSize() : r ? t === r && n === t.getTextContentSize() : !0;
3979
+ }, yc = (e) => {
3980
+ const t = e.getLastChild();
3981
+ return ln(t);
3982
+ }, vc = (e) => {
3983
+ const t = F(), n = e.getLastChild();
3984
+ ln(n) && n.remove(), e.insertAfter(t), t.selectStart();
3985
+ }, wc = (e, t) => {
3986
+ const n = () => {
3987
+ if (t()) return !1;
3988
+ const r = I();
3989
+ if (!D(r) || !r.isCollapsed()) return !1;
3990
+ const o = r.anchor, a = o.getNode(), s = fc(a);
3991
+ return !cn(s) || !bc(s, a, o.offset) ? !1 : yc(s) ? (vc(s), !0) : (r.insertLineBreak(), !0);
3992
+ };
3993
+ return [
3994
+ e.registerCommand(
3995
+ kr,
3996
+ n,
3997
+ G
3998
+ ),
3999
+ e.registerCommand(
4000
+ Er,
4001
+ (r) => r ? !1 : n(),
4002
+ G
4003
+ )
4004
+ ];
4005
+ }, Cc = [
3977
4006
  "paragraph",
3978
4007
  "heading-1",
3979
4008
  "heading-2",
@@ -3987,18 +4016,18 @@ const qn = {
3987
4016
  "upload-image",
3988
4017
  "upload-video",
3989
4018
  "table"
3990
- ], hc = {
4019
+ ], _c = {
3991
4020
  showIcon: !0,
3992
4021
  loadingText: "加载中",
3993
4022
  emptyText: "没有匹配的命令",
3994
4023
  errorText: "命令加载失败"
3995
- }, pc = (e) => ({
3996
- ...hc,
4024
+ }, kc = (e) => ({
4025
+ ..._c,
3997
4026
  ...e
3998
- }), fc = (e) => e.flatMap((t) => t.type === "button" ? [t.item] : t.type === "group" ? t.items : []), bc = (e) => ({
4027
+ }), Ec = (e) => e.flatMap((t) => t.type === "button" ? [t.item] : t.type === "group" ? t.items : []), xc = (e) => ({
3999
4028
  ...e,
4000
- toolbarKeys: (e == null ? void 0 : e.toolbarKeys) ?? gc
4001
- }), yc = (e) => ({
4029
+ toolbarKeys: (e == null ? void 0 : e.toolbarKeys) ?? Cc
4030
+ }), Mc = (e) => ({
4002
4031
  id: e.id,
4003
4032
  label: e.label,
4004
4033
  command: e.command,
@@ -4006,24 +4035,24 @@ const qn = {
4006
4035
  requiresPayload: e.requiresPayload,
4007
4036
  payloadPanel: e.payloadPanel,
4008
4037
  source: "schema"
4009
- }), vc = (e, t) => fc(nt(
4010
- bc(t),
4038
+ }), Tc = (e, t) => Ec(nt(
4039
+ xc(t),
4011
4040
  e
4012
- )).map(yc), tr = (e) => ({
4041
+ )).map(Mc), rr = (e) => ({
4013
4042
  ...e,
4014
4043
  source: "provider"
4015
- }), wc = /(?:^|\s)\/([\p{L}\p{N}_-]*)$/u, Cc = (e) => e.trim().toLowerCase(), _c = (e) => [e.label, e.id, e.description, ...e.keywords ?? []].filter(Boolean).join(" ").toLowerCase(), kc = (e, t) => {
4016
- const n = Cc(t);
4017
- return n ? e.filter((r) => _c(r).includes(n)) : e;
4018
- }, Ec = async (e, t) => (await Promise.resolve((t == null ? void 0 : t(e)) ?? [])).map(tr), xc = (e) => "source" in e ? e : tr(e), Mc = ({
4044
+ }), Lc = /(?:^|\s)\/([\p{L}\p{N}_-]*)$/u, Sc = (e) => e.trim().toLowerCase(), Nc = (e) => [e.label, e.id, e.description, ...e.keywords ?? []].filter(Boolean).join(" ").toLowerCase(), Pc = (e, t) => {
4045
+ const n = Sc(t);
4046
+ return n ? e.filter((r) => Nc(r).includes(n)) : e;
4047
+ }, Ic = async (e, t) => (await Promise.resolve((t == null ? void 0 : t(e)) ?? [])).map(rr), Rc = (e) => "source" in e ? e : rr(e), Ac = ({
4019
4048
  menuSchema: e,
4020
4049
  slashCommandConfig: t
4021
- }) => e !== void 0 || t !== void 0, Tc = () => {
4022
- const e = R();
4050
+ }) => e !== void 0 || t !== void 0, Bc = () => {
4051
+ const e = I();
4023
4052
  if (!D(e) || !e.isCollapsed()) return null;
4024
4053
  const t = e.anchor, n = t.getNode();
4025
- if (!(n instanceof X)) return null;
4026
- const o = n.getTextContent().slice(0, t.offset).match(wc);
4054
+ if (!(n instanceof Y)) return null;
4055
+ const o = n.getTextContent().slice(0, t.offset).match(Lc);
4027
4056
  if (!o) return null;
4028
4057
  const a = o[1] ?? "", s = o[0] ?? "", l = s.startsWith("/") ? 0 : 1, d = t.offset - s.length + l;
4029
4058
  return {
@@ -4032,33 +4061,33 @@ const qn = {
4032
4061
  startOffset: d,
4033
4062
  endOffset: t.offset
4034
4063
  };
4035
- }, Lc = () => {
4064
+ }, Dc = () => {
4036
4065
  const e = document.createElement("div");
4037
4066
  return e.className = "bridgerte__floating-menu bridgerte__slash-command-menu", e.dataset.visible = "false", e;
4038
- }, Nc = () => {
4067
+ }, Oc = () => {
4039
4068
  const e = document.createElement("span");
4040
4069
  return e.className = "bridgerte__slash-command-anchor", e.setAttribute("aria-hidden", "true"), e;
4041
- }, Kt = (e, t) => {
4070
+ }, qt = (e, t) => {
4042
4071
  var s;
4043
4072
  const n = e.getElementByKey(t.nodeKey), r = lt(n, t.startOffset + 1);
4044
4073
  if (!(r instanceof Text)) return null;
4045
4074
  const o = document.createRange(), a = Math.min(t.startOffset + 1, ((s = r.textContent) == null ? void 0 : s.length) ?? 0);
4046
4075
  return a <= t.startOffset ? null : (o.setStart(r, t.startOffset), o.setEnd(r, a), o.getBoundingClientRect());
4047
- }, Sc = (e, t, n, r, o) => {
4076
+ }, Hc = (e, t, n, r, o) => {
4048
4077
  const a = document.createElement("button"), s = document.createElement("span");
4049
4078
  if (a.type = "button", a.className = "bridgerte__menu-item bridgerte__slash-command-item", a.dataset.commandId = e.id, a.dataset.index = String(t), a.dataset.active = String(n), r.showIcon && e.icon) {
4050
4079
  const l = document.createElement("span");
4051
- l.className = "bridgerte__slash-command-item-icon", l.setAttribute("aria-hidden", "true"), Kn(l, o[e.icon] ?? qn[e.icon], e.label), a.append(l);
4080
+ l.className = "bridgerte__slash-command-item-icon", l.setAttribute("aria-hidden", "true"), Xn(l, o[e.icon] ?? Gn[e.icon], e.label), a.append(l);
4052
4081
  }
4053
4082
  if (s.className = "bridgerte__slash-command-item-title", s.textContent = e.label, a.append(s), e.description) {
4054
4083
  const l = document.createElement("span");
4055
4084
  l.className = "bridgerte__slash-command-item-description", l.textContent = e.description, a.append(l);
4056
4085
  }
4057
4086
  return a;
4058
- }, Pc = (e, t) => {
4087
+ }, $c = (e, t) => {
4059
4088
  const n = document.createElement("div");
4060
4089
  return n.className = "bridgerte__slash-command-status", n.dataset.status = e, n.textContent = t, n;
4061
- }, Ic = (e, t) => {
4090
+ }, Fc = (e, t) => {
4062
4091
  switch (e) {
4063
4092
  case "loading":
4064
4093
  return t.loadingText;
@@ -4072,7 +4101,7 @@ const qn = {
4072
4101
  y: e.y,
4073
4102
  width: e.width,
4074
4103
  height: e.height
4075
- } : void 0, Rc = ({
4104
+ } : void 0, zc = ({
4076
4105
  editorRoot: e,
4077
4106
  contentElement: t,
4078
4107
  editor: n,
@@ -4088,19 +4117,19 @@ const qn = {
4088
4117
  onSlashCommandMenuRequest: w,
4089
4118
  slashCommandProvider: T
4090
4119
  }) => {
4091
- const b = Lc(), v = Nc(), x = pc(y), m = it(s ?? Ae, {
4120
+ const b = Dc(), v = Oc(), x = kc(y), m = it(s ?? Ae, {
4092
4121
  menuLabels: c,
4093
4122
  payloadPanelConfig: h
4094
- }), p = vc(m, l), k = new Map(m.map((i) => [i.id, i])), _ = Mc({
4123
+ }), p = Tc(m, l), k = new Map(m.map((i) => [i.id, i])), _ = Ac({
4095
4124
  menuSchema: s,
4096
4125
  slashCommandConfig: l
4097
4126
  }), P = (i) => {
4098
4127
  n.update(() => {
4099
4128
  const u = he(i.nodeKey);
4100
- u instanceof X && (u.spliceText(i.startOffset, i.endOffset - i.startOffset, ""), u.select(i.startOffset, i.startOffset));
4129
+ u instanceof Y && (u.spliceText(i.startOffset, i.endOffset - i.startOffset, ""), u.select(i.startOffset, i.startOffset));
4101
4130
  });
4102
4131
  };
4103
- return Gn({
4132
+ return Yn({
4104
4133
  editorRoot: e,
4105
4134
  contentElement: t,
4106
4135
  editor: n,
@@ -4108,28 +4137,28 @@ const qn = {
4108
4137
  menu: b,
4109
4138
  anchor: v,
4110
4139
  itemSelector: ".bridgerte__slash-command-item",
4111
- getCurrentTrigger: Tc,
4112
- getTriggerRect: (i) => Kt(n, i),
4140
+ getCurrentTrigger: Bc,
4141
+ getTriggerRect: (i) => qt(n, i),
4113
4142
  resolveItems: async (i) => {
4114
- const u = _ || !T ? kc(p, i) : [];
4143
+ const u = _ || !T ? Pc(p, i) : [];
4115
4144
  try {
4116
- const g = await Ec(i, T);
4145
+ const g = await Ic(i, T);
4117
4146
  return [...u, ...g];
4118
4147
  } catch (g) {
4119
4148
  if (u.length > 0) return u;
4120
4149
  throw g;
4121
4150
  }
4122
4151
  },
4123
- renderItem: (i, u, g) => Sc(
4152
+ renderItem: (i, u, g) => Hc(
4124
4153
  i,
4125
4154
  u,
4126
4155
  g,
4127
4156
  x,
4128
4157
  d
4129
4158
  ),
4130
- renderStatus: (i) => Pc(
4159
+ renderStatus: (i) => $c(
4131
4160
  i,
4132
- Ic(i, x)
4161
+ Fc(i, x)
4133
4162
  ),
4134
4163
  onStateChange: w ? (i, u) => w({
4135
4164
  id: `bridgerte-slash-command-menu-${i.requestId}`,
@@ -4140,14 +4169,14 @@ const qn = {
4140
4169
  readonly: r(),
4141
4170
  anchorRect: Gt(u.anchorRect),
4142
4171
  ...i.error ? { error: i.error } : {},
4143
- submit: (g) => u.selectItem(xc(g)),
4172
+ submit: (g) => u.selectItem(Rc(g)),
4144
4173
  cancel: u.close
4145
4174
  }) : void 0,
4146
4175
  onSelect: (i, u) => {
4147
4176
  P(u);
4148
4177
  const g = i.source === "schema" ? k.get(i.id) : void 0;
4149
4178
  if (g != null && g.payloadPanel) {
4150
- const f = Kt(n, u);
4179
+ const f = qt(n, u);
4151
4180
  a({
4152
4181
  menuId: g.id,
4153
4182
  command: g.command,
@@ -4162,12 +4191,12 @@ const qn = {
4162
4191
  }, Xt = 32, We = (e) => {
4163
4192
  var t;
4164
4193
  return e instanceof HTMLElement && e.getAttribute("role") === "checkbox" && ((t = e.parentElement) == null ? void 0 : t.classList.contains("bridgerte__list--todo")) === !0;
4165
- }, Ve = (e) => e instanceof HTMLElement ? e.closest('[role="checkbox"]') : null, Ac = (e) => Cr(e), Yt = (e) => e.button === 0, Ue = (e, t) => {
4194
+ }, Ve = (e) => e instanceof HTMLElement ? e.closest('[role="checkbox"]') : null, Wc = (e) => xr(e), Yt = (e) => e.button === 0, Ue = (e, t) => {
4166
4195
  const n = t.getBoundingClientRect();
4167
4196
  return t.dir === "rtl" ? e.clientX >= n.right - Xt && e.clientX <= n.right : e.clientX >= n.left && e.clientX <= n.left + Xt;
4168
4197
  }, Jt = (e) => {
4169
4198
  e.preventDefault(), e.stopPropagation(), e.stopImmediatePropagation();
4170
- }, Bc = ({
4199
+ }, Vc = ({
4171
4200
  contentElement: e,
4172
4201
  editor: t,
4173
4202
  isReadonly: n
@@ -4179,8 +4208,8 @@ const qn = {
4179
4208
  !c || !We(c) || Ue(d, c) && Jt(d);
4180
4209
  }, a = (d, c) => {
4181
4210
  Jt(d), t.update(() => {
4182
- const h = Ac(c);
4183
- zr(h) && h.toggleChecked();
4211
+ const h = Wc(c);
4212
+ Ur(h) && h.toggleChecked();
4184
4213
  });
4185
4214
  }, s = (d) => {
4186
4215
  if (n() || !Yt(d) || Date.now() - r < 700) return;
@@ -4197,7 +4226,7 @@ const qn = {
4197
4226
  }, je = (e, t) => {
4198
4227
  var n;
4199
4228
  return ((n = e.floatingMenus) == null ? void 0 : n[t]) !== !1;
4200
- }, Dc = ({
4229
+ }, Uc = ({
4201
4230
  options: e,
4202
4231
  lexicalEditor: t,
4203
4232
  editorRoot: n,
@@ -4220,7 +4249,7 @@ const qn = {
4220
4249
  * 业务自定义 paste hook 最先看到原始剪贴板摘要;返回 undefined 时完全不拦截,
4221
4250
  * 继续走 BridgeRTE 内置媒体、URL 和 HTML 清洗链路。
4222
4251
  */
4223
- mc({
4252
+ pc({
4224
4253
  target: r,
4225
4254
  isReadonly: a,
4226
4255
  onPaste: e.onPaste,
@@ -4233,7 +4262,7 @@ const qn = {
4233
4262
  * 媒体文件粘贴/拖拽优先于 URL 粘贴快速路径;剪贴板里有文件时直接进入上传管线,
4234
4263
  * 没有文件再交给纯文本 URL 链接处理或 Lexical 默认粘贴。
4235
4264
  */
4236
- dc({
4265
+ gc({
4237
4266
  target: r,
4238
4267
  isReadonly: a,
4239
4268
  canUploadMedia: c,
@@ -4243,7 +4272,7 @@ const qn = {
4243
4272
  * URL 粘贴是 BridgeRTE 的高意图快捷路径,必须先于 Lexical 默认 paste 监听注册。
4244
4273
  * 否则 Lexical 会先把 URL 当普通文本插入,后续就失去“选区变链接”的语义。
4245
4274
  */
4246
- cc({
4275
+ mc({
4247
4276
  target: r,
4248
4277
  isReadonly: a,
4249
4278
  executeCommand: s
@@ -4252,31 +4281,32 @@ const qn = {
4252
4281
  * HTML 清洗放在媒体和纯文本 URL 之后、Lexical 默认 rich text paste 之前。
4253
4282
  * 这样外部网页/办公软件片段会先进入 BridgeRTE 白名单清洗,再转成 Lexical 节点。
4254
4283
  */
4255
- uc({
4284
+ hc({
4256
4285
  target: r,
4257
4286
  editor: t,
4258
4287
  isReadonly: a
4259
4288
  }),
4260
- Hi({
4289
+ zi({
4261
4290
  target: r,
4262
4291
  isReadonly: a
4263
4292
  }),
4264
- Sr(t),
4293
+ Rr(t),
4265
4294
  /*
4266
4295
  * 代码块高亮一刀切使用 Lexical 官方 Shiki 管线。BridgeRTE tokenizer 只保留稳定 class,
4267
4296
  * 不把 Shiki theme 的 inline style 写进内容 HTML。
4268
4297
  */
4269
- ko(t, ns),
4270
- co(t, o, Oa),
4271
- Wr(t),
4272
- Vr(t),
4273
- ...Wo(t, a),
4274
- Bc({
4298
+ Mo(t, as),
4299
+ go(t, o, Fa),
4300
+ jr(t),
4301
+ Kr(t),
4302
+ ...wc(t, a),
4303
+ ...jo(t, a),
4304
+ Vc({
4275
4305
  contentElement: r,
4276
4306
  editor: t,
4277
4307
  isReadonly: a
4278
4308
  }),
4279
- x ? _l({
4309
+ x ? xl({
4280
4310
  editorRoot: n,
4281
4311
  contentElement: r,
4282
4312
  editor: t,
@@ -4287,7 +4317,7 @@ const qn = {
4287
4317
  onMentionMenuRequest: e.onMentionMenuRequest
4288
4318
  }) : () => {
4289
4319
  },
4290
- p ? Ki({
4320
+ p ? Yi({
4291
4321
  editorRoot: n,
4292
4322
  contentElement: r,
4293
4323
  editor: t,
@@ -4302,9 +4332,9 @@ const qn = {
4302
4332
  payloadPanelConfig: e.payloadPanelConfig
4303
4333
  }) : () => {
4304
4334
  },
4305
- eo(t),
4306
- Ri({ editor: t }),
4307
- m ? Rc({
4335
+ ro(t),
4336
+ Di({ editor: t }),
4337
+ m ? zc({
4308
4338
  editorRoot: n,
4309
4339
  contentElement: r,
4310
4340
  editor: t,
@@ -4321,12 +4351,12 @@ const qn = {
4321
4351
  slashCommandProvider: e.slashCommandProvider
4322
4352
  }) : () => {
4323
4353
  },
4324
- Xo({
4354
+ Qo({
4325
4355
  editor: t,
4326
4356
  contentElement: r,
4327
4357
  isReadonly: a
4328
4358
  }),
4329
- v ? Zi({
4359
+ v ? nl({
4330
4360
  target: r,
4331
4361
  isReadonly: a,
4332
4362
  executeCommand: s
@@ -4341,12 +4371,12 @@ const qn = {
4341
4371
  j
4342
4372
  ),
4343
4373
  t.registerCommand(
4344
- _r,
4374
+ Mr,
4345
4375
  (_) => (T(_), !1),
4346
4376
  j
4347
4377
  ),
4348
4378
  t.registerCommand(
4349
- kr,
4379
+ Tr,
4350
4380
  (_) => (b(_), !1),
4351
4381
  j
4352
4382
  )
@@ -4357,39 +4387,39 @@ const qn = {
4357
4387
  }
4358
4388
  };
4359
4389
  };
4360
- function Oc(e, t = {}) {
4361
- const n = uo(), r = t.mediaDefaultWidthPercent ?? 50, { contentElement: o } = Li(e, {
4362
- placeholder: t.placeholder ?? qo
4390
+ function jc(e, t = {}) {
4391
+ const n = ho(), r = t.mediaDefaultWidthPercent ?? 50, { contentElement: o } = Pi(e, {
4392
+ placeholder: t.placeholder ?? Xo
4363
4393
  }), a = t.keyboardShortcuts === !0;
4364
4394
  let s = t.readonly ?? !1, l = !1, d = Ge(t.value);
4365
- const c = Er({
4366
- namespace: Ha,
4395
+ const c = Lr({
4396
+ namespace: za,
4367
4397
  editable: !s,
4368
4398
  nodes: [
4369
- Pr,
4370
- Ir,
4371
- ln,
4372
- Dr,
4373
- cn,
4374
- Ur,
4375
- qe,
4376
- to,
4377
- no,
4378
- io,
4379
- lo,
4399
+ Ar,
4400
+ Br,
4401
+ dn,
4402
+ $r,
4403
+ un,
4404
+ qr,
4405
+ Ke,
4406
+ oo,
4407
+ ao,
4408
+ uo,
4409
+ mo,
4380
4410
  pe,
4381
- ie,
4411
+ le,
4382
4412
  ye
4383
4413
  ],
4384
- theme: ka,
4414
+ theme: Ma,
4385
4415
  onError: (i) => {
4386
- q(t, "lexical.runtime", "Lexical runtime error.", i);
4416
+ K(t, "lexical.runtime", "Lexical runtime error.", i);
4387
4417
  }
4388
4418
  });
4389
- ro(c, !0);
4419
+ so(c, !0);
4390
4420
  const h = () => l, y = () => s, w = () => {
4391
- h() || Go({ editor: c, contentElement: o });
4392
- }, T = Ni({ editor: c }), b = $a({
4421
+ h() || Jo({ editor: c, contentElement: o });
4422
+ }, T = Ii({ editor: c }), b = Wa({
4393
4423
  lexicalEditor: c,
4394
4424
  options: t,
4395
4425
  isDestroyed: h,
@@ -4397,22 +4427,22 @@ function Oc(e, t = {}) {
4397
4427
  d = i;
4398
4428
  },
4399
4429
  syncPlaceholder: w
4400
- }), v = ga({
4430
+ }), v = fa({
4401
4431
  lexicalEditor: c,
4402
4432
  options: t,
4403
4433
  isDestroyed: h,
4404
4434
  canUploadMedia: () => t.uploadAdapter !== void 0,
4405
4435
  isReadonly: y
4406
- }), x = Da({
4436
+ }), x = $a({
4407
4437
  container: e,
4408
4438
  lexicalEditor: c,
4409
4439
  options: t,
4410
4440
  isDestroyed: h,
4411
4441
  isReadonly: y,
4412
- reportError: q
4442
+ reportError: K
4413
4443
  }), m = () => {
4414
4444
  o.contentEditable = String(!s), c.setEditable(!s);
4415
- }, k = Ti({
4445
+ }, k = Ni({
4416
4446
  editorRoot: e,
4417
4447
  lexicalEditor: c,
4418
4448
  isReadonly: y,
@@ -4438,14 +4468,14 @@ function Oc(e, t = {}) {
4438
4468
  menuLabels: t.menuLabels,
4439
4469
  onRequest: t.onPayloadPanelRequest,
4440
4470
  defaultMediaWidthPercent: r
4441
- }), _ = () => da(t), P = () => ua(t), I = (i) => {
4471
+ }), _ = () => ga(t), P = () => ha(t), R = (i) => {
4442
4472
  h() || (T.capture(), k.payloadPanelController.open(i));
4443
4473
  };
4444
4474
  e.dataset.readonly = String(s), e.addEventListener("focusin", _), e.addEventListener("focusout", P), e.style.setProperty(
4445
4475
  "--bridgerte-media-display-width",
4446
4476
  `${r}%`
4447
4477
  );
4448
- const L = Dc({
4478
+ const L = Uc({
4449
4479
  options: t,
4450
4480
  lexicalEditor: c,
4451
4481
  editorRoot: e,
@@ -4453,7 +4483,7 @@ function Oc(e, t = {}) {
4453
4483
  historyState: n,
4454
4484
  isReadonly: y,
4455
4485
  executeCommand: x,
4456
- requestPayloadPanel: I,
4486
+ requestPayloadPanel: R,
4457
4487
  uploadMediaFile: x.uploadMediaFile,
4458
4488
  canUploadMedia: () => t.uploadAdapter !== void 0,
4459
4489
  syncAfterEditorUpdate: b.syncAfterEditorUpdate,
@@ -4463,18 +4493,18 @@ function Oc(e, t = {}) {
4463
4493
  setCanRedo: v.setCanRedo,
4464
4494
  enableKeyboardShortcuts: a
4465
4495
  });
4466
- c.setRootElement(o), b.suppressNextChange(), d = Ao(c, t.value), m();
4496
+ c.setRootElement(o), b.suppressNextChange(), d = Oo(c, t.value), m();
4467
4497
  const C = {
4468
4498
  getContent() {
4469
4499
  return h() || (b.clearContentChangeTimer(), b.syncContent(!1)), d;
4470
4500
  },
4471
4501
  setContent(i) {
4472
- h() || (b.clearContentChangeTimer(), d = Ge(i), b.suppressNextChange(), En(c, d), b.enforceCurrentMaxLength(), w(), c.dispatchCommand(xr, void 0), v.setHistoryAvailability(!1, !1), b.syncContent(!0));
4502
+ h() || (b.clearContentChangeTimer(), d = Ge(i), b.suppressNextChange(), Mn(c, d), b.enforceCurrentMaxLength(), w(), c.dispatchCommand(Sr, void 0), v.setHistoryAvailability(!1, !1), b.syncContent(!0));
4473
4503
  },
4474
4504
  executeCommand(i) {
4475
4505
  x(i);
4476
4506
  },
4477
- requestPayloadPanel: I,
4507
+ requestPayloadPanel: R,
4478
4508
  getCommandStates: v.getCommandStates,
4479
4509
  subscribeCommandStateChange: v.subscribeCommandStateChange,
4480
4510
  setReadonly(i) {
@@ -4490,17 +4520,17 @@ function Oc(e, t = {}) {
4490
4520
  h() || (l = !0, b.clearContentChangeTimer(), k.destroy(), x.destroy(), v.destroy(), T.clear(), L.destroy(), c.setRootElement(null), e.removeEventListener("focusin", _), e.removeEventListener("focusout", P), e.classList.remove("bridgerte"), e.textContent = "", delete e.dataset.readonly);
4491
4521
  }
4492
4522
  };
4493
- return b.syncContent(!1), w(), v.refreshCommandStates(), ma(t, C), C;
4523
+ return b.syncContent(!1), w(), v.refreshCommandStates(), pa(t, C), C;
4494
4524
  }
4495
- const Hc = (e) => !ar(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.type === "editor.executeCommand" || e.type === "editor.setContent" || e.type === "editor.setReadonly" || e.type === "editor.requestContent" || e.type === "editor.payloadPanelResolved" || e.type === "editor.payloadPanelCanceled" || e.type === "editor.uploadResolved" || e.type === "editor.uploadRejected", $c = (e) => ({
4525
+ const Kc = (e) => !ir(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.type === "editor.executeCommand" || e.type === "editor.setContent" || e.type === "editor.setReadonly" || e.type === "editor.requestContent" || e.type === "editor.payloadPanelResolved" || e.type === "editor.payloadPanelCanceled" || e.type === "editor.uploadResolved" || e.type === "editor.uploadRejected", qc = (e) => ({
4496
4526
  id: e,
4497
4527
  type: "editor.ready",
4498
4528
  payload: {
4499
4529
  menuSchema: Ae,
4500
- eventTiming: ir,
4530
+ eventTiming: cr,
4501
4531
  version: Ie
4502
4532
  }
4503
- }), Fc = (e) => `native-upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`, od = ({
4533
+ }), Gc = (e) => `native-upload:${e}:${Date.now()}:${Math.random().toString(36).slice(2)}`, md = ({
4504
4534
  container: e,
4505
4535
  transport: t
4506
4536
  }) => {
@@ -4518,7 +4548,7 @@ const Hc = (e) => !ar(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.ty
4518
4548
  type: "editor.heightChange",
4519
4549
  payload: { height: C }
4520
4550
  }));
4521
- }, sr);
4551
+ }, lr);
4522
4552
  }, T = (C) => {
4523
4553
  if (!n) return;
4524
4554
  const i = n.getContent();
@@ -4580,7 +4610,7 @@ const Hc = (e) => !ar(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.ty
4580
4610
  }
4581
4611
  });
4582
4612
  }), m = (C) => {
4583
- const i = Fc(C);
4613
+ const i = Gc(C);
4584
4614
  d.set(i, {
4585
4615
  type: C,
4586
4616
  assetId: i,
@@ -4600,7 +4630,7 @@ const Hc = (e) => !ar(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.ty
4600
4630
  const i = c.get(C.payload.requestId);
4601
4631
  i && (c.delete(C.payload.requestId), i.request.cancel());
4602
4632
  }, _ = (C, i) => {
4603
- n == null || n.destroy(), o == null || o(), d.clear(), c.clear(), n = Oc(e, {
4633
+ n == null || n.destroy(), o == null || o(), d.clear(), c.clear(), n = jc(e, {
4604
4634
  ...i,
4605
4635
  uploadAdapter: {
4606
4636
  uploadImage(u, g) {
@@ -4645,7 +4675,7 @@ const Hc = (e) => !ar(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.ty
4645
4675
  type: "editor.commandStateChange",
4646
4676
  payload: u
4647
4677
  });
4648
- }), h($c(C)), w();
4678
+ }), h(qc(C)), w();
4649
4679
  }, P = (C) => {
4650
4680
  if (C.type === "media.pickImage") {
4651
4681
  m("image");
@@ -4656,8 +4686,8 @@ const Hc = (e) => !ar(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.ty
4656
4686
  return;
4657
4687
  }
4658
4688
  n == null || n.executeCommand(C);
4659
- }, I = (C) => {
4660
- if (!(r || !Hc(C)))
4689
+ }, R = (C) => {
4690
+ if (!(r || !Kc(C)))
4661
4691
  switch (C.type) {
4662
4692
  case "editor.init":
4663
4693
  _(C.id, C.payload);
@@ -4688,22 +4718,22 @@ const Hc = (e) => !ar(e) || !("id" in e) ? !1 : e.type === "editor.init" || e.ty
4688
4718
  return;
4689
4719
  }
4690
4720
  };
4691
- return a = ((L = t.addMessageListener) == null ? void 0 : L.call(t, I)) ?? null, {
4692
- receive: I,
4721
+ return a = ((L = t.addMessageListener) == null ? void 0 : L.call(t, R)) ?? null, {
4722
+ receive: R,
4693
4723
  destroy() {
4694
4724
  r || (r = !0, y(), a == null || a(), o == null || o(), d.clear(), c.clear(), n == null || n.destroy(), n = null);
4695
4725
  }
4696
4726
  };
4697
4727
  };
4698
4728
  export {
4699
- Oc as a,
4700
- od as b,
4701
- jn as c,
4702
- qn as d,
4703
- Kn as e,
4729
+ jc as a,
4730
+ md as b,
4731
+ qn as c,
4732
+ Gn as d,
4733
+ Xn as e,
4704
4734
  V as f,
4705
- _s as g,
4706
- Cs as h,
4735
+ xs as g,
4736
+ Es as h,
4707
4737
  it as r
4708
4738
  };
4709
- //# sourceMappingURL=index-IG7bnHAR.js.map
4739
+ //# sourceMappingURL=index-8kI8r7zm.js.map