@baishuyun/ui-base 6.12.0 → 6.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/dist/Amap/AmapCircle/index.js +1 -1
  2. package/dist/Amap/AmapMarker/index.js +1 -1
  3. package/dist/Amap/AmapMarkerCluster/index.js +1 -1
  4. package/dist/Amap/AmapProvider/index.js +4 -4
  5. package/dist/Amap/{AmapProvider-CvRHhN42.js → AmapProvider-BwyzXpEj.js} +1 -1
  6. package/dist/Amap/hooks/index.js +1 -1
  7. package/dist/Amap/index.js +4 -4
  8. package/dist/Calendar/{AllDaySection-CTaXpCmK.js → AllDaySection-D9YHhwIa.js} +1 -1
  9. package/dist/Calendar/{Calendar-BOLbbip1.js → Calendar-BnhRvSrX.js} +5 -5
  10. package/dist/Calendar/{TimeGrid-Ci8Dfama.js → TimeGrid-5zMy9Hks.js} +1 -1
  11. package/dist/Calendar/context/index.js +1 -1
  12. package/dist/Calendar/index.js +8 -8
  13. package/dist/Calendar/subcomponents/AllDaySection/index.js +3 -3
  14. package/dist/Calendar/subcomponents/CurrentTimeIndicator/index.js +1 -1
  15. package/dist/Calendar/subcomponents/EventCard/index.js +1 -1
  16. package/dist/Calendar/subcomponents/TimeAxis/index.js +1 -1
  17. package/dist/Calendar/subcomponents/TimeGrid/index.js +3 -3
  18. package/dist/Calendar/utils/index.js +1 -1
  19. package/dist/Calendar/utils/layout/index.js +1 -1
  20. package/dist/Calendar/utils/theme/index.js +1 -1
  21. package/dist/Card/{Card-C8A4XaJZ.js → Card-DDbQQsCc.js} +1 -1
  22. package/dist/Card/index.js +3 -3
  23. package/dist/CheckBox/{CheckBox-DBzTOuRy.js → CheckBox-CwfrMEFb.js} +1 -1
  24. package/dist/CheckBox/{CheckBox-Dt4x6IqH.js → CheckBox-DFfNiPGM.js} +1 -1
  25. package/dist/CheckBox/index.js +4 -4
  26. package/dist/ColorPicker/{ColorPicker-Buku806Y.js → ColorPicker-Cm_-e0Hz.js} +34 -31
  27. package/dist/ColorPicker/index.js +5 -5
  28. package/dist/ConfigProvider/index.js +3 -3
  29. package/dist/DatePicker/{DatePicker-Vi3wfsfz.js → DatePicker-CWMePqTh.js} +9 -9
  30. package/dist/DatePicker/{DatePickerPanel-Cwmb-4UR.js → DatePickerPanel-D1nt3h5X.js} +4 -4
  31. package/dist/DatePicker/index.js +4 -4
  32. package/dist/DatePicker/style/index.js +1 -1
  33. package/dist/DropDown/DropDown-DV1IuuQD.js +290 -0
  34. package/dist/DropDown/index.js +7 -7
  35. package/dist/DropDown/style/index.js +1 -1
  36. package/dist/Editor/Buttons-C6whbXgn.js +1740 -0
  37. package/dist/Editor/ToolbarPlugin/Buttons/index.js +12 -12
  38. package/dist/Editor/constants/index.js +10 -3
  39. package/dist/Editor/index.js +1572 -909
  40. package/dist/Gantt/GanttChart/index.js +9 -9
  41. package/dist/Gantt/{GanttChart-WIrD6Z7O.js → GanttChart-DEGOIgRD.js} +3 -3
  42. package/dist/Gantt/GanttTable/index.js +5 -5
  43. package/dist/Gantt/{GanttTable-CdXhMHF6.js → GanttTable-Dwb00N8Z.js} +1 -1
  44. package/dist/Gantt/GanttToolBar/index.js +8 -8
  45. package/dist/Gantt/{GanttToolBar-C1gAS9v2.js → GanttToolBar-BcJB6sKY.js} +3 -3
  46. package/dist/Gantt/index.js +11 -11
  47. package/dist/Gantt/utils/index.js +1 -1
  48. package/dist/Gantt/utils/theme/index.js +1 -1
  49. package/dist/Icon/{Icon-oQ_uBooE.js → Icon-DDHx0R18.js} +1 -1
  50. package/dist/Icon/index.js +2 -2
  51. package/dist/InputTag/{InputTag-BQpIRPtc.js → InputTag-CBnG1R7g.js} +2 -2
  52. package/dist/InputTag/index.js +5 -5
  53. package/dist/Loading/{Loading-CiRe7i2R.js → Loading-DYayeRbT.js} +1 -1
  54. package/dist/Loading/index.js +4 -4
  55. package/dist/Modal/{Modal-17rLsxN4.js → Modal-BnF6CUrn.js} +20 -17
  56. package/dist/Modal/index.js +3 -3
  57. package/dist/NotFoundContent/index.js +1 -1
  58. package/dist/Overlay/index.js +1 -1
  59. package/dist/Radio/index.js +1 -1
  60. package/dist/ScrollBar/index.js +1 -1
  61. package/dist/Segmented/index.js +1 -1
  62. package/dist/Select/{Select-p_ly7xmz.js → Select-CG5wFTL4.js} +13 -13
  63. package/dist/Select/{SelectInputSearch-BBwVIb8u.js → SelectInputSearch-DiuwwOWz.js} +2 -2
  64. package/dist/Select/index.js +10 -10
  65. package/dist/Table/{Table-CSPdFGYn.js → Table-B7J-IK2_.js} +1 -1
  66. package/dist/Table/hooks/index.js +1 -1
  67. package/dist/Table/index.js +4 -4
  68. package/dist/Table/style/index.js +1 -1
  69. package/dist/Table/utils/index.js +1 -1
  70. package/dist/Tabs/{Tabs-D2A8nJl8.js → Tabs-CObQtF37.js} +7 -7
  71. package/dist/Tabs/index.js +6 -6
  72. package/dist/Tooltip/index.js +1 -1
  73. package/dist/Tree/index.js +4 -4
  74. package/dist/Tree/utils/index.js +1 -1
  75. package/dist/components/ColorPicker/ColorPicker.type.d.ts +2 -0
  76. package/dist/components/ColorPicker/useFloatingColorPicker.d.ts +1 -1
  77. package/dist/components/DropDown/DropDownOpenContext.d.ts +4 -0
  78. package/dist/components/DropDown/MenuItem/MenuItem.d.ts +4 -0
  79. package/dist/components/DropDown/interface.d.ts +5 -1
  80. package/dist/components/Editor/Preview/EditorPreview.d.ts +9 -0
  81. package/dist/components/Editor/Preview/HtmlPreview.d.ts +5 -0
  82. package/dist/components/Editor/Preview/PolishModal.d.ts +14 -0
  83. package/dist/components/Editor/Preview/Thinking.d.ts +23 -0
  84. package/dist/components/Editor/Preview/TypesetModal.d.ts +12 -0
  85. package/dist/components/Editor/ToolbarPlugin/BaseButton/BaseButton.d.ts +5 -1
  86. package/dist/components/Editor/ToolbarPlugin/Buttons/AiButton.d.ts +3 -0
  87. package/dist/components/Editor/ToolbarPlugin/Buttons/AlignButton.d.ts +2 -1
  88. package/dist/components/Editor/ToolbarPlugin/Buttons/BoldButton.d.ts +2 -1
  89. package/dist/components/Editor/ToolbarPlugin/Buttons/BulletListButton.d.ts +2 -1
  90. package/dist/components/Editor/ToolbarPlugin/Buttons/ClearFormatButton.d.ts +3 -0
  91. package/dist/components/Editor/ToolbarPlugin/Buttons/CodeButton.d.ts +2 -1
  92. package/dist/components/Editor/ToolbarPlugin/Buttons/FillButton.d.ts +2 -1
  93. package/dist/components/Editor/ToolbarPlugin/Buttons/FontColorButton.d.ts +2 -1
  94. package/dist/components/Editor/ToolbarPlugin/Buttons/FontSizeButton.d.ts +2 -1
  95. package/dist/components/Editor/ToolbarPlugin/Buttons/HeadingButton.d.ts +2 -1
  96. package/dist/components/Editor/ToolbarPlugin/Buttons/IndentButton.d.ts +2 -1
  97. package/dist/components/Editor/ToolbarPlugin/Buttons/ItalicButton.d.ts +2 -1
  98. package/dist/components/Editor/ToolbarPlugin/Buttons/LinkButton.d.ts +2 -1
  99. package/dist/components/Editor/ToolbarPlugin/Buttons/NumberListButton.d.ts +2 -1
  100. package/dist/components/Editor/ToolbarPlugin/Buttons/OutdentButton.d.ts +2 -1
  101. package/dist/components/Editor/ToolbarPlugin/Buttons/PictureButton/PictureButton.d.ts +2 -1
  102. package/dist/components/Editor/ToolbarPlugin/Buttons/PictureButton/UploadImage.d.ts +1 -0
  103. package/dist/components/Editor/ToolbarPlugin/Buttons/RedoButton.d.ts +2 -1
  104. package/dist/components/Editor/ToolbarPlugin/Buttons/SourceButton.d.ts +2 -1
  105. package/dist/components/Editor/ToolbarPlugin/Buttons/StrikeThroughButton.d.ts +2 -1
  106. package/dist/components/Editor/ToolbarPlugin/Buttons/SubscriptButton.d.ts +2 -1
  107. package/dist/components/Editor/ToolbarPlugin/Buttons/SuperscriptButton.d.ts +2 -1
  108. package/dist/components/Editor/ToolbarPlugin/Buttons/TableButton.d.ts +2 -1
  109. package/dist/components/Editor/ToolbarPlugin/Buttons/UnLinkButton.d.ts +2 -1
  110. package/dist/components/Editor/ToolbarPlugin/Buttons/UnderLineButton.d.ts +2 -1
  111. package/dist/components/Editor/ToolbarPlugin/Buttons/UndoButton.d.ts +2 -1
  112. package/dist/components/Editor/ToolbarPlugin/Buttons/index.d.ts +26 -23
  113. package/dist/components/Editor/ToolbarPlugin/Buttons/registry.d.ts +4 -1
  114. package/dist/components/Editor/ToolbarPlugin/context/TextFormatsContext.d.ts +1 -0
  115. package/dist/components/Editor/ToolbarPlugin/interface.d.ts +2 -2
  116. package/dist/components/Editor/constants/ai.d.ts +12 -0
  117. package/dist/components/Editor/constants/index.d.ts +3 -0
  118. package/dist/components/Editor/constants/portableEditorStyles.d.ts +11 -0
  119. package/dist/components/Editor/constants/toolbarSize.d.ts +12 -0
  120. package/dist/components/Editor/context/EditorContainerContext.d.ts +27 -1
  121. package/dist/components/Editor/index.d.ts +2 -2
  122. package/dist/components/Editor/interface.d.ts +60 -13
  123. package/dist/components/Editor/utils/applyAiPolish.d.ts +8 -0
  124. package/dist/components/Editor/utils/applyAiTypeset.d.ts +5 -0
  125. package/dist/components/Editor/utils/clearInlineTextFormat.d.ts +1 -0
  126. package/dist/components/Editor/utils/computeToolbarOverflowSplit.d.ts +12 -0
  127. package/dist/components/Editor/utils/extractCodePlaceholders.d.ts +6 -0
  128. package/dist/components/Editor/utils/formatEditorHtml.d.ts +1 -1
  129. package/dist/components/Editor/utils/htmlText.d.ts +2 -0
  130. package/dist/components/Editor/utils/prepareTypesetProposed.d.ts +2 -0
  131. package/dist/components/Editor/utils/readEditorAiSnapshot.d.ts +9 -0
  132. package/dist/components/Editor/utils/resolveEditorAlign.d.ts +3 -0
  133. package/dist/components/Editor/utils/resolveEditorImageUpload.d.ts +8 -0
  134. package/dist/components/Editor/utils/resolveEditorToolbarThemeVars.d.ts +5 -5
  135. package/dist/components/Editor/utils/stitchCodePlaceholders.d.ts +6 -0
  136. package/dist/components/Editor/utils/toPortableEditorHtml.d.ts +1 -0
  137. package/dist/components/Editor/utils/unwrapTypesetFence.d.ts +5 -0
  138. package/dist/components/Modal/Modal.type.d.ts +1 -0
  139. package/dist/hooks/useFloatingPortal.d.ts +2 -0
  140. package/dist/index.js +24 -24
  141. package/dist/locale/lang/en-US.json.d.ts +22 -2
  142. package/dist/locale/lang/zh-CN.json.d.ts +22 -2
  143. package/dist/locale/lang/zh-TW.json.d.ts +22 -2
  144. package/dist/style.css +1 -1
  145. package/dist/vendors/{ConfigProvider-4xHyyeop.js → ConfigProvider-BDyxjj6K.js} +45 -5
  146. package/dist/vendors/{LocaleContext-I4PW9j4M.js → LocaleContext-w5ODGcJX.js} +22 -2
  147. package/dist/vendors/{Tree-B8cR9y6U.js → Tree-B7XeC9Mi.js} +2 -2
  148. package/dist/vendors/{useFloatingPortal-CmVJbuRm.js → useFloatingPortal-B3N1viK2.js} +8 -7
  149. package/dist/vendors/{useLocale-FGYsRWSe.js → useLocale-CEDl6cUK.js} +1 -1
  150. package/dist/vendors/{version-CJyzNHuS.js → version-BlinfPSN.js} +1 -1
  151. package/package.json +2 -3
  152. package/dist/DropDown/DropDown-CuL1Qq25.js +0 -178
  153. package/dist/Editor/Buttons-CMkFTv6y.js +0 -1016
@@ -0,0 +1,1740 @@
1
+ import { t as e } from "../Icon/Icon-DDHx0R18.js";
2
+ import { a as t, i as n } from "../Overlay/OverlayContext-CVSFoyqN.js";
3
+ import { t as r } from "../Modal/Modal-BnF6CUrn.js";
4
+ import { t as i } from "../ColorPicker/ColorPicker-Cm_-e0Hz.js";
5
+ import { t as a } from "../vendors/useLocale-CEDl6cUK.js";
6
+ import { n as o } from "../vendors/animations-rwUbyoT0.js";
7
+ import { t as s } from "../CheckBox/CheckBox-CwfrMEFb.js";
8
+ import { t as c } from "../ScrollBar/ScrollBar-N2pOLv-8.js";
9
+ import { t as l } from "../vendors/useFloatingPortal-B3N1viK2.js";
10
+ import { t as u } from "../DropDown/DropDown-DV1IuuQD.js";
11
+ import { EDITOR_IMAGE_ACCEPT as d, EDITOR_IMAGE_FILE_TYPES as f, FONT_SIZES as p } from "./constants/index.js";
12
+ import { keyBy as m, range as h } from "lodash-es";
13
+ import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
14
+ import y, { createContext as b, forwardRef as x, useCallback as S, useContext as C, useEffect as w, useImperativeHandle as ee, useLayoutEffect as T, useMemo as te, useRef as E, useState as D } from "react";
15
+ import { Button as O, Form as ne, Input as re, message as k } from "antd";
16
+ import A from "clsx";
17
+ import { AnimatePresence as ie, motion as ae } from "motion/react";
18
+ import { FloatingPortal as oe } from "@floating-ui/react";
19
+ import { $generateHtmlFromNodes as se, $generateNodesFromDOM as ce } from "@lexical/html";
20
+ import { $createParagraphNode as j, $createTextNode as le, $getRoot as ue, $getSelection as M, $insertNodes as de, $isElementNode as fe, $isRangeSelection as N, $isTextNode as pe, $setSelection as me, CAN_REDO_COMMAND as he, CAN_UNDO_COMMAND as ge, COMMAND_PRIORITY_CRITICAL as _e, FORMAT_ELEMENT_COMMAND as ve, FORMAT_TEXT_COMMAND as P, INDENT_CONTENT_COMMAND as ye, OUTDENT_CONTENT_COMMAND as be, REDO_COMMAND as xe, UNDO_COMMAND as Se, createCommand as Ce, mergeRegister as we } from "lexical";
21
+ import { useLexicalComposerContext as F } from "@lexical/react/LexicalComposerContext";
22
+ import { $patchStyleText as I, $setBlocksType as Te } from "@lexical/selection";
23
+ import { $createLinkNode as Ee, $toggleLink as De, TOGGLE_LINK_COMMAND as Oe } from "@lexical/link";
24
+ import { INSERT_ORDERED_LIST_COMMAND as ke, INSERT_UNORDERED_LIST_COMMAND as Ae, REMOVE_LIST_COMMAND as je } from "@lexical/list";
25
+ import { $createCodeNode as Me } from "@lexical/code-core";
26
+ import { INSERT_TABLE_COMMAND as Ne } from "@lexical/table";
27
+ import { $createHeadingNode as Pe } from "@lexical/rich-text";
28
+ import Fe from "dompurify";
29
+ //#region src/components/Editor/constants/toolbarSize.ts
30
+ var Ie = "default", L = {
31
+ x: 0,
32
+ y: 5
33
+ }, Le = {
34
+ small: {
35
+ itemHeight: 20,
36
+ iconSize: 14
37
+ },
38
+ default: {
39
+ itemHeight: 30,
40
+ iconSize: 16
41
+ }
42
+ }, R = {
43
+ "bsy-lexical__toolbar": "_bsy-lexical__toolbar_1fwme_1",
44
+ "bsy-lexical__toolbar--floating": "_bsy-lexical__toolbar--floating_1fwme_14",
45
+ "bsy-lexical__toolbar-stack": "_bsy-lexical__toolbar-stack_1fwme_20",
46
+ "bsy-lexical__toolbar-items": "_bsy-lexical__toolbar-items_1fwme_30",
47
+ "bsy-lexical__toolbar-item": "_bsy-lexical__toolbar-item_1fwme_30",
48
+ "bsy-lexical__toolbar-item--disabled": "_bsy-lexical__toolbar-item--disabled_1fwme_45",
49
+ "bsy-lexical__toolbar-group": "_bsy-lexical__toolbar-group_1fwme_49",
50
+ "bsy-lexical__toolbar-divider": "_bsy-lexical__toolbar-divider_1fwme_55",
51
+ "bsy-lexical__toolbar-select": "_bsy-lexical__toolbar-select_1fwme_62",
52
+ "bsy-lexical__toolbar-select-label": "_bsy-lexical__toolbar-select-label_1fwme_80",
53
+ "bsy-lexical__toolbar-select-arrow": "_bsy-lexical__toolbar-select-arrow_1fwme_90",
54
+ "bsy-lexical__toolbar-select--ai": "_bsy-lexical__toolbar-select--ai_1fwme_94",
55
+ "bsy-lexical__toolbar-more-sizer": "_bsy-lexical__toolbar-more-sizer_1fwme_100",
56
+ "bsy-lexical__toolbar-overflow": "_bsy-lexical__toolbar-overflow_1fwme_108",
57
+ "bsy-lexical__toolbar-overflow-row": "_bsy-lexical__toolbar-overflow-row_1fwme_112",
58
+ "bsy-lexical__toolbar-overflow-row--open": "_bsy-lexical__toolbar-overflow-row--open_1fwme_120",
59
+ "bsy-lexical__toolbar-overflow-row--instant": "_bsy-lexical__toolbar-overflow-row--instant_1fwme_124",
60
+ "bsy-lexical__toolbar-overflow-inner": "_bsy-lexical__toolbar-overflow-inner_1fwme_128",
61
+ "bsy-lexical__toolbar-with-divider": "_bsy-lexical__toolbar-with-divider_1fwme_136"
62
+ }, Re = b(null), ze = "plaintext", Be = "github-light", Ve = [
63
+ {
64
+ id: "plaintext",
65
+ label: "Plain text"
66
+ },
67
+ {
68
+ id: "css",
69
+ label: "CSS"
70
+ },
71
+ {
72
+ id: "html",
73
+ label: "HTML"
74
+ },
75
+ {
76
+ id: "xml",
77
+ label: "XML"
78
+ },
79
+ {
80
+ id: "javascript",
81
+ label: "JavaScript"
82
+ },
83
+ {
84
+ id: "typescript",
85
+ label: "TypeScript"
86
+ },
87
+ {
88
+ id: "jsx",
89
+ label: "JSX"
90
+ },
91
+ {
92
+ id: "go",
93
+ label: "Go"
94
+ },
95
+ {
96
+ id: "php",
97
+ label: "PHP"
98
+ },
99
+ {
100
+ id: "c",
101
+ label: "C"
102
+ },
103
+ {
104
+ id: "python",
105
+ label: "Python"
106
+ },
107
+ {
108
+ id: "java",
109
+ label: "Java"
110
+ },
111
+ {
112
+ id: "cpp",
113
+ label: "C++"
114
+ },
115
+ {
116
+ id: "csharp",
117
+ label: "C#"
118
+ },
119
+ {
120
+ id: "vb",
121
+ label: "Visual Basic"
122
+ },
123
+ {
124
+ id: "sql",
125
+ label: "SQL"
126
+ },
127
+ {
128
+ id: "ruby",
129
+ label: "Ruby"
130
+ },
131
+ {
132
+ id: "swift",
133
+ label: "Swift"
134
+ },
135
+ {
136
+ id: "bash",
137
+ label: "Bash"
138
+ },
139
+ {
140
+ id: "lua",
141
+ label: "Lua"
142
+ },
143
+ {
144
+ id: "markdown",
145
+ label: "Markdown"
146
+ }
147
+ ], He = m(Ve, "id"), Ue = (e) => e && He[e] ? e : ze, We = (e) => e === "center" || e === "right" || e === "left" ? e : e === "end" ? "right" : "left", Ge = b(null), Ke = () => {
148
+ let e = C(Ge);
149
+ if (!e) throw Error("useHistoryStateContext must be used within HistoryStateProvider");
150
+ return e;
151
+ }, qe = ({ children: e }) => {
152
+ let [t] = F(), [n, r] = D({
153
+ canUndo: !1,
154
+ canRedo: !1
155
+ });
156
+ return w(() => we(t.registerCommand(ge, (e) => (r((t) => t.canUndo === e ? t : {
157
+ ...t,
158
+ canUndo: e
159
+ }), !1), _e), t.registerCommand(he, (e) => (r((t) => t.canRedo === e ? t : {
160
+ ...t,
161
+ canRedo: e
162
+ }), !1), _e)), [t]), /* @__PURE__ */ _(Ge.Provider, {
163
+ value: n,
164
+ children: e
165
+ });
166
+ }, Je = b({ iconSize: Le.default.iconSize }), Ye = Je.Provider, z = () => C(Je), B = {
167
+ "lexical-editor__toolbar-button": "_lexical-editor__toolbar-button_123xc_1",
168
+ "lexical-editor__toolbar-button-active": "_lexical-editor__toolbar-button-active_123xc_26",
169
+ "lexical-editor__toolbar-button-highlight": "_lexical-editor__toolbar-button-highlight_123xc_30"
170
+ }, V = (t) => {
171
+ let { icon: n, tooltip: r, onClick: i, disabled: a = !1, active: o = !1, highlight: s = !1, size: c } = t, { iconSize: l } = z(), u = c ?? l;
172
+ return /* @__PURE__ */ _("button", {
173
+ className: A(B["lexical-editor__toolbar-button"], {
174
+ [B["lexical-editor__toolbar-button-active"]]: o,
175
+ [B["lexical-editor__toolbar-button-highlight"]]: s
176
+ }),
177
+ type: "button",
178
+ onClick: i,
179
+ onMouseDown: (e) => e.preventDefault(),
180
+ disabled: a,
181
+ title: r,
182
+ children: y.isValidElement(n) ? n : /* @__PURE__ */ _(e, {
183
+ name: n,
184
+ size: u
185
+ })
186
+ });
187
+ }, H = () => {
188
+ let e = C(Re);
189
+ if (!e) throw Error("useTextFormatsContext must be used within TextFormatsProvider");
190
+ return e;
191
+ }, Xe = ({ disabled: e }) => {
192
+ let [t] = F(), n = H(), { t: r } = a(), i = n.bold;
193
+ return /* @__PURE__ */ _(V, {
194
+ icon: "bold",
195
+ tooltip: r("editor.bold"),
196
+ active: i,
197
+ disabled: e,
198
+ onClick: () => {
199
+ t.dispatchCommand(P, "bold");
200
+ }
201
+ });
202
+ }, Ze = ({ disabled: e }) => {
203
+ let [t] = F(), n = H(), { t: r } = a(), i = n.underline;
204
+ return /* @__PURE__ */ _(V, {
205
+ icon: "underline",
206
+ tooltip: r("editor.underline"),
207
+ active: i,
208
+ disabled: e,
209
+ onClick: () => {
210
+ t.dispatchCommand(P, "underline");
211
+ }
212
+ });
213
+ }, Qe = ({ disabled: e }) => {
214
+ let [t] = F(), n = H(), { t: r } = a(), i = n.italic;
215
+ return /* @__PURE__ */ _(V, {
216
+ icon: "italic",
217
+ tooltip: r("editor.italic"),
218
+ active: i,
219
+ disabled: e,
220
+ onClick: () => {
221
+ t.dispatchCommand(P, "italic");
222
+ }
223
+ });
224
+ }, $e = ({ disabled: e }) => {
225
+ let [t] = F(), { t: n } = a(), { fontSize: r, headingTag: i } = H(), o = te(() => p.map((e) => ({
226
+ key: e.value,
227
+ label: e.label
228
+ })), []), s = S((e) => {
229
+ let n = e.key;
230
+ t.update(() => {
231
+ let e = M();
232
+ N(e) && I(e, { "font-size": n });
233
+ });
234
+ }, [t]);
235
+ return i || e ? /* @__PURE__ */ _(V, {
236
+ icon: "fontsize",
237
+ tooltip: n("editor.fontSize"),
238
+ disabled: !0
239
+ }) : /* @__PURE__ */ _(u, {
240
+ menus: o,
241
+ onClick: s,
242
+ activeKey: [r],
243
+ showSearch: !1,
244
+ offset: L,
245
+ style: {
246
+ width: "60px",
247
+ minWidth: "60px"
248
+ },
249
+ children: /* @__PURE__ */ _("div", {
250
+ className: "dropdown__trigger inline-flex",
251
+ children: /* @__PURE__ */ _(V, {
252
+ icon: "fontsize",
253
+ tooltip: n("editor.fontSize"),
254
+ active: !1
255
+ })
256
+ })
257
+ });
258
+ }, et = ({ disabled: e }) => {
259
+ let [t] = F(), n = H(), { t: r } = a(), o = S((e) => {
260
+ t.update(() => {
261
+ let t = M();
262
+ N(t) && I(t, { color: e });
263
+ });
264
+ }, [t]);
265
+ return /* @__PURE__ */ _(i, {
266
+ value: n.fontColor,
267
+ onChange: o,
268
+ placement: "bottom-start",
269
+ offset: L.y,
270
+ presetColors: "basic",
271
+ disabled: e,
272
+ children: /* @__PURE__ */ _("div", {
273
+ className: "trigger-picker inline-flex",
274
+ children: /* @__PURE__ */ _(V, {
275
+ icon: "fontcolor",
276
+ tooltip: r("editor.fontColor"),
277
+ onClick: () => {},
278
+ active: !1,
279
+ disabled: e
280
+ })
281
+ })
282
+ });
283
+ }, tt = ({ disabled: e }) => {
284
+ let [t] = F(), n = H(), { t: r } = a(), o = S((e) => {
285
+ t.update(() => {
286
+ let t = M();
287
+ N(t) && I(t, { "background-color": e });
288
+ });
289
+ }, [t]);
290
+ return /* @__PURE__ */ _(i, {
291
+ value: n.backgroundColor,
292
+ onChange: o,
293
+ placement: "bottom-start",
294
+ offset: L.y,
295
+ presetColors: "basic",
296
+ disabled: e,
297
+ children: /* @__PURE__ */ _("div", {
298
+ className: "trigger-picker inline-flex",
299
+ children: /* @__PURE__ */ _(V, {
300
+ icon: "fill",
301
+ tooltip: r("editor.fill"),
302
+ onClick: () => {},
303
+ active: !1,
304
+ disabled: e
305
+ })
306
+ })
307
+ });
308
+ }, U = {
309
+ left: "paragraph",
310
+ center: "paragraphmiddle",
311
+ right: "paragraphright"
312
+ }, nt = ({ disabled: t }) => {
313
+ let [n] = F(), { align: r } = H(), { iconSize: i } = z(), { t: o } = a(), s = te(() => [
314
+ {
315
+ key: "left",
316
+ label: o("leftAlign"),
317
+ icon: /* @__PURE__ */ _(e, {
318
+ name: U.left,
319
+ size: i
320
+ })
321
+ },
322
+ {
323
+ key: "center",
324
+ label: o("editor.centerAlign"),
325
+ icon: /* @__PURE__ */ _(e, {
326
+ name: U.center,
327
+ size: i
328
+ })
329
+ },
330
+ {
331
+ key: "right",
332
+ label: o("editor.rightAlign"),
333
+ icon: /* @__PURE__ */ _(e, {
334
+ name: U.right,
335
+ size: i
336
+ })
337
+ }
338
+ ], [i, o]), c = S((e) => {
339
+ n.dispatchCommand(ve, e.key);
340
+ }, [n]), l = /* @__PURE__ */ _("div", {
341
+ className: R["bsy-lexical__toolbar-select"],
342
+ style: { width: 50 },
343
+ children: /* @__PURE__ */ _(V, {
344
+ icon: /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _(e, {
345
+ name: U[We(r)],
346
+ size: i
347
+ }), /* @__PURE__ */ _(e, {
348
+ name: "arrow-down",
349
+ size: i,
350
+ className: R["bsy-lexical__toolbar-select-arrow"]
351
+ })] }),
352
+ tooltip: o("editor.alignment"),
353
+ disabled: t
354
+ })
355
+ });
356
+ return t ? l : /* @__PURE__ */ _(u, {
357
+ menus: s,
358
+ onClick: c,
359
+ showSearch: !1,
360
+ activeKey: [r],
361
+ offset: L,
362
+ style: {
363
+ width: "110px",
364
+ minWidth: "110px"
365
+ },
366
+ children: l
367
+ });
368
+ };
369
+ //#endregion
370
+ //#region src/components/Editor/ToolbarPlugin/Buttons/LinkButton.tsx
371
+ function rt(e) {
372
+ return e ? e.startsWith("@") ? "javascript:void(0);" : e.match(/^https?:\/\//) ? e : `http://${e}` : "";
373
+ }
374
+ var it = ({ disabled: e }) => {
375
+ let [t] = F(), { link: n } = H(), { t: i } = a(), [o, c] = D(!1), [l, u] = D(""), [d, f] = D(""), [p, m] = D(!0), [h, y] = k.useMessage(), b = E(null), x = S((e) => {
376
+ c(e), e || t.setEditable(!0);
377
+ }, [t]), C = () => {
378
+ if (!l) {
379
+ h.warning(i("editor.linkAddressEmpty"));
380
+ return;
381
+ }
382
+ let e = rt(l);
383
+ t.setEditable(!0), t.update(() => {
384
+ let t = p ? {
385
+ target: "_blank",
386
+ rel: "noopener noreferrer",
387
+ title: l
388
+ } : { title: l }, n = b.current;
389
+ n !== null && me(n);
390
+ let r = M();
391
+ if (N(r)) {
392
+ let n = d || l, i = r.getTextContent();
393
+ if (!r.isCollapsed() && n === i) De(e, t);
394
+ else {
395
+ let i = r.anchor.getNode(), a = pe(i) ? i : null, o = r.style || r.getNodes().find(pe)?.getStyle() || a?.getStyle() || "", s = r.format || a?.getFormat() || 0, c = Ee(e, t), l = le(n);
396
+ l.setFormat(s), l.setStyle(o), c.append(l), r.insertNodes([c]);
397
+ }
398
+ } else {
399
+ let n = Ee(e, t);
400
+ n.append(le(d || l));
401
+ let r = ue(), i = r.getLastChild();
402
+ if (fe(i) && i.isEmpty()) i.append(n);
403
+ else {
404
+ let e = j();
405
+ e.append(n), r.append(e);
406
+ }
407
+ }
408
+ }), b.current = null, u(""), f(""), x(!1);
409
+ }, w = S(() => {
410
+ let e = "";
411
+ t.getEditorState().read(() => {
412
+ let t = M();
413
+ b.current = t ? t.clone() : null, N(t) && !t.isCollapsed() && (e = t.getTextContent());
414
+ }), t.setEditable(!1), t.update(() => {
415
+ me(null);
416
+ }), window.getSelection()?.removeAllRanges(), t.getRootElement()?.blur(), n ? (u(n.link === "javascript:void(0);" ? "" : n.link ?? ""), f(n.linkText ?? "")) : (u(""), f(e)), c(!0);
417
+ }, [n, t]);
418
+ return /* @__PURE__ */ v(g, { children: [
419
+ /* @__PURE__ */ _(V, {
420
+ icon: "Insertlink",
421
+ tooltip: i("link"),
422
+ onClick: w,
423
+ disabled: e,
424
+ active: !!n?.link
425
+ }),
426
+ y,
427
+ /* @__PURE__ */ _(r, {
428
+ title: i("link"),
429
+ open: o,
430
+ onOpenChange: x,
431
+ children: /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ v("div", {
432
+ className: "px-[20px] pb-[60px] pt-[40px]",
433
+ children: [/* @__PURE__ */ v("div", {
434
+ className: "flex items-center relative",
435
+ children: [
436
+ /* @__PURE__ */ _("label", {
437
+ className: "w-[80px] shrink-0",
438
+ children: i("linkAddress")
439
+ }),
440
+ /* @__PURE__ */ _(re, {
441
+ value: l,
442
+ onChange: (e) => u(e.target.value),
443
+ placeholder: i("editor.linkTip")
444
+ }),
445
+ /* @__PURE__ */ _("div", {
446
+ className: "absolute bottom-[-30px] left-[80px]",
447
+ children: /* @__PURE__ */ _("p", {
448
+ className: "text-[#999]",
449
+ children: i("editor.linkAliasTip")
450
+ })
451
+ })
452
+ ]
453
+ }), /* @__PURE__ */ v("div", {
454
+ className: "flex items-center mt-[40px]",
455
+ children: [/* @__PURE__ */ _("label", {
456
+ className: "w-[80px] shrink-0",
457
+ children: i("showContent")
458
+ }), /* @__PURE__ */ _(re, {
459
+ value: d,
460
+ onChange: (e) => f(e.target.value)
461
+ })]
462
+ })]
463
+ }), /* @__PURE__ */ v("div", {
464
+ className: "py-[14px] px-[20px] flex justify-between items-center border-t-[1px] border-solid border-[#e0e0e0]",
465
+ children: [/* @__PURE__ */ _("div", { children: /* @__PURE__ */ _(s, {
466
+ checked: p,
467
+ onChange: (e) => m(e),
468
+ children: i("openInNewTab")
469
+ }) }), /* @__PURE__ */ v("div", {
470
+ className: "flex gap-[15px]",
471
+ children: [/* @__PURE__ */ _(O, {
472
+ onClick: () => x(!1),
473
+ children: i("cancel")
474
+ }), /* @__PURE__ */ _(O, {
475
+ type: "primary",
476
+ onClick: C,
477
+ children: i("confirm")
478
+ })]
479
+ })]
480
+ })] })
481
+ })
482
+ ] });
483
+ }, at = ({ disabled: e }) => {
484
+ let [t] = F(), { link: n } = H(), { t: r } = a();
485
+ return /* @__PURE__ */ _(V, {
486
+ icon: "cancellink",
487
+ tooltip: r("cancelLink"),
488
+ disabled: e,
489
+ onClick: () => {
490
+ n && t.dispatchCommand(Oe, null);
491
+ }
492
+ });
493
+ }, W = {
494
+ "picture-modal__container": "_picture-modal__container_1067t_1",
495
+ "picture-modal__sidebar": "_picture-modal__sidebar_1067t_4",
496
+ "picture-modal__menu-list": "_picture-modal__menu-list_1067t_8",
497
+ "picture-modal__menu-item": "_picture-modal__menu-item_1067t_13",
498
+ "picture-modal__menu-item--active": "_picture-modal__menu-item--active_1067t_22",
499
+ "picture-modal__content": "_picture-modal__content_1067t_25",
500
+ "picture-modal__content-body": "_picture-modal__content-body_1067t_31",
501
+ "picture-modal__ops": "_picture-modal__ops_1067t_34",
502
+ "picture-modal__content-title": "_picture-modal__content-title_1067t_42",
503
+ "picture-modal__upload-area": "_picture-modal__upload-area_1067t_53",
504
+ "picture-modal__upload-area--dragging": "_picture-modal__upload-area--dragging_1067t_69",
505
+ "picture-modal__preview-list": "_picture-modal__preview-list_1067t_75",
506
+ "picture-modal__preview": "_picture-modal__preview_1067t_75",
507
+ "picture-modal__preview--error": "_picture-modal__preview--error_1067t_89",
508
+ "picture-modal__preview-image": "_picture-modal__preview-image_1067t_92",
509
+ "picture-modal__preview-mask": "_picture-modal__preview-mask_1067t_106",
510
+ "picture-modal__preview-spinner": "_picture-modal__preview-spinner_1067t_116",
511
+ "picture-modal-spin": "_picture-modal-spin_1067t_1",
512
+ "picture-modal__preview-info": "_picture-modal__preview-info_1067t_124",
513
+ "picture-modal__preview-filename": "_picture-modal__preview-filename_1067t_128",
514
+ "picture-modal__preview-filename--error": "_picture-modal__preview-filename--error_1067t_136",
515
+ "picture-modal__preview-size": "_picture-modal__preview-size_1067t_139",
516
+ "picture-modal__preview-delete": "_picture-modal__preview-delete_1067t_143",
517
+ "picture-modal__upload-text": "_picture-modal__upload-text_1067t_151",
518
+ "picture-modal__footer": "_picture-modal__footer_1067t_155"
519
+ }, ot = x((e, t) => {
520
+ let [n] = ne.useForm(), [r, i] = D(""), { t: o } = a(), s = (e) => /^https?:\/\/.+/i.test(e);
521
+ return ee(t, () => ({ getValue: async () => {
522
+ try {
523
+ return await n.validateFields(), r;
524
+ } catch {
525
+ throw Error("URL validation failed");
526
+ }
527
+ } })), /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _("div", {
528
+ className: W["picture-modal__content-title"],
529
+ "data-title": o("editor.imageUrlNote"),
530
+ children: o("editor.enterImageUrl")
531
+ }), /* @__PURE__ */ _(ne, {
532
+ form: n,
533
+ children: /* @__PURE__ */ _(ne.Item, {
534
+ name: "url",
535
+ rules: [{
536
+ required: !0,
537
+ message: o("editor.pleaseEnterImageUrl")
538
+ }, { validator: (e, t) => !t || s(t) ? Promise.resolve() : Promise.reject(Error(o("editor.pleaseEnterValidImageUrl"))) }],
539
+ children: /* @__PURE__ */ _(re, {
540
+ placeholder: o("editor.pleaseEnterImageUrl"),
541
+ value: r,
542
+ onChange: (e) => i(e.target.value)
543
+ })
544
+ })
545
+ })] });
546
+ });
547
+ ot.displayName = "LinkInput";
548
+ //#endregion
549
+ //#region src/components/Editor/utils/formatTruncatedFilename.ts
550
+ var st = "......", ct = (e, t, n) => {
551
+ if (t <= 0 || n(e) <= t) return {
552
+ display: e,
553
+ truncated: !1
554
+ };
555
+ let r = e.lastIndexOf("."), i = r > 0 && r < e.length - 1, a = i ? e.slice(0, r) : e, o = i ? e.slice(r) : "", s = a.slice(-2), c = a.slice(0, -2), l = (e) => `${e}${st}${s}${o}`, u = (e) => n(e) <= t;
556
+ if (!u(l(""))) {
557
+ let t = `${st}${o}`;
558
+ return {
559
+ display: u(t) ? t : e,
560
+ truncated: !0
561
+ };
562
+ }
563
+ let d = 0, f = c.length, p = 0;
564
+ for (; d <= f;) {
565
+ let e = d + f >> 1;
566
+ u(l(c.slice(0, e))) ? (p = e, d = e + 1) : f = e - 1;
567
+ }
568
+ return {
569
+ display: l(c.slice(0, p)),
570
+ truncated: !0
571
+ };
572
+ }, lt = b(null), ut = b({ text: "" }), G = () => {
573
+ let e = C(lt);
574
+ if (!e) throw Error("useEditorContainer must be used within EditorContainerProvider");
575
+ return e;
576
+ }, dt = () => C(ut), ft = "EditorImageUploadingError";
577
+ function pt(e) {
578
+ if (!e || typeof e != "object" || !("name" in e)) return !1;
579
+ let t = String(e.name);
580
+ return t === "AbortError" || t === "CanceledError";
581
+ }
582
+ function mt(e) {
583
+ return f.includes(e.name.split(".").pop()?.toLowerCase() ?? "");
584
+ }
585
+ function ht(e) {
586
+ if (Number.isFinite(e)) return Math.min(100, Math.max(0, e));
587
+ }
588
+ function gt(e) {
589
+ return e === void 0 ? .55 : .55 * (1 - e / 100);
590
+ }
591
+ //#endregion
592
+ //#region src/components/Editor/ToolbarPlugin/Buttons/PictureButton/UploadImage.tsx
593
+ var _t = {
594
+ duration: .2,
595
+ ease: [
596
+ .4,
597
+ 0,
598
+ .2,
599
+ 1
600
+ ]
601
+ }, vt = ({ name: e, error: t }) => {
602
+ let n = E(null), [r, i] = D(e), [a, o] = D(!1);
603
+ return T(() => {
604
+ let t = n.current, r = document.createElement("canvas").getContext("2d");
605
+ if (!t || !r) return;
606
+ let a = () => {
607
+ r.font = getComputedStyle(t).font;
608
+ let n = ct(e, t.clientWidth, (e) => r.measureText(e).width);
609
+ i(n.display), o(n.truncated);
610
+ };
611
+ a();
612
+ let s = new ResizeObserver(a);
613
+ return s.observe(t), () => s.disconnect();
614
+ }, [e]), /* @__PURE__ */ _("div", {
615
+ ref: n,
616
+ className: A(W["picture-modal__preview-filename"], t && W["picture-modal__preview-filename--error"]),
617
+ title: a ? e : void 0,
618
+ children: r
619
+ });
620
+ }, yt = (e) => new Promise((t, n) => {
621
+ let r = new FileReader();
622
+ r.onload = () => t(r.result), r.onerror = () => n(r.error), r.readAsDataURL(e);
623
+ }), bt = x((t, n) => {
624
+ let { upload: r } = G(), [i, o] = D(!1), [s, c] = D([]), l = E(s);
625
+ l.current = s;
626
+ let u = E(null), f = E(/* @__PURE__ */ new Map()), p = r?.customRequest, [m, h] = k.useMessage(), { t: g } = a(), y = (e) => (e / 1024).toFixed(1) + "kb", b = (e, t) => {
627
+ c((n) => n.map((n) => n.id === e ? {
628
+ ...n,
629
+ ...t
630
+ } : n));
631
+ }, x = (e, t) => {
632
+ if (!p) {
633
+ b(e, { status: "success" });
634
+ return;
635
+ }
636
+ let n = new AbortController();
637
+ f.current.set(e, n), p(t, {
638
+ signal: n.signal,
639
+ onProgress: (t) => {
640
+ let n = ht(t);
641
+ n !== void 0 && b(e, { percent: n });
642
+ }
643
+ }).then((t) => {
644
+ n.signal.aborted || b(e, {
645
+ status: "success",
646
+ src: typeof t == "string" ? t : t.url,
647
+ percent: 100,
648
+ attachment: typeof t == "string" ? void 0 : t.attachment
649
+ });
650
+ }).catch((t) => {
651
+ n.signal.aborted || pt(t) || b(e, { status: "error" });
652
+ }).finally(() => {
653
+ f.current.delete(e);
654
+ });
655
+ }, S = (e) => mt(e) ? e.size > 5242880 ? (m.warning(g("editor.imageSizeNote")), !1) : !0 : (m.warning(g("editor.onlyImageFormatsSupported")), !1), C = (e) => {
656
+ let t = 10 - l.current.length;
657
+ if (t <= 0) {
658
+ m.warning(g("editor.imageCountNote", { count: 10 }));
659
+ return;
660
+ }
661
+ let n = Array.from(e).filter(S), r = n.slice(0, t);
662
+ if (n.length > t && m.warning(g("editor.imageCountNote", { count: 10 })), !r.length) return;
663
+ let i = r.map((e) => ({
664
+ id: `${e.name}-${e.size}-${e.lastModified}-${Math.random()}`,
665
+ file: e,
666
+ url: URL.createObjectURL(e),
667
+ status: p ? "uploading" : "success"
668
+ }));
669
+ c((e) => [...e, ...i]), i.forEach((e) => {
670
+ x(e.id, e.file);
671
+ });
672
+ }, T = (e) => {
673
+ f.current.get(e)?.abort(), f.current.delete(e), c((t) => {
674
+ let n = t.find((t) => t.id === e);
675
+ return n && URL.revokeObjectURL(n.url), t.filter((t) => t.id !== e);
676
+ });
677
+ }, te = () => {
678
+ u.current?.click();
679
+ }, O = (e) => {
680
+ e.target.files?.length && C(e.target.files), e.target.value = "";
681
+ };
682
+ return w(() => () => {
683
+ f.current.forEach((e) => e.abort()), f.current.clear(), l.current.forEach((e) => URL.revokeObjectURL(e.url));
684
+ }, []), ee(n, () => ({ getValue: async () => {
685
+ if (s.some((e) => e.status === "uploading")) {
686
+ let e = Error(g("editor.imageUploading"));
687
+ throw e.name = ft, e;
688
+ }
689
+ let e = s.filter((e) => e.status === "success");
690
+ if (!e.length) throw m.warning(g("editor.pleaseUploadImageFirst")), Error(g("editor.pleaseUploadImageFirst"));
691
+ try {
692
+ return await Promise.all(e.map(async (e) => ({
693
+ src: e.src ?? await yt(e.file),
694
+ fileName: e.file.name,
695
+ attachment: e.attachment
696
+ })));
697
+ } catch {
698
+ throw Error(g("editor.operationFailed"));
699
+ }
700
+ } }), [
701
+ s,
702
+ m,
703
+ g
704
+ ]), /* @__PURE__ */ v("div", {
705
+ onDragOver: (e) => {
706
+ e.preventDefault(), o(!0);
707
+ },
708
+ onDragLeave: (e) => {
709
+ e.preventDefault(), o(!1);
710
+ },
711
+ onDrop: (e) => {
712
+ e.preventDefault(), o(!1), e.dataTransfer.files.length && C(e.dataTransfer.files);
713
+ },
714
+ children: [
715
+ /* @__PURE__ */ v("div", {
716
+ className: W["picture-modal__ops"],
717
+ children: [/* @__PURE__ */ _("div", {
718
+ className: W["picture-modal__content-title"],
719
+ "data-title": g("editor.imageSizeNote"),
720
+ children: g("editor.uploadImage")
721
+ }), /* @__PURE__ */ v("div", {
722
+ className: `${W["picture-modal__upload-area"]} ${i ? W["picture-modal__upload-area--dragging"] : ""}`,
723
+ onClick: te,
724
+ children: [/* @__PURE__ */ _(e, { name: "upload" }), /* @__PURE__ */ _("span", {
725
+ className: W["picture-modal__upload-text"],
726
+ children: g("editor.clickOrDragToUpload")
727
+ })]
728
+ })]
729
+ }),
730
+ s.length > 0 ? /* @__PURE__ */ _("div", {
731
+ className: W["picture-modal__preview-list"],
732
+ children: /* @__PURE__ */ _(ie, {
733
+ mode: "popLayout",
734
+ children: s.map((t) => /* @__PURE__ */ v(ae.div, {
735
+ layout: "position",
736
+ className: A(W["picture-modal__preview"], t.status === "error" && W["picture-modal__preview--error"]),
737
+ initial: {
738
+ opacity: 0,
739
+ y: 12
740
+ },
741
+ animate: {
742
+ opacity: 1,
743
+ y: 0
744
+ },
745
+ exit: {
746
+ opacity: 0,
747
+ y: -8
748
+ },
749
+ transition: _t,
750
+ children: [
751
+ /* @__PURE__ */ v("div", {
752
+ className: W["picture-modal__preview-image"],
753
+ children: [/* @__PURE__ */ _("img", {
754
+ src: t.url,
755
+ alt: g("editor.previewImage")
756
+ }), t.status === "uploading" ? /* @__PURE__ */ _("div", {
757
+ className: W["picture-modal__preview-mask"],
758
+ style: { opacity: gt(t.percent) },
759
+ children: t.percent === void 0 ? /* @__PURE__ */ _("span", { className: W["picture-modal__preview-spinner"] }) : null
760
+ }) : null]
761
+ }),
762
+ /* @__PURE__ */ v("div", {
763
+ className: W["picture-modal__preview-info"],
764
+ children: [/* @__PURE__ */ _(vt, {
765
+ name: t.file.name,
766
+ error: t.status === "error"
767
+ }), /* @__PURE__ */ _("div", {
768
+ className: W["picture-modal__preview-size"],
769
+ children: y(t.file.size)
770
+ })]
771
+ }),
772
+ /* @__PURE__ */ _("div", {
773
+ className: W["picture-modal__preview-delete"],
774
+ role: "button",
775
+ onClick: () => T(t.id),
776
+ children: /* @__PURE__ */ _(e, { name: "delete" })
777
+ })
778
+ ]
779
+ }, t.id))
780
+ })
781
+ }) : null,
782
+ /* @__PURE__ */ _("input", {
783
+ ref: u,
784
+ type: "file",
785
+ accept: d,
786
+ multiple: !0,
787
+ style: { display: "none" },
788
+ onChange: O
789
+ }),
790
+ h
791
+ ]
792
+ });
793
+ });
794
+ bt.displayName = "UploadImage";
795
+ //#endregion
796
+ //#region src/components/Editor/commands/ImageCommands.ts
797
+ var xt = Ce("INSERT_INLINE_IMAGE_COMMAND"), St = ({ disabled: t }) => {
798
+ let { t: n } = a(), [i] = F(), { attachmentsBySrcRef: o } = G(), [s, l] = D(!1), u = E(null), d = E(null), f = [{
799
+ key: "upload",
800
+ title: n("editor.uploadImage"),
801
+ icon: /* @__PURE__ */ _(e, { name: "picture" })
802
+ }, {
803
+ key: "url",
804
+ title: n("editor.imageUrl"),
805
+ icon: /* @__PURE__ */ _(e, { name: "Insertlink" })
806
+ }], [p, m] = D(f[0].key), h = async () => {
807
+ try {
808
+ if (p === "upload" && d.current) (await d.current.getValue()).forEach((e) => {
809
+ e.attachment !== void 0 && o.current.set(e.src, e.attachment), i.dispatchCommand(xt, {
810
+ src: e.src,
811
+ altText: e.fileName
812
+ });
813
+ });
814
+ else if (u.current) {
815
+ let e = await u.current.getValue();
816
+ i.dispatchCommand(xt, {
817
+ src: e,
818
+ altText: e
819
+ });
820
+ }
821
+ l(!1);
822
+ } catch (e) {
823
+ let t = e instanceof Error ? e.message : n("editor.operationFailed");
824
+ if (e instanceof Error && e.name === "EditorImageUploadingError") {
825
+ k.warning(t);
826
+ return;
827
+ }
828
+ k.error(t);
829
+ }
830
+ }, y = {
831
+ upload: /* @__PURE__ */ _(bt, { ref: d }),
832
+ url: /* @__PURE__ */ _(ot, { ref: u })
833
+ };
834
+ return /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _(V, {
835
+ icon: "picture",
836
+ tooltip: n("picture"),
837
+ disabled: t,
838
+ onClick: () => l(!0)
839
+ }), /* @__PURE__ */ v(r, {
840
+ title: n("addPicture"),
841
+ open: s,
842
+ onOpenChange: l,
843
+ width: "620px",
844
+ children: [/* @__PURE__ */ v("div", {
845
+ className: W["picture-modal__container"],
846
+ children: [/* @__PURE__ */ _("div", {
847
+ className: W["picture-modal__sidebar"],
848
+ children: /* @__PURE__ */ _("ul", {
849
+ className: W["picture-modal__menu-list"],
850
+ children: f.map((e) => /* @__PURE__ */ v("li", {
851
+ className: `${W["picture-modal__menu-item"]} ${p === e.key ? W["picture-modal__menu-item--active"] : ""}`,
852
+ onClick: () => m(e.key),
853
+ children: [/* @__PURE__ */ _("span", {
854
+ className: W["picture-modal__menu-icon"],
855
+ children: e.icon
856
+ }), /* @__PURE__ */ _("span", { children: e.title })]
857
+ }, e.title))
858
+ })
859
+ }), /* @__PURE__ */ _(c, {
860
+ className: W["picture-modal__content"],
861
+ contentClassName: W["picture-modal__content-body"],
862
+ children: y[p]
863
+ })]
864
+ }), /* @__PURE__ */ v("div", {
865
+ className: W["picture-modal__footer"],
866
+ children: [/* @__PURE__ */ _(O, {
867
+ onClick: () => l(!1),
868
+ children: n("cancel")
869
+ }), /* @__PURE__ */ _(O, {
870
+ type: "primary",
871
+ onClick: h,
872
+ children: n("confirm")
873
+ })]
874
+ })]
875
+ })] });
876
+ }, Ct = ({ disabled: e }) => {
877
+ let [t] = F(), { canUndo: n } = Ke(), { t: r } = a();
878
+ return /* @__PURE__ */ _(V, {
879
+ icon: "chexiao",
880
+ tooltip: r("editor.undo"),
881
+ disabled: e || !n,
882
+ onClick: () => {
883
+ t.dispatchCommand(Se, void 0);
884
+ }
885
+ });
886
+ }, wt = ({ disabled: e }) => {
887
+ let [t] = F(), { canRedo: n } = Ke(), { t: r } = a();
888
+ return /* @__PURE__ */ _(V, {
889
+ icon: "fanhui",
890
+ tooltip: r("editor.redo"),
891
+ disabled: e || !n,
892
+ onClick: () => t.dispatchCommand(xe, void 0)
893
+ });
894
+ }, Tt = ({ disabled: e }) => {
895
+ let [t] = F(), { strikethrough: n } = H(), { t: r } = a();
896
+ return /* @__PURE__ */ _(V, {
897
+ icon: "shanchuxian",
898
+ tooltip: r("editor.strikethrough"),
899
+ active: n,
900
+ disabled: e,
901
+ onClick: () => t.dispatchCommand(P, "strikethrough")
902
+ });
903
+ }, Et = ({ disabled: e }) => {
904
+ let [t] = F(), { superscript: n } = H(), { t: r } = a();
905
+ return /* @__PURE__ */ _(V, {
906
+ icon: "shangbiao",
907
+ tooltip: r("editor.superscript"),
908
+ active: n,
909
+ disabled: e,
910
+ onClick: () => t.dispatchCommand(P, "superscript")
911
+ });
912
+ }, Dt = ({ disabled: e }) => {
913
+ let [t] = F(), { subscript: n } = H(), { t: r } = a();
914
+ return /* @__PURE__ */ _(V, {
915
+ icon: "xiabiao",
916
+ tooltip: r("editor.subscript"),
917
+ active: n,
918
+ disabled: e,
919
+ onClick: () => t.dispatchCommand(P, "subscript")
920
+ });
921
+ }, Ot = ({ disabled: e }) => {
922
+ let [t] = F(), { t: n } = a();
923
+ return /* @__PURE__ */ _(V, {
924
+ icon: "zengjiasuojin",
925
+ tooltip: n("editor.indent"),
926
+ disabled: e,
927
+ onClick: () => t.dispatchCommand(ye, void 0)
928
+ });
929
+ }, kt = ({ disabled: e }) => {
930
+ let [t] = F(), { canOutdent: n } = H(), { t: r } = a();
931
+ return /* @__PURE__ */ v("div", {
932
+ className: R["bsy-lexical__toolbar-with-divider"],
933
+ children: [/* @__PURE__ */ _("div", { className: R["bsy-lexical__toolbar-divider"] }), /* @__PURE__ */ _(V, {
934
+ icon: "jianshaosuojin",
935
+ tooltip: r("editor.outdent"),
936
+ disabled: e || !n,
937
+ onClick: () => t.dispatchCommand(be, void 0)
938
+ })]
939
+ });
940
+ }, At = ({ disabled: e }) => {
941
+ let [t] = F(), { listType: n } = H(), { t: r } = a(), i = n === "bullet";
942
+ return /* @__PURE__ */ _(V, {
943
+ icon: "xuhaoliebiao",
944
+ tooltip: r("editor.bulletList"),
945
+ active: i,
946
+ disabled: e,
947
+ onClick: () => {
948
+ t.dispatchCommand(i ? je : Ae, void 0);
949
+ }
950
+ });
951
+ }, jt = ({ disabled: e }) => {
952
+ let [t] = F(), { listType: n } = H(), { t: r } = a(), i = n === "number";
953
+ return /* @__PURE__ */ _(V, {
954
+ icon: "bianhaoliebiao",
955
+ tooltip: r("editor.numberList"),
956
+ active: i,
957
+ disabled: e,
958
+ onClick: () => {
959
+ t.dispatchCommand(i ? je : ke, void 0);
960
+ }
961
+ });
962
+ }, Mt = ({ disabled: e }) => {
963
+ let [t] = F(), { isCodeBlock: n } = H(), { t: r } = a();
964
+ return /* @__PURE__ */ _(V, {
965
+ icon: "daima",
966
+ tooltip: r("editor.codeBlock"),
967
+ active: n,
968
+ disabled: e,
969
+ onClick: () => {
970
+ t.update(() => {
971
+ Te(M(), () => n ? j() : Me(ze));
972
+ });
973
+ }
974
+ });
975
+ }, K = {
976
+ "bsy-lexical__table-picker": "_bsy-lexical__table-picker_mv0nn_1",
977
+ "bsy-lexical__table-picker-grid": "_bsy-lexical__table-picker-grid_mv0nn_9",
978
+ "bsy-lexical__table-picker-cell": "_bsy-lexical__table-picker-cell_mv0nn_15",
979
+ "bsy-lexical__table-picker-cell--active": "_bsy-lexical__table-picker-cell--active_mv0nn_24",
980
+ "bsy-lexical__table-picker-label": "_bsy-lexical__table-picker-label_mv0nn_28"
981
+ }, Nt = h(1, 11), Pt = ({ disabled: e }) => {
982
+ let [r] = F(), { isInTable: i } = H(), { t: s } = a(), c = t(), [u, d] = D(!1), [f, p] = D({
983
+ rows: 0,
984
+ cols: 0
985
+ });
986
+ w(() => {
987
+ i && d(!1);
988
+ }, [i]);
989
+ let m = () => {
990
+ d(!1), p({
991
+ rows: 0,
992
+ cols: 0
993
+ });
994
+ }, { refs: h, floatingStyles: y, getReferenceProps: b, getFloatingProps: x } = l({
995
+ isOpen: u,
996
+ close: m,
997
+ showMask: !1,
998
+ zIndex: c,
999
+ popupMinWidth: "220px",
1000
+ offset: L
1001
+ });
1002
+ return i ? /* @__PURE__ */ _(V, {
1003
+ icon: "charubiaoge",
1004
+ tooltip: s("editor.table"),
1005
+ disabled: !0
1006
+ }) : /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _("div", {
1007
+ className: "inline-flex",
1008
+ ref: h.setReference,
1009
+ ...b({ onClick: () => d((e) => !e) }),
1010
+ children: /* @__PURE__ */ _(V, {
1011
+ icon: "charubiaoge",
1012
+ tooltip: s("editor.table"),
1013
+ disabled: e
1014
+ })
1015
+ }), /* @__PURE__ */ _(oe, { children: /* @__PURE__ */ _(n, {
1016
+ zIndex: c,
1017
+ children: /* @__PURE__ */ _(ie, { children: u ? /* @__PURE__ */ _(ae.div, {
1018
+ ref: h.setFloating,
1019
+ ...x(),
1020
+ style: {
1021
+ ...y,
1022
+ zIndex: c
1023
+ },
1024
+ ...o,
1025
+ children: /* @__PURE__ */ v("div", {
1026
+ className: K["bsy-lexical__table-picker"],
1027
+ onMouseDown: (e) => e.preventDefault(),
1028
+ onMouseLeave: () => p({
1029
+ rows: 0,
1030
+ cols: 0
1031
+ }),
1032
+ children: [/* @__PURE__ */ _("div", {
1033
+ className: K["bsy-lexical__table-picker-grid"],
1034
+ children: Nt.map((e) => Nt.map((t) => /* @__PURE__ */ _("button", {
1035
+ type: "button",
1036
+ className: A(K["bsy-lexical__table-picker-cell"], f.rows >= e && f.cols >= t && K["bsy-lexical__table-picker-cell--active"]),
1037
+ onMouseEnter: () => p({
1038
+ rows: e,
1039
+ cols: t
1040
+ }),
1041
+ onClick: () => {
1042
+ r.dispatchCommand(Ne, {
1043
+ rows: String(e),
1044
+ columns: String(t),
1045
+ includeHeaders: !1
1046
+ }), m();
1047
+ }
1048
+ }, `${e}-${t}`)))
1049
+ }), /* @__PURE__ */ v("div", {
1050
+ className: K["bsy-lexical__table-picker-label"],
1051
+ children: [
1052
+ f.rows,
1053
+ " × ",
1054
+ f.cols
1055
+ ]
1056
+ })]
1057
+ })
1058
+ }, "bsy-lexical-table-picker") : null })
1059
+ }) })] });
1060
+ }, Ft = b(null), It = () => {
1061
+ let e = C(Ft);
1062
+ if (!e) throw Error("useSourceMode must be used within SourceModeProvider");
1063
+ return e;
1064
+ }, Lt = ({ disabled: e }) => {
1065
+ let { t } = a(), { isSourceMode: n, toggleSourceMode: r } = It();
1066
+ return /* @__PURE__ */ _(V, {
1067
+ icon: "yuanmamoshi",
1068
+ tooltip: t("editor.sourceMode"),
1069
+ active: n,
1070
+ disabled: e,
1071
+ onClick: r
1072
+ });
1073
+ }, Rt = ({ disabled: t }) => {
1074
+ let [n] = F(), { headingTag: r, isInTable: i } = H(), { t: o } = a(), { iconSize: s } = z(), c = r || "paragraph", l = [
1075
+ {
1076
+ key: "paragraph",
1077
+ label: o("editor.paragraph")
1078
+ },
1079
+ {
1080
+ key: "h1",
1081
+ label: o("editor.heading1")
1082
+ },
1083
+ {
1084
+ key: "h2",
1085
+ label: o("editor.heading2")
1086
+ },
1087
+ {
1088
+ key: "h3",
1089
+ label: o("editor.heading3")
1090
+ }
1091
+ ], d = l.find((e) => e.key === c)?.label, f = S((e) => {
1092
+ let t = e.key;
1093
+ n.update(() => {
1094
+ Te(M(), () => t === "paragraph" ? j() : Pe(t));
1095
+ });
1096
+ }, [n]), p = /* @__PURE__ */ _("div", {
1097
+ className: R["bsy-lexical__toolbar-select"],
1098
+ style: { width: 62 },
1099
+ children: /* @__PURE__ */ _(V, {
1100
+ icon: /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _("span", {
1101
+ className: R["bsy-lexical__toolbar-select-label"],
1102
+ children: d
1103
+ }), /* @__PURE__ */ _(e, {
1104
+ name: "arrow-down",
1105
+ size: s,
1106
+ className: R["bsy-lexical__toolbar-select-arrow"]
1107
+ })] }),
1108
+ tooltip: o("editor.heading"),
1109
+ disabled: t || i
1110
+ })
1111
+ });
1112
+ return t || i ? p : /* @__PURE__ */ _(u, {
1113
+ menus: l,
1114
+ onClick: f,
1115
+ showSearch: !1,
1116
+ activeKey: [c],
1117
+ offset: L,
1118
+ style: {
1119
+ width: "62px",
1120
+ minWidth: "62px"
1121
+ },
1122
+ children: p
1123
+ });
1124
+ };
1125
+ //#endregion
1126
+ //#region src/components/Editor/utils/clearInlineTextFormat.ts
1127
+ function zt() {
1128
+ let e = M();
1129
+ if (N(e)) {
1130
+ I(e, {
1131
+ "font-size": null,
1132
+ color: null,
1133
+ "background-color": null
1134
+ });
1135
+ for (let t of e.getNodes()) pe(t) && t.setFormat(0);
1136
+ e.setFormat(0);
1137
+ }
1138
+ }
1139
+ //#endregion
1140
+ //#region src/components/Editor/ToolbarPlugin/Buttons/ClearFormatButton.tsx
1141
+ var Bt = ({ disabled: e }) => {
1142
+ let [t] = F(), { t: n } = a();
1143
+ return /* @__PURE__ */ _(V, {
1144
+ icon: "clearTree",
1145
+ tooltip: n("editor.clearFormat"),
1146
+ disabled: e,
1147
+ onClick: () => {
1148
+ t.update(() => {
1149
+ zt();
1150
+ });
1151
+ }
1152
+ });
1153
+ }, Vt = /<!--bsy-code-(\d+)-->/g, Ht = [
1154
+ "quick",
1155
+ "formal",
1156
+ "colloquial",
1157
+ "lively",
1158
+ "literary",
1159
+ "retro"
1160
+ ], Ut = {
1161
+ quick: "editor.aiPresetQuick",
1162
+ formal: "editor.aiPresetFormal",
1163
+ colloquial: "editor.aiPresetColloquial",
1164
+ lively: "editor.aiPresetLively",
1165
+ literary: "editor.aiPresetLiterary",
1166
+ retro: "editor.aiPresetRetro"
1167
+ };
1168
+ //#endregion
1169
+ //#region src/components/Editor/utils/htmlText.ts
1170
+ function Wt(e) {
1171
+ return /<[^>]*$/.test(e.trim());
1172
+ }
1173
+ function Gt(e) {
1174
+ return e ? new DOMParser().parseFromString(e, "text/html").body.textContent ?? "" : "";
1175
+ }
1176
+ //#endregion
1177
+ //#region src/components/Editor/utils/fillRootFromHtml.ts
1178
+ var Kt = [
1179
+ "color",
1180
+ "background-color",
1181
+ "font-size",
1182
+ "font-family",
1183
+ "font-weight",
1184
+ "text-decoration"
1185
+ ], qt = (e) => {
1186
+ let t = e.body.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li, td, th");
1187
+ for (let n of Array.from(t)) {
1188
+ let t = n, r = [];
1189
+ for (let e of Kt) {
1190
+ let n = t.style.getPropertyValue(e);
1191
+ n && (r.push(`${e}: ${n}`), t.style.removeProperty(e));
1192
+ }
1193
+ if (!r.length) continue;
1194
+ let i = r.join("; ");
1195
+ for (let n of Array.from(t.childNodes)) {
1196
+ if (n.nodeType === Node.TEXT_NODE && n.textContent) {
1197
+ let r = e.createElement("span");
1198
+ r.setAttribute("style", i), t.insertBefore(r, n), r.appendChild(n);
1199
+ continue;
1200
+ }
1201
+ if (n.nodeType === Node.ELEMENT_NODE) {
1202
+ let e = n, t = e.getAttribute("style");
1203
+ e.setAttribute("style", t ? `${t}; ${i}` : i);
1204
+ }
1205
+ }
1206
+ }
1207
+ };
1208
+ function Jt(e, t) {
1209
+ let n = ue();
1210
+ if (n.clear(), !t.trim()) return;
1211
+ let r = new DOMParser().parseFromString(t, "text/html");
1212
+ qt(r);
1213
+ let i = ce(e, r);
1214
+ i.length && (n.select(), de(i));
1215
+ }
1216
+ //#endregion
1217
+ //#region src/components/Editor/utils/isEmptyEditorHtml.ts
1218
+ function Yt(e, t) {
1219
+ return !t.trim() && (e === "<p><br></p>" || e === "<p></p>" || e === "" || /^<p>\s*<br>\s*<\/p>$/.test(e));
1220
+ }
1221
+ //#endregion
1222
+ //#region src/components/Editor/utils/sanitizeEditorHtml.ts
1223
+ var Xt = /* @__PURE__ */ "p.br.strong.em.b.i.u.s.span.sub.sup.ul.ol.li.a.img.pre.code.table.thead.tbody.tr.td.th.h1.h2.h3.h4.h5.h6".split("."), Zt = [
1224
+ "href",
1225
+ "src",
1226
+ "alt",
1227
+ "target",
1228
+ "rel",
1229
+ "colspan",
1230
+ "rowspan",
1231
+ "data-language",
1232
+ "class",
1233
+ "style",
1234
+ "width",
1235
+ "height"
1236
+ ], Qt = new Set(/* @__PURE__ */ "color.background-color.font-size.font-family.font-weight.font-style.text-decoration.text-align.max-width.display.vertical-align.width.height.border.margin.padding.padding-inline-start.line-height.list-style-type.list-style-position.list-style.border-collapse.table-layout.overflow-x.white-space.tab-size.border-radius.box-sizing.min-width.min-height.cursor".split(".")), $t = /^(?:(?:(?:f|ht)tps?|mailto|blob):|data:image\/[a-z0-9.+-]+[;,].*|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i, en = new Set([
1237
+ "pre",
1238
+ "code",
1239
+ "td",
1240
+ "th"
1241
+ ]), tn = new Set(["pre", "code"]), nn = (e, t) => Qt.has(e) ? e === "padding-inline-start" ? !0 : e === "padding" || e.startsWith("padding-") ? en.has(t) : e === "border-radius" ? tn.has(t) : !0 : !1, rn = (e, t) => e.split(";").map((e) => e.trim()).filter(Boolean).map((e) => {
1242
+ let n = e.indexOf(":");
1243
+ if (n === -1) return null;
1244
+ let r = e.slice(0, n).trim().toLowerCase(), i = e.slice(n + 1).trim();
1245
+ if (r === "background") {
1246
+ if (/url\s*\(/i.test(i)) return null;
1247
+ r = "background-color";
1248
+ }
1249
+ return !nn(r, t) || /expression|javascript:|url\s*\(\s*['"]?\s*javascript/i.test(i) ? null : `${r}: ${i}`;
1250
+ }).filter((e) => e !== null).join("; "), an = !1, on = () => {
1251
+ an ||= (Fe.addHook("uponSanitizeAttribute", (e, t) => {
1252
+ if (t.attrName === "href" && /^data:/i.test(t.attrValue)) {
1253
+ t.keepAttr = !1;
1254
+ return;
1255
+ }
1256
+ t.attrName === "style" && (t.attrValue = rn(t.attrValue, e.nodeName.toLowerCase()), t.attrValue || (t.keepAttr = !1));
1257
+ }), !0);
1258
+ };
1259
+ function q(e) {
1260
+ return e ? (on(), Fe.sanitize(e, {
1261
+ ALLOWED_TAGS: Xt,
1262
+ ALLOWED_ATTR: Zt,
1263
+ ALLOW_DATA_ATTR: !1,
1264
+ ADD_ATTR: ["data-language"],
1265
+ ALLOWED_URI_REGEXP: $t
1266
+ })) : "";
1267
+ }
1268
+ //#endregion
1269
+ //#region src/components/Editor/utils/stitchCodePlaceholders.ts
1270
+ var sn = "bsy-html-root";
1271
+ function J(e) {
1272
+ return new DOMParser().parseFromString(`<${sn}>${e}</${sn}>`, "text/html").body.querySelector(sn);
1273
+ }
1274
+ function cn(e, t) {
1275
+ if (!t.length) return e;
1276
+ let n = /* @__PURE__ */ new Set(), r = e.replace(Vt, (e, r) => {
1277
+ let i = Number(r), a = t[i];
1278
+ return a === void 0 ? "" : (n.add(i), a);
1279
+ }), i = t.filter((e, t) => !n.has(t)).join("");
1280
+ return i ? `${r}${i}` : r;
1281
+ }
1282
+ function ln(e, t) {
1283
+ return cn(un(e), t);
1284
+ }
1285
+ function un(e) {
1286
+ if (!/<pre[\s>/]/i.test(e)) return e;
1287
+ let t = J(e);
1288
+ if (!t) return e;
1289
+ let n = t.ownerDocument;
1290
+ for (let e of Array.from(t.querySelectorAll("pre"))) {
1291
+ let t = n.createComment("bsy-code-dropped");
1292
+ e.replaceWith(t);
1293
+ }
1294
+ return t.innerHTML.replace(/<!--bsy-code-dropped-->/g, "");
1295
+ }
1296
+ //#endregion
1297
+ //#region src/components/Editor/constants/portableEditorStyles.ts
1298
+ var Y = {
1299
+ margin: "0.6em 0 0.4em",
1300
+ "font-weight": "600",
1301
+ "line-height": "1.35"
1302
+ }, dn = {
1303
+ h1: {
1304
+ ...Y,
1305
+ "font-size": "2em"
1306
+ },
1307
+ h2: {
1308
+ ...Y,
1309
+ "font-size": "1.5em"
1310
+ },
1311
+ h3: {
1312
+ ...Y,
1313
+ "font-size": "1.25em"
1314
+ },
1315
+ h4: {
1316
+ ...Y,
1317
+ "font-size": "1.125em"
1318
+ },
1319
+ h5: {
1320
+ ...Y,
1321
+ "font-size": "1em"
1322
+ },
1323
+ h6: {
1324
+ ...Y,
1325
+ "font-size": "0.875em"
1326
+ }
1327
+ }, fn = {
1328
+ color: "#0269ff",
1329
+ cursor: "pointer"
1330
+ }, pn = {
1331
+ margin: "0",
1332
+ "padding-inline-start": "24px",
1333
+ "list-style-position": "outside"
1334
+ }, mn = [
1335
+ "disc",
1336
+ "circle",
1337
+ "square"
1338
+ ], hn = {
1339
+ margin: "0",
1340
+ "list-style": "inherit"
1341
+ }, gn = {
1342
+ margin: "0",
1343
+ "list-style-type": "none"
1344
+ }, _n = {
1345
+ display: "block",
1346
+ "box-sizing": "border-box",
1347
+ "max-width": "100%",
1348
+ margin: "8px 0",
1349
+ padding: "8px 12px",
1350
+ "overflow-x": "auto",
1351
+ "font-family": "Menlo, Consolas, Monaco, monospace",
1352
+ "font-size": "13px",
1353
+ "line-height": "1.53",
1354
+ "white-space": "pre",
1355
+ "tab-size": "2",
1356
+ "border-radius": "4px",
1357
+ "background-color": "rgb(240, 242, 245)",
1358
+ color: "#1f2328"
1359
+ }, vn = {
1360
+ "border-collapse": "collapse",
1361
+ "table-layout": "fixed",
1362
+ width: "100%",
1363
+ "overflow-x": "auto",
1364
+ margin: "8px 0"
1365
+ }, yn = {
1366
+ "box-sizing": "border-box",
1367
+ "min-width": "75px",
1368
+ "min-height": "32px",
1369
+ padding: "4px 8px",
1370
+ border: "1px solid #d9d9d9",
1371
+ "vertical-align": "top"
1372
+ }, bn = {
1373
+ "font-weight": "600",
1374
+ "background-color": "#f2f3f5"
1375
+ }, X = (e, t) => {
1376
+ for (let [n, r] of Object.entries(t)) e.style.getPropertyValue(n) || e.style.setProperty(n, r);
1377
+ }, xn = (e) => {
1378
+ let t = 0, n = e;
1379
+ for (; n;) n.tagName === "UL" && (t += 1), n = n.parentElement;
1380
+ return t;
1381
+ }, Sn = (e) => {
1382
+ for (let t of Array.from(e.querySelectorAll("*"))) {
1383
+ if (!(t instanceof HTMLElement)) continue;
1384
+ let e = t.tagName.toLowerCase(), n = dn[e];
1385
+ if (n && X(t, n), e === "a" && X(t, fn), e === "ul") {
1386
+ let e = Math.min(Math.max(xn(t), 1), mn.length);
1387
+ X(t, {
1388
+ ...pn,
1389
+ "list-style-type": mn[e - 1]
1390
+ });
1391
+ }
1392
+ e === "ol" && X(t, {
1393
+ ...pn,
1394
+ "list-style-type": "decimal"
1395
+ }), e === "li" && X(t, t.classList.contains("editor-nested-listitem") ? gn : hn), e === "pre" && X(t, _n), e === "table" && X(t, vn), (e === "td" || e === "th") && (X(t, yn), (e === "th" || t.classList.contains("editor-table-cell-header")) && X(t, bn)), t.classList.contains("editor-text-underline-strikethrough") ? X(t, { "text-decoration": "underline line-through" }) : t.classList.contains("editor-text-underline") ? X(t, { "text-decoration": "underline" }) : t.classList.contains("editor-text-strikethrough") && X(t, { "text-decoration": "line-through" });
1396
+ for (let e of Array.from(t.classList)) e.startsWith("editor-") && t.classList.remove(e);
1397
+ t.classList.length === 0 && t.removeAttribute("class");
1398
+ }
1399
+ }, Cn = (e) => {
1400
+ let t = e.parentNode;
1401
+ if (t) {
1402
+ for (; e.firstChild;) t.insertBefore(e.firstChild, e);
1403
+ t.removeChild(e);
1404
+ }
1405
+ }, wn = (e) => {
1406
+ let t = !0;
1407
+ for (; t;) {
1408
+ t = !1;
1409
+ for (let n of Array.from(e.querySelectorAll("span, b, i"))) {
1410
+ if (n.attributes.length > 0) continue;
1411
+ let e = n.tagName.toLowerCase();
1412
+ if (e === "span") {
1413
+ Cn(n), t = !0;
1414
+ continue;
1415
+ }
1416
+ if (n.childElementCount !== 1 || n.childNodes.length !== 1) continue;
1417
+ let r = n.firstElementChild;
1418
+ (e === "b" && r?.tagName === "STRONG" || e === "i" && r?.tagName === "EM") && (Cn(n), t = !0);
1419
+ }
1420
+ }
1421
+ };
1422
+ function Tn(e) {
1423
+ if (!e.trim()) return e;
1424
+ let t = new DOMParser().parseFromString(e, "text/html");
1425
+ return Sn(t.body), wn(t.body), t.body.innerHTML;
1426
+ }
1427
+ //#endregion
1428
+ //#region src/components/Editor/utils/applyAiPolish.ts
1429
+ var En = "<!--bsy-block-->";
1430
+ function Dn(e) {
1431
+ return e.join(`\n\n${En}\n\n`);
1432
+ }
1433
+ function On(e) {
1434
+ return e.includes("<!--bsy-block-->") ? e.split(En).map((e) => e.trim()) : [e];
1435
+ }
1436
+ function kn(e) {
1437
+ return e.split(En).join("").trim().length > 0;
1438
+ }
1439
+ function An(e, t) {
1440
+ let n = e.map(() => "");
1441
+ if (e.length === 0) return n;
1442
+ let r = [], i = [];
1443
+ if (e.forEach((e, t) => {
1444
+ for (let n of Array.from(e)) i.push(n), r.push(t);
1445
+ }), i.length === 0) return n[0] = t, n;
1446
+ let a = i, o = Array.from(t), s = a.length, c = o.length, l = Array.from({ length: s + 1 }, () => Array(c + 1).fill(0));
1447
+ for (let e = s - 1; e >= 0; e--) for (let t = c - 1; t >= 0; t--) l[e][t] = a[e] === o[t] ? l[e + 1][t + 1] + 1 : Math.max(l[e + 1][t], l[e][t + 1]);
1448
+ let u = 0, d = 0, f = r[0];
1449
+ for (; u < s && d < c;) a[u] === o[d] ? (f = r[u], n[f] += o[d], u += 1, d += 1) : l[u + 1][d] >= l[u][d + 1] ? (f = r[u], u += 1) : (n[f] += o[d], d += 1);
1450
+ for (; d < c;) n[n.length - 1] += o[d], d += 1;
1451
+ return n;
1452
+ }
1453
+ var jn = new Set(["PRE"]), Mn = new Set([
1454
+ "PRE",
1455
+ "TABLE",
1456
+ "THEAD",
1457
+ "TBODY",
1458
+ "TR",
1459
+ "TD",
1460
+ "TH",
1461
+ "IMG",
1462
+ "BR"
1463
+ ]);
1464
+ function Nn(e) {
1465
+ let t = [], n = (e) => {
1466
+ if (e.nodeType === Node.ELEMENT_NODE) {
1467
+ let t = e.tagName;
1468
+ if (jn.has(t)) return;
1469
+ for (let t of Array.from(e.childNodes)) n(t);
1470
+ return;
1471
+ }
1472
+ e.nodeType === Node.TEXT_NODE && t.push(e);
1473
+ };
1474
+ return n(e), t;
1475
+ }
1476
+ function Pn(e, t) {
1477
+ let n = e;
1478
+ for (; n && n !== t && !Mn.has(n.tagName) && !(n.textContent ?? "").trim() && !n.querySelector("img, pre, table, br");) {
1479
+ let e = n.parentElement;
1480
+ n.remove(), n = e;
1481
+ }
1482
+ }
1483
+ function Fn(e) {
1484
+ let t = e.tagName;
1485
+ return t === "PRE" || t === "IMG" || t === "TABLE";
1486
+ }
1487
+ function In(e) {
1488
+ let t = J(e);
1489
+ return t ? Array.from(t.children).filter((e) => !Fn(e)).map((e) => e.textContent ?? "") : [];
1490
+ }
1491
+ function Ln(e) {
1492
+ return e.includes("<!--bsy-block-->") ? e : Gt(e) || e;
1493
+ }
1494
+ function Rn(e, t) {
1495
+ let n = Nn(e);
1496
+ if (n.length === 0) {
1497
+ t && (e.querySelector("br")?.remove(), e.append(e.ownerDocument.createTextNode(t)));
1498
+ return;
1499
+ }
1500
+ let r = An(n.map((e) => e.textContent ?? ""), t);
1501
+ for (let t = 0; t < n.length; t++) {
1502
+ let i = r[t], a = n[t];
1503
+ if (i) {
1504
+ a.textContent = i;
1505
+ continue;
1506
+ }
1507
+ let o = a.parentElement;
1508
+ a.remove(), Pn(o, e);
1509
+ }
1510
+ }
1511
+ function zn(e, t) {
1512
+ let n = Ln(t);
1513
+ if (!kn(n) || !e.trim()) return "";
1514
+ let r = J(e);
1515
+ if (!r) return "";
1516
+ let i = Array.from(r.children).filter((e) => !Fn(e));
1517
+ if (i.length === 0) return "";
1518
+ let a = On(n), o = a.length === i.length ? a : An(i.map((e) => e.textContent ?? ""), a.join(""));
1519
+ for (let e = 0; e < i.length; e++) Rn(i[e], o[e] ?? "");
1520
+ return r.innerHTML;
1521
+ }
1522
+ function Bn(e, t) {
1523
+ let n = "";
1524
+ e.getEditorState().read(() => {
1525
+ n = Tn(q(se(e, null)));
1526
+ }, { editor: e });
1527
+ let r = q(zn(n, t));
1528
+ return !r.trim() || Yt(r, Gt(r)) ? !1 : (e.update(() => {
1529
+ Jt(e, r);
1530
+ }, { discrete: !0 }), !0);
1531
+ }
1532
+ //#endregion
1533
+ //#region src/components/Editor/utils/extractCodePlaceholders.ts
1534
+ function Vn(e) {
1535
+ if (!e.trim()) return {
1536
+ html: e,
1537
+ blocks: []
1538
+ };
1539
+ let t = new DOMParser().parseFromString(e, "text/html"), n = [], r = Array.from(t.body.querySelectorAll("pre"));
1540
+ for (let e of r) {
1541
+ n.push(e.outerHTML);
1542
+ let r = t.createComment(`bsy-code-${n.length - 1}`);
1543
+ e.replaceWith(r);
1544
+ }
1545
+ return {
1546
+ html: t.body.innerHTML,
1547
+ blocks: n
1548
+ };
1549
+ }
1550
+ //#endregion
1551
+ //#region src/components/Editor/utils/readEditorAiSnapshot.ts
1552
+ function Hn(e) {
1553
+ let t = "", n = "", r = "";
1554
+ e.getEditorState().read(() => {
1555
+ n = ue().getTextContent(), t = Tn(q(se(e, null))), r = Dn(In(t));
1556
+ }, { editor: e });
1557
+ let i = Vn(t);
1558
+ return {
1559
+ html: t,
1560
+ text: n,
1561
+ polishText: r,
1562
+ htmlWithoutCode: i.html,
1563
+ codeBlocks: i.blocks
1564
+ };
1565
+ }
1566
+ //#endregion
1567
+ //#region src/components/Editor/Preview/preview.module.scss
1568
+ var Z = {
1569
+ "bsy-lexical-ai__trigger": "_bsy-lexical-ai__trigger_1ke2e_1",
1570
+ "bsy-lexical-ai__icon": "_bsy-lexical-ai__icon_1ke2e_4",
1571
+ "bsy-lexical-ai__dialog": "_bsy-lexical-ai__dialog_1ke2e_11",
1572
+ "bsy-lexical-ai__pane": "_bsy-lexical-ai__pane_1ke2e_16",
1573
+ "bsy-lexical-ai__column": "_bsy-lexical-ai__column_1ke2e_22",
1574
+ "bsy-lexical-ai__column-head": "_bsy-lexical-ai__column-head_1ke2e_32",
1575
+ "bsy-lexical-ai__column-title": "_bsy-lexical-ai__column-title_1ke2e_39",
1576
+ "bsy-lexical-ai__column-title--before": "_bsy-lexical-ai__column-title--before_1ke2e_53",
1577
+ "bsy-lexical-ai__column-dot": "_bsy-lexical-ai__column-dot_1ke2e_57",
1578
+ "bsy-lexical-ai__column-title--after": "_bsy-lexical-ai__column-title--after_1ke2e_60",
1579
+ "bsy-lexical-ai__column-stack": "_bsy-lexical-ai__column-stack_1ke2e_73",
1580
+ "bsy-lexical-ai__column-body": "_bsy-lexical-ai__column-body_1ke2e_79",
1581
+ "bsy-lexical-ai__think-pin": "_bsy-lexical-ai__think-pin_1ke2e_86",
1582
+ "bsy-lexical-ai__think-head": "_bsy-lexical-ai__think-head_1ke2e_90",
1583
+ "bsy-lexical-ai__think-label": "_bsy-lexical-ai__think-label_1ke2e_109",
1584
+ "bsy-lexical-ai__think-label--shimmer": "_bsy-lexical-ai__think-label--shimmer_1ke2e_113",
1585
+ "bsy-lexical-ai-think-shimmer": "_bsy-lexical-ai-think-shimmer_1ke2e_1",
1586
+ "bsy-lexical-ai__think-arrow": "_bsy-lexical-ai__think-arrow_1ke2e_124",
1587
+ "bsy-lexical-ai__think-arrow--open": "_bsy-lexical-ai__think-arrow--open_1ke2e_131",
1588
+ "bsy-lexical-ai__think-icon": "_bsy-lexical-ai__think-icon_1ke2e_134",
1589
+ "bsy-lexical-ai-think": "_bsy-lexical-ai-think_1ke2e_1",
1590
+ "bsy-lexical-ai__think-collapse": "_bsy-lexical-ai__think-collapse_1ke2e_146",
1591
+ "bsy-lexical-ai__think-collapse--grown": "_bsy-lexical-ai__think-collapse--grown_1ke2e_151",
1592
+ "bsy-lexical-ai__think-body": "_bsy-lexical-ai__think-body_1ke2e_155",
1593
+ "bsy-lexical-ai__html": "_bsy-lexical-ai__html_1ke2e_165",
1594
+ "bsy-lexical-ai__footer": "_bsy-lexical-ai__footer_1ke2e_175",
1595
+ "bsy-lexical-ai__error": "_bsy-lexical-ai__error_1ke2e_183",
1596
+ "bsy-lexical-ai__preset": "_bsy-lexical-ai__preset_1ke2e_188"
1597
+ }, Un = "data:image/png;base64,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", Wn = "data:image/png;base64,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", Q = 16, Gn = ({ disabled: t }) => {
1598
+ let [n] = F(), { typeset: r, polish: i, canTypeset: o, canPolish: s, aiOpen: c, setAiOpen: l, aiSessionRef: d } = G(), { hasEditorText: f } = H(), { t: p } = a(), { iconSize: m } = z(), h = t || !o || !f, y = t || !s || !f, b = t || !!c, x = S(() => {
1599
+ if (t || !o || !r) return;
1600
+ let e = Hn(n);
1601
+ e.text.trim() && (d.current = {
1602
+ originalHtml: e.html,
1603
+ codeBlocks: e.codeBlocks
1604
+ }, l("typeset"), r({
1605
+ text: e.text,
1606
+ html: e.htmlWithoutCode
1607
+ }));
1608
+ }, [
1609
+ d,
1610
+ o,
1611
+ t,
1612
+ n,
1613
+ l,
1614
+ r
1615
+ ]), C = S((e) => {
1616
+ if (t || !s || !i) return;
1617
+ let r = Hn(n);
1618
+ kn(r.polishText) && (d.current = {
1619
+ originalHtml: r.html,
1620
+ originalText: r.polishText,
1621
+ preset: e
1622
+ }, l("polish"), i({
1623
+ text: r.polishText,
1624
+ preset: e
1625
+ }));
1626
+ }, [
1627
+ d,
1628
+ s,
1629
+ t,
1630
+ n,
1631
+ i,
1632
+ l
1633
+ ]), w = S((e) => {
1634
+ if (e.key === "typeset") {
1635
+ x();
1636
+ return;
1637
+ }
1638
+ Ht.includes(e.key) && C(e.key);
1639
+ }, [C, x]), ee = [{
1640
+ key: "typeset",
1641
+ label: p("editor.aiTypeset"),
1642
+ disabled: h,
1643
+ icon: /* @__PURE__ */ _("img", {
1644
+ src: Un,
1645
+ alt: "",
1646
+ width: Q,
1647
+ height: Q,
1648
+ className: Z["bsy-lexical-ai__icon"],
1649
+ draggable: !1
1650
+ })
1651
+ }, {
1652
+ key: "polish",
1653
+ label: p("editor.aiPolish"),
1654
+ disabled: y,
1655
+ icon: /* @__PURE__ */ _("img", {
1656
+ src: Wn,
1657
+ alt: "",
1658
+ width: Q,
1659
+ height: Q,
1660
+ className: Z["bsy-lexical-ai__icon"],
1661
+ draggable: !1
1662
+ }),
1663
+ children: Ht.map((e) => ({
1664
+ key: e,
1665
+ label: p(Ut[e])
1666
+ }))
1667
+ }], T = /* @__PURE__ */ _("div", {
1668
+ className: A(R["bsy-lexical__toolbar-select"], R["bsy-lexical__toolbar-select--ai"], Z["bsy-lexical-ai__trigger"]),
1669
+ children: /* @__PURE__ */ _(V, {
1670
+ tooltip: p("editor.aiTypeset"),
1671
+ disabled: b,
1672
+ icon: /* @__PURE__ */ v(g, { children: [
1673
+ /* @__PURE__ */ _("img", {
1674
+ src: Un,
1675
+ alt: "",
1676
+ width: Q,
1677
+ height: Q,
1678
+ className: Z["bsy-lexical-ai__icon"],
1679
+ draggable: !1
1680
+ }),
1681
+ /* @__PURE__ */ _("span", {
1682
+ className: R["bsy-lexical__toolbar-select-label"],
1683
+ children: p("editor.aiTypeset")
1684
+ }),
1685
+ /* @__PURE__ */ _(e, {
1686
+ name: "arrow-down",
1687
+ size: m,
1688
+ className: R["bsy-lexical__toolbar-select-arrow"]
1689
+ })
1690
+ ] })
1691
+ })
1692
+ });
1693
+ return b ? T : /* @__PURE__ */ _(u, {
1694
+ menus: ee,
1695
+ onClick: w,
1696
+ showSearch: !1,
1697
+ offset: L,
1698
+ style: {
1699
+ width: 147,
1700
+ minWidth: 147
1701
+ },
1702
+ children: T
1703
+ });
1704
+ }, $ = /* @__PURE__ */ new Map(), Kn = (e, t) => {
1705
+ if (!e) throw Error("registerToolbarButton: name is required");
1706
+ $.set(e, t);
1707
+ }, qn = (e) => {
1708
+ $.delete(e);
1709
+ }, Jn = (e) => $.get(e), Yn = () => Array.from($.keys()), Xn = {
1710
+ undo: Ct,
1711
+ redo: wt,
1712
+ bold: Xe,
1713
+ underline: Ze,
1714
+ italic: Qe,
1715
+ strikethrough: Tt,
1716
+ superscript: Et,
1717
+ subscript: Dt,
1718
+ heading: Rt,
1719
+ fontSize: $e,
1720
+ fontColor: et,
1721
+ fill: tt,
1722
+ clearFormat: Bt,
1723
+ bullet: At,
1724
+ number: jt,
1725
+ outdent: kt,
1726
+ indent: Ot,
1727
+ align: nt,
1728
+ link: it,
1729
+ unLink: at,
1730
+ picture: St,
1731
+ code: Mt,
1732
+ table: Pt,
1733
+ source: Lt,
1734
+ ai: Gn
1735
+ };
1736
+ Object.entries(Xn).forEach(([e, t]) => {
1737
+ Kn(e, t);
1738
+ });
1739
+ //#endregion
1740
+ export { We as A, Le as B, dt as C, Ye as D, V as E, Ue as F, Re as I, R as L, Ve as M, He as N, z as O, ze as P, Ie as R, lt as S, H as T, Ut as _, qn as a, xt as b, zn as c, ln as d, q as f, Ht as g, Wt as h, Kn as i, Be as j, qe as k, Tn as l, Jt as m, Jn as n, Z as o, Yt as p, Yn as r, Bn as s, Xn as t, J as u, Ft as v, G as w, ut as x, It as y, L as z };