@remarkablejames/editor 0.0.1 → 0.0.2

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 (178) hide show
  1. package/lib/{ActionMenuButton-B0EHT9CC.js → ActionMenuButton-Bmn3RME4.js} +10 -9
  2. package/lib/ActionMenuButton-C5P0Kzrb.cjs +1 -0
  3. package/lib/Attachment.cjs +2 -2
  4. package/lib/Attachment.js +33 -31
  5. package/lib/Blockquote.cjs +2 -2
  6. package/lib/Blockquote.js +12 -13
  7. package/lib/Bold.cjs +1 -1
  8. package/lib/Bold.js +10 -11
  9. package/lib/BulletList.cjs +1 -1
  10. package/lib/BulletList.js +8 -9
  11. package/lib/Callout.cjs +1 -1
  12. package/lib/Callout.js +45 -41
  13. package/lib/Clear.cjs +1 -1
  14. package/lib/Clear.js +14 -13
  15. package/lib/Code.cjs +1 -1
  16. package/lib/Code.js +5 -6
  17. package/lib/CodeBlock.cjs +1 -44
  18. package/lib/CodeBlock.js +183 -3858
  19. package/lib/CodeView.cjs +1 -1
  20. package/lib/CodeView.js +8 -9
  21. package/lib/Color.cjs +1 -1
  22. package/lib/Color.js +19 -18
  23. package/lib/Column.cjs +1 -1
  24. package/lib/Column.js +8 -9
  25. package/lib/{Drawer-BCWVN-4l.js → Drawer-DvGh9aXG.js} +52 -46
  26. package/lib/Drawer-gz9U5ArC.cjs +2 -0
  27. package/lib/Drawer.cjs +1 -1
  28. package/lib/Drawer.js +3 -3
  29. package/lib/Emoji.cjs +1 -1
  30. package/lib/Emoji.js +15 -14
  31. package/lib/Excalidraw.cjs +1 -1
  32. package/lib/Excalidraw.js +20 -16
  33. package/lib/ExportPdf.cjs +3 -3
  34. package/lib/ExportPdf.js +13 -14
  35. package/lib/ExportWord.cjs +1 -1
  36. package/lib/ExportWord.js +6 -6
  37. package/lib/FontFamily.cjs +1 -1
  38. package/lib/FontFamily.js +6 -7
  39. package/lib/FontSize.cjs +1 -1
  40. package/lib/FontSize.js +14 -15
  41. package/lib/Heading.cjs +1 -1
  42. package/lib/Heading.js +26 -26
  43. package/lib/Highlight.cjs +1 -1
  44. package/lib/Highlight.js +23 -22
  45. package/lib/History.cjs +1 -1
  46. package/lib/History.js +11 -11
  47. package/lib/HorizontalRule.cjs +1 -1
  48. package/lib/HorizontalRule.js +9 -10
  49. package/lib/Icon-CKM0tYbW.js +15 -0
  50. package/lib/Icon-CQyFgXeo.cjs +1 -0
  51. package/lib/{Iframe-BdgiWGml.js → Iframe-CnnvV6cK.js} +21 -19
  52. package/lib/Iframe-Ds6gG2YO.cjs +1 -0
  53. package/lib/Iframe.cjs +1 -1
  54. package/lib/Iframe.js +2 -2
  55. package/lib/Image.cjs +1 -1
  56. package/lib/Image.js +5 -4
  57. package/lib/ImageCropper-BKhXlnXN.cjs +1 -0
  58. package/lib/ImageCropper-DUzu_9-6.js +896 -0
  59. package/lib/ImageGif.cjs +1 -1
  60. package/lib/ImageGif.js +94 -91
  61. package/lib/ImportWord.cjs +1 -1
  62. package/lib/ImportWord.js +26 -25
  63. package/lib/{Indent-BpMcZKok.js → Indent-Bsj8gKvT.js} +30 -31
  64. package/lib/Indent-D_7HOYYd.cjs +1 -0
  65. package/lib/Indent.cjs +1 -1
  66. package/lib/Indent.js +2 -2
  67. package/lib/Italic.cjs +1 -1
  68. package/lib/Italic.js +11 -12
  69. package/lib/{Katex-B8_uprkO.js → Katex-CilGTz7u.js} +22 -19
  70. package/lib/Katex-lL3bHXJd.cjs +4 -0
  71. package/lib/Katex.cjs +1 -1
  72. package/lib/Katex.js +2 -2
  73. package/lib/LineHeight.cjs +1 -1
  74. package/lib/LineHeight.js +20 -19
  75. package/lib/Link.cjs +1 -1
  76. package/lib/Link.js +2 -2
  77. package/lib/{LinkEditBlock-BX0fXXpF.js → LinkEditBlock-BD_WvA3r.js} +24 -19
  78. package/lib/LinkEditBlock-D3HSHmsU.cjs +5 -0
  79. package/lib/Mention.js +3 -3
  80. package/lib/Mermaid-BfeLPzoS.cjs +2 -0
  81. package/lib/{Mermaid-D8bbIgAl.js → Mermaid-BrjU75Bs.js} +48 -45
  82. package/lib/Mermaid.cjs +1 -1
  83. package/lib/Mermaid.js +2 -2
  84. package/lib/MoreMark.cjs +1 -1
  85. package/lib/MoreMark.js +28 -26
  86. package/lib/OrderedList.cjs +1 -1
  87. package/lib/OrderedList.js +10 -11
  88. package/lib/SearchAndReplace.cjs +1 -1
  89. package/lib/SearchAndReplace.js +42 -37
  90. package/lib/SlashCommand.cjs +1 -1
  91. package/lib/SlashCommand.js +5 -5
  92. package/lib/{SlashCommandNodeView-BcmtKbEE.js → SlashCommandNodeView-COx5qZ2y.js} +41 -39
  93. package/lib/SlashCommandNodeView-DD-nlhM-.cjs +1 -0
  94. package/lib/Strike.cjs +1 -1
  95. package/lib/Strike.js +11 -12
  96. package/lib/{Table-DbxuP5xh.js → Table-BlM8yMhr.js} +46 -46
  97. package/lib/Table-C21AlUrh.cjs +5 -0
  98. package/lib/Table.cjs +1 -1
  99. package/lib/Table.js +1 -1
  100. package/lib/TaskList.cjs +1 -1
  101. package/lib/TaskList.js +11 -12
  102. package/lib/TextAlign.cjs +1 -1
  103. package/lib/TextAlign.js +27 -26
  104. package/lib/TextDirection.cjs +1 -1
  105. package/lib/TextDirection.js +19 -18
  106. package/lib/TextUnderline.cjs +1 -1
  107. package/lib/TextUnderline.js +8 -9
  108. package/lib/{Twitter-9I6BLNmg.js → Twitter-BP8sYXX7.js} +22 -18
  109. package/lib/Twitter-D46MnvPr.cjs +1 -0
  110. package/lib/Twitter.cjs +1 -1
  111. package/lib/Twitter.js +2 -2
  112. package/lib/Video-Bpd8W8l6.js +231 -0
  113. package/lib/Video-BwrHx6B1.cjs +1 -0
  114. package/lib/Video.cjs +1 -1
  115. package/lib/Video.js +5 -4
  116. package/lib/bubble.cjs +3 -3
  117. package/lib/bubble.js +171 -162
  118. package/lib/button-BmTP96NR.cjs +1 -0
  119. package/lib/button-CDIxPURh.js +35 -0
  120. package/lib/checkbox-7sfSdzy9.js +29 -0
  121. package/lib/checkbox-DyVlLWHv.cjs +1 -0
  122. package/lib/{clsx-CDyrfCnw.js → clsx-m_C5j3RU.js} +24 -24
  123. package/lib/dialog-B-jOQ5i3.cjs +1 -0
  124. package/lib/dialog-QWWUWOGP.js +95 -0
  125. package/lib/{dropdown-menu-Bs69ZBbO.js → dropdown-menu-C1hdPLCZ.js} +1 -1
  126. package/lib/{dropdown-menu-DjWlG2-J.cjs → dropdown-menu-CkHN04Mx.cjs} +1 -1
  127. package/lib/events.constant-Bh2uzJud.js +71 -0
  128. package/lib/events.constant-ELn21EzG.cjs +1 -0
  129. package/lib/extensions/CodeBlock/CodeBlock.d.ts +1 -1
  130. package/lib/file-BLas99n7.js +43 -0
  131. package/lib/file-i7e4nQY2.cjs +1 -0
  132. package/lib/{index-C-tDsIKJ.js → index-B3Ijnbxs.js} +1 -1
  133. package/lib/{index-C1WCZhyA.js → index-C1KQsOcg.js} +1 -1
  134. package/lib/{index-CsSfYR30.js → index-C8FjP66D.js} +1 -1
  135. package/lib/index-CAiZY1nx.js +2741 -0
  136. package/lib/index-DWSAk_9a.cjs +1 -0
  137. package/lib/{index-DjDf4BK8.js → index-s3l5RdyW.js} +1 -1
  138. package/lib/index.cjs +4 -4
  139. package/lib/index.js +392 -147
  140. package/lib/input-qvpuOf-3.js +21 -0
  141. package/lib/input-s0JD5kf2.cjs +1 -0
  142. package/lib/isNumber-BTYSVlKo.cjs +1 -0
  143. package/lib/isNumber-WaBzl_0s.js +15 -0
  144. package/lib/label-CFax-gzo.cjs +1 -0
  145. package/lib/label-DC37f2RQ.js +11 -0
  146. package/lib/{popover-D-hUKDYu.cjs → popover-B05Fd8lC.cjs} +1 -1
  147. package/lib/{popover-CPr9bHYn.js → popover-CsSXh7w6.js} +1 -1
  148. package/lib/{renderNodeView-BJSrgyGj.js → renderNodeView-C_hPIdEs.js} +2 -2
  149. package/lib/{select-C2KF4RNg.cjs → select-7ubC1NF0.cjs} +1 -1
  150. package/lib/{select-CuE_HaQJ.js → select-B3-5wTqn.js} +1 -1
  151. package/lib/{separator-CHzYNMVt.js → separator-CYCA8tSn.js} +13 -12
  152. package/lib/separator-ncbdw4oq.cjs +1 -0
  153. package/lib/style.css +1 -1
  154. package/lib/tabs-BeHxylKH.js +46 -0
  155. package/lib/tabs-DBqNpGAq.cjs +1 -0
  156. package/lib/{textarea-gEoNp9CA.js → textarea-1FhpmBkP.js} +1 -1
  157. package/lib/{textarea-DZj6EY-N.cjs → textarea-Bjhcpp76.cjs} +1 -1
  158. package/lib/throttle-CRNq0z-O.js +249 -0
  159. package/lib/throttle-gTTvqDTW.cjs +1 -0
  160. package/lib/toggle-DoJTBdvy.js +89 -0
  161. package/lib/toggle-oFwBZC4x.cjs +1 -0
  162. package/lib/{updatePosition-e90ZrFWW.js → updatePosition-DvfTZHcH.js} +2 -2
  163. package/lib/useButtonProps-BE10eHkG.js +165 -0
  164. package/lib/useButtonProps-CFu0GHzW.cjs +1 -0
  165. package/package.json +1 -1
  166. package/lib/ActionMenuButton-J1el_e6Z.cjs +0 -1
  167. package/lib/Drawer-BTouEroZ.cjs +0 -2
  168. package/lib/Iframe-BfBLILDA.cjs +0 -1
  169. package/lib/Indent-Dvqz_WEn.cjs +0 -1
  170. package/lib/Katex-BQyeCeQ0.cjs +0 -4
  171. package/lib/LinkEditBlock-CIshn_8F.cjs +0 -5
  172. package/lib/Mermaid-0GiGVxn0.cjs +0 -2
  173. package/lib/SlashCommandNodeView-rDJ7OjRd.cjs +0 -1
  174. package/lib/Table-BEhNBeuA.cjs +0 -5
  175. package/lib/Twitter-BuEBgpi9.cjs +0 -1
  176. package/lib/index-D9oM__YW.cjs +0 -1
  177. package/lib/index-lj3VWExo.js +0 -4883
  178. package/lib/separator-_gvUNba_.cjs +0 -1
@@ -1,4883 +0,0 @@
1
- import { jsxs as y, jsx as n, Fragment as Y } from "react/jsx-runtime";
2
- import * as U from "react";
3
- import Q, { useState as E, useMemo as B, useCallback as ce, useEffect as Ie, useRef as xe } from "react";
4
- import { y as jt, b as Pt, S as _t } from "./index-BG0kQamI.js";
5
- import "./theme.js";
6
- import * as F from "@radix-ui/react-dialog";
7
- import { NotebookPen as Ut, ExternalLink as Bt, X as st, Loader2 as $t, WrapText as Ft, PencilRuler as Wt, FlipHorizontal as Gt, FlipVertical as Xt, CropIcon as Yt, ChevronUp as qt, Paperclip as Zt, Eye as Kt, Settings as Jt, ZoomOut as Qt, ZoomIn as er, BookMarked as tr, Sigma as rr, SmilePlusIcon as ir, Replace as Ye, SmilePlus as nr, Frame as or, Columns2 as qe, PanelRight as ar, PanelLeft as sr, Clipboard as lr, Copy as cr, GripVertical as dr, Plus as ur, Columns4 as hr, Columns3 as fr, Heading6 as mr, Heading5 as gr, Heading4 as pr, Heading3 as xr, Heading2 as br, Heading1 as vr, Pilcrow as wr, ChevronsUpDown as yr, Trash as Cr, Trash2 as kr, TableCellsSplit as Mr, TableCellsMerge as Ir, BetweenVerticalEnd as zr, BetweenVerticalStart as Tr, BetweenHorizonalStart as Sr, BetweenHorizonalEnd as Nr, Unlink as Lr, Pencil as Ar, Sparkles as Er, Table as Rr, Minimize as Vr, Maximize as Hr, Video as Dr, ImageUp as Or, Link as jr, ListTodo as Pr, ListOrdered as _r, List as Ur, IndentDecrease as Br, IndentIncrease as $r, Type as Fr, CodeXml as Wr, Code as Gr, Superscript as Xr, Subscript as Yr, ChevronDown as qr, Undo2 as Zr, Redo2 as Kr, PaintRoller as Jr, Eraser as Qr, Minus as ei, Strikethrough as ti, Quote as ri, Underline as ii, Italic as ni, LoaderCircle as oi, Bold as ai, Check as si } from "lucide-react";
8
- import { j as lt, N as ct, n as li, aa as ci, m as dt, h as di, a3 as ui, ab as hi, k as fi } from "./clsx-CDyrfCnw.js";
9
- import { I as Ze, i as Ke, j as mi, u as ne, V as gi } from "./index-4Q5IhypJ.js";
10
- import { Slot as ut } from "@radix-ui/react-slot";
11
- import * as be from "@radix-ui/react-tooltip";
12
- import * as ht from "@radix-ui/react-toggle";
13
- import { TextAlignRightIcon as pi, TextAlignLeftIcon as xi, TextAlignJustifyIcon as bi, TextAlignCenterIcon as vi } from "@radix-ui/react-icons";
14
- import * as re from "@radix-ui/react-tabs";
15
- import wi from "react-image-crop";
16
- import * as Oe from "@radix-ui/react-checkbox";
17
- import * as ft from "@radix-ui/react-label";
18
- const _e = "-", yi = (e) => {
19
- const t = ki(e), {
20
- conflictingClassGroups: r,
21
- conflictingClassGroupModifiers: i
22
- } = e;
23
- return {
24
- getClassGroupId: (l) => {
25
- const s = l.split(_e);
26
- return s[0] === "" && s.length !== 1 && s.shift(), mt(s, t) || Ci(l);
27
- },
28
- getConflictingClassGroupIds: (l, s) => {
29
- const c = r[l] || [];
30
- return s && i[l] ? [...c, ...i[l]] : c;
31
- }
32
- };
33
- }, mt = (e, t) => {
34
- var l;
35
- if (e.length === 0)
36
- return t.classGroupId;
37
- const r = e[0], i = t.nextPart.get(r), o = i ? mt(e.slice(1), i) : void 0;
38
- if (o)
39
- return o;
40
- if (t.validators.length === 0)
41
- return;
42
- const a = e.join(_e);
43
- return (l = t.validators.find(({
44
- validator: s
45
- }) => s(a))) == null ? void 0 : l.classGroupId;
46
- }, Je = /^\[(.+)\]$/, Ci = (e) => {
47
- if (Je.test(e)) {
48
- const t = Je.exec(e)[1], r = t == null ? void 0 : t.substring(0, t.indexOf(":"));
49
- if (r)
50
- return "arbitrary.." + r;
51
- }
52
- }, ki = (e) => {
53
- const {
54
- theme: t,
55
- prefix: r
56
- } = e, i = {
57
- nextPart: /* @__PURE__ */ new Map(),
58
- validators: []
59
- };
60
- return Ii(Object.entries(e.classGroups), r).forEach(([a, l]) => {
61
- je(l, i, a, t);
62
- }), i;
63
- }, je = (e, t, r, i) => {
64
- e.forEach((o) => {
65
- if (typeof o == "string") {
66
- const a = o === "" ? t : Qe(t, o);
67
- a.classGroupId = r;
68
- return;
69
- }
70
- if (typeof o == "function") {
71
- if (Mi(o)) {
72
- je(o(i), t, r, i);
73
- return;
74
- }
75
- t.validators.push({
76
- validator: o,
77
- classGroupId: r
78
- });
79
- return;
80
- }
81
- Object.entries(o).forEach(([a, l]) => {
82
- je(l, Qe(t, a), r, i);
83
- });
84
- });
85
- }, Qe = (e, t) => {
86
- let r = e;
87
- return t.split(_e).forEach((i) => {
88
- r.nextPart.has(i) || r.nextPart.set(i, {
89
- nextPart: /* @__PURE__ */ new Map(),
90
- validators: []
91
- }), r = r.nextPart.get(i);
92
- }), r;
93
- }, Mi = (e) => e.isThemeGetter, Ii = (e, t) => t ? e.map(([r, i]) => {
94
- const o = i.map((a) => typeof a == "string" ? t + a : typeof a == "object" ? Object.fromEntries(Object.entries(a).map(([l, s]) => [t + l, s])) : a);
95
- return [r, o];
96
- }) : e, zi = (e) => {
97
- if (e < 1)
98
- return {
99
- get: () => {
100
- },
101
- set: () => {
102
- }
103
- };
104
- let t = 0, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
105
- const o = (a, l) => {
106
- r.set(a, l), t++, t > e && (t = 0, i = r, r = /* @__PURE__ */ new Map());
107
- };
108
- return {
109
- get(a) {
110
- let l = r.get(a);
111
- if (l !== void 0)
112
- return l;
113
- if ((l = i.get(a)) !== void 0)
114
- return o(a, l), l;
115
- },
116
- set(a, l) {
117
- r.has(a) ? r.set(a, l) : o(a, l);
118
- }
119
- };
120
- }, gt = "!", Ti = (e) => {
121
- const {
122
- separator: t,
123
- experimentalParseClassName: r
124
- } = e, i = t.length === 1, o = t[0], a = t.length, l = (s) => {
125
- const c = [];
126
- let d = 0, g = 0, p;
127
- for (let f = 0; f < s.length; f++) {
128
- let x = s[f];
129
- if (d === 0) {
130
- if (x === o && (i || s.slice(f, f + a) === t)) {
131
- c.push(s.slice(g, f)), g = f + a;
132
- continue;
133
- }
134
- if (x === "/") {
135
- p = f;
136
- continue;
137
- }
138
- }
139
- x === "[" ? d++ : x === "]" && d--;
140
- }
141
- const u = c.length === 0 ? s : s.substring(g), k = u.startsWith(gt), b = k ? u.substring(1) : u, z = p && p > g ? p - g : void 0;
142
- return {
143
- modifiers: c,
144
- hasImportantModifier: k,
145
- baseClassName: b,
146
- maybePostfixModifierPosition: z
147
- };
148
- };
149
- return r ? (s) => r({
150
- className: s,
151
- parseClassName: l
152
- }) : l;
153
- }, Si = (e) => {
154
- if (e.length <= 1)
155
- return e;
156
- const t = [];
157
- let r = [];
158
- return e.forEach((i) => {
159
- i[0] === "[" ? (t.push(...r.sort(), i), r = []) : r.push(i);
160
- }), t.push(...r.sort()), t;
161
- }, Ni = (e) => ({
162
- cache: zi(e.cacheSize),
163
- parseClassName: Ti(e),
164
- ...yi(e)
165
- }), Li = /\s+/, Ai = (e, t) => {
166
- const {
167
- parseClassName: r,
168
- getClassGroupId: i,
169
- getConflictingClassGroupIds: o
170
- } = t, a = [], l = e.trim().split(Li);
171
- let s = "";
172
- for (let c = l.length - 1; c >= 0; c -= 1) {
173
- const d = l[c], {
174
- modifiers: g,
175
- hasImportantModifier: p,
176
- baseClassName: u,
177
- maybePostfixModifierPosition: k
178
- } = r(d);
179
- let b = !!k, z = i(b ? u.substring(0, k) : u);
180
- if (!z) {
181
- if (!b) {
182
- s = d + (s.length > 0 ? " " + s : s);
183
- continue;
184
- }
185
- if (z = i(u), !z) {
186
- s = d + (s.length > 0 ? " " + s : s);
187
- continue;
188
- }
189
- b = !1;
190
- }
191
- const f = Si(g).join(":"), x = p ? f + gt : f, h = x + z;
192
- if (a.includes(h))
193
- continue;
194
- a.push(h);
195
- const S = o(z, b);
196
- for (let m = 0; m < S.length; ++m) {
197
- const H = S[m];
198
- a.push(x + H);
199
- }
200
- s = d + (s.length > 0 ? " " + s : s);
201
- }
202
- return s;
203
- };
204
- function Ei() {
205
- let e = 0, t, r, i = "";
206
- for (; e < arguments.length; )
207
- (t = arguments[e++]) && (r = pt(t)) && (i && (i += " "), i += r);
208
- return i;
209
- }
210
- const pt = (e) => {
211
- if (typeof e == "string")
212
- return e;
213
- let t, r = "";
214
- for (let i = 0; i < e.length; i++)
215
- e[i] && (t = pt(e[i])) && (r && (r += " "), r += t);
216
- return r;
217
- };
218
- function Ri(e, ...t) {
219
- let r, i, o, a = l;
220
- function l(c) {
221
- const d = t.reduce((g, p) => p(g), e());
222
- return r = Ni(d), i = r.cache.get, o = r.cache.set, a = s, s(c);
223
- }
224
- function s(c) {
225
- const d = i(c);
226
- if (d)
227
- return d;
228
- const g = Ai(c, r);
229
- return o(c, g), g;
230
- }
231
- return function() {
232
- return a(Ei.apply(null, arguments));
233
- };
234
- }
235
- const V = (e) => {
236
- const t = (r) => r[e] || [];
237
- return t.isThemeGetter = !0, t;
238
- }, xt = /^\[(?:([a-z-]+):)?(.+)\]$/i, Vi = /^\d+\/\d+$/, Hi = /* @__PURE__ */ new Set(["px", "full", "screen"]), Di = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Oi = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, ji = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, Pi = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, _i = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, X = (e) => ie(e) || Hi.has(e) || Vi.test(e), K = (e) => oe(e, "length", Yi), ie = (e) => !!e && !Number.isNaN(Number(e)), Ae = (e) => oe(e, "number", ie), de = (e) => !!e && Number.isInteger(Number(e)), Ui = (e) => e.endsWith("%") && ie(e.slice(0, -1)), T = (e) => xt.test(e), J = (e) => Di.test(e), Bi = /* @__PURE__ */ new Set(["length", "size", "percentage"]), $i = (e) => oe(e, Bi, bt), Fi = (e) => oe(e, "position", bt), Wi = /* @__PURE__ */ new Set(["image", "url"]), Gi = (e) => oe(e, Wi, Zi), Xi = (e) => oe(e, "", qi), ue = () => !0, oe = (e, t, r) => {
239
- const i = xt.exec(e);
240
- return i ? i[1] ? typeof t == "string" ? i[1] === t : t.has(i[1]) : r(i[2]) : !1;
241
- }, Yi = (e) => (
242
- // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
243
- // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
244
- // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
245
- Oi.test(e) && !ji.test(e)
246
- ), bt = () => !1, qi = (e) => Pi.test(e), Zi = (e) => _i.test(e), Ki = () => {
247
- const e = V("colors"), t = V("spacing"), r = V("blur"), i = V("brightness"), o = V("borderColor"), a = V("borderRadius"), l = V("borderSpacing"), s = V("borderWidth"), c = V("contrast"), d = V("grayscale"), g = V("hueRotate"), p = V("invert"), u = V("gap"), k = V("gradientColorStops"), b = V("gradientColorStopPositions"), z = V("inset"), f = V("margin"), x = V("opacity"), h = V("padding"), S = V("saturate"), m = V("scale"), H = V("sepia"), v = V("skew"), R = V("space"), N = V("translate"), j = () => ["auto", "contain", "none"], D = () => ["auto", "hidden", "clip", "visible", "scroll"], I = () => ["auto", T, t], w = () => [T, t], C = () => ["", X, K], M = () => ["auto", ie, T], A = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], L = () => ["solid", "dashed", "dotted", "double", "none"], P = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], O = () => ["start", "end", "center", "between", "around", "evenly", "stretch"], G = () => ["", "0", T], ye = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], W = () => [ie, T];
248
- return {
249
- cacheSize: 500,
250
- separator: ":",
251
- theme: {
252
- colors: [ue],
253
- spacing: [X, K],
254
- blur: ["none", "", J, T],
255
- brightness: W(),
256
- borderColor: [e],
257
- borderRadius: ["none", "", "full", J, T],
258
- borderSpacing: w(),
259
- borderWidth: C(),
260
- contrast: W(),
261
- grayscale: G(),
262
- hueRotate: W(),
263
- invert: G(),
264
- gap: w(),
265
- gradientColorStops: [e],
266
- gradientColorStopPositions: [Ui, K],
267
- inset: I(),
268
- margin: I(),
269
- opacity: W(),
270
- padding: w(),
271
- saturate: W(),
272
- scale: W(),
273
- sepia: G(),
274
- skew: W(),
275
- space: w(),
276
- translate: w()
277
- },
278
- classGroups: {
279
- // Layout
280
- /**
281
- * Aspect Ratio
282
- * @see https://tailwindcss.com/docs/aspect-ratio
283
- */
284
- aspect: [{
285
- aspect: ["auto", "square", "video", T]
286
- }],
287
- /**
288
- * Container
289
- * @see https://tailwindcss.com/docs/container
290
- */
291
- container: ["container"],
292
- /**
293
- * Columns
294
- * @see https://tailwindcss.com/docs/columns
295
- */
296
- columns: [{
297
- columns: [J]
298
- }],
299
- /**
300
- * Break After
301
- * @see https://tailwindcss.com/docs/break-after
302
- */
303
- "break-after": [{
304
- "break-after": ye()
305
- }],
306
- /**
307
- * Break Before
308
- * @see https://tailwindcss.com/docs/break-before
309
- */
310
- "break-before": [{
311
- "break-before": ye()
312
- }],
313
- /**
314
- * Break Inside
315
- * @see https://tailwindcss.com/docs/break-inside
316
- */
317
- "break-inside": [{
318
- "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
319
- }],
320
- /**
321
- * Box Decoration Break
322
- * @see https://tailwindcss.com/docs/box-decoration-break
323
- */
324
- "box-decoration": [{
325
- "box-decoration": ["slice", "clone"]
326
- }],
327
- /**
328
- * Box Sizing
329
- * @see https://tailwindcss.com/docs/box-sizing
330
- */
331
- box: [{
332
- box: ["border", "content"]
333
- }],
334
- /**
335
- * Display
336
- * @see https://tailwindcss.com/docs/display
337
- */
338
- display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
339
- /**
340
- * Floats
341
- * @see https://tailwindcss.com/docs/float
342
- */
343
- float: [{
344
- float: ["right", "left", "none", "start", "end"]
345
- }],
346
- /**
347
- * Clear
348
- * @see https://tailwindcss.com/docs/clear
349
- */
350
- clear: [{
351
- clear: ["left", "right", "both", "none", "start", "end"]
352
- }],
353
- /**
354
- * Isolation
355
- * @see https://tailwindcss.com/docs/isolation
356
- */
357
- isolation: ["isolate", "isolation-auto"],
358
- /**
359
- * Object Fit
360
- * @see https://tailwindcss.com/docs/object-fit
361
- */
362
- "object-fit": [{
363
- object: ["contain", "cover", "fill", "none", "scale-down"]
364
- }],
365
- /**
366
- * Object Position
367
- * @see https://tailwindcss.com/docs/object-position
368
- */
369
- "object-position": [{
370
- object: [...A(), T]
371
- }],
372
- /**
373
- * Overflow
374
- * @see https://tailwindcss.com/docs/overflow
375
- */
376
- overflow: [{
377
- overflow: D()
378
- }],
379
- /**
380
- * Overflow X
381
- * @see https://tailwindcss.com/docs/overflow
382
- */
383
- "overflow-x": [{
384
- "overflow-x": D()
385
- }],
386
- /**
387
- * Overflow Y
388
- * @see https://tailwindcss.com/docs/overflow
389
- */
390
- "overflow-y": [{
391
- "overflow-y": D()
392
- }],
393
- /**
394
- * Overscroll Behavior
395
- * @see https://tailwindcss.com/docs/overscroll-behavior
396
- */
397
- overscroll: [{
398
- overscroll: j()
399
- }],
400
- /**
401
- * Overscroll Behavior X
402
- * @see https://tailwindcss.com/docs/overscroll-behavior
403
- */
404
- "overscroll-x": [{
405
- "overscroll-x": j()
406
- }],
407
- /**
408
- * Overscroll Behavior Y
409
- * @see https://tailwindcss.com/docs/overscroll-behavior
410
- */
411
- "overscroll-y": [{
412
- "overscroll-y": j()
413
- }],
414
- /**
415
- * Position
416
- * @see https://tailwindcss.com/docs/position
417
- */
418
- position: ["static", "fixed", "absolute", "relative", "sticky"],
419
- /**
420
- * Top / Right / Bottom / Left
421
- * @see https://tailwindcss.com/docs/top-right-bottom-left
422
- */
423
- inset: [{
424
- inset: [z]
425
- }],
426
- /**
427
- * Right / Left
428
- * @see https://tailwindcss.com/docs/top-right-bottom-left
429
- */
430
- "inset-x": [{
431
- "inset-x": [z]
432
- }],
433
- /**
434
- * Top / Bottom
435
- * @see https://tailwindcss.com/docs/top-right-bottom-left
436
- */
437
- "inset-y": [{
438
- "inset-y": [z]
439
- }],
440
- /**
441
- * Start
442
- * @see https://tailwindcss.com/docs/top-right-bottom-left
443
- */
444
- start: [{
445
- start: [z]
446
- }],
447
- /**
448
- * End
449
- * @see https://tailwindcss.com/docs/top-right-bottom-left
450
- */
451
- end: [{
452
- end: [z]
453
- }],
454
- /**
455
- * Top
456
- * @see https://tailwindcss.com/docs/top-right-bottom-left
457
- */
458
- top: [{
459
- top: [z]
460
- }],
461
- /**
462
- * Right
463
- * @see https://tailwindcss.com/docs/top-right-bottom-left
464
- */
465
- right: [{
466
- right: [z]
467
- }],
468
- /**
469
- * Bottom
470
- * @see https://tailwindcss.com/docs/top-right-bottom-left
471
- */
472
- bottom: [{
473
- bottom: [z]
474
- }],
475
- /**
476
- * Left
477
- * @see https://tailwindcss.com/docs/top-right-bottom-left
478
- */
479
- left: [{
480
- left: [z]
481
- }],
482
- /**
483
- * Visibility
484
- * @see https://tailwindcss.com/docs/visibility
485
- */
486
- visibility: ["visible", "invisible", "collapse"],
487
- /**
488
- * Z-Index
489
- * @see https://tailwindcss.com/docs/z-index
490
- */
491
- z: [{
492
- z: ["auto", de, T]
493
- }],
494
- // Flexbox and Grid
495
- /**
496
- * Flex Basis
497
- * @see https://tailwindcss.com/docs/flex-basis
498
- */
499
- basis: [{
500
- basis: I()
501
- }],
502
- /**
503
- * Flex Direction
504
- * @see https://tailwindcss.com/docs/flex-direction
505
- */
506
- "flex-direction": [{
507
- flex: ["row", "row-reverse", "col", "col-reverse"]
508
- }],
509
- /**
510
- * Flex Wrap
511
- * @see https://tailwindcss.com/docs/flex-wrap
512
- */
513
- "flex-wrap": [{
514
- flex: ["wrap", "wrap-reverse", "nowrap"]
515
- }],
516
- /**
517
- * Flex
518
- * @see https://tailwindcss.com/docs/flex
519
- */
520
- flex: [{
521
- flex: ["1", "auto", "initial", "none", T]
522
- }],
523
- /**
524
- * Flex Grow
525
- * @see https://tailwindcss.com/docs/flex-grow
526
- */
527
- grow: [{
528
- grow: G()
529
- }],
530
- /**
531
- * Flex Shrink
532
- * @see https://tailwindcss.com/docs/flex-shrink
533
- */
534
- shrink: [{
535
- shrink: G()
536
- }],
537
- /**
538
- * Order
539
- * @see https://tailwindcss.com/docs/order
540
- */
541
- order: [{
542
- order: ["first", "last", "none", de, T]
543
- }],
544
- /**
545
- * Grid Template Columns
546
- * @see https://tailwindcss.com/docs/grid-template-columns
547
- */
548
- "grid-cols": [{
549
- "grid-cols": [ue]
550
- }],
551
- /**
552
- * Grid Column Start / End
553
- * @see https://tailwindcss.com/docs/grid-column
554
- */
555
- "col-start-end": [{
556
- col: ["auto", {
557
- span: ["full", de, T]
558
- }, T]
559
- }],
560
- /**
561
- * Grid Column Start
562
- * @see https://tailwindcss.com/docs/grid-column
563
- */
564
- "col-start": [{
565
- "col-start": M()
566
- }],
567
- /**
568
- * Grid Column End
569
- * @see https://tailwindcss.com/docs/grid-column
570
- */
571
- "col-end": [{
572
- "col-end": M()
573
- }],
574
- /**
575
- * Grid Template Rows
576
- * @see https://tailwindcss.com/docs/grid-template-rows
577
- */
578
- "grid-rows": [{
579
- "grid-rows": [ue]
580
- }],
581
- /**
582
- * Grid Row Start / End
583
- * @see https://tailwindcss.com/docs/grid-row
584
- */
585
- "row-start-end": [{
586
- row: ["auto", {
587
- span: [de, T]
588
- }, T]
589
- }],
590
- /**
591
- * Grid Row Start
592
- * @see https://tailwindcss.com/docs/grid-row
593
- */
594
- "row-start": [{
595
- "row-start": M()
596
- }],
597
- /**
598
- * Grid Row End
599
- * @see https://tailwindcss.com/docs/grid-row
600
- */
601
- "row-end": [{
602
- "row-end": M()
603
- }],
604
- /**
605
- * Grid Auto Flow
606
- * @see https://tailwindcss.com/docs/grid-auto-flow
607
- */
608
- "grid-flow": [{
609
- "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
610
- }],
611
- /**
612
- * Grid Auto Columns
613
- * @see https://tailwindcss.com/docs/grid-auto-columns
614
- */
615
- "auto-cols": [{
616
- "auto-cols": ["auto", "min", "max", "fr", T]
617
- }],
618
- /**
619
- * Grid Auto Rows
620
- * @see https://tailwindcss.com/docs/grid-auto-rows
621
- */
622
- "auto-rows": [{
623
- "auto-rows": ["auto", "min", "max", "fr", T]
624
- }],
625
- /**
626
- * Gap
627
- * @see https://tailwindcss.com/docs/gap
628
- */
629
- gap: [{
630
- gap: [u]
631
- }],
632
- /**
633
- * Gap X
634
- * @see https://tailwindcss.com/docs/gap
635
- */
636
- "gap-x": [{
637
- "gap-x": [u]
638
- }],
639
- /**
640
- * Gap Y
641
- * @see https://tailwindcss.com/docs/gap
642
- */
643
- "gap-y": [{
644
- "gap-y": [u]
645
- }],
646
- /**
647
- * Justify Content
648
- * @see https://tailwindcss.com/docs/justify-content
649
- */
650
- "justify-content": [{
651
- justify: ["normal", ...O()]
652
- }],
653
- /**
654
- * Justify Items
655
- * @see https://tailwindcss.com/docs/justify-items
656
- */
657
- "justify-items": [{
658
- "justify-items": ["start", "end", "center", "stretch"]
659
- }],
660
- /**
661
- * Justify Self
662
- * @see https://tailwindcss.com/docs/justify-self
663
- */
664
- "justify-self": [{
665
- "justify-self": ["auto", "start", "end", "center", "stretch"]
666
- }],
667
- /**
668
- * Align Content
669
- * @see https://tailwindcss.com/docs/align-content
670
- */
671
- "align-content": [{
672
- content: ["normal", ...O(), "baseline"]
673
- }],
674
- /**
675
- * Align Items
676
- * @see https://tailwindcss.com/docs/align-items
677
- */
678
- "align-items": [{
679
- items: ["start", "end", "center", "baseline", "stretch"]
680
- }],
681
- /**
682
- * Align Self
683
- * @see https://tailwindcss.com/docs/align-self
684
- */
685
- "align-self": [{
686
- self: ["auto", "start", "end", "center", "stretch", "baseline"]
687
- }],
688
- /**
689
- * Place Content
690
- * @see https://tailwindcss.com/docs/place-content
691
- */
692
- "place-content": [{
693
- "place-content": [...O(), "baseline"]
694
- }],
695
- /**
696
- * Place Items
697
- * @see https://tailwindcss.com/docs/place-items
698
- */
699
- "place-items": [{
700
- "place-items": ["start", "end", "center", "baseline", "stretch"]
701
- }],
702
- /**
703
- * Place Self
704
- * @see https://tailwindcss.com/docs/place-self
705
- */
706
- "place-self": [{
707
- "place-self": ["auto", "start", "end", "center", "stretch"]
708
- }],
709
- // Spacing
710
- /**
711
- * Padding
712
- * @see https://tailwindcss.com/docs/padding
713
- */
714
- p: [{
715
- p: [h]
716
- }],
717
- /**
718
- * Padding X
719
- * @see https://tailwindcss.com/docs/padding
720
- */
721
- px: [{
722
- px: [h]
723
- }],
724
- /**
725
- * Padding Y
726
- * @see https://tailwindcss.com/docs/padding
727
- */
728
- py: [{
729
- py: [h]
730
- }],
731
- /**
732
- * Padding Start
733
- * @see https://tailwindcss.com/docs/padding
734
- */
735
- ps: [{
736
- ps: [h]
737
- }],
738
- /**
739
- * Padding End
740
- * @see https://tailwindcss.com/docs/padding
741
- */
742
- pe: [{
743
- pe: [h]
744
- }],
745
- /**
746
- * Padding Top
747
- * @see https://tailwindcss.com/docs/padding
748
- */
749
- pt: [{
750
- pt: [h]
751
- }],
752
- /**
753
- * Padding Right
754
- * @see https://tailwindcss.com/docs/padding
755
- */
756
- pr: [{
757
- pr: [h]
758
- }],
759
- /**
760
- * Padding Bottom
761
- * @see https://tailwindcss.com/docs/padding
762
- */
763
- pb: [{
764
- pb: [h]
765
- }],
766
- /**
767
- * Padding Left
768
- * @see https://tailwindcss.com/docs/padding
769
- */
770
- pl: [{
771
- pl: [h]
772
- }],
773
- /**
774
- * Margin
775
- * @see https://tailwindcss.com/docs/margin
776
- */
777
- m: [{
778
- m: [f]
779
- }],
780
- /**
781
- * Margin X
782
- * @see https://tailwindcss.com/docs/margin
783
- */
784
- mx: [{
785
- mx: [f]
786
- }],
787
- /**
788
- * Margin Y
789
- * @see https://tailwindcss.com/docs/margin
790
- */
791
- my: [{
792
- my: [f]
793
- }],
794
- /**
795
- * Margin Start
796
- * @see https://tailwindcss.com/docs/margin
797
- */
798
- ms: [{
799
- ms: [f]
800
- }],
801
- /**
802
- * Margin End
803
- * @see https://tailwindcss.com/docs/margin
804
- */
805
- me: [{
806
- me: [f]
807
- }],
808
- /**
809
- * Margin Top
810
- * @see https://tailwindcss.com/docs/margin
811
- */
812
- mt: [{
813
- mt: [f]
814
- }],
815
- /**
816
- * Margin Right
817
- * @see https://tailwindcss.com/docs/margin
818
- */
819
- mr: [{
820
- mr: [f]
821
- }],
822
- /**
823
- * Margin Bottom
824
- * @see https://tailwindcss.com/docs/margin
825
- */
826
- mb: [{
827
- mb: [f]
828
- }],
829
- /**
830
- * Margin Left
831
- * @see https://tailwindcss.com/docs/margin
832
- */
833
- ml: [{
834
- ml: [f]
835
- }],
836
- /**
837
- * Space Between X
838
- * @see https://tailwindcss.com/docs/space
839
- */
840
- "space-x": [{
841
- "space-x": [R]
842
- }],
843
- /**
844
- * Space Between X Reverse
845
- * @see https://tailwindcss.com/docs/space
846
- */
847
- "space-x-reverse": ["space-x-reverse"],
848
- /**
849
- * Space Between Y
850
- * @see https://tailwindcss.com/docs/space
851
- */
852
- "space-y": [{
853
- "space-y": [R]
854
- }],
855
- /**
856
- * Space Between Y Reverse
857
- * @see https://tailwindcss.com/docs/space
858
- */
859
- "space-y-reverse": ["space-y-reverse"],
860
- // Sizing
861
- /**
862
- * Width
863
- * @see https://tailwindcss.com/docs/width
864
- */
865
- w: [{
866
- w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", T, t]
867
- }],
868
- /**
869
- * Min-Width
870
- * @see https://tailwindcss.com/docs/min-width
871
- */
872
- "min-w": [{
873
- "min-w": [T, t, "min", "max", "fit"]
874
- }],
875
- /**
876
- * Max-Width
877
- * @see https://tailwindcss.com/docs/max-width
878
- */
879
- "max-w": [{
880
- "max-w": [T, t, "none", "full", "min", "max", "fit", "prose", {
881
- screen: [J]
882
- }, J]
883
- }],
884
- /**
885
- * Height
886
- * @see https://tailwindcss.com/docs/height
887
- */
888
- h: [{
889
- h: [T, t, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
890
- }],
891
- /**
892
- * Min-Height
893
- * @see https://tailwindcss.com/docs/min-height
894
- */
895
- "min-h": [{
896
- "min-h": [T, t, "min", "max", "fit", "svh", "lvh", "dvh"]
897
- }],
898
- /**
899
- * Max-Height
900
- * @see https://tailwindcss.com/docs/max-height
901
- */
902
- "max-h": [{
903
- "max-h": [T, t, "min", "max", "fit", "svh", "lvh", "dvh"]
904
- }],
905
- /**
906
- * Size
907
- * @see https://tailwindcss.com/docs/size
908
- */
909
- size: [{
910
- size: [T, t, "auto", "min", "max", "fit"]
911
- }],
912
- // Typography
913
- /**
914
- * Font Size
915
- * @see https://tailwindcss.com/docs/font-size
916
- */
917
- "font-size": [{
918
- text: ["base", J, K]
919
- }],
920
- /**
921
- * Font Smoothing
922
- * @see https://tailwindcss.com/docs/font-smoothing
923
- */
924
- "font-smoothing": ["antialiased", "subpixel-antialiased"],
925
- /**
926
- * Font Style
927
- * @see https://tailwindcss.com/docs/font-style
928
- */
929
- "font-style": ["italic", "not-italic"],
930
- /**
931
- * Font Weight
932
- * @see https://tailwindcss.com/docs/font-weight
933
- */
934
- "font-weight": [{
935
- font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", Ae]
936
- }],
937
- /**
938
- * Font Family
939
- * @see https://tailwindcss.com/docs/font-family
940
- */
941
- "font-family": [{
942
- font: [ue]
943
- }],
944
- /**
945
- * Font Variant Numeric
946
- * @see https://tailwindcss.com/docs/font-variant-numeric
947
- */
948
- "fvn-normal": ["normal-nums"],
949
- /**
950
- * Font Variant Numeric
951
- * @see https://tailwindcss.com/docs/font-variant-numeric
952
- */
953
- "fvn-ordinal": ["ordinal"],
954
- /**
955
- * Font Variant Numeric
956
- * @see https://tailwindcss.com/docs/font-variant-numeric
957
- */
958
- "fvn-slashed-zero": ["slashed-zero"],
959
- /**
960
- * Font Variant Numeric
961
- * @see https://tailwindcss.com/docs/font-variant-numeric
962
- */
963
- "fvn-figure": ["lining-nums", "oldstyle-nums"],
964
- /**
965
- * Font Variant Numeric
966
- * @see https://tailwindcss.com/docs/font-variant-numeric
967
- */
968
- "fvn-spacing": ["proportional-nums", "tabular-nums"],
969
- /**
970
- * Font Variant Numeric
971
- * @see https://tailwindcss.com/docs/font-variant-numeric
972
- */
973
- "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
974
- /**
975
- * Letter Spacing
976
- * @see https://tailwindcss.com/docs/letter-spacing
977
- */
978
- tracking: [{
979
- tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", T]
980
- }],
981
- /**
982
- * Line Clamp
983
- * @see https://tailwindcss.com/docs/line-clamp
984
- */
985
- "line-clamp": [{
986
- "line-clamp": ["none", ie, Ae]
987
- }],
988
- /**
989
- * Line Height
990
- * @see https://tailwindcss.com/docs/line-height
991
- */
992
- leading: [{
993
- leading: ["none", "tight", "snug", "normal", "relaxed", "loose", X, T]
994
- }],
995
- /**
996
- * List Style Image
997
- * @see https://tailwindcss.com/docs/list-style-image
998
- */
999
- "list-image": [{
1000
- "list-image": ["none", T]
1001
- }],
1002
- /**
1003
- * List Style Type
1004
- * @see https://tailwindcss.com/docs/list-style-type
1005
- */
1006
- "list-style-type": [{
1007
- list: ["none", "disc", "decimal", T]
1008
- }],
1009
- /**
1010
- * List Style Position
1011
- * @see https://tailwindcss.com/docs/list-style-position
1012
- */
1013
- "list-style-position": [{
1014
- list: ["inside", "outside"]
1015
- }],
1016
- /**
1017
- * Placeholder Color
1018
- * @deprecated since Tailwind CSS v3.0.0
1019
- * @see https://tailwindcss.com/docs/placeholder-color
1020
- */
1021
- "placeholder-color": [{
1022
- placeholder: [e]
1023
- }],
1024
- /**
1025
- * Placeholder Opacity
1026
- * @see https://tailwindcss.com/docs/placeholder-opacity
1027
- */
1028
- "placeholder-opacity": [{
1029
- "placeholder-opacity": [x]
1030
- }],
1031
- /**
1032
- * Text Alignment
1033
- * @see https://tailwindcss.com/docs/text-align
1034
- */
1035
- "text-alignment": [{
1036
- text: ["left", "center", "right", "justify", "start", "end"]
1037
- }],
1038
- /**
1039
- * Text Color
1040
- * @see https://tailwindcss.com/docs/text-color
1041
- */
1042
- "text-color": [{
1043
- text: [e]
1044
- }],
1045
- /**
1046
- * Text Opacity
1047
- * @see https://tailwindcss.com/docs/text-opacity
1048
- */
1049
- "text-opacity": [{
1050
- "text-opacity": [x]
1051
- }],
1052
- /**
1053
- * Text Decoration
1054
- * @see https://tailwindcss.com/docs/text-decoration
1055
- */
1056
- "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1057
- /**
1058
- * Text Decoration Style
1059
- * @see https://tailwindcss.com/docs/text-decoration-style
1060
- */
1061
- "text-decoration-style": [{
1062
- decoration: [...L(), "wavy"]
1063
- }],
1064
- /**
1065
- * Text Decoration Thickness
1066
- * @see https://tailwindcss.com/docs/text-decoration-thickness
1067
- */
1068
- "text-decoration-thickness": [{
1069
- decoration: ["auto", "from-font", X, K]
1070
- }],
1071
- /**
1072
- * Text Underline Offset
1073
- * @see https://tailwindcss.com/docs/text-underline-offset
1074
- */
1075
- "underline-offset": [{
1076
- "underline-offset": ["auto", X, T]
1077
- }],
1078
- /**
1079
- * Text Decoration Color
1080
- * @see https://tailwindcss.com/docs/text-decoration-color
1081
- */
1082
- "text-decoration-color": [{
1083
- decoration: [e]
1084
- }],
1085
- /**
1086
- * Text Transform
1087
- * @see https://tailwindcss.com/docs/text-transform
1088
- */
1089
- "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1090
- /**
1091
- * Text Overflow
1092
- * @see https://tailwindcss.com/docs/text-overflow
1093
- */
1094
- "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1095
- /**
1096
- * Text Wrap
1097
- * @see https://tailwindcss.com/docs/text-wrap
1098
- */
1099
- "text-wrap": [{
1100
- text: ["wrap", "nowrap", "balance", "pretty"]
1101
- }],
1102
- /**
1103
- * Text Indent
1104
- * @see https://tailwindcss.com/docs/text-indent
1105
- */
1106
- indent: [{
1107
- indent: w()
1108
- }],
1109
- /**
1110
- * Vertical Alignment
1111
- * @see https://tailwindcss.com/docs/vertical-align
1112
- */
1113
- "vertical-align": [{
1114
- align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", T]
1115
- }],
1116
- /**
1117
- * Whitespace
1118
- * @see https://tailwindcss.com/docs/whitespace
1119
- */
1120
- whitespace: [{
1121
- whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1122
- }],
1123
- /**
1124
- * Word Break
1125
- * @see https://tailwindcss.com/docs/word-break
1126
- */
1127
- break: [{
1128
- break: ["normal", "words", "all", "keep"]
1129
- }],
1130
- /**
1131
- * Hyphens
1132
- * @see https://tailwindcss.com/docs/hyphens
1133
- */
1134
- hyphens: [{
1135
- hyphens: ["none", "manual", "auto"]
1136
- }],
1137
- /**
1138
- * Content
1139
- * @see https://tailwindcss.com/docs/content
1140
- */
1141
- content: [{
1142
- content: ["none", T]
1143
- }],
1144
- // Backgrounds
1145
- /**
1146
- * Background Attachment
1147
- * @see https://tailwindcss.com/docs/background-attachment
1148
- */
1149
- "bg-attachment": [{
1150
- bg: ["fixed", "local", "scroll"]
1151
- }],
1152
- /**
1153
- * Background Clip
1154
- * @see https://tailwindcss.com/docs/background-clip
1155
- */
1156
- "bg-clip": [{
1157
- "bg-clip": ["border", "padding", "content", "text"]
1158
- }],
1159
- /**
1160
- * Background Opacity
1161
- * @deprecated since Tailwind CSS v3.0.0
1162
- * @see https://tailwindcss.com/docs/background-opacity
1163
- */
1164
- "bg-opacity": [{
1165
- "bg-opacity": [x]
1166
- }],
1167
- /**
1168
- * Background Origin
1169
- * @see https://tailwindcss.com/docs/background-origin
1170
- */
1171
- "bg-origin": [{
1172
- "bg-origin": ["border", "padding", "content"]
1173
- }],
1174
- /**
1175
- * Background Position
1176
- * @see https://tailwindcss.com/docs/background-position
1177
- */
1178
- "bg-position": [{
1179
- bg: [...A(), Fi]
1180
- }],
1181
- /**
1182
- * Background Repeat
1183
- * @see https://tailwindcss.com/docs/background-repeat
1184
- */
1185
- "bg-repeat": [{
1186
- bg: ["no-repeat", {
1187
- repeat: ["", "x", "y", "round", "space"]
1188
- }]
1189
- }],
1190
- /**
1191
- * Background Size
1192
- * @see https://tailwindcss.com/docs/background-size
1193
- */
1194
- "bg-size": [{
1195
- bg: ["auto", "cover", "contain", $i]
1196
- }],
1197
- /**
1198
- * Background Image
1199
- * @see https://tailwindcss.com/docs/background-image
1200
- */
1201
- "bg-image": [{
1202
- bg: ["none", {
1203
- "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1204
- }, Gi]
1205
- }],
1206
- /**
1207
- * Background Color
1208
- * @see https://tailwindcss.com/docs/background-color
1209
- */
1210
- "bg-color": [{
1211
- bg: [e]
1212
- }],
1213
- /**
1214
- * Gradient Color Stops From Position
1215
- * @see https://tailwindcss.com/docs/gradient-color-stops
1216
- */
1217
- "gradient-from-pos": [{
1218
- from: [b]
1219
- }],
1220
- /**
1221
- * Gradient Color Stops Via Position
1222
- * @see https://tailwindcss.com/docs/gradient-color-stops
1223
- */
1224
- "gradient-via-pos": [{
1225
- via: [b]
1226
- }],
1227
- /**
1228
- * Gradient Color Stops To Position
1229
- * @see https://tailwindcss.com/docs/gradient-color-stops
1230
- */
1231
- "gradient-to-pos": [{
1232
- to: [b]
1233
- }],
1234
- /**
1235
- * Gradient Color Stops From
1236
- * @see https://tailwindcss.com/docs/gradient-color-stops
1237
- */
1238
- "gradient-from": [{
1239
- from: [k]
1240
- }],
1241
- /**
1242
- * Gradient Color Stops Via
1243
- * @see https://tailwindcss.com/docs/gradient-color-stops
1244
- */
1245
- "gradient-via": [{
1246
- via: [k]
1247
- }],
1248
- /**
1249
- * Gradient Color Stops To
1250
- * @see https://tailwindcss.com/docs/gradient-color-stops
1251
- */
1252
- "gradient-to": [{
1253
- to: [k]
1254
- }],
1255
- // Borders
1256
- /**
1257
- * Border Radius
1258
- * @see https://tailwindcss.com/docs/border-radius
1259
- */
1260
- rounded: [{
1261
- rounded: [a]
1262
- }],
1263
- /**
1264
- * Border Radius Start
1265
- * @see https://tailwindcss.com/docs/border-radius
1266
- */
1267
- "rounded-s": [{
1268
- "rounded-s": [a]
1269
- }],
1270
- /**
1271
- * Border Radius End
1272
- * @see https://tailwindcss.com/docs/border-radius
1273
- */
1274
- "rounded-e": [{
1275
- "rounded-e": [a]
1276
- }],
1277
- /**
1278
- * Border Radius Top
1279
- * @see https://tailwindcss.com/docs/border-radius
1280
- */
1281
- "rounded-t": [{
1282
- "rounded-t": [a]
1283
- }],
1284
- /**
1285
- * Border Radius Right
1286
- * @see https://tailwindcss.com/docs/border-radius
1287
- */
1288
- "rounded-r": [{
1289
- "rounded-r": [a]
1290
- }],
1291
- /**
1292
- * Border Radius Bottom
1293
- * @see https://tailwindcss.com/docs/border-radius
1294
- */
1295
- "rounded-b": [{
1296
- "rounded-b": [a]
1297
- }],
1298
- /**
1299
- * Border Radius Left
1300
- * @see https://tailwindcss.com/docs/border-radius
1301
- */
1302
- "rounded-l": [{
1303
- "rounded-l": [a]
1304
- }],
1305
- /**
1306
- * Border Radius Start Start
1307
- * @see https://tailwindcss.com/docs/border-radius
1308
- */
1309
- "rounded-ss": [{
1310
- "rounded-ss": [a]
1311
- }],
1312
- /**
1313
- * Border Radius Start End
1314
- * @see https://tailwindcss.com/docs/border-radius
1315
- */
1316
- "rounded-se": [{
1317
- "rounded-se": [a]
1318
- }],
1319
- /**
1320
- * Border Radius End End
1321
- * @see https://tailwindcss.com/docs/border-radius
1322
- */
1323
- "rounded-ee": [{
1324
- "rounded-ee": [a]
1325
- }],
1326
- /**
1327
- * Border Radius End Start
1328
- * @see https://tailwindcss.com/docs/border-radius
1329
- */
1330
- "rounded-es": [{
1331
- "rounded-es": [a]
1332
- }],
1333
- /**
1334
- * Border Radius Top Left
1335
- * @see https://tailwindcss.com/docs/border-radius
1336
- */
1337
- "rounded-tl": [{
1338
- "rounded-tl": [a]
1339
- }],
1340
- /**
1341
- * Border Radius Top Right
1342
- * @see https://tailwindcss.com/docs/border-radius
1343
- */
1344
- "rounded-tr": [{
1345
- "rounded-tr": [a]
1346
- }],
1347
- /**
1348
- * Border Radius Bottom Right
1349
- * @see https://tailwindcss.com/docs/border-radius
1350
- */
1351
- "rounded-br": [{
1352
- "rounded-br": [a]
1353
- }],
1354
- /**
1355
- * Border Radius Bottom Left
1356
- * @see https://tailwindcss.com/docs/border-radius
1357
- */
1358
- "rounded-bl": [{
1359
- "rounded-bl": [a]
1360
- }],
1361
- /**
1362
- * Border Width
1363
- * @see https://tailwindcss.com/docs/border-width
1364
- */
1365
- "border-w": [{
1366
- border: [s]
1367
- }],
1368
- /**
1369
- * Border Width X
1370
- * @see https://tailwindcss.com/docs/border-width
1371
- */
1372
- "border-w-x": [{
1373
- "border-x": [s]
1374
- }],
1375
- /**
1376
- * Border Width Y
1377
- * @see https://tailwindcss.com/docs/border-width
1378
- */
1379
- "border-w-y": [{
1380
- "border-y": [s]
1381
- }],
1382
- /**
1383
- * Border Width Start
1384
- * @see https://tailwindcss.com/docs/border-width
1385
- */
1386
- "border-w-s": [{
1387
- "border-s": [s]
1388
- }],
1389
- /**
1390
- * Border Width End
1391
- * @see https://tailwindcss.com/docs/border-width
1392
- */
1393
- "border-w-e": [{
1394
- "border-e": [s]
1395
- }],
1396
- /**
1397
- * Border Width Top
1398
- * @see https://tailwindcss.com/docs/border-width
1399
- */
1400
- "border-w-t": [{
1401
- "border-t": [s]
1402
- }],
1403
- /**
1404
- * Border Width Right
1405
- * @see https://tailwindcss.com/docs/border-width
1406
- */
1407
- "border-w-r": [{
1408
- "border-r": [s]
1409
- }],
1410
- /**
1411
- * Border Width Bottom
1412
- * @see https://tailwindcss.com/docs/border-width
1413
- */
1414
- "border-w-b": [{
1415
- "border-b": [s]
1416
- }],
1417
- /**
1418
- * Border Width Left
1419
- * @see https://tailwindcss.com/docs/border-width
1420
- */
1421
- "border-w-l": [{
1422
- "border-l": [s]
1423
- }],
1424
- /**
1425
- * Border Opacity
1426
- * @see https://tailwindcss.com/docs/border-opacity
1427
- */
1428
- "border-opacity": [{
1429
- "border-opacity": [x]
1430
- }],
1431
- /**
1432
- * Border Style
1433
- * @see https://tailwindcss.com/docs/border-style
1434
- */
1435
- "border-style": [{
1436
- border: [...L(), "hidden"]
1437
- }],
1438
- /**
1439
- * Divide Width X
1440
- * @see https://tailwindcss.com/docs/divide-width
1441
- */
1442
- "divide-x": [{
1443
- "divide-x": [s]
1444
- }],
1445
- /**
1446
- * Divide Width X Reverse
1447
- * @see https://tailwindcss.com/docs/divide-width
1448
- */
1449
- "divide-x-reverse": ["divide-x-reverse"],
1450
- /**
1451
- * Divide Width Y
1452
- * @see https://tailwindcss.com/docs/divide-width
1453
- */
1454
- "divide-y": [{
1455
- "divide-y": [s]
1456
- }],
1457
- /**
1458
- * Divide Width Y Reverse
1459
- * @see https://tailwindcss.com/docs/divide-width
1460
- */
1461
- "divide-y-reverse": ["divide-y-reverse"],
1462
- /**
1463
- * Divide Opacity
1464
- * @see https://tailwindcss.com/docs/divide-opacity
1465
- */
1466
- "divide-opacity": [{
1467
- "divide-opacity": [x]
1468
- }],
1469
- /**
1470
- * Divide Style
1471
- * @see https://tailwindcss.com/docs/divide-style
1472
- */
1473
- "divide-style": [{
1474
- divide: L()
1475
- }],
1476
- /**
1477
- * Border Color
1478
- * @see https://tailwindcss.com/docs/border-color
1479
- */
1480
- "border-color": [{
1481
- border: [o]
1482
- }],
1483
- /**
1484
- * Border Color X
1485
- * @see https://tailwindcss.com/docs/border-color
1486
- */
1487
- "border-color-x": [{
1488
- "border-x": [o]
1489
- }],
1490
- /**
1491
- * Border Color Y
1492
- * @see https://tailwindcss.com/docs/border-color
1493
- */
1494
- "border-color-y": [{
1495
- "border-y": [o]
1496
- }],
1497
- /**
1498
- * Border Color S
1499
- * @see https://tailwindcss.com/docs/border-color
1500
- */
1501
- "border-color-s": [{
1502
- "border-s": [o]
1503
- }],
1504
- /**
1505
- * Border Color E
1506
- * @see https://tailwindcss.com/docs/border-color
1507
- */
1508
- "border-color-e": [{
1509
- "border-e": [o]
1510
- }],
1511
- /**
1512
- * Border Color Top
1513
- * @see https://tailwindcss.com/docs/border-color
1514
- */
1515
- "border-color-t": [{
1516
- "border-t": [o]
1517
- }],
1518
- /**
1519
- * Border Color Right
1520
- * @see https://tailwindcss.com/docs/border-color
1521
- */
1522
- "border-color-r": [{
1523
- "border-r": [o]
1524
- }],
1525
- /**
1526
- * Border Color Bottom
1527
- * @see https://tailwindcss.com/docs/border-color
1528
- */
1529
- "border-color-b": [{
1530
- "border-b": [o]
1531
- }],
1532
- /**
1533
- * Border Color Left
1534
- * @see https://tailwindcss.com/docs/border-color
1535
- */
1536
- "border-color-l": [{
1537
- "border-l": [o]
1538
- }],
1539
- /**
1540
- * Divide Color
1541
- * @see https://tailwindcss.com/docs/divide-color
1542
- */
1543
- "divide-color": [{
1544
- divide: [o]
1545
- }],
1546
- /**
1547
- * Outline Style
1548
- * @see https://tailwindcss.com/docs/outline-style
1549
- */
1550
- "outline-style": [{
1551
- outline: ["", ...L()]
1552
- }],
1553
- /**
1554
- * Outline Offset
1555
- * @see https://tailwindcss.com/docs/outline-offset
1556
- */
1557
- "outline-offset": [{
1558
- "outline-offset": [X, T]
1559
- }],
1560
- /**
1561
- * Outline Width
1562
- * @see https://tailwindcss.com/docs/outline-width
1563
- */
1564
- "outline-w": [{
1565
- outline: [X, K]
1566
- }],
1567
- /**
1568
- * Outline Color
1569
- * @see https://tailwindcss.com/docs/outline-color
1570
- */
1571
- "outline-color": [{
1572
- outline: [e]
1573
- }],
1574
- /**
1575
- * Ring Width
1576
- * @see https://tailwindcss.com/docs/ring-width
1577
- */
1578
- "ring-w": [{
1579
- ring: C()
1580
- }],
1581
- /**
1582
- * Ring Width Inset
1583
- * @see https://tailwindcss.com/docs/ring-width
1584
- */
1585
- "ring-w-inset": ["ring-inset"],
1586
- /**
1587
- * Ring Color
1588
- * @see https://tailwindcss.com/docs/ring-color
1589
- */
1590
- "ring-color": [{
1591
- ring: [e]
1592
- }],
1593
- /**
1594
- * Ring Opacity
1595
- * @see https://tailwindcss.com/docs/ring-opacity
1596
- */
1597
- "ring-opacity": [{
1598
- "ring-opacity": [x]
1599
- }],
1600
- /**
1601
- * Ring Offset Width
1602
- * @see https://tailwindcss.com/docs/ring-offset-width
1603
- */
1604
- "ring-offset-w": [{
1605
- "ring-offset": [X, K]
1606
- }],
1607
- /**
1608
- * Ring Offset Color
1609
- * @see https://tailwindcss.com/docs/ring-offset-color
1610
- */
1611
- "ring-offset-color": [{
1612
- "ring-offset": [e]
1613
- }],
1614
- // Effects
1615
- /**
1616
- * Box Shadow
1617
- * @see https://tailwindcss.com/docs/box-shadow
1618
- */
1619
- shadow: [{
1620
- shadow: ["", "inner", "none", J, Xi]
1621
- }],
1622
- /**
1623
- * Box Shadow Color
1624
- * @see https://tailwindcss.com/docs/box-shadow-color
1625
- */
1626
- "shadow-color": [{
1627
- shadow: [ue]
1628
- }],
1629
- /**
1630
- * Opacity
1631
- * @see https://tailwindcss.com/docs/opacity
1632
- */
1633
- opacity: [{
1634
- opacity: [x]
1635
- }],
1636
- /**
1637
- * Mix Blend Mode
1638
- * @see https://tailwindcss.com/docs/mix-blend-mode
1639
- */
1640
- "mix-blend": [{
1641
- "mix-blend": [...P(), "plus-lighter", "plus-darker"]
1642
- }],
1643
- /**
1644
- * Background Blend Mode
1645
- * @see https://tailwindcss.com/docs/background-blend-mode
1646
- */
1647
- "bg-blend": [{
1648
- "bg-blend": P()
1649
- }],
1650
- // Filters
1651
- /**
1652
- * Filter
1653
- * @deprecated since Tailwind CSS v3.0.0
1654
- * @see https://tailwindcss.com/docs/filter
1655
- */
1656
- filter: [{
1657
- filter: ["", "none"]
1658
- }],
1659
- /**
1660
- * Blur
1661
- * @see https://tailwindcss.com/docs/blur
1662
- */
1663
- blur: [{
1664
- blur: [r]
1665
- }],
1666
- /**
1667
- * Brightness
1668
- * @see https://tailwindcss.com/docs/brightness
1669
- */
1670
- brightness: [{
1671
- brightness: [i]
1672
- }],
1673
- /**
1674
- * Contrast
1675
- * @see https://tailwindcss.com/docs/contrast
1676
- */
1677
- contrast: [{
1678
- contrast: [c]
1679
- }],
1680
- /**
1681
- * Drop Shadow
1682
- * @see https://tailwindcss.com/docs/drop-shadow
1683
- */
1684
- "drop-shadow": [{
1685
- "drop-shadow": ["", "none", J, T]
1686
- }],
1687
- /**
1688
- * Grayscale
1689
- * @see https://tailwindcss.com/docs/grayscale
1690
- */
1691
- grayscale: [{
1692
- grayscale: [d]
1693
- }],
1694
- /**
1695
- * Hue Rotate
1696
- * @see https://tailwindcss.com/docs/hue-rotate
1697
- */
1698
- "hue-rotate": [{
1699
- "hue-rotate": [g]
1700
- }],
1701
- /**
1702
- * Invert
1703
- * @see https://tailwindcss.com/docs/invert
1704
- */
1705
- invert: [{
1706
- invert: [p]
1707
- }],
1708
- /**
1709
- * Saturate
1710
- * @see https://tailwindcss.com/docs/saturate
1711
- */
1712
- saturate: [{
1713
- saturate: [S]
1714
- }],
1715
- /**
1716
- * Sepia
1717
- * @see https://tailwindcss.com/docs/sepia
1718
- */
1719
- sepia: [{
1720
- sepia: [H]
1721
- }],
1722
- /**
1723
- * Backdrop Filter
1724
- * @deprecated since Tailwind CSS v3.0.0
1725
- * @see https://tailwindcss.com/docs/backdrop-filter
1726
- */
1727
- "backdrop-filter": [{
1728
- "backdrop-filter": ["", "none"]
1729
- }],
1730
- /**
1731
- * Backdrop Blur
1732
- * @see https://tailwindcss.com/docs/backdrop-blur
1733
- */
1734
- "backdrop-blur": [{
1735
- "backdrop-blur": [r]
1736
- }],
1737
- /**
1738
- * Backdrop Brightness
1739
- * @see https://tailwindcss.com/docs/backdrop-brightness
1740
- */
1741
- "backdrop-brightness": [{
1742
- "backdrop-brightness": [i]
1743
- }],
1744
- /**
1745
- * Backdrop Contrast
1746
- * @see https://tailwindcss.com/docs/backdrop-contrast
1747
- */
1748
- "backdrop-contrast": [{
1749
- "backdrop-contrast": [c]
1750
- }],
1751
- /**
1752
- * Backdrop Grayscale
1753
- * @see https://tailwindcss.com/docs/backdrop-grayscale
1754
- */
1755
- "backdrop-grayscale": [{
1756
- "backdrop-grayscale": [d]
1757
- }],
1758
- /**
1759
- * Backdrop Hue Rotate
1760
- * @see https://tailwindcss.com/docs/backdrop-hue-rotate
1761
- */
1762
- "backdrop-hue-rotate": [{
1763
- "backdrop-hue-rotate": [g]
1764
- }],
1765
- /**
1766
- * Backdrop Invert
1767
- * @see https://tailwindcss.com/docs/backdrop-invert
1768
- */
1769
- "backdrop-invert": [{
1770
- "backdrop-invert": [p]
1771
- }],
1772
- /**
1773
- * Backdrop Opacity
1774
- * @see https://tailwindcss.com/docs/backdrop-opacity
1775
- */
1776
- "backdrop-opacity": [{
1777
- "backdrop-opacity": [x]
1778
- }],
1779
- /**
1780
- * Backdrop Saturate
1781
- * @see https://tailwindcss.com/docs/backdrop-saturate
1782
- */
1783
- "backdrop-saturate": [{
1784
- "backdrop-saturate": [S]
1785
- }],
1786
- /**
1787
- * Backdrop Sepia
1788
- * @see https://tailwindcss.com/docs/backdrop-sepia
1789
- */
1790
- "backdrop-sepia": [{
1791
- "backdrop-sepia": [H]
1792
- }],
1793
- // Tables
1794
- /**
1795
- * Border Collapse
1796
- * @see https://tailwindcss.com/docs/border-collapse
1797
- */
1798
- "border-collapse": [{
1799
- border: ["collapse", "separate"]
1800
- }],
1801
- /**
1802
- * Border Spacing
1803
- * @see https://tailwindcss.com/docs/border-spacing
1804
- */
1805
- "border-spacing": [{
1806
- "border-spacing": [l]
1807
- }],
1808
- /**
1809
- * Border Spacing X
1810
- * @see https://tailwindcss.com/docs/border-spacing
1811
- */
1812
- "border-spacing-x": [{
1813
- "border-spacing-x": [l]
1814
- }],
1815
- /**
1816
- * Border Spacing Y
1817
- * @see https://tailwindcss.com/docs/border-spacing
1818
- */
1819
- "border-spacing-y": [{
1820
- "border-spacing-y": [l]
1821
- }],
1822
- /**
1823
- * Table Layout
1824
- * @see https://tailwindcss.com/docs/table-layout
1825
- */
1826
- "table-layout": [{
1827
- table: ["auto", "fixed"]
1828
- }],
1829
- /**
1830
- * Caption Side
1831
- * @see https://tailwindcss.com/docs/caption-side
1832
- */
1833
- caption: [{
1834
- caption: ["top", "bottom"]
1835
- }],
1836
- // Transitions and Animation
1837
- /**
1838
- * Tranisition Property
1839
- * @see https://tailwindcss.com/docs/transition-property
1840
- */
1841
- transition: [{
1842
- transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", T]
1843
- }],
1844
- /**
1845
- * Transition Duration
1846
- * @see https://tailwindcss.com/docs/transition-duration
1847
- */
1848
- duration: [{
1849
- duration: W()
1850
- }],
1851
- /**
1852
- * Transition Timing Function
1853
- * @see https://tailwindcss.com/docs/transition-timing-function
1854
- */
1855
- ease: [{
1856
- ease: ["linear", "in", "out", "in-out", T]
1857
- }],
1858
- /**
1859
- * Transition Delay
1860
- * @see https://tailwindcss.com/docs/transition-delay
1861
- */
1862
- delay: [{
1863
- delay: W()
1864
- }],
1865
- /**
1866
- * Animation
1867
- * @see https://tailwindcss.com/docs/animation
1868
- */
1869
- animate: [{
1870
- animate: ["none", "spin", "ping", "pulse", "bounce", T]
1871
- }],
1872
- // Transforms
1873
- /**
1874
- * Transform
1875
- * @see https://tailwindcss.com/docs/transform
1876
- */
1877
- transform: [{
1878
- transform: ["", "gpu", "none"]
1879
- }],
1880
- /**
1881
- * Scale
1882
- * @see https://tailwindcss.com/docs/scale
1883
- */
1884
- scale: [{
1885
- scale: [m]
1886
- }],
1887
- /**
1888
- * Scale X
1889
- * @see https://tailwindcss.com/docs/scale
1890
- */
1891
- "scale-x": [{
1892
- "scale-x": [m]
1893
- }],
1894
- /**
1895
- * Scale Y
1896
- * @see https://tailwindcss.com/docs/scale
1897
- */
1898
- "scale-y": [{
1899
- "scale-y": [m]
1900
- }],
1901
- /**
1902
- * Rotate
1903
- * @see https://tailwindcss.com/docs/rotate
1904
- */
1905
- rotate: [{
1906
- rotate: [de, T]
1907
- }],
1908
- /**
1909
- * Translate X
1910
- * @see https://tailwindcss.com/docs/translate
1911
- */
1912
- "translate-x": [{
1913
- "translate-x": [N]
1914
- }],
1915
- /**
1916
- * Translate Y
1917
- * @see https://tailwindcss.com/docs/translate
1918
- */
1919
- "translate-y": [{
1920
- "translate-y": [N]
1921
- }],
1922
- /**
1923
- * Skew X
1924
- * @see https://tailwindcss.com/docs/skew
1925
- */
1926
- "skew-x": [{
1927
- "skew-x": [v]
1928
- }],
1929
- /**
1930
- * Skew Y
1931
- * @see https://tailwindcss.com/docs/skew
1932
- */
1933
- "skew-y": [{
1934
- "skew-y": [v]
1935
- }],
1936
- /**
1937
- * Transform Origin
1938
- * @see https://tailwindcss.com/docs/transform-origin
1939
- */
1940
- "transform-origin": [{
1941
- origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", T]
1942
- }],
1943
- // Interactivity
1944
- /**
1945
- * Accent Color
1946
- * @see https://tailwindcss.com/docs/accent-color
1947
- */
1948
- accent: [{
1949
- accent: ["auto", e]
1950
- }],
1951
- /**
1952
- * Appearance
1953
- * @see https://tailwindcss.com/docs/appearance
1954
- */
1955
- appearance: [{
1956
- appearance: ["none", "auto"]
1957
- }],
1958
- /**
1959
- * Cursor
1960
- * @see https://tailwindcss.com/docs/cursor
1961
- */
1962
- cursor: [{
1963
- cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", T]
1964
- }],
1965
- /**
1966
- * Caret Color
1967
- * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
1968
- */
1969
- "caret-color": [{
1970
- caret: [e]
1971
- }],
1972
- /**
1973
- * Pointer Events
1974
- * @see https://tailwindcss.com/docs/pointer-events
1975
- */
1976
- "pointer-events": [{
1977
- "pointer-events": ["none", "auto"]
1978
- }],
1979
- /**
1980
- * Resize
1981
- * @see https://tailwindcss.com/docs/resize
1982
- */
1983
- resize: [{
1984
- resize: ["none", "y", "x", ""]
1985
- }],
1986
- /**
1987
- * Scroll Behavior
1988
- * @see https://tailwindcss.com/docs/scroll-behavior
1989
- */
1990
- "scroll-behavior": [{
1991
- scroll: ["auto", "smooth"]
1992
- }],
1993
- /**
1994
- * Scroll Margin
1995
- * @see https://tailwindcss.com/docs/scroll-margin
1996
- */
1997
- "scroll-m": [{
1998
- "scroll-m": w()
1999
- }],
2000
- /**
2001
- * Scroll Margin X
2002
- * @see https://tailwindcss.com/docs/scroll-margin
2003
- */
2004
- "scroll-mx": [{
2005
- "scroll-mx": w()
2006
- }],
2007
- /**
2008
- * Scroll Margin Y
2009
- * @see https://tailwindcss.com/docs/scroll-margin
2010
- */
2011
- "scroll-my": [{
2012
- "scroll-my": w()
2013
- }],
2014
- /**
2015
- * Scroll Margin Start
2016
- * @see https://tailwindcss.com/docs/scroll-margin
2017
- */
2018
- "scroll-ms": [{
2019
- "scroll-ms": w()
2020
- }],
2021
- /**
2022
- * Scroll Margin End
2023
- * @see https://tailwindcss.com/docs/scroll-margin
2024
- */
2025
- "scroll-me": [{
2026
- "scroll-me": w()
2027
- }],
2028
- /**
2029
- * Scroll Margin Top
2030
- * @see https://tailwindcss.com/docs/scroll-margin
2031
- */
2032
- "scroll-mt": [{
2033
- "scroll-mt": w()
2034
- }],
2035
- /**
2036
- * Scroll Margin Right
2037
- * @see https://tailwindcss.com/docs/scroll-margin
2038
- */
2039
- "scroll-mr": [{
2040
- "scroll-mr": w()
2041
- }],
2042
- /**
2043
- * Scroll Margin Bottom
2044
- * @see https://tailwindcss.com/docs/scroll-margin
2045
- */
2046
- "scroll-mb": [{
2047
- "scroll-mb": w()
2048
- }],
2049
- /**
2050
- * Scroll Margin Left
2051
- * @see https://tailwindcss.com/docs/scroll-margin
2052
- */
2053
- "scroll-ml": [{
2054
- "scroll-ml": w()
2055
- }],
2056
- /**
2057
- * Scroll Padding
2058
- * @see https://tailwindcss.com/docs/scroll-padding
2059
- */
2060
- "scroll-p": [{
2061
- "scroll-p": w()
2062
- }],
2063
- /**
2064
- * Scroll Padding X
2065
- * @see https://tailwindcss.com/docs/scroll-padding
2066
- */
2067
- "scroll-px": [{
2068
- "scroll-px": w()
2069
- }],
2070
- /**
2071
- * Scroll Padding Y
2072
- * @see https://tailwindcss.com/docs/scroll-padding
2073
- */
2074
- "scroll-py": [{
2075
- "scroll-py": w()
2076
- }],
2077
- /**
2078
- * Scroll Padding Start
2079
- * @see https://tailwindcss.com/docs/scroll-padding
2080
- */
2081
- "scroll-ps": [{
2082
- "scroll-ps": w()
2083
- }],
2084
- /**
2085
- * Scroll Padding End
2086
- * @see https://tailwindcss.com/docs/scroll-padding
2087
- */
2088
- "scroll-pe": [{
2089
- "scroll-pe": w()
2090
- }],
2091
- /**
2092
- * Scroll Padding Top
2093
- * @see https://tailwindcss.com/docs/scroll-padding
2094
- */
2095
- "scroll-pt": [{
2096
- "scroll-pt": w()
2097
- }],
2098
- /**
2099
- * Scroll Padding Right
2100
- * @see https://tailwindcss.com/docs/scroll-padding
2101
- */
2102
- "scroll-pr": [{
2103
- "scroll-pr": w()
2104
- }],
2105
- /**
2106
- * Scroll Padding Bottom
2107
- * @see https://tailwindcss.com/docs/scroll-padding
2108
- */
2109
- "scroll-pb": [{
2110
- "scroll-pb": w()
2111
- }],
2112
- /**
2113
- * Scroll Padding Left
2114
- * @see https://tailwindcss.com/docs/scroll-padding
2115
- */
2116
- "scroll-pl": [{
2117
- "scroll-pl": w()
2118
- }],
2119
- /**
2120
- * Scroll Snap Align
2121
- * @see https://tailwindcss.com/docs/scroll-snap-align
2122
- */
2123
- "snap-align": [{
2124
- snap: ["start", "end", "center", "align-none"]
2125
- }],
2126
- /**
2127
- * Scroll Snap Stop
2128
- * @see https://tailwindcss.com/docs/scroll-snap-stop
2129
- */
2130
- "snap-stop": [{
2131
- snap: ["normal", "always"]
2132
- }],
2133
- /**
2134
- * Scroll Snap Type
2135
- * @see https://tailwindcss.com/docs/scroll-snap-type
2136
- */
2137
- "snap-type": [{
2138
- snap: ["none", "x", "y", "both"]
2139
- }],
2140
- /**
2141
- * Scroll Snap Type Strictness
2142
- * @see https://tailwindcss.com/docs/scroll-snap-type
2143
- */
2144
- "snap-strictness": [{
2145
- snap: ["mandatory", "proximity"]
2146
- }],
2147
- /**
2148
- * Touch Action
2149
- * @see https://tailwindcss.com/docs/touch-action
2150
- */
2151
- touch: [{
2152
- touch: ["auto", "none", "manipulation"]
2153
- }],
2154
- /**
2155
- * Touch Action X
2156
- * @see https://tailwindcss.com/docs/touch-action
2157
- */
2158
- "touch-x": [{
2159
- "touch-pan": ["x", "left", "right"]
2160
- }],
2161
- /**
2162
- * Touch Action Y
2163
- * @see https://tailwindcss.com/docs/touch-action
2164
- */
2165
- "touch-y": [{
2166
- "touch-pan": ["y", "up", "down"]
2167
- }],
2168
- /**
2169
- * Touch Action Pinch Zoom
2170
- * @see https://tailwindcss.com/docs/touch-action
2171
- */
2172
- "touch-pz": ["touch-pinch-zoom"],
2173
- /**
2174
- * User Select
2175
- * @see https://tailwindcss.com/docs/user-select
2176
- */
2177
- select: [{
2178
- select: ["none", "text", "all", "auto"]
2179
- }],
2180
- /**
2181
- * Will Change
2182
- * @see https://tailwindcss.com/docs/will-change
2183
- */
2184
- "will-change": [{
2185
- "will-change": ["auto", "scroll", "contents", "transform", T]
2186
- }],
2187
- // SVG
2188
- /**
2189
- * Fill
2190
- * @see https://tailwindcss.com/docs/fill
2191
- */
2192
- fill: [{
2193
- fill: [e, "none"]
2194
- }],
2195
- /**
2196
- * Stroke Width
2197
- * @see https://tailwindcss.com/docs/stroke-width
2198
- */
2199
- "stroke-w": [{
2200
- stroke: [X, K, Ae]
2201
- }],
2202
- /**
2203
- * Stroke
2204
- * @see https://tailwindcss.com/docs/stroke
2205
- */
2206
- stroke: [{
2207
- stroke: [e, "none"]
2208
- }],
2209
- // Accessibility
2210
- /**
2211
- * Screen Readers
2212
- * @see https://tailwindcss.com/docs/screen-readers
2213
- */
2214
- sr: ["sr-only", "not-sr-only"],
2215
- /**
2216
- * Forced Color Adjust
2217
- * @see https://tailwindcss.com/docs/forced-color-adjust
2218
- */
2219
- "forced-color-adjust": [{
2220
- "forced-color-adjust": ["auto", "none"]
2221
- }]
2222
- },
2223
- conflictingClassGroups: {
2224
- overflow: ["overflow-x", "overflow-y"],
2225
- overscroll: ["overscroll-x", "overscroll-y"],
2226
- inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
2227
- "inset-x": ["right", "left"],
2228
- "inset-y": ["top", "bottom"],
2229
- flex: ["basis", "grow", "shrink"],
2230
- gap: ["gap-x", "gap-y"],
2231
- p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
2232
- px: ["pr", "pl"],
2233
- py: ["pt", "pb"],
2234
- m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
2235
- mx: ["mr", "ml"],
2236
- my: ["mt", "mb"],
2237
- size: ["w", "h"],
2238
- "font-size": ["leading"],
2239
- "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
2240
- "fvn-ordinal": ["fvn-normal"],
2241
- "fvn-slashed-zero": ["fvn-normal"],
2242
- "fvn-figure": ["fvn-normal"],
2243
- "fvn-spacing": ["fvn-normal"],
2244
- "fvn-fraction": ["fvn-normal"],
2245
- "line-clamp": ["display", "overflow"],
2246
- rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
2247
- "rounded-s": ["rounded-ss", "rounded-es"],
2248
- "rounded-e": ["rounded-se", "rounded-ee"],
2249
- "rounded-t": ["rounded-tl", "rounded-tr"],
2250
- "rounded-r": ["rounded-tr", "rounded-br"],
2251
- "rounded-b": ["rounded-br", "rounded-bl"],
2252
- "rounded-l": ["rounded-tl", "rounded-bl"],
2253
- "border-spacing": ["border-spacing-x", "border-spacing-y"],
2254
- "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
2255
- "border-w-x": ["border-w-r", "border-w-l"],
2256
- "border-w-y": ["border-w-t", "border-w-b"],
2257
- "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
2258
- "border-color-x": ["border-color-r", "border-color-l"],
2259
- "border-color-y": ["border-color-t", "border-color-b"],
2260
- "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
2261
- "scroll-mx": ["scroll-mr", "scroll-ml"],
2262
- "scroll-my": ["scroll-mt", "scroll-mb"],
2263
- "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
2264
- "scroll-px": ["scroll-pr", "scroll-pl"],
2265
- "scroll-py": ["scroll-pt", "scroll-pb"],
2266
- touch: ["touch-x", "touch-y", "touch-pz"],
2267
- "touch-x": ["touch"],
2268
- "touch-y": ["touch"],
2269
- "touch-pz": ["touch"]
2270
- },
2271
- conflictingClassGroupModifiers: {
2272
- "font-size": ["leading"]
2273
- }
2274
- };
2275
- }, Ji = /* @__PURE__ */ Ri(Ki);
2276
- function _(...e) {
2277
- return Ji(lt(e));
2278
- }
2279
- let Ee;
2280
- function Re() {
2281
- return Ee === void 0 && (Ee = navigator.platform.includes("Mac")), Ee;
2282
- }
2283
- function Qi(e) {
2284
- return `${e}`.toLowerCase() === "mod" ? Re() ? "⌘" : "Ctrl" : `${e}`.toLowerCase() === "alt" ? Re() ? "⌥" : "Alt" : `${e}`.toLowerCase() === "shift" ? Re() ? "⇧" : "Shift" : e;
2285
- }
2286
- function en(e) {
2287
- return e.map(Qi).join(" ");
2288
- }
2289
- const vt = Q.forwardRef(
2290
- (e, t) => {
2291
- const {
2292
- icon: r = void 0,
2293
- // title = undefined,
2294
- tooltip: i = void 0,
2295
- disabled: o = !1,
2296
- customClass: a = "",
2297
- // color = undefined,
2298
- loading: l = void 0,
2299
- shortcutKeys: s = void 0,
2300
- tooltipOptions: c = {},
2301
- action: d = void 0,
2302
- isActive: g = void 0,
2303
- children: p,
2304
- asChild: u = !1,
2305
- upload: k = !1,
2306
- initialDisplayedColor: b = void 0,
2307
- dataState: z = !1,
2308
- ...f
2309
- } = e, x = wt[r], h = u ? ut : yt, S = (m) => {
2310
- if (o) {
2311
- m.preventDefault();
2312
- return;
2313
- }
2314
- d == null || d(m);
2315
- };
2316
- return /* @__PURE__ */ y(Nn, { children: [
2317
- /* @__PURE__ */ n(Ln, { asChild: !0, children: /* @__PURE__ */ y(
2318
- h,
2319
- {
2320
- className: _("richtext-h-[32px] richtext-w-[32px]", a),
2321
- "data-state": z ? "on" : "off",
2322
- disabled: o,
2323
- onClick: S,
2324
- ref: t,
2325
- size: "sm",
2326
- ...f,
2327
- children: [
2328
- x && /* @__PURE__ */ n(x, { className: "richtext-size-4" }),
2329
- p
2330
- ]
2331
- }
2332
- ) }),
2333
- i && /* @__PURE__ */ n(Ct, { ...c, className: "richtext-tooltip", children: /* @__PURE__ */ y("div", { className: "richtext-flex richtext-max-w-24 richtext-flex-col richtext-items-center richtext-text-center", children: [
2334
- /* @__PURE__ */ n("div", { children: i }),
2335
- !!(s != null && s.length) && /* @__PURE__ */ n("span", { children: en(s) })
2336
- ] }) })
2337
- ] });
2338
- }
2339
- );
2340
- function tn(e) {
2341
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...e, children: /* @__PURE__ */ n(
2342
- "path",
2343
- {
2344
- fill: "currentColor",
2345
- d: "M19 12h-2v3h-3v2h5zM7 9h3V7H5v5h2zm14-6H3a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m0 16H3V5h18z"
2346
- }
2347
- ) });
2348
- }
2349
- function rn(e) {
2350
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...e, children: /* @__PURE__ */ n(
2351
- "path",
2352
- {
2353
- fill: "none",
2354
- stroke: "currentColor",
2355
- strokeLinecap: "round",
2356
- strokeLinejoin: "round",
2357
- strokeWidth: "2",
2358
- d: "M6 15h15m0 4H6m9-8h6m0-4h-6M9 9h1a1 1 0 1 1-1 1V7.5a2 2 0 0 1 2-2M3 9h1a1 1 0 1 1-1 1V7.5a2 2 0 0 1 2-2"
2359
- }
2360
- ) });
2361
- }
2362
- function nn() {
2363
- return /* @__PURE__ */ n(
2364
- "svg",
2365
- {
2366
- xmlns: "http://www.w3.org/2000/svg",
2367
- xmlnsXlink: "http://www.w3.org/1999/xlink",
2368
- "aria-hidden": "true",
2369
- role: "img",
2370
- className: "richtext-h-4 richtext-w-4",
2371
- width: "1em",
2372
- height: "1em",
2373
- viewBox: "0 0 24 24",
2374
- children: /* @__PURE__ */ n(
2375
- "path",
2376
- {
2377
- fill: "none",
2378
- stroke: "currentColor",
2379
- strokeLinecap: "round",
2380
- strokeLinejoin: "round",
2381
- strokeWidth: "1.5",
2382
- d: "M5.5 3c1.404 0 2.107 0 2.611.38c.219.164.406.375.552.62C9 4.568 9 5.358 9 6.938v10.125c0 1.58 0 2.37-.337 2.937a2.1 2.1 0 0 1-.552.621c-.504.38-1.207.38-2.611.38s-2.107 0-2.611-.38a2.1 2.1 0 0 1-.552-.62C2 19.432 2 18.642 2 17.062V6.938c0-1.58 0-2.37.337-2.938a2.1 2.1 0 0 1 .552-.62C3.393 3 4.096 3 5.5 3M20 11.938v5.124c0 1.58 0 2.37-.337 2.938a2.1 2.1 0 0 1-.552.62c-.504.38-1.207.38-2.611.38s-2.107 0-2.611-.38a2.1 2.1 0 0 1-.552-.62C13 19.433 13 18.642 13 17.063V6.938c0-1.58 0-2.37.337-2.938M22 9l-6-6m6 0l-6 6",
2383
- color: "currentColor"
2384
- }
2385
- )
2386
- }
2387
- );
2388
- }
2389
- function on() {
2390
- return /* @__PURE__ */ n(
2391
- "svg",
2392
- {
2393
- xmlns: "http://www.w3.org/2000/svg",
2394
- xmlnsXlink: "http://www.w3.org/1999/xlink",
2395
- "aria-hidden": "true",
2396
- role: "img",
2397
- className: "richtext-h-4 richtext-w-4",
2398
- width: "1em",
2399
- height: "1em",
2400
- viewBox: "0 0 24 24",
2401
- children: /* @__PURE__ */ n(
2402
- "path",
2403
- {
2404
- fill: "none",
2405
- stroke: "currentColor",
2406
- strokeLinecap: "round",
2407
- strokeLinejoin: "round",
2408
- strokeWidth: "1.5",
2409
- d: "M21 18.5c0 1.404 0 2.107-.38 2.611a2.1 2.1 0 0 1-.62.552c-.567.337-1.358.337-2.937.337H6.938c-1.58 0-2.37 0-2.938-.337a2.1 2.1 0 0 1-.62-.552C3 20.607 3 19.904 3 18.5s0-2.107.38-2.611c.163-.218.374-.406.62-.552C4.567 15 5.357 15 6.938 15h10.125c1.58 0 2.37 0 2.937.337c.246.146.457.334.62.552c.38.504.38 1.207.38 2.611M12.063 4H6.937C5.358 4 4.568 4 4 4.337a2.1 2.1 0 0 0-.62.552C3 5.393 3 6.096 3 7.5s0 2.107.38 2.611c.163.218.374.406.62.552C4.567 11 5.357 11 6.938 11h10.125c1.58 0 2.37 0 2.937-.337M21 8l-6-6m6 0l-6 6",
2410
- color: "currentColor"
2411
- }
2412
- )
2413
- }
2414
- );
2415
- }
2416
- function an(e) {
2417
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...e, children: /* @__PURE__ */ n(
2418
- "path",
2419
- {
2420
- fill: "currentColor",
2421
- d: "M14 2H6a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h12c1.11 0 2-.89 2-2V8zm4 18H6V4h7v5h5zm-.65-10l-2.1 9h-1.4l-1.8-6.79l-1.8 6.79h-1.4l-2.2-9h1.5l1.4 6.81l1.8-6.81h1.3l1.8 6.81l1.4-6.81z"
2422
- }
2423
- ) });
2424
- }
2425
- function fe(e) {
2426
- const t = wt[e.name];
2427
- return t ? /* @__PURE__ */ n(
2428
- t,
2429
- {
2430
- onClick: e == null ? void 0 : e.onClick,
2431
- className: `richtext-h-4 richtext-w-4 ${(e == null ? void 0 : e.className) || ""}`
2432
- }
2433
- ) : null;
2434
- }
2435
- function sn(e) {
2436
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...e, children: /* @__PURE__ */ n(
2437
- "path",
2438
- {
2439
- fill: "currentColor",
2440
- d: "M21 22H3v-2h18zm0-18H3V2h18zm-11 9.7h4l-2-5.4zM11.2 6h1.7l4.7 12h-2l-.9-2.6H9.4L8.5 18h-2z"
2441
- }
2442
- ) });
2443
- }
2444
- function ln(e) {
2445
- return /* @__PURE__ */ n(
2446
- "svg",
2447
- {
2448
- xmlns: "http://www.w3.org/2000/svg",
2449
- xmlnsXlink: "http://www.w3.org/1999/xlink",
2450
- "aria-hidden": "true",
2451
- role: "img",
2452
- width: "1em",
2453
- height: "1em",
2454
- viewBox: "0 0 48 48",
2455
- ...e,
2456
- children: /* @__PURE__ */ n(
2457
- "path",
2458
- {
2459
- fill: "currentColor",
2460
- stroke: "currentColor",
2461
- strokeLinejoin: "round",
2462
- strokeWidth: 4,
2463
- d: "M36 19L24 31L12 19z"
2464
- }
2465
- )
2466
- }
2467
- );
2468
- }
2469
- function cn(e) {
2470
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...e, children: /* @__PURE__ */ n("path", { fill: "currentColor", d: "M9 7v10h6v-2h-4V7z" }) });
2471
- }
2472
- function dn(e) {
2473
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...e, children: /* @__PURE__ */ n(
2474
- "path",
2475
- {
2476
- fill: "currentColor",
2477
- d: "M9 7c-1.1 0-2 .9-2 2v8h2V9h2v7h2V9h2v8h2V9a2 2 0 0 0-2-2z"
2478
- }
2479
- ) });
2480
- }
2481
- function un(e) {
2482
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...e, children: /* @__PURE__ */ n(
2483
- "path",
2484
- {
2485
- fill: "currentColor",
2486
- d: "M11 7c-1.1 0-2 .9-2 2v2a2 2 0 0 0 2 2h2v2H9v2h4c1.11 0 2-.89 2-2v-2a2 2 0 0 0-2-2h-2V9h4V7z"
2487
- }
2488
- ) });
2489
- }
2490
- function hn() {
2491
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", children: /* @__PURE__ */ n(
2492
- "path",
2493
- {
2494
- fill: "currentColor",
2495
- d: "M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6l1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6l-1.4-1.4z"
2496
- }
2497
- ) });
2498
- }
2499
- function fn() {
2500
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", children: /* @__PURE__ */ n(
2501
- "path",
2502
- {
2503
- fill: "none",
2504
- stroke: "currentColor",
2505
- strokeLinecap: "round",
2506
- strokeLinejoin: "round",
2507
- strokeWidth: "2",
2508
- d: "M14 4h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m-9 8h4m-2-2v4"
2509
- }
2510
- ) });
2511
- }
2512
- function mn() {
2513
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", children: /* @__PURE__ */ n(
2514
- "path",
2515
- {
2516
- fill: "none",
2517
- stroke: "currentColor",
2518
- strokeLinecap: "round",
2519
- strokeLinejoin: "round",
2520
- strokeWidth: "2",
2521
- d: "M6 4h4a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m9 8h4m-2-2v4"
2522
- }
2523
- ) });
2524
- }
2525
- function gn() {
2526
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", children: /* @__PURE__ */ n(
2527
- "path",
2528
- {
2529
- fill: "none",
2530
- stroke: "currentColor",
2531
- strokeLinecap: "round",
2532
- strokeLinejoin: "round",
2533
- strokeWidth: "2",
2534
- d: "M12 21v-4m0-4V9m0-4V3m-2 18h4M8 5v4h11l2-2l-2-2zm6 8v4H6l-2-2l2-2z"
2535
- }
2536
- ) });
2537
- }
2538
- function pn() {
2539
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", children: /* @__PURE__ */ n(
2540
- "path",
2541
- {
2542
- fill: "currentColor",
2543
- d: "M23.943 19.806a.2.2 0 0 0-.168-.034c-1.26-1.855-2.873-3.61-4.419-5.315l-.252-.284c-.001-.073-.067-.12-.134-.15l-.084-.084c-.05-.1-.169-.167-.286-.1c-.47.234-.907.585-1.327.919c-.554.434-1.109.87-1.63 1.354a5 5 0 0 0-.588.618c-.084.117-.017.217.084.267c-.37.368-.74.736-1.109 1.12a.2.2 0 0 0-.05.134c0 .05.033.1.067.117l.655.502v.016c.924.92 2.554 2.173 4.285 3.527c.251.201.52.402.773.602c.117.134.234.285.335.418c.05.066.169.084.236.033c.033.034.084.067.118.1a.24.24 0 0 0 .1.034a.15.15 0 0 0 .135-.066a.24.24 0 0 0 .033-.1c.017 0 .017.016.034.016a.2.2 0 0 0 .134-.05l3.058-3.327c.12-.116.014-.267 0-.267m-7.628-.134l-1.546-1.17l-.15-.1c-.035-.017-.068-.05-.102-.067l-.117-.1c.66-.66 1.33-1.308 2-1.956c-.488.484-1.463 1.906-1.261 2.373c.002 0 .018.042.067.084zm4.1 3.126l-1.277-.97a27 27 0 0 0-1.58-1.504c.69.518 1.277.97 1.361 1.053c.673.585.638.485 1.093.87l.554.4c-.074.103-.151.148-.151.151m.336.25l-.034-.016a1 1 0 0 0 .152-.117zM.588 3.476c.033.217.084.435.117.636c.201 1.103.403 2.106.772 2.858l.152.568c.05.217.134.485.219.552a67 67 0 0 0 3.578 2.942a.18.18 0 0 0 .219 0s0 .016.016.016a.15.15 0 0 0 .118.05a.2.2 0 0 0 .134-.05c1.798-1.989 3.142-3.627 4.1-4.998c.068-.066.084-.167.084-.25c.067-.067.118-.151.185-.201c.067-.067.067-.184 0-.235l-.017-.016c0-.033-.017-.084-.05-.1c-.42-.401-.722-.685-1.042-.986a94 94 0 0 1-2.352-2.273c-.017-.017-.034-.034-.067-.034c-.336-.117-1.025-.234-1.882-.385c-1.277-.216-3.008-.517-4.57-.986c0 0-.101 0-.118.017l-.05.05C.05.714.022.707 0 .718c.017.1.017.167.05.284c0 .033.068.301.068.334zm7.19 4.78l-.033.034a.036.036 0 0 1 .033-.034M6.553 2.238c.101.1.521.502.622.585c-.437-.2-1.529-.702-2.034-.869c.505.1 1.194.201 1.412.284M.79 1.403c.252.434.454 1.939.655 3.41c-.118-.469-.201-.936-.302-1.372C.992 2.673.84 1.988.638 1.386c.124 0 .152.021.152.017m-.286-.369c0-.016 0-.033-.017-.033c.085 0 .135.017.202.05c0 .006-.145-.017-.185-.017m23.17-.217c.017-.066-.336-.367-.219-.384c.253-.017.253-.401 0-.401c-.335.017-.688.1-1.008.15c-.587.117-1.192.234-1.78.367a80 80 0 0 0-3.949.937c-.403.117-.857.2-1.243.401c-.135.067-.118.2-.05.284c-.034.017-.051.017-.085.034c-.117.017-.218.034-.335.05c-.102.017-.152.1-.135.2c0 .017.017.05.017.067c-.706.936-1.496 1.923-2.353 2.976c-.84.969-1.73 1.989-2.62 3.042c-2.84 3.31-6.05 7.07-9.594 10.38a.16.16 0 0 0 0 .234c.016.016.033.033.05.033c-.05.05-.101.085-.152.134q-.05.05-.05.1a.4.4 0 0 0-.067.084c-.067.067-.067.184.017.234c.067.066.185.066.235-.017c.017-.017.017-.033.033-.033a.265.265 0 0 1 .37 0c.202.217.404.435.588.618l-.42-.35c-.067-.067-.184-.05-.234.016c-.068.066-.051.184.016.234l4.469 3.727c.034.034.067.034.118.034a.15.15 0 0 0 .117-.05l.101-.1c.017.016.05.016.067.016c.05 0 .084-.016.118-.05c6.049-6.05 10.922-10.614 16.5-14.693c.05-.033.067-.1.067-.15c.067 0 .118-.05.15-.117c1.026-3.125 1.228-5.9 1.295-7.27c0-.059.016-.038.016-.068c.017-.033.017-.05.017-.05a.98.98 0 0 0-.067-.619m-10.82 4.915c.268-.301.537-.619.806-.903c-1.73 2.273-4.603 5.767-8.67 9.929c2.773-3.059 5.562-6.218 7.864-9.026M5.14 23.466c-.016-.017-.016-.017 0-.017zm2.504-2.156c.135-.15.27-.284.42-.434c0 0 0 .016.017.016c-.224.198-.433.418-.437.418m.69-.668c.099-.1.14-.173.284-.318c.992-1.02 2.017-2.04 3.059-3.076l.016-.016c.252-.2.555-.418.824-.619a228 228 0 0 0-4.184 4.029M14.852 3.91c-.554.719-1.176 1.671-1.697 2.423c-1.646 2.374-6.94 8.174-7.057 8.274a1190 1190 0 0 1-4.839 4.597l-.1.1c-.085-.1-.085-.25.016-.334C8.652 11.966 13.19 6.133 15.021 3.576c-.05.116-.084.216-.168.334zm2.906 3.427c-.671-.386-.99-.987-.806-1.572l.05-.2a.8.8 0 0 1 .085-.167a1.9 1.9 0 0 1 .756-.703c.016 0 .033 0 .05-.016c-.017-.034-.017-.084-.017-.134c.017-.1.085-.167.202-.167c.202 0 .824.184 1.059.384c.067.05.134.117.202.184c.084.1.218.268.285.401c.034.017.067.184.118.268c.033.134.067.284.05.418c-.017.016 0 .116-.017.116a1.6 1.6 0 0 1-.218.619c-.03.03.006.012-.05.067a1.2 1.2 0 0 1-.32.334a1.49 1.49 0 0 1-1.26.234a2 2 0 0 0-.169-.066m4.37 1.403c0 .017-.017.05 0 .067c-.034 0-.05.017-.085.034a110 110 0 0 0-3.915 3.025c1.11-.986 2.218-1.989 3.378-2.975c.336-.301.571-.686.638-1.12l.168-1.003v-.033c.085-.201.404-.118.353.1c-.004-.001-.173.795-.537 1.905"
2544
- }
2545
- ) });
2546
- }
2547
- function xn() {
2548
- return /* @__PURE__ */ y("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 32 32", children: [
2549
- /* @__PURE__ */ n(
2550
- "path",
2551
- {
2552
- fill: "currentColor",
2553
- d: "M30 18v-2h-6v10h2v-4h3v-2h-3v-2zm-11 8h-4V16h4a3.003 3.003 0 0 1 3 3v4a3.003 3.003 0 0 1-3 3m-2-2h2a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-2zm-6-8H6v10h2v-3h3a2.003 2.003 0 0 0 2-2v-3a2 2 0 0 0-2-2m-3 5v-3h3l.001 3z"
2554
- }
2555
- ),
2556
- /* @__PURE__ */ n(
2557
- "path",
2558
- {
2559
- fill: "currentColor",
2560
- d: "M22 14v-4a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 14 2H4a2.006 2.006 0 0 0-2 2v24a2 2 0 0 0 2 2h16v-2H4V4h8v6a2.006 2.006 0 0 0 2 2h6v2Zm-8-4V4.4l5.6 5.6Z"
2561
- }
2562
- )
2563
- ] });
2564
- }
2565
- function bn() {
2566
- return /* @__PURE__ */ y(
2567
- "svg",
2568
- {
2569
- xmlns: "http://www.w3.org/2000/svg",
2570
- width: "1em",
2571
- height: "1em",
2572
- className: "icon",
2573
- viewBox: "0 0 1024 1024",
2574
- children: [
2575
- /* @__PURE__ */ n(
2576
- "path",
2577
- {
2578
- fill: "currentColor",
2579
- d: "M679.253 402.364 618.77 561.015l-60.348-158.651a30.04 30.04 0 0 0-30.447-18.637 29.76 29.76 0 0 0-30.447 18.637l-60.416 158.651-60.416-158.651a30.515 30.515 0 0 0-38.843-17.272 28.945 28.945 0 0 0-17.954 37.547l88.815 233.267c4.369 11.469 15.7 19.115 28.398 19.115a30.31 30.31 0 0 0 28.468-19.115l62.395-163.908 62.396 163.84c4.437 11.605 15.701 19.183 28.4 19.183a30.31 30.31 0 0 0 28.466-19.115l88.747-233.267a28.945 28.945 0 0 0-17.886-37.547 30.447 30.447 0 0 0-38.912 17.272zm219.478 395.605-51.883-29.218c-28.672-16.18-52.224-3.072-52.224 29.082v.273H643.209a29.833 29.833 0 0 0-30.31 29.354c0 16.18 13.584 29.218 30.31 29.218h151.825c1.092 30.516 24.03 43.077 52.224 27.648l51.063-27.989c29.013-15.906 29.15-42.189.41-58.368"
2580
- }
2581
- ),
2582
- /* @__PURE__ */ n(
2583
- "path",
2584
- {
2585
- fill: "currentColor",
2586
- d: "m810.667 913.135-.478.068H201.796c-19.865 0-36.727-11.673-36.727-25.6v-618.36h154.965c51.268 0 92.911-39.39 92.911-87.858v-87.86H810.19c19.797 0 36.522 11.742 36.522 25.669V739.26h61.987V119.262c0-46.421-44.169-84.241-98.51-84.241H328.364l-225.28 194.56v658.09c0 46.285 44.236 84.105 98.713 84.105H810.19c43.759 0 80.554-24.713 93.32-58.573h-92.842zM350.89 94.89v86.562c0 16.11-13.858 29.286-30.925 29.286H216.815L350.959 94.891z"
2587
- }
2588
- )
2589
- ]
2590
- }
2591
- );
2592
- }
2593
- function vn() {
2594
- return /* @__PURE__ */ n("svg", { height: "1em", viewBox: "0 0 15 15", width: "1em", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ n(
2595
- "path",
2596
- {
2597
- d: "M2.5 10.5H2v.5h.5zm2 0v.5H5v-.5zm9-7h.5v-.207l-.146-.147zm-3-3l.354-.354L10.707 0H10.5zM2 6v4.5h1V6zm.5 5h2v-1h-2zm2.5-.5v-2H4v2zM3 7h2V6H3zM2 5V1.5H1V5zm11-1.5V5h1V3.5zM2.5 1h8V0h-8zm7.646-.146l3 3l.708-.708l-3-3zM2 1.5a.5.5 0 0 1 .5-.5V0A1.5 1.5 0 0 0 1 1.5zM1 12v1.5h1V12zm1.5 3h10v-1h-10zM14 13.5V12h-1v1.5zM12.5 15a1.5 1.5 0 0 0 1.5-1.5h-1a.5.5 0 0 1-.5.5zM1 13.5A1.5 1.5 0 0 0 2.5 15v-1a.5.5 0 0 1-.5-.5zM6 7h3V6H6zm0 4h3v-1H6zm1-4.5v4h1v-4zm3.5.5H13V6h-2.5zM10 6v5h1V6zm.5 3H12V8h-1.5z",
2598
- fill: "currentColor"
2599
- }
2600
- ) });
2601
- }
2602
- function wn() {
2603
- return /* @__PURE__ */ n("svg", { height: "1em", viewBox: "0 0 24 24", width: "1em", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ y(
2604
- "g",
2605
- {
2606
- fill: "none",
2607
- stroke: "currentColor",
2608
- strokeLinecap: "round",
2609
- strokeLinejoin: "round",
2610
- strokeWidth: "2",
2611
- children: [
2612
- /* @__PURE__ */ n("path", { d: "M14 3v4a1 1 0 0 0 1 1h4" }),
2613
- /* @__PURE__ */ n("path", { d: "M5 12V5a2 2 0 0 1 2-2h7l5 5v4M2 21v-6m3 0v6m-3-3h3m15-3v6h2m-9 0v-6l2 3l2-3v6m-9.5-6h3M9 15v6" })
2614
- ]
2615
- }
2616
- ) });
2617
- }
2618
- function yn() {
2619
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 20 20", children: /* @__PURE__ */ n(
2620
- "path",
2621
- {
2622
- fill: "currentColor",
2623
- d: "M6.5 3a.75.75 0 0 1 .697.471l3 7.5a.75.75 0 0 1-1.393.557L7.992 9.5H5.008l-.811 2.028a.75.75 0 0 1-1.393-.556l3-7.5A.75.75 0 0 1 6.5 3m0 2.77L5.608 8h1.784zm8.28-1.55a.75.75 0 1 0-1.06 1.06l.72.72h-3.69a.75.75 0 0 0 0 1.5h3.69l-.72.72a.75.75 0 0 0 1.06 1.06l2-2a.75.75 0 0 0 0-1.06zm0 7.5a.75.75 0 1 0-1.06 1.06l.72.72H3.75a.75.75 0 0 0 0 1.5h10.69l-.72.72a.75.75 0 1 0 1.06 1.06l2-2a.75.75 0 0 0 0-1.06z"
2624
- }
2625
- ) });
2626
- }
2627
- function Cn() {
2628
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 48 48", children: /* @__PURE__ */ y("g", { fill: "none", stroke: "currentColor", strokeWidth: "4", children: [
2629
- /* @__PURE__ */ n("circle", { cx: "10", cy: "24", r: "4" }),
2630
- /* @__PURE__ */ n("circle", { cx: "38", cy: "10", r: "4" }),
2631
- /* @__PURE__ */ n("circle", { cx: "38", cy: "24", r: "4" }),
2632
- /* @__PURE__ */ n("circle", { cx: "38", cy: "38", r: "4" }),
2633
- /* @__PURE__ */ n("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M34 38H22V10h12M14 24h20" })
2634
- ] }) });
2635
- }
2636
- function kn() {
2637
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 20 20", children: /* @__PURE__ */ n(
2638
- "path",
2639
- {
2640
- fill: "currentColor",
2641
- d: "M13.5 3a.75.75 0 0 0-.697.471l-3 7.5a.75.75 0 0 0 1.393.557l.812-2.028h2.984l.811 2.028a.75.75 0 0 0 1.393-.556l-3-7.5A.75.75 0 0 0 13.5 3m0 2.77L14.392 8h-1.784zM5.22 4.22a.75.75 0 0 1 1.06 1.06L5.56 6h3.69a.75.75 0 0 1 0 1.5H5.56l.72.72a.75.75 0 0 1-1.06 1.06l-2-2a.75.75 0 0 1 0-1.06zm0 7.5a.75.75 0 0 1 1.06 1.06l-.72.72h10.69a.75.75 0 0 1 0 1.5H5.56l.72.72a.75.75 0 1 1-1.06 1.06l-2-2a.75.75 0 0 1 0-1.06z"
2642
- }
2643
- ) });
2644
- }
2645
- function Mn() {
2646
- return /* @__PURE__ */ n("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", children: /* @__PURE__ */ n(
2647
- "path",
2648
- {
2649
- fill: "none",
2650
- stroke: "currentColor",
2651
- strokeLinecap: "round",
2652
- strokeLinejoin: "round",
2653
- strokeWidth: "1.5",
2654
- d: "m3 21l7.548-7.548M21 3l-7.548 7.548m0 0L8 3H3l7.548 10.452m2.904-2.904L21 21h-5l-5.452-7.548",
2655
- color: "currentColor"
2656
- }
2657
- ) });
2658
- }
2659
- function In() {
2660
- return /* @__PURE__ */ n(
2661
- "svg",
2662
- {
2663
- xmlns: "http://www.w3.org/2000/svg",
2664
- xmlnsXlink: "http://www.w3.org/1999/xlink",
2665
- "aria-hidden": "true",
2666
- role: "img",
2667
- width: "1em",
2668
- height: "1em",
2669
- viewBox: "0 0 24 24",
2670
- children: /* @__PURE__ */ n(
2671
- "path",
2672
- {
2673
- fill: "currentColor",
2674
- d: "M14 2H6a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h12c1.11 0 2-.89 2-2V8zm4 18H6V4h7v5h5zm-.65-10l-2.1 9h-1.4l-1.8-6.79l-1.8 6.79h-1.4l-2.2-9h1.5l1.4 6.81l1.8-6.81h1.3l1.8 6.81l1.4-6.81z"
2675
- }
2676
- )
2677
- }
2678
- );
2679
- }
2680
- const wt = {
2681
- Bold: ai,
2682
- LoaderCircle: oi,
2683
- Italic: ni,
2684
- Underline: ii,
2685
- Quote: ri,
2686
- TextQuote: rn,
2687
- Strikethrough: ti,
2688
- Minus: ei,
2689
- Eraser: Qr,
2690
- PaintRoller: Jr,
2691
- Redo2: Kr,
2692
- Undo2: Zr,
2693
- AlignCenter: vi,
2694
- AlignJustify: bi,
2695
- AlignLeft: xi,
2696
- AlignRight: pi,
2697
- ChevronDown: qr,
2698
- Subscript: Yr,
2699
- Superscript: Xr,
2700
- Code: Gr,
2701
- Code2: Wr,
2702
- Type: Fr,
2703
- IndentIncrease: $r,
2704
- IndentDecrease: Br,
2705
- List: Ur,
2706
- ListOrdered: _r,
2707
- ListTodo: Pr,
2708
- Link: jr,
2709
- ImageUp: Or,
2710
- Video: Dr,
2711
- Maximize: Hr,
2712
- Minimize: Vr,
2713
- Table: Rr,
2714
- Sparkles: Er,
2715
- Pencil: Ar,
2716
- Unlink: Lr,
2717
- BetweenHorizonalEnd: Nr,
2718
- BetweenHorizonalStart: Sr,
2719
- BetweenVerticalStart: Tr,
2720
- BetweenVerticalEnd: zr,
2721
- TableCellsMerge: Ir,
2722
- TableCellsSplit: Mr,
2723
- Trash2: kr,
2724
- Trash: Cr,
2725
- Replace: Ye,
2726
- ChevronsUpDown: yr,
2727
- LineHeight: sn,
2728
- Word: an,
2729
- HeadingParagraph: wr,
2730
- Heading1: vr,
2731
- Heading2: br,
2732
- Heading3: xr,
2733
- Heading4: pr,
2734
- Heading5: gr,
2735
- Heading6: mr,
2736
- Columns2: qe,
2737
- Columns3: fr,
2738
- Columns4: hr,
2739
- Plus: ur,
2740
- Grip: dr,
2741
- Copy: cr,
2742
- Clipboard: lr,
2743
- PanelLeft: sr,
2744
- PanelRight: ar,
2745
- Columns: qe,
2746
- Iframe: or,
2747
- MenuDown: ln,
2748
- SizeS: un,
2749
- SizeM: dn,
2750
- SizeL: cn,
2751
- AspectRatio: tn,
2752
- Emoji: nr,
2753
- DeleteColumn: nn,
2754
- DeleteRow: on,
2755
- SearchAndReplace: Ye,
2756
- EmojiIcon: ir,
2757
- KatexIcon: rr,
2758
- ExportPdf: xn,
2759
- ExportWord: bn,
2760
- ImportWord: In,
2761
- ColumnAddLeft: fn,
2762
- ColumnAddRight: mn,
2763
- BookMarked: tr,
2764
- Excalidraw: pn,
2765
- ZoomIn: er,
2766
- ZoomOut: Qt,
2767
- Settings: Jt,
2768
- Eye: Kt,
2769
- TextDirection: gn,
2770
- LeftToRight: yn,
2771
- RightToLeft: kn,
2772
- Attachment: Zt,
2773
- GifIcon: vn,
2774
- ChevronUp: qt,
2775
- Crop: Yt,
2776
- Mermaid: Cn,
2777
- Twitter: Mn,
2778
- CodeView: hn,
2779
- FlipX: Xt,
2780
- FlipY: Gt,
2781
- PencilRuler: Wt,
2782
- WrapText: Ft,
2783
- Loader: $t,
2784
- X: st,
2785
- Html: wn,
2786
- ExternalLink: Bt,
2787
- Callout: Ut
2788
- }, et = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, tt = lt, Ue = (e, t) => (r) => {
2789
- var i;
2790
- if ((t == null ? void 0 : t.variants) == null) return tt(e, r == null ? void 0 : r.class, r == null ? void 0 : r.className);
2791
- const { variants: o, defaultVariants: a } = t, l = Object.keys(o).map((d) => {
2792
- const g = r == null ? void 0 : r[d], p = a == null ? void 0 : a[d];
2793
- if (g === null) return null;
2794
- const u = et(g) || et(p);
2795
- return o[d][u];
2796
- }), s = r && Object.entries(r).reduce((d, g) => {
2797
- let [p, u] = g;
2798
- return u === void 0 || (d[p] = u), d;
2799
- }, {}), c = t == null || (i = t.compoundVariants) === null || i === void 0 ? void 0 : i.reduce((d, g) => {
2800
- let { class: p, className: u, ...k } = g;
2801
- return Object.entries(k).every((b) => {
2802
- let [z, f] = b;
2803
- return Array.isArray(f) ? f.includes({
2804
- ...a,
2805
- ...s
2806
- }[z]) : {
2807
- ...a,
2808
- ...s
2809
- }[z] === f;
2810
- }) ? [
2811
- ...d,
2812
- p,
2813
- u
2814
- ] : d;
2815
- }, []);
2816
- return tt(e, l, c, r == null ? void 0 : r.class, r == null ? void 0 : r.className);
2817
- }, zn = Ue(
2818
- "richtext-inline-flex richtext-items-center richtext-justify-center richtext-whitespace-nowrap richtext-rounded-md richtext-text-sm richtext-font-medium richtext-ring-offset-background richtext-transition-colors focus-visible:richtext-outline-none focus-visible:richtext-ring-2 focus-visible:richtext-ring-ring focus-visible:richtext-ring-offset-1 disabled:richtext-pointer-events-none disabled:richtext-opacity-50",
2819
- {
2820
- variants: {
2821
- variant: {
2822
- default: "!richtext-bg-primary !richtext-text-primary-foreground hover:!richtext-bg-primary/90",
2823
- destructive: "richtext-bg-destructive richtext-text-destructive-foreground hover:richtext-bg-destructive/90",
2824
- outline: "richtext-border richtext-border-input richtext-bg-background richtext-text-foreground hover:richtext-bg-accent hover:richtext-text-accent-foreground",
2825
- secondary: "richtext-bg-secondary richtext-text-secondary-foreground hover:richtext-bg-secondary/80",
2826
- ghost: "hover:richtext-bg-accent hover:richtext-text-accent-foreground",
2827
- link: "richtext-text-primary richtext-underline-offset-4 hover:richtext-underline"
2828
- },
2829
- size: {
2830
- default: "richtext-h-10 richtext-px-4 richtext-py-2",
2831
- sm: "richtext-h-9 richtext-rounded-md richtext-px-3",
2832
- lg: "richtext-h-11 richtext-rounded-md richtext-px-8",
2833
- icon: "richtext-size-10"
2834
- }
2835
- },
2836
- defaultVariants: {
2837
- variant: "default",
2838
- size: "default"
2839
- }
2840
- }
2841
- ), $ = U.forwardRef(
2842
- ({ className: e, variant: t, size: r, asChild: i = !1, ...o }, a) => /* @__PURE__ */ n(i ? ut : "button", { className: _(zn({ variant: t, size: r, className: e })), ref: a, ...o })
2843
- );
2844
- $.displayName = "Button";
2845
- const te = U.forwardRef(
2846
- ({ className: e, type: t, ...r }, i) => /* @__PURE__ */ n(
2847
- "input",
2848
- {
2849
- ref: i,
2850
- type: t,
2851
- className: _(
2852
- "richtext-flex richtext-h-10 richtext-w-full richtext-rounded-md !richtext-border richtext-border-input richtext-bg-transparent richtext-px-3 richtext-py-2 richtext-text-sm richtext-text-foreground richtext-ring-offset-background file:richtext-border-0 file:richtext-bg-transparent file:richtext-text-sm file:richtext-font-medium placeholder:richtext-text-muted-foreground focus-visible:richtext-outline-none focus-visible:richtext-ring-1 focus-visible:richtext-ring-ring focus-visible:richtext-ring-offset-1 disabled:richtext-cursor-not-allowed disabled:richtext-opacity-50",
2853
- e
2854
- ),
2855
- ...r
2856
- }
2857
- )
2858
- );
2859
- te.displayName = "Input";
2860
- const Tn = Ue(
2861
- "richtext-text-sm richtext-font-medium richtext-leading-none richtext-text-foreground peer-disabled:richtext-cursor-not-allowed peer-disabled:richtext-opacity-70"
2862
- ), pe = U.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ n(ft.Root, { className: _(Tn(), e), ref: r, ...t }));
2863
- pe.displayName = ft.Root.displayName;
2864
- const Ne = re.Root, ve = U.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ n(
2865
- re.List,
2866
- {
2867
- ref: r,
2868
- className: _(
2869
- "richtext-inline-flex richtext-h-10 richtext-items-center richtext-justify-center richtext-rounded-md richtext-bg-muted richtext-p-1 richtext-text-muted-foreground",
2870
- e
2871
- ),
2872
- ...t
2873
- }
2874
- ));
2875
- ve.displayName = re.List.displayName;
2876
- const q = U.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ n(
2877
- re.Trigger,
2878
- {
2879
- ref: r,
2880
- className: _(
2881
- "richtext-inline-flex richtext-items-center richtext-justify-center richtext-whitespace-nowrap richtext-rounded-sm richtext-px-3 richtext-py-1.5 richtext-text-sm richtext-font-medium richtext-ring-offset-background richtext-transition-all focus-visible:richtext-outline-none focus-visible:richtext-ring-2 focus-visible:richtext-ring-ring focus-visible:richtext-ring-offset-1 disabled:richtext-pointer-events-none disabled:richtext-opacity-50 data-[state=active]:richtext-bg-background data-[state=active]:richtext-text-foreground data-[state=active]:richtext-shadow-sm",
2882
- e
2883
- ),
2884
- ...t
2885
- }
2886
- ));
2887
- q.displayName = re.Trigger.displayName;
2888
- const Z = U.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ n(
2889
- re.Content,
2890
- {
2891
- ref: r,
2892
- className: _(
2893
- "richtext-mt-2 richtext-ring-offset-background focus-visible:richtext-outline-none focus-visible:richtext-ring-2 focus-visible:richtext-ring-ring focus-visible:richtext-ring-offset-1",
2894
- e
2895
- ),
2896
- ...t
2897
- }
2898
- ));
2899
- Z.displayName = re.Content.displayName;
2900
- const Sn = Ue(
2901
- "richtext-inline-flex richtext-items-center richtext-justify-center richtext-rounded-md richtext-text-sm richtext-font-medium richtext-ring-offset-background richtext-transition-colors hover:richtext-bg-muted hover:richtext-text-muted-foreground focus-visible:richtext-outline-none focus-visible:richtext-ring-2 focus-visible:richtext-ring-ring focus-visible:richtext-ring-offset-1 disabled:richtext-pointer-events-none disabled:richtext-opacity-50 data-[state=on]:richtext-bg-accent data-[state=on]:richtext-text-accent-foreground",
2902
- {
2903
- variants: {
2904
- variant: {
2905
- default: "richtext-bg-transparent",
2906
- outline: "richtext-border richtext-border-input richtext-bg-transparent hover:richtext-bg-accent hover:richtext-text-accent-foreground"
2907
- },
2908
- size: {
2909
- default: "richtext-h-10 richtext-px-3",
2910
- sm: "richtext-h-9 richtext-px-2",
2911
- lg: "richtext-h-11 richtext-px-5"
2912
- }
2913
- },
2914
- defaultVariants: {
2915
- variant: "default",
2916
- size: "default"
2917
- }
2918
- }
2919
- ), yt = U.forwardRef(({ className: e, variant: t, size: r, ...i }, o) => /* @__PURE__ */ n(
2920
- ht.Root,
2921
- {
2922
- ref: o,
2923
- className: _(Sn({ variant: t, size: r, className: e })),
2924
- ...i
2925
- }
2926
- ));
2927
- yt.displayName = ht.Root.displayName;
2928
- const $o = be.Provider, Nn = be.Root, Ln = be.Trigger, Ct = U.forwardRef(({ className: e, sideOffset: t = 4, ...r }, i) => /* @__PURE__ */ n(
2929
- be.Content,
2930
- {
2931
- "data-richtext-portal": !0,
2932
- ref: i,
2933
- sideOffset: t,
2934
- className: _(
2935
- "richtext-z-50 richtext-overflow-hidden richtext-rounded-md !richtext-border-none richtext-bg-primary richtext-px-3 richtext-py-1.5 richtext-text-sm richtext-text-primary-foreground richtext-shadow-md richtext-animate-in richtext-fade-in-0 richtext-zoom-in-95 data-[side=bottom]:richtext-slide-in-from-top-2 data-[side=left]:richtext-slide-in-from-right-2 data-[side=right]:richtext-slide-in-from-left-2 data-[side=top]:richtext-slide-in-from-bottom-2",
2936
- e
2937
- ),
2938
- ...r
2939
- }
2940
- ));
2941
- Ct.displayName = be.Content.displayName;
2942
- const An = 1, En = 1e6;
2943
- let Ve = 0;
2944
- function Rn() {
2945
- return Ve = (Ve + 1) % Number.MAX_SAFE_INTEGER, Ve.toString();
2946
- }
2947
- const He = /* @__PURE__ */ new Map();
2948
- function rt(e) {
2949
- if (He.has(e))
2950
- return;
2951
- const t = setTimeout(() => {
2952
- He.delete(e), me({
2953
- type: "REMOVE_TOAST",
2954
- toastId: e
2955
- });
2956
- }, En);
2957
- He.set(e, t);
2958
- }
2959
- function Vn(e, t) {
2960
- switch (t.type) {
2961
- case "ADD_TOAST":
2962
- return {
2963
- ...e,
2964
- toasts: [t.toast, ...e.toasts].slice(0, An)
2965
- };
2966
- case "UPDATE_TOAST":
2967
- return {
2968
- ...e,
2969
- toasts: e.toasts.map((r) => r.id === t.toast.id ? { ...r, ...t.toast } : r)
2970
- };
2971
- case "DISMISS_TOAST": {
2972
- const { toastId: r } = t;
2973
- return r ? rt(r) : e.toasts.forEach((i) => {
2974
- rt(i.id);
2975
- }), {
2976
- ...e,
2977
- toasts: e.toasts.map(
2978
- (i) => i.id === r || r === void 0 ? {
2979
- ...i,
2980
- open: !1
2981
- } : i
2982
- )
2983
- };
2984
- }
2985
- case "REMOVE_TOAST":
2986
- return t.toastId === void 0 ? {
2987
- ...e,
2988
- toasts: []
2989
- } : {
2990
- ...e,
2991
- toasts: e.toasts.filter((r) => r.id !== t.toastId)
2992
- };
2993
- }
2994
- }
2995
- const ke = [];
2996
- let Me = { toasts: [] };
2997
- function me(e) {
2998
- Me = Vn(Me, e), ke.forEach((t) => {
2999
- t(Me);
3000
- });
3001
- }
3002
- function Hn({ ...e }) {
3003
- const t = Rn(), r = (o) => me({
3004
- type: "UPDATE_TOAST",
3005
- toast: { ...o, id: t }
3006
- }), i = () => me({ type: "DISMISS_TOAST", toastId: t });
3007
- return me({
3008
- type: "ADD_TOAST",
3009
- toast: {
3010
- ...e,
3011
- id: t,
3012
- open: !0,
3013
- onOpenChange: (o) => {
3014
- o || i();
3015
- }
3016
- }
3017
- }), {
3018
- id: t,
3019
- dismiss: i,
3020
- update: r
3021
- };
3022
- }
3023
- function Be() {
3024
- const [e, t] = U.useState(Me);
3025
- return U.useEffect(() => (ke.push(t), () => {
3026
- const r = ke.indexOf(t);
3027
- r > -1 && ke.splice(r, 1);
3028
- }), [e]), {
3029
- ...e,
3030
- toast: Hn,
3031
- dismiss: (r) => me({ type: "DISMISS_TOAST", toastId: r })
3032
- };
3033
- }
3034
- const $e = U.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ n(
3035
- Oe.Root,
3036
- {
3037
- ref: r,
3038
- className: _(
3039
- "!richtext-peer !richtext-h-4 !richtext-w-4 !richtext-shrink-0 !richtext-rounded-sm !richtext-border !richtext-border-primary !richtext-p-0 !richtext-ring-offset-background focus-visible:!richtext-outline-none focus-visible:!richtext-ring-2 focus-visible:!richtext-ring-ring focus-visible:!richtext-ring-offset-1 disabled:!richtext-cursor-not-allowed disabled:!richtext-opacity-50 data-[state=checked]:!richtext-bg-primary data-[state=checked]:!richtext-text-primary-foreground",
3040
- e
3041
- ),
3042
- ...t,
3043
- children: /* @__PURE__ */ n(
3044
- Oe.Indicator,
3045
- {
3046
- className: _(
3047
- "!richtext-flex !richtext-items-center !richtext-justify-center !richtext-p-0 !richtext-text-current"
3048
- ),
3049
- children: /* @__PURE__ */ n(si, { className: "!richtext-h-4 !richtext-w-4" })
3050
- }
3051
- )
3052
- }
3053
- ));
3054
- $e.displayName = Oe.Root.displayName;
3055
- function Dn(e) {
3056
- return e = e || /* @__PURE__ */ new Map(), {
3057
- /**
3058
- * A Map of event names to registered handler functions.
3059
- */
3060
- all: e,
3061
- /**
3062
- * Register an event handler for the given type.
3063
- * @param {string|symbol} type Type of event to listen for, or `'*'` for all events
3064
- * @param {Function} handler Function to call in response to given event
3065
- * @memberOf mitt
3066
- */
3067
- on(t, r) {
3068
- const i = e.get(t);
3069
- i ? i.push(r) : e.set(t, [r]);
3070
- },
3071
- /**
3072
- * Remove an event handler for the given type.
3073
- * If `handler` is omitted, all handlers of the given type are removed.
3074
- * @param {string|symbol} type Type of event to unregister `handler` from (`'*'` to remove a wildcard handler)
3075
- * @param {Function} [handler] Handler function to remove
3076
- * @memberOf mitt
3077
- */
3078
- off(t, r) {
3079
- const i = e.get(t);
3080
- i && (r ? i.splice(i.indexOf(r) >>> 0, 1) : e.set(t, []));
3081
- },
3082
- /**
3083
- * Invoke all handlers for the given type.
3084
- * If present, `'*'` handlers are invoked after type-matched handlers.
3085
- *
3086
- * Note: Manually firing '*' handlers is not supported.
3087
- *
3088
- * @param {string|symbol} type The event type to invoke
3089
- * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler
3090
- * @memberOf mitt
3091
- */
3092
- emit(t, r) {
3093
- let i = e.get(t);
3094
- i && i.slice().map((o) => {
3095
- o(r);
3096
- }), i = e.get("*"), i && i.slice().map((o) => {
3097
- o(t, r);
3098
- });
3099
- }
3100
- };
3101
- }
3102
- const Fe = Dn(), kt = Q.createContext(Fe), On = () => Q.useContext(kt);
3103
- function Mt(e, t) {
3104
- const r = On();
3105
- Q.useEffect(() => (t.map((i) => r.on(i, e)), () => {
3106
- t.map((i) => r.off(i, e));
3107
- }), [r, t, e]);
3108
- }
3109
- const Fo = Fe.emit;
3110
- function Wo({ children: e }) {
3111
- return /* @__PURE__ */ n(kt.Provider, { value: Fe, children: e });
3112
- }
3113
- const we = F.Root, We = F.Trigger, jn = F.Portal, It = U.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ n(
3114
- F.Overlay,
3115
- {
3116
- ref: r,
3117
- className: _(
3118
- "richtext-fixed richtext-inset-0 richtext-z-50 richtext-bg-black/80 data-[state=open]:richtext-animate-in data-[state=closed]:richtext-animate-out data-[state=closed]:richtext-fade-out-0 data-[state=open]:richtext-fade-in-0",
3119
- e
3120
- ),
3121
- ...t
3122
- }
3123
- ));
3124
- It.displayName = F.Overlay.displayName;
3125
- const ae = U.forwardRef(({ className: e, children: t, ...r }, i) => /* @__PURE__ */ y(jn, { "data-richtext-portal": !0, children: [
3126
- /* @__PURE__ */ n(It, {}),
3127
- /* @__PURE__ */ y(
3128
- F.Content,
3129
- {
3130
- "data-richtext-portal": !0,
3131
- ref: i,
3132
- className: _(
3133
- "richtext-fixed richtext-left-[50%] richtext-top-[50%] richtext-z-50 richtext-grid richtext-w-full richtext-max-w-lg richtext-translate-x-[-50%] richtext-translate-y-[-50%] richtext-gap-4 richtext-border !richtext-border-border richtext-bg-background richtext-p-6 richtext-shadow-lg richtext-duration-200 data-[state=open]:richtext-animate-in data-[state=closed]:richtext-animate-out data-[state=closed]:richtext-fade-out-0 data-[state=open]:richtext-fade-in-0 data-[state=closed]:richtext-zoom-out-95 data-[state=open]:richtext-zoom-in-95 data-[state=closed]:richtext-slide-out-to-left-1/2 data-[state=closed]:richtext-slide-out-to-top-[48%] data-[state=open]:richtext-slide-in-from-left-1/2 data-[state=open]:richtext-slide-in-from-top-[48%] sm:richtext-rounded-lg",
3134
- e
3135
- ),
3136
- ...r,
3137
- children: [
3138
- t,
3139
- /* @__PURE__ */ y(F.Close, { className: "richtext-absolute richtext-right-4 richtext-top-4 richtext-rounded-sm richtext-opacity-70 richtext-ring-offset-background richtext-transition-opacity hover:richtext-opacity-100 focus:richtext-outline-none focus:richtext-ring-2 focus:richtext-ring-ring focus:richtext-ring-offset-1 disabled:richtext-pointer-events-none data-[state=open]:richtext-bg-accent data-[state=open]:richtext-text-muted-foreground", children: [
3140
- /* @__PURE__ */ n(st, { className: "richtext-size-4 richtext-text-accent-foreground" }),
3141
- /* @__PURE__ */ n("span", { className: "richtext-sr-only richtext-text-accent-foreground", children: "Close" })
3142
- ] })
3143
- ]
3144
- }
3145
- )
3146
- ] }));
3147
- ae.displayName = F.Content.displayName;
3148
- function Pn({ className: e, ...t }) {
3149
- return /* @__PURE__ */ n(
3150
- "div",
3151
- {
3152
- className: _(
3153
- "richtext-flex richtext-flex-col richtext-space-y-1.5 richtext-text-center sm:richtext-text-left",
3154
- e
3155
- ),
3156
- ...t
3157
- }
3158
- );
3159
- }
3160
- Pn.displayName = "DialogHeader";
3161
- function zt({ className: e, ...t }) {
3162
- return /* @__PURE__ */ n(
3163
- "div",
3164
- {
3165
- className: _(
3166
- "richtext-flex richtext-flex-col-reverse sm:richtext-flex-row sm:richtext-justify-end sm:richtext-space-x-2",
3167
- e
3168
- ),
3169
- ...t
3170
- }
3171
- );
3172
- }
3173
- zt.displayName = "DialogFooter";
3174
- const se = U.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ n(
3175
- F.Title,
3176
- {
3177
- ref: r,
3178
- className: _(
3179
- "richtext-text-lg richtext-font-semibold richtext-leading-none richtext-tracking-tight richtext-text-foreground",
3180
- e
3181
- ),
3182
- ...t
3183
- }
3184
- ));
3185
- se.displayName = F.Title.displayName;
3186
- const _n = U.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ n(
3187
- F.Description,
3188
- {
3189
- className: _("richtext-text-sm richtext-text-muted-foreground", e),
3190
- ref: r,
3191
- ...t
3192
- }
3193
- ));
3194
- _n.displayName = F.Description.displayName;
3195
- var Un = /(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/, Bn = ct.create({
3196
- name: "image",
3197
- addOptions() {
3198
- return {
3199
- inline: !1,
3200
- allowBase64: !1,
3201
- HTMLAttributes: {},
3202
- resize: !1
3203
- };
3204
- },
3205
- inline() {
3206
- return this.options.inline;
3207
- },
3208
- group() {
3209
- return this.options.inline ? "inline" : "block";
3210
- },
3211
- draggable: !0,
3212
- addAttributes() {
3213
- return {
3214
- src: {
3215
- default: null
3216
- },
3217
- alt: {
3218
- default: null
3219
- },
3220
- title: {
3221
- default: null
3222
- },
3223
- width: {
3224
- default: null
3225
- },
3226
- height: {
3227
- default: null
3228
- }
3229
- };
3230
- },
3231
- parseHTML() {
3232
- return [
3233
- {
3234
- tag: this.options.allowBase64 ? "img[src]" : 'img[src]:not([src^="data:"])'
3235
- }
3236
- ];
3237
- },
3238
- renderHTML({ HTMLAttributes: e }) {
3239
- return ["img", dt(this.options.HTMLAttributes, e)];
3240
- },
3241
- parseMarkdown: (e, t) => t.createNode("image", {
3242
- src: e.href,
3243
- title: e.title,
3244
- alt: e.text
3245
- }),
3246
- renderMarkdown: (e) => {
3247
- var t, r, i, o, a, l;
3248
- const s = (r = (t = e.attrs) == null ? void 0 : t.src) != null ? r : "", c = (o = (i = e.attrs) == null ? void 0 : i.alt) != null ? o : "", d = (l = (a = e.attrs) == null ? void 0 : a.title) != null ? l : "";
3249
- return d ? `![${c}](${s} "${d}")` : `![${c}](${s})`;
3250
- },
3251
- addNodeView() {
3252
- if (!this.options.resize || !this.options.resize.enabled || typeof document > "u")
3253
- return null;
3254
- const { directions: e, minWidth: t, minHeight: r, alwaysPreserveAspectRatio: i } = this.options.resize;
3255
- return ({ node: o, getPos: a, HTMLAttributes: l, editor: s }) => {
3256
- const c = document.createElement("img");
3257
- Object.entries(l).forEach(([p, u]) => {
3258
- if (u != null)
3259
- switch (p) {
3260
- case "width":
3261
- case "height":
3262
- break;
3263
- default:
3264
- c.setAttribute(p, u);
3265
- break;
3266
- }
3267
- }), c.src = l.src;
3268
- const d = new ci({
3269
- element: c,
3270
- editor: s,
3271
- node: o,
3272
- getPos: a,
3273
- onResize: (p, u) => {
3274
- c.style.width = `${p}px`, c.style.height = `${u}px`;
3275
- },
3276
- onCommit: (p, u) => {
3277
- const k = a();
3278
- k !== void 0 && this.editor.chain().setNodeSelection(k).updateAttributes(this.name, {
3279
- width: p,
3280
- height: u
3281
- }).run();
3282
- },
3283
- onUpdate: (p, u, k) => p.type === o.type,
3284
- options: {
3285
- directions: e,
3286
- min: {
3287
- width: t,
3288
- height: r
3289
- },
3290
- preserveAspectRatio: i === !0
3291
- }
3292
- }), g = d.dom;
3293
- return g.style.visibility = "hidden", g.style.pointerEvents = "none", c.onload = () => {
3294
- g.style.visibility = "", g.style.pointerEvents = "";
3295
- }, d;
3296
- };
3297
- },
3298
- addCommands() {
3299
- return {
3300
- setImage: (e) => ({ commands: t }) => t.insertContent({
3301
- type: this.name,
3302
- attrs: e
3303
- })
3304
- };
3305
- },
3306
- addInputRules() {
3307
- return [
3308
- li({
3309
- find: Un,
3310
- type: this.type,
3311
- getAttributes: (e) => {
3312
- const [, , t, r, i] = e;
3313
- return { src: r, alt: t, title: i };
3314
- }
3315
- })
3316
- ];
3317
- }
3318
- }), $n = Bn, Fn = typeof global == "object" && global && global.Object === Object && global, Wn = typeof self == "object" && self && self.Object === Object && self, Tt = Fn || Wn || Function("return this")(), ze = Tt.Symbol, St = Object.prototype, Gn = St.hasOwnProperty, Xn = St.toString, he = ze ? ze.toStringTag : void 0;
3319
- function Yn(e) {
3320
- var t = Gn.call(e, he), r = e[he];
3321
- try {
3322
- e[he] = void 0;
3323
- var i = !0;
3324
- } catch {
3325
- }
3326
- var o = Xn.call(e);
3327
- return i && (t ? e[he] = r : delete e[he]), o;
3328
- }
3329
- var qn = Object.prototype, Zn = qn.toString;
3330
- function Kn(e) {
3331
- return Zn.call(e);
3332
- }
3333
- var Jn = "[object Null]", Qn = "[object Undefined]", it = ze ? ze.toStringTag : void 0;
3334
- function Nt(e) {
3335
- return e == null ? e === void 0 ? Qn : Jn : it && it in Object(e) ? Yn(e) : Kn(e);
3336
- }
3337
- function Lt(e) {
3338
- return e != null && typeof e == "object";
3339
- }
3340
- var eo = "[object Symbol]";
3341
- function to(e) {
3342
- return typeof e == "symbol" || Lt(e) && Nt(e) == eo;
3343
- }
3344
- var ro = /\s/;
3345
- function io(e) {
3346
- for (var t = e.length; t-- && ro.test(e.charAt(t)); )
3347
- ;
3348
- return t;
3349
- }
3350
- var no = /^\s+/;
3351
- function oo(e) {
3352
- return e && e.slice(0, io(e) + 1).replace(no, "");
3353
- }
3354
- function Te(e) {
3355
- var t = typeof e;
3356
- return e != null && (t == "object" || t == "function");
3357
- }
3358
- var nt = NaN, ao = /^[-+]0x[0-9a-f]+$/i, so = /^0b[01]+$/i, lo = /^0o[0-7]+$/i, co = parseInt;
3359
- function ge(e) {
3360
- if (typeof e == "number")
3361
- return e;
3362
- if (to(e))
3363
- return nt;
3364
- if (Te(e)) {
3365
- var t = typeof e.valueOf == "function" ? e.valueOf() : e;
3366
- e = Te(t) ? t + "" : t;
3367
- }
3368
- if (typeof e != "string")
3369
- return e === 0 ? e : +e;
3370
- e = oo(e);
3371
- var r = so.test(e);
3372
- return r || lo.test(e) ? co(e.slice(2), r ? 2 : 8) : ao.test(e) ? nt : +e;
3373
- }
3374
- function uo(e, t, r) {
3375
- return e === e && (r !== void 0 && (e = e <= r ? e : r), t !== void 0 && (e = e >= t ? e : t)), e;
3376
- }
3377
- function ho(e, t, r) {
3378
- return r === void 0 && (r = t, t = void 0), r !== void 0 && (r = ge(r), r = r === r ? r : 0), t !== void 0 && (t = ge(t), t = t === t ? t : 0), uo(ge(e), t, r);
3379
- }
3380
- var De = function() {
3381
- return Tt.Date.now();
3382
- }, fo = "Expected a function", mo = Math.max, go = Math.min;
3383
- function po(e, t, r) {
3384
- var i, o, a, l, s, c, d = 0, g = !1, p = !1, u = !0;
3385
- if (typeof e != "function")
3386
- throw new TypeError(fo);
3387
- t = ge(t) || 0, Te(r) && (g = !!r.leading, p = "maxWait" in r, a = p ? mo(ge(r.maxWait) || 0, t) : a, u = "trailing" in r ? !!r.trailing : u);
3388
- function k(v) {
3389
- var R = i, N = o;
3390
- return i = o = void 0, d = v, l = e.apply(N, R), l;
3391
- }
3392
- function b(v) {
3393
- return d = v, s = setTimeout(x, t), g ? k(v) : l;
3394
- }
3395
- function z(v) {
3396
- var R = v - c, N = v - d, j = t - R;
3397
- return p ? go(j, a - N) : j;
3398
- }
3399
- function f(v) {
3400
- var R = v - c, N = v - d;
3401
- return c === void 0 || R >= t || R < 0 || p && N >= a;
3402
- }
3403
- function x() {
3404
- var v = De();
3405
- if (f(v))
3406
- return h(v);
3407
- s = setTimeout(x, z(v));
3408
- }
3409
- function h(v) {
3410
- return s = void 0, u && i ? k(v) : (i = o = void 0, l);
3411
- }
3412
- function S() {
3413
- s !== void 0 && clearTimeout(s), d = 0, i = c = o = s = void 0;
3414
- }
3415
- function m() {
3416
- return s === void 0 ? l : h(De());
3417
- }
3418
- function H() {
3419
- var v = De(), R = f(v);
3420
- if (i = arguments, o = this, c = v, R) {
3421
- if (s === void 0)
3422
- return b(c);
3423
- if (p)
3424
- return clearTimeout(s), s = setTimeout(x, t), k(c);
3425
- }
3426
- return s === void 0 && (s = setTimeout(x, t)), l;
3427
- }
3428
- return H.cancel = S, H.flush = m, H;
3429
- }
3430
- var xo = "[object Number]";
3431
- function ot(e) {
3432
- return typeof e == "number" || Lt(e) && Nt(e) == xo;
3433
- }
3434
- var bo = "Expected a function";
3435
- function at(e, t, r) {
3436
- var i = !0, o = !0;
3437
- if (typeof e != "function")
3438
- throw new TypeError(bo);
3439
- return Te(r) && (i = "leading" in r ? !!r.leading : i, o = "trailing" in r ? !!r.trailing : o), po(e, t, {
3440
- leading: i,
3441
- maxWait: t,
3442
- trailing: o
3443
- });
3444
- }
3445
- const Ce = {
3446
- TOP_LEFT: "tl",
3447
- TOP_RIGHT: "tr",
3448
- BOTTOM_LEFT: "bl",
3449
- BOTTOM_RIGHT: "br"
3450
- };
3451
- function vo(e) {
3452
- var N, j, D;
3453
- const [t, r] = E({
3454
- width: Ze,
3455
- height: Ze
3456
- }), [i, o] = E({
3457
- width: 0,
3458
- height: 0
3459
- }), [a] = E([
3460
- Ce.TOP_LEFT,
3461
- Ce.TOP_RIGHT,
3462
- Ce.BOTTOM_LEFT,
3463
- Ce.BOTTOM_RIGHT
3464
- ]), [l, s] = E(!1), [c, d] = E({
3465
- x: 0,
3466
- y: 0,
3467
- w: 0,
3468
- h: 0,
3469
- dir: ""
3470
- }), { align: g, inline: p } = (N = e == null ? void 0 : e.node) == null ? void 0 : N.attrs, u = p && (g === "left" || g === "right"), k = B(() => {
3471
- var Xe;
3472
- const { src: I, alt: w, width: C, height: M, flipX: A, flipY: L } = (Xe = e == null ? void 0 : e.node) == null ? void 0 : Xe.attrs, P = ot(C) ? `${C}px` : C, O = ot(M) ? `${M}px` : M, G = [];
3473
- A && G.push("rotateX(180deg)"), L && G.push("rotateY(180deg)");
3474
- const ye = G.join(" ");
3475
- return {
3476
- src: I || void 0,
3477
- alt: w || void 0,
3478
- style: {
3479
- width: P || void 0,
3480
- height: O || void 0,
3481
- transform: ye || "none",
3482
- ...u ? { float: g } : {}
3483
- }
3484
- };
3485
- }, [(j = e == null ? void 0 : e.node) == null ? void 0 : j.attrs]), b = B(() => {
3486
- const {
3487
- style: { width: I }
3488
- } = k;
3489
- return { width: I === "100%" ? I : void 0 };
3490
- }, [k]);
3491
- function z(I) {
3492
- o({
3493
- width: I.target.width,
3494
- height: I.target.height
3495
- });
3496
- }
3497
- function f() {
3498
- const { editor: I, getPos: w } = e;
3499
- I.commands.setNodeSelection(w());
3500
- }
3501
- const x = ce(
3502
- at(() => {
3503
- const { editor: I } = e, { width: w } = getComputedStyle(I.view.dom);
3504
- r((C) => ({
3505
- ...C,
3506
- width: Number.parseInt(w, 10)
3507
- }));
3508
- }, Ke),
3509
- [e == null ? void 0 : e.editor]
3510
- );
3511
- function h(I, w) {
3512
- I.preventDefault(), I.stopPropagation();
3513
- const C = i.width, M = i.height, A = C / M;
3514
- let L = Number(e.node.attrs.width), P = Number(e.node.attrs.height);
3515
- const O = t.width;
3516
- L && !P ? (L = L > O ? O : L, P = Math.round(L / A)) : P && !L ? (L = Math.round(P * A), L = L > O ? O : L) : !L && !P ? (L = C > O ? O : C, P = Math.round(L / A)) : L = L > O ? O : L, s(!0), d({
3517
- x: I.clientX,
3518
- y: I.clientY,
3519
- w: L,
3520
- h: P,
3521
- dir: w
3522
- });
3523
- }
3524
- const S = ce(
3525
- at((I) => {
3526
- if (I.preventDefault(), I.stopPropagation(), !l)
3527
- return;
3528
- const { x: w, w: C, dir: M } = c, A = (I.clientX - w) * (/l/.test(M) ? -1 : 1), L = ho(C + A, mi, t.width);
3529
- e.updateAttributes({
3530
- width: L,
3531
- height: null
3532
- });
3533
- }, Ke),
3534
- [l, c, t, e.updateAttributes]
3535
- ), m = ce(
3536
- (I) => {
3537
- I.preventDefault(), I.stopPropagation(), l && (d({
3538
- x: 0,
3539
- y: 0,
3540
- w: 0,
3541
- h: 0,
3542
- dir: ""
3543
- }), s(!1), f());
3544
- },
3545
- [l, f]
3546
- ), H = ce(() => {
3547
- document == null || document.addEventListener("mousemove", S, !0), document == null || document.addEventListener("mouseup", m, !0);
3548
- }, [S, m]), v = ce(() => {
3549
- document == null || document.removeEventListener("mousemove", S, !0), document == null || document.removeEventListener("mouseup", m, !0);
3550
- }, [S, m]);
3551
- Ie(() => (l ? H() : v(), () => {
3552
- v();
3553
- }), [l, H, v]);
3554
- const R = B(() => new ResizeObserver(() => x()), [x]);
3555
- return Ie(() => (R.observe(e.editor.view.dom), () => {
3556
- R.disconnect();
3557
- }), [e.editor.view.dom, R]), /* @__PURE__ */ n(
3558
- di,
3559
- {
3560
- as: p ? "span" : "div",
3561
- className: "image-view",
3562
- style: {
3563
- float: u ? g : void 0,
3564
- margin: u ? g === "left" ? "1em 1em 1em 0" : "1em 0 1em 1em" : void 0,
3565
- display: p ? "inline" : "block",
3566
- textAlign: u ? void 0 : g,
3567
- width: ((D = k.style) == null ? void 0 : D.width) ?? "auto",
3568
- ...u ? {} : b
3569
- },
3570
- children: /* @__PURE__ */ y(
3571
- "div",
3572
- {
3573
- "data-drag-handle": !0,
3574
- draggable: "true",
3575
- style: b,
3576
- className: `image-view__body ${e != null && e.selected ? "image-view__body--focused" : ""} ${l ? "image-view__body--resizing" : ""}`,
3577
- children: [
3578
- /* @__PURE__ */ n(
3579
- "img",
3580
- {
3581
- alt: k.alt,
3582
- className: "image-view__body__image block",
3583
- height: "auto",
3584
- onClick: f,
3585
- onLoad: z,
3586
- src: k.src,
3587
- style: k.style
3588
- }
3589
- ),
3590
- (e == null ? void 0 : e.editor.view.editable) && ((e == null ? void 0 : e.selected) || l) && /* @__PURE__ */ n("div", { className: "image-resizer", children: a == null ? void 0 : a.map((I) => /* @__PURE__ */ n(
3591
- "span",
3592
- {
3593
- className: `image-resizer__handler image-resizer__handler--${I}`,
3594
- onMouseDown: (w) => h(w, I)
3595
- },
3596
- `image-dir-${I}`
3597
- )) })
3598
- ]
3599
- }
3600
- )
3601
- }
3602
- );
3603
- }
3604
- function wo(e) {
3605
- const { editor: t } = ui(), r = U.useMemo(
3606
- () => t,
3607
- [e, t]
3608
- );
3609
- return hi({
3610
- editor: r,
3611
- selector(o) {
3612
- return o.editor ? {
3613
- editor: o.editor,
3614
- editorState: o.editor.state,
3615
- canCommand: o.editor.can
3616
- } : {
3617
- editor: null,
3618
- editorState: void 0,
3619
- canCommand: void 0
3620
- };
3621
- }
3622
- }) || { editor: null };
3623
- }
3624
- function ee() {
3625
- return wo().editor;
3626
- }
3627
- const At = jt(!1);
3628
- function Et() {
3629
- return Pt(At);
3630
- }
3631
- function Go() {
3632
- return _t(At);
3633
- }
3634
- const Rt = () => !1;
3635
- function Xo(e = Rt) {
3636
- const t = Et(), [r, i] = E(() => {
3637
- const s = e();
3638
- return typeof s == "boolean" ? !s : s;
3639
- }), o = ee();
3640
- Ie(() => {
3641
- if (!o || !e) return;
3642
- const s = () => {
3643
- const c = e();
3644
- i(typeof c == "boolean" ? !c : c);
3645
- };
3646
- return s(), o.on("selectionUpdate", s), o.on("transaction", s), () => {
3647
- o.off("selectionUpdate", s), o.off("transaction", s);
3648
- };
3649
- }, [o, e]);
3650
- const a = B(() => !t || !o ? !0 : typeof r == "boolean" ? r : !1, [t, o, r]), l = B(() => !t || !o, [t, o]);
3651
- return {
3652
- disabled: a,
3653
- // can not action, opacity < 1
3654
- dataState: r,
3655
- // true => show background, false => no background
3656
- editorDisabled: l
3657
- };
3658
- }
3659
- function Le(e = Rt) {
3660
- const t = Et(), [r, i] = E({}), [o, a] = E(e()), l = ee();
3661
- Ie(() => {
3662
- if (!l || !e) return;
3663
- const d = () => {
3664
- a(e());
3665
- };
3666
- return d(), l.on("selectionUpdate", d), () => {
3667
- l.off("selectionUpdate", d);
3668
- };
3669
- }, [r, l, e]);
3670
- const s = B(() => !t || !l, [t, l]), c = B(() => !t || !l, [t, l]);
3671
- return {
3672
- disabled: s,
3673
- // can not action, opacity < 1
3674
- dataState: o,
3675
- // true => show background, false => no background
3676
- editorDisabled: c,
3677
- update: () => i({})
3678
- // force update
3679
- };
3680
- }
3681
- function le(e) {
3682
- const t = ee();
3683
- return B(() => t ? t.extensionManager.extensions.find(
3684
- (i) => i.name === e
3685
- ) : null, [t, e]);
3686
- }
3687
- function Yo(e, t, r) {
3688
- return e < t ? t : e > r ? r : e;
3689
- }
3690
- const yo = (e) => typeof e == "number", Co = (e) => typeof e == "string", ko = (e) => typeof e == "function";
3691
- function Mo(e, t = "px") {
3692
- if (!e) return e;
3693
- const r = yo(e) ? String(e) : e, i = Number.parseFloat(r), o = r.match(/[%a-z]+$/i), a = o ? o[0] : t;
3694
- return Number.isNaN(i) ? e : i + a;
3695
- }
3696
- function qo(e, t) {
3697
- if (!e)
3698
- return !1;
3699
- const { extensions: r = [] } = (e == null ? void 0 : e.extensionManager) ?? {};
3700
- return !!r.find((o) => o.name === t);
3701
- }
3702
- function Zo(e) {
3703
- return e.map((t) => Co(t) ? { value: t, name: t } : t);
3704
- }
3705
- function Vt(e) {
3706
- const t = ee(), r = le(e), { t: i } = ne();
3707
- return B(() => {
3708
- if (!t || !r || !i)
3709
- return null;
3710
- const { button: o } = r.options;
3711
- return !o || !ko(o) ? null : o({
3712
- editor: t,
3713
- extension: r,
3714
- t: i
3715
- });
3716
- }, [t, r, i]);
3717
- }
3718
- function Io(e, t) {
3719
- const r = e.type, i = e.name.toLowerCase(), o = i.split(".").pop();
3720
- if (!o) return !1;
3721
- const l = r || {
3722
- heif: "image/heif",
3723
- heic: "image/heic",
3724
- dng: "image/x-adobe-dng",
3725
- cr2: "image/x-canon-cr2",
3726
- nef: "image/x-nikon-nef",
3727
- arw: "image/x-sony-arw",
3728
- raf: "image/x-fuji-raf",
3729
- orf: "image/x-olympus-orf"
3730
- }[o];
3731
- return t.some((s) => {
3732
- if (s.startsWith("."))
3733
- return i.endsWith(s);
3734
- if (s.endsWith("/*")) {
3735
- const c = s.split("/")[0];
3736
- return l == null ? void 0 : l.startsWith(c + "/");
3737
- }
3738
- return l === s;
3739
- });
3740
- }
3741
- function Ge(e, t) {
3742
- const { acceptMimes: r, maxSize: i, t: o, toast: a } = t, l = [];
3743
- return (Array.isArray(e) ? e : Object.values(e)).forEach((c) => {
3744
- if (!Io(c, r)) {
3745
- t.onError ? t.onError({
3746
- type: "type",
3747
- message: o("editor.upload.fileTypeNotSupported", {
3748
- fileName: c.name
3749
- }),
3750
- file: c
3751
- }) : a({
3752
- variant: "destructive",
3753
- title: o("editor.upload.fileTypeNotSupported", {
3754
- fileName: c.name
3755
- })
3756
- });
3757
- return;
3758
- }
3759
- if (c.size > i) {
3760
- const d = (i / 1024 / 1024).toFixed(2);
3761
- t.onError ? t.onError({
3762
- type: "size",
3763
- message: o("editor.upload.fileSizeTooBig", {
3764
- fileName: c.name,
3765
- size: d
3766
- }),
3767
- file: c
3768
- }) : a({
3769
- variant: "destructive",
3770
- title: o("editor.upload.fileSizeTooBig", {
3771
- fileName: c.name,
3772
- size: d
3773
- })
3774
- });
3775
- return;
3776
- }
3777
- l.push(c);
3778
- }), l;
3779
- }
3780
- function Ko() {
3781
- const { t: e } = ne(), { toast: t } = Be(), r = ee(), i = Vt(Se.name), { icon: o, tooltip: a } = (i == null ? void 0 : i.componentProps) ?? {}, { editorDisabled: l } = Le(), [s, c] = E(!1), [d, g] = E(!1), p = le(Se.name), [u, k] = E(""), [b, z] = E(""), f = xe(null), x = (p == null ? void 0 : p.options.defaultInline) || !1, [h, S] = E(x), m = B(() => p == null ? void 0 : p.options, [p]);
3782
- async function H(N) {
3783
- var I;
3784
- const j = (I = N == null ? void 0 : N.target) == null ? void 0 : I.files;
3785
- if (!r || r.isDestroyed || j.length === 0 || d) {
3786
- N.target.value = "";
3787
- return;
3788
- }
3789
- const D = Ge(j, {
3790
- acceptMimes: m == null ? void 0 : m.acceptMimes,
3791
- maxSize: m == null ? void 0 : m.maxSize,
3792
- t: e,
3793
- toast: t,
3794
- onError: m.onError
3795
- });
3796
- if (D.length <= 0) {
3797
- N.target.value = "";
3798
- return;
3799
- }
3800
- g(!0);
3801
- try {
3802
- if (m != null && m.multiple) {
3803
- const w = D.map(async (M) => {
3804
- if (m.upload) {
3805
- const A = await m.upload(M);
3806
- return { imageId: A.imageId, src: A.cdnUrl };
3807
- } else
3808
- return { imageId: void 0, src: URL.createObjectURL(M) };
3809
- });
3810
- (await Promise.all(w)).forEach(({ imageId: M, src: A }) => {
3811
- r.chain().focus().setImageInline({ imageId: M, src: A, inline: h, alt: b }).run();
3812
- });
3813
- } else {
3814
- const w = D[0];
3815
- let C, M = "";
3816
- if (m.upload) {
3817
- const A = await m.upload(w);
3818
- C = A.imageId, M = A.cdnUrl;
3819
- } else
3820
- M = URL.createObjectURL(w);
3821
- r.chain().focus().setImageInline({ imageId: C, src: M, inline: h, alt: b }).run();
3822
- }
3823
- c(!1), z(""), S(x);
3824
- } catch (w) {
3825
- console.error("Error uploading image", w), m.onError ? m.onError({
3826
- type: "upload",
3827
- message: e("editor.upload.error")
3828
- }) : t({
3829
- variant: "destructive",
3830
- title: e("editor.upload.error")
3831
- });
3832
- } finally {
3833
- g(!1), N.target.value = "";
3834
- }
3835
- }
3836
- function v(N) {
3837
- N.preventDefault(), N.stopPropagation(), r.chain().focus().setImageInline({ src: u, inline: h, alt: b }).run(), c(!1), S(x), k(""), z("");
3838
- }
3839
- function R(N) {
3840
- var j;
3841
- N.preventDefault(), (j = f.current) == null || j.click();
3842
- }
3843
- return i ? /* @__PURE__ */ y(we, { onOpenChange: c, open: s, children: [
3844
- /* @__PURE__ */ n(We, { asChild: !0, children: /* @__PURE__ */ n(
3845
- vt,
3846
- {
3847
- disabled: l,
3848
- icon: o,
3849
- tooltip: a,
3850
- action: () => {
3851
- l || c(!0);
3852
- }
3853
- }
3854
- ) }),
3855
- /* @__PURE__ */ y(ae, { children: [
3856
- /* @__PURE__ */ n(se, { children: e("editor.image.dialog.title") }),
3857
- /* @__PURE__ */ y(
3858
- Ne,
3859
- {
3860
- activationMode: "manual",
3861
- defaultValue: m.resourceImage === "both" || m.resourceImage === "upload" ? "upload" : "link",
3862
- children: [
3863
- m.resourceImage === "both" && /* @__PURE__ */ y(ve, { className: "richtext-grid richtext-w-full richtext-grid-cols-2", children: [
3864
- /* @__PURE__ */ n(q, { value: "upload", children: e("editor.image.dialog.tab.upload") }),
3865
- /* @__PURE__ */ n(q, { value: "link", children: e("editor.image.dialog.tab.url") })
3866
- ] }),
3867
- /* @__PURE__ */ y("div", { className: "richtext-my-[10px] richtext-flex richtext-items-center richtext-gap-[4px]", children: [
3868
- /* @__PURE__ */ n(
3869
- $e,
3870
- {
3871
- checked: h,
3872
- onCheckedChange: (N) => {
3873
- S(N);
3874
- }
3875
- }
3876
- ),
3877
- /* @__PURE__ */ n(pe, { children: e("editor.link.dialog.inline") })
3878
- ] }),
3879
- m.enableAlt && /* @__PURE__ */ y("div", { className: "richtext-my-[10px]", children: [
3880
- /* @__PURE__ */ n(pe, { className: "mb-[6px]", children: e("editor.imageUpload.alt") }),
3881
- /* @__PURE__ */ n(
3882
- te,
3883
- {
3884
- onChange: (N) => z(N.target.value),
3885
- required: !0,
3886
- type: "text",
3887
- value: b
3888
- }
3889
- )
3890
- ] }),
3891
- /* @__PURE__ */ y(Z, { value: "upload", children: [
3892
- /* @__PURE__ */ y("div", { className: "richtext-flex richtext-items-center richtext-gap-[10px]", children: [
3893
- /* @__PURE__ */ n(
3894
- $,
3895
- {
3896
- className: "richtext-mt-1 richtext-w-full",
3897
- disabled: d,
3898
- onClick: R,
3899
- size: "sm",
3900
- children: d ? /* @__PURE__ */ y(Y, { children: [
3901
- e("editor.imageUpload.uploading"),
3902
- /* @__PURE__ */ n(
3903
- fe,
3904
- {
3905
- className: "richtext-ml-1 richtext-animate-spin",
3906
- name: "Loader"
3907
- }
3908
- )
3909
- ] }) : e("editor.image.dialog.tab.upload")
3910
- }
3911
- ),
3912
- /* @__PURE__ */ n(
3913
- Ht,
3914
- {
3915
- alt: b,
3916
- disabled: d,
3917
- editor: r,
3918
- imageInline: h,
3919
- onClose: () => {
3920
- z("");
3921
- }
3922
- }
3923
- )
3924
- ] }),
3925
- /* @__PURE__ */ n(
3926
- "input",
3927
- {
3928
- accept: m.acceptMimes.join(",") || "image/*",
3929
- multiple: m.multiple,
3930
- onChange: H,
3931
- ref: f,
3932
- style: { display: "none" },
3933
- type: "file"
3934
- }
3935
- )
3936
- ] }),
3937
- /* @__PURE__ */ n(Z, { value: "link", children: /* @__PURE__ */ n("form", { onSubmit: v, children: /* @__PURE__ */ y("div", { className: "richtext-flex richtext-items-center richtext-gap-2", children: [
3938
- /* @__PURE__ */ n(
3939
- te,
3940
- {
3941
- autoFocus: !0,
3942
- onChange: (N) => k(N.target.value),
3943
- placeholder: e("editor.image.dialog.placeholder"),
3944
- required: !0,
3945
- type: "url",
3946
- value: u
3947
- }
3948
- ),
3949
- /* @__PURE__ */ n($, { type: "submit", children: e("editor.image.dialog.button.apply") })
3950
- ] }) }) })
3951
- ]
3952
- }
3953
- )
3954
- ] })
3955
- ] }) : /* @__PURE__ */ n(Y, {});
3956
- }
3957
- const zo = {
3958
- acceptMimes: ["image/jpeg", "image/gif", "image/png", "image/jpg"],
3959
- maxSize: 1024 * 1024 * 5,
3960
- // 5MB
3961
- multiple: !0,
3962
- resourceImage: "both",
3963
- defaultInline: !1,
3964
- enableAlt: !0
3965
- }, Se = /* @__PURE__ */ $n.extend({
3966
- group: "inline",
3967
- inline: !0,
3968
- defining: !0,
3969
- draggable: !0,
3970
- selectable: !0,
3971
- addOptions() {
3972
- var e;
3973
- return {
3974
- ...zo,
3975
- ...(e = this.parent) == null ? void 0 : e.call(this),
3976
- upload: () => Promise.reject("Image Upload Function"),
3977
- button: ({
3978
- editor: t,
3979
- extension: r,
3980
- t: i
3981
- }) => {
3982
- var o, a;
3983
- return {
3984
- componentProps: {
3985
- action: () => !0,
3986
- upload: r.options.upload,
3987
- /* If setImage is not available(when Image Component is not imported), the button is disabled */
3988
- disabled: !((a = (o = t.can()).setImage) != null && a.call(o, {})),
3989
- icon: "ImageUp",
3990
- tooltip: i("editor.image.tooltip")
3991
- }
3992
- };
3993
- }
3994
- };
3995
- },
3996
- addAttributes() {
3997
- var e;
3998
- return {
3999
- ...(e = this.parent) == null ? void 0 : e.call(this),
4000
- imageId: {
4001
- default: null,
4002
- parseHTML: (t) => t.getAttribute("data-image-id"),
4003
- renderHTML: (t) => t.imageId ? { "data-image-id": t.imageId } : {}
4004
- },
4005
- flipX: {
4006
- default: !1
4007
- },
4008
- flipY: {
4009
- default: !1
4010
- },
4011
- width: {
4012
- default: null,
4013
- parseHTML: (t) => {
4014
- const r = t.style.width || t.getAttribute("width") || null;
4015
- return r ? Number.parseInt(r, 10) : null;
4016
- },
4017
- renderHTML: (t) => ({
4018
- width: t.width
4019
- })
4020
- },
4021
- align: {
4022
- default: "center",
4023
- parseHTML: (t) => t.getAttribute("align"),
4024
- renderHTML: (t) => ({
4025
- align: t.align
4026
- })
4027
- },
4028
- inline: {
4029
- default: !1,
4030
- parseHTML: (t) => !!t.getAttribute("inline"),
4031
- renderHTML: (t) => ({
4032
- inline: t.inline
4033
- })
4034
- },
4035
- alt: {
4036
- default: "",
4037
- parseHTML: (t) => t.getAttribute("alt"),
4038
- renderHTML: (t) => ({
4039
- alt: t.alt
4040
- })
4041
- }
4042
- };
4043
- },
4044
- addNodeView() {
4045
- return fi(vo);
4046
- },
4047
- addCommands() {
4048
- var e;
4049
- return {
4050
- ...(e = this.parent) == null ? void 0 : e.call(this),
4051
- setImageInline: (t) => ({ commands: r }) => r.insertContent({
4052
- type: this.name,
4053
- attrs: {
4054
- ...t,
4055
- imageId: t.imageId ?? null,
4056
- inline: t.inline ?? this.options.defaultInline
4057
- }
4058
- }),
4059
- updateImage: (t) => ({ commands: r }) => r.updateAttributes(this.name, t),
4060
- setAlignImage: (t) => ({ commands: r }) => r.updateAttributes(this.name, { align: t })
4061
- };
4062
- },
4063
- renderHTML({ HTMLAttributes: e }) {
4064
- const { flipX: t, flipY: r, align: i, inline: o } = e, a = o && (i === "left" || i === "right"), l = t || r ? `transform: rotateX(${t ? "180" : "0"}deg) rotateY(${r ? "180" : "0"}deg);` : "", s = a ? "" : `text-align: ${i};`, g = `${a ? `float: ${i};` : ""}${a ? i === "left" ? "margin: 1em 1em 1em 0;" : "margin: 1em 0 1em 1em;" : ""}${l}`;
4065
- return [
4066
- o ? "span" : "div",
4067
- {
4068
- style: s,
4069
- class: "image"
4070
- },
4071
- [
4072
- "img",
4073
- dt(
4074
- {
4075
- height: "auto",
4076
- style: g
4077
- },
4078
- this.options.HTMLAttributes,
4079
- e
4080
- )
4081
- ]
4082
- ];
4083
- },
4084
- parseHTML() {
4085
- return [
4086
- {
4087
- tag: "span.image img",
4088
- getAttrs: (e) => {
4089
- var a;
4090
- const t = e == null ? void 0 : e.parentElement, r = e == null ? void 0 : e.getAttribute("width"), i = (e == null ? void 0 : e.getAttribute("flipx")) || !1, o = (e == null ? void 0 : e.getAttribute("flipy")) || !1;
4091
- return {
4092
- src: e == null ? void 0 : e.getAttribute("src"),
4093
- alt: e == null ? void 0 : e.getAttribute("alt"),
4094
- caption: e == null ? void 0 : e.getAttribute("caption"),
4095
- width: r ? Number.parseInt(r, 10) : null,
4096
- align: (e == null ? void 0 : e.getAttribute("align")) || ((a = t == null ? void 0 : t.style) == null ? void 0 : a.textAlign) || null,
4097
- inline: (e == null ? void 0 : e.getAttribute("inline")) || !1,
4098
- flipX: i === "true",
4099
- flipY: o === "true"
4100
- };
4101
- }
4102
- },
4103
- {
4104
- tag: "div[class=image]",
4105
- getAttrs: (e) => {
4106
- const t = e.querySelector("img"), r = t == null ? void 0 : t.getAttribute("width"), i = (t == null ? void 0 : t.getAttribute("flipx")) || !1, o = (t == null ? void 0 : t.getAttribute("flipy")) || !1;
4107
- return {
4108
- src: t == null ? void 0 : t.getAttribute("src"),
4109
- alt: t == null ? void 0 : t.getAttribute("alt"),
4110
- caption: t == null ? void 0 : t.getAttribute("caption"),
4111
- width: r ? Number.parseInt(r, 10) : null,
4112
- align: (t == null ? void 0 : t.getAttribute("align")) || e.style.textAlign || null,
4113
- inline: (t == null ? void 0 : t.getAttribute("inline")) || !1,
4114
- flipX: i === "true",
4115
- flipY: o === "true"
4116
- };
4117
- }
4118
- },
4119
- {
4120
- tag: 'img[src]:not([src^="data:"])'
4121
- }
4122
- ];
4123
- }
4124
- // addProseMirrorPlugins() {
4125
- // const validateFile = (file: File): boolean => {
4126
- // // @ts-expect-error
4127
- // if (!this.options.acceptMimes.includes(file.type)) {
4128
- // // toast({ description: t.value('editor.imageUpload.fileTypeNotSupported'), duration: 2000 });
4129
- // return false;
4130
- // }
4131
- // // @ts-expect-error
4132
- // if (file.size > this.options.maxSize) {
4133
- // // toast({
4134
- // // description: `${t.value('editor.imageUpload.fileSizeTooBig')} ${formatFileSize(
4135
- // // this.options.maxSize,
4136
- // // )}.`,
4137
- // // duration: 2000,
4138
- // // });
4139
- // return false;
4140
- // }
4141
- // return true;
4142
- // };
4143
- // const uploadFn = createImageUpload({
4144
- // validateFn: validateFile,
4145
- // onUpload: this.options.upload as any,
4146
- // // postUpload: this.options.postUpload,
4147
- // defaultInline: this.options.defaultInline,
4148
- // });
4149
- // return [
4150
- // UploadImagesPlugin(),
4151
- // new Plugin({
4152
- // key: new PluginKey(`richtextCustomPlugin${this.name}`),
4153
- // props: {
4154
- // handlePaste: (view, event) => {
4155
- // const hasFiles =
4156
- // event.clipboardData &&
4157
- // event.clipboardData.files &&
4158
- // event.clipboardData.files?.length;
4159
- // if (!hasFiles) {
4160
- // return;
4161
- // }
4162
- // const items = [...(event.clipboardData.files || [])];
4163
- // if (items.some(x => x.type === 'text/html')) {
4164
- // return false;
4165
- // }
4166
- // return handleImagePaste(view, event, uploadFn);
4167
- // },
4168
- // handleDrop: (view, event, _, moved) => {
4169
- // if (!(event instanceof DragEvent) || !event.dataTransfer) {
4170
- // return false;
4171
- // }
4172
- // handleImageDrop(view, event, moved, uploadFn);
4173
- // return false;
4174
- // },
4175
- // },
4176
- // }),
4177
- // ];
4178
- // },
4179
- });
4180
- function Jo(e) {
4181
- return e.replace(/^.*\/|\..+$/g, "");
4182
- }
4183
- function Qo(e) {
4184
- return e.split(".").pop();
4185
- }
4186
- function ea(e) {
4187
- return e < 1024 ? `${e} Byte` : e < 1024 * 1024 ? `${(e / 1024).toFixed(2)} KB` : `${(e / 1024 / 1024).toFixed(2)} MB`;
4188
- }
4189
- function ta(e) {
4190
- return e ? e === "application/pdf" ? "pdf" : e.startsWith("application/") && [".document", "word"].some((t) => e.includes(t)) ? "word" : e.startsWith("application/") && ["presentation"].some((t) => e.includes(t)) ? "excel" : e.startsWith("application/") && ["sheet"].some((t) => e.includes(t)) ? "ppt" : e.startsWith("image") ? "image" : e.startsWith("audio") ? "audio" : e.startsWith("video") ? "video" : "file" : "file";
4191
- }
4192
- function To(e) {
4193
- return new Promise((t) => {
4194
- const r = new FileReader();
4195
- r.addEventListener(
4196
- "load",
4197
- () => {
4198
- t({
4199
- alt: e.name,
4200
- src: r.result
4201
- });
4202
- },
4203
- !1
4204
- ), r.readAsDataURL(e);
4205
- });
4206
- }
4207
- function So(e, t) {
4208
- const r = e.split(","), i = r[0].match(/:(.*?);/)[1], o = atob(r[r.length - 1]);
4209
- let a = o.length;
4210
- const l = new Uint8Array(a);
4211
- for (; a--; )
4212
- l[a] = o.charCodeAt(a);
4213
- return new File([l], t, { type: i });
4214
- }
4215
- function Ht({ editor: e, imageInline: t, onClose: r, disabled: i, alt: o }) {
4216
- var I, w;
4217
- const { t: a } = ne(), { toast: l } = Be(), [s, c] = E(!1), [d, g] = E(!1), p = Q.useRef(null), [u, k] = Q.useState(), [b, z] = Q.useState(""), f = xe(null), [x, h] = E({
4218
- src: "",
4219
- file: null
4220
- }), S = le(Se.name), m = B(() => (S == null ? void 0 : S.options) ?? {}, [S]);
4221
- function H(C) {
4222
- if (p.current && C.width && C.height) {
4223
- const M = v(p.current, C);
4224
- z(M);
4225
- }
4226
- }
4227
- function v(C, M) {
4228
- const A = document.createElement("canvas"), L = C.naturalWidth / C.width, P = C.naturalHeight / C.height;
4229
- A.width = M.width * L, A.height = M.height * P;
4230
- const O = A.getContext("2d");
4231
- return O && (O.imageSmoothingEnabled = !1, O.drawImage(
4232
- C,
4233
- M.x * L,
4234
- M.y * P,
4235
- M.width * L,
4236
- M.height * P,
4237
- 0,
4238
- 0,
4239
- M.width * L,
4240
- M.height * P
4241
- )), A.toDataURL("image/png", 1);
4242
- }
4243
- const R = Q.useCallback(async () => {
4244
- var C;
4245
- if (!d) {
4246
- g(!0);
4247
- try {
4248
- const M = So(b, ((C = x == null ? void 0 : x.file) == null ? void 0 : C.name) || "image.png");
4249
- let A = "";
4250
- m.upload ? A = await m.upload(M) : A = URL.createObjectURL(M), e.chain().focus().setImageInline({ src: A, inline: t, alt: o }).run(), c(!1), h({
4251
- src: "",
4252
- file: null
4253
- }), D(), r();
4254
- } catch (M) {
4255
- console.error("Error cropping image", M);
4256
- } finally {
4257
- g(!1);
4258
- }
4259
- }
4260
- }, [
4261
- b,
4262
- e,
4263
- t,
4264
- d,
4265
- r,
4266
- (I = x == null ? void 0 : x.file) == null ? void 0 : I.name,
4267
- m
4268
- ]);
4269
- function N(C) {
4270
- var M;
4271
- C.preventDefault(), (M = f.current) == null || M.click();
4272
- }
4273
- const j = async (C) => {
4274
- var O;
4275
- const M = (O = C == null ? void 0 : C.target) == null ? void 0 : O.files;
4276
- if (!e || e.isDestroyed || M.length === 0) {
4277
- C.target.value = "";
4278
- return;
4279
- }
4280
- const A = Ge(M, {
4281
- acceptMimes: m == null ? void 0 : m.acceptMimes,
4282
- maxSize: m == null ? void 0 : m.maxSize,
4283
- t: a,
4284
- toast: l,
4285
- onError: m.onError
4286
- });
4287
- if (A.length <= 0) {
4288
- C.target.value = "";
4289
- return;
4290
- }
4291
- const L = A[0], P = await To(L);
4292
- c(!0), h({
4293
- src: P.src,
4294
- file: L
4295
- });
4296
- }, D = () => {
4297
- f.current && (f.current.value = "");
4298
- };
4299
- return /* @__PURE__ */ y(Y, { children: [
4300
- /* @__PURE__ */ n(
4301
- $,
4302
- {
4303
- className: "richtext-mt-1 richtext-w-full",
4304
- disabled: i,
4305
- onClick: N,
4306
- size: "sm",
4307
- children: a("editor.image.dialog.tab.uploadCrop")
4308
- }
4309
- ),
4310
- /* @__PURE__ */ y(
4311
- we,
4312
- {
4313
- open: s,
4314
- onOpenChange: (C) => {
4315
- c(C), C || (h({ src: "", file: null }), D());
4316
- },
4317
- children: [
4318
- /* @__PURE__ */ n(We, {}),
4319
- /* @__PURE__ */ y(ae, { children: [
4320
- /* @__PURE__ */ n(se, { children: a("editor.image.dialog.tab.uploadCrop") }),
4321
- /* @__PURE__ */ n("div", { children: x.src && /* @__PURE__ */ n(
4322
- wi,
4323
- {
4324
- className: "richtext-w-full",
4325
- crop: u,
4326
- onChange: (C) => k(C),
4327
- onComplete: (C) => H(C),
4328
- children: /* @__PURE__ */ n("img", { alt: "Crop me", ref: p, src: x.src })
4329
- }
4330
- ) }),
4331
- /* @__PURE__ */ y(zt, { children: [
4332
- /* @__PURE__ */ y(
4333
- $,
4334
- {
4335
- disabled: d,
4336
- onClick: () => {
4337
- c(!1), h({
4338
- src: "",
4339
- file: null
4340
- }), D();
4341
- },
4342
- children: [
4343
- a("editor.imageUpload.cancel"),
4344
- /* @__PURE__ */ n(fe, { className: "richtext-ml-1", name: "Trash2" })
4345
- ]
4346
- }
4347
- ),
4348
- /* @__PURE__ */ n($, { className: "richtext-w-fit", disabled: d || !u, onClick: R, children: d ? /* @__PURE__ */ y(Y, { children: [
4349
- a("editor.imageUpload.uploading"),
4350
- /* @__PURE__ */ n(fe, { className: "richtext-ml-1 richtext-animate-spin", name: "Loader" })
4351
- ] }) : /* @__PURE__ */ y(Y, { children: [
4352
- a("editor.imageUpload.crop"),
4353
- /* @__PURE__ */ n(fe, { className: "richtext-ml-1", name: "Crop" })
4354
- ] }) })
4355
- ] })
4356
- ] })
4357
- ]
4358
- }
4359
- ),
4360
- /* @__PURE__ */ n(
4361
- "input",
4362
- {
4363
- accept: ((w = m == null ? void 0 : m.acceptMimes) == null ? void 0 : w.join(",")) || "image/*",
4364
- multiple: !1,
4365
- onChange: j,
4366
- ref: f,
4367
- style: { display: "none" },
4368
- type: "file"
4369
- }
4370
- )
4371
- ] });
4372
- }
4373
- const Dt = {
4374
- UPLOAD_IMAGE: (e) => `UPLOAD_IMAGE-${e}`,
4375
- UPLOAD_VIDEO: (e) => `UPLOAD_VIDEO-${e}`,
4376
- EXCALIDRAW: (e) => `EXCALIDRAW-${e}`
4377
- };
4378
- function No() {
4379
- const { t: e } = ne(), { toast: t } = Be(), r = ee(), { editorDisabled: i } = Le(), [o, a] = E(!1), l = Dt.UPLOAD_IMAGE(r.id);
4380
- Mt(a, [l]);
4381
- const [s, c] = E(!1), d = le(Se.name), [g, p] = E(""), [u, k] = E(""), b = xe(null), z = (d == null ? void 0 : d.options.defaultInline) || !1, [f, x] = E(z), h = B(() => d == null ? void 0 : d.options, [d]);
4382
- async function S(v) {
4383
- var j;
4384
- const R = (j = v == null ? void 0 : v.target) == null ? void 0 : j.files;
4385
- if (!r || r.isDestroyed || R.length === 0 || s) {
4386
- v.target.value = "";
4387
- return;
4388
- }
4389
- const N = Ge(R, {
4390
- acceptMimes: h == null ? void 0 : h.acceptMimes,
4391
- maxSize: h == null ? void 0 : h.maxSize,
4392
- t: e,
4393
- toast: t,
4394
- onError: h.onError
4395
- });
4396
- if (N.length <= 0) {
4397
- v.target.value = "";
4398
- return;
4399
- }
4400
- c(!0);
4401
- try {
4402
- if (h != null && h.multiple) {
4403
- const D = N.map(async (w) => {
4404
- let C = "";
4405
- return h.upload ? C = await h.upload(w) : C = URL.createObjectURL(w), C;
4406
- });
4407
- (await Promise.all(D)).forEach((w) => {
4408
- r.chain().focus().setImageInline({ src: w, inline: f, alt: u }).run();
4409
- });
4410
- } else {
4411
- const D = N[0];
4412
- let I = "";
4413
- h.upload ? I = await h.upload(D) : I = URL.createObjectURL(D), r.chain().focus().setImageInline({ src: I, inline: f, alt: u }).run();
4414
- }
4415
- a(!1), k(""), x(z);
4416
- } catch (D) {
4417
- console.error("Error uploading image", D), h.onError ? h.onError({
4418
- type: "upload",
4419
- message: e("editor.upload.error")
4420
- }) : t({
4421
- variant: "destructive",
4422
- title: e("editor.upload.error")
4423
- });
4424
- } finally {
4425
- c(!1), v.target.value = "";
4426
- }
4427
- }
4428
- function m(v) {
4429
- v.preventDefault(), v.stopPropagation(), r.chain().focus().setImageInline({ src: g, inline: f, alt: u }).run(), a(!1), x(z), p(""), k("");
4430
- }
4431
- function H(v) {
4432
- var R;
4433
- v.preventDefault(), (R = b.current) == null || R.click();
4434
- }
4435
- return i ? /* @__PURE__ */ n(Y, {}) : /* @__PURE__ */ n(we, { onOpenChange: a, open: o, children: /* @__PURE__ */ y(ae, { children: [
4436
- /* @__PURE__ */ n(se, { children: e("editor.image.dialog.title") }),
4437
- /* @__PURE__ */ y(
4438
- Ne,
4439
- {
4440
- activationMode: "manual",
4441
- defaultValue: h.resourceImage === "both" || h.resourceImage === "upload" ? "upload" : "link",
4442
- children: [
4443
- h.resourceImage === "both" && /* @__PURE__ */ y(ve, { className: "richtext-grid richtext-w-full richtext-grid-cols-2", children: [
4444
- /* @__PURE__ */ n(q, { value: "upload", children: e("editor.image.dialog.tab.upload") }),
4445
- /* @__PURE__ */ n(q, { value: "link", children: e("editor.image.dialog.tab.url") })
4446
- ] }),
4447
- /* @__PURE__ */ y("div", { className: "richtext-my-[10px] richtext-flex richtext-items-center richtext-gap-[4px]", children: [
4448
- /* @__PURE__ */ n(
4449
- $e,
4450
- {
4451
- checked: f,
4452
- onCheckedChange: (v) => {
4453
- x(v);
4454
- }
4455
- }
4456
- ),
4457
- /* @__PURE__ */ n(pe, { children: e("editor.link.dialog.inline") })
4458
- ] }),
4459
- h.enableAlt && /* @__PURE__ */ y("div", { className: "richtext-my-[10px]", children: [
4460
- /* @__PURE__ */ n(pe, { className: "mb-[6px]", children: e("editor.imageUpload.alt") }),
4461
- /* @__PURE__ */ n(te, { onChange: (v) => k(v.target.value), required: !0, type: "text", value: u })
4462
- ] }),
4463
- /* @__PURE__ */ y(Z, { value: "upload", children: [
4464
- /* @__PURE__ */ y("div", { className: "richtext-flex richtext-items-center richtext-gap-[10px]", children: [
4465
- /* @__PURE__ */ n(
4466
- $,
4467
- {
4468
- className: "richtext-mt-1 richtext-w-full",
4469
- disabled: s,
4470
- onClick: H,
4471
- size: "sm",
4472
- children: s ? /* @__PURE__ */ y(Y, { children: [
4473
- e("editor.imageUpload.uploading"),
4474
- /* @__PURE__ */ n(fe, { className: "richtext-ml-1 richtext-animate-spin", name: "Loader" })
4475
- ] }) : e("editor.image.dialog.tab.upload")
4476
- }
4477
- ),
4478
- /* @__PURE__ */ n(
4479
- Ht,
4480
- {
4481
- alt: u,
4482
- disabled: s,
4483
- editor: r,
4484
- imageInline: f,
4485
- onClose: () => {
4486
- k("");
4487
- }
4488
- }
4489
- )
4490
- ] }),
4491
- /* @__PURE__ */ n(
4492
- "input",
4493
- {
4494
- accept: h.acceptMimes.join(",") || "image/*",
4495
- multiple: h.multiple,
4496
- onChange: S,
4497
- ref: b,
4498
- style: { display: "none" },
4499
- type: "file"
4500
- }
4501
- )
4502
- ] }),
4503
- /* @__PURE__ */ n(Z, { value: "link", children: /* @__PURE__ */ n("form", { onSubmit: m, children: /* @__PURE__ */ y("div", { className: "richtext-flex richtext-items-center richtext-gap-2", children: [
4504
- /* @__PURE__ */ n(
4505
- te,
4506
- {
4507
- autoFocus: !0,
4508
- onChange: (v) => p(v.target.value),
4509
- placeholder: e("editor.image.dialog.placeholder"),
4510
- required: !0,
4511
- type: "url",
4512
- value: g
4513
- }
4514
- ),
4515
- /* @__PURE__ */ n($, { type: "submit", children: e("editor.image.dialog.button.apply") })
4516
- ] }) }) })
4517
- ]
4518
- }
4519
- )
4520
- ] }) });
4521
- }
4522
- function Ot(e, t) {
4523
- let r;
4524
- try {
4525
- r = new URL(e);
4526
- } catch {
4527
- return !1;
4528
- }
4529
- return !(t != null && t.length) || t.length === 1 && t[0] === "." ? !0 : t.some((i) => {
4530
- if (i.includes("*")) {
4531
- const o = i.replace(/\./g, String.raw`\.`).replace(/\*/g, ".*");
4532
- return new RegExp(`^${o}$`).test(r.hostname);
4533
- }
4534
- return r.hostname.includes(i);
4535
- });
4536
- }
4537
- function ra() {
4538
- const { t: e } = ne(), t = ee(), r = Vt(Pe.name), { icon: i, tooltip: o } = (r == null ? void 0 : r.componentProps) ?? {}, { editorDisabled: a } = Le(), [l, s] = E(""), c = xe(null), [d, g] = E(""), [p, u] = E(!1), k = le(Pe.name), b = B(() => (k == null ? void 0 : k.options) ?? {}, [k]);
4539
- async function z(h) {
4540
- var v;
4541
- const S = (v = h == null ? void 0 : h.target) == null ? void 0 : v.files;
4542
- if (!t || t.isDestroyed || S.length === 0)
4543
- return;
4544
- const m = S[0];
4545
- let H = "";
4546
- b.upload ? H = await b.upload(m) : H = URL.createObjectURL(m), t.chain().focus().setVideo({
4547
- src: H,
4548
- width: "100%"
4549
- }).run(), u(!1);
4550
- }
4551
- function f(h) {
4552
- h.preventDefault(), h.stopPropagation(), l && (t.chain().focus().setVideo({
4553
- src: l,
4554
- width: "100%"
4555
- }).run(), u(!1), s(""));
4556
- }
4557
- function x(h) {
4558
- var S;
4559
- h.preventDefault(), (S = c.current) == null || S.click();
4560
- }
4561
- return /* @__PURE__ */ y(we, { onOpenChange: u, open: p, children: [
4562
- /* @__PURE__ */ n(We, { asChild: !0, children: /* @__PURE__ */ n(
4563
- vt,
4564
- {
4565
- disabled: a,
4566
- icon: i,
4567
- tooltip: o,
4568
- action: () => {
4569
- a || u(!0);
4570
- }
4571
- }
4572
- ) }),
4573
- /* @__PURE__ */ y(ae, { children: [
4574
- /* @__PURE__ */ n(se, { children: e("editor.video.dialog.title") }),
4575
- /* @__PURE__ */ y(
4576
- Ne,
4577
- {
4578
- activationMode: "manual",
4579
- defaultValue: (b == null ? void 0 : b.resourceVideo) === "both" || (b == null ? void 0 : b.resourceVideo) === "upload" ? "upload" : "link",
4580
- children: [
4581
- /* @__PURE__ */ y(ve, { className: "richtext-grid richtext-w-full richtext-grid-cols-2", children: [
4582
- ((b == null ? void 0 : b.resourceVideo) === "both" || (b == null ? void 0 : b.resourceVideo) === "upload") && /* @__PURE__ */ n(q, { value: "upload", children: e("editor.video.dialog.tab.upload") }),
4583
- ((b == null ? void 0 : b.resourceVideo) === "both" || (b == null ? void 0 : b.resourceVideo) === "link") && /* @__PURE__ */ n(q, { value: "link", children: e("editor.video.dialog.link") })
4584
- ] }),
4585
- /* @__PURE__ */ y(Z, { value: "upload", children: [
4586
- /* @__PURE__ */ n("div", { className: "richtext-flex richtext-items-center richtext-gap-[10px]", children: /* @__PURE__ */ n($, { className: "richtext-mt-1 richtext-w-full", onClick: x, size: "sm", children: e("editor.video.dialog.tab.upload") }) }),
4587
- /* @__PURE__ */ n(
4588
- "input",
4589
- {
4590
- accept: "video/*",
4591
- multiple: !0,
4592
- onChange: z,
4593
- ref: c,
4594
- type: "file",
4595
- style: {
4596
- display: "none"
4597
- }
4598
- }
4599
- )
4600
- ] }),
4601
- /* @__PURE__ */ y(Z, { value: "link", children: [
4602
- /* @__PURE__ */ n("div", { children: /* @__PURE__ */ y("div", { className: "richtext-flex richtext-items-center richtext-gap-2", children: [
4603
- /* @__PURE__ */ n(
4604
- te,
4605
- {
4606
- autoFocus: !0,
4607
- placeholder: e("editor.video.dialog.placeholder"),
4608
- required: !0,
4609
- type: "url",
4610
- value: l,
4611
- onBlur: (h) => {
4612
- const S = h.target.value, m = b.videoProviders || ["."];
4613
- S && !Ot(S, m) ? g("Invalid video URL") : g("");
4614
- },
4615
- onChange: (h) => {
4616
- s(h.target.value);
4617
- }
4618
- }
4619
- ),
4620
- /* @__PURE__ */ n($, { onClick: f, type: "button", children: e("editor.video.dialog.button.apply") })
4621
- ] }) }),
4622
- d && /* @__PURE__ */ n("div", { className: "richtext-my-[5px] richtext-text-red-500", children: d })
4623
- ] })
4624
- ]
4625
- }
4626
- )
4627
- ] })
4628
- ] });
4629
- }
4630
- function Lo(e) {
4631
- e = e.replace("https://youtu.be/", "https://www.youtube.com/watch?v=").replace("watch?v=", "embed/");
4632
- const t = e.match(/^https:\/\/www\.youtube\.com\/shorts\/([a-zA-Z0-9_-]+)/);
4633
- t && (e = `https://www.youtube.com/embed/${t[1]}`);
4634
- const r = e.match(/^https:\/\/vimeo\.com\/(\d+)(?:\/([a-zA-Z0-9]+))?/);
4635
- if (r) {
4636
- const o = r[1], a = r[2];
4637
- a ? e = `https://player.vimeo.com/video/${o}?h=${a}` : e = `https://player.vimeo.com/video/${o}`;
4638
- }
4639
- return /^https?:\/\/www.bilibili.com\/video\/.*/i.test(e) && (e = e.replace(/\?.*$/, "").replace("https://www.bilibili.com/video/", "https://player.bilibili.com/player.html?bvid=")), e.includes("drive.google.com") && (e = e.replace("/view", "/preview")), e;
4640
- }
4641
- const Pe = /* @__PURE__ */ ct.create({
4642
- name: "video",
4643
- group: "block",
4644
- atom: !0,
4645
- draggable: !0,
4646
- //@ts-expect-error
4647
- addOptions() {
4648
- return {
4649
- divider: !1,
4650
- spacer: !1,
4651
- allowFullscreen: !0,
4652
- upload: void 0,
4653
- frameborder: !1,
4654
- resourceVideo: "both",
4655
- width: gi["size-medium"],
4656
- HTMLAttributes: {
4657
- class: "iframe-wrapper"
4658
- // style: 'display: flex;justify-content: center;',
4659
- },
4660
- button: ({ editor: e, t }) => {
4661
- var r, i;
4662
- return {
4663
- componentProps: {
4664
- action: () => {
4665
- },
4666
- isActive: () => e.isActive("video") || !1,
4667
- /* If setVideo is not available(when Video Component is not imported), the button is disabled */
4668
- disabled: !((i = (r = e.can()).setVideo) != null && i.call(r, {})),
4669
- icon: "Video",
4670
- tooltip: t("editor.video.tooltip"),
4671
- videoProviders: ["."],
4672
- editor: e
4673
- }
4674
- };
4675
- }
4676
- };
4677
- },
4678
- addAttributes() {
4679
- return {
4680
- src: {
4681
- default: null,
4682
- renderHTML: ({ src: e }) => ({
4683
- src: e ? Lo(e) : null
4684
- })
4685
- },
4686
- width: {
4687
- default: this.options.width,
4688
- renderHTML: ({ width: e }) => ({
4689
- width: Mo(e)
4690
- })
4691
- },
4692
- frameborder: {
4693
- default: this.options.frameborder ? 1 : 0,
4694
- parseHTML: () => this.options.frameborder ? 1 : 0
4695
- },
4696
- allowfullscreen: {
4697
- default: this.options.allowFullscreen,
4698
- parseHTML: () => this.options.allowFullscreen
4699
- },
4700
- align: {
4701
- default: "center",
4702
- // Default alignment
4703
- renderHTML: ({ align: e }) => ({
4704
- align: e
4705
- })
4706
- }
4707
- };
4708
- },
4709
- parseHTML() {
4710
- return [
4711
- {
4712
- tag: "div[data-video] iframe"
4713
- }
4714
- ];
4715
- },
4716
- renderHTML({ HTMLAttributes: e }) {
4717
- const { width: t = "100%", align: r = "center" } = e ?? {}, i = {
4718
- ...e,
4719
- width: "100%",
4720
- height: "100%"
4721
- }, o = `position: relative;overflow: hidden;display: flex;flex: 1;max-width: ${t};`, a = `flex: 1;padding-bottom: ${9 / 16 * 100}%;`, g = ["div", { style: `display: flex; justify-content: ${r};` }, ["div", { style: o }, ["div", { style: a }], ["iframe", i]]];
4722
- return ["div", {
4723
- ...this.options.HTMLAttributes,
4724
- class: "iframe-wrapper",
4725
- "data-video": ""
4726
- }, g];
4727
- },
4728
- addCommands() {
4729
- return {
4730
- setVideo: (e) => ({ commands: t }) => t.insertContent({
4731
- type: this.name,
4732
- attrs: e
4733
- }),
4734
- updateVideo: (e) => ({ commands: t }) => t.updateAttributes(this.name, e)
4735
- };
4736
- }
4737
- });
4738
- function Ao() {
4739
- const { t: e } = ne(), t = ee(), { editorDisabled: r } = Le(), [i, o] = E(""), a = xe(null), [l, s] = E(""), [c, d] = E(!1), g = le(Pe.name), p = Dt.UPLOAD_VIDEO(t.id);
4740
- Mt(d, [p]);
4741
- const u = B(() => (g == null ? void 0 : g.options) ?? {}, [g]);
4742
- async function k(f) {
4743
- var m;
4744
- const x = (m = f == null ? void 0 : f.target) == null ? void 0 : m.files;
4745
- if (!t || t.isDestroyed || x.length === 0)
4746
- return;
4747
- const h = x[0];
4748
- let S = "";
4749
- u.upload ? S = await u.upload(h) : S = URL.createObjectURL(h), t.chain().focus().setVideo({
4750
- src: S,
4751
- width: "100%"
4752
- }).run(), d(!1);
4753
- }
4754
- function b(f) {
4755
- f.preventDefault(), f.stopPropagation(), i && (t.chain().focus().setVideo({
4756
- src: i,
4757
- width: "100%"
4758
- }).run(), d(!1), o(""));
4759
- }
4760
- function z(f) {
4761
- var x;
4762
- f.preventDefault(), (x = a.current) == null || x.click();
4763
- }
4764
- return r ? /* @__PURE__ */ n(Y, {}) : /* @__PURE__ */ n(we, { onOpenChange: d, open: c, children: /* @__PURE__ */ y(ae, { children: [
4765
- /* @__PURE__ */ n(se, { children: e("editor.video.dialog.title") }),
4766
- /* @__PURE__ */ y(
4767
- Ne,
4768
- {
4769
- activationMode: "manual",
4770
- defaultValue: (u == null ? void 0 : u.resourceVideo) === "both" || (u == null ? void 0 : u.resourceVideo) === "upload" ? "upload" : "link",
4771
- children: [
4772
- /* @__PURE__ */ y(ve, { className: "richtext-grid richtext-w-full richtext-grid-cols-2", children: [
4773
- ((u == null ? void 0 : u.resourceVideo) === "both" || (u == null ? void 0 : u.resourceVideo) === "upload") && /* @__PURE__ */ n(q, { value: "upload", children: e("editor.video.dialog.tab.upload") }),
4774
- ((u == null ? void 0 : u.resourceVideo) === "both" || (u == null ? void 0 : u.resourceVideo) === "link") && /* @__PURE__ */ n(q, { value: "link", children: e("editor.video.dialog.link") })
4775
- ] }),
4776
- /* @__PURE__ */ y(Z, { value: "upload", children: [
4777
- /* @__PURE__ */ n("div", { className: "richtext-flex richtext-items-center richtext-gap-[10px]", children: /* @__PURE__ */ n($, { className: "richtext-mt-1 richtext-w-full", onClick: z, size: "sm", children: e("editor.video.dialog.tab.upload") }) }),
4778
- /* @__PURE__ */ n(
4779
- "input",
4780
- {
4781
- accept: "video/*",
4782
- multiple: !0,
4783
- onChange: k,
4784
- ref: a,
4785
- type: "file",
4786
- style: {
4787
- display: "none"
4788
- }
4789
- }
4790
- )
4791
- ] }),
4792
- /* @__PURE__ */ y(Z, { value: "link", children: [
4793
- /* @__PURE__ */ n("div", { children: /* @__PURE__ */ y("div", { className: "richtext-flex richtext-items-center richtext-gap-2", children: [
4794
- /* @__PURE__ */ n(
4795
- te,
4796
- {
4797
- autoFocus: !0,
4798
- placeholder: e("editor.video.dialog.placeholder"),
4799
- required: !0,
4800
- type: "url",
4801
- value: i,
4802
- onBlur: (f) => {
4803
- const x = f.target.value, h = u.videoProviders || ["."];
4804
- x && !Ot(x, h) ? s("Invalid video URL") : s("");
4805
- },
4806
- onChange: (f) => {
4807
- o(f.target.value);
4808
- }
4809
- }
4810
- ),
4811
- /* @__PURE__ */ n($, { onClick: b, type: "button", children: e("editor.video.dialog.button.apply") })
4812
- ] }) }),
4813
- l && /* @__PURE__ */ n("div", { className: "richtext-my-[5px] richtext-text-red-500", children: l })
4814
- ] })
4815
- ]
4816
- }
4817
- )
4818
- ] }) });
4819
- }
4820
- function Eo() {
4821
- return /* @__PURE__ */ y(Y, { children: [
4822
- /* @__PURE__ */ n(No, {}),
4823
- /* @__PURE__ */ n(Ao, {})
4824
- ] });
4825
- }
4826
- process.env.NODE_ENV !== "production" && (Eo.displayName = "SlashDialogTrigger");
4827
- export {
4828
- Ko as $,
4829
- vt as A,
4830
- $ as B,
4831
- $e as C,
4832
- we as D,
4833
- Dt as E,
4834
- ho as F,
4835
- po as G,
4836
- $n as H,
4837
- fe as I,
4838
- Et as J,
4839
- ta as K,
4840
- pe as L,
4841
- ln as M,
4842
- bn as N,
4843
- xn as O,
4844
- Qo as P,
4845
- Jo as Q,
4846
- ea as R,
4847
- Ue as S,
4848
- Nn as T,
4849
- Go as U,
4850
- Wo as V,
4851
- $o as W,
4852
- Eo as X,
4853
- So as Y,
4854
- Pn as Z,
4855
- Pe as _,
4856
- Ln as a,
4857
- ra as a0,
4858
- Ct as b,
4859
- _ as c,
4860
- Le as d,
4861
- Xo as e,
4862
- Zo as f,
4863
- en as g,
4864
- ee as h,
4865
- wt as i,
4866
- te as j,
4867
- yt as k,
4868
- Qi as l,
4869
- We as m,
4870
- ae as n,
4871
- se as o,
4872
- zt as p,
4873
- le as q,
4874
- Be as r,
4875
- qo as s,
4876
- Se as t,
4877
- Vt as u,
4878
- Fo as v,
4879
- Yo as w,
4880
- Mt as x,
4881
- ot as y,
4882
- at as z
4883
- };