@pstdio/ui 0.41.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/{MermaidComponent-BCiI63_G.js → MermaidComponent-D7vhkpka.js} +2 -2
  2. package/dist/{MermaidComponent-BCiI63_G.js.map → MermaidComponent-D7vhkpka.js.map} +1 -1
  3. package/dist/alert-MQ47wy7f.js +388 -0
  4. package/dist/alert-MQ47wy7f.js.map +1 -0
  5. package/dist/chat-ui.d.ts +36 -5
  6. package/dist/chat-ui.js +1777 -1422
  7. package/dist/chat-ui.js.map +1 -1
  8. package/dist/collection-view-fields-D3cysHNT.d.ts +232 -0
  9. package/dist/collection-view-grouping-D4nZk8-3.js +90 -0
  10. package/dist/collection-view-grouping-D4nZk8-3.js.map +1 -0
  11. package/dist/collection-view-search-CpjJy76w.js +1973 -0
  12. package/dist/collection-view-search-CpjJy76w.js.map +1 -0
  13. package/dist/collection-view.d.ts +4 -0
  14. package/dist/collection-view.js +2 -0
  15. package/dist/{data-table-stats-row-EiTEONdY.js → data-table-stats-row-64magT2g.js} +2 -2
  16. package/dist/{data-table-stats-row-EiTEONdY.js.map → data-table-stats-row-64magT2g.js.map} +1 -1
  17. package/dist/data-table.d.ts +3 -1
  18. package/dist/data-table.js +279 -277
  19. package/dist/data-table.js.map +1 -1
  20. package/dist/{diff-drawer-BwZBOObe.js → diff-drawer-IYpQ-QQK.js} +192 -191
  21. package/dist/diff-drawer-IYpQ-QQK.js.map +1 -0
  22. package/dist/{diff-viewer-kOOd7C7h.js → diff-viewer-C-0VAt9P.js} +4 -4
  23. package/dist/{diff-viewer-kOOd7C7h.js.map → diff-viewer-C-0VAt9P.js.map} +1 -1
  24. package/dist/diff.js +2 -2
  25. package/dist/{display-sort-control-DPxc0e5z.js → display-sort-control-f3rbILsV.js} +87 -86
  26. package/dist/{display-sort-control-DPxc0e5z.js.map → display-sort-control-f3rbILsV.js.map} +1 -1
  27. package/dist/drop-indicator-HjlBSIeV.js +27 -0
  28. package/dist/drop-indicator-HjlBSIeV.js.map +1 -0
  29. package/dist/edit-mode-data-table-DnMB2jiy.js +1449 -0
  30. package/dist/edit-mode-data-table-DnMB2jiy.js.map +1 -0
  31. package/dist/host-storage-BIo5azql.js +31 -0
  32. package/dist/host-storage-BIo5azql.js.map +1 -0
  33. package/dist/host-storage-J0089Hyk.d.ts +17 -0
  34. package/dist/icon-options-Tt6Wzhtv.js +308 -0
  35. package/dist/icon-options-Tt6Wzhtv.js.map +1 -0
  36. package/dist/{index-C9mywhyX.d.ts → index-B79hwNcB.d.ts} +17 -1
  37. package/dist/index-CKsd23jv.d.ts +80 -0
  38. package/dist/{index-D3UJyWWh.d.ts → index-ICoad2I_.d.ts} +4 -223
  39. package/dist/index.d.ts +22 -6
  40. package/dist/index.js +1174 -1112
  41. package/dist/index.js.map +1 -1
  42. package/dist/kanban-renderer.d.ts +2 -1
  43. package/dist/kanban-renderer.js +531 -528
  44. package/dist/kanban-renderer.js.map +1 -1
  45. package/dist/list-row-Z4SHkseA.js +1195 -0
  46. package/dist/list-row-Z4SHkseA.js.map +1 -0
  47. package/dist/markdown-editor-Dd4mor7l.js +3236 -0
  48. package/dist/markdown-editor-Dd4mor7l.js.map +1 -0
  49. package/dist/number-input-7K66wnSC.js +63 -0
  50. package/dist/number-input-7K66wnSC.js.map +1 -0
  51. package/dist/param-editor-Dnix-fJo.js +225 -0
  52. package/dist/param-editor-Dnix-fJo.js.map +1 -0
  53. package/dist/param-editor-field-B3vLST-B.js +2394 -0
  54. package/dist/param-editor-field-B3vLST-B.js.map +1 -0
  55. package/dist/param-editor.js +4 -2
  56. package/dist/prism-OG4H7Hu4.js +334 -0
  57. package/dist/prism-OG4H7Hu4.js.map +1 -0
  58. package/dist/queued-follow-up-Bj_vtMgd.js +208 -0
  59. package/dist/queued-follow-up-Bj_vtMgd.js.map +1 -0
  60. package/dist/rich-text-BgEnAHr2.js +1160 -0
  61. package/dist/rich-text-BgEnAHr2.js.map +1 -0
  62. package/dist/rich-text.d.ts +1 -1
  63. package/dist/rich-text.js +4 -2
  64. package/dist/terminal.js +1 -1
  65. package/dist/{theme-at0rtSnX.js → theme-CMJdH59Z.js} +224 -90
  66. package/dist/theme-CMJdH59Z.js.map +1 -0
  67. package/dist/theme.js +1 -1
  68. package/dist/tree-list-jarhD31R.js +1652 -0
  69. package/dist/tree-list-jarhD31R.js.map +1 -0
  70. package/dist/use-virtualizer-uj43XjBp.js +10 -0
  71. package/dist/use-virtualizer-uj43XjBp.js.map +1 -0
  72. package/dist/{host-storage-DP0RLj4i.d.ts → workspace-badge-BKtB805G.d.ts} +6 -16
  73. package/package.json +6 -2
  74. package/dist/chat-question-bubble-w2vMbFsS.js +0 -68
  75. package/dist/chat-question-bubble-w2vMbFsS.js.map +0 -1
  76. package/dist/diff-drawer-BwZBOObe.js.map +0 -1
  77. package/dist/list-row-DM0DiIrN.js +0 -1167
  78. package/dist/list-row-DM0DiIrN.js.map +0 -1
  79. package/dist/prism-JVIsQMoJ.js +0 -1029
  80. package/dist/prism-JVIsQMoJ.js.map +0 -1
  81. package/dist/rich-text-DM24VNQZ.js +0 -10447
  82. package/dist/rich-text-DM24VNQZ.js.map +0 -1
  83. package/dist/theme-at0rtSnX.js.map +0 -1
  84. package/dist/tree-list-Cqgl8mnN.js +0 -1621
  85. package/dist/tree-list-Cqgl8mnN.js.map +0 -1
@@ -0,0 +1,3236 @@
1
+ import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
+ import { n as t, t as n } from "./scroll-area-Cr1lNXAr.js";
3
+ import { i as r } from "./prism-OG4H7Hu4.js";
4
+ import { t as i } from "./edit-mode-data-table-DnMB2jiy.js";
5
+ import { m as a } from "./param-editor-field-B3vLST-B.js";
6
+ import { Box as o, Button as s, Code as c, Dialog as l, Field as u, Flex as d, Icon as f, IconButton as p, Image as m, Input as h, Link as g, Stack as _, Text as v, chakra as y } from "@chakra-ui/react";
7
+ import { c as b } from "react/compiler-runtime";
8
+ import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
9
+ import * as w from "react";
10
+ import { Fragment as T, Suspense as E, createContext as D, lazy as O, useContext as k, useEffect as A, useLayoutEffect as j, useRef as M, useState as N } from "react";
11
+ import { Check as P, Code as F, Code2 as I, Copy as L, Image as R, Link as z, List as ee, ListOrdered as te, ListTodo as ne, Minus as B, Pencil as V, Table2 as H, TextQuote as re, Trash2 as ie, X as ae } from "lucide-react";
12
+ import { LexicalComposer as oe } from "@lexical/react/LexicalComposer";
13
+ import { LexicalErrorBoundary as se } from "@lexical/react/LexicalErrorBoundary";
14
+ import { HorizontalRulePlugin as ce } from "@lexical/react/LexicalHorizontalRulePlugin";
15
+ import { LinkPlugin as le } from "@lexical/react/LexicalLinkPlugin";
16
+ import { ListPlugin as ue } from "@lexical/react/LexicalListPlugin";
17
+ import { RichTextPlugin as de } from "@lexical/react/LexicalRichTextPlugin";
18
+ import { TabIndentationPlugin as fe } from "@lexical/react/LexicalTabIndentationPlugin";
19
+ import { ContentEditable as pe } from "@lexical/react/LexicalContentEditable";
20
+ import { $createAutoLinkNode as me, $createLinkNode as he, $isAutoLinkNode as U, $isLinkNode as W, AutoLinkNode as ge, LinkNode as _e, TOGGLE_LINK_COMMAND as ve } from "@lexical/link";
21
+ import { $createListItemNode as ye, $createListNode as be, $isListItemNode as xe, $isListNode as G, INSERT_CHECK_LIST_COMMAND as Se, INSERT_ORDERED_LIST_COMMAND as Ce, INSERT_UNORDERED_LIST_COMMAND as we, ListItemNode as Te, ListNode as Ee, REMOVE_LIST_COMMAND as De } from "@lexical/list";
22
+ import { CHECK_LIST as Oe, LINK as ke, TRANSFORMERS as Ae } from "@lexical/markdown";
23
+ import { $createHeadingNode as K, $createQuoteNode as je, $isHeadingNode as Me, $isQuoteNode as Ne, HeadingNode as Pe, QuoteNode as Fe } from "@lexical/rich-text";
24
+ import { $addUpdateTag as Ie, $applyNodeReplacement as Le, $createLineBreakNode as Re, $createParagraphNode as ze, $createTextNode as q, $getNodeByKey as Be, $getRoot as Ve, $getSelection as J, $isElementNode as He, $isInlineElementOrDecoratorNode as Ue, $isLineBreakNode as We, $isParagraphNode as Ge, $isRangeSelection as Y, $isRootOrShadowRoot as Ke, $isTextNode as qe, $nodesOfType as Je, $setSelection as Ye, CLICK_COMMAND as Xe, COMMAND_PRIORITY_CRITICAL as Ze, COMMAND_PRIORITY_HIGH as Qe, COMMAND_PRIORITY_LOW as $e, DecoratorNode as et, ElementNode as tt, FORMAT_TEXT_COMMAND as nt, HISTORY_MERGE_TAG as rt, HISTORY_PUSH_TAG as it, KEY_DOWN_COMMAND as at, KEY_ESCAPE_COMMAND as ot, REDO_COMMAND as st, SELECTION_CHANGE_COMMAND as ct, TextNode as lt, UNDO_COMMAND as ut, createCommand as dt } from "lexical";
25
+ import { $createCodeNode as ft, $createCodeNode as pt, $isCodeNode as mt, CodeHighlightNode as ht, CodeNode as gt, registerCodeHighlighting as _t } from "@lexical/code";
26
+ import { fromMarkdown as vt } from "mdast-util-from-markdown";
27
+ import { gfmFromMarkdown as yt, gfmToMarkdown as bt } from "mdast-util-gfm";
28
+ import { mathFromMarkdown as xt, mathToMarkdown as St } from "mdast-util-math";
29
+ import { toMarkdown as Ct } from "mdast-util-to-markdown";
30
+ import { gfm as wt } from "micromark-extension-gfm";
31
+ import { math as Tt } from "micromark-extension-math";
32
+ import Et from "dompurify";
33
+ import Dt from "katex";
34
+ import { useLexicalComposerContext as X } from "@lexical/react/LexicalComposerContext";
35
+ import { $findMatchingParent as Z, mergeRegister as Ot } from "@lexical/utils";
36
+ import * as kt from "react-dom";
37
+ import { createPortal as At } from "react-dom";
38
+ import { $isAtNodeEnd as jt, $setBlocksType as Mt } from "@lexical/selection";
39
+ import { AutoFocusPlugin as Nt } from "@lexical/react/LexicalAutoFocusPlugin";
40
+ import { CheckListPlugin as Pt } from "@lexical/react/LexicalCheckListPlugin";
41
+ import { MarkdownShortcutPlugin as Ft } from "@lexical/react/LexicalMarkdownShortcutPlugin";
42
+ import { OnChangePlugin as It } from "@lexical/react/LexicalOnChangePlugin";
43
+ import { diffChars as Lt } from "diff";
44
+ import { TreeView as Rt } from "@lexical/react/LexicalTreeView";
45
+ import { $createHorizontalRuleNode as zt } from "@lexical/react/LexicalHorizontalRuleNode";
46
+ import { LexicalTypeaheadMenuPlugin as Bt } from "@lexical/react/LexicalTypeaheadMenuPlugin";
47
+ import { HistoryPlugin as Vt } from "@lexical/react/LexicalHistoryPlugin";
48
+ //#region src/components/rich-text/shared/components/content-editable.tsx
49
+ var Ht = y(pe);
50
+ function Ut(e) {
51
+ let t = b(11), { onRef: r, fullWidth: i, padding: a, isRichMessage: s, scrollable: c } = e, l = i !== void 0 && i, u = s !== void 0 && s, d = c === void 0 || c, f = l ? "100%" : "45rem", p = l ? "0" : "auto", m;
52
+ t[0] !== f || t[1] !== p ? (m = /* @__PURE__ */ S(Ht, {
53
+ "data-testid": "content-editable",
54
+ height: "fit-content",
55
+ minH: "100%",
56
+ width: "100%",
57
+ maxWidth: f,
58
+ marginInline: p,
59
+ textStyle: "paragraph/M/regular",
60
+ fontSize: "calc(var(--chakra-font-sizes-md) * var(--rich-text-font-scale))",
61
+ position: "relative",
62
+ outline: "none"
63
+ }), t[0] = f, t[1] = p, t[2] = m) : m = t[2];
64
+ let h;
65
+ t[3] !== r || t[4] !== a || t[5] !== m ? (h = /* @__PURE__ */ S(o, {
66
+ ref: r,
67
+ width: "100%",
68
+ minH: "100%",
69
+ padding: a,
70
+ children: m
71
+ }), t[3] = r, t[4] = a, t[5] = m, t[6] = h) : h = t[6];
72
+ let g = h;
73
+ if (!d) return g;
74
+ let _ = u ? "true" : void 0, v;
75
+ t[7] === Symbol.for("react.memo_cache_sentinel") ? (v = {
76
+ width: "100%",
77
+ minH: "100%"
78
+ }, t[7] = v) : v = t[7];
79
+ let y;
80
+ return t[8] !== g || t[9] !== _ ? (y = /* @__PURE__ */ S(n, {
81
+ className: "rich-text",
82
+ "data-rich-message": _,
83
+ height: "100%",
84
+ minH: "0",
85
+ position: "relative",
86
+ contentProps: v,
87
+ children: g
88
+ }), t[8] = g, t[9] = _, t[10] = y) : y = t[10], y;
89
+ }
90
+ //#endregion
91
+ //#region src/components/chat-ui/links/chat-link.ts
92
+ var Q = (e) => ({
93
+ kind: "invalid",
94
+ reason: e
95
+ }), Wt = (e) => Number.isSafeInteger(e) && e > 0, Gt = (e) => {
96
+ if (/^file:/i.test(e)) try {
97
+ let t = new URL(e);
98
+ if (t.hostname) return Q("Network file links are unavailable.");
99
+ if (e = t.pathname.replace(/^\/([a-z]:\/)/i, "$1") + t.hash, t.search) return Q("File links cannot contain a query.");
100
+ } catch {
101
+ return Q("This file link is malformed.");
102
+ }
103
+ else if (/^[a-z][a-z\d+.-]*:/i.test(e) && !/^[a-z]:[/\\]/i.test(e) && !/^[^:]+:\d+(?::\d+)?$/.test(e)) return Q("This link scheme is unsupported.");
104
+ return e.replace(/^#?\$PROJECT\//i, "");
105
+ }, Kt = (e) => {
106
+ let t, n = e.indexOf("#");
107
+ if (n >= 0) {
108
+ let r = /^#L(\d+)(?:-L(\d+))?$/.exec(e.slice(n));
109
+ if (!r) return Q("This file location is unsupported.");
110
+ t = {
111
+ line: Number(r[1]),
112
+ ...r[2] ? { endLine: Number(r[2]) } : {}
113
+ }, e = e.slice(0, n);
114
+ } else {
115
+ let n = /:(\d+)(?::(\d+))?$/.exec(e);
116
+ n && (t = {
117
+ line: Number(n[1]),
118
+ ...n[2] ? { column: Number(n[2]) } : {}
119
+ }, e = e.slice(0, n.index));
120
+ }
121
+ return t && (!Wt(t.line) || t.column !== void 0 && !Wt(t.column) || t.endLine !== void 0 && (!Wt(t.endLine) || t.endLine < t.line)) ? Q("Source locations must use positive line and column numbers.") : {
122
+ kind: "file",
123
+ path: e,
124
+ position: t
125
+ };
126
+ }, qt = (e, t) => {
127
+ let n = /^(\.\.?\/|\/|[a-z]:\/)/i.test(e) || t.startsWith("$PROJECT/"), r = !/^(@|v\d)/.test(e) && !/[\s()]/.test(e) && (e.includes("/") || /^[\w-]+\.[a-z][\w-]*$/i.test(e));
128
+ return n || r;
129
+ }, Jt = (e, t) => {
130
+ let n = e.source.trim();
131
+ if (!n) return;
132
+ if (/^https?:/i.test(n)) try {
133
+ let e = new URL(n);
134
+ return e.origin === t && e.pathname.startsWith("/projects/") ? {
135
+ kind: "page",
136
+ href: n
137
+ } : {
138
+ kind: "external",
139
+ href: n
140
+ };
141
+ } catch {
142
+ return Q("This URL is malformed.");
143
+ }
144
+ if (/^(mailto:|sms:|tel:)/i.test(n)) return {
145
+ kind: "external",
146
+ href: n
147
+ };
148
+ if (/^\/projects\//.test(n)) return {
149
+ kind: "page",
150
+ href: n
151
+ };
152
+ if (/^(~\/|\\\\|\/\/)/.test(n)) return Q("This path has no supported workspace root.");
153
+ if (/^(javascript|data|vscode|pstdio):/i.test(n)) return Q("This link scheme is unsupported.");
154
+ let r = Gt(n);
155
+ if (typeof r != "string") return r;
156
+ let i = Kt(r);
157
+ if (i.kind === "invalid") return i;
158
+ if (i.path.includes("?")) return Q("Encode question marks in file names.");
159
+ let a;
160
+ try {
161
+ a = decodeURIComponent(i.path).replaceAll("\\", "/");
162
+ } catch {
163
+ return Q("This path has invalid URL encoding.");
164
+ }
165
+ if (a.includes("\0")) return Q("This path is malformed.");
166
+ if (e.origin !== "inline-code" || qt(a, e.source)) return {
167
+ ...i,
168
+ path: a
169
+ };
170
+ }, Yt = D(void 0), Xt = (e) => {
171
+ let t = b(3), { handler: n, children: r } = e, i;
172
+ return t[0] !== r || t[1] !== n ? (i = /* @__PURE__ */ S(Yt.Provider, {
173
+ value: n,
174
+ children: r
175
+ }), t[0] = r, t[1] = n, t[2] = i) : i = t[2], i;
176
+ }, Zt = () => k(Yt), Qt = (e) => {
177
+ let n = b(20), { candidate: r, children: i } = e, a = Zt(), o = Jt(r, typeof window > "u" ? void 0 : window.location.origin), s;
178
+ n[0] !== r || n[1] !== a ? (s = a?.resolveHref(r), n[0] = r, n[1] = a, n[2] = s) : s = n[2];
179
+ let c = s;
180
+ if (!a || !o || o.kind === "external" && !c) return i;
181
+ let l;
182
+ n[3] !== r || n[4] !== a ? (l = a.describe?.(r) ?? `Open file or document: ${r.source}`, n[3] = r, n[4] = a, n[5] = l) : l = n[5];
183
+ let u = c ?? void 0, d = c ? void 0 : "button", f, p;
184
+ n[6] !== r || n[7] !== a || n[8] !== c ? (f = (e) => {
185
+ e.stopPropagation(), !(c && (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || e.button !== 0)) && (e.preventDefault(), a.open(r));
186
+ }, p = (e) => {
187
+ !c && e.key === "Enter" && (e.preventDefault(), a.open(r));
188
+ }, n[6] = r, n[7] = a, n[8] = c, n[9] = f, n[10] = p) : (f = n[9], p = n[10]);
189
+ let m;
190
+ n[11] !== i || n[12] !== u || n[13] !== d || n[14] !== f || n[15] !== p ? (m = /* @__PURE__ */ S(g, {
191
+ href: u,
192
+ role: d,
193
+ tabIndex: 0,
194
+ onClickCapture: f,
195
+ onKeyDownCapture: p,
196
+ children: i
197
+ }), n[11] = i, n[12] = u, n[13] = d, n[14] = f, n[15] = p, n[16] = m) : m = n[16];
198
+ let h;
199
+ return n[17] !== l || n[18] !== m ? (h = /* @__PURE__ */ S(t, {
200
+ content: l,
201
+ children: m
202
+ }), n[17] = l, n[18] = m, n[19] = h) : h = n[19], h;
203
+ }, $t = (e) => {
204
+ let t = b(28), { href: n } = e, i = Zt(), a, s, c, l, u, d, f, p;
205
+ if (t[0] !== i || t[1] !== n) {
206
+ let e = {
207
+ source: n,
208
+ origin: "reference"
209
+ }, m;
210
+ t[10] === n ? m = t[11] : (m = n.split("/").pop() || "unknown", t[10] = n, t[11] = m);
211
+ let h = m;
212
+ c = o, f = "fit-content", p = "inline-block", s = Qt, d = e, a = r, l = h, u = i?.describe?.(e), t[0] = i, t[1] = n, t[2] = a, t[3] = s, t[4] = c, t[5] = l, t[6] = u, t[7] = d, t[8] = f, t[9] = p;
213
+ } else a = t[2], s = t[3], c = t[4], l = t[5], u = t[6], d = t[7], f = t[8], p = t[9];
214
+ let m;
215
+ t[12] === n ? m = t[13] : (m = () => {
216
+ /^https?:\/\//i.test(n) ? window.open(n, "_blank", "noopener,noreferrer") : /^#?\$PROJECT\//i.test(n) ? window.dispatchEvent(new CustomEvent("ui:open-project-file", { detail: n.replace(/^#?\$PROJECT\//i, "") })) : window.location.assign(n);
217
+ }, t[12] = n, t[13] = m);
218
+ let h;
219
+ t[14] !== a || t[15] !== l || t[16] !== u || t[17] !== m ? (h = /* @__PURE__ */ S(a, {
220
+ fileName: l,
221
+ tooltip: u,
222
+ onSelect: m
223
+ }), t[14] = a, t[15] = l, t[16] = u, t[17] = m, t[18] = h) : h = t[18];
224
+ let g;
225
+ t[19] !== s || t[20] !== d || t[21] !== h ? (g = /* @__PURE__ */ S(s, {
226
+ candidate: d,
227
+ children: h
228
+ }), t[19] = s, t[20] = d, t[21] = h, t[22] = g) : g = t[22];
229
+ let _;
230
+ return t[23] !== c || t[24] !== f || t[25] !== p || t[26] !== g ? (_ = /* @__PURE__ */ S(c, {
231
+ width: f,
232
+ display: p,
233
+ children: g
234
+ }), t[23] = c, t[24] = f, t[25] = p, t[26] = g, t[27] = _) : _ = t[27], _;
235
+ }, en = class e extends et {
236
+ __href;
237
+ __label;
238
+ static getType() {
239
+ return "reference-link";
240
+ }
241
+ static clone(t) {
242
+ return new e(t.__href, t.__label, t.__key);
243
+ }
244
+ constructor(e, t, n) {
245
+ super(n), this.__href = e, this.__label = t;
246
+ }
247
+ createDOM(e, t) {
248
+ return document.createElement("span");
249
+ }
250
+ updateDOM(e, t, n) {
251
+ return !1;
252
+ }
253
+ getTextContent() {
254
+ return `{{link('${this.__label ?? this.__href}')}}`;
255
+ }
256
+ exportJSON() {
257
+ return {
258
+ type: e.getType(),
259
+ version: 1,
260
+ href: this.__href,
261
+ label: this.__label
262
+ };
263
+ }
264
+ static importJSON(e) {
265
+ return tn(e.href, e.label);
266
+ }
267
+ decorate(e, t) {
268
+ return /* @__PURE__ */ S($t, { href: this.__href });
269
+ }
270
+ };
271
+ function tn(e, t) {
272
+ return new en(e, t);
273
+ }
274
+ function nn(e) {
275
+ return e instanceof en;
276
+ }
277
+ //#endregion
278
+ //#region src/components/rich-text/markdown-editor/plugins/ReferenceLinkPlugin/ReferenceLinkTransformer.ts
279
+ var rn = /\{\{\s*link\((['"])([^'"\s]+)\1\)\s*\}\}/, an = {
280
+ dependencies: [en],
281
+ export: (e) => {
282
+ if (nn(e)) {
283
+ let t = e.__href, n = e.__label ?? t;
284
+ return n ? `{{link('${n}')}}` : `{{link('${t}')}}`;
285
+ }
286
+ return null;
287
+ },
288
+ regExp: rn,
289
+ importRegExp: rn,
290
+ replace: (e, t) => {
291
+ let n = t[2], r = /^(https?:\/\/|\/)/i.test(n) ? n : `#${n}`, i = n;
292
+ e.replace(tn(r, i));
293
+ },
294
+ type: "text-match"
295
+ }, on = {
296
+ code: "rich-text__code",
297
+ codeHighlight: {
298
+ atrule: "rich-text__tokenAttr",
299
+ attr: "rich-text__tokenAttr",
300
+ boolean: "rich-text__tokenProperty",
301
+ builtin: "rich-text__tokenSelector",
302
+ cdata: "rich-text__tokenComment",
303
+ char: "rich-text__tokenSelector",
304
+ class: "rich-text__tokenFunction",
305
+ "class-name": "rich-text__tokenFunction",
306
+ comment: "rich-text__tokenComment",
307
+ constant: "rich-text__tokenProperty",
308
+ deleted: "rich-text__tokenProperty",
309
+ doctype: "rich-text__tokenComment",
310
+ entity: "rich-text__tokenOperator",
311
+ function: "rich-text__tokenFunction",
312
+ important: "rich-text__tokenVariable",
313
+ inserted: "rich-text__tokenSelector",
314
+ keyword: "rich-text__tokenAttr",
315
+ namespace: "rich-text__tokenVariable",
316
+ number: "rich-text__tokenProperty",
317
+ operator: "rich-text__tokenOperator",
318
+ prolog: "rich-text__tokenComment",
319
+ property: "rich-text__tokenProperty",
320
+ punctuation: "rich-text__tokenPunctuation",
321
+ regex: "rich-text__tokenVariable",
322
+ selector: "rich-text__tokenSelector",
323
+ string: "rich-text__tokenSelector",
324
+ symbol: "rich-text__tokenProperty",
325
+ tag: "rich-text__tokenProperty",
326
+ url: "rich-text__tokenOperator",
327
+ variable: "rich-text__tokenVariable"
328
+ },
329
+ embedBlock: {
330
+ base: "rich-text__embedBlock",
331
+ focus: "rich-text__embedBlockFocus"
332
+ },
333
+ list: {
334
+ checklist: "rich-text__checklist",
335
+ listitem: "rich-text__listItem",
336
+ listitemChecked: "rich-text__listItemChecked",
337
+ listitemUnchecked: "rich-text__listItemUnchecked",
338
+ nested: { listitem: "rich-text__nestedListItem" },
339
+ olDepth: [
340
+ "rich-text__ol1",
341
+ "rich-text__ol2",
342
+ "rich-text__ol3",
343
+ "rich-text__ol4",
344
+ "rich-text__ol5"
345
+ ],
346
+ ol: "rich-text__ol",
347
+ ul: "rich-text__ul"
348
+ },
349
+ heading: {
350
+ h1: "rich-text__h1",
351
+ h2: "rich-text__h2",
352
+ h3: "rich-text__h3"
353
+ },
354
+ paragraph: "rich-text__p",
355
+ text: {
356
+ underline: "rich-text__textUnderline",
357
+ italic: "rich-text__textItalic",
358
+ code: "rich-text__textCode"
359
+ },
360
+ link: "rich-text__link",
361
+ quote: "rich-text__quote",
362
+ reference: "rich-text__reference",
363
+ table: "rich-text__table",
364
+ tableCell: "rich-text__tableCell",
365
+ tableRow: "rich-text__tableRow",
366
+ tableCellHeader: "rich-text__tableCellHeader",
367
+ layoutContainer: "rich-text__layoutContainer",
368
+ layoutItem: "rich-text__layoutItem",
369
+ draggableBlockDemo: {
370
+ row: "rich-text__row",
371
+ content: "rich-text__content"
372
+ }
373
+ }, sn = {
374
+ extensions: [wt(), Tt()],
375
+ mdastExtensions: [yt(), xt()]
376
+ }, cn = {
377
+ bullet: "-",
378
+ emphasis: "*",
379
+ extensions: [bt(), St()],
380
+ fence: "`",
381
+ fences: !0,
382
+ listItemIndent: "one",
383
+ rule: "-",
384
+ strong: "*"
385
+ }, ln = (e) => e.match(/^ {0,3}(`{3,}|~{3,})/), un = (e) => {
386
+ let t = null, n = "";
387
+ for (let r = 0; r < e.length;) {
388
+ if (e[r] === "`") {
389
+ let i = r;
390
+ for (; e[i] === "`";) i += 1;
391
+ let a = i - r;
392
+ t === null ? t = a : t === a && (t = null), n += e.slice(r, i), r = i;
393
+ continue;
394
+ }
395
+ let i = e.slice(r, r + 2);
396
+ if (t === null && (i === "\\(" || i === "\\)")) {
397
+ n += "$", r += 2;
398
+ continue;
399
+ }
400
+ if (t === null && (i === "\\[" || i === "\\]")) {
401
+ n += "$$", r += 2;
402
+ continue;
403
+ }
404
+ n += e[r], r += 1;
405
+ }
406
+ return n;
407
+ }, dn = (e) => {
408
+ let t = null, n = [];
409
+ for (let r of e.split("\n")) {
410
+ if (t) {
411
+ n.push(r);
412
+ let e = r.match(/^ {0,3}(`+|~+)[ \t]*$/)?.[1];
413
+ e?.[0] === t.character && e.length >= t.length && (t = null);
414
+ continue;
415
+ }
416
+ let e = ln(r)?.[1];
417
+ if (e) {
418
+ t = {
419
+ character: e[0] ?? "`",
420
+ length: e.length
421
+ }, n.push(r);
422
+ continue;
423
+ }
424
+ let i = r.match(/^( {0,3})\\\[\s*(.*?)\s*\\\][ \t]*$/);
425
+ if (i) {
426
+ let e = i[1] ?? "";
427
+ n.push(`${e}$$`, i[2] ?? "", `${e}$$`);
428
+ continue;
429
+ }
430
+ if (/^ {0,3}\\\[[ \t]*$/.test(r)) {
431
+ n.push(r.replace("\\[", () => "$$"));
432
+ continue;
433
+ }
434
+ if (/^ {0,3}\\\][ \t]*$/.test(r)) {
435
+ n.push(r.replace("\\]", () => "$$"));
436
+ continue;
437
+ }
438
+ n.push(un(r));
439
+ }
440
+ return n.join("\n");
441
+ }, fn = (e) => vt(dn(e), sn), pn = (e) => vt(e, sn), mn = (e) => Ct(e, cn).trimEnd(), hn = (e) => mn({
442
+ type: "root",
443
+ children: [e]
444
+ }), gn = (e) => hn({
445
+ type: "paragraph",
446
+ children: e
447
+ }), _n = (e) => {
448
+ let t = fn(e).children[0];
449
+ return t?.type === "paragraph" || t?.type === "heading" ? t.children : [];
450
+ }, vn = /* @__PURE__ */ new Set([
451
+ "http:",
452
+ "https:",
453
+ "mailto:",
454
+ "sms:",
455
+ "tel:"
456
+ ]), yn = /^data:image\/(?:png|gif|jpeg|webp);base64,[a-z0-9+/=]+$/i, bn = /^[a-z][a-z\d+.-]*:/i, xn = (e) => {
457
+ if (e.startsWith("#") || e.startsWith("/") || e.startsWith("./") || e.startsWith("../") || !bn.test(e)) return !0;
458
+ try {
459
+ return vn.has(new URL(e).protocol);
460
+ } catch {
461
+ return !1;
462
+ }
463
+ }, Sn = (e) => e.startsWith("https://") ? !0 : yn.test(e), Cn = (e, t, n) => {
464
+ let r = n ? n(e, t) : e;
465
+ return r === null ? null : t === "image" ? !bn.test(e) && !n ? null : Sn(r) ? r : null : xn(r) ? r : null;
466
+ }, wn = D(void 0), Tn = (e) => {
467
+ let t = b(3), { children: n, resolver: r } = e, i;
468
+ return t[0] !== n || t[1] !== r ? (i = /* @__PURE__ */ S(wn.Provider, {
469
+ value: r,
470
+ children: n
471
+ }), t[0] = n, t[1] = r, t[2] = i) : i = t[2], i;
472
+ }, En = () => k(wn), Dn = /* @__PURE__ */ new Map(), On = /* @__PURE__ */ new WeakMap(), kn = (e, t) => {
473
+ let n = Jt({
474
+ source: e,
475
+ origin: "markdown"
476
+ });
477
+ if (n?.kind === "file") return t?.resolveHref({
478
+ source: e,
479
+ origin: "markdown"
480
+ }) ?? n.path;
481
+ }, An = (e, t, n) => {
482
+ if (t.type !== "tool" || !Array.isArray(t.state?.output)) return e;
483
+ let r;
484
+ for (let i of t.state.output) {
485
+ if (i?.type !== "image" || typeof i.source != "string" || typeof i.src != "string") continue;
486
+ let t = kn(i.source, n), a = Cn(i.src, "image");
487
+ t && a && (r ??= new Map(e), r.set(t, a));
488
+ }
489
+ return r ?? e;
490
+ }, jn = (e, t) => {
491
+ let n, r = Dn;
492
+ for (let i of e) for (let e of i.parts) r = An(r, e, t), r.size !== 0 && (n ??= /* @__PURE__ */ new WeakMap(), n.set(e, r));
493
+ return n ?? On;
494
+ }, Mn = (e, t, n) => {
495
+ let r = kn(t, n);
496
+ return r ? e.get(r) : void 0;
497
+ }, Nn = D(On), Pn = () => k(Nn), Fn = D(Dn), In = () => k(Fn), Ln = (e) => {
498
+ let t = b(25), { source: n, alt: r, title: i, onLoad: a } = e, s = En(), c = Zt(), l = In(), u;
499
+ t[0] !== c || t[1] !== n || t[2] !== l ? (u = Mn(l, n, c), t[0] = c, t[1] = n, t[2] = l, t[3] = u) : u = t[3];
500
+ let d = u, [f, p] = N(), h;
501
+ t[4] !== d || t[5] !== s || t[6] !== n ? (h = d ?? Cn(n, "image", s), t[4] = d, t[5] = s, t[6] = n, t[7] = h) : h = t[7];
502
+ let g = h, _;
503
+ t[8] !== g || t[9] !== c || t[10] !== f || t[11] !== n ? (_ = g ?? (f?.source === n && f.handler === c && f.value ? Cn(f.value, "image") : null), t[8] = g, t[9] = c, t[10] = f, t[11] = n, t[12] = _) : _ = t[12];
504
+ let y = _, x, C;
505
+ if (t[13] !== g || t[14] !== c || t[15] !== n ? (x = () => {
506
+ if (g || !c?.resolveImageSource) return;
507
+ let e = !0;
508
+ return c.resolveImageSource(n).catch(Vn).then((t) => {
509
+ e && p({
510
+ source: n,
511
+ handler: c,
512
+ value: t
513
+ });
514
+ }), () => {
515
+ e = !1;
516
+ };
517
+ }, C = [
518
+ g,
519
+ n,
520
+ c
521
+ ], t[13] = g, t[14] = c, t[15] = n, t[16] = x, t[17] = C) : (x = t[16], C = t[17]), A(x, C), !y) {
522
+ let e = r || "Image", n;
523
+ return t[18] === e ? n = t[19] : (n = /* @__PURE__ */ S(o, {
524
+ as: "span",
525
+ display: "inline-block",
526
+ paddingX: "xs",
527
+ paddingY: "2xs",
528
+ background: "bg.muted",
529
+ borderRadius: "sm",
530
+ children: /* @__PURE__ */ S(v, {
531
+ as: "span",
532
+ textStyle: "label/S/regular",
533
+ color: "fg.muted",
534
+ children: e
535
+ })
536
+ }), t[18] = e, t[19] = n), n;
537
+ }
538
+ let w = i ?? void 0, T;
539
+ return t[20] !== r || t[21] !== a || t[22] !== y || t[23] !== w ? (T = /* @__PURE__ */ S(m, {
540
+ src: y,
541
+ alt: r,
542
+ title: w,
543
+ loading: "lazy",
544
+ referrerPolicy: "no-referrer",
545
+ onLoad: a
546
+ }), t[20] = r, t[21] = a, t[22] = y, t[23] = w, t[24] = T) : T = t[24], T;
547
+ }, Rn = class e extends et {
548
+ __source;
549
+ __alt;
550
+ __title;
551
+ static getType() {
552
+ return "markdown-image";
553
+ }
554
+ static clone(t) {
555
+ return new e(t.__source, t.__alt, t.__title, t.__key);
556
+ }
557
+ constructor(e, t, n = null, r) {
558
+ super(r), this.__source = e, this.__alt = t, this.__title = n;
559
+ }
560
+ createDOM() {
561
+ return document.createElement("span");
562
+ }
563
+ updateDOM() {
564
+ return !1;
565
+ }
566
+ isInline() {
567
+ return !0;
568
+ }
569
+ getSource() {
570
+ return this.__source;
571
+ }
572
+ getAlt() {
573
+ return this.__alt;
574
+ }
575
+ getTitle() {
576
+ return this.__title;
577
+ }
578
+ getTextContent() {
579
+ return this.__alt;
580
+ }
581
+ exportJSON() {
582
+ return {
583
+ type: "markdown-image",
584
+ version: 1,
585
+ source: this.__source,
586
+ alt: this.__alt,
587
+ title: this.__title
588
+ };
589
+ }
590
+ static importJSON(e) {
591
+ return zn(e.source, e.alt, e.title);
592
+ }
593
+ decorate(e) {
594
+ return /* @__PURE__ */ S(Ln, {
595
+ source: this.__source,
596
+ alt: this.__alt,
597
+ title: this.__title,
598
+ onLoad: () => {
599
+ if (!e.isEditable()) return;
600
+ let t = null;
601
+ e.getEditorState().read(() => {
602
+ let e = J(), n = Be(this.getKey());
603
+ if (!Y(e) || !e.isCollapsed() || !n) return;
604
+ let r = (n.getTopLevelElement()?.getNextSibling())?.getKey(), i = e.anchor.getNode().getTopLevelElement();
605
+ r && r === i?.getKey() && (t = r);
606
+ });
607
+ let n = t;
608
+ n && requestAnimationFrame(() => {
609
+ e.getElementByKey(n)?.scrollIntoView({ block: "end" });
610
+ });
611
+ }
612
+ });
613
+ }
614
+ }, zn = (e, t, n = null) => Le(new Rn(e, t, n)), Bn = (e) => e instanceof Rn;
615
+ function Vn() {
616
+ return null;
617
+ }
618
+ //#endregion
619
+ //#region src/components/rich-text/shared/nodes/RawHtmlNode.tsx
620
+ var Hn = (e) => /^<!--[\s\S]*-->$/.test(e.trim()), Un = (e, t) => {
621
+ if (typeof document > "u") return null;
622
+ let n = Et.sanitize(e, { FORBID_TAGS: [
623
+ "script",
624
+ "style",
625
+ "iframe",
626
+ "object",
627
+ "embed",
628
+ "form",
629
+ "input",
630
+ "button",
631
+ "textarea",
632
+ "select"
633
+ ] }), r = document.createElement("template");
634
+ r.innerHTML = n;
635
+ for (let e of r.content.querySelectorAll("[href], [src]")) {
636
+ let n = e.hasAttribute("href") ? "href" : "src", r = n === "href" ? "link" : "image", i = Cn(e.getAttribute(n) ?? "", r, t);
637
+ i ? e.setAttribute(n, i) : e.removeAttribute(n);
638
+ }
639
+ return r.content;
640
+ }, Wn = (e) => {
641
+ let t = b(7), { source: n, display: r } = e, i = En(), a = M(null), o;
642
+ t[0] === Symbol.for("react.memo_cache_sentinel") ? (o = (e) => {
643
+ a.current = e;
644
+ }, t[0] = o) : o = t[0];
645
+ let s = o, c, l;
646
+ if (t[1] !== i || t[2] !== n ? (c = () => {
647
+ let e = Un(n, i), t = a.current;
648
+ t && t.replaceChildren(e ? e.cloneNode(!0) : document.createTextNode(""));
649
+ }, l = [i, n], t[1] = i, t[2] = n, t[3] = c, t[4] = l) : (c = t[3], l = t[4]), A(c, l), Hn(n)) return null;
650
+ if (r === "inline") {
651
+ let e;
652
+ return t[5] === Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ S("span", { ref: s }), t[5] = e) : e = t[5], e;
653
+ }
654
+ let u;
655
+ return t[6] === Symbol.for("react.memo_cache_sentinel") ? (u = /* @__PURE__ */ S("div", { ref: s }), t[6] = u) : u = t[6], u;
656
+ }, Gn = class e extends et {
657
+ __source;
658
+ __display;
659
+ static getType() {
660
+ return "raw-html";
661
+ }
662
+ static clone(t) {
663
+ return new e(t.__source, t.__display, t.__key);
664
+ }
665
+ constructor(e, t, n) {
666
+ super(n), this.__source = e, this.__display = t;
667
+ }
668
+ createDOM() {
669
+ return document.createElement(this.__display === "inline" ? "span" : "div");
670
+ }
671
+ updateDOM(e) {
672
+ return e.__display !== this.__display;
673
+ }
674
+ isInline() {
675
+ return this.__display === "inline";
676
+ }
677
+ getSource() {
678
+ return this.__source;
679
+ }
680
+ getDisplay() {
681
+ return this.__display;
682
+ }
683
+ getTextContent() {
684
+ return Hn(this.__source) ? "" : this.__source;
685
+ }
686
+ exportJSON() {
687
+ return {
688
+ type: "raw-html",
689
+ version: 1,
690
+ source: this.__source,
691
+ display: this.__display
692
+ };
693
+ }
694
+ static importJSON(e) {
695
+ return Kn(e.source, e.display);
696
+ }
697
+ decorate() {
698
+ return /* @__PURE__ */ S(Wn, {
699
+ source: this.__source,
700
+ display: this.__display
701
+ });
702
+ }
703
+ }, Kn = (e, t) => Le(new Gn(e, t)), qn = (e) => e instanceof Gn, Jn = (e) => {
704
+ let t = b(7), { nodes: n } = e, r = En(), i = Zt(), a;
705
+ if (t[0] !== i || t[1] !== n || t[2] !== r) {
706
+ let e;
707
+ t[4] !== i || t[5] !== r ? (e = (e, t) => {
708
+ let n = `${e.type}-${t}`;
709
+ switch (e.type) {
710
+ case "text": return /* @__PURE__ */ S(T, { children: e.value }, n);
711
+ case "strong": return /* @__PURE__ */ S(v, {
712
+ as: "strong",
713
+ fontWeight: "semibold",
714
+ children: /* @__PURE__ */ S(Jn, { nodes: e.children })
715
+ }, n);
716
+ case "emphasis": return /* @__PURE__ */ S(o, {
717
+ as: "em",
718
+ children: /* @__PURE__ */ S(Jn, { nodes: e.children })
719
+ }, n);
720
+ case "delete": return /* @__PURE__ */ S(o, {
721
+ as: "del",
722
+ children: /* @__PURE__ */ S(Jn, { nodes: e.children })
723
+ }, n);
724
+ case "inlineCode": return /* @__PURE__ */ S(Qt, {
725
+ candidate: {
726
+ source: e.value,
727
+ origin: "inline-code"
728
+ },
729
+ children: /* @__PURE__ */ S(c, { children: e.value })
730
+ }, n);
731
+ case "break": return /* @__PURE__ */ S("br", {}, n);
732
+ case "link": {
733
+ let t = {
734
+ source: e.url,
735
+ origin: "markdown"
736
+ }, a = Jt(t, typeof window > "u" ? void 0 : window.location.origin);
737
+ if (i && a && (a.kind !== "external" || i.resolveHref(t))) return /* @__PURE__ */ S(Qt, {
738
+ candidate: t,
739
+ children: /* @__PURE__ */ S(Jn, { nodes: e.children })
740
+ }, n);
741
+ let o = Cn(e.url, "link", r);
742
+ return o ? /* @__PURE__ */ S(g, {
743
+ href: o,
744
+ title: e.title ?? void 0,
745
+ target: "_blank",
746
+ rel: "noopener noreferrer",
747
+ children: /* @__PURE__ */ S(Jn, { nodes: e.children })
748
+ }, n) : /* @__PURE__ */ S(Jn, { nodes: e.children }, n);
749
+ }
750
+ case "image": return /* @__PURE__ */ S(Ln, {
751
+ source: e.url,
752
+ alt: e.alt ?? "",
753
+ title: e.title ?? null
754
+ }, n);
755
+ case "html": return /* @__PURE__ */ S(Wn, {
756
+ source: e.value,
757
+ display: "inline"
758
+ }, n);
759
+ case "inlineMath": return /* @__PURE__ */ S(c, { children: e.value }, n);
760
+ default: return null;
761
+ }
762
+ }, t[4] = i, t[5] = r, t[6] = e) : e = t[6], a = n.map(e), t[0] = i, t[1] = n, t[2] = r, t[3] = a;
763
+ } else a = t[3];
764
+ return a;
765
+ }, Yn = (e) => {
766
+ let t = b(4), { value: n } = e, r;
767
+ t[0] === n ? r = t[1] : (r = _n(n), t[0] = n, t[1] = r);
768
+ let i;
769
+ return t[2] === r ? i = t[3] : (i = /* @__PURE__ */ S(Jn, { nodes: r }), t[2] = r, t[3] = i), i;
770
+ }, Xn = (e) => e.rows.map((e) => ({
771
+ id: e.id,
772
+ ...e.cells
773
+ })), Zn = (e) => e.columns, Qn = (e) => {
774
+ let t = b(38), { editor: n, nodeKey: r, table: a } = e, [s, c] = N(!1), l = M(null), u;
775
+ t[0] === Symbol.for("react.memo_cache_sentinel") ? (u = () => {
776
+ setTimeout(() => l.current?.focus(), 0);
777
+ }, t[0] = u) : u = t[0];
778
+ let d = u, f;
779
+ t[1] !== n || t[2] !== r ? (f = (e) => {
780
+ n.update(() => {
781
+ let t = Be(r);
782
+ tr(t) && t.setTable(e(t.getTable()));
783
+ }, { tag: it }), d();
784
+ }, t[1] = n, t[2] = r, t[3] = f) : f = t[3];
785
+ let p = f, m;
786
+ t[4] === p ? m = t[5] : (m = (e) => {
787
+ p((t) => ({
788
+ columns: e,
789
+ rows: t.rows.map((t) => ({
790
+ ...t,
791
+ cells: Object.fromEntries(e.map((e) => [e.id, t.cells[e.id] ?? ""]))
792
+ }))
793
+ }));
794
+ }, t[4] = p, t[5] = m);
795
+ let h = m, g;
796
+ t[6] === p ? g = t[7] : (g = (e) => {
797
+ p((t) => ({
798
+ ...t,
799
+ rows: e.map((e, n) => ({
800
+ id: String(e.id ?? t.rows[n]?.id ?? `row-${n + 1}`),
801
+ cells: Object.fromEntries(t.columns.map((t) => [t.id, String(e[t.id] ?? "")]))
802
+ }))
803
+ }));
804
+ }, t[6] = p, t[7] = g);
805
+ let _ = g, v;
806
+ t[8] !== n || t[9] !== r ? (v = () => {
807
+ n.update(() => {
808
+ let e = Be(r);
809
+ if (tr(e)) {
810
+ let t = ze();
811
+ e.replace(t), t.select();
812
+ }
813
+ }, { tag: it }), setTimeout(() => n.focus(), 0);
814
+ }, t[8] = n, t[9] = r, t[10] = v) : v = t[10];
815
+ let y = v, x;
816
+ t[11] === Symbol.for("react.memo_cache_sentinel") ? (x = (e) => {
817
+ e.target.closest("button, input, textarea, [contenteditable='true'], [role='menuitem']") || (e.preventDefault(), l.current?.focus());
818
+ }, t[11] = x) : x = t[11];
819
+ let C = x, w;
820
+ t[12] === Symbol.for("react.memo_cache_sentinel") ? (w = (e) => {
821
+ e.currentTarget.contains(e.relatedTarget) || c(!1);
822
+ }, t[12] = w) : w = t[12];
823
+ let T = w, E;
824
+ t[13] !== y || t[14] !== n || t[15] !== s ? (E = (e) => {
825
+ let t = e.target, r = t.matches("input, textarea") || t.isContentEditable;
826
+ if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "z" && !r) {
827
+ e.preventDefault(), e.stopPropagation(), n.dispatchCommand(e.shiftKey ? st : ut, void 0);
828
+ return;
829
+ }
830
+ r || s && (e.key === "Delete" || e.key === "Backspace") && (e.preventDefault(), e.stopPropagation(), y());
831
+ }, t[13] = y, t[14] = n, t[15] = s, t[16] = E) : E = t[16];
832
+ let D = E, O = String(s), k = s ? "2px solid" : "none", A;
833
+ t[17] === Symbol.for("react.memo_cache_sentinel") ? (A = () => c(!0), t[17] = A) : A = t[17];
834
+ let j;
835
+ t[18] === a ? j = t[19] : (j = Xn(a), t[18] = a, t[19] = j);
836
+ let P;
837
+ t[20] === a ? P = t[21] : (P = Zn(a), t[20] = a, t[21] = P);
838
+ let F;
839
+ t[22] !== h || t[23] !== _ || t[24] !== P ? (F = {
840
+ columns: P,
841
+ onColumnsChange: h,
842
+ onDataChange: _,
843
+ renderHeader: nr,
844
+ renderCell: rr,
845
+ renderCellEditor: ir
846
+ }, t[22] = h, t[23] = _, t[24] = P, t[25] = F) : F = t[25];
847
+ let I;
848
+ t[26] === n ? I = t[27] : (I = n.isEditable(), t[26] = n, t[27] = I);
849
+ let L = !I, R;
850
+ t[28] !== j || t[29] !== F || t[30] !== L ? (R = /* @__PURE__ */ S(i, {
851
+ data: j,
852
+ editMode: F,
853
+ fullWidth: !0,
854
+ getRowId: ar,
855
+ initialPageSize: 30,
856
+ isReadOnly: L
857
+ }), t[28] = j, t[29] = F, t[30] = L, t[31] = R) : R = t[31];
858
+ let z;
859
+ return t[32] !== D || t[33] !== s || t[34] !== R || t[35] !== O || t[36] !== k ? (z = /* @__PURE__ */ S(o, {
860
+ ref: l,
861
+ "data-testid": "markdown-table-node",
862
+ "data-selected": O,
863
+ "aria-label": "Markdown table",
864
+ "aria-selected": s,
865
+ tabIndex: 0,
866
+ outline: k,
867
+ outlineColor: "border.accent-light",
868
+ outlineOffset: "2px",
869
+ borderRadius: "sm",
870
+ onFocus: A,
871
+ onBlur: T,
872
+ onClick: C,
873
+ onKeyDownCapture: D,
874
+ children: R
875
+ }), t[32] = D, t[33] = s, t[34] = R, t[35] = O, t[36] = k, t[37] = z) : z = t[37], z;
876
+ }, $n = class e extends et {
877
+ __table;
878
+ static getType() {
879
+ return "data_table";
880
+ }
881
+ static clone(t) {
882
+ return new e(t.__table, t.__key);
883
+ }
884
+ constructor(e, t) {
885
+ super(t), this.__table = e;
886
+ }
887
+ getTable() {
888
+ return this.getLatest().__table;
889
+ }
890
+ setTable(e) {
891
+ let t = this.getWritable();
892
+ t.__table = e;
893
+ }
894
+ createDOM() {
895
+ return document.createElement("div");
896
+ }
897
+ updateDOM() {
898
+ return !1;
899
+ }
900
+ decorate(e) {
901
+ return /* @__PURE__ */ S(Qn, {
902
+ editor: e,
903
+ nodeKey: this.__key,
904
+ table: this.__table
905
+ });
906
+ }
907
+ exportJSON() {
908
+ return {
909
+ type: "data_table",
910
+ version: 2,
911
+ table: this.__table
912
+ };
913
+ }
914
+ static importJSON(e) {
915
+ return er(e.table);
916
+ }
917
+ getTextContent() {
918
+ return [
919
+ this.__table.columns.map((e) => e.label).join(" | "),
920
+ this.__table.columns.map(() => "---").join(" | "),
921
+ ...this.__table.rows.map((e) => this.__table.columns.map((t) => e.cells[t.id] ?? "").join(" | "))
922
+ ].join("\n");
923
+ }
924
+ }, er = (e) => Le(new $n(e)), tr = (e) => e instanceof $n;
925
+ function nr(e) {
926
+ return /* @__PURE__ */ S(Yn, { value: e.label });
927
+ }
928
+ function rr(e) {
929
+ return /* @__PURE__ */ S(Yn, { value: String(e.value ?? "") });
930
+ }
931
+ function ir(e) {
932
+ let { value: t, onChange: n } = e;
933
+ return /* @__PURE__ */ S(a, {
934
+ autoFocus: !0,
935
+ defaultState: t,
936
+ fullWidth: !0,
937
+ isEditable: !0,
938
+ padding: "xs",
939
+ scrollable: !1,
940
+ onChange: n
941
+ });
942
+ }
943
+ function ar(e) {
944
+ return String(e.id);
945
+ }
946
+ //#endregion
947
+ //#region src/components/rich-text/shared/nodes/MarkdownLinkNode.ts
948
+ var or = (e, t) => Cn(e, "link", t) ?? "about:blank", sr = class e extends _e {
949
+ __source;
950
+ static getType() {
951
+ return "markdown-link";
952
+ }
953
+ static clone(t) {
954
+ return new e(t.__source, t.__url, {
955
+ rel: t.__rel,
956
+ target: t.__target,
957
+ title: t.__title
958
+ }, t.__key);
959
+ }
960
+ constructor(e = "", t, n, r) {
961
+ super(t ?? or(e), n, r), this.__source = e;
962
+ }
963
+ createDOM(e) {
964
+ let t = super.createDOM(e);
965
+ return t.dataset.chatSource = this.__source, t.dataset.chatOrigin = "markdown", t;
966
+ }
967
+ updateDOM(e, t, n) {
968
+ let r = super.updateDOM(e, t, n);
969
+ return t.dataset.chatSource = this.__source, r;
970
+ }
971
+ getSource() {
972
+ return this.__source;
973
+ }
974
+ setResolvedURL(e) {
975
+ return this.getURL() !== e && (this.getWritable().__url = e), this;
976
+ }
977
+ setURL(e) {
978
+ let t = this.getWritable();
979
+ return t.__source = e, t.__url = or(e), t;
980
+ }
981
+ exportJSON() {
982
+ return {
983
+ ...super.exportJSON(),
984
+ source: this.__source,
985
+ type: "markdown-link",
986
+ version: 1
987
+ };
988
+ }
989
+ static importJSON(e) {
990
+ return cr(e.source, void 0, {
991
+ rel: e.rel,
992
+ target: e.target,
993
+ title: e.title
994
+ });
995
+ }
996
+ }, cr = (e, t, n) => Le(new sr(e, or(e, t), n)), lr = (e) => e instanceof sr, ur = w.lazy(() => import("./EquationComponent-DDd5UoIP.js"));
997
+ function dr(e) {
998
+ let t = e.getAttribute("data-lexical-equation"), n = e.getAttribute("data-lexical-inline") === "true";
999
+ return t = atob(t || ""), t ? { node: pr(t, n) } : null;
1000
+ }
1001
+ var fr = class e extends et {
1002
+ __equation;
1003
+ __inline;
1004
+ static getType() {
1005
+ return "equation";
1006
+ }
1007
+ static clone(t) {
1008
+ return new e(t.__equation, t.__inline, t.__key);
1009
+ }
1010
+ constructor(e, t, n) {
1011
+ super(n), this.__equation = e, this.__inline = t ?? !1;
1012
+ }
1013
+ static importJSON(e) {
1014
+ return pr(e.equation, e.inline);
1015
+ }
1016
+ exportJSON() {
1017
+ return {
1018
+ equation: this.getEquation(),
1019
+ inline: this.__inline,
1020
+ type: "equation",
1021
+ version: 1
1022
+ };
1023
+ }
1024
+ createDOM(e) {
1025
+ let t = document.createElement(this.__inline ? "span" : "div");
1026
+ return t.className = "editor-equation", t;
1027
+ }
1028
+ exportDOM() {
1029
+ let e = document.createElement(this.__inline ? "span" : "div"), t = btoa(this.__equation);
1030
+ return e.setAttribute("data-lexical-equation", t), e.setAttribute("data-lexical-inline", `${this.__inline}`), Dt.render(this.__equation, e, {
1031
+ displayMode: !this.__inline,
1032
+ errorColor: "#cc0000",
1033
+ output: "html",
1034
+ strict: "warn",
1035
+ throwOnError: !1,
1036
+ trust: !1
1037
+ }), { element: e };
1038
+ }
1039
+ static importDOM() {
1040
+ return {
1041
+ div: (e) => e.hasAttribute("data-lexical-equation") ? {
1042
+ conversion: dr,
1043
+ priority: 2
1044
+ } : null,
1045
+ span: (e) => e.hasAttribute("data-lexical-equation") ? {
1046
+ conversion: dr,
1047
+ priority: 1
1048
+ } : null
1049
+ };
1050
+ }
1051
+ updateDOM(e) {
1052
+ return this.__inline !== e.__inline;
1053
+ }
1054
+ getTextContent() {
1055
+ return this.__equation;
1056
+ }
1057
+ getEquation() {
1058
+ return this.__equation;
1059
+ }
1060
+ setEquation(e) {
1061
+ let t = this.getWritable();
1062
+ t.__equation = e;
1063
+ }
1064
+ isInline() {
1065
+ return this.__inline;
1066
+ }
1067
+ decorate() {
1068
+ return /* @__PURE__ */ S(E, {
1069
+ fallback: null,
1070
+ children: /* @__PURE__ */ S(ur, {
1071
+ equation: this.__equation,
1072
+ inline: this.__inline
1073
+ })
1074
+ });
1075
+ }
1076
+ };
1077
+ function pr(e = "", t = !1) {
1078
+ let n = new fr(e, t);
1079
+ return Le(n);
1080
+ }
1081
+ function mr(e) {
1082
+ return e instanceof fr;
1083
+ }
1084
+ //#endregion
1085
+ //#region src/components/rich-text/shared/plugins/EquationPlugin/EquationPlugin.tsx
1086
+ var hr = {
1087
+ dependencies: [fr],
1088
+ export: (e) => mr(e) && e.isInline() ? `\\( ${e.getEquation().trim()} \\)` : null,
1089
+ importRegExp: /\\\((.*?)\\\)/,
1090
+ regExp: /\\\((.*?)\\\)/,
1091
+ replace: (e, t) => {
1092
+ let n = pr(t[1].trim(), !0);
1093
+ e.replace(n);
1094
+ },
1095
+ type: "text-match"
1096
+ }, gr = {
1097
+ dependencies: [fr],
1098
+ regExpStart: /\\\[/,
1099
+ regExpEnd: /\\]/,
1100
+ export: (e) => mr(e) && !e.isInline() ? `\\[ ${e.getEquation().trim()} \\]` : null,
1101
+ replace: (e, t, n, r, i) => i ? (e.append(pr(i.join(" "), !1)), !0) : !1,
1102
+ type: "multiline-element"
1103
+ };
1104
+ function _r() {
1105
+ return null;
1106
+ }
1107
+ //#endregion
1108
+ //#region src/components/rich-text/shared/plugins/HorizontalRulePlugin/HorizontalRuleNode.ts
1109
+ var vr = class e extends tt {
1110
+ static getType() {
1111
+ return "hr";
1112
+ }
1113
+ static clone(t) {
1114
+ return new e(t?.__key);
1115
+ }
1116
+ static importJSON(e) {
1117
+ return yr();
1118
+ }
1119
+ exportJSON() {
1120
+ return { ...super.exportJSON() };
1121
+ }
1122
+ createDOM(e, t) {
1123
+ let n = document.createElement("hr");
1124
+ return n.style = "margin: 2rem 0;", n;
1125
+ }
1126
+ updateDOM(e, t, n) {
1127
+ return !1;
1128
+ }
1129
+ decorate(e) {
1130
+ return null;
1131
+ }
1132
+ };
1133
+ function yr() {
1134
+ return new vr();
1135
+ }
1136
+ function br(e) {
1137
+ return e instanceof vr;
1138
+ }
1139
+ //#endregion
1140
+ //#region src/components/rich-text/shared/plugins/MermaidPlugin/MermaidNode.tsx
1141
+ var xr = O(() => import("./MermaidComponent-D7vhkpka.js")), Sr = class e extends et {
1142
+ __code;
1143
+ static getType() {
1144
+ return "mermaid";
1145
+ }
1146
+ static clone(t) {
1147
+ return new e(t.__code, t.__key);
1148
+ }
1149
+ constructor(e, t) {
1150
+ super(t), this.__code = e;
1151
+ }
1152
+ createDOM() {
1153
+ return document.createElement("div");
1154
+ }
1155
+ updateDOM() {
1156
+ return !1;
1157
+ }
1158
+ static importJSON(t) {
1159
+ return new e(t.code);
1160
+ }
1161
+ exportJSON() {
1162
+ return {
1163
+ type: "mermaid",
1164
+ code: this.__code,
1165
+ version: 1
1166
+ };
1167
+ }
1168
+ getTextContent() {
1169
+ return `\`\`\`mermaid\n${this.__code}\n\`\`\``;
1170
+ }
1171
+ getCode() {
1172
+ return this.__code;
1173
+ }
1174
+ setCode(e) {
1175
+ let t = this.getWritable();
1176
+ t.__code = e;
1177
+ }
1178
+ decorate() {
1179
+ return /* @__PURE__ */ S(E, {
1180
+ fallback: null,
1181
+ children: /* @__PURE__ */ S(xr, {
1182
+ code: this.__code,
1183
+ nodeKey: this.__key
1184
+ })
1185
+ });
1186
+ }
1187
+ };
1188
+ function Cr(e) {
1189
+ return e instanceof Sr;
1190
+ }
1191
+ function wr(e) {
1192
+ return Le(new Sr(e));
1193
+ }
1194
+ //#endregion
1195
+ //#region src/components/rich-text/shared/plugins/HorizontalRulePlugin/horizontalRule.ts
1196
+ var Tr = {
1197
+ dependencies: [vr],
1198
+ export: (e) => br(e) ? "***" : null,
1199
+ regExp: /^(---|\*\*\*|___)\s?$/,
1200
+ replace: (e) => {
1201
+ let t = yr();
1202
+ e.replace(t);
1203
+ },
1204
+ type: "element"
1205
+ }, Er = {
1206
+ dependencies: [lt],
1207
+ export: (e, t) => {
1208
+ if (e instanceof lt) {
1209
+ let t = e.getTextContent();
1210
+ if (e.hasFormat("bold")) t = `**${t}**`;
1211
+ else if (e.hasFormat("italic")) t = `*${t}*`;
1212
+ else if (e.hasFormat("underline")) t = `<ins>${t}</ins>`;
1213
+ else return null;
1214
+ return t;
1215
+ }
1216
+ return null;
1217
+ },
1218
+ regExp: /<ins>(.*)<\/ins>/,
1219
+ importRegExp: /<ins>(.*)<\/ins>/,
1220
+ replace: (e, t) => {
1221
+ let n = q(t[1]);
1222
+ n.toggleFormat("underline"), e.replace(n);
1223
+ },
1224
+ type: "text-match"
1225
+ }, Dr = {
1226
+ dependencies: [lt],
1227
+ export: (e, t) => null,
1228
+ regExp: /<u>(.*)<\/u>/,
1229
+ importRegExp: /<u>(.*)<\/u>/,
1230
+ replace: (e, t) => {
1231
+ let n = q(t[1]);
1232
+ n.toggleFormat("underline"), e.replace(n);
1233
+ },
1234
+ type: "text-match"
1235
+ }, Or = /https?:\/\/[^\s<>"']*[^\s<>"'.,:;"')\]}]/, kr = (e) => e.replace(/\\([*_`~\\])/g, "$1"), Ar = (e) => e.replace(/\\/g, "\\\\").replace(/"/g, "\\\""), jr = (e) => e?.replace(/\\(["\\])/g, "$1"), Mr = (e, t, n) => {
1236
+ if (e !== t) return n;
1237
+ let r = t.replace(/([*_`~\\])/g, "\\$1");
1238
+ return n.replace(r, t);
1239
+ }, Nr = [
1240
+ Tr,
1241
+ Er,
1242
+ Dr,
1243
+ {
1244
+ dependencies: [_e],
1245
+ export: (e, t) => {
1246
+ if (!W(e) || U(e)) return null;
1247
+ let n = e.getTitle(), r = kr(e.getURL()), i = Mr(e.getTextContent(), r, t(e));
1248
+ return n == null ? `[${i}](${r})` : `[${i}](${r} "${Ar(n)}")`;
1249
+ },
1250
+ importRegExp: /(?:\[(.+?)\])(?:\((?:([^()\s]+)(?:\s"((?:[^"]*\\")*[^"]*)"\s*)?)\))/,
1251
+ regExp: /(?:\[(.+?)\])(?:\((?:([^()\s]+)(?:\s"((?:[^"]*\\")*[^"]*)"\s*)?)\))$/,
1252
+ replace: (e, t) => {
1253
+ let [, n, r, i] = t, a = kr(r), o = he(a, { title: jr(i) }), s = n.split("[").length - 1, c = n.split("]").length - 1, l = n, u = "";
1254
+ if (s < c) return;
1255
+ if (s > c) {
1256
+ let e = n.split("[");
1257
+ u = `[${e[0]}`, l = e.slice(1).join("[");
1258
+ }
1259
+ let d = kr(l), f = q(d === a ? a : d);
1260
+ return f.setFormat(e.getFormat()), o.append(f), e.replace(o), u && o.insertBefore(q(u)), f;
1261
+ },
1262
+ trigger: ")",
1263
+ type: "text-match"
1264
+ },
1265
+ {
1266
+ dependencies: [ge],
1267
+ export: (e, t) => {
1268
+ if (!U(e)) return null;
1269
+ let n = kr(e.getURL());
1270
+ return Mr(e.getTextContent(), n, t(e));
1271
+ },
1272
+ regExp: Or,
1273
+ importRegExp: Or,
1274
+ replace: (e, t) => {
1275
+ let n = kr(t[0]), r = me(n), i = q(n);
1276
+ i.setFormat(e.getFormat()), r.append(i), e.replace(r);
1277
+ },
1278
+ type: "text-match"
1279
+ }
1280
+ ], Pr = [
1281
+ Fe,
1282
+ _e,
1283
+ ge,
1284
+ sr,
1285
+ Rn,
1286
+ Gn,
1287
+ $n,
1288
+ Pe,
1289
+ Ee,
1290
+ Te,
1291
+ gt,
1292
+ ht,
1293
+ Sr,
1294
+ fr,
1295
+ vr,
1296
+ en
1297
+ ], Fr = [
1298
+ Oe,
1299
+ ...Ae.filter((e) => e !== ke),
1300
+ ...Nr,
1301
+ hr,
1302
+ gr,
1303
+ an
1304
+ ], Ir = on;
1305
+ //#endregion
1306
+ //#region src/components/rich-text/shared/plugins/CodePlugin/CodeBlockActionsPlugin.tsx
1307
+ function Lr(e) {
1308
+ let t = J();
1309
+ if (!Y(t)) return null;
1310
+ let n = t.anchor.getNode(), r = mt(n) ? n : Z(n, (e) => mt(e));
1311
+ if (!mt(r)) return null;
1312
+ let i = e.getElementByKey(r.getKey());
1313
+ return i instanceof HTMLElement ? i : null;
1314
+ }
1315
+ function Rr(e) {
1316
+ return e instanceof HTMLElement ? e.closest(".rich-text__code") : null;
1317
+ }
1318
+ function zr(e, t) {
1319
+ let n = e.getBoundingClientRect(), r = t.getBoundingClientRect();
1320
+ return {
1321
+ top: r.top - n.top + 6,
1322
+ left: r.right - n.left - 30
1323
+ };
1324
+ }
1325
+ function Br(e) {
1326
+ let n = b(31), { anchorElem: r } = e, [i] = X(), [a, o] = N(null), [s, c] = N(!1), l = M(null), u, d;
1327
+ n[0] === Symbol.for("react.memo_cache_sentinel") ? (u = () => () => {
1328
+ l.current !== null && window.clearTimeout(l.current);
1329
+ }, d = [], n[0] = u, n[1] = d) : (u = n[0], d = n[1]), A(u, d);
1330
+ let f, m;
1331
+ n[2] === i ? (f = n[3], m = n[4]) : (f = () => {
1332
+ let e = i.getRootElement();
1333
+ if (!e) return;
1334
+ let t = (e) => {
1335
+ let t = Rr(e.target);
1336
+ o(t instanceof HTMLElement ? t : null);
1337
+ }, n = () => {
1338
+ i.getEditorState().read(() => {
1339
+ let e = Lr(i);
1340
+ o(e);
1341
+ });
1342
+ };
1343
+ return e.addEventListener("pointermove", t), e.addEventListener("pointerleave", n), () => {
1344
+ e.removeEventListener("pointermove", t), e.removeEventListener("pointerleave", n);
1345
+ };
1346
+ }, m = [i], n[2] = i, n[3] = f, n[4] = m), A(f, m);
1347
+ let h, g;
1348
+ if (n[5] === i ? (h = n[6], g = n[7]) : (h = () => Ot(i.registerUpdateListener((e) => {
1349
+ let { editorState: t } = e;
1350
+ t.read(() => {
1351
+ let e = Lr(i);
1352
+ e && o(e);
1353
+ });
1354
+ }), i.registerCommand(ct, () => (i.getEditorState().read(() => {
1355
+ let e = Lr(i);
1356
+ if (!e) {
1357
+ o(Vr);
1358
+ return;
1359
+ }
1360
+ o(e);
1361
+ }), !1), Ze)), g = [i], n[5] = i, n[6] = h, n[7] = g), A(h, g), !r || !a) return null;
1362
+ let _;
1363
+ n[8] !== a || n[9] !== r ? (_ = zr(r, a), n[8] = a, n[9] = r, n[10] = _) : _ = n[10];
1364
+ let v = _, y;
1365
+ n[11] !== v.left || n[12] !== v.top ? (y = {
1366
+ position: "absolute",
1367
+ top: v.top,
1368
+ left: v.left
1369
+ }, n[11] = v.left, n[12] = v.top, n[13] = y) : y = n[13];
1370
+ let x = y, C = s ? "Copied" : "Copy code", w = s ? "Copied" : "Copy code", T;
1371
+ n[14] === a.textContent ? T = n[15] : (T = async () => {
1372
+ let e = a.textContent ?? "";
1373
+ try {
1374
+ await navigator.clipboard.writeText(e), c(!0), l.current !== null && window.clearTimeout(l.current), l.current = window.setTimeout(() => {
1375
+ c(!1);
1376
+ }, 1200);
1377
+ } catch {
1378
+ c(!1);
1379
+ }
1380
+ }, n[14] = a.textContent, n[15] = T);
1381
+ let E;
1382
+ n[16] === s ? E = n[17] : (E = S(s ? P : L, { size: 14 }), n[16] = s, n[17] = E);
1383
+ let D;
1384
+ n[18] !== w || n[19] !== T || n[20] !== E ? (D = /* @__PURE__ */ S(p, {
1385
+ "aria-label": w,
1386
+ variant: "subtle",
1387
+ size: "xs",
1388
+ onClick: T,
1389
+ children: E
1390
+ }), n[18] = w, n[19] = T, n[20] = E, n[21] = D) : D = n[21];
1391
+ let O;
1392
+ n[22] !== D || n[23] !== C ? (O = /* @__PURE__ */ S(t, {
1393
+ content: C,
1394
+ children: D
1395
+ }), n[22] = D, n[23] = C, n[24] = O) : O = n[24];
1396
+ let k;
1397
+ n[25] !== x || n[26] !== O ? (k = /* @__PURE__ */ S("div", {
1398
+ className: "code-block-actions",
1399
+ style: x,
1400
+ children: O
1401
+ }), n[25] = x, n[26] = O, n[27] = k) : k = n[27];
1402
+ let j;
1403
+ return n[28] !== r || n[29] !== k ? (j = At(k, r), n[28] = r, n[29] = k, n[30] = j) : j = n[30], j;
1404
+ }
1405
+ function Vr(e) {
1406
+ return e?.matches(":hover") ? e : null;
1407
+ }
1408
+ //#endregion
1409
+ //#region src/components/rich-text/shared/plugins/CodePlugin/CodeBlockPlugin.tsx
1410
+ function Hr(e) {
1411
+ return e.trim().toLowerCase() === "mermaid";
1412
+ }
1413
+ function Ur(e) {
1414
+ return Hr(e.getLanguage() ?? "plaintext") ? (e.replace(new Sr(e.getTextContent())), !0) : !1;
1415
+ }
1416
+ function Wr() {
1417
+ let e = b(3), [t] = X(), n, r;
1418
+ return e[0] === t ? (n = e[1], r = e[2]) : (n = () => {
1419
+ t.update(Gr);
1420
+ }, r = [t], e[0] = t, e[1] = n, e[2] = r), A(n, r), null;
1421
+ }
1422
+ function Gr() {
1423
+ let e = Je(gt);
1424
+ for (let t of e) Ur(t);
1425
+ }
1426
+ //#endregion
1427
+ //#region src/components/rich-text/shared/plugins/CodePlugin/CodeHighlightingPlugin.tsx
1428
+ function Kr() {
1429
+ let e = b(3), [t] = X(), n, r;
1430
+ return e[0] === t ? (n = e[1], r = e[2]) : (n = () => _t(t), r = [t], e[0] = t, e[1] = n, e[2] = r), A(n, r), null;
1431
+ }
1432
+ //#endregion
1433
+ //#region src/components/rich-text/shared/plugins/LinkEditorPlugin/commands.ts
1434
+ var qr = dt("TOGGLE_LINK_EDIT_MODE_COMMAND");
1435
+ //#endregion
1436
+ //#region src/components/rich-text/shared/plugins/LinkEditorPlugin/utils/getSelectedNode.ts
1437
+ function Jr(e) {
1438
+ let t = e.anchor, n = e.focus, r = e.anchor.getNode(), i = e.focus.getNode();
1439
+ return r === i ? r : e.isBackward() ? jt(n) ? r : i : jt(t) ? r : i;
1440
+ }
1441
+ //#endregion
1442
+ //#region src/components/rich-text/shared/plugins/LinkEditorPlugin/utils/setFloatingElemPos.ts
1443
+ var Yr = 10, Xr = 5;
1444
+ function Zr(e, t, n, r = Yr, i = Xr, a = "legacy", o = "anchor") {
1445
+ let s = n.parentElement;
1446
+ if (e === null || !s) {
1447
+ t.style.opacity = "0", t.style.transform = "translate(-10000px, -10000px)";
1448
+ return;
1449
+ }
1450
+ let c = t.getBoundingClientRect(), l = n.getBoundingClientRect(), u = o === "viewport" ? new DOMRect(0, 0, document.documentElement.clientWidth, document.documentElement.clientHeight) : s.getBoundingClientRect(), d = a === "above" ? e.top - c.height - r : e.top - r, f = e.left - i;
1451
+ d < u.top && (d = a === "above" ? e.bottom + r : d + c.height + e.height + r * 2), f + c.width > u.right && (f = u.right - c.width - i), d + c.height > u.bottom && (d = e.top - c.height - Math.abs(r)), o === "anchor" && (d -= l.top, f -= l.left), t.style.opacity = "1", t.style.transform = `translate(${f}px, ${d}px)`;
1452
+ }
1453
+ //#endregion
1454
+ //#region src/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/floating-toolbar-buttons.tsx
1455
+ function Qr() {
1456
+ let e = b(1), t;
1457
+ return e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ S("span", { style: {
1458
+ display: "inline-flex",
1459
+ height: "1rem",
1460
+ margin: "0 0.25rem",
1461
+ borderLeft: "1px solid var(--chakra-colors-border-subtle)"
1462
+ } }), e[0] = t) : t = e[0], t;
1463
+ }
1464
+ function $r(e) {
1465
+ let n = b(88), { editor: r, blockType: i, isBold: a, isItalic: o, isUnderline: s, isCode: c, isLink: l, formatHeading: u, formatList: d, formatQuote: f, insertLink: m } = e, h = a || void 0, g;
1466
+ n[0] === r ? g = n[1] : (g = () => r.dispatchCommand(nt, "bold"), n[0] = r, n[1] = g);
1467
+ let y;
1468
+ n[2] === Symbol.for("react.memo_cache_sentinel") ? (y = /* @__PURE__ */ S(v, {
1469
+ fontWeight: "bold",
1470
+ fontSize: ".75rem",
1471
+ children: "B"
1472
+ }), n[2] = y) : y = n[2];
1473
+ let x;
1474
+ n[3] !== h || n[4] !== g ? (x = /* @__PURE__ */ S(t, {
1475
+ content: "Bold",
1476
+ children: /* @__PURE__ */ S(p, {
1477
+ "data-active": h,
1478
+ onClick: g,
1479
+ variant: "ghost",
1480
+ "aria-label": "Bold",
1481
+ size: "xs",
1482
+ children: y
1483
+ })
1484
+ }), n[3] = h, n[4] = g, n[5] = x) : x = n[5];
1485
+ let w = o || void 0, T;
1486
+ n[6] === r ? T = n[7] : (T = () => r.dispatchCommand(nt, "italic"), n[6] = r, n[7] = T);
1487
+ let E;
1488
+ n[8] === Symbol.for("react.memo_cache_sentinel") ? (E = /* @__PURE__ */ S(v, {
1489
+ fontStyle: "italic",
1490
+ fontSize: ".75rem",
1491
+ children: "I"
1492
+ }), n[8] = E) : E = n[8];
1493
+ let D;
1494
+ n[9] !== w || n[10] !== T ? (D = /* @__PURE__ */ S(t, {
1495
+ content: "Italic",
1496
+ children: /* @__PURE__ */ S(p, {
1497
+ "data-active": w,
1498
+ onClick: T,
1499
+ variant: "ghost",
1500
+ "aria-label": "Italic",
1501
+ size: "xs",
1502
+ children: E
1503
+ })
1504
+ }), n[9] = w, n[10] = T, n[11] = D) : D = n[11];
1505
+ let O = s || void 0, k;
1506
+ n[12] === r ? k = n[13] : (k = () => r.dispatchCommand(nt, "underline"), n[12] = r, n[13] = k);
1507
+ let A;
1508
+ n[14] === Symbol.for("react.memo_cache_sentinel") ? (A = /* @__PURE__ */ S(v, {
1509
+ textDecoration: "underline",
1510
+ fontSize: ".75rem",
1511
+ children: "U"
1512
+ }), n[14] = A) : A = n[14];
1513
+ let j;
1514
+ n[15] !== O || n[16] !== k ? (j = /* @__PURE__ */ S(t, {
1515
+ content: "Underline",
1516
+ children: /* @__PURE__ */ S(p, {
1517
+ "data-active": O,
1518
+ onClick: k,
1519
+ variant: "ghost",
1520
+ "aria-label": "Underline",
1521
+ size: "xs",
1522
+ children: A
1523
+ })
1524
+ }), n[15] = O, n[16] = k, n[17] = j) : j = n[17];
1525
+ let M;
1526
+ n[18] === Symbol.for("react.memo_cache_sentinel") ? (M = /* @__PURE__ */ S(Qr, {}), n[18] = M) : M = n[18];
1527
+ let N = i === "h1" || void 0, P;
1528
+ n[19] === u ? P = n[20] : (P = () => u("h1"), n[19] = u, n[20] = P);
1529
+ let I;
1530
+ n[21] === Symbol.for("react.memo_cache_sentinel") ? (I = /* @__PURE__ */ S(v, {
1531
+ fontWeight: "thin",
1532
+ fontSize: ".8rem",
1533
+ children: "H1"
1534
+ }), n[21] = I) : I = n[21];
1535
+ let L;
1536
+ n[22] !== N || n[23] !== P ? (L = /* @__PURE__ */ S(t, {
1537
+ content: "Heading 1",
1538
+ children: /* @__PURE__ */ S(p, {
1539
+ "data-active": N,
1540
+ variant: "ghost",
1541
+ "aria-label": "Heading 1",
1542
+ size: "xs",
1543
+ onClick: P,
1544
+ children: I
1545
+ })
1546
+ }), n[22] = N, n[23] = P, n[24] = L) : L = n[24];
1547
+ let R = i === "h2" || void 0, B;
1548
+ n[25] === u ? B = n[26] : (B = () => u("h2"), n[25] = u, n[26] = B);
1549
+ let V;
1550
+ n[27] === Symbol.for("react.memo_cache_sentinel") ? (V = /* @__PURE__ */ S(v, {
1551
+ fontWeight: "thin",
1552
+ fontSize: ".8rem",
1553
+ children: "H2"
1554
+ }), n[27] = V) : V = n[27];
1555
+ let H;
1556
+ n[28] !== R || n[29] !== B ? (H = /* @__PURE__ */ S(t, {
1557
+ content: "Heading 2",
1558
+ children: /* @__PURE__ */ S(p, {
1559
+ "data-active": R,
1560
+ variant: "ghost",
1561
+ "aria-label": "Heading 2",
1562
+ size: "xs",
1563
+ onClick: B,
1564
+ children: V
1565
+ })
1566
+ }), n[28] = R, n[29] = B, n[30] = H) : H = n[30];
1567
+ let ie = i === "h3" || void 0, ae;
1568
+ n[31] === u ? ae = n[32] : (ae = () => u("h3"), n[31] = u, n[32] = ae);
1569
+ let oe;
1570
+ n[33] === Symbol.for("react.memo_cache_sentinel") ? (oe = /* @__PURE__ */ S(v, {
1571
+ fontWeight: "thin",
1572
+ fontSize: ".8rem",
1573
+ children: "H3"
1574
+ }), n[33] = oe) : oe = n[33];
1575
+ let se;
1576
+ n[34] !== ie || n[35] !== ae ? (se = /* @__PURE__ */ S(t, {
1577
+ content: "Heading 3",
1578
+ children: /* @__PURE__ */ S(p, {
1579
+ "data-active": ie,
1580
+ variant: "ghost",
1581
+ "aria-label": "Heading 3",
1582
+ size: "xs",
1583
+ onClick: ae,
1584
+ children: oe
1585
+ })
1586
+ }), n[34] = ie, n[35] = ae, n[36] = se) : se = n[36];
1587
+ let ce;
1588
+ n[37] === Symbol.for("react.memo_cache_sentinel") ? (ce = /* @__PURE__ */ S(Qr, {}), n[37] = ce) : ce = n[37];
1589
+ let le = c || void 0, ue;
1590
+ n[38] === r ? ue = n[39] : (ue = () => r.dispatchCommand(nt, "code"), n[38] = r, n[39] = ue);
1591
+ let de;
1592
+ n[40] === Symbol.for("react.memo_cache_sentinel") ? (de = /* @__PURE__ */ S(F, { size: 14 }), n[40] = de) : de = n[40];
1593
+ let fe;
1594
+ n[41] !== le || n[42] !== ue ? (fe = /* @__PURE__ */ S(t, {
1595
+ content: "Inline Code",
1596
+ children: /* @__PURE__ */ S(p, {
1597
+ "data-active": le,
1598
+ onClick: ue,
1599
+ variant: "ghost",
1600
+ "aria-label": "Inline Code",
1601
+ size: "xs",
1602
+ children: de
1603
+ })
1604
+ }), n[41] = le, n[42] = ue, n[43] = fe) : fe = n[43];
1605
+ let pe = l ? "Remove Link" : "Insert Link", me = l || void 0, he = l ? "Remove Link" : "Insert Link", U;
1606
+ n[44] === Symbol.for("react.memo_cache_sentinel") ? (U = /* @__PURE__ */ S(z, { size: 14 }), n[44] = U) : U = n[44];
1607
+ let W;
1608
+ n[45] !== m || n[46] !== me || n[47] !== he ? (W = /* @__PURE__ */ S(p, {
1609
+ "data-active": me,
1610
+ variant: "ghost",
1611
+ "aria-label": he,
1612
+ size: "xs",
1613
+ onClick: m,
1614
+ children: U
1615
+ }), n[45] = m, n[46] = me, n[47] = he, n[48] = W) : W = n[48];
1616
+ let ge;
1617
+ n[49] !== pe || n[50] !== W ? (ge = /* @__PURE__ */ S(t, {
1618
+ content: pe,
1619
+ children: W
1620
+ }), n[49] = pe, n[50] = W, n[51] = ge) : ge = n[51];
1621
+ let _e = i === "quote" || void 0, ve;
1622
+ n[52] === Symbol.for("react.memo_cache_sentinel") ? (ve = /* @__PURE__ */ S(re, { size: 14 }), n[52] = ve) : ve = n[52];
1623
+ let ye;
1624
+ n[53] !== f || n[54] !== _e ? (ye = /* @__PURE__ */ S(t, {
1625
+ content: "Quote",
1626
+ children: /* @__PURE__ */ S(p, {
1627
+ "data-active": _e,
1628
+ variant: "ghost",
1629
+ "aria-label": "Quote",
1630
+ size: "xs",
1631
+ onClick: f,
1632
+ children: ve
1633
+ })
1634
+ }), n[53] = f, n[54] = _e, n[55] = ye) : ye = n[55];
1635
+ let be;
1636
+ n[56] === Symbol.for("react.memo_cache_sentinel") ? (be = /* @__PURE__ */ S(Qr, {}), n[56] = be) : be = n[56];
1637
+ let xe = i === "bullet" || void 0, G;
1638
+ n[57] === d ? G = n[58] : (G = () => d("bullet"), n[57] = d, n[58] = G);
1639
+ let Se;
1640
+ n[59] === Symbol.for("react.memo_cache_sentinel") ? (Se = /* @__PURE__ */ S(ee, { size: 14 }), n[59] = Se) : Se = n[59];
1641
+ let Ce;
1642
+ n[60] !== xe || n[61] !== G ? (Ce = /* @__PURE__ */ S(t, {
1643
+ content: "Bulleted List",
1644
+ children: /* @__PURE__ */ S(p, {
1645
+ "data-active": xe,
1646
+ variant: "ghost",
1647
+ "aria-label": "Bulleted List",
1648
+ size: "xs",
1649
+ onClick: G,
1650
+ children: Se
1651
+ })
1652
+ }), n[60] = xe, n[61] = G, n[62] = Ce) : Ce = n[62];
1653
+ let we = i === "number" || void 0, Te;
1654
+ n[63] === d ? Te = n[64] : (Te = () => d("number"), n[63] = d, n[64] = Te);
1655
+ let Ee;
1656
+ n[65] === Symbol.for("react.memo_cache_sentinel") ? (Ee = /* @__PURE__ */ S(te, { size: 14 }), n[65] = Ee) : Ee = n[65];
1657
+ let De;
1658
+ n[66] !== we || n[67] !== Te ? (De = /* @__PURE__ */ S(t, {
1659
+ content: "Numbered List",
1660
+ children: /* @__PURE__ */ S(p, {
1661
+ "data-active": we,
1662
+ variant: "ghost",
1663
+ "aria-label": "Numbered List",
1664
+ size: "xs",
1665
+ onClick: Te,
1666
+ children: Ee
1667
+ })
1668
+ }), n[66] = we, n[67] = Te, n[68] = De) : De = n[68];
1669
+ let Oe = i === "check" || void 0, ke;
1670
+ n[69] === d ? ke = n[70] : (ke = () => d("check"), n[69] = d, n[70] = ke);
1671
+ let Ae;
1672
+ n[71] === Symbol.for("react.memo_cache_sentinel") ? (Ae = /* @__PURE__ */ S(ne, { size: 14 }), n[71] = Ae) : Ae = n[71];
1673
+ let K;
1674
+ n[72] !== Oe || n[73] !== ke ? (K = /* @__PURE__ */ S(t, {
1675
+ content: "Check List",
1676
+ children: /* @__PURE__ */ S(p, {
1677
+ "data-active": Oe,
1678
+ variant: "ghost",
1679
+ "aria-label": "Check List",
1680
+ size: "xs",
1681
+ onClick: ke,
1682
+ children: Ae
1683
+ })
1684
+ }), n[72] = Oe, n[73] = ke, n[74] = K) : K = n[74];
1685
+ let je;
1686
+ return n[75] !== j || n[76] !== L || n[77] !== H || n[78] !== se || n[79] !== fe || n[80] !== x || n[81] !== ge || n[82] !== ye || n[83] !== Ce || n[84] !== De || n[85] !== K || n[86] !== D ? (je = /* @__PURE__ */ C(_, {
1687
+ direction: "row",
1688
+ gap: "0.5",
1689
+ alignItems: "center",
1690
+ children: [
1691
+ x,
1692
+ D,
1693
+ j,
1694
+ M,
1695
+ L,
1696
+ H,
1697
+ se,
1698
+ ce,
1699
+ fe,
1700
+ ge,
1701
+ ye,
1702
+ be,
1703
+ Ce,
1704
+ De,
1705
+ K
1706
+ ]
1707
+ }), n[75] = j, n[76] = L, n[77] = H, n[78] = se, n[79] = fe, n[80] = x, n[81] = ge, n[82] = ye, n[83] = Ce, n[84] = De, n[85] = K, n[86] = D, n[87] = je) : je = n[87], je;
1708
+ }
1709
+ //#endregion
1710
+ //#region src/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/resolve-block-type.ts
1711
+ var ei = {
1712
+ bullet: "Bulleted List",
1713
+ check: "Check List",
1714
+ code: "Code Block",
1715
+ h1: "Heading 1",
1716
+ h2: "Heading 2",
1717
+ h3: "Heading 3",
1718
+ h4: "Heading 4",
1719
+ h5: "Heading 5",
1720
+ h6: "Heading 6",
1721
+ number: "Numbered List",
1722
+ paragraph: "Normal",
1723
+ quote: "Quote"
1724
+ }, ti = (e) => e in ei ? e : null, ni = (e) => (e.getKey() === "root" ? e : Z(e, (e) => {
1725
+ let t = e.getParent();
1726
+ return t !== null && Ke(t);
1727
+ })) ?? e.getTopLevelElementOrThrow(), ri = (e) => {
1728
+ let t = ni(e);
1729
+ if (G(t)) return t.getListType();
1730
+ let n = Z(e, (e) => G(e));
1731
+ return n !== null && G(n) ? n.getListType() : ti(Me(t) ? t.getTag() : t.getType());
1732
+ };
1733
+ //#endregion
1734
+ //#region src/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/should-show-floating-toolbar.ts
1735
+ function ii(e) {
1736
+ let { hasSelection: t, isRangeSelection: n, isCollapsed: r, hasNativeSelection: i, hasNativeRange: a, isAnchorInsideEditor: o, isEditorEditable: s, isPointerSelecting: c } = e;
1737
+ return t && n && !r && i && a && o && s && !c;
1738
+ }
1739
+ //#endregion
1740
+ //#region src/components/rich-text/shared/plugins/FloatingTextFormatToolbarPlugin/FloatingTextFormatToolbarPlugin.tsx
1741
+ var ai = -4;
1742
+ function oi({ editor: e, anchorElem: t, isToolbarActive: n, setIsToolbarActive: r }) {
1743
+ let i = M(null), [a, s] = N("paragraph"), [c, l] = N(!1), [u, d] = N(!1), [f, p] = N(!1), [m, h] = N(!1), [g, _] = N(!1), v = M(!1), y = M(() => void 0), b = (t) => {
1744
+ e.update(() => {
1745
+ let e = J();
1746
+ if (Y(e)) {
1747
+ if (a === t) {
1748
+ Mt(e, ze);
1749
+ return;
1750
+ }
1751
+ Mt(e, () => K(t));
1752
+ }
1753
+ });
1754
+ }, x = (t) => {
1755
+ if (a === t) {
1756
+ e.dispatchCommand(De, void 0);
1757
+ return;
1758
+ }
1759
+ let n = {
1760
+ bullet: we,
1761
+ number: Ce,
1762
+ check: Se
1763
+ }[t];
1764
+ e.dispatchCommand(n, void 0);
1765
+ }, C = () => {
1766
+ e.update(() => {
1767
+ let e = J();
1768
+ if (Y(e)) {
1769
+ if (a === "quote") {
1770
+ Mt(e, ze);
1771
+ return;
1772
+ }
1773
+ Mt(e, je);
1774
+ }
1775
+ });
1776
+ }, w = () => {
1777
+ if (g) {
1778
+ e.dispatchCommand(ve, null);
1779
+ return;
1780
+ }
1781
+ e.dispatchCommand(qr, !0);
1782
+ }, T = () => {
1783
+ let e = J();
1784
+ if (!Y(e)) return;
1785
+ l(e.hasFormat("bold")), d(e.hasFormat("italic")), p(e.hasFormat("underline")), h(e.hasFormat("code"));
1786
+ let t = Jr(e), n = Z(t, W), r = Z(t, U);
1787
+ _(n !== null || r !== null);
1788
+ let i = ri(e.anchor.getNode());
1789
+ i && s(i);
1790
+ };
1791
+ return y.current = () => {
1792
+ let n = J(), a = i.current, o = window.getSelection();
1793
+ if (a === null) return;
1794
+ let s = e.getRootElement(), c = o !== null, l = c && o.rangeCount > 0, u = !!s?.contains(c ? o.anchorNode : null);
1795
+ if (ii({
1796
+ hasSelection: n !== null,
1797
+ isRangeSelection: Y(n),
1798
+ isCollapsed: Y(n) ? n.isCollapsed() : !1,
1799
+ hasNativeSelection: c,
1800
+ hasNativeRange: l,
1801
+ isAnchorInsideEditor: u,
1802
+ isEditorEditable: e.isEditable(),
1803
+ isPointerSelecting: v.current
1804
+ }) && o) {
1805
+ let e = o.getRangeAt(0).getBoundingClientRect();
1806
+ e && Zr(new DOMRect(e.left, e.bottom, 0, 0), a, t, ai, void 0, "legacy", "viewport"), r(!0);
1807
+ } else s !== null && Zr(null, a, t, void 0, void 0, "legacy", "viewport"), r(!1);
1808
+ return T(), !0;
1809
+ }, A(() => {
1810
+ let t = e.getRootElement();
1811
+ if (!t) return;
1812
+ let n = t.ownerDocument, i = () => {
1813
+ v.current = !0, r(!1);
1814
+ }, a = () => {
1815
+ v.current && (v.current = !1, e.getEditorState().read(() => {
1816
+ y.current();
1817
+ }));
1818
+ };
1819
+ return t.addEventListener("pointerdown", i), n.addEventListener("pointerup", a), n.addEventListener("pointercancel", a), () => {
1820
+ t.removeEventListener("pointerdown", i), n.removeEventListener("pointerup", a), n.removeEventListener("pointercancel", a);
1821
+ };
1822
+ }, [e, r]), A(() => {
1823
+ let n = t.ownerDocument, r = () => {
1824
+ e.getEditorState().read(() => {
1825
+ y.current();
1826
+ });
1827
+ };
1828
+ return window.addEventListener("resize", r), n.addEventListener("scroll", r, !0), () => {
1829
+ window.removeEventListener("resize", r), n.removeEventListener("scroll", r, !0);
1830
+ };
1831
+ }, [t, e]), A(() => Ot(e.registerUpdateListener(({ editorState: e }) => {
1832
+ e.read(() => {
1833
+ y.current();
1834
+ });
1835
+ }), e.registerCommand(ct, (e) => (y.current(), !1), Ze), e.registerCommand(Xe, (e) => {
1836
+ let t = J();
1837
+ return Y(t) && y.current(), !1;
1838
+ }, Qe)), [e]), /* @__PURE__ */ S(o, {
1839
+ ref: i,
1840
+ zIndex: "tooltip",
1841
+ className: `floating-text-format-toolbar ${n ? "active" : ""}`,
1842
+ children: /* @__PURE__ */ S($r, {
1843
+ editor: e,
1844
+ blockType: a,
1845
+ isBold: c,
1846
+ isItalic: u,
1847
+ isUnderline: f,
1848
+ isCode: m,
1849
+ isLink: g,
1850
+ formatHeading: b,
1851
+ formatList: x,
1852
+ formatQuote: C,
1853
+ insertLink: w
1854
+ })
1855
+ });
1856
+ }
1857
+ function si(e) {
1858
+ let t = b(4), { anchorElem: n } = e, r = n === void 0 ? document.body : n, [i] = X(), [a, o] = N(!1), s;
1859
+ return t[0] !== r || t[1] !== i || t[2] !== a ? (s = At(/* @__PURE__ */ S(oi, {
1860
+ editor: i,
1861
+ anchorElem: r,
1862
+ isToolbarActive: a,
1863
+ setIsToolbarActive: o
1864
+ }), document.body), t[0] = r, t[1] = i, t[2] = a, t[3] = s) : s = t[3], s;
1865
+ }
1866
+ //#endregion
1867
+ //#region src/components/rich-text/shared/plugins/list-marker-width-plugin.tsx
1868
+ function ci() {
1869
+ let e = b(3), [t] = X(), n, r;
1870
+ return e[0] === t ? (n = e[1], r = e[2]) : (n = () => t.registerMutationListener(Ee, (e) => {
1871
+ for (let [n, r] of e) {
1872
+ if (r === "destroyed") continue;
1873
+ let e = t.getElementByKey(n);
1874
+ if (!(e instanceof HTMLOListElement)) continue;
1875
+ let i = [...e.children].flatMap(li);
1876
+ e.style.setProperty("--rich-text-list-digits", String(Math.max(e.start, ...i)).length.toString());
1877
+ }
1878
+ }), r = [t], e[0] = t, e[1] = n, e[2] = r), A(n, r), null;
1879
+ }
1880
+ function li(e) {
1881
+ return e instanceof HTMLLIElement ? [e.value] : [];
1882
+ }
1883
+ //#endregion
1884
+ //#region src/components/rich-text/shared/markdown-export.ts
1885
+ var ui = (e) => {
1886
+ let t = e.hasFormat("code") ? {
1887
+ type: "inlineCode",
1888
+ value: e.getTextContent()
1889
+ } : {
1890
+ type: "text",
1891
+ value: e.getTextContent()
1892
+ };
1893
+ return e.hasFormat("code") || (e.hasFormat("bold") && (t = {
1894
+ type: "strong",
1895
+ children: [t]
1896
+ }), e.hasFormat("italic") && (t = {
1897
+ type: "emphasis",
1898
+ children: [t]
1899
+ }), e.hasFormat("strikethrough") && (t = {
1900
+ type: "delete",
1901
+ children: [t]
1902
+ })), e.hasFormat("underline") ? [
1903
+ {
1904
+ type: "html",
1905
+ value: "<ins>"
1906
+ },
1907
+ t,
1908
+ {
1909
+ type: "html",
1910
+ value: "</ins>"
1911
+ }
1912
+ ] : [t];
1913
+ }, di = (e) => {
1914
+ if (qe(e)) return ui(e);
1915
+ if (We(e)) return [{ type: "break" }];
1916
+ if (Bn(e)) return [{
1917
+ type: "image",
1918
+ url: e.getSource(),
1919
+ alt: e.getAlt(),
1920
+ title: e.getTitle()
1921
+ }];
1922
+ if (mr(e) && e.isInline()) return [{
1923
+ type: "inlineMath",
1924
+ value: e.getEquation()
1925
+ }];
1926
+ if (qn(e)) return [{
1927
+ type: "html",
1928
+ value: e.getSource()
1929
+ }];
1930
+ if (nn(e)) return [{
1931
+ type: "text",
1932
+ value: e.getTextContent()
1933
+ }];
1934
+ if (W(e)) return [{
1935
+ type: "link",
1936
+ url: lr(e) ? e.getSource() : e.getURL(),
1937
+ title: e.getTitle(),
1938
+ children: fi(e)
1939
+ }];
1940
+ if (He(e)) return fi(e);
1941
+ let t = e.getTextContent();
1942
+ return t ? [{
1943
+ type: "text",
1944
+ value: t
1945
+ }] : [];
1946
+ }, fi = (e) => e.getChildren().flatMap(di), pi = (e) => {
1947
+ let t = [], n = [], r = () => {
1948
+ n.length && t.push({
1949
+ type: "paragraph",
1950
+ children: n.splice(0)
1951
+ });
1952
+ };
1953
+ for (let i of e.getChildren()) if (qe(i) || We(i) || Ue(i)) n.push(...di(i));
1954
+ else {
1955
+ r();
1956
+ let e = yi(i);
1957
+ e && t.push(e);
1958
+ }
1959
+ return r(), t;
1960
+ }, mi = (e) => ({
1961
+ type: "paragraph",
1962
+ children: fi(e)
1963
+ }), hi = (e) => {
1964
+ let t = [], n = [];
1965
+ for (let r of e.getChildren()) G(r) ? (n.length && t.push({
1966
+ type: "paragraph",
1967
+ children: n.splice(0)
1968
+ }), t.push(gi(r))) : Ge(r) ? (n.length && t.push({
1969
+ type: "paragraph",
1970
+ children: n.splice(0)
1971
+ }), t.push(mi(r))) : n.push(...di(r));
1972
+ return (n.length || t.length === 0) && t.unshift({
1973
+ type: "paragraph",
1974
+ children: n
1975
+ }), {
1976
+ type: "listItem",
1977
+ checked: e.getChecked(),
1978
+ spread: !1,
1979
+ children: t
1980
+ };
1981
+ }, gi = (e) => ({
1982
+ type: "list",
1983
+ ordered: e.getListType() === "number",
1984
+ start: e.getListType() === "number" ? e.getStart() : null,
1985
+ spread: !1,
1986
+ children: e.getChildren().filter(xe).map(hi)
1987
+ }), _i = (e) => ({
1988
+ type: "tableCell",
1989
+ children: _n(e)
1990
+ }), vi = (e) => {
1991
+ let t = e.getTable();
1992
+ return {
1993
+ type: "table",
1994
+ align: t.columns.map((e) => e.alignment),
1995
+ children: [{
1996
+ type: "tableRow",
1997
+ children: t.columns.map((e) => _i(e.label))
1998
+ }, ...t.rows.map((e) => ({
1999
+ type: "tableRow",
2000
+ children: t.columns.map((t) => _i(e.cells[t.id] ?? ""))
2001
+ }))]
2002
+ };
2003
+ }, yi = (e) => {
2004
+ if (Ge(e)) return mi(e);
2005
+ if (Me(e)) return {
2006
+ type: "heading",
2007
+ depth: Number(e.getTag().slice(1)),
2008
+ children: fi(e)
2009
+ };
2010
+ if (Ne(e)) return {
2011
+ type: "blockquote",
2012
+ children: pi(e)
2013
+ };
2014
+ if (G(e)) return gi(e);
2015
+ if (mt(e)) return {
2016
+ type: "code",
2017
+ lang: e.getLanguage() || null,
2018
+ meta: null,
2019
+ value: e.getTextContent()
2020
+ };
2021
+ if (Cr(e)) return {
2022
+ type: "code",
2023
+ lang: "mermaid",
2024
+ meta: null,
2025
+ value: e.getCode()
2026
+ };
2027
+ if (mr(e)) return {
2028
+ type: "math",
2029
+ meta: null,
2030
+ value: e.getEquation()
2031
+ };
2032
+ if (br(e)) return { type: "thematicBreak" };
2033
+ if (tr(e)) return vi(e);
2034
+ if (qn(e)) return {
2035
+ type: "html",
2036
+ value: e.getSource()
2037
+ };
2038
+ if (He(e)) return mi(e);
2039
+ let t = e.getTextContent();
2040
+ return t ? {
2041
+ type: "paragraph",
2042
+ children: [{
2043
+ type: "text",
2044
+ value: t
2045
+ }]
2046
+ } : null;
2047
+ }, bi = (e) => mn({
2048
+ type: "root",
2049
+ children: e.getChildren().map(yi).filter((e) => e !== null)
2050
+ }), xi = /\{\{\s*link\((['"])([^'"\s]+)\1\)\s*\}\}/g, Si = (e, t) => {
2051
+ let n = q(e);
2052
+ for (let e of t) n.toggleFormat(e);
2053
+ return n;
2054
+ }, Ci = (e, t) => {
2055
+ let n = [], r = 0;
2056
+ for (let i of e.matchAll(xi)) {
2057
+ let a = i.index ?? 0;
2058
+ a > r && n.push(Si(e.slice(r, a), t));
2059
+ let o = i[2] ?? "", s = /^(?:https?:\/\/|\/)/i.test(o) ? o : `#${o}`;
2060
+ n.push(tn(s, o)), r = a + i[0].length;
2061
+ }
2062
+ return r < e.length && n.push(Si(e.slice(r), t)), n;
2063
+ }, wi = (e, t) => t.definitions.get(e.identifier.toLowerCase());
2064
+ function Ti(e, t, n) {
2065
+ switch (e.type) {
2066
+ case "text": return Ci(e.value, n);
2067
+ case "strong": return $(e.children, t, /* @__PURE__ */ new Set([...n, "bold"]));
2068
+ case "emphasis": return $(e.children, t, /* @__PURE__ */ new Set([...n, "italic"]));
2069
+ case "delete": return $(e.children, t, /* @__PURE__ */ new Set([...n, "strikethrough"]));
2070
+ case "inlineCode": return [Si(e.value, /* @__PURE__ */ new Set([...n, "code"]))];
2071
+ case "break": return [Re()];
2072
+ case "link": {
2073
+ let r = cr(e.url, t.resolver, { title: e.title });
2074
+ return r.append(...$(e.children, t, n)), [r];
2075
+ }
2076
+ case "linkReference": {
2077
+ let r = wi(e, t);
2078
+ if (!r) return [Si(gn([e]), n)];
2079
+ let i = cr(r.url, t.resolver, { title: r.title });
2080
+ return i.append(...$(e.children, t, n)), [i];
2081
+ }
2082
+ case "image": return [zn(e.url, e.alt ?? "", e.title ?? null)];
2083
+ case "imageReference": {
2084
+ let r = wi(e, t);
2085
+ return r ? [zn(r.url, e.alt ?? "", r.title ?? null)] : [Si(gn([e]), n)];
2086
+ }
2087
+ case "inlineMath": return [pr(e.value, !0)];
2088
+ case "html": return [Kn(e.value, "inline")];
2089
+ default: return [Si(gn([e]), n)];
2090
+ }
2091
+ }
2092
+ function $(e, t, n = /* @__PURE__ */ new Set()) {
2093
+ let r = [], i = 0;
2094
+ for (let a of e) {
2095
+ if (a.type === "html" && /^<(?:ins|u)>$/i.test(a.value.trim())) {
2096
+ i += 1;
2097
+ continue;
2098
+ }
2099
+ if (a.type === "html" && /^<\/(?:ins|u)>$/i.test(a.value.trim())) {
2100
+ i = Math.max(i - 1, 0);
2101
+ continue;
2102
+ }
2103
+ let e = new Set(n);
2104
+ i > 0 && e.add("underline"), r.push(...Ti(a, t, e));
2105
+ }
2106
+ return r;
2107
+ }
2108
+ var Ei = (e, t) => {
2109
+ t.tableIndex += 1;
2110
+ let n = `table-${t.tableIndex}`, r = e.children[0], i = Math.max(r?.children.length ?? 0, 1), a = Array.from({ length: i }, (t, i) => ({
2111
+ id: `${n}-column-${i + 1}`,
2112
+ label: r?.children[i] ? gn(r.children[i].children) : "",
2113
+ alignment: e.align?.[i] ?? null
2114
+ }));
2115
+ return {
2116
+ columns: a,
2117
+ rows: e.children.slice(1).map((e, t) => ({
2118
+ id: `${n}-row-${t + 1}`,
2119
+ cells: Object.fromEntries(a.map((t, n) => [t.id, e.children[n] ? gn(e.children[n].children) : ""]))
2120
+ }))
2121
+ };
2122
+ }, Di = (e, t, n) => {
2123
+ if (t.type !== "listItem") return;
2124
+ let r = ye(t.checked ?? void 0);
2125
+ e.append(r);
2126
+ for (let e of t.children) e.type === "paragraph" ? r.append(...$(e.children, n)) : e.type === "list" ? Oi(r, e, n) : r.append(Si(hn(e), /* @__PURE__ */ new Set()));
2127
+ }, Oi = (e, t, n) => {
2128
+ switch (t.type) {
2129
+ case "paragraph": {
2130
+ let r = ze();
2131
+ r.append(...$(t.children, n)), e.append(r);
2132
+ break;
2133
+ }
2134
+ case "heading": {
2135
+ let r = K(`h${t.depth}`);
2136
+ r.append(...$(t.children, n)), e.append(r);
2137
+ break;
2138
+ }
2139
+ case "blockquote": {
2140
+ let r = je();
2141
+ e.append(r);
2142
+ for (let [e, i] of t.children.entries()) i.type === "paragraph" ? (t.children[e - 1]?.type === "paragraph" && r.append(q("\n\n")), r.append(...$(i.children, n))) : Oi(r, i, n);
2143
+ break;
2144
+ }
2145
+ case "list": {
2146
+ let r = t.children.some((e) => e.checked !== null && e.checked !== void 0), i = "bullet";
2147
+ t.ordered ? i = "number" : r && (i = "check");
2148
+ let a = be(i, t.start ?? 1);
2149
+ e.append(a);
2150
+ for (let e of t.children) Di(a, e, n);
2151
+ break;
2152
+ }
2153
+ case "code":
2154
+ e.append(t.lang === "mermaid" ? wr(t.value) : pt(t.lang ?? void 0).append(q(t.value)));
2155
+ break;
2156
+ case "math":
2157
+ e.append(pr(t.value, !1));
2158
+ break;
2159
+ case "thematicBreak":
2160
+ e.append(yr());
2161
+ break;
2162
+ case "table":
2163
+ e.append(er(Ei(t, n)));
2164
+ break;
2165
+ case "html":
2166
+ e.append(Kn(t.value, "block"));
2167
+ break;
2168
+ case "definition": break;
2169
+ default: {
2170
+ let n = ze();
2171
+ n.append(q(hn(t))), e.append(n);
2172
+ }
2173
+ }
2174
+ }, ki = (e, t) => {
2175
+ let n = fn(e), r = {
2176
+ definitions: new Map(n.children.filter((e) => e.type === "definition").map((e) => [e.identifier.toLowerCase(), e])),
2177
+ resolver: t,
2178
+ tableIndex: 0
2179
+ }, i = Ve();
2180
+ i.clear();
2181
+ for (let e of n.children) Oi(i, e, r);
2182
+ i.isEmpty() && i.append(ze());
2183
+ }, Ai = (e) => {
2184
+ let t = e.position?.start.offset, n = e.position?.end.offset;
2185
+ return t === void 0 || n === void 0 ? null : {
2186
+ end: n,
2187
+ start: t
2188
+ };
2189
+ }, ji = (e) => typeof e == "object" && !!e && "children" in e && Array.isArray(e.children), Mi = (e) => typeof e == "object" && !!e && "type" in e && (e.type === "link" || e.type === "linkReference"), Ni = (e) => {
2190
+ let t = [];
2191
+ if (!ji(e)) return t;
2192
+ for (let n of e.children) Mi(n) && t.push(n), ji(n) && t.push(...Ni(n));
2193
+ return t;
2194
+ }, Pi = (e) => pn(e).children.flatMap((e) => e.type === "table" ? [] : Ni(e).map((t) => ({
2195
+ block: e,
2196
+ node: t
2197
+ }))), Fi = (e, t, n, r, i, a) => {
2198
+ let o = Ai(r), s = Ai(a);
2199
+ if (!o || !s) return [];
2200
+ let c = i.map(Ai);
2201
+ if (c.some((e) => !e)) return [];
2202
+ let l = [], u = o.start;
2203
+ for (let t of c) {
2204
+ if (!t) return [];
2205
+ l.push(e.slice(u, t.start)), u = t.end;
2206
+ }
2207
+ l.push(e.slice(u, o.end));
2208
+ let d = t.slice(s.start, s.end), f = l[0] ?? "";
2209
+ if (!d.startsWith(f)) return [];
2210
+ let p = [], m = f.length;
2211
+ for (let e = 0; e < i.length; e += 1) {
2212
+ let t = l[e + 1] ?? "", n = e === i.length - 1 ? d.length - t.length : d.indexOf(t, m);
2213
+ if (n < m) return [];
2214
+ p.push({
2215
+ start: m,
2216
+ end: n,
2217
+ value: d.slice(m, n)
2218
+ }), m = n + t.length;
2219
+ }
2220
+ return m === d.length ? p.flatMap((t, r) => {
2221
+ if (Pi(t.value).length > 0) return [];
2222
+ let i = Ai(n[r]?.node ?? {}), a = c[r];
2223
+ return !i || !a ? [] : [{
2224
+ edit: {
2225
+ ...i,
2226
+ replacement: t.value
2227
+ },
2228
+ normalization: {
2229
+ start: s.start + t.start,
2230
+ end: s.start + t.end,
2231
+ replacement: e.slice(a.start, a.end)
2232
+ }
2233
+ }];
2234
+ }) : [];
2235
+ }, Ii = (e, t, n, r, i, a, o, s) => {
2236
+ let c = a.map((e, t) => t);
2237
+ c.sort((e, t) => Number(t === o) - Number(e === o));
2238
+ for (let o of c) {
2239
+ if (s.has(o)) continue;
2240
+ let c = a[o];
2241
+ if (!c) continue;
2242
+ let l = Ni(c);
2243
+ if (i.length <= l.length) continue;
2244
+ let u = Fi(t, n, e, r, i, c);
2245
+ if (u.length === i.length - l.length) return {
2246
+ currentBlockIndex: o,
2247
+ replacements: u
2248
+ };
2249
+ }
2250
+ return null;
2251
+ }, Li = (e, t, n) => {
2252
+ let r = Pi(e);
2253
+ if (Pi(n).length >= Pi(t).length) return {
2254
+ edits: [],
2255
+ normalizedCurrent: n
2256
+ };
2257
+ let i = pn(t), a = pn(n), o = [], s = [], c = /* @__PURE__ */ new Set(), l = 0;
2258
+ for (let e = 0; e < i.children.length; e += 1) {
2259
+ let u = i.children[e];
2260
+ if (!u || u.type === "table") continue;
2261
+ let d = Ni(u), f = Ii(r.slice(l, l + d.length), t, n, u, d, a.children, e, c);
2262
+ if (f) {
2263
+ for (let e of f.replacements) o.push(e.edit), s.push(e.normalization);
2264
+ c.add(f.currentBlockIndex);
2265
+ }
2266
+ l += d.length;
2267
+ }
2268
+ let u = n;
2269
+ for (let e of s.sort((e, t) => t.start - e.start)) u = u.slice(0, e.start) + e.replacement + u.slice(e.end);
2270
+ return {
2271
+ edits: o,
2272
+ normalizedCurrent: u
2273
+ };
2274
+ };
2275
+ //#endregion
2276
+ //#region src/components/rich-text/shared/markdown-source-map.ts
2277
+ function* Ri(e, t) {
2278
+ let n = pn(e).children, r = pn(t).children;
2279
+ if (!(n.length === r.length && n.every((e, t) => e.type === r[t]?.type && e.position?.end.offset !== void 0 && r[t]?.position?.end.offset !== void 0))) {
2280
+ yield* Lt(e, t);
2281
+ return;
2282
+ }
2283
+ let i = 0, a = 0;
2284
+ for (let o = 0; o < n.length; o += 1) {
2285
+ let s = n[o].position.end.offset, c = r[o].position.end.offset;
2286
+ yield* Lt(e.slice(i, s), t.slice(a, c)), i = s, a = c;
2287
+ }
2288
+ yield* Lt(e.slice(i), t.slice(a));
2289
+ }
2290
+ var zi = (e, t) => {
2291
+ let n = Array.from({ length: e.length + 1 }).fill(-1), r = Array.from({ length: e.length + 1 }).fill(-1), i = 0, a = 0, o = !1;
2292
+ n[0] = 0, r[0] = 0;
2293
+ for (let s of Ri(e, t)) {
2294
+ let e = s.value.length;
2295
+ if (s.added) {
2296
+ r[i] = a, a += e, n[i] = a, o && (r[i] = a), o = !1;
2297
+ continue;
2298
+ }
2299
+ if (s.removed) {
2300
+ for (let t = 0; t <= e; t += 1) n[i + t] = a, r[i + t] = a;
2301
+ i += e, o = !0;
2302
+ continue;
2303
+ }
2304
+ for (let t = 0; t <= e; t += 1) {
2305
+ let e = i + t;
2306
+ n[e] = a + t, (r[e] === void 0 || r[e] < 0) && (r[e] = a + t);
2307
+ }
2308
+ i += e, a += e, o = !1;
2309
+ }
2310
+ return {
2311
+ end: r,
2312
+ start: n
2313
+ };
2314
+ }, Bi = (e, t, n) => {
2315
+ for (let r = t; r >= 0 && r < e.length; r += n) {
2316
+ let t = e[r];
2317
+ if (t !== void 0 && t >= 0) return t;
2318
+ }
2319
+ return n === -1 ? 0 : e.at(-1) ?? 0;
2320
+ }, Vi = (e, t) => {
2321
+ let n = e.start[t];
2322
+ return n !== void 0 && n >= 0 ? n : Bi(e.start, t, -1);
2323
+ }, Hi = (e, t) => {
2324
+ let n = e.end[t];
2325
+ return n !== void 0 && n >= 0 ? n : Bi(e.end, t, 1);
2326
+ }, Ui = (e, t) => {
2327
+ let n = [], r = 0, i = null, a = () => {
2328
+ i &&= (n.push(i), null);
2329
+ };
2330
+ for (let n of Lt(e, t)) {
2331
+ if (!n.added && !n.removed) {
2332
+ a(), r += n.value.length;
2333
+ continue;
2334
+ }
2335
+ if (i ??= {
2336
+ start: r,
2337
+ end: r,
2338
+ replacement: ""
2339
+ }, n.added) {
2340
+ i.replacement += n.value;
2341
+ continue;
2342
+ }
2343
+ r += n.value.length, i.end = r;
2344
+ }
2345
+ return a(), n;
2346
+ }, Wi = (e) => e.includes("\r\n") ? "\r\n" : "\n", Gi = (e, t) => {
2347
+ let n = Wi(t);
2348
+ return n === "\n" ? e : e.replaceAll("\n", n);
2349
+ }, Ki = (e) => Array.isArray(e) ? e.map(Ki) : !e || typeof e != "object" ? e : Object.fromEntries(Object.entries(e).filter(([e]) => e !== "position").map(([e, t]) => [e, Ki(t)])), qi = (e, t) => JSON.stringify(Ki(e)) === JSON.stringify(Ki(t)), Ji = (e) => pn(e).children.filter((e) => e.type === "table" && !!e.position), Yi = (e) => e.children.flatMap((e) => e.children), Xi = (e, t) => e.children.length === t.children.length && e.children.every((e, n) => e.children.length === t.children[n]?.children.length), Zi = (e) => {
2350
+ let t = e.position?.start.offset, n = e.position?.end.offset;
2351
+ return t === void 0 || n === void 0 ? null : {
2352
+ end: n,
2353
+ start: t
2354
+ };
2355
+ }, Qi = (e, t) => {
2356
+ let n = t.children[0], r = t.children.at(-1), i = n?.position?.start.offset, a = r?.position?.end.offset;
2357
+ if (i !== void 0 && a !== void 0) return {
2358
+ start: i,
2359
+ end: a
2360
+ };
2361
+ let o = Zi(t);
2362
+ if (!o) return null;
2363
+ let s = e.slice(o.start, o.end), c = s.indexOf("|"), l = s.endsWith("|") ? s.length - 1 : s.length, u = c < 0 ? 0 : c + 1, d = s.slice(u, l).match(/^\s*/)?.[0].length ?? 0, f = o.start + u + d;
2364
+ return {
2365
+ start: f,
2366
+ end: f
2367
+ };
2368
+ }, $i = (e, t) => {
2369
+ let n = Qi(e, t);
2370
+ return n ? e.slice(n.start, n.end) : "";
2371
+ }, ea = (e, t, n, r, i) => {
2372
+ let a = Yi(n), o = Yi(r);
2373
+ return Yi(i).flatMap((n, r) => {
2374
+ let i = a[r], s = o[r];
2375
+ if (!i || !s || qi(s, n)) return [];
2376
+ let c = Qi(e, i);
2377
+ return c ? [{
2378
+ ...c,
2379
+ replacement: $i(t, n)
2380
+ }] : [];
2381
+ });
2382
+ }, ta = (e, t, n, r, i) => {
2383
+ if (qi(r, i)) return [];
2384
+ if (Xi(r, i) && Xi(n, r) && JSON.stringify(r.align) === JSON.stringify(i.align)) return ea(e, t, n, r, i);
2385
+ let a = Zi(n), o = Zi(i);
2386
+ return !a || !o ? [] : [{
2387
+ start: a.start,
2388
+ end: a.end,
2389
+ replacement: t.slice(o.start, o.end)
2390
+ }];
2391
+ }, na = (e, t, n) => {
2392
+ let r = Ji(e), i = Ji(t), a = Ji(n);
2393
+ if (r.length !== i.length || i.length !== a.length) return {
2394
+ edits: [],
2395
+ normalizedCurrent: n
2396
+ };
2397
+ let o = [], s = n;
2398
+ for (let c = a.length - 1; c >= 0; --c) {
2399
+ let l = r[c], u = i[c], d = a[c];
2400
+ if (!l || !u || !d) continue;
2401
+ let f = Zi(u), p = Zi(d);
2402
+ f && p && (s = s.slice(0, p.start) + t.slice(f.start, f.end) + s.slice(p.end), o.push(...ta(e, n, l, u, d)));
2403
+ }
2404
+ return {
2405
+ edits: o,
2406
+ normalizedCurrent: s
2407
+ };
2408
+ }, ra = (e, t, n, r) => {
2409
+ if (n === r) return e;
2410
+ let i = Li(e, n, r), a = na(e, n, i.normalizedCurrent), o = Ui(n, a.normalizedCurrent).map((n) => ({
2411
+ start: n.start === n.end ? Hi(t, n.start) : Vi(t, n.start),
2412
+ end: Hi(t, n.end),
2413
+ replacement: Gi(n.replacement, e)
2414
+ })).concat(i.edits.map((t) => ({
2415
+ ...t,
2416
+ replacement: Gi(t.replacement, e)
2417
+ }))).concat(a.edits.map((t) => ({
2418
+ ...t,
2419
+ replacement: Gi(t.replacement, e)
2420
+ }))).sort((e, t) => t.start - e.start), s = e;
2421
+ for (let e of o) s = s.slice(0, e.start) + e.replacement + s.slice(e.end);
2422
+ return s;
2423
+ }, ia = (e, t) => {
2424
+ let n = null, r = null;
2425
+ return {
2426
+ importToLexical() {
2427
+ ki(e, t), n = bi(Ve()), r = zi(n, e);
2428
+ },
2429
+ exportFromLexical(t) {
2430
+ let i = bi(t), a = n ?? i;
2431
+ return ra(e, r ?? zi(a, e), a, i);
2432
+ }
2433
+ };
2434
+ };
2435
+ //#endregion
2436
+ //#region src/components/rich-text/shared/plugins/LinkEditorPlugin/link-editor-content.tsx
2437
+ function aa(e) {
2438
+ let n = b(32), { isActive: r, isLinkEditMode: i, editedLinkUrl: a, editedLinkUrlIsValid: o, linkUrl: s, href: c, inputRef: l, onEditedLinkUrlChange: u, onInputKeyDown: d, onClose: f, onSubmit: m, onEdit: v, onRemove: y } = e;
2439
+ if (!r) return null;
2440
+ if (i) {
2441
+ let e = !o, r;
2442
+ n[0] === u ? r = n[1] : (r = (e) => {
2443
+ u(e.target.value);
2444
+ }, n[0] = u, n[1] = r);
2445
+ let i;
2446
+ n[2] !== a || n[3] !== l || n[4] !== d || n[5] !== e || n[6] !== r ? (i = /* @__PURE__ */ S(h, {
2447
+ ref: l,
2448
+ className: "link-editor-url-field",
2449
+ size: "sm",
2450
+ fontSize: "sm",
2451
+ value: a,
2452
+ placeholder: "https://",
2453
+ "aria-label": "Link URL",
2454
+ "aria-invalid": e,
2455
+ onChange: r,
2456
+ onKeyDown: d
2457
+ }), n[2] = a, n[3] = l, n[4] = d, n[5] = e, n[6] = r, n[7] = i) : i = n[7];
2458
+ let s;
2459
+ n[8] === Symbol.for("react.memo_cache_sentinel") ? (s = /* @__PURE__ */ S(ae, { size: 14 }), n[8] = s) : s = n[8];
2460
+ let c;
2461
+ n[9] === f ? c = n[10] : (c = /* @__PURE__ */ S(t, {
2462
+ content: "Cancel",
2463
+ children: /* @__PURE__ */ S(p, {
2464
+ variant: "ghost",
2465
+ size: "xs",
2466
+ "aria-label": "Cancel link edit",
2467
+ onMouseDown: oa,
2468
+ onClick: f,
2469
+ children: s
2470
+ })
2471
+ }), n[9] = f, n[10] = c);
2472
+ let g = !o, v;
2473
+ n[11] === Symbol.for("react.memo_cache_sentinel") ? (v = /* @__PURE__ */ S(P, { size: 14 }), n[11] = v) : v = n[11];
2474
+ let y;
2475
+ n[12] !== m || n[13] !== g ? (y = /* @__PURE__ */ S(t, {
2476
+ content: "Confirm",
2477
+ children: /* @__PURE__ */ S(p, {
2478
+ variant: "ghost",
2479
+ size: "xs",
2480
+ "aria-label": "Confirm link edit",
2481
+ disabled: g,
2482
+ onMouseDown: oa,
2483
+ onClick: m,
2484
+ children: v
2485
+ })
2486
+ }), n[12] = m, n[13] = g, n[14] = y) : y = n[14];
2487
+ let b;
2488
+ return n[15] !== i || n[16] !== c || n[17] !== y ? (b = /* @__PURE__ */ C(_, {
2489
+ className: "link-editor-content",
2490
+ direction: "row",
2491
+ gap: "1",
2492
+ alignItems: "center",
2493
+ p: "1",
2494
+ children: [
2495
+ i,
2496
+ c,
2497
+ y
2498
+ ]
2499
+ }), n[15] = i, n[16] = c, n[17] = y, n[18] = b) : b = n[18], b;
2500
+ }
2501
+ let x;
2502
+ n[19] !== c || n[20] !== s ? (x = /* @__PURE__ */ S(g, {
2503
+ href: c,
2504
+ target: "_blank",
2505
+ rel: "noopener noreferrer",
2506
+ className: "link-editor-url-field",
2507
+ fontSize: "sm",
2508
+ textDecoration: "underline",
2509
+ px: "2",
2510
+ truncate: !0,
2511
+ children: s
2512
+ }), n[19] = c, n[20] = s, n[21] = x) : x = n[21];
2513
+ let w;
2514
+ n[22] === Symbol.for("react.memo_cache_sentinel") ? (w = /* @__PURE__ */ S(V, { size: 14 }), n[22] = w) : w = n[22];
2515
+ let T;
2516
+ n[23] === v ? T = n[24] : (T = /* @__PURE__ */ S(t, {
2517
+ content: "Edit link",
2518
+ children: /* @__PURE__ */ S(p, {
2519
+ variant: "ghost",
2520
+ size: "xs",
2521
+ "aria-label": "Edit link",
2522
+ onMouseDown: oa,
2523
+ onClick: v,
2524
+ children: w
2525
+ })
2526
+ }), n[23] = v, n[24] = T);
2527
+ let E;
2528
+ n[25] === Symbol.for("react.memo_cache_sentinel") ? (E = /* @__PURE__ */ S(ie, { size: 14 }), n[25] = E) : E = n[25];
2529
+ let D;
2530
+ n[26] === y ? D = n[27] : (D = /* @__PURE__ */ S(t, {
2531
+ content: "Remove link",
2532
+ children: /* @__PURE__ */ S(p, {
2533
+ variant: "destructive-ghost",
2534
+ size: "xs",
2535
+ "aria-label": "Remove link",
2536
+ onMouseDown: oa,
2537
+ onClick: y,
2538
+ children: E
2539
+ })
2540
+ }), n[26] = y, n[27] = D);
2541
+ let O;
2542
+ return n[28] !== x || n[29] !== T || n[30] !== D ? (O = /* @__PURE__ */ C(_, {
2543
+ className: "link-editor-content",
2544
+ direction: "row",
2545
+ gap: "1",
2546
+ alignItems: "center",
2547
+ p: "1",
2548
+ children: [
2549
+ x,
2550
+ T,
2551
+ D
2552
+ ]
2553
+ }), n[28] = x, n[29] = T, n[30] = D, n[31] = O) : O = n[31], O;
2554
+ }
2555
+ function oa(e) {
2556
+ e.preventDefault();
2557
+ }
2558
+ //#endregion
2559
+ //#region src/components/rich-text/shared/plugins/LinkEditorPlugin/utils/link-edit-state.ts
2560
+ function sa(e, t, n) {
2561
+ return e && t && n === "";
2562
+ }
2563
+ //#endregion
2564
+ //#region src/components/rich-text/shared/plugins/LinkEditorPlugin/utils/selection-link-url.ts
2565
+ function ca(e) {
2566
+ let t = Jr(e), n = Z(t, W);
2567
+ return n ? n.getURL() : W(t) ? t.getURL() : "";
2568
+ }
2569
+ //#endregion
2570
+ //#region src/components/rich-text/shared/plugins/LinkEditorPlugin/utils/url.ts
2571
+ var la = /* @__PURE__ */ new Set([
2572
+ "http:",
2573
+ "https:",
2574
+ "mailto:",
2575
+ "sms:",
2576
+ "tel:"
2577
+ ]);
2578
+ function ua(e) {
2579
+ try {
2580
+ let t = new URL(e);
2581
+ if (!la.has(t.protocol)) return "about:blank";
2582
+ } catch {
2583
+ return e;
2584
+ }
2585
+ return e;
2586
+ }
2587
+ function da(e) {
2588
+ try {
2589
+ let t = new URL(e);
2590
+ return la.has(t.protocol) ? t.protocol === "http:" || t.protocol === "https:" ? t.hostname !== "" : t.pathname.trim() !== "" : !1;
2591
+ } catch {
2592
+ return !1;
2593
+ }
2594
+ }
2595
+ //#endregion
2596
+ //#region src/components/rich-text/shared/plugins/LinkEditorPlugin/LinkEditorPlugin.tsx
2597
+ var fa = 8;
2598
+ function pa({ editor: e, isLink: t, setIsLink: n, anchorElem: r, isLinkEditMode: i, setIsLinkEditMode: a }) {
2599
+ let s = M(null), c = M(null), l = M(() => void 0), [u, d] = N(""), [f, p] = N("https://"), [m, h] = N(null), g = t || i, _ = da(f);
2600
+ l.current = () => {
2601
+ let n = J();
2602
+ if (Y(n)) {
2603
+ let e = ca(n);
2604
+ d(e), sa(i, t, e) && y(), i && e !== "" && p(e);
2605
+ }
2606
+ let o = s.current, c = window.getSelection(), l = document.activeElement;
2607
+ if (o === null) return;
2608
+ let u = e.getRootElement(), f = c !== null && c.rangeCount > 0;
2609
+ if (n !== null && c !== null && f && u?.contains(c.anchorNode) && e.isEditable()) {
2610
+ let e = c.getRangeAt(0).getBoundingClientRect();
2611
+ Zr(new DOMRect(e.left, e.top, 0, e.height), o, r, fa, void 0, "above", "viewport"), h(n);
2612
+ } else o.contains(l) || (u !== null && Zr(null, o, r, void 0, void 0, "legacy", "viewport"), h(null), a(!1), d(""));
2613
+ }, A(() => {
2614
+ let t = r.parentElement, n = () => {
2615
+ e.getEditorState().read(() => {
2616
+ l.current();
2617
+ });
2618
+ };
2619
+ return window.addEventListener("resize", n), t && t.addEventListener("scroll", n), () => {
2620
+ window.removeEventListener("resize", n), t && t.removeEventListener("scroll", n);
2621
+ };
2622
+ }, [r.parentElement, e]), A(() => Ot(e.registerUpdateListener(({ editorState: e }) => {
2623
+ e.read(() => {
2624
+ l.current();
2625
+ });
2626
+ }), e.registerCommand(ct, () => (l.current(), !0), $e), e.registerCommand(ot, () => t ? (n(!1), !0) : !1, Qe)), [
2627
+ e,
2628
+ n,
2629
+ t
2630
+ ]), A(() => {
2631
+ e.getEditorState().read(() => {
2632
+ l.current();
2633
+ });
2634
+ }, [e]), j(() => {
2635
+ g && e.getEditorState().read(() => {
2636
+ l.current();
2637
+ });
2638
+ }, [e, g]), A(() => {
2639
+ i && c.current && c.current.focus();
2640
+ }, [i]);
2641
+ let v = (e) => {
2642
+ e.key === "Enter" ? (e.preventDefault(), b()) : e.key === "Escape" && (e.preventDefault(), y());
2643
+ }, y = () => {
2644
+ p("https://"), a(!1);
2645
+ }, b = () => {
2646
+ m !== null && _ && (e.update(() => {
2647
+ Ye(m);
2648
+ }), e.dispatchCommand(ve, ua(f)), e.update(() => {
2649
+ let e = J();
2650
+ if (Y(e)) {
2651
+ let t = Jr(e).getParent();
2652
+ if (U(t)) {
2653
+ let e = he(t.getURL(), {
2654
+ rel: t.__rel,
2655
+ target: t.__target,
2656
+ title: t.__title
2657
+ });
2658
+ t.replace(e, !0);
2659
+ }
2660
+ }
2661
+ }), y());
2662
+ };
2663
+ return /* @__PURE__ */ S(o, {
2664
+ ref: s,
2665
+ zIndex: "tooltip",
2666
+ className: `link-editor ${g ? "active" : ""}`,
2667
+ children: /* @__PURE__ */ S(aa, {
2668
+ isActive: g,
2669
+ isLinkEditMode: i,
2670
+ editedLinkUrl: f,
2671
+ editedLinkUrlIsValid: _,
2672
+ linkUrl: u,
2673
+ href: ua(u),
2674
+ inputRef: c,
2675
+ onEditedLinkUrlChange: p,
2676
+ onInputKeyDown: v,
2677
+ onClose: y,
2678
+ onSubmit: b,
2679
+ onEdit: () => {
2680
+ p(u), a(!0);
2681
+ },
2682
+ onRemove: () => {
2683
+ e.dispatchCommand(ve, null);
2684
+ }
2685
+ })
2686
+ });
2687
+ }
2688
+ function ma(e, t, n, r) {
2689
+ let i = b(10), [a, o] = N(e), [s, c] = N(!1), l, u;
2690
+ i[0] !== e || i[1] !== r ? (l = () => {
2691
+ let t = function() {
2692
+ let e = J();
2693
+ if (Y(e)) {
2694
+ let t = Jr(e), n = Z(t, W), r = Z(t, U);
2695
+ if (!(n || r)) {
2696
+ c(!1);
2697
+ return;
2698
+ }
2699
+ e.getNodes().filter(ga).find((e) => {
2700
+ let t = Z(e, W), i = Z(e, U), a = U(i) && i.getIsUnlinked();
2701
+ return n && !n.is(t) || t && !t.is(n) || r && !r.is(i) || i && (!i.is(r) || a);
2702
+ }) ? c(!1) : c(!0);
2703
+ }
2704
+ };
2705
+ return Ot(e.registerUpdateListener((e) => {
2706
+ let { editorState: n } = e;
2707
+ n.read(() => {
2708
+ t();
2709
+ });
2710
+ }), e.registerCommand(ct, (e, n) => (t(), o(n), !1), Ze), e.registerCommand(Xe, ha, $e), e.registerCommand(qr, (e) => (r(e), !0), $e));
2711
+ }, u = [e, r], i[0] = e, i[1] = r, i[2] = l, i[3] = u) : (l = i[2], u = i[3]), A(l, u);
2712
+ let d;
2713
+ return i[4] !== a || i[5] !== t || i[6] !== s || i[7] !== n || i[8] !== r ? (d = At(/* @__PURE__ */ S(pa, {
2714
+ editor: a,
2715
+ isLink: s,
2716
+ anchorElem: t,
2717
+ setIsLink: c,
2718
+ isLinkEditMode: n,
2719
+ setIsLinkEditMode: r
2720
+ }), document.body), i[4] = a, i[5] = t, i[6] = s, i[7] = n, i[8] = r, i[9] = d) : d = i[9], d;
2721
+ }
2722
+ function ha(e) {
2723
+ let t = J();
2724
+ if (Y(t)) {
2725
+ let n = Jr(t), r = Z(n, W);
2726
+ if (W(r) && (e.metaKey || e.ctrlKey)) return window.open(ua(r.getURL()), "_blank", "noopener,noreferrer"), !0;
2727
+ }
2728
+ return !1;
2729
+ }
2730
+ function ga(e) {
2731
+ return !We(e);
2732
+ }
2733
+ function _a(e) {
2734
+ let { anchorElem: t } = e, n = t === void 0 ? document.body : t, [r, i] = N(!1), [a] = X();
2735
+ return ma(a, n, r, i);
2736
+ }
2737
+ //#endregion
2738
+ //#region src/components/rich-text/shared/plugins/LinkEditorPlugin/LinkPlugin.tsx
2739
+ function va() {
2740
+ let e = b(1), t;
2741
+ return e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ S(le, { validateUrl: da }), e[0] = t) : t = e[0], t;
2742
+ }
2743
+ //#endregion
2744
+ //#region src/components/rich-text/shared/plugins/ToggleEditablePlugin.tsx
2745
+ function ya(e) {
2746
+ let t = b(4), { isEditable: n } = e, [r] = X(), i, a;
2747
+ return t[0] !== r || t[1] !== n ? (i = () => {
2748
+ r.setEditable(n);
2749
+ }, a = [n, r], t[0] = r, t[1] = n, t[2] = i, t[3] = a) : (i = t[2], a = t[3]), A(i, a), null;
2750
+ }
2751
+ //#endregion
2752
+ //#region src/components/rich-text/shared/plugins/TreeViewPlugin/TreeViewPlugin.tsx
2753
+ function ba() {
2754
+ let e = b(2), [t] = X(), n;
2755
+ return e[0] === t ? n = e[1] : (n = /* @__PURE__ */ S(o, {
2756
+ fontSize: "xs",
2757
+ color: "fg.muted",
2758
+ padding: "4",
2759
+ children: /* @__PURE__ */ S(Rt, {
2760
+ treeTypeButtonClassName: "debug-treetype-button",
2761
+ timeTravelButtonClassName: "debug-timetravel-button",
2762
+ timeTravelPanelButtonClassName: "debug-timetravel-button",
2763
+ timeTravelPanelClassName: "debug-timetravel-panel",
2764
+ timeTravelPanelSliderClassName: "debug-timetravel-slider",
2765
+ viewClassName: "tree-view-output",
2766
+ editor: t
2767
+ })
2768
+ }), e[0] = t, e[1] = n), n;
2769
+ }
2770
+ //#endregion
2771
+ //#region src/components/rich-text/utils/markdown.ts
2772
+ var xa = /^---\s*\n([\s\S]*?)\n---\s*(?:\n|$)/;
2773
+ function Sa(e) {
2774
+ let t = e.match(xa);
2775
+ return t ? {
2776
+ frontmatter: t[0],
2777
+ body: e.slice(t[0].length)
2778
+ } : {
2779
+ frontmatter: "",
2780
+ body: e
2781
+ };
2782
+ }
2783
+ //#endregion
2784
+ //#region src/components/rich-text/markdown-editor/plugins/markdown-section-navigation.ts
2785
+ var Ca = (e) => e.trim().replace(/\s+/g, " "), wa = (e, t) => {
2786
+ let n = e.map(Ca), r = /* @__PURE__ */ new Map(), i = [];
2787
+ for (let e of t) {
2788
+ let t = Ca(e.heading), a = e.occurrence ?? r.get(t) ?? 0;
2789
+ r.set(t, a + 1);
2790
+ let o = 0;
2791
+ for (let [r, s] of n.entries()) if (s === t) {
2792
+ if (o === a) {
2793
+ i.push({
2794
+ id: e.id,
2795
+ headingIndex: r
2796
+ });
2797
+ break;
2798
+ }
2799
+ o += 1;
2800
+ }
2801
+ }
2802
+ return i.sort((e, t) => e.headingIndex - t.headingIndex);
2803
+ }, Ta = (e, t) => {
2804
+ let n = e[0]?.id;
2805
+ for (let r of e) {
2806
+ if (r.top > t) break;
2807
+ n = r.id;
2808
+ }
2809
+ return n;
2810
+ }, Ea = (e) => {
2811
+ let t = e.parentElement;
2812
+ for (; t;) {
2813
+ let e = getComputedStyle(t).overflowY;
2814
+ if ([
2815
+ "auto",
2816
+ "scroll",
2817
+ "overlay"
2818
+ ].includes(e)) return t;
2819
+ t = t.parentElement;
2820
+ }
2821
+ return null;
2822
+ }, Da = (e) => {
2823
+ let { anchors: t, targetId: n, onActiveSectionChange: r } = e, [i] = X(), a = M(r);
2824
+ return a.current = r, A(() => {
2825
+ let e = () => {}, r = requestAnimationFrame(() => {
2826
+ let r = i.getRootElement();
2827
+ if (!r) return;
2828
+ let o = Array.from(r.querySelectorAll("h1, h2, h3, h4, h5, h6")), s = wa(o.map((e) => e.textContent ?? ""), t).map((e) => ({
2829
+ id: e.id,
2830
+ element: o[e.headingIndex]
2831
+ }));
2832
+ for (let e of s) e.element.dataset.markdownSectionId = e.id;
2833
+ let c = s.find((e) => e.id === n);
2834
+ if (!c) {
2835
+ console.warn(`[markdown section] Unknown section id: ${n}`), a.current?.(null);
2836
+ return;
2837
+ }
2838
+ c.element.tabIndex = -1, c.element.scrollIntoView({ block: "start" }), c.element.focus({ preventScroll: !0 });
2839
+ let l = Ea(r), u, d = () => {
2840
+ let e = l?.getBoundingClientRect().top ?? 0, t = Ta(s.map((t) => ({
2841
+ id: t.id,
2842
+ top: t.element.getBoundingClientRect().top - e
2843
+ })), 8);
2844
+ t && t !== u && (u = t, a.current?.(t));
2845
+ }, f = l ?? window;
2846
+ f.addEventListener("scroll", d, { passive: !0 }), d(), e = () => {
2847
+ f.removeEventListener("scroll", d);
2848
+ };
2849
+ });
2850
+ return () => {
2851
+ cancelAnimationFrame(r), e();
2852
+ };
2853
+ }, [
2854
+ t,
2855
+ i,
2856
+ n
2857
+ ]), null;
2858
+ }, Oa = (e) => ({
2859
+ columns: [{
2860
+ id: `${e}-column-1`,
2861
+ label: "Column 1",
2862
+ alignment: null
2863
+ }, {
2864
+ id: `${e}-column-2`,
2865
+ label: "Column 2",
2866
+ alignment: null
2867
+ }],
2868
+ rows: [{
2869
+ id: `${e}-row-1`,
2870
+ cells: {
2871
+ [`${e}-column-1`]: "",
2872
+ [`${e}-column-2`]: ""
2873
+ }
2874
+ }]
2875
+ }), ka = [
2876
+ {
2877
+ id: "table",
2878
+ label: "Table",
2879
+ icon: H
2880
+ },
2881
+ {
2882
+ id: "image",
2883
+ label: "Image",
2884
+ icon: R
2885
+ },
2886
+ {
2887
+ id: "code",
2888
+ label: "Code block",
2889
+ icon: I
2890
+ },
2891
+ {
2892
+ id: "divider",
2893
+ label: "Divider",
2894
+ icon: B
2895
+ }
2896
+ ], Aa = (e) => {
2897
+ let t = J();
2898
+ if (!Y(t)) return null;
2899
+ let n = t.anchor.getNode();
2900
+ if (!Ge(n.getParent()) || n.getPreviousSibling()) return null;
2901
+ let r = /^\/([a-z ]*)$/i.exec(e);
2902
+ return r ? {
2903
+ leadOffset: 0,
2904
+ matchingString: r[1] ?? "",
2905
+ replaceableString: r[0]
2906
+ } : null;
2907
+ }, ja = () => `table-${globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random()}`}`, Ma = (e, t) => {
2908
+ let n = e?.getParent();
2909
+ if (!Ge(n)) return;
2910
+ n.replace(t);
2911
+ let r = ze();
2912
+ t.insertAfter(r), r.select();
2913
+ }, Na = (e) => {
2914
+ let t = b(18), { options: n, selectedIndex: r, onSelect: i, onHighlight: a } = e, s, c;
2915
+ t[0] === r ? (s = t[1], c = t[2]) : (s = () => {
2916
+ document.getElementById(`slash-command-${r}`)?.scrollIntoView({ block: "nearest" });
2917
+ }, c = [r], t[0] = r, t[1] = s, t[2] = c), A(s, c);
2918
+ let l;
2919
+ t[3] === Symbol.for("react.memo_cache_sentinel") ? (l = /* @__PURE__ */ S(v, {
2920
+ paddingX: "sm",
2921
+ paddingY: "2xs",
2922
+ color: "fg.muted",
2923
+ textStyle: "label/S/medium",
2924
+ children: "Insert"
2925
+ }), t[3] = l) : l = t[3];
2926
+ let u;
2927
+ t[4] === n.length ? u = t[5] : (u = n.length === 0 ? /* @__PURE__ */ S(v, {
2928
+ padding: "sm",
2929
+ color: "fg.muted",
2930
+ textStyle: "paragraph/S/regular",
2931
+ children: "No matching commands"
2932
+ }) : null, t[4] = n.length, t[5] = u);
2933
+ let p;
2934
+ if (t[6] !== a || t[7] !== i || t[8] !== n || t[9] !== r) {
2935
+ let e;
2936
+ t[11] !== a || t[12] !== i || t[13] !== r ? (e = (e, t) => {
2937
+ let n = r === t;
2938
+ return /* @__PURE__ */ C(d, {
2939
+ ref: e.setRefElement,
2940
+ id: `slash-command-${t}`,
2941
+ role: "option",
2942
+ "aria-selected": n,
2943
+ alignItems: "center",
2944
+ gap: "xs",
2945
+ paddingX: "sm",
2946
+ paddingY: "xs",
2947
+ cursor: "pointer",
2948
+ background: n ? "bg.active" : "transparent",
2949
+ _hover: { background: n ? "bg.active" : "bg.hover" },
2950
+ onMouseEnter: () => a(t),
2951
+ onPointerDown: Fa,
2952
+ onClick: () => i(e, t),
2953
+ children: [/* @__PURE__ */ S(f, {
2954
+ as: e.icon,
2955
+ boxSize: "16px",
2956
+ flexShrink: 0
2957
+ }), /* @__PURE__ */ S(v, {
2958
+ minWidth: "0",
2959
+ truncate: !0,
2960
+ textStyle: "label/M/medium",
2961
+ children: e.label
2962
+ })]
2963
+ }, e.id);
2964
+ }, t[11] = a, t[12] = i, t[13] = r, t[14] = e) : e = t[14], p = n.map(e), t[6] = a, t[7] = i, t[8] = n, t[9] = r, t[10] = p;
2965
+ } else p = t[10];
2966
+ let m;
2967
+ return t[15] !== u || t[16] !== p ? (m = /* @__PURE__ */ C(o, {
2968
+ role: "listbox",
2969
+ "aria-label": "Insert content",
2970
+ position: "absolute",
2971
+ zIndex: "popover",
2972
+ layerStyle: "modal",
2973
+ minWidth: "13rem",
2974
+ overflow: "hidden",
2975
+ paddingY: "2xs",
2976
+ children: [
2977
+ l,
2978
+ u,
2979
+ p
2980
+ ]
2981
+ }), t[15] = u, t[16] = p, t[17] = m) : m = t[17], m;
2982
+ }, Pa = () => {
2983
+ let e = b(52), [t] = X(), [n, r] = N(null), [i, a] = N(null), [o, c] = N(""), [f, p] = N("Image"), m;
2984
+ e[0] === n ? m = e[1] : (m = ka.filter((e) => !n || e.label.toLowerCase().includes(n.toLowerCase())).map(La), e[0] = n, e[1] = m);
2985
+ let g = m, _;
2986
+ e[2] !== t || e[3] !== i ? (_ = () => {
2987
+ i && t.update(() => {
2988
+ let e = Be(i);
2989
+ Ge(e) && e.selectStart();
2990
+ }, { tag: rt }), a(null), setTimeout(() => t.focus(), 0);
2991
+ }, e[2] = t, e[3] = i, e[4] = _) : _ = e[4];
2992
+ let v = _, y;
2993
+ e[5] !== t || e[6] !== f || e[7] !== i || e[8] !== o ? (y = (e) => {
2994
+ e.preventDefault(), i && o.trim() && (t.update(() => {
2995
+ let e = Be(i);
2996
+ if (Ge(e)) {
2997
+ e.splice(0, 0, [zn(o.trim(), f.trim() || "Image")]);
2998
+ let t = ze();
2999
+ e.insertAfter(t), t.select();
3000
+ }
3001
+ }, { tag: rt }), a(null), setTimeout(() => t.focus(), 0));
3002
+ }, e[5] = t, e[6] = f, e[7] = i, e[8] = o, e[9] = y) : y = e[9];
3003
+ let w = y, T;
3004
+ e[10] === Symbol.for("react.memo_cache_sentinel") ? (T = (e, t, n) => {
3005
+ if (e.id === "image") {
3006
+ let e = t?.getParent(), r = J();
3007
+ if (!Ge(e) || !Y(r)) return;
3008
+ Ie(rt), r.anchor.set(e.getKey(), 0, "element"), r.removeText(), c(""), p("Image"), a(e.getKey()), n();
3009
+ return;
3010
+ }
3011
+ Ie(rt), e.id === "table" && Ma(t, er(Oa(ja()))), e.id === "code" && Ma(t, ft()), e.id === "divider" && Ma(t, zt()), n();
3012
+ }, e[10] = T) : T = e[10];
3013
+ let E;
3014
+ e[11] === g ? E = e[12] : (E = /* @__PURE__ */ S(Bt, {
3015
+ onQueryChange: r,
3016
+ triggerFn: Aa,
3017
+ options: g,
3018
+ onSelectOption: T,
3019
+ menuRenderFn: Ra
3020
+ }), e[11] = g, e[12] = E);
3021
+ let D = !!i, O;
3022
+ e[13] === t ? O = e[14] : (O = () => t.getRootElement(), e[13] = t, e[14] = O);
3023
+ let k;
3024
+ e[15] !== v || e[16] !== i ? (k = (e) => {
3025
+ !e.open && i && v();
3026
+ }, e[15] = v, e[16] = i, e[17] = k) : k = e[17];
3027
+ let A;
3028
+ e[18] === Symbol.for("react.memo_cache_sentinel") ? (A = /* @__PURE__ */ S(l.Backdrop, {}), e[18] = A) : A = e[18];
3029
+ let j;
3030
+ e[19] === Symbol.for("react.memo_cache_sentinel") ? (j = /* @__PURE__ */ S(l.Header, { children: /* @__PURE__ */ S(l.Title, { children: "Insert image" }) }), e[19] = j) : j = e[19];
3031
+ let M;
3032
+ e[20] === Symbol.for("react.memo_cache_sentinel") ? (M = /* @__PURE__ */ S(u.Label, { children: "Image URL" }), e[20] = M) : M = e[20];
3033
+ let P;
3034
+ e[21] === Symbol.for("react.memo_cache_sentinel") ? (P = (e) => c(e.target.value), e[21] = P) : P = e[21];
3035
+ let F;
3036
+ e[22] === o ? F = e[23] : (F = /* @__PURE__ */ C(u.Root, {
3037
+ required: !0,
3038
+ children: [M, /* @__PURE__ */ S(h, {
3039
+ autoFocus: !0,
3040
+ value: o,
3041
+ onChange: P
3042
+ })]
3043
+ }), e[22] = o, e[23] = F);
3044
+ let I;
3045
+ e[24] === Symbol.for("react.memo_cache_sentinel") ? (I = /* @__PURE__ */ S(u.Label, { children: "Alt text" }), e[24] = I) : I = e[24];
3046
+ let L;
3047
+ e[25] === Symbol.for("react.memo_cache_sentinel") ? (L = (e) => p(e.target.value), e[25] = L) : L = e[25];
3048
+ let R;
3049
+ e[26] === f ? R = e[27] : (R = /* @__PURE__ */ C(u.Root, { children: [I, /* @__PURE__ */ S(h, {
3050
+ value: f,
3051
+ onChange: L
3052
+ })] }), e[26] = f, e[27] = R);
3053
+ let z;
3054
+ e[28] !== F || e[29] !== R ? (z = /* @__PURE__ */ S(l.Body, { children: /* @__PURE__ */ C(d, {
3055
+ direction: "column",
3056
+ gap: "sm",
3057
+ children: [F, R]
3058
+ }) }), e[28] = F, e[29] = R, e[30] = z) : z = e[30];
3059
+ let ee;
3060
+ e[31] === v ? ee = e[32] : (ee = /* @__PURE__ */ S(s, {
3061
+ type: "button",
3062
+ variant: "ghost",
3063
+ onClick: v,
3064
+ children: "Cancel"
3065
+ }), e[31] = v, e[32] = ee);
3066
+ let te;
3067
+ e[33] === o ? te = e[34] : (te = o.trim(), e[33] = o, e[34] = te);
3068
+ let ne = !te, B;
3069
+ e[35] === ne ? B = e[36] : (B = /* @__PURE__ */ S(s, {
3070
+ type: "submit",
3071
+ variant: "primary",
3072
+ disabled: ne,
3073
+ children: "Insert image"
3074
+ }), e[35] = ne, e[36] = B);
3075
+ let V;
3076
+ e[37] !== ee || e[38] !== B ? (V = /* @__PURE__ */ C(l.Footer, { children: [ee, B] }), e[37] = ee, e[38] = B, e[39] = V) : V = e[39];
3077
+ let H;
3078
+ e[40] !== w || e[41] !== z || e[42] !== V ? (H = /* @__PURE__ */ S(l.Positioner, { children: /* @__PURE__ */ S(l.Content, {
3079
+ asChild: !0,
3080
+ children: /* @__PURE__ */ C("form", {
3081
+ onSubmit: w,
3082
+ children: [
3083
+ j,
3084
+ z,
3085
+ V
3086
+ ]
3087
+ })
3088
+ }) }), e[40] = w, e[41] = z, e[42] = V, e[43] = H) : H = e[43];
3089
+ let re;
3090
+ e[44] !== H || e[45] !== D || e[46] !== O || e[47] !== k ? (re = /* @__PURE__ */ C(l.Root, {
3091
+ open: D,
3092
+ finalFocusEl: O,
3093
+ onOpenChange: k,
3094
+ children: [A, H]
3095
+ }), e[44] = H, e[45] = D, e[46] = O, e[47] = k, e[48] = re) : re = e[48];
3096
+ let ie;
3097
+ return e[49] !== re || e[50] !== E ? (ie = /* @__PURE__ */ C(x, { children: [E, re] }), e[49] = re, e[50] = E, e[51] = ie) : ie = e[51], ie;
3098
+ };
3099
+ function Fa(e) {
3100
+ return e.preventDefault();
3101
+ }
3102
+ function Ia() {}
3103
+ function La(e) {
3104
+ return {
3105
+ ...e,
3106
+ key: e.id,
3107
+ setRefElement: Ia
3108
+ };
3109
+ }
3110
+ function Ra(e, t) {
3111
+ return e.current ? kt.createPortal(/* @__PURE__ */ S(Na, {
3112
+ options: t.options,
3113
+ selectedIndex: t.selectedIndex,
3114
+ onHighlight: t.setHighlightedIndex,
3115
+ onSelect: (e, n) => {
3116
+ t.setHighlightedIndex(n), t.selectOptionAndCleanUp(e);
3117
+ }
3118
+ }), e.current) : null;
3119
+ }
3120
+ //#endregion
3121
+ //#region src/components/rich-text/markdown-editor/plugins/markdown-history-plugin.tsx
3122
+ var za = () => {
3123
+ let [e] = X(), [t] = N(() => ({
3124
+ current: {
3125
+ editor: e,
3126
+ editorState: e.getEditorState()
3127
+ },
3128
+ redoStack: [],
3129
+ undoStack: []
3130
+ }));
3131
+ return A(() => {
3132
+ t.current = {
3133
+ editor: e,
3134
+ editorState: e.getEditorState()
3135
+ };
3136
+ }, [e, t]), A(() => e.registerCommand(at, (t) => {
3137
+ let n = t.target;
3138
+ return n instanceof HTMLInputElement || n instanceof HTMLTextAreaElement || !t.ctrlKey && !t.metaKey || t.key.toLowerCase() !== "z" ? !1 : (t.preventDefault(), e.dispatchCommand(t.shiftKey ? st : ut, void 0), !0);
3139
+ }, Qe), [e]), /* @__PURE__ */ S(Vt, { externalHistoryState: t });
3140
+ }, Ba = /* @__PURE__ */ e({ MarkdownEditor: () => Ha }), Va = "markdown-initial-import";
3141
+ function Ha(e) {
3142
+ let { autoFocus: t = !1, debug: n = !1, defaultState: r = "", fullWidth: i = !1, isEditable: a = !1, padding: s = "sm", placeholder: c, scrollable: l = !0, sectionNavigation: u, resolveMarkdownUrl: f, onActiveSectionChange: p, onChange: m } = e, { frontmatter: h, body: g } = Sa(r), _ = a && !!m, v = M(null), y = M(null);
3143
+ y.current ??= ia(g, f);
3144
+ let b = y.current, [w, T] = N(null);
3145
+ return A(() => {
3146
+ T(v.current);
3147
+ }, []), /* @__PURE__ */ S(d, {
3148
+ ref: v,
3149
+ className: "rich-text",
3150
+ justifyContent: "space-between",
3151
+ width: "100%",
3152
+ maxWidth: "100%",
3153
+ height: l ? "100%" : "auto",
3154
+ position: "relative",
3155
+ direction: "column",
3156
+ overflow: "visible",
3157
+ children: /* @__PURE__ */ S(Tn, {
3158
+ resolver: f,
3159
+ children: /* @__PURE__ */ C(oe, {
3160
+ initialConfig: {
3161
+ namespace: "MARKDOWN_EDITOR",
3162
+ nodes: Pr,
3163
+ editorState: () => {
3164
+ Ie(Va), b.importToLexical();
3165
+ },
3166
+ onError: (e) => console.error(e),
3167
+ editable: a,
3168
+ theme: Ir
3169
+ },
3170
+ children: [
3171
+ a ? /* @__PURE__ */ S(Pa, {}) : null,
3172
+ u ? /* @__PURE__ */ S(Da, {
3173
+ anchors: u.anchors,
3174
+ targetId: u.targetId,
3175
+ onActiveSectionChange: p
3176
+ }) : null,
3177
+ t ? /* @__PURE__ */ S(Nt, {}) : null,
3178
+ /* @__PURE__ */ S(za, {}),
3179
+ /* @__PURE__ */ S(va, {}),
3180
+ /* @__PURE__ */ S(ue, {}),
3181
+ /* @__PURE__ */ S(ci, {}),
3182
+ a ? /* @__PURE__ */ S(fe, { maxIndent: 7 }) : null,
3183
+ /* @__PURE__ */ S(Pt, {}),
3184
+ a ? /* @__PURE__ */ S(Ft, { transformers: Fr }) : null,
3185
+ /* @__PURE__ */ S(ce, {}),
3186
+ /* @__PURE__ */ S(Kr, {}),
3187
+ /* @__PURE__ */ S(Wr, {}),
3188
+ /* @__PURE__ */ S(Br, { anchorElem: w }),
3189
+ /* @__PURE__ */ S(_r, {}),
3190
+ /* @__PURE__ */ S(de, {
3191
+ contentEditable: /* @__PURE__ */ S(Ut, {
3192
+ fullWidth: i,
3193
+ padding: s,
3194
+ scrollable: l
3195
+ }),
3196
+ placeholder: c ? /* @__PURE__ */ S(d, {
3197
+ position: "absolute",
3198
+ padding: "sm",
3199
+ top: "0",
3200
+ left: "0",
3201
+ right: "0",
3202
+ pointerEvents: "none",
3203
+ userSelect: "none",
3204
+ justifyContent: "center",
3205
+ children: /* @__PURE__ */ S(o, {
3206
+ width: "100%",
3207
+ maxWidth: "45rem",
3208
+ color: "fg.muted",
3209
+ textStyle: "paragraph/M/regular",
3210
+ children: c
3211
+ })
3212
+ }) : null,
3213
+ ErrorBoundary: se
3214
+ }),
3215
+ a && w ? /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S(si, { anchorElem: w }), /* @__PURE__ */ S(_a, { anchorElem: w })] }) : null,
3216
+ _ ? /* @__PURE__ */ S(It, {
3217
+ ignoreSelectionChange: !0,
3218
+ ignoreHistoryMergeTagChange: !1,
3219
+ onChange: (e, t, n) => {
3220
+ n.has(Va) || e.read(() => {
3221
+ let e = Ve(), t = b.exportFromLexical(e);
3222
+ m?.(h + t);
3223
+ });
3224
+ }
3225
+ }) : null,
3226
+ /* @__PURE__ */ S(ya, { isEditable: a }),
3227
+ n && /* @__PURE__ */ S(ba, {})
3228
+ ]
3229
+ })
3230
+ })
3231
+ });
3232
+ }
3233
+ //#endregion
3234
+ export { on as C, Jt as D, Zt as E, Ut as O, Tn as S, Xt as T, Nn as _, ya as a, jn as b, si as c, Br as d, Pr as f, sr as g, _r as h, ba as i, Kr as l, Cr as m, Ba as n, ia as o, Ir as p, Sa as r, ci as s, Ha as t, Wr as u, Fn as v, Qt as w, Pn as x, Dn as y };
3235
+
3236
+ //# sourceMappingURL=markdown-editor-Dd4mor7l.js.map