payload-richtext-tiptap 0.0.30 → 0.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Design.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Design.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Design.js +3 -4
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Design.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.js +2 -3
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockWidth.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockWidth.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockWidth.js +5 -6
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockWidth.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.js +1 -2
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.js +6 -7
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLink.client.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLink.client.js +1 -2
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLink.client.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.js +3 -4
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.js +3 -4
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.js +1 -2
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.js +2 -3
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js +1 -2
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts +0 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js +62 -56
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.js +3 -4
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js +3 -4
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.js +2 -3
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.js +4 -5
- package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.js +3 -4
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.js +2 -3
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.js +2 -3
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.js +1 -2
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.js +6 -7
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js +7 -8
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js +10 -11
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/ColorButton.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/ColorButton.js +3 -4
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/ColorButton.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/Colorpicker.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/Colorpicker.js +4 -5
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/Colorpicker.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js +4 -5
- package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/InsideLinksEditorPanel.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/InsideLinksEditorPanel.js +3 -4
- package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/InsideLinksEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/LinkEditorPanel.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/LinkEditorPanel.js +6 -7
- package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/LinkEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/LinkPreviewPanel.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/LinkPreviewPanel.js +2 -3
- package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/LinkPreviewPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js +6 -7
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Button/Button.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Button/Button.js +1 -2
- package/dist/src/fields/TiptapEditor/features/ui/Button/Button.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Dropdown/Dropdown.js +2 -3
- package/dist/src/fields/TiptapEditor/features/ui/Dropdown/Dropdown.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Icon.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Icon.js +1 -2
- package/dist/src/fields/TiptapEditor/features/ui/Icon.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Loader/Loader.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Loader/Loader.js +4 -5
- package/dist/src/fields/TiptapEditor/features/ui/Loader/Loader.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Panel/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Panel/index.js +6 -7
- package/dist/src/fields/TiptapEditor/features/ui/Panel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/PopoverMenu.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/PopoverMenu.js +7 -9
- package/dist/src/fields/TiptapEditor/features/ui/PopoverMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Spinner/Spinner.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Spinner/Spinner.js +1 -2
- package/dist/src/fields/TiptapEditor/features/ui/Spinner/Spinner.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Surface.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Surface.js +1 -2
- package/dist/src/fields/TiptapEditor/features/ui/Surface.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Textarea/Textarea.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Textarea/Textarea.js +1 -2
- package/dist/src/fields/TiptapEditor/features/ui/Textarea/Textarea.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toggle/Toggle.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toggle/Toggle.js +2 -5
- package/dist/src/fields/TiptapEditor/features/ui/Toggle/Toggle.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toolbar.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toolbar.js +3 -5
- package/dist/src/fields/TiptapEditor/features/ui/Toolbar.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Tooltip/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Tooltip/index.js +7 -8
- package/dist/src/fields/TiptapEditor/features/ui/Tooltip/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/crazy-spinner.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/crazy-spinner.js +4 -5
- package/dist/src/fields/TiptapEditor/features/ui/crazy-spinner.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/scroll-area.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/scroll-area.js +4 -5
- package/dist/src/fields/TiptapEditor/features/ui/scroll-area.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js.map
CHANGED
|
@@ -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\";\
|
|
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 +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,
|
|
1
|
+
{"version":3,"file":"BlockEditor.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,eAAO,MAAM,WAAW,8BAA+B,WAAW,gCAyFjE,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -12,11 +12,10 @@ import { ColumnsMenu } from "../../extensions/MultiColumn/menus/ColumnsMenu.js";
|
|
|
12
12
|
import { SocialMediaMenu } from "../../extensions/SocialMedia/menus/index.js";
|
|
13
13
|
import { TableColumnMenu, TableRowMenu } from "../../extensions/Table/menus/index.js";
|
|
14
14
|
import { useBlockEditor } from "../../hooks/useBlockEditor.js";
|
|
15
|
+
import { Sidebar } from "../Sidebar/Sidebar.js";
|
|
15
16
|
import { ContentItemMenu } from "../menus/ContentItemMenu/ContentItemMenu.js";
|
|
16
17
|
import { TextMenu } from "../menus/TextMenu/TextMenu.js";
|
|
17
18
|
import { LinkMenu } from "../menus/index.js";
|
|
18
|
-
import "../../../../styles.css";
|
|
19
|
-
import { twj } from "tw-to-css";
|
|
20
19
|
export const BlockEditor = ({ handleChange, content })=>{
|
|
21
20
|
const menuContainerRef = useRef(null);
|
|
22
21
|
const editorRef = useRef(null);
|
|
@@ -56,62 +55,69 @@ export const BlockEditor = ({ handleChange, content })=>{
|
|
|
56
55
|
editor.commands.setContent(contentEn)
|
|
57
56
|
}*/ return /*#__PURE__*/ _jsx(EditorContext.Provider, {
|
|
58
57
|
value: providerValue,
|
|
59
|
-
children: /*#__PURE__*/
|
|
58
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
60
59
|
lang: i18n.language,
|
|
61
|
-
|
|
60
|
+
className: "flex h-full overflow-visible",
|
|
62
61
|
ref: menuContainerRef,
|
|
63
|
-
children:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
62
|
+
children: [
|
|
63
|
+
/*#__PURE__*/ _jsx(Sidebar, {
|
|
64
|
+
isOpen: leftSidebar.isOpen,
|
|
65
|
+
onClose: leftSidebar.close,
|
|
66
|
+
editor: editor
|
|
67
|
+
}),
|
|
68
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
69
|
+
className: "relative flex flex-col flex-1 h-full justify-center items-center ",
|
|
70
|
+
children: [
|
|
71
|
+
/*#__PURE__*/ _jsx(EditorContent, {
|
|
72
|
+
editor: editor,
|
|
73
|
+
ref: editorRef,
|
|
74
|
+
lang: i18n.language,
|
|
75
|
+
className: "flex-1 overflow-y-visible w-full h-full outline-none outline-offset-0",
|
|
76
|
+
style: {
|
|
77
|
+
outline: "none"
|
|
78
|
+
}
|
|
79
|
+
}),
|
|
80
|
+
/*#__PURE__*/ _jsx(ContentItemMenu, {
|
|
81
|
+
editor: editor
|
|
82
|
+
}),
|
|
83
|
+
/*#__PURE__*/ _jsx(LinkMenu, {
|
|
84
|
+
editor: editor,
|
|
85
|
+
appendTo: menuContainerRef
|
|
86
|
+
}),
|
|
87
|
+
/*#__PURE__*/ _jsx(TextMenu, {
|
|
88
|
+
editor: editor
|
|
89
|
+
}),
|
|
90
|
+
/*#__PURE__*/ _jsx(IframeMenu, {
|
|
91
|
+
editor: editor,
|
|
92
|
+
appendTo: menuContainerRef
|
|
93
|
+
}),
|
|
94
|
+
/*#__PURE__*/ _jsx(SocialMediaMenu, {
|
|
95
|
+
editor: editor,
|
|
96
|
+
appendTo: menuContainerRef
|
|
97
|
+
}),
|
|
98
|
+
/*#__PURE__*/ _jsx(InsideLinksMenu, {
|
|
99
|
+
editor: editor,
|
|
100
|
+
appendTo: menuContainerRef
|
|
101
|
+
}),
|
|
102
|
+
/*#__PURE__*/ _jsx(ColumnsMenu, {
|
|
103
|
+
editor: editor,
|
|
104
|
+
appendTo: menuContainerRef
|
|
105
|
+
}),
|
|
106
|
+
/*#__PURE__*/ _jsx(TableRowMenu, {
|
|
107
|
+
editor: editor,
|
|
108
|
+
appendTo: menuContainerRef
|
|
109
|
+
}),
|
|
110
|
+
/*#__PURE__*/ _jsx(TableColumnMenu, {
|
|
111
|
+
editor: editor,
|
|
112
|
+
appendTo: menuContainerRef
|
|
113
|
+
}),
|
|
114
|
+
/*#__PURE__*/ _jsx(ImageBlockMenu, {
|
|
115
|
+
editor: editor,
|
|
116
|
+
appendTo: menuContainerRef
|
|
117
|
+
})
|
|
118
|
+
]
|
|
119
|
+
})
|
|
120
|
+
]
|
|
115
121
|
})
|
|
116
122
|
});
|
|
117
123
|
};
|
|
@@ -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\
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"sourcesContent":["\"use client\";\nimport { EditorContent } from \"@tiptap/react\";\nimport { useEffect, useMemo, useRef } from \"react\";\n\nimport { useLocale } from \"@payloadcms/ui/providers/Locale\";\nimport { useTranslation } from \"@payloadcms/ui/providers/Translation\";\nimport { EditorContext } from \"../../context/EditorContext.js\";\nimport { IframeMenu } from \"../../extensions/Iframe/menus/index.js\";\nimport ImageBlockMenu from \"../../extensions/ImageBlock/components/ImageBlockMenu.js\";\nimport { InsideLinksMenu } from \"../../extensions/InsideLinks/menus/index.js\";\nimport { ColumnsMenu } from \"../../extensions/MultiColumn/menus/ColumnsMenu.js\";\nimport { SocialMediaMenu } from \"../../extensions/SocialMedia/menus/index.js\";\nimport {\n TableColumnMenu,\n TableRowMenu,\n} from \"../../extensions/Table/menus/index.js\";\nimport { useBlockEditor } from \"../../hooks/useBlockEditor.js\";\nimport { Sidebar } from \"../Sidebar/Sidebar.js\";\nimport { ContentItemMenu } from \"../menus/ContentItemMenu/ContentItemMenu.js\";\nimport { TextMenu } from \"../menus/TextMenu/TextMenu.js\";\nimport { LinkMenu } from \"../menus/index.js\";\nimport { TiptapProps } from \"./types.js\";\n\nexport const BlockEditor = ({ handleChange, content }: TiptapProps) => {\n const menuContainerRef = useRef(null);\n const editorRef = useRef<HTMLDivElement>(null);\n\n const { editor, users, characterCount, leftSidebar } = useBlockEditor({\n content: content,\n handleChange: handleChange,\n });\n\n const { code } = useLocale();\n\n const displayedUsers = users.slice(0, 3);\n\n const providerValue = useMemo(() => {\n return {};\n }, []);\n\n useEffect(() => {\n if (code === \"ar\" || code === \"fa\") {\n editor?.commands?.setTextDirection(\"rtl\");\n editor?.commands?.setContent(\"dwa\");\n }\n }, [code]);\n\n if (!editor) {\n return null;\n }\n const { i18n } = useTranslation();\n\n // Define the content for different languages\n const contentEn = \"للكتابة...\"; // Content for English or default language\n const contentAr = \"انقر هنا للكتابة...\"; // Content for Arabic language\n const contentFa = \"اینجا کلیک کنید تا شروع به نوشتن کنید...\";\n\n /*switch (i18n.language) {\n case 'ar':\n editor.commands.setContent(contentAr)\n break\n case 'fa':\n editor.commands.setContent(contentFa)\n break\n default:\n editor.commands.setContent(contentEn)\n }*/\n\n return (\n <EditorContext.Provider value={providerValue}>\n <div\n lang={i18n.language}\n className=\"flex h-full overflow-visible\"\n ref={menuContainerRef}\n >\n <Sidebar\n isOpen={leftSidebar.isOpen}\n onClose={leftSidebar.close}\n editor={editor}\n />\n <div className=\"relative flex flex-col flex-1 h-full justify-center items-center \">\n {/* <EditorHeader\n characters={characterCount.characters()}\n users={displayedUsers}\n words={characterCount.words()}\n isSidebarOpen={leftSidebar.isOpen}\n toggleSidebar={leftSidebar.toggle}\n /> */}\n <EditorContent\n editor={editor}\n ref={editorRef}\n lang={i18n.language}\n className=\"flex-1 overflow-y-visible w-full h-full outline-none outline-offset-0\"\n style={{\n outline: \"none\",\n }}\n />\n <ContentItemMenu editor={editor} />\n <LinkMenu editor={editor} appendTo={menuContainerRef} />\n\n <TextMenu editor={editor} />\n <IframeMenu editor={editor} appendTo={menuContainerRef} />\n <SocialMediaMenu editor={editor} appendTo={menuContainerRef} />\n <InsideLinksMenu editor={editor} appendTo={menuContainerRef} />\n <ColumnsMenu editor={editor} appendTo={menuContainerRef} />\n <TableRowMenu editor={editor} appendTo={menuContainerRef} />\n <TableColumnMenu editor={editor} appendTo={menuContainerRef} />\n <ImageBlockMenu editor={editor} appendTo={menuContainerRef} />\n </div>\n </div>\n </EditorContext.Provider>\n );\n};\n\nexport default BlockEditor;\n"],"names":["EditorContent","useEffect","useMemo","useRef","useLocale","useTranslation","EditorContext","IframeMenu","ImageBlockMenu","InsideLinksMenu","ColumnsMenu","SocialMediaMenu","TableColumnMenu","TableRowMenu","useBlockEditor","Sidebar","ContentItemMenu","TextMenu","LinkMenu","BlockEditor","handleChange","content","menuContainerRef","editorRef","editor","users","characterCount","leftSidebar","code","displayedUsers","slice","providerValue","commands","setTextDirection","setContent","i18n","contentEn","contentAr","contentFa","Provider","value","div","lang","language","className","ref","isOpen","onClose","close","style","outline","appendTo"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,aAAa,QAAQ,gBAAgB;AAC9C,SAASC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,QAAQ;AAEnD,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,cAAc,QAAQ,uCAAuC;AACtE,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,UAAU,QAAQ,yCAAyC;AACpE,OAAOC,oBAAoB,2DAA2D;AACtF,SAASC,eAAe,QAAQ,8CAA8C;AAC9E,SAASC,WAAW,QAAQ,oDAAoD;AAChF,SAASC,eAAe,QAAQ,8CAA8C;AAC9E,SACEC,eAAe,EACfC,YAAY,QACP,wCAAwC;AAC/C,SAASC,cAAc,QAAQ,gCAAgC;AAC/D,SAASC,OAAO,QAAQ,wBAAwB;AAChD,SAASC,eAAe,QAAQ,8CAA8C;AAC9E,SAASC,QAAQ,QAAQ,gCAAgC;AACzD,SAASC,QAAQ,QAAQ,oBAAoB;AAG7C,OAAO,MAAMC,cAAc,CAAC,EAAEC,YAAY,EAAEC,OAAO,EAAe;IAChE,MAAMC,mBAAmBnB,OAAO;IAChC,MAAMoB,YAAYpB,OAAuB;IAEzC,MAAM,EAAEqB,MAAM,EAAEC,KAAK,EAAEC,cAAc,EAAEC,WAAW,EAAE,GAAGb,eAAe;QACpEO,SAASA;QACTD,cAAcA;IAChB;IAEA,MAAM,EAAEQ,IAAI,EAAE,GAAGxB;IAEjB,MAAMyB,iBAAiBJ,MAAMK,KAAK,CAAC,GAAG;IAEtC,MAAMC,gBAAgB7B,QAAQ;QAC5B,OAAO,CAAC;IACV,GAAG,EAAE;IAELD,UAAU;QACR,IAAI2B,SAAS,QAAQA,SAAS,MAAM;YAClCJ,QAAQQ,UAAUC,iBAAiB;YACnCT,QAAQQ,UAAUE,WAAW;QAC/B;IACF,GAAG;QAACN;KAAK;IAET,IAAI,CAACJ,QAAQ;QACX,OAAO;IACT;IACA,MAAM,EAAEW,IAAI,EAAE,GAAG9B;IAEjB,6CAA6C;IAC7C,MAAM+B,YAAY,cAAc,0CAA0C;IAC1E,MAAMC,YAAY,uBAAuB,8BAA8B;IACvE,MAAMC,YAAY;IAElB;;;;;;;;;GASC,GAED,qBACE,KAAChC,cAAciC,QAAQ;QAACC,OAAOT;kBAC7B,cAAA,MAACU;YACCC,MAAMP,KAAKQ,QAAQ;YACnBC,WAAU;YACVC,KAAKvB;;8BAEL,KAACP;oBACC+B,QAAQnB,YAAYmB,MAAM;oBAC1BC,SAASpB,YAAYqB,KAAK;oBAC1BxB,QAAQA;;8BAEV,MAACiB;oBAAIG,WAAU;;sCAQb,KAAC5C;4BACCwB,QAAQA;4BACRqB,KAAKtB;4BACLmB,MAAMP,KAAKQ,QAAQ;4BACnBC,WAAU;4BACVK,OAAO;gCACLC,SAAS;4BACX;;sCAEF,KAAClC;4BAAgBQ,QAAQA;;sCACzB,KAACN;4BAASM,QAAQA;4BAAQ2B,UAAU7B;;sCAEpC,KAACL;4BAASO,QAAQA;;sCAClB,KAACjB;4BAAWiB,QAAQA;4BAAQ2B,UAAU7B;;sCACtC,KAACX;4BAAgBa,QAAQA;4BAAQ2B,UAAU7B;;sCAC3C,KAACb;4BAAgBe,QAAQA;4BAAQ2B,UAAU7B;;sCAC3C,KAACZ;4BAAYc,QAAQA;4BAAQ2B,UAAU7B;;sCACvC,KAACT;4BAAaW,QAAQA;4BAAQ2B,UAAU7B;;sCACxC,KAACV;4BAAgBY,QAAQA;4BAAQ2B,UAAU7B;;sCAC3C,KAACd;4BAAegB,QAAQA;4BAAQ2B,UAAU7B;;;;;;;AAKpD,EAAE;AAEF,eAAeH,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"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;
|
|
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"}
|
|
@@ -4,15 +4,14 @@ 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";
|
|
8
7
|
export const EditorHeader = ({ characters, users, words, isSidebarOpen, toggleSidebar })=>{
|
|
9
8
|
return /*#__PURE__*/ _jsxs("div", {
|
|
10
|
-
|
|
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",
|
|
11
10
|
children: [
|
|
12
11
|
/*#__PURE__*/ _jsx("div", {
|
|
13
|
-
|
|
12
|
+
className: "flex flex-row gap-x-1.5 items-center",
|
|
14
13
|
children: /*#__PURE__*/ _jsx("div", {
|
|
15
|
-
|
|
14
|
+
className: "flex items-center gap-x-1.5",
|
|
16
15
|
children: /*#__PURE__*/ _jsx(Toolbar.Button, {
|
|
17
16
|
type: "button",
|
|
18
17
|
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\";\
|
|
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 +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;
|
|
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"}
|
|
@@ -4,7 +4,6 @@ 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";
|
|
8
7
|
export const Sidebar = /*#__PURE__*/ memo(({ editor, isOpen, onClose })=>{
|
|
9
8
|
const handlePotentialClose = useCallback(()=>{
|
|
10
9
|
if (window.innerWidth < 1024) {
|
|
@@ -15,11 +14,11 @@ export const Sidebar = /*#__PURE__*/ memo(({ editor, isOpen, onClose })=>{
|
|
|
15
14
|
]);
|
|
16
15
|
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");
|
|
17
16
|
return /*#__PURE__*/ _jsx("div", {
|
|
18
|
-
|
|
17
|
+
className: windowClassName,
|
|
19
18
|
children: /*#__PURE__*/ _jsx("div", {
|
|
20
|
-
|
|
19
|
+
className: "w-full h-full overflow-hidden",
|
|
21
20
|
children: /*#__PURE__*/ _jsx("div", {
|
|
22
|
-
|
|
21
|
+
className: "w-full h-full p-2 overflow-auto",
|
|
23
22
|
children: /*#__PURE__*/ _jsx(TableOfContents, {
|
|
24
23
|
onItemClick: handlePotentialClose,
|
|
25
24
|
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\";\
|
|
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"}
|
package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
|
@@ -11,7 +11,6 @@ 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";
|
|
15
14
|
export const ContentItemMenu = ({ editor })=>{
|
|
16
15
|
const [menuOpen, setMenuOpen] = useState(false);
|
|
17
16
|
const [tippyOptions, setTippyOptions] = useState();
|
|
@@ -41,7 +40,7 @@ export const ContentItemMenu = ({ editor })=>{
|
|
|
41
40
|
zIndex: 99
|
|
42
41
|
},
|
|
43
42
|
children: /*#__PURE__*/ _jsxs("div", {
|
|
44
|
-
|
|
43
|
+
className: "flex items-center gap-0.5",
|
|
45
44
|
children: [
|
|
46
45
|
/*#__PURE__*/ _jsx(Toolbar.Button, {
|
|
47
46
|
type: "button",
|
|
@@ -68,7 +67,7 @@ export const ContentItemMenu = ({ editor })=>{
|
|
|
68
67
|
align: "start",
|
|
69
68
|
sideOffset: 8,
|
|
70
69
|
children: /*#__PURE__*/ _jsxs(Surface, {
|
|
71
|
-
|
|
70
|
+
className: "p-2 flex flex-col min-w-[16rem]",
|
|
72
71
|
children: [
|
|
73
72
|
/*#__PURE__*/ _jsx(Popover.Close, {
|
|
74
73
|
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\";\
|
|
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 +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;
|
|
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"}
|
|
@@ -5,7 +5,6 @@ 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";
|
|
9
8
|
export const LinkMenu = ({ editor, appendTo })=>{
|
|
10
9
|
const [showEdit, setShowEdit] = useState(false);
|
|
11
10
|
const shouldShow = useCallback(()=>{
|
|
@@ -98,7 +97,7 @@ export const LinkMenu = ({ editor, appendTo })=>{
|
|
|
98
97
|
}
|
|
99
98
|
},
|
|
100
99
|
children: /*#__PURE__*/ _jsx(Surface, {
|
|
101
|
-
|
|
100
|
+
className: "p-2 min-w-[20rem]",
|
|
102
101
|
children: checkIfMatch(link, editor)
|
|
103
102
|
})
|
|
104
103
|
})
|
|
@@ -116,7 +115,7 @@ const checkIfMatch = (url, editor)=>{
|
|
|
116
115
|
editor.chain().selectParentNode().deleteSelection().insertTwitter(url).run();
|
|
117
116
|
},
|
|
118
117
|
value: "continue",
|
|
119
|
-
|
|
118
|
+
className: "gap-2 px-4 w-full flex justify-start",
|
|
120
119
|
children: [
|
|
121
120
|
/*#__PURE__*/ _jsx(Twitter, {}),
|
|
122
121
|
"Embed Tweet"
|
|
@@ -128,7 +127,7 @@ const checkIfMatch = (url, editor)=>{
|
|
|
128
127
|
editor.chain().selectParentNode().deleteSelection().insertInstagram(url).run();
|
|
129
128
|
},
|
|
130
129
|
value: "continue",
|
|
131
|
-
|
|
130
|
+
className: "gap-2 px-4 w-full flex justify-start",
|
|
132
131
|
children: [
|
|
133
132
|
/*#__PURE__*/ _jsx(Instagram, {}),
|
|
134
133
|
"Embed Instagram"
|
|
@@ -140,7 +139,7 @@ const checkIfMatch = (url, editor)=>{
|
|
|
140
139
|
editor.chain().selectParentNode().deleteSelection().insertYoutube(url).run();
|
|
141
140
|
},
|
|
142
141
|
value: "continue",
|
|
143
|
-
|
|
142
|
+
className: "gap-2 px-4 w-full flex justify-start",
|
|
144
143
|
children: [
|
|
145
144
|
/*#__PURE__*/ _jsx(Youtube, {}),
|
|
146
145
|
"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\";\
|
|
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 +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;
|
|
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"}
|
|
@@ -15,7 +15,6 @@ 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";
|
|
19
18
|
// We memorize the button so each button is not rerendered
|
|
20
19
|
// on every editor state change
|
|
21
20
|
const MemoButton = /*#__PURE__*/ memo(Toolbar.Button);
|
|
@@ -50,7 +49,7 @@ export const TextMenu = ({ editor })=>{
|
|
|
50
49
|
}) : /*#__PURE__*/ _jsxs(Toolbar.Wrapper, {
|
|
51
50
|
children: [
|
|
52
51
|
/*#__PURE__*/ _jsxs(Toolbar.Button, {
|
|
53
|
-
|
|
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",
|
|
54
53
|
activeClassname: "text-purple-600 hover:text-purple-600 dark:text-purple-400 dark:hover:text-purple-200",
|
|
55
54
|
onClick: ()=>setOpenAi(true),
|
|
56
55
|
children: [
|
|
@@ -177,7 +176,7 @@ export const TextMenu = ({ editor })=>{
|
|
|
177
176
|
sideOffset: 8,
|
|
178
177
|
asChild: true,
|
|
179
178
|
children: /*#__PURE__*/ _jsx(Surface, {
|
|
180
|
-
|
|
179
|
+
className: "p-1",
|
|
181
180
|
children: /*#__PURE__*/ _jsx(MemoColorPicker, {
|
|
182
181
|
color: states.currentHighlight,
|
|
183
182
|
onChange: commands.onChangeHighlight,
|
|
@@ -205,7 +204,7 @@ export const TextMenu = ({ editor })=>{
|
|
|
205
204
|
sideOffset: 8,
|
|
206
205
|
asChild: true,
|
|
207
206
|
children: /*#__PURE__*/ _jsx(Surface, {
|
|
208
|
-
|
|
207
|
+
className: "p-1",
|
|
209
208
|
children: /*#__PURE__*/ _jsx(MemoColorPicker, {
|
|
210
209
|
color: states.currentColor,
|
|
211
210
|
onChange: commands.onChangeColor,
|