payload-richtext-tiptap 0.0.149 → 0.0.150

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 (266) hide show
  1. package/LICENSE.md +22 -22
  2. package/README.md +33 -33
  3. package/dist/src/body/StandardArticle.js.map +1 -1
  4. package/dist/src/client.js.map +1 -1
  5. package/dist/src/fields/TiptapEditor/Components.js.map +1 -1
  6. package/dist/src/fields/TiptapEditor/context/EditorContext.js.map +1 -1
  7. package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.js.map +1 -1
  8. package/dist/src/fields/TiptapEditor/extensions/AICommand/AIMenuList.js.map +1 -1
  9. package/dist/src/fields/TiptapEditor/extensions/AICommand/CommandButton.js.map +1 -1
  10. package/dist/src/fields/TiptapEditor/extensions/AICommand/groups.js.map +1 -1
  11. package/dist/src/fields/TiptapEditor/extensions/AICommand/index.js.map +1 -1
  12. package/dist/src/fields/TiptapEditor/extensions/AICommand/types.js.map +1 -1
  13. package/dist/src/fields/TiptapEditor/extensions/Audio/Audio.js +5 -5
  14. package/dist/src/fields/TiptapEditor/extensions/Audio/Audio.js.map +1 -1
  15. package/dist/src/fields/TiptapEditor/extensions/Audio/index.js.map +1 -1
  16. package/dist/src/fields/TiptapEditor/extensions/AudioBlock/AudioBlock.js.map +1 -1
  17. package/dist/src/fields/TiptapEditor/extensions/AudioBlock/components/AudioBlockMenu.js.map +1 -1
  18. package/dist/src/fields/TiptapEditor/extensions/AudioBlock/components/AudioBlockView.js.map +1 -1
  19. package/dist/src/fields/TiptapEditor/extensions/AudioBlock/components/AudioBlockWidth.js.map +1 -1
  20. package/dist/src/fields/TiptapEditor/extensions/AudioBlock/index.js.map +1 -1
  21. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/BlockquoteFigure.js.map +1 -1
  22. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Design.js.map +1 -1
  23. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Quote/Quote.js.map +1 -1
  24. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Quote/index.js.map +1 -1
  25. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/QuoteCaption/QuoteCaption.js.map +1 -1
  26. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/QuoteCaption/index.js.map +1 -1
  27. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/index.js.map +1 -1
  28. package/dist/src/fields/TiptapEditor/extensions/Document/Document.js.map +1 -1
  29. package/dist/src/fields/TiptapEditor/extensions/Document/index.js.map +1 -1
  30. package/dist/src/fields/TiptapEditor/extensions/Figcaption/Figcaption.js.map +1 -1
  31. package/dist/src/fields/TiptapEditor/extensions/Figcaption/index.js.map +1 -1
  32. package/dist/src/fields/TiptapEditor/extensions/Figure/Figure.js.map +1 -1
  33. package/dist/src/fields/TiptapEditor/extensions/Figure/index.js.map +1 -1
  34. package/dist/src/fields/TiptapEditor/extensions/FontSize/FontSize.js.map +1 -1
  35. package/dist/src/fields/TiptapEditor/extensions/FontSize/index.js.map +1 -1
  36. package/dist/src/fields/TiptapEditor/extensions/Heading/Heading.js.map +1 -1
  37. package/dist/src/fields/TiptapEditor/extensions/Heading/index.js.map +1 -1
  38. package/dist/src/fields/TiptapEditor/extensions/HorizontalRule/HorizontalRule.js.map +1 -1
  39. package/dist/src/fields/TiptapEditor/extensions/HorizontalRule/index.js.map +1 -1
  40. package/dist/src/fields/TiptapEditor/extensions/Iframe/IframeEmbed.js.map +1 -1
  41. package/dist/src/fields/TiptapEditor/extensions/Iframe/iframe.js.map +1 -1
  42. package/dist/src/fields/TiptapEditor/extensions/Iframe/index.js.map +1 -1
  43. package/dist/src/fields/TiptapEditor/extensions/Iframe/menus/IframeMenu.js.map +1 -1
  44. package/dist/src/fields/TiptapEditor/extensions/Iframe/menus/index.js.map +1 -1
  45. package/dist/src/fields/TiptapEditor/extensions/Image/Image.js.map +1 -1
  46. package/dist/src/fields/TiptapEditor/extensions/Image/index.js.map +1 -1
  47. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/ImageBlock.js.map +1 -1
  48. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockMenu.js.map +1 -1
  49. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.js.map +1 -1
  50. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockViewClientside.js.map +1 -1
  51. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockWidth.js.map +1 -1
  52. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/index.js.map +1 -1
  53. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.js.map +1 -1
  54. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/getImageActualSize.js.map +1 -1
  55. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/index.js.map +1 -1
  56. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.js.map +1 -1
  57. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.js.map +1 -1
  58. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/hooks.js.map +1 -1
  59. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/index.js.map +1 -1
  60. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLink.client.js.map +1 -1
  61. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLinksComponent.js.map +1 -1
  62. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/index.js.map +1 -1
  63. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/insideLinks.js.map +1 -1
  64. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/InsideLinksMenu.js.map +1 -1
  65. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/index.js.map +1 -1
  66. package/dist/src/fields/TiptapEditor/extensions/Link/Link.js.map +1 -1
  67. package/dist/src/fields/TiptapEditor/extensions/Link/index.js.map +1 -1
  68. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/EditLinkPreviewPopover.js.map +1 -1
  69. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.js.map +1 -1
  70. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreviewEditorPanel.js.map +1 -1
  71. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/index.js.map +1 -1
  72. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/menus/index.js.map +1 -1
  73. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/menus/linkPreviewMenu.js.map +1 -1
  74. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Column.js.map +1 -1
  75. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Columns.js +3 -3
  76. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Columns.js.map +1 -1
  77. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/index.js.map +1 -1
  78. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/ColumnsMenu.js.map +1 -1
  79. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/index.js.map +1 -1
  80. package/dist/src/fields/TiptapEditor/extensions/Paragraph/Paragraph.js.map +1 -1
  81. package/dist/src/fields/TiptapEditor/extensions/Paragraph/index.js.map +1 -1
  82. package/dist/src/fields/TiptapEditor/extensions/Selection/Selection.js.map +1 -1
  83. package/dist/src/fields/TiptapEditor/extensions/Selection/index.js.map +1 -1
  84. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.js.map +1 -1
  85. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.js.map +1 -1
  86. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/SlashCommand.js.map +1 -1
  87. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/groups.js.map +1 -1
  88. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/index.js.map +1 -1
  89. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/types.js.map +1 -1
  90. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/FacebookEmbed.js.map +1 -1
  91. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.js.map +1 -1
  92. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/index.js.map +1 -1
  93. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.js.map +1 -1
  94. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/index.js.map +1 -1
  95. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.js.map +1 -1
  96. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/LinkedinEmbed.js.map +1 -1
  97. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/index.js.map +1 -1
  98. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.js.map +1 -1
  99. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.js.map +1 -1
  100. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.js.map +1 -1
  101. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/TiktokEmbed.js.map +1 -1
  102. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/index.js.map +1 -1
  103. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.js.map +1 -1
  104. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/TwitterEmbed.js.map +1 -1
  105. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/index.js.map +1 -1
  106. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.js.map +1 -1
  107. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/YoutubeEmbed.js.map +1 -1
  108. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/index.js.map +1 -1
  109. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.js.map +1 -1
  110. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/index.js.map +1 -1
  111. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/SocialMediaMenu.js.map +1 -1
  112. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/constants.js.map +1 -1
  113. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/index.js.map +1 -1
  114. package/dist/src/fields/TiptapEditor/extensions/Table/Cell.js.map +1 -1
  115. package/dist/src/fields/TiptapEditor/extensions/Table/Header.js.map +1 -1
  116. package/dist/src/fields/TiptapEditor/extensions/Table/Row.js.map +1 -1
  117. package/dist/src/fields/TiptapEditor/extensions/Table/Table.js.map +1 -1
  118. package/dist/src/fields/TiptapEditor/extensions/Table/index.js.map +1 -1
  119. package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableColumn/index.js.map +1 -1
  120. package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableColumn/utils.js.map +1 -1
  121. package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableRow/index.js.map +1 -1
  122. package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableRow/utils.js.map +1 -1
  123. package/dist/src/fields/TiptapEditor/extensions/Table/menus/index.js.map +1 -1
  124. package/dist/src/fields/TiptapEditor/extensions/Table/utils.js.map +1 -1
  125. package/dist/src/fields/TiptapEditor/extensions/TrailingNode/index.js.map +1 -1
  126. package/dist/src/fields/TiptapEditor/extensions/TrailingNode/trailing-node.js.map +1 -1
  127. package/dist/src/fields/TiptapEditor/extensions/Video/Video.js +5 -5
  128. package/dist/src/fields/TiptapEditor/extensions/Video/Video.js.map +1 -1
  129. package/dist/src/fields/TiptapEditor/extensions/Video/index.js.map +1 -1
  130. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/VideoBlock.js.map +1 -1
  131. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockMenu.js.map +1 -1
  132. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockView.js.map +1 -1
  133. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockViewClientside.js.map +1 -1
  134. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockWidth.js.map +1 -1
  135. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.js.map +1 -1
  136. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/components/QualityOption.js +9 -9
  137. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/components/QualityOption.js.map +1 -1
  138. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/components/QualitySelector.js +15 -15
  139. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/components/QualitySelector.js.map +1 -1
  140. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/events.d.ts.map +1 -1
  141. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/events.js.map +1 -1
  142. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/index.js.map +1 -1
  143. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/middleware/SourceInterceptor.js.map +1 -1
  144. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/util/SafeSeek.js.map +1 -1
  145. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/index.js.map +1 -1
  146. package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts +1 -1
  147. package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts.map +1 -1
  148. package/dist/src/fields/TiptapEditor/extensions/extension-kit.js.map +1 -1
  149. package/dist/src/fields/TiptapEditor/extensions/index.js.map +1 -1
  150. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.js.map +1 -1
  151. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSideRenderer.js.map +1 -1
  152. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSidebarRenderer.js.map +1 -1
  153. package/dist/src/fields/TiptapEditor/extensions/serverside/FacebookServerside.js.map +1 -1
  154. package/dist/src/fields/TiptapEditor/extensions/serverside/IFrameServerside.js.map +1 -1
  155. package/dist/src/fields/TiptapEditor/extensions/serverside/ImageBlockServerside.js.map +1 -1
  156. package/dist/src/fields/TiptapEditor/extensions/serverside/InsideLinkServerside.js.map +1 -1
  157. package/dist/src/fields/TiptapEditor/extensions/serverside/InstagramServerside.js.map +1 -1
  158. package/dist/src/fields/TiptapEditor/extensions/serverside/LinkedinServerside.js.map +1 -1
  159. package/dist/src/fields/TiptapEditor/extensions/serverside/RenderEmbedClientSide.js.map +1 -1
  160. package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js.map +1 -1
  161. package/dist/src/fields/TiptapEditor/extensions/serverside/TiktokServerside.js.map +1 -1
  162. package/dist/src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.js.map +1 -1
  163. package/dist/src/fields/TiptapEditor/extensions/serverside/VideoBlockServerside.js +5 -5
  164. package/dist/src/fields/TiptapEditor/extensions/serverside/VideoBlockServerside.js.map +1 -1
  165. package/dist/src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.js.map +1 -1
  166. package/dist/src/fields/TiptapEditor/extensions/serverside/getAssetsAspectRatio.js.map +1 -1
  167. package/dist/src/fields/TiptapEditor/extensions/serverside/index.js.map +1 -1
  168. package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendRequiredBlocksMarkerClient.js.map +1 -1
  169. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts +2 -2
  170. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts.map +1 -1
  171. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js +22 -21
  172. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js.map +1 -1
  173. package/dist/src/fields/TiptapEditor/features/BlockEditor/OneLineEditor.js.map +1 -1
  174. package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.js.map +1 -1
  175. package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorInfo.js.map +1 -1
  176. package/dist/src/fields/TiptapEditor/features/BlockEditor/components/OneLiner.js.map +1 -1
  177. package/dist/src/fields/TiptapEditor/features/BlockEditor/index.js.map +1 -1
  178. package/dist/src/fields/TiptapEditor/features/BlockEditor/types.js.map +1 -1
  179. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.js.map +1 -1
  180. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/hooks/useContentItemActions.js.map +1 -1
  181. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/hooks/useData.js.map +1 -1
  182. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/index.js.map +1 -1
  183. package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.js.map +1 -1
  184. package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/index.js.map +1 -1
  185. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/AITextMenu.js.map +1 -1
  186. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.js.map +1 -1
  187. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.js.map +1 -1
  188. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/EditIframeLinkPopover.js.map +1 -1
  189. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/EditLinkPopover.js.map +1 -1
  190. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.js.map +1 -1
  191. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.js.map +1 -1
  192. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/SocialMediaPopover.js.map +1 -1
  193. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.js.map +1 -1
  194. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-draft-selector-commands.js.map +1 -1
  195. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js.map +1 -1
  196. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuCommands.js.map +1 -1
  197. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuContentTypes.js.map +1 -1
  198. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuStates.js.map +1 -1
  199. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/index.js.map +1 -1
  200. package/dist/src/fields/TiptapEditor/features/menus/index.js.map +1 -1
  201. package/dist/src/fields/TiptapEditor/features/menus/types.js.map +1 -1
  202. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.js.map +1 -1
  203. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/index.js.map +1 -1
  204. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js.map +1 -1
  205. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/EditorPreview.js.map +1 -1
  206. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/index.js.map +1 -1
  207. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/markdown.hook.js.map +1 -1
  208. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/utils.js.map +1 -1
  209. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/ColorButton.js.map +1 -1
  210. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/Colorpicker.js.map +1 -1
  211. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/index.js.map +1 -1
  212. package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js.map +1 -1
  213. package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/index.js.map +1 -1
  214. package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/InsideLinksEditorPanel.js.map +1 -1
  215. package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/index.js.map +1 -1
  216. package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/LinkEditorPanel.js.map +1 -1
  217. package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/index.js.map +1 -1
  218. package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/LinkPreviewPanel.js.map +1 -1
  219. package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/index.js.map +1 -1
  220. package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js.map +1 -1
  221. package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/index.js.map +1 -1
  222. package/dist/src/fields/TiptapEditor/features/panels/index.js.map +1 -1
  223. package/dist/src/fields/TiptapEditor/features/ui/Button/Button.js.map +1 -1
  224. package/dist/src/fields/TiptapEditor/features/ui/Button/SpanButton.js.map +1 -1
  225. package/dist/src/fields/TiptapEditor/features/ui/Button/index.js.map +1 -1
  226. package/dist/src/fields/TiptapEditor/features/ui/Dropdown/Dropdown.js.map +1 -1
  227. package/dist/src/fields/TiptapEditor/features/ui/Dropdown/index.js.map +1 -1
  228. package/dist/src/fields/TiptapEditor/features/ui/Icon.js.map +1 -1
  229. package/dist/src/fields/TiptapEditor/features/ui/Loader/Loader.js.map +1 -1
  230. package/dist/src/fields/TiptapEditor/features/ui/Loader/index.js.map +1 -1
  231. package/dist/src/fields/TiptapEditor/features/ui/Loader/types.js.map +1 -1
  232. package/dist/src/fields/TiptapEditor/features/ui/Panel/index.js.map +1 -1
  233. package/dist/src/fields/TiptapEditor/features/ui/PopoverMenu.js.map +1 -1
  234. package/dist/src/fields/TiptapEditor/features/ui/Spinner/Spinner.js.map +1 -1
  235. package/dist/src/fields/TiptapEditor/features/ui/Spinner/index.js.map +1 -1
  236. package/dist/src/fields/TiptapEditor/features/ui/Surface.js.map +1 -1
  237. package/dist/src/fields/TiptapEditor/features/ui/Textarea/Textarea.js.map +1 -1
  238. package/dist/src/fields/TiptapEditor/features/ui/Textarea/index.js.map +1 -1
  239. package/dist/src/fields/TiptapEditor/features/ui/Toggle/Toggle.js.map +1 -1
  240. package/dist/src/fields/TiptapEditor/features/ui/Toggle/index.js.map +1 -1
  241. package/dist/src/fields/TiptapEditor/features/ui/Toolbar.js.map +1 -1
  242. package/dist/src/fields/TiptapEditor/features/ui/Tooltip/index.js.map +1 -1
  243. package/dist/src/fields/TiptapEditor/features/ui/Tooltip/types.js.map +1 -1
  244. package/dist/src/fields/TiptapEditor/features/ui/crazy-spinner.js.map +1 -1
  245. package/dist/src/fields/TiptapEditor/features/ui/scroll-area.js.map +1 -1
  246. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js.map +1 -1
  247. package/dist/src/fields/TiptapEditor/hooks/useSidebar.js.map +1 -1
  248. package/dist/src/fields/TiptapEditor/index.js.map +1 -1
  249. package/dist/src/fields/TiptapEditor/lib/api.js.map +1 -1
  250. package/dist/src/fields/TiptapEditor/lib/constants.js.map +1 -1
  251. package/dist/src/fields/TiptapEditor/lib/data/initialContent.js.map +1 -1
  252. package/dist/src/fields/TiptapEditor/lib/extract.js.map +1 -1
  253. package/dist/src/fields/TiptapEditor/lib/tiptapSchema.js.map +1 -1
  254. package/dist/src/fields/TiptapEditor/lib/utils/cssVar.js.map +1 -1
  255. package/dist/src/fields/TiptapEditor/lib/utils/deepMerge.js +8 -8
  256. package/dist/src/fields/TiptapEditor/lib/utils/deepMerge.js.map +1 -1
  257. package/dist/src/fields/TiptapEditor/lib/utils/getRenderContainer.js.map +1 -1
  258. package/dist/src/fields/TiptapEditor/lib/utils/index.js.map +1 -1
  259. package/dist/src/fields/TiptapEditor/lib/utils/isCustomNodeSelected.js.map +1 -1
  260. package/dist/src/fields/TiptapEditor/lib/utils/isRtl.js.map +1 -1
  261. package/dist/src/fields/TiptapEditor/lib/utils/isTextSelected.js.map +1 -1
  262. package/dist/src/fields/TiptapEditor/lib/utils/partialRequired.js.map +1 -1
  263. package/dist/src/fields/TiptapEditor/types.d.js.map +1 -1
  264. package/dist/src/index.js.map +1 -1
  265. package/dist/tsconfig.tsbuildinfo +1 -1
  266. package/package.json +196 -204
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/ContentItemMenu/hooks/useData.tsx"],"sourcesContent":["import { Node } from '@tiptap/pm/model'\r\nimport { Editor } from '@tiptap/core'\r\nimport { useCallback, useState } from 'react'\r\n\r\nexport const useData = () => {\r\n const [currentNode, setCurrentNode] = useState<Node | null>(null)\r\n const [currentNodePos, setCurrentNodePos] = useState<number>(-1)\r\n\r\n const handleNodeChange = useCallback(\r\n (data: { node: Node | null; editor: Editor; pos: number }) => {\r\n if (data.node) {\r\n setCurrentNode(data.node)\r\n }\r\n\r\n setCurrentNodePos(data.pos)\r\n },\r\n [setCurrentNodePos, setCurrentNode],\r\n )\r\n\r\n return {\r\n currentNode,\r\n currentNodePos,\r\n setCurrentNode,\r\n setCurrentNodePos,\r\n handleNodeChange,\r\n }\r\n}\r\n"],"names":["useCallback","useState","useData","currentNode","setCurrentNode","currentNodePos","setCurrentNodePos","handleNodeChange","data","node","pos"],"mappings":"AAEA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,QAAO;AAE7C,OAAO,MAAMC,UAAU;IACrB,MAAM,CAACC,aAAaC,eAAe,GAAGH,SAAsB;IAC5D,MAAM,CAACI,gBAAgBC,kBAAkB,GAAGL,SAAiB,CAAC;IAE9D,MAAMM,mBAAmBP,YACvB,CAACQ;QACC,IAAIA,KAAKC,IAAI,EAAE;YACbL,eAAeI,KAAKC,IAAI;QAC1B;QAEAH,kBAAkBE,KAAKE,GAAG;IAC5B,GACA;QAACJ;QAAmBF;KAAe;IAGrC,OAAO;QACLD;QACAE;QACAD;QACAE;QACAC;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/ContentItemMenu/hooks/useData.tsx"],"sourcesContent":["import { Node } from '@tiptap/pm/model'\nimport { Editor } from '@tiptap/core'\nimport { useCallback, useState } from 'react'\n\nexport const useData = () => {\n const [currentNode, setCurrentNode] = useState<Node | null>(null)\n const [currentNodePos, setCurrentNodePos] = useState<number>(-1)\n\n const handleNodeChange = useCallback(\n (data: { node: Node | null; editor: Editor; pos: number }) => {\n if (data.node) {\n setCurrentNode(data.node)\n }\n\n setCurrentNodePos(data.pos)\n },\n [setCurrentNodePos, setCurrentNode],\n )\n\n return {\n currentNode,\n currentNodePos,\n setCurrentNode,\n setCurrentNodePos,\n handleNodeChange,\n }\n}\n"],"names":["useCallback","useState","useData","currentNode","setCurrentNode","currentNodePos","setCurrentNodePos","handleNodeChange","data","node","pos"],"mappings":"AAEA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,QAAO;AAE7C,OAAO,MAAMC,UAAU;IACrB,MAAM,CAACC,aAAaC,eAAe,GAAGH,SAAsB;IAC5D,MAAM,CAACI,gBAAgBC,kBAAkB,GAAGL,SAAiB,CAAC;IAE9D,MAAMM,mBAAmBP,YACvB,CAACQ;QACC,IAAIA,KAAKC,IAAI,EAAE;YACbL,eAAeI,KAAKC,IAAI;QAC1B;QAEAH,kBAAkBE,KAAKE,GAAG;IAC5B,GACA;QAACJ;QAAmBF;KAAe;IAGrC,OAAO;QACLD;QACAE;QACAD;QACAE;QACAC;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/ContentItemMenu/index.tsx"],"sourcesContent":["export * from \"./ContentItemMenu.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,uBAAuB"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/ContentItemMenu/index.tsx"],"sourcesContent":["export * from \"./ContentItemMenu.js\";\n"],"names":[],"mappings":"AAAA,cAAc,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.tsx"],"sourcesContent":["import { BubbleMenu as BaseBubbleMenu, Editor } from \"@tiptap/react\";\r\nimport { ReactNode, useCallback, useState } from \"react\";\r\n\r\nimport { Instagram, Twitter, Youtube } from \"lucide-react\";\r\nimport { LinkEditorPanel, LinkPreviewPanel } from \"../../panels/index.js\";\r\nimport { Surface } from \"../../ui/Surface.js\";\r\nimport { Toolbar } from \"../../ui/Toolbar.js\";\r\nimport { MenuProps } from \"../types.js\";\r\n\r\nexport const LinkMenu = ({ editor, appendTo }: MenuProps): ReactNode => {\r\n const [showEdit, setShowEdit] = useState(false);\r\n\r\n const shouldShow = useCallback(() => {\r\n const isActive = editor.isActive(\"link\");\r\n return isActive;\r\n }, [editor]);\r\n\r\n const shouldShowSocialMedia = useCallback(() => {\r\n const { href: link, target } = editor.getAttributes(\"link\");\r\n const isActive = editor.isActive(\"link\");\r\n return isActive && checkIfMatchesSocialMedia(link);\r\n }, [editor]);\r\n\r\n const { href: link, target } = editor.getAttributes(\"link\");\r\n\r\n const handleEdit = useCallback(() => {\r\n setShowEdit(true);\r\n }, []);\r\n\r\n const onSetLink = useCallback(\r\n (url: string, openInNewTab?: boolean) => {\r\n editor\r\n .chain()\r\n .focus()\r\n .extendMarkRange(\"link\")\r\n .setLink({ href: url, target: openInNewTab ? \"_blank\" : \"\" })\r\n .run();\r\n setShowEdit(false);\r\n },\r\n [editor]\r\n );\r\n\r\n const onUnsetLink = useCallback(() => {\r\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run();\r\n setShowEdit(false);\r\n return null;\r\n }, [editor]);\r\n\r\n const onShowEdit = useCallback(() => {\r\n setShowEdit(true);\r\n }, []);\r\n\r\n const onHideEdit = useCallback(() => {\r\n setShowEdit(false);\r\n }, []);\r\n\r\n return (\r\n <>\r\n <BaseBubbleMenu\r\n editor={editor}\r\n pluginKey=\"textMenu\"\r\n shouldShow={shouldShow}\r\n updateDelay={0}\r\n tippyOptions={{\r\n popperOptions: {\r\n modifiers: [{ name: \"flip\", enabled: false }],\r\n },\r\n appendTo: () => {\r\n return appendTo?.current;\r\n },\r\n onHidden: () => {\r\n setShowEdit(false);\r\n },\r\n }}\r\n >\r\n {showEdit ? (\r\n <LinkEditorPanel\r\n initialUrl={link}\r\n initialOpenInNewTab={target === \"_blank\"}\r\n onSetLink={onSetLink}\r\n />\r\n ) : (\r\n <LinkPreviewPanel\r\n url={link}\r\n onClear={onUnsetLink}\r\n onEdit={handleEdit}\r\n />\r\n )}\r\n </BaseBubbleMenu>\r\n <BaseBubbleMenu\r\n editor={editor}\r\n pluginKey=\"socialMediaTextMenu\"\r\n shouldShow={shouldShowSocialMedia}\r\n updateDelay={0}\r\n tippyOptions={{\r\n popperOptions: {\r\n placement: \"bottom-start\",\r\n },\r\n placement: \"bottom-start\",\r\n appendTo: () => {\r\n return appendTo?.current;\r\n },\r\n onHidden: () => {\r\n setShowEdit(false);\r\n },\r\n }}\r\n >\r\n <Surface className=\"p-2 min-w-[20rem]\">\r\n {checkIfMatch(link, editor)}\r\n </Surface>\r\n </BaseBubbleMenu>\r\n </>\r\n );\r\n};\r\n\r\nexport default LinkMenu;\r\n\r\nconst checkIfMatch = (url: string, editor: Editor) => {\r\n const twitterRegex =\r\n /^https:\\/\\/twitter\\.com\\/([a-zA-Z0-9_-]+)\\/status\\/(\\d+)/g;\r\n const instagramRegex = /^https:\\/\\/www\\.instagram\\.com\\/p\\/([A-Za-z0-9_-]+)/g;\r\n const youtubeRegex =\r\n /^((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|live\\/|v\\/)?)([\\w\\-]+)(\\S+)?/g;\r\n\r\n if (twitterRegex.test(url)) {\r\n return (\r\n <Toolbar.Button\r\n onClick={() => {\r\n editor\r\n .chain()\r\n .selectParentNode()\r\n .deleteSelection()\r\n .insertTwitter(url)\r\n .run();\r\n }}\r\n value=\"continue\"\r\n className=\"gap-2 px-4 w-full flex justify-start\"\r\n >\r\n <Twitter />\r\n Embed Tweet\r\n </Toolbar.Button>\r\n );\r\n } else if (instagramRegex.test(url)) {\r\n return (\r\n <Toolbar.Button\r\n onClick={() => {\r\n editor\r\n .chain()\r\n .selectParentNode()\r\n .deleteSelection()\r\n .insertInstagram(url)\r\n .run();\r\n }}\r\n value=\"continue\"\r\n className=\"gap-2 px-4 w-full flex justify-start\"\r\n >\r\n <Instagram />\r\n Embed Instagram\r\n </Toolbar.Button>\r\n );\r\n } else if (youtubeRegex.test(url)) {\r\n return (\r\n <Toolbar.Button\r\n onClick={() => {\r\n editor\r\n .chain()\r\n .selectParentNode()\r\n .deleteSelection()\r\n .insertYoutube(url)\r\n .run();\r\n }}\r\n value=\"continue\"\r\n className=\"gap-2 px-4 w-full flex justify-start\"\r\n >\r\n <Youtube />\r\n Embed Youtube\r\n </Toolbar.Button>\r\n );\r\n }\r\n return null;\r\n};\r\n\r\nconst checkIfMatchesSocialMedia = (url: string) => {\r\n const twitterRegex =\r\n /^https:\\/\\/twitter\\.com\\/([a-zA-Z0-9_-]+)\\/status\\/(\\d+)/g;\r\n const instagramRegex = /^https:\\/\\/www\\.instagram\\.com\\/p\\/([A-Za-z0-9_-]+)/g;\r\n const youtubeRegex =\r\n /^((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|live\\/|v\\/)?)([\\w\\-]+)(\\S+)?/g;\r\n\r\n if (twitterRegex.test(url)) {\r\n return true;\r\n } else if (instagramRegex.test(url)) {\r\n return true;\r\n } else if (youtubeRegex.test(url)) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n"],"names":["BubbleMenu","BaseBubbleMenu","useCallback","useState","Instagram","Twitter","Youtube","LinkEditorPanel","LinkPreviewPanel","Surface","Toolbar","LinkMenu","editor","appendTo","showEdit","setShowEdit","shouldShow","isActive","shouldShowSocialMedia","href","link","target","getAttributes","checkIfMatchesSocialMedia","handleEdit","onSetLink","url","openInNewTab","chain","focus","extendMarkRange","setLink","run","onUnsetLink","unsetLink","onShowEdit","onHideEdit","pluginKey","updateDelay","tippyOptions","popperOptions","modifiers","name","enabled","current","onHidden","initialUrl","initialOpenInNewTab","onClear","onEdit","placement","className","checkIfMatch","twitterRegex","instagramRegex","youtubeRegex","test","Button","onClick","selectParentNode","deleteSelection","insertTwitter","value","insertInstagram","insertYoutube"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.tsx"],"sourcesContent":["import { BubbleMenu as BaseBubbleMenu, Editor } from \"@tiptap/react\";\nimport { ReactNode, useCallback, useState } from \"react\";\n\nimport { Instagram, Twitter, Youtube } from \"lucide-react\";\nimport { LinkEditorPanel, LinkPreviewPanel } from \"../../panels/index.js\";\nimport { Surface } from \"../../ui/Surface.js\";\nimport { Toolbar } from \"../../ui/Toolbar.js\";\nimport { MenuProps } from \"../types.js\";\n\nexport const LinkMenu = ({ editor, appendTo }: MenuProps): ReactNode => {\n const [showEdit, setShowEdit] = useState(false);\n\n const shouldShow = useCallback(() => {\n const isActive = editor.isActive(\"link\");\n return isActive;\n }, [editor]);\n\n const shouldShowSocialMedia = useCallback(() => {\n const { href: link, target } = editor.getAttributes(\"link\");\n const isActive = editor.isActive(\"link\");\n return isActive && checkIfMatchesSocialMedia(link);\n }, [editor]);\n\n const { href: link, target } = editor.getAttributes(\"link\");\n\n const handleEdit = useCallback(() => {\n setShowEdit(true);\n }, []);\n\n const onSetLink = useCallback(\n (url: string, openInNewTab?: boolean) => {\n editor\n .chain()\n .focus()\n .extendMarkRange(\"link\")\n .setLink({ href: url, target: openInNewTab ? \"_blank\" : \"\" })\n .run();\n setShowEdit(false);\n },\n [editor]\n );\n\n const onUnsetLink = useCallback(() => {\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run();\n setShowEdit(false);\n return null;\n }, [editor]);\n\n const onShowEdit = useCallback(() => {\n setShowEdit(true);\n }, []);\n\n const onHideEdit = useCallback(() => {\n setShowEdit(false);\n }, []);\n\n return (\n <>\n <BaseBubbleMenu\n editor={editor}\n pluginKey=\"textMenu\"\n shouldShow={shouldShow}\n updateDelay={0}\n tippyOptions={{\n popperOptions: {\n modifiers: [{ name: \"flip\", enabled: false }],\n },\n appendTo: () => {\n return appendTo?.current;\n },\n onHidden: () => {\n setShowEdit(false);\n },\n }}\n >\n {showEdit ? (\n <LinkEditorPanel\n initialUrl={link}\n initialOpenInNewTab={target === \"_blank\"}\n onSetLink={onSetLink}\n />\n ) : (\n <LinkPreviewPanel\n url={link}\n onClear={onUnsetLink}\n onEdit={handleEdit}\n />\n )}\n </BaseBubbleMenu>\n <BaseBubbleMenu\n editor={editor}\n pluginKey=\"socialMediaTextMenu\"\n shouldShow={shouldShowSocialMedia}\n updateDelay={0}\n tippyOptions={{\n popperOptions: {\n placement: \"bottom-start\",\n },\n placement: \"bottom-start\",\n appendTo: () => {\n return appendTo?.current;\n },\n onHidden: () => {\n setShowEdit(false);\n },\n }}\n >\n <Surface className=\"p-2 min-w-[20rem]\">\n {checkIfMatch(link, editor)}\n </Surface>\n </BaseBubbleMenu>\n </>\n );\n};\n\nexport default LinkMenu;\n\nconst checkIfMatch = (url: string, editor: Editor) => {\n const twitterRegex =\n /^https:\\/\\/twitter\\.com\\/([a-zA-Z0-9_-]+)\\/status\\/(\\d+)/g;\n const instagramRegex = /^https:\\/\\/www\\.instagram\\.com\\/p\\/([A-Za-z0-9_-]+)/g;\n const youtubeRegex =\n /^((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|live\\/|v\\/)?)([\\w\\-]+)(\\S+)?/g;\n\n if (twitterRegex.test(url)) {\n return (\n <Toolbar.Button\n onClick={() => {\n editor\n .chain()\n .selectParentNode()\n .deleteSelection()\n .insertTwitter(url)\n .run();\n }}\n value=\"continue\"\n className=\"gap-2 px-4 w-full flex justify-start\"\n >\n <Twitter />\n Embed Tweet\n </Toolbar.Button>\n );\n } else if (instagramRegex.test(url)) {\n return (\n <Toolbar.Button\n onClick={() => {\n editor\n .chain()\n .selectParentNode()\n .deleteSelection()\n .insertInstagram(url)\n .run();\n }}\n value=\"continue\"\n className=\"gap-2 px-4 w-full flex justify-start\"\n >\n <Instagram />\n Embed Instagram\n </Toolbar.Button>\n );\n } else if (youtubeRegex.test(url)) {\n return (\n <Toolbar.Button\n onClick={() => {\n editor\n .chain()\n .selectParentNode()\n .deleteSelection()\n .insertYoutube(url)\n .run();\n }}\n value=\"continue\"\n className=\"gap-2 px-4 w-full flex justify-start\"\n >\n <Youtube />\n Embed Youtube\n </Toolbar.Button>\n );\n }\n return null;\n};\n\nconst checkIfMatchesSocialMedia = (url: string) => {\n const twitterRegex =\n /^https:\\/\\/twitter\\.com\\/([a-zA-Z0-9_-]+)\\/status\\/(\\d+)/g;\n const instagramRegex = /^https:\\/\\/www\\.instagram\\.com\\/p\\/([A-Za-z0-9_-]+)/g;\n const youtubeRegex =\n /^((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|live\\/|v\\/)?)([\\w\\-]+)(\\S+)?/g;\n\n if (twitterRegex.test(url)) {\n return true;\n } else if (instagramRegex.test(url)) {\n return true;\n } else if (youtubeRegex.test(url)) {\n return true;\n }\n return false;\n};\n"],"names":["BubbleMenu","BaseBubbleMenu","useCallback","useState","Instagram","Twitter","Youtube","LinkEditorPanel","LinkPreviewPanel","Surface","Toolbar","LinkMenu","editor","appendTo","showEdit","setShowEdit","shouldShow","isActive","shouldShowSocialMedia","href","link","target","getAttributes","checkIfMatchesSocialMedia","handleEdit","onSetLink","url","openInNewTab","chain","focus","extendMarkRange","setLink","run","onUnsetLink","unsetLink","onShowEdit","onHideEdit","pluginKey","updateDelay","tippyOptions","popperOptions","modifiers","name","enabled","current","onHidden","initialUrl","initialOpenInNewTab","onClear","onEdit","placement","className","checkIfMatch","twitterRegex","instagramRegex","youtubeRegex","test","Button","onClick","selectParentNode","deleteSelection","insertTwitter","value","insertInstagram","insertYoutube"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/LinkMenu/index.tsx"],"sourcesContent":["export { LinkMenu } from \"./LinkMenu.js\";\r\n"],"names":["LinkMenu"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/LinkMenu/index.tsx"],"sourcesContent":["export { LinkMenu } from \"./LinkMenu.js\";\n"],"names":["LinkMenu"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/AITextMenu.tsx"],"sourcesContent":["import { BubbleMenu, Editor } from \"@tiptap/react\";\r\nimport {\r\n Sparkles\r\n} from \"lucide-react\";\r\nimport { memo, useState } from \"react\";\r\nimport { AIEditorPanel } from \"../../panels/AIEditorPanel/AIEditorPanel.js\";\r\nimport { ColorPicker } from \"../../panels/index.js\";\r\nimport { Icon } from \"../../ui/Icon.js\";\r\nimport { Toolbar } from \"../../ui/Toolbar.js\";\r\nimport { ContentTypePicker } from \"./components/ContentTypePicker.js\";\r\n// import { FontFamilyPicker } from \"./components/FontFamilyPicker.js\";\r\nimport i18next from \"i18next\";\r\nimport { FontSizePicker } from \"./components/FontSizePicker.js\";\r\nimport { useTextmenuCommands } from \"./hooks/useTextmenuCommands.js\";\r\nimport { useTextmenuContentTypes } from \"./hooks/useTextmenuContentTypes.js\";\r\nimport { useTextmenuStates } from \"./hooks/useTextmenuStates.js\";\r\n\r\n\r\nexport type TextMenuProps = {\r\n editor: Editor;\r\n dir: \"rtl\" | \"ltr\" | \"auto\";\r\n};\r\n\r\nexport const AITextMenu = ({ editor, dir }: TextMenuProps) => {\r\n const commands = useTextmenuCommands(editor);\r\n const states = useTextmenuStates(editor);\r\n const blockOptions = useTextmenuContentTypes(editor);\r\n const [openAi, setOpenAi] = useState(false);\r\n\r\n return (\r\n <BubbleMenu\r\n tippyOptions={{\r\n placement: \"auto\",\r\n popperOptions: {\r\n placement: \"auto\",\r\n },\r\n onHide: () => {\r\n setOpenAi(false);\r\n },\r\n }}\r\n editor={editor}\r\n pluginKey=\"textMenu\"\r\n shouldShow={states.shouldShow}\r\n updateDelay={100}\r\n >\r\n {openAi ? (\r\n <AIEditorPanel\r\n editor={editor}\r\n onOpenChange={(value) => {\r\n setOpenAi(value);\r\n }}\r\n />\r\n ) : (\r\n <Toolbar.Wrapper>\r\n <Toolbar.Button\r\n className=\"text-purple-500 hover:text-purple-600 active:text-purple-600 dark:text-purple-400 dark:hover:text-purple-300 dark:active:text-purple-400\"\r\n activeClassname=\"text-purple-600 hover:text-purple-600 dark:text-purple-400 dark:hover:text-purple-200\"\r\n onClick={() => setOpenAi(true)}\r\n >\r\n <Icon icon={Sparkles} className=\"mr-1\" />\r\n {i18next.t(\"aiTools\") || \"AI Tools\"}\r\n <span className=\"text-xs ml-1 px-2 py-1 bg-purple-100 text-purple-700 rounded-full dark:bg-purple-700 dark:text-purple-100 align-baseline\">\r\n Beta\r\n </span>\r\n </Toolbar.Button>\r\n </Toolbar.Wrapper>\r\n )}\r\n </BubbleMenu>\r\n );\r\n};\r\n"],"names":["BubbleMenu","Sparkles","useState","AIEditorPanel","Icon","Toolbar","i18next","useTextmenuCommands","useTextmenuContentTypes","useTextmenuStates","AITextMenu","editor","dir","commands","states","blockOptions","openAi","setOpenAi","tippyOptions","placement","popperOptions","onHide","pluginKey","shouldShow","updateDelay","onOpenChange","value","Wrapper","Button","className","activeClassname","onClick","icon","t","span"],"mappings":";AAAA,SAASA,UAAU,QAAgB,gBAAgB;AACnD,SACEC,QAAQ,QACH,eAAe;AACtB,SAAeC,QAAQ,QAAQ,QAAQ;AACvC,SAASC,aAAa,QAAQ,8CAA8C;AAE5E,SAASC,IAAI,QAAQ,mBAAmB;AACxC,SAASC,OAAO,QAAQ,sBAAsB;AAE9C,uEAAuE;AACvE,OAAOC,aAAa,UAAU;AAE9B,SAASC,mBAAmB,QAAQ,iCAAiC;AACrE,SAASC,uBAAuB,QAAQ,qCAAqC;AAC7E,SAASC,iBAAiB,QAAQ,+BAA+B;AAQjE,OAAO,MAAMC,aAAa,CAAC,EAAEC,MAAM,EAAEC,GAAG,EAAiB;IACvD,MAAMC,WAAWN,oBAAoBI;IACrC,MAAMG,SAASL,kBAAkBE;IACjC,MAAMI,eAAeP,wBAAwBG;IAC7C,MAAM,CAACK,QAAQC,UAAU,GAAGf,SAAS;IAErC,qBACE,KAACF;QACCkB,cAAc;YACZC,WAAW;YACXC,eAAe;gBACbD,WAAW;YACb;YACAE,QAAQ;gBACNJ,UAAU;YACZ;QACF;QACAN,QAAQA;QACRW,WAAU;QACVC,YAAYT,OAAOS,UAAU;QAC7BC,aAAa;kBAEZR,uBACC,KAACb;YACCQ,QAAQA;YACRc,cAAc,CAACC;gBACbT,UAAUS;YACZ;2BAGF,KAACrB,QAAQsB,OAAO;sBACd,cAAA,MAACtB,QAAQuB,MAAM;gBACbC,WAAU;gBACVC,iBAAgB;gBAChBC,SAAS,IAAMd,UAAU;;kCAEzB,KAACb;wBAAK4B,MAAM/B;wBAAU4B,WAAU;;oBAC/BvB,QAAQ2B,CAAC,CAAC,cAAc;kCACzB,KAACC;wBAAKL,WAAU;kCAA2H;;;;;;AAQvJ,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/AITextMenu.tsx"],"sourcesContent":["import { BubbleMenu, Editor } from \"@tiptap/react\";\nimport {\n Sparkles\n} from \"lucide-react\";\nimport { memo, useState } from \"react\";\nimport { AIEditorPanel } from \"../../panels/AIEditorPanel/AIEditorPanel.js\";\nimport { ColorPicker } from \"../../panels/index.js\";\nimport { Icon } from \"../../ui/Icon.js\";\nimport { Toolbar } from \"../../ui/Toolbar.js\";\nimport { ContentTypePicker } from \"./components/ContentTypePicker.js\";\n// import { FontFamilyPicker } from \"./components/FontFamilyPicker.js\";\nimport i18next from \"i18next\";\nimport { FontSizePicker } from \"./components/FontSizePicker.js\";\nimport { useTextmenuCommands } from \"./hooks/useTextmenuCommands.js\";\nimport { useTextmenuContentTypes } from \"./hooks/useTextmenuContentTypes.js\";\nimport { useTextmenuStates } from \"./hooks/useTextmenuStates.js\";\n\n\nexport type TextMenuProps = {\n editor: Editor;\n dir: \"rtl\" | \"ltr\" | \"auto\";\n};\n\nexport const AITextMenu = ({ editor, dir }: TextMenuProps) => {\n const commands = useTextmenuCommands(editor);\n const states = useTextmenuStates(editor);\n const blockOptions = useTextmenuContentTypes(editor);\n const [openAi, setOpenAi] = useState(false);\n\n return (\n <BubbleMenu\n tippyOptions={{\n placement: \"auto\",\n popperOptions: {\n placement: \"auto\",\n },\n onHide: () => {\n setOpenAi(false);\n },\n }}\n editor={editor}\n pluginKey=\"textMenu\"\n shouldShow={states.shouldShow}\n updateDelay={100}\n >\n {openAi ? (\n <AIEditorPanel\n editor={editor}\n onOpenChange={(value) => {\n setOpenAi(value);\n }}\n />\n ) : (\n <Toolbar.Wrapper>\n <Toolbar.Button\n className=\"text-purple-500 hover:text-purple-600 active:text-purple-600 dark:text-purple-400 dark:hover:text-purple-300 dark:active:text-purple-400\"\n activeClassname=\"text-purple-600 hover:text-purple-600 dark:text-purple-400 dark:hover:text-purple-200\"\n onClick={() => setOpenAi(true)}\n >\n <Icon icon={Sparkles} className=\"mr-1\" />\n {i18next.t(\"aiTools\") || \"AI Tools\"}\n <span className=\"text-xs ml-1 px-2 py-1 bg-purple-100 text-purple-700 rounded-full dark:bg-purple-700 dark:text-purple-100 align-baseline\">\n Beta\n </span>\n </Toolbar.Button>\n </Toolbar.Wrapper>\n )}\n </BubbleMenu>\n );\n};\n"],"names":["BubbleMenu","Sparkles","useState","AIEditorPanel","Icon","Toolbar","i18next","useTextmenuCommands","useTextmenuContentTypes","useTextmenuStates","AITextMenu","editor","dir","commands","states","blockOptions","openAi","setOpenAi","tippyOptions","placement","popperOptions","onHide","pluginKey","shouldShow","updateDelay","onOpenChange","value","Wrapper","Button","className","activeClassname","onClick","icon","t","span"],"mappings":";AAAA,SAASA,UAAU,QAAgB,gBAAgB;AACnD,SACEC,QAAQ,QACH,eAAe;AACtB,SAAeC,QAAQ,QAAQ,QAAQ;AACvC,SAASC,aAAa,QAAQ,8CAA8C;AAE5E,SAASC,IAAI,QAAQ,mBAAmB;AACxC,SAASC,OAAO,QAAQ,sBAAsB;AAE9C,uEAAuE;AACvE,OAAOC,aAAa,UAAU;AAE9B,SAASC,mBAAmB,QAAQ,iCAAiC;AACrE,SAASC,uBAAuB,QAAQ,qCAAqC;AAC7E,SAASC,iBAAiB,QAAQ,+BAA+B;AAQjE,OAAO,MAAMC,aAAa,CAAC,EAAEC,MAAM,EAAEC,GAAG,EAAiB;IACvD,MAAMC,WAAWN,oBAAoBI;IACrC,MAAMG,SAASL,kBAAkBE;IACjC,MAAMI,eAAeP,wBAAwBG;IAC7C,MAAM,CAACK,QAAQC,UAAU,GAAGf,SAAS;IAErC,qBACE,KAACF;QACCkB,cAAc;YACZC,WAAW;YACXC,eAAe;gBACbD,WAAW;YACb;YACAE,QAAQ;gBACNJ,UAAU;YACZ;QACF;QACAN,QAAQA;QACRW,WAAU;QACVC,YAAYT,OAAOS,UAAU;QAC7BC,aAAa;kBAEZR,uBACC,KAACb;YACCQ,QAAQA;YACRc,cAAc,CAACC;gBACbT,UAAUS;YACZ;2BAGF,KAACrB,QAAQsB,OAAO;sBACd,cAAA,MAACtB,QAAQuB,MAAM;gBACbC,WAAU;gBACVC,iBAAgB;gBAChBC,SAAS,IAAMd,UAAU;;kCAEzB,KAACb;wBAAK4B,MAAM/B;wBAAU4B,WAAU;;oBAC/BvB,QAAQ2B,CAAC,CAAC,cAAc;kCACzB,KAACC;wBAAKL,WAAU;kCAA2H;;;;;;AAQvJ,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.tsx"],"sourcesContent":["import * as Popover from \"@radix-ui/react-popover\";\r\nimport { BubbleMenu, Editor } from \"@tiptap/react\";\r\nimport {\r\n AlignCenter,\r\n AlignJustify,\r\n AlignLeft,\r\n AlignRight,\r\n Bold,\r\n Highlighter,\r\n Italic,\r\n MoveVertical,\r\n Palette,\r\n RemoveFormatting,\r\n Sparkles,\r\n Strikethrough,\r\n Subscript,\r\n Superscript,\r\n Underline,\r\n} from \"lucide-react\";\r\nimport { memo, useState } from \"react\";\r\nimport { AIEditorPanel } from \"../../panels/AIEditorPanel/AIEditorPanel.js\";\r\nimport { ColorPicker } from \"../../panels/index.js\";\r\nimport { Icon } from \"../../ui/Icon.js\";\r\nimport { Surface } from \"../../ui/Surface.js\";\r\nimport { Toolbar } from \"../../ui/Toolbar.js\";\r\nimport { ContentTypePicker } from \"./components/ContentTypePicker.js\";\r\nimport { EditLinkPopover } from \"./components/EditLinkPopover.js\";\r\n// import { FontFamilyPicker } from \"./components/FontFamilyPicker.js\";\r\nimport { FontSizePicker } from \"./components/FontSizePicker.js\";\r\nimport { useTextmenuCommands } from \"./hooks/useTextmenuCommands.js\";\r\nimport { useTextmenuContentTypes } from \"./hooks/useTextmenuContentTypes.js\";\r\nimport { useTextmenuStates } from \"./hooks/useTextmenuStates.js\";\r\nimport i18next from \"i18next\";\r\n\r\n// We memorize the button so each button is not rerendered\r\n// on every editor state change\r\nconst MemoButton = memo(Toolbar.Button);\r\nconst MemoColorPicker = memo(ColorPicker);\r\n// const MemoFontFamilyPicker = memo(FontFamilyPicker);\r\nconst MemoFontSizePicker = memo(FontSizePicker);\r\nconst MemoContentTypePicker = memo(ContentTypePicker);\r\n\r\nexport type TextMenuProps = {\r\n editor: Editor;\r\n dir: \"rtl\" | \"ltr\" | \"auto\";\r\n};\r\n\r\nexport const TextMenu = ({ editor, dir }: TextMenuProps) => {\r\n const commands = useTextmenuCommands(editor);\r\n const states = useTextmenuStates(editor);\r\n const blockOptions = useTextmenuContentTypes(editor);\r\n const [openAi, setOpenAi] = useState(false);\r\n\r\n return (\r\n <BubbleMenu\r\n tippyOptions={{\r\n placement: \"auto\",\r\n popperOptions: {\r\n placement: \"auto\",\r\n },\r\n onHide: () => {\r\n setOpenAi(false);\r\n },\r\n }}\r\n editor={editor}\r\n pluginKey=\"textMenu\"\r\n shouldShow={states.shouldShow}\r\n updateDelay={100}\r\n >\r\n {openAi ? (\r\n <AIEditorPanel\r\n editor={editor}\r\n onOpenChange={(value) => {\r\n setOpenAi(value);\r\n }}\r\n />\r\n ) : (\r\n <Toolbar.Wrapper>\r\n <Toolbar.Button\r\n className=\"text-purple-500 hover:text-purple-600 active:text-purple-600 dark:text-purple-400 dark:hover:text-purple-300 dark:active:text-purple-400\"\r\n activeClassname=\"text-purple-600 hover:text-purple-600 dark:text-purple-400 dark:hover:text-purple-200\"\r\n onClick={() => setOpenAi(true)}\r\n >\r\n <Icon icon={Sparkles} className=\"mr-1\" />\r\n {i18next.t(\"aiTools\") || \"AI Tools\"}\r\n\r\n <span className=\"text-xs ml-1 px-2 py-1 bg-purple-100 text-purple-700 rounded-full dark:bg-purple-700 dark:text-purple-100 align-baseline\">\r\n Beta\r\n </span>\r\n </Toolbar.Button>\r\n <Toolbar.Divider />\r\n\r\n <MemoContentTypePicker options={blockOptions} />\r\n {/* <MemoFontFamilyPicker\r\n onChange={commands.onSetFont}\r\n value={states.currentFont || \"\"}\r\n /> */}\r\n {/* <MemoFontSizePicker\r\n onChange={commands.onSetFontSize}\r\n value={states.currentSize || \"\"}\r\n /> */}\r\n <Toolbar.Divider />\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"boldText\") || \"Bold\"}\r\n tooltipShortcut={[\"Mod\", \"B\"]}\r\n onClick={commands.onBold}\r\n active={states.isBold}\r\n >\r\n <Icon icon={Bold} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"italicText\") || \"Italic\"}\r\n tooltipShortcut={[\"Mod\", \"I\"]}\r\n onClick={commands.onItalic}\r\n active={states.isItalic}\r\n >\r\n <Icon icon={Italic} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"underlineText\") || \"Underline\"}\r\n tooltipShortcut={[\"Mod\", \"U\"]}\r\n onClick={commands.onUnderline}\r\n active={states.isUnderline}\r\n >\r\n <Icon icon={Underline} />\r\n </MemoButton>\r\n\r\n <EditLinkPopover onSetLink={commands.onLink} />\r\n {/* <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <MemoButton\r\n type=\"button\"\r\n active={!!states.currentHighlight}\r\n tooltip={i18next.t(\"highlightText\", \"Highlight text\")}\r\n >\r\n <Icon icon={Highlighter} />\r\n </MemoButton>\r\n </Popover.Trigger>\r\n <Popover.Content side=\"top\" sideOffset={8} asChild>\r\n <Surface className=\"p-1\">\r\n <MemoColorPicker\r\n color={states.currentHighlight}\r\n onChange={commands.onChangeHighlight}\r\n onClear={commands.onClearHighlight}\r\n />\r\n </Surface>\r\n </Popover.Content>\r\n </Popover.Root> */}\r\n {/* <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <MemoButton\r\n type=\"button\"\r\n active={!!states.currentColor}\r\n tooltip={i18next.t(\"textColor\") || \"Text color\"}\r\n >\r\n <Icon icon={Palette} />\r\n </MemoButton>\r\n </Popover.Trigger>\r\n <Popover.Content side=\"top\" sideOffset={8} asChild>\r\n <Surface className=\"p-1\">\r\n <MemoColorPicker\r\n color={states.currentColor}\r\n onChange={commands.onChangeColor}\r\n onClear={commands.onClearColor}\r\n />\r\n </Surface>\r\n </Popover.Content>\r\n </Popover.Root> */}\r\n <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <MemoButton type=\"button\" tooltip={i18next.t(\"moreOptions\", \"More options\")}>\r\n <Icon icon={MoveVertical} />\r\n </MemoButton>\r\n </Popover.Trigger>\r\n <Popover.Content side=\"top\" asChild>\r\n <Toolbar.Wrapper>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"subscript\", \"Subscript\")}\r\n tooltipShortcut={[\"Mod\", \".\"]}\r\n onClick={commands.onSubscript}\r\n active={states.isSubscript}\r\n >\r\n <Icon icon={Subscript} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"superscript\", \"Superscript\")}\r\n tooltipShortcut={[\"Mod\", \",\"]}\r\n onClick={commands.onSuperscript}\r\n active={states.isSuperscript}\r\n >\r\n <Icon icon={Superscript} />\r\n </MemoButton>\r\n <Toolbar.Divider />\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"alignLeft\") || \"Align left\"}\r\n tooltipShortcut={[\"Shift\", \"Mod\", \"L\"]}\r\n onClick={commands.onAlignLeft}\r\n active={states.isAlignLeft}\r\n >\r\n <Icon icon={AlignLeft} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"alignCenter\") || \"Align center\"}\r\n tooltipShortcut={[\"Shift\", \"Mod\", \"E\"]}\r\n onClick={commands.onAlignCenter}\r\n active={states.isAlignCenter}\r\n >\r\n <Icon icon={AlignCenter} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"alignRight\", \"Align right\")}\r\n tooltipShortcut={[\"Shift\", \"Mod\", \"R\"]}\r\n onClick={commands.onAlignRight}\r\n active={states.isAlignRight}\r\n >\r\n <Icon icon={AlignRight} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"alignJustify\") || \"Justify\"}\r\n tooltipShortcut={[\"Shift\", \"Mod\", \"J\"]}\r\n onClick={commands.onAlignJustify}\r\n active={states.isAlignJustify}\r\n >\r\n <Icon icon={AlignJustify} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"strikethrough\", \"Strikethrough\")}\r\n tooltipShortcut={[\"Mod\", \"Shift\", \"S\"]}\r\n onClick={commands.onStrike}\r\n active={states.isStrike}\r\n >\r\n <Icon icon={Strikethrough} />\r\n </MemoButton>\r\n\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"clearFormatting\") || \"Clear Formatting\"}\r\n onClick={commands.onClearFormatting}\r\n >\r\n <Icon icon={RemoveFormatting} />\r\n </MemoButton>\r\n </Toolbar.Wrapper>\r\n </Popover.Content>\r\n </Popover.Root>\r\n </Toolbar.Wrapper>\r\n )}\r\n </BubbleMenu>\r\n );\r\n};\r\n"],"names":["Popover","BubbleMenu","AlignCenter","AlignJustify","AlignLeft","AlignRight","Bold","Italic","MoveVertical","RemoveFormatting","Sparkles","Strikethrough","Subscript","Superscript","Underline","memo","useState","AIEditorPanel","ColorPicker","Icon","Toolbar","ContentTypePicker","EditLinkPopover","FontSizePicker","useTextmenuCommands","useTextmenuContentTypes","useTextmenuStates","i18next","MemoButton","Button","MemoColorPicker","MemoFontSizePicker","MemoContentTypePicker","TextMenu","editor","dir","commands","states","blockOptions","openAi","setOpenAi","tippyOptions","placement","popperOptions","onHide","pluginKey","shouldShow","updateDelay","onOpenChange","value","Wrapper","className","activeClassname","onClick","icon","t","span","Divider","options","type","tooltip","tooltipShortcut","onBold","active","isBold","onItalic","isItalic","onUnderline","isUnderline","onSetLink","onLink","Root","Trigger","asChild","Content","side","onSubscript","isSubscript","onSuperscript","isSuperscript","onAlignLeft","isAlignLeft","onAlignCenter","isAlignCenter","onAlignRight","isAlignRight","onAlignJustify","isAlignJustify","onStrike","isStrike","onClearFormatting"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.tsx"],"sourcesContent":["import * as Popover from \"@radix-ui/react-popover\";\nimport { BubbleMenu, Editor } from \"@tiptap/react\";\nimport {\n AlignCenter,\n AlignJustify,\n AlignLeft,\n AlignRight,\n Bold,\n Highlighter,\n Italic,\n MoveVertical,\n Palette,\n RemoveFormatting,\n Sparkles,\n Strikethrough,\n Subscript,\n Superscript,\n Underline,\n} from \"lucide-react\";\nimport { memo, useState } from \"react\";\nimport { AIEditorPanel } from \"../../panels/AIEditorPanel/AIEditorPanel.js\";\nimport { ColorPicker } from \"../../panels/index.js\";\nimport { Icon } from \"../../ui/Icon.js\";\nimport { Surface } from \"../../ui/Surface.js\";\nimport { Toolbar } from \"../../ui/Toolbar.js\";\nimport { ContentTypePicker } from \"./components/ContentTypePicker.js\";\nimport { EditLinkPopover } from \"./components/EditLinkPopover.js\";\n// import { FontFamilyPicker } from \"./components/FontFamilyPicker.js\";\nimport { FontSizePicker } from \"./components/FontSizePicker.js\";\nimport { useTextmenuCommands } from \"./hooks/useTextmenuCommands.js\";\nimport { useTextmenuContentTypes } from \"./hooks/useTextmenuContentTypes.js\";\nimport { useTextmenuStates } from \"./hooks/useTextmenuStates.js\";\nimport i18next from \"i18next\";\n\n// We memorize the button so each button is not rerendered\n// on every editor state change\nconst MemoButton = memo(Toolbar.Button);\nconst MemoColorPicker = memo(ColorPicker);\n// const MemoFontFamilyPicker = memo(FontFamilyPicker);\nconst MemoFontSizePicker = memo(FontSizePicker);\nconst MemoContentTypePicker = memo(ContentTypePicker);\n\nexport type TextMenuProps = {\n editor: Editor;\n dir: \"rtl\" | \"ltr\" | \"auto\";\n};\n\nexport const TextMenu = ({ editor, dir }: TextMenuProps) => {\n const commands = useTextmenuCommands(editor);\n const states = useTextmenuStates(editor);\n const blockOptions = useTextmenuContentTypes(editor);\n const [openAi, setOpenAi] = useState(false);\n\n return (\n <BubbleMenu\n tippyOptions={{\n placement: \"auto\",\n popperOptions: {\n placement: \"auto\",\n },\n onHide: () => {\n setOpenAi(false);\n },\n }}\n editor={editor}\n pluginKey=\"textMenu\"\n shouldShow={states.shouldShow}\n updateDelay={100}\n >\n {openAi ? (\n <AIEditorPanel\n editor={editor}\n onOpenChange={(value) => {\n setOpenAi(value);\n }}\n />\n ) : (\n <Toolbar.Wrapper>\n <Toolbar.Button\n className=\"text-purple-500 hover:text-purple-600 active:text-purple-600 dark:text-purple-400 dark:hover:text-purple-300 dark:active:text-purple-400\"\n activeClassname=\"text-purple-600 hover:text-purple-600 dark:text-purple-400 dark:hover:text-purple-200\"\n onClick={() => setOpenAi(true)}\n >\n <Icon icon={Sparkles} className=\"mr-1\" />\n {i18next.t(\"aiTools\") || \"AI Tools\"}\n\n <span className=\"text-xs ml-1 px-2 py-1 bg-purple-100 text-purple-700 rounded-full dark:bg-purple-700 dark:text-purple-100 align-baseline\">\n Beta\n </span>\n </Toolbar.Button>\n <Toolbar.Divider />\n\n <MemoContentTypePicker options={blockOptions} />\n {/* <MemoFontFamilyPicker\n onChange={commands.onSetFont}\n value={states.currentFont || \"\"}\n /> */}\n {/* <MemoFontSizePicker\n onChange={commands.onSetFontSize}\n value={states.currentSize || \"\"}\n /> */}\n <Toolbar.Divider />\n <MemoButton\n type=\"button\"\n tooltip={i18next.t(\"boldText\") || \"Bold\"}\n tooltipShortcut={[\"Mod\", \"B\"]}\n onClick={commands.onBold}\n active={states.isBold}\n >\n <Icon icon={Bold} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip={i18next.t(\"italicText\") || \"Italic\"}\n tooltipShortcut={[\"Mod\", \"I\"]}\n onClick={commands.onItalic}\n active={states.isItalic}\n >\n <Icon icon={Italic} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip={i18next.t(\"underlineText\") || \"Underline\"}\n tooltipShortcut={[\"Mod\", \"U\"]}\n onClick={commands.onUnderline}\n active={states.isUnderline}\n >\n <Icon icon={Underline} />\n </MemoButton>\n\n <EditLinkPopover onSetLink={commands.onLink} />\n {/* <Popover.Root>\n <Popover.Trigger asChild>\n <MemoButton\n type=\"button\"\n active={!!states.currentHighlight}\n tooltip={i18next.t(\"highlightText\", \"Highlight text\")}\n >\n <Icon icon={Highlighter} />\n </MemoButton>\n </Popover.Trigger>\n <Popover.Content side=\"top\" sideOffset={8} asChild>\n <Surface className=\"p-1\">\n <MemoColorPicker\n color={states.currentHighlight}\n onChange={commands.onChangeHighlight}\n onClear={commands.onClearHighlight}\n />\n </Surface>\n </Popover.Content>\n </Popover.Root> */}\n {/* <Popover.Root>\n <Popover.Trigger asChild>\n <MemoButton\n type=\"button\"\n active={!!states.currentColor}\n tooltip={i18next.t(\"textColor\") || \"Text color\"}\n >\n <Icon icon={Palette} />\n </MemoButton>\n </Popover.Trigger>\n <Popover.Content side=\"top\" sideOffset={8} asChild>\n <Surface className=\"p-1\">\n <MemoColorPicker\n color={states.currentColor}\n onChange={commands.onChangeColor}\n onClear={commands.onClearColor}\n />\n </Surface>\n </Popover.Content>\n </Popover.Root> */}\n <Popover.Root>\n <Popover.Trigger asChild>\n <MemoButton type=\"button\" tooltip={i18next.t(\"moreOptions\", \"More options\")}>\n <Icon icon={MoveVertical} />\n </MemoButton>\n </Popover.Trigger>\n <Popover.Content side=\"top\" asChild>\n <Toolbar.Wrapper>\n <MemoButton\n type=\"button\"\n tooltip={i18next.t(\"subscript\", \"Subscript\")}\n tooltipShortcut={[\"Mod\", \".\"]}\n onClick={commands.onSubscript}\n active={states.isSubscript}\n >\n <Icon icon={Subscript} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip={i18next.t(\"superscript\", \"Superscript\")}\n tooltipShortcut={[\"Mod\", \",\"]}\n onClick={commands.onSuperscript}\n active={states.isSuperscript}\n >\n <Icon icon={Superscript} />\n </MemoButton>\n <Toolbar.Divider />\n <MemoButton\n type=\"button\"\n tooltip={i18next.t(\"alignLeft\") || \"Align left\"}\n tooltipShortcut={[\"Shift\", \"Mod\", \"L\"]}\n onClick={commands.onAlignLeft}\n active={states.isAlignLeft}\n >\n <Icon icon={AlignLeft} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip={i18next.t(\"alignCenter\") || \"Align center\"}\n tooltipShortcut={[\"Shift\", \"Mod\", \"E\"]}\n onClick={commands.onAlignCenter}\n active={states.isAlignCenter}\n >\n <Icon icon={AlignCenter} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip={i18next.t(\"alignRight\", \"Align right\")}\n tooltipShortcut={[\"Shift\", \"Mod\", \"R\"]}\n onClick={commands.onAlignRight}\n active={states.isAlignRight}\n >\n <Icon icon={AlignRight} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip={i18next.t(\"alignJustify\") || \"Justify\"}\n tooltipShortcut={[\"Shift\", \"Mod\", \"J\"]}\n onClick={commands.onAlignJustify}\n active={states.isAlignJustify}\n >\n <Icon icon={AlignJustify} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip={i18next.t(\"strikethrough\", \"Strikethrough\")}\n tooltipShortcut={[\"Mod\", \"Shift\", \"S\"]}\n onClick={commands.onStrike}\n active={states.isStrike}\n >\n <Icon icon={Strikethrough} />\n </MemoButton>\n\n <MemoButton\n type=\"button\"\n tooltip={i18next.t(\"clearFormatting\") || \"Clear Formatting\"}\n onClick={commands.onClearFormatting}\n >\n <Icon icon={RemoveFormatting} />\n </MemoButton>\n </Toolbar.Wrapper>\n </Popover.Content>\n </Popover.Root>\n </Toolbar.Wrapper>\n )}\n </BubbleMenu>\n );\n};\n"],"names":["Popover","BubbleMenu","AlignCenter","AlignJustify","AlignLeft","AlignRight","Bold","Italic","MoveVertical","RemoveFormatting","Sparkles","Strikethrough","Subscript","Superscript","Underline","memo","useState","AIEditorPanel","ColorPicker","Icon","Toolbar","ContentTypePicker","EditLinkPopover","FontSizePicker","useTextmenuCommands","useTextmenuContentTypes","useTextmenuStates","i18next","MemoButton","Button","MemoColorPicker","MemoFontSizePicker","MemoContentTypePicker","TextMenu","editor","dir","commands","states","blockOptions","openAi","setOpenAi","tippyOptions","placement","popperOptions","onHide","pluginKey","shouldShow","updateDelay","onOpenChange","value","Wrapper","className","activeClassname","onClick","icon","t","span","Divider","options","type","tooltip","tooltipShortcut","onBold","active","isBold","onItalic","isItalic","onUnderline","isUnderline","onSetLink","onLink","Root","Trigger","asChild","Content","side","onSubscript","isSubscript","onSuperscript","isSuperscript","onAlignLeft","isAlignLeft","onAlignCenter","isAlignCenter","onAlignRight","isAlignRight","onAlignJustify","isAlignJustify","onStrike","isStrike","onClearFormatting"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.tsx"],"sourcesContent":["import * as Dropdown from \"@radix-ui/react-dropdown-menu\";\r\nimport { ChevronDown, LucideIcon, Pilcrow } from \"lucide-react\";\r\nimport { useMemo } from \"react\";\r\nimport {\r\n DropdownButton,\r\n DropdownCategoryTitle,\r\n} from \"../../../ui/Dropdown/Dropdown.js\";\r\nimport { Icon } from \"../../../ui/Icon.js\";\r\nimport { Surface } from \"../../../ui/Surface.js\";\r\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\r\n\r\nexport type ContentTypePickerOption = {\r\n label: string;\r\n id: string;\r\n type: \"option\";\r\n disabled: () => boolean;\r\n isActive: () => boolean;\r\n onClick: () => void;\r\n icon: LucideIcon;\r\n};\r\n\r\nexport type ContentTypePickerCategory = {\r\n label: string;\r\n id: string;\r\n type: \"category\";\r\n};\r\n\r\nexport type ContentPickerOptions = Array<\r\n ContentTypePickerOption | ContentTypePickerCategory\r\n>;\r\n\r\nexport type ContentTypePickerProps = {\r\n options: ContentPickerOptions;\r\n};\r\n\r\nconst isOption = (\r\n option: ContentTypePickerOption | ContentTypePickerCategory\r\n): option is ContentTypePickerOption => option.type === \"option\";\r\nconst isCategory = (\r\n option: ContentTypePickerOption | ContentTypePickerCategory\r\n): option is ContentTypePickerCategory => option.type === \"category\";\r\n\r\nexport const ContentTypePicker = ({ options }: ContentTypePickerProps) => {\r\n const activeItem = useMemo(\r\n () =>\r\n options.find((option) => option.type === \"option\" && option.isActive()),\r\n [options]\r\n );\r\n\r\n return (\r\n <Dropdown.Root>\r\n <Dropdown.Trigger asChild>\r\n <Toolbar.Button\r\n type=\"button\"\r\n active={activeItem?.id !== \"paragraph\" && !!activeItem?.type}\r\n >\r\n <Icon\r\n icon={(activeItem?.type === \"option\" && activeItem.icon) || Pilcrow}\r\n />\r\n <Icon icon={ChevronDown} className=\"w-2 h-2\" />\r\n </Toolbar.Button>\r\n </Dropdown.Trigger>\r\n <Dropdown.Content asChild>\r\n <Surface className=\"flex flex-col gap-1 px-2 py-4\">\r\n {options.map((option) => {\r\n if (isOption(option)) {\r\n return (\r\n <DropdownButton\r\n key={option.id}\r\n onClick={option.onClick}\r\n isActive={option.isActive()}\r\n >\r\n <Icon icon={option.icon} className=\"w-4 h-4 mr-1\" />\r\n {option.label}\r\n </DropdownButton>\r\n );\r\n } else if (isCategory(option)) {\r\n return (\r\n <div className=\"mt-2 first:mt-0\" key={option.id}>\r\n <DropdownCategoryTitle key={option.id}>\r\n {option.label}\r\n </DropdownCategoryTitle>\r\n </div>\r\n );\r\n }\r\n })}\r\n </Surface>\r\n </Dropdown.Content>\r\n </Dropdown.Root>\r\n );\r\n};\r\n"],"names":["Dropdown","ChevronDown","Pilcrow","useMemo","DropdownButton","DropdownCategoryTitle","Icon","Surface","Toolbar","isOption","option","type","isCategory","ContentTypePicker","options","activeItem","find","isActive","Root","Trigger","asChild","Button","active","id","icon","className","Content","map","onClick","label","div"],"mappings":";AAAA,YAAYA,cAAc,gCAAgC;AAC1D,SAASC,WAAW,EAAcC,OAAO,QAAQ,eAAe;AAChE,SAASC,OAAO,QAAQ,QAAQ;AAChC,SACEC,cAAc,EACdC,qBAAqB,QAChB,mCAAmC;AAC1C,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SAASC,OAAO,QAAQ,yBAAyB;AA0BjD,MAAMC,WAAW,CACfC,SACsCA,OAAOC,IAAI,KAAK;AACxD,MAAMC,aAAa,CACjBF,SACwCA,OAAOC,IAAI,KAAK;AAE1D,OAAO,MAAME,oBAAoB,CAAC,EAAEC,OAAO,EAA0B;IACnE,MAAMC,aAAaZ,QACjB,IACEW,QAAQE,IAAI,CAAC,CAACN,SAAWA,OAAOC,IAAI,KAAK,YAAYD,OAAOO,QAAQ,KACtE;QAACH;KAAQ;IAGX,qBACE,MAACd,SAASkB,IAAI;;0BACZ,KAAClB,SAASmB,OAAO;gBAACC,OAAO;0BACvB,cAAA,MAACZ,QAAQa,MAAM;oBACbV,MAAK;oBACLW,QAAQP,YAAYQ,OAAO,eAAe,CAAC,CAACR,YAAYJ;;sCAExD,KAACL;4BACCkB,MAAM,AAACT,YAAYJ,SAAS,YAAYI,WAAWS,IAAI,IAAKtB;;sCAE9D,KAACI;4BAAKkB,MAAMvB;4BAAawB,WAAU;;;;;0BAGvC,KAACzB,SAAS0B,OAAO;gBAACN,OAAO;0BACvB,cAAA,KAACb;oBAAQkB,WAAU;8BAChBX,QAAQa,GAAG,CAAC,CAACjB;wBACZ,IAAID,SAASC,SAAS;4BACpB,qBACE,MAACN;gCAECwB,SAASlB,OAAOkB,OAAO;gCACvBX,UAAUP,OAAOO,QAAQ;;kDAEzB,KAACX;wCAAKkB,MAAMd,OAAOc,IAAI;wCAAEC,WAAU;;oCAClCf,OAAOmB,KAAK;;+BALRnB,OAAOa,EAAE;wBAQpB,OAAO,IAAIX,WAAWF,SAAS;4BAC7B,qBACE,KAACoB;gCAAIL,WAAU;0CACb,cAAA,KAACpB;8CACEK,OAAOmB,KAAK;mCADanB,OAAOa,EAAE;+BADDb,OAAOa,EAAE;wBAMnD;oBACF;;;;;AAKV,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.tsx"],"sourcesContent":["import * as Dropdown from \"@radix-ui/react-dropdown-menu\";\nimport { ChevronDown, LucideIcon, Pilcrow } from \"lucide-react\";\nimport { useMemo } from \"react\";\nimport {\n DropdownButton,\n DropdownCategoryTitle,\n} from \"../../../ui/Dropdown/Dropdown.js\";\nimport { Icon } from \"../../../ui/Icon.js\";\nimport { Surface } from \"../../../ui/Surface.js\";\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\n\nexport type ContentTypePickerOption = {\n label: string;\n id: string;\n type: \"option\";\n disabled: () => boolean;\n isActive: () => boolean;\n onClick: () => void;\n icon: LucideIcon;\n};\n\nexport type ContentTypePickerCategory = {\n label: string;\n id: string;\n type: \"category\";\n};\n\nexport type ContentPickerOptions = Array<\n ContentTypePickerOption | ContentTypePickerCategory\n>;\n\nexport type ContentTypePickerProps = {\n options: ContentPickerOptions;\n};\n\nconst isOption = (\n option: ContentTypePickerOption | ContentTypePickerCategory\n): option is ContentTypePickerOption => option.type === \"option\";\nconst isCategory = (\n option: ContentTypePickerOption | ContentTypePickerCategory\n): option is ContentTypePickerCategory => option.type === \"category\";\n\nexport const ContentTypePicker = ({ options }: ContentTypePickerProps) => {\n const activeItem = useMemo(\n () =>\n options.find((option) => option.type === \"option\" && option.isActive()),\n [options]\n );\n\n return (\n <Dropdown.Root>\n <Dropdown.Trigger asChild>\n <Toolbar.Button\n type=\"button\"\n active={activeItem?.id !== \"paragraph\" && !!activeItem?.type}\n >\n <Icon\n icon={(activeItem?.type === \"option\" && activeItem.icon) || Pilcrow}\n />\n <Icon icon={ChevronDown} className=\"w-2 h-2\" />\n </Toolbar.Button>\n </Dropdown.Trigger>\n <Dropdown.Content asChild>\n <Surface className=\"flex flex-col gap-1 px-2 py-4\">\n {options.map((option) => {\n if (isOption(option)) {\n return (\n <DropdownButton\n key={option.id}\n onClick={option.onClick}\n isActive={option.isActive()}\n >\n <Icon icon={option.icon} className=\"w-4 h-4 mr-1\" />\n {option.label}\n </DropdownButton>\n );\n } else if (isCategory(option)) {\n return (\n <div className=\"mt-2 first:mt-0\" key={option.id}>\n <DropdownCategoryTitle key={option.id}>\n {option.label}\n </DropdownCategoryTitle>\n </div>\n );\n }\n })}\n </Surface>\n </Dropdown.Content>\n </Dropdown.Root>\n );\n};\n"],"names":["Dropdown","ChevronDown","Pilcrow","useMemo","DropdownButton","DropdownCategoryTitle","Icon","Surface","Toolbar","isOption","option","type","isCategory","ContentTypePicker","options","activeItem","find","isActive","Root","Trigger","asChild","Button","active","id","icon","className","Content","map","onClick","label","div"],"mappings":";AAAA,YAAYA,cAAc,gCAAgC;AAC1D,SAASC,WAAW,EAAcC,OAAO,QAAQ,eAAe;AAChE,SAASC,OAAO,QAAQ,QAAQ;AAChC,SACEC,cAAc,EACdC,qBAAqB,QAChB,mCAAmC;AAC1C,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SAASC,OAAO,QAAQ,yBAAyB;AA0BjD,MAAMC,WAAW,CACfC,SACsCA,OAAOC,IAAI,KAAK;AACxD,MAAMC,aAAa,CACjBF,SACwCA,OAAOC,IAAI,KAAK;AAE1D,OAAO,MAAME,oBAAoB,CAAC,EAAEC,OAAO,EAA0B;IACnE,MAAMC,aAAaZ,QACjB,IACEW,QAAQE,IAAI,CAAC,CAACN,SAAWA,OAAOC,IAAI,KAAK,YAAYD,OAAOO,QAAQ,KACtE;QAACH;KAAQ;IAGX,qBACE,MAACd,SAASkB,IAAI;;0BACZ,KAAClB,SAASmB,OAAO;gBAACC,OAAO;0BACvB,cAAA,MAACZ,QAAQa,MAAM;oBACbV,MAAK;oBACLW,QAAQP,YAAYQ,OAAO,eAAe,CAAC,CAACR,YAAYJ;;sCAExD,KAACL;4BACCkB,MAAM,AAACT,YAAYJ,SAAS,YAAYI,WAAWS,IAAI,IAAKtB;;sCAE9D,KAACI;4BAAKkB,MAAMvB;4BAAawB,WAAU;;;;;0BAGvC,KAACzB,SAAS0B,OAAO;gBAACN,OAAO;0BACvB,cAAA,KAACb;oBAAQkB,WAAU;8BAChBX,QAAQa,GAAG,CAAC,CAACjB;wBACZ,IAAID,SAASC,SAAS;4BACpB,qBACE,MAACN;gCAECwB,SAASlB,OAAOkB,OAAO;gCACvBX,UAAUP,OAAOO,QAAQ;;kDAEzB,KAACX;wCAAKkB,MAAMd,OAAOc,IAAI;wCAAEC,WAAU;;oCAClCf,OAAOmB,KAAK;;+BALRnB,OAAOa,EAAE;wBAQpB,OAAO,IAAIX,WAAWF,SAAS;4BAC7B,qBACE,KAACoB;gCAAIL,WAAU;0CACb,cAAA,KAACpB;8CACEK,OAAOmB,KAAK;mCADanB,OAAOa,EAAE;+BADDb,OAAOa,EAAE;wBAMnD;oBACF;;;;;AAKV,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/EditIframeLinkPopover.tsx"],"sourcesContent":["import * as Popover from \"@radix-ui/react-popover\";\r\nimport { Link } from \"lucide-react\";\r\nimport { IframeLinkEditorPanel } from \"../../../panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js\";\r\nimport { Icon } from \"../../../ui/Icon.js\";\r\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\r\nimport i18next from \"i18next\";\r\n\r\nexport type EditIframeLinkPopoverProps = {\r\n onSetLink: (src: string) => void;\r\n initialSrcLink: string;\r\n};\r\n\r\nexport const EditIframeLinkPopover = ({\r\n onSetLink,\r\n initialSrcLink,\r\n}: EditIframeLinkPopoverProps) => {\r\n return (\r\n <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <Toolbar.Button type=\"button\"\r\n tooltip={i18next.t(\"setEmbedCodeOrLink\") || \"Set Embed Code / Embed Link\"}\r\n >\r\n <Icon icon={Link} />\r\n </Toolbar.Button>\r\n </Popover.Trigger>\r\n <Popover.Content>\r\n <IframeLinkEditorPanel\r\n onSetLink={onSetLink}\r\n initialSrc={initialSrcLink ?? \"\"}\r\n />\r\n </Popover.Content>\r\n </Popover.Root>\r\n );\r\n};\r\n"],"names":["Popover","Link","IframeLinkEditorPanel","Icon","Toolbar","i18next","EditIframeLinkPopover","onSetLink","initialSrcLink","Root","Trigger","asChild","Button","type","tooltip","t","icon","Content","initialSrc"],"mappings":";AAAA,YAAYA,aAAa,0BAA0B;AACnD,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,qBAAqB,QAAQ,iEAAiE;AACvG,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,OAAOC,aAAa,UAAU;AAO9B,OAAO,MAAMC,wBAAwB,CAAC,EACpCC,SAAS,EACTC,cAAc,EACa;IAC3B,qBACE,MAACR,QAAQS,IAAI;;0BACX,KAACT,QAAQU,OAAO;gBAACC,OAAO;0BACtB,cAAA,KAACP,QAAQQ,MAAM;oBAACC,MAAK;oBACnBC,SAAST,QAAQU,CAAC,CAAC,yBAAyB;8BAE5C,cAAA,KAACZ;wBAAKa,MAAMf;;;;0BAGhB,KAACD,QAAQiB,OAAO;0BACd,cAAA,KAACf;oBACCK,WAAWA;oBACXW,YAAYV,kBAAkB;;;;;AAKxC,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/EditIframeLinkPopover.tsx"],"sourcesContent":["import * as Popover from \"@radix-ui/react-popover\";\nimport { Link } from \"lucide-react\";\nimport { IframeLinkEditorPanel } from \"../../../panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js\";\nimport { Icon } from \"../../../ui/Icon.js\";\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\nimport i18next from \"i18next\";\n\nexport type EditIframeLinkPopoverProps = {\n onSetLink: (src: string) => void;\n initialSrcLink: string;\n};\n\nexport const EditIframeLinkPopover = ({\n onSetLink,\n initialSrcLink,\n}: EditIframeLinkPopoverProps) => {\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <Toolbar.Button type=\"button\"\n tooltip={i18next.t(\"setEmbedCodeOrLink\") || \"Set Embed Code / Embed Link\"}\n >\n <Icon icon={Link} />\n </Toolbar.Button>\n </Popover.Trigger>\n <Popover.Content>\n <IframeLinkEditorPanel\n onSetLink={onSetLink}\n initialSrc={initialSrcLink ?? \"\"}\n />\n </Popover.Content>\n </Popover.Root>\n );\n};\n"],"names":["Popover","Link","IframeLinkEditorPanel","Icon","Toolbar","i18next","EditIframeLinkPopover","onSetLink","initialSrcLink","Root","Trigger","asChild","Button","type","tooltip","t","icon","Content","initialSrc"],"mappings":";AAAA,YAAYA,aAAa,0BAA0B;AACnD,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,qBAAqB,QAAQ,iEAAiE;AACvG,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,OAAOC,aAAa,UAAU;AAO9B,OAAO,MAAMC,wBAAwB,CAAC,EACpCC,SAAS,EACTC,cAAc,EACa;IAC3B,qBACE,MAACR,QAAQS,IAAI;;0BACX,KAACT,QAAQU,OAAO;gBAACC,OAAO;0BACtB,cAAA,KAACP,QAAQQ,MAAM;oBAACC,MAAK;oBACnBC,SAAST,QAAQU,CAAC,CAAC,yBAAyB;8BAE5C,cAAA,KAACZ;wBAAKa,MAAMf;;;;0BAGhB,KAACD,QAAQiB,OAAO;0BACd,cAAA,KAACf;oBACCK,WAAWA;oBACXW,YAAYV,kBAAkB;;;;;AAKxC,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/EditLinkPopover.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { Icon } from \"../../../ui/Icon.js\";\r\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\r\nimport * as Popover from \"@radix-ui/react-popover\";\r\nimport { LinkEditorPanel } from \"../../../panels/index.js\";\r\nimport { Link } from \"lucide-react\";\r\nimport i18next from \"i18next\";\r\n\r\nexport type EditLinkPopoverProps = {\r\n onSetLink: (link: string, openInNewTab?: boolean) => void;\r\n};\r\n\r\nexport const EditLinkPopover = ({ onSetLink }: EditLinkPopoverProps) => {\r\n return (\r\n <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <Toolbar.Button type=\"button\"\r\n tooltip={i18next.t(\"setLink\") || \"Set Link\"}\r\n >\r\n <Icon icon={Link} />\r\n </Toolbar.Button>\r\n </Popover.Trigger>\r\n <Popover.Content>\r\n <LinkEditorPanel onSetLink={onSetLink} />\r\n </Popover.Content>\r\n </Popover.Root>\r\n );\r\n};\r\n"],"names":["React","Icon","Toolbar","Popover","LinkEditorPanel","Link","i18next","EditLinkPopover","onSetLink","Root","Trigger","asChild","Button","type","tooltip","t","icon","Content"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,YAAYC,aAAa,0BAA0B;AACnD,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,IAAI,QAAQ,eAAe;AACpC,OAAOC,aAAa,UAAU;AAM9B,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,SAAS,EAAwB;IACjE,qBACE,MAACL,QAAQM,IAAI;;0BACX,KAACN,QAAQO,OAAO;gBAACC,OAAO;0BACtB,cAAA,KAACT,QAAQU,MAAM;oBAACC,MAAK;oBACnBC,SAASR,QAAQS,CAAC,CAAC,cAAc;8BAEjC,cAAA,KAACd;wBAAKe,MAAMX;;;;0BAGhB,KAACF,QAAQc,OAAO;0BACd,cAAA,KAACb;oBAAgBI,WAAWA;;;;;AAIpC,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/EditLinkPopover.tsx"],"sourcesContent":["import React from \"react\";\nimport { Icon } from \"../../../ui/Icon.js\";\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport { LinkEditorPanel } from \"../../../panels/index.js\";\nimport { Link } from \"lucide-react\";\nimport i18next from \"i18next\";\n\nexport type EditLinkPopoverProps = {\n onSetLink: (link: string, openInNewTab?: boolean) => void;\n};\n\nexport const EditLinkPopover = ({ onSetLink }: EditLinkPopoverProps) => {\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <Toolbar.Button type=\"button\"\n tooltip={i18next.t(\"setLink\") || \"Set Link\"}\n >\n <Icon icon={Link} />\n </Toolbar.Button>\n </Popover.Trigger>\n <Popover.Content>\n <LinkEditorPanel onSetLink={onSetLink} />\n </Popover.Content>\n </Popover.Root>\n );\n};\n"],"names":["React","Icon","Toolbar","Popover","LinkEditorPanel","Link","i18next","EditLinkPopover","onSetLink","Root","Trigger","asChild","Button","type","tooltip","t","icon","Content"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,YAAYC,aAAa,0BAA0B;AACnD,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,IAAI,QAAQ,eAAe;AACpC,OAAOC,aAAa,UAAU;AAM9B,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,SAAS,EAAwB;IACjE,qBACE,MAACL,QAAQM,IAAI;;0BACX,KAACN,QAAQO,OAAO;gBAACC,OAAO;0BACtB,cAAA,KAACT,QAAQU,MAAM;oBAACC,MAAK;oBACnBC,SAASR,QAAQS,CAAC,CAAC,cAAc;8BAEjC,cAAA,KAACd;wBAAKe,MAAMX;;;;0BAGhB,KAACF,QAAQc,OAAO;0BACd,cAAA,KAACb;oBAAgBI,WAAWA;;;;;AAIpC,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.tsx"],"sourcesContent":["import * as Dropdown from \"@radix-ui/react-dropdown-menu\";\r\nimport { ChevronDown } from \"lucide-react\";\r\nimport { useCallback } from \"react\";\r\nimport {\r\n DropdownButton,\r\n DropdownCategoryTitle,\r\n} from \"../../../ui/Dropdown/Dropdown.js\";\r\nimport { Icon } from \"../../../ui/Icon.js\";\r\nimport { Surface } from \"../../../ui/Surface.js\";\r\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\r\n\r\nconst FONT_FAMILY_GROUPS = [\r\n {\r\n label: \"Sans Serif\",\r\n options: [\r\n { label: \"Inter\", value: \"\" },\r\n { label: \"Arial\", value: \"Arial\" },\r\n { label: \"Helvetica\", value: \"Helvetica\" },\r\n ],\r\n },\r\n {\r\n label: \"Serif\",\r\n options: [\r\n { label: \"Times New Roman\", value: \"Times\" },\r\n { label: \"Garamond\", value: \"Garamond\" },\r\n { label: \"Georgia\", value: \"Georgia\" },\r\n ],\r\n },\r\n {\r\n label: \"Monospace\",\r\n options: [\r\n { label: \"Courier\", value: \"Courier\" },\r\n { label: \"Courier New\", value: \"Courier New\" },\r\n ],\r\n },\r\n];\r\n\r\nconst FONT_FAMILIES = FONT_FAMILY_GROUPS.flatMap((group) => [\r\n group.options,\r\n]).flat();\r\n\r\nexport type FontFamilyPickerProps = {\r\n onChange: (value: string) => void; // eslint-disable-line no-unused-vars\r\n value: string;\r\n};\r\n\r\nexport const FontFamilyPicker = ({\r\n onChange,\r\n value,\r\n}: FontFamilyPickerProps) => {\r\n const currentValue = FONT_FAMILIES.find((size) => size.value === value);\r\n const currentFontLabel = currentValue?.label.split(\" \")[0] || \"Inter\";\r\n\r\n const selectFont = useCallback(\r\n (font: string) => () => onChange(font),\r\n [onChange]\r\n );\r\n\r\n return (\r\n <Dropdown.Root>\r\n <Dropdown.Trigger asChild>\r\n <Toolbar.Button type=\"button\" active={!!currentValue?.value}>\r\n {currentFontLabel}\r\n <Icon icon={ChevronDown} className=\"w-2 h-2\" />\r\n </Toolbar.Button>\r\n </Dropdown.Trigger>\r\n <Dropdown.Content asChild>\r\n <Surface className=\"flex flex-col gap-1 px-2 py-4\">\r\n {FONT_FAMILY_GROUPS.map((group) => (\r\n <div\r\n className=\"mt-2.5 first:mt-0 gap-0.5 flex flex-col\"\r\n key={group.label}\r\n >\r\n <DropdownCategoryTitle>{group.label}</DropdownCategoryTitle>\r\n {group.options.map((font) => (\r\n <DropdownButton\r\n isActive={value === font.value}\r\n onClick={selectFont(font.value)}\r\n key={`${font.label}_${font.value}`}\r\n >\r\n <span style={{ fontFamily: font.value }}>{font.label}</span>\r\n </DropdownButton>\r\n ))}\r\n </div>\r\n ))}\r\n </Surface>\r\n </Dropdown.Content>\r\n </Dropdown.Root>\r\n );\r\n};\r\n"],"names":["Dropdown","ChevronDown","useCallback","DropdownButton","DropdownCategoryTitle","Icon","Surface","Toolbar","FONT_FAMILY_GROUPS","label","options","value","FONT_FAMILIES","flatMap","group","flat","FontFamilyPicker","onChange","currentValue","find","size","currentFontLabel","split","selectFont","font","Root","Trigger","asChild","Button","type","active","icon","className","Content","map","div","isActive","onClick","span","style","fontFamily"],"mappings":";AAAA,YAAYA,cAAc,gCAAgC;AAC1D,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,WAAW,QAAQ,QAAQ;AACpC,SACEC,cAAc,EACdC,qBAAqB,QAChB,mCAAmC;AAC1C,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SAASC,OAAO,QAAQ,yBAAyB;AAEjD,MAAMC,qBAAqB;IACzB;QACEC,OAAO;QACPC,SAAS;YACP;gBAAED,OAAO;gBAASE,OAAO;YAAG;YAC5B;gBAAEF,OAAO;gBAASE,OAAO;YAAQ;YACjC;gBAAEF,OAAO;gBAAaE,OAAO;YAAY;SAC1C;IACH;IACA;QACEF,OAAO;QACPC,SAAS;YACP;gBAAED,OAAO;gBAAmBE,OAAO;YAAQ;YAC3C;gBAAEF,OAAO;gBAAYE,OAAO;YAAW;YACvC;gBAAEF,OAAO;gBAAWE,OAAO;YAAU;SACtC;IACH;IACA;QACEF,OAAO;QACPC,SAAS;YACP;gBAAED,OAAO;gBAAWE,OAAO;YAAU;YACrC;gBAAEF,OAAO;gBAAeE,OAAO;YAAc;SAC9C;IACH;CACD;AAED,MAAMC,gBAAgBJ,mBAAmBK,OAAO,CAAC,CAACC,QAAU;QAC1DA,MAAMJ,OAAO;KACd,EAAEK,IAAI;AAOP,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,QAAQ,EACRN,KAAK,EACiB;IACtB,MAAMO,eAAeN,cAAcO,IAAI,CAAC,CAACC,OAASA,KAAKT,KAAK,KAAKA;IACjE,MAAMU,mBAAmBH,cAAcT,MAAMa,MAAM,IAAI,CAAC,EAAE,IAAI;IAE9D,MAAMC,aAAarB,YACjB,CAACsB,OAAiB,IAAMP,SAASO,OACjC;QAACP;KAAS;IAGZ,qBACE,MAACjB,SAASyB,IAAI;;0BACZ,KAACzB,SAAS0B,OAAO;gBAACC,OAAO;0BACvB,cAAA,MAACpB,QAAQqB,MAAM;oBAACC,MAAK;oBAASC,QAAQ,CAAC,CAACZ,cAAcP;;wBACnDU;sCACD,KAAChB;4BAAK0B,MAAM9B;4BAAa+B,WAAU;;;;;0BAGvC,KAAChC,SAASiC,OAAO;gBAACN,OAAO;0BACvB,cAAA,KAACrB;oBAAQ0B,WAAU;8BAChBxB,mBAAmB0B,GAAG,CAAC,CAACpB,sBACvB,MAACqB;4BACCH,WAAU;;8CAGV,KAAC5B;8CAAuBU,MAAML,KAAK;;gCAClCK,MAAMJ,OAAO,CAACwB,GAAG,CAAC,CAACV,qBAClB,KAACrB;wCACCiC,UAAUzB,UAAUa,KAAKb,KAAK;wCAC9B0B,SAASd,WAAWC,KAAKb,KAAK;kDAG9B,cAAA,KAAC2B;4CAAKC,OAAO;gDAAEC,YAAYhB,KAAKb,KAAK;4CAAC;sDAAIa,KAAKf,KAAK;;uCAF/C,CAAC,EAAEe,KAAKf,KAAK,CAAC,CAAC,EAAEe,KAAKb,KAAK,CAAC,CAAC;;2BAPjCG,MAAML,KAAK;;;;;AAkB9B,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.tsx"],"sourcesContent":["import * as Dropdown from \"@radix-ui/react-dropdown-menu\";\nimport { ChevronDown } from \"lucide-react\";\nimport { useCallback } from \"react\";\nimport {\n DropdownButton,\n DropdownCategoryTitle,\n} from \"../../../ui/Dropdown/Dropdown.js\";\nimport { Icon } from \"../../../ui/Icon.js\";\nimport { Surface } from \"../../../ui/Surface.js\";\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\n\nconst FONT_FAMILY_GROUPS = [\n {\n label: \"Sans Serif\",\n options: [\n { label: \"Inter\", value: \"\" },\n { label: \"Arial\", value: \"Arial\" },\n { label: \"Helvetica\", value: \"Helvetica\" },\n ],\n },\n {\n label: \"Serif\",\n options: [\n { label: \"Times New Roman\", value: \"Times\" },\n { label: \"Garamond\", value: \"Garamond\" },\n { label: \"Georgia\", value: \"Georgia\" },\n ],\n },\n {\n label: \"Monospace\",\n options: [\n { label: \"Courier\", value: \"Courier\" },\n { label: \"Courier New\", value: \"Courier New\" },\n ],\n },\n];\n\nconst FONT_FAMILIES = FONT_FAMILY_GROUPS.flatMap((group) => [\n group.options,\n]).flat();\n\nexport type FontFamilyPickerProps = {\n onChange: (value: string) => void; // eslint-disable-line no-unused-vars\n value: string;\n};\n\nexport const FontFamilyPicker = ({\n onChange,\n value,\n}: FontFamilyPickerProps) => {\n const currentValue = FONT_FAMILIES.find((size) => size.value === value);\n const currentFontLabel = currentValue?.label.split(\" \")[0] || \"Inter\";\n\n const selectFont = useCallback(\n (font: string) => () => onChange(font),\n [onChange]\n );\n\n return (\n <Dropdown.Root>\n <Dropdown.Trigger asChild>\n <Toolbar.Button type=\"button\" active={!!currentValue?.value}>\n {currentFontLabel}\n <Icon icon={ChevronDown} className=\"w-2 h-2\" />\n </Toolbar.Button>\n </Dropdown.Trigger>\n <Dropdown.Content asChild>\n <Surface className=\"flex flex-col gap-1 px-2 py-4\">\n {FONT_FAMILY_GROUPS.map((group) => (\n <div\n className=\"mt-2.5 first:mt-0 gap-0.5 flex flex-col\"\n key={group.label}\n >\n <DropdownCategoryTitle>{group.label}</DropdownCategoryTitle>\n {group.options.map((font) => (\n <DropdownButton\n isActive={value === font.value}\n onClick={selectFont(font.value)}\n key={`${font.label}_${font.value}`}\n >\n <span style={{ fontFamily: font.value }}>{font.label}</span>\n </DropdownButton>\n ))}\n </div>\n ))}\n </Surface>\n </Dropdown.Content>\n </Dropdown.Root>\n );\n};\n"],"names":["Dropdown","ChevronDown","useCallback","DropdownButton","DropdownCategoryTitle","Icon","Surface","Toolbar","FONT_FAMILY_GROUPS","label","options","value","FONT_FAMILIES","flatMap","group","flat","FontFamilyPicker","onChange","currentValue","find","size","currentFontLabel","split","selectFont","font","Root","Trigger","asChild","Button","type","active","icon","className","Content","map","div","isActive","onClick","span","style","fontFamily"],"mappings":";AAAA,YAAYA,cAAc,gCAAgC;AAC1D,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,WAAW,QAAQ,QAAQ;AACpC,SACEC,cAAc,EACdC,qBAAqB,QAChB,mCAAmC;AAC1C,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SAASC,OAAO,QAAQ,yBAAyB;AAEjD,MAAMC,qBAAqB;IACzB;QACEC,OAAO;QACPC,SAAS;YACP;gBAAED,OAAO;gBAASE,OAAO;YAAG;YAC5B;gBAAEF,OAAO;gBAASE,OAAO;YAAQ;YACjC;gBAAEF,OAAO;gBAAaE,OAAO;YAAY;SAC1C;IACH;IACA;QACEF,OAAO;QACPC,SAAS;YACP;gBAAED,OAAO;gBAAmBE,OAAO;YAAQ;YAC3C;gBAAEF,OAAO;gBAAYE,OAAO;YAAW;YACvC;gBAAEF,OAAO;gBAAWE,OAAO;YAAU;SACtC;IACH;IACA;QACEF,OAAO;QACPC,SAAS;YACP;gBAAED,OAAO;gBAAWE,OAAO;YAAU;YACrC;gBAAEF,OAAO;gBAAeE,OAAO;YAAc;SAC9C;IACH;CACD;AAED,MAAMC,gBAAgBJ,mBAAmBK,OAAO,CAAC,CAACC,QAAU;QAC1DA,MAAMJ,OAAO;KACd,EAAEK,IAAI;AAOP,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,QAAQ,EACRN,KAAK,EACiB;IACtB,MAAMO,eAAeN,cAAcO,IAAI,CAAC,CAACC,OAASA,KAAKT,KAAK,KAAKA;IACjE,MAAMU,mBAAmBH,cAAcT,MAAMa,MAAM,IAAI,CAAC,EAAE,IAAI;IAE9D,MAAMC,aAAarB,YACjB,CAACsB,OAAiB,IAAMP,SAASO,OACjC;QAACP;KAAS;IAGZ,qBACE,MAACjB,SAASyB,IAAI;;0BACZ,KAACzB,SAAS0B,OAAO;gBAACC,OAAO;0BACvB,cAAA,MAACpB,QAAQqB,MAAM;oBAACC,MAAK;oBAASC,QAAQ,CAAC,CAACZ,cAAcP;;wBACnDU;sCACD,KAAChB;4BAAK0B,MAAM9B;4BAAa+B,WAAU;;;;;0BAGvC,KAAChC,SAASiC,OAAO;gBAACN,OAAO;0BACvB,cAAA,KAACrB;oBAAQ0B,WAAU;8BAChBxB,mBAAmB0B,GAAG,CAAC,CAACpB,sBACvB,MAACqB;4BACCH,WAAU;;8CAGV,KAAC5B;8CAAuBU,MAAML,KAAK;;gCAClCK,MAAMJ,OAAO,CAACwB,GAAG,CAAC,CAACV,qBAClB,KAACrB;wCACCiC,UAAUzB,UAAUa,KAAKb,KAAK;wCAC9B0B,SAASd,WAAWC,KAAKb,KAAK;kDAG9B,cAAA,KAAC2B;4CAAKC,OAAO;gDAAEC,YAAYhB,KAAKb,KAAK;4CAAC;sDAAIa,KAAKf,KAAK;;uCAF/C,GAAGe,KAAKf,KAAK,CAAC,CAAC,EAAEe,KAAKb,KAAK,EAAE;;2BAPjCG,MAAML,KAAK;;;;;AAkB9B,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.tsx"],"sourcesContent":["import * as Dropdown from \"@radix-ui/react-dropdown-menu\";\r\nimport { ChevronDown } from \"lucide-react\";\r\nimport { useCallback, useMemo } from \"react\";\r\nimport { DropdownButton } from \"../../../ui/Dropdown/Dropdown.js\";\r\nimport { Icon } from \"../../../ui/Icon.js\";\r\nimport { Surface } from \"../../../ui/Surface.js\";\r\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\r\nimport i18next from \"i18next\";\r\n\r\nexport type FontSizePickerProps = {\r\n onChange: (value: string) => void; // eslint-disable-line no-unused-vars\r\n value: string;\r\n};\r\n\r\nexport const FontSizePicker = ({ onChange, value }: FontSizePickerProps) => {\r\n const FONT_SIZES = useMemo(\r\n () => [\r\n { label: i18next.t(\"smaller\") || \"Smaller\", value: \"12px\" },\r\n { label: i18next.t(\"small\") || \"Small\", value: \"14px\" },\r\n { label: i18next.t(\"medium\") || \"Medium\", value: \"\" },\r\n { label: i18next.t(\"large\") || \"Large\", value: \"18px\" },\r\n { label: i18next.t(\"extraLart\") || \"Extra Large\", value: \"24px\" },\r\n ],\r\n []\r\n );\r\n const currentValue = FONT_SIZES.find((size) => size.value === value);\r\n const currentSizeLabel = currentValue?.label.split(\" \")[0] || \"Medium\";\r\n\r\n const selectSize = useCallback(\r\n (size: string) => () => onChange(size),\r\n [onChange]\r\n );\r\n\r\n return (\r\n <Dropdown.Root>\r\n <Dropdown.Trigger asChild>\r\n <Toolbar.Button type=\"button\" active={!!currentValue?.value}>\r\n {currentSizeLabel}\r\n <Icon icon={ChevronDown} className=\"w-2 h-2\" />\r\n </Toolbar.Button>\r\n </Dropdown.Trigger>\r\n <Dropdown.Content asChild>\r\n <Surface className=\"flex flex-col gap-1 px-2 py-4\">\r\n {FONT_SIZES.map((size) => (\r\n <DropdownButton\r\n isActive={value === size.value}\r\n onClick={selectSize(size.value)}\r\n key={`${size.label}_${size.value}`}\r\n >\r\n <span style={{ fontSize: size.value }}>{size.label}</span>\r\n </DropdownButton>\r\n ))}\r\n </Surface>\r\n </Dropdown.Content>\r\n </Dropdown.Root>\r\n );\r\n};\r\n"],"names":["Dropdown","ChevronDown","useCallback","useMemo","DropdownButton","Icon","Surface","Toolbar","i18next","FontSizePicker","onChange","value","FONT_SIZES","label","t","currentValue","find","size","currentSizeLabel","split","selectSize","Root","Trigger","asChild","Button","type","active","icon","className","Content","map","isActive","onClick","span","style","fontSize"],"mappings":";AAAA,YAAYA,cAAc,gCAAgC;AAC1D,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,WAAW,EAAEC,OAAO,QAAQ,QAAQ;AAC7C,SAASC,cAAc,QAAQ,mCAAmC;AAClE,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SAASC,OAAO,QAAQ,yBAAyB;AACjD,OAAOC,aAAa,UAAU;AAO9B,OAAO,MAAMC,iBAAiB,CAAC,EAAEC,QAAQ,EAAEC,KAAK,EAAuB;IACrE,MAAMC,aAAaT,QACjB,IAAM;YACJ;gBAAEU,OAAOL,QAAQM,CAAC,CAAC,cAAc;gBAAWH,OAAO;YAAO;YAC1D;gBAAEE,OAAOL,QAAQM,CAAC,CAAC,YAAY;gBAASH,OAAO;YAAO;YACtD;gBAAEE,OAAOL,QAAQM,CAAC,CAAC,aAAa;gBAAUH,OAAO;YAAG;YACpD;gBAAEE,OAAOL,QAAQM,CAAC,CAAC,YAAY;gBAASH,OAAO;YAAO;YACtD;gBAAEE,OAAOL,QAAQM,CAAC,CAAC,gBAAgB;gBAAeH,OAAO;YAAO;SACjE,EACD,EAAE;IAEJ,MAAMI,eAAeH,WAAWI,IAAI,CAAC,CAACC,OAASA,KAAKN,KAAK,KAAKA;IAC9D,MAAMO,mBAAmBH,cAAcF,MAAMM,MAAM,IAAI,CAAC,EAAE,IAAI;IAE9D,MAAMC,aAAalB,YACjB,CAACe,OAAiB,IAAMP,SAASO,OACjC;QAACP;KAAS;IAGZ,qBACE,MAACV,SAASqB,IAAI;;0BACZ,KAACrB,SAASsB,OAAO;gBAACC,OAAO;0BACvB,cAAA,MAAChB,QAAQiB,MAAM;oBAACC,MAAK;oBAASC,QAAQ,CAAC,CAACX,cAAcJ;;wBACnDO;sCACD,KAACb;4BAAKsB,MAAM1B;4BAAa2B,WAAU;;;;;0BAGvC,KAAC5B,SAAS6B,OAAO;gBAACN,OAAO;0BACvB,cAAA,KAACjB;oBAAQsB,WAAU;8BAChBhB,WAAWkB,GAAG,CAAC,CAACb,qBACf,KAACb;4BACC2B,UAAUpB,UAAUM,KAAKN,KAAK;4BAC9BqB,SAASZ,WAAWH,KAAKN,KAAK;sCAG9B,cAAA,KAACsB;gCAAKC,OAAO;oCAAEC,UAAUlB,KAAKN,KAAK;gCAAC;0CAAIM,KAAKJ,KAAK;;2BAF7C,CAAC,EAAEI,KAAKJ,KAAK,CAAC,CAAC,EAAEI,KAAKN,KAAK,CAAC,CAAC;;;;;AAShD,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.tsx"],"sourcesContent":["import * as Dropdown from \"@radix-ui/react-dropdown-menu\";\nimport { ChevronDown } from \"lucide-react\";\nimport { useCallback, useMemo } from \"react\";\nimport { DropdownButton } from \"../../../ui/Dropdown/Dropdown.js\";\nimport { Icon } from \"../../../ui/Icon.js\";\nimport { Surface } from \"../../../ui/Surface.js\";\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\nimport i18next from \"i18next\";\n\nexport type FontSizePickerProps = {\n onChange: (value: string) => void; // eslint-disable-line no-unused-vars\n value: string;\n};\n\nexport const FontSizePicker = ({ onChange, value }: FontSizePickerProps) => {\n const FONT_SIZES = useMemo(\n () => [\n { label: i18next.t(\"smaller\") || \"Smaller\", value: \"12px\" },\n { label: i18next.t(\"small\") || \"Small\", value: \"14px\" },\n { label: i18next.t(\"medium\") || \"Medium\", value: \"\" },\n { label: i18next.t(\"large\") || \"Large\", value: \"18px\" },\n { label: i18next.t(\"extraLart\") || \"Extra Large\", value: \"24px\" },\n ],\n []\n );\n const currentValue = FONT_SIZES.find((size) => size.value === value);\n const currentSizeLabel = currentValue?.label.split(\" \")[0] || \"Medium\";\n\n const selectSize = useCallback(\n (size: string) => () => onChange(size),\n [onChange]\n );\n\n return (\n <Dropdown.Root>\n <Dropdown.Trigger asChild>\n <Toolbar.Button type=\"button\" active={!!currentValue?.value}>\n {currentSizeLabel}\n <Icon icon={ChevronDown} className=\"w-2 h-2\" />\n </Toolbar.Button>\n </Dropdown.Trigger>\n <Dropdown.Content asChild>\n <Surface className=\"flex flex-col gap-1 px-2 py-4\">\n {FONT_SIZES.map((size) => (\n <DropdownButton\n isActive={value === size.value}\n onClick={selectSize(size.value)}\n key={`${size.label}_${size.value}`}\n >\n <span style={{ fontSize: size.value }}>{size.label}</span>\n </DropdownButton>\n ))}\n </Surface>\n </Dropdown.Content>\n </Dropdown.Root>\n );\n};\n"],"names":["Dropdown","ChevronDown","useCallback","useMemo","DropdownButton","Icon","Surface","Toolbar","i18next","FontSizePicker","onChange","value","FONT_SIZES","label","t","currentValue","find","size","currentSizeLabel","split","selectSize","Root","Trigger","asChild","Button","type","active","icon","className","Content","map","isActive","onClick","span","style","fontSize"],"mappings":";AAAA,YAAYA,cAAc,gCAAgC;AAC1D,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,WAAW,EAAEC,OAAO,QAAQ,QAAQ;AAC7C,SAASC,cAAc,QAAQ,mCAAmC;AAClE,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,SAASC,OAAO,QAAQ,yBAAyB;AACjD,OAAOC,aAAa,UAAU;AAO9B,OAAO,MAAMC,iBAAiB,CAAC,EAAEC,QAAQ,EAAEC,KAAK,EAAuB;IACrE,MAAMC,aAAaT,QACjB,IAAM;YACJ;gBAAEU,OAAOL,QAAQM,CAAC,CAAC,cAAc;gBAAWH,OAAO;YAAO;YAC1D;gBAAEE,OAAOL,QAAQM,CAAC,CAAC,YAAY;gBAASH,OAAO;YAAO;YACtD;gBAAEE,OAAOL,QAAQM,CAAC,CAAC,aAAa;gBAAUH,OAAO;YAAG;YACpD;gBAAEE,OAAOL,QAAQM,CAAC,CAAC,YAAY;gBAASH,OAAO;YAAO;YACtD;gBAAEE,OAAOL,QAAQM,CAAC,CAAC,gBAAgB;gBAAeH,OAAO;YAAO;SACjE,EACD,EAAE;IAEJ,MAAMI,eAAeH,WAAWI,IAAI,CAAC,CAACC,OAASA,KAAKN,KAAK,KAAKA;IAC9D,MAAMO,mBAAmBH,cAAcF,MAAMM,MAAM,IAAI,CAAC,EAAE,IAAI;IAE9D,MAAMC,aAAalB,YACjB,CAACe,OAAiB,IAAMP,SAASO,OACjC;QAACP;KAAS;IAGZ,qBACE,MAACV,SAASqB,IAAI;;0BACZ,KAACrB,SAASsB,OAAO;gBAACC,OAAO;0BACvB,cAAA,MAAChB,QAAQiB,MAAM;oBAACC,MAAK;oBAASC,QAAQ,CAAC,CAACX,cAAcJ;;wBACnDO;sCACD,KAACb;4BAAKsB,MAAM1B;4BAAa2B,WAAU;;;;;0BAGvC,KAAC5B,SAAS6B,OAAO;gBAACN,OAAO;0BACvB,cAAA,KAACjB;oBAAQsB,WAAU;8BAChBhB,WAAWkB,GAAG,CAAC,CAACb,qBACf,KAACb;4BACC2B,UAAUpB,UAAUM,KAAKN,KAAK;4BAC9BqB,SAASZ,WAAWH,KAAKN,KAAK;sCAG9B,cAAA,KAACsB;gCAAKC,OAAO;oCAAEC,UAAUlB,KAAKN,KAAK;gCAAC;0CAAIM,KAAKJ,KAAK;;2BAF7C,GAAGI,KAAKJ,KAAK,CAAC,CAAC,EAAEI,KAAKN,KAAK,EAAE;;;;;AAShD,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/SocialMediaPopover.tsx"],"sourcesContent":["import * as Popover from \"@radix-ui/react-popover\";\r\nimport { Link } from \"lucide-react\";\r\nimport { IframeLinkEditorPanel } from \"../../../panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js\";\r\nimport { Icon } from \"../../../ui/Icon.js\";\r\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\r\nimport i18next from \"i18next\";\r\n\r\nexport type SocialMediaPopoverProps = {\r\n onSetLink: (src: string) => void;\r\n initialSrcLink: string;\r\n};\r\n\r\nexport const SocialMediaPopover = ({\r\n onSetLink,\r\n initialSrcLink,\r\n}: SocialMediaPopoverProps) => {\r\n return (\r\n <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <Toolbar.Button type=\"button\"\r\n tooltip={i18next.t(\"embedLink\") || \"Embed Link\"}\r\n >\r\n <Icon icon={Link} />\r\n </Toolbar.Button>\r\n </Popover.Trigger>\r\n <Popover.Content>\r\n <IframeLinkEditorPanel\r\n onSetLink={onSetLink}\r\n initialSrc={initialSrcLink ?? \"\"}\r\n />\r\n </Popover.Content>\r\n </Popover.Root>\r\n );\r\n};\r\n"],"names":["Popover","Link","IframeLinkEditorPanel","Icon","Toolbar","i18next","SocialMediaPopover","onSetLink","initialSrcLink","Root","Trigger","asChild","Button","type","tooltip","t","icon","Content","initialSrc"],"mappings":";AAAA,YAAYA,aAAa,0BAA0B;AACnD,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,qBAAqB,QAAQ,iEAAiE;AACvG,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,OAAOC,aAAa,UAAU;AAO9B,OAAO,MAAMC,qBAAqB,CAAC,EACjCC,SAAS,EACTC,cAAc,EACU;IACxB,qBACE,MAACR,QAAQS,IAAI;;0BACX,KAACT,QAAQU,OAAO;gBAACC,OAAO;0BACtB,cAAA,KAACP,QAAQQ,MAAM;oBAACC,MAAK;oBACpBC,SAAST,QAAQU,CAAC,CAAC,gBAAgB;8BAElC,cAAA,KAACZ;wBAAKa,MAAMf;;;;0BAGhB,KAACD,QAAQiB,OAAO;0BACd,cAAA,KAACf;oBACCK,WAAWA;oBACXW,YAAYV,kBAAkB;;;;;AAKxC,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/SocialMediaPopover.tsx"],"sourcesContent":["import * as Popover from \"@radix-ui/react-popover\";\nimport { Link } from \"lucide-react\";\nimport { IframeLinkEditorPanel } from \"../../../panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js\";\nimport { Icon } from \"../../../ui/Icon.js\";\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\nimport i18next from \"i18next\";\n\nexport type SocialMediaPopoverProps = {\n onSetLink: (src: string) => void;\n initialSrcLink: string;\n};\n\nexport const SocialMediaPopover = ({\n onSetLink,\n initialSrcLink,\n}: SocialMediaPopoverProps) => {\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <Toolbar.Button type=\"button\"\n tooltip={i18next.t(\"embedLink\") || \"Embed Link\"}\n >\n <Icon icon={Link} />\n </Toolbar.Button>\n </Popover.Trigger>\n <Popover.Content>\n <IframeLinkEditorPanel\n onSetLink={onSetLink}\n initialSrc={initialSrcLink ?? \"\"}\n />\n </Popover.Content>\n </Popover.Root>\n );\n};\n"],"names":["Popover","Link","IframeLinkEditorPanel","Icon","Toolbar","i18next","SocialMediaPopover","onSetLink","initialSrcLink","Root","Trigger","asChild","Button","type","tooltip","t","icon","Content","initialSrc"],"mappings":";AAAA,YAAYA,aAAa,0BAA0B;AACnD,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,qBAAqB,QAAQ,iEAAiE;AACvG,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,SAASC,OAAO,QAAQ,yBAAyB;AACjD,OAAOC,aAAa,UAAU;AAO9B,OAAO,MAAMC,qBAAqB,CAAC,EACjCC,SAAS,EACTC,cAAc,EACU;IACxB,qBACE,MAACR,QAAQS,IAAI;;0BACX,KAACT,QAAQU,OAAO;gBAACC,OAAO;0BACtB,cAAA,KAACP,QAAQQ,MAAM;oBAACC,MAAK;oBACpBC,SAAST,QAAQU,CAAC,CAAC,gBAAgB;8BAElC,cAAA,KAACZ;wBAAKa,MAAMf;;;;0BAGhB,KAACD,QAAQiB,OAAO;0BACd,cAAA,KAACf;oBACCK,WAAWA;oBACXW,YAAYV,kBAAkB;;;;;AAKxC,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.tsx"],"sourcesContent":["import { Editor, JSONContent } from '@tiptap/react'\r\nimport { Check, TextQuote, TrashIcon } from 'lucide-react'\r\nimport { Toolbar } from '../../../ui/Toolbar.js'\r\n\r\nconst AICompletionCommands = ({\r\n completion,\r\n onDiscard,\r\n editor,\r\n}: {\r\n editor: Editor\r\n completion: JSONContent\r\n onDiscard: () => void\r\n}) => {\r\n return (\r\n <>\r\n <Toolbar.Button\r\n className='gap-2 px-4 w-full flex justify-start '\r\n value='replace'\r\n onClick={() => {\r\n const selection = editor.view.state.selection\r\n\r\n editor\r\n .chain()\r\n .focus()\r\n .insertContentAt(\r\n {\r\n from: selection.from,\r\n to: selection.to,\r\n },\r\n completion?.content ?? [],\r\n )\r\n .run()\r\n }}\r\n >\r\n <Check className='h-4 w-4 text-muted-foreground' />\r\n Replace selection\r\n </Toolbar.Button>\r\n <Toolbar.Button\r\n className='gap-2 px-4 w-full flex justify-start'\r\n value='insert'\r\n onClick={() => {\r\n const selection = editor.view.state.selection\r\n editor\r\n .chain()\r\n .focus()\r\n .insertContentAt(selection.to + 1, completion?.content ?? [])\r\n .run()\r\n }}\r\n >\r\n <TextQuote className='h-4 w-4 text-muted-foreground' />\r\n Insert below\r\n </Toolbar.Button>\r\n <Toolbar.Divider horizontal />\r\n\r\n <Toolbar.Button\r\n onClick={onDiscard}\r\n value='thrash'\r\n className='w-full text-red-500 bg-red-500 dark:text-red-500 hover:bg-red-500 dark:hover:text-red-500 dark:hover:bg-red-500 bg-opacity-10 hover:bg-opacity-20 dark:hover:bg-opacity-20'\r\n >\r\n <TrashIcon className='h-4 w-4 text-muted-foreground' />\r\n Discard\r\n </Toolbar.Button>\r\n </>\r\n )\r\n}\r\n\r\nexport default AICompletionCommands\r\n"],"names":["Check","TextQuote","TrashIcon","Toolbar","AICompletionCommands","completion","onDiscard","editor","Button","className","value","onClick","selection","view","state","chain","focus","insertContentAt","from","to","content","run","Divider","horizontal"],"mappings":";AACA,SAASA,KAAK,EAAEC,SAAS,EAAEC,SAAS,QAAQ,eAAc;AAC1D,SAASC,OAAO,QAAQ,yBAAwB;AAEhD,MAAMC,uBAAuB,CAAC,EAC5BC,UAAU,EACVC,SAAS,EACTC,MAAM,EAKP;IACC,qBACE;;0BACE,MAACJ,QAAQK,MAAM;gBACbC,WAAU;gBACVC,OAAM;gBACNC,SAAS;oBACP,MAAMC,YAAYL,OAAOM,IAAI,CAACC,KAAK,CAACF,SAAS;oBAE7CL,OACGQ,KAAK,GACLC,KAAK,GACLC,eAAe,CACd;wBACEC,MAAMN,UAAUM,IAAI;wBACpBC,IAAIP,UAAUO,EAAE;oBAClB,GACAd,YAAYe,WAAW,EAAE,EAE1BC,GAAG;gBACR;;kCAEA,KAACrB;wBAAMS,WAAU;;oBAAkC;;;0BAGrD,MAACN,QAAQK,MAAM;gBACbC,WAAU;gBACVC,OAAM;gBACNC,SAAS;oBACP,MAAMC,YAAYL,OAAOM,IAAI,CAACC,KAAK,CAACF,SAAS;oBAC7CL,OACGQ,KAAK,GACLC,KAAK,GACLC,eAAe,CAACL,UAAUO,EAAE,GAAG,GAAGd,YAAYe,WAAW,EAAE,EAC3DC,GAAG;gBACR;;kCAEA,KAACpB;wBAAUQ,WAAU;;oBAAkC;;;0BAGzD,KAACN,QAAQmB,OAAO;gBAACC,UAAU;;0BAE3B,MAACpB,QAAQK,MAAM;gBACbG,SAASL;gBACTI,OAAM;gBACND,WAAU;;kCAEV,KAACP;wBAAUO,WAAU;;oBAAkC;;;;;AAK/D;AAEA,eAAeL,qBAAoB"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.tsx"],"sourcesContent":["import { Editor, JSONContent } from '@tiptap/react'\nimport { Check, TextQuote, TrashIcon } from 'lucide-react'\nimport { Toolbar } from '../../../ui/Toolbar.js'\n\nconst AICompletionCommands = ({\n completion,\n onDiscard,\n editor,\n}: {\n editor: Editor\n completion: JSONContent\n onDiscard: () => void\n}) => {\n return (\n <>\n <Toolbar.Button\n className='gap-2 px-4 w-full flex justify-start '\n value='replace'\n onClick={() => {\n const selection = editor.view.state.selection\n\n editor\n .chain()\n .focus()\n .insertContentAt(\n {\n from: selection.from,\n to: selection.to,\n },\n completion?.content ?? [],\n )\n .run()\n }}\n >\n <Check className='h-4 w-4 text-muted-foreground' />\n Replace selection\n </Toolbar.Button>\n <Toolbar.Button\n className='gap-2 px-4 w-full flex justify-start'\n value='insert'\n onClick={() => {\n const selection = editor.view.state.selection\n editor\n .chain()\n .focus()\n .insertContentAt(selection.to + 1, completion?.content ?? [])\n .run()\n }}\n >\n <TextQuote className='h-4 w-4 text-muted-foreground' />\n Insert below\n </Toolbar.Button>\n <Toolbar.Divider horizontal />\n\n <Toolbar.Button\n onClick={onDiscard}\n value='thrash'\n className='w-full text-red-500 bg-red-500 dark:text-red-500 hover:bg-red-500 dark:hover:text-red-500 dark:hover:bg-red-500 bg-opacity-10 hover:bg-opacity-20 dark:hover:bg-opacity-20'\n >\n <TrashIcon className='h-4 w-4 text-muted-foreground' />\n Discard\n </Toolbar.Button>\n </>\n )\n}\n\nexport default AICompletionCommands\n"],"names":["Check","TextQuote","TrashIcon","Toolbar","AICompletionCommands","completion","onDiscard","editor","Button","className","value","onClick","selection","view","state","chain","focus","insertContentAt","from","to","content","run","Divider","horizontal"],"mappings":";AACA,SAASA,KAAK,EAAEC,SAAS,EAAEC,SAAS,QAAQ,eAAc;AAC1D,SAASC,OAAO,QAAQ,yBAAwB;AAEhD,MAAMC,uBAAuB,CAAC,EAC5BC,UAAU,EACVC,SAAS,EACTC,MAAM,EAKP;IACC,qBACE;;0BACE,MAACJ,QAAQK,MAAM;gBACbC,WAAU;gBACVC,OAAM;gBACNC,SAAS;oBACP,MAAMC,YAAYL,OAAOM,IAAI,CAACC,KAAK,CAACF,SAAS;oBAE7CL,OACGQ,KAAK,GACLC,KAAK,GACLC,eAAe,CACd;wBACEC,MAAMN,UAAUM,IAAI;wBACpBC,IAAIP,UAAUO,EAAE;oBAClB,GACAd,YAAYe,WAAW,EAAE,EAE1BC,GAAG;gBACR;;kCAEA,KAACrB;wBAAMS,WAAU;;oBAAkC;;;0BAGrD,MAACN,QAAQK,MAAM;gBACbC,WAAU;gBACVC,OAAM;gBACNC,SAAS;oBACP,MAAMC,YAAYL,OAAOM,IAAI,CAACC,KAAK,CAACF,SAAS;oBAC7CL,OACGQ,KAAK,GACLC,KAAK,GACLC,eAAe,CAACL,UAAUO,EAAE,GAAG,GAAGd,YAAYe,WAAW,EAAE,EAC3DC,GAAG;gBACR;;kCAEA,KAACpB;wBAAUQ,WAAU;;oBAAkC;;;0BAGzD,KAACN,QAAQmB,OAAO;gBAACC,UAAU;;0BAE3B,MAACpB,QAAQK,MAAM;gBACbG,SAASL;gBACTI,OAAM;gBACND,WAAU;;kCAEV,KAACP;wBAAUO,WAAU;;oBAAkC;;;;;AAK/D;AAEA,eAAeL,qBAAoB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/ai-draft-selector-commands.tsx"],"sourcesContent":["import { useLocale } from \"@payloadcms/ui/providers/Locale\";\r\nimport { Editor } from \"@tiptap/react\";\r\nimport {\r\n ArrowDownWideNarrow,\r\n CheckCheck,\r\n RefreshCcwDot,\r\n WrapText,\r\n} from \"lucide-react\";\r\nimport { DropdownCategoryTitle } from \"../../../ui/Dropdown/Dropdown.js\";\r\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\r\n\r\nexport const draftPromptOptions = [\r\n // {\r\n // value: 'translate',\r\n // label: 'Translate text',\r\n // icon: WrapText,\r\n // },\r\n {\r\n value: \"brainstorm\",\r\n label: \"Brainstorm Ideas...\",\r\n\r\n icon: WrapText,\r\n prompt: \"Brainstorm ideas on \",\r\n },\r\n {\r\n value: \"blog\",\r\n label: \"Blog post...\",\r\n\r\n icon: WrapText,\r\n prompt: \"Write a blog post about \",\r\n },\r\n {\r\n value: \"outline\",\r\n label: \"Outline...\",\r\n\r\n icon: RefreshCcwDot,\r\n prompt: \"Write an outline about \",\r\n },\r\n\r\n {\r\n value: \"social\",\r\n label: \"Social Media post...\",\r\n\r\n icon: CheckCheck,\r\n prompt: \"Write a social media post about \",\r\n },\r\n {\r\n value: \"press\",\r\n label: \"Press release...\",\r\n\r\n icon: ArrowDownWideNarrow,\r\n prompt: \"Write a press release about \",\r\n },\r\n {\r\n value: \"creative\",\r\n label: \"Creative Story...\",\r\n\r\n icon: WrapText,\r\n prompt: \"Write a creative story about \",\r\n },\r\n {\r\n value: \"essay\",\r\n label: \"Essay...\",\r\n\r\n icon: WrapText,\r\n prompt: \"Write an essay about \",\r\n },\r\n];\r\n\r\ninterface AIDraftSelectorCommandsProps {\r\n editor: Editor;\r\n onSelect: (value: string) => void;\r\n}\r\n\r\nconst AIDraftSelectorCommands = ({\r\n onSelect,\r\n editor,\r\n}: AIDraftSelectorCommandsProps) => {\r\n\r\n return (\r\n <>\r\n <DropdownCategoryTitle>Draft with AI</DropdownCategoryTitle>\r\n <Toolbar.Divider horizontal />\r\n\r\n {draftPromptOptions.map((option) => (\r\n <Toolbar.Button\r\n // onSelect={(value) => {\r\n // const slice = editor.state.selection.content()\r\n // const text = editor.storage.markdown.serializer.serialize(slice.content)\r\n // onSelect(text, option.value)\r\n // }}\r\n onClick={() => {\r\n const { from, to, empty } = editor.state.selection;\r\n // const content = editor.state.doc.textBetween(from, to, \" \");\r\n onSelect(option.prompt);\r\n }}\r\n className=\" gap-2 px-4 w-full flex justify-start\"\r\n key={option.value}\r\n value={option.value}\r\n >\r\n <option.icon className=\"h-4 w-4 text-blue-500\" />\r\n {option.label}\r\n </Toolbar.Button>\r\n ))}\r\n </>\r\n );\r\n};\r\n\r\nexport default AIDraftSelectorCommands;\r\n"],"names":["ArrowDownWideNarrow","CheckCheck","RefreshCcwDot","WrapText","DropdownCategoryTitle","Toolbar","draftPromptOptions","value","label","icon","prompt","AIDraftSelectorCommands","onSelect","editor","Divider","horizontal","map","option","Button","onClick","from","to","empty","state","selection","className"],"mappings":";AAEA,SACEA,mBAAmB,EACnBC,UAAU,EACVC,aAAa,EACbC,QAAQ,QACH,eAAe;AACtB,SAASC,qBAAqB,QAAQ,mCAAmC;AACzE,SAASC,OAAO,QAAQ,yBAAyB;AAEjD,OAAO,MAAMC,qBAAqB;IAChC,IAAI;IACJ,wBAAwB;IACxB,6BAA6B;IAC7B,oBAAoB;IACpB,KAAK;IACL;QACEC,OAAO;QACPC,OAAO;QAEPC,MAAMN;QACNO,QAAQ;IACV;IACA;QACEH,OAAO;QACPC,OAAO;QAEPC,MAAMN;QACNO,QAAQ;IACV;IACA;QACEH,OAAO;QACPC,OAAO;QAEPC,MAAMP;QACNQ,QAAQ;IACV;IAEA;QACEH,OAAO;QACPC,OAAO;QAEPC,MAAMR;QACNS,QAAQ;IACV;IACA;QACEH,OAAO;QACPC,OAAO;QAEPC,MAAMT;QACNU,QAAQ;IACV;IACA;QACEH,OAAO;QACPC,OAAO;QAEPC,MAAMN;QACNO,QAAQ;IACV;IACA;QACEH,OAAO;QACPC,OAAO;QAEPC,MAAMN;QACNO,QAAQ;IACV;CACD,CAAC;AAOF,MAAMC,0BAA0B,CAAC,EAC/BC,QAAQ,EACRC,MAAM,EACuB;IAE7B,qBACE;;0BACE,KAACT;0BAAsB;;0BACvB,KAACC,QAAQS,OAAO;gBAACC,UAAU;;YAE1BT,mBAAmBU,GAAG,CAAC,CAACC,uBACvB,MAACZ,QAAQa,MAAM;oBACb,yBAAyB;oBACzB,mDAAmD;oBACnD,6EAA6E;oBAC7E,iCAAiC;oBACjC,KAAK;oBACLC,SAAS;wBACP,MAAM,EAAEC,IAAI,EAAEC,EAAE,EAAEC,KAAK,EAAE,GAAGT,OAAOU,KAAK,CAACC,SAAS;wBAClD,+DAA+D;wBAC/DZ,SAASK,OAAOP,MAAM;oBACxB;oBACAe,WAAU;oBAEVlB,OAAOU,OAAOV,KAAK;;sCAEnB,KAACU,OAAOR,IAAI;4BAACgB,WAAU;;wBACtBR,OAAOT,KAAK;;mBAJRS,OAAOV,KAAK;;;AAS3B;AAEA,eAAeI,wBAAwB"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/ai-draft-selector-commands.tsx"],"sourcesContent":["import { useLocale } from \"@payloadcms/ui/providers/Locale\";\nimport { Editor } from \"@tiptap/react\";\nimport {\n ArrowDownWideNarrow,\n CheckCheck,\n RefreshCcwDot,\n WrapText,\n} from \"lucide-react\";\nimport { DropdownCategoryTitle } from \"../../../ui/Dropdown/Dropdown.js\";\nimport { Toolbar } from \"../../../ui/Toolbar.js\";\n\nexport const draftPromptOptions = [\n // {\n // value: 'translate',\n // label: 'Translate text',\n // icon: WrapText,\n // },\n {\n value: \"brainstorm\",\n label: \"Brainstorm Ideas...\",\n\n icon: WrapText,\n prompt: \"Brainstorm ideas on \",\n },\n {\n value: \"blog\",\n label: \"Blog post...\",\n\n icon: WrapText,\n prompt: \"Write a blog post about \",\n },\n {\n value: \"outline\",\n label: \"Outline...\",\n\n icon: RefreshCcwDot,\n prompt: \"Write an outline about \",\n },\n\n {\n value: \"social\",\n label: \"Social Media post...\",\n\n icon: CheckCheck,\n prompt: \"Write a social media post about \",\n },\n {\n value: \"press\",\n label: \"Press release...\",\n\n icon: ArrowDownWideNarrow,\n prompt: \"Write a press release about \",\n },\n {\n value: \"creative\",\n label: \"Creative Story...\",\n\n icon: WrapText,\n prompt: \"Write a creative story about \",\n },\n {\n value: \"essay\",\n label: \"Essay...\",\n\n icon: WrapText,\n prompt: \"Write an essay about \",\n },\n];\n\ninterface AIDraftSelectorCommandsProps {\n editor: Editor;\n onSelect: (value: string) => void;\n}\n\nconst AIDraftSelectorCommands = ({\n onSelect,\n editor,\n}: AIDraftSelectorCommandsProps) => {\n\n return (\n <>\n <DropdownCategoryTitle>Draft with AI</DropdownCategoryTitle>\n <Toolbar.Divider horizontal />\n\n {draftPromptOptions.map((option) => (\n <Toolbar.Button\n // onSelect={(value) => {\n // const slice = editor.state.selection.content()\n // const text = editor.storage.markdown.serializer.serialize(slice.content)\n // onSelect(text, option.value)\n // }}\n onClick={() => {\n const { from, to, empty } = editor.state.selection;\n // const content = editor.state.doc.textBetween(from, to, \" \");\n onSelect(option.prompt);\n }}\n className=\" gap-2 px-4 w-full flex justify-start\"\n key={option.value}\n value={option.value}\n >\n <option.icon className=\"h-4 w-4 text-blue-500\" />\n {option.label}\n </Toolbar.Button>\n ))}\n </>\n );\n};\n\nexport default AIDraftSelectorCommands;\n"],"names":["ArrowDownWideNarrow","CheckCheck","RefreshCcwDot","WrapText","DropdownCategoryTitle","Toolbar","draftPromptOptions","value","label","icon","prompt","AIDraftSelectorCommands","onSelect","editor","Divider","horizontal","map","option","Button","onClick","from","to","empty","state","selection","className"],"mappings":";AAEA,SACEA,mBAAmB,EACnBC,UAAU,EACVC,aAAa,EACbC,QAAQ,QACH,eAAe;AACtB,SAASC,qBAAqB,QAAQ,mCAAmC;AACzE,SAASC,OAAO,QAAQ,yBAAyB;AAEjD,OAAO,MAAMC,qBAAqB;IAChC,IAAI;IACJ,wBAAwB;IACxB,6BAA6B;IAC7B,oBAAoB;IACpB,KAAK;IACL;QACEC,OAAO;QACPC,OAAO;QAEPC,MAAMN;QACNO,QAAQ;IACV;IACA;QACEH,OAAO;QACPC,OAAO;QAEPC,MAAMN;QACNO,QAAQ;IACV;IACA;QACEH,OAAO;QACPC,OAAO;QAEPC,MAAMP;QACNQ,QAAQ;IACV;IAEA;QACEH,OAAO;QACPC,OAAO;QAEPC,MAAMR;QACNS,QAAQ;IACV;IACA;QACEH,OAAO;QACPC,OAAO;QAEPC,MAAMT;QACNU,QAAQ;IACV;IACA;QACEH,OAAO;QACPC,OAAO;QAEPC,MAAMN;QACNO,QAAQ;IACV;IACA;QACEH,OAAO;QACPC,OAAO;QAEPC,MAAMN;QACNO,QAAQ;IACV;CACD,CAAC;AAOF,MAAMC,0BAA0B,CAAC,EAC/BC,QAAQ,EACRC,MAAM,EACuB;IAE7B,qBACE;;0BACE,KAACT;0BAAsB;;0BACvB,KAACC,QAAQS,OAAO;gBAACC,UAAU;;YAE1BT,mBAAmBU,GAAG,CAAC,CAACC,uBACvB,MAACZ,QAAQa,MAAM;oBACb,yBAAyB;oBACzB,mDAAmD;oBACnD,6EAA6E;oBAC7E,iCAAiC;oBACjC,KAAK;oBACLC,SAAS;wBACP,MAAM,EAAEC,IAAI,EAAEC,EAAE,EAAEC,KAAK,EAAE,GAAGT,OAAOU,KAAK,CAACC,SAAS;wBAClD,+DAA+D;wBAC/DZ,SAASK,OAAOP,MAAM;oBACxB;oBACAe,WAAU;oBAEVlB,OAAOU,OAAOV,KAAK;;sCAEnB,KAACU,OAAOR,IAAI;4BAACgB,WAAU;;wBACtBR,OAAOT,KAAK;;mBAJRS,OAAOV,KAAK;;;AAS3B;AAEA,eAAeI,wBAAwB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.tsx"],"sourcesContent":["import * as Popover from '@radix-ui/react-popover'\r\nimport { Editor, JSONContent } from '@tiptap/react'\r\nimport i18next from 'i18next'\r\nimport {\r\n ArrowDownWideNarrow,\r\n BookText,\r\n CheckCheck,\r\n ChevronDown,\r\n Languages,\r\n RefreshCcwDot,\r\n StepForward,\r\n WrapText,\r\n} from 'lucide-react'\r\nimport { languages } from '../../../../lib/constants.js'\r\nimport { getPrevText } from '../../../../lib/utils/index.js'\r\nimport { DropdownCategoryTitle } from '../../../ui/Dropdown/Dropdown.js'\r\nimport { Icon } from '../../../ui/Icon.js'\r\nimport { Surface } from '../../../ui/Surface.js'\r\nimport { Toolbar } from '../../../ui/Toolbar.js'\r\nimport { useMemo } from 'react'\r\nimport { extractMarkdown } from '../../../../lib/extract.js'\r\nconst options = [\r\n // {\r\n // value: 'translate',\r\n // label: 'Translate text',\r\n // icon: WrapText,\r\n // },\r\n {\r\n value: 'improve',\r\n label: 'Improve writing',\r\n icon: RefreshCcwDot,\r\n },\r\n {\r\n value: 'fix',\r\n label: 'Fix grammar',\r\n icon: CheckCheck,\r\n },\r\n {\r\n value: 'rewrite_with_guidelines',\r\n label: 'Rewrite per Editorial Guidelines',\r\n icon: BookText,\r\n },\r\n {\r\n value: 'rewrite',\r\n label: 'Rewrite into Axios',\r\n icon: WrapText,\r\n },\r\n\r\n {\r\n value: 'summarize',\r\n label: 'Summarize text',\r\n icon: WrapText,\r\n },\r\n {\r\n value: 'shorter',\r\n label: 'Make shorter',\r\n icon: ArrowDownWideNarrow,\r\n },\r\n {\r\n value: 'longer',\r\n label: 'Make longer',\r\n icon: WrapText,\r\n },\r\n]\r\n\r\ninterface AISelectorCommandsProps {\r\n editor: Editor\r\n messages?: JSONContent\r\n onSelect: (\r\n value: string,\r\n options: { option: string; language?: string; selection?: JSON },\r\n ) => void\r\n}\r\n\r\nconst AISelectorCommands = ({ messages, onSelect, editor }: AISelectorCommandsProps) => {\r\n const editorSelection = editor?.state?.selection?.content?.()?.content?.toJSON()\r\n const sortedLanguages = useMemo(() => {\r\n const editorLanguage = editor.storage?.aiCommand?.language\r\n return languages.sort((a, b) => {\r\n if (editorLanguage?.includes(a.value)) return -1\r\n if (editorLanguage?.includes(b.value)) return 1\r\n return 0\r\n })\r\n }, [languages, editor.storage?.aiCommand?.language])\r\n\r\n return (\r\n <>\r\n <DropdownCategoryTitle>Edit or review selection</DropdownCategoryTitle>\r\n {editorSelection && (\r\n <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <Toolbar.Button\r\n className='gap-2 px-4 w-full flex justify-start '\r\n type='button'\r\n // active={!!states.currentHighlight}\r\n tooltip={i18next.t('highlightText') || 'Highlight text'}\r\n >\r\n <Icon icon={Languages} className='h-4 w-4 text-blue-500' />\r\n Translate text\r\n <span className='text-xs ml-1 px-2 py-0.5 bg-blue-100 text-blue-700 rounded-full dark:bg-blue-700 dark:text-blue-100 align-baseline'>\r\n Beta\r\n </span>\r\n <Icon icon={ChevronDown} className='h-4 w-4 text-blue-500' />\r\n </Toolbar.Button>\r\n </Popover.Trigger>\r\n <Popover.Content side='right' align='start' sideOffset={8} asChild>\r\n <Surface className='flex flex-col min-w-[15rem] p-2 max-h-[20rem] overflow-auto'>\r\n <DropdownCategoryTitle>Languages</DropdownCategoryTitle>\r\n\r\n {sortedLanguages.map((lang) => (\r\n <Toolbar.Button\r\n onClick={() => {\r\n const editorSelection = editor.state.selection.content().content.toJSON()\r\n\r\n onSelect('', {\r\n option: 'translate',\r\n language: lang.value,\r\n selection: editorSelection,\r\n })\r\n }}\r\n className='gap-2 px-4 w-full flex justify-start '\r\n key={lang.value}\r\n >\r\n {lang.label}\r\n </Toolbar.Button>\r\n ))}\r\n </Surface>\r\n </Popover.Content>\r\n </Popover.Root>\r\n )}\r\n\r\n {options.map((option) => (\r\n <Toolbar.Button\r\n // onSelect={(value) => {\r\n // const slice = editor.state.selection.content()\r\n // const text = editor?.storage?.markdown?.serializer.serialize(slice.content)\r\n // onSelect(text, option.value)\r\n // }}\r\n onClick={() => {\r\n const { from, to, empty } = editor.state.selection\r\n const editorSelection = editor.state.selection.content().content.toJSON()\r\n const content = messages\r\n ? (extractMarkdown(messages) ?? '')\r\n : editor.state.doc.textBetween(from, to, ' ')\r\n onSelect(content, {\r\n option: option.value,\r\n language: editor?.storage?.aiCommand?.language,\r\n })\r\n }}\r\n className=' gap-2 px-4 w-full flex justify-start'\r\n key={option.value}\r\n value={option.value}\r\n >\r\n <option.icon className='h-4 w-4 text-blue-500' />\r\n {option.label}\r\n <span className='text-xs ml-1 px-2 py-0.5 bg-blue-100 text-blue-700 rounded-full dark:bg-blue-700 dark:text-blue-100 align-baseline'>\r\n Beta\r\n </span>\r\n </Toolbar.Button>\r\n ))}\r\n <Toolbar.Divider horizontal />\r\n <DropdownCategoryTitle>Use AI to do more</DropdownCategoryTitle>\r\n <Toolbar.Button\r\n onClick={() => {\r\n const editorSelection = editor.state.selection.content().content.toJSON()\r\n\r\n const text = messages\r\n ? (extractMarkdown(messages) ?? '')\r\n : getPrevText(editor, { chars: 5000 })\r\n onSelect(text, {\r\n option: 'continue',\r\n language: editor?.storage?.aiCommand?.language,\r\n })\r\n }}\r\n value='continue'\r\n className='gap-2 px-4 w-full flex justify-start'\r\n >\r\n <StepForward className='h-4 w-4 text-blue-500' />\r\n Continue writing\r\n <span className='text-xs ml-1 px-2 py-0.5 bg-blue-100 text-blue-700 rounded-full dark:bg-blue-700 dark:text-blue-100 align-baseline'>\r\n Beta\r\n </span>\r\n </Toolbar.Button>\r\n </>\r\n )\r\n}\r\n\r\nexport default AISelectorCommands\r\n"],"names":["Popover","i18next","ArrowDownWideNarrow","BookText","CheckCheck","ChevronDown","Languages","RefreshCcwDot","StepForward","WrapText","languages","getPrevText","DropdownCategoryTitle","Icon","Surface","Toolbar","useMemo","extractMarkdown","options","value","label","icon","AISelectorCommands","messages","onSelect","editor","editorSelection","state","selection","content","toJSON","sortedLanguages","editorLanguage","storage","aiCommand","language","sort","a","b","includes","Root","Trigger","asChild","Button","className","type","tooltip","t","span","Content","side","align","sideOffset","map","lang","onClick","option","from","to","empty","doc","textBetween","Divider","horizontal","text","chars"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.tsx"],"sourcesContent":["import * as Popover from '@radix-ui/react-popover'\nimport { Editor, JSONContent } from '@tiptap/react'\nimport i18next from 'i18next'\nimport {\n ArrowDownWideNarrow,\n BookText,\n CheckCheck,\n ChevronDown,\n Languages,\n RefreshCcwDot,\n StepForward,\n WrapText,\n} from 'lucide-react'\nimport { languages } from '../../../../lib/constants.js'\nimport { getPrevText } from '../../../../lib/utils/index.js'\nimport { DropdownCategoryTitle } from '../../../ui/Dropdown/Dropdown.js'\nimport { Icon } from '../../../ui/Icon.js'\nimport { Surface } from '../../../ui/Surface.js'\nimport { Toolbar } from '../../../ui/Toolbar.js'\nimport { useMemo } from 'react'\nimport { extractMarkdown } from '../../../../lib/extract.js'\nconst options = [\n // {\n // value: 'translate',\n // label: 'Translate text',\n // icon: WrapText,\n // },\n {\n value: 'improve',\n label: 'Improve writing',\n icon: RefreshCcwDot,\n },\n {\n value: 'fix',\n label: 'Fix grammar',\n icon: CheckCheck,\n },\n {\n value: 'rewrite_with_guidelines',\n label: 'Rewrite per Editorial Guidelines',\n icon: BookText,\n },\n {\n value: 'rewrite',\n label: 'Rewrite into Axios',\n icon: WrapText,\n },\n\n {\n value: 'summarize',\n label: 'Summarize text',\n icon: WrapText,\n },\n {\n value: 'shorter',\n label: 'Make shorter',\n icon: ArrowDownWideNarrow,\n },\n {\n value: 'longer',\n label: 'Make longer',\n icon: WrapText,\n },\n]\n\ninterface AISelectorCommandsProps {\n editor: Editor\n messages?: JSONContent\n onSelect: (\n value: string,\n options: { option: string; language?: string; selection?: JSON },\n ) => void\n}\n\nconst AISelectorCommands = ({ messages, onSelect, editor }: AISelectorCommandsProps) => {\n const editorSelection = editor?.state?.selection?.content?.()?.content?.toJSON()\n const sortedLanguages = useMemo(() => {\n const editorLanguage = editor.storage?.aiCommand?.language\n return languages.sort((a, b) => {\n if (editorLanguage?.includes(a.value)) return -1\n if (editorLanguage?.includes(b.value)) return 1\n return 0\n })\n }, [languages, editor.storage?.aiCommand?.language])\n\n return (\n <>\n <DropdownCategoryTitle>Edit or review selection</DropdownCategoryTitle>\n {editorSelection && (\n <Popover.Root>\n <Popover.Trigger asChild>\n <Toolbar.Button\n className='gap-2 px-4 w-full flex justify-start '\n type='button'\n // active={!!states.currentHighlight}\n tooltip={i18next.t('highlightText') || 'Highlight text'}\n >\n <Icon icon={Languages} className='h-4 w-4 text-blue-500' />\n Translate text\n <span className='text-xs ml-1 px-2 py-0.5 bg-blue-100 text-blue-700 rounded-full dark:bg-blue-700 dark:text-blue-100 align-baseline'>\n Beta\n </span>\n <Icon icon={ChevronDown} className='h-4 w-4 text-blue-500' />\n </Toolbar.Button>\n </Popover.Trigger>\n <Popover.Content side='right' align='start' sideOffset={8} asChild>\n <Surface className='flex flex-col min-w-[15rem] p-2 max-h-[20rem] overflow-auto'>\n <DropdownCategoryTitle>Languages</DropdownCategoryTitle>\n\n {sortedLanguages.map((lang) => (\n <Toolbar.Button\n onClick={() => {\n const editorSelection = editor.state.selection.content().content.toJSON()\n\n onSelect('', {\n option: 'translate',\n language: lang.value,\n selection: editorSelection,\n })\n }}\n className='gap-2 px-4 w-full flex justify-start '\n key={lang.value}\n >\n {lang.label}\n </Toolbar.Button>\n ))}\n </Surface>\n </Popover.Content>\n </Popover.Root>\n )}\n\n {options.map((option) => (\n <Toolbar.Button\n // onSelect={(value) => {\n // const slice = editor.state.selection.content()\n // const text = editor?.storage?.markdown?.serializer.serialize(slice.content)\n // onSelect(text, option.value)\n // }}\n onClick={() => {\n const { from, to, empty } = editor.state.selection\n const editorSelection = editor.state.selection.content().content.toJSON()\n const content = messages\n ? (extractMarkdown(messages) ?? '')\n : editor.state.doc.textBetween(from, to, ' ')\n onSelect(content, {\n option: option.value,\n language: editor?.storage?.aiCommand?.language,\n })\n }}\n className=' gap-2 px-4 w-full flex justify-start'\n key={option.value}\n value={option.value}\n >\n <option.icon className='h-4 w-4 text-blue-500' />\n {option.label}\n <span className='text-xs ml-1 px-2 py-0.5 bg-blue-100 text-blue-700 rounded-full dark:bg-blue-700 dark:text-blue-100 align-baseline'>\n Beta\n </span>\n </Toolbar.Button>\n ))}\n <Toolbar.Divider horizontal />\n <DropdownCategoryTitle>Use AI to do more</DropdownCategoryTitle>\n <Toolbar.Button\n onClick={() => {\n const editorSelection = editor.state.selection.content().content.toJSON()\n\n const text = messages\n ? (extractMarkdown(messages) ?? '')\n : getPrevText(editor, { chars: 5000 })\n onSelect(text, {\n option: 'continue',\n language: editor?.storage?.aiCommand?.language,\n })\n }}\n value='continue'\n className='gap-2 px-4 w-full flex justify-start'\n >\n <StepForward className='h-4 w-4 text-blue-500' />\n Continue writing\n <span className='text-xs ml-1 px-2 py-0.5 bg-blue-100 text-blue-700 rounded-full dark:bg-blue-700 dark:text-blue-100 align-baseline'>\n Beta\n </span>\n </Toolbar.Button>\n </>\n )\n}\n\nexport default AISelectorCommands\n"],"names":["Popover","i18next","ArrowDownWideNarrow","BookText","CheckCheck","ChevronDown","Languages","RefreshCcwDot","StepForward","WrapText","languages","getPrevText","DropdownCategoryTitle","Icon","Surface","Toolbar","useMemo","extractMarkdown","options","value","label","icon","AISelectorCommands","messages","onSelect","editor","editorSelection","state","selection","content","toJSON","sortedLanguages","editorLanguage","storage","aiCommand","language","sort","a","b","includes","Root","Trigger","asChild","Button","className","type","tooltip","t","span","Content","side","align","sideOffset","map","lang","onClick","option","from","to","empty","doc","textBetween","Divider","horizontal","text","chars"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuCommands.ts"],"sourcesContent":["import { Editor } from '@tiptap/react'\r\nimport { useCallback } from 'react'\r\n\r\nexport const useTextmenuCommands = (editor: Editor) => {\r\n const onBold = useCallback(() => editor.chain().focus().toggleBold().run(), [editor])\r\n const onItalic = useCallback(() => editor.chain().focus().toggleItalic().run(), [editor])\r\n const onStrike = useCallback(() => editor.chain().focus().toggleStrike().run(), [editor])\r\n const onUnderline = useCallback(() => editor.chain().focus().toggleUnderline().run(), [editor])\r\n const onCode = useCallback(() => editor.chain().focus().toggleCode().run(), [editor])\r\n const onCodeBlock = useCallback(() => editor.chain().focus().toggleCodeBlock().run(), [editor])\r\n\r\n const onSubscript = useCallback(() => editor.chain().focus().toggleSubscript().run(), [editor])\r\n const onSuperscript = useCallback(\r\n () => editor.chain().focus().toggleSuperscript().run(),\r\n [editor],\r\n )\r\n const onAlignLeft = useCallback(() => editor.chain().focus().setTextAlign('left').run(), [editor])\r\n const onAlignCenter = useCallback(\r\n () => editor.chain().focus().setTextAlign('center').run(),\r\n [editor],\r\n )\r\n const onAlignRight = useCallback(\r\n () => editor.chain().focus().setTextAlign('right').run(),\r\n [editor],\r\n )\r\n const onAlignJustify = useCallback(\r\n () => editor.chain().focus().setTextAlign('justify').run(),\r\n [editor],\r\n )\r\n\r\n const onChangeColor = useCallback(\r\n (color: string) => editor.chain().setColor(color).run(),\r\n [editor],\r\n )\r\n const onClearColor = useCallback(() => editor.chain().focus().unsetColor().run(), [editor])\r\n\r\n const onChangeHighlight = useCallback(\r\n (color: string) => editor.chain().setHighlight({ color }).run(),\r\n [editor],\r\n )\r\n const onClearHighlight = useCallback(\r\n () => editor.chain().focus().run(),\r\n [editor],\r\n )\r\n\r\n const onLink = useCallback(\r\n (url: string, inNewTab?: boolean) =>\r\n editor\r\n .chain()\r\n .focus()\r\n .setLink({ href: url, target: inNewTab ? '_blank' : '' })\r\n .run(),\r\n [editor],\r\n )\r\n\r\n // const onSetFont = useCallback(\r\n // (font: string) => {\r\n // if (!font || font.length === 0) {\r\n // return editor.chain().focus().unsetFontFamily().run()\r\n // }\r\n // return editor.chain().focus().setFontFamily(font).run()\r\n // },\r\n // [editor],\r\n // )\r\n\r\n const onSetFontSize = useCallback(\r\n (fontSize: string) => {\r\n if (!fontSize || fontSize.length === 0) {\r\n return editor.chain().focus().unsetFontSize().run()\r\n }\r\n return editor.chain().focus().setFontSize(fontSize).run()\r\n },\r\n [editor],\r\n )\r\n\r\n // AI Commands\r\n const onCompleteSentence = useCallback(() => {\r\n // TODO\r\n }, [editor])\r\n const onEmojify = useCallback(() => {\r\n // TODO\r\n }, [editor])\r\n const onFixSpelling = useCallback(() => {\r\n // TODO\r\n }, [editor])\r\n const onMakeLonger = useCallback(() => {\r\n // TODO\r\n }, [editor])\r\n const onMakeShorter = useCallback(() => {\r\n // TODO\r\n }, [editor])\r\n const onSimplify = useCallback(() => {\r\n // TODO\r\n }, [editor])\r\n const onTldr = useCallback(() => {\r\n // TODO\r\n }, [editor])\r\n const onTone = useCallback(() => {\r\n // TODO\r\n }, [editor])\r\n const onTranslate = useCallback(() => {\r\n // TODO\r\n }, [editor])\r\n\r\n const onClearFormatting = useCallback(() => {\r\n editor.chain().focus().clearNodes().unsetAllMarks().run()\r\n }, [editor])\r\n\r\n return {\r\n onBold,\r\n onItalic,\r\n onStrike,\r\n onUnderline,\r\n onCode,\r\n onCodeBlock,\r\n onSubscript,\r\n onSuperscript,\r\n onAlignLeft,\r\n onAlignCenter,\r\n onAlignRight,\r\n onAlignJustify,\r\n onChangeColor,\r\n onClearColor,\r\n onChangeHighlight,\r\n onClearHighlight,\r\n // onSetFont,\r\n onSetFontSize,\r\n onLink,\r\n onCompleteSentence,\r\n onEmojify,\r\n onFixSpelling,\r\n onMakeLonger,\r\n onMakeShorter,\r\n onSimplify,\r\n onTldr,\r\n onTone,\r\n onTranslate,\r\n onClearFormatting,\r\n }\r\n}\r\n"],"names":["useCallback","useTextmenuCommands","editor","onBold","chain","focus","toggleBold","run","onItalic","toggleItalic","onStrike","toggleStrike","onUnderline","toggleUnderline","onCode","toggleCode","onCodeBlock","toggleCodeBlock","onSubscript","toggleSubscript","onSuperscript","toggleSuperscript","onAlignLeft","setTextAlign","onAlignCenter","onAlignRight","onAlignJustify","onChangeColor","color","setColor","onClearColor","unsetColor","onChangeHighlight","setHighlight","onClearHighlight","onLink","url","inNewTab","setLink","href","target","onSetFontSize","fontSize","length","unsetFontSize","setFontSize","onCompleteSentence","onEmojify","onFixSpelling","onMakeLonger","onMakeShorter","onSimplify","onTldr","onTone","onTranslate","onClearFormatting","clearNodes","unsetAllMarks"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuCommands.ts"],"sourcesContent":["import { Editor } from '@tiptap/react'\nimport { useCallback } from 'react'\n\nexport const useTextmenuCommands = (editor: Editor) => {\n const onBold = useCallback(() => editor.chain().focus().toggleBold().run(), [editor])\n const onItalic = useCallback(() => editor.chain().focus().toggleItalic().run(), [editor])\n const onStrike = useCallback(() => editor.chain().focus().toggleStrike().run(), [editor])\n const onUnderline = useCallback(() => editor.chain().focus().toggleUnderline().run(), [editor])\n const onCode = useCallback(() => editor.chain().focus().toggleCode().run(), [editor])\n const onCodeBlock = useCallback(() => editor.chain().focus().toggleCodeBlock().run(), [editor])\n\n const onSubscript = useCallback(() => editor.chain().focus().toggleSubscript().run(), [editor])\n const onSuperscript = useCallback(\n () => editor.chain().focus().toggleSuperscript().run(),\n [editor],\n )\n const onAlignLeft = useCallback(() => editor.chain().focus().setTextAlign('left').run(), [editor])\n const onAlignCenter = useCallback(\n () => editor.chain().focus().setTextAlign('center').run(),\n [editor],\n )\n const onAlignRight = useCallback(\n () => editor.chain().focus().setTextAlign('right').run(),\n [editor],\n )\n const onAlignJustify = useCallback(\n () => editor.chain().focus().setTextAlign('justify').run(),\n [editor],\n )\n\n const onChangeColor = useCallback(\n (color: string) => editor.chain().setColor(color).run(),\n [editor],\n )\n const onClearColor = useCallback(() => editor.chain().focus().unsetColor().run(), [editor])\n\n const onChangeHighlight = useCallback(\n (color: string) => editor.chain().setHighlight({ color }).run(),\n [editor],\n )\n const onClearHighlight = useCallback(\n () => editor.chain().focus().run(),\n [editor],\n )\n\n const onLink = useCallback(\n (url: string, inNewTab?: boolean) =>\n editor\n .chain()\n .focus()\n .setLink({ href: url, target: inNewTab ? '_blank' : '' })\n .run(),\n [editor],\n )\n\n // const onSetFont = useCallback(\n // (font: string) => {\n // if (!font || font.length === 0) {\n // return editor.chain().focus().unsetFontFamily().run()\n // }\n // return editor.chain().focus().setFontFamily(font).run()\n // },\n // [editor],\n // )\n\n const onSetFontSize = useCallback(\n (fontSize: string) => {\n if (!fontSize || fontSize.length === 0) {\n return editor.chain().focus().unsetFontSize().run()\n }\n return editor.chain().focus().setFontSize(fontSize).run()\n },\n [editor],\n )\n\n // AI Commands\n const onCompleteSentence = useCallback(() => {\n // TODO\n }, [editor])\n const onEmojify = useCallback(() => {\n // TODO\n }, [editor])\n const onFixSpelling = useCallback(() => {\n // TODO\n }, [editor])\n const onMakeLonger = useCallback(() => {\n // TODO\n }, [editor])\n const onMakeShorter = useCallback(() => {\n // TODO\n }, [editor])\n const onSimplify = useCallback(() => {\n // TODO\n }, [editor])\n const onTldr = useCallback(() => {\n // TODO\n }, [editor])\n const onTone = useCallback(() => {\n // TODO\n }, [editor])\n const onTranslate = useCallback(() => {\n // TODO\n }, [editor])\n\n const onClearFormatting = useCallback(() => {\n editor.chain().focus().clearNodes().unsetAllMarks().run()\n }, [editor])\n\n return {\n onBold,\n onItalic,\n onStrike,\n onUnderline,\n onCode,\n onCodeBlock,\n onSubscript,\n onSuperscript,\n onAlignLeft,\n onAlignCenter,\n onAlignRight,\n onAlignJustify,\n onChangeColor,\n onClearColor,\n onChangeHighlight,\n onClearHighlight,\n // onSetFont,\n onSetFontSize,\n onLink,\n onCompleteSentence,\n onEmojify,\n onFixSpelling,\n onMakeLonger,\n onMakeShorter,\n onSimplify,\n onTldr,\n onTone,\n onTranslate,\n onClearFormatting,\n }\n}\n"],"names":["useCallback","useTextmenuCommands","editor","onBold","chain","focus","toggleBold","run","onItalic","toggleItalic","onStrike","toggleStrike","onUnderline","toggleUnderline","onCode","toggleCode","onCodeBlock","toggleCodeBlock","onSubscript","toggleSubscript","onSuperscript","toggleSuperscript","onAlignLeft","setTextAlign","onAlignCenter","onAlignRight","onAlignJustify","onChangeColor","color","setColor","onClearColor","unsetColor","onChangeHighlight","setHighlight","onClearHighlight","onLink","url","inNewTab","setLink","href","target","onSetFontSize","fontSize","length","unsetFontSize","setFontSize","onCompleteSentence","onEmojify","onFixSpelling","onMakeLonger","onMakeShorter","onSimplify","onTldr","onTone","onTranslate","onClearFormatting","clearNodes","unsetAllMarks"],"mappings":"AACA,SAASA,WAAW,QAAQ,QAAO;AAEnC,OAAO,MAAMC,sBAAsB,CAACC;IAClC,MAAMC,SAASH,YAAY,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGC,UAAU,GAAGC,GAAG,IAAI;QAACL;KAAO;IACpF,MAAMM,WAAWR,YAAY,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGI,YAAY,GAAGF,GAAG,IAAI;QAACL;KAAO;IACxF,MAAMQ,WAAWV,YAAY,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGM,YAAY,GAAGJ,GAAG,IAAI;QAACL;KAAO;IACxF,MAAMU,cAAcZ,YAAY,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGQ,eAAe,GAAGN,GAAG,IAAI;QAACL;KAAO;IAC9F,MAAMY,SAASd,YAAY,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGU,UAAU,GAAGR,GAAG,IAAI;QAACL;KAAO;IACpF,MAAMc,cAAchB,YAAY,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGY,eAAe,GAAGV,GAAG,IAAI;QAACL;KAAO;IAE9F,MAAMgB,cAAclB,YAAY,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGc,eAAe,GAAGZ,GAAG,IAAI;QAACL;KAAO;IAC9F,MAAMkB,gBAAgBpB,YACpB,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGgB,iBAAiB,GAAGd,GAAG,IACpD;QAACL;KAAO;IAEV,MAAMoB,cAActB,YAAY,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGkB,YAAY,CAAC,QAAQhB,GAAG,IAAI;QAACL;KAAO;IACjG,MAAMsB,gBAAgBxB,YACpB,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGkB,YAAY,CAAC,UAAUhB,GAAG,IACvD;QAACL;KAAO;IAEV,MAAMuB,eAAezB,YACnB,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGkB,YAAY,CAAC,SAAShB,GAAG,IACtD;QAACL;KAAO;IAEV,MAAMwB,iBAAiB1B,YACrB,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGkB,YAAY,CAAC,WAAWhB,GAAG,IACxD;QAACL;KAAO;IAGV,MAAMyB,gBAAgB3B,YACpB,CAAC4B,QAAkB1B,OAAOE,KAAK,GAAGyB,QAAQ,CAACD,OAAOrB,GAAG,IACrD;QAACL;KAAO;IAEV,MAAM4B,eAAe9B,YAAY,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAG0B,UAAU,GAAGxB,GAAG,IAAI;QAACL;KAAO;IAE1F,MAAM8B,oBAAoBhC,YACxB,CAAC4B,QAAkB1B,OAAOE,KAAK,GAAG6B,YAAY,CAAC;YAAEL;QAAM,GAAGrB,GAAG,IAC7D;QAACL;KAAO;IAEV,MAAMgC,mBAAmBlC,YACvB,IAAME,OAAOE,KAAK,GAAGC,KAAK,GAAGE,GAAG,IAChC;QAACL;KAAO;IAGV,MAAMiC,SAASnC,YACb,CAACoC,KAAaC,WACZnC,OACGE,KAAK,GACLC,KAAK,GACLiC,OAAO,CAAC;YAAEC,MAAMH;YAAKI,QAAQH,WAAW,WAAW;QAAG,GACtD9B,GAAG,IACR;QAACL;KAAO;IAGV,iCAAiC;IACjC,wBAAwB;IACxB,wCAAwC;IACxC,8DAA8D;IAC9D,QAAQ;IACR,8DAA8D;IAC9D,OAAO;IACP,cAAc;IACd,IAAI;IAEJ,MAAMuC,gBAAgBzC,YACpB,CAAC0C;QACC,IAAI,CAACA,YAAYA,SAASC,MAAM,KAAK,GAAG;YACtC,OAAOzC,OAAOE,KAAK,GAAGC,KAAK,GAAGuC,aAAa,GAAGrC,GAAG;QACnD;QACA,OAAOL,OAAOE,KAAK,GAAGC,KAAK,GAAGwC,WAAW,CAACH,UAAUnC,GAAG;IACzD,GACA;QAACL;KAAO;IAGV,cAAc;IACd,MAAM4C,qBAAqB9C,YAAY;IACrC,OAAO;IACT,GAAG;QAACE;KAAO;IACX,MAAM6C,YAAY/C,YAAY;IAC5B,OAAO;IACT,GAAG;QAACE;KAAO;IACX,MAAM8C,gBAAgBhD,YAAY;IAChC,OAAO;IACT,GAAG;QAACE;KAAO;IACX,MAAM+C,eAAejD,YAAY;IAC/B,OAAO;IACT,GAAG;QAACE;KAAO;IACX,MAAMgD,gBAAgBlD,YAAY;IAChC,OAAO;IACT,GAAG;QAACE;KAAO;IACX,MAAMiD,aAAanD,YAAY;IAC7B,OAAO;IACT,GAAG;QAACE;KAAO;IACX,MAAMkD,SAASpD,YAAY;IACzB,OAAO;IACT,GAAG;QAACE;KAAO;IACX,MAAMmD,SAASrD,YAAY;IACzB,OAAO;IACT,GAAG;QAACE;KAAO;IACX,MAAMoD,cAActD,YAAY;IAC9B,OAAO;IACT,GAAG;QAACE;KAAO;IAEX,MAAMqD,oBAAoBvD,YAAY;QACpCE,OAAOE,KAAK,GAAGC,KAAK,GAAGmD,UAAU,GAAGC,aAAa,GAAGlD,GAAG;IACzD,GAAG;QAACL;KAAO;IAEX,OAAO;QACLC;QACAK;QACAE;QACAE;QACAE;QACAE;QACAE;QACAE;QACAE;QACAE;QACAC;QACAC;QACAC;QACAG;QACAE;QACAE;QACA,aAAa;QACbO;QACAN;QACAW;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuContentTypes.ts"],"sourcesContent":["import { Editor } from \"@tiptap/react\";\r\nimport { useMemo } from \"react\";\r\nimport { ContentPickerOptions } from \"../components/ContentTypePicker.js\";\r\nimport {\r\n Pilcrow,\r\n Heading1,\r\n Heading2,\r\n Heading3,\r\n List,\r\n ListOrdered,\r\n ListTodo,\r\n} from \"lucide-react\";\r\nimport i18next from \"i18next\";\r\n\r\nexport const useTextmenuContentTypes = (editor: Editor) => {\r\n const options = useMemo<ContentPickerOptions>(() => {\r\n return [\r\n {\r\n type: \"category\",\r\n label: i18next.t(\"hierarchy\") || \"Hierarchy\",\r\n id: \"hierarchy\",\r\n },\r\n {\r\n icon: Pilcrow,\r\n onClick: () =>\r\n editor\r\n .chain()\r\n .focus()\r\n .lift(\"taskItem\")\r\n .liftListItem(\"listItem\")\r\n .setParagraph()\r\n .run(),\r\n id: \"paragraph\",\r\n disabled: () => !editor.can().setParagraph(),\r\n isActive: () =>\r\n editor.isActive(\"paragraph\") &&\r\n !editor.isActive(\"orderedList\") &&\r\n !editor.isActive(\"bulletList\") &&\r\n !editor.isActive(\"taskList\"),\r\n label: i18next.t(\"paragraph\") || \"Paragraph\",\r\n type: \"option\",\r\n },\r\n {\r\n icon: Heading1,\r\n onClick: () =>\r\n editor\r\n .chain()\r\n .focus()\r\n .lift(\"taskItem\")\r\n .liftListItem(\"listItem\")\r\n .setHeading({ level: 1 })\r\n .run(),\r\n id: \"heading1\",\r\n disabled: () => !editor.can().setHeading({ level: 1 }),\r\n isActive: () => editor.isActive(\"heading\", { level: 1 }),\r\n label: i18next.t(\"heading1\") || \"Heading 1\",\r\n type: \"option\",\r\n },\r\n {\r\n icon: Heading2,\r\n onClick: () =>\r\n editor\r\n .chain()\r\n .focus()\r\n .lift(\"taskItem\")\r\n .liftListItem(\"listItem\")\r\n .setHeading({ level: 2 })\r\n .run(),\r\n id: \"heading2\",\r\n disabled: () => !editor.can().setHeading({ level: 2 }),\r\n isActive: () => editor.isActive(\"heading\", { level: 2 }),\r\n label: i18next.t(\"heading2\") || \"Heading 2\",\r\n type: \"option\",\r\n },\r\n {\r\n icon: Heading3,\r\n onClick: () =>\r\n editor\r\n .chain()\r\n .focus()\r\n .lift(\"taskItem\")\r\n .liftListItem(\"listItem\")\r\n .setHeading({ level: 3 })\r\n .run(),\r\n id: \"heading3\",\r\n disabled: () => !editor.can().setHeading({ level: 3 }),\r\n isActive: () => editor.isActive(\"heading\", { level: 3 }),\r\n label: i18next.t(\"heading3\") || \"Heading 3\",\r\n type: \"option\",\r\n },\r\n // {\r\n // type: \"category\",\r\n // label: i18next.t(\"lists\") || \"Lists\",\r\n // id: \"lists\",\r\n // },\r\n {\r\n icon: List,\r\n onClick: () => editor.chain().focus().toggleBulletList().run(),\r\n id: \"bulletList\",\r\n disabled: () => !editor.can().toggleBulletList(),\r\n isActive: () => editor.isActive(\"bulletList\"),\r\n label: i18next.t(\"bulletList\") || \"Bullet list\",\r\n type: \"option\",\r\n },\r\n // {\r\n // icon: ListOrdered,\r\n // onClick: () => editor.chain().focus().toggleOrderedList().run(),\r\n // id: \"orderedList\",\r\n // disabled: () => !editor.can().toggleOrderedList(),\r\n // isActive: () => editor.isActive(\"orderedList\"),\r\n // label: i18next.t(\"numberedList\") || \"Numbered list\",\r\n // type: \"option\",\r\n // },\r\n // {\r\n // icon: ListTodo,\r\n // onClick: () => editor.chain().focus().toggleTaskList().run(),\r\n // id: 'todoList',\r\n // disabled: () => !editor.can().toggleTaskList(),\r\n // isActive: () => editor.isActive('taskList'),\r\n // label: 'Todo list',\r\n // type: 'option',\r\n // },\r\n ];\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [editor, editor.state]);\r\n\r\n return options;\r\n};\r\n"],"names":["useMemo","Pilcrow","Heading1","Heading2","Heading3","List","i18next","useTextmenuContentTypes","editor","options","type","label","t","id","icon","onClick","chain","focus","lift","liftListItem","setParagraph","run","disabled","can","isActive","setHeading","level","toggleBulletList","state"],"mappings":"AACA,SAASA,OAAO,QAAQ,QAAQ;AAEhC,SACEC,OAAO,EACPC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,IAAI,QAGC,eAAe;AACtB,OAAOC,aAAa,UAAU;AAE9B,OAAO,MAAMC,0BAA0B,CAACC;IACtC,MAAMC,UAAUT,QAA8B;QAC5C,OAAO;YACL;gBACEU,MAAM;gBACNC,OAAOL,QAAQM,CAAC,CAAC,gBAAgB;gBACjCC,IAAI;YACN;YACA;gBACEC,MAAMb;gBACNc,SAAS,IACPP,OACGQ,KAAK,GACLC,KAAK,GACLC,IAAI,CAAC,YACLC,YAAY,CAAC,YACbC,YAAY,GACZC,GAAG;gBACRR,IAAI;gBACJS,UAAU,IAAM,CAACd,OAAOe,GAAG,GAAGH,YAAY;gBAC1CI,UAAU,IACRhB,OAAOgB,QAAQ,CAAC,gBAChB,CAAChB,OAAOgB,QAAQ,CAAC,kBACjB,CAAChB,OAAOgB,QAAQ,CAAC,iBACjB,CAAChB,OAAOgB,QAAQ,CAAC;gBACnBb,OAAOL,QAAQM,CAAC,CAAC,gBAAgB;gBACjCF,MAAM;YACR;YACA;gBACEI,MAAMZ;gBACNa,SAAS,IACPP,OACGQ,KAAK,GACLC,KAAK,GACLC,IAAI,CAAC,YACLC,YAAY,CAAC,YACbM,UAAU,CAAC;wBAAEC,OAAO;oBAAE,GACtBL,GAAG;gBACRR,IAAI;gBACJS,UAAU,IAAM,CAACd,OAAOe,GAAG,GAAGE,UAAU,CAAC;wBAAEC,OAAO;oBAAE;gBACpDF,UAAU,IAAMhB,OAAOgB,QAAQ,CAAC,WAAW;wBAAEE,OAAO;oBAAE;gBACtDf,OAAOL,QAAQM,CAAC,CAAC,eAAe;gBAChCF,MAAM;YACR;YACA;gBACEI,MAAMX;gBACNY,SAAS,IACPP,OACGQ,KAAK,GACLC,KAAK,GACLC,IAAI,CAAC,YACLC,YAAY,CAAC,YACbM,UAAU,CAAC;wBAAEC,OAAO;oBAAE,GACtBL,GAAG;gBACRR,IAAI;gBACJS,UAAU,IAAM,CAACd,OAAOe,GAAG,GAAGE,UAAU,CAAC;wBAAEC,OAAO;oBAAE;gBACpDF,UAAU,IAAMhB,OAAOgB,QAAQ,CAAC,WAAW;wBAAEE,OAAO;oBAAE;gBACtDf,OAAOL,QAAQM,CAAC,CAAC,eAAe;gBAChCF,MAAM;YACR;YACA;gBACEI,MAAMV;gBACNW,SAAS,IACPP,OACGQ,KAAK,GACLC,KAAK,GACLC,IAAI,CAAC,YACLC,YAAY,CAAC,YACbM,UAAU,CAAC;wBAAEC,OAAO;oBAAE,GACtBL,GAAG;gBACRR,IAAI;gBACJS,UAAU,IAAM,CAACd,OAAOe,GAAG,GAAGE,UAAU,CAAC;wBAAEC,OAAO;oBAAE;gBACpDF,UAAU,IAAMhB,OAAOgB,QAAQ,CAAC,WAAW;wBAAEE,OAAO;oBAAE;gBACtDf,OAAOL,QAAQM,CAAC,CAAC,eAAe;gBAChCF,MAAM;YACR;YACA,IAAI;YACJ,sBAAsB;YACtB,0CAA0C;YAC1C,iBAAiB;YACjB,KAAK;YACL;gBACEI,MAAMT;gBACNU,SAAS,IAAMP,OAAOQ,KAAK,GAAGC,KAAK,GAAGU,gBAAgB,GAAGN,GAAG;gBAC5DR,IAAI;gBACJS,UAAU,IAAM,CAACd,OAAOe,GAAG,GAAGI,gBAAgB;gBAC9CH,UAAU,IAAMhB,OAAOgB,QAAQ,CAAC;gBAChCb,OAAOL,QAAQM,CAAC,CAAC,iBAAiB;gBAClCF,MAAM;YACR;SAmBD;IACD,uDAAuD;IACzD,GAAG;QAACF;QAAQA,OAAOoB,KAAK;KAAC;IAEzB,OAAOnB;AACT,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuContentTypes.ts"],"sourcesContent":["import { Editor } from \"@tiptap/react\";\nimport { useMemo } from \"react\";\nimport { ContentPickerOptions } from \"../components/ContentTypePicker.js\";\nimport {\n Pilcrow,\n Heading1,\n Heading2,\n Heading3,\n List,\n ListOrdered,\n ListTodo,\n} from \"lucide-react\";\nimport i18next from \"i18next\";\n\nexport const useTextmenuContentTypes = (editor: Editor) => {\n const options = useMemo<ContentPickerOptions>(() => {\n return [\n {\n type: \"category\",\n label: i18next.t(\"hierarchy\") || \"Hierarchy\",\n id: \"hierarchy\",\n },\n {\n icon: Pilcrow,\n onClick: () =>\n editor\n .chain()\n .focus()\n .lift(\"taskItem\")\n .liftListItem(\"listItem\")\n .setParagraph()\n .run(),\n id: \"paragraph\",\n disabled: () => !editor.can().setParagraph(),\n isActive: () =>\n editor.isActive(\"paragraph\") &&\n !editor.isActive(\"orderedList\") &&\n !editor.isActive(\"bulletList\") &&\n !editor.isActive(\"taskList\"),\n label: i18next.t(\"paragraph\") || \"Paragraph\",\n type: \"option\",\n },\n {\n icon: Heading1,\n onClick: () =>\n editor\n .chain()\n .focus()\n .lift(\"taskItem\")\n .liftListItem(\"listItem\")\n .setHeading({ level: 1 })\n .run(),\n id: \"heading1\",\n disabled: () => !editor.can().setHeading({ level: 1 }),\n isActive: () => editor.isActive(\"heading\", { level: 1 }),\n label: i18next.t(\"heading1\") || \"Heading 1\",\n type: \"option\",\n },\n {\n icon: Heading2,\n onClick: () =>\n editor\n .chain()\n .focus()\n .lift(\"taskItem\")\n .liftListItem(\"listItem\")\n .setHeading({ level: 2 })\n .run(),\n id: \"heading2\",\n disabled: () => !editor.can().setHeading({ level: 2 }),\n isActive: () => editor.isActive(\"heading\", { level: 2 }),\n label: i18next.t(\"heading2\") || \"Heading 2\",\n type: \"option\",\n },\n {\n icon: Heading3,\n onClick: () =>\n editor\n .chain()\n .focus()\n .lift(\"taskItem\")\n .liftListItem(\"listItem\")\n .setHeading({ level: 3 })\n .run(),\n id: \"heading3\",\n disabled: () => !editor.can().setHeading({ level: 3 }),\n isActive: () => editor.isActive(\"heading\", { level: 3 }),\n label: i18next.t(\"heading3\") || \"Heading 3\",\n type: \"option\",\n },\n // {\n // type: \"category\",\n // label: i18next.t(\"lists\") || \"Lists\",\n // id: \"lists\",\n // },\n {\n icon: List,\n onClick: () => editor.chain().focus().toggleBulletList().run(),\n id: \"bulletList\",\n disabled: () => !editor.can().toggleBulletList(),\n isActive: () => editor.isActive(\"bulletList\"),\n label: i18next.t(\"bulletList\") || \"Bullet list\",\n type: \"option\",\n },\n // {\n // icon: ListOrdered,\n // onClick: () => editor.chain().focus().toggleOrderedList().run(),\n // id: \"orderedList\",\n // disabled: () => !editor.can().toggleOrderedList(),\n // isActive: () => editor.isActive(\"orderedList\"),\n // label: i18next.t(\"numberedList\") || \"Numbered list\",\n // type: \"option\",\n // },\n // {\n // icon: ListTodo,\n // onClick: () => editor.chain().focus().toggleTaskList().run(),\n // id: 'todoList',\n // disabled: () => !editor.can().toggleTaskList(),\n // isActive: () => editor.isActive('taskList'),\n // label: 'Todo list',\n // type: 'option',\n // },\n ];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editor, editor.state]);\n\n return options;\n};\n"],"names":["useMemo","Pilcrow","Heading1","Heading2","Heading3","List","i18next","useTextmenuContentTypes","editor","options","type","label","t","id","icon","onClick","chain","focus","lift","liftListItem","setParagraph","run","disabled","can","isActive","setHeading","level","toggleBulletList","state"],"mappings":"AACA,SAASA,OAAO,QAAQ,QAAQ;AAEhC,SACEC,OAAO,EACPC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,IAAI,QAGC,eAAe;AACtB,OAAOC,aAAa,UAAU;AAE9B,OAAO,MAAMC,0BAA0B,CAACC;IACtC,MAAMC,UAAUT,QAA8B;QAC5C,OAAO;YACL;gBACEU,MAAM;gBACNC,OAAOL,QAAQM,CAAC,CAAC,gBAAgB;gBACjCC,IAAI;YACN;YACA;gBACEC,MAAMb;gBACNc,SAAS,IACPP,OACGQ,KAAK,GACLC,KAAK,GACLC,IAAI,CAAC,YACLC,YAAY,CAAC,YACbC,YAAY,GACZC,GAAG;gBACRR,IAAI;gBACJS,UAAU,IAAM,CAACd,OAAOe,GAAG,GAAGH,YAAY;gBAC1CI,UAAU,IACRhB,OAAOgB,QAAQ,CAAC,gBAChB,CAAChB,OAAOgB,QAAQ,CAAC,kBACjB,CAAChB,OAAOgB,QAAQ,CAAC,iBACjB,CAAChB,OAAOgB,QAAQ,CAAC;gBACnBb,OAAOL,QAAQM,CAAC,CAAC,gBAAgB;gBACjCF,MAAM;YACR;YACA;gBACEI,MAAMZ;gBACNa,SAAS,IACPP,OACGQ,KAAK,GACLC,KAAK,GACLC,IAAI,CAAC,YACLC,YAAY,CAAC,YACbM,UAAU,CAAC;wBAAEC,OAAO;oBAAE,GACtBL,GAAG;gBACRR,IAAI;gBACJS,UAAU,IAAM,CAACd,OAAOe,GAAG,GAAGE,UAAU,CAAC;wBAAEC,OAAO;oBAAE;gBACpDF,UAAU,IAAMhB,OAAOgB,QAAQ,CAAC,WAAW;wBAAEE,OAAO;oBAAE;gBACtDf,OAAOL,QAAQM,CAAC,CAAC,eAAe;gBAChCF,MAAM;YACR;YACA;gBACEI,MAAMX;gBACNY,SAAS,IACPP,OACGQ,KAAK,GACLC,KAAK,GACLC,IAAI,CAAC,YACLC,YAAY,CAAC,YACbM,UAAU,CAAC;wBAAEC,OAAO;oBAAE,GACtBL,GAAG;gBACRR,IAAI;gBACJS,UAAU,IAAM,CAACd,OAAOe,GAAG,GAAGE,UAAU,CAAC;wBAAEC,OAAO;oBAAE;gBACpDF,UAAU,IAAMhB,OAAOgB,QAAQ,CAAC,WAAW;wBAAEE,OAAO;oBAAE;gBACtDf,OAAOL,QAAQM,CAAC,CAAC,eAAe;gBAChCF,MAAM;YACR;YACA;gBACEI,MAAMV;gBACNW,SAAS,IACPP,OACGQ,KAAK,GACLC,KAAK,GACLC,IAAI,CAAC,YACLC,YAAY,CAAC,YACbM,UAAU,CAAC;wBAAEC,OAAO;oBAAE,GACtBL,GAAG;gBACRR,IAAI;gBACJS,UAAU,IAAM,CAACd,OAAOe,GAAG,GAAGE,UAAU,CAAC;wBAAEC,OAAO;oBAAE;gBACpDF,UAAU,IAAMhB,OAAOgB,QAAQ,CAAC,WAAW;wBAAEE,OAAO;oBAAE;gBACtDf,OAAOL,QAAQM,CAAC,CAAC,eAAe;gBAChCF,MAAM;YACR;YACA,IAAI;YACJ,sBAAsB;YACtB,0CAA0C;YAC1C,iBAAiB;YACjB,KAAK;YACL;gBACEI,MAAMT;gBACNU,SAAS,IAAMP,OAAOQ,KAAK,GAAGC,KAAK,GAAGU,gBAAgB,GAAGN,GAAG;gBAC5DR,IAAI;gBACJS,UAAU,IAAM,CAACd,OAAOe,GAAG,GAAGI,gBAAgB;gBAC9CH,UAAU,IAAMhB,OAAOgB,QAAQ,CAAC;gBAChCb,OAAOL,QAAQM,CAAC,CAAC,iBAAiB;gBAClCF,MAAM;YACR;SAmBD;IACD,uDAAuD;IACzD,GAAG;QAACF;QAAQA,OAAOoB,KAAK;KAAC;IAEzB,OAAOnB;AACT,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuStates.ts"],"sourcesContent":["import { Editor } from \"@tiptap/react\";\r\nimport { useCallback, useMemo } from \"react\";\r\nimport { ShouldShowProps } from \"../../types.js\";\r\nimport {\r\n isCustomNodeSelected,\r\n isTextSelected,\r\n} from \"../../../../lib/utils/index.js\";\r\nimport { supportedSocialMedia } from \"../../../../extensions/SocialMedia/menus/constants.js\";\r\n\r\nexport const useTextmenuStates = (editor: Editor) => {\r\n const shouldShow = useCallback(\r\n ({ view, from }: ShouldShowProps) => {\r\n const isInSocialMedia = supportedSocialMedia?.some((socialMedia) => {\r\n return editor.isActive(socialMedia);\r\n });\r\n if (!view || isInSocialMedia || editor.isActive(\"insideLinks\")) {\r\n return false;\r\n }\r\n\r\n const domAtPos = view.domAtPos(from || 0).node as HTMLElement;\r\n const nodeDOM = view.nodeDOM(from || 0) as HTMLElement;\r\n const node = nodeDOM || domAtPos;\r\n\r\n if (isCustomNodeSelected(editor, node)) {\r\n return false;\r\n }\r\n\r\n return isTextSelected({ editor });\r\n },\r\n [editor]\r\n );\r\n\r\n return {\r\n isBold: editor.isActive(\"bold\"),\r\n isItalic: editor.isActive(\"italic\"),\r\n isStrike: editor.isActive(\"strike\"),\r\n isUnderline: editor.isActive(\"underline\"),\r\n isCode: editor.isActive(\"code\"),\r\n isSubscript: editor.isActive(\"subscript\"),\r\n isSuperscript: editor.isActive(\"superscript\"),\r\n isAlignLeft: editor.isActive({ textAlign: \"left\" }),\r\n isAlignCenter: editor.isActive({ textAlign: \"center\" }),\r\n isAlignRight: editor.isActive({ textAlign: \"right\" }),\r\n isAlignJustify: editor.isActive({ textAlign: \"justify\" }),\r\n currentColor: editor.getAttributes(\"textStyle\")?.color || undefined,\r\n currentHighlight: editor.getAttributes(\"highlight\")?.color || undefined,\r\n currentFont: editor.getAttributes(\"textStyle\")?.fontFamily || undefined,\r\n currentSize: editor.getAttributes(\"textStyle\")?.fontSize || undefined,\r\n shouldShow,\r\n };\r\n};\r\n"],"names":["useCallback","isCustomNodeSelected","isTextSelected","supportedSocialMedia","useTextmenuStates","editor","shouldShow","view","from","isInSocialMedia","some","socialMedia","isActive","domAtPos","node","nodeDOM","isBold","isItalic","isStrike","isUnderline","isCode","isSubscript","isSuperscript","isAlignLeft","textAlign","isAlignCenter","isAlignRight","isAlignJustify","currentColor","getAttributes","color","undefined","currentHighlight","currentFont","fontFamily","currentSize","fontSize"],"mappings":"AACA,SAASA,WAAW,QAAiB,QAAQ;AAE7C,SACEC,oBAAoB,EACpBC,cAAc,QACT,iCAAiC;AACxC,SAASC,oBAAoB,QAAQ,wDAAwD;AAE7F,OAAO,MAAMC,oBAAoB,CAACC;IAChC,MAAMC,aAAaN,YACjB,CAAC,EAAEO,IAAI,EAAEC,IAAI,EAAmB;QAC9B,MAAMC,kBAAkBN,sBAAsBO,KAAK,CAACC;YAClD,OAAON,OAAOO,QAAQ,CAACD;QACzB;QACA,IAAI,CAACJ,QAAQE,mBAAmBJ,OAAOO,QAAQ,CAAC,gBAAgB;YAC9D,OAAO;QACT;QAEA,MAAMC,WAAWN,KAAKM,QAAQ,CAACL,QAAQ,GAAGM,IAAI;QAC9C,MAAMC,UAAUR,KAAKQ,OAAO,CAACP,QAAQ;QACrC,MAAMM,OAAOC,WAAWF;QAExB,IAAIZ,qBAAqBI,QAAQS,OAAO;YACtC,OAAO;QACT;QAEA,OAAOZ,eAAe;YAAEG;QAAO;IACjC,GACA;QAACA;KAAO;IAGV,OAAO;QACLW,QAAQX,OAAOO,QAAQ,CAAC;QACxBK,UAAUZ,OAAOO,QAAQ,CAAC;QAC1BM,UAAUb,OAAOO,QAAQ,CAAC;QAC1BO,aAAad,OAAOO,QAAQ,CAAC;QAC7BQ,QAAQf,OAAOO,QAAQ,CAAC;QACxBS,aAAahB,OAAOO,QAAQ,CAAC;QAC7BU,eAAejB,OAAOO,QAAQ,CAAC;QAC/BW,aAAalB,OAAOO,QAAQ,CAAC;YAAEY,WAAW;QAAO;QACjDC,eAAepB,OAAOO,QAAQ,CAAC;YAAEY,WAAW;QAAS;QACrDE,cAAcrB,OAAOO,QAAQ,CAAC;YAAEY,WAAW;QAAQ;QACnDG,gBAAgBtB,OAAOO,QAAQ,CAAC;YAAEY,WAAW;QAAU;QACvDI,cAAcvB,OAAOwB,aAAa,CAAC,cAAcC,SAASC;QAC1DC,kBAAkB3B,OAAOwB,aAAa,CAAC,cAAcC,SAASC;QAC9DE,aAAa5B,OAAOwB,aAAa,CAAC,cAAcK,cAAcH;QAC9DI,aAAa9B,OAAOwB,aAAa,CAAC,cAAcO,YAAYL;QAC5DzB;IACF;AACF,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuStates.ts"],"sourcesContent":["import { Editor } from \"@tiptap/react\";\nimport { useCallback, useMemo } from \"react\";\nimport { ShouldShowProps } from \"../../types.js\";\nimport {\n isCustomNodeSelected,\n isTextSelected,\n} from \"../../../../lib/utils/index.js\";\nimport { supportedSocialMedia } from \"../../../../extensions/SocialMedia/menus/constants.js\";\n\nexport const useTextmenuStates = (editor: Editor) => {\n const shouldShow = useCallback(\n ({ view, from }: ShouldShowProps) => {\n const isInSocialMedia = supportedSocialMedia?.some((socialMedia) => {\n return editor.isActive(socialMedia);\n });\n if (!view || isInSocialMedia || editor.isActive(\"insideLinks\")) {\n return false;\n }\n\n const domAtPos = view.domAtPos(from || 0).node as HTMLElement;\n const nodeDOM = view.nodeDOM(from || 0) as HTMLElement;\n const node = nodeDOM || domAtPos;\n\n if (isCustomNodeSelected(editor, node)) {\n return false;\n }\n\n return isTextSelected({ editor });\n },\n [editor]\n );\n\n return {\n isBold: editor.isActive(\"bold\"),\n isItalic: editor.isActive(\"italic\"),\n isStrike: editor.isActive(\"strike\"),\n isUnderline: editor.isActive(\"underline\"),\n isCode: editor.isActive(\"code\"),\n isSubscript: editor.isActive(\"subscript\"),\n isSuperscript: editor.isActive(\"superscript\"),\n isAlignLeft: editor.isActive({ textAlign: \"left\" }),\n isAlignCenter: editor.isActive({ textAlign: \"center\" }),\n isAlignRight: editor.isActive({ textAlign: \"right\" }),\n isAlignJustify: editor.isActive({ textAlign: \"justify\" }),\n currentColor: editor.getAttributes(\"textStyle\")?.color || undefined,\n currentHighlight: editor.getAttributes(\"highlight\")?.color || undefined,\n currentFont: editor.getAttributes(\"textStyle\")?.fontFamily || undefined,\n currentSize: editor.getAttributes(\"textStyle\")?.fontSize || undefined,\n shouldShow,\n };\n};\n"],"names":["useCallback","isCustomNodeSelected","isTextSelected","supportedSocialMedia","useTextmenuStates","editor","shouldShow","view","from","isInSocialMedia","some","socialMedia","isActive","domAtPos","node","nodeDOM","isBold","isItalic","isStrike","isUnderline","isCode","isSubscript","isSuperscript","isAlignLeft","textAlign","isAlignCenter","isAlignRight","isAlignJustify","currentColor","getAttributes","color","undefined","currentHighlight","currentFont","fontFamily","currentSize","fontSize"],"mappings":"AACA,SAASA,WAAW,QAAiB,QAAQ;AAE7C,SACEC,oBAAoB,EACpBC,cAAc,QACT,iCAAiC;AACxC,SAASC,oBAAoB,QAAQ,wDAAwD;AAE7F,OAAO,MAAMC,oBAAoB,CAACC;IAChC,MAAMC,aAAaN,YACjB,CAAC,EAAEO,IAAI,EAAEC,IAAI,EAAmB;QAC9B,MAAMC,kBAAkBN,sBAAsBO,KAAK,CAACC;YAClD,OAAON,OAAOO,QAAQ,CAACD;QACzB;QACA,IAAI,CAACJ,QAAQE,mBAAmBJ,OAAOO,QAAQ,CAAC,gBAAgB;YAC9D,OAAO;QACT;QAEA,MAAMC,WAAWN,KAAKM,QAAQ,CAACL,QAAQ,GAAGM,IAAI;QAC9C,MAAMC,UAAUR,KAAKQ,OAAO,CAACP,QAAQ;QACrC,MAAMM,OAAOC,WAAWF;QAExB,IAAIZ,qBAAqBI,QAAQS,OAAO;YACtC,OAAO;QACT;QAEA,OAAOZ,eAAe;YAAEG;QAAO;IACjC,GACA;QAACA;KAAO;IAGV,OAAO;QACLW,QAAQX,OAAOO,QAAQ,CAAC;QACxBK,UAAUZ,OAAOO,QAAQ,CAAC;QAC1BM,UAAUb,OAAOO,QAAQ,CAAC;QAC1BO,aAAad,OAAOO,QAAQ,CAAC;QAC7BQ,QAAQf,OAAOO,QAAQ,CAAC;QACxBS,aAAahB,OAAOO,QAAQ,CAAC;QAC7BU,eAAejB,OAAOO,QAAQ,CAAC;QAC/BW,aAAalB,OAAOO,QAAQ,CAAC;YAAEY,WAAW;QAAO;QACjDC,eAAepB,OAAOO,QAAQ,CAAC;YAAEY,WAAW;QAAS;QACrDE,cAAcrB,OAAOO,QAAQ,CAAC;YAAEY,WAAW;QAAQ;QACnDG,gBAAgBtB,OAAOO,QAAQ,CAAC;YAAEY,WAAW;QAAU;QACvDI,cAAcvB,OAAOwB,aAAa,CAAC,cAAcC,SAASC;QAC1DC,kBAAkB3B,OAAOwB,aAAa,CAAC,cAAcC,SAASC;QAC9DE,aAAa5B,OAAOwB,aAAa,CAAC,cAAcK,cAAcH;QAC9DI,aAAa9B,OAAOwB,aAAa,CAAC,cAAcO,YAAYL;QAC5DzB;IACF;AACF,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/index.tsx"],"sourcesContent":["export * from \"./TextMenu.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/index.tsx"],"sourcesContent":["export * from \"./TextMenu.js\";\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB"}