payload-richtext-tiptap 0.0.141 → 0.0.142

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 (271) hide show
  1. package/LICENSE.md +22 -22
  2. package/README.md +7 -7
  3. package/dist/src/body/StandardArticle.js.map +1 -1
  4. package/dist/src/fields/TiptapEditor/Components.js.map +1 -1
  5. package/dist/src/fields/TiptapEditor/context/EditorContext.js.map +1 -1
  6. package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.d.ts.map +1 -1
  7. package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.js +0 -1
  8. package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.js.map +1 -1
  9. package/dist/src/fields/TiptapEditor/extensions/AICommand/AIMenuList.js.map +1 -1
  10. package/dist/src/fields/TiptapEditor/extensions/AICommand/CommandButton.js.map +1 -1
  11. package/dist/src/fields/TiptapEditor/extensions/AICommand/groups.js.map +1 -1
  12. package/dist/src/fields/TiptapEditor/extensions/AICommand/index.js.map +1 -1
  13. package/dist/src/fields/TiptapEditor/extensions/AICommand/types.js.map +1 -1
  14. package/dist/src/fields/TiptapEditor/extensions/Audio/Audio.js +5 -5
  15. package/dist/src/fields/TiptapEditor/extensions/Audio/Audio.js.map +1 -1
  16. package/dist/src/fields/TiptapEditor/extensions/Audio/index.js.map +1 -1
  17. package/dist/src/fields/TiptapEditor/extensions/AudioBlock/AudioBlock.js.map +1 -1
  18. package/dist/src/fields/TiptapEditor/extensions/AudioBlock/components/AudioBlockMenu.js.map +1 -1
  19. package/dist/src/fields/TiptapEditor/extensions/AudioBlock/components/AudioBlockView.js.map +1 -1
  20. package/dist/src/fields/TiptapEditor/extensions/AudioBlock/components/AudioBlockWidth.js.map +1 -1
  21. package/dist/src/fields/TiptapEditor/extensions/AudioBlock/index.js.map +1 -1
  22. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/BlockquoteFigure.js.map +1 -1
  23. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Design.js.map +1 -1
  24. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Quote/Quote.js.map +1 -1
  25. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Quote/index.js.map +1 -1
  26. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/QuoteCaption/QuoteCaption.js.map +1 -1
  27. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/QuoteCaption/index.js.map +1 -1
  28. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/index.js.map +1 -1
  29. package/dist/src/fields/TiptapEditor/extensions/Document/Document.js.map +1 -1
  30. package/dist/src/fields/TiptapEditor/extensions/Document/index.js.map +1 -1
  31. package/dist/src/fields/TiptapEditor/extensions/Figcaption/Figcaption.js.map +1 -1
  32. package/dist/src/fields/TiptapEditor/extensions/Figcaption/index.js.map +1 -1
  33. package/dist/src/fields/TiptapEditor/extensions/Figure/Figure.js.map +1 -1
  34. package/dist/src/fields/TiptapEditor/extensions/Figure/index.js.map +1 -1
  35. package/dist/src/fields/TiptapEditor/extensions/FontSize/FontSize.js.map +1 -1
  36. package/dist/src/fields/TiptapEditor/extensions/FontSize/index.js.map +1 -1
  37. package/dist/src/fields/TiptapEditor/extensions/Heading/Heading.js.map +1 -1
  38. package/dist/src/fields/TiptapEditor/extensions/Heading/index.js.map +1 -1
  39. package/dist/src/fields/TiptapEditor/extensions/HorizontalRule/HorizontalRule.js.map +1 -1
  40. package/dist/src/fields/TiptapEditor/extensions/HorizontalRule/index.js.map +1 -1
  41. package/dist/src/fields/TiptapEditor/extensions/Iframe/IframeEmbed.js.map +1 -1
  42. package/dist/src/fields/TiptapEditor/extensions/Iframe/iframe.js.map +1 -1
  43. package/dist/src/fields/TiptapEditor/extensions/Iframe/index.js.map +1 -1
  44. package/dist/src/fields/TiptapEditor/extensions/Iframe/menus/IframeMenu.js.map +1 -1
  45. package/dist/src/fields/TiptapEditor/extensions/Iframe/menus/index.js.map +1 -1
  46. package/dist/src/fields/TiptapEditor/extensions/Image/Image.js.map +1 -1
  47. package/dist/src/fields/TiptapEditor/extensions/Image/index.js.map +1 -1
  48. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/ImageBlock.js.map +1 -1
  49. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockMenu.js.map +1 -1
  50. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.js.map +1 -1
  51. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockViewClientside.js.map +1 -1
  52. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockWidth.js.map +1 -1
  53. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/index.js.map +1 -1
  54. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.js.map +1 -1
  55. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/getImageActualSize.js.map +1 -1
  56. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/index.js.map +1 -1
  57. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.js.map +1 -1
  58. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.js.map +1 -1
  59. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/hooks.js.map +1 -1
  60. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/index.js.map +1 -1
  61. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLink.client.js.map +1 -1
  62. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLinksComponent.js.map +1 -1
  63. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/index.js.map +1 -1
  64. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/insideLinks.js.map +1 -1
  65. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/InsideLinksMenu.js.map +1 -1
  66. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/index.js.map +1 -1
  67. package/dist/src/fields/TiptapEditor/extensions/Link/Link.js.map +1 -1
  68. package/dist/src/fields/TiptapEditor/extensions/Link/index.js.map +1 -1
  69. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/EditLinkPreviewPopover.js.map +1 -1
  70. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.js.map +1 -1
  71. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreviewEditorPanel.js.map +1 -1
  72. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/index.js.map +1 -1
  73. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/menus/index.js.map +1 -1
  74. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/menus/linkPreviewMenu.js.map +1 -1
  75. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Column.js.map +1 -1
  76. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Columns.js +3 -3
  77. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Columns.js.map +1 -1
  78. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/index.js.map +1 -1
  79. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/ColumnsMenu.js.map +1 -1
  80. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/index.js.map +1 -1
  81. package/dist/src/fields/TiptapEditor/extensions/Paragraph/Paragraph.js.map +1 -1
  82. package/dist/src/fields/TiptapEditor/extensions/Paragraph/index.js.map +1 -1
  83. package/dist/src/fields/TiptapEditor/extensions/Selection/Selection.js.map +1 -1
  84. package/dist/src/fields/TiptapEditor/extensions/Selection/index.js.map +1 -1
  85. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.js.map +1 -1
  86. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.js.map +1 -1
  87. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/SlashCommand.js.map +1 -1
  88. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/groups.js.map +1 -1
  89. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/index.js.map +1 -1
  90. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/types.js.map +1 -1
  91. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/FacebookEmbed.js.map +1 -1
  92. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.js.map +1 -1
  93. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/index.js.map +1 -1
  94. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.js.map +1 -1
  95. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/index.js.map +1 -1
  96. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.js.map +1 -1
  97. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/LinkedinEmbed.js.map +1 -1
  98. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/index.js.map +1 -1
  99. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.js.map +1 -1
  100. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.js.map +1 -1
  101. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.js.map +1 -1
  102. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/TiktokEmbed.js.map +1 -1
  103. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/index.js.map +1 -1
  104. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.js.map +1 -1
  105. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/TwitterEmbed.js.map +1 -1
  106. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/index.js.map +1 -1
  107. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.js.map +1 -1
  108. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/YoutubeEmbed.js.map +1 -1
  109. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/index.js.map +1 -1
  110. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.js.map +1 -1
  111. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/index.js.map +1 -1
  112. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/SocialMediaMenu.js.map +1 -1
  113. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/constants.js.map +1 -1
  114. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/index.js.map +1 -1
  115. package/dist/src/fields/TiptapEditor/extensions/Table/Cell.js.map +1 -1
  116. package/dist/src/fields/TiptapEditor/extensions/Table/Header.js.map +1 -1
  117. package/dist/src/fields/TiptapEditor/extensions/Table/Row.js.map +1 -1
  118. package/dist/src/fields/TiptapEditor/extensions/Table/Table.js.map +1 -1
  119. package/dist/src/fields/TiptapEditor/extensions/Table/index.js.map +1 -1
  120. package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableColumn/index.js.map +1 -1
  121. package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableColumn/utils.js.map +1 -1
  122. package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableRow/index.js.map +1 -1
  123. package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableRow/utils.js.map +1 -1
  124. package/dist/src/fields/TiptapEditor/extensions/Table/menus/index.js.map +1 -1
  125. package/dist/src/fields/TiptapEditor/extensions/Table/utils.js.map +1 -1
  126. package/dist/src/fields/TiptapEditor/extensions/TrailingNode/index.js.map +1 -1
  127. package/dist/src/fields/TiptapEditor/extensions/TrailingNode/trailing-node.js.map +1 -1
  128. package/dist/src/fields/TiptapEditor/extensions/Video/Video.js +5 -5
  129. package/dist/src/fields/TiptapEditor/extensions/Video/Video.js.map +1 -1
  130. package/dist/src/fields/TiptapEditor/extensions/Video/index.js.map +1 -1
  131. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/VideoBlock.js.map +1 -1
  132. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockMenu.js.map +1 -1
  133. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockView.js.map +1 -1
  134. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockViewClientside.js.map +1 -1
  135. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockWidth.js.map +1 -1
  136. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.js.map +1 -1
  137. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/components/QualityOption.js +9 -9
  138. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/components/QualityOption.js.map +1 -1
  139. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/components/QualitySelector.js +15 -15
  140. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/components/QualitySelector.js.map +1 -1
  141. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/events.d.ts.map +1 -1
  142. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/events.js.map +1 -1
  143. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/index.js.map +1 -1
  144. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/middleware/SourceInterceptor.js.map +1 -1
  145. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/util/SafeSeek.js.map +1 -1
  146. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/index.js.map +1 -1
  147. package/dist/src/fields/TiptapEditor/extensions/extension-kit.js.map +1 -1
  148. package/dist/src/fields/TiptapEditor/extensions/index.js.map +1 -1
  149. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.js.map +1 -1
  150. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSideRenderer.js.map +1 -1
  151. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSidebarRenderer.js.map +1 -1
  152. package/dist/src/fields/TiptapEditor/extensions/serverside/FacebookServerside.js.map +1 -1
  153. package/dist/src/fields/TiptapEditor/extensions/serverside/IFrameServerside.js.map +1 -1
  154. package/dist/src/fields/TiptapEditor/extensions/serverside/ImageBlockServerside.js.map +1 -1
  155. package/dist/src/fields/TiptapEditor/extensions/serverside/InsideLinkServerside.js.map +1 -1
  156. package/dist/src/fields/TiptapEditor/extensions/serverside/InstagramServerside.js.map +1 -1
  157. package/dist/src/fields/TiptapEditor/extensions/serverside/LinkedinServerside.js.map +1 -1
  158. package/dist/src/fields/TiptapEditor/extensions/serverside/RenderEmbedClientSide.js.map +1 -1
  159. package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js.map +1 -1
  160. package/dist/src/fields/TiptapEditor/extensions/serverside/TiktokServerside.js.map +1 -1
  161. package/dist/src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.js.map +1 -1
  162. package/dist/src/fields/TiptapEditor/extensions/serverside/VideoBlockServerside.js +5 -5
  163. package/dist/src/fields/TiptapEditor/extensions/serverside/VideoBlockServerside.js.map +1 -1
  164. package/dist/src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.js.map +1 -1
  165. package/dist/src/fields/TiptapEditor/extensions/serverside/getAssetsAspectRatio.js.map +1 -1
  166. package/dist/src/fields/TiptapEditor/extensions/serverside/index.js.map +1 -1
  167. package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendRequiredBlocksMarkerClient.js.map +1 -1
  168. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts +2 -2
  169. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts.map +1 -1
  170. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js +22 -20
  171. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js.map +1 -1
  172. package/dist/src/fields/TiptapEditor/features/BlockEditor/OneLineEditor.js.map +1 -1
  173. package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.js.map +1 -1
  174. package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorInfo.js.map +1 -1
  175. package/dist/src/fields/TiptapEditor/features/BlockEditor/components/OneLiner.js.map +1 -1
  176. package/dist/src/fields/TiptapEditor/features/BlockEditor/index.js.map +1 -1
  177. package/dist/src/fields/TiptapEditor/features/BlockEditor/types.js.map +1 -1
  178. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.js.map +1 -1
  179. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/hooks/useContentItemActions.js.map +1 -1
  180. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/hooks/useData.js.map +1 -1
  181. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/index.js.map +1 -1
  182. package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.js.map +1 -1
  183. package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/index.js.map +1 -1
  184. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/AITextMenu.js.map +1 -1
  185. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.js.map +1 -1
  186. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.js.map +1 -1
  187. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/EditIframeLinkPopover.js.map +1 -1
  188. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/EditLinkPopover.js.map +1 -1
  189. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.js.map +1 -1
  190. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.js.map +1 -1
  191. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/SocialMediaPopover.js.map +1 -1
  192. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.js.map +1 -1
  193. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-draft-selector-commands.js.map +1 -1
  194. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.d.ts.map +1 -1
  195. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js +2 -4
  196. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js.map +1 -1
  197. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuCommands.js.map +1 -1
  198. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuContentTypes.js.map +1 -1
  199. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuStates.js.map +1 -1
  200. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/index.js.map +1 -1
  201. package/dist/src/fields/TiptapEditor/features/menus/index.js.map +1 -1
  202. package/dist/src/fields/TiptapEditor/features/menus/types.js.map +1 -1
  203. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.d.ts.map +1 -1
  204. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.js +4 -6
  205. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.js.map +1 -1
  206. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/index.js.map +1 -1
  207. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.d.ts.map +1 -1
  208. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js +3 -5
  209. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js.map +1 -1
  210. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/EditorPreview.js.map +1 -1
  211. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/index.js.map +1 -1
  212. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/markdown.hook.js.map +1 -1
  213. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/utils.js.map +1 -1
  214. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/ColorButton.js.map +1 -1
  215. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/Colorpicker.js.map +1 -1
  216. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/index.js.map +1 -1
  217. package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js.map +1 -1
  218. package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/index.js.map +1 -1
  219. package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/InsideLinksEditorPanel.js.map +1 -1
  220. package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/index.js.map +1 -1
  221. package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/LinkEditorPanel.js.map +1 -1
  222. package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/index.js.map +1 -1
  223. package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/LinkPreviewPanel.js.map +1 -1
  224. package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/index.js.map +1 -1
  225. package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js.map +1 -1
  226. package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/index.js.map +1 -1
  227. package/dist/src/fields/TiptapEditor/features/panels/index.js.map +1 -1
  228. package/dist/src/fields/TiptapEditor/features/ui/Button/Button.js.map +1 -1
  229. package/dist/src/fields/TiptapEditor/features/ui/Button/SpanButton.js.map +1 -1
  230. package/dist/src/fields/TiptapEditor/features/ui/Button/index.js.map +1 -1
  231. package/dist/src/fields/TiptapEditor/features/ui/Dropdown/Dropdown.js.map +1 -1
  232. package/dist/src/fields/TiptapEditor/features/ui/Dropdown/index.js.map +1 -1
  233. package/dist/src/fields/TiptapEditor/features/ui/Icon.js.map +1 -1
  234. package/dist/src/fields/TiptapEditor/features/ui/Loader/Loader.js.map +1 -1
  235. package/dist/src/fields/TiptapEditor/features/ui/Loader/index.js.map +1 -1
  236. package/dist/src/fields/TiptapEditor/features/ui/Loader/types.js.map +1 -1
  237. package/dist/src/fields/TiptapEditor/features/ui/Panel/index.js.map +1 -1
  238. package/dist/src/fields/TiptapEditor/features/ui/PopoverMenu.js.map +1 -1
  239. package/dist/src/fields/TiptapEditor/features/ui/Spinner/Spinner.js.map +1 -1
  240. package/dist/src/fields/TiptapEditor/features/ui/Spinner/index.js.map +1 -1
  241. package/dist/src/fields/TiptapEditor/features/ui/Surface.js.map +1 -1
  242. package/dist/src/fields/TiptapEditor/features/ui/Textarea/Textarea.js.map +1 -1
  243. package/dist/src/fields/TiptapEditor/features/ui/Textarea/index.js.map +1 -1
  244. package/dist/src/fields/TiptapEditor/features/ui/Toggle/Toggle.js.map +1 -1
  245. package/dist/src/fields/TiptapEditor/features/ui/Toggle/index.js.map +1 -1
  246. package/dist/src/fields/TiptapEditor/features/ui/Toolbar.js.map +1 -1
  247. package/dist/src/fields/TiptapEditor/features/ui/Tooltip/index.js.map +1 -1
  248. package/dist/src/fields/TiptapEditor/features/ui/Tooltip/types.js.map +1 -1
  249. package/dist/src/fields/TiptapEditor/features/ui/crazy-spinner.js.map +1 -1
  250. package/dist/src/fields/TiptapEditor/features/ui/scroll-area.js.map +1 -1
  251. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js.map +1 -1
  252. package/dist/src/fields/TiptapEditor/hooks/useSidebar.js.map +1 -1
  253. package/dist/src/fields/TiptapEditor/index.js.map +1 -1
  254. package/dist/src/fields/TiptapEditor/lib/api.js.map +1 -1
  255. package/dist/src/fields/TiptapEditor/lib/constants.js.map +1 -1
  256. package/dist/src/fields/TiptapEditor/lib/data/initialContent.js.map +1 -1
  257. package/dist/src/fields/TiptapEditor/lib/extract.js.map +1 -1
  258. package/dist/src/fields/TiptapEditor/lib/tiptapSchema.js.map +1 -1
  259. package/dist/src/fields/TiptapEditor/lib/utils/cssVar.js.map +1 -1
  260. package/dist/src/fields/TiptapEditor/lib/utils/deepMerge.js +8 -8
  261. package/dist/src/fields/TiptapEditor/lib/utils/deepMerge.js.map +1 -1
  262. package/dist/src/fields/TiptapEditor/lib/utils/getRenderContainer.js.map +1 -1
  263. package/dist/src/fields/TiptapEditor/lib/utils/index.js.map +1 -1
  264. package/dist/src/fields/TiptapEditor/lib/utils/isCustomNodeSelected.js.map +1 -1
  265. package/dist/src/fields/TiptapEditor/lib/utils/isRtl.js.map +1 -1
  266. package/dist/src/fields/TiptapEditor/lib/utils/isTextSelected.js.map +1 -1
  267. package/dist/src/fields/TiptapEditor/lib/utils/partialRequired.js.map +1 -1
  268. package/dist/src/fields/TiptapEditor/types.d.js.map +1 -1
  269. package/dist/src/index.js.map +1 -1
  270. package/dist/tsconfig.tsbuildinfo +1 -1
  271. package/package.json +203 -200
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/SlashCommand.ts"],"sourcesContent":["\"use client\";\nimport { Editor, Extension } from \"@tiptap/core\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion, {\n SuggestionProps,\n SuggestionKeyDownProps,\n} from \"@tiptap/suggestion\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport tippy from \"tippy.js\";\n\nimport { MenuList } from \"./MenuList.js\";\n\nconst extensionName = \"slashCommand\";\n\nlet popup: any;\n\nexport const SlashCommand = Extension.create({\n name: extensionName,\n\n priority: 200,\n\n onCreate() {\n const t = tippy as any;\n popup = t(\"body\", {\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n theme: \"slash-command\",\n maxWidth: \"16rem\",\n offset: [16, 8],\n popperOptions: {\n strategy: \"fixed\",\n modifiers: [\n {\n name: \"flip\",\n enabled: false,\n },\n ],\n },\n });\n },\n\n addProseMirrorPlugins() {\n return [\n Suggestion({\n editor: this.editor,\n char: \"/\",\n allowSpaces: true,\n startOfLine: true,\n pluginKey: new PluginKey(extensionName),\n allow: ({ state, range }) => {\n const $from = state.doc.resolve(range.from);\n const isRootDepth = $from.depth === 1;\n const isParagraph = $from.parent.type.name === \"paragraph\";\n const isStartOfNode = $from.parent.textContent?.charAt(0) === \"/\";\n // TODO\n const isInColumn = this.editor.isActive(\"column\");\n\n const afterContent = $from.parent.textContent?.substring(\n $from.parent.textContent?.indexOf(\"/\")\n );\n const isValidAfterContent = !afterContent?.endsWith(\" \");\n\n return (\n ((isRootDepth && isParagraph && isStartOfNode) ||\n (isInColumn && isParagraph && isStartOfNode)) &&\n isValidAfterContent\n );\n },\n command: ({ editor, props }: { editor: Editor; props: any }) => {\n const { view, state } = editor;\n const { $head, $from } = view.state.selection;\n\n const end = $from.pos;\n const from = $head?.nodeBefore\n ? end -\n ($head.nodeBefore.text?.substring(\n $head.nodeBefore.text?.indexOf(\"/\")\n ).length ?? 0)\n : $from.start();\n\n const tr = state.tr.deleteRange(from, end);\n view.dispatch(tr);\n\n props.action(editor);\n view.focus();\n },\n items: async ({ query }: { query: string }) => {\n const GROUPS = (await import(\"./groups.js\")).default;\n const withFilteredCommands = GROUPS.map((group) => ({\n ...group,\n commands: group.commands\n .filter((item) => {\n const labelNormalized = item.label.toLowerCase().trim();\n const queryNormalized = query.toLowerCase().trim();\n\n if (item.aliases) {\n const aliases = item.aliases.map((alias) =>\n alias.toLowerCase().trim()\n );\n\n return (\n labelNormalized.includes(queryNormalized) ||\n aliases.includes(queryNormalized)\n );\n }\n\n return labelNormalized.includes(queryNormalized);\n })\n .filter((command) =>\n command.shouldBeHidden\n ? !command.shouldBeHidden(this.editor)\n : true\n ),\n }));\n\n const withoutEmptyGroups = withFilteredCommands.filter((group) => {\n if (group.commands.length > 0) {\n return true;\n }\n\n return false;\n });\n\n const withEnabledSettings = withoutEmptyGroups.map((group) => ({\n ...group,\n commands: group.commands.map((command) => ({\n ...command,\n isEnabled: true,\n })),\n }));\n\n return withEnabledSettings;\n },\n render: () => {\n let component: any;\n\n let scrollHandler: (() => void) | null = null;\n\n return {\n onStart: (props: SuggestionProps) => {\n component = new ReactRenderer(MenuList, {\n props,\n editor: props.editor,\n });\n\n const { view } = props.editor;\n\n const editorNode = view.dom as HTMLElement;\n\n const getReferenceClientRect = () => {\n if (!props.clientRect) {\n return props.editor.storage[extensionName].rect;\n }\n\n const rect = props.clientRect();\n\n if (!rect) {\n return props.editor.storage[extensionName].rect;\n }\n\n let yPos = rect.y;\n\n if (\n rect.top + component.element.offsetHeight + 40 >\n window.innerHeight\n ) {\n const diff =\n rect.top +\n component.element.offsetHeight -\n window.innerHeight +\n 40;\n yPos = rect.y - diff;\n }\n\n // Account for when the editor is bound inside a container that doesn't go all the way to the edge of the screen\n const editorXOffset = editorNode.getBoundingClientRect().x;\n return new DOMRect(rect.x, yPos, rect.width, rect.height);\n };\n\n scrollHandler = () => {\n popup?.[0].setProps({\n getReferenceClientRect,\n });\n };\n\n view.dom.parentElement?.addEventListener(\"scroll\", scrollHandler);\n\n popup?.[0].setProps({\n getReferenceClientRect,\n appendTo: () => document.body,\n content: component.element,\n });\n\n popup?.[0].show();\n },\n\n onUpdate(props: SuggestionProps) {\n component.updateProps(props);\n\n const { view } = props.editor;\n\n const editorNode = view.dom as HTMLElement;\n\n const getReferenceClientRect = () => {\n if (!props.clientRect) {\n return props.editor.storage[extensionName].rect;\n }\n\n const rect = props.clientRect();\n\n if (!rect) {\n return props.editor.storage[extensionName].rect;\n }\n\n // Account for when the editor is bound inside a container that doesn't go all the way to the edge of the screen\n return new DOMRect(rect.x, rect.y, rect.width, rect.height);\n };\n\n let scrollHandler = () => {\n popup?.[0].setProps({\n getReferenceClientRect,\n });\n };\n\n view.dom.parentElement?.addEventListener(\"scroll\", scrollHandler);\n\n // eslint-disable-next-line no-param-reassign\n props.editor.storage[extensionName].rect = props.clientRect\n ? getReferenceClientRect()\n : {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n };\n popup?.[0].setProps({\n getReferenceClientRect,\n });\n },\n\n onKeyDown(props: SuggestionKeyDownProps) {\n if (props.event.key === \"Escape\") {\n popup?.[0].hide();\n\n return true;\n }\n\n if (!popup?.[0].state.isShown) {\n popup?.[0].show();\n }\n\n return component.ref?.onKeyDown(props);\n },\n\n onExit(props) {\n popup?.[0].hide();\n if (scrollHandler) {\n const { view } = props.editor;\n view.dom.parentElement?.removeEventListener(\n \"scroll\",\n scrollHandler\n );\n }\n component.destroy();\n },\n };\n },\n }),\n ];\n },\n\n addStorage() {\n return {\n rect: {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n },\n };\n },\n});\n\nexport default SlashCommand;\n"],"names":["Extension","ReactRenderer","Suggestion","PluginKey","tippy","MenuList","extensionName","popup","SlashCommand","create","name","priority","onCreate","t","interactive","trigger","placement","theme","maxWidth","offset","popperOptions","strategy","modifiers","enabled","addProseMirrorPlugins","editor","char","allowSpaces","startOfLine","pluginKey","allow","state","range","$from","doc","resolve","from","isRootDepth","depth","isParagraph","parent","type","isStartOfNode","textContent","charAt","isInColumn","isActive","afterContent","substring","indexOf","isValidAfterContent","endsWith","command","props","view","$head","selection","end","pos","nodeBefore","text","length","start","tr","deleteRange","dispatch","action","focus","items","query","GROUPS","default","withFilteredCommands","map","group","commands","filter","item","labelNormalized","label","toLowerCase","trim","queryNormalized","aliases","alias","includes","shouldBeHidden","withoutEmptyGroups","withEnabledSettings","isEnabled","render","component","scrollHandler","onStart","editorNode","dom","getReferenceClientRect","clientRect","storage","rect","yPos","y","top","element","offsetHeight","window","innerHeight","diff","editorXOffset","getBoundingClientRect","x","DOMRect","width","height","setProps","parentElement","addEventListener","appendTo","document","body","content","show","onUpdate","updateProps","left","right","bottom","onKeyDown","event","key","hide","isShown","ref","onExit","removeEventListener","destroy","addStorage"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/SlashCommand.ts"],"sourcesContent":["\"use client\";\r\nimport { Editor, Extension } from \"@tiptap/core\";\r\nimport { ReactRenderer } from \"@tiptap/react\";\r\nimport Suggestion, {\r\n SuggestionProps,\r\n SuggestionKeyDownProps,\r\n} from \"@tiptap/suggestion\";\r\nimport { PluginKey } from \"@tiptap/pm/state\";\r\nimport tippy from \"tippy.js\";\r\n\r\nimport { MenuList } from \"./MenuList.js\";\r\n\r\nconst extensionName = \"slashCommand\";\r\n\r\nlet popup: any;\r\n\r\nexport const SlashCommand = Extension.create({\r\n name: extensionName,\r\n\r\n priority: 200,\r\n\r\n onCreate() {\r\n const t = tippy as any;\r\n popup = t(\"body\", {\r\n interactive: true,\r\n trigger: \"manual\",\r\n placement: \"bottom-start\",\r\n theme: \"slash-command\",\r\n maxWidth: \"16rem\",\r\n offset: [16, 8],\r\n popperOptions: {\r\n strategy: \"fixed\",\r\n modifiers: [\r\n {\r\n name: \"flip\",\r\n enabled: false,\r\n },\r\n ],\r\n },\r\n });\r\n },\r\n\r\n addProseMirrorPlugins() {\r\n return [\r\n Suggestion({\r\n editor: this.editor,\r\n char: \"/\",\r\n allowSpaces: true,\r\n startOfLine: true,\r\n pluginKey: new PluginKey(extensionName),\r\n allow: ({ state, range }) => {\r\n const $from = state.doc.resolve(range.from);\r\n const isRootDepth = $from.depth === 1;\r\n const isParagraph = $from.parent.type.name === \"paragraph\";\r\n const isStartOfNode = $from.parent.textContent?.charAt(0) === \"/\";\r\n // TODO\r\n const isInColumn = this.editor.isActive(\"column\");\r\n\r\n const afterContent = $from.parent.textContent?.substring(\r\n $from.parent.textContent?.indexOf(\"/\")\r\n );\r\n const isValidAfterContent = !afterContent?.endsWith(\" \");\r\n\r\n return (\r\n ((isRootDepth && isParagraph && isStartOfNode) ||\r\n (isInColumn && isParagraph && isStartOfNode)) &&\r\n isValidAfterContent\r\n );\r\n },\r\n command: ({ editor, props }: { editor: Editor; props: any }) => {\r\n const { view, state } = editor;\r\n const { $head, $from } = view.state.selection;\r\n\r\n const end = $from.pos;\r\n const from = $head?.nodeBefore\r\n ? end -\r\n ($head.nodeBefore.text?.substring(\r\n $head.nodeBefore.text?.indexOf(\"/\")\r\n ).length ?? 0)\r\n : $from.start();\r\n\r\n const tr = state.tr.deleteRange(from, end);\r\n view.dispatch(tr);\r\n\r\n props.action(editor);\r\n view.focus();\r\n },\r\n items: async ({ query }: { query: string }) => {\r\n const GROUPS = (await import(\"./groups.js\")).default;\r\n const withFilteredCommands = GROUPS.map((group) => ({\r\n ...group,\r\n commands: group.commands\r\n .filter((item) => {\r\n const labelNormalized = item.label.toLowerCase().trim();\r\n const queryNormalized = query.toLowerCase().trim();\r\n\r\n if (item.aliases) {\r\n const aliases = item.aliases.map((alias) =>\r\n alias.toLowerCase().trim()\r\n );\r\n\r\n return (\r\n labelNormalized.includes(queryNormalized) ||\r\n aliases.includes(queryNormalized)\r\n );\r\n }\r\n\r\n return labelNormalized.includes(queryNormalized);\r\n })\r\n .filter((command) =>\r\n command.shouldBeHidden\r\n ? !command.shouldBeHidden(this.editor)\r\n : true\r\n ),\r\n }));\r\n\r\n const withoutEmptyGroups = withFilteredCommands.filter((group) => {\r\n if (group.commands.length > 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n const withEnabledSettings = withoutEmptyGroups.map((group) => ({\r\n ...group,\r\n commands: group.commands.map((command) => ({\r\n ...command,\r\n isEnabled: true,\r\n })),\r\n }));\r\n\r\n return withEnabledSettings;\r\n },\r\n render: () => {\r\n let component: any;\r\n\r\n let scrollHandler: (() => void) | null = null;\r\n\r\n return {\r\n onStart: (props: SuggestionProps) => {\r\n component = new ReactRenderer(MenuList, {\r\n props,\r\n editor: props.editor,\r\n });\r\n\r\n const { view } = props.editor;\r\n\r\n const editorNode = view.dom as HTMLElement;\r\n\r\n const getReferenceClientRect = () => {\r\n if (!props.clientRect) {\r\n return props.editor.storage[extensionName].rect;\r\n }\r\n\r\n const rect = props.clientRect();\r\n\r\n if (!rect) {\r\n return props.editor.storage[extensionName].rect;\r\n }\r\n\r\n let yPos = rect.y;\r\n\r\n if (\r\n rect.top + component.element.offsetHeight + 40 >\r\n window.innerHeight\r\n ) {\r\n const diff =\r\n rect.top +\r\n component.element.offsetHeight -\r\n window.innerHeight +\r\n 40;\r\n yPos = rect.y - diff;\r\n }\r\n\r\n // Account for when the editor is bound inside a container that doesn't go all the way to the edge of the screen\r\n const editorXOffset = editorNode.getBoundingClientRect().x;\r\n return new DOMRect(rect.x, yPos, rect.width, rect.height);\r\n };\r\n\r\n scrollHandler = () => {\r\n popup?.[0].setProps({\r\n getReferenceClientRect,\r\n });\r\n };\r\n\r\n view.dom.parentElement?.addEventListener(\"scroll\", scrollHandler);\r\n\r\n popup?.[0].setProps({\r\n getReferenceClientRect,\r\n appendTo: () => document.body,\r\n content: component.element,\r\n });\r\n\r\n popup?.[0].show();\r\n },\r\n\r\n onUpdate(props: SuggestionProps) {\r\n component.updateProps(props);\r\n\r\n const { view } = props.editor;\r\n\r\n const editorNode = view.dom as HTMLElement;\r\n\r\n const getReferenceClientRect = () => {\r\n if (!props.clientRect) {\r\n return props.editor.storage[extensionName].rect;\r\n }\r\n\r\n const rect = props.clientRect();\r\n\r\n if (!rect) {\r\n return props.editor.storage[extensionName].rect;\r\n }\r\n\r\n // Account for when the editor is bound inside a container that doesn't go all the way to the edge of the screen\r\n return new DOMRect(rect.x, rect.y, rect.width, rect.height);\r\n };\r\n\r\n let scrollHandler = () => {\r\n popup?.[0].setProps({\r\n getReferenceClientRect,\r\n });\r\n };\r\n\r\n view.dom.parentElement?.addEventListener(\"scroll\", scrollHandler);\r\n\r\n // eslint-disable-next-line no-param-reassign\r\n props.editor.storage[extensionName].rect = props.clientRect\r\n ? getReferenceClientRect()\r\n : {\r\n width: 0,\r\n height: 0,\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n };\r\n popup?.[0].setProps({\r\n getReferenceClientRect,\r\n });\r\n },\r\n\r\n onKeyDown(props: SuggestionKeyDownProps) {\r\n if (props.event.key === \"Escape\") {\r\n popup?.[0].hide();\r\n\r\n return true;\r\n }\r\n\r\n if (!popup?.[0].state.isShown) {\r\n popup?.[0].show();\r\n }\r\n\r\n return component.ref?.onKeyDown(props);\r\n },\r\n\r\n onExit(props) {\r\n popup?.[0].hide();\r\n if (scrollHandler) {\r\n const { view } = props.editor;\r\n view.dom.parentElement?.removeEventListener(\r\n \"scroll\",\r\n scrollHandler\r\n );\r\n }\r\n component.destroy();\r\n },\r\n };\r\n },\r\n }),\r\n ];\r\n },\r\n\r\n addStorage() {\r\n return {\r\n rect: {\r\n width: 0,\r\n height: 0,\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n },\r\n };\r\n },\r\n});\r\n\r\nexport default SlashCommand;\r\n"],"names":["Extension","ReactRenderer","Suggestion","PluginKey","tippy","MenuList","extensionName","popup","SlashCommand","create","name","priority","onCreate","t","interactive","trigger","placement","theme","maxWidth","offset","popperOptions","strategy","modifiers","enabled","addProseMirrorPlugins","editor","char","allowSpaces","startOfLine","pluginKey","allow","state","range","$from","doc","resolve","from","isRootDepth","depth","isParagraph","parent","type","isStartOfNode","textContent","charAt","isInColumn","isActive","afterContent","substring","indexOf","isValidAfterContent","endsWith","command","props","view","$head","selection","end","pos","nodeBefore","text","length","start","tr","deleteRange","dispatch","action","focus","items","query","GROUPS","default","withFilteredCommands","map","group","commands","filter","item","labelNormalized","label","toLowerCase","trim","queryNormalized","aliases","alias","includes","shouldBeHidden","withoutEmptyGroups","withEnabledSettings","isEnabled","render","component","scrollHandler","onStart","editorNode","dom","getReferenceClientRect","clientRect","storage","rect","yPos","y","top","element","offsetHeight","window","innerHeight","diff","editorXOffset","getBoundingClientRect","x","DOMRect","width","height","setProps","parentElement","addEventListener","appendTo","document","body","content","show","onUpdate","updateProps","left","right","bottom","onKeyDown","event","key","hide","isShown","ref","onExit","removeEventListener","destroy","addStorage"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/groups.ts"],"sourcesContent":["import {\n Facebook,\n Heading1,\n Heading2,\n Heading3,\n Image,\n Instagram,\n Link,\n List,\n ListOrdered,\n Minus,\n Music,\n Quote,\n Twitter,\n Video,\n Youtube,\n} from \"lucide-react\";\nimport { Group } from \"./types.js\";\nimport i18next from \"i18next\";\n\nexport const GROUPS: Group[] = [\n {\n name: \"format\",\n title: i18next.t(\"format\") || \"Format\",\n commands: [\n {\n name: \"heading1\",\n label: i18next.t(\"heading1\") || \"Heading 1\",\n description: i18next.t(\"heading1Desc\") || \"High priority section title\",\n icon: Heading1,\n aliases: [\"h1\"],\n action: (editor) => {\n editor.chain().focus().setHeading({ level: 1 }).run();\n },\n },\n {\n name: \"heading2\",\n label: i18next.t(\"heading2\") || \"Heading 2\",\n description:\n i18next.t(\"heading2Desc\") || \"Medium priority section title\",\n icon: Heading2,\n aliases: [\"h2\"],\n action: (editor) => {\n editor.chain().focus().setHeading({ level: 2 }).run();\n },\n },\n {\n name: \"heading3\",\n label: i18next.t(\"heading3\") || \"Heading 3\",\n description: i18next.t(\"heading3Desc\") || \"Low priority section title\",\n icon: Heading3,\n aliases: [\"h3\"],\n action: (editor) => {\n editor.chain().focus().setHeading({ level: 3 }).run();\n },\n },\n {\n name: \"bulletList\",\n label: i18next.t(\"bulletList\") || 'Bullet List',\n description: i18next.t(\"bulletListDesc\") || \"Unordered list of items\",\n icon: List,\n aliases: [\"ul\"],\n action: (editor) => {\n editor.chain().focus().toggleBulletList().run();\n },\n },\n // {\n // name: \"numberedList\",\n // label: i18next.t(\"numberedList\") || 'Numbered List',\n // description:i18next.t(\"numberedListDesc\") || \"Ordered list of items\",\n // icon: ListOrdered,\n // aliases: [\"ol\"],\n // action: (editor) => {\n // editor.chain().focus().toggleOrderedList().run();\n // },\n // },\n\n {\n name: \"blockquote\",\n label: i18next.t(\"blockquote\") || \"Blockquote\",\n description: i18next.t(\"blockquoteDesc\") || \"Element for quoting\",\n icon: Quote,\n action: (editor) => {\n editor.chain().focus().setBlockquote().run();\n },\n },\n ],\n },\n {\n name: \"insert\",\n title: \"Insert\",\n commands: [\n {\n name: \"image\",\n label: i18next.t(\"image\") || \"Image\",\n description: i18next.t(\"imageDesc\") || \"Insert an image\",\n icon: Image,\n aliases: [\"img\"],\n action: (editor) => {\n editor.chain().focus().setImageUpload(\"image\").run();\n },\n },\n {\n name: \"video\",\n label: i18next.t(\"video\") || \"Video\",\n description: i18next.t(\"videoDesc\") || \"Insert a video\",\n icon: Video,\n aliases: [\"video\"],\n action: (editor) => {\n editor.chain().focus().setImageUpload(\"video\").run();\n },\n },\n\n {\n name: \"horizontalRule\",\n label: i18next.t(\"horizontalRule\") || \"HorizontalRule\",\n description:\n i18next.t(\"horizontalRuleDesc\") || \"Insert a horizontal divider\",\n icon: Minus,\n aliases: [\"hr\"],\n action: (editor) => {\n editor.chain().focus().setHorizontalRule().run();\n },\n },\n ],\n },\n {\n name: \"embed\",\n title: \"Embed\",\n commands: [\n {\n name: \"linkPreview\",\n label: i18next.t(\"embed\") || \"Embed Link\",\n description: i18next.t(\"iframeDesc\") || \"Insert an Embed link\",\n icon: Link,\n aliases: [\"linkPreview\"],\n shouldBeHidden: (editor) => editor.isActive(\"linkPreview\"),\n action: (editor) => {\n editor.chain().focus().setLinkPreview().run();\n },\n },\n {\n name: \"twitter\",\n label: i18next.t(\"twitter\") || \"Twitter\",\n description: i18next.t(\"twitterDesc\") || \"Insert a Twitter embed\",\n icon: Twitter,\n aliases: [\"x\", \"twitter\"],\n shouldBeHidden: (editor) => editor.isActive(\"twitter\"),\n action: (editor) => {\n editor.chain().focus().insertTwitter().run();\n },\n },\n {\n name: \"facebook\",\n label: i18next.t(\"facebook\") || \"Facebook\",\n description: i18next.t(\"facebookDesc\") || \"Insert a Facebook embed\",\n icon: Facebook,\n aliases: [\"meta\", \"facebook\"],\n shouldBeHidden: (editor) => editor.isActive(\"facebook\"),\n action: (editor) => {\n editor.chain().focus().insertFacebook().run();\n },\n },\n {\n name: \"instagram\",\n label: i18next.t(\"instagram\") || \"Instagram\",\n description: i18next.t(\"instagramDesc\") || \"Insert a Instagram embed\",\n icon: Instagram,\n aliases: [\"instagram\"],\n shouldBeHidden: (editor) => editor.isActive(\"instagram\"),\n action: (editor) => {\n editor.chain().focus().insertInstagram().run();\n },\n },\n {\n name: \"youtube\",\n label: i18next.t(\"youtube\") || \"Youtube\",\n description: i18next.t(\"youtubeDesc\") || \"Insert a Youtube embed\",\n icon: Youtube,\n aliases: [\"youtube\"],\n shouldBeHidden: (editor) => editor.isActive(\"youtube\"),\n action: (editor) => {\n editor.chain().focus().insertYoutube().run();\n },\n },\n\n {\n name: \"tiktok\",\n label: i18next.t(\"tiktok\") || \"Tiktok\",\n description: i18next.t(\"tiktokDesc\") || \"Insert a Tiktok embed\",\n icon: Music,\n aliases: [\"tiktok\"],\n shouldBeHidden: (editor) => editor.isActive(\"tiktok\"),\n action: (editor) => {\n editor.chain().focus().insertTiktok().run();\n },\n },\n ],\n },\n];\n\nexport default GROUPS;\n"],"names":["Facebook","Heading1","Heading2","Heading3","Image","Instagram","Link","List","Minus","Music","Quote","Twitter","Video","Youtube","i18next","GROUPS","name","title","t","commands","label","description","icon","aliases","action","editor","chain","focus","setHeading","level","run","toggleBulletList","setBlockquote","setImageUpload","setHorizontalRule","shouldBeHidden","isActive","setLinkPreview","insertTwitter","insertFacebook","insertInstagram","insertYoutube","insertTiktok"],"mappings":"AAAA,SACEA,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACLC,SAAS,EACTC,IAAI,EACJC,IAAI,EAEJC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,OAAO,EACPC,KAAK,EACLC,OAAO,QACF,eAAe;AAEtB,OAAOC,aAAa,UAAU;AAE9B,OAAO,MAAMC,SAAkB;IAC7B;QACEC,MAAM;QACNC,OAAOH,QAAQI,CAAC,CAAC,aAAa;QAC9BC,UAAU;YACR;gBACEH,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,eAAe;gBAChCG,aAAaP,QAAQI,CAAC,CAAC,mBAAmB;gBAC1CI,MAAMrB;gBACNsB,SAAS;oBAAC;iBAAK;gBACfC,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGC,UAAU,CAAC;wBAAEC,OAAO;oBAAE,GAAGC,GAAG;gBACrD;YACF;YACA;gBACEd,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,eAAe;gBAChCG,aACEP,QAAQI,CAAC,CAAC,mBAAmB;gBAC/BI,MAAMpB;gBACNqB,SAAS;oBAAC;iBAAK;gBACfC,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGC,UAAU,CAAC;wBAAEC,OAAO;oBAAE,GAAGC,GAAG;gBACrD;YACF;YACA;gBACEd,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,eAAe;gBAChCG,aAAaP,QAAQI,CAAC,CAAC,mBAAmB;gBAC1CI,MAAMnB;gBACNoB,SAAS;oBAAC;iBAAK;gBACfC,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGC,UAAU,CAAC;wBAAEC,OAAO;oBAAE,GAAGC,GAAG;gBACrD;YACF;YACA;gBACEd,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,iBAAiB;gBAClCG,aAAaP,QAAQI,CAAC,CAAC,qBAAqB;gBAC5CI,MAAMf;gBACNgB,SAAS;oBAAC;iBAAK;gBACfC,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGI,gBAAgB,GAAGD,GAAG;gBAC/C;YACF;YACA,IAAI;YACJ,0BAA0B;YAC1B,yDAAyD;YACzD,0EAA0E;YAC1E,uBAAuB;YACvB,qBAAqB;YACrB,0BAA0B;YAC1B,wDAAwD;YACxD,OAAO;YACP,KAAK;YAEL;gBACEd,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,iBAAiB;gBAClCG,aAAaP,QAAQI,CAAC,CAAC,qBAAqB;gBAC5CI,MAAMZ;gBACNc,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGK,aAAa,GAAGF,GAAG;gBAC5C;YACF;SACD;IACH;IACA;QACEd,MAAM;QACNC,OAAO;QACPE,UAAU;YACR;gBACEH,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,YAAY;gBAC7BG,aAAaP,QAAQI,CAAC,CAAC,gBAAgB;gBACvCI,MAAMlB;gBACNmB,SAAS;oBAAC;iBAAM;gBAChBC,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGM,cAAc,CAAC,SAASH,GAAG;gBACpD;YACF;YACA;gBACEd,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,YAAY;gBAC7BG,aAAaP,QAAQI,CAAC,CAAC,gBAAgB;gBACvCI,MAAMV;gBACNW,SAAS;oBAAC;iBAAQ;gBAClBC,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGM,cAAc,CAAC,SAASH,GAAG;gBACpD;YACF;YAEA;gBACEd,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,qBAAqB;gBACtCG,aACEP,QAAQI,CAAC,CAAC,yBAAyB;gBACrCI,MAAMd;gBACNe,SAAS;oBAAC;iBAAK;gBACfC,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGO,iBAAiB,GAAGJ,GAAG;gBAChD;YACF;SACD;IACH;IACA;QACEd,MAAM;QACNC,OAAO;QACPE,UAAU;YACR;gBACEH,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,YAAY;gBAC7BG,aAAaP,QAAQI,CAAC,CAAC,iBAAiB;gBACxCI,MAAMhB;gBACNiB,SAAS;oBAAC;iBAAc;gBACxBY,gBAAgB,CAACV,SAAWA,OAAOW,QAAQ,CAAC;gBAC5CZ,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGU,cAAc,GAAGP,GAAG;gBAC7C;YACF;YACA;gBACEd,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,cAAc;gBAC/BG,aAAaP,QAAQI,CAAC,CAAC,kBAAkB;gBACzCI,MAAMX;gBACNY,SAAS;oBAAC;oBAAK;iBAAU;gBACzBY,gBAAgB,CAACV,SAAWA,OAAOW,QAAQ,CAAC;gBAC5CZ,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGW,aAAa,GAAGR,GAAG;gBAC5C;YACF;YACA;gBACEd,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,eAAe;gBAChCG,aAAaP,QAAQI,CAAC,CAAC,mBAAmB;gBAC1CI,MAAMtB;gBACNuB,SAAS;oBAAC;oBAAQ;iBAAW;gBAC7BY,gBAAgB,CAACV,SAAWA,OAAOW,QAAQ,CAAC;gBAC5CZ,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGY,cAAc,GAAGT,GAAG;gBAC7C;YACF;YACA;gBACEd,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,gBAAgB;gBACjCG,aAAaP,QAAQI,CAAC,CAAC,oBAAoB;gBAC3CI,MAAMjB;gBACNkB,SAAS;oBAAC;iBAAY;gBACtBY,gBAAgB,CAACV,SAAWA,OAAOW,QAAQ,CAAC;gBAC5CZ,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGa,eAAe,GAAGV,GAAG;gBAC9C;YACF;YACA;gBACEd,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,cAAc;gBAC/BG,aAAaP,QAAQI,CAAC,CAAC,kBAAkB;gBACzCI,MAAMT;gBACNU,SAAS;oBAAC;iBAAU;gBACpBY,gBAAgB,CAACV,SAAWA,OAAOW,QAAQ,CAAC;gBAC5CZ,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGc,aAAa,GAAGX,GAAG;gBAC5C;YACF;YAEA;gBACEd,MAAM;gBACNI,OAAON,QAAQI,CAAC,CAAC,aAAa;gBAC9BG,aAAaP,QAAQI,CAAC,CAAC,iBAAiB;gBACxCI,MAAMb;gBACNc,SAAS;oBAAC;iBAAS;gBACnBY,gBAAgB,CAACV,SAAWA,OAAOW,QAAQ,CAAC;gBAC5CZ,QAAQ,CAACC;oBACPA,OAAOC,KAAK,GAAGC,KAAK,GAAGe,YAAY,GAAGZ,GAAG;gBAC3C;YACF;SACD;IACH;CACD,CAAC;AAEF,eAAef,OAAO"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/groups.ts"],"sourcesContent":["import {\r\n Facebook,\r\n Heading1,\r\n Heading2,\r\n Heading3,\r\n Image,\r\n Instagram,\r\n Link,\r\n List,\r\n ListOrdered,\r\n Minus,\r\n Music,\r\n Quote,\r\n Twitter,\r\n Video,\r\n Youtube,\r\n} from \"lucide-react\";\r\nimport { Group } from \"./types.js\";\r\nimport i18next from \"i18next\";\r\n\r\nexport const GROUPS: Group[] = [\r\n {\r\n name: \"format\",\r\n title: i18next.t(\"format\") || \"Format\",\r\n commands: [\r\n {\r\n name: \"heading1\",\r\n label: i18next.t(\"heading1\") || \"Heading 1\",\r\n description: i18next.t(\"heading1Desc\") || \"High priority section title\",\r\n icon: Heading1,\r\n aliases: [\"h1\"],\r\n action: (editor) => {\r\n editor.chain().focus().setHeading({ level: 1 }).run();\r\n },\r\n },\r\n {\r\n name: \"heading2\",\r\n label: i18next.t(\"heading2\") || \"Heading 2\",\r\n description:\r\n i18next.t(\"heading2Desc\") || \"Medium priority section title\",\r\n icon: Heading2,\r\n aliases: [\"h2\"],\r\n action: (editor) => {\r\n editor.chain().focus().setHeading({ level: 2 }).run();\r\n },\r\n },\r\n {\r\n name: \"heading3\",\r\n label: i18next.t(\"heading3\") || \"Heading 3\",\r\n description: i18next.t(\"heading3Desc\") || \"Low priority section title\",\r\n icon: Heading3,\r\n aliases: [\"h3\"],\r\n action: (editor) => {\r\n editor.chain().focus().setHeading({ level: 3 }).run();\r\n },\r\n },\r\n {\r\n name: \"bulletList\",\r\n label: i18next.t(\"bulletList\") || 'Bullet List',\r\n description: i18next.t(\"bulletListDesc\") || \"Unordered list of items\",\r\n icon: List,\r\n aliases: [\"ul\"],\r\n action: (editor) => {\r\n editor.chain().focus().toggleBulletList().run();\r\n },\r\n },\r\n // {\r\n // name: \"numberedList\",\r\n // label: i18next.t(\"numberedList\") || 'Numbered List',\r\n // description:i18next.t(\"numberedListDesc\") || \"Ordered list of items\",\r\n // icon: ListOrdered,\r\n // aliases: [\"ol\"],\r\n // action: (editor) => {\r\n // editor.chain().focus().toggleOrderedList().run();\r\n // },\r\n // },\r\n\r\n {\r\n name: \"blockquote\",\r\n label: i18next.t(\"blockquote\") || \"Blockquote\",\r\n description: i18next.t(\"blockquoteDesc\") || \"Element for quoting\",\r\n icon: Quote,\r\n action: (editor) => {\r\n editor.chain().focus().setBlockquote().run();\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n name: \"insert\",\r\n title: \"Insert\",\r\n commands: [\r\n {\r\n name: \"image\",\r\n label: i18next.t(\"image\") || \"Image\",\r\n description: i18next.t(\"imageDesc\") || \"Insert an image\",\r\n icon: Image,\r\n aliases: [\"img\"],\r\n action: (editor) => {\r\n editor.chain().focus().setImageUpload(\"image\").run();\r\n },\r\n },\r\n {\r\n name: \"video\",\r\n label: i18next.t(\"video\") || \"Video\",\r\n description: i18next.t(\"videoDesc\") || \"Insert a video\",\r\n icon: Video,\r\n aliases: [\"video\"],\r\n action: (editor) => {\r\n editor.chain().focus().setImageUpload(\"video\").run();\r\n },\r\n },\r\n\r\n {\r\n name: \"horizontalRule\",\r\n label: i18next.t(\"horizontalRule\") || \"HorizontalRule\",\r\n description:\r\n i18next.t(\"horizontalRuleDesc\") || \"Insert a horizontal divider\",\r\n icon: Minus,\r\n aliases: [\"hr\"],\r\n action: (editor) => {\r\n editor.chain().focus().setHorizontalRule().run();\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n name: \"embed\",\r\n title: \"Embed\",\r\n commands: [\r\n {\r\n name: \"linkPreview\",\r\n label: i18next.t(\"embed\") || \"Embed Link\",\r\n description: i18next.t(\"iframeDesc\") || \"Insert an Embed link\",\r\n icon: Link,\r\n aliases: [\"linkPreview\"],\r\n shouldBeHidden: (editor) => editor.isActive(\"linkPreview\"),\r\n action: (editor) => {\r\n editor.chain().focus().setLinkPreview().run();\r\n },\r\n },\r\n {\r\n name: \"twitter\",\r\n label: i18next.t(\"twitter\") || \"Twitter\",\r\n description: i18next.t(\"twitterDesc\") || \"Insert a Twitter embed\",\r\n icon: Twitter,\r\n aliases: [\"x\", \"twitter\"],\r\n shouldBeHidden: (editor) => editor.isActive(\"twitter\"),\r\n action: (editor) => {\r\n editor.chain().focus().insertTwitter().run();\r\n },\r\n },\r\n {\r\n name: \"facebook\",\r\n label: i18next.t(\"facebook\") || \"Facebook\",\r\n description: i18next.t(\"facebookDesc\") || \"Insert a Facebook embed\",\r\n icon: Facebook,\r\n aliases: [\"meta\", \"facebook\"],\r\n shouldBeHidden: (editor) => editor.isActive(\"facebook\"),\r\n action: (editor) => {\r\n editor.chain().focus().insertFacebook().run();\r\n },\r\n },\r\n {\r\n name: \"instagram\",\r\n label: i18next.t(\"instagram\") || \"Instagram\",\r\n description: i18next.t(\"instagramDesc\") || \"Insert a Instagram embed\",\r\n icon: Instagram,\r\n aliases: [\"instagram\"],\r\n shouldBeHidden: (editor) => editor.isActive(\"instagram\"),\r\n action: (editor) => {\r\n editor.chain().focus().insertInstagram().run();\r\n },\r\n },\r\n {\r\n name: \"youtube\",\r\n label: i18next.t(\"youtube\") || \"Youtube\",\r\n description: i18next.t(\"youtubeDesc\") || \"Insert a Youtube embed\",\r\n icon: Youtube,\r\n aliases: [\"youtube\"],\r\n shouldBeHidden: (editor) => editor.isActive(\"youtube\"),\r\n action: (editor) => {\r\n editor.chain().focus().insertYoutube().run();\r\n },\r\n },\r\n\r\n {\r\n name: \"tiktok\",\r\n label: i18next.t(\"tiktok\") || \"Tiktok\",\r\n description: i18next.t(\"tiktokDesc\") || \"Insert a Tiktok embed\",\r\n icon: Music,\r\n aliases: [\"tiktok\"],\r\n shouldBeHidden: (editor) => editor.isActive(\"tiktok\"),\r\n action: (editor) => {\r\n editor.chain().focus().insertTiktok().run();\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n\r\nexport default GROUPS;\r\n"],"names":["Facebook","Heading1","Heading2","Heading3","Image","Instagram","Link","List","Minus","Music","Quote","Twitter","Video","Youtube","i18next","GROUPS","name","title","t","commands","label","description","icon","aliases","action","editor","chain","focus","setHeading","level","run","toggleBulletList","setBlockquote","setImageUpload","setHorizontalRule","shouldBeHidden","isActive","setLinkPreview","insertTwitter","insertFacebook","insertInstagram","insertYoutube","insertTiktok"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/index.ts"],"sourcesContent":["export * from \"./SlashCommand.js\";\n"],"names":[],"mappings":"AAAA,cAAc,oBAAoB"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/index.ts"],"sourcesContent":["export * from \"./SlashCommand.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,oBAAoB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/types.ts"],"sourcesContent":["import { Editor } from '@tiptap/core'\nimport { LucideIcon } from 'lucide-react'\n\nexport interface Group {\n name: string\n title: string\n commands: Command[]\n}\n\nexport interface Command {\n name: string\n label: string\n description: string\n aliases?: string[]\n icon: LucideIcon\n action: (editor: Editor) => void\n shouldBeHidden?: (editor: Editor) => boolean\n}\n\nexport interface MenuListProps {\n editor: Editor\n items: Group[]\n command: (command: Command) => void\n}\n"],"names":[],"mappings":"AAmBA,WAIC"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/types.ts"],"sourcesContent":["import { Editor } from '@tiptap/core'\r\nimport { LucideIcon } from 'lucide-react'\r\n\r\nexport interface Group {\r\n name: string\r\n title: string\r\n commands: Command[]\r\n}\r\n\r\nexport interface Command {\r\n name: string\r\n label: string\r\n description: string\r\n aliases?: string[]\r\n icon: LucideIcon\r\n action: (editor: Editor) => void\r\n shouldBeHidden?: (editor: Editor) => boolean\r\n}\r\n\r\nexport interface MenuListProps {\r\n editor: Editor\r\n items: Group[]\r\n command: (command: Command) => void\r\n}\r\n"],"names":[],"mappings":"AAmBA,WAIC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/FacebookEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport { Facebook } from \"lucide-react\";\nimport { FacebookEmbed } from \"react-social-media-embed\";\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\n\nexport default (props: { node: { attrs: { url?: string } } }) => {\n return (\n <SocialMediaEmbed\n props={props}\n Icon={Facebook}\n text={\" Embed a post from Facebook\"}\n >\n <FacebookEmbed url={props?.node?.attrs?.url ?? \"\"} width={550} />\n </SocialMediaEmbed>\n );\n};\n"],"names":["Facebook","FacebookEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs","width"],"mappings":";AACA,SAASA,QAAQ,QAAQ,eAAe;AACxC,SAASC,aAAa,QAAQ,2BAA2B;AACzD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAcK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;YAAIG,OAAO;;;AAGhE,CAAA,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/FacebookEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\r\nimport { Facebook } from \"lucide-react\";\r\nimport { FacebookEmbed } from \"react-social-media-embed\";\r\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\r\n\r\nexport default (props: { node: { attrs: { url?: string } } }) => {\r\n return (\r\n <SocialMediaEmbed\r\n props={props}\r\n Icon={Facebook}\r\n text={\" Embed a post from Facebook\"}\r\n >\r\n <FacebookEmbed url={props?.node?.attrs?.url ?? \"\"} width={550} />\r\n </SocialMediaEmbed>\r\n );\r\n};\r\n"],"names":["Facebook","FacebookEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs","width"],"mappings":";AACA,SAASA,QAAQ,QAAQ,eAAe;AACxC,SAASC,aAAa,QAAQ,2BAA2B;AACzD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAcK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;YAAIG,OAAO;;;AAGhE,CAAA,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n facebook: {\n /**\n * Add an image\n */\n\n insertFacebook: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport FacebookEmbed from './FacebookEmbed.js'\n\nexport const Facebook = Node.create({\n name: 'facebook',\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"facebook-post\"]',\n },\n ]\n },\n\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '100%',\n },\n\n showText: {\n default: true,\n },\n }\n },\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"facebook\",\n class: `react-renderer node-facebook ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', { class: 'rsme-embed rsme-facebook-embed', },\n [\n 'div',\n { class: 'rsme-d-none' },\n ['div', { id: 'fb-root' }],\n [\n 'div',\n mergeAttributes(HTMLAttributes, {\n class: 'fb-post',\n 'data-href': HTMLAttributes.url,\n 'data-width': '500',\n 'data-show-text': \"true\",\n })\n ],\n [\n 'script',\n {\n async: true,\n defer: true,\n crossorigin: 'anonymous',\n src: 'https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v22.0',\n\n },\n ],\n ]\n ]\n\n ]]\n },\n\n\n addNodeView() {\n return ReactNodeViewRenderer(FacebookEmbed)\n },\n\n addCommands() {\n return {\n insertFacebook:\n (url, className) =>\n ({ commands, state }) => {\n return commands.insertContent({\n type: 'facebook',\n attrs: {\n url,\n class: className,\n src: url,\n },\n })\n },\n }\n },\n})\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","FacebookEmbed","Facebook","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","src","width","showText","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","id","async","defer","crossorigin","addNodeView","addCommands","insertFacebook","className","commands","insertContent","attrs","isValidHttpUrl","string","URL","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,mBAAmB,qBAAoB;AAE9C,OAAO,MAAMC,WAAWJ,KAAKK,MAAM,CAAC;IAClCC,MAAM;IACNC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IACtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YAEAI,UAAU;gBACRJ,SAAS;YACX;QACF;IACF;IACAK;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAACpB,IAAI;gBACtB,GACCqB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACA7B,gBAAgB6B,gBAAgB;gBAC9B,aAAa;gBACbf,OAAO,CAAC,6BAA6B,EAAEe,eAAef,KAAK,IAAI,IAAI;YACrE;YAAI;gBACF;gBACAd,gBACE;oBAAEc,OAAO;gBAAuB;gBAElC;oBAAC;oBAAO;wBAAEA,OAAO;oBAAkC;oBACjD;wBACE;wBACA;4BAAEA,OAAO;wBAAc;wBACvB;4BAAC;4BAAO;gCAAEgB,IAAI;4BAAU;yBAAE;wBAC1B;4BACE;4BACA9B,gBAAgB6B,gBAAgB;gCAC9Bf,OAAO;gCACP,aAAae,eAAejB,GAAG;gCAC/B,cAAc;gCACd,kBAAkB;4BACpB;yBACD;wBACD;4BACE;4BACA;gCACEmB,OAAO;gCACPC,OAAO;gCACPC,aAAa;gCACblB,KAAK;4BAEP;yBACD;qBACF;iBACF;aAEF;SAAC;IACN;IAGAmB;QACE,OAAOjC,sBAAsBC;IAC/B;IAEAiC;QACE,OAAO;YACLC,gBACE,CAACxB,KAAKyB,YACJ,CAAC,EAAEC,QAAQ,EAAEhB,KAAK,EAAE;oBAClB,OAAOgB,SAASC,aAAa,CAAC;wBAC5Bd,MAAM;wBACNe,OAAO;4BACL5B;4BACAE,OAAOuB;4BACPtB,KAAKH;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAAS6B,eAAeC,MAAc;IACpC,IAAI9B;IAEJ,IAAI;QACFA,MAAM,IAAI+B,IAAID;IAChB,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;IAEA,OAAOhC,IAAIiC,QAAQ,KAAK,WAAWjC,IAAIiC,QAAQ,KAAK;AACtD"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.ts"],"sourcesContent":["declare module '@tiptap/core' {\r\n interface Commands<ReturnType> {\r\n facebook: {\r\n /**\r\n * Add an image\r\n */\r\n\r\n insertFacebook: (url?: string, className?: string) => ReturnType\r\n }\r\n }\r\n}\r\n\r\nimport { Node, mergeAttributes } from '@tiptap/core'\r\nimport { ReactNodeViewRenderer } from '@tiptap/react'\r\nimport FacebookEmbed from './FacebookEmbed.js'\r\n\r\nexport const Facebook = Node.create({\r\n name: 'facebook',\r\n group: 'block',\r\n content: 'inline*',\r\n draggable: true,\r\n\r\n // content: 'inline*',\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'div[data-type=\"facebook-post\"]',\r\n },\r\n ]\r\n },\r\n\r\n addAttributes() {\r\n return {\r\n url: { default: null },\r\n class: { default: null },\r\n src: {\r\n default: null,\r\n },\r\n width: {\r\n default: '100%',\r\n },\r\n\r\n showText: {\r\n default: true,\r\n },\r\n }\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Enter': () => {\r\n return this.editor\r\n .chain()\r\n .insertContentAt(this.editor.state.selection.head, {\r\n type: this.type.name,\r\n })\r\n .focus()\r\n .run()\r\n },\r\n }\r\n },\r\n\r\n renderHTML({ HTMLAttributes }) {\r\n return [\r\n \"div\",\r\n mergeAttributes(HTMLAttributes, {\r\n \"data-type\": \"facebook\",\r\n class: `react-renderer node-facebook ${HTMLAttributes.class ?? \"\"}`,\r\n }), [\r\n 'div',\r\n mergeAttributes(\r\n { class: 'socialMediaContainer' },\r\n ),\r\n ['div', { class: 'rsme-embed rsme-facebook-embed', },\r\n [\r\n 'div',\r\n { class: 'rsme-d-none' },\r\n ['div', { id: 'fb-root' }],\r\n [\r\n 'div',\r\n mergeAttributes(HTMLAttributes, {\r\n class: 'fb-post',\r\n 'data-href': HTMLAttributes.url,\r\n 'data-width': '500',\r\n 'data-show-text': \"true\",\r\n })\r\n ],\r\n [\r\n 'script',\r\n {\r\n async: true,\r\n defer: true,\r\n crossorigin: 'anonymous',\r\n src: 'https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v22.0',\r\n\r\n },\r\n ],\r\n ]\r\n ]\r\n\r\n ]]\r\n },\r\n\r\n\r\n addNodeView() {\r\n return ReactNodeViewRenderer(FacebookEmbed)\r\n },\r\n\r\n addCommands() {\r\n return {\r\n insertFacebook:\r\n (url, className) =>\r\n ({ commands, state }) => {\r\n return commands.insertContent({\r\n type: 'facebook',\r\n attrs: {\r\n url,\r\n class: className,\r\n src: url,\r\n },\r\n })\r\n },\r\n }\r\n },\r\n})\r\n\r\nfunction isValidHttpUrl(string: string) {\r\n let url\r\n\r\n try {\r\n url = new URL(string)\r\n } catch (_) {\r\n return false\r\n }\r\n\r\n return url.protocol === 'http:' || url.protocol === 'https:'\r\n}\r\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","FacebookEmbed","Facebook","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","src","width","showText","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","id","async","defer","crossorigin","addNodeView","addCommands","insertFacebook","className","commands","insertContent","attrs","isValidHttpUrl","string","URL","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,mBAAmB,qBAAoB;AAE9C,OAAO,MAAMC,WAAWJ,KAAKK,MAAM,CAAC;IAClCC,MAAM;IACNC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IACtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YAEAI,UAAU;gBACRJ,SAAS;YACX;QACF;IACF;IACAK;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAACpB,IAAI;gBACtB,GACCqB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACA7B,gBAAgB6B,gBAAgB;gBAC9B,aAAa;gBACbf,OAAO,CAAC,6BAA6B,EAAEe,eAAef,KAAK,IAAI,GAAG,CAAC;YACrE;YAAI;gBACF;gBACAd,gBACE;oBAAEc,OAAO;gBAAuB;gBAElC;oBAAC;oBAAO;wBAAEA,OAAO;oBAAkC;oBACjD;wBACE;wBACA;4BAAEA,OAAO;wBAAc;wBACvB;4BAAC;4BAAO;gCAAEgB,IAAI;4BAAU;yBAAE;wBAC1B;4BACE;4BACA9B,gBAAgB6B,gBAAgB;gCAC9Bf,OAAO;gCACP,aAAae,eAAejB,GAAG;gCAC/B,cAAc;gCACd,kBAAkB;4BACpB;yBACD;wBACD;4BACE;4BACA;gCACEmB,OAAO;gCACPC,OAAO;gCACPC,aAAa;gCACblB,KAAK;4BAEP;yBACD;qBACF;iBACF;aAEF;SAAC;IACN;IAGAmB;QACE,OAAOjC,sBAAsBC;IAC/B;IAEAiC;QACE,OAAO;YACLC,gBACE,CAACxB,KAAKyB,YACJ,CAAC,EAAEC,QAAQ,EAAEhB,KAAK,EAAE;oBAClB,OAAOgB,SAASC,aAAa,CAAC;wBAC5Bd,MAAM;wBACNe,OAAO;4BACL5B;4BACAE,OAAOuB;4BACPtB,KAAKH;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAAS6B,eAAeC,MAAc;IACpC,IAAI9B;IAEJ,IAAI;QACFA,MAAM,IAAI+B,IAAID;IAChB,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;IAEA,OAAOhC,IAAIiC,QAAQ,KAAK,WAAWjC,IAAIiC,QAAQ,KAAK;AACtD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/index.ts"],"sourcesContent":["export * from \"./facebook.js\";\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/index.ts"],"sourcesContent":["export * from \"./facebook.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.tsx"],"sourcesContent":["import { Instagram } from \"lucide-react\";\nimport { InstagramEmbed } from \"react-social-media-embed\";\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\n\nexport default (props: { node: { attrs: { url?: string } } }) => {\n return (\n <SocialMediaEmbed\n props={props}\n Icon={Instagram}\n text={\"Embed a post from Instagram\"}\n >\n <InstagramEmbed\n className=\"max-w-[328px]\"\n url={props?.node?.attrs?.url ?? \"\"}\n width={328}\n captioned\n />\n </SocialMediaEmbed>\n );\n};\n"],"names":["Instagram","InstagramEmbed","SocialMediaEmbed","props","Icon","text","className","url","node","attrs","width","captioned"],"mappings":";AAAA,SAASA,SAAS,QAAQ,eAAe;AACzC,SAASC,cAAc,QAAQ,2BAA2B;AAC1D,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YACCK,WAAU;YACVC,KAAKJ,OAAOK,MAAMC,OAAOF,OAAO;YAChCG,OAAO;YACPC,SAAS;;;AAIjB,CAAA,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.tsx"],"sourcesContent":["import { Instagram } from \"lucide-react\";\r\nimport { InstagramEmbed } from \"react-social-media-embed\";\r\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\r\n\r\nexport default (props: { node: { attrs: { url?: string } } }) => {\r\n return (\r\n <SocialMediaEmbed\r\n props={props}\r\n Icon={Instagram}\r\n text={\"Embed a post from Instagram\"}\r\n >\r\n <InstagramEmbed\r\n className=\"max-w-[328px]\"\r\n url={props?.node?.attrs?.url ?? \"\"}\r\n width={328}\r\n captioned\r\n />\r\n </SocialMediaEmbed>\r\n );\r\n};\r\n"],"names":["Instagram","InstagramEmbed","SocialMediaEmbed","props","Icon","text","className","url","node","attrs","width","captioned"],"mappings":";AAAA,SAASA,SAAS,QAAQ,eAAe;AACzC,SAASC,cAAc,QAAQ,2BAA2B;AAC1D,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YACCK,WAAU;YACVC,KAAKJ,OAAOK,MAAMC,OAAOF,OAAO;YAChCG,OAAO;YACPC,SAAS;;;AAIjB,CAAA,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/index.ts"],"sourcesContent":["export * from \"./instagram.js\";\n"],"names":[],"mappings":"AAAA,cAAc,iBAAiB"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/index.ts"],"sourcesContent":["export * from \"./instagram.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,iBAAiB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n instagram: {\n /**\n * Add an image\n */\n\n insertInstagram: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport InstagramEmbed from './InstagramEmbed.js'\n\nexport const Instagram = Node.create({\n name: 'instagram',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n // content: 'inline*',\n\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '328px',\n },\n height: {\n default: '550px',\n },\n frameborder: {\n default: '0',\n },\n scrolling: {\n default: 'no',\n },\n allowtransparency: {\n default: 'true',\n },\n }\n },\n\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"instagram\"]',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"instagram\",\n class: `react-renderer node-instagram ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', mergeAttributes({ class: 'rsme-embed rsme-instagram-embed', }),\n\n [\n 'blockquote',\n mergeAttributes(HTMLAttributes, {\n class: 'instagram-media',\n style: \"background:#FFF; border:0; margin:1px; max-width:540px; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);\",\n \"data-instgrm-captioned\": true,\n \"data-instgrm-permalink\": `${convertInstaUrlToEmbed(HTMLAttributes.url)}?utm_source=ig_embed&utm_campaign=loading`,\n \"data-instgrm-version\": \"14\"\n }),\n ['div', { class: 'instagram-media-pre-embed rsme-d-none' },]\n ],\n [\n 'script',\n {\n async: true,\n src: 'https://www.instagram.com/embed.js',\n charset: 'utf-8',\n onload: `() => {\n if (window.instgrm) {\n window.instgrm.Embeds.process();\n }\n }`,\n },\n ],\n ],\n\n ]\n ]\n },\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(InstagramEmbed)\n },\n\n addCommands() {\n return {\n insertInstagram:\n (url, className) =>\n ({ commands, state }) => {\n let embedUrl = \"\"\n if (url) {\n embedUrl = convertInstaUrlToEmbed(url)\n\n }\n return commands.insertContent({\n type: 'instagram',\n attrs: {\n url: url,\n class: className,\n src: embedUrl,\n },\n })\n },\n }\n },\n})\nfunction convertInstaUrlToEmbed(url: string): string | undefined {\n if (!url) return undefined;\n try {\n const urlWithNoQueryOrUsername = url.split(/[?#]/)[0].replace(/\\.com\\/.*?\\/p/, '.com/p').replace(/\\.com\\/.*?\\/reel/, '.com/reel');\n const cleanUrlWithEndingSlash = `${urlWithNoQueryOrUsername}${urlWithNoQueryOrUsername.endsWith('/') ? '' : '/'}`;\n return cleanUrlWithEndingSlash\n } catch {\n return undefined;\n }\n}\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","InstagramEmbed","Instagram","create","name","group","content","draggable","addAttributes","url","default","class","src","width","height","frameborder","scrolling","allowtransparency","parseHTML","tag","renderHTML","HTMLAttributes","style","convertInstaUrlToEmbed","async","charset","onload","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","addNodeView","addCommands","insertInstagram","className","commands","embedUrl","insertContent","attrs","undefined","urlWithNoQueryOrUsername","split","replace","cleanUrlWithEndingSlash","endsWith","isValidHttpUrl","string","URL","_","protocol"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.ts"],"sourcesContent":["declare module '@tiptap/core' {\r\n interface Commands<ReturnType> {\r\n instagram: {\r\n /**\r\n * Add an image\r\n */\r\n\r\n insertInstagram: (url?: string, className?: string) => ReturnType\r\n }\r\n }\r\n}\r\n\r\nimport { Node, mergeAttributes } from '@tiptap/core'\r\nimport { ReactNodeViewRenderer } from '@tiptap/react'\r\nimport InstagramEmbed from './InstagramEmbed.js'\r\n\r\nexport const Instagram = Node.create({\r\n name: 'instagram',\r\n\r\n group: 'block',\r\n content: 'inline*',\r\n draggable: true,\r\n // content: 'inline*',\r\n\r\n addAttributes() {\r\n return {\r\n url: { default: null },\r\n class: { default: null },\r\n src: {\r\n default: null,\r\n },\r\n width: {\r\n default: '328px',\r\n },\r\n height: {\r\n default: '550px',\r\n },\r\n frameborder: {\r\n default: '0',\r\n },\r\n scrolling: {\r\n default: 'no',\r\n },\r\n allowtransparency: {\r\n default: 'true',\r\n },\r\n }\r\n },\r\n\r\n\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'div[data-type=\"instagram\"]',\r\n },\r\n ]\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return [\r\n \"div\",\r\n mergeAttributes(HTMLAttributes, {\r\n \"data-type\": \"instagram\",\r\n class: `react-renderer node-instagram ${HTMLAttributes.class ?? \"\"}`,\r\n }), [\r\n 'div',\r\n mergeAttributes(\r\n { class: 'socialMediaContainer' },\r\n ),\r\n ['div', mergeAttributes({ class: 'rsme-embed rsme-instagram-embed', }),\r\n\r\n [\r\n 'blockquote',\r\n mergeAttributes(HTMLAttributes, {\r\n class: 'instagram-media',\r\n style: \"background:#FFF; border:0; margin:1px; max-width:540px; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);\",\r\n \"data-instgrm-captioned\": true,\r\n \"data-instgrm-permalink\": `${convertInstaUrlToEmbed(HTMLAttributes.url)}?utm_source=ig_embed&utm_campaign=loading`,\r\n \"data-instgrm-version\": \"14\"\r\n }),\r\n ['div', { class: 'instagram-media-pre-embed rsme-d-none' },]\r\n ],\r\n [\r\n 'script',\r\n {\r\n async: true,\r\n src: 'https://www.instagram.com/embed.js',\r\n charset: 'utf-8',\r\n onload: `() => {\r\n if (window.instgrm) {\r\n window.instgrm.Embeds.process();\r\n }\r\n }`,\r\n },\r\n ],\r\n ],\r\n\r\n ]\r\n ]\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Enter': () => {\r\n return this.editor\r\n .chain()\r\n .insertContentAt(this.editor.state.selection.head, {\r\n type: this.type.name,\r\n })\r\n .focus()\r\n .run()\r\n },\r\n }\r\n },\r\n\r\n addNodeView() {\r\n return ReactNodeViewRenderer(InstagramEmbed)\r\n },\r\n\r\n addCommands() {\r\n return {\r\n insertInstagram:\r\n (url, className) =>\r\n ({ commands, state }) => {\r\n let embedUrl = \"\"\r\n if (url) {\r\n embedUrl = convertInstaUrlToEmbed(url)\r\n\r\n }\r\n return commands.insertContent({\r\n type: 'instagram',\r\n attrs: {\r\n url: url,\r\n class: className,\r\n src: embedUrl,\r\n },\r\n })\r\n },\r\n }\r\n },\r\n})\r\nfunction convertInstaUrlToEmbed(url: string): string | undefined {\r\n if (!url) return undefined;\r\n try {\r\n const urlWithNoQueryOrUsername = url.split(/[?#]/)[0].replace(/\\.com\\/.*?\\/p/, '.com/p').replace(/\\.com\\/.*?\\/reel/, '.com/reel');\r\n const cleanUrlWithEndingSlash = `${urlWithNoQueryOrUsername}${urlWithNoQueryOrUsername.endsWith('/') ? '' : '/'}`;\r\n return cleanUrlWithEndingSlash\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\n\r\nfunction isValidHttpUrl(string: string) {\r\n let url\r\n\r\n try {\r\n url = new URL(string)\r\n } catch (_) {\r\n return false\r\n }\r\n\r\n return url.protocol === 'http:' || url.protocol === 'https:'\r\n}\r\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","InstagramEmbed","Instagram","create","name","group","content","draggable","addAttributes","url","default","class","src","width","height","frameborder","scrolling","allowtransparency","parseHTML","tag","renderHTML","HTMLAttributes","style","convertInstaUrlToEmbed","async","charset","onload","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","addNodeView","addCommands","insertInstagram","className","commands","embedUrl","insertContent","attrs","undefined","urlWithNoQueryOrUsername","split","replace","cleanUrlWithEndingSlash","endsWith","isValidHttpUrl","string","URL","_","protocol"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/LinkedinEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport React from \"react\";\nimport { LinkedInEmbed } from \"react-social-media-embed\";\nimport { Linkedin } from \"lucide-react\";\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\n\nexport default (props: { node: { attrs: { url?: string } } }) => {\n return (\n <SocialMediaEmbed\n props={props}\n Icon={Linkedin}\n text={\"Embed a post from Linkedin\"}\n >\n <LinkedInEmbed\n url=\"https://www.linkedin.com/embed/feed/update/urn:li:share:6898694772484112384\"\n postUrl=\"https://www.linkedin.com/posts/peterdiamandis_5-discoveries-the-james-webb-telescope-will-activity-6898694773406875648-z-D7\"\n width={325}\n height={570}\n />\n </SocialMediaEmbed>\n );\n};\n"],"names":["React","LinkedInEmbed","Linkedin","SocialMediaEmbed","props","Icon","text","url","postUrl","width","height"],"mappings":";AACA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,QAAQ,QAAQ,eAAe;AACxC,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMH;QACNI,MAAM;kBAEN,cAAA,KAACL;YACCM,KAAI;YACJC,SAAQ;YACRC,OAAO;YACPC,QAAQ;;;AAIhB,CAAA,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/LinkedinEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\r\nimport React from \"react\";\r\nimport { LinkedInEmbed } from \"react-social-media-embed\";\r\nimport { Linkedin } from \"lucide-react\";\r\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\r\n\r\nexport default (props: { node: { attrs: { url?: string } } }) => {\r\n return (\r\n <SocialMediaEmbed\r\n props={props}\r\n Icon={Linkedin}\r\n text={\"Embed a post from Linkedin\"}\r\n >\r\n <LinkedInEmbed\r\n url=\"https://www.linkedin.com/embed/feed/update/urn:li:share:6898694772484112384\"\r\n postUrl=\"https://www.linkedin.com/posts/peterdiamandis_5-discoveries-the-james-webb-telescope-will-activity-6898694773406875648-z-D7\"\r\n width={325}\r\n height={570}\r\n />\r\n </SocialMediaEmbed>\r\n );\r\n};\r\n"],"names":["React","LinkedInEmbed","Linkedin","SocialMediaEmbed","props","Icon","text","url","postUrl","width","height"],"mappings":";AACA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,QAAQ,QAAQ,eAAe;AACxC,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMH;QACNI,MAAM;kBAEN,cAAA,KAACL;YACCM,KAAI;YACJC,SAAQ;YACRC,OAAO;YACPC,QAAQ;;;AAIhB,CAAA,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/index.ts"],"sourcesContent":["export * from \"./linkedin.js\";\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/index.ts"],"sourcesContent":["export * from \"./linkedin.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.ts"],"sourcesContent":["declare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n linkedin: {\n /**\n * Add an image\n */\n\n insertLinkedin: (url?: string, className?: string) => ReturnType;\n };\n }\n}\n\nimport { Node, mergeAttributes } from \"@tiptap/core\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport LinkedinEmbed from \"./LinkedinEmbed.js\";\n\nexport const Linkedin = Node.create({\n name: \"linkedin\",\n\n group: \"block\",\n content: \"inline*\",\n draggable: true,\n\n parseHTML() {\n return [\n {\n tag: \"linkedin-component\",\n },\n ];\n },\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-Enter\": () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run();\n },\n };\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\"linkedin-component\", mergeAttributes(HTMLAttributes), 0];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(LinkedinEmbed);\n },\n\n addCommands() {\n return {\n insertLinkedin:\n (url, className) =>\n ({ commands, state }) => {\n return commands.insertContent({\n type: \"linkedin\",\n attrs: {\n url,\n class: className,\n },\n });\n },\n };\n },\n});\n\nfunction isValidHttpUrl(string: string) {\n let url;\n\n try {\n url = new URL(string);\n } catch (_) {\n return false;\n }\n\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","LinkedinEmbed","Linkedin","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","addNodeView","addCommands","insertLinkedin","className","commands","insertContent","attrs","isValidHttpUrl","string","URL","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAe;AACrD,SAASC,qBAAqB,QAAQ,gBAAgB;AACtD,OAAOC,mBAAmB,qBAAqB;AAE/C,OAAO,MAAMC,WAAWJ,KAAKK,MAAM,CAAC;IAClCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEXC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;QACzB;IACF;IACAE;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAACjB,IAAI;gBACtB,GACCkB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YAAC;YAAsB1B,gBAAgB0B;YAAiB;SAAE;IACnE;IAEAC;QACE,OAAO1B,sBAAsBC;IAC/B;IAEA0B;QACE,OAAO;YACLC,gBACE,CAACjB,KAAKkB,YACN,CAAC,EAAEC,QAAQ,EAAEZ,KAAK,EAAE;oBAClB,OAAOY,SAASC,aAAa,CAAC;wBAC5BV,MAAM;wBACNW,OAAO;4BACLrB;4BACAE,OAAOgB;wBACT;oBACF;gBACF;QACJ;IACF;AACF,GAAG;AAEH,SAASI,eAAeC,MAAc;IACpC,IAAIvB;IAEJ,IAAI;QACFA,MAAM,IAAIwB,IAAID;IAChB,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;IAEA,OAAOzB,IAAI0B,QAAQ,KAAK,WAAW1B,IAAI0B,QAAQ,KAAK;AACtD"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.ts"],"sourcesContent":["declare module \"@tiptap/core\" {\r\n interface Commands<ReturnType> {\r\n linkedin: {\r\n /**\r\n * Add an image\r\n */\r\n\r\n insertLinkedin: (url?: string, className?: string) => ReturnType;\r\n };\r\n }\r\n}\r\n\r\nimport { Node, mergeAttributes } from \"@tiptap/core\";\r\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\r\nimport LinkedinEmbed from \"./LinkedinEmbed.js\";\r\n\r\nexport const Linkedin = Node.create({\r\n name: \"linkedin\",\r\n\r\n group: \"block\",\r\n content: \"inline*\",\r\n draggable: true,\r\n\r\n parseHTML() {\r\n return [\r\n {\r\n tag: \"linkedin-component\",\r\n },\r\n ];\r\n },\r\n addAttributes() {\r\n return {\r\n url: { default: null },\r\n class: { default: null },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n \"Mod-Enter\": () => {\r\n return this.editor\r\n .chain()\r\n .insertContentAt(this.editor.state.selection.head, {\r\n type: this.type.name,\r\n })\r\n .focus()\r\n .run();\r\n },\r\n };\r\n },\r\n\r\n renderHTML({ HTMLAttributes }) {\r\n return [\"linkedin-component\", mergeAttributes(HTMLAttributes), 0];\r\n },\r\n\r\n addNodeView() {\r\n return ReactNodeViewRenderer(LinkedinEmbed);\r\n },\r\n\r\n addCommands() {\r\n return {\r\n insertLinkedin:\r\n (url, className) =>\r\n ({ commands, state }) => {\r\n return commands.insertContent({\r\n type: \"linkedin\",\r\n attrs: {\r\n url,\r\n class: className,\r\n },\r\n });\r\n },\r\n };\r\n },\r\n});\r\n\r\nfunction isValidHttpUrl(string: string) {\r\n let url;\r\n\r\n try {\r\n url = new URL(string);\r\n } catch (_) {\r\n return false;\r\n }\r\n\r\n return url.protocol === \"http:\" || url.protocol === \"https:\";\r\n}\r\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","LinkedinEmbed","Linkedin","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","addNodeView","addCommands","insertLinkedin","className","commands","insertContent","attrs","isValidHttpUrl","string","URL","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAe;AACrD,SAASC,qBAAqB,QAAQ,gBAAgB;AACtD,OAAOC,mBAAmB,qBAAqB;AAE/C,OAAO,MAAMC,WAAWJ,KAAKK,MAAM,CAAC;IAClCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEXC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;QACzB;IACF;IACAE;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAACjB,IAAI;gBACtB,GACCkB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YAAC;YAAsB1B,gBAAgB0B;YAAiB;SAAE;IACnE;IAEAC;QACE,OAAO1B,sBAAsBC;IAC/B;IAEA0B;QACE,OAAO;YACLC,gBACE,CAACjB,KAAKkB,YACN,CAAC,EAAEC,QAAQ,EAAEZ,KAAK,EAAE;oBAClB,OAAOY,SAASC,aAAa,CAAC;wBAC5BV,MAAM;wBACNW,OAAO;4BACLrB;4BACAE,OAAOgB;wBACT;oBACF;gBACF;QACJ;IACF;AACF,GAAG;AAEH,SAASI,eAAeC,MAAc;IACpC,IAAIvB;IAEJ,IAAI;QACFA,MAAM,IAAIwB,IAAID;IAChB,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;IAEA,OAAOzB,IAAI0B,QAAQ,KAAK,WAAW1B,IAAI0B,QAAQ,KAAK;AACtD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\n\nexport default ({ props, children, Icon, text }: any) => {\n return (\n <NodeViewWrapper\n className=\"react-component\"\n onClick={() => {\n props.editor.commands.setNodeSelection(props.getPos());\n }}\n >\n <NodeViewContent contentEditable=\"false\" className=\"socialMediaContainer\">\n {props?.node.type.spec.draggable ? (\n <div draggable=\"true\" data-drag-handle=\"\" style={{ width: \"100%\" }}>\n {!(props?.node?.attrs?.url ?? props?.node?.attrs?.src) ? (\n <div\n className=\"w-full bg-zinc-100 py-8 px-6 flex items-center justify-center gap-2 socialMediaCard\"\n draggable=\"true\"\n data-drag-handle=\"\"\n >\n <Icon size={24} />\n <p\n className=\"w-full flex items-center justify-start mt-0\"\n style={{\n marginTop: 0,\n }}\n >\n {text}\n </p>\n </div>\n ) : (\n <div\n style={{ display: \"flex\", justifyContent: \"center\" }}\n draggable=\"true\"\n data-drag-handle=\"\"\n >\n {children}\n </div>\n )}\n </div>\n ) : null}\n </NodeViewContent>\n </NodeViewWrapper>\n );\n};\n"],"names":["NodeViewContent","NodeViewWrapper","props","children","Icon","text","className","onClick","editor","commands","setNodeSelection","getPos","contentEditable","node","type","spec","draggable","div","data-drag-handle","style","width","attrs","url","src","size","p","marginTop","display","justifyContent"],"mappings":";AAAA,SAASA,eAAe,EAAEC,eAAe,QAAQ,gBAAgB;AAEjE,eAAe,CAAA,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,IAAI,EAAO;IAClD,qBACE,KAACJ;QACCK,WAAU;QACVC,SAAS;YACPL,MAAMM,MAAM,CAACC,QAAQ,CAACC,gBAAgB,CAACR,MAAMS,MAAM;QACrD;kBAEA,cAAA,KAACX;YAAgBY,iBAAgB;YAAQN,WAAU;sBAChDJ,OAAOW,KAAKC,KAAKC,KAAKC,0BACrB,KAACC;gBAAID,WAAU;gBAAOE,oBAAiB;gBAAGC,OAAO;oBAAEC,OAAO;gBAAO;0BAC9D,CAAElB,CAAAA,OAAOW,MAAMQ,OAAOC,OAAOpB,OAAOW,MAAMQ,OAAOE,GAAE,kBAClD,MAACN;oBACCX,WAAU;oBACVU,WAAU;oBACVE,oBAAiB;;sCAEjB,KAACd;4BAAKoB,MAAM;;sCACZ,KAACC;4BACCnB,WAAU;4BACVa,OAAO;gCACLO,WAAW;4BACb;sCAECrB;;;mCAIL,KAACY;oBACCE,OAAO;wBAAEQ,SAAS;wBAAQC,gBAAgB;oBAAS;oBACnDZ,WAAU;oBACVE,oBAAiB;8BAEhBf;;iBAIL;;;AAIZ,CAAA,EAAE"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\r\n\r\nexport default ({ props, children, Icon, text }: any) => {\r\n return (\r\n <NodeViewWrapper\r\n className=\"react-component\"\r\n onClick={() => {\r\n props.editor.commands.setNodeSelection(props.getPos());\r\n }}\r\n >\r\n <NodeViewContent contentEditable=\"false\" className=\"socialMediaContainer\">\r\n {props?.node.type.spec.draggable ? (\r\n <div draggable=\"true\" data-drag-handle=\"\" style={{ width: \"100%\" }}>\r\n {!(props?.node?.attrs?.url ?? props?.node?.attrs?.src) ? (\r\n <div\r\n className=\"w-full bg-zinc-100 py-8 px-6 flex items-center justify-center gap-2 socialMediaCard\"\r\n draggable=\"true\"\r\n data-drag-handle=\"\"\r\n >\r\n <Icon size={24} />\r\n <p\r\n className=\"w-full flex items-center justify-start mt-0\"\r\n style={{\r\n marginTop: 0,\r\n }}\r\n >\r\n {text}\r\n </p>\r\n </div>\r\n ) : (\r\n <div\r\n style={{ display: \"flex\", justifyContent: \"center\" }}\r\n draggable=\"true\"\r\n data-drag-handle=\"\"\r\n >\r\n {children}\r\n </div>\r\n )}\r\n </div>\r\n ) : null}\r\n </NodeViewContent>\r\n </NodeViewWrapper>\r\n );\r\n};\r\n"],"names":["NodeViewContent","NodeViewWrapper","props","children","Icon","text","className","onClick","editor","commands","setNodeSelection","getPos","contentEditable","node","type","spec","draggable","div","data-drag-handle","style","width","attrs","url","src","size","p","marginTop","display","justifyContent"],"mappings":";AAAA,SAASA,eAAe,EAAEC,eAAe,QAAQ,gBAAgB;AAEjE,eAAe,CAAA,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,IAAI,EAAO;IAClD,qBACE,KAACJ;QACCK,WAAU;QACVC,SAAS;YACPL,MAAMM,MAAM,CAACC,QAAQ,CAACC,gBAAgB,CAACR,MAAMS,MAAM;QACrD;kBAEA,cAAA,KAACX;YAAgBY,iBAAgB;YAAQN,WAAU;sBAChDJ,OAAOW,KAAKC,KAAKC,KAAKC,0BACrB,KAACC;gBAAID,WAAU;gBAAOE,oBAAiB;gBAAGC,OAAO;oBAAEC,OAAO;gBAAO;0BAC9D,CAAElB,CAAAA,OAAOW,MAAMQ,OAAOC,OAAOpB,OAAOW,MAAMQ,OAAOE,GAAE,kBAClD,MAACN;oBACCX,WAAU;oBACVU,WAAU;oBACVE,oBAAiB;;sCAEjB,KAACd;4BAAKoB,MAAM;;sCACZ,KAACC;4BACCnB,WAAU;4BACVa,OAAO;gCACLO,WAAW;4BACb;sCAECrB;;;mCAIL,KAACY;oBACCE,OAAO;wBAAEQ,SAAS;wBAAQC,gBAAgB;oBAAS;oBACnDZ,WAAU;oBACVE,oBAAiB;8BAEhBf;;iBAIL;;;AAIZ,CAAA,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport { cn } from \"../../lib/utils/index.js\";\n\nexport const SocialMediaEmbedServerside = ({ children, className }: any) => {\n return (\n <NodeViewWrapper className={cn(\"react-component\", className)}>\n <NodeViewContent contentEditable=\"false\" className=\"socialMediaContainer\">\n <div\n style={{ display: \"flex\", justifyContent: \"center\" }}\n draggable=\"false\"\n data-drag-handle=\"\"\n >\n {children}\n </div>\n </NodeViewContent>\n </NodeViewWrapper>\n );\n};\n"],"names":["NodeViewContent","NodeViewWrapper","cn","SocialMediaEmbedServerside","children","className","contentEditable","div","style","display","justifyContent","draggable","data-drag-handle"],"mappings":";AAAA,SAASA,eAAe,EAAEC,eAAe,QAAQ,gBAAgB;AACjE,SAASC,EAAE,QAAQ,2BAA2B;AAE9C,OAAO,MAAMC,6BAA6B,CAAC,EAAEC,QAAQ,EAAEC,SAAS,EAAO;IACrE,qBACE,KAACJ;QAAgBI,WAAWH,GAAG,mBAAmBG;kBAChD,cAAA,KAACL;YAAgBM,iBAAgB;YAAQD,WAAU;sBACjD,cAAA,KAACE;gBACCC,OAAO;oBAAEC,SAAS;oBAAQC,gBAAgB;gBAAS;gBACnDC,WAAU;gBACVC,oBAAiB;0BAEhBR;;;;AAKX,EAAE"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\r\nimport { cn } from \"../../lib/utils/index.js\";\r\n\r\nexport const SocialMediaEmbedServerside = ({ children, className }: any) => {\r\n return (\r\n <NodeViewWrapper className={cn(\"react-component\", className)}>\r\n <NodeViewContent contentEditable=\"false\" className=\"socialMediaContainer\">\r\n <div\r\n style={{ display: \"flex\", justifyContent: \"center\" }}\r\n draggable=\"false\"\r\n data-drag-handle=\"\"\r\n >\r\n {children}\r\n </div>\r\n </NodeViewContent>\r\n </NodeViewWrapper>\r\n );\r\n};\r\n"],"names":["NodeViewContent","NodeViewWrapper","cn","SocialMediaEmbedServerside","children","className","contentEditable","div","style","display","justifyContent","draggable","data-drag-handle"],"mappings":";AAAA,SAASA,eAAe,EAAEC,eAAe,QAAQ,gBAAgB;AACjE,SAASC,EAAE,QAAQ,2BAA2B;AAE9C,OAAO,MAAMC,6BAA6B,CAAC,EAAEC,QAAQ,EAAEC,SAAS,EAAO;IACrE,qBACE,KAACJ;QAAgBI,WAAWH,GAAG,mBAAmBG;kBAChD,cAAA,KAACL;YAAgBM,iBAAgB;YAAQD,WAAU;sBACjD,cAAA,KAACE;gBACCC,OAAO;oBAAEC,SAAS;oBAAQC,gBAAgB;gBAAS;gBACnDC,WAAU;gBACVC,oBAAiB;0BAEhBR;;;;AAKX,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/TiktokEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport { Music } from \"lucide-react\";\nimport { TikTokEmbed } from \"react-social-media-embed\";\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\n\nexport default (props: { node: { attrs: { url?: string } } }) => {\n return (\n <SocialMediaEmbed\n props={props}\n Icon={Music}\n text={\" Embed a Video from Tiktok\"}\n >\n <TikTokEmbed url={props?.node?.attrs?.url ?? \"\"} />\n </SocialMediaEmbed>\n );\n};\n"],"names":["Music","TikTokEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs"],"mappings":";AACA,SAASA,KAAK,QAAQ,eAAe;AACrC,SAASC,WAAW,QAAQ,2BAA2B;AACvD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAYK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;;;AAGnD,CAAA,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/TiktokEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\r\nimport { Music } from \"lucide-react\";\r\nimport { TikTokEmbed } from \"react-social-media-embed\";\r\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\r\n\r\nexport default (props: { node: { attrs: { url?: string } } }) => {\r\n return (\r\n <SocialMediaEmbed\r\n props={props}\r\n Icon={Music}\r\n text={\" Embed a Video from Tiktok\"}\r\n >\r\n <TikTokEmbed url={props?.node?.attrs?.url ?? \"\"} />\r\n </SocialMediaEmbed>\r\n );\r\n};\r\n"],"names":["Music","TikTokEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs"],"mappings":";AACA,SAASA,KAAK,QAAQ,eAAe;AACrC,SAASC,WAAW,QAAQ,2BAA2B;AACvD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAYK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;;;AAGnD,CAAA,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/index.ts"],"sourcesContent":["export * from \"./tiktok.js\";\n"],"names":[],"mappings":"AAAA,cAAc,cAAc"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/index.ts"],"sourcesContent":["export * from \"./tiktok.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n tiktok: {\n /**\n * Add an image\n */\n\n insertTiktok: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport TiktokEmbed from './TiktokEmbed.js'\n\nexport const Tiktok = Node.create({\n name: 'tiktok',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '328px',\n },\n height: {\n default: '550px',\n },\n frameborder: {\n default: '0',\n },\n scrolling: {\n default: 'no',\n },\n allowtransparency: {\n default: 'true',\n },\n }\n },\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"tiktok\"]',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes({\n \"data-type\": \"tiktok\",\n class: `react-renderer node-tiktok ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', mergeAttributes({ class: 'rsme-embed rsme-tiktok-embed', style: 'overflow: hidden; border-radius: 8px;' }),\n ['div', { class: 'tiktok-embed-container' },\n ['iframe', mergeAttributes(HTMLAttributes, { src: convertTikTokUrlToEmbed(HTMLAttributes.url) },)],\n ]\n ]\n ]\n ]\n },\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TiktokEmbed)\n },\n\n addCommands() {\n return {\n insertTiktok:\n (url, className) =>\n ({ commands, state }) => {\n\n\n let embedUrl\n\n\n // Usage in the original location:\n embedUrl = url ? convertTikTokUrlToEmbed(url) : undefined;\n return commands.insertContent({\n type: 'tiktok',\n attrs: {\n url,\n class: className,\n src: embedUrl,\n },\n })\n },\n }\n },\n})\n\nfunction convertTikTokUrlToEmbed(url: string): string | undefined {\n if (!url) return undefined;\n try {\n const urlObj = new URL(url);\n const path = urlObj.pathname;\n const videoId = path.split('/').filter(Boolean)[2];\n return videoId ? `https://www.tiktok.com/embed/v3/${videoId}` : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","TiktokEmbed","Tiktok","create","name","group","content","draggable","addAttributes","url","default","class","src","width","height","frameborder","scrolling","allowtransparency","parseHTML","tag","renderHTML","HTMLAttributes","style","convertTikTokUrlToEmbed","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","addNodeView","addCommands","insertTiktok","className","commands","embedUrl","undefined","insertContent","attrs","urlObj","URL","path","pathname","videoId","split","filter","Boolean","isValidHttpUrl","string","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,iBAAiB,mBAAkB;AAE1C,OAAO,MAAMC,SAASJ,KAAKK,MAAM,CAAC;IAChCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YACAI,QAAQ;gBACNJ,SAAS;YACX;YACAK,aAAa;gBACXL,SAAS;YACX;YACAM,WAAW;gBACTN,SAAS;YACX;YACAO,mBAAmB;gBACjBP,SAAS;YACX;QACF;IACF;IACAQ;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACAtB,gBAAgB;gBACd,aAAa;gBACbY,OAAO,CAAC,2BAA2B,EAAEU,eAAeV,KAAK,IAAI,IAAI;YACnE;YAAI;gBACF;gBACAZ,gBACE;oBAAEY,OAAO;gBAAuB;gBAElC;oBAAC;oBAAOZ,gBAAgB;wBAAEY,OAAO;wBAAgCW,OAAO;oBAAwC;oBAC9G;wBAAC;wBAAO;4BAAEX,OAAO;wBAAyB;wBACxC;4BAAC;4BAAUZ,gBAAgBsB,gBAAgB;gCAAET,KAAKW,wBAAwBF,eAAeZ,GAAG;4BAAE;yBAAI;qBACnG;iBACF;aACF;SACF;IACH;IACAe;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAAC3B,IAAI;gBACtB,GACC4B,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC;QACE,OAAOlC,sBAAsBC;IAC/B;IAEAkC;QACE,OAAO;YACLC,cACE,CAAC3B,KAAK4B,YACJ,CAAC,EAAEC,QAAQ,EAAEV,KAAK,EAAE;oBAGlB,IAAIW;oBAGJ,kCAAkC;oBAClCA,WAAW9B,MAAMc,wBAAwBd,OAAO+B;oBAChD,OAAOF,SAASG,aAAa,CAAC;wBAC5BV,MAAM;wBACNW,OAAO;4BACLjC;4BACAE,OAAO0B;4BACPzB,KAAK2B;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAAShB,wBAAwBd,GAAW;IAC1C,IAAI,CAACA,KAAK,OAAO+B;IACjB,IAAI;QACF,MAAMG,SAAS,IAAIC,IAAInC;QACvB,MAAMoC,OAAOF,OAAOG,QAAQ;QAC5B,MAAMC,UAAUF,KAAKG,KAAK,CAAC,KAAKC,MAAM,CAACC,QAAQ,CAAC,EAAE;QAClD,OAAOH,UAAU,CAAC,gCAAgC,EAAEA,SAAS,GAAGP;IAClE,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AAEA,SAASW,eAAeC,MAAc;IACpC,IAAI3C;IAEJ,IAAI;QACFA,MAAM,IAAImC,IAAIQ;IAChB,EAAE,OAAOC,GAAG;QACV,OAAO;IACT;IAEA,OAAO5C,IAAI6C,QAAQ,KAAK,WAAW7C,IAAI6C,QAAQ,KAAK;AACtD"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.ts"],"sourcesContent":["declare module '@tiptap/core' {\r\n interface Commands<ReturnType> {\r\n tiktok: {\r\n /**\r\n * Add an image\r\n */\r\n\r\n insertTiktok: (url?: string, className?: string) => ReturnType\r\n }\r\n }\r\n}\r\n\r\nimport { Node, mergeAttributes } from '@tiptap/core'\r\nimport { ReactNodeViewRenderer } from '@tiptap/react'\r\nimport TiktokEmbed from './TiktokEmbed.js'\r\n\r\nexport const Tiktok = Node.create({\r\n name: 'tiktok',\r\n\r\n group: 'block',\r\n content: 'inline*',\r\n draggable: true,\r\n\r\n // content: 'inline*',\r\n\r\n addAttributes() {\r\n return {\r\n url: { default: null },\r\n class: { default: null },\r\n src: {\r\n default: null,\r\n },\r\n width: {\r\n default: '328px',\r\n },\r\n height: {\r\n default: '550px',\r\n },\r\n frameborder: {\r\n default: '0',\r\n },\r\n scrolling: {\r\n default: 'no',\r\n },\r\n allowtransparency: {\r\n default: 'true',\r\n },\r\n }\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'div[data-type=\"tiktok\"]',\r\n },\r\n ]\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return [\r\n \"div\",\r\n mergeAttributes({\r\n \"data-type\": \"tiktok\",\r\n class: `react-renderer node-tiktok ${HTMLAttributes.class ?? \"\"}`,\r\n }), [\r\n 'div',\r\n mergeAttributes(\r\n { class: 'socialMediaContainer' },\r\n ),\r\n ['div', mergeAttributes({ class: 'rsme-embed rsme-tiktok-embed', style: 'overflow: hidden; border-radius: 8px;' }),\r\n ['div', { class: 'tiktok-embed-container' },\r\n ['iframe', mergeAttributes(HTMLAttributes, { src: convertTikTokUrlToEmbed(HTMLAttributes.url) },)],\r\n ]\r\n ]\r\n ]\r\n ]\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Enter': () => {\r\n return this.editor\r\n .chain()\r\n .insertContentAt(this.editor.state.selection.head, {\r\n type: this.type.name,\r\n })\r\n .focus()\r\n .run()\r\n },\r\n }\r\n },\r\n\r\n addNodeView() {\r\n return ReactNodeViewRenderer(TiktokEmbed)\r\n },\r\n\r\n addCommands() {\r\n return {\r\n insertTiktok:\r\n (url, className) =>\r\n ({ commands, state }) => {\r\n\r\n\r\n let embedUrl\r\n\r\n\r\n // Usage in the original location:\r\n embedUrl = url ? convertTikTokUrlToEmbed(url) : undefined;\r\n return commands.insertContent({\r\n type: 'tiktok',\r\n attrs: {\r\n url,\r\n class: className,\r\n src: embedUrl,\r\n },\r\n })\r\n },\r\n }\r\n },\r\n})\r\n\r\nfunction convertTikTokUrlToEmbed(url: string): string | undefined {\r\n if (!url) return undefined;\r\n try {\r\n const urlObj = new URL(url);\r\n const path = urlObj.pathname;\r\n const videoId = path.split('/').filter(Boolean)[2];\r\n return videoId ? `https://www.tiktok.com/embed/v3/${videoId}` : undefined;\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\n\r\nfunction isValidHttpUrl(string: string) {\r\n let url\r\n\r\n try {\r\n url = new URL(string)\r\n } catch (_) {\r\n return false\r\n }\r\n\r\n return url.protocol === 'http:' || url.protocol === 'https:'\r\n}\r\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","TiktokEmbed","Tiktok","create","name","group","content","draggable","addAttributes","url","default","class","src","width","height","frameborder","scrolling","allowtransparency","parseHTML","tag","renderHTML","HTMLAttributes","style","convertTikTokUrlToEmbed","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","addNodeView","addCommands","insertTiktok","className","commands","embedUrl","undefined","insertContent","attrs","urlObj","URL","path","pathname","videoId","split","filter","Boolean","isValidHttpUrl","string","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,iBAAiB,mBAAkB;AAE1C,OAAO,MAAMC,SAASJ,KAAKK,MAAM,CAAC;IAChCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YACAI,QAAQ;gBACNJ,SAAS;YACX;YACAK,aAAa;gBACXL,SAAS;YACX;YACAM,WAAW;gBACTN,SAAS;YACX;YACAO,mBAAmB;gBACjBP,SAAS;YACX;QACF;IACF;IACAQ;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACAtB,gBAAgB;gBACd,aAAa;gBACbY,OAAO,CAAC,2BAA2B,EAAEU,eAAeV,KAAK,IAAI,GAAG,CAAC;YACnE;YAAI;gBACF;gBACAZ,gBACE;oBAAEY,OAAO;gBAAuB;gBAElC;oBAAC;oBAAOZ,gBAAgB;wBAAEY,OAAO;wBAAgCW,OAAO;oBAAwC;oBAC9G;wBAAC;wBAAO;4BAAEX,OAAO;wBAAyB;wBACxC;4BAAC;4BAAUZ,gBAAgBsB,gBAAgB;gCAAET,KAAKW,wBAAwBF,eAAeZ,GAAG;4BAAE;yBAAI;qBACnG;iBACF;aACF;SACF;IACH;IACAe;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAAC3B,IAAI;gBACtB,GACC4B,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC;QACE,OAAOlC,sBAAsBC;IAC/B;IAEAkC;QACE,OAAO;YACLC,cACE,CAAC3B,KAAK4B,YACJ,CAAC,EAAEC,QAAQ,EAAEV,KAAK,EAAE;oBAGlB,IAAIW;oBAGJ,kCAAkC;oBAClCA,WAAW9B,MAAMc,wBAAwBd,OAAO+B;oBAChD,OAAOF,SAASG,aAAa,CAAC;wBAC5BV,MAAM;wBACNW,OAAO;4BACLjC;4BACAE,OAAO0B;4BACPzB,KAAK2B;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAAShB,wBAAwBd,GAAW;IAC1C,IAAI,CAACA,KAAK,OAAO+B;IACjB,IAAI;QACF,MAAMG,SAAS,IAAIC,IAAInC;QACvB,MAAMoC,OAAOF,OAAOG,QAAQ;QAC5B,MAAMC,UAAUF,KAAKG,KAAK,CAAC,KAAKC,MAAM,CAACC,QAAQ,CAAC,EAAE;QAClD,OAAOH,UAAU,CAAC,gCAAgC,EAAEA,QAAQ,CAAC,GAAGP;IAClE,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AAEA,SAASW,eAAeC,MAAc;IACpC,IAAI3C;IAEJ,IAAI;QACFA,MAAM,IAAImC,IAAIQ;IAChB,EAAE,OAAOC,GAAG;QACV,OAAO;IACT;IAEA,OAAO5C,IAAI6C,QAAQ,KAAK,WAAW7C,IAAI6C,QAAQ,KAAK;AACtD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/TwitterEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport { Twitter } from \"lucide-react\";\nimport { XEmbed } from \"react-social-media-embed\";\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\n\nexport default (props: { node: { attrs: { url?: string } } }) => {\n return (\n <SocialMediaEmbed\n props={props}\n Icon={Twitter}\n text={\"Embed a Tweet from X\"}\n >\n <XEmbed url={props?.node?.attrs?.url ?? \"\"} width={325} />\n </SocialMediaEmbed>\n );\n};\n"],"names":["Twitter","XEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs","width"],"mappings":";AACA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,MAAM,QAAQ,2BAA2B;AAClD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAOK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;YAAIG,OAAO;;;AAGzD,CAAA,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/TwitterEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\r\nimport { Twitter } from \"lucide-react\";\r\nimport { XEmbed } from \"react-social-media-embed\";\r\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\r\n\r\nexport default (props: { node: { attrs: { url?: string } } }) => {\r\n return (\r\n <SocialMediaEmbed\r\n props={props}\r\n Icon={Twitter}\r\n text={\"Embed a Tweet from X\"}\r\n >\r\n <XEmbed url={props?.node?.attrs?.url ?? \"\"} width={325} />\r\n </SocialMediaEmbed>\r\n );\r\n};\r\n"],"names":["Twitter","XEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs","width"],"mappings":";AACA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,MAAM,QAAQ,2BAA2B;AAClD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAOK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;YAAIG,OAAO;;;AAGzD,CAAA,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/index.ts"],"sourcesContent":["export * from \"./twitter.js\";\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/index.ts"],"sourcesContent":["export * from \"./twitter.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n twitter: {\n /**\n * Add an image\n */\n\n insertTwitter: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, PasteRule, markPasteRule, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport TwitterEmbed from './TwitterEmbed.js'\n\nexport const Twitter = Node.create({\n name: 'twitter',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"twitter\"]',\n },\n ]\n },\n\n addAttributes() {\n return {\n url: { default: null },\n src: { default: null },\n class: { default: null },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n // renderHTML({ HTMLAttributes }) {\n // return [\n // \"div\",\n // mergeAttributes(HTMLAttributes, { \"data-type\": \"twitter\" }),\n // 0,\n // ];\n // },\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"twitter\",\n class: `react-renderer node-twitter ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', mergeAttributes({ class: 'rsme-embed rsme-twitter-embed', style: 'overflow: hidden; width: 325px; border-radius: 12px;' }),\n\n [\n 'blockquote',\n { class: 'twitter-tweet' },\n ['a', { href: convertYoutubeUrlToEmbed(HTMLAttributes.url) ?? HTMLAttributes.src }, ''],\n ],\n [\n 'script',\n {\n async: true,\n src: 'https://platform.twitter.com/widgets.js',\n charset: 'utf-8',\n },\n ],\n ]\n ]\n ]\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TwitterEmbed)\n },\n\n addCommands() {\n return {\n insertTwitter:\n (url, className) =>\n ({ commands, state }) => {\n let formattedUrl = url\n if (url) {\n\n formattedUrl = convertYoutubeUrlToEmbed(url)\n }\n return commands.insertContent({\n type: 'twitter',\n attrs: {\n url: url,\n class: className,\n src: formattedUrl,\n },\n })\n },\n }\n },\n})\n\nfunction convertYoutubeUrlToEmbed(url: string): string | undefined {\n if (!url) return undefined;\n try {\n let formattedUrl\n const tweetMatch = url.match(/(?:twitter\\.com|x\\.com)\\/([^\\/]+)\\/status\\/(\\d+)/)\n if (tweetMatch) {\n const [_, username, tweetId] = tweetMatch\n formattedUrl = `https://twitter.com/${username}/status/${tweetId}`\n }\n return formattedUrl ? formattedUrl : undefined;\n } catch {\n return undefined;\n }\n}\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","TwitterEmbed","Twitter","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","src","class","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","style","href","convertYoutubeUrlToEmbed","async","charset","addNodeView","addCommands","insertTwitter","className","commands","formattedUrl","insertContent","attrs","undefined","tweetMatch","match","_","username","tweetId","isValidHttpUrl","string","URL","protocol"],"mappings":"AAYA,SAASA,IAAI,EAA4BC,eAAe,QAAQ,eAAc;AAC9E,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,kBAAkB,oBAAmB;AAE5C,OAAO,MAAMC,UAAUJ,KAAKK,MAAM,CAAC;IACjCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,KAAK;gBAAED,SAAS;YAAK;YACrBE,OAAO;gBAAEF,SAAS;YAAK;QACzB;IACF;IAEAG;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAAClB,IAAI;gBACtB,GACCmB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEA,mCAAmC;IACnC,aAAa;IACb,aAAa;IACb,mEAAmE;IACnE,SAAS;IACT,OAAO;IACP,KAAK;IACLC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACA3B,gBAAgB2B,gBAAgB;gBAC9B,aAAa;gBACbZ,OAAO,CAAC,4BAA4B,EAAEY,eAAeZ,KAAK,IAAI,IAAI;YACpE;YAAI;gBACF;gBACAf,gBACE;oBAAEe,OAAO;gBAAuB;gBAElC;oBAAC;oBAAOf,gBAAgB;wBAAEe,OAAO;wBAAiCa,OAAO;oBAAuD;oBAE9H;wBACE;wBACA;4BAAEb,OAAO;wBAAgB;wBACzB;4BAAC;4BAAK;gCAAEc,MAAMC,yBAAyBH,eAAef,GAAG,KAAKe,eAAeb,GAAG;4BAAC;4BAAG;yBAAG;qBACxF;oBACD;wBACE;wBACA;4BACEiB,OAAO;4BACPjB,KAAK;4BACLkB,SAAS;wBACX;qBACD;iBACF;aACF;SACF;IACH;IAEAC;QACE,OAAOhC,sBAAsBC;IAC/B;IAEAgC;QACE,OAAO;YACLC,eACE,CAACvB,KAAKwB,YACJ,CAAC,EAAEC,QAAQ,EAAEjB,KAAK,EAAE;oBAClB,IAAIkB,eAAe1B;oBACnB,IAAIA,KAAK;wBAEP0B,eAAeR,yBAAyBlB;oBAC1C;oBACA,OAAOyB,SAASE,aAAa,CAAC;wBAC5BhB,MAAM;wBACNiB,OAAO;4BACL5B,KAAKA;4BACLG,OAAOqB;4BACPtB,KAAKwB;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAASR,yBAAyBlB,GAAW;IAC3C,IAAI,CAACA,KAAK,OAAO6B;IACjB,IAAI;QACF,IAAIH;QACJ,MAAMI,aAAa9B,IAAI+B,KAAK,CAAC;QAC7B,IAAID,YAAY;YACd,MAAM,CAACE,GAAGC,UAAUC,QAAQ,GAAGJ;YAC/BJ,eAAe,CAAC,oBAAoB,EAAEO,SAAS,QAAQ,EAAEC,SAAS;QACpE;QACA,OAAOR,eAAeA,eAAeG;IACvC,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AACA,SAASM,eAAeC,MAAc;IACpC,IAAIpC;IAEJ,IAAI;QACFA,MAAM,IAAIqC,IAAID;IAChB,EAAE,OAAOJ,GAAG;QACV,OAAO;IACT;IAEA,OAAOhC,IAAIsC,QAAQ,KAAK,WAAWtC,IAAIsC,QAAQ,KAAK;AACtD"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.ts"],"sourcesContent":["declare module '@tiptap/core' {\r\n interface Commands<ReturnType> {\r\n twitter: {\r\n /**\r\n * Add an image\r\n */\r\n\r\n insertTwitter: (url?: string, className?: string) => ReturnType\r\n }\r\n }\r\n}\r\n\r\nimport { Node, PasteRule, markPasteRule, mergeAttributes } from '@tiptap/core'\r\nimport { ReactNodeViewRenderer } from '@tiptap/react'\r\nimport TwitterEmbed from './TwitterEmbed.js'\r\n\r\nexport const Twitter = Node.create({\r\n name: 'twitter',\r\n\r\n group: 'block',\r\n content: 'inline*',\r\n draggable: true,\r\n\r\n // content: 'inline*',\r\n\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'div[data-type=\"twitter\"]',\r\n },\r\n ]\r\n },\r\n\r\n addAttributes() {\r\n return {\r\n url: { default: null },\r\n src: { default: null },\r\n class: { default: null },\r\n }\r\n },\r\n\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Enter': () => {\r\n return this.editor\r\n .chain()\r\n .insertContentAt(this.editor.state.selection.head, {\r\n type: this.type.name,\r\n })\r\n .focus()\r\n .run()\r\n },\r\n }\r\n },\r\n\r\n // renderHTML({ HTMLAttributes }) {\r\n // return [\r\n // \"div\",\r\n // mergeAttributes(HTMLAttributes, { \"data-type\": \"twitter\" }),\r\n // 0,\r\n // ];\r\n // },\r\n renderHTML({ HTMLAttributes }) {\r\n return [\r\n \"div\",\r\n mergeAttributes(HTMLAttributes, {\r\n \"data-type\": \"twitter\",\r\n class: `react-renderer node-twitter ${HTMLAttributes.class ?? \"\"}`,\r\n }), [\r\n 'div',\r\n mergeAttributes(\r\n { class: 'socialMediaContainer' },\r\n ),\r\n ['div', mergeAttributes({ class: 'rsme-embed rsme-twitter-embed', style: 'overflow: hidden; width: 325px; border-radius: 12px;' }),\r\n\r\n [\r\n 'blockquote',\r\n { class: 'twitter-tweet' },\r\n ['a', { href: convertYoutubeUrlToEmbed(HTMLAttributes.url) ?? HTMLAttributes.src }, ''],\r\n ],\r\n [\r\n 'script',\r\n {\r\n async: true,\r\n src: 'https://platform.twitter.com/widgets.js',\r\n charset: 'utf-8',\r\n },\r\n ],\r\n ]\r\n ]\r\n ]\r\n },\r\n\r\n addNodeView() {\r\n return ReactNodeViewRenderer(TwitterEmbed)\r\n },\r\n\r\n addCommands() {\r\n return {\r\n insertTwitter:\r\n (url, className) =>\r\n ({ commands, state }) => {\r\n let formattedUrl = url\r\n if (url) {\r\n\r\n formattedUrl = convertYoutubeUrlToEmbed(url)\r\n }\r\n return commands.insertContent({\r\n type: 'twitter',\r\n attrs: {\r\n url: url,\r\n class: className,\r\n src: formattedUrl,\r\n },\r\n })\r\n },\r\n }\r\n },\r\n})\r\n\r\nfunction convertYoutubeUrlToEmbed(url: string): string | undefined {\r\n if (!url) return undefined;\r\n try {\r\n let formattedUrl\r\n const tweetMatch = url.match(/(?:twitter\\.com|x\\.com)\\/([^\\/]+)\\/status\\/(\\d+)/)\r\n if (tweetMatch) {\r\n const [_, username, tweetId] = tweetMatch\r\n formattedUrl = `https://twitter.com/${username}/status/${tweetId}`\r\n }\r\n return formattedUrl ? formattedUrl : undefined;\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\nfunction isValidHttpUrl(string: string) {\r\n let url\r\n\r\n try {\r\n url = new URL(string)\r\n } catch (_) {\r\n return false\r\n }\r\n\r\n return url.protocol === 'http:' || url.protocol === 'https:'\r\n}\r\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","TwitterEmbed","Twitter","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","src","class","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","style","href","convertYoutubeUrlToEmbed","async","charset","addNodeView","addCommands","insertTwitter","className","commands","formattedUrl","insertContent","attrs","undefined","tweetMatch","match","_","username","tweetId","isValidHttpUrl","string","URL","protocol"],"mappings":"AAYA,SAASA,IAAI,EAA4BC,eAAe,QAAQ,eAAc;AAC9E,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,kBAAkB,oBAAmB;AAE5C,OAAO,MAAMC,UAAUJ,KAAKK,MAAM,CAAC;IACjCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,KAAK;gBAAED,SAAS;YAAK;YACrBE,OAAO;gBAAEF,SAAS;YAAK;QACzB;IACF;IAEAG;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAAClB,IAAI;gBACtB,GACCmB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEA,mCAAmC;IACnC,aAAa;IACb,aAAa;IACb,mEAAmE;IACnE,SAAS;IACT,OAAO;IACP,KAAK;IACLC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACA3B,gBAAgB2B,gBAAgB;gBAC9B,aAAa;gBACbZ,OAAO,CAAC,4BAA4B,EAAEY,eAAeZ,KAAK,IAAI,GAAG,CAAC;YACpE;YAAI;gBACF;gBACAf,gBACE;oBAAEe,OAAO;gBAAuB;gBAElC;oBAAC;oBAAOf,gBAAgB;wBAAEe,OAAO;wBAAiCa,OAAO;oBAAuD;oBAE9H;wBACE;wBACA;4BAAEb,OAAO;wBAAgB;wBACzB;4BAAC;4BAAK;gCAAEc,MAAMC,yBAAyBH,eAAef,GAAG,KAAKe,eAAeb,GAAG;4BAAC;4BAAG;yBAAG;qBACxF;oBACD;wBACE;wBACA;4BACEiB,OAAO;4BACPjB,KAAK;4BACLkB,SAAS;wBACX;qBACD;iBACF;aACF;SACF;IACH;IAEAC;QACE,OAAOhC,sBAAsBC;IAC/B;IAEAgC;QACE,OAAO;YACLC,eACE,CAACvB,KAAKwB,YACJ,CAAC,EAAEC,QAAQ,EAAEjB,KAAK,EAAE;oBAClB,IAAIkB,eAAe1B;oBACnB,IAAIA,KAAK;wBAEP0B,eAAeR,yBAAyBlB;oBAC1C;oBACA,OAAOyB,SAASE,aAAa,CAAC;wBAC5BhB,MAAM;wBACNiB,OAAO;4BACL5B,KAAKA;4BACLG,OAAOqB;4BACPtB,KAAKwB;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAASR,yBAAyBlB,GAAW;IAC3C,IAAI,CAACA,KAAK,OAAO6B;IACjB,IAAI;QACF,IAAIH;QACJ,MAAMI,aAAa9B,IAAI+B,KAAK,CAAC;QAC7B,IAAID,YAAY;YACd,MAAM,CAACE,GAAGC,UAAUC,QAAQ,GAAGJ;YAC/BJ,eAAe,CAAC,oBAAoB,EAAEO,SAAS,QAAQ,EAAEC,QAAQ,CAAC;QACpE;QACA,OAAOR,eAAeA,eAAeG;IACvC,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AACA,SAASM,eAAeC,MAAc;IACpC,IAAIpC;IAEJ,IAAI;QACFA,MAAM,IAAIqC,IAAID;IAChB,EAAE,OAAOJ,GAAG;QACV,OAAO;IACT;IAEA,OAAOhC,IAAIsC,QAAQ,KAAK,WAAWtC,IAAIsC,QAAQ,KAAK;AACtD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/YoutubeEmbed.tsx"],"sourcesContent":["import { Youtube } from \"lucide-react\";\nimport { YouTubeEmbed } from \"react-social-media-embed\";\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\n\nexport default (props: { node: { attrs: { url?: string } } }) => {\n return (\n <SocialMediaEmbed\n props={props}\n Icon={Youtube}\n text={\"Embed a Youtube Video\"}\n >\n <YouTubeEmbed url={props?.node?.attrs?.url ?? \"\"} />\n </SocialMediaEmbed>\n );\n};\n"],"names":["Youtube","YouTubeEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs"],"mappings":";AAAA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,YAAY,QAAQ,2BAA2B;AACxD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAaK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;;;AAGpD,CAAA,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/YoutubeEmbed.tsx"],"sourcesContent":["import { Youtube } from \"lucide-react\";\r\nimport { YouTubeEmbed } from \"react-social-media-embed\";\r\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\r\n\r\nexport default (props: { node: { attrs: { url?: string } } }) => {\r\n return (\r\n <SocialMediaEmbed\r\n props={props}\r\n Icon={Youtube}\r\n text={\"Embed a Youtube Video\"}\r\n >\r\n <YouTubeEmbed url={props?.node?.attrs?.url ?? \"\"} />\r\n </SocialMediaEmbed>\r\n );\r\n};\r\n"],"names":["Youtube","YouTubeEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs"],"mappings":";AAAA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,YAAY,QAAQ,2BAA2B;AACxD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAaK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;;;AAGpD,CAAA,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/index.ts"],"sourcesContent":["export * from \"./youtube.js\";\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/index.ts"],"sourcesContent":["export * from \"./youtube.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n youtube: {\n /**\n * Add an image\n */\n\n insertYoutube: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, PasteRule, markPasteRule, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport YoutubeEmbed from './YoutubeEmbed.js'\n\nexport const Youtube = Node.create({\n name: 'youtube',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"youtube\"]',\n },\n ]\n },\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '560',\n },\n height: {\n default: '315',\n },\n frameborder: {\n default: '0',\n },\n allowfullscreen: {\n default: true,\n },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"youtube\",\n class: `react-renderer node-youtube ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', mergeAttributes({ class: 'rsme-embed rsme-youtube-embed', style: 'overflow: hidden; border-radius: 0px;' }),\n ['div', { class: 'youtube-iframe' },\n ['iframe', mergeAttributes(HTMLAttributes, { src: convertYoutubeUrlToEmbed(HTMLAttributes.url) },)],\n ]\n ]\n ]\n ]\n },\n addNodeView() {\n return ReactNodeViewRenderer(YoutubeEmbed)\n },\n\n addCommands() {\n return {\n insertYoutube:\n (url, className) =>\n ({ commands, state }) => {\n let embedUrl = ''\n\n if (url) {\n embedUrl = convertYoutubeUrlToEmbed(url)\n }\n\n return commands.insertContent({\n type: 'youtube',\n attrs: {\n url,\n class: className,\n src: embedUrl,\n },\n })\n },\n }\n },\n})\n\n\n\n\n\nfunction convertYoutubeUrlToEmbed(url: string): string | undefined {\n if (!url) return undefined;\n try {\n // Extract video ID from various YouTube URL formats\n const urlObj = new URL(url)\n let videoId = ''\n\n if (urlObj.hostname === 'youtu.be') {\n // Handle youtu.be format\n videoId = urlObj.pathname.slice(1)\n } else {\n // Handle youtube.com formats\n const searchParams = new URLSearchParams(urlObj.search)\n videoId = searchParams.get('v') || ''\n\n if (!videoId) {\n // Try extracting from pathname for embed URLs\n const matches = urlObj.pathname.match(/\\/embed\\/([^/?]+)/)\n if (matches) {\n videoId = matches[1]\n }\n }\n }\n\n return videoId ? `https://www.youtube.com/embed/${videoId}` : undefined;\n } catch {\n return undefined;\n }\n}\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","YoutubeEmbed","Youtube","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","src","width","height","frameborder","allowfullscreen","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","style","convertYoutubeUrlToEmbed","addNodeView","addCommands","insertYoutube","className","commands","embedUrl","insertContent","attrs","undefined","urlObj","URL","videoId","hostname","pathname","slice","searchParams","URLSearchParams","search","get","matches","match","isValidHttpUrl","string","_","protocol"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.ts"],"sourcesContent":["declare module '@tiptap/core' {\r\n interface Commands<ReturnType> {\r\n youtube: {\r\n /**\r\n * Add an image\r\n */\r\n\r\n insertYoutube: (url?: string, className?: string) => ReturnType\r\n }\r\n }\r\n}\r\n\r\nimport { Node, PasteRule, markPasteRule, mergeAttributes } from '@tiptap/core'\r\nimport { ReactNodeViewRenderer } from '@tiptap/react'\r\nimport YoutubeEmbed from './YoutubeEmbed.js'\r\n\r\nexport const Youtube = Node.create({\r\n name: 'youtube',\r\n\r\n group: 'block',\r\n content: 'inline*',\r\n draggable: true,\r\n\r\n // content: 'inline*',\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'div[data-type=\"youtube\"]',\r\n },\r\n ]\r\n },\r\n addAttributes() {\r\n return {\r\n url: { default: null },\r\n class: { default: null },\r\n src: {\r\n default: null,\r\n },\r\n width: {\r\n default: '560',\r\n },\r\n height: {\r\n default: '315',\r\n },\r\n frameborder: {\r\n default: '0',\r\n },\r\n allowfullscreen: {\r\n default: true,\r\n },\r\n }\r\n },\r\n\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Enter': () => {\r\n return this.editor\r\n .chain()\r\n .insertContentAt(this.editor.state.selection.head, {\r\n type: this.type.name,\r\n })\r\n .focus()\r\n .run()\r\n },\r\n }\r\n },\r\n\r\n renderHTML({ HTMLAttributes }) {\r\n return [\r\n \"div\",\r\n mergeAttributes(HTMLAttributes, {\r\n \"data-type\": \"youtube\",\r\n class: `react-renderer node-youtube ${HTMLAttributes.class ?? \"\"}`,\r\n }), [\r\n 'div',\r\n mergeAttributes(\r\n { class: 'socialMediaContainer' },\r\n ),\r\n ['div', mergeAttributes({ class: 'rsme-embed rsme-youtube-embed', style: 'overflow: hidden; border-radius: 0px;' }),\r\n ['div', { class: 'youtube-iframe' },\r\n ['iframe', mergeAttributes(HTMLAttributes, { src: convertYoutubeUrlToEmbed(HTMLAttributes.url) },)],\r\n ]\r\n ]\r\n ]\r\n ]\r\n },\r\n addNodeView() {\r\n return ReactNodeViewRenderer(YoutubeEmbed)\r\n },\r\n\r\n addCommands() {\r\n return {\r\n insertYoutube:\r\n (url, className) =>\r\n ({ commands, state }) => {\r\n let embedUrl = ''\r\n\r\n if (url) {\r\n embedUrl = convertYoutubeUrlToEmbed(url)\r\n }\r\n\r\n return commands.insertContent({\r\n type: 'youtube',\r\n attrs: {\r\n url,\r\n class: className,\r\n src: embedUrl,\r\n },\r\n })\r\n },\r\n }\r\n },\r\n})\r\n\r\n\r\n\r\n\r\n\r\nfunction convertYoutubeUrlToEmbed(url: string): string | undefined {\r\n if (!url) return undefined;\r\n try {\r\n // Extract video ID from various YouTube URL formats\r\n const urlObj = new URL(url)\r\n let videoId = ''\r\n\r\n if (urlObj.hostname === 'youtu.be') {\r\n // Handle youtu.be format\r\n videoId = urlObj.pathname.slice(1)\r\n } else {\r\n // Handle youtube.com formats\r\n const searchParams = new URLSearchParams(urlObj.search)\r\n videoId = searchParams.get('v') || ''\r\n\r\n if (!videoId) {\r\n // Try extracting from pathname for embed URLs\r\n const matches = urlObj.pathname.match(/\\/embed\\/([^/?]+)/)\r\n if (matches) {\r\n videoId = matches[1]\r\n }\r\n }\r\n }\r\n\r\n return videoId ? `https://www.youtube.com/embed/${videoId}` : undefined;\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\nfunction isValidHttpUrl(string: string) {\r\n let url\r\n\r\n try {\r\n url = new URL(string)\r\n } catch (_) {\r\n return false\r\n }\r\n\r\n return url.protocol === 'http:' || url.protocol === 'https:'\r\n}\r\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","YoutubeEmbed","Youtube","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","src","width","height","frameborder","allowfullscreen","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","style","convertYoutubeUrlToEmbed","addNodeView","addCommands","insertYoutube","className","commands","embedUrl","insertContent","attrs","undefined","urlObj","URL","videoId","hostname","pathname","slice","searchParams","URLSearchParams","search","get","matches","match","isValidHttpUrl","string","_","protocol"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/index.ts"],"sourcesContent":["export { Twitter } from \"./Twitter/index.js\";\nexport { Tiktok } from \"./Tiktok/index.js\";\nexport { Facebook } from \"./Facebook/index.js\";\nexport { Instagram } from \"./Instagram/index.js\";\nexport { Youtube } from \"./Youtube/index.js\";\nexport { Linkedin } from \"./Linkedin/index.js\";\n"],"names":["Twitter","Tiktok","Facebook","Instagram","Youtube","Linkedin"],"mappings":"AAAA,SAASA,OAAO,QAAQ,qBAAqB;AAC7C,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,SAAS,QAAQ,uBAAuB;AACjD,SAASC,OAAO,QAAQ,qBAAqB;AAC7C,SAASC,QAAQ,QAAQ,sBAAsB"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/index.ts"],"sourcesContent":["export { Twitter } from \"./Twitter/index.js\";\r\nexport { Tiktok } from \"./Tiktok/index.js\";\r\nexport { Facebook } from \"./Facebook/index.js\";\r\nexport { Instagram } from \"./Instagram/index.js\";\r\nexport { Youtube } from \"./Youtube/index.js\";\r\nexport { Linkedin } from \"./Linkedin/index.js\";\r\n"],"names":["Twitter","Tiktok","Facebook","Instagram","Youtube","Linkedin"],"mappings":"AAAA,SAASA,OAAO,QAAQ,qBAAqB;AAC7C,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,SAAS,QAAQ,uBAAuB;AACjD,SAASC,OAAO,QAAQ,qBAAqB;AAC7C,SAASC,QAAQ,QAAQ,sBAAsB"}