payload-richtext-tiptap 0.0.28 → 0.0.30

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 (137) hide show
  1. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Design.d.ts +1 -1
  2. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Design.d.ts.map +1 -1
  3. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Design.js +4 -3
  4. package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Design.js.map +1 -1
  5. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.d.ts.map +1 -1
  6. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.js +3 -2
  7. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.js.map +1 -1
  8. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockWidth.d.ts +1 -1
  9. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockWidth.d.ts.map +1 -1
  10. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockWidth.js +6 -5
  11. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockWidth.js.map +1 -1
  12. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.d.ts.map +1 -1
  13. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.js +2 -1
  14. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.js.map +1 -1
  15. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.d.ts.map +1 -1
  16. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.js +7 -6
  17. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.js.map +1 -1
  18. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLink.client.d.ts.map +1 -1
  19. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLink.client.js +2 -1
  20. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLink.client.js.map +1 -1
  21. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.d.ts.map +1 -1
  22. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.js +4 -3
  23. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.js.map +1 -1
  24. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.d.ts.map +1 -1
  25. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.js +4 -3
  26. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.js.map +1 -1
  27. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.d.ts.map +1 -1
  28. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.js +2 -1
  29. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.js.map +1 -1
  30. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.d.ts.map +1 -1
  31. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.js +3 -2
  32. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.js.map +1 -1
  33. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts.map +1 -1
  34. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js +2 -1
  35. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js.map +1 -1
  36. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts.map +1 -1
  37. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js +4 -3
  38. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js.map +1 -1
  39. package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.d.ts.map +1 -1
  40. package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.js +4 -3
  41. package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.js.map +1 -1
  42. package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.d.ts.map +1 -1
  43. package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js +4 -3
  44. package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js.map +1 -1
  45. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.d.ts.map +1 -1
  46. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.js +3 -2
  47. package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.js.map +1 -1
  48. package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.d.ts.map +1 -1
  49. package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.js +5 -4
  50. package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.js.map +1 -1
  51. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.d.ts.map +1 -1
  52. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.js +4 -3
  53. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.js.map +1 -1
  54. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.d.ts.map +1 -1
  55. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.js +3 -2
  56. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.js.map +1 -1
  57. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.d.ts.map +1 -1
  58. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.js +3 -2
  59. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.js.map +1 -1
  60. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.d.ts.map +1 -1
  61. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.js +2 -1
  62. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.js.map +1 -1
  63. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.d.ts.map +1 -1
  64. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.js +7 -6
  65. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.js.map +1 -1
  66. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.d.ts.map +1 -1
  67. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js +8 -7
  68. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js.map +1 -1
  69. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.d.ts.map +1 -1
  70. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js +11 -10
  71. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js.map +1 -1
  72. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/ColorButton.d.ts.map +1 -1
  73. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/ColorButton.js +4 -3
  74. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/ColorButton.js.map +1 -1
  75. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/Colorpicker.d.ts.map +1 -1
  76. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/Colorpicker.js +5 -4
  77. package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/Colorpicker.js.map +1 -1
  78. package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.d.ts.map +1 -1
  79. package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js +5 -4
  80. package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js.map +1 -1
  81. package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/InsideLinksEditorPanel.d.ts.map +1 -1
  82. package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/InsideLinksEditorPanel.js +4 -3
  83. package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/InsideLinksEditorPanel.js.map +1 -1
  84. package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/LinkEditorPanel.d.ts.map +1 -1
  85. package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/LinkEditorPanel.js +7 -6
  86. package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/LinkEditorPanel.js.map +1 -1
  87. package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/LinkPreviewPanel.d.ts.map +1 -1
  88. package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/LinkPreviewPanel.js +3 -2
  89. package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/LinkPreviewPanel.js.map +1 -1
  90. package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.d.ts.map +1 -1
  91. package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js +7 -6
  92. package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js.map +1 -1
  93. package/dist/src/fields/TiptapEditor/features/ui/Button/Button.d.ts.map +1 -1
  94. package/dist/src/fields/TiptapEditor/features/ui/Button/Button.js +2 -1
  95. package/dist/src/fields/TiptapEditor/features/ui/Button/Button.js.map +1 -1
  96. package/dist/src/fields/TiptapEditor/features/ui/Dropdown/Dropdown.d.ts.map +1 -1
  97. package/dist/src/fields/TiptapEditor/features/ui/Dropdown/Dropdown.js +3 -2
  98. package/dist/src/fields/TiptapEditor/features/ui/Dropdown/Dropdown.js.map +1 -1
  99. package/dist/src/fields/TiptapEditor/features/ui/Icon.d.ts.map +1 -1
  100. package/dist/src/fields/TiptapEditor/features/ui/Icon.js +2 -1
  101. package/dist/src/fields/TiptapEditor/features/ui/Icon.js.map +1 -1
  102. package/dist/src/fields/TiptapEditor/features/ui/Loader/Loader.d.ts.map +1 -1
  103. package/dist/src/fields/TiptapEditor/features/ui/Loader/Loader.js +5 -4
  104. package/dist/src/fields/TiptapEditor/features/ui/Loader/Loader.js.map +1 -1
  105. package/dist/src/fields/TiptapEditor/features/ui/Panel/index.d.ts.map +1 -1
  106. package/dist/src/fields/TiptapEditor/features/ui/Panel/index.js +7 -6
  107. package/dist/src/fields/TiptapEditor/features/ui/Panel/index.js.map +1 -1
  108. package/dist/src/fields/TiptapEditor/features/ui/PopoverMenu.d.ts.map +1 -1
  109. package/dist/src/fields/TiptapEditor/features/ui/PopoverMenu.js +9 -7
  110. package/dist/src/fields/TiptapEditor/features/ui/PopoverMenu.js.map +1 -1
  111. package/dist/src/fields/TiptapEditor/features/ui/Spinner/Spinner.d.ts.map +1 -1
  112. package/dist/src/fields/TiptapEditor/features/ui/Spinner/Spinner.js +2 -1
  113. package/dist/src/fields/TiptapEditor/features/ui/Spinner/Spinner.js.map +1 -1
  114. package/dist/src/fields/TiptapEditor/features/ui/Surface.d.ts.map +1 -1
  115. package/dist/src/fields/TiptapEditor/features/ui/Surface.js +2 -1
  116. package/dist/src/fields/TiptapEditor/features/ui/Surface.js.map +1 -1
  117. package/dist/src/fields/TiptapEditor/features/ui/Textarea/Textarea.d.ts.map +1 -1
  118. package/dist/src/fields/TiptapEditor/features/ui/Textarea/Textarea.js +2 -1
  119. package/dist/src/fields/TiptapEditor/features/ui/Textarea/Textarea.js.map +1 -1
  120. package/dist/src/fields/TiptapEditor/features/ui/Toggle/Toggle.d.ts.map +1 -1
  121. package/dist/src/fields/TiptapEditor/features/ui/Toggle/Toggle.js +5 -2
  122. package/dist/src/fields/TiptapEditor/features/ui/Toggle/Toggle.js.map +1 -1
  123. package/dist/src/fields/TiptapEditor/features/ui/Toolbar.d.ts.map +1 -1
  124. package/dist/src/fields/TiptapEditor/features/ui/Toolbar.js +5 -3
  125. package/dist/src/fields/TiptapEditor/features/ui/Toolbar.js.map +1 -1
  126. package/dist/src/fields/TiptapEditor/features/ui/Tooltip/index.d.ts.map +1 -1
  127. package/dist/src/fields/TiptapEditor/features/ui/Tooltip/index.js +8 -7
  128. package/dist/src/fields/TiptapEditor/features/ui/Tooltip/index.js.map +1 -1
  129. package/dist/src/fields/TiptapEditor/features/ui/crazy-spinner.d.ts.map +1 -1
  130. package/dist/src/fields/TiptapEditor/features/ui/crazy-spinner.js +5 -4
  131. package/dist/src/fields/TiptapEditor/features/ui/crazy-spinner.js.map +1 -1
  132. package/dist/src/fields/TiptapEditor/features/ui/scroll-area.d.ts.map +1 -1
  133. package/dist/src/fields/TiptapEditor/features/ui/scroll-area.js +5 -4
  134. package/dist/src/fields/TiptapEditor/features/ui/scroll-area.js.map +1 -1
  135. package/dist/src/styles.css +2126 -2648
  136. package/dist/tsconfig.tsbuildinfo +1 -1
  137. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.tsx"],"sourcesContent":["import React from \"react\";\nimport { Node, NodeViewRendererProps } from \"@tiptap/core\";\nimport { NodeViewWrapper, ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { TableOfContents } from \"../../features/TableOfContents/index.js\";\n\nconst TableOfNodeContent = (props: NodeViewRendererProps) => {\n const { editor } = props;\n\n return (\n <NodeViewWrapper>\n <div className=\"p-2 -m-2 rounded-lg\" contentEditable={false}>\n <TableOfContents editor={editor} />\n </div>\n </NodeViewWrapper>\n );\n};\n\ndeclare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n tableOfContentsNode: {\n insertTableOfContents: () => ReturnType;\n };\n }\n}\n\nexport const TableOfContentsNode = Node.create({\n name: \"tableOfContentsNode\",\n group: \"block\",\n atom: true,\n selectable: true,\n draggable: true,\n inline: false,\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"table-of-content\"]',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\"div\", { ...HTMLAttributes, \"data-type\": \"table-of-content\" }];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TableOfNodeContent);\n },\n\n addCommands() {\n return {\n insertTableOfContents:\n () =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n });\n },\n };\n },\n});\n"],"names":["React","Node","NodeViewWrapper","ReactNodeViewRenderer","TableOfContents","TableOfNodeContent","props","editor","div","className","contentEditable","TableOfContentsNode","create","name","group","atom","selectable","draggable","inline","parseHTML","tag","renderHTML","HTMLAttributes","addNodeView","addCommands","insertTableOfContents","commands","insertContent","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,QAA+B,eAAe;AAC3D,SAASC,eAAe,EAAEC,qBAAqB,QAAQ,gBAAgB;AACvE,SAASC,eAAe,QAAQ,0CAA0C;AAE1E,MAAMC,qBAAqB,CAACC;IAC1B,MAAM,EAAEC,MAAM,EAAE,GAAGD;IAEnB,qBACE,KAACJ;kBACC,cAAA,KAACM;YAAIC,WAAU;YAAsBC,iBAAiB;sBACpD,cAAA,KAACN;gBAAgBG,QAAQA;;;;AAIjC;AAUA,OAAO,MAAMI,sBAAsBV,KAAKW,MAAM,CAAC;IAC7CC,MAAM;IACNC,OAAO;IACPC,MAAM;IACNC,YAAY;IACZC,WAAW;IACXC,QAAQ;IAERC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YAAC;YAAO;gBAAE,GAAGA,cAAc;gBAAE,aAAa;YAAmB;SAAE;IACxE;IAEAC;QACE,OAAOpB,sBAAsBE;IAC/B;IAEAmB;QACE,OAAO;YACLC,uBACE,IACA,CAAC,EAAEC,QAAQ,EAAE;oBACX,OAAOA,SAASC,aAAa,CAAC;wBAC5BC,MAAM,IAAI,CAACf,IAAI;oBACjB;gBACF;QACJ;IACF;AACF,GAAG"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.tsx"],"sourcesContent":["import React from \"react\";\nimport { Node, NodeViewRendererProps } from \"@tiptap/core\";\nimport { NodeViewWrapper, ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { TableOfContents } from \"../../features/TableOfContents/index.js\";\nimport { twj } from \"tw-to-css\";\n\nconst TableOfNodeContent = (props: NodeViewRendererProps) => {\n const { editor } = props;\n\n return (\n <NodeViewWrapper>\n <div style={twj(\"p-2 -m-2 rounded-lg\")} contentEditable={false}>\n <TableOfContents editor={editor} />\n </div>\n </NodeViewWrapper>\n );\n};\n\ndeclare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n tableOfContentsNode: {\n insertTableOfContents: () => ReturnType;\n };\n }\n}\n\nexport const TableOfContentsNode = Node.create({\n name: \"tableOfContentsNode\",\n group: \"block\",\n atom: true,\n selectable: true,\n draggable: true,\n inline: false,\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"table-of-content\"]',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\"div\", { ...HTMLAttributes, \"data-type\": \"table-of-content\" }];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TableOfNodeContent);\n },\n\n addCommands() {\n return {\n insertTableOfContents:\n () =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n });\n },\n };\n },\n});\n"],"names":["React","Node","NodeViewWrapper","ReactNodeViewRenderer","TableOfContents","twj","TableOfNodeContent","props","editor","div","style","contentEditable","TableOfContentsNode","create","name","group","atom","selectable","draggable","inline","parseHTML","tag","renderHTML","HTMLAttributes","addNodeView","addCommands","insertTableOfContents","commands","insertContent","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,QAA+B,eAAe;AAC3D,SAASC,eAAe,EAAEC,qBAAqB,QAAQ,gBAAgB;AACvE,SAASC,eAAe,QAAQ,0CAA0C;AAC1E,SAASC,GAAG,QAAQ,YAAY;AAEhC,MAAMC,qBAAqB,CAACC;IAC1B,MAAM,EAAEC,MAAM,EAAE,GAAGD;IAEnB,qBACE,KAACL;kBACC,cAAA,KAACO;YAAIC,OAAOL,IAAI;YAAwBM,iBAAiB;sBACvD,cAAA,KAACP;gBAAgBI,QAAQA;;;;AAIjC;AAUA,OAAO,MAAMI,sBAAsBX,KAAKY,MAAM,CAAC;IAC7CC,MAAM;IACNC,OAAO;IACPC,MAAM;IACNC,YAAY;IACZC,WAAW;IACXC,QAAQ;IAERC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YAAC;YAAO;gBAAE,GAAGA,cAAc;gBAAE,aAAa;YAAmB;SAAE;IACxE;IAEAC;QACE,OAAOrB,sBAAsBG;IAC/B;IAEAmB;QACE,OAAO;YACLC,uBACE,IACA,CAAC,EAAEC,QAAQ,EAAE;oBACX,OAAOA,SAASC,aAAa,CAAC;wBAC5BC,MAAM,IAAI,CAACf,IAAI;oBACjB;gBACF;QACJ;IACF;AACF,GAAG"}
@@ -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,OAAO,wBAAwB,CAAC;AAEhC,eAAO,MAAM,WAAW,8BAA+B,WAAW,gCAyFjE,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,OAAO,wBAAwB,CAAC;AAGhC,eAAO,MAAM,WAAW,8BAA+B,WAAW,gCA+FjE,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -16,6 +16,7 @@ import { ContentItemMenu } from "../menus/ContentItemMenu/ContentItemMenu.js";
16
16
  import { TextMenu } from "../menus/TextMenu/TextMenu.js";
17
17
  import { LinkMenu } from "../menus/index.js";
18
18
  import "../../../../styles.css";
19
+ import { twj } from "tw-to-css";
19
20
  export const BlockEditor = ({ handleChange, content })=>{
20
21
  const menuContainerRef = useRef(null);
21
22
  const editorRef = useRef(null);
@@ -57,17 +58,17 @@ export const BlockEditor = ({ handleChange, content })=>{
57
58
  value: providerValue,
58
59
  children: /*#__PURE__*/ _jsx("div", {
59
60
  lang: i18n.language,
60
- className: "flex h-full overflow-visible editor-tiptap",
61
+ style: twj("flex h-full overflow-visible editor-tiptap"),
61
62
  ref: menuContainerRef,
62
63
  children: /*#__PURE__*/ _jsxs("div", {
63
- className: "relative flex flex-col flex-1 h-full justify-center items-center ",
64
+ style: twj("relative flex flex-col flex-1 h-full justify-center items-center "),
64
65
  children: [
65
66
  /*#__PURE__*/ _jsx(EditorContent, {
66
67
  editor: editor,
67
68
  ref: editorRef,
68
69
  lang: i18n.language,
69
- className: "flex-1 overflow-y-visible w-full h-full outline-none outline-offset-0",
70
70
  style: {
71
+ ...twj("flex-1 overflow-y-visible w-full h-full outline-none outline-offset-0"),
71
72
  outline: "none"
72
73
  }
73
74
  }),
@@ -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\nimport \"../../../../styles.css\";\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 editor-tiptap\"\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","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","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;AAE/D,SAASC,eAAe,QAAQ,8CAA8C;AAC9E,SAASC,QAAQ,QAAQ,gCAAgC;AACzD,SAASC,QAAQ,QAAQ,oBAAoB;AAG7C,OAAO,yBAAyB;AAEhC,OAAO,MAAMC,cAAc,CAAC,EAAEC,YAAY,EAAEC,OAAO,EAAe;IAChE,MAAMC,mBAAmBlB,OAAO;IAChC,MAAMmB,YAAYnB,OAAuB;IAEzC,MAAM,EAAEoB,MAAM,EAAEC,KAAK,EAAEC,cAAc,EAAEC,WAAW,EAAE,GAAGZ,eAAe;QACpEM,SAASA;QACTD,cAAcA;IAChB;IAEA,MAAM,EAAEQ,IAAI,EAAE,GAAGvB;IAEjB,MAAMwB,iBAAiBJ,MAAMK,KAAK,CAAC,GAAG;IAEtC,MAAMC,gBAAgB5B,QAAQ;QAC5B,OAAO,CAAC;IACV,GAAG,EAAE;IAELD,UAAU;QACR,IAAI0B,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,GAAG7B;IAEjB,6CAA6C;IAC7C,MAAM8B,YAAY,cAAc,0CAA0C;IAC1E,MAAMC,YAAY,uBAAuB,8BAA8B;IACvE,MAAMC,YAAY;IAElB;;;;;;;;;GASC,GAED,qBACE,KAAC/B,cAAcgC,QAAQ;QAACC,OAAOT;kBAC7B,cAAA,KAACU;YACCC,MAAMP,KAAKQ,QAAQ;YACnBC,WAAU;YACVC,KAAKvB;sBAOL,cAAA,MAACmB;gBAAIG,WAAU;;kCAQb,KAAC3C;wBACCuB,QAAQA;wBACRqB,KAAKtB;wBACLmB,MAAMP,KAAKQ,QAAQ;wBACnBC,WAAU;wBACVE,OAAO;4BACLC,SAAS;wBACX;;kCAEF,KAAC/B;wBAAgBQ,QAAQA;;kCACzB,KAACN;wBAASM,QAAQA;wBAAQwB,UAAU1B;;kCAEpC,KAACL;wBAASO,QAAQA;;kCAClB,KAAChB;wBAAWgB,QAAQA;wBAAQwB,UAAU1B;;kCACtC,KAACV;wBAAgBY,QAAQA;wBAAQwB,UAAU1B;;kCAC3C,KAACZ;wBAAgBc,QAAQA;wBAAQwB,UAAU1B;;kCAC3C,KAACX;wBAAYa,QAAQA;wBAAQwB,UAAU1B;;kCACvC,KAACR;wBAAaU,QAAQA;wBAAQwB,UAAU1B;;kCACxC,KAACT;wBAAgBW,QAAQA;wBAAQwB,UAAU1B;;kCAC3C,KAACb;wBAAee,QAAQA;wBAAQwB,UAAU1B;;;;;;AAKpD,EAAE;AAEF,eAAeH,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\nimport \"../../../../styles.css\";\nimport { twj } from \"tw-to-css\";\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 style={twj(\"flex h-full overflow-visible editor-tiptap\")}\n ref={menuContainerRef}\n >\n {/* <Sidebar\n isOpen={leftSidebar.isOpen}\n onClose={leftSidebar.close}\n editor={editor}\n /> */}\n <div\n style={twj(\n \"relative flex flex-col flex-1 h-full justify-center items-center \"\n )}\n >\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 style={{\n ...twj(\n \"flex-1 overflow-y-visible w-full h-full outline-none outline-offset-0\"\n ),\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","ContentItemMenu","TextMenu","LinkMenu","twj","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","style","ref","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;AAE/D,SAASC,eAAe,QAAQ,8CAA8C;AAC9E,SAASC,QAAQ,QAAQ,gCAAgC;AACzD,SAASC,QAAQ,QAAQ,oBAAoB;AAG7C,OAAO,yBAAyB;AAChC,SAASC,GAAG,QAAQ,YAAY;AAEhC,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,KAACU;YACCC,MAAMP,KAAKQ,QAAQ;YACnBC,OAAO1B,IAAI;YACX2B,KAAKvB;sBAOL,cAAA,MAACmB;gBACCG,OAAO1B,IACL;;kCAUF,KAAClB;wBACCwB,QAAQA;wBACRqB,KAAKtB;wBACLmB,MAAMP,KAAKQ,QAAQ;wBACnBC,OAAO;4BACL,GAAG1B,IACD,wEACD;4BACD4B,SAAS;wBACX;;kCAEF,KAAC/B;wBAAgBS,QAAQA;;kCACzB,KAACP;wBAASO,QAAQA;wBAAQuB,UAAUzB;;kCAEpC,KAACN;wBAASQ,QAAQA;;kCAClB,KAACjB;wBAAWiB,QAAQA;wBAAQuB,UAAUzB;;kCACtC,KAACX;wBAAgBa,QAAQA;wBAAQuB,UAAUzB;;kCAC3C,KAACb;wBAAgBe,QAAQA;wBAAQuB,UAAUzB;;kCAC3C,KAACZ;wBAAYc,QAAQA;wBAAQuB,UAAUzB;;kCACvC,KAACT;wBAAaW,QAAQA;wBAAQuB,UAAUzB;;kCACxC,KAACV;wBAAgBY,QAAQA;wBAAQuB,UAAUzB;;kCAC3C,KAACd;wBAAegB,QAAQA;wBAAQuB,UAAUzB;;;;;;AAKpD,EAAE;AAEF,eAAeH,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditorHeader.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,YAAY,gEAMtB,iBAAiB,sBAmBnB,CAAC"}
1
+ {"version":3,"file":"EditorHeader.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,YAAY,gEAMtB,iBAAiB,sBAuBnB,CAAC"}
@@ -4,14 +4,15 @@ import { PanelLeft, PanelLeftClose } from "lucide-react";
4
4
  import { Icon } from "../../ui/Icon.js";
5
5
  import { Toolbar } from "../../ui/Toolbar.js";
6
6
  import { EditorInfo } from "./EditorInfo.js";
7
+ import { twj } from "tw-to-css";
7
8
  export const EditorHeader = ({ characters, users, words, isSidebarOpen, toggleSidebar })=>{
8
9
  return /*#__PURE__*/ _jsxs("div", {
9
- 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",
10
+ style: twj("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"),
10
11
  children: [
11
12
  /*#__PURE__*/ _jsx("div", {
12
- className: "flex flex-row gap-x-1.5 items-center",
13
+ style: twj("flex flex-row gap-x-1.5 items-center"),
13
14
  children: /*#__PURE__*/ _jsx("div", {
14
- className: "flex items-center gap-x-1.5",
15
+ style: twj("flex items-center gap-x-1.5"),
15
16
  children: /*#__PURE__*/ _jsx(Toolbar.Button, {
16
17
  type: "button",
17
18
  tooltip: isSidebarOpen ? "Close sidebar" : "Open sidebar",
@@ -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\";\nimport { twj } from \"tw-to-css\";\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\n style={twj(\n \"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 )}\n >\n <div style={twj(\"flex flex-row gap-x-1.5 items-center\")}>\n <div style={twj(\"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","twj","EditorHeader","characters","users","words","isSidebarOpen","toggleSidebar","div","style","Button","type","tooltip","onClick","active","className","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;AAC7C,SAASC,GAAG,QAAQ,YAAY;AAUhC,OAAO,MAAMC,eAAe,CAAC,EAC3BC,UAAU,EACVC,KAAK,EACLC,KAAK,EACLC,aAAa,EACbC,aAAa,EACK;IAClB,qBACE,MAACC;QACCC,OAAOR,IACL;;0BAGF,KAACO;gBAAIC,OAAOR,IAAI;0BACd,cAAA,KAACO;oBAAIC,OAAOR,IAAI;8BACd,cAAA,KAACF,QAAQW,MAAM;wBACbC,MAAK;wBACLC,SAASN,gBAAgB,kBAAkB;wBAC3CO,SAASN;wBACTO,QAAQR;wBACRS,WAAWT,gBAAgB,mBAAmB;kCAE9C,cAAA,KAACR;4BAAKkB,MAAMV,gBAAgBT,iBAAiBD;;;;;0BAInD,KAACI;gBAAWG,YAAYA;gBAAYE,OAAOA;gBAAOD,OAAOA;;;;AAG/D,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAIvC,eAAO,MAAM,OAAO,2DAKf;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,uBA2BF,CAAC"}
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAKvC,eAAO,MAAM,OAAO,2DAKf;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,uBA2BF,CAAC"}
@@ -4,6 +4,7 @@ import React from "react";
4
4
  import { memo, useCallback } from "react";
5
5
  import { TableOfContents } from "../TableOfContents/index.js";
6
6
  import { cn } from "../../lib/utils/index.js";
7
+ import { twj } from "tw-to-css";
7
8
  export const Sidebar = /*#__PURE__*/ memo(({ editor, isOpen, onClose })=>{
8
9
  const handlePotentialClose = useCallback(()=>{
9
10
  if (window.innerWidth < 1024) {
@@ -14,11 +15,11 @@ export const Sidebar = /*#__PURE__*/ memo(({ editor, isOpen, onClose })=>{
14
15
  ]);
15
16
  const windowClassName = cn("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", "dark:bg-black lg:dark:bg-black/30", !isOpen && "border-r-transparent", isOpen && "w-80 border-r border-r-neutral-200 dark:border-r-neutral-800");
16
17
  return /*#__PURE__*/ _jsx("div", {
17
- className: windowClassName,
18
+ style: twj(windowClassName),
18
19
  children: /*#__PURE__*/ _jsx("div", {
19
- className: "w-full h-full overflow-hidden",
20
+ style: twj("w-full h-full overflow-hidden"),
20
21
  children: /*#__PURE__*/ _jsx("div", {
21
- className: "w-full h-full p-2 overflow-auto",
22
+ style: twj("w-full h-full p-2 overflow-auto"),
22
23
  children: /*#__PURE__*/ _jsx(TableOfContents, {
23
24
  onItemClick: handlePotentialClose,
24
25
  editor: editor
@@ -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\";\nimport { twj } from \"tw-to-css\";\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 style={twj(windowClassName)}>\n <div style={twj(\"w-full h-full overflow-hidden\")}>\n <div style={twj(\"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","twj","Sidebar","editor","isOpen","onClose","handlePotentialClose","window","innerWidth","windowClassName","div","style","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;AAC9C,SAASC,GAAG,QAAQ,YAAY;AAEhC,OAAO,MAAMC,wBAAUL,KACrB,CAAC,EACCM,MAAM,EACNC,MAAM,EACNC,OAAO,EAKR;IACC,MAAMC,uBAAuBR,YAAY;QACvC,IAAIS,OAAOC,UAAU,GAAG,MAAM;YAC5BH;QACF;IACF,GAAG;QAACA;KAAQ;IAEZ,MAAMI,kBAAkBT,GACtB,0IACA,qCACA,CAACI,UAAU,wBACXA,UAAU;IAGZ,qBACE,KAACM;QAAIC,OAAOV,IAAIQ;kBACd,cAAA,KAACC;YAAIC,OAAOV,IAAI;sBACd,cAAA,KAACS;gBAAIC,OAAOV,IAAI;0BACd,cAAA,KAACF;oBACCa,aAAaN;oBACbH,QAAQA;;;;;AAMpB,GACA;AAEFD,QAAQW,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContentItemMenu.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAoBvC,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,eAAe,eAAgB,oBAAoB,gCA4E/D,CAAC"}
1
+ {"version":3,"file":"ContentItemMenu.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAqBvC,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,eAAe,eAAgB,oBAAoB,gCA4E/D,CAAC"}
@@ -11,6 +11,7 @@ import { DropdownButton } from "../../ui/Dropdown/Dropdown.js";
11
11
  import { Surface } from "../../ui/Surface.js";
12
12
  import useContentItemActions from "./hooks/useContentItemActions.js";
13
13
  import { useData } from "./hooks/useData.js";
14
+ import { twj } from "tw-to-css";
14
15
  export const ContentItemMenu = ({ editor })=>{
15
16
  const [menuOpen, setMenuOpen] = useState(false);
16
17
  const [tippyOptions, setTippyOptions] = useState();
@@ -40,7 +41,7 @@ export const ContentItemMenu = ({ editor })=>{
40
41
  zIndex: 99
41
42
  },
42
43
  children: /*#__PURE__*/ _jsxs("div", {
43
- className: "flex items-center gap-0.5",
44
+ style: twj("flex items-center gap-0.5"),
44
45
  children: [
45
46
  /*#__PURE__*/ _jsx(Toolbar.Button, {
46
47
  type: "button",
@@ -67,7 +68,7 @@ export const ContentItemMenu = ({ editor })=>{
67
68
  align: "start",
68
69
  sideOffset: 8,
69
70
  children: /*#__PURE__*/ _jsxs(Surface, {
70
- className: "p-2 flex flex-col min-w-[16rem]",
71
+ style: twj("p-2 flex flex-col min-w-[16rem]"),
71
72
  children: [
72
73
  /*#__PURE__*/ _jsx(Popover.Close, {
73
74
  children: /*#__PURE__*/ _jsxs(DropdownButton, {
@@ -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\";\nimport { twj } from \"tw-to-css\";\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 style={twj(\"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 style={twj(\"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","twj","ContentItemMenu","editor","menuOpen","setMenuOpen","tippyOptions","setTippyOptions","data","i18n","actions","currentNode","currentNodePos","commands","setMeta","pluginKey","onNodeChange","handleNodeChange","placement","offset","zIndex","div","style","Button","type","onClick","handleAdd","icon","Root","open","onOpenChange","Trigger","asChild","Content","side","align","sideOffset","Close","resetTextFormatting","copyNodeToClipboard","duplicateNode","Divider","horizontal","deleteNode","className"],"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;AAC7C,SAASC,GAAG,QAAQ,YAAY;AAMhC,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,MAAM,EAAwB;IAC9D,MAAM,CAACC,UAAUC,YAAY,GAAGT,SAAS;IACzC,MAAM,CAACU,cAAcC,gBAAgB,GAAGX;IACxC,MAAMY,OAAOR;IACb,MAAM,EAAES,IAAI,EAAE,GAAGtB;IACjB,MAAMuB,UAAUX,sBACdI,QACAK,KAAKG,WAAW,EAChBH,KAAKI,cAAc;IAGrBjB,UAAU;QACR,IAAIS,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,KAACpB;QACC+B,WAAU;QACVZ,QAAQA;QACRa,cAAcR,KAAKS,gBAAgB;QACnCX,cAAc;YACZY,WAAW;YACXC,QAAQ;gBAAC,CAAC;gBAAI;aAAE;YAChBC,QAAQ;QACV;kBAEA,cAAA,MAACC;YAAIC,OAAOrB,IAAI;;8BACd,KAACf,QAAQqC,MAAM;oBAACC,MAAK;oBAASC,SAASf,QAAQgB,SAAS;8BACtD,cAAA,KAACzC;wBAAK0C,MAAMnC;;;8BAEd,MAACJ,QAAQwC,IAAI;oBAACC,MAAMzB;oBAAU0B,cAAczB;;sCAC1C,KAACjB,QAAQ2C,OAAO;4BAACC,OAAO;sCACtB,cAAA,KAAC9C,QAAQqC,MAAM;gCAACC,MAAK;0CACnB,cAAA,KAACvC;oCAAK0C,MAAMpC;;;;sCAGhB,KAACH,QAAQ6C,OAAO;4BAACC,MAAK;4BAASC,OAAM;4BAAQC,YAAY;sCACvD,cAAA,MAACtC;gCAAQwB,OAAOrB,IAAI;;kDAClB,KAACb,QAAQiD,KAAK;kDACZ,cAAA,MAACxC;4CAAe4B,SAASf,QAAQ4B,mBAAmB;;8DAClD,KAACrD;oDAAK0C,MAAMlC;;gDAAoB;;;;kDAIpC,KAACL,QAAQiD,KAAK;kDACZ,cAAA,MAACxC;4CAAe4B,SAASf,QAAQ6B,mBAAmB;;8DAClD,KAACtD;oDAAK0C,MAAMtC;;gDAAa;;;;kDAI7B,KAACD,QAAQiD,KAAK;kDACZ,cAAA,MAACxC;4CAAe4B,SAASf,QAAQ8B,aAAa;;8DAC5C,KAACvD;oDAAK0C,MAAMrC;;gDAAQ;;;;kDAIxB,KAACJ,QAAQuD,OAAO;wCAACC,UAAU;;kDAC3B,KAACtD,QAAQiD,KAAK;kDACZ,cAAA,MAACxC;4CACC4B,SAASf,QAAQiC,UAAU;4CAC3BC,WAAU;;8DAEV,KAAC3D;oDAAK0C,MAAMjC;;gDAAU;;;;;;;;;;;;AAUxC,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkMenu.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyB,MAAM,OAAO,CAAC;AAMzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,QAAQ,yBAA0B,SAAS,KAAG,SAwG1D,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"LinkMenu.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyB,MAAM,OAAO,CAAC;AAMzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,eAAO,MAAM,QAAQ,yBAA0B,SAAS,KAAG,SAwG1D,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -5,6 +5,7 @@ import { Instagram, Twitter, Youtube } from "lucide-react";
5
5
  import { LinkEditorPanel, LinkPreviewPanel } from "../../panels/index.js";
6
6
  import { Surface } from "../../ui/Surface.js";
7
7
  import { Toolbar } from "../../ui/Toolbar.js";
8
+ import { twj } from "tw-to-css";
8
9
  export const LinkMenu = ({ editor, appendTo })=>{
9
10
  const [showEdit, setShowEdit] = useState(false);
10
11
  const shouldShow = useCallback(()=>{
@@ -97,7 +98,7 @@ export const LinkMenu = ({ editor, appendTo })=>{
97
98
  }
98
99
  },
99
100
  children: /*#__PURE__*/ _jsx(Surface, {
100
- className: "p-2 min-w-[20rem]",
101
+ style: twj("p-2 min-w-[20rem]"),
101
102
  children: checkIfMatch(link, editor)
102
103
  })
103
104
  })
@@ -115,7 +116,7 @@ const checkIfMatch = (url, editor)=>{
115
116
  editor.chain().selectParentNode().deleteSelection().insertTwitter(url).run();
116
117
  },
117
118
  value: "continue",
118
- className: "gap-2 px-4 w-full flex justify-start",
119
+ style: twj("gap-2 px-4 w-full flex justify-start"),
119
120
  children: [
120
121
  /*#__PURE__*/ _jsx(Twitter, {}),
121
122
  "Embed Tweet"
@@ -127,7 +128,7 @@ const checkIfMatch = (url, editor)=>{
127
128
  editor.chain().selectParentNode().deleteSelection().insertInstagram(url).run();
128
129
  },
129
130
  value: "continue",
130
- className: "gap-2 px-4 w-full flex justify-start",
131
+ style: twj("gap-2 px-4 w-full flex justify-start"),
131
132
  children: [
132
133
  /*#__PURE__*/ _jsx(Instagram, {}),
133
134
  "Embed Instagram"
@@ -139,7 +140,7 @@ const checkIfMatch = (url, editor)=>{
139
140
  editor.chain().selectParentNode().deleteSelection().insertYoutube(url).run();
140
141
  },
141
142
  value: "continue",
142
- className: "gap-2 px-4 w-full flex justify-start",
143
+ style: twj("gap-2 px-4 w-full flex justify-start"),
143
144
  children: [
144
145
  /*#__PURE__*/ _jsx(Youtube, {}),
145
146
  "Embed Youtube"
@@ -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\";\nimport { twj } from \"tw-to-css\";\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 style={twj(\"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 style={twj(\"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 style={twj(\"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 style={twj(\"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","twj","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","style","checkIfMatch","twitterRegex","instagramRegex","youtubeRegex","test","Button","onClick","selectParentNode","deleteSelection","insertTwitter","value","insertInstagram","insertYoutube"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextMenu.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,MAAM,EAAE,MAAM,eAAe,CAAC;AA0CnD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,QAAQ,eAAgB,aAAa,gCA2NjD,CAAC"}
1
+ {"version":3,"file":"TextMenu.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,MAAM,EAAE,MAAM,eAAe,CAAC;AA2CnD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,QAAQ,eAAgB,aAAa,gCA6NjD,CAAC"}
@@ -15,6 +15,7 @@ import { FontSizePicker } from "./components/FontSizePicker.js";
15
15
  import { useTextmenuCommands } from "./hooks/useTextmenuCommands.js";
16
16
  import { useTextmenuContentTypes } from "./hooks/useTextmenuContentTypes.js";
17
17
  import { useTextmenuStates } from "./hooks/useTextmenuStates.js";
18
+ import { twj } from "tw-to-css";
18
19
  // We memorize the button so each button is not rerendered
19
20
  // on every editor state change
20
21
  const MemoButton = /*#__PURE__*/ memo(Toolbar.Button);
@@ -49,7 +50,7 @@ export const TextMenu = ({ editor })=>{
49
50
  }) : /*#__PURE__*/ _jsxs(Toolbar.Wrapper, {
50
51
  children: [
51
52
  /*#__PURE__*/ _jsxs(Toolbar.Button, {
52
- 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",
53
+ style: twj("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"),
53
54
  activeClassname: "text-purple-600 hover:text-purple-600 dark:text-purple-400 dark:hover:text-purple-200",
54
55
  onClick: ()=>setOpenAi(true),
55
56
  children: [
@@ -176,7 +177,7 @@ export const TextMenu = ({ editor })=>{
176
177
  sideOffset: 8,
177
178
  asChild: true,
178
179
  children: /*#__PURE__*/ _jsx(Surface, {
179
- className: "p-1",
180
+ style: twj("p-1"),
180
181
  children: /*#__PURE__*/ _jsx(MemoColorPicker, {
181
182
  color: states.currentHighlight,
182
183
  onChange: commands.onChangeHighlight,
@@ -204,7 +205,7 @@ export const TextMenu = ({ editor })=>{
204
205
  sideOffset: 8,
205
206
  asChild: true,
206
207
  children: /*#__PURE__*/ _jsx(Surface, {
207
- className: "p-1",
208
+ style: twj("p-1"),
208
209
  children: /*#__PURE__*/ _jsx(MemoColorPicker, {
209
210
  color: states.currentColor,
210
211
  onChange: commands.onChangeColor,
@@ -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\";\nimport { twj } from \"tw-to-css\";\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 style={twj(\n \"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 )}\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 style={twj(\"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 style={twj(\"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","twj","MemoButton","Button","MemoColorPicker","MemoFontFamilyPicker","MemoFontSizePicker","MemoContentTypePicker","TextMenu","editor","commands","states","blockOptions","openAi","setOpenAi","tippyOptions","placement","popperOptions","onHide","pluginKey","shouldShow","updateDelay","onOpenChange","value","Wrapper","style","activeClassname","onClick","icon","className","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 +1 @@
1
- {"version":3,"file":"ContentTypePicker.d.ts","sourceRoot":"","sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAW,MAAM,cAAc,CAAC;AAUhE,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,KAAK,CACtC,uBAAuB,GAAG,yBAAyB,CACpD,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AASF,eAAO,MAAM,iBAAiB,gBAAiB,sBAAsB,gCAgDpE,CAAC"}
1
+ {"version":3,"file":"ContentTypePicker.d.ts","sourceRoot":"","sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAW,MAAM,cAAc,CAAC;AAWhE,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,KAAK,CACtC,uBAAuB,GAAG,yBAAyB,CACpD,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AASF,eAAO,MAAM,iBAAiB,gBAAiB,sBAAsB,gCAgDpE,CAAC"}
@@ -6,6 +6,7 @@ import { DropdownButton, DropdownCategoryTitle } from "../../../ui/Dropdown/Drop
6
6
  import { Icon } from "../../../ui/Icon.js";
7
7
  import { Surface } from "../../../ui/Surface.js";
8
8
  import { Toolbar } from "../../../ui/Toolbar.js";
9
+ import { twj } from "tw-to-css";
9
10
  const isOption = (option)=>option.type === "option";
10
11
  const isCategory = (option)=>option.type === "category";
11
12
  export const ContentTypePicker = ({ options })=>{
@@ -33,7 +34,7 @@ export const ContentTypePicker = ({ options })=>{
33
34
  /*#__PURE__*/ _jsx(Dropdown.Content, {
34
35
  asChild: true,
35
36
  children: /*#__PURE__*/ _jsx(Surface, {
36
- className: "flex flex-col gap-1 px-2 py-4",
37
+ style: twj("flex flex-col gap-1 px-2 py-4"),
37
38
  children: options.map((option)=>{
38
39
  if (isOption(option)) {
39
40
  return /*#__PURE__*/ _jsxs(DropdownButton, {
@@ -49,7 +50,7 @@ export const ContentTypePicker = ({ options })=>{
49
50
  }, option.id);
50
51
  } else if (isCategory(option)) {
51
52
  return /*#__PURE__*/ _jsx("div", {
52
- className: "mt-2 first:mt-0",
53
+ style: twj("mt-2 first:mt-0"),
53
54
  children: /*#__PURE__*/ _jsx(DropdownCategoryTitle, {
54
55
  children: option.label
55
56
  }, option.id)
@@ -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\";\nimport { twj } from \"tw-to-css\";\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 style={twj(\"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 style={twj(\"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","twj","isOption","option","type","isCategory","ContentTypePicker","options","activeItem","find","isActive","Root","Trigger","asChild","Button","active","id","icon","className","Content","style","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;AACjD,SAASC,GAAG,QAAQ,YAAY;AA0BhC,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,aAAab,QACjB,IACEY,QAAQE,IAAI,CAAC,CAACN,SAAWA,OAAOC,IAAI,KAAK,YAAYD,OAAOO,QAAQ,KACtE;QAACH;KAAQ;IAGX,qBACE,MAACf,SAASmB,IAAI;;0BACZ,KAACnB,SAASoB,OAAO;gBAACC,OAAO;0BACvB,cAAA,MAACb,QAAQc,MAAM;oBACbV,MAAK;oBACLW,QAAQP,YAAYQ,OAAO,eAAe,CAAC,CAACR,YAAYJ;;sCAExD,KAACN;4BACCmB,MAAM,AAACT,YAAYJ,SAAS,YAAYI,WAAWS,IAAI,IAAKvB;;sCAE9D,KAACI;4BAAKmB,MAAMxB;4BAAayB,WAAU;;;;;0BAGvC,KAAC1B,SAAS2B,OAAO;gBAACN,OAAO;0BACvB,cAAA,KAACd;oBAAQqB,OAAOnB,IAAI;8BACjBM,QAAQc,GAAG,CAAC,CAAClB;wBACZ,IAAID,SAASC,SAAS;4BACpB,qBACE,MAACP;gCAEC0B,SAASnB,OAAOmB,OAAO;gCACvBZ,UAAUP,OAAOO,QAAQ;;kDAEzB,KAACZ;wCAAKmB,MAAMd,OAAOc,IAAI;wCAAEC,WAAU;;oCAClCf,OAAOoB,KAAK;;+BALRpB,OAAOa,EAAE;wBAQpB,OAAO,IAAIX,WAAWF,SAAS;4BAC7B,qBACE,KAACqB;gCAAIJ,OAAOnB,IAAI;0CACd,cAAA,KAACJ;8CACEM,OAAOoB,KAAK;mCADapB,OAAOa,EAAE;+BADEb,OAAOa,EAAE;wBAMtD;oBACF;;;;;AAKV,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"FontFamilyPicker.d.ts","sourceRoot":"","sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.tsx"],"names":[],"mappings":"AAyCA,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,gBAAgB,yBAG1B,qBAAqB,gCAwCvB,CAAC"}
1
+ {"version":3,"file":"FontFamilyPicker.d.ts","sourceRoot":"","sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.tsx"],"names":[],"mappings":"AA0CA,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,gBAAgB,yBAG1B,qBAAqB,gCAwCvB,CAAC"}