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.
- package/lib/ActionMenuButton-BKOg7hkq.js +38 -0
- package/lib/ActionMenuButton-DLQyd_gx.cjs +1 -0
- package/lib/Attachment.cjs +2 -2
- package/lib/Attachment.d.cts +27 -39
- package/lib/Attachment.d.ts +27 -39
- package/lib/Attachment.js +129 -99
- package/lib/Blockquote.cjs +3 -3
- package/lib/Blockquote.d.cts +27 -39
- package/lib/Blockquote.d.ts +27 -39
- package/lib/Blockquote.js +50 -22
- package/lib/Bold.cjs +1 -1
- package/lib/Bold.d.cts +27 -39
- package/lib/Bold.d.ts +27 -39
- package/lib/Bold.js +48 -20
- package/lib/BulletList.cjs +1 -1
- package/lib/BulletList.d.cts +27 -39
- package/lib/BulletList.d.ts +27 -39
- package/lib/BulletList.js +38 -9
- package/lib/Clear.cjs +1 -1
- package/lib/Clear.d.cts +27 -39
- package/lib/Clear.d.ts +27 -39
- package/lib/Clear.js +32 -6
- package/lib/Code.cjs +1 -1
- package/lib/Code.d.cts +27 -39
- package/lib/Code.d.ts +27 -39
- package/lib/Code.js +53 -25
- package/lib/CodeBlock.cjs +35 -35
- package/lib/CodeBlock.d.cts +27 -39
- package/lib/CodeBlock.d.ts +27 -39
- package/lib/CodeBlock.js +605 -590
- package/lib/CodeView.cjs +1 -1
- package/lib/CodeView.d.cts +28 -40
- package/lib/CodeView.d.ts +28 -40
- package/lib/CodeView.js +49 -21
- package/lib/Color.cjs +1 -1
- package/lib/Color.d.cts +31 -39
- package/lib/Color.d.ts +31 -39
- package/lib/Color.js +123 -79
- package/lib/Column.cjs +1 -0
- package/lib/{Document.d.cts → Column.d.cts} +33 -42
- package/lib/{Document.d.ts → Column.d.ts} +33 -42
- package/lib/Column.js +217 -0
- package/lib/{Drawer-CaAfmqNo.js → Drawer-DZ5jvmrX.js} +404 -394
- package/lib/Drawer-SRhwOc6T.cjs +1 -0
- package/lib/Drawer.cjs +1 -1
- package/lib/Drawer.d.cts +27 -39
- package/lib/Drawer.d.ts +27 -39
- package/lib/Drawer.js +6 -5
- package/lib/Emoji.cjs +1 -1
- package/lib/Emoji.d.cts +27 -44
- package/lib/Emoji.d.ts +27 -44
- package/lib/Emoji.js +377 -392
- package/lib/Excalidraw-DwBRXEtC.js +345 -0
- package/lib/Excalidraw-ZN3DQvDC.cjs +1 -0
- package/lib/Excalidraw.cjs +1 -1
- package/lib/Excalidraw.d.cts +27 -39
- package/lib/Excalidraw.d.ts +27 -39
- package/lib/Excalidraw.js +6 -4
- package/lib/ExportPdf.cjs +5 -5
- package/lib/ExportPdf.d.cts +27 -39
- package/lib/ExportPdf.d.ts +27 -39
- package/lib/ExportPdf.js +60 -32
- package/lib/ExportWord.cjs +1 -1
- package/lib/ExportWord.d.cts +28 -40
- package/lib/ExportWord.d.ts +28 -40
- package/lib/ExportWord.js +84 -21
- package/lib/FontFamily.cjs +1 -1
- package/lib/FontFamily.d.cts +41 -42
- package/lib/FontFamily.d.ts +41 -42
- package/lib/FontFamily.js +72 -74
- package/lib/FontSize.cjs +1 -1
- package/lib/FontSize.d.cts +38 -42
- package/lib/FontSize.d.ts +38 -42
- package/lib/FontSize.js +72 -64
- package/lib/Heading.cjs +1 -1
- package/lib/Heading.d.cts +41 -39
- package/lib/Heading.d.ts +41 -39
- package/lib/Heading.js +91 -73
- package/lib/Highlight.cjs +1 -1
- package/lib/Highlight.d.cts +31 -39
- package/lib/Highlight.d.ts +31 -39
- package/lib/Highlight.js +150 -19
- package/lib/History.cjs +1 -1
- package/lib/History.d.cts +29 -39
- package/lib/History.d.ts +29 -39
- package/lib/History.js +976 -53
- package/lib/HorizontalRule.cjs +1 -1
- package/lib/HorizontalRule.d.cts +27 -39
- package/lib/HorizontalRule.d.ts +27 -39
- package/lib/HorizontalRule.js +97 -17
- package/lib/Icon-DUpv2cI6.cjs +1 -0
- package/lib/Icon-jKs8Hr6p.js +11 -0
- package/lib/Iframe-CmXkEqOd.js +431 -0
- package/lib/Iframe-Cvca2G7X.cjs +1 -0
- package/lib/Iframe.cjs +1 -1
- package/lib/Iframe.d.cts +26 -45
- package/lib/Iframe.d.ts +26 -45
- package/lib/Iframe.js +6 -4
- package/lib/Image.cjs +1 -1
- package/lib/Image.d.cts +27 -40
- package/lib/Image.d.ts +27 -40
- package/lib/Image.js +848 -5
- package/lib/ImageGif.cjs +1 -1
- package/lib/ImageGif.d.cts +28 -42
- package/lib/ImageGif.d.ts +28 -42
- package/lib/ImageGif.js +424 -5
- package/lib/ImportWord.cjs +48 -48
- package/lib/ImportWord.d.cts +28 -40
- package/lib/ImportWord.d.ts +28 -40
- package/lib/ImportWord.js +2759 -2751
- package/lib/Indent.cjs +1 -1
- package/lib/Indent.d.cts +27 -39
- package/lib/Indent.d.ts +27 -39
- package/lib/Indent.js +97 -27
- package/lib/Italic.cjs +1 -1
- package/lib/Italic.d.cts +27 -39
- package/lib/Italic.d.ts +27 -39
- package/lib/Italic.js +47 -19
- package/lib/Katex-DsYXsjSS.js +2740 -0
- package/lib/Katex-XfrNne6U.cjs +4 -0
- package/lib/Katex.cjs +1 -1
- package/lib/Katex.d.cts +27 -39
- package/lib/Katex.d.ts +27 -39
- package/lib/Katex.js +5 -196
- package/lib/LineHeight.cjs +1 -1
- package/lib/LineHeight.d.cts +29 -45
- package/lib/LineHeight.d.ts +29 -45
- package/lib/LineHeight.js +71 -112
- package/lib/Link.cjs +1 -1
- package/lib/Link.d.cts +28 -42
- package/lib/Link.d.ts +28 -42
- package/lib/Link.js +3 -3
- package/lib/LinkEditBlock-BZenZq-Z.cjs +5 -0
- package/lib/LinkEditBlock-CB8yIffE.js +1241 -0
- package/lib/Mention.cjs +1 -1
- package/lib/Mention.d.cts +24 -39
- package/lib/Mention.d.ts +24 -39
- package/lib/Mention.js +112 -124
- package/lib/Mermaid.cjs +2 -2
- package/lib/Mermaid.d.cts +27 -39
- package/lib/Mermaid.d.ts +27 -39
- package/lib/Mermaid.js +177 -165
- package/lib/MoreMark.cjs +1 -1
- package/lib/MoreMark.d.cts +42 -41
- package/lib/MoreMark.d.ts +42 -41
- package/lib/MoreMark.js +125 -55
- package/lib/OrderedList.cjs +1 -1
- package/lib/OrderedList.d.cts +27 -39
- package/lib/OrderedList.d.ts +27 -39
- package/lib/OrderedList.js +37 -9
- package/lib/SearchAndReplace.cjs +1 -1
- package/lib/SearchAndReplace.d.cts +27 -42
- package/lib/SearchAndReplace.d.ts +27 -42
- package/lib/SearchAndReplace.js +221 -197
- package/lib/SlashCommand.cjs +1 -1
- package/lib/SlashCommand.d.cts +39 -46
- package/lib/SlashCommand.d.ts +39 -46
- package/lib/SlashCommand.js +235 -249
- package/lib/Strike.cjs +1 -1
- package/lib/Strike.d.cts +27 -39
- package/lib/Strike.d.ts +27 -39
- package/lib/Strike.js +39 -11
- package/lib/Table-B1j1Ebmh.cjs +9 -0
- package/lib/Table-Db8TcQX8.js +1984 -0
- package/lib/Table.cjs +1 -9
- package/lib/Table.d.cts +28 -42
- package/lib/Table.d.ts +28 -42
- package/lib/Table.js +3 -558
- package/lib/TaskList.cjs +1 -1
- package/lib/TaskList.d.cts +27 -39
- package/lib/TaskList.d.ts +27 -39
- package/lib/TaskList.js +38 -10
- package/lib/TextAlign.cjs +1 -1
- package/lib/TextAlign.d.cts +40 -39
- package/lib/TextAlign.d.ts +40 -39
- package/lib/TextAlign.js +108 -101
- package/lib/TextDirection.cjs +1 -1
- package/lib/TextDirection.d.cts +56 -39
- package/lib/TextDirection.d.ts +56 -39
- package/lib/TextDirection.js +105 -112
- package/lib/TextUnderline.cjs +1 -1
- package/lib/TextUnderline.d.cts +27 -39
- package/lib/TextUnderline.d.ts +27 -39
- package/lib/TextUnderline.js +46 -18
- package/lib/{Twitter-BFULyqdR.js → Twitter-CXmmjz9R.js} +536 -498
- package/lib/Twitter-CtVTIWJW.cjs +1 -0
- package/lib/Twitter.cjs +1 -1
- package/lib/Twitter.d.cts +27 -39
- package/lib/Twitter.d.ts +27 -39
- package/lib/Twitter.js +5 -4
- package/lib/Video.cjs +1 -1
- package/lib/Video.d.cts +27 -39
- package/lib/Video.d.ts +27 -39
- package/lib/Video.js +261 -4
- package/lib/_commonjsHelpers-BItOPCY9.js +28 -0
- package/lib/_commonjsHelpers-BTDuMlIz.cjs +1 -0
- package/lib/bubble.cjs +2 -0
- package/lib/{bubble-extra.d.cts → bubble.d.cts} +53 -54
- package/lib/{bubble-extra.d.ts → bubble.d.ts} +53 -54
- package/lib/bubble.js +1925 -0
- package/lib/button-B12K7BJ4.cjs +1 -0
- package/lib/button-DXMsXUEn.js +43 -0
- package/lib/clsx-C11secjj.cjs +1 -0
- package/lib/clsx-OuTLNxxd.js +16 -0
- package/lib/delete-node-CosiBes5.cjs +1 -0
- package/lib/delete-node-IyVmiRbI.js +22 -0
- package/lib/dialog-CaCS-W5S.cjs +1 -0
- package/lib/dialog-PtQivpHS.js +100 -0
- package/lib/dom-dataset-BqoJhJXt.cjs +1 -0
- package/lib/dom-dataset-CIEeltF6.js +47 -0
- package/lib/dropdown-menu-BPp2Z_U-.js +136 -0
- package/lib/dropdown-menu-CdSm4emp.cjs +1 -0
- package/lib/file-BLas99n7.js +43 -0
- package/lib/file-i7e4nQY2.cjs +1 -0
- package/lib/floating-ui.dom-U1vPFQ5f.js +1151 -0
- package/lib/floating-ui.dom-VCrc58uF.cjs +1 -0
- package/lib/icons-Cllpys39.js +362 -0
- package/lib/icons-CqHjeW5T.cjs +1 -0
- package/lib/index-BH4bc3jN.cjs +33 -0
- package/lib/index-BPfVXs5_.js +2380 -0
- package/lib/index-Bnmd0WvY.js +1631 -0
- package/lib/{index-Ch6dBBad.js → index-CBce_TWY.js} +40 -42
- package/lib/{index-5iBZLua9.cjs → index-D-5U8dY8.cjs} +8 -8
- package/lib/{index-ByurDDMv.js → index-D2TUfKkC.js} +2 -2
- package/lib/index-DV5kbgRU.cjs +1 -0
- package/lib/{index-LmrOdnen.js → index-DYkucCoF.js} +396 -495
- package/lib/index-Dfmm6FTT.cjs +1 -0
- package/lib/index-DnWWK9F_.js +6374 -0
- package/lib/index-DzcKxutn.js +632 -0
- package/lib/index-DzvuNTxo.cjs +4 -0
- package/lib/{index-BeCTd5v2.cjs → index-N--9MohJ.cjs} +1 -1
- package/lib/index-RfTlOzIr.cjs +22 -0
- package/lib/index.cjs +132 -1
- package/lib/index.d.cts +29 -280
- package/lib/index.d.ts +29 -280
- package/lib/index.js +243 -2
- package/lib/input-_ECRfn3Y.cjs +1 -0
- package/lib/input-wJ9PDEzZ.js +21 -0
- package/lib/isNumber-ClPupm7P.cjs +1 -0
- package/lib/isNumber-fpLGS0AZ.js +15 -0
- package/lib/label-BkgAe7IY.cjs +1 -0
- package/lib/label-CGdLYWv7.js +19 -0
- package/lib/locale-bundle.cjs +1 -1
- package/lib/locale-bundle.d.cts +5405 -57
- package/lib/locale-bundle.d.ts +5405 -57
- package/lib/locale-bundle.js +9 -7
- package/lib/popover-BgmUNMHj.cjs +1 -0
- package/lib/popover-CAuEW0Mr.js +23 -0
- package/lib/separator-CuBW_w98.js +328 -0
- package/lib/separator-DRIrVZ2N.cjs +1 -0
- package/lib/store-DX599H5W.js +10 -0
- package/lib/store-WStcMOiW.cjs +1 -0
- package/lib/style.css +1 -1
- package/lib/switch-CnLJ7Y-b.cjs +1 -0
- package/lib/switch-Coix_FA1.js +27 -0
- package/lib/tabs-B5mVSN1I.js +46 -0
- package/lib/tabs-BoLCMcCI.cjs +1 -0
- package/lib/textarea-B-6zTKQz.cjs +1 -0
- package/lib/{textarea-aPtytkDx.js → textarea-DUUM1jZd.js} +1 -1
- package/lib/theme-B7aAsK_T.js +15 -0
- package/lib/theme-D8_cxGqB.cjs +1 -0
- package/lib/throttle-CdwDrFpn.js +249 -0
- package/lib/throttle-qX7Yjtsg.cjs +1 -0
- package/lib/toggle-Cdp4IT2U.js +85 -0
- package/lib/toggle-D41PzQLJ.cjs +1 -0
- package/lib/tooltip-BuEiE96N.cjs +1 -0
- package/lib/tooltip-CopwsU8q.js +23 -0
- package/lib/updatePosition-8Sdem5jb.cjs +1 -0
- package/lib/updatePosition-BPmcE0YD.js +215 -0
- package/lib/use-toast-Bz3QCOtE.cjs +1 -0
- package/lib/use-toast-Crf7-q5H.js +98 -0
- package/lib/useButtonProps-BsEd4zYM.js +141 -0
- package/lib/useButtonProps-C6Vpn190.cjs +1 -0
- package/package.json +22 -105
- package/lib/ActionMenuButton-CYdM1xx5.cjs +0 -1
- package/lib/ActionMenuButton-DKRF6oa0.js +0 -33
- package/lib/BaseKit.cjs +0 -3
- package/lib/BaseKit.d.cts +0 -481
- package/lib/BaseKit.d.ts +0 -481
- package/lib/BaseKit.js +0 -132
- package/lib/Document.cjs +0 -1
- package/lib/Document.js +0 -9
- package/lib/Drawer-CdvCMSzN.cjs +0 -1
- package/lib/Excalidraw-BbMQhNvs.cjs +0 -1
- package/lib/Excalidraw-CVWz2Vyn.js +0 -290
- package/lib/FormatPainter.cjs +0 -1
- package/lib/FormatPainter.d.cts +0 -372
- package/lib/FormatPainter.d.ts +0 -372
- package/lib/FormatPainter.js +0 -76
- package/lib/ListItem.cjs +0 -1
- package/lib/ListItem.d.cts +0 -290
- package/lib/ListItem.d.ts +0 -290
- package/lib/ListItem.js +0 -7
- package/lib/MultiColumn.cjs +0 -1
- package/lib/MultiColumn.d.cts +0 -294
- package/lib/MultiColumn.d.ts +0 -294
- package/lib/MultiColumn.js +0 -8
- package/lib/RichTextEditor-CxvwGvQG.cjs +0 -142
- package/lib/RichTextEditor-DGcKEUGr.js +0 -22166
- package/lib/Selection.cjs +0 -1
- package/lib/Selection.d.cts +0 -289
- package/lib/Selection.d.ts +0 -289
- package/lib/Selection.js +0 -25
- package/lib/SubAndSuperScript.cjs +0 -1
- package/lib/SubAndSuperScript.d.cts +0 -377
- package/lib/SubAndSuperScript.d.ts +0 -377
- package/lib/SubAndSuperScript.js +0 -43
- package/lib/TableOfContent.cjs +0 -1
- package/lib/TableOfContent.d.cts +0 -291
- package/lib/TableOfContent.d.ts +0 -291
- package/lib/TableOfContent.js +0 -185
- package/lib/TextBubble.cjs +0 -1
- package/lib/TextBubble.d.cts +0 -362
- package/lib/TextBubble.d.ts +0 -362
- package/lib/TextBubble.js +0 -133
- package/lib/TrailingNode.cjs +0 -1
- package/lib/TrailingNode.d.cts +0 -297
- package/lib/TrailingNode.d.ts +0 -297
- package/lib/TrailingNode.js +0 -41
- package/lib/Twitter-Cutpkh3h.cjs +0 -1
- package/lib/bubble-extra.cjs +0 -2
- package/lib/bubble-extra.js +0 -631
- package/lib/dom-dataset-_6-diIRQ.cjs +0 -33
- package/lib/dom-dataset-lYeH6gfI.js +0 -2361
- package/lib/index-6D1J-A-o.cjs +0 -1
- package/lib/index-B96Cclrj.cjs +0 -3
- package/lib/index-BBz7Nmv9.js +0 -55
- package/lib/index-CUogRI7j.cjs +0 -1
- package/lib/index-DF2Lp4HZ.cjs +0 -100
- package/lib/index-D_L6n8O8.js +0 -76
- package/lib/index-Dbvi-Bvh.cjs +0 -1
- package/lib/index-DpCrt7xs.cjs +0 -1
- package/lib/index-DsAX1Vq8.cjs +0 -1
- package/lib/index-Dy4DlW9o.js +0 -12
- package/lib/index-J3jHHZ4d.js +0 -200
- package/lib/index-VvXaaKe3.js +0 -898
- package/lib/index-kbO3iWqL.js +0 -13432
- package/lib/textarea-DFo_aXnj.cjs +0 -1
package/lib/ImageGif.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const W=require("./index-RfTlOzIr.cjs"),N=require("./throttle-qX7Yjtsg.cjs"),C=require("./index-BH4bc3jN.cjs"),l=require("react/jsx-runtime"),d=require("react"),G=require("./index-Dfmm6FTT.cjs"),L=require("./isNumber-ClPupm7P.cjs"),B=require("./toggle-D41PzQLJ.cjs");require("./index-DV5kbgRU.cjs");const z=require("./useButtonProps-C6Vpn190.cjs"),P=require("./popover-BgmUNMHj.cjs"),D=require("./input-_ECRfn3Y.cjs"),S={TOP_LEFT:"tl",TOP_RIGHT:"tr",BOTTOM_LEFT:"bl",BOTTOM_RIGHT:"br"};function F(e){var q,k;const[t,r]=d.useState({width:G.IMAGE_MAX_SIZE,height:G.IMAGE_MAX_SIZE}),[c,i]=d.useState({width:0,height:0}),[n]=d.useState([S.TOP_LEFT,S.TOP_RIGHT,S.BOTTOM_LEFT,S.BOTTOM_RIGHT]),[a,s]=d.useState(!1),[h,f]=d.useState({x:0,y:0,w:0,h:0,dir:""}),{align:b}=(q=e==null?void 0:e.node)==null?void 0:q.attrs,m=d.useMemo(()=>{var x;const{src:o,alt:w,width:v,height:y}=(x=e==null?void 0:e.node)==null?void 0:x.attrs,M=L.isNumber(v)?`${v}px`:v,u=L.isNumber(y)?`${y}px`:y;return{src:o||void 0,alt:w||void 0,style:{width:M||void 0,height:u||void 0}}},[(k=e==null?void 0:e.node)==null?void 0:k.attrs]),g=d.useMemo(()=>{const{style:{width:o}}=m;return{width:o==="100%"?o:void 0}},[m]);function T(o){i({width:o.target.width,height:o.target.height})}function _(){const{editor:o,getPos:w}=e;o.commands.setNodeSelection(w())}const A=d.useCallback(N.throttle(()=>{const{editor:o}=e,{width:w}=getComputedStyle(o.view.dom);r(v=>({...v,width:Number.parseInt(w,10)}))},G.IMAGE_THROTTLE_WAIT_TIME),[e==null?void 0:e.editor]);function p(o,w){o.preventDefault(),o.stopPropagation();const v=c.width,y=c.height,M=v/y;let u=Number(e.node.attrs.width),x=Number(e.node.attrs.height);const I=t.width;u&&!x?(u=u>I?I:u,x=Math.round(u/M)):x&&!u?(u=Math.round(x*M),u=u>I?I:u):!u&&!x?(u=v>I?I:v,x=Math.round(u/M)):u=u>I?I:u,s(!0),f({x:o.clientX,y:o.clientY,w:u,h:x,dir:w})}const j=d.useCallback(N.throttle(o=>{if(o.preventDefault(),o.stopPropagation(),!a)return;const{x:w,w:v,dir:y}=h,M=(o.clientX-w)*(/l/.test(y)?-1:1),u=L.clamp(v+M,G.IMAGE_MIN_SIZE,t.width);e.updateAttributes({width:u,height:null})},G.IMAGE_THROTTLE_WAIT_TIME),[a,h,t,e.updateAttributes]),E=d.useCallback(o=>{o.preventDefault(),o.stopPropagation(),a&&(f({x:0,y:0,w:0,h:0,dir:""}),s(!1),_())},[a,_]),$=d.useCallback(()=>{document==null||document.addEventListener("mousemove",j,!0),document==null||document.addEventListener("mouseup",E,!0)},[j,E]),O=d.useCallback(()=>{document==null||document.removeEventListener("mousemove",j,!0),document==null||document.removeEventListener("mouseup",E,!0)},[j,E]);d.useEffect(()=>(a?$():O(),()=>{O()}),[a,$,O]);const R=d.useMemo(()=>new ResizeObserver(()=>A()),[A]);return d.useEffect(()=>(R.observe(e.editor.view.dom),()=>{R.disconnect()}),[e.editor.view.dom,R]),l.jsx(C.NodeViewWrapper,{className:"image-view",style:{...g,width:"100%",textAlign:b},children:l.jsxs("div",{"data-drag-handle":!0,draggable:"true",style:g,className:`image-view__body ${e!=null&&e.selected?"image-view__body--focused":""} ${a?"image-view__body--resizing":""}`,children:[l.jsx("img",{alt:m.alt,className:"image-view__body__image block",height:"auto",onClick:_,onLoad:T,src:m.src,style:m.style}),(e==null?void 0:e.editor.view.editable)&&((e==null?void 0:e.selected)||a)&&l.jsx("div",{className:"image-resizer",children:n==null?void 0:n.map(o=>l.jsx("span",{className:`image-resizer__handler image-resizer__handler--${o}`,onMouseDown:w=>p(w,o)},`image-dir-${o}`))})]})})}async function V(e){var c;const r=await(await fetch(`https://api.giphy.com/v1/gifs/trending?q=&limit=15&api_key=${e}`)).json();return(c=r==null?void 0:r.data)==null?void 0:c.map(i=>{var n,a,s;return{id:i==null?void 0:i.id,src:(n=i==null?void 0:i.images.original)==null?void 0:n.url,width:+((a=i==null?void 0:i.images.original)==null?void 0:a.width),height:+((s=i==null?void 0:i.images.original)==null?void 0:s.width)}})}async function X(e,t){var i;const c=await(await fetch(`https://api.giphy.com/v1/gifs/search?q=${e}&limit=15&api_key=${t}`)).json();return(i=c==null?void 0:c.data)==null?void 0:i.map(n=>{var a,s,h;return{id:n==null?void 0:n.id,src:(a=n==null?void 0:n.images.original)==null?void 0:a.url,width:+((s=n==null?void 0:n.images.original)==null?void 0:s.width),height:+((h=n==null?void 0:n.images.original)==null?void 0:h.width)}})}async function Y(e){var n,a;const t=await fetch(`https://tenor.googleapis.com/v2/trending_terms?key=${e}&limit=10`),r=await(t==null?void 0:t.json()),i=await(await fetch(`https://tenor.googleapis.com/v2/search?key=${e}&q=${(n=r==null?void 0:r.results)==null?void 0:n[0]}&limit=15`)).json();return(a=i==null?void 0:i.results)==null?void 0:a.map(s=>{var h,f,b,m,g,T,_,A;return{id:s==null?void 0:s.id,src:(f=(h=s==null?void 0:s.media_formats)==null?void 0:h.gif)==null?void 0:f.url,width:(g=(m=(b=s==null?void 0:s.media_formats)==null?void 0:b.gif)==null?void 0:m.dims)==null?void 0:g[0],height:(A=(_=(T=s==null?void 0:s.media_formats)==null?void 0:T.gif)==null?void 0:_.dims)==null?void 0:A[1]}})}async function Z(e,t){var i;const c=await(await fetch(`https://tenor.googleapis.com/v2/search?key=${t}&q=${e}&limit=15`)).json();return(i=c==null?void 0:c.results)==null?void 0:i.map(n=>{var a,s,h,f,b,m,g,T;return{id:n==null?void 0:n.id,src:(s=(a=n==null?void 0:n.media_formats)==null?void 0:a.gif)==null?void 0:s.url,width:(b=(f=(h=n==null?void 0:n.media_formats)==null?void 0:h.gif)==null?void 0:f.dims)==null?void 0:b[0],height:(T=(g=(m=n==null?void 0:n.media_formats)==null?void 0:m.gif)==null?void 0:g.dims)==null?void 0:T[1]}})}function U(e,t){return{searchTrending:async()=>t?e==="giphy"?V(t):e==="tenor"?Y(t):[]:[],searchWord:async i=>t?e==="giphy"?X(i,t):e==="tenor"?Z(i,t):[]:[]}}function J({selectImage:e,apiKey:t,provider:r,children:c}){const[i,n]=d.useState(!1),[a,s]=d.useState([]),h=d.useRef(null),{searchTrending:f,searchWord:b}=U(r,t);d.useEffect(()=>{(async()=>{const g=await f();s(g)})()},[]);const m=d.useCallback(N.debounce(async g=>{if(!g.target.value){const _=await f();s(_);return}const T=await b(g.target.value);s(T)},350),[]);return l.jsxs(P.Popover,{modal:!0,onOpenChange:n,open:i,children:[l.jsx(P.PopoverTrigger,{asChild:!0,children:c}),l.jsx(P.PopoverContent,{align:"start",className:"richtext-size-full richtext-p-2",hideWhenDetached:!0,side:"bottom",children:t?l.jsxs(l.Fragment,{children:[l.jsx("div",{className:"richtext-mb-[10px] richtext-w-full",children:l.jsx(D.Input,{onChange:m,placeholder:"Search GIF",ref:h,type:"text"})}),l.jsx("div",{className:"richtext-max-h-[280px] !richtext-max-w-[400px] richtext-overflow-y-auto",children:l.jsx("div",{className:"richtext-grid richtext-grid-cols-2 richtext-gap-1 ",children:a!=null&&a.length?a==null?void 0:a.map(g=>l.jsx("img",{alt:"",className:"richtext-cursor-pointer richtext-object-contain richtext-text-center",src:g.src,onClick:()=>{e(g.src),n(!1)}},g.id)):l.jsx("p",{children:"No GIFs found"})})})]}):l.jsx("div",{children:l.jsx("p",{children:"Missing Giphy API Key"})})})]})}function Q(){const e=z.useButtonProps(H.name),{action:t,icon:r,tooltip:c,apiKey:i,provider:n}=(e==null?void 0:e.componentProps)??{},{editorDisabled:a}=z.useToggleActive(),s=h=>{a||t&&t(h)};return l.jsx(J,{apiKey:i,provider:n,selectImage:s,children:l.jsx(B.ActionButton,{icon:r,tooltip:c})})}const H=N.index_default.extend({name:"imageGif",addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),inline:!1,content:"",marks:"",group:"block",API_KEY:"",provider:"giphy",draggable:!1,selectable:!0,atom:!0,button:({editor:t,extension:r,t:c})=>{var a,s;const i=((a=r==null?void 0:r.options)==null?void 0:a.provider)||"",n=((s=r==null?void 0:r.options)==null?void 0:s.API_KEY)||"";return{componentProps:{action:h=>{t.chain().focus().setImageGif({src:h}).run()},isActive:()=>!1,disabled:!1,icon:"GifIcon",tooltip:c("editor.imageGif.tooltip"),apiKey:n,provider:i}}}}},addAttributes(){var e;return{...(e=this.parent)==null?void 0:e.call(this),width:{default:null,parseHTML:t=>{const r=t.style.width||t.getAttribute("width")||"10";return r===void 0?null:Number.parseInt(`${r}`,10)},renderHTML:t=>({width:t.width})},align:{default:"center",parseHTML:t=>t.getAttribute("align"),renderHTML:t=>({align:t.align})}}},addNodeView(){return C.ReactNodeViewRenderer(F)},addCommands(){var e;return{...(e=this.parent)==null?void 0:e.call(this),setImageGif:t=>({commands:r})=>r.insertContent({type:this.name,attrs:t}),updateImageGif:t=>({commands:r})=>r.updateAttributes(this.name,t),setAlignImageGif:t=>({commands:r})=>r.updateAttributes(this.name,{align:t})}},renderHTML({HTMLAttributes:e}){const{align:t}=e;return["div",{style:t?`text-align: ${t};`:"",class:"imageGIf"},["img",W.mergeAttributes({height:"auto"},this.options.HTMLAttributes,e)]]},parseHTML(){return[{tag:"div[class=imageGIf]",getAttrs:e=>{const t=e.querySelector("img"),r=t==null?void 0:t.getAttribute("width");return{src:t==null?void 0:t.getAttribute("src"),alt:t==null?void 0:t.getAttribute("alt"),title:t==null?void 0:t.getAttribute("title"),width:r?Number.parseInt(r,10):null,align:(t==null?void 0:t.getAttribute("align"))||e.style.textAlign||null}}}]}});exports.ImageGif=H;exports.RichTextImageGif=Q;
|
package/lib/ImageGif.d.cts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { ImageOptions } from '@tiptap/extension-image';
|
|
2
|
+
import { JSX } from 'react/jsx-runtime';
|
|
2
3
|
import { Node as Node_2 } from '@tiptap/core';
|
|
3
4
|
|
|
4
|
-
declare const ImageGif: Node_2<ImageGifOptions, any>;
|
|
5
|
-
export { ImageGif }
|
|
6
|
-
export default ImageGif;
|
|
5
|
+
export declare const ImageGif: Node_2<ImageGifOptions, any>;
|
|
7
6
|
|
|
8
7
|
declare interface ImageGifOptions extends ImageOptions {
|
|
9
8
|
provider: 'giphy' | 'tenor';
|
|
@@ -13,6 +12,8 @@ declare interface ImageGifOptions extends ImageOptions {
|
|
|
13
12
|
API_KEY: string;
|
|
14
13
|
}
|
|
15
14
|
|
|
15
|
+
export declare function RichTextImageGif(): JSX.Element;
|
|
16
|
+
|
|
16
17
|
export declare interface SetImageAttrsOptions {
|
|
17
18
|
src?: string;
|
|
18
19
|
/** The alternative text for the image. */
|
|
@@ -58,6 +59,27 @@ declare module '@tiptap/core' {
|
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
|
|
62
|
+
declare module '@tiptap/core' {
|
|
63
|
+
interface Storage {
|
|
64
|
+
color: ColorStorage;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
declare module '@tiptap/core' {
|
|
70
|
+
interface Commands<ReturnType> {
|
|
71
|
+
columns: {
|
|
72
|
+
insertColumns: (attrs?: {
|
|
73
|
+
cols: number;
|
|
74
|
+
}) => ReturnType;
|
|
75
|
+
addColBefore: () => ReturnType;
|
|
76
|
+
addColAfter: () => ReturnType;
|
|
77
|
+
deleteCol: () => ReturnType;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
|
|
61
83
|
declare module '@tiptap/core' {
|
|
62
84
|
interface Commands<ReturnType> {
|
|
63
85
|
drawer: {
|
|
@@ -89,7 +111,7 @@ declare module '@tiptap/core' {
|
|
|
89
111
|
declare module '@tiptap/core' {
|
|
90
112
|
interface Commands<ReturnType> {
|
|
91
113
|
exportWord: {
|
|
92
|
-
exportToWord: () => ReturnType;
|
|
114
|
+
exportToWord: (docState: any) => ReturnType;
|
|
93
115
|
};
|
|
94
116
|
}
|
|
95
117
|
}
|
|
@@ -114,10 +136,8 @@ declare module '@tiptap/core' {
|
|
|
114
136
|
|
|
115
137
|
|
|
116
138
|
declare module '@tiptap/core' {
|
|
117
|
-
interface
|
|
118
|
-
|
|
119
|
-
setPainter: (marks: Mark[]) => ReturnType;
|
|
120
|
-
};
|
|
139
|
+
interface Storage {
|
|
140
|
+
highlight: HighlightStorage;
|
|
121
141
|
}
|
|
122
142
|
}
|
|
123
143
|
|
|
@@ -202,16 +222,6 @@ declare module '@tiptap/core' {
|
|
|
202
222
|
}
|
|
203
223
|
|
|
204
224
|
|
|
205
|
-
declare module '@tiptap/core' {
|
|
206
|
-
interface Commands<ReturnType> {
|
|
207
|
-
lineHeight: {
|
|
208
|
-
setLineHeight: (lineHeight: string) => ReturnType;
|
|
209
|
-
unsetLineHeight: () => ReturnType;
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
|
|
215
225
|
declare module '@tiptap/core' {
|
|
216
226
|
interface Commands<ReturnType> {
|
|
217
227
|
mermaid: {
|
|
@@ -222,20 +232,6 @@ declare module '@tiptap/core' {
|
|
|
222
232
|
}
|
|
223
233
|
|
|
224
234
|
|
|
225
|
-
declare module '@tiptap/core' {
|
|
226
|
-
interface Commands<ReturnType> {
|
|
227
|
-
columns: {
|
|
228
|
-
insertColumns: (attrs?: {
|
|
229
|
-
cols: number;
|
|
230
|
-
}) => ReturnType;
|
|
231
|
-
addColBefore: () => ReturnType;
|
|
232
|
-
addColAfter: () => ReturnType;
|
|
233
|
-
deleteCol: () => ReturnType;
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
|
|
239
235
|
declare module '@tiptap/core' {
|
|
240
236
|
interface Commands<ReturnType> {
|
|
241
237
|
search: {
|
|
@@ -259,16 +255,6 @@ declare module '@tiptap/core' {
|
|
|
259
255
|
}
|
|
260
256
|
|
|
261
257
|
|
|
262
|
-
declare module '@tiptap/core' {
|
|
263
|
-
interface Commands<ReturnType> {
|
|
264
|
-
tableOfContents: {
|
|
265
|
-
setTableOfContents: () => ReturnType;
|
|
266
|
-
removeTableOfContents: () => ReturnType;
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
|
|
272
258
|
declare module '@tiptap/core' {
|
|
273
259
|
interface Commands<ReturnType> {
|
|
274
260
|
twitter: {
|
package/lib/ImageGif.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { ImageOptions } from '@tiptap/extension-image';
|
|
2
|
+
import { JSX } from 'react/jsx-runtime';
|
|
2
3
|
import { Node as Node_2 } from '@tiptap/core';
|
|
3
4
|
|
|
4
|
-
declare const ImageGif: Node_2<ImageGifOptions, any>;
|
|
5
|
-
export { ImageGif }
|
|
6
|
-
export default ImageGif;
|
|
5
|
+
export declare const ImageGif: Node_2<ImageGifOptions, any>;
|
|
7
6
|
|
|
8
7
|
declare interface ImageGifOptions extends ImageOptions {
|
|
9
8
|
provider: 'giphy' | 'tenor';
|
|
@@ -13,6 +12,8 @@ declare interface ImageGifOptions extends ImageOptions {
|
|
|
13
12
|
API_KEY: string;
|
|
14
13
|
}
|
|
15
14
|
|
|
15
|
+
export declare function RichTextImageGif(): JSX.Element;
|
|
16
|
+
|
|
16
17
|
export declare interface SetImageAttrsOptions {
|
|
17
18
|
src?: string;
|
|
18
19
|
/** The alternative text for the image. */
|
|
@@ -58,6 +59,27 @@ declare module '@tiptap/core' {
|
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
|
|
62
|
+
declare module '@tiptap/core' {
|
|
63
|
+
interface Storage {
|
|
64
|
+
color: ColorStorage;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
declare module '@tiptap/core' {
|
|
70
|
+
interface Commands<ReturnType> {
|
|
71
|
+
columns: {
|
|
72
|
+
insertColumns: (attrs?: {
|
|
73
|
+
cols: number;
|
|
74
|
+
}) => ReturnType;
|
|
75
|
+
addColBefore: () => ReturnType;
|
|
76
|
+
addColAfter: () => ReturnType;
|
|
77
|
+
deleteCol: () => ReturnType;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
|
|
61
83
|
declare module '@tiptap/core' {
|
|
62
84
|
interface Commands<ReturnType> {
|
|
63
85
|
drawer: {
|
|
@@ -89,7 +111,7 @@ declare module '@tiptap/core' {
|
|
|
89
111
|
declare module '@tiptap/core' {
|
|
90
112
|
interface Commands<ReturnType> {
|
|
91
113
|
exportWord: {
|
|
92
|
-
exportToWord: () => ReturnType;
|
|
114
|
+
exportToWord: (docState: any) => ReturnType;
|
|
93
115
|
};
|
|
94
116
|
}
|
|
95
117
|
}
|
|
@@ -114,10 +136,8 @@ declare module '@tiptap/core' {
|
|
|
114
136
|
|
|
115
137
|
|
|
116
138
|
declare module '@tiptap/core' {
|
|
117
|
-
interface
|
|
118
|
-
|
|
119
|
-
setPainter: (marks: Mark[]) => ReturnType;
|
|
120
|
-
};
|
|
139
|
+
interface Storage {
|
|
140
|
+
highlight: HighlightStorage;
|
|
121
141
|
}
|
|
122
142
|
}
|
|
123
143
|
|
|
@@ -202,16 +222,6 @@ declare module '@tiptap/core' {
|
|
|
202
222
|
}
|
|
203
223
|
|
|
204
224
|
|
|
205
|
-
declare module '@tiptap/core' {
|
|
206
|
-
interface Commands<ReturnType> {
|
|
207
|
-
lineHeight: {
|
|
208
|
-
setLineHeight: (lineHeight: string) => ReturnType;
|
|
209
|
-
unsetLineHeight: () => ReturnType;
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
|
|
215
225
|
declare module '@tiptap/core' {
|
|
216
226
|
interface Commands<ReturnType> {
|
|
217
227
|
mermaid: {
|
|
@@ -222,20 +232,6 @@ declare module '@tiptap/core' {
|
|
|
222
232
|
}
|
|
223
233
|
|
|
224
234
|
|
|
225
|
-
declare module '@tiptap/core' {
|
|
226
|
-
interface Commands<ReturnType> {
|
|
227
|
-
columns: {
|
|
228
|
-
insertColumns: (attrs?: {
|
|
229
|
-
cols: number;
|
|
230
|
-
}) => ReturnType;
|
|
231
|
-
addColBefore: () => ReturnType;
|
|
232
|
-
addColAfter: () => ReturnType;
|
|
233
|
-
deleteCol: () => ReturnType;
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
|
|
239
235
|
declare module '@tiptap/core' {
|
|
240
236
|
interface Commands<ReturnType> {
|
|
241
237
|
search: {
|
|
@@ -259,16 +255,6 @@ declare module '@tiptap/core' {
|
|
|
259
255
|
}
|
|
260
256
|
|
|
261
257
|
|
|
262
|
-
declare module '@tiptap/core' {
|
|
263
|
-
interface Commands<ReturnType> {
|
|
264
|
-
tableOfContents: {
|
|
265
|
-
setTableOfContents: () => ReturnType;
|
|
266
|
-
removeTableOfContents: () => ReturnType;
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
|
|
272
258
|
declare module '@tiptap/core' {
|
|
273
259
|
interface Commands<ReturnType> {
|
|
274
260
|
twitter: {
|
package/lib/ImageGif.js
CHANGED
|
@@ -1,7 +1,426 @@
|
|
|
1
|
-
import "./index-
|
|
2
|
-
import {
|
|
3
|
-
import "./
|
|
1
|
+
import { m as F } from "./index-DnWWK9F_.js";
|
|
2
|
+
import { a as k, d as B, c as q } from "./throttle-CdwDrFpn.js";
|
|
3
|
+
import { N as V, R as X } from "./index-DzcKxutn.js";
|
|
4
|
+
import { jsx as u, jsxs as P, Fragment as Y } from "react/jsx-runtime";
|
|
5
|
+
import { useState as A, useMemo as L, useCallback as G, useEffect as z, useRef as Z } from "react";
|
|
6
|
+
import { I as C, m as W, n as U } from "./index-DYkucCoF.js";
|
|
7
|
+
import { i as j, c as J } from "./isNumber-fpLGS0AZ.js";
|
|
8
|
+
import { A as Q } from "./toggle-Cdp4IT2U.js";
|
|
9
|
+
import "./index-BPfVXs5_.js";
|
|
10
|
+
import { u as K, a as ee } from "./useButtonProps-BsEd4zYM.js";
|
|
11
|
+
import { P as te, a as re, b as ne } from "./popover-CAuEW0Mr.js";
|
|
12
|
+
import { I as ie } from "./input-wJ9PDEzZ.js";
|
|
13
|
+
const O = {
|
|
14
|
+
TOP_LEFT: "tl",
|
|
15
|
+
TOP_RIGHT: "tr",
|
|
16
|
+
BOTTOM_LEFT: "bl",
|
|
17
|
+
BOTTOM_RIGHT: "br"
|
|
18
|
+
};
|
|
19
|
+
function ae(e) {
|
|
20
|
+
var $, H;
|
|
21
|
+
const [t, n] = A({
|
|
22
|
+
width: C,
|
|
23
|
+
height: C
|
|
24
|
+
}), [c, i] = A({
|
|
25
|
+
width: 0,
|
|
26
|
+
height: 0
|
|
27
|
+
}), [r] = A([
|
|
28
|
+
O.TOP_LEFT,
|
|
29
|
+
O.TOP_RIGHT,
|
|
30
|
+
O.BOTTOM_LEFT,
|
|
31
|
+
O.BOTTOM_RIGHT
|
|
32
|
+
]), [a, s] = A(!1), [l, g] = A({
|
|
33
|
+
x: 0,
|
|
34
|
+
y: 0,
|
|
35
|
+
w: 0,
|
|
36
|
+
h: 0,
|
|
37
|
+
dir: ""
|
|
38
|
+
}), { align: b } = ($ = e == null ? void 0 : e.node) == null ? void 0 : $.attrs, m = L(() => {
|
|
39
|
+
var v;
|
|
40
|
+
const { src: o, alt: f, width: w, height: T } = (v = e == null ? void 0 : e.node) == null ? void 0 : v.attrs, x = j(w) ? `${w}px` : w, d = j(T) ? `${T}px` : T;
|
|
41
|
+
return {
|
|
42
|
+
src: o || void 0,
|
|
43
|
+
alt: f || void 0,
|
|
44
|
+
style: {
|
|
45
|
+
width: x || void 0,
|
|
46
|
+
height: d || void 0
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}, [(H = e == null ? void 0 : e.node) == null ? void 0 : H.attrs]), h = L(() => {
|
|
50
|
+
const {
|
|
51
|
+
style: { width: o }
|
|
52
|
+
} = m;
|
|
53
|
+
return { width: o === "100%" ? o : void 0 };
|
|
54
|
+
}, [m]);
|
|
55
|
+
function _(o) {
|
|
56
|
+
i({
|
|
57
|
+
width: o.target.width,
|
|
58
|
+
height: o.target.height
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function y() {
|
|
62
|
+
const { editor: o, getPos: f } = e;
|
|
63
|
+
o.commands.setNodeSelection(f());
|
|
64
|
+
}
|
|
65
|
+
const M = G(
|
|
66
|
+
k(() => {
|
|
67
|
+
const { editor: o } = e, { width: f } = getComputedStyle(o.view.dom);
|
|
68
|
+
n((w) => ({
|
|
69
|
+
...w,
|
|
70
|
+
width: Number.parseInt(f, 10)
|
|
71
|
+
}));
|
|
72
|
+
}, W),
|
|
73
|
+
[e == null ? void 0 : e.editor]
|
|
74
|
+
);
|
|
75
|
+
function D(o, f) {
|
|
76
|
+
o.preventDefault(), o.stopPropagation();
|
|
77
|
+
const w = c.width, T = c.height, x = w / T;
|
|
78
|
+
let d = Number(e.node.attrs.width), v = Number(e.node.attrs.height);
|
|
79
|
+
const I = t.width;
|
|
80
|
+
d && !v ? (d = d > I ? I : d, v = Math.round(d / x)) : v && !d ? (d = Math.round(v * x), d = d > I ? I : d) : !d && !v ? (d = w > I ? I : w, v = Math.round(d / x)) : d = d > I ? I : d, s(!0), g({
|
|
81
|
+
x: o.clientX,
|
|
82
|
+
y: o.clientY,
|
|
83
|
+
w: d,
|
|
84
|
+
h: v,
|
|
85
|
+
dir: f
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
const N = G(
|
|
89
|
+
k((o) => {
|
|
90
|
+
if (o.preventDefault(), o.stopPropagation(), !a)
|
|
91
|
+
return;
|
|
92
|
+
const { x: f, w, dir: T } = l, x = (o.clientX - f) * (/l/.test(T) ? -1 : 1), d = J(w + x, U, t.width);
|
|
93
|
+
e.updateAttributes({
|
|
94
|
+
width: d,
|
|
95
|
+
height: null
|
|
96
|
+
});
|
|
97
|
+
}, W),
|
|
98
|
+
[a, l, t, e.updateAttributes]
|
|
99
|
+
), E = G(
|
|
100
|
+
(o) => {
|
|
101
|
+
o.preventDefault(), o.stopPropagation(), a && (g({
|
|
102
|
+
x: 0,
|
|
103
|
+
y: 0,
|
|
104
|
+
w: 0,
|
|
105
|
+
h: 0,
|
|
106
|
+
dir: ""
|
|
107
|
+
}), s(!1), y());
|
|
108
|
+
},
|
|
109
|
+
[a, y]
|
|
110
|
+
), R = G(() => {
|
|
111
|
+
document == null || document.addEventListener("mousemove", N, !0), document == null || document.addEventListener("mouseup", E, !0);
|
|
112
|
+
}, [N, E]), p = G(() => {
|
|
113
|
+
document == null || document.removeEventListener("mousemove", N, !0), document == null || document.removeEventListener("mouseup", E, !0);
|
|
114
|
+
}, [N, E]);
|
|
115
|
+
z(() => (a ? R() : p(), () => {
|
|
116
|
+
p();
|
|
117
|
+
}), [a, R, p]);
|
|
118
|
+
const S = L(() => new ResizeObserver(() => M()), [M]);
|
|
119
|
+
return z(() => (S.observe(e.editor.view.dom), () => {
|
|
120
|
+
S.disconnect();
|
|
121
|
+
}), [e.editor.view.dom, S]), /* @__PURE__ */ u(
|
|
122
|
+
V,
|
|
123
|
+
{
|
|
124
|
+
className: "image-view",
|
|
125
|
+
style: { ...h, width: "100%", textAlign: b },
|
|
126
|
+
children: /* @__PURE__ */ P(
|
|
127
|
+
"div",
|
|
128
|
+
{
|
|
129
|
+
"data-drag-handle": !0,
|
|
130
|
+
draggable: "true",
|
|
131
|
+
style: h,
|
|
132
|
+
className: `image-view__body ${e != null && e.selected ? "image-view__body--focused" : ""} ${a ? "image-view__body--resizing" : ""}`,
|
|
133
|
+
children: [
|
|
134
|
+
/* @__PURE__ */ u(
|
|
135
|
+
"img",
|
|
136
|
+
{
|
|
137
|
+
alt: m.alt,
|
|
138
|
+
className: "image-view__body__image block",
|
|
139
|
+
height: "auto",
|
|
140
|
+
onClick: y,
|
|
141
|
+
onLoad: _,
|
|
142
|
+
src: m.src,
|
|
143
|
+
style: m.style
|
|
144
|
+
}
|
|
145
|
+
),
|
|
146
|
+
(e == null ? void 0 : e.editor.view.editable) && ((e == null ? void 0 : e.selected) || a) && /* @__PURE__ */ u("div", { className: "image-resizer", children: r == null ? void 0 : r.map((o) => /* @__PURE__ */ u(
|
|
147
|
+
"span",
|
|
148
|
+
{
|
|
149
|
+
className: `image-resizer__handler image-resizer__handler--${o}`,
|
|
150
|
+
onMouseDown: (f) => D(f, o)
|
|
151
|
+
},
|
|
152
|
+
`image-dir-${o}`
|
|
153
|
+
)) })
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
)
|
|
157
|
+
}
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
async function se(e) {
|
|
161
|
+
var c;
|
|
162
|
+
const n = await (await fetch(`https://api.giphy.com/v1/gifs/trending?q=&limit=15&api_key=${e}`)).json();
|
|
163
|
+
return (c = n == null ? void 0 : n.data) == null ? void 0 : c.map((i) => {
|
|
164
|
+
var r, a, s;
|
|
165
|
+
return {
|
|
166
|
+
id: i == null ? void 0 : i.id,
|
|
167
|
+
src: (r = i == null ? void 0 : i.images.original) == null ? void 0 : r.url,
|
|
168
|
+
width: +((a = i == null ? void 0 : i.images.original) == null ? void 0 : a.width),
|
|
169
|
+
height: +((s = i == null ? void 0 : i.images.original) == null ? void 0 : s.width)
|
|
170
|
+
};
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
async function oe(e, t) {
|
|
174
|
+
var i;
|
|
175
|
+
const c = await (await fetch(`https://api.giphy.com/v1/gifs/search?q=${e}&limit=15&api_key=${t}`)).json();
|
|
176
|
+
return (i = c == null ? void 0 : c.data) == null ? void 0 : i.map((r) => {
|
|
177
|
+
var a, s, l;
|
|
178
|
+
return {
|
|
179
|
+
id: r == null ? void 0 : r.id,
|
|
180
|
+
src: (a = r == null ? void 0 : r.images.original) == null ? void 0 : a.url,
|
|
181
|
+
width: +((s = r == null ? void 0 : r.images.original) == null ? void 0 : s.width),
|
|
182
|
+
height: +((l = r == null ? void 0 : r.images.original) == null ? void 0 : l.width)
|
|
183
|
+
};
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
async function ce(e) {
|
|
187
|
+
var r, a;
|
|
188
|
+
const t = await fetch(`https://tenor.googleapis.com/v2/trending_terms?key=${e}&limit=10`), n = await (t == null ? void 0 : t.json()), i = await (await fetch(`https://tenor.googleapis.com/v2/search?key=${e}&q=${(r = n == null ? void 0 : n.results) == null ? void 0 : r[0]}&limit=15`)).json();
|
|
189
|
+
return (a = i == null ? void 0 : i.results) == null ? void 0 : a.map((s) => {
|
|
190
|
+
var l, g, b, m, h, _, y, M;
|
|
191
|
+
return {
|
|
192
|
+
id: s == null ? void 0 : s.id,
|
|
193
|
+
src: (g = (l = s == null ? void 0 : s.media_formats) == null ? void 0 : l.gif) == null ? void 0 : g.url,
|
|
194
|
+
width: (h = (m = (b = s == null ? void 0 : s.media_formats) == null ? void 0 : b.gif) == null ? void 0 : m.dims) == null ? void 0 : h[0],
|
|
195
|
+
height: (M = (y = (_ = s == null ? void 0 : s.media_formats) == null ? void 0 : _.gif) == null ? void 0 : y.dims) == null ? void 0 : M[1]
|
|
196
|
+
};
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
async function de(e, t) {
|
|
200
|
+
var i;
|
|
201
|
+
const c = await (await fetch(`https://tenor.googleapis.com/v2/search?key=${t}&q=${e}&limit=15`)).json();
|
|
202
|
+
return (i = c == null ? void 0 : c.results) == null ? void 0 : i.map((r) => {
|
|
203
|
+
var a, s, l, g, b, m, h, _;
|
|
204
|
+
return {
|
|
205
|
+
id: r == null ? void 0 : r.id,
|
|
206
|
+
src: (s = (a = r == null ? void 0 : r.media_formats) == null ? void 0 : a.gif) == null ? void 0 : s.url,
|
|
207
|
+
width: (b = (g = (l = r == null ? void 0 : r.media_formats) == null ? void 0 : l.gif) == null ? void 0 : g.dims) == null ? void 0 : b[0],
|
|
208
|
+
height: (_ = (h = (m = r == null ? void 0 : r.media_formats) == null ? void 0 : m.gif) == null ? void 0 : h.dims) == null ? void 0 : _[1]
|
|
209
|
+
};
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
function le(e, t) {
|
|
213
|
+
return {
|
|
214
|
+
searchTrending: async () => t ? e === "giphy" ? se(t) : e === "tenor" ? ce(t) : [] : [],
|
|
215
|
+
searchWord: async (i) => t ? e === "giphy" ? oe(i, t) : e === "tenor" ? de(i, t) : [] : []
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
function he({ selectImage: e, apiKey: t, provider: n, children: c }) {
|
|
219
|
+
const [i, r] = A(!1), [a, s] = A([]), l = Z(null), { searchTrending: g, searchWord: b } = le(n, t);
|
|
220
|
+
z(() => {
|
|
221
|
+
(async () => {
|
|
222
|
+
const h = await g();
|
|
223
|
+
s(h);
|
|
224
|
+
})();
|
|
225
|
+
}, []);
|
|
226
|
+
const m = G(
|
|
227
|
+
B(async (h) => {
|
|
228
|
+
if (!h.target.value) {
|
|
229
|
+
const y = await g();
|
|
230
|
+
s(y);
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
const _ = await b(h.target.value);
|
|
234
|
+
s(_);
|
|
235
|
+
}, 350),
|
|
236
|
+
// Adjust the debounce delay as needed
|
|
237
|
+
[]
|
|
238
|
+
);
|
|
239
|
+
return /* @__PURE__ */ P(
|
|
240
|
+
te,
|
|
241
|
+
{
|
|
242
|
+
modal: !0,
|
|
243
|
+
onOpenChange: r,
|
|
244
|
+
open: i,
|
|
245
|
+
children: [
|
|
246
|
+
/* @__PURE__ */ u(re, { asChild: !0, children: c }),
|
|
247
|
+
/* @__PURE__ */ u(
|
|
248
|
+
ne,
|
|
249
|
+
{
|
|
250
|
+
align: "start",
|
|
251
|
+
className: "richtext-size-full richtext-p-2",
|
|
252
|
+
hideWhenDetached: !0,
|
|
253
|
+
side: "bottom",
|
|
254
|
+
children: t ? /* @__PURE__ */ P(Y, { children: [
|
|
255
|
+
/* @__PURE__ */ u("div", { className: "richtext-mb-[10px] richtext-w-full", children: /* @__PURE__ */ u(
|
|
256
|
+
ie,
|
|
257
|
+
{
|
|
258
|
+
onChange: m,
|
|
259
|
+
placeholder: "Search GIF",
|
|
260
|
+
ref: l,
|
|
261
|
+
type: "text"
|
|
262
|
+
}
|
|
263
|
+
) }),
|
|
264
|
+
/* @__PURE__ */ u("div", { className: "richtext-max-h-[280px] !richtext-max-w-[400px] richtext-overflow-y-auto", children: /* @__PURE__ */ u("div", { className: "richtext-grid richtext-grid-cols-2 richtext-gap-1 ", children: a != null && a.length ? a == null ? void 0 : a.map((h) => /* @__PURE__ */ u(
|
|
265
|
+
"img",
|
|
266
|
+
{
|
|
267
|
+
alt: "",
|
|
268
|
+
className: "richtext-cursor-pointer richtext-object-contain richtext-text-center",
|
|
269
|
+
src: h.src,
|
|
270
|
+
onClick: () => {
|
|
271
|
+
e(h.src), r(!1);
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
h.id
|
|
275
|
+
)) : /* @__PURE__ */ u("p", { children: "No GIFs found" }) }) })
|
|
276
|
+
] }) : /* @__PURE__ */ u("div", { children: /* @__PURE__ */ u("p", { children: "Missing Giphy API Key" }) })
|
|
277
|
+
}
|
|
278
|
+
)
|
|
279
|
+
]
|
|
280
|
+
}
|
|
281
|
+
);
|
|
282
|
+
}
|
|
283
|
+
function Ge() {
|
|
284
|
+
const e = K(ue.name), {
|
|
285
|
+
action: t,
|
|
286
|
+
icon: n,
|
|
287
|
+
tooltip: c,
|
|
288
|
+
apiKey: i,
|
|
289
|
+
provider: r
|
|
290
|
+
} = (e == null ? void 0 : e.componentProps) ?? {}, { editorDisabled: a } = ee();
|
|
291
|
+
return /* @__PURE__ */ u(
|
|
292
|
+
he,
|
|
293
|
+
{
|
|
294
|
+
apiKey: i,
|
|
295
|
+
provider: r,
|
|
296
|
+
selectImage: (l) => {
|
|
297
|
+
a || t && t(l);
|
|
298
|
+
},
|
|
299
|
+
children: /* @__PURE__ */ u(
|
|
300
|
+
Q,
|
|
301
|
+
{
|
|
302
|
+
icon: n,
|
|
303
|
+
tooltip: c
|
|
304
|
+
}
|
|
305
|
+
)
|
|
306
|
+
}
|
|
307
|
+
);
|
|
308
|
+
}
|
|
309
|
+
const ue = /* @__PURE__ */ q.extend({
|
|
310
|
+
name: "imageGif",
|
|
311
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
312
|
+
//@ts-expect-error
|
|
313
|
+
addOptions() {
|
|
314
|
+
var e;
|
|
315
|
+
return {
|
|
316
|
+
...(e = this.parent) == null ? void 0 : e.call(this),
|
|
317
|
+
inline: !1,
|
|
318
|
+
content: "",
|
|
319
|
+
marks: "",
|
|
320
|
+
group: "block",
|
|
321
|
+
API_KEY: "",
|
|
322
|
+
provider: "giphy",
|
|
323
|
+
draggable: !1,
|
|
324
|
+
selectable: !0,
|
|
325
|
+
atom: !0,
|
|
326
|
+
button: ({ editor: t, extension: n, t: c }) => {
|
|
327
|
+
var a, s;
|
|
328
|
+
const i = ((a = n == null ? void 0 : n.options) == null ? void 0 : a.provider) || "", r = ((s = n == null ? void 0 : n.options) == null ? void 0 : s.API_KEY) || "";
|
|
329
|
+
return {
|
|
330
|
+
componentProps: {
|
|
331
|
+
action: (l) => {
|
|
332
|
+
t.chain().focus().setImageGif({ src: l }).run();
|
|
333
|
+
},
|
|
334
|
+
isActive: () => !1,
|
|
335
|
+
disabled: !1,
|
|
336
|
+
icon: "GifIcon",
|
|
337
|
+
tooltip: c("editor.imageGif.tooltip"),
|
|
338
|
+
apiKey: r,
|
|
339
|
+
provider: i
|
|
340
|
+
}
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
},
|
|
345
|
+
addAttributes() {
|
|
346
|
+
var e;
|
|
347
|
+
return {
|
|
348
|
+
...(e = this.parent) == null ? void 0 : e.call(this),
|
|
349
|
+
width: {
|
|
350
|
+
default: null,
|
|
351
|
+
parseHTML: (t) => {
|
|
352
|
+
const n = t.style.width || t.getAttribute("width") || "10";
|
|
353
|
+
return n === void 0 ? null : Number.parseInt(`${n}`, 10);
|
|
354
|
+
},
|
|
355
|
+
renderHTML: (t) => ({
|
|
356
|
+
width: t.width
|
|
357
|
+
})
|
|
358
|
+
},
|
|
359
|
+
align: {
|
|
360
|
+
default: "center",
|
|
361
|
+
parseHTML: (t) => t.getAttribute("align"),
|
|
362
|
+
renderHTML: (t) => ({
|
|
363
|
+
align: t.align
|
|
364
|
+
})
|
|
365
|
+
}
|
|
366
|
+
};
|
|
367
|
+
},
|
|
368
|
+
addNodeView() {
|
|
369
|
+
return X(ae);
|
|
370
|
+
},
|
|
371
|
+
addCommands() {
|
|
372
|
+
var e;
|
|
373
|
+
return {
|
|
374
|
+
...(e = this.parent) == null ? void 0 : e.call(this),
|
|
375
|
+
setImageGif: (t) => ({ commands: n }) => n.insertContent({
|
|
376
|
+
type: this.name,
|
|
377
|
+
attrs: t
|
|
378
|
+
}),
|
|
379
|
+
updateImageGif: (t) => ({ commands: n }) => n.updateAttributes(this.name, t),
|
|
380
|
+
setAlignImageGif: (t) => ({ commands: n }) => n.updateAttributes(this.name, { align: t })
|
|
381
|
+
};
|
|
382
|
+
},
|
|
383
|
+
renderHTML({ HTMLAttributes: e }) {
|
|
384
|
+
const { align: t } = e;
|
|
385
|
+
return [
|
|
386
|
+
"div",
|
|
387
|
+
// Parent element
|
|
388
|
+
{
|
|
389
|
+
style: t ? `text-align: ${t};` : "",
|
|
390
|
+
class: "imageGIf"
|
|
391
|
+
},
|
|
392
|
+
[
|
|
393
|
+
"img",
|
|
394
|
+
F(
|
|
395
|
+
// Always render the `height="auto"`
|
|
396
|
+
{
|
|
397
|
+
height: "auto"
|
|
398
|
+
},
|
|
399
|
+
this.options.HTMLAttributes,
|
|
400
|
+
e
|
|
401
|
+
)
|
|
402
|
+
]
|
|
403
|
+
];
|
|
404
|
+
},
|
|
405
|
+
parseHTML() {
|
|
406
|
+
return [
|
|
407
|
+
{
|
|
408
|
+
tag: "div[class=imageGIf]",
|
|
409
|
+
getAttrs: (e) => {
|
|
410
|
+
const t = e.querySelector("img"), n = t == null ? void 0 : t.getAttribute("width");
|
|
411
|
+
return {
|
|
412
|
+
src: t == null ? void 0 : t.getAttribute("src"),
|
|
413
|
+
alt: t == null ? void 0 : t.getAttribute("alt"),
|
|
414
|
+
title: t == null ? void 0 : t.getAttribute("title"),
|
|
415
|
+
width: n ? Number.parseInt(n, 10) : null,
|
|
416
|
+
align: (t == null ? void 0 : t.getAttribute("align")) || e.style.textAlign || null
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
];
|
|
421
|
+
}
|
|
422
|
+
});
|
|
4
423
|
export {
|
|
5
|
-
|
|
6
|
-
|
|
424
|
+
ue as ImageGif,
|
|
425
|
+
Ge as RichTextImageGif
|
|
7
426
|
};
|