reactjs-tiptap-editor 0.4.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +32 -44
  5. package/lib/Attachment.d.ts +32 -44
  6. package/lib/Attachment.js +129 -99
  7. package/lib/Blockquote.cjs +3 -3
  8. package/lib/Blockquote.d.cts +32 -44
  9. package/lib/Blockquote.d.ts +32 -44
  10. package/lib/Blockquote.js +50 -22
  11. package/lib/Bold.cjs +1 -1
  12. package/lib/Bold.d.cts +32 -44
  13. package/lib/Bold.d.ts +32 -44
  14. package/lib/Bold.js +48 -20
  15. package/lib/BulletList.cjs +1 -1
  16. package/lib/BulletList.d.cts +32 -44
  17. package/lib/BulletList.d.ts +32 -44
  18. package/lib/BulletList.js +38 -9
  19. package/lib/Clear.cjs +1 -1
  20. package/lib/Clear.d.cts +32 -44
  21. package/lib/Clear.d.ts +32 -44
  22. package/lib/Clear.js +32 -6
  23. package/lib/Code.cjs +1 -1
  24. package/lib/Code.d.cts +32 -44
  25. package/lib/Code.d.ts +32 -44
  26. package/lib/Code.js +53 -25
  27. package/lib/CodeBlock.cjs +35 -35
  28. package/lib/CodeBlock.d.cts +32 -44
  29. package/lib/CodeBlock.d.ts +32 -44
  30. package/lib/CodeBlock.js +605 -590
  31. package/lib/CodeView.cjs +1 -1
  32. package/lib/CodeView.d.cts +33 -45
  33. package/lib/CodeView.d.ts +33 -45
  34. package/lib/CodeView.js +49 -21
  35. package/lib/Color.cjs +1 -1
  36. package/lib/Color.d.cts +36 -44
  37. package/lib/Color.d.ts +36 -44
  38. package/lib/Color.js +123 -79
  39. package/lib/Column.cjs +1 -0
  40. package/lib/{Document.d.cts → Column.d.cts} +38 -47
  41. package/lib/{Document.d.ts → Column.d.ts} +38 -47
  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 +32 -44
  47. package/lib/Drawer.d.ts +32 -44
  48. package/lib/Drawer.js +6 -5
  49. package/lib/Emoji.cjs +1 -1
  50. package/lib/Emoji.d.cts +32 -49
  51. package/lib/Emoji.d.ts +32 -49
  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 +32 -44
  57. package/lib/Excalidraw.d.ts +32 -44
  58. package/lib/Excalidraw.js +6 -4
  59. package/lib/ExportPdf.cjs +5 -5
  60. package/lib/ExportPdf.d.cts +32 -44
  61. package/lib/ExportPdf.d.ts +32 -44
  62. package/lib/ExportPdf.js +60 -32
  63. package/lib/ExportWord.cjs +1 -1
  64. package/lib/ExportWord.d.cts +33 -45
  65. package/lib/ExportWord.d.ts +33 -45
  66. package/lib/ExportWord.js +84 -21
  67. package/lib/FontFamily.cjs +1 -1
  68. package/lib/FontFamily.d.cts +46 -47
  69. package/lib/FontFamily.d.ts +46 -47
  70. package/lib/FontFamily.js +72 -74
  71. package/lib/FontSize.cjs +1 -1
  72. package/lib/FontSize.d.cts +43 -47
  73. package/lib/FontSize.d.ts +43 -47
  74. package/lib/FontSize.js +72 -64
  75. package/lib/Heading.cjs +1 -1
  76. package/lib/Heading.d.cts +46 -44
  77. package/lib/Heading.d.ts +46 -44
  78. package/lib/Heading.js +91 -73
  79. package/lib/Highlight.cjs +1 -1
  80. package/lib/Highlight.d.cts +36 -44
  81. package/lib/Highlight.d.ts +36 -44
  82. package/lib/Highlight.js +152 -21
  83. package/lib/History.cjs +1 -1
  84. package/lib/History.d.cts +34 -44
  85. package/lib/History.d.ts +34 -44
  86. package/lib/History.js +976 -53
  87. package/lib/HorizontalRule.cjs +1 -1
  88. package/lib/HorizontalRule.d.cts +32 -44
  89. package/lib/HorizontalRule.d.ts +32 -44
  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 +31 -50
  97. package/lib/Iframe.d.ts +31 -50
  98. package/lib/Iframe.js +6 -4
  99. package/lib/Image.cjs +1 -1
  100. package/lib/Image.d.cts +32 -45
  101. package/lib/Image.d.ts +32 -45
  102. package/lib/Image.js +848 -5
  103. package/lib/ImageGif.cjs +1 -1
  104. package/lib/ImageGif.d.cts +33 -47
  105. package/lib/ImageGif.d.ts +33 -47
  106. package/lib/ImageGif.js +424 -5
  107. package/lib/ImportWord.cjs +48 -48
  108. package/lib/ImportWord.d.cts +33 -45
  109. package/lib/ImportWord.d.ts +33 -45
  110. package/lib/ImportWord.js +2596 -2588
  111. package/lib/Indent.cjs +1 -1
  112. package/lib/Indent.d.cts +32 -44
  113. package/lib/Indent.d.ts +32 -44
  114. package/lib/Indent.js +97 -27
  115. package/lib/Italic.cjs +1 -1
  116. package/lib/Italic.d.cts +32 -44
  117. package/lib/Italic.d.ts +32 -44
  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 +32 -44
  123. package/lib/Katex.d.ts +32 -44
  124. package/lib/Katex.js +5 -196
  125. package/lib/LineHeight.cjs +1 -1
  126. package/lib/LineHeight.d.cts +34 -50
  127. package/lib/LineHeight.d.ts +34 -50
  128. package/lib/LineHeight.js +71 -112
  129. package/lib/Link.cjs +1 -1
  130. package/lib/Link.d.cts +33 -47
  131. package/lib/Link.d.ts +33 -47
  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 +29 -44
  137. package/lib/Mention.d.ts +29 -44
  138. package/lib/Mention.js +112 -124
  139. package/lib/Mermaid.cjs +2 -2
  140. package/lib/Mermaid.d.cts +32 -44
  141. package/lib/Mermaid.d.ts +32 -44
  142. package/lib/Mermaid.js +177 -165
  143. package/lib/MoreMark.cjs +1 -1
  144. package/lib/MoreMark.d.cts +47 -46
  145. package/lib/MoreMark.d.ts +47 -46
  146. package/lib/MoreMark.js +125 -55
  147. package/lib/OrderedList.cjs +1 -1
  148. package/lib/OrderedList.d.cts +32 -44
  149. package/lib/OrderedList.d.ts +32 -44
  150. package/lib/OrderedList.js +37 -9
  151. package/lib/SearchAndReplace.cjs +1 -1
  152. package/lib/SearchAndReplace.d.cts +32 -47
  153. package/lib/SearchAndReplace.d.ts +32 -47
  154. package/lib/SearchAndReplace.js +221 -197
  155. package/lib/SlashCommand.cjs +1 -1
  156. package/lib/SlashCommand.d.cts +44 -51
  157. package/lib/SlashCommand.d.ts +44 -51
  158. package/lib/SlashCommand.js +235 -249
  159. package/lib/Strike.cjs +1 -1
  160. package/lib/Strike.d.cts +32 -44
  161. package/lib/Strike.d.ts +32 -44
  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 +33 -47
  167. package/lib/Table.d.ts +33 -47
  168. package/lib/Table.js +3 -558
  169. package/lib/TaskList.cjs +1 -1
  170. package/lib/TaskList.d.cts +32 -44
  171. package/lib/TaskList.d.ts +32 -44
  172. package/lib/TaskList.js +38 -10
  173. package/lib/TextAlign.cjs +1 -1
  174. package/lib/TextAlign.d.cts +45 -44
  175. package/lib/TextAlign.d.ts +45 -44
  176. package/lib/TextAlign.js +108 -101
  177. package/lib/TextDirection.cjs +1 -1
  178. package/lib/TextDirection.d.cts +61 -44
  179. package/lib/TextDirection.d.ts +61 -44
  180. package/lib/TextDirection.js +105 -112
  181. package/lib/TextUnderline.cjs +1 -1
  182. package/lib/TextUnderline.d.cts +32 -44
  183. package/lib/TextUnderline.d.ts +32 -44
  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 +32 -44
  189. package/lib/Twitter.d.ts +32 -44
  190. package/lib/Twitter.js +5 -4
  191. package/lib/Video.cjs +1 -1
  192. package/lib/Video.d.cts +32 -44
  193. package/lib/Video.d.ts +32 -44
  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} +58 -59
  199. package/lib/{bubble-extra.d.ts → bubble.d.ts} +58 -59
  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 +34 -285
  235. package/lib/index.d.ts +34 -285
  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 +5410 -62
  245. package/lib/locale-bundle.d.ts +5410 -62
  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/Table.cjs CHANGED
@@ -1,9 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const g=require("./index-DF2Lp4HZ.cjs"),c=require("./RichTextEditor-CxvwGvQG.cjs"),w=require("react/jsx-runtime"),_=require("react"),x=require("./index-6D1J-A-o.cjs");var N=g.Node3.create({name:"tableCell",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{var t,l;const r=e.getAttribute("colwidth"),o=r?r.split(",").map(n=>parseInt(n,10)):null;if(!o){const n=(t=e.closest("table"))==null?void 0:t.querySelectorAll("colgroup > col"),i=Array.from(((l=e.parentElement)==null?void 0:l.children)||[]).indexOf(e);if(i&&i>-1&&n&&n[i]){const a=n[i].getAttribute("width");return a?[parseInt(a,10)]:null}}return o}}}},tableRole:"cell",isolating:!0,parseHTML(){return[{tag:"td"}]},renderHTML({HTMLAttributes:e}){return["td",g.mergeAttributes(this.options.HTMLAttributes,e),0]}}),D=g.Node3.create({name:"tableHeader",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:e=>{const t=e.getAttribute("colwidth");return t?t.split(",").map(r=>parseInt(r,10)):null}}}},tableRole:"header_cell",isolating:!0,parseHTML(){return[{tag:"th"}]},renderHTML({HTMLAttributes:e}){return["th",g.mergeAttributes(this.options.HTMLAttributes,e),0]}}),W=g.Node3.create({name:"tableRow",addOptions(){return{HTMLAttributes:{}}},content:"(tableCell | tableHeader)*",tableRole:"row",parseHTML(){return[{tag:"tr"}]},renderHTML({HTMLAttributes:e}){return["tr",g.mergeAttributes(this.options.HTMLAttributes,e),0]}});function R(e,t){return t?["width",`${Math.max(t,e)}px`]:["min-width",`${e}px`]}function v(e,t,l,r,o,n){var i;let a=0,C=!0,d=t.firstChild;const m=e.firstChild;if(m!==null)for(let f=0,p=0;f<m.childCount;f+=1){const{colspan:h,colwidth:b}=m.child(f).attrs;for(let s=0;s<h;s+=1,p+=1){const T=o===p?n:b&&b[s],y=T?`${T}px`:"";if(a+=T||r,T||(C=!1),d){if(d.style.width!==y){const[A,E]=R(r,T);d.style.setProperty(A,E)}d=d.nextSibling}else{const A=document.createElement("col"),[E,S]=R(r,T);A.style.setProperty(E,S),t.appendChild(A)}}}for(;d;){const f=d.nextSibling;(i=d.parentNode)==null||i.removeChild(d),d=f}const u=e.attrs.style&&typeof e.attrs.style=="string"&&/\bwidth\s*:/i.test(e.attrs.style);C&&!u?(l.style.width=`${a}px`,l.style.minWidth=""):(l.style.width="",l.style.minWidth=`${a}px`)}var $=class{constructor(e,t){this.node=e,this.cellMinWidth=t,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table")),e.attrs.style&&(this.table.style.cssText=e.attrs.style),this.colgroup=this.table.appendChild(document.createElement("colgroup")),v(e,this.colgroup,this.table,t),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(e){return e.type!==this.node.type?!1:(this.node=e,v(e,this.colgroup,this.table,this.cellMinWidth),!0)}ignoreMutation(e){const t=e.target,l=this.dom.contains(t),r=this.contentDOM.contains(t);return!!(l&&!r&&(e.type==="attributes"||e.type==="childList"||e.type==="characterData"))}};function O(e,t,l,r){let o=0,n=!0;const i=[],a=e.firstChild;if(!a)return{};for(let u=0,f=0;u<a.childCount;u+=1){const{colspan:p,colwidth:h}=a.child(u).attrs;for(let b=0;b<p;b+=1,f+=1){const s=l===f?r:h&&h[b];o+=s||t,s||(n=!1);const[T,y]=R(t,s);i.push(["col",{style:`${T}: ${y}`}])}}const C=n?`${o}px`:"",d=n?"":`${o}px`;return{colgroup:["colgroup",{},...i],tableWidth:C,tableMinWidth:d}}function L(e,t){return e.createAndFill()}function z(e){if(e.cached.tableNodeTypes)return e.cached.tableNodeTypes;const t={};return Object.keys(e.nodes).forEach(l=>{const r=e.nodes[l];r.spec.tableRole&&(t[r.spec.tableRole]=r)}),e.cached.tableNodeTypes=t,t}function G(e,t,l,r,o){const n=z(e),i=[],a=[];for(let d=0;d<l;d+=1){const m=L(n.cell);if(m&&a.push(m),r){const u=L(n.header_cell);u&&i.push(u)}}const C=[];for(let d=0;d<t;d+=1)C.push(n.row.createChecked(null,r&&d===0?i:a));return n.table.createChecked(null,C)}function P(e){return e instanceof c.CellSelection}var M=({editor:e})=>{const{selection:t}=e.state;if(!P(t))return!1;let l=0;const r=g.findParentNodeClosestToPos(t.ranges[0].$from,n=>n.type.name==="table");return r==null||r.node.descendants(n=>{if(n.type.name==="table")return!1;["tableCell","tableHeader"].includes(n.type.name)&&(l+=1)}),l===t.ranges.length?(e.commands.deleteTable(),!0):!1},Z="";function F(e){return(e||"").replace(/\s+/g," ").trim()}function V(e,t,l={}){var r;const o=(r=l.cellLineSeparator)!=null?r:Z;if(!e||!e.content||e.content.length===0)return"";const n=[];e.content.forEach(h=>{const b=[];h.content&&h.content.forEach(s=>{let T="";s.content&&Array.isArray(s.content)&&s.content.length>1?T=s.content.map(S=>t.renderChildren(S)).join(o):T=s.content?t.renderChildren(s.content):"";const y=F(T),A=s.type==="tableHeader";b.push({text:y,isHeader:A})}),n.push(b)});const i=n.reduce((h,b)=>Math.max(h,b.length),0);if(i===0)return"";const a=new Array(i).fill(0);n.forEach(h=>{var b;for(let s=0;s<i;s+=1){const y=(((b=h[s])==null?void 0:b.text)||"").length;y>a[s]&&(a[s]=y),a[s]<3&&(a[s]=3)}});const C=(h,b)=>h+" ".repeat(Math.max(0,b-h.length)),d=n[0],m=d.some(h=>h.isHeader);let u=`
2
- `;const f=new Array(i).fill(0).map((h,b)=>m&&d[b]&&d[b].text||"");return u+=`| ${f.map((h,b)=>C(h,a[b])).join(" | ")} |
3
- `,u+=`| ${a.map(h=>"-".repeat(Math.max(3,h))).join(" | ")} |
4
- `,(m?n.slice(1):n).forEach(h=>{u+=`| ${new Array(i).fill(0).map((b,s)=>C(h[s]&&h[s].text||"",a[s])).join(" | ")} |
5
- `}),u}var q=V,B=g.Node3.create({name:"table",addOptions(){return{HTMLAttributes:{},resizable:!1,renderWrapper:!1,handleWidth:5,cellMinWidth:25,View:$,lastColumnResizable:!0,allowTableNodeSelection:!1}},content:"tableRow+",tableRole:"table",isolating:!0,group:"block",parseHTML(){return[{tag:"table"}]},renderHTML({node:e,HTMLAttributes:t}){const{colgroup:l,tableWidth:r,tableMinWidth:o}=O(e,this.options.cellMinWidth),n=t.style;function i(){return n||(r?`width: ${r}`:`min-width: ${o}`)}const a=["table",g.mergeAttributes(this.options.HTMLAttributes,t,{style:i()}),l,["tbody",0]];return this.options.renderWrapper?["div",{class:"tableWrapper"},a]:a},parseMarkdown:(e,t)=>{const l=[];if(e.header){const r=[];e.header.forEach(o=>{r.push(t.createNode("tableHeader",{},[{type:"paragraph",content:t.parseInline(o.tokens)}]))}),l.push(t.createNode("tableRow",{},r))}return e.rows&&e.rows.forEach(r=>{const o=[];r.forEach(n=>{o.push(t.createNode("tableCell",{},[{type:"paragraph",content:t.parseInline(n.tokens)}]))}),l.push(t.createNode("tableRow",{},o))}),t.createNode("table",void 0,l)},renderMarkdown:(e,t)=>q(e,t),addCommands(){return{insertTable:({rows:e=3,cols:t=3,withHeaderRow:l=!0}={})=>({tr:r,dispatch:o,editor:n})=>{const i=G(n.schema,e,t,l);if(o){const a=r.selection.from+1;r.replaceSelectionWith(i).scrollIntoView().setSelection(g.TextSelection.near(r.doc.resolve(a)))}return!0},addColumnBefore:()=>({state:e,dispatch:t})=>c.addColumnBefore(e,t),addColumnAfter:()=>({state:e,dispatch:t})=>c.addColumnAfter(e,t),deleteColumn:()=>({state:e,dispatch:t})=>c.deleteColumn(e,t),addRowBefore:()=>({state:e,dispatch:t})=>c.addRowBefore(e,t),addRowAfter:()=>({state:e,dispatch:t})=>c.addRowAfter(e,t),deleteRow:()=>({state:e,dispatch:t})=>c.deleteRow(e,t),deleteTable:()=>({state:e,dispatch:t})=>c.deleteTable(e,t),mergeCells:()=>({state:e,dispatch:t})=>c.mergeCells(e,t),splitCell:()=>({state:e,dispatch:t})=>c.splitCell(e,t),toggleHeaderColumn:()=>({state:e,dispatch:t})=>c.toggleHeader("column")(e,t),toggleHeaderRow:()=>({state:e,dispatch:t})=>c.toggleHeader("row")(e,t),toggleHeaderCell:()=>({state:e,dispatch:t})=>c.toggleHeaderCell(e,t),mergeOrSplit:()=>({state:e,dispatch:t})=>c.mergeCells(e,t)?!0:c.splitCell(e,t),setCellAttribute:(e,t)=>({state:l,dispatch:r})=>c.setCellAttr(e,t)(l,r),goToNextCell:()=>({state:e,dispatch:t})=>c.goToNextCell(1)(e,t),goToPreviousCell:()=>({state:e,dispatch:t})=>c.goToNextCell(-1)(e,t),fixTables:()=>({state:e,dispatch:t})=>(t&&c.fixTables(e),!0),setCellSelection:e=>({tr:t,dispatch:l})=>{if(l){const r=c.CellSelection.create(t.doc,e.anchorCell,e.headCell);t.setSelection(r)}return!0}}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.goToNextCell()?!0:this.editor.can().addRowAfter()?this.editor.chain().addRowAfter().goToNextCell().run():!1,"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:M,"Mod-Backspace":M,Delete:M,"Mod-Delete":M}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[c.columnResizing({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,defaultCellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],c.tableEditing({allowTableNodeSelection:this.options.allowTableNodeSelection})]},extendNodeSchema(e){const t={name:e.name,options:e.options,storage:e.storage};return{tableRole:g.callOrReturn(g.getExtensionField(e,"tableRole",t))}}});g.Extension.create({name:"tableKit",addExtensions(){const e=[];return this.options.table!==!1&&e.push(B.configure(this.options.table)),this.options.tableCell!==!1&&e.push(N.configure(this.options.tableCell)),this.options.tableHeader!==!1&&e.push(D.configure(this.options.tableHeader)),this.options.tableRow!==!1&&e.push(W.configure(this.options.tableRow)),e}});const U=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,K=/CrOS/,X=/android|ipad|playbook|silk/i;function I(e={}){let t=e.ua||typeof navigator<"u"&&navigator.userAgent;return t&&typeof t=="object"&&t.headers&&typeof t.headers["user-agent"]=="string"&&(t=t.headers["user-agent"]),typeof t!="string"?!1:!!(U.test(t)&&!K.test(t)||e.tablet&&X.test(t)||e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&t.includes("Macintosh")&&t.includes("Safari"))}const H=e=>Array.from({length:e}).map((t,l)=>l+1);function J(e){var m;const[t,l]=_.useState(!0),[r,o]=_.useState({rows:I()?x.TABLE_MAX_GRID_SIZE:x.TABLE_INIT_GRID_SIZE,cols:I()?x.TABLE_MAX_GRID_SIZE:x.TABLE_INIT_GRID_SIZE}),[n,i]=_.useState({rows:x.TABLE_DEFAULT_SELECTED_GRID_SIZE,cols:x.TABLE_DEFAULT_SELECTED_GRID_SIZE});function a(u,f){u===r.rows&&o(p=>({...p,rows:Math.min(u+1,x.TABLE_MAX_GRID_SIZE)})),f===r.cols&&o(p=>({...p,cols:Math.min(f+1,x.TABLE_MAX_GRID_SIZE)})),i({rows:u,cols:f})}function C(u,f){e==null||e.createTable({rows:u,cols:f,withHeaderRow:t}),d()}function d(){l(!1),o({rows:x.TABLE_INIT_GRID_SIZE,cols:x.TABLE_INIT_GRID_SIZE}),i({rows:x.TABLE_DEFAULT_SELECTED_GRID_SIZE,cols:x.TABLE_DEFAULT_SELECTED_GRID_SIZE})}return w.jsxs(c.Popover,{modal:!0,children:[w.jsx(c.PopoverTrigger,{asChild:!0,children:e==null?void 0:e.children}),w.jsx(c.PopoverContent,{align:"start",className:"richtext-w-full !richtext-p-2",side:"bottom",children:w.jsxs("div",{className:"table-grid-size-editor richtext-p-0",children:[w.jsx("div",{className:"richtext-flex richtext-flex-col richtext-flex-wrap richtext-justify-between richtext-gap-1",children:(m=H(r==null?void 0:r.rows))==null?void 0:m.map(u=>{var f;return w.jsx("div",{className:"richtext-flex richtext-gap-1",children:(f=H(r==null?void 0:r.cols))==null?void 0:f.map(p=>w.jsx("div",{onMouseDown:()=>C(u,p),onMouseOver:()=>a(u,p),className:`richtext-cursor-pointer richtext-border-border ${p<=n.cols&&u<=n.rows&&"tableCellActive !richtext-bg-foreground"}`,children:w.jsx("div",{className:"richtext-box-border richtext-size-4 richtext-rounded-[2px] !richtext-border richtext-border-solid !richtext-border-border richtext-p-1"})},`c-${p}`))},`r-${u}`)})}),w.jsxs("div",{className:"richtext-mt-2 richtext-text-center richtext-text-sm richtext-text-zinc-600",children:[n.rows," ","x",n.cols]})]})})]})}function Q(e){function t(l){e.disabled||e.editor.chain().focus().insertTable({...l,withHeaderRow:!1}).run()}return w.jsx(J,{createTable:t,children:w.jsx(c.ActionButton,{icon:e==null?void 0:e.icon,tooltip:e==null?void 0:e.tooltip,tooltipOptions:e==null?void 0:e.tooltipOptions,disabled:e==null?void 0:e.disabled,color:e==null?void 0:e.color,action:e==null?void 0:e.action,isActive:e==null?void 0:e.isActive})})}function Y(e,t,l){if(!e.doc)return e;const r=e.doc.nodeAt(t);if(!r||l===r.attrs.backgroundColor)return e;const o={...r.attrs,backgroundColor:l};return e.setNodeMarkup(t,r.type,o,r.marks)}function ee(e,t,l){const{doc:r,selection:o}=e;return!r||!o||!(o instanceof c.CellSelection)||o.forEachCell((n,i)=>{e=Y(e,i,l)}),e}function k(e,t){return({tr:l,state:r,dispatch:o})=>{const{selection:n}=r;return l=l.setSelection(n),l=ee(l,t,e),l.docChanged?(o==null||o(l),!0):!1}}const te=g.Extension.create({name:"tableCellBackground",addOptions(){return{types:["tableCell"],HTMLAttributes:{}}},addGlobalAttributes(){return[{types:this.options.types,attributes:{backgroundColor:{parseHTML:e=>e.style.backgroundColor||"",renderHTML:e=>!e.backgroundColor||e.backgroundColor===""?{}:{style:`background-color: ${e.backgroundColor}`}}}}]},addCommands(){return{setTableCellBackground:e=>k(e,this.options),unsetTableCellBackground:()=>k("",this.options)}}}),j=B.extend({addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),HTMLAttributes:{style:`
6
- border: 1px solid #000;
7
- border-collapse: collapse;
8
- width: 100%;
9
- `},resizable:!0,lastColumnResizable:!0,allowTableNodeSelection:!1,button:({editor:t,t:l})=>({component:Q,componentProps:{disabled:t.isActive("table")||!1,icon:"Table",tooltip:l("editor.table.tooltip"),editor:t}})}},addExtensions(){return[W.configure(this.options.tableRow),D.configure(this.options.tableHeader),N.configure(this.options.tableCell),te.configure(this.options.tableCellBackground)]}});exports.Table=j;exports.default=j;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./Table-B1j1Ebmh.cjs");exports.RichTextTable=e.RichTextTable;exports.Table=e.Table;
package/lib/Table.d.cts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Editor } from '@tiptap/react';
2
2
  import { Extension } from '@tiptap/core';
3
+ import { JSX } from 'react/jsx-runtime';
3
4
  import { Node as Node_2 } from '@tiptap/core';
4
5
  import { TableCellOptions } from '@tiptap/extension-table';
5
6
  import { TableHeaderOptions } from '@tiptap/extension-table';
@@ -74,9 +75,9 @@ declare interface GeneralOptions<T> {
74
75
  shortcutKeys?: string[] | string[][];
75
76
  }
76
77
 
77
- declare const Table: Node_2<TableOptions, any>;
78
- export { Table }
79
- export default Table;
78
+ export declare function RichTextTable(): JSX.Element;
79
+
80
+ export declare const Table: Node_2<TableOptions, any>;
80
81
 
81
82
  declare interface TableCellBackgroundOptions {
82
83
  HTMLAttributes: Record<string, any>;
@@ -133,11 +134,22 @@ declare module '@tiptap/core' {
133
134
  }
134
135
 
135
136
 
137
+ declare module '@tiptap/core' {
138
+ interface Storage {
139
+ color: ColorStorage;
140
+ }
141
+ }
142
+
143
+
136
144
  declare module '@tiptap/core' {
137
145
  interface Commands<ReturnType> {
138
- drawer: {
139
- setDrawer: (options: any, replace?: any) => ReturnType;
140
- setAlignImageDrawer: (align: 'left' | 'center' | 'right') => ReturnType;
146
+ columns: {
147
+ insertColumns: (attrs?: {
148
+ cols: number;
149
+ }) => ReturnType;
150
+ addColBefore: () => ReturnType;
151
+ addColAfter: () => ReturnType;
152
+ deleteCol: () => ReturnType;
141
153
  };
142
154
  }
143
155
  }
@@ -145,8 +157,9 @@ declare module '@tiptap/core' {
145
157
 
146
158
  declare module '@tiptap/core' {
147
159
  interface Commands<ReturnType> {
148
- excalidraw: {
149
- setExcalidraw: (attrs?: IExcalidrawAttrs) => ReturnType;
160
+ drawer: {
161
+ setDrawer: (options: any, replace?: any) => ReturnType;
162
+ setAlignImageDrawer: (align: 'left' | 'center' | 'right') => ReturnType;
150
163
  };
151
164
  }
152
165
  }
@@ -164,7 +177,16 @@ declare module '@tiptap/core' {
164
177
  declare module '@tiptap/core' {
165
178
  interface Commands<ReturnType> {
166
179
  exportWord: {
167
- exportToWord: () => ReturnType;
180
+ exportToWord: (docState: any) => ReturnType;
181
+ };
182
+ }
183
+ }
184
+
185
+
186
+ declare module '@tiptap/core' {
187
+ interface Commands<ReturnType> {
188
+ excalidraw: {
189
+ setExcalidraw: (attrs?: IExcalidrawAttrs) => ReturnType;
168
190
  };
169
191
  }
170
192
  }
@@ -189,10 +211,8 @@ declare module '@tiptap/core' {
189
211
 
190
212
 
191
213
  declare module '@tiptap/core' {
192
- interface Commands<ReturnType> {
193
- painter: {
194
- setPainter: (marks: Mark[]) => ReturnType;
195
- };
214
+ interface Storage {
215
+ highlight: HighlightStorage;
196
216
  }
197
217
  }
198
218
 
@@ -277,16 +297,6 @@ declare module '@tiptap/core' {
277
297
  }
278
298
 
279
299
 
280
- declare module '@tiptap/core' {
281
- interface Commands<ReturnType> {
282
- lineHeight: {
283
- setLineHeight: (lineHeight: string) => ReturnType;
284
- unsetLineHeight: () => ReturnType;
285
- };
286
- }
287
- }
288
-
289
-
290
300
  declare module '@tiptap/core' {
291
301
  interface Commands<ReturnType> {
292
302
  mermaid: {
@@ -297,20 +307,6 @@ declare module '@tiptap/core' {
297
307
  }
298
308
 
299
309
 
300
- declare module '@tiptap/core' {
301
- interface Commands<ReturnType> {
302
- columns: {
303
- insertColumns: (attrs?: {
304
- cols: number;
305
- }) => ReturnType;
306
- addColBefore: () => ReturnType;
307
- addColAfter: () => ReturnType;
308
- deleteCol: () => ReturnType;
309
- };
310
- }
311
- }
312
-
313
-
314
310
  declare module '@tiptap/core' {
315
311
  interface Commands<ReturnType> {
316
312
  search: {
@@ -334,16 +330,6 @@ declare module '@tiptap/core' {
334
330
  }
335
331
 
336
332
 
337
- declare module '@tiptap/core' {
338
- interface Commands<ReturnType> {
339
- tableOfContents: {
340
- setTableOfContents: () => ReturnType;
341
- removeTableOfContents: () => ReturnType;
342
- };
343
- }
344
- }
345
-
346
-
347
333
  declare module '@tiptap/core' {
348
334
  interface Commands<ReturnType> {
349
335
  twitter: {
package/lib/Table.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Editor } from '@tiptap/react';
2
2
  import { Extension } from '@tiptap/core';
3
+ import { JSX } from 'react/jsx-runtime';
3
4
  import { Node as Node_2 } from '@tiptap/core';
4
5
  import { TableCellOptions } from '@tiptap/extension-table';
5
6
  import { TableHeaderOptions } from '@tiptap/extension-table';
@@ -74,9 +75,9 @@ declare interface GeneralOptions<T> {
74
75
  shortcutKeys?: string[] | string[][];
75
76
  }
76
77
 
77
- declare const Table: Node_2<TableOptions, any>;
78
- export { Table }
79
- export default Table;
78
+ export declare function RichTextTable(): JSX.Element;
79
+
80
+ export declare const Table: Node_2<TableOptions, any>;
80
81
 
81
82
  declare interface TableCellBackgroundOptions {
82
83
  HTMLAttributes: Record<string, any>;
@@ -133,11 +134,22 @@ declare module '@tiptap/core' {
133
134
  }
134
135
 
135
136
 
137
+ declare module '@tiptap/core' {
138
+ interface Storage {
139
+ color: ColorStorage;
140
+ }
141
+ }
142
+
143
+
136
144
  declare module '@tiptap/core' {
137
145
  interface Commands<ReturnType> {
138
- drawer: {
139
- setDrawer: (options: any, replace?: any) => ReturnType;
140
- setAlignImageDrawer: (align: 'left' | 'center' | 'right') => ReturnType;
146
+ columns: {
147
+ insertColumns: (attrs?: {
148
+ cols: number;
149
+ }) => ReturnType;
150
+ addColBefore: () => ReturnType;
151
+ addColAfter: () => ReturnType;
152
+ deleteCol: () => ReturnType;
141
153
  };
142
154
  }
143
155
  }
@@ -145,8 +157,9 @@ declare module '@tiptap/core' {
145
157
 
146
158
  declare module '@tiptap/core' {
147
159
  interface Commands<ReturnType> {
148
- excalidraw: {
149
- setExcalidraw: (attrs?: IExcalidrawAttrs) => ReturnType;
160
+ drawer: {
161
+ setDrawer: (options: any, replace?: any) => ReturnType;
162
+ setAlignImageDrawer: (align: 'left' | 'center' | 'right') => ReturnType;
150
163
  };
151
164
  }
152
165
  }
@@ -164,7 +177,16 @@ declare module '@tiptap/core' {
164
177
  declare module '@tiptap/core' {
165
178
  interface Commands<ReturnType> {
166
179
  exportWord: {
167
- exportToWord: () => ReturnType;
180
+ exportToWord: (docState: any) => ReturnType;
181
+ };
182
+ }
183
+ }
184
+
185
+
186
+ declare module '@tiptap/core' {
187
+ interface Commands<ReturnType> {
188
+ excalidraw: {
189
+ setExcalidraw: (attrs?: IExcalidrawAttrs) => ReturnType;
168
190
  };
169
191
  }
170
192
  }
@@ -189,10 +211,8 @@ declare module '@tiptap/core' {
189
211
 
190
212
 
191
213
  declare module '@tiptap/core' {
192
- interface Commands<ReturnType> {
193
- painter: {
194
- setPainter: (marks: Mark[]) => ReturnType;
195
- };
214
+ interface Storage {
215
+ highlight: HighlightStorage;
196
216
  }
197
217
  }
198
218
 
@@ -277,16 +297,6 @@ declare module '@tiptap/core' {
277
297
  }
278
298
 
279
299
 
280
- declare module '@tiptap/core' {
281
- interface Commands<ReturnType> {
282
- lineHeight: {
283
- setLineHeight: (lineHeight: string) => ReturnType;
284
- unsetLineHeight: () => ReturnType;
285
- };
286
- }
287
- }
288
-
289
-
290
300
  declare module '@tiptap/core' {
291
301
  interface Commands<ReturnType> {
292
302
  mermaid: {
@@ -297,20 +307,6 @@ declare module '@tiptap/core' {
297
307
  }
298
308
 
299
309
 
300
- declare module '@tiptap/core' {
301
- interface Commands<ReturnType> {
302
- columns: {
303
- insertColumns: (attrs?: {
304
- cols: number;
305
- }) => ReturnType;
306
- addColBefore: () => ReturnType;
307
- addColAfter: () => ReturnType;
308
- deleteCol: () => ReturnType;
309
- };
310
- }
311
- }
312
-
313
-
314
310
  declare module '@tiptap/core' {
315
311
  interface Commands<ReturnType> {
316
312
  search: {
@@ -334,16 +330,6 @@ declare module '@tiptap/core' {
334
330
  }
335
331
 
336
332
 
337
- declare module '@tiptap/core' {
338
- interface Commands<ReturnType> {
339
- tableOfContents: {
340
- setTableOfContents: () => ReturnType;
341
- removeTableOfContents: () => ReturnType;
342
- };
343
- }
344
- }
345
-
346
-
347
333
  declare module '@tiptap/core' {
348
334
  interface Commands<ReturnType> {
349
335
  twitter: {