reactjs-tiptap-editor 1.0.16 → 1.0.18

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