reactjs-tiptap-editor 0.4.2 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/lib/ActionMenuButton-BKOg7hkq.js +38 -0
  2. package/lib/ActionMenuButton-DLQyd_gx.cjs +1 -0
  3. package/lib/Attachment.cjs +2 -2
  4. package/lib/Attachment.d.cts +27 -39
  5. package/lib/Attachment.d.ts +27 -39
  6. package/lib/Attachment.js +129 -99
  7. package/lib/Blockquote.cjs +3 -3
  8. package/lib/Blockquote.d.cts +27 -39
  9. package/lib/Blockquote.d.ts +27 -39
  10. package/lib/Blockquote.js +50 -22
  11. package/lib/Bold.cjs +1 -1
  12. package/lib/Bold.d.cts +27 -39
  13. package/lib/Bold.d.ts +27 -39
  14. package/lib/Bold.js +48 -20
  15. package/lib/BulletList.cjs +1 -1
  16. package/lib/BulletList.d.cts +27 -39
  17. package/lib/BulletList.d.ts +27 -39
  18. package/lib/BulletList.js +38 -9
  19. package/lib/Clear.cjs +1 -1
  20. package/lib/Clear.d.cts +27 -39
  21. package/lib/Clear.d.ts +27 -39
  22. package/lib/Clear.js +32 -6
  23. package/lib/Code.cjs +1 -1
  24. package/lib/Code.d.cts +27 -39
  25. package/lib/Code.d.ts +27 -39
  26. package/lib/Code.js +53 -25
  27. package/lib/CodeBlock.cjs +35 -35
  28. package/lib/CodeBlock.d.cts +27 -39
  29. package/lib/CodeBlock.d.ts +27 -39
  30. package/lib/CodeBlock.js +605 -590
  31. package/lib/CodeView.cjs +1 -1
  32. package/lib/CodeView.d.cts +28 -40
  33. package/lib/CodeView.d.ts +28 -40
  34. package/lib/CodeView.js +49 -21
  35. package/lib/Color.cjs +1 -1
  36. package/lib/Color.d.cts +31 -39
  37. package/lib/Color.d.ts +31 -39
  38. package/lib/Color.js +123 -79
  39. package/lib/Column.cjs +1 -0
  40. package/lib/{Document.d.cts → Column.d.cts} +33 -42
  41. package/lib/{Document.d.ts → Column.d.ts} +33 -42
  42. package/lib/Column.js +217 -0
  43. package/lib/{Drawer-CaAfmqNo.js → Drawer-DZ5jvmrX.js} +404 -394
  44. package/lib/Drawer-SRhwOc6T.cjs +1 -0
  45. package/lib/Drawer.cjs +1 -1
  46. package/lib/Drawer.d.cts +27 -39
  47. package/lib/Drawer.d.ts +27 -39
  48. package/lib/Drawer.js +6 -5
  49. package/lib/Emoji.cjs +1 -1
  50. package/lib/Emoji.d.cts +27 -44
  51. package/lib/Emoji.d.ts +27 -44
  52. package/lib/Emoji.js +377 -392
  53. package/lib/Excalidraw-DwBRXEtC.js +345 -0
  54. package/lib/Excalidraw-ZN3DQvDC.cjs +1 -0
  55. package/lib/Excalidraw.cjs +1 -1
  56. package/lib/Excalidraw.d.cts +27 -39
  57. package/lib/Excalidraw.d.ts +27 -39
  58. package/lib/Excalidraw.js +6 -4
  59. package/lib/ExportPdf.cjs +5 -5
  60. package/lib/ExportPdf.d.cts +27 -39
  61. package/lib/ExportPdf.d.ts +27 -39
  62. package/lib/ExportPdf.js +60 -32
  63. package/lib/ExportWord.cjs +1 -1
  64. package/lib/ExportWord.d.cts +28 -40
  65. package/lib/ExportWord.d.ts +28 -40
  66. package/lib/ExportWord.js +84 -21
  67. package/lib/FontFamily.cjs +1 -1
  68. package/lib/FontFamily.d.cts +41 -42
  69. package/lib/FontFamily.d.ts +41 -42
  70. package/lib/FontFamily.js +72 -74
  71. package/lib/FontSize.cjs +1 -1
  72. package/lib/FontSize.d.cts +38 -42
  73. package/lib/FontSize.d.ts +38 -42
  74. package/lib/FontSize.js +72 -64
  75. package/lib/Heading.cjs +1 -1
  76. package/lib/Heading.d.cts +41 -39
  77. package/lib/Heading.d.ts +41 -39
  78. package/lib/Heading.js +91 -73
  79. package/lib/Highlight.cjs +1 -1
  80. package/lib/Highlight.d.cts +31 -39
  81. package/lib/Highlight.d.ts +31 -39
  82. package/lib/Highlight.js +150 -19
  83. package/lib/History.cjs +1 -1
  84. package/lib/History.d.cts +29 -39
  85. package/lib/History.d.ts +29 -39
  86. package/lib/History.js +976 -53
  87. package/lib/HorizontalRule.cjs +1 -1
  88. package/lib/HorizontalRule.d.cts +27 -39
  89. package/lib/HorizontalRule.d.ts +27 -39
  90. package/lib/HorizontalRule.js +97 -17
  91. package/lib/Icon-DUpv2cI6.cjs +1 -0
  92. package/lib/Icon-jKs8Hr6p.js +11 -0
  93. package/lib/Iframe-CmXkEqOd.js +431 -0
  94. package/lib/Iframe-Cvca2G7X.cjs +1 -0
  95. package/lib/Iframe.cjs +1 -1
  96. package/lib/Iframe.d.cts +26 -45
  97. package/lib/Iframe.d.ts +26 -45
  98. package/lib/Iframe.js +6 -4
  99. package/lib/Image.cjs +1 -1
  100. package/lib/Image.d.cts +27 -40
  101. package/lib/Image.d.ts +27 -40
  102. package/lib/Image.js +848 -5
  103. package/lib/ImageGif.cjs +1 -1
  104. package/lib/ImageGif.d.cts +28 -42
  105. package/lib/ImageGif.d.ts +28 -42
  106. package/lib/ImageGif.js +424 -5
  107. package/lib/ImportWord.cjs +48 -48
  108. package/lib/ImportWord.d.cts +28 -40
  109. package/lib/ImportWord.d.ts +28 -40
  110. package/lib/ImportWord.js +2759 -2751
  111. package/lib/Indent.cjs +1 -1
  112. package/lib/Indent.d.cts +27 -39
  113. package/lib/Indent.d.ts +27 -39
  114. package/lib/Indent.js +97 -27
  115. package/lib/Italic.cjs +1 -1
  116. package/lib/Italic.d.cts +27 -39
  117. package/lib/Italic.d.ts +27 -39
  118. package/lib/Italic.js +47 -19
  119. package/lib/Katex-DsYXsjSS.js +2740 -0
  120. package/lib/Katex-XfrNne6U.cjs +4 -0
  121. package/lib/Katex.cjs +1 -1
  122. package/lib/Katex.d.cts +27 -39
  123. package/lib/Katex.d.ts +27 -39
  124. package/lib/Katex.js +5 -196
  125. package/lib/LineHeight.cjs +1 -1
  126. package/lib/LineHeight.d.cts +29 -45
  127. package/lib/LineHeight.d.ts +29 -45
  128. package/lib/LineHeight.js +71 -112
  129. package/lib/Link.cjs +1 -1
  130. package/lib/Link.d.cts +28 -42
  131. package/lib/Link.d.ts +28 -42
  132. package/lib/Link.js +3 -3
  133. package/lib/LinkEditBlock-BZenZq-Z.cjs +5 -0
  134. package/lib/LinkEditBlock-CB8yIffE.js +1241 -0
  135. package/lib/Mention.cjs +1 -1
  136. package/lib/Mention.d.cts +24 -39
  137. package/lib/Mention.d.ts +24 -39
  138. package/lib/Mention.js +112 -124
  139. package/lib/Mermaid.cjs +2 -2
  140. package/lib/Mermaid.d.cts +27 -39
  141. package/lib/Mermaid.d.ts +27 -39
  142. package/lib/Mermaid.js +177 -165
  143. package/lib/MoreMark.cjs +1 -1
  144. package/lib/MoreMark.d.cts +42 -41
  145. package/lib/MoreMark.d.ts +42 -41
  146. package/lib/MoreMark.js +125 -55
  147. package/lib/OrderedList.cjs +1 -1
  148. package/lib/OrderedList.d.cts +27 -39
  149. package/lib/OrderedList.d.ts +27 -39
  150. package/lib/OrderedList.js +37 -9
  151. package/lib/SearchAndReplace.cjs +1 -1
  152. package/lib/SearchAndReplace.d.cts +27 -42
  153. package/lib/SearchAndReplace.d.ts +27 -42
  154. package/lib/SearchAndReplace.js +221 -197
  155. package/lib/SlashCommand.cjs +1 -1
  156. package/lib/SlashCommand.d.cts +39 -46
  157. package/lib/SlashCommand.d.ts +39 -46
  158. package/lib/SlashCommand.js +235 -249
  159. package/lib/Strike.cjs +1 -1
  160. package/lib/Strike.d.cts +27 -39
  161. package/lib/Strike.d.ts +27 -39
  162. package/lib/Strike.js +39 -11
  163. package/lib/Table-B1j1Ebmh.cjs +9 -0
  164. package/lib/Table-Db8TcQX8.js +1984 -0
  165. package/lib/Table.cjs +1 -9
  166. package/lib/Table.d.cts +28 -42
  167. package/lib/Table.d.ts +28 -42
  168. package/lib/Table.js +3 -558
  169. package/lib/TaskList.cjs +1 -1
  170. package/lib/TaskList.d.cts +27 -39
  171. package/lib/TaskList.d.ts +27 -39
  172. package/lib/TaskList.js +38 -10
  173. package/lib/TextAlign.cjs +1 -1
  174. package/lib/TextAlign.d.cts +40 -39
  175. package/lib/TextAlign.d.ts +40 -39
  176. package/lib/TextAlign.js +108 -101
  177. package/lib/TextDirection.cjs +1 -1
  178. package/lib/TextDirection.d.cts +56 -39
  179. package/lib/TextDirection.d.ts +56 -39
  180. package/lib/TextDirection.js +105 -112
  181. package/lib/TextUnderline.cjs +1 -1
  182. package/lib/TextUnderline.d.cts +27 -39
  183. package/lib/TextUnderline.d.ts +27 -39
  184. package/lib/TextUnderline.js +46 -18
  185. package/lib/{Twitter-BFULyqdR.js → Twitter-CXmmjz9R.js} +536 -498
  186. package/lib/Twitter-CtVTIWJW.cjs +1 -0
  187. package/lib/Twitter.cjs +1 -1
  188. package/lib/Twitter.d.cts +27 -39
  189. package/lib/Twitter.d.ts +27 -39
  190. package/lib/Twitter.js +5 -4
  191. package/lib/Video.cjs +1 -1
  192. package/lib/Video.d.cts +27 -39
  193. package/lib/Video.d.ts +27 -39
  194. package/lib/Video.js +261 -4
  195. package/lib/_commonjsHelpers-BItOPCY9.js +28 -0
  196. package/lib/_commonjsHelpers-BTDuMlIz.cjs +1 -0
  197. package/lib/bubble.cjs +2 -0
  198. package/lib/{bubble-extra.d.cts → bubble.d.cts} +53 -54
  199. package/lib/{bubble-extra.d.ts → bubble.d.ts} +53 -54
  200. package/lib/bubble.js +1925 -0
  201. package/lib/button-B12K7BJ4.cjs +1 -0
  202. package/lib/button-DXMsXUEn.js +43 -0
  203. package/lib/clsx-C11secjj.cjs +1 -0
  204. package/lib/clsx-OuTLNxxd.js +16 -0
  205. package/lib/delete-node-CosiBes5.cjs +1 -0
  206. package/lib/delete-node-IyVmiRbI.js +22 -0
  207. package/lib/dialog-CaCS-W5S.cjs +1 -0
  208. package/lib/dialog-PtQivpHS.js +100 -0
  209. package/lib/dom-dataset-BqoJhJXt.cjs +1 -0
  210. package/lib/dom-dataset-CIEeltF6.js +47 -0
  211. package/lib/dropdown-menu-BPp2Z_U-.js +136 -0
  212. package/lib/dropdown-menu-CdSm4emp.cjs +1 -0
  213. package/lib/file-BLas99n7.js +43 -0
  214. package/lib/file-i7e4nQY2.cjs +1 -0
  215. package/lib/floating-ui.dom-U1vPFQ5f.js +1151 -0
  216. package/lib/floating-ui.dom-VCrc58uF.cjs +1 -0
  217. package/lib/icons-Cllpys39.js +362 -0
  218. package/lib/icons-CqHjeW5T.cjs +1 -0
  219. package/lib/index-BH4bc3jN.cjs +33 -0
  220. package/lib/index-BPfVXs5_.js +2380 -0
  221. package/lib/index-Bnmd0WvY.js +1631 -0
  222. package/lib/{index-Ch6dBBad.js → index-CBce_TWY.js} +40 -42
  223. package/lib/{index-5iBZLua9.cjs → index-D-5U8dY8.cjs} +8 -8
  224. package/lib/{index-ByurDDMv.js → index-D2TUfKkC.js} +2 -2
  225. package/lib/index-DV5kbgRU.cjs +1 -0
  226. package/lib/{index-LmrOdnen.js → index-DYkucCoF.js} +396 -495
  227. package/lib/index-Dfmm6FTT.cjs +1 -0
  228. package/lib/index-DnWWK9F_.js +6374 -0
  229. package/lib/index-DzcKxutn.js +632 -0
  230. package/lib/index-DzvuNTxo.cjs +4 -0
  231. package/lib/{index-BeCTd5v2.cjs → index-N--9MohJ.cjs} +1 -1
  232. package/lib/index-RfTlOzIr.cjs +22 -0
  233. package/lib/index.cjs +132 -1
  234. package/lib/index.d.cts +29 -280
  235. package/lib/index.d.ts +29 -280
  236. package/lib/index.js +243 -2
  237. package/lib/input-_ECRfn3Y.cjs +1 -0
  238. package/lib/input-wJ9PDEzZ.js +21 -0
  239. package/lib/isNumber-ClPupm7P.cjs +1 -0
  240. package/lib/isNumber-fpLGS0AZ.js +15 -0
  241. package/lib/label-BkgAe7IY.cjs +1 -0
  242. package/lib/label-CGdLYWv7.js +19 -0
  243. package/lib/locale-bundle.cjs +1 -1
  244. package/lib/locale-bundle.d.cts +5405 -57
  245. package/lib/locale-bundle.d.ts +5405 -57
  246. package/lib/locale-bundle.js +9 -7
  247. package/lib/popover-BgmUNMHj.cjs +1 -0
  248. package/lib/popover-CAuEW0Mr.js +23 -0
  249. package/lib/separator-CuBW_w98.js +328 -0
  250. package/lib/separator-DRIrVZ2N.cjs +1 -0
  251. package/lib/store-DX599H5W.js +10 -0
  252. package/lib/store-WStcMOiW.cjs +1 -0
  253. package/lib/style.css +1 -1
  254. package/lib/switch-CnLJ7Y-b.cjs +1 -0
  255. package/lib/switch-Coix_FA1.js +27 -0
  256. package/lib/tabs-B5mVSN1I.js +46 -0
  257. package/lib/tabs-BoLCMcCI.cjs +1 -0
  258. package/lib/textarea-B-6zTKQz.cjs +1 -0
  259. package/lib/{textarea-aPtytkDx.js → textarea-DUUM1jZd.js} +1 -1
  260. package/lib/theme-B7aAsK_T.js +15 -0
  261. package/lib/theme-D8_cxGqB.cjs +1 -0
  262. package/lib/throttle-CdwDrFpn.js +249 -0
  263. package/lib/throttle-qX7Yjtsg.cjs +1 -0
  264. package/lib/toggle-Cdp4IT2U.js +85 -0
  265. package/lib/toggle-D41PzQLJ.cjs +1 -0
  266. package/lib/tooltip-BuEiE96N.cjs +1 -0
  267. package/lib/tooltip-CopwsU8q.js +23 -0
  268. package/lib/updatePosition-8Sdem5jb.cjs +1 -0
  269. package/lib/updatePosition-BPmcE0YD.js +215 -0
  270. package/lib/use-toast-Bz3QCOtE.cjs +1 -0
  271. package/lib/use-toast-Crf7-q5H.js +98 -0
  272. package/lib/useButtonProps-BsEd4zYM.js +141 -0
  273. package/lib/useButtonProps-C6Vpn190.cjs +1 -0
  274. package/package.json +22 -105
  275. package/lib/ActionMenuButton-CYdM1xx5.cjs +0 -1
  276. package/lib/ActionMenuButton-DKRF6oa0.js +0 -33
  277. package/lib/BaseKit.cjs +0 -3
  278. package/lib/BaseKit.d.cts +0 -481
  279. package/lib/BaseKit.d.ts +0 -481
  280. package/lib/BaseKit.js +0 -132
  281. package/lib/Document.cjs +0 -1
  282. package/lib/Document.js +0 -9
  283. package/lib/Drawer-CdvCMSzN.cjs +0 -1
  284. package/lib/Excalidraw-BbMQhNvs.cjs +0 -1
  285. package/lib/Excalidraw-CVWz2Vyn.js +0 -290
  286. package/lib/FormatPainter.cjs +0 -1
  287. package/lib/FormatPainter.d.cts +0 -372
  288. package/lib/FormatPainter.d.ts +0 -372
  289. package/lib/FormatPainter.js +0 -76
  290. package/lib/ListItem.cjs +0 -1
  291. package/lib/ListItem.d.cts +0 -290
  292. package/lib/ListItem.d.ts +0 -290
  293. package/lib/ListItem.js +0 -7
  294. package/lib/MultiColumn.cjs +0 -1
  295. package/lib/MultiColumn.d.cts +0 -294
  296. package/lib/MultiColumn.d.ts +0 -294
  297. package/lib/MultiColumn.js +0 -8
  298. package/lib/RichTextEditor-CxvwGvQG.cjs +0 -142
  299. package/lib/RichTextEditor-DGcKEUGr.js +0 -22166
  300. package/lib/Selection.cjs +0 -1
  301. package/lib/Selection.d.cts +0 -289
  302. package/lib/Selection.d.ts +0 -289
  303. package/lib/Selection.js +0 -25
  304. package/lib/SubAndSuperScript.cjs +0 -1
  305. package/lib/SubAndSuperScript.d.cts +0 -377
  306. package/lib/SubAndSuperScript.d.ts +0 -377
  307. package/lib/SubAndSuperScript.js +0 -43
  308. package/lib/TableOfContent.cjs +0 -1
  309. package/lib/TableOfContent.d.cts +0 -291
  310. package/lib/TableOfContent.d.ts +0 -291
  311. package/lib/TableOfContent.js +0 -185
  312. package/lib/TextBubble.cjs +0 -1
  313. package/lib/TextBubble.d.cts +0 -362
  314. package/lib/TextBubble.d.ts +0 -362
  315. package/lib/TextBubble.js +0 -133
  316. package/lib/TrailingNode.cjs +0 -1
  317. package/lib/TrailingNode.d.cts +0 -297
  318. package/lib/TrailingNode.d.ts +0 -297
  319. package/lib/TrailingNode.js +0 -41
  320. package/lib/Twitter-Cutpkh3h.cjs +0 -1
  321. package/lib/bubble-extra.cjs +0 -2
  322. package/lib/bubble-extra.js +0 -631
  323. package/lib/dom-dataset-_6-diIRQ.cjs +0 -33
  324. package/lib/dom-dataset-lYeH6gfI.js +0 -2361
  325. package/lib/index-6D1J-A-o.cjs +0 -1
  326. package/lib/index-B96Cclrj.cjs +0 -3
  327. package/lib/index-BBz7Nmv9.js +0 -55
  328. package/lib/index-CUogRI7j.cjs +0 -1
  329. package/lib/index-DF2Lp4HZ.cjs +0 -100
  330. package/lib/index-D_L6n8O8.js +0 -76
  331. package/lib/index-Dbvi-Bvh.cjs +0 -1
  332. package/lib/index-DpCrt7xs.cjs +0 -1
  333. package/lib/index-DsAX1Vq8.cjs +0 -1
  334. package/lib/index-Dy4DlW9o.js +0 -12
  335. package/lib/index-J3jHHZ4d.js +0 -200
  336. package/lib/index-VvXaaKe3.js +0 -898
  337. package/lib/index-kbO3iWqL.js +0 -13432
  338. package/lib/textarea-DFo_aXnj.cjs +0 -1
package/lib/Emoji.js CHANGED
@@ -1,20 +1,25 @@
1
- import { c as A, a as x, b as z } from "./dom-dataset-lYeH6gfI.js";
2
- import { a as F, N as q, P as S, I as M, J as N, K as T, L as G, O as H, k as P, n as R, m as L } from "./index-kbO3iWqL.js";
3
- import { i as O } from "./index-J3jHHZ4d.js";
4
- import { jsx as i, jsxs as d, Fragment as K } from "react/jsx-runtime";
5
- import { useCallback as $, useState as w, forwardRef as U, useRef as V, useEffect as y, useImperativeHandle as W } from "react";
6
- import { d as j, A as Z, P as Y, o as J, p as X } from "./RichTextEditor-DGcKEUGr.js";
1
+ import { N as x, z, B as q, C as S, V as M, W as N, e as T, n as G, m as H } from "./index-DnWWK9F_.js";
2
+ import { PluginKey as w, Plugin as P } from "@tiptap/pm/state";
3
+ import { i as R, u as k } from "./updatePosition-BPmcE0YD.js";
4
+ import { a as L } from "./index-DzcKxutn.js";
5
+ import { jsx as p, jsxs as f, Fragment as I } from "react/jsx-runtime";
6
+ import { forwardRef as O, useRef as K, useState as E, useEffect as D, useImperativeHandle as V } from "react";
7
+ import { c as $ } from "./clsx-OuTLNxxd.js";
8
+ import U from "scroll-into-view-if-needed";
9
+ import { u as W } from "./index-DYkucCoF.js";
10
+ import { A as Z } from "./toggle-Cdp4IT2U.js";
11
+ import { c as b } from "./index-BPfVXs5_.js";
7
12
  import { EmojiPicker as u } from "frimousse";
8
- import { SearchIcon as Q, LoaderIcon as ee } from "lucide-react";
9
- import ae from "scroll-into-view-if-needed";
10
- import { u as oe } from "./index-LmrOdnen.js";
13
+ import { SearchIcon as J, LoaderIcon as Y } from "lucide-react";
14
+ import { u as X, b as Q } from "./useButtonProps-BsEd4zYM.js";
15
+ import { P as ee, a as ae, b as oe } from "./popover-CAuEW0Mr.js";
11
16
  const se = () => /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
12
17
  var _ = /* @__PURE__ */ new Map();
13
18
  function ne(e) {
14
19
  if (_.has(e))
15
20
  return _.get(e);
16
- var o = te(e);
17
- return _.set(e, o), o;
21
+ var a = te(e);
22
+ return _.set(e, a), a;
18
23
  }
19
24
  var te = (function() {
20
25
  var e = null;
@@ -26,17 +31,17 @@ var te = (function() {
26
31
  return function() {
27
32
  return !1;
28
33
  };
29
- var o = 25, a = 20, s = Math.floor(o / 2);
30
- return e.font = s + "px Arial, Sans-Serif", e.textBaseline = "top", e.canvas.width = a * 2, e.canvas.height = o, function(n) {
31
- e.clearRect(0, 0, a * 2, o), e.fillStyle = "#FF0000", e.fillText(n, 0, 22), e.fillStyle = "#0000FF", e.fillText(n, a, 22);
32
- for (var t = e.getImageData(0, 0, a, o).data, p = t.length, m = 0; m < p && !t[m + 3]; m += 4)
34
+ var a = 25, o = 20, s = Math.floor(a / 2);
35
+ return e.font = s + "px Arial, Sans-Serif", e.textBaseline = "top", e.canvas.width = o * 2, e.canvas.height = a, function(n) {
36
+ e.clearRect(0, 0, o * 2, a), e.fillStyle = "#FF0000", e.fillText(n, 0, 22), e.fillStyle = "#0000FF", e.fillText(n, o, 22);
37
+ for (var i = e.getImageData(0, 0, o, a).data, t = i.length, r = 0; r < t && !i[r + 3]; r += 4)
33
38
  ;
34
- if (m >= p)
39
+ if (r >= t)
35
40
  return !1;
36
- var c = a + m / 4 % a, l = Math.floor(m / 4 / a), r = e.getImageData(c, l, 1, 1).data;
37
- return !(t[m] !== r[0] || t[m + 2] !== r[2] || e.measureText(n).width >= a);
41
+ var g = o + r / 4 % o, l = Math.floor(r / 4 / o), d = e.getImageData(g, l, 1, 1).data;
42
+ return !(i[r] !== d[0] || i[r + 2] !== d[2] || e.measureText(n).width >= o);
38
43
  };
39
- })(), I = [
44
+ })(), C = [
40
45
  {
41
46
  emoji: "🇦",
42
47
  name: "regional_indicator_a",
@@ -19383,25 +19388,25 @@ var te = (function() {
19383
19388
  fallbackImage: "https://github.githubassets.com/images/icons/emoji/trollface.png"
19384
19389
  }
19385
19390
  ];
19386
- [...I, ...ie];
19391
+ [...C, ...ie];
19387
19392
  function pe(e) {
19388
19393
  return e.replace("︎", "").replace("️", "");
19389
19394
  }
19390
- function me(e, o) {
19391
- var a;
19392
- return (a = o.find((s) => s.emoji === pe(e))) == null ? void 0 : a.shortcodes[0];
19395
+ function re(e, a) {
19396
+ var o;
19397
+ return (o = a.find((s) => s.emoji === pe(e))) == null ? void 0 : o.shortcodes[0];
19393
19398
  }
19394
- function re(e, o = JSON.stringify) {
19395
- const a = {};
19399
+ function me(e, a = JSON.stringify) {
19400
+ const o = {};
19396
19401
  return e.filter((s) => {
19397
- const n = o(s);
19398
- return Object.prototype.hasOwnProperty.call(a, n) ? !1 : a[n] = !0;
19402
+ const n = a(s);
19403
+ return Object.prototype.hasOwnProperty.call(o, n) ? !1 : o[n] = !0;
19399
19404
  });
19400
19405
  }
19401
- function h(e, o) {
19402
- return o.find((a) => e === a.name || a.shortcodes.includes(e));
19406
+ function j(e, a) {
19407
+ return a.find((o) => e === o.name || o.shortcodes.includes(e));
19403
19408
  }
19404
- var le = new F("emojiSuggestion"), ce = /:([a-zA-Z0-9_+-]+):$/, ge = /(^|\s):([a-zA-Z0-9_+-]+):/g, ue = q.create({
19409
+ var le = new w("emojiSuggestion"), ce = /:([a-zA-Z0-9_+-]+):$/, ge = /(^|\s):([a-zA-Z0-9_+-]+):/g, ue = x.create({
19405
19410
  name: "emoji",
19406
19411
  inline: !0,
19407
19412
  group: "inline",
@@ -19409,44 +19414,44 @@ var le = new F("emojiSuggestion"), ce = /:([a-zA-Z0-9_+-]+):$/, ge = /(^|\s):([a
19409
19414
  addOptions() {
19410
19415
  return {
19411
19416
  HTMLAttributes: {},
19412
- emojis: I,
19417
+ emojis: C,
19413
19418
  enableEmoticons: !1,
19414
19419
  forceFallbackImages: !1,
19415
19420
  suggestion: {
19416
19421
  char: ":",
19417
19422
  pluginKey: le,
19418
- command: ({ editor: e, range: o, props: a }) => {
19423
+ command: ({ editor: e, range: a, props: o }) => {
19419
19424
  var s;
19420
19425
  const n = e.view.state.selection.$to.nodeAfter;
19421
- ((s = n == null ? void 0 : n.text) == null ? void 0 : s.startsWith(" ")) && (o.to += 1), e.chain().focus().insertContentAt(o, [
19426
+ ((s = n == null ? void 0 : n.text) == null ? void 0 : s.startsWith(" ")) && (a.to += 1), e.chain().focus().insertContentAt(a, [
19422
19427
  {
19423
19428
  type: this.name,
19424
- attrs: a
19429
+ attrs: o
19425
19430
  },
19426
19431
  {
19427
19432
  type: "text",
19428
19433
  text: " "
19429
19434
  }
19430
- ]).command(({ tr: p, state: m }) => (p.setStoredMarks(m.doc.resolve(m.selection.to - 2).marks()), !0)).run();
19435
+ ]).command(({ tr: t, state: r }) => (t.setStoredMarks(r.doc.resolve(r.selection.to - 2).marks()), !0)).run();
19431
19436
  },
19432
- allow: ({ state: e, range: o }) => {
19433
- const a = e.doc.resolve(o.from), s = e.schema.nodes[this.name];
19434
- return !!a.parent.type.contentMatch.matchType(s);
19437
+ allow: ({ state: e, range: a }) => {
19438
+ const o = e.doc.resolve(a.from), s = e.schema.nodes[this.name];
19439
+ return !!o.parent.type.contentMatch.matchType(s);
19435
19440
  }
19436
19441
  }
19437
19442
  };
19438
19443
  },
19439
19444
  addStorage() {
19440
- const { emojis: e } = this.options, o = re(e.map((a) => a.version)).filter((a) => typeof a == "number").reduce((a, s) => {
19441
- const n = e.find((t) => t.version === s && t.emoji);
19445
+ const { emojis: e } = this.options, a = me(e.map((o) => o.version)).filter((o) => typeof o == "number").reduce((o, s) => {
19446
+ const n = e.find((i) => i.version === s && i.emoji);
19442
19447
  return {
19443
- ...a,
19448
+ ...o,
19444
19449
  [s]: n ? ne(n.emoji) : !1
19445
19450
  };
19446
19451
  }, {});
19447
19452
  return {
19448
19453
  emojis: this.options.emojis,
19449
- isSupported: (a) => a.version ? o[a.version] : !1
19454
+ isSupported: (o) => o.version ? a[o.version] : !1
19450
19455
  };
19451
19456
  },
19452
19457
  addAttributes() {
@@ -19467,42 +19472,42 @@ var le = new F("emojiSuggestion"), ce = /:([a-zA-Z0-9_+-]+):$/, ge = /(^|\s):([a
19467
19472
  }
19468
19473
  ];
19469
19474
  },
19470
- renderHTML({ HTMLAttributes: e, node: o }) {
19471
- const a = h(o.attrs.name, this.options.emojis), s = L(e, this.options.HTMLAttributes, { "data-type": this.name });
19472
- if (!a)
19473
- return ["span", s, `:${o.attrs.name}:`];
19474
- const n = this.storage.isSupported(a), t = !!(a != null && a.emoji), p = !!(a != null && a.fallbackImage), m = this.options.forceFallbackImages && !t || this.options.forceFallbackImages && p || this.options.forceFallbackImages && !n && p || (!n || !t) && p;
19475
+ renderHTML({ HTMLAttributes: e, node: a }) {
19476
+ const o = j(a.attrs.name, this.options.emojis), s = H(e, this.options.HTMLAttributes, { "data-type": this.name });
19477
+ if (!o)
19478
+ return ["span", s, `:${a.attrs.name}:`];
19479
+ const n = this.storage.isSupported(o), i = !!(o != null && o.emoji), t = !!(o != null && o.fallbackImage), r = this.options.forceFallbackImages && !i || this.options.forceFallbackImages && t || this.options.forceFallbackImages && !n && t || (!n || !i) && t;
19475
19480
  return [
19476
19481
  "span",
19477
19482
  s,
19478
- m ? [
19483
+ r ? [
19479
19484
  "img",
19480
19485
  {
19481
- src: a.fallbackImage,
19486
+ src: o.fallbackImage,
19482
19487
  draggable: "false",
19483
19488
  loading: "lazy",
19484
19489
  align: "absmiddle",
19485
- alt: `${a.name} emoji`
19490
+ alt: `${o.name} emoji`
19486
19491
  }
19487
- ] : a.emoji || `:${a.shortcodes[0]}:`
19492
+ ] : o.emoji || `:${o.shortcodes[0]}:`
19488
19493
  ];
19489
19494
  },
19490
19495
  renderText({ node: e }) {
19491
- const o = h(e.attrs.name, this.options.emojis);
19492
- return (o == null ? void 0 : o.emoji) || `:${e.attrs.name}:`;
19496
+ const a = j(e.attrs.name, this.options.emojis);
19497
+ return (a == null ? void 0 : a.emoji) || `:${e.attrs.name}:`;
19493
19498
  },
19494
19499
  renderMarkdown: (e) => {
19495
- var o;
19496
- return (o = e.attrs) != null && o.name ? `:${e.attrs.name}:` : "";
19500
+ var a;
19501
+ return (a = e.attrs) != null && a.name ? `:${e.attrs.name}:` : "";
19497
19502
  },
19498
19503
  addCommands() {
19499
19504
  return {
19500
- setEmoji: (e) => ({ chain: o }) => {
19501
- const a = h(e, this.options.emojis);
19502
- return a ? (o().insertContent({
19505
+ setEmoji: (e) => ({ chain: a }) => {
19506
+ const o = j(e, this.options.emojis);
19507
+ return o ? (a().insertContent({
19503
19508
  type: this.name,
19504
19509
  attrs: {
19505
- name: a.name
19510
+ name: o.name
19506
19511
  }
19507
19512
  }).command(({ tr: s, state: n }) => (s.setStoredMarks(n.doc.resolve(n.selection.to - 1).marks()), !0)).run(), !0) : !1;
19508
19513
  }
@@ -19511,28 +19516,28 @@ var le = new F("emojiSuggestion"), ce = /:([a-zA-Z0-9_+-]+):$/, ge = /(^|\s):([a
19511
19516
  addInputRules() {
19512
19517
  const e = [];
19513
19518
  if (e.push(
19514
- new H({
19519
+ new N({
19515
19520
  find: ce,
19516
- handler: ({ range: o, match: a, chain: s }) => {
19517
- const n = a[1];
19518
- h(n, this.options.emojis) && s().insertContentAt(o, {
19521
+ handler: ({ range: a, match: o, chain: s }) => {
19522
+ const n = o[1];
19523
+ j(n, this.options.emojis) && s().insertContentAt(a, {
19519
19524
  type: this.name,
19520
19525
  attrs: {
19521
19526
  name: n
19522
19527
  }
19523
- }).command(({ tr: t, state: p }) => (t.setStoredMarks(p.doc.resolve(p.selection.to - 1).marks()), !0)).run();
19528
+ }).command(({ tr: i, state: t }) => (i.setStoredMarks(t.doc.resolve(t.selection.to - 1).marks()), !0)).run();
19524
19529
  }
19525
19530
  })
19526
19531
  ), this.options.enableEmoticons) {
19527
- const o = this.options.emojis.flatMap((s) => s.emoticons).filter((s) => s), a = new RegExp(`(?:^|\\s)(${o.map((s) => P(s)).join("|")}) $`);
19532
+ const a = this.options.emojis.flatMap((s) => s.emoticons).filter((s) => s), o = new RegExp(`(?:^|\\s)(${a.map((s) => T(s)).join("|")}) $`);
19528
19533
  e.push(
19529
- R({
19530
- find: a,
19534
+ G({
19535
+ find: o,
19531
19536
  type: this.type,
19532
19537
  getAttributes: (s) => {
19533
- const n = this.options.emojis.find((t) => {
19534
- var p;
19535
- return (p = t.emoticons) == null ? void 0 : p.includes(s[1]);
19538
+ const n = this.options.emojis.find((i) => {
19539
+ var t;
19540
+ return (t = i.emoticons) == null ? void 0 : t.includes(s[1]);
19536
19541
  });
19537
19542
  if (n)
19538
19543
  return {
@@ -19546,15 +19551,15 @@ var le = new F("emojiSuggestion"), ce = /:([a-zA-Z0-9_+-]+):$/, ge = /(^|\s):([a
19546
19551
  },
19547
19552
  addPasteRules() {
19548
19553
  return [
19549
- new G({
19554
+ new M({
19550
19555
  find: ge,
19551
- handler: ({ range: e, match: o, chain: a }) => {
19552
- const s = o[1] || "", n = o[2];
19553
- if (!h(n, this.options.emojis))
19556
+ handler: ({ range: e, match: a, chain: o }) => {
19557
+ const s = a[1] || "", n = a[2];
19558
+ if (!j(n, this.options.emojis))
19554
19559
  return;
19555
- const t = e.from + s.length, p = e.to;
19556
- a().insertContentAt(
19557
- { from: t, to: p },
19560
+ const i = e.from + s.length, t = e.to;
19561
+ o().insertContentAt(
19562
+ { from: i, to: t },
19558
19563
  {
19559
19564
  type: this.name,
19560
19565
  attrs: {
@@ -19564,26 +19569,26 @@ var le = new F("emojiSuggestion"), ce = /:([a-zA-Z0-9_+-]+):$/, ge = /(^|\s):([a
19564
19569
  {
19565
19570
  updateSelection: !1
19566
19571
  }
19567
- ).command(({ tr: m, state: c }) => (m.setStoredMarks(c.doc.resolve(c.selection.to - 1).marks()), !0)).run();
19572
+ ).command(({ tr: r, state: g }) => (r.setStoredMarks(g.doc.resolve(g.selection.to - 1).marks()), !0)).run();
19568
19573
  }
19569
19574
  })
19570
19575
  ];
19571
19576
  },
19572
19577
  addProseMirrorPlugins() {
19573
19578
  return [
19574
- O({
19579
+ R({
19575
19580
  editor: this.editor,
19576
19581
  ...this.options.suggestion
19577
19582
  }),
19578
- new S({
19579
- key: new F("emoji"),
19583
+ new P({
19584
+ key: new w("emoji"),
19580
19585
  props: {
19581
19586
  // double click to select emoji doesn’t work by default
19582
19587
  // that’s why we simulate this behavior
19583
- handleDoubleClickOn: (e, o, a) => {
19584
- if (a.type !== this.type)
19588
+ handleDoubleClickOn: (e, a, o) => {
19589
+ if (o.type !== this.type)
19585
19590
  return !1;
19586
- const s = o, n = s + a.nodeSize;
19591
+ const s = a, n = s + o.nodeSize;
19587
19592
  return this.editor.commands.setTextSelection({
19588
19593
  from: s,
19589
19594
  to: n
@@ -19591,29 +19596,29 @@ var le = new F("emojiSuggestion"), ce = /:([a-zA-Z0-9_+-]+):$/, ge = /(^|\s):([a
19591
19596
  }
19592
19597
  },
19593
19598
  // replace text emojis with emoji node on any change
19594
- appendTransaction: (e, o, a) => {
19595
- if (this.editor.view.composing || !(e.some((m) => m.docChanged) && !o.doc.eq(a.doc)))
19599
+ appendTransaction: (e, a, o) => {
19600
+ if (this.editor.view.composing || !(e.some((r) => r.docChanged) && !a.doc.eq(o.doc)))
19596
19601
  return;
19597
- const { tr: n } = a, t = M(o.doc, e);
19598
- if (N(t).forEach(({ newRange: m }) => {
19599
- if (a.doc.resolve(m.from).parent.type.spec.code)
19602
+ const { tr: n } = o, i = z(a.doc, e);
19603
+ if (q(i).forEach(({ newRange: r }) => {
19604
+ if (o.doc.resolve(r.from).parent.type.spec.code)
19600
19605
  return;
19601
- T(a.doc, m, (l) => l.type.isText).forEach(({ node: l, pos: r }) => {
19606
+ S(o.doc, r, (l) => l.type.isText).forEach(({ node: l, pos: d }) => {
19602
19607
  if (!l.text)
19603
19608
  return;
19604
- [...l.text.matchAll(se())].forEach((v) => {
19605
- if (v.index === void 0)
19609
+ [...l.text.matchAll(se())].forEach((c) => {
19610
+ if (c.index === void 0)
19606
19611
  return;
19607
- const k = v[0], D = me(k, this.options.emojis);
19608
- if (!D)
19612
+ const h = c[0], F = re(h, this.options.emojis);
19613
+ if (!F)
19609
19614
  return;
19610
- const b = n.mapping.map(r + v.index);
19611
- if (a.doc.resolve(b).parent.type.spec.code)
19615
+ const v = n.mapping.map(d + c.index);
19616
+ if (o.doc.resolve(v).parent.type.spec.code)
19612
19617
  return;
19613
- const C = b + k.length, B = this.type.create({
19614
- name: D
19618
+ const B = v + h.length, A = this.type.create({
19619
+ name: F
19615
19620
  });
19616
- n.replaceRangeWith(b, C, B), n.setStoredMarks(a.doc.resolve(b).marks());
19621
+ n.replaceRangeWith(v, B, A), n.setStoredMarks(o.doc.resolve(v).marks());
19617
19622
  });
19618
19623
  });
19619
19624
  }), !!n.steps.length)
@@ -19623,236 +19628,7 @@ var le = new F("emojiSuggestion"), ce = /:([a-zA-Z0-9_+-]+):$/, ge = /(^|\s):([a
19623
19628
  ];
19624
19629
  }
19625
19630
  }), de = ue;
19626
- function fe({
19627
- className: e,
19628
- ...o
19629
- }) {
19630
- return /* @__PURE__ */ i(
19631
- u.Root,
19632
- {
19633
- "data-slot": "emoji-picker",
19634
- className: j(
19635
- "!richtext-bg-popover !richtext-text-popover-foreground !richtext-isolate !richtext-flex richtext-h-full !richtext-w-fit !richtext-flex-col !richtext-overflow-hidden !richtext-rounded-md",
19636
- e
19637
- ),
19638
- ...o
19639
- }
19640
- );
19641
- }
19642
- function he({
19643
- className: e,
19644
- ...o
19645
- }) {
19646
- return /* @__PURE__ */ d(
19647
- "div",
19648
- {
19649
- className: j("!richtext-flex !richtext-h-9 !richtext-items-center !richtext-gap-2 !richtext-border-b !richtext-px-3", e),
19650
- "data-slot": "emoji-picker-search-wrapper",
19651
- children: [
19652
- /* @__PURE__ */ i(Q, { className: "!richtext-size-4 !richtext-shrink-0 !richtext-opacity-50" }),
19653
- /* @__PURE__ */ i(
19654
- u.Search,
19655
- {
19656
- className: "!richtext-flex !richtext-h-10 !richtext-w-full !richtext-rounded-md !richtext-border-none !richtext-bg-transparent !richtext-py-3 !richtext-text-sm !richtext-outline-none placeholder:!richtext-text-muted-foreground disabled:!richtext-cursor-not-allowed disabled:!richtext-opacity-50 ",
19657
- "data-slot": "emoji-picker-search",
19658
- ...o
19659
- }
19660
- )
19661
- ]
19662
- }
19663
- );
19664
- }
19665
- function je({ children: e, ...o }) {
19666
- return /* @__PURE__ */ i(
19667
- "div",
19668
- {
19669
- ...o,
19670
- className: "!richtext-scroll-my-1 !richtext-px-1",
19671
- "data-slot": "emoji-picker-row",
19672
- children: e
19673
- }
19674
- );
19675
- }
19676
- function be({
19677
- emoji: e,
19678
- className: o,
19679
- ...a
19680
- }) {
19681
- return /* @__PURE__ */ i(
19682
- "button",
19683
- {
19684
- ...a,
19685
- "data-slot": "emoji-picker-emoji",
19686
- className: j(
19687
- "data-[active]:!richtext-bg-accent richtext-bg-transparent !richtext-flex !richtext-size-7 !richtext-items-center !richtext-justify-center !richtext-rounded-sm !richtext-text-base",
19688
- o
19689
- ),
19690
- children: e.emoji
19691
- }
19692
- );
19693
- }
19694
- function ve({
19695
- category: e,
19696
- ...o
19697
- }) {
19698
- return /* @__PURE__ */ i(
19699
- "div",
19700
- {
19701
- ...o,
19702
- className: "!richtext-bg-popover !richtext-px-3 !richtext-pb-2 !richtext-pt-3.5 !richtext-text-xs !richtext-leading-none !richtext-text-muted-foreground",
19703
- "data-slot": "emoji-picker-category-header",
19704
- children: e.label
19705
- }
19706
- );
19707
- }
19708
- function _e({
19709
- className: e,
19710
- ...o
19711
- }) {
19712
- return /* @__PURE__ */ d(
19713
- u.Viewport,
19714
- {
19715
- className: j("!richtext-outline-hidden !richtext-relative !richtext-flex-1", e),
19716
- "data-slot": "emoji-picker-viewport",
19717
- ...o,
19718
- children: [
19719
- /* @__PURE__ */ i(
19720
- u.Loading,
19721
- {
19722
- className: "!richtext-absolute !richtext-inset-0 !richtext-flex !richtext-items-center !richtext-justify-center !richtext-text-muted-foreground",
19723
- "data-slot": "emoji-picker-loading",
19724
- children: /* @__PURE__ */ i(ee, { className: "!richtext-size-4 !richtext-animate-spin" })
19725
- }
19726
- ),
19727
- /* @__PURE__ */ i(
19728
- u.Empty,
19729
- {
19730
- className: "!richtext-absolute !richtext-inset-0 !richtext-flex !richtext-items-center !richtext-justify-center !richtext-text-sm !richtext-text-muted-foreground",
19731
- "data-slot": "emoji-picker-empty",
19732
- children: "No emoji found."
19733
- }
19734
- ),
19735
- /* @__PURE__ */ i(
19736
- u.List,
19737
- {
19738
- className: "!richtext-select-none !richtext-pb-1",
19739
- "data-slot": "emoji-picker-list",
19740
- components: {
19741
- Row: je,
19742
- Emoji: be,
19743
- CategoryHeader: ve
19744
- }
19745
- }
19746
- )
19747
- ]
19748
- }
19749
- );
19750
- }
19751
- function Fe({
19752
- className: e,
19753
- ...o
19754
- }) {
19755
- return /* @__PURE__ */ i(
19756
- "div",
19757
- {
19758
- "data-slot": "emoji-picker-footer",
19759
- className: j(
19760
- "!richtext-max-w-(--frimousse-viewport-width) !richtext-flex !richtext-w-full !richtext-min-w-0 !richtext-items-center !richtext-gap-1 !richtext-border-t !richtext-p-2",
19761
- e
19762
- ),
19763
- ...o,
19764
- children: /* @__PURE__ */ i(u.ActiveEmoji, { children: ({ emoji: a }) => a ? /* @__PURE__ */ d(K, { children: [
19765
- /* @__PURE__ */ i("div", { className: "!richtext-flex !richtext-size-7 !richtext-flex-none !richtext-items-center !richtext-justify-center !richtext-text-lg", children: a.emoji }),
19766
- /* @__PURE__ */ i("span", { className: "!richtext-truncate !richtext-text-xs !richtext-text-secondary-foreground", children: a.label })
19767
- ] }) : /* @__PURE__ */ i("span", { className: "!richtext-ml-1.5 !richtext-flex !richtext-h-7 !richtext-items-center !richtext-truncate !richtext-text-xs !richtext-text-muted-foreground", children: "Select an emoji…" }) })
19768
- }
19769
- );
19770
- }
19771
- function ke({ onSelectEmoji: e, children: o }) {
19772
- const [a, s] = w(!1);
19773
- return /* @__PURE__ */ d(
19774
- Y,
19775
- {
19776
- onOpenChange: s,
19777
- open: a,
19778
- children: [
19779
- /* @__PURE__ */ i(J, { asChild: !0, children: o }),
19780
- /* @__PURE__ */ i(X, { className: "!richtext-w-fit !richtext-p-0", children: /* @__PURE__ */ d(
19781
- fe,
19782
- {
19783
- className: "!richtext-h-[342px]",
19784
- onEmojiSelect: ({ emoji: n }) => {
19785
- s(!1), e(n);
19786
- },
19787
- children: [
19788
- /* @__PURE__ */ i(he, {}),
19789
- /* @__PURE__ */ i(_e, {}),
19790
- /* @__PURE__ */ i(Fe, {})
19791
- ]
19792
- }
19793
- ) })
19794
- ]
19795
- }
19796
- );
19797
- }
19798
- function De({ editor: e, icon: o, ...a }) {
19799
- const s = $(
19800
- (n) => {
19801
- const { selection: t } = e.state, { $anchor: p } = t;
19802
- return e.chain().insertContentAt(p.pos, n).run();
19803
- },
19804
- [e]
19805
- );
19806
- return /* @__PURE__ */ i(ke, { onSelectEmoji: s, children: /* @__PURE__ */ i(
19807
- Z,
19808
- {
19809
- icon: o,
19810
- tooltip: a == null ? void 0 : a.tooltip,
19811
- tooltipOptions: a == null ? void 0 : a.tooltipOptions
19812
- }
19813
- ) });
19814
- }
19815
- const E = U((e, o) => {
19816
- const a = V(null), [s, n] = w(0), { t } = oe(), p = (r) => {
19817
- const g = e.items[r];
19818
- g && (e.command(g), e != null && e.onClose && (e == null || e.onClose()));
19819
- }, m = () => {
19820
- n((s + e.items.length - 1) % e.items.length);
19821
- }, c = () => {
19822
- n((s + 1) % e.items.length);
19823
- }, l = () => {
19824
- p(s);
19825
- };
19826
- return y(() => n(0), [e.items]), y(() => {
19827
- if (Number.isNaN(s + 1))
19828
- return;
19829
- const r = a.current.querySelector(`span:nth-of-type(${s + 1})`);
19830
- r && ae(r, { behavior: "smooth", scrollMode: "if-needed" });
19831
- }, [s]), W(o, () => ({
19832
- onKeyDown: ({ event: r }) => r.key === "ArrowUp" ? (m(), !0) : r.key === "ArrowDown" ? (c(), !0) : r.key === "Enter" ? (l(), !0) : !1
19833
- })), /* @__PURE__ */ i("div", { className: "richtext-max-h-[320px] richtext-w-[200px] richtext-overflow-y-auto richtext-overflow-x-hidden richtext-rounded-md !richtext-border !richtext-border-[hsl(var(--richtext-border))] richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none", children: /* @__PURE__ */ i("div", { ref: a, children: e.items.length > 0 ? e.items.map((r, g) => /* @__PURE__ */ d(
19834
- "span",
19835
- {
19836
- className: A(" richtext-relative richtext-flex richtext-cursor-default richtext-select-none richtext-items-center richtext-rounded-sm richtext-px-2 richtext-py-1.5 richtext-text-sm richtext-outline-none richtext-transition-colors hover:richtext-bg-accent focus:richtext-bg-accent focus:richtext-text-accent-foreground", g === s ? "bg-accent" : ""),
19837
- onClick: () => p(g),
19838
- children: [
19839
- r.fallbackImage ? /* @__PURE__ */ i(
19840
- "img",
19841
- {
19842
- className: "richtext-size-[1em]",
19843
- src: r.fallbackImage
19844
- }
19845
- ) : r.emoji,
19846
- ":",
19847
- r.name,
19848
- ":"
19849
- ]
19850
- },
19851
- `emoji-list-code-${g}`
19852
- )) : /* @__PURE__ */ i("div", { className: "richtext-relative richtext-flex richtext-cursor-default richtext-select-none richtext-items-center richtext-rounded-sm richtext-px-2 richtext-py-1.5 richtext-text-sm richtext-outline-none richtext-transition-colors", children: /* @__PURE__ */ i("span", { children: t("no_result_found") }) }) }) });
19853
- });
19854
- E.displayName = "EmojiList";
19855
- const f = {
19631
+ const y = {
19856
19632
  100: "💯",
19857
19633
  1234: "🔢",
19858
19634
  grinning: "😀",
@@ -21691,19 +21467,253 @@ const f = {
21691
21467
  england: "🏴󠁧󠁢󠁥󠁮󠁧󠁿",
21692
21468
  scotland: "🏴󠁧󠁢󠁳󠁣󠁴󠁿",
21693
21469
  wales: "🏴󠁧󠁢󠁷󠁬󠁳󠁿"
21694
- }, Te = Object.keys(f).reduce((e, o) => {
21695
- const a = f[o];
21696
- return e[a] = o, e;
21697
- }, {}), ye = Object.keys(f).map((e) => e);
21698
- Object.keys(f).map((e) => f[e]);
21699
- function we(e) {
21700
- return ye.filter((o) => o.startsWith(e)).map((o) => ({
21701
- name: o,
21702
- emoji: f[o]
21703
- }));
21470
+ }, fe = Object.keys(y).map((e) => ({
21471
+ name: e,
21472
+ emoji: y[e]
21473
+ }));
21474
+ function he(e, a) {
21475
+ const o = a.toLowerCase();
21476
+ return e.filter(
21477
+ ({ name: s }) => s.toLowerCase().includes(o)
21478
+ );
21704
21479
  }
21705
- const Ie = 200, Ge = new F("emoji"), He = /* @__PURE__ */ de.extend({
21706
- priority: Ie,
21480
+ function je(e, a) {
21481
+ const o = K(null), [s, n] = E(0), { t: i } = W(), t = he(fe, (e == null ? void 0 : e.query) || ""), r = (m) => {
21482
+ const c = t[m];
21483
+ c && e.command(c);
21484
+ }, g = () => {
21485
+ n((s + t.length - 1) % t.length);
21486
+ }, l = () => {
21487
+ n((s + 1) % t.length);
21488
+ }, d = () => {
21489
+ r(s);
21490
+ };
21491
+ return D(() => n(0), [t]), D(() => {
21492
+ if (Number.isNaN(s + 1))
21493
+ return;
21494
+ const m = o.current.querySelector(`span:nth-of-type(${s + 1})`);
21495
+ m && U(m, { behavior: "smooth", scrollMode: "if-needed" });
21496
+ }, [s]), V(a, () => ({
21497
+ onKeyDown: ({ event: m }) => m.key === "ArrowUp" ? (g(), !0) : m.key === "ArrowDown" ? (l(), !0) : m.key === "Enter" ? (d(), !0) : !1
21498
+ })), /* @__PURE__ */ p("div", { className: "richtext-max-h-[320px] richtext-w-[200px] richtext-overflow-y-auto richtext-overflow-x-hidden richtext-rounded-md !richtext-border !richtext-border-solid !richtext-border-[hsl(var(--richtext-border))] richtext-bg-popover richtext-p-1 richtext-text-popover-foreground richtext-shadow-md richtext-outline-none", children: /* @__PURE__ */ p("div", { ref: o, children: t.length > 0 ? t.map(({ name: m, emoji: c }, h) => /* @__PURE__ */ f(
21499
+ "span",
21500
+ {
21501
+ onClick: () => r(h),
21502
+ className: $("richtext-flex richtext-w-full richtext-items-center richtext-gap-3 richtext-rounded-sm !richtext-border-none !richtext-bg-transparent richtext-px-2 richtext-py-1.5 richtext-text-left richtext-text-sm !richtext-text-neutral-800 !richtext-outline-none richtext-transition-colors hover:!richtext-bg-accent dark:!richtext-text-neutral-200", {
21503
+ "bg-item-active": h === s
21504
+ }),
21505
+ children: [
21506
+ c,
21507
+ ":",
21508
+ m,
21509
+ ":"
21510
+ ]
21511
+ },
21512
+ `emoji-list-code-${m}`
21513
+ )) : /* @__PURE__ */ p("div", { className: "richtext-relative richtext-flex richtext-cursor-default richtext-select-none richtext-items-center richtext-rounded-sm richtext-px-2 richtext-py-1.5 richtext-text-sm richtext-outline-none richtext-transition-colors", children: /* @__PURE__ */ p("span", { children: i("no_result_found") }) }) }) });
21514
+ }
21515
+ const be = O(je);
21516
+ function ve({
21517
+ className: e,
21518
+ ...a
21519
+ }) {
21520
+ return /* @__PURE__ */ p(
21521
+ u.Root,
21522
+ {
21523
+ "data-slot": "emoji-picker",
21524
+ className: b(
21525
+ "!richtext-bg-popover !richtext-text-popover-foreground !richtext-isolate !richtext-flex richtext-h-full !richtext-w-fit !richtext-flex-col !richtext-overflow-hidden !richtext-rounded-md",
21526
+ e
21527
+ ),
21528
+ ...a
21529
+ }
21530
+ );
21531
+ }
21532
+ function _e({
21533
+ className: e,
21534
+ ...a
21535
+ }) {
21536
+ return /* @__PURE__ */ f(
21537
+ "div",
21538
+ {
21539
+ className: b("!richtext-flex !richtext-h-9 !richtext-items-center !richtext-gap-2 !richtext-border-b !richtext-px-3", e),
21540
+ "data-slot": "emoji-picker-search-wrapper",
21541
+ children: [
21542
+ /* @__PURE__ */ p(J, { className: "!richtext-size-4 !richtext-shrink-0 !richtext-opacity-50" }),
21543
+ /* @__PURE__ */ p(
21544
+ u.Search,
21545
+ {
21546
+ className: "!richtext-flex !richtext-h-10 !richtext-w-full !richtext-rounded-md !richtext-border-none !richtext-bg-transparent !richtext-py-3 !richtext-text-sm !richtext-outline-none placeholder:!richtext-text-muted-foreground disabled:!richtext-cursor-not-allowed disabled:!richtext-opacity-50 ",
21547
+ "data-slot": "emoji-picker-search",
21548
+ ...a
21549
+ }
21550
+ )
21551
+ ]
21552
+ }
21553
+ );
21554
+ }
21555
+ function Fe({ children: e, ...a }) {
21556
+ return /* @__PURE__ */ p(
21557
+ "div",
21558
+ {
21559
+ ...a,
21560
+ className: "!richtext-scroll-my-1 !richtext-px-1",
21561
+ "data-slot": "emoji-picker-row",
21562
+ children: e
21563
+ }
21564
+ );
21565
+ }
21566
+ function ke({
21567
+ emoji: e,
21568
+ className: a,
21569
+ ...o
21570
+ }) {
21571
+ return /* @__PURE__ */ p(
21572
+ "button",
21573
+ {
21574
+ ...o,
21575
+ "data-slot": "emoji-picker-emoji",
21576
+ className: b(
21577
+ "data-[active]:!richtext-bg-accent richtext-bg-transparent !richtext-flex !richtext-size-7 !richtext-items-center !richtext-justify-center !richtext-rounded-sm !richtext-text-base",
21578
+ a
21579
+ ),
21580
+ children: e.emoji
21581
+ }
21582
+ );
21583
+ }
21584
+ function De({
21585
+ category: e,
21586
+ ...a
21587
+ }) {
21588
+ return /* @__PURE__ */ p(
21589
+ "div",
21590
+ {
21591
+ ...a,
21592
+ className: "!richtext-bg-popover !richtext-px-3 !richtext-pb-2 !richtext-pt-3.5 !richtext-text-xs !richtext-leading-none !richtext-text-muted-foreground",
21593
+ "data-slot": "emoji-picker-category-header",
21594
+ children: e.label
21595
+ }
21596
+ );
21597
+ }
21598
+ function ye({
21599
+ className: e,
21600
+ ...a
21601
+ }) {
21602
+ return /* @__PURE__ */ f(
21603
+ u.Viewport,
21604
+ {
21605
+ className: b("!richtext-outline-hidden !richtext-relative !richtext-flex-1", e),
21606
+ "data-slot": "emoji-picker-viewport",
21607
+ ...a,
21608
+ children: [
21609
+ /* @__PURE__ */ p(
21610
+ u.Loading,
21611
+ {
21612
+ className: "!richtext-absolute !richtext-inset-0 !richtext-flex !richtext-items-center !richtext-justify-center !richtext-text-muted-foreground",
21613
+ "data-slot": "emoji-picker-loading",
21614
+ children: /* @__PURE__ */ p(Y, { className: "!richtext-size-4 !richtext-animate-spin" })
21615
+ }
21616
+ ),
21617
+ /* @__PURE__ */ p(
21618
+ u.Empty,
21619
+ {
21620
+ className: "!richtext-absolute !richtext-inset-0 !richtext-flex !richtext-items-center !richtext-justify-center !richtext-text-sm !richtext-text-muted-foreground",
21621
+ "data-slot": "emoji-picker-empty",
21622
+ children: "No emoji found."
21623
+ }
21624
+ ),
21625
+ /* @__PURE__ */ p(
21626
+ u.List,
21627
+ {
21628
+ className: "!richtext-select-none !richtext-pb-1",
21629
+ "data-slot": "emoji-picker-list",
21630
+ components: {
21631
+ Row: Fe,
21632
+ Emoji: ke,
21633
+ CategoryHeader: De
21634
+ }
21635
+ }
21636
+ )
21637
+ ]
21638
+ }
21639
+ );
21640
+ }
21641
+ function we({
21642
+ className: e,
21643
+ ...a
21644
+ }) {
21645
+ return /* @__PURE__ */ p(
21646
+ "div",
21647
+ {
21648
+ "data-slot": "emoji-picker-footer",
21649
+ className: b(
21650
+ "!richtext-max-w-(--frimousse-viewport-width) !richtext-flex !richtext-w-full !richtext-min-w-0 !richtext-items-center !richtext-gap-1 !richtext-border-t !richtext-p-2",
21651
+ e
21652
+ ),
21653
+ ...a,
21654
+ children: /* @__PURE__ */ p(u.ActiveEmoji, { children: ({ emoji: o }) => o ? /* @__PURE__ */ f(I, { children: [
21655
+ /* @__PURE__ */ p("div", { className: "!richtext-flex !richtext-size-7 !richtext-flex-none !richtext-items-center !richtext-justify-center !richtext-text-lg", children: o.emoji }),
21656
+ /* @__PURE__ */ p("span", { className: "!richtext-truncate !richtext-text-xs !richtext-text-secondary-foreground", children: o.label })
21657
+ ] }) : /* @__PURE__ */ p("span", { className: "!richtext-ml-1.5 !richtext-flex !richtext-h-7 !richtext-items-center !richtext-truncate !richtext-text-xs !richtext-text-muted-foreground", children: "Select an emoji…" }) })
21658
+ }
21659
+ );
21660
+ }
21661
+ function Ie({ onSelectEmoji: e, children: a, disabled: o }) {
21662
+ const [s, n] = E(!1);
21663
+ return /* @__PURE__ */ f(
21664
+ ee,
21665
+ {
21666
+ onOpenChange: (t) => {
21667
+ o || n(t);
21668
+ },
21669
+ open: s,
21670
+ children: [
21671
+ /* @__PURE__ */ p(ae, { asChild: !0, children: a }),
21672
+ /* @__PURE__ */ p(oe, { className: "!richtext-w-fit !richtext-p-0", children: /* @__PURE__ */ f(
21673
+ ve,
21674
+ {
21675
+ className: "!richtext-h-[342px]",
21676
+ onEmojiSelect: ({ emoji: t }) => {
21677
+ e(t), n(!1);
21678
+ },
21679
+ children: [
21680
+ /* @__PURE__ */ p(_e, {}),
21681
+ /* @__PURE__ */ p(ye, {}),
21682
+ /* @__PURE__ */ p(we, {})
21683
+ ]
21684
+ }
21685
+ ) })
21686
+ ]
21687
+ }
21688
+ );
21689
+ }
21690
+ function Ke() {
21691
+ const e = X(Ce.name), {
21692
+ icon: a = void 0,
21693
+ tooltip: o = void 0,
21694
+ isActive: s = void 0,
21695
+ action: n
21696
+ } = (e == null ? void 0 : e.componentProps) ?? {}, { disabled: i } = Q(s);
21697
+ return e ? /* @__PURE__ */ p(
21698
+ Ie,
21699
+ {
21700
+ disabled: i,
21701
+ onSelectEmoji: (r) => {
21702
+ i || n && n(r);
21703
+ },
21704
+ children: /* @__PURE__ */ p(
21705
+ Z,
21706
+ {
21707
+ icon: a,
21708
+ tooltip: o,
21709
+ disabled: i
21710
+ }
21711
+ )
21712
+ }
21713
+ ) : /* @__PURE__ */ p(I, {});
21714
+ }
21715
+ const Ee = 200, Ce = /* @__PURE__ */ de.extend({
21716
+ priority: Ee,
21707
21717
  // emojis: gitHubEmojis,
21708
21718
  enableEmoticons: !0,
21709
21719
  //@ts-expect-error
@@ -21712,76 +21722,51 @@ const Ie = 200, Ge = new F("emoji"), He = /* @__PURE__ */ de.extend({
21712
21722
  return {
21713
21723
  ...(e = this.parent) == null ? void 0 : e.call(this),
21714
21724
  HTMLAttributes: {},
21715
- button: ({ editor: o, t: a }) => ({
21716
- component: De,
21725
+ button: ({ editor: a, t: o }) => ({
21717
21726
  componentProps: {
21718
- editor: o,
21719
- action: () => {
21727
+ editor: a,
21728
+ action: (s) => {
21729
+ const { selection: n } = a.state, { $anchor: i } = n;
21730
+ a.chain().focus().insertContentAt(i.pos, s).run();
21720
21731
  },
21721
- isActive: () => !1,
21722
- disabled: !1,
21732
+ isActive: () => !0,
21723
21733
  icon: "EmojiIcon",
21724
- tooltip: a("editor.emoji.tooltip")
21734
+ tooltip: o("editor.emoji.tooltip")
21725
21735
  }
21726
21736
  })
21727
21737
  };
21728
21738
  }
21729
21739
  }).configure({
21730
21740
  suggestion: {
21731
- items: ({ query: e }) => we(e),
21741
+ // items: ({ query }: any) => {
21742
+ // return emojiSearch(query);
21743
+ // },
21732
21744
  allowSpaces: !1,
21733
21745
  render: () => {
21734
21746
  let e;
21735
- function o(s) {
21736
- if (!e || !e.element)
21737
- return;
21738
- z({
21739
- getBoundingClientRect() {
21740
- return s;
21741
- }
21742
- }, e.element, {
21743
- placement: "bottom-start"
21744
- }).then((t) => {
21745
- Object.assign(e.element.style, {
21746
- left: `${t.x}px`,
21747
- top: `${t.y}px`,
21748
- position: t.strategy === "fixed" ? "fixed" : "absolute"
21749
- });
21750
- });
21751
- }
21752
- const a = () => {
21753
- e && (document.body.contains(e.element) && document.body.removeChild(e.element), e.destroy());
21754
- };
21755
21747
  return {
21756
- onStart: (s) => {
21757
- a(), e = new x(E, {
21758
- props: {
21759
- ...s,
21760
- onClose: a
21761
- },
21762
- editor: s.editor
21763
- }), document.body.appendChild(e.element), o(s.clientRect());
21748
+ onStart: (a) => {
21749
+ a.clientRect && (e = new L(be, {
21750
+ props: a,
21751
+ editor: a.editor
21752
+ }), e.element.style.position = "absolute", document.body.appendChild(e.element), k(a.editor, e.element));
21753
+ },
21754
+ onUpdate(a) {
21755
+ e.updateProps(a), a.clientRect && k(a.editor, e.element);
21764
21756
  },
21765
- onUpdate(s) {
21766
- e.updateProps(s), o(s.clientRect());
21757
+ onKeyDown(a) {
21758
+ var o;
21759
+ return a.event.key === "Escape" ? (e.destroy(), e.element.remove(), !0) : (o = e.ref) == null ? void 0 : o.onKeyDown(a);
21767
21760
  },
21768
- onKeyDown(s) {
21769
- var n;
21770
- return s.event.key === "Escape" ? (document.body.removeChild(e.element), e.destroy(), !0) : (n = e.ref) == null ? void 0 : n.onKeyDown(s);
21761
+ onExit() {
21762
+ e.destroy(), e.element.remove();
21771
21763
  }
21772
- // onExit() {
21773
- // if (document.body.contains(component.element)) {
21774
- // document.body.removeChild(component.element);
21775
- // }
21776
- // component.destroy();
21777
- // },
21778
21764
  };
21779
21765
  }
21780
21766
  }
21781
21767
  });
21782
21768
  export {
21783
- Ie as EXTENSION_PRIORITY_HIGHEST,
21784
- He as Emoji,
21785
- Ge as EmojiPluginKey,
21786
- Te as emojisToName
21769
+ Ee as EXTENSION_PRIORITY_HIGHEST,
21770
+ Ce as Emoji,
21771
+ Ke as RichTextEmoji
21787
21772
  };