payload-richtext-tiptap 0.0.39 → 0.0.41

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 (203) hide show
  1. package/README.md +4 -47
  2. package/dist/src/fields/TiptapEditor/Components.js.map +1 -1
  3. package/dist/src/fields/TiptapEditor/context/EditorContext.js.map +1 -1
  4. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/BlockquoteFigure.js.map +1 -1
  5. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Design.js.map +1 -1
  6. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Quote/Quote.js.map +1 -1
  7. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Quote/index.js.map +1 -1
  8. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/QuoteCaption/QuoteCaption.js.map +1 -1
  9. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/QuoteCaption/index.js.map +1 -1
  10. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/index.js.map +1 -1
  11. package/dist/src/fields/TiptapEditor/extensions/Document/Document.js.map +1 -1
  12. package/dist/src/fields/TiptapEditor/extensions/Document/index.js.map +1 -1
  13. package/dist/src/fields/TiptapEditor/extensions/Figcaption/Figcaption.js.map +1 -1
  14. package/dist/src/fields/TiptapEditor/extensions/Figcaption/index.js.map +1 -1
  15. package/dist/src/fields/TiptapEditor/extensions/Figure/Figure.js.map +1 -1
  16. package/dist/src/fields/TiptapEditor/extensions/Figure/index.js.map +1 -1
  17. package/dist/src/fields/TiptapEditor/extensions/FontSize/FontSize.js.map +1 -1
  18. package/dist/src/fields/TiptapEditor/extensions/FontSize/index.js.map +1 -1
  19. package/dist/src/fields/TiptapEditor/extensions/Heading/Heading.js.map +1 -1
  20. package/dist/src/fields/TiptapEditor/extensions/Heading/index.js.map +1 -1
  21. package/dist/src/fields/TiptapEditor/extensions/HorizontalRule/HorizontalRule.js.map +1 -1
  22. package/dist/src/fields/TiptapEditor/extensions/HorizontalRule/index.js.map +1 -1
  23. package/dist/src/fields/TiptapEditor/extensions/Iframe/iframe.js.map +1 -1
  24. package/dist/src/fields/TiptapEditor/extensions/Iframe/index.js.map +1 -1
  25. package/dist/src/fields/TiptapEditor/extensions/Iframe/menus/IframeMenu.js.map +1 -1
  26. package/dist/src/fields/TiptapEditor/extensions/Iframe/menus/index.js.map +1 -1
  27. package/dist/src/fields/TiptapEditor/extensions/Image/Image.js.map +1 -1
  28. package/dist/src/fields/TiptapEditor/extensions/Image/index.js.map +1 -1
  29. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/ImageBlock.js.map +1 -1
  30. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockMenu.js.map +1 -1
  31. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.js.map +1 -1
  32. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockWidth.js.map +1 -1
  33. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/index.js.map +1 -1
  34. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.js.map +1 -1
  35. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/index.js.map +1 -1
  36. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.js.map +1 -1
  37. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.js.map +1 -1
  38. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/hooks.js.map +1 -1
  39. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/index.js.map +1 -1
  40. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLink.client.js.map +1 -1
  41. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLinksComponent.js.map +1 -1
  42. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/index.js.map +1 -1
  43. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/insideLinks.js.map +1 -1
  44. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/InsideLinksMenu.js.map +1 -1
  45. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/index.js.map +1 -1
  46. package/dist/src/fields/TiptapEditor/extensions/Link/Link.js.map +1 -1
  47. package/dist/src/fields/TiptapEditor/extensions/Link/index.js.map +1 -1
  48. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Column.js.map +1 -1
  49. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Columns.js.map +1 -1
  50. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/index.js.map +1 -1
  51. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/ColumnsMenu.js.map +1 -1
  52. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/index.js.map +1 -1
  53. package/dist/src/fields/TiptapEditor/extensions/Paragraph/Paragraph.js.map +1 -1
  54. package/dist/src/fields/TiptapEditor/extensions/Paragraph/index.js.map +1 -1
  55. package/dist/src/fields/TiptapEditor/extensions/Selection/Selection.js.map +1 -1
  56. package/dist/src/fields/TiptapEditor/extensions/Selection/index.js.map +1 -1
  57. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.js.map +1 -1
  58. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.js.map +1 -1
  59. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/SlashCommand.js.map +1 -1
  60. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/groups.js.map +1 -1
  61. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/index.js.map +1 -1
  62. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/types.js.map +1 -1
  63. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/FacebookEmbed.js.map +1 -1
  64. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.js.map +1 -1
  65. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/index.js.map +1 -1
  66. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.js.map +1 -1
  67. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/index.js.map +1 -1
  68. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.js.map +1 -1
  69. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/LinkedinEmbed.js.map +1 -1
  70. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/index.js.map +1 -1
  71. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.js.map +1 -1
  72. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.js.map +1 -1
  73. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/TiktokEmbed.js.map +1 -1
  74. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/index.js.map +1 -1
  75. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.js.map +1 -1
  76. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/TwitterEmbed.js.map +1 -1
  77. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/index.js.map +1 -1
  78. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.js.map +1 -1
  79. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/YoutubeEmbed.js.map +1 -1
  80. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/index.js.map +1 -1
  81. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.js.map +1 -1
  82. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/index.js.map +1 -1
  83. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/SocialMediaMenu.js.map +1 -1
  84. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/constants.js.map +1 -1
  85. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/index.js.map +1 -1
  86. package/dist/src/fields/TiptapEditor/extensions/Table/Cell.js.map +1 -1
  87. package/dist/src/fields/TiptapEditor/extensions/Table/Header.js.map +1 -1
  88. package/dist/src/fields/TiptapEditor/extensions/Table/Row.js.map +1 -1
  89. package/dist/src/fields/TiptapEditor/extensions/Table/Table.js.map +1 -1
  90. package/dist/src/fields/TiptapEditor/extensions/Table/index.js.map +1 -1
  91. package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableColumn/index.js.map +1 -1
  92. package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableColumn/utils.js.map +1 -1
  93. package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableRow/index.js.map +1 -1
  94. package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableRow/utils.js.map +1 -1
  95. package/dist/src/fields/TiptapEditor/extensions/Table/menus/index.js.map +1 -1
  96. package/dist/src/fields/TiptapEditor/extensions/Table/utils.js.map +1 -1
  97. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js.map +1 -1
  98. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.js.map +1 -1
  99. package/dist/src/fields/TiptapEditor/extensions/TrailingNode/index.js.map +1 -1
  100. package/dist/src/fields/TiptapEditor/extensions/TrailingNode/trailing-node.js.map +1 -1
  101. package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts +1 -1
  102. package/dist/src/fields/TiptapEditor/extensions/extension-kit.js.map +1 -1
  103. package/dist/src/fields/TiptapEditor/extensions/index.js.map +1 -1
  104. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts +1 -1
  105. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts.map +1 -1
  106. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js +2 -3
  107. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js.map +1 -1
  108. package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.js.map +1 -1
  109. package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorInfo.js.map +1 -1
  110. package/dist/src/fields/TiptapEditor/features/BlockEditor/index.js.map +1 -1
  111. package/dist/src/fields/TiptapEditor/features/BlockEditor/types.d.ts +0 -1
  112. package/dist/src/fields/TiptapEditor/features/BlockEditor/types.d.ts.map +1 -1
  113. package/dist/src/fields/TiptapEditor/features/BlockEditor/types.js.map +1 -1
  114. package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js.map +1 -1
  115. package/dist/src/fields/TiptapEditor/features/Sidebar/index.js.map +1 -1
  116. package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.js.map +1 -1
  117. package/dist/src/fields/TiptapEditor/features/TableOfContents/index.js.map +1 -1
  118. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.js.map +1 -1
  119. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/hooks/useContentItemActions.js.map +1 -1
  120. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/hooks/useData.js.map +1 -1
  121. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/index.js.map +1 -1
  122. package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.js.map +1 -1
  123. package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/index.js.map +1 -1
  124. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.js.map +1 -1
  125. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.js.map +1 -1
  126. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/EditIframeLinkPopover.js.map +1 -1
  127. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/EditLinkPopover.js.map +1 -1
  128. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.js.map +1 -1
  129. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.js.map +1 -1
  130. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/SocialMediaPopover.js.map +1 -1
  131. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.js.map +1 -1
  132. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js.map +1 -1
  133. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuCommands.js.map +1 -1
  134. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuContentTypes.js.map +1 -1
  135. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuStates.js.map +1 -1
  136. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/index.js.map +1 -1
  137. package/dist/src/fields/TiptapEditor/features/menus/index.js.map +1 -1
  138. package/dist/src/fields/TiptapEditor/features/menus/types.js.map +1 -1
  139. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js.map +1 -1
  140. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/index.js.map +1 -1
  141. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/ColorButton.js.map +1 -1
  142. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/Colorpicker.js.map +1 -1
  143. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/index.js.map +1 -1
  144. package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js.map +1 -1
  145. package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/index.js.map +1 -1
  146. package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/InsideLinksEditorPanel.js.map +1 -1
  147. package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/index.js.map +1 -1
  148. package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/LinkEditorPanel.js.map +1 -1
  149. package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/index.js.map +1 -1
  150. package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/LinkPreviewPanel.js.map +1 -1
  151. package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/index.js.map +1 -1
  152. package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js.map +1 -1
  153. package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/index.js.map +1 -1
  154. package/dist/src/fields/TiptapEditor/features/panels/index.js.map +1 -1
  155. package/dist/src/fields/TiptapEditor/features/ui/Button/Button.js.map +1 -1
  156. package/dist/src/fields/TiptapEditor/features/ui/Button/index.js.map +1 -1
  157. package/dist/src/fields/TiptapEditor/features/ui/Dropdown/Dropdown.js.map +1 -1
  158. package/dist/src/fields/TiptapEditor/features/ui/Dropdown/index.js.map +1 -1
  159. package/dist/src/fields/TiptapEditor/features/ui/Icon.js.map +1 -1
  160. package/dist/src/fields/TiptapEditor/features/ui/Loader/Loader.js.map +1 -1
  161. package/dist/src/fields/TiptapEditor/features/ui/Loader/index.js.map +1 -1
  162. package/dist/src/fields/TiptapEditor/features/ui/Loader/types.js.map +1 -1
  163. package/dist/src/fields/TiptapEditor/features/ui/Panel/index.js.map +1 -1
  164. package/dist/src/fields/TiptapEditor/features/ui/PopoverMenu.js.map +1 -1
  165. package/dist/src/fields/TiptapEditor/features/ui/Spinner/Spinner.js.map +1 -1
  166. package/dist/src/fields/TiptapEditor/features/ui/Spinner/index.js.map +1 -1
  167. package/dist/src/fields/TiptapEditor/features/ui/Surface.js.map +1 -1
  168. package/dist/src/fields/TiptapEditor/features/ui/Textarea/Textarea.js.map +1 -1
  169. package/dist/src/fields/TiptapEditor/features/ui/Textarea/index.js.map +1 -1
  170. package/dist/src/fields/TiptapEditor/features/ui/Toggle/Toggle.js.map +1 -1
  171. package/dist/src/fields/TiptapEditor/features/ui/Toggle/index.js.map +1 -1
  172. package/dist/src/fields/TiptapEditor/features/ui/Toolbar.js.map +1 -1
  173. package/dist/src/fields/TiptapEditor/features/ui/Tooltip/index.js.map +1 -1
  174. package/dist/src/fields/TiptapEditor/features/ui/Tooltip/types.js.map +1 -1
  175. package/dist/src/fields/TiptapEditor/features/ui/crazy-spinner.js.map +1 -1
  176. package/dist/src/fields/TiptapEditor/features/ui/scroll-area.js.map +1 -1
  177. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.d.ts +1 -2
  178. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.d.ts.map +1 -1
  179. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js +1 -2
  180. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js.map +1 -1
  181. package/dist/src/fields/TiptapEditor/hooks/useSidebar.js.map +1 -1
  182. package/dist/src/fields/TiptapEditor/index.js.map +1 -1
  183. package/dist/src/fields/TiptapEditor/lib/api.js.map +1 -1
  184. package/dist/src/fields/TiptapEditor/lib/constants.js.map +1 -1
  185. package/dist/src/fields/TiptapEditor/lib/data/initialContent.js.map +1 -1
  186. package/dist/src/fields/TiptapEditor/lib/extract.d.ts +3 -0
  187. package/dist/src/fields/TiptapEditor/lib/extract.d.ts.map +1 -0
  188. package/dist/src/fields/TiptapEditor/lib/extract.js +27 -0
  189. package/dist/src/fields/TiptapEditor/lib/extract.js.map +1 -0
  190. package/dist/src/fields/TiptapEditor/lib/utils/cssVar.js.map +1 -1
  191. package/dist/src/fields/TiptapEditor/lib/utils/deepMerge.js.map +1 -1
  192. package/dist/src/fields/TiptapEditor/lib/utils/getRenderContainer.js.map +1 -1
  193. package/dist/src/fields/TiptapEditor/lib/utils/index.js.map +1 -1
  194. package/dist/src/fields/TiptapEditor/lib/utils/isCustomNodeSelected.js.map +1 -1
  195. package/dist/src/fields/TiptapEditor/lib/utils/isRtl.js.map +1 -1
  196. package/dist/src/fields/TiptapEditor/lib/utils/isTextSelected.js.map +1 -1
  197. package/dist/src/fields/TiptapEditor/lib/utils/partialRequired.js.map +1 -1
  198. package/dist/src/index.d.ts +1 -0
  199. package/dist/src/index.d.ts.map +1 -1
  200. package/dist/src/index.js +1 -0
  201. package/dist/src/index.js.map +1 -1
  202. package/dist/tsconfig.tsbuildinfo +1 -1
  203. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/TrailingNode/trailing-node.ts"],"sourcesContent":["import { Extension } from \"@tiptap/core\";\nimport { Plugin, PluginKey } from \"@tiptap/pm/state\";\n\n// @ts-ignore\nfunction nodeEqualsType({ types, node }) {\n return (\n (Array.isArray(types) && types.includes(node.type)) || node.type === types\n );\n}\n\n/**\n * Extension based on:\n * - https://github.com/ueberdosis/tiptap/blob/v1/packages/tiptap-extensions/src/extensions/TrailingNode.js\n * - https://github.com/remirror/remirror/blob/e0f1bec4a1e8073ce8f5500d62193e52321155b9/packages/prosemirror-trailing-node/src/trailing-node-plugin.ts\n */\n\nexport interface TrailingNodeOptions {\n node: string;\n notAfter: string[];\n}\n\nexport const TrailingNode = Extension.create<TrailingNodeOptions>({\n name: \"trailingNode\",\n\n addOptions() {\n return {\n node: \"paragraph\",\n notAfter: [\"paragraph\"],\n };\n },\n\n addProseMirrorPlugins() {\n const plugin = new PluginKey(this.name);\n const disabledNodes = Object.entries(this.editor.schema.nodes)\n .map(([, value]) => value)\n .filter((node) => this.options.notAfter.includes(node.name));\n\n return [\n new Plugin({\n key: plugin,\n appendTransaction: (_, __, state) => {\n const { doc, tr, schema } = state;\n const shouldInsertNodeAtEnd = plugin.getState(state);\n const endPosition = doc.content.size;\n const type = schema.nodes[this.options.node];\n\n if (!shouldInsertNodeAtEnd) {\n return;\n }\n\n // eslint-disable-next-line consistent-return\n return tr.insert(endPosition, type.create());\n },\n state: {\n init: (_, state) => {\n const lastNode = state.tr.doc.lastChild;\n\n return !nodeEqualsType({ node: lastNode, types: disabledNodes });\n },\n apply: (tr, value) => {\n if (!tr.docChanged) {\n return value;\n }\n\n const lastNode = tr.doc.lastChild;\n\n return !nodeEqualsType({ node: lastNode, types: disabledNodes });\n },\n },\n }),\n ];\n },\n});\n"],"names":["Extension","Plugin","PluginKey","nodeEqualsType","types","node","Array","isArray","includes","type","TrailingNode","create","name","addOptions","notAfter","addProseMirrorPlugins","plugin","disabledNodes","Object","entries","editor","schema","nodes","map","value","filter","options","key","appendTransaction","_","__","state","doc","tr","shouldInsertNodeAtEnd","getState","endPosition","content","size","insert","init","lastNode","lastChild","apply","docChanged"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,SAAS,QAAQ,eAAe;AACzC,SAASC,MAAM,EAAEC,SAAS,QAAQ,mBAAmB;AAErD,aAAa;AACb,SAASC,eAAe,EAAEC,KAAK,EAAEC,IAAI,EAAE;IACrC,OACE,AAACC,MAAMC,OAAO,CAACH,UAAUA,MAAMI,QAAQ,CAACH,KAAKI,IAAI,KAAMJ,KAAKI,IAAI,KAAKL;AAEzE;AAaA,OAAO,MAAMM,eAAeV,UAAUW,MAAM,CAAsB;IAChEC,MAAM;IAENC;QACE,OAAO;YACLR,MAAM;YACNS,UAAU;gBAAC;aAAY;QACzB;IACF;IAEAC;QACE,MAAMC,SAAS,IAAId,UAAU,IAAI,CAACU,IAAI;QACtC,MAAMK,gBAAgBC,OAAOC,OAAO,CAAC,IAAI,CAACC,MAAM,CAACC,MAAM,CAACC,KAAK,EAC1DC,GAAG,CAAC,CAAC,GAAGC,MAAM,GAAKA,OACnBC,MAAM,CAAC,CAACpB,OAAS,IAAI,CAACqB,OAAO,CAACZ,QAAQ,CAACN,QAAQ,CAACH,KAAKO,IAAI;QAE5D,OAAO;YACL,IAAIX,OAAO;gBACT0B,KAAKX;gBACLY,mBAAmB,CAACC,GAAGC,IAAIC;oBACzB,MAAM,EAAEC,GAAG,EAAEC,EAAE,EAAEZ,MAAM,EAAE,GAAGU;oBAC5B,MAAMG,wBAAwBlB,OAAOmB,QAAQ,CAACJ;oBAC9C,MAAMK,cAAcJ,IAAIK,OAAO,CAACC,IAAI;oBACpC,MAAM7B,OAAOY,OAAOC,KAAK,CAAC,IAAI,CAACI,OAAO,CAACrB,IAAI,CAAC;oBAE5C,IAAI,CAAC6B,uBAAuB;wBAC1B;oBACF;oBAEA,6CAA6C;oBAC7C,OAAOD,GAAGM,MAAM,CAACH,aAAa3B,KAAKE,MAAM;gBAC3C;gBACAoB,OAAO;oBACLS,MAAM,CAACX,GAAGE;wBACR,MAAMU,WAAWV,MAAME,EAAE,CAACD,GAAG,CAACU,SAAS;wBAEvC,OAAO,CAACvC,eAAe;4BAAEE,MAAMoC;4BAAUrC,OAAOa;wBAAc;oBAChE;oBACA0B,OAAO,CAACV,IAAIT;wBACV,IAAI,CAACS,GAAGW,UAAU,EAAE;4BAClB,OAAOpB;wBACT;wBAEA,MAAMiB,WAAWR,GAAGD,GAAG,CAACU,SAAS;wBAEjC,OAAO,CAACvC,eAAe;4BAAEE,MAAMoC;4BAAUrC,OAAOa;wBAAc;oBAChE;gBACF;YACF;SACD;IACH;AACF,GAAG"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/TrailingNode/trailing-node.ts"],"sourcesContent":["import { Extension } from \"@tiptap/core\";\nimport { Plugin, PluginKey } from \"@tiptap/pm/state\";\n\n// @ts-ignore\nfunction nodeEqualsType({ types, node }) {\n return (\n (Array.isArray(types) && types.includes(node.type)) || node.type === types\n );\n}\n\n/**\n * Extension based on:\n * - https://github.com/ueberdosis/tiptap/blob/v1/packages/tiptap-extensions/src/extensions/TrailingNode.js\n * - https://github.com/remirror/remirror/blob/e0f1bec4a1e8073ce8f5500d62193e52321155b9/packages/prosemirror-trailing-node/src/trailing-node-plugin.ts\n */\n\nexport interface TrailingNodeOptions {\n node: string;\n notAfter: string[];\n}\n\nexport const TrailingNode = Extension.create<TrailingNodeOptions>({\n name: \"trailingNode\",\n\n addOptions() {\n return {\n node: \"paragraph\",\n notAfter: [\"paragraph\"],\n };\n },\n\n addProseMirrorPlugins() {\n const plugin = new PluginKey(this.name);\n const disabledNodes = Object.entries(this.editor.schema.nodes)\n .map(([, value]) => value)\n .filter((node) => this.options.notAfter.includes(node.name));\n\n return [\n new Plugin({\n key: plugin,\n appendTransaction: (_, __, state) => {\n const { doc, tr, schema } = state;\n const shouldInsertNodeAtEnd = plugin.getState(state);\n const endPosition = doc.content.size;\n const type = schema.nodes[this.options.node];\n\n if (!shouldInsertNodeAtEnd) {\n return;\n }\n\n // eslint-disable-next-line consistent-return\n return tr.insert(endPosition, type.create());\n },\n state: {\n init: (_, state) => {\n const lastNode = state.tr.doc.lastChild;\n\n return !nodeEqualsType({ node: lastNode, types: disabledNodes });\n },\n apply: (tr, value) => {\n if (!tr.docChanged) {\n return value;\n }\n\n const lastNode = tr.doc.lastChild;\n\n return !nodeEqualsType({ node: lastNode, types: disabledNodes });\n },\n },\n }),\n ];\n },\n});\n"],"names":["Extension","Plugin","PluginKey","nodeEqualsType","types","node","Array","isArray","includes","type","TrailingNode","create","name","addOptions","notAfter","addProseMirrorPlugins","plugin","disabledNodes","Object","entries","editor","schema","nodes","map","value","filter","options","key","appendTransaction","_","__","state","doc","tr","shouldInsertNodeAtEnd","getState","endPosition","content","size","insert","init","lastNode","lastChild","apply","docChanged"],"mappings":"AAAA,SAASA,SAAS,QAAQ,eAAe;AACzC,SAASC,MAAM,EAAEC,SAAS,QAAQ,mBAAmB;AAErD,aAAa;AACb,SAASC,eAAe,EAAEC,KAAK,EAAEC,IAAI,EAAE;IACrC,OACE,AAACC,MAAMC,OAAO,CAACH,UAAUA,MAAMI,QAAQ,CAACH,KAAKI,IAAI,KAAMJ,KAAKI,IAAI,KAAKL;AAEzE;AAaA,OAAO,MAAMM,eAAeV,UAAUW,MAAM,CAAsB;IAChEC,MAAM;IAENC;QACE,OAAO;YACLR,MAAM;YACNS,UAAU;gBAAC;aAAY;QACzB;IACF;IAEAC;QACE,MAAMC,SAAS,IAAId,UAAU,IAAI,CAACU,IAAI;QACtC,MAAMK,gBAAgBC,OAAOC,OAAO,CAAC,IAAI,CAACC,MAAM,CAACC,MAAM,CAACC,KAAK,EAC1DC,GAAG,CAAC,CAAC,GAAGC,MAAM,GAAKA,OACnBC,MAAM,CAAC,CAACpB,OAAS,IAAI,CAACqB,OAAO,CAACZ,QAAQ,CAACN,QAAQ,CAACH,KAAKO,IAAI;QAE5D,OAAO;YACL,IAAIX,OAAO;gBACT0B,KAAKX;gBACLY,mBAAmB,CAACC,GAAGC,IAAIC;oBACzB,MAAM,EAAEC,GAAG,EAAEC,EAAE,EAAEZ,MAAM,EAAE,GAAGU;oBAC5B,MAAMG,wBAAwBlB,OAAOmB,QAAQ,CAACJ;oBAC9C,MAAMK,cAAcJ,IAAIK,OAAO,CAACC,IAAI;oBACpC,MAAM7B,OAAOY,OAAOC,KAAK,CAAC,IAAI,CAACI,OAAO,CAACrB,IAAI,CAAC;oBAE5C,IAAI,CAAC6B,uBAAuB;wBAC1B;oBACF;oBAEA,6CAA6C;oBAC7C,OAAOD,GAAGM,MAAM,CAACH,aAAa3B,KAAKE,MAAM;gBAC3C;gBACAoB,OAAO;oBACLS,MAAM,CAACX,GAAGE;wBACR,MAAMU,WAAWV,MAAME,EAAE,CAACD,GAAG,CAACU,SAAS;wBAEvC,OAAO,CAACvC,eAAe;4BAAEE,MAAMoC;4BAAUrC,OAAOa;wBAAc;oBAChE;oBACA0B,OAAO,CAACV,IAAIT;wBACV,IAAI,CAACS,GAAGW,UAAU,EAAE;4BAClB,OAAOpB;wBACT;wBAEA,MAAMiB,WAAWR,GAAGD,GAAG,CAACU,SAAS;wBAEjC,OAAO,CAACvC,eAAe;4BAAEE,MAAMoC;4BAAUrC,OAAOa;wBAAc;oBAChE;gBACF;YACF;SACD;IACH;AACF,GAAG"}
@@ -1,6 +1,6 @@
1
1
  interface ExtensionKitProps {
2
2
  dir?: "rtl" | "ltr";
3
3
  }
4
- export declare const ExtensionKit: ({ dir }: ExtensionKitProps) => (import("@tiptap/core").Node<any, any> | import("@tiptap/core").Extension<any, any> | import("@tiptap/core").Mark<import("@tiptap/extension-subscript").SubscriptExtensionOptions, any>)[];
4
+ export declare const ExtensionKit: ({ dir }: ExtensionKitProps) => (import("@tiptap/core").Extension<any, any> | import("@tiptap/core").Node<any, any> | import("@tiptap/core").Mark<import("@tiptap/extension-subscript").SubscriptExtensionOptions, any>)[];
5
5
  export default ExtensionKit;
6
6
  //# sourceMappingURL=extension-kit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/fields/TiptapEditor/extensions/extension-kit.ts"],"sourcesContent":["import {\n BlockquoteFigure,\n CharacterCount,\n Color,\n Document,\n Dropcursor,\n Emoji,\n Figcaption,\n FileHandler,\n Focus,\n FontFamily,\n FontSize,\n Heading,\n Highlight,\n HorizontalRule,\n ImageBlock,\n Link,\n Placeholder,\n Selection,\n SlashCommand,\n StarterKit,\n Subscript,\n Superscript,\n Table,\n TableOfContents,\n TableCell,\n TableHeader,\n TableRow,\n TextAlign,\n TextStyle,\n TrailingNode,\n Typography,\n Underline,\n // emojiSuggestion,\n Columns,\n Column,\n TaskItem,\n TaskList,\n Twitter,\n Tiktok,\n Instagram,\n Facebook,\n Linkedin,\n Youtube,\n Paragraph,\n InsideLinks,\n} from \"./index.js\";\n\nimport { CodeBlockLowlight } from \"@tiptap/extension-code-block-lowlight\";\nimport { ImageUpload } from \"./ImageUpload/ImageUpload.js\";\nimport { TableOfContentsNode } from \"./TableOfContentsNode/TableOfContentsNode.js\";\nimport lowlight from \"lowlight\";\nimport TextDirection from \"tiptap-text-direction\";\n\nimport API from \"../lib/api.js\";\nimport History from \"@tiptap/extension-history\";\nimport { Iframe } from \"./Iframe/iframe.js\";\n\ninterface ExtensionKitProps {\n dir?: \"rtl\" | \"ltr\";\n}\n\nexport const ExtensionKit = ({ dir }: ExtensionKitProps) => [\n Document,\n Columns,\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n Column,\n Selection,\n Heading.configure({\n levels: [1, 2, 3, 4, 5, 6],\n }),\n HorizontalRule,\n StarterKit.configure({\n document: false,\n dropcursor: false,\n heading: false,\n horizontalRule: false,\n blockquote: false,\n history: false,\n codeBlock: false,\n }),\n CodeBlockLowlight.configure({\n lowlight,\n defaultLanguage: null,\n }),\n TextStyle,\n FontSize,\n FontFamily,\n Color,\n TrailingNode,\n Link.configure({\n openOnClick: false,\n }),\n Highlight.configure({ multicolor: true }),\n Underline,\n CharacterCount.configure({ limit: 50000 }),\n TableOfContents,\n TableOfContentsNode,\n ImageUpload.configure({}),\n ImageBlock,\n FileHandler.configure({\n allowedMimeTypes: [\"image/png\", \"image/jpeg\", \"image/gif\", \"image/webp\"],\n onDrop: (currentEditor, files, pos) => {\n files.forEach(async () => {\n const url = await API.uploadImage();\n\n currentEditor.chain().setImageBlockAt({ pos, src: url }).focus().run();\n });\n },\n onPaste: (currentEditor, files) => {\n files.forEach(async () => {\n const url = await API.uploadImage();\n\n return currentEditor\n .chain()\n .setImageBlockAt({\n pos: currentEditor.state.selection.anchor,\n src: url,\n })\n .focus()\n .run();\n });\n },\n }),\n // Emoji.configure({\n // enableEmoticons: true,\n // suggestion: emojiSuggestion,\n // }),\n TextAlign.extend({\n addKeyboardShortcuts() {\n return {};\n },\n }).configure({\n types: [\"heading\", \"paragraph\"],\n }),\n Subscript,\n Superscript,\n Table,\n TableCell,\n TableHeader,\n TableRow,\n Typography,\n Placeholder.configure({\n includeChildren: true,\n showOnlyCurrent: false,\n placeholder: () => \"\",\n }),\n SlashCommand,\n Focus,\n Figcaption,\n BlockquoteFigure,\n Dropcursor.configure({\n width: 2,\n class: \"ProseMirror-dropcursor border-black\",\n }),\n History,\n Iframe,\n Twitter,\n Tiktok,\n Instagram,\n Facebook,\n Linkedin,\n Youtube,\n // Paragraph,\n InsideLinks,\n TextDirection.configure({\n types: [\"heading\", \"paragraph\"],\n }),\n];\n\nexport default ExtensionKit;\n"],"names":["BlockquoteFigure","CharacterCount","Color","Document","Dropcursor","Figcaption","FileHandler","Focus","FontFamily","FontSize","Heading","Highlight","HorizontalRule","ImageBlock","Link","Placeholder","Selection","SlashCommand","StarterKit","Subscript","Superscript","Table","TableOfContents","TableCell","TableHeader","TableRow","TextAlign","TextStyle","TrailingNode","Typography","Underline","Columns","Column","TaskItem","TaskList","Twitter","Tiktok","Instagram","Facebook","Linkedin","Youtube","InsideLinks","CodeBlockLowlight","ImageUpload","TableOfContentsNode","lowlight","TextDirection","API","History","Iframe","ExtensionKit","dir","configure","nested","levels","document","dropcursor","heading","horizontalRule","blockquote","history","codeBlock","defaultLanguage","openOnClick","multicolor","limit","allowedMimeTypes","onDrop","currentEditor","files","pos","forEach","url","uploadImage","chain","setImageBlockAt","src","focus","run","onPaste","state","selection","anchor","extend","addKeyboardShortcuts","types","includeChildren","showOnlyCurrent","placeholder","width","class"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SACEA,gBAAgB,EAChBC,cAAc,EACdC,KAAK,EACLC,QAAQ,EACRC,UAAU,EAEVC,UAAU,EACVC,WAAW,EACXC,KAAK,EACLC,UAAU,EACVC,QAAQ,EACRC,OAAO,EACPC,SAAS,EACTC,cAAc,EACdC,UAAU,EACVC,IAAI,EACJC,WAAW,EACXC,SAAS,EACTC,YAAY,EACZC,UAAU,EACVC,SAAS,EACTC,WAAW,EACXC,KAAK,EACLC,eAAe,EACfC,SAAS,EACTC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,SAAS,EACTC,YAAY,EACZC,UAAU,EACVC,SAAS,EAETC,AADA,mBAAmB;AACnBA,OAAO,EACPC,MAAM,EACNC,QAAQ,EACRC,QAAQ,EACRC,OAAO,EACPC,MAAM,EACNC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,OAAO,EAEPC,WAAW,QACN,aAAa;AAEpB,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,WAAW,QAAQ,+BAA+B;AAC3D,SAASC,mBAAmB,QAAQ,+CAA+C;AACnF,OAAOC,cAAc,WAAW;AAChC,OAAOC,mBAAmB,wBAAwB;AAElD,OAAOC,SAAS,gBAAgB;AAChC,OAAOC,aAAa,4BAA4B;AAChD,SAASC,MAAM,QAAQ,qBAAqB;AAM5C,OAAO,MAAMC,eAAe,CAAC,EAAEC,GAAG,EAAqB,GAAK;QAC1DhD;QACA4B;QACAG;QACAD,SAASmB,SAAS,CAAC;YACjBC,QAAQ;QACV;QACArB;QACAhB;QACAN,QAAQ0C,SAAS,CAAC;YAChBE,QAAQ;gBAAC;gBAAG;gBAAG;gBAAG;gBAAG;gBAAG;aAAE;QAC5B;QACA1C;QACAM,WAAWkC,SAAS,CAAC;YACnBG,UAAU;YACVC,YAAY;YACZC,SAAS;YACTC,gBAAgB;YAChBC,YAAY;YACZC,SAAS;YACTC,WAAW;QACb;QACAnB,kBAAkBU,SAAS,CAAC;YAC1BP;YACAiB,iBAAiB;QACnB;QACAnC;QACAlB;QACAD;QACAN;QACA0B;QACAd,KAAKsC,SAAS,CAAC;YACbW,aAAa;QACf;QACApD,UAAUyC,SAAS,CAAC;YAAEY,YAAY;QAAK;QACvClC;QACA7B,eAAemD,SAAS,CAAC;YAAEa,OAAO;QAAM;QACxC3C;QACAsB;QACAD,YAAYS,SAAS,CAAC,CAAC;QACvBvC;QACAP,YAAY8C,SAAS,CAAC;YACpBc,kBAAkB;gBAAC;gBAAa;gBAAc;gBAAa;aAAa;YACxEC,QAAQ,CAACC,eAAeC,OAAOC;gBAC7BD,MAAME,OAAO,CAAC;oBACZ,MAAMC,MAAM,MAAMzB,IAAI0B,WAAW;oBAEjCL,cAAcM,KAAK,GAAGC,eAAe,CAAC;wBAAEL;wBAAKM,KAAKJ;oBAAI,GAAGK,KAAK,GAAGC,GAAG;gBACtE;YACF;YACAC,SAAS,CAACX,eAAeC;gBACvBA,MAAME,OAAO,CAAC;oBACZ,MAAMC,MAAM,MAAMzB,IAAI0B,WAAW;oBAEjC,OAAOL,cACJM,KAAK,GACLC,eAAe,CAAC;wBACfL,KAAKF,cAAcY,KAAK,CAACC,SAAS,CAACC,MAAM;wBACzCN,KAAKJ;oBACP,GACCK,KAAK,GACLC,GAAG;gBACR;YACF;QACF;QACA,oBAAoB;QACpB,2BAA2B;QAC3B,iCAAiC;QACjC,MAAM;QACNpD,UAAUyD,MAAM,CAAC;YACfC;gBACE,OAAO,CAAC;YACV;QACF,GAAGhC,SAAS,CAAC;YACXiC,OAAO;gBAAC;gBAAW;aAAY;QACjC;QACAlE;QACAC;QACAC;QACAE;QACAC;QACAC;QACAI;QACAd,YAAYqC,SAAS,CAAC;YACpBkC,iBAAiB;YACjBC,iBAAiB;YACjBC,aAAa,IAAM;QACrB;QACAvE;QACAV;QACAF;QACAL;QACAI,WAAWgD,SAAS,CAAC;YACnBqC,OAAO;YACPC,OAAO;QACT;QACA1C;QACAC;QACAd;QACAC;QACAC;QACAC;QACAC;QACAC;QACA,aAAa;QACbC;QACAK,cAAcM,SAAS,CAAC;YACtBiC,OAAO;gBAAC;gBAAW;aAAY;QACjC;KACD,CAAC;AAEF,eAAenC,aAAa"}
1
+ {"version":3,"sources":["../../../../../src/fields/TiptapEditor/extensions/extension-kit.ts"],"sourcesContent":["import {\n BlockquoteFigure,\n CharacterCount,\n Color,\n Document,\n Dropcursor,\n Emoji,\n Figcaption,\n FileHandler,\n Focus,\n FontFamily,\n FontSize,\n Heading,\n Highlight,\n HorizontalRule,\n ImageBlock,\n Link,\n Placeholder,\n Selection,\n SlashCommand,\n StarterKit,\n Subscript,\n Superscript,\n Table,\n TableOfContents,\n TableCell,\n TableHeader,\n TableRow,\n TextAlign,\n TextStyle,\n TrailingNode,\n Typography,\n Underline,\n // emojiSuggestion,\n Columns,\n Column,\n TaskItem,\n TaskList,\n Twitter,\n Tiktok,\n Instagram,\n Facebook,\n Linkedin,\n Youtube,\n Paragraph,\n InsideLinks,\n} from \"./index.js\";\n\nimport { CodeBlockLowlight } from \"@tiptap/extension-code-block-lowlight\";\nimport { ImageUpload } from \"./ImageUpload/ImageUpload.js\";\nimport { TableOfContentsNode } from \"./TableOfContentsNode/TableOfContentsNode.js\";\nimport lowlight from \"lowlight\";\nimport TextDirection from \"tiptap-text-direction\";\n\nimport API from \"../lib/api.js\";\nimport History from \"@tiptap/extension-history\";\nimport { Iframe } from \"./Iframe/iframe.js\";\n\ninterface ExtensionKitProps {\n dir?: \"rtl\" | \"ltr\";\n}\n\nexport const ExtensionKit = ({ dir }: ExtensionKitProps) => [\n Document,\n Columns,\n TaskList,\n TaskItem.configure({\n nested: true,\n }),\n Column,\n Selection,\n Heading.configure({\n levels: [1, 2, 3, 4, 5, 6],\n }),\n HorizontalRule,\n StarterKit.configure({\n document: false,\n dropcursor: false,\n heading: false,\n horizontalRule: false,\n blockquote: false,\n history: false,\n codeBlock: false,\n }),\n CodeBlockLowlight.configure({\n lowlight,\n defaultLanguage: null,\n }),\n TextStyle,\n FontSize,\n FontFamily,\n Color,\n TrailingNode,\n Link.configure({\n openOnClick: false,\n }),\n Highlight.configure({ multicolor: true }),\n Underline,\n CharacterCount.configure({ limit: 50000 }),\n TableOfContents,\n TableOfContentsNode,\n ImageUpload.configure({}),\n ImageBlock,\n FileHandler.configure({\n allowedMimeTypes: [\"image/png\", \"image/jpeg\", \"image/gif\", \"image/webp\"],\n onDrop: (currentEditor, files, pos) => {\n files.forEach(async () => {\n const url = await API.uploadImage();\n\n currentEditor.chain().setImageBlockAt({ pos, src: url }).focus().run();\n });\n },\n onPaste: (currentEditor, files) => {\n files.forEach(async () => {\n const url = await API.uploadImage();\n\n return currentEditor\n .chain()\n .setImageBlockAt({\n pos: currentEditor.state.selection.anchor,\n src: url,\n })\n .focus()\n .run();\n });\n },\n }),\n // Emoji.configure({\n // enableEmoticons: true,\n // suggestion: emojiSuggestion,\n // }),\n TextAlign.extend({\n addKeyboardShortcuts() {\n return {};\n },\n }).configure({\n types: [\"heading\", \"paragraph\"],\n }),\n Subscript,\n Superscript,\n Table,\n TableCell,\n TableHeader,\n TableRow,\n Typography,\n Placeholder.configure({\n includeChildren: true,\n showOnlyCurrent: false,\n placeholder: () => \"\",\n }),\n SlashCommand,\n Focus,\n Figcaption,\n BlockquoteFigure,\n Dropcursor.configure({\n width: 2,\n class: \"ProseMirror-dropcursor border-black\",\n }),\n History,\n Iframe,\n Twitter,\n Tiktok,\n Instagram,\n Facebook,\n Linkedin,\n Youtube,\n // Paragraph,\n InsideLinks,\n TextDirection.configure({\n types: [\"heading\", \"paragraph\"],\n }),\n];\n\nexport default ExtensionKit;\n"],"names":["BlockquoteFigure","CharacterCount","Color","Document","Dropcursor","Figcaption","FileHandler","Focus","FontFamily","FontSize","Heading","Highlight","HorizontalRule","ImageBlock","Link","Placeholder","Selection","SlashCommand","StarterKit","Subscript","Superscript","Table","TableOfContents","TableCell","TableHeader","TableRow","TextAlign","TextStyle","TrailingNode","Typography","Underline","Columns","Column","TaskItem","TaskList","Twitter","Tiktok","Instagram","Facebook","Linkedin","Youtube","InsideLinks","CodeBlockLowlight","ImageUpload","TableOfContentsNode","lowlight","TextDirection","API","History","Iframe","ExtensionKit","dir","configure","nested","levels","document","dropcursor","heading","horizontalRule","blockquote","history","codeBlock","defaultLanguage","openOnClick","multicolor","limit","allowedMimeTypes","onDrop","currentEditor","files","pos","forEach","url","uploadImage","chain","setImageBlockAt","src","focus","run","onPaste","state","selection","anchor","extend","addKeyboardShortcuts","types","includeChildren","showOnlyCurrent","placeholder","width","class"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/fields/TiptapEditor/extensions/index.ts"],"sourcesContent":["// TODO: File causes circular dependency issue in ESLint\n/* eslint-disable */\nexport { StarterKit } from \"@tiptap/starter-kit\";\nexport { Highlight } from \"@tiptap/extension-highlight\";\nexport { CharacterCount } from \"@tiptap/extension-character-count\";\nexport { Underline } from \"@tiptap/extension-underline\";\nexport { Placeholder } from \"@tiptap/extension-placeholder\";\nexport { Emoji, gitHubEmojis } from \"@tiptap-pro/extension-emoji\";\nexport { TextAlign } from \"@tiptap/extension-text-align\";\nexport { TextStyle } from \"@tiptap/extension-text-style\";\nexport { FontFamily } from \"@tiptap/extension-font-family\";\nexport { Typography } from \"@tiptap/extension-typography\";\nexport { Color } from \"@tiptap/extension-color\";\nexport { FocusClasses as Focus } from \"@tiptap/extension-focus\";\nexport { Dropcursor } from \"@tiptap/extension-dropcursor\";\nexport { CollaborationCursor } from \"@tiptap/extension-collaboration-cursor\";\nexport { Subscript } from \"@tiptap/extension-subscript\";\nexport { TableOfContents } from \"@tiptap-pro/extension-table-of-contents\";\nexport { Superscript } from \"@tiptap/extension-superscript\";\nexport { CodeBlock } from \"@tiptap/extension-code-block\";\nexport { BulletList } from \"@tiptap/extension-bullet-list\";\nexport { OrderedList } from \"@tiptap/extension-ordered-list\";\nexport { Collaboration } from \"@tiptap/extension-collaboration\";\nexport { TaskItem } from \"@tiptap/extension-task-item\";\nexport { TaskList } from \"@tiptap/extension-task-list\";\nexport { FileHandler } from \"@tiptap-pro/extension-file-handler\";\n\nexport { Selection } from \"./Selection/Selection.js\";\nexport { Table, TableCell, TableHeader, TableRow } from \"./Table/index.js\";\nexport { HorizontalRule } from \"./HorizontalRule/HorizontalRule.js\";\nexport { Heading } from \"./Heading/Heading.js\";\nexport { Document } from \"./Document/Document.js\";\nexport { TrailingNode } from \"./TrailingNode/trailing-node.js\";\nexport { SlashCommand } from \"./SlashCommand/SlashCommand.js\";\nexport { FontSize } from \"./FontSize/FontSize.js\";\nexport { Figure } from \"./Figure/Figure.js\";\nexport { Figcaption } from \"./Figcaption/Figcaption.js\";\nexport { BlockquoteFigure } from \"./BlockquoteFigure/BlockquoteFigure.js\";\nexport { Quote } from \"./BlockquoteFigure/Quote/Quote.js\";\nexport { QuoteCaption } from \"./BlockquoteFigure/QuoteCaption/QuoteCaption.js\";\nexport { Link } from \"./Link/Link.js\";\nexport { ImageUpload } from \"./ImageUpload/ImageUpload.js\";\nexport { ImageBlock } from \"./ImageBlock/ImageBlock.js\";\nexport { Columns, Column } from \"./MultiColumn/index.js\";\nexport {\n Twitter,\n Linkedin,\n Tiktok,\n Facebook,\n Instagram,\n Youtube,\n} from \"./SocialMedia/index.js\";\nexport { Paragraph } from \"./Paragraph/Paragraph.js\";\nexport { InsideLinks } from \"./InsideLinks/insideLinks.js\";\n"],"names":["StarterKit","Highlight","CharacterCount","Underline","Placeholder","Emoji","gitHubEmojis","TextAlign","TextStyle","FontFamily","Typography","Color","FocusClasses","Focus","Dropcursor","CollaborationCursor","Subscript","TableOfContents","Superscript","CodeBlock","BulletList","OrderedList","Collaboration","TaskItem","TaskList","FileHandler","Selection","Table","TableCell","TableHeader","TableRow","HorizontalRule","Heading","Document","TrailingNode","SlashCommand","FontSize","Figure","Figcaption","BlockquoteFigure","Quote","QuoteCaption","Link","ImageUpload","ImageBlock","Columns","Column","Twitter","Linkedin","Tiktok","Facebook","Instagram","Youtube","Paragraph","InsideLinks"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,wDAAwD;AACxD,kBAAkB,GAClB,SAASA,UAAU,QAAQ,sBAAsB;AACjD,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SAASC,cAAc,QAAQ,oCAAoC;AACnE,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SAASC,WAAW,QAAQ,gCAAgC;AAC5D,SAASC,KAAK,EAAEC,YAAY,QAAQ,8BAA8B;AAClE,SAASC,SAAS,QAAQ,+BAA+B;AACzD,SAASC,SAAS,QAAQ,+BAA+B;AACzD,SAASC,UAAU,QAAQ,gCAAgC;AAC3D,SAASC,UAAU,QAAQ,+BAA+B;AAC1D,SAASC,KAAK,QAAQ,0BAA0B;AAChD,SAASC,gBAAgBC,KAAK,QAAQ,0BAA0B;AAChE,SAASC,UAAU,QAAQ,+BAA+B;AAC1D,SAASC,mBAAmB,QAAQ,yCAAyC;AAC7E,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SAASC,eAAe,QAAQ,0CAA0C;AAC1E,SAASC,WAAW,QAAQ,gCAAgC;AAC5D,SAASC,SAAS,QAAQ,+BAA+B;AACzD,SAASC,UAAU,QAAQ,gCAAgC;AAC3D,SAASC,WAAW,QAAQ,iCAAiC;AAC7D,SAASC,aAAa,QAAQ,kCAAkC;AAChE,SAASC,QAAQ,QAAQ,8BAA8B;AACvD,SAASC,QAAQ,QAAQ,8BAA8B;AACvD,SAASC,WAAW,QAAQ,qCAAqC;AAEjE,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,KAAK,EAAEC,SAAS,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,mBAAmB;AAC3E,SAASC,cAAc,QAAQ,qCAAqC;AACpE,SAASC,OAAO,QAAQ,uBAAuB;AAC/C,SAASC,QAAQ,QAAQ,yBAAyB;AAClD,SAASC,YAAY,QAAQ,kCAAkC;AAC/D,SAASC,YAAY,QAAQ,iCAAiC;AAC9D,SAASC,QAAQ,QAAQ,yBAAyB;AAClD,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,UAAU,QAAQ,6BAA6B;AACxD,SAASC,gBAAgB,QAAQ,yCAAyC;AAC1E,SAASC,KAAK,QAAQ,oCAAoC;AAC1D,SAASC,YAAY,QAAQ,kDAAkD;AAC/E,SAASC,IAAI,QAAQ,iBAAiB;AACtC,SAASC,WAAW,QAAQ,+BAA+B;AAC3D,SAASC,UAAU,QAAQ,6BAA6B;AACxD,SAASC,OAAO,EAAEC,MAAM,QAAQ,yBAAyB;AACzD,SACEC,OAAO,EACPC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,OAAO,QACF,yBAAyB;AAChC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,WAAW,QAAQ,+BAA+B"}
1
+ {"version":3,"sources":["../../../../../src/fields/TiptapEditor/extensions/index.ts"],"sourcesContent":["// TODO: File causes circular dependency issue in ESLint\n/* eslint-disable */\nexport { StarterKit } from \"@tiptap/starter-kit\";\nexport { Highlight } from \"@tiptap/extension-highlight\";\nexport { CharacterCount } from \"@tiptap/extension-character-count\";\nexport { Underline } from \"@tiptap/extension-underline\";\nexport { Placeholder } from \"@tiptap/extension-placeholder\";\nexport { Emoji, gitHubEmojis } from \"@tiptap-pro/extension-emoji\";\nexport { TextAlign } from \"@tiptap/extension-text-align\";\nexport { TextStyle } from \"@tiptap/extension-text-style\";\nexport { FontFamily } from \"@tiptap/extension-font-family\";\nexport { Typography } from \"@tiptap/extension-typography\";\nexport { Color } from \"@tiptap/extension-color\";\nexport { FocusClasses as Focus } from \"@tiptap/extension-focus\";\nexport { Dropcursor } from \"@tiptap/extension-dropcursor\";\nexport { CollaborationCursor } from \"@tiptap/extension-collaboration-cursor\";\nexport { Subscript } from \"@tiptap/extension-subscript\";\nexport { TableOfContents } from \"@tiptap-pro/extension-table-of-contents\";\nexport { Superscript } from \"@tiptap/extension-superscript\";\nexport { CodeBlock } from \"@tiptap/extension-code-block\";\nexport { BulletList } from \"@tiptap/extension-bullet-list\";\nexport { OrderedList } from \"@tiptap/extension-ordered-list\";\nexport { Collaboration } from \"@tiptap/extension-collaboration\";\nexport { TaskItem } from \"@tiptap/extension-task-item\";\nexport { TaskList } from \"@tiptap/extension-task-list\";\nexport { FileHandler } from \"@tiptap-pro/extension-file-handler\";\n\nexport { Selection } from \"./Selection/Selection.js\";\nexport { Table, TableCell, TableHeader, TableRow } from \"./Table/index.js\";\nexport { HorizontalRule } from \"./HorizontalRule/HorizontalRule.js\";\nexport { Heading } from \"./Heading/Heading.js\";\nexport { Document } from \"./Document/Document.js\";\nexport { TrailingNode } from \"./TrailingNode/trailing-node.js\";\nexport { SlashCommand } from \"./SlashCommand/SlashCommand.js\";\nexport { FontSize } from \"./FontSize/FontSize.js\";\nexport { Figure } from \"./Figure/Figure.js\";\nexport { Figcaption } from \"./Figcaption/Figcaption.js\";\nexport { BlockquoteFigure } from \"./BlockquoteFigure/BlockquoteFigure.js\";\nexport { Quote } from \"./BlockquoteFigure/Quote/Quote.js\";\nexport { QuoteCaption } from \"./BlockquoteFigure/QuoteCaption/QuoteCaption.js\";\nexport { Link } from \"./Link/Link.js\";\nexport { ImageUpload } from \"./ImageUpload/ImageUpload.js\";\nexport { ImageBlock } from \"./ImageBlock/ImageBlock.js\";\nexport { Columns, Column } from \"./MultiColumn/index.js\";\nexport {\n Twitter,\n Linkedin,\n Tiktok,\n Facebook,\n Instagram,\n Youtube,\n} from \"./SocialMedia/index.js\";\nexport { Paragraph } from \"./Paragraph/Paragraph.js\";\nexport { InsideLinks } from \"./InsideLinks/insideLinks.js\";\n"],"names":["StarterKit","Highlight","CharacterCount","Underline","Placeholder","Emoji","gitHubEmojis","TextAlign","TextStyle","FontFamily","Typography","Color","FocusClasses","Focus","Dropcursor","CollaborationCursor","Subscript","TableOfContents","Superscript","CodeBlock","BulletList","OrderedList","Collaboration","TaskItem","TaskList","FileHandler","Selection","Table","TableCell","TableHeader","TableRow","HorizontalRule","Heading","Document","TrailingNode","SlashCommand","FontSize","Figure","Figcaption","BlockquoteFigure","Quote","QuoteCaption","Link","ImageUpload","ImageBlock","Columns","Column","Twitter","Linkedin","Tiktok","Facebook","Instagram","Youtube","Paragraph","InsideLinks"],"mappings":"AAAA,wDAAwD;AACxD,kBAAkB,GAClB,SAASA,UAAU,QAAQ,sBAAsB;AACjD,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SAASC,cAAc,QAAQ,oCAAoC;AACnE,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SAASC,WAAW,QAAQ,gCAAgC;AAC5D,SAASC,KAAK,EAAEC,YAAY,QAAQ,8BAA8B;AAClE,SAASC,SAAS,QAAQ,+BAA+B;AACzD,SAASC,SAAS,QAAQ,+BAA+B;AACzD,SAASC,UAAU,QAAQ,gCAAgC;AAC3D,SAASC,UAAU,QAAQ,+BAA+B;AAC1D,SAASC,KAAK,QAAQ,0BAA0B;AAChD,SAASC,gBAAgBC,KAAK,QAAQ,0BAA0B;AAChE,SAASC,UAAU,QAAQ,+BAA+B;AAC1D,SAASC,mBAAmB,QAAQ,yCAAyC;AAC7E,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SAASC,eAAe,QAAQ,0CAA0C;AAC1E,SAASC,WAAW,QAAQ,gCAAgC;AAC5D,SAASC,SAAS,QAAQ,+BAA+B;AACzD,SAASC,UAAU,QAAQ,gCAAgC;AAC3D,SAASC,WAAW,QAAQ,iCAAiC;AAC7D,SAASC,aAAa,QAAQ,kCAAkC;AAChE,SAASC,QAAQ,QAAQ,8BAA8B;AACvD,SAASC,QAAQ,QAAQ,8BAA8B;AACvD,SAASC,WAAW,QAAQ,qCAAqC;AAEjE,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,KAAK,EAAEC,SAAS,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,mBAAmB;AAC3E,SAASC,cAAc,QAAQ,qCAAqC;AACpE,SAASC,OAAO,QAAQ,uBAAuB;AAC/C,SAASC,QAAQ,QAAQ,yBAAyB;AAClD,SAASC,YAAY,QAAQ,kCAAkC;AAC/D,SAASC,YAAY,QAAQ,iCAAiC;AAC9D,SAASC,QAAQ,QAAQ,yBAAyB;AAClD,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,UAAU,QAAQ,6BAA6B;AACxD,SAASC,gBAAgB,QAAQ,yCAAyC;AAC1E,SAASC,KAAK,QAAQ,oCAAoC;AAC1D,SAASC,YAAY,QAAQ,kDAAkD;AAC/E,SAASC,IAAI,QAAQ,iBAAiB;AACtC,SAASC,WAAW,QAAQ,+BAA+B;AAC3D,SAASC,UAAU,QAAQ,6BAA6B;AACxD,SAASC,OAAO,EAAEC,MAAM,QAAQ,yBAAyB;AACzD,SACEC,OAAO,EACPC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,OAAO,QACF,yBAAyB;AAChC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,WAAW,QAAQ,+BAA+B"}
@@ -1,4 +1,4 @@
1
1
  import { TiptapProps } from "./types.js";
2
- export declare const BlockEditor: ({ handleChange, content, handleChangeMarkdown, }: TiptapProps) => import("react").JSX.Element;
2
+ export declare const BlockEditor: ({ handleChange, content }: TiptapProps) => import("react").JSX.Element;
3
3
  export default BlockEditor;
4
4
  //# sourceMappingURL=BlockEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockEditor.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,eAAO,MAAM,WAAW,qDAIrB,WAAW,gCA0Fb,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"BlockEditor.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,eAAO,MAAM,WAAW,8BAA+B,WAAW,gCAyFjE,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -16,13 +16,12 @@ import { Sidebar } from "../Sidebar/Sidebar.js";
16
16
  import { ContentItemMenu } from "../menus/ContentItemMenu/ContentItemMenu.js";
17
17
  import { TextMenu } from "../menus/TextMenu/TextMenu.js";
18
18
  import { LinkMenu } from "../menus/index.js";
19
- export const BlockEditor = ({ handleChange, content, handleChangeMarkdown })=>{
19
+ export const BlockEditor = ({ handleChange, content })=>{
20
20
  const menuContainerRef = useRef(null);
21
21
  const editorRef = useRef(null);
22
22
  const { editor, users, characterCount, leftSidebar } = useBlockEditor({
23
23
  content: content,
24
- handleChange: handleChange,
25
- handleChangeMarkdown
24
+ handleChange: handleChange
26
25
  });
27
26
  const { code } = useLocale();
28
27
  const displayedUsers = users.slice(0, 3);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"sourcesContent":["\"use client\";\nimport { EditorContent } from \"@tiptap/react\";\nimport { useEffect, useMemo, useRef } from \"react\";\n\nimport { useLocale } from \"@payloadcms/ui/providers/Locale\";\nimport { useTranslation } from \"@payloadcms/ui/providers/Translation\";\nimport { EditorContext } from \"../../context/EditorContext.js\";\nimport { IframeMenu } from \"../../extensions/Iframe/menus/index.js\";\nimport ImageBlockMenu from \"../../extensions/ImageBlock/components/ImageBlockMenu.js\";\nimport { InsideLinksMenu } from \"../../extensions/InsideLinks/menus/index.js\";\nimport { ColumnsMenu } from \"../../extensions/MultiColumn/menus/ColumnsMenu.js\";\nimport { SocialMediaMenu } from \"../../extensions/SocialMedia/menus/index.js\";\nimport {\n TableColumnMenu,\n TableRowMenu,\n} from \"../../extensions/Table/menus/index.js\";\nimport { useBlockEditor } from \"../../hooks/useBlockEditor.js\";\nimport { Sidebar } from \"../Sidebar/Sidebar.js\";\nimport { ContentItemMenu } from \"../menus/ContentItemMenu/ContentItemMenu.js\";\nimport { TextMenu } from \"../menus/TextMenu/TextMenu.js\";\nimport { LinkMenu } from \"../menus/index.js\";\nimport { TiptapProps } from \"./types.js\";\n\nexport const BlockEditor = ({\n handleChange,\n content,\n handleChangeMarkdown,\n}: TiptapProps) => {\n const menuContainerRef = useRef(null);\n const editorRef = useRef<HTMLDivElement>(null);\n\n const { editor, users, characterCount, leftSidebar } = useBlockEditor({\n content: content,\n handleChange: handleChange,\n handleChangeMarkdown,\n });\n\n const { code } = useLocale();\n\n const displayedUsers = users.slice(0, 3);\n\n const providerValue = useMemo(() => {\n return {};\n }, []);\n\n useEffect(() => {\n if (code === \"ar\" || code === \"fa\") {\n editor?.commands?.setTextDirection(\"rtl\");\n editor?.commands?.setContent(\"dwa\");\n }\n }, [code]);\n\n if (!editor) {\n return null;\n }\n const { i18n } = useTranslation();\n\n // Define the content for different languages\n const contentEn = \"للكتابة...\"; // Content for English or default language\n const contentAr = \"انقر هنا للكتابة...\"; // Content for Arabic language\n const contentFa = \"اینجا کلیک کنید تا شروع به نوشتن کنید...\";\n\n /*switch (i18n.language) {\n case 'ar':\n editor.commands.setContent(contentAr)\n break\n case 'fa':\n editor.commands.setContent(contentFa)\n break\n default:\n editor.commands.setContent(contentEn)\n }*/\n\n return (\n <EditorContext.Provider value={providerValue}>\n <div\n lang={i18n.language}\n className=\"flex h-full overflow-visible\"\n ref={menuContainerRef}\n >\n <Sidebar\n isOpen={leftSidebar.isOpen}\n onClose={leftSidebar.close}\n editor={editor}\n />\n <div className=\"relative flex flex-col flex-1 h-full justify-center items-center \">\n {/* <EditorHeader\n characters={characterCount.characters()}\n users={displayedUsers}\n words={characterCount.words()}\n isSidebarOpen={leftSidebar.isOpen}\n toggleSidebar={leftSidebar.toggle}\n /> */}\n <EditorContent\n editor={editor}\n ref={editorRef}\n lang={i18n.language}\n className=\"flex-1 overflow-y-visible w-full h-full outline-none outline-offset-0\"\n style={{\n outline: \"none\",\n }}\n />\n <ContentItemMenu editor={editor} />\n <LinkMenu editor={editor} appendTo={menuContainerRef} />\n\n <TextMenu editor={editor} />\n <IframeMenu editor={editor} appendTo={menuContainerRef} />\n <SocialMediaMenu editor={editor} appendTo={menuContainerRef} />\n <InsideLinksMenu editor={editor} appendTo={menuContainerRef} />\n <ColumnsMenu editor={editor} appendTo={menuContainerRef} />\n <TableRowMenu editor={editor} appendTo={menuContainerRef} />\n <TableColumnMenu editor={editor} appendTo={menuContainerRef} />\n <ImageBlockMenu editor={editor} appendTo={menuContainerRef} />\n </div>\n </div>\n </EditorContext.Provider>\n );\n};\n\nexport default BlockEditor;\n"],"names":["EditorContent","useEffect","useMemo","useRef","useLocale","useTranslation","EditorContext","IframeMenu","ImageBlockMenu","InsideLinksMenu","ColumnsMenu","SocialMediaMenu","TableColumnMenu","TableRowMenu","useBlockEditor","Sidebar","ContentItemMenu","TextMenu","LinkMenu","BlockEditor","handleChange","content","handleChangeMarkdown","menuContainerRef","editorRef","editor","users","characterCount","leftSidebar","code","displayedUsers","slice","providerValue","commands","setTextDirection","setContent","i18n","contentEn","contentAr","contentFa","Provider","value","div","lang","language","className","ref","isOpen","onClose","close","style","outline","appendTo"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,aAAa,QAAQ,gBAAgB;AAC9C,SAASC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,QAAQ;AAEnD,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,cAAc,QAAQ,uCAAuC;AACtE,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,UAAU,QAAQ,yCAAyC;AACpE,OAAOC,oBAAoB,2DAA2D;AACtF,SAASC,eAAe,QAAQ,8CAA8C;AAC9E,SAASC,WAAW,QAAQ,oDAAoD;AAChF,SAASC,eAAe,QAAQ,8CAA8C;AAC9E,SACEC,eAAe,EACfC,YAAY,QACP,wCAAwC;AAC/C,SAASC,cAAc,QAAQ,gCAAgC;AAC/D,SAASC,OAAO,QAAQ,wBAAwB;AAChD,SAASC,eAAe,QAAQ,8CAA8C;AAC9E,SAASC,QAAQ,QAAQ,gCAAgC;AACzD,SAASC,QAAQ,QAAQ,oBAAoB;AAG7C,OAAO,MAAMC,cAAc,CAAC,EAC1BC,YAAY,EACZC,OAAO,EACPC,oBAAoB,EACR;IACZ,MAAMC,mBAAmBpB,OAAO;IAChC,MAAMqB,YAAYrB,OAAuB;IAEzC,MAAM,EAAEsB,MAAM,EAAEC,KAAK,EAAEC,cAAc,EAAEC,WAAW,EAAE,GAAGd,eAAe;QACpEO,SAASA;QACTD,cAAcA;QACdE;IACF;IAEA,MAAM,EAAEO,IAAI,EAAE,GAAGzB;IAEjB,MAAM0B,iBAAiBJ,MAAMK,KAAK,CAAC,GAAG;IAEtC,MAAMC,gBAAgB9B,QAAQ;QAC5B,OAAO,CAAC;IACV,GAAG,EAAE;IAELD,UAAU;QACR,IAAI4B,SAAS,QAAQA,SAAS,MAAM;YAClCJ,QAAQQ,UAAUC,iBAAiB;YACnCT,QAAQQ,UAAUE,WAAW;QAC/B;IACF,GAAG;QAACN;KAAK;IAET,IAAI,CAACJ,QAAQ;QACX,OAAO;IACT;IACA,MAAM,EAAEW,IAAI,EAAE,GAAG/B;IAEjB,6CAA6C;IAC7C,MAAMgC,YAAY,cAAc,0CAA0C;IAC1E,MAAMC,YAAY,uBAAuB,8BAA8B;IACvE,MAAMC,YAAY;IAElB;;;;;;;;;GASC,GAED,qBACE,KAACjC,cAAckC,QAAQ;QAACC,OAAOT;kBAC7B,cAAA,MAACU;YACCC,MAAMP,KAAKQ,QAAQ;YACnBC,WAAU;YACVC,KAAKvB;;8BAEL,KAACR;oBACCgC,QAAQnB,YAAYmB,MAAM;oBAC1BC,SAASpB,YAAYqB,KAAK;oBAC1BxB,QAAQA;;8BAEV,MAACiB;oBAAIG,WAAU;;sCAQb,KAAC7C;4BACCyB,QAAQA;4BACRqB,KAAKtB;4BACLmB,MAAMP,KAAKQ,QAAQ;4BACnBC,WAAU;4BACVK,OAAO;gCACLC,SAAS;4BACX;;sCAEF,KAACnC;4BAAgBS,QAAQA;;sCACzB,KAACP;4BAASO,QAAQA;4BAAQ2B,UAAU7B;;sCAEpC,KAACN;4BAASQ,QAAQA;;sCAClB,KAAClB;4BAAWkB,QAAQA;4BAAQ2B,UAAU7B;;sCACtC,KAACZ;4BAAgBc,QAAQA;4BAAQ2B,UAAU7B;;sCAC3C,KAACd;4BAAgBgB,QAAQA;4BAAQ2B,UAAU7B;;sCAC3C,KAACb;4BAAYe,QAAQA;4BAAQ2B,UAAU7B;;sCACvC,KAACV;4BAAaY,QAAQA;4BAAQ2B,UAAU7B;;sCACxC,KAACX;4BAAgBa,QAAQA;4BAAQ2B,UAAU7B;;sCAC3C,KAACf;4BAAeiB,QAAQA;4BAAQ2B,UAAU7B;;;;;;;AAKpD,EAAE;AAEF,eAAeJ,YAAY"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"sourcesContent":["\"use client\";\nimport { EditorContent } from \"@tiptap/react\";\nimport { useEffect, useMemo, useRef } from \"react\";\n\nimport { useLocale } from \"@payloadcms/ui/providers/Locale\";\nimport { useTranslation } from \"@payloadcms/ui/providers/Translation\";\nimport { EditorContext } from \"../../context/EditorContext.js\";\nimport { IframeMenu } from \"../../extensions/Iframe/menus/index.js\";\nimport ImageBlockMenu from \"../../extensions/ImageBlock/components/ImageBlockMenu.js\";\nimport { InsideLinksMenu } from \"../../extensions/InsideLinks/menus/index.js\";\nimport { ColumnsMenu } from \"../../extensions/MultiColumn/menus/ColumnsMenu.js\";\nimport { SocialMediaMenu } from \"../../extensions/SocialMedia/menus/index.js\";\nimport {\n TableColumnMenu,\n TableRowMenu,\n} from \"../../extensions/Table/menus/index.js\";\nimport { useBlockEditor } from \"../../hooks/useBlockEditor.js\";\nimport { Sidebar } from \"../Sidebar/Sidebar.js\";\nimport { ContentItemMenu } from \"../menus/ContentItemMenu/ContentItemMenu.js\";\nimport { TextMenu } from \"../menus/TextMenu/TextMenu.js\";\nimport { LinkMenu } from \"../menus/index.js\";\nimport { TiptapProps } from \"./types.js\";\n\nexport const BlockEditor = ({ handleChange, content }: TiptapProps) => {\n const menuContainerRef = useRef(null);\n const editorRef = useRef<HTMLDivElement>(null);\n\n const { editor, users, characterCount, leftSidebar } = useBlockEditor({\n content: content,\n handleChange: handleChange,\n });\n\n const { code } = useLocale();\n\n const displayedUsers = users.slice(0, 3);\n\n const providerValue = useMemo(() => {\n return {};\n }, []);\n\n useEffect(() => {\n if (code === \"ar\" || code === \"fa\") {\n editor?.commands?.setTextDirection(\"rtl\");\n editor?.commands?.setContent(\"dwa\");\n }\n }, [code]);\n\n if (!editor) {\n return null;\n }\n const { i18n } = useTranslation();\n\n // Define the content for different languages\n const contentEn = \"للكتابة...\"; // Content for English or default language\n const contentAr = \"انقر هنا للكتابة...\"; // Content for Arabic language\n const contentFa = \"اینجا کلیک کنید تا شروع به نوشتن کنید...\";\n\n /*switch (i18n.language) {\n case 'ar':\n editor.commands.setContent(contentAr)\n break\n case 'fa':\n editor.commands.setContent(contentFa)\n break\n default:\n editor.commands.setContent(contentEn)\n }*/\n\n return (\n <EditorContext.Provider value={providerValue}>\n <div\n lang={i18n.language}\n className=\"flex h-full overflow-visible\"\n ref={menuContainerRef}\n >\n <Sidebar\n isOpen={leftSidebar.isOpen}\n onClose={leftSidebar.close}\n editor={editor}\n />\n <div className=\"relative flex flex-col flex-1 h-full justify-center items-center \">\n {/* <EditorHeader\n characters={characterCount.characters()}\n users={displayedUsers}\n words={characterCount.words()}\n isSidebarOpen={leftSidebar.isOpen}\n toggleSidebar={leftSidebar.toggle}\n /> */}\n <EditorContent\n editor={editor}\n ref={editorRef}\n lang={i18n.language}\n className=\"flex-1 overflow-y-visible w-full h-full outline-none outline-offset-0\"\n style={{\n outline: \"none\",\n }}\n />\n <ContentItemMenu editor={editor} />\n <LinkMenu editor={editor} appendTo={menuContainerRef} />\n\n <TextMenu editor={editor} />\n <IframeMenu editor={editor} appendTo={menuContainerRef} />\n <SocialMediaMenu editor={editor} appendTo={menuContainerRef} />\n <InsideLinksMenu editor={editor} appendTo={menuContainerRef} />\n <ColumnsMenu editor={editor} appendTo={menuContainerRef} />\n <TableRowMenu editor={editor} appendTo={menuContainerRef} />\n <TableColumnMenu editor={editor} appendTo={menuContainerRef} />\n <ImageBlockMenu editor={editor} appendTo={menuContainerRef} />\n </div>\n </div>\n </EditorContext.Provider>\n );\n};\n\nexport default BlockEditor;\n"],"names":["EditorContent","useEffect","useMemo","useRef","useLocale","useTranslation","EditorContext","IframeMenu","ImageBlockMenu","InsideLinksMenu","ColumnsMenu","SocialMediaMenu","TableColumnMenu","TableRowMenu","useBlockEditor","Sidebar","ContentItemMenu","TextMenu","LinkMenu","BlockEditor","handleChange","content","menuContainerRef","editorRef","editor","users","characterCount","leftSidebar","code","displayedUsers","slice","providerValue","commands","setTextDirection","setContent","i18n","contentEn","contentAr","contentFa","Provider","value","div","lang","language","className","ref","isOpen","onClose","close","style","outline","appendTo"],"mappings":"AAAA;;AACA,SAASA,aAAa,QAAQ,gBAAgB;AAC9C,SAASC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,QAAQ;AAEnD,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,cAAc,QAAQ,uCAAuC;AACtE,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,UAAU,QAAQ,yCAAyC;AACpE,OAAOC,oBAAoB,2DAA2D;AACtF,SAASC,eAAe,QAAQ,8CAA8C;AAC9E,SAASC,WAAW,QAAQ,oDAAoD;AAChF,SAASC,eAAe,QAAQ,8CAA8C;AAC9E,SACEC,eAAe,EACfC,YAAY,QACP,wCAAwC;AAC/C,SAASC,cAAc,QAAQ,gCAAgC;AAC/D,SAASC,OAAO,QAAQ,wBAAwB;AAChD,SAASC,eAAe,QAAQ,8CAA8C;AAC9E,SAASC,QAAQ,QAAQ,gCAAgC;AACzD,SAASC,QAAQ,QAAQ,oBAAoB;AAG7C,OAAO,MAAMC,cAAc,CAAC,EAAEC,YAAY,EAAEC,OAAO,EAAe;IAChE,MAAMC,mBAAmBnB,OAAO;IAChC,MAAMoB,YAAYpB,OAAuB;IAEzC,MAAM,EAAEqB,MAAM,EAAEC,KAAK,EAAEC,cAAc,EAAEC,WAAW,EAAE,GAAGb,eAAe;QACpEO,SAASA;QACTD,cAAcA;IAChB;IAEA,MAAM,EAAEQ,IAAI,EAAE,GAAGxB;IAEjB,MAAMyB,iBAAiBJ,MAAMK,KAAK,CAAC,GAAG;IAEtC,MAAMC,gBAAgB7B,QAAQ;QAC5B,OAAO,CAAC;IACV,GAAG,EAAE;IAELD,UAAU;QACR,IAAI2B,SAAS,QAAQA,SAAS,MAAM;YAClCJ,QAAQQ,UAAUC,iBAAiB;YACnCT,QAAQQ,UAAUE,WAAW;QAC/B;IACF,GAAG;QAACN;KAAK;IAET,IAAI,CAACJ,QAAQ;QACX,OAAO;IACT;IACA,MAAM,EAAEW,IAAI,EAAE,GAAG9B;IAEjB,6CAA6C;IAC7C,MAAM+B,YAAY,cAAc,0CAA0C;IAC1E,MAAMC,YAAY,uBAAuB,8BAA8B;IACvE,MAAMC,YAAY;IAElB;;;;;;;;;GASC,GAED,qBACE,KAAChC,cAAciC,QAAQ;QAACC,OAAOT;kBAC7B,cAAA,MAACU;YACCC,MAAMP,KAAKQ,QAAQ;YACnBC,WAAU;YACVC,KAAKvB;;8BAEL,KAACP;oBACC+B,QAAQnB,YAAYmB,MAAM;oBAC1BC,SAASpB,YAAYqB,KAAK;oBAC1BxB,QAAQA;;8BAEV,MAACiB;oBAAIG,WAAU;;sCAQb,KAAC5C;4BACCwB,QAAQA;4BACRqB,KAAKtB;4BACLmB,MAAMP,KAAKQ,QAAQ;4BACnBC,WAAU;4BACVK,OAAO;gCACLC,SAAS;4BACX;;sCAEF,KAAClC;4BAAgBQ,QAAQA;;sCACzB,KAACN;4BAASM,QAAQA;4BAAQ2B,UAAU7B;;sCAEpC,KAACL;4BAASO,QAAQA;;sCAClB,KAACjB;4BAAWiB,QAAQA;4BAAQ2B,UAAU7B;;sCACtC,KAACX;4BAAgBa,QAAQA;4BAAQ2B,UAAU7B;;sCAC3C,KAACb;4BAAgBe,QAAQA;4BAAQ2B,UAAU7B;;sCAC3C,KAACZ;4BAAYc,QAAQA;4BAAQ2B,UAAU7B;;sCACvC,KAACT;4BAAaW,QAAQA;4BAAQ2B,UAAU7B;;sCACxC,KAACV;4BAAgBY,QAAQA;4BAAQ2B,UAAU7B;;sCAC3C,KAACd;4BAAegB,QAAQA;4BAAQ2B,UAAU7B;;;;;;;AAKpD,EAAE;AAEF,eAAeH,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { PanelLeft, PanelLeftClose } from \"lucide-react\";\nimport { Icon } from \"../../ui/Icon.js\";\nimport { Toolbar } from \"../../ui/Toolbar.js\";\nimport { EditorUser } from \"../types.js\";\nimport { EditorInfo } from \"./EditorInfo.js\";\n\nexport type EditorHeaderProps = {\n isSidebarOpen?: boolean;\n toggleSidebar?: () => void;\n characters: number;\n words: number;\n users: EditorUser[];\n};\n\nexport const EditorHeader = ({\n characters,\n users,\n words,\n isSidebarOpen,\n toggleSidebar,\n}: EditorHeaderProps) => {\n return (\n <div className=\"w-full flex flex-row items-center justify-between flex-none py-2 text-black bg-white border-b border-neutral-200 dark:bg-black dark:text-white dark:border-neutral-800\">\n <div className=\"flex flex-row gap-x-1.5 items-center\">\n <div className=\"flex items-center gap-x-1.5\">\n <Toolbar.Button\n type=\"button\"\n tooltip={isSidebarOpen ? \"Close sidebar\" : \"Open sidebar\"}\n onClick={toggleSidebar}\n active={isSidebarOpen}\n className={isSidebarOpen ? \"bg-transparent\" : \"\"}\n >\n <Icon icon={isSidebarOpen ? PanelLeftClose : PanelLeft} />\n </Toolbar.Button>\n </div>\n </div>\n <EditorInfo characters={characters} words={words} users={users} />\n </div>\n );\n};\n"],"names":["React","PanelLeft","PanelLeftClose","Icon","Toolbar","EditorInfo","EditorHeader","characters","users","words","isSidebarOpen","toggleSidebar","div","className","Button","type","tooltip","onClick","active","icon"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,OAAOA,WAAW,QAAQ;AAE1B,SAASC,SAAS,EAAEC,cAAc,QAAQ,eAAe;AACzD,SAASC,IAAI,QAAQ,mBAAmB;AACxC,SAASC,OAAO,QAAQ,sBAAsB;AAE9C,SAASC,UAAU,QAAQ,kBAAkB;AAU7C,OAAO,MAAMC,eAAe,CAAC,EAC3BC,UAAU,EACVC,KAAK,EACLC,KAAK,EACLC,aAAa,EACbC,aAAa,EACK;IAClB,qBACE,MAACC;QAAIC,WAAU;;0BACb,KAACD;gBAAIC,WAAU;0BACb,cAAA,KAACD;oBAAIC,WAAU;8BACb,cAAA,KAACT,QAAQU,MAAM;wBACbC,MAAK;wBACLC,SAASN,gBAAgB,kBAAkB;wBAC3CO,SAASN;wBACTO,QAAQR;wBACRG,WAAWH,gBAAgB,mBAAmB;kCAE9C,cAAA,KAACP;4BAAKgB,MAAMT,gBAAgBR,iBAAiBD;;;;;0BAInD,KAACI;gBAAWE,YAAYA;gBAAYE,OAAOA;gBAAOD,OAAOA;;;;AAG/D,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { PanelLeft, PanelLeftClose } from \"lucide-react\";\nimport { Icon } from \"../../ui/Icon.js\";\nimport { Toolbar } from \"../../ui/Toolbar.js\";\nimport { EditorUser } from \"../types.js\";\nimport { EditorInfo } from \"./EditorInfo.js\";\n\nexport type EditorHeaderProps = {\n isSidebarOpen?: boolean;\n toggleSidebar?: () => void;\n characters: number;\n words: number;\n users: EditorUser[];\n};\n\nexport const EditorHeader = ({\n characters,\n users,\n words,\n isSidebarOpen,\n toggleSidebar,\n}: EditorHeaderProps) => {\n return (\n <div className=\"w-full flex flex-row items-center justify-between flex-none py-2 text-black bg-white border-b border-neutral-200 dark:bg-black dark:text-white dark:border-neutral-800\">\n <div className=\"flex flex-row gap-x-1.5 items-center\">\n <div className=\"flex items-center gap-x-1.5\">\n <Toolbar.Button\n type=\"button\"\n tooltip={isSidebarOpen ? \"Close sidebar\" : \"Open sidebar\"}\n onClick={toggleSidebar}\n active={isSidebarOpen}\n className={isSidebarOpen ? \"bg-transparent\" : \"\"}\n >\n <Icon icon={isSidebarOpen ? PanelLeftClose : PanelLeft} />\n </Toolbar.Button>\n </div>\n </div>\n <EditorInfo characters={characters} words={words} users={users} />\n </div>\n );\n};\n"],"names":["React","PanelLeft","PanelLeftClose","Icon","Toolbar","EditorInfo","EditorHeader","characters","users","words","isSidebarOpen","toggleSidebar","div","className","Button","type","tooltip","onClick","active","icon"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAE1B,SAASC,SAAS,EAAEC,cAAc,QAAQ,eAAe;AACzD,SAASC,IAAI,QAAQ,mBAAmB;AACxC,SAASC,OAAO,QAAQ,sBAAsB;AAE9C,SAASC,UAAU,QAAQ,kBAAkB;AAU7C,OAAO,MAAMC,eAAe,CAAC,EAC3BC,UAAU,EACVC,KAAK,EACLC,KAAK,EACLC,aAAa,EACbC,aAAa,EACK;IAClB,qBACE,MAACC;QAAIC,WAAU;;0BACb,KAACD;gBAAIC,WAAU;0BACb,cAAA,KAACD;oBAAIC,WAAU;8BACb,cAAA,KAACT,QAAQU,MAAM;wBACbC,MAAK;wBACLC,SAASN,gBAAgB,kBAAkB;wBAC3CO,SAASN;wBACTO,QAAQR;wBACRG,WAAWH,gBAAgB,mBAAmB;kCAE9C,cAAA,KAACP;4BAAKgB,MAAMT,gBAAgBR,iBAAiBD;;;;;0BAInD,KAACI;gBAAWE,YAAYA;gBAAYE,OAAOA;gBAAOD,OAAOA;;;;AAG/D,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/BlockEditor/components/EditorInfo.tsx"],"sourcesContent":["import React, { memo } from \"react\";\nimport { EditorUser } from \"../types.js\";\n\nexport type EditorInfoProps = {\n characters: number;\n words: number;\n users: EditorUser[];\n};\n\nexport const EditorInfo = memo(\n ({ characters, users, words }: EditorInfoProps) => {\n return (\n <div className=\"flex items-center\">\n <div className=\"flex flex-col justify-center pr-4 mr-4 text-right border-r border-neutral-200 dark:border-neutral-800\">\n <div className=\"text-xs font-semibold text-neutral-500 dark:text-neutral-400\">\n {words} {words === 1 ? \"word\" : \"words\"}\n </div>\n <div className=\"text-xs font-semibold text-neutral-500 dark:text-neutral-400\">\n {characters} {characters === 1 ? \"character\" : \"characters\"}\n </div>\n </div>\n {/* <div className=\"flex items-center gap-2 mr-2\">\n <div\n className={cn('w-2 h-2 rounded-full', {\n 'bg-yellow-500 dark:bg-yellow-400': collabState === 'connecting',\n 'bg-green-500 dark:bg-green-400': collabState === 'connected',\n 'bg-red-500 dark:bg-red-400': collabState === 'disconnected',\n })}\n />\n <span className=\"max-w-[4rem] text-xs text-neutral-500 dark:text-neutral-400 font-semibold\">\n {getConnectionText(collabState)}\n </span>\n </div>\n {collabState === 'connected' && (\n <div className=\"flex flex-row items-center\">\n <div className=\"relative flex flex-row items-center ml-3\">\n {users.map((user: EditorUser) => (\n <div key={user.clientId} className=\"-ml-3\">\n <Tooltip title={user.name}>\n <img\n className=\"w-8 h-8 border border-white rounded-full dark:border-black\"\n src={`https://api.dicebear.com/7.x/notionists-neutral/svg?seed=${\n user.name\n }&backgroundColor=${user.color.replace('#', '')}`}\n alt=\"avatar\"\n />\n </Tooltip>\n </div>\n ))}\n {users.length > 3 && (\n <div className=\"-ml-3\">\n <div className=\"flex items-center justify-center w-8 h-8 font-bold text-xs leading-none border border-white dark:border-black bg-[#FFA2A2] rounded-full\">\n +{users.length - 3}\n </div>\n </div>\n )}\n </div>\n </div>\n )} */}\n </div>\n );\n }\n);\n\nEditorInfo.displayName = \"EditorInfo\";\n"],"names":["React","memo","EditorInfo","characters","users","words","div","className","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,OAAOA,SAASC,IAAI,QAAQ,QAAQ;AASpC,OAAO,MAAMC,2BAAaD,KACxB,CAAC,EAAEE,UAAU,EAAEC,KAAK,EAAEC,KAAK,EAAmB;IAC5C,qBACE,KAACC;QAAIC,WAAU;kBACb,cAAA,MAACD;YAAIC,WAAU;;8BACb,MAACD;oBAAIC,WAAU;;wBACZF;wBAAM;wBAAEA,UAAU,IAAI,SAAS;;;8BAElC,MAACC;oBAAIC,WAAU;;wBACZJ;wBAAW;wBAAEA,eAAe,IAAI,cAAc;;;;;;AA2CzD,GACA;AAEFD,WAAWM,WAAW,GAAG"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/BlockEditor/components/EditorInfo.tsx"],"sourcesContent":["import React, { memo } from \"react\";\nimport { EditorUser } from \"../types.js\";\n\nexport type EditorInfoProps = {\n characters: number;\n words: number;\n users: EditorUser[];\n};\n\nexport const EditorInfo = memo(\n ({ characters, users, words }: EditorInfoProps) => {\n return (\n <div className=\"flex items-center\">\n <div className=\"flex flex-col justify-center pr-4 mr-4 text-right border-r border-neutral-200 dark:border-neutral-800\">\n <div className=\"text-xs font-semibold text-neutral-500 dark:text-neutral-400\">\n {words} {words === 1 ? \"word\" : \"words\"}\n </div>\n <div className=\"text-xs font-semibold text-neutral-500 dark:text-neutral-400\">\n {characters} {characters === 1 ? \"character\" : \"characters\"}\n </div>\n </div>\n {/* <div className=\"flex items-center gap-2 mr-2\">\n <div\n className={cn('w-2 h-2 rounded-full', {\n 'bg-yellow-500 dark:bg-yellow-400': collabState === 'connecting',\n 'bg-green-500 dark:bg-green-400': collabState === 'connected',\n 'bg-red-500 dark:bg-red-400': collabState === 'disconnected',\n })}\n />\n <span className=\"max-w-[4rem] text-xs text-neutral-500 dark:text-neutral-400 font-semibold\">\n {getConnectionText(collabState)}\n </span>\n </div>\n {collabState === 'connected' && (\n <div className=\"flex flex-row items-center\">\n <div className=\"relative flex flex-row items-center ml-3\">\n {users.map((user: EditorUser) => (\n <div key={user.clientId} className=\"-ml-3\">\n <Tooltip title={user.name}>\n <img\n className=\"w-8 h-8 border border-white rounded-full dark:border-black\"\n src={`https://api.dicebear.com/7.x/notionists-neutral/svg?seed=${\n user.name\n }&backgroundColor=${user.color.replace('#', '')}`}\n alt=\"avatar\"\n />\n </Tooltip>\n </div>\n ))}\n {users.length > 3 && (\n <div className=\"-ml-3\">\n <div className=\"flex items-center justify-center w-8 h-8 font-bold text-xs leading-none border border-white dark:border-black bg-[#FFA2A2] rounded-full\">\n +{users.length - 3}\n </div>\n </div>\n )}\n </div>\n </div>\n )} */}\n </div>\n );\n }\n);\n\nEditorInfo.displayName = \"EditorInfo\";\n"],"names":["React","memo","EditorInfo","characters","users","words","div","className","displayName"],"mappings":";AAAA,OAAOA,SAASC,IAAI,QAAQ,QAAQ;AASpC,OAAO,MAAMC,2BAAaD,KACxB,CAAC,EAAEE,UAAU,EAAEC,KAAK,EAAEC,KAAK,EAAmB;IAC5C,qBACE,KAACC;QAAIC,WAAU;kBACb,cAAA,MAACD;YAAIC,WAAU;;8BACb,MAACD;oBAAIC,WAAU;;wBACZF;wBAAM;wBAAEA,UAAU,IAAI,SAAS;;;8BAElC,MAACC;oBAAIC,WAAU;;wBACZJ;wBAAW;wBAAEA,eAAe,IAAI,cAAc;;;;;;AA2CzD,GACA;AAEFD,WAAWM,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/index.tsx"],"sourcesContent":["export * from \"./BlockEditor.js\";\n"],"names":[],"rangeMappings":"","mappings":"AAAA,cAAc,mBAAmB"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/index.tsx"],"sourcesContent":["export * from \"./BlockEditor.js\";\n"],"names":[],"mappings":"AAAA,cAAc,mBAAmB"}
@@ -1,7 +1,6 @@
1
1
  export interface TiptapProps {
2
2
  hasCollab: boolean;
3
3
  handleChange: (value: any) => void;
4
- handleChangeMarkdown?: (value: any) => void;
5
4
  content: {
6
5
  html: string;
7
6
  json: any;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/types.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC5C,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;CACtC;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AACF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,MAAM,GACd,UAAU,GACV,UAAU,GACV,QAAQ,GACR,eAAe,GACf,gBAAgB,GAChB,WAAW,GACX,UAAU,GACV,aAAa,GACb,eAAe,GACf,MAAM,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAEtE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/types.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;CACtC;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AACF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,MAAM,GACd,UAAU,GACV,UAAU,GACV,QAAQ,GACR,eAAe,GACf,gBAAgB,GAChB,WAAW,GACX,UAAU,GACV,aAAa,GACb,eAAe,GACf,MAAM,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAEtE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/types.tsx"],"sourcesContent":["export interface TiptapProps {\n hasCollab: boolean;\n handleChange: (value: any) => void;\n handleChangeMarkdown?: (value: any) => void;\n content: { html: string; json: any };\n}\n\nexport type LanguageOption = {\n name: string;\n label: string;\n value: any;\n};\nexport type EditorUser = {\n clientId: string;\n name: string;\n color: string;\n initials?: string;\n};\n\nexport type AiTone =\n | \"academic\"\n | \"business\"\n | \"casual\"\n | \"childfriendly\"\n | \"conversational\"\n | \"emotional\"\n | \"humorous\"\n | \"informative\"\n | \"inspirational\"\n | string;\n\nexport type AiPromptType = \"SHORTEN\" | \"EXTEND\" | \"SIMPLIFY\" | \"TONE\";\n\nexport type AiToneOption = {\n name: string;\n label: string;\n value: AiTone;\n};\n\nexport type AiImageStyle = {\n name: string;\n label: string;\n value: string;\n};\n"],"names":[],"rangeMappings":"","mappings":"AAuCA,WAIE"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/types.tsx"],"sourcesContent":["export interface TiptapProps {\n hasCollab: boolean;\n handleChange: (value: any) => void;\n content: { html: string; json: any };\n}\n\nexport type LanguageOption = {\n name: string;\n label: string;\n value: any;\n};\nexport type EditorUser = {\n clientId: string;\n name: string;\n color: string;\n initials?: string;\n};\n\nexport type AiTone =\n | \"academic\"\n | \"business\"\n | \"casual\"\n | \"childfriendly\"\n | \"conversational\"\n | \"emotional\"\n | \"humorous\"\n | \"informative\"\n | \"inspirational\"\n | string;\n\nexport type AiPromptType = \"SHORTEN\" | \"EXTEND\" | \"SIMPLIFY\" | \"TONE\";\n\nexport type AiToneOption = {\n name: string;\n label: string;\n value: AiTone;\n};\n\nexport type AiImageStyle = {\n name: string;\n label: string;\n value: string;\n};\n"],"names":[],"mappings":"AAsCA,WAIE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/Sidebar.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { memo, useCallback } from \"react\";\nimport { Editor } from \"@tiptap/react\";\nimport { TableOfContents } from \"../TableOfContents/index.js\";\nimport { cn } from \"../../lib/utils/index.js\";\n\nexport const Sidebar = memo(\n ({\n editor,\n isOpen,\n onClose,\n }: {\n editor: Editor;\n isOpen?: boolean;\n onClose: () => void;\n }) => {\n const handlePotentialClose = useCallback(() => {\n if (window.innerWidth < 1024) {\n onClose();\n }\n }, [onClose]);\n\n const windowClassName = cn(\n \"absolute top-0 left-0 bg-white lg:bg-white/30 lg:backdrop-blur-xl h-full lg:h-auto lg:relative z-[999] w-0 duration-300 transition-all\",\n \"dark:bg-black lg:dark:bg-black/30\",\n !isOpen && \"border-r-transparent\",\n isOpen && \"w-80 border-r border-r-neutral-200 dark:border-r-neutral-800\"\n );\n\n return (\n <div className={windowClassName}>\n <div className=\"w-full h-full overflow-hidden\">\n <div className=\"w-full h-full p-2 overflow-auto\">\n <TableOfContents\n onItemClick={handlePotentialClose}\n editor={editor}\n />\n </div>\n </div>\n </div>\n );\n }\n);\n\nSidebar.displayName = \"TableOfContentSidepanel\";\n"],"names":["React","memo","useCallback","TableOfContents","cn","Sidebar","editor","isOpen","onClose","handlePotentialClose","window","innerWidth","windowClassName","div","className","onItemClick","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,EAAEC,WAAW,QAAQ,QAAQ;AAE1C,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,EAAE,QAAQ,2BAA2B;AAE9C,OAAO,MAAMC,wBAAUJ,KACrB,CAAC,EACCK,MAAM,EACNC,MAAM,EACNC,OAAO,EAKR;IACC,MAAMC,uBAAuBP,YAAY;QACvC,IAAIQ,OAAOC,UAAU,GAAG,MAAM;YAC5BH;QACF;IACF,GAAG;QAACA;KAAQ;IAEZ,MAAMI,kBAAkBR,GACtB,0IACA,qCACA,CAACG,UAAU,wBACXA,UAAU;IAGZ,qBACE,KAACM;QAAIC,WAAWF;kBACd,cAAA,KAACC;YAAIC,WAAU;sBACb,cAAA,KAACD;gBAAIC,WAAU;0BACb,cAAA,KAACX;oBACCY,aAAaN;oBACbH,QAAQA;;;;;AAMpB,GACA;AAEFD,QAAQW,WAAW,GAAG"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/Sidebar.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { memo, useCallback } from \"react\";\nimport { Editor } from \"@tiptap/react\";\nimport { TableOfContents } from \"../TableOfContents/index.js\";\nimport { cn } from \"../../lib/utils/index.js\";\n\nexport const Sidebar = memo(\n ({\n editor,\n isOpen,\n onClose,\n }: {\n editor: Editor;\n isOpen?: boolean;\n onClose: () => void;\n }) => {\n const handlePotentialClose = useCallback(() => {\n if (window.innerWidth < 1024) {\n onClose();\n }\n }, [onClose]);\n\n const windowClassName = cn(\n \"absolute top-0 left-0 bg-white lg:bg-white/30 lg:backdrop-blur-xl h-full lg:h-auto lg:relative z-[999] w-0 duration-300 transition-all\",\n \"dark:bg-black lg:dark:bg-black/30\",\n !isOpen && \"border-r-transparent\",\n isOpen && \"w-80 border-r border-r-neutral-200 dark:border-r-neutral-800\"\n );\n\n return (\n <div className={windowClassName}>\n <div className=\"w-full h-full overflow-hidden\">\n <div className=\"w-full h-full p-2 overflow-auto\">\n <TableOfContents\n onItemClick={handlePotentialClose}\n editor={editor}\n />\n </div>\n </div>\n </div>\n );\n }\n);\n\nSidebar.displayName = \"TableOfContentSidepanel\";\n"],"names":["React","memo","useCallback","TableOfContents","cn","Sidebar","editor","isOpen","onClose","handlePotentialClose","window","innerWidth","windowClassName","div","className","onItemClick","displayName"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,EAAEC,WAAW,QAAQ,QAAQ;AAE1C,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,EAAE,QAAQ,2BAA2B;AAE9C,OAAO,MAAMC,wBAAUJ,KACrB,CAAC,EACCK,MAAM,EACNC,MAAM,EACNC,OAAO,EAKR;IACC,MAAMC,uBAAuBP,YAAY;QACvC,IAAIQ,OAAOC,UAAU,GAAG,MAAM;YAC5BH;QACF;IACF,GAAG;QAACA;KAAQ;IAEZ,MAAMI,kBAAkBR,GACtB,0IACA,qCACA,CAACG,UAAU,wBACXA,UAAU;IAGZ,qBACE,KAACM;QAAIC,WAAWF;kBACd,cAAA,KAACC;YAAIC,WAAU;sBACb,cAAA,KAACD;gBAAIC,WAAU;0BACb,cAAA,KAACX;oBACCY,aAAaN;oBACbH,QAAQA;;;;;AAMpB,GACA;AAEFD,QAAQW,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/index.tsx"],"sourcesContent":["export * from \"./Sidebar.js\";\n"],"names":[],"rangeMappings":"","mappings":"AAAA,cAAc,eAAe"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/index.tsx"],"sourcesContent":["export * from \"./Sidebar.js\";\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/TableOfContents.tsx"],"sourcesContent":["import React from \"react\";\nimport { Editor as CoreEditor } from \"@tiptap/core\";\nimport { memo, useEffect, useState } from \"react\";\nimport { TableOfContentsStorage } from \"@tiptap-pro/extension-table-of-contents\";\nimport { cn } from \"../../lib/utils/index.js\";\n// import { toTranslationKey } from '@/languages'\nimport { useTranslation } from \"@payloadcms/ui/providers/Translation\";\n\nexport type TableOfContentsProps = {\n editor: CoreEditor;\n onItemClick?: () => void;\n};\n\nexport const TableOfContents = memo(\n ({ editor, onItemClick }: TableOfContentsProps) => {\n const [data, setData] = useState<TableOfContentsStorage | null>(null);\n\n useEffect(() => {\n const handler = ({ editor: currentEditor }: { editor: CoreEditor }) => {\n setData({ ...currentEditor.extensionStorage.tableOfContents });\n };\n\n handler({ editor });\n\n editor.on(\"update\", handler);\n editor.on(\"selectionUpdate\", handler);\n\n return () => {\n editor.off(\"update\", handler);\n editor.off(\"selectionUpdate\", handler);\n };\n }, [editor]);\n const { i18n } = useTranslation();\n\n return (\n <div lang={i18n.language}>\n <div className=\"mb-2 text-xs font-semibold uppercase text-neutral-500 dark:text-neutral-400\">\n {/* {toTranslationKey('table_of_contents')}Table of Contents */}\n </div>\n {data && data.content.length > 0 ? (\n <div className=\"flex flex-col gap-1\">\n {data.content.map((item) => (\n <a\n key={item.id}\n href={`#${item.id}`}\n style={{ marginLeft: `${1 * item.level - 1}rem` }}\n onClick={onItemClick}\n className={cn(\n \"block font-medium text-neutral-500 dark:text-neutral-300 p-1 rounded bg-opacity-10 text-sm hover:text-neutral-800 transition-all hover:bg-black hover:bg-opacity-5 truncate w-full\",\n item.isActive &&\n \"text-neutral-800 bg-neutral-100 dark:text-neutral-100 dark:bg-neutral-900\"\n )}\n >\n {item.itemIndex}. {item.textContent}\n </a>\n ))}\n </div>\n ) : (\n <div className=\"text-sm text-neutral-500\">\n {/* Start adding headlines to your document */}\n {/* {toTranslationKey(\"start_adding_headlines_to_your_document\")} */}\n </div>\n )}\n </div>\n );\n }\n);\n\nTableOfContents.displayName = \"TableOfContents\";\n"],"names":["React","memo","useEffect","useState","cn","useTranslation","TableOfContents","editor","onItemClick","data","setData","handler","currentEditor","extensionStorage","tableOfContents","on","off","i18n","div","lang","language","className","content","length","map","item","a","href","id","style","marginLeft","level","onClick","isActive","itemIndex","textContent","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,OAAOA,WAAW,QAAQ;AAE1B,SAASC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAElD,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,iDAAiD;AACjD,SAASC,cAAc,QAAQ,uCAAuC;AAOtE,OAAO,MAAMC,gCAAkBL,KAC7B,CAAC,EAAEM,MAAM,EAAEC,WAAW,EAAwB;IAC5C,MAAM,CAACC,MAAMC,QAAQ,GAAGP,SAAwC;IAEhED,UAAU;QACR,MAAMS,UAAU,CAAC,EAAEJ,QAAQK,aAAa,EAA0B;YAChEF,QAAQ;gBAAE,GAAGE,cAAcC,gBAAgB,CAACC,eAAe;YAAC;QAC9D;QAEAH,QAAQ;YAAEJ;QAAO;QAEjBA,OAAOQ,EAAE,CAAC,UAAUJ;QACpBJ,OAAOQ,EAAE,CAAC,mBAAmBJ;QAE7B,OAAO;YACLJ,OAAOS,GAAG,CAAC,UAAUL;YACrBJ,OAAOS,GAAG,CAAC,mBAAmBL;QAChC;IACF,GAAG;QAACJ;KAAO;IACX,MAAM,EAAEU,IAAI,EAAE,GAAGZ;IAEjB,qBACE,MAACa;QAAIC,MAAMF,KAAKG,QAAQ;;0BACtB,KAACF;gBAAIG,WAAU;;YAGdZ,QAAQA,KAAKa,OAAO,CAACC,MAAM,GAAG,kBAC7B,KAACL;gBAAIG,WAAU;0BACZZ,KAAKa,OAAO,CAACE,GAAG,CAAC,CAACC,qBACjB,MAACC;wBAECC,MAAM,CAAC,CAAC,EAAEF,KAAKG,EAAE,CAAC,CAAC;wBACnBC,OAAO;4BAAEC,YAAY,CAAC,EAAE,IAAIL,KAAKM,KAAK,GAAG,EAAE,GAAG,CAAC;wBAAC;wBAChDC,SAASxB;wBACTa,WAAWjB,GACT,sLACAqB,KAAKQ,QAAQ,IACX;;4BAGHR,KAAKS,SAAS;4BAAC;4BAAGT,KAAKU,WAAW;;uBAV9BV,KAAKG,EAAE;+BAelB,KAACV;gBAAIG,WAAU;;;;AAOvB,GACA;AAEFf,gBAAgB8B,WAAW,GAAG"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/TableOfContents.tsx"],"sourcesContent":["import React from \"react\";\nimport { Editor as CoreEditor } from \"@tiptap/core\";\nimport { memo, useEffect, useState } from \"react\";\nimport { TableOfContentsStorage } from \"@tiptap-pro/extension-table-of-contents\";\nimport { cn } from \"../../lib/utils/index.js\";\n// import { toTranslationKey } from '@/languages'\nimport { useTranslation } from \"@payloadcms/ui/providers/Translation\";\n\nexport type TableOfContentsProps = {\n editor: CoreEditor;\n onItemClick?: () => void;\n};\n\nexport const TableOfContents = memo(\n ({ editor, onItemClick }: TableOfContentsProps) => {\n const [data, setData] = useState<TableOfContentsStorage | null>(null);\n\n useEffect(() => {\n const handler = ({ editor: currentEditor }: { editor: CoreEditor }) => {\n setData({ ...currentEditor.extensionStorage.tableOfContents });\n };\n\n handler({ editor });\n\n editor.on(\"update\", handler);\n editor.on(\"selectionUpdate\", handler);\n\n return () => {\n editor.off(\"update\", handler);\n editor.off(\"selectionUpdate\", handler);\n };\n }, [editor]);\n const { i18n } = useTranslation();\n\n return (\n <div lang={i18n.language}>\n <div className=\"mb-2 text-xs font-semibold uppercase text-neutral-500 dark:text-neutral-400\">\n {/* {toTranslationKey('table_of_contents')}Table of Contents */}\n </div>\n {data && data.content.length > 0 ? (\n <div className=\"flex flex-col gap-1\">\n {data.content.map((item) => (\n <a\n key={item.id}\n href={`#${item.id}`}\n style={{ marginLeft: `${1 * item.level - 1}rem` }}\n onClick={onItemClick}\n className={cn(\n \"block font-medium text-neutral-500 dark:text-neutral-300 p-1 rounded bg-opacity-10 text-sm hover:text-neutral-800 transition-all hover:bg-black hover:bg-opacity-5 truncate w-full\",\n item.isActive &&\n \"text-neutral-800 bg-neutral-100 dark:text-neutral-100 dark:bg-neutral-900\"\n )}\n >\n {item.itemIndex}. {item.textContent}\n </a>\n ))}\n </div>\n ) : (\n <div className=\"text-sm text-neutral-500\">\n {/* Start adding headlines to your document */}\n {/* {toTranslationKey(\"start_adding_headlines_to_your_document\")} */}\n </div>\n )}\n </div>\n );\n }\n);\n\nTableOfContents.displayName = \"TableOfContents\";\n"],"names":["React","memo","useEffect","useState","cn","useTranslation","TableOfContents","editor","onItemClick","data","setData","handler","currentEditor","extensionStorage","tableOfContents","on","off","i18n","div","lang","language","className","content","length","map","item","a","href","id","style","marginLeft","level","onClick","isActive","itemIndex","textContent","displayName"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAE1B,SAASC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAElD,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,iDAAiD;AACjD,SAASC,cAAc,QAAQ,uCAAuC;AAOtE,OAAO,MAAMC,gCAAkBL,KAC7B,CAAC,EAAEM,MAAM,EAAEC,WAAW,EAAwB;IAC5C,MAAM,CAACC,MAAMC,QAAQ,GAAGP,SAAwC;IAEhED,UAAU;QACR,MAAMS,UAAU,CAAC,EAAEJ,QAAQK,aAAa,EAA0B;YAChEF,QAAQ;gBAAE,GAAGE,cAAcC,gBAAgB,CAACC,eAAe;YAAC;QAC9D;QAEAH,QAAQ;YAAEJ;QAAO;QAEjBA,OAAOQ,EAAE,CAAC,UAAUJ;QACpBJ,OAAOQ,EAAE,CAAC,mBAAmBJ;QAE7B,OAAO;YACLJ,OAAOS,GAAG,CAAC,UAAUL;YACrBJ,OAAOS,GAAG,CAAC,mBAAmBL;QAChC;IACF,GAAG;QAACJ;KAAO;IACX,MAAM,EAAEU,IAAI,EAAE,GAAGZ;IAEjB,qBACE,MAACa;QAAIC,MAAMF,KAAKG,QAAQ;;0BACtB,KAACF;gBAAIG,WAAU;;YAGdZ,QAAQA,KAAKa,OAAO,CAACC,MAAM,GAAG,kBAC7B,KAACL;gBAAIG,WAAU;0BACZZ,KAAKa,OAAO,CAACE,GAAG,CAAC,CAACC,qBACjB,MAACC;wBAECC,MAAM,CAAC,CAAC,EAAEF,KAAKG,EAAE,CAAC,CAAC;wBACnBC,OAAO;4BAAEC,YAAY,CAAC,EAAE,IAAIL,KAAKM,KAAK,GAAG,EAAE,GAAG,CAAC;wBAAC;wBAChDC,SAASxB;wBACTa,WAAWjB,GACT,sLACAqB,KAAKQ,QAAQ,IACX;;4BAGHR,KAAKS,SAAS;4BAAC;4BAAGT,KAAKU,WAAW;;uBAV9BV,KAAKG,EAAE;+BAelB,KAACV;gBAAIG,WAAU;;;;AAOvB,GACA;AAEFf,gBAAgB8B,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/index.tsx"],"sourcesContent":["export * from \"./TableOfContents.js\";\n"],"names":[],"rangeMappings":"","mappings":"AAAA,cAAc,uBAAuB"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/index.tsx"],"sourcesContent":["export * from \"./TableOfContents.js\";\n"],"names":[],"mappings":"AAAA,cAAc,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.tsx"],"sourcesContent":["\"use client\";\nimport { DragHandle } from \"@tiptap-pro/extension-drag-handle-react\";\nimport { Editor } from \"@tiptap/react\";\nimport { Icon } from \"../../ui/Icon.js\";\nimport { Toolbar } from \"../../ui/Toolbar.js\";\n\nimport { useTranslation } from \"@payloadcms/ui/providers/Translation\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport {\n Clipboard,\n Copy,\n GripVertical,\n Plus,\n RemoveFormatting,\n Trash2,\n} from \"lucide-react\";\nimport { useEffect, useState } from \"react\";\nimport { DropdownButton } from \"../../ui/Dropdown/Dropdown.js\";\nimport { Surface } from \"../../ui/Surface.js\";\nimport useContentItemActions from \"./hooks/useContentItemActions.js\";\nimport { useData } from \"./hooks/useData.js\";\n\nexport type ContentItemMenuProps = {\n editor: Editor;\n};\n\nexport const ContentItemMenu = ({ editor }: ContentItemMenuProps) => {\n const [menuOpen, setMenuOpen] = useState(false);\n const [tippyOptions, setTippyOptions] = useState();\n const data = useData();\n const { i18n } = useTranslation();\n const actions = useContentItemActions(\n editor,\n data.currentNode,\n data.currentNodePos\n );\n\n useEffect(() => {\n if (menuOpen) {\n editor.commands.setMeta(\"lockDragHandle\", true);\n } else {\n editor.commands.setMeta(\"lockDragHandle\", false);\n }\n }, [editor, menuOpen]);\n\n return (\n <DragHandle\n pluginKey=\"ContentItemMenu\"\n editor={editor}\n onNodeChange={data.handleNodeChange}\n tippyOptions={{\n placement: \"left\",\n offset: [-12, 2],\n zIndex: 99,\n }}\n >\n <div className=\"flex items-center gap-0.5\">\n <Toolbar.Button type=\"button\" onClick={actions.handleAdd}>\n <Icon icon={Plus} />\n </Toolbar.Button>\n <Popover.Root open={menuOpen} onOpenChange={setMenuOpen}>\n <Popover.Trigger asChild>\n <Toolbar.Button type=\"button\">\n <Icon icon={GripVertical} />\n </Toolbar.Button>\n </Popover.Trigger>\n <Popover.Content side=\"bottom\" align=\"start\" sideOffset={8}>\n <Surface className=\"p-2 flex flex-col min-w-[16rem]\">\n <Popover.Close>\n <DropdownButton onClick={actions.resetTextFormatting}>\n <Icon icon={RemoveFormatting} />\n Clear formatting\n </DropdownButton>\n </Popover.Close>\n <Popover.Close>\n <DropdownButton onClick={actions.copyNodeToClipboard}>\n <Icon icon={Clipboard} />\n Copy to clipboard\n </DropdownButton>\n </Popover.Close>\n <Popover.Close>\n <DropdownButton onClick={actions.duplicateNode}>\n <Icon icon={Copy} />\n Duplicate\n </DropdownButton>\n </Popover.Close>\n <Toolbar.Divider horizontal />\n <Popover.Close>\n <DropdownButton\n onClick={actions.deleteNode}\n className=\"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 <Icon icon={Trash2} />\n Delete\n </DropdownButton>\n </Popover.Close>\n </Surface>\n </Popover.Content>\n </Popover.Root>\n </div>\n </DragHandle>\n );\n};\n"],"names":["DragHandle","Icon","Toolbar","useTranslation","Popover","Clipboard","Copy","GripVertical","Plus","RemoveFormatting","Trash2","useEffect","useState","DropdownButton","Surface","useContentItemActions","useData","ContentItemMenu","editor","menuOpen","setMenuOpen","tippyOptions","setTippyOptions","data","i18n","actions","currentNode","currentNodePos","commands","setMeta","pluginKey","onNodeChange","handleNodeChange","placement","offset","zIndex","div","className","Button","type","onClick","handleAdd","icon","Root","open","onOpenChange","Trigger","asChild","Content","side","align","sideOffset","Close","resetTextFormatting","copyNodeToClipboard","duplicateNode","Divider","horizontal","deleteNode"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,UAAU,QAAQ,0CAA0C;AAErE,SAASC,IAAI,QAAQ,mBAAmB;AACxC,SAASC,OAAO,QAAQ,sBAAsB;AAE9C,SAASC,cAAc,QAAQ,uCAAuC;AACtE,YAAYC,aAAa,0BAA0B;AACnD,SACEC,SAAS,EACTC,IAAI,EACJC,YAAY,EACZC,IAAI,EACJC,gBAAgB,EAChBC,MAAM,QACD,eAAe;AACtB,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAC5C,SAASC,cAAc,QAAQ,gCAAgC;AAC/D,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,OAAOC,2BAA2B,mCAAmC;AACrE,SAASC,OAAO,QAAQ,qBAAqB;AAM7C,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,MAAM,EAAwB;IAC9D,MAAM,CAACC,UAAUC,YAAY,GAAGR,SAAS;IACzC,MAAM,CAACS,cAAcC,gBAAgB,GAAGV;IACxC,MAAMW,OAAOP;IACb,MAAM,EAAEQ,IAAI,EAAE,GAAGrB;IACjB,MAAMsB,UAAUV,sBACdG,QACAK,KAAKG,WAAW,EAChBH,KAAKI,cAAc;IAGrBhB,UAAU;QACR,IAAIQ,UAAU;YACZD,OAAOU,QAAQ,CAACC,OAAO,CAAC,kBAAkB;QAC5C,OAAO;YACLX,OAAOU,QAAQ,CAACC,OAAO,CAAC,kBAAkB;QAC5C;IACF,GAAG;QAACX;QAAQC;KAAS;IAErB,qBACE,KAACnB;QACC8B,WAAU;QACVZ,QAAQA;QACRa,cAAcR,KAAKS,gBAAgB;QACnCX,cAAc;YACZY,WAAW;YACXC,QAAQ;gBAAC,CAAC;gBAAI;aAAE;YAChBC,QAAQ;QACV;kBAEA,cAAA,MAACC;YAAIC,WAAU;;8BACb,KAACnC,QAAQoC,MAAM;oBAACC,MAAK;oBAASC,SAASf,QAAQgB,SAAS;8BACtD,cAAA,KAACxC;wBAAKyC,MAAMlC;;;8BAEd,MAACJ,QAAQuC,IAAI;oBAACC,MAAMzB;oBAAU0B,cAAczB;;sCAC1C,KAAChB,QAAQ0C,OAAO;4BAACC,OAAO;sCACtB,cAAA,KAAC7C,QAAQoC,MAAM;gCAACC,MAAK;0CACnB,cAAA,KAACtC;oCAAKyC,MAAMnC;;;;sCAGhB,KAACH,QAAQ4C,OAAO;4BAACC,MAAK;4BAASC,OAAM;4BAAQC,YAAY;sCACvD,cAAA,MAACrC;gCAAQuB,WAAU;;kDACjB,KAACjC,QAAQgD,KAAK;kDACZ,cAAA,MAACvC;4CAAe2B,SAASf,QAAQ4B,mBAAmB;;8DAClD,KAACpD;oDAAKyC,MAAMjC;;gDAAoB;;;;kDAIpC,KAACL,QAAQgD,KAAK;kDACZ,cAAA,MAACvC;4CAAe2B,SAASf,QAAQ6B,mBAAmB;;8DAClD,KAACrD;oDAAKyC,MAAMrC;;gDAAa;;;;kDAI7B,KAACD,QAAQgD,KAAK;kDACZ,cAAA,MAACvC;4CAAe2B,SAASf,QAAQ8B,aAAa;;8DAC5C,KAACtD;oDAAKyC,MAAMpC;;gDAAQ;;;;kDAIxB,KAACJ,QAAQsD,OAAO;wCAACC,UAAU;;kDAC3B,KAACrD,QAAQgD,KAAK;kDACZ,cAAA,MAACvC;4CACC2B,SAASf,QAAQiC,UAAU;4CAC3BrB,WAAU;;8DAEV,KAACpC;oDAAKyC,MAAMhC;;gDAAU;;;;;;;;;;;;AAUxC,EAAE"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.tsx"],"sourcesContent":["\"use client\";\nimport { DragHandle } from \"@tiptap-pro/extension-drag-handle-react\";\nimport { Editor } from \"@tiptap/react\";\nimport { Icon } from \"../../ui/Icon.js\";\nimport { Toolbar } from \"../../ui/Toolbar.js\";\n\nimport { useTranslation } from \"@payloadcms/ui/providers/Translation\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport {\n Clipboard,\n Copy,\n GripVertical,\n Plus,\n RemoveFormatting,\n Trash2,\n} from \"lucide-react\";\nimport { useEffect, useState } from \"react\";\nimport { DropdownButton } from \"../../ui/Dropdown/Dropdown.js\";\nimport { Surface } from \"../../ui/Surface.js\";\nimport useContentItemActions from \"./hooks/useContentItemActions.js\";\nimport { useData } from \"./hooks/useData.js\";\n\nexport type ContentItemMenuProps = {\n editor: Editor;\n};\n\nexport const ContentItemMenu = ({ editor }: ContentItemMenuProps) => {\n const [menuOpen, setMenuOpen] = useState(false);\n const [tippyOptions, setTippyOptions] = useState();\n const data = useData();\n const { i18n } = useTranslation();\n const actions = useContentItemActions(\n editor,\n data.currentNode,\n data.currentNodePos\n );\n\n useEffect(() => {\n if (menuOpen) {\n editor.commands.setMeta(\"lockDragHandle\", true);\n } else {\n editor.commands.setMeta(\"lockDragHandle\", false);\n }\n }, [editor, menuOpen]);\n\n return (\n <DragHandle\n pluginKey=\"ContentItemMenu\"\n editor={editor}\n onNodeChange={data.handleNodeChange}\n tippyOptions={{\n placement: \"left\",\n offset: [-12, 2],\n zIndex: 99,\n }}\n >\n <div className=\"flex items-center gap-0.5\">\n <Toolbar.Button type=\"button\" onClick={actions.handleAdd}>\n <Icon icon={Plus} />\n </Toolbar.Button>\n <Popover.Root open={menuOpen} onOpenChange={setMenuOpen}>\n <Popover.Trigger asChild>\n <Toolbar.Button type=\"button\">\n <Icon icon={GripVertical} />\n </Toolbar.Button>\n </Popover.Trigger>\n <Popover.Content side=\"bottom\" align=\"start\" sideOffset={8}>\n <Surface className=\"p-2 flex flex-col min-w-[16rem]\">\n <Popover.Close>\n <DropdownButton onClick={actions.resetTextFormatting}>\n <Icon icon={RemoveFormatting} />\n Clear formatting\n </DropdownButton>\n </Popover.Close>\n <Popover.Close>\n <DropdownButton onClick={actions.copyNodeToClipboard}>\n <Icon icon={Clipboard} />\n Copy to clipboard\n </DropdownButton>\n </Popover.Close>\n <Popover.Close>\n <DropdownButton onClick={actions.duplicateNode}>\n <Icon icon={Copy} />\n Duplicate\n </DropdownButton>\n </Popover.Close>\n <Toolbar.Divider horizontal />\n <Popover.Close>\n <DropdownButton\n onClick={actions.deleteNode}\n className=\"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 <Icon icon={Trash2} />\n Delete\n </DropdownButton>\n </Popover.Close>\n </Surface>\n </Popover.Content>\n </Popover.Root>\n </div>\n </DragHandle>\n );\n};\n"],"names":["DragHandle","Icon","Toolbar","useTranslation","Popover","Clipboard","Copy","GripVertical","Plus","RemoveFormatting","Trash2","useEffect","useState","DropdownButton","Surface","useContentItemActions","useData","ContentItemMenu","editor","menuOpen","setMenuOpen","tippyOptions","setTippyOptions","data","i18n","actions","currentNode","currentNodePos","commands","setMeta","pluginKey","onNodeChange","handleNodeChange","placement","offset","zIndex","div","className","Button","type","onClick","handleAdd","icon","Root","open","onOpenChange","Trigger","asChild","Content","side","align","sideOffset","Close","resetTextFormatting","copyNodeToClipboard","duplicateNode","Divider","horizontal","deleteNode"],"mappings":"AAAA;;AACA,SAASA,UAAU,QAAQ,0CAA0C;AAErE,SAASC,IAAI,QAAQ,mBAAmB;AACxC,SAASC,OAAO,QAAQ,sBAAsB;AAE9C,SAASC,cAAc,QAAQ,uCAAuC;AACtE,YAAYC,aAAa,0BAA0B;AACnD,SACEC,SAAS,EACTC,IAAI,EACJC,YAAY,EACZC,IAAI,EACJC,gBAAgB,EAChBC,MAAM,QACD,eAAe;AACtB,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAC5C,SAASC,cAAc,QAAQ,gCAAgC;AAC/D,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,OAAOC,2BAA2B,mCAAmC;AACrE,SAASC,OAAO,QAAQ,qBAAqB;AAM7C,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,MAAM,EAAwB;IAC9D,MAAM,CAACC,UAAUC,YAAY,GAAGR,SAAS;IACzC,MAAM,CAACS,cAAcC,gBAAgB,GAAGV;IACxC,MAAMW,OAAOP;IACb,MAAM,EAAEQ,IAAI,EAAE,GAAGrB;IACjB,MAAMsB,UAAUV,sBACdG,QACAK,KAAKG,WAAW,EAChBH,KAAKI,cAAc;IAGrBhB,UAAU;QACR,IAAIQ,UAAU;YACZD,OAAOU,QAAQ,CAACC,OAAO,CAAC,kBAAkB;QAC5C,OAAO;YACLX,OAAOU,QAAQ,CAACC,OAAO,CAAC,kBAAkB;QAC5C;IACF,GAAG;QAACX;QAAQC;KAAS;IAErB,qBACE,KAACnB;QACC8B,WAAU;QACVZ,QAAQA;QACRa,cAAcR,KAAKS,gBAAgB;QACnCX,cAAc;YACZY,WAAW;YACXC,QAAQ;gBAAC,CAAC;gBAAI;aAAE;YAChBC,QAAQ;QACV;kBAEA,cAAA,MAACC;YAAIC,WAAU;;8BACb,KAACnC,QAAQoC,MAAM;oBAACC,MAAK;oBAASC,SAASf,QAAQgB,SAAS;8BACtD,cAAA,KAACxC;wBAAKyC,MAAMlC;;;8BAEd,MAACJ,QAAQuC,IAAI;oBAACC,MAAMzB;oBAAU0B,cAAczB;;sCAC1C,KAAChB,QAAQ0C,OAAO;4BAACC,OAAO;sCACtB,cAAA,KAAC7C,QAAQoC,MAAM;gCAACC,MAAK;0CACnB,cAAA,KAACtC;oCAAKyC,MAAMnC;;;;sCAGhB,KAACH,QAAQ4C,OAAO;4BAACC,MAAK;4BAASC,OAAM;4BAAQC,YAAY;sCACvD,cAAA,MAACrC;gCAAQuB,WAAU;;kDACjB,KAACjC,QAAQgD,KAAK;kDACZ,cAAA,MAACvC;4CAAe2B,SAASf,QAAQ4B,mBAAmB;;8DAClD,KAACpD;oDAAKyC,MAAMjC;;gDAAoB;;;;kDAIpC,KAACL,QAAQgD,KAAK;kDACZ,cAAA,MAACvC;4CAAe2B,SAASf,QAAQ6B,mBAAmB;;8DAClD,KAACrD;oDAAKyC,MAAMrC;;gDAAa;;;;kDAI7B,KAACD,QAAQgD,KAAK;kDACZ,cAAA,MAACvC;4CAAe2B,SAASf,QAAQ8B,aAAa;;8DAC5C,KAACtD;oDAAKyC,MAAMpC;;gDAAQ;;;;kDAIxB,KAACJ,QAAQsD,OAAO;wCAACC,UAAU;;kDAC3B,KAACrD,QAAQgD,KAAK;kDACZ,cAAA,MAACvC;4CACC2B,SAASf,QAAQiC,UAAU;4CAC3BrB,WAAU;;8DAEV,KAACpC;oDAAKyC,MAAMhC;;gDAAU;;;;;;;;;;;;AAUxC,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/ContentItemMenu/hooks/useContentItemActions.tsx"],"sourcesContent":["import { Node } from '@tiptap/pm/model'\nimport { NodeSelection } from '@tiptap/pm/state'\nimport { Editor } from '@tiptap/react'\nimport { useCallback } from 'react'\n\nconst useContentItemActions = (editor: Editor, currentNode: Node | null, currentNodePos: number) => {\n const resetTextFormatting = useCallback(() => {\n const chain = editor.chain()\n\n chain.setNodeSelection(currentNodePos).unsetAllMarks()\n\n if (currentNode?.type.name !== 'paragraph') {\n chain.setParagraph()\n }\n\n chain.run()\n }, [editor, currentNodePos, currentNode?.type.name])\n\n const duplicateNode = useCallback(() => {\n editor.commands.setNodeSelection(currentNodePos)\n\n const { $anchor } = editor.state.selection\n const selectedNode = $anchor.node(1) || (editor.state.selection as NodeSelection).node\n\n editor\n .chain()\n .setMeta('hideDragHandle', true)\n .insertContentAt(currentNodePos + (currentNode?.nodeSize || 0), selectedNode.toJSON())\n .run()\n }, [editor, currentNodePos, currentNode?.nodeSize])\n\n const copyNodeToClipboard = useCallback(() => {\n editor.chain().setMeta('hideDragHandle', true).setNodeSelection(currentNodePos).run()\n\n document.execCommand('copy')\n }, [editor, currentNodePos])\n\n const deleteNode = useCallback(() => {\n editor.chain().setMeta('hideDragHandle', true).setNodeSelection(currentNodePos).deleteSelection().run()\n }, [editor, currentNodePos])\n\n const handleAdd = useCallback(() => {\n if (currentNodePos !== -1) {\n const currentNodeSize = currentNode?.nodeSize || 0\n const insertPos = currentNodePos + currentNodeSize\n const currentNodeIsEmptyParagraph = currentNode?.type.name === 'paragraph' && currentNode?.content?.size === 0\n const focusPos = currentNodeIsEmptyParagraph ? currentNodePos + 2 : insertPos + 2\n\n editor\n .chain()\n .command(({ dispatch, tr, state }) => {\n if (dispatch) {\n if (currentNodeIsEmptyParagraph) {\n tr.insertText('/', currentNodePos, currentNodePos + 1)\n } else {\n tr.insert(insertPos, state.schema.nodes.paragraph.create(null, [state.schema.text('/')]))\n }\n\n return dispatch(tr)\n }\n\n return true\n })\n .focus(focusPos)\n .run()\n }\n }, [currentNode, currentNodePos, editor])\n\n return {\n resetTextFormatting,\n duplicateNode,\n copyNodeToClipboard,\n deleteNode,\n handleAdd,\n }\n}\n\nexport default useContentItemActions\n"],"names":["useCallback","useContentItemActions","editor","currentNode","currentNodePos","resetTextFormatting","chain","setNodeSelection","unsetAllMarks","type","name","setParagraph","run","duplicateNode","commands","$anchor","state","selection","selectedNode","node","setMeta","insertContentAt","nodeSize","toJSON","copyNodeToClipboard","document","execCommand","deleteNode","deleteSelection","handleAdd","currentNodeSize","insertPos","currentNodeIsEmptyParagraph","content","size","focusPos","command","dispatch","tr","insertText","insert","schema","nodes","paragraph","create","text","focus"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAGA,SAASA,WAAW,QAAQ,QAAO;AAEnC,MAAMC,wBAAwB,CAACC,QAAgBC,aAA0BC;IACvE,MAAMC,sBAAsBL,YAAY;QACtC,MAAMM,QAAQJ,OAAOI,KAAK;QAE1BA,MAAMC,gBAAgB,CAACH,gBAAgBI,aAAa;QAEpD,IAAIL,aAAaM,KAAKC,SAAS,aAAa;YAC1CJ,MAAMK,YAAY;QACpB;QAEAL,MAAMM,GAAG;IACX,GAAG;QAACV;QAAQE;QAAgBD,aAAaM,KAAKC;KAAK;IAEnD,MAAMG,gBAAgBb,YAAY;QAChCE,OAAOY,QAAQ,CAACP,gBAAgB,CAACH;QAEjC,MAAM,EAAEW,OAAO,EAAE,GAAGb,OAAOc,KAAK,CAACC,SAAS;QAC1C,MAAMC,eAAeH,QAAQI,IAAI,CAAC,MAAM,AAACjB,OAAOc,KAAK,CAACC,SAAS,CAAmBE,IAAI;QAEtFjB,OACGI,KAAK,GACLc,OAAO,CAAC,kBAAkB,MAC1BC,eAAe,CAACjB,iBAAkBD,CAAAA,aAAamB,YAAY,CAAA,GAAIJ,aAAaK,MAAM,IAClFX,GAAG;IACR,GAAG;QAACV;QAAQE;QAAgBD,aAAamB;KAAS;IAElD,MAAME,sBAAsBxB,YAAY;QACtCE,OAAOI,KAAK,GAAGc,OAAO,CAAC,kBAAkB,MAAMb,gBAAgB,CAACH,gBAAgBQ,GAAG;QAEnFa,SAASC,WAAW,CAAC;IACvB,GAAG;QAACxB;QAAQE;KAAe;IAE3B,MAAMuB,aAAa3B,YAAY;QAC7BE,OAAOI,KAAK,GAAGc,OAAO,CAAC,kBAAkB,MAAMb,gBAAgB,CAACH,gBAAgBwB,eAAe,GAAGhB,GAAG;IACvG,GAAG;QAACV;QAAQE;KAAe;IAE3B,MAAMyB,YAAY7B,YAAY;QAC5B,IAAII,mBAAmB,CAAC,GAAG;YACzB,MAAM0B,kBAAkB3B,aAAamB,YAAY;YACjD,MAAMS,YAAY3B,iBAAiB0B;YACnC,MAAME,8BAA8B7B,aAAaM,KAAKC,SAAS,eAAeP,aAAa8B,SAASC,SAAS;YAC7G,MAAMC,WAAWH,8BAA8B5B,iBAAiB,IAAI2B,YAAY;YAEhF7B,OACGI,KAAK,GACL8B,OAAO,CAAC,CAAC,EAAEC,QAAQ,EAAEC,EAAE,EAAEtB,KAAK,EAAE;gBAC/B,IAAIqB,UAAU;oBACZ,IAAIL,6BAA6B;wBAC/BM,GAAGC,UAAU,CAAC,KAAKnC,gBAAgBA,iBAAiB;oBACtD,OAAO;wBACLkC,GAAGE,MAAM,CAACT,WAAWf,MAAMyB,MAAM,CAACC,KAAK,CAACC,SAAS,CAACC,MAAM,CAAC,MAAM;4BAAC5B,MAAMyB,MAAM,CAACI,IAAI,CAAC;yBAAK;oBACzF;oBAEA,OAAOR,SAASC;gBAClB;gBAEA,OAAO;YACT,GACCQ,KAAK,CAACX,UACNvB,GAAG;QACR;IACF,GAAG;QAACT;QAAaC;QAAgBF;KAAO;IAExC,OAAO;QACLG;QACAQ;QACAW;QACAG;QACAE;IACF;AACF;AAEA,eAAe5B,sBAAqB"}
1
+ {"version":3,"sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/ContentItemMenu/hooks/useContentItemActions.tsx"],"sourcesContent":["import { Node } from '@tiptap/pm/model'\nimport { NodeSelection } from '@tiptap/pm/state'\nimport { Editor } from '@tiptap/react'\nimport { useCallback } from 'react'\n\nconst useContentItemActions = (editor: Editor, currentNode: Node | null, currentNodePos: number) => {\n const resetTextFormatting = useCallback(() => {\n const chain = editor.chain()\n\n chain.setNodeSelection(currentNodePos).unsetAllMarks()\n\n if (currentNode?.type.name !== 'paragraph') {\n chain.setParagraph()\n }\n\n chain.run()\n }, [editor, currentNodePos, currentNode?.type.name])\n\n const duplicateNode = useCallback(() => {\n editor.commands.setNodeSelection(currentNodePos)\n\n const { $anchor } = editor.state.selection\n const selectedNode = $anchor.node(1) || (editor.state.selection as NodeSelection).node\n\n editor\n .chain()\n .setMeta('hideDragHandle', true)\n .insertContentAt(currentNodePos + (currentNode?.nodeSize || 0), selectedNode.toJSON())\n .run()\n }, [editor, currentNodePos, currentNode?.nodeSize])\n\n const copyNodeToClipboard = useCallback(() => {\n editor.chain().setMeta('hideDragHandle', true).setNodeSelection(currentNodePos).run()\n\n document.execCommand('copy')\n }, [editor, currentNodePos])\n\n const deleteNode = useCallback(() => {\n editor.chain().setMeta('hideDragHandle', true).setNodeSelection(currentNodePos).deleteSelection().run()\n }, [editor, currentNodePos])\n\n const handleAdd = useCallback(() => {\n if (currentNodePos !== -1) {\n const currentNodeSize = currentNode?.nodeSize || 0\n const insertPos = currentNodePos + currentNodeSize\n const currentNodeIsEmptyParagraph = currentNode?.type.name === 'paragraph' && currentNode?.content?.size === 0\n const focusPos = currentNodeIsEmptyParagraph ? currentNodePos + 2 : insertPos + 2\n\n editor\n .chain()\n .command(({ dispatch, tr, state }) => {\n if (dispatch) {\n if (currentNodeIsEmptyParagraph) {\n tr.insertText('/', currentNodePos, currentNodePos + 1)\n } else {\n tr.insert(insertPos, state.schema.nodes.paragraph.create(null, [state.schema.text('/')]))\n }\n\n return dispatch(tr)\n }\n\n return true\n })\n .focus(focusPos)\n .run()\n }\n }, [currentNode, currentNodePos, editor])\n\n return {\n resetTextFormatting,\n duplicateNode,\n copyNodeToClipboard,\n deleteNode,\n handleAdd,\n }\n}\n\nexport default useContentItemActions\n"],"names":["useCallback","useContentItemActions","editor","currentNode","currentNodePos","resetTextFormatting","chain","setNodeSelection","unsetAllMarks","type","name","setParagraph","run","duplicateNode","commands","$anchor","state","selection","selectedNode","node","setMeta","insertContentAt","nodeSize","toJSON","copyNodeToClipboard","document","execCommand","deleteNode","deleteSelection","handleAdd","currentNodeSize","insertPos","currentNodeIsEmptyParagraph","content","size","focusPos","command","dispatch","tr","insertText","insert","schema","nodes","paragraph","create","text","focus"],"mappings":"AAGA,SAASA,WAAW,QAAQ,QAAO;AAEnC,MAAMC,wBAAwB,CAACC,QAAgBC,aAA0BC;IACvE,MAAMC,sBAAsBL,YAAY;QACtC,MAAMM,QAAQJ,OAAOI,KAAK;QAE1BA,MAAMC,gBAAgB,CAACH,gBAAgBI,aAAa;QAEpD,IAAIL,aAAaM,KAAKC,SAAS,aAAa;YAC1CJ,MAAMK,YAAY;QACpB;QAEAL,MAAMM,GAAG;IACX,GAAG;QAACV;QAAQE;QAAgBD,aAAaM,KAAKC;KAAK;IAEnD,MAAMG,gBAAgBb,YAAY;QAChCE,OAAOY,QAAQ,CAACP,gBAAgB,CAACH;QAEjC,MAAM,EAAEW,OAAO,EAAE,GAAGb,OAAOc,KAAK,CAACC,SAAS;QAC1C,MAAMC,eAAeH,QAAQI,IAAI,CAAC,MAAM,AAACjB,OAAOc,KAAK,CAACC,SAAS,CAAmBE,IAAI;QAEtFjB,OACGI,KAAK,GACLc,OAAO,CAAC,kBAAkB,MAC1BC,eAAe,CAACjB,iBAAkBD,CAAAA,aAAamB,YAAY,CAAA,GAAIJ,aAAaK,MAAM,IAClFX,GAAG;IACR,GAAG;QAACV;QAAQE;QAAgBD,aAAamB;KAAS;IAElD,MAAME,sBAAsBxB,YAAY;QACtCE,OAAOI,KAAK,GAAGc,OAAO,CAAC,kBAAkB,MAAMb,gBAAgB,CAACH,gBAAgBQ,GAAG;QAEnFa,SAASC,WAAW,CAAC;IACvB,GAAG;QAACxB;QAAQE;KAAe;IAE3B,MAAMuB,aAAa3B,YAAY;QAC7BE,OAAOI,KAAK,GAAGc,OAAO,CAAC,kBAAkB,MAAMb,gBAAgB,CAACH,gBAAgBwB,eAAe,GAAGhB,GAAG;IACvG,GAAG;QAACV;QAAQE;KAAe;IAE3B,MAAMyB,YAAY7B,YAAY;QAC5B,IAAII,mBAAmB,CAAC,GAAG;YACzB,MAAM0B,kBAAkB3B,aAAamB,YAAY;YACjD,MAAMS,YAAY3B,iBAAiB0B;YACnC,MAAME,8BAA8B7B,aAAaM,KAAKC,SAAS,eAAeP,aAAa8B,SAASC,SAAS;YAC7G,MAAMC,WAAWH,8BAA8B5B,iBAAiB,IAAI2B,YAAY;YAEhF7B,OACGI,KAAK,GACL8B,OAAO,CAAC,CAAC,EAAEC,QAAQ,EAAEC,EAAE,EAAEtB,KAAK,EAAE;gBAC/B,IAAIqB,UAAU;oBACZ,IAAIL,6BAA6B;wBAC/BM,GAAGC,UAAU,CAAC,KAAKnC,gBAAgBA,iBAAiB;oBACtD,OAAO;wBACLkC,GAAGE,MAAM,CAACT,WAAWf,MAAMyB,MAAM,CAACC,KAAK,CAACC,SAAS,CAACC,MAAM,CAAC,MAAM;4BAAC5B,MAAMyB,MAAM,CAACI,IAAI,CAAC;yBAAK;oBACzF;oBAEA,OAAOR,SAASC;gBAClB;gBAEA,OAAO;YACT,GACCQ,KAAK,CAACX,UACNvB,GAAG;QACR;IACF,GAAG;QAACT;QAAaC;QAAgBF;KAAO;IAExC,OAAO;QACLG;QACAQ;QACAW;QACAG;QACAE;IACF;AACF;AAEA,eAAe5B,sBAAqB"}
@@ -1 +1 @@
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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;","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\";\n"],"names":[],"rangeMappings":"","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\";\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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","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\";\n"],"names":["LinkMenu"],"rangeMappings":"","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/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 Code,\n FileCode,\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 { ColorPicker } from \"../../panels/index.js\";\nimport { AIEditorPanel } from \"../../panels/AIEditorPanel/AIEditorPanel.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\";\nimport { 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\";\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);\nconst MemoFontFamilyPicker = memo(FontFamilyPicker);\nconst MemoFontSizePicker = memo(FontSizePicker);\nconst MemoContentTypePicker = memo(ContentTypePicker);\n\nexport type TextMenuProps = {\n editor: Editor;\n};\n\nexport const TextMenu = ({ editor }: 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: \"bottom\",\n popperOptions: { placement: \"bottom\" },\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 AI Tools\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=\"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=\"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=\"Underline\"\n tooltipShortcut={[\"Mod\", \"U\"]}\n onClick={commands.onUnderline}\n active={states.isUnderline}\n >\n <Icon icon={Underline} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip=\"Strikehrough\"\n tooltipShortcut={[\"Mod\", \"Shift\", \"S\"]}\n onClick={commands.onStrike}\n active={states.isStrike}\n >\n <Icon icon={Strikethrough} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip=\"Code\"\n tooltipShortcut={[\"Mod\", \"E\"]}\n onClick={commands.onCode}\n active={states.isCode}\n >\n <Icon icon={Code} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip=\"Code block\"\n onClick={commands.onCodeBlock}\n >\n <Icon icon={FileCode} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip=\"Clear Formatting\"\n onClick={commands.onClearFormatting}\n >\n <Icon icon={RemoveFormatting} />\n </MemoButton>\n <EditLinkPopover onSetLink={commands.onLink} />\n <Popover.Root>\n <Popover.Trigger asChild>\n <MemoButton\n type=\"button\"\n active={!!states.currentHighlight}\n tooltip=\"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=\"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=\"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=\"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=\"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=\"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=\"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=\"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=\"Justify\"\n tooltipShortcut={[\"Shift\", \"Mod\", \"J\"]}\n onClick={commands.onAlignJustify}\n active={states.isAlignJustify}\n >\n <Icon icon={AlignJustify} />\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","Code","FileCode","Highlighter","Italic","MoveVertical","Palette","RemoveFormatting","Sparkles","Strikethrough","Subscript","Superscript","Underline","memo","useState","ColorPicker","AIEditorPanel","Icon","Surface","Toolbar","ContentTypePicker","EditLinkPopover","FontFamilyPicker","FontSizePicker","useTextmenuCommands","useTextmenuContentTypes","useTextmenuStates","MemoButton","Button","MemoColorPicker","MemoFontFamilyPicker","MemoFontSizePicker","MemoContentTypePicker","TextMenu","editor","commands","states","blockOptions","openAi","setOpenAi","tippyOptions","placement","popperOptions","onHide","pluginKey","shouldShow","updateDelay","onOpenChange","value","Wrapper","className","activeClassname","onClick","icon","Divider","options","onChange","onSetFont","currentFont","onSetFontSize","currentSize","type","tooltip","tooltipShortcut","onBold","active","isBold","onItalic","isItalic","onUnderline","isUnderline","onStrike","isStrike","onCode","isCode","onCodeBlock","onClearFormatting","onSetLink","onLink","Root","Trigger","asChild","currentHighlight","Content","side","sideOffset","color","onChangeHighlight","onClear","onClearHighlight","currentColor","onChangeColor","onClearColor","onSubscript","isSubscript","onSuperscript","isSuperscript","onAlignLeft","isAlignLeft","onAlignCenter","isAlignCenter","onAlignRight","isAlignRight","onAlignJustify","isAlignJustify"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","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 Code,\n FileCode,\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 { ColorPicker } from \"../../panels/index.js\";\nimport { AIEditorPanel } from \"../../panels/AIEditorPanel/AIEditorPanel.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\";\nimport { 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\";\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);\nconst MemoFontFamilyPicker = memo(FontFamilyPicker);\nconst MemoFontSizePicker = memo(FontSizePicker);\nconst MemoContentTypePicker = memo(ContentTypePicker);\n\nexport type TextMenuProps = {\n editor: Editor;\n};\n\nexport const TextMenu = ({ editor }: 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: \"bottom\",\n popperOptions: { placement: \"bottom\" },\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 AI Tools\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=\"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=\"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=\"Underline\"\n tooltipShortcut={[\"Mod\", \"U\"]}\n onClick={commands.onUnderline}\n active={states.isUnderline}\n >\n <Icon icon={Underline} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip=\"Strikehrough\"\n tooltipShortcut={[\"Mod\", \"Shift\", \"S\"]}\n onClick={commands.onStrike}\n active={states.isStrike}\n >\n <Icon icon={Strikethrough} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip=\"Code\"\n tooltipShortcut={[\"Mod\", \"E\"]}\n onClick={commands.onCode}\n active={states.isCode}\n >\n <Icon icon={Code} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip=\"Code block\"\n onClick={commands.onCodeBlock}\n >\n <Icon icon={FileCode} />\n </MemoButton>\n <MemoButton\n type=\"button\"\n tooltip=\"Clear Formatting\"\n onClick={commands.onClearFormatting}\n >\n <Icon icon={RemoveFormatting} />\n </MemoButton>\n <EditLinkPopover onSetLink={commands.onLink} />\n <Popover.Root>\n <Popover.Trigger asChild>\n <MemoButton\n type=\"button\"\n active={!!states.currentHighlight}\n tooltip=\"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=\"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=\"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=\"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=\"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=\"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=\"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=\"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=\"Justify\"\n tooltipShortcut={[\"Shift\", \"Mod\", \"J\"]}\n onClick={commands.onAlignJustify}\n active={states.isAlignJustify}\n >\n <Icon icon={AlignJustify} />\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","Code","FileCode","Highlighter","Italic","MoveVertical","Palette","RemoveFormatting","Sparkles","Strikethrough","Subscript","Superscript","Underline","memo","useState","ColorPicker","AIEditorPanel","Icon","Surface","Toolbar","ContentTypePicker","EditLinkPopover","FontFamilyPicker","FontSizePicker","useTextmenuCommands","useTextmenuContentTypes","useTextmenuStates","MemoButton","Button","MemoColorPicker","MemoFontFamilyPicker","MemoFontSizePicker","MemoContentTypePicker","TextMenu","editor","commands","states","blockOptions","openAi","setOpenAi","tippyOptions","placement","popperOptions","onHide","pluginKey","shouldShow","updateDelay","onOpenChange","value","Wrapper","className","activeClassname","onClick","icon","Divider","options","onChange","onSetFont","currentFont","onSetFontSize","currentSize","type","tooltip","tooltipShortcut","onBold","active","isBold","onItalic","isItalic","onUnderline","isUnderline","onStrike","isStrike","onCode","isCode","onCodeBlock","onClearFormatting","onSetLink","onLink","Root","Trigger","asChild","currentHighlight","Content","side","sideOffset","color","onChangeHighlight","onClear","onClearHighlight","currentColor","onChangeColor","onClearColor","onSubscript","isSubscript","onSuperscript","isSuperscript","onAlignLeft","isAlignLeft","onAlignCenter","isAlignCenter","onAlignRight","isAlignRight","onAlignJustify","isAlignJustify"],"mappings":";AAAA,YAAYA,aAAa,0BAA0B;AACnD,SAASC,UAAU,QAAgB,gBAAgB;AACnD,SACEC,WAAW,EACXC,YAAY,EACZC,SAAS,EACTC,UAAU,EACVC,IAAI,EACJC,IAAI,EACJC,QAAQ,EACRC,WAAW,EACXC,MAAM,EACNC,YAAY,EACZC,OAAO,EACPC,gBAAgB,EAChBC,QAAQ,EACRC,aAAa,EACbC,SAAS,EACTC,WAAW,EACXC,SAAS,QACJ,eAAe;AACtB,SAASC,IAAI,EAAEC,QAAQ,QAAQ,QAAQ;AACvC,SAASC,WAAW,QAAQ,wBAAwB;AACpD,SAASC,aAAa,QAAQ,8CAA8C;AAC5E,SAASC,IAAI,QAAQ,mBAAmB;AACxC,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,iBAAiB,QAAQ,oCAAoC;AACtE,SAASC,eAAe,QAAQ,kCAAkC;AAClE,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,mBAAmB,QAAQ,iCAAiC;AACrE,SAASC,uBAAuB,QAAQ,qCAAqC;AAC7E,SAASC,iBAAiB,QAAQ,+BAA+B;AAEjE,0DAA0D;AAC1D,+BAA+B;AAC/B,MAAMC,2BAAad,KAAKM,QAAQS,MAAM;AACtC,MAAMC,gCAAkBhB,KAAKE;AAC7B,MAAMe,qCAAuBjB,KAAKS;AAClC,MAAMS,mCAAqBlB,KAAKU;AAChC,MAAMS,sCAAwBnB,KAAKO;AAMnC,OAAO,MAAMa,WAAW,CAAC,EAAEC,MAAM,EAAiB;IAChD,MAAMC,WAAWX,oBAAoBU;IACrC,MAAME,SAASV,kBAAkBQ;IACjC,MAAMG,eAAeZ,wBAAwBS;IAC7C,MAAM,CAACI,QAAQC,UAAU,GAAGzB,SAAS;IAErC,qBACE,KAACnB;QACC6C,cAAc;YACZC,WAAW;YACXC,eAAe;gBAAED,WAAW;YAAS;YACrCE,QAAQ;gBACNJ,UAAU;YACZ;QACF;QACAL,QAAQA;QACRU,WAAU;QACVC,YAAYT,OAAOS,UAAU;QAC7BC,aAAa;kBAEZR,uBACC,KAACtB;YACCkB,QAAQA;YACRa,cAAc,CAACC;gBACbT,UAAUS;YACZ;2BAGF,MAAC7B,QAAQ8B,OAAO;;8BACd,MAAC9B,QAAQS,MAAM;oBACbsB,WAAU;oBACVC,iBAAgB;oBAChBC,SAAS,IAAMb,UAAU;;sCAEzB,KAACtB;4BAAKoC,MAAM7C;4BAAU0C,WAAU;;wBAAS;;;8BAG3C,KAAC/B,QAAQmC,OAAO;8BAEhB,KAACtB;oBAAsBuB,SAASlB;;8BAChC,KAACP;oBACC0B,UAAUrB,SAASsB,SAAS;oBAC5BT,OAAOZ,OAAOsB,WAAW,IAAI;;8BAE/B,KAAC3B;oBACCyB,UAAUrB,SAASwB,aAAa;oBAChCX,OAAOZ,OAAOwB,WAAW,IAAI;;8BAE/B,KAACzC,QAAQmC,OAAO;8BAChB,KAAC3B;oBACCkC,MAAK;oBACLC,SAAQ;oBACRC,iBAAiB;wBAAC;wBAAO;qBAAI;oBAC7BX,SAASjB,SAAS6B,MAAM;oBACxBC,QAAQ7B,OAAO8B,MAAM;8BAErB,cAAA,KAACjD;wBAAKoC,MAAMrD;;;8BAEd,KAAC2B;oBACCkC,MAAK;oBACLC,SAAQ;oBACRC,iBAAiB;wBAAC;wBAAO;qBAAI;oBAC7BX,SAASjB,SAASgC,QAAQ;oBAC1BF,QAAQ7B,OAAOgC,QAAQ;8BAEvB,cAAA,KAACnD;wBAAKoC,MAAMjD;;;8BAEd,KAACuB;oBACCkC,MAAK;oBACLC,SAAQ;oBACRC,iBAAiB;wBAAC;wBAAO;qBAAI;oBAC7BX,SAASjB,SAASkC,WAAW;oBAC7BJ,QAAQ7B,OAAOkC,WAAW;8BAE1B,cAAA,KAACrD;wBAAKoC,MAAMzC;;;8BAEd,KAACe;oBACCkC,MAAK;oBACLC,SAAQ;oBACRC,iBAAiB;wBAAC;wBAAO;wBAAS;qBAAI;oBACtCX,SAASjB,SAASoC,QAAQ;oBAC1BN,QAAQ7B,OAAOoC,QAAQ;8BAEvB,cAAA,KAACvD;wBAAKoC,MAAM5C;;;8BAEd,KAACkB;oBACCkC,MAAK;oBACLC,SAAQ;oBACRC,iBAAiB;wBAAC;wBAAO;qBAAI;oBAC7BX,SAASjB,SAASsC,MAAM;oBACxBR,QAAQ7B,OAAOsC,MAAM;8BAErB,cAAA,KAACzD;wBAAKoC,MAAMpD;;;8BAEd,KAAC0B;oBACCkC,MAAK;oBACLC,SAAQ;oBACRV,SAASjB,SAASwC,WAAW;8BAE7B,cAAA,KAAC1D;wBAAKoC,MAAMnD;;;8BAEd,KAACyB;oBACCkC,MAAK;oBACLC,SAAQ;oBACRV,SAASjB,SAASyC,iBAAiB;8BAEnC,cAAA,KAAC3D;wBAAKoC,MAAM9C;;;8BAEd,KAACc;oBAAgBwD,WAAW1C,SAAS2C,MAAM;;8BAC3C,MAACpF,QAAQqF,IAAI;;sCACX,KAACrF,QAAQsF,OAAO;4BAACC,OAAO;sCACtB,cAAA,KAACtD;gCACCkC,MAAK;gCACLI,QAAQ,CAAC,CAAC7B,OAAO8C,gBAAgB;gCACjCpB,SAAQ;0CAER,cAAA,KAAC7C;oCAAKoC,MAAMlD;;;;sCAGhB,KAACT,QAAQyF,OAAO;4BAACC,MAAK;4BAAMC,YAAY;4BAAGJ,OAAO;sCAChD,cAAA,KAAC/D;gCAAQgC,WAAU;0CACjB,cAAA,KAACrB;oCACCyD,OAAOlD,OAAO8C,gBAAgB;oCAC9B1B,UAAUrB,SAASoD,iBAAiB;oCACpCC,SAASrD,SAASsD,gBAAgB;;;;;;8BAK1C,MAAC/F,QAAQqF,IAAI;;sCACX,KAACrF,QAAQsF,OAAO;4BAACC,OAAO;sCACtB,cAAA,KAACtD;gCACCkC,MAAK;gCACLI,QAAQ,CAAC,CAAC7B,OAAOsD,YAAY;gCAC7B5B,SAAQ;0CAER,cAAA,KAAC7C;oCAAKoC,MAAM/C;;;;sCAGhB,KAACZ,QAAQyF,OAAO;4BAACC,MAAK;4BAAMC,YAAY;4BAAGJ,OAAO;sCAChD,cAAA,KAAC/D;gCAAQgC,WAAU;0CACjB,cAAA,KAACrB;oCACCyD,OAAOlD,OAAOsD,YAAY;oCAC1BlC,UAAUrB,SAASwD,aAAa;oCAChCH,SAASrD,SAASyD,YAAY;;;;;;8BAKtC,MAAClG,QAAQqF,IAAI;;sCACX,KAACrF,QAAQsF,OAAO;4BAACC,OAAO;sCACtB,cAAA,KAACtD;gCAAWkC,MAAK;gCAASC,SAAQ;0CAChC,cAAA,KAAC7C;oCAAKoC,MAAMhD;;;;sCAGhB,KAACX,QAAQyF,OAAO;4BAACC,MAAK;4BAAMH,OAAO;sCACjC,cAAA,MAAC9D,QAAQ8B,OAAO;;kDACd,KAACtB;wCACCkC,MAAK;wCACLC,SAAQ;wCACRC,iBAAiB;4CAAC;4CAAO;yCAAI;wCAC7BX,SAASjB,SAAS0D,WAAW;wCAC7B5B,QAAQ7B,OAAO0D,WAAW;kDAE1B,cAAA,KAAC7E;4CAAKoC,MAAM3C;;;kDAEd,KAACiB;wCACCkC,MAAK;wCACLC,SAAQ;wCACRC,iBAAiB;4CAAC;4CAAO;yCAAI;wCAC7BX,SAASjB,SAAS4D,aAAa;wCAC/B9B,QAAQ7B,OAAO4D,aAAa;kDAE5B,cAAA,KAAC/E;4CAAKoC,MAAM1C;;;kDAEd,KAACQ,QAAQmC,OAAO;kDAChB,KAAC3B;wCACCkC,MAAK;wCACLC,SAAQ;wCACRC,iBAAiB;4CAAC;4CAAS;4CAAO;yCAAI;wCACtCX,SAASjB,SAAS8D,WAAW;wCAC7BhC,QAAQ7B,OAAO8D,WAAW;kDAE1B,cAAA,KAACjF;4CAAKoC,MAAMvD;;;kDAEd,KAAC6B;wCACCkC,MAAK;wCACLC,SAAQ;wCACRC,iBAAiB;4CAAC;4CAAS;4CAAO;yCAAI;wCACtCX,SAASjB,SAASgE,aAAa;wCAC/BlC,QAAQ7B,OAAOgE,aAAa;kDAE5B,cAAA,KAACnF;4CAAKoC,MAAMzD;;;kDAEd,KAAC+B;wCACCkC,MAAK;wCACLC,SAAQ;wCACRC,iBAAiB;4CAAC;4CAAS;4CAAO;yCAAI;wCACtCX,SAASjB,SAASkE,YAAY;wCAC9BpC,QAAQ7B,OAAOkE,YAAY;kDAE3B,cAAA,KAACrF;4CAAKoC,MAAMtD;;;kDAEd,KAAC4B;wCACCkC,MAAK;wCACLC,SAAQ;wCACRC,iBAAiB;4CAAC;4CAAS;4CAAO;yCAAI;wCACtCX,SAASjB,SAASoE,cAAc;wCAChCtC,QAAQ7B,OAAOoE,cAAc;kDAE7B,cAAA,KAACvF;4CAAKoC,MAAMxD;;;;;;;;;;;AAS9B,EAAE"}
@@ -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\";\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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","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"}