payload-richtext-tiptap 0.0.41 → 0.0.42

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 (77) hide show
  1. package/dist/src/fields/TiptapEditor/Components.d.ts.map +1 -1
  2. package/dist/src/fields/TiptapEditor/Components.js +3 -3
  3. package/dist/src/fields/TiptapEditor/Components.js.map +1 -1
  4. package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.d.ts +4 -0
  5. package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.d.ts.map +1 -0
  6. package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.js +208 -0
  7. package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.js.map +1 -0
  8. package/dist/src/fields/TiptapEditor/extensions/AICommand/AIMenuList.d.ts +5 -0
  9. package/dist/src/fields/TiptapEditor/extensions/AICommand/AIMenuList.d.ts.map +1 -0
  10. package/dist/src/fields/TiptapEditor/extensions/AICommand/AIMenuList.js +123 -0
  11. package/dist/src/fields/TiptapEditor/extensions/AICommand/AIMenuList.js.map +1 -0
  12. package/dist/src/fields/TiptapEditor/extensions/AICommand/CommandButton.d.ts +10 -0
  13. package/dist/src/fields/TiptapEditor/extensions/AICommand/CommandButton.d.ts.map +1 -0
  14. package/dist/src/fields/TiptapEditor/extensions/AICommand/CommandButton.js +29 -0
  15. package/dist/src/fields/TiptapEditor/extensions/AICommand/CommandButton.js.map +1 -0
  16. package/dist/src/fields/TiptapEditor/extensions/AICommand/MenuList.d.ts +5 -0
  17. package/dist/src/fields/TiptapEditor/extensions/AICommand/MenuList.d.ts.map +1 -0
  18. package/dist/src/fields/TiptapEditor/extensions/AICommand/MenuList.js +123 -0
  19. package/dist/src/fields/TiptapEditor/extensions/AICommand/MenuList.js.map +1 -0
  20. package/dist/src/fields/TiptapEditor/extensions/AICommand/groups.d.ts +4 -0
  21. package/dist/src/fields/TiptapEditor/extensions/AICommand/groups.d.ts.map +1 -0
  22. package/dist/src/fields/TiptapEditor/extensions/AICommand/groups.js +260 -0
  23. package/dist/src/fields/TiptapEditor/extensions/AICommand/groups.js.map +1 -0
  24. package/dist/src/fields/TiptapEditor/extensions/AICommand/index.d.ts +2 -0
  25. package/dist/src/fields/TiptapEditor/extensions/AICommand/index.d.ts.map +1 -0
  26. package/dist/src/fields/TiptapEditor/extensions/AICommand/index.js +3 -0
  27. package/dist/src/fields/TiptapEditor/extensions/AICommand/index.js.map +1 -0
  28. package/dist/src/fields/TiptapEditor/extensions/AICommand/types.d.ts +22 -0
  29. package/dist/src/fields/TiptapEditor/extensions/AICommand/types.d.ts.map +1 -0
  30. package/dist/src/fields/TiptapEditor/extensions/AICommand/types.js +3 -0
  31. package/dist/src/fields/TiptapEditor/extensions/AICommand/types.js.map +1 -0
  32. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.d.ts.map +1 -1
  33. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.js +3 -2
  34. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.js.map +1 -1
  35. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.d.ts +2 -2
  36. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.d.ts.map +1 -1
  37. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.js +38 -21
  38. package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.js.map +1 -1
  39. package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts +3 -1
  40. package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts.map +1 -1
  41. package/dist/src/fields/TiptapEditor/extensions/extension-kit.js +22 -15
  42. package/dist/src/fields/TiptapEditor/extensions/extension-kit.js.map +1 -1
  43. package/dist/src/fields/TiptapEditor/extensions/index.d.ts +1 -0
  44. package/dist/src/fields/TiptapEditor/extensions/index.d.ts.map +1 -1
  45. package/dist/src/fields/TiptapEditor/extensions/index.js +1 -0
  46. package/dist/src/fields/TiptapEditor/extensions/index.js.map +1 -1
  47. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts +4 -1
  48. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts.map +1 -1
  49. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js +3 -2
  50. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js.map +1 -1
  51. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-draft-selector-commands.d.ts +8 -0
  52. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-draft-selector-commands.d.ts.map +1 -0
  53. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-draft-selector-commands.js +94 -0
  54. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-draft-selector-commands.js.map +1 -0
  55. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.d.ts +7 -0
  56. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.d.ts.map +1 -0
  57. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.js +193 -0
  58. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.js.map +1 -0
  59. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/index.d.ts +2 -0
  60. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/index.d.ts.map +1 -0
  61. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/index.js +3 -0
  62. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/index.js.map +1 -0
  63. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.d.ts.map +1 -1
  64. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js +29 -17
  65. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js.map +1 -1
  66. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.d.ts +3 -1
  67. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.d.ts.map +1 -1
  68. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js +4 -3
  69. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js.map +1 -1
  70. package/dist/src/fields/TiptapEditor/lib/extract.d.ts.map +1 -1
  71. package/dist/src/fields/TiptapEditor/lib/extract.js +6 -5
  72. package/dist/src/fields/TiptapEditor/lib/extract.js.map +1 -1
  73. package/dist/src/fields/TiptapEditor/types.d.js +3 -0
  74. package/dist/src/fields/TiptapEditor/types.d.js.map +1 -0
  75. package/dist/src/styles.css +0 -4
  76. package/dist/tsconfig.tsbuildinfo +1 -1
  77. package/package.json +2 -1
@@ -0,0 +1,123 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useCallback, useEffect, useRef, useState } from "react";
3
+ import { DropdownButton } from "../../features/ui/Dropdown/Dropdown.js";
4
+ import { Surface } from "../../features/ui/Surface.js";
5
+ import { Icon } from "../../features/ui/Icon.js";
6
+ export const MenuList = /*#__PURE__*/ React.forwardRef((props, ref)=>{
7
+ const scrollContainer = useRef(null);
8
+ const activeItem = useRef(null);
9
+ const [selectedGroupIndex, setSelectedGroupIndex] = useState(0);
10
+ const [selectedCommandIndex, setSelectedCommandIndex] = useState(0);
11
+ // Anytime the groups change, i.e. the user types to narrow it down, we want to
12
+ // reset the current selection to the first menu item
13
+ useEffect(()=>{
14
+ setSelectedGroupIndex(0);
15
+ setSelectedCommandIndex(0);
16
+ }, [
17
+ props.items
18
+ ]);
19
+ const selectItem = useCallback((groupIndex, commandIndex)=>{
20
+ const command = props.items[groupIndex].commands[commandIndex];
21
+ props.command(command);
22
+ }, [
23
+ props
24
+ ]);
25
+ React.useImperativeHandle(ref, ()=>({
26
+ onKeyDown: ({ event })=>{
27
+ if (event.key === "ArrowDown") {
28
+ if (!props.items.length) {
29
+ return false;
30
+ }
31
+ const commands = props.items[selectedGroupIndex].commands;
32
+ let newCommandIndex = selectedCommandIndex + 1;
33
+ let newGroupIndex = selectedGroupIndex;
34
+ if (commands.length - 1 < newCommandIndex) {
35
+ newCommandIndex = 0;
36
+ newGroupIndex = selectedGroupIndex + 1;
37
+ }
38
+ if (props.items.length - 1 < newGroupIndex) {
39
+ newGroupIndex = 0;
40
+ }
41
+ setSelectedCommandIndex(newCommandIndex);
42
+ setSelectedGroupIndex(newGroupIndex);
43
+ return true;
44
+ }
45
+ if (event.key === "ArrowUp") {
46
+ if (!props.items.length) {
47
+ return false;
48
+ }
49
+ let newCommandIndex = selectedCommandIndex - 1;
50
+ let newGroupIndex = selectedGroupIndex;
51
+ if (newCommandIndex < 0) {
52
+ newGroupIndex = selectedGroupIndex - 1;
53
+ newCommandIndex = props.items[newGroupIndex]?.commands.length - 1 || 0;
54
+ }
55
+ if (newGroupIndex < 0) {
56
+ newGroupIndex = props.items.length - 1;
57
+ newCommandIndex = props.items[newGroupIndex].commands.length - 1;
58
+ }
59
+ setSelectedCommandIndex(newCommandIndex);
60
+ setSelectedGroupIndex(newGroupIndex);
61
+ return true;
62
+ }
63
+ if (event.key === "Enter") {
64
+ if (!props.items.length || selectedGroupIndex === -1 || selectedCommandIndex === -1) {
65
+ return false;
66
+ }
67
+ selectItem(selectedGroupIndex, selectedCommandIndex);
68
+ return true;
69
+ }
70
+ return false;
71
+ }
72
+ }));
73
+ useEffect(()=>{
74
+ if (activeItem.current && scrollContainer.current) {
75
+ const offsetTop = activeItem.current.offsetTop;
76
+ const offsetHeight = activeItem.current.offsetHeight;
77
+ scrollContainer.current.scrollTop = offsetTop - offsetHeight;
78
+ }
79
+ }, [
80
+ selectedCommandIndex,
81
+ selectedGroupIndex
82
+ ]);
83
+ const createCommandClickHandler = useCallback((groupIndex, commandIndex)=>{
84
+ return ()=>{
85
+ selectItem(groupIndex, commandIndex);
86
+ };
87
+ }, [
88
+ selectItem
89
+ ]);
90
+ if (!props.items.length) {
91
+ return null;
92
+ }
93
+ return /*#__PURE__*/ _jsx(Surface, {
94
+ ref: scrollContainer,
95
+ className: "text-black max-h-[min(80vh,24rem)] overflow-auto flex-wrap mb-8 p-2",
96
+ children: /*#__PURE__*/ _jsx("div", {
97
+ className: "grid grid-cols-1 gap-0.5",
98
+ children: props.items.map((group, groupIndex)=>/*#__PURE__*/ _jsxs(React.Fragment, {
99
+ children: [
100
+ /*#__PURE__*/ _jsx("div", {
101
+ className: "text-neutral-500 text-[0.65rem] col-[1/-1] mx-2 mt-4 font-semibold tracking-wider select-none uppercase first:mt-0.5",
102
+ children: group.title
103
+ }, `${group.title}`),
104
+ group.commands.map((command, commandIndex)=>/*#__PURE__*/ _jsxs(DropdownButton, {
105
+ isActive: selectedGroupIndex === groupIndex && selectedCommandIndex === commandIndex,
106
+ onClick: createCommandClickHandler(groupIndex, commandIndex),
107
+ children: [
108
+ /*#__PURE__*/ _jsx(Icon, {
109
+ icon: command.icon,
110
+ className: "mr-1"
111
+ }),
112
+ command.label
113
+ ]
114
+ }, `${command.label}`))
115
+ ]
116
+ }, `${group.title}-wrapper`))
117
+ })
118
+ });
119
+ });
120
+ MenuList.displayName = "MenuList";
121
+ export default MenuList;
122
+
123
+ //# sourceMappingURL=MenuList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/AICommand/MenuList.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { DropdownButton } from \"../../features/ui/Dropdown/Dropdown.js\";\nimport { Surface } from \"../../features/ui/Surface.js\";\nimport { Command, MenuListProps } from \"./types.js\";\n\nimport { Icon } from \"../../features/ui/Icon.js\";\n\nexport const MenuList = React.forwardRef((props: MenuListProps, ref) => {\n const scrollContainer = useRef<HTMLDivElement>(null);\n const activeItem = useRef<HTMLButtonElement>(null);\n const [selectedGroupIndex, setSelectedGroupIndex] = useState(0);\n const [selectedCommandIndex, setSelectedCommandIndex] = useState(0);\n\n // Anytime the groups change, i.e. the user types to narrow it down, we want to\n // reset the current selection to the first menu item\n useEffect(() => {\n setSelectedGroupIndex(0);\n setSelectedCommandIndex(0);\n }, [props.items]);\n\n const selectItem = useCallback(\n (groupIndex: number, commandIndex: number) => {\n const command = props.items[groupIndex].commands[commandIndex];\n props.command(command);\n },\n [props]\n );\n\n React.useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }: { event: React.KeyboardEvent }) => {\n if (event.key === \"ArrowDown\") {\n if (!props.items.length) {\n return false;\n }\n\n const commands = props.items[selectedGroupIndex].commands;\n\n let newCommandIndex = selectedCommandIndex + 1;\n let newGroupIndex = selectedGroupIndex;\n\n if (commands.length - 1 < newCommandIndex) {\n newCommandIndex = 0;\n newGroupIndex = selectedGroupIndex + 1;\n }\n\n if (props.items.length - 1 < newGroupIndex) {\n newGroupIndex = 0;\n }\n\n setSelectedCommandIndex(newCommandIndex);\n setSelectedGroupIndex(newGroupIndex);\n\n return true;\n }\n\n if (event.key === \"ArrowUp\") {\n if (!props.items.length) {\n return false;\n }\n\n let newCommandIndex = selectedCommandIndex - 1;\n let newGroupIndex = selectedGroupIndex;\n\n if (newCommandIndex < 0) {\n newGroupIndex = selectedGroupIndex - 1;\n newCommandIndex =\n props.items[newGroupIndex]?.commands.length - 1 || 0;\n }\n\n if (newGroupIndex < 0) {\n newGroupIndex = props.items.length - 1;\n newCommandIndex = props.items[newGroupIndex].commands.length - 1;\n }\n\n setSelectedCommandIndex(newCommandIndex);\n setSelectedGroupIndex(newGroupIndex);\n\n return true;\n }\n\n if (event.key === \"Enter\") {\n if (\n !props.items.length ||\n selectedGroupIndex === -1 ||\n selectedCommandIndex === -1\n ) {\n return false;\n }\n\n selectItem(selectedGroupIndex, selectedCommandIndex);\n\n return true;\n }\n\n return false;\n },\n }));\n\n useEffect(() => {\n if (activeItem.current && scrollContainer.current) {\n const offsetTop = activeItem.current.offsetTop;\n const offsetHeight = activeItem.current.offsetHeight;\n\n scrollContainer.current.scrollTop = offsetTop - offsetHeight;\n }\n }, [selectedCommandIndex, selectedGroupIndex]);\n\n const createCommandClickHandler = useCallback(\n (groupIndex: number, commandIndex: number) => {\n return () => {\n selectItem(groupIndex, commandIndex);\n };\n },\n [selectItem]\n );\n\n if (!props.items.length) {\n return null;\n }\n\n return (\n <Surface\n ref={scrollContainer}\n className=\"text-black max-h-[min(80vh,24rem)] overflow-auto flex-wrap mb-8 p-2\"\n >\n <div className=\"grid grid-cols-1 gap-0.5\">\n {props.items.map((group, groupIndex: number) => (\n <React.Fragment key={`${group.title}-wrapper`}>\n <div\n className=\"text-neutral-500 text-[0.65rem] col-[1/-1] mx-2 mt-4 font-semibold tracking-wider select-none uppercase first:mt-0.5\"\n key={`${group.title}`}\n >\n {group.title}\n </div>\n {group.commands.map((command: Command, commandIndex: number) => (\n <DropdownButton\n key={`${command.label}`}\n isActive={\n selectedGroupIndex === groupIndex &&\n selectedCommandIndex === commandIndex\n }\n onClick={createCommandClickHandler(groupIndex, commandIndex)}\n >\n <Icon icon={command.icon} className=\"mr-1\" />\n {command.label}\n </DropdownButton>\n ))}\n </React.Fragment>\n ))}\n </div>\n </Surface>\n );\n});\n\nMenuList.displayName = \"MenuList\";\n\nexport default MenuList;\n"],"names":["React","useCallback","useEffect","useRef","useState","DropdownButton","Surface","Icon","MenuList","forwardRef","props","ref","scrollContainer","activeItem","selectedGroupIndex","setSelectedGroupIndex","selectedCommandIndex","setSelectedCommandIndex","items","selectItem","groupIndex","commandIndex","command","commands","useImperativeHandle","onKeyDown","event","key","length","newCommandIndex","newGroupIndex","current","offsetTop","offsetHeight","scrollTop","createCommandClickHandler","className","div","map","group","Fragment","title","isActive","onClick","icon","label","displayName"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Group } from "./types.js";
2
+ export declare const GROUPS: Group[];
3
+ export default GROUPS;
4
+ //# sourceMappingURL=groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/AICommand/groups.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,eAAO,MAAM,MAAM,EAAE,KAAK,EA8PzB,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,260 @@
1
+ import { Book, Columns2, Heading1, Heading2, Heading3, Image, Instagram, Link, List, ListOrdered, Minus, Quote, SquareCode, Table, Twitter, Youtube } from "lucide-react";
2
+ export const GROUPS = [
3
+ {
4
+ name: "format",
5
+ title: "Format",
6
+ commands: [
7
+ {
8
+ name: "heading1",
9
+ label: "Heading 1",
10
+ icon: Heading1,
11
+ description: "High priority section title",
12
+ aliases: [
13
+ "h1"
14
+ ],
15
+ action: (editor)=>{
16
+ editor.chain().focus().setHeading({
17
+ level: 1
18
+ }).run();
19
+ }
20
+ },
21
+ {
22
+ name: "heading2",
23
+ label: "Heading 2",
24
+ icon: Heading2,
25
+ description: "Medium priority section title",
26
+ aliases: [
27
+ "h2"
28
+ ],
29
+ action: (editor)=>{
30
+ editor.chain().focus().setHeading({
31
+ level: 2
32
+ }).run();
33
+ }
34
+ },
35
+ {
36
+ name: "heading3",
37
+ label: "Heading 3",
38
+ icon: Heading3,
39
+ description: "Low priority section title",
40
+ aliases: [
41
+ "h3"
42
+ ],
43
+ action: (editor)=>{
44
+ editor.chain().focus().setHeading({
45
+ level: 3
46
+ }).run();
47
+ }
48
+ },
49
+ {
50
+ name: "bulletList",
51
+ label: "Bullet List",
52
+ icon: List,
53
+ description: "Unordered list of items",
54
+ aliases: [
55
+ "ul"
56
+ ],
57
+ action: (editor)=>{
58
+ editor.chain().focus().toggleBulletList().run();
59
+ }
60
+ },
61
+ {
62
+ name: "numberedList",
63
+ label: "Numbered List",
64
+ icon: ListOrdered,
65
+ description: "Ordered list of items",
66
+ aliases: [
67
+ "ol"
68
+ ],
69
+ action: (editor)=>{
70
+ editor.chain().focus().toggleOrderedList().run();
71
+ }
72
+ },
73
+ // {
74
+ // name: 'taskList',
75
+ // label: 'Task List',
76
+ // icon: ListTodo,
77
+ // description: 'Task list with todo items',
78
+ // aliases: ['todo'],
79
+ // action: (editor) => {
80
+ // editor.chain().focus().toggleTaskList().run()
81
+ // },
82
+ // },
83
+ {
84
+ name: "blockquote",
85
+ label: "Blockquote",
86
+ icon: Quote,
87
+ description: "Element for quoting",
88
+ action: (editor)=>{
89
+ editor.chain().focus().setBlockquote().run();
90
+ }
91
+ },
92
+ {
93
+ name: "codeBlock",
94
+ label: "Code Block",
95
+ icon: SquareCode,
96
+ description: "Code block with syntax highlighting",
97
+ shouldBeHidden: (editor)=>editor.isActive("columns"),
98
+ action: (editor)=>{
99
+ editor.chain().focus().setCodeBlock().run();
100
+ }
101
+ }
102
+ ]
103
+ },
104
+ {
105
+ name: "insert",
106
+ title: "Insert",
107
+ commands: [
108
+ {
109
+ name: "table",
110
+ label: "Table",
111
+ icon: Table,
112
+ description: "Insert a table",
113
+ shouldBeHidden: (editor)=>editor.isActive("columns"),
114
+ action: (editor)=>{
115
+ editor.chain().focus().insertTable({
116
+ rows: 3,
117
+ cols: 3,
118
+ withHeaderRow: false
119
+ }).run();
120
+ }
121
+ },
122
+ {
123
+ name: "image",
124
+ label: "Image",
125
+ icon: Image,
126
+ description: "Insert an image",
127
+ aliases: [
128
+ "img"
129
+ ],
130
+ action: (editor)=>{
131
+ editor.chain().focus().setImageUpload().run();
132
+ }
133
+ },
134
+ {
135
+ name: "columns",
136
+ label: "Columns",
137
+ icon: Columns2,
138
+ description: "Add two column content",
139
+ aliases: [
140
+ "cols"
141
+ ],
142
+ shouldBeHidden: (editor)=>editor.isActive("columns"),
143
+ action: (editor)=>{
144
+ editor.chain().focus().setColumns().focus(editor.state.selection.head - 1).run();
145
+ }
146
+ },
147
+ {
148
+ name: "horizontalRule",
149
+ label: "Horizontal Rule",
150
+ icon: Minus,
151
+ description: "Insert a horizontal divider",
152
+ aliases: [
153
+ "hr"
154
+ ],
155
+ action: (editor)=>{
156
+ editor.chain().focus().setHorizontalRule().run();
157
+ }
158
+ },
159
+ {
160
+ name: "toc",
161
+ label: "Table of Contents",
162
+ icon: Book,
163
+ aliases: [
164
+ "outline"
165
+ ],
166
+ description: "Insert a table of contents",
167
+ shouldBeHidden: (editor)=>editor.isActive("columns"),
168
+ action: (editor)=>{
169
+ editor.chain().focus().insertTableOfContents().run();
170
+ }
171
+ }
172
+ ]
173
+ },
174
+ {
175
+ name: "embed",
176
+ title: "Embed",
177
+ commands: [
178
+ {
179
+ name: "iframe",
180
+ label: "IFrame",
181
+ icon: Link,
182
+ aliases: [
183
+ "iframe"
184
+ ],
185
+ description: "Insert a iframe",
186
+ shouldBeHidden: (editor)=>editor.isActive("iframe"),
187
+ action: (editor)=>{
188
+ editor.chain().focus().setHtml("<div>Embed your content here</div>").run();
189
+ }
190
+ },
191
+ {
192
+ name: "twitter",
193
+ label: "Twitter Embed",
194
+ icon: Twitter,
195
+ aliases: [
196
+ "x",
197
+ "twitter"
198
+ ],
199
+ description: "Insert a Twitter embed",
200
+ shouldBeHidden: (editor)=>editor.isActive("twitter"),
201
+ action: (editor)=>{
202
+ editor.chain().focus().insertTwitter().run();
203
+ }
204
+ },
205
+ // {
206
+ // name: 'facebook',
207
+ // label: 'Facebook Embed',
208
+ // icon: Facebook,
209
+ // aliases: ['meta', 'facebook'],
210
+ // description: 'Insert a Facebook embed',
211
+ // shouldBeHidden: (editor) => editor.isActive('facebook'),
212
+ // action: (editor) => {
213
+ // editor.chain().focus().insertFacebook().run()
214
+ // },
215
+ // },
216
+ {
217
+ name: "instagram",
218
+ label: "Instagram Embed",
219
+ icon: Instagram,
220
+ aliases: [
221
+ "instagram"
222
+ ],
223
+ description: "Insert a Instagram embed",
224
+ shouldBeHidden: (editor)=>editor.isActive("instagram"),
225
+ action: (editor)=>{
226
+ editor.chain().focus().insertInstagram().run();
227
+ }
228
+ },
229
+ {
230
+ name: "youtube",
231
+ label: "Youtube Embed",
232
+ icon: Youtube,
233
+ aliases: [
234
+ "youtube"
235
+ ],
236
+ description: "Insert a Youtube embed",
237
+ shouldBeHidden: (editor)=>editor.isActive("youtube"),
238
+ action: (editor)=>{
239
+ editor.chain().focus().insertYoutube().run();
240
+ }
241
+ },
242
+ {
243
+ name: "insideLinks",
244
+ label: "TRT Links",
245
+ icon: Youtube,
246
+ aliases: [
247
+ "insideLinks"
248
+ ],
249
+ description: "Link internal content such as articles, videos, shows etc.",
250
+ shouldBeHidden: (editor)=>editor.isActive("insideLinks"),
251
+ action: (editor)=>{
252
+ editor.chain().focus().insertInsideLinks({}).run();
253
+ }
254
+ }
255
+ ]
256
+ }
257
+ ];
258
+ export default GROUPS;
259
+
260
+ //# sourceMappingURL=groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/AICommand/groups.ts"],"sourcesContent":["import {\n Book,\n Columns2,\n Facebook,\n Heading1,\n Heading2,\n Heading3,\n Image,\n Instagram,\n Link,\n Linkedin,\n List,\n ListOrdered,\n ListTodo,\n Minus,\n Music,\n Quote,\n SquareCode,\n Table,\n Twitch,\n Twitter,\n Youtube,\n} from \"lucide-react\";\nimport { Group } from \"./types.js\";\n\nexport const GROUPS: Group[] = [\n {\n name: \"format\",\n title: \"Format\",\n commands: [\n {\n name: \"heading1\",\n label: \"Heading 1\",\n icon: Heading1,\n description: \"High priority section title\",\n aliases: [\"h1\"],\n action: (editor) => {\n editor.chain().focus().setHeading({ level: 1 }).run();\n },\n },\n {\n name: \"heading2\",\n label: \"Heading 2\",\n icon: Heading2,\n description: \"Medium priority section title\",\n aliases: [\"h2\"],\n action: (editor) => {\n editor.chain().focus().setHeading({ level: 2 }).run();\n },\n },\n {\n name: \"heading3\",\n label: \"Heading 3\",\n icon: Heading3,\n description: \"Low priority section title\",\n aliases: [\"h3\"],\n action: (editor) => {\n editor.chain().focus().setHeading({ level: 3 }).run();\n },\n },\n {\n name: \"bulletList\",\n label: \"Bullet List\",\n icon: List,\n description: \"Unordered list of items\",\n aliases: [\"ul\"],\n action: (editor) => {\n editor.chain().focus().toggleBulletList().run();\n },\n },\n {\n name: \"numberedList\",\n label: \"Numbered List\",\n icon: ListOrdered,\n description: \"Ordered list of items\",\n aliases: [\"ol\"],\n action: (editor) => {\n editor.chain().focus().toggleOrderedList().run();\n },\n },\n // {\n // name: 'taskList',\n // label: 'Task List',\n // icon: ListTodo,\n // description: 'Task list with todo items',\n // aliases: ['todo'],\n // action: (editor) => {\n // editor.chain().focus().toggleTaskList().run()\n // },\n // },\n {\n name: \"blockquote\",\n label: \"Blockquote\",\n icon: Quote,\n description: \"Element for quoting\",\n action: (editor) => {\n editor.chain().focus().setBlockquote().run();\n },\n },\n {\n name: \"codeBlock\",\n label: \"Code Block\",\n icon: SquareCode,\n description: \"Code block with syntax highlighting\",\n shouldBeHidden: (editor) => editor.isActive(\"columns\"),\n action: (editor) => {\n editor.chain().focus().setCodeBlock().run();\n },\n },\n ],\n },\n {\n name: \"insert\",\n title: \"Insert\",\n commands: [\n {\n name: \"table\",\n label: \"Table\",\n icon: Table,\n description: \"Insert a table\",\n shouldBeHidden: (editor) => editor.isActive(\"columns\"),\n action: (editor) => {\n editor\n .chain()\n .focus()\n .insertTable({ rows: 3, cols: 3, withHeaderRow: false })\n .run();\n },\n },\n {\n name: \"image\",\n label: \"Image\",\n icon: Image,\n description: \"Insert an image\",\n aliases: [\"img\"],\n action: (editor) => {\n editor.chain().focus().setImageUpload().run();\n },\n },\n {\n name: \"columns\",\n label: \"Columns\",\n icon: Columns2,\n description: \"Add two column content\",\n aliases: [\"cols\"],\n shouldBeHidden: (editor) => editor.isActive(\"columns\"),\n action: (editor) => {\n editor\n .chain()\n .focus()\n .setColumns()\n .focus(editor.state.selection.head - 1)\n .run();\n },\n },\n {\n name: \"horizontalRule\",\n label: \"Horizontal Rule\",\n icon: Minus,\n description: \"Insert a horizontal divider\",\n aliases: [\"hr\"],\n action: (editor) => {\n editor.chain().focus().setHorizontalRule().run();\n },\n },\n {\n name: \"toc\",\n label: \"Table of Contents\",\n icon: Book,\n aliases: [\"outline\"],\n description: \"Insert a table of contents\",\n shouldBeHidden: (editor) => editor.isActive(\"columns\"),\n action: (editor) => {\n editor.chain().focus().insertTableOfContents().run();\n },\n },\n ],\n },\n {\n name: \"embed\",\n title: \"Embed\",\n commands: [\n {\n name: \"iframe\",\n label: \"IFrame\",\n icon: Link,\n aliases: [\"iframe\"],\n description: \"Insert a iframe\",\n shouldBeHidden: (editor) => editor.isActive(\"iframe\"),\n action: (editor) => {\n editor\n .chain()\n .focus()\n .setHtml(\"<div>Embed your content here</div>\")\n .run();\n },\n },\n {\n name: \"twitter\",\n label: \"Twitter Embed\",\n icon: Twitter,\n aliases: [\"x\", \"twitter\"],\n description: \"Insert a Twitter embed\",\n shouldBeHidden: (editor) => editor.isActive(\"twitter\"),\n action: (editor) => {\n editor.chain().focus().insertTwitter().run();\n },\n },\n // {\n // name: 'facebook',\n // label: 'Facebook Embed',\n // icon: Facebook,\n // aliases: ['meta', 'facebook'],\n // description: 'Insert a Facebook embed',\n // shouldBeHidden: (editor) => editor.isActive('facebook'),\n // action: (editor) => {\n // editor.chain().focus().insertFacebook().run()\n // },\n // },\n {\n name: \"instagram\",\n label: \"Instagram Embed\",\n icon: Instagram,\n aliases: [\"instagram\"],\n description: \"Insert a Instagram embed\",\n shouldBeHidden: (editor) => editor.isActive(\"instagram\"),\n action: (editor) => {\n editor.chain().focus().insertInstagram().run();\n },\n },\n {\n name: \"youtube\",\n label: \"Youtube Embed\",\n icon: Youtube,\n aliases: [\"youtube\"],\n description: \"Insert a Youtube embed\",\n shouldBeHidden: (editor) => editor.isActive(\"youtube\"),\n action: (editor) => {\n editor.chain().focus().insertYoutube().run();\n },\n },\n {\n name: \"insideLinks\",\n label: \"TRT Links\",\n icon: Youtube,\n aliases: [\"insideLinks\"],\n description:\n \"Link internal content such as articles, videos, shows etc.\",\n shouldBeHidden: (editor) => editor.isActive(\"insideLinks\"),\n action: (editor) => {\n editor.chain().focus().insertInsideLinks({}).run();\n },\n },\n // {\n // name: 'linkedin',\n // label: 'Linkedin Embed',\n // icon: Linkedin,\n // aliases: ['linkedin'],\n // description: 'Insert a Linkedin embed',\n // shouldBeHidden: (editor) => editor.isActive('linkedin'),\n // action: (editor) => {\n\n // editor.chain().focus().insertLinkedin().run()\n // },\n // },\n\n // {\n // name: 'tiktok',\n // label: 'Tiktok Embed',\n // icon: Music,\n // aliases: ['tiktok'],\n // description: 'Insert a Tiktok embed',\n // shouldBeHidden: (editor) => editor.isActive('tiktok'),\n // action: (editor) => {\n // editor.chain().focus().insertTiktok().run()\n // },\n // },\n ],\n },\n];\n\nexport default GROUPS;\n"],"names":["Book","Columns2","Heading1","Heading2","Heading3","Image","Instagram","Link","List","ListOrdered","Minus","Quote","SquareCode","Table","Twitter","Youtube","GROUPS","name","title","commands","label","icon","description","aliases","action","editor","chain","focus","setHeading","level","run","toggleBulletList","toggleOrderedList","setBlockquote","shouldBeHidden","isActive","setCodeBlock","insertTable","rows","cols","withHeaderRow","setImageUpload","setColumns","state","selection","head","setHorizontalRule","insertTableOfContents","setHtml","insertTwitter","insertInstagram","insertYoutube","insertInsideLinks"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./AICommand.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/AICommand/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./AICommand.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/AICommand/index.ts"],"sourcesContent":["export * from \"./AICommand.js\";\n"],"names":[],"mappings":"AAAA,cAAc,iBAAiB"}
@@ -0,0 +1,22 @@
1
+ import { Editor } from "@tiptap/core";
2
+ import { LucideIcon } from "lucide-react";
3
+ export interface Group {
4
+ name: string;
5
+ title: string;
6
+ commands: Command[];
7
+ }
8
+ export interface Command {
9
+ name: string;
10
+ label: string;
11
+ description: string;
12
+ aliases?: string[];
13
+ icon: LucideIcon;
14
+ action: (editor: Editor) => void;
15
+ shouldBeHidden?: (editor: Editor) => boolean;
16
+ }
17
+ export interface AIMenuListProps {
18
+ editor: Editor;
19
+ items: Group[];
20
+ command: (command: Command) => void;
21
+ }
22
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/AICommand/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/AICommand/types.ts"],"sourcesContent":["import { Editor } from \"@tiptap/core\";\nimport { LucideIcon } from \"lucide-react\";\n\nexport interface Group {\n name: string;\n title: string;\n commands: Command[];\n}\n\nexport interface Command {\n name: string;\n label: string;\n description: string;\n aliases?: string[];\n icon: LucideIcon;\n action: (editor: Editor) => void;\n shouldBeHidden?: (editor: Editor) => boolean;\n}\n\nexport interface AIMenuListProps {\n editor: Editor;\n items: Group[];\n command: (command: Command) => void;\n}\n"],"names":[],"mappings":"AAmBA,WAIC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageUpload.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAyB,MAAM,eAAe,CAAC;AAG5D,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,WAAW,EAAE;YACX,cAAc,EAAE,MAAM,UAAU,CAAC;SAClC,CAAC;KACH;CACF;AAED,eAAO,MAAM,WAAW,gBAuCtB,CAAC;AAEH,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ImageUpload.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAyB,MAAM,eAAe,CAAC;AAI5D,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,WAAW,EAAE;YACX,cAAc,EAAE,MAAM,UAAU,CAAC;SAClC,CAAC;KACH;CACF;AAED,eAAO,MAAM,WAAW,gBAyCtB,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Node, ReactNodeViewRenderer } from "@tiptap/react";
2
- import { ImageUpload as ImageUploadComponent } from "./view/ImageUpload.js";
2
+ import { ImageUploadBuilder } from "./view/ImageUpload.js";
3
3
  export const ImageUpload = Node.create({
4
4
  name: "imageUpload",
5
5
  isolating: true,
@@ -29,7 +29,8 @@ export const ImageUpload = Node.create({
29
29
  };
30
30
  },
31
31
  addNodeView () {
32
- return ReactNodeViewRenderer(ImageUploadComponent);
32
+ const openAssetHQHandler = this.options.openAssetHQHandler;
33
+ return ReactNodeViewRenderer(ImageUploadBuilder(openAssetHQHandler));
33
34
  }
34
35
  });
35
36
  export default ImageUpload;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.ts"],"sourcesContent":["import { Node, ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { ImageUpload as ImageUploadComponent } from \"./view/ImageUpload.js\";\n\ndeclare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n imageUpload: {\n setImageUpload: () => ReturnType;\n };\n }\n}\n\nexport const ImageUpload = Node.create({\n name: \"imageUpload\",\n\n isolating: true,\n\n defining: true,\n\n group: \"block\",\n\n draggable: true,\n\n selectable: true,\n\n inline: false,\n\n parseHTML() {\n return [\n {\n tag: `div[data-type=\"${this.name}\"]`,\n },\n ];\n },\n\n renderHTML() {\n return [\"div\", { \"data-type\": this.name }];\n },\n\n addCommands() {\n return {\n setImageUpload:\n () =>\n ({ commands }) =>\n commands.insertContent(`<div data-type=\"${this.name}\"></div>`),\n };\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(ImageUploadComponent);\n },\n});\n\nexport default ImageUpload;\n"],"names":["Node","ReactNodeViewRenderer","ImageUpload","ImageUploadComponent","create","name","isolating","defining","group","draggable","selectable","inline","parseHTML","tag","renderHTML","addCommands","setImageUpload","commands","insertContent","addNodeView"],"mappings":"AAAA,SAASA,IAAI,EAAEC,qBAAqB,QAAQ,gBAAgB;AAC5D,SAASC,eAAeC,oBAAoB,QAAQ,wBAAwB;AAU5E,OAAO,MAAMD,cAAcF,KAAKI,MAAM,CAAC;IACrCC,MAAM;IAENC,WAAW;IAEXC,UAAU;IAEVC,OAAO;IAEPC,WAAW;IAEXC,YAAY;IAEZC,QAAQ;IAERC;QACE,OAAO;YACL;gBACEC,KAAK,CAAC,eAAe,EAAE,IAAI,CAACR,IAAI,CAAC,EAAE,CAAC;YACtC;SACD;IACH;IAEAS;QACE,OAAO;YAAC;YAAO;gBAAE,aAAa,IAAI,CAACT,IAAI;YAAC;SAAE;IAC5C;IAEAU;QACE,OAAO;YACLC,gBACE,IACA,CAAC,EAAEC,QAAQ,EAAE,GACXA,SAASC,aAAa,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAACb,IAAI,CAAC,QAAQ,CAAC;QACnE;IACF;IAEAc;QACE,OAAOlB,sBAAsBE;IAC/B;AACF,GAAG;AAEH,eAAeD,YAAY"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.ts"],"sourcesContent":["import { Node, ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { openAssetHQType } from \"../../types.js\";\nimport { ImageUploadBuilder } from \"./view/ImageUpload.js\";\n\ndeclare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n imageUpload: {\n setImageUpload: () => ReturnType;\n };\n }\n}\n\nexport const ImageUpload = Node.create({\n name: \"imageUpload\",\n\n isolating: true,\n\n defining: true,\n\n group: \"block\",\n\n draggable: true,\n\n selectable: true,\n\n inline: false,\n\n parseHTML() {\n return [\n {\n tag: `div[data-type=\"${this.name}\"]`,\n },\n ];\n },\n\n renderHTML() {\n return [\"div\", { \"data-type\": this.name }];\n },\n\n addCommands() {\n return {\n setImageUpload:\n () =>\n ({ commands }) =>\n commands.insertContent(`<div data-type=\"${this.name}\"></div>`),\n };\n },\n\n addNodeView() {\n const openAssetHQHandler = this.options\n .openAssetHQHandler as openAssetHQType;\n return ReactNodeViewRenderer(ImageUploadBuilder(openAssetHQHandler));\n },\n});\n\nexport default ImageUpload;\n"],"names":["Node","ReactNodeViewRenderer","ImageUploadBuilder","ImageUpload","create","name","isolating","defining","group","draggable","selectable","inline","parseHTML","tag","renderHTML","addCommands","setImageUpload","commands","insertContent","addNodeView","openAssetHQHandler","options"],"mappings":"AAAA,SAASA,IAAI,EAAEC,qBAAqB,QAAQ,gBAAgB;AAE5D,SAASC,kBAAkB,QAAQ,wBAAwB;AAU3D,OAAO,MAAMC,cAAcH,KAAKI,MAAM,CAAC;IACrCC,MAAM;IAENC,WAAW;IAEXC,UAAU;IAEVC,OAAO;IAEPC,WAAW;IAEXC,YAAY;IAEZC,QAAQ;IAERC;QACE,OAAO;YACL;gBACEC,KAAK,CAAC,eAAe,EAAE,IAAI,CAACR,IAAI,CAAC,EAAE,CAAC;YACtC;SACD;IACH;IAEAS;QACE,OAAO;YAAC;YAAO;gBAAE,aAAa,IAAI,CAACT,IAAI;YAAC;SAAE;IAC5C;IAEAU;QACE,OAAO;YACLC,gBACE,IACA,CAAC,EAAEC,QAAQ,EAAE,GACXA,SAASC,aAAa,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAACb,IAAI,CAAC,QAAQ,CAAC;QACnE;IACF;IAEAc;QACE,MAAMC,qBAAqB,IAAI,CAACC,OAAO,CACpCD,kBAAkB;QACrB,OAAOnB,sBAAsBC,mBAAmBkB;IAClD;AACF,GAAG;AAEH,eAAejB,YAAY"}
@@ -1,7 +1,7 @@
1
1
  import { Editor } from "@tiptap/react";
2
- export declare const ImageUpload: ({ getPos, editor, }: {
2
+ import { openAssetHQType } from "src/fields/TiptapEditor/types.js";
3
+ export declare const ImageUploadBuilder: (openAssetHQHandler: openAssetHQType) => ({ getPos, editor, }: {
3
4
  getPos: () => number;
4
5
  editor: Editor;
5
6
  }) => import("react").JSX.Element;
6
- export default ImageUpload;
7
7
  //# sourceMappingURL=ImageUpload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImageUpload.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAmB,MAAM,eAAe,CAAC;AAGxD,eAAO,MAAM,WAAW,wBAGrB;IACD,MAAM,EAAE,MAAM,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,gCAsCA,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ImageUpload.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAmB,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,eAAO,MAAM,kBAAkB,uBAAwB,eAAe,2BAIjE;IACD,MAAM,EAAE,MAAM,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,gCAiEF,CAAC"}
@@ -1,27 +1,44 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { NodeViewWrapper } from "@tiptap/react";
3
3
  import { useCallback } from "react";
4
- export const ImageUpload = ({ getPos, editor })=>{
5
- const onUpload = useCallback((url)=>{
6
- if (url) {
7
- editor.chain().setImageBlock({
8
- src: url
9
- }).deleteRange({
10
- from: getPos(),
11
- to: getPos()
12
- }).focus().run();
13
- }
14
- }, [
15
- getPos,
16
- editor
17
- ]);
18
- return /*#__PURE__*/ _jsx(NodeViewWrapper, {
19
- children: /*#__PURE__*/ _jsx("div", {
20
- className: "p-0 m-0",
21
- "data-drag-handle": true
22
- })
23
- });
4
+ export const ImageUploadBuilder = (openAssetHQHandler)=>{
5
+ const ImageUpload = ({ getPos, editor })=>{
6
+ const onUpload = useCallback((url)=>{
7
+ if (url) {
8
+ editor.chain().focus().setImageBlock({
9
+ src: url
10
+ }).deleteRange({
11
+ from: getPos(),
12
+ to: getPos()
13
+ }).focus().run();
14
+ }
15
+ }, [
16
+ getPos,
17
+ editor
18
+ ]);
19
+ return /*#__PURE__*/ _jsx(NodeViewWrapper, {
20
+ children: /*#__PURE__*/ _jsx("div", {
21
+ className: "p-0 m-0",
22
+ "data-drag-handle": true,
23
+ children: /*#__PURE__*/ _jsx("a", {
24
+ href: "#",
25
+ style: {
26
+ padding: 5,
27
+ borderRadius: 5,
28
+ backgroundColor: "blue",
29
+ color: "white",
30
+ cursor: "pointer"
31
+ },
32
+ onClick: (e)=>{
33
+ e.preventDefault();
34
+ openAssetHQHandler(onUpload);
35
+ },
36
+ children: "Upload Image"
37
+ })
38
+ })
39
+ });
40
+ };
41
+ return ImageUpload;
24
42
  };
25
- export default ImageUpload;
26
43
 
27
44
  //# sourceMappingURL=ImageUpload.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.tsx"],"sourcesContent":["import { Editor, NodeViewWrapper } from \"@tiptap/react\";\nimport { useCallback } from \"react\";\n\nexport const ImageUpload = ({\n getPos,\n editor,\n}: {\n getPos: () => number;\n editor: Editor;\n}) => {\n const onUpload = useCallback(\n (url: string) => {\n if (url) {\n editor\n .chain()\n .setImageBlock({ src: url })\n .deleteRange({ from: getPos(), to: getPos() })\n .focus()\n .run();\n }\n },\n [getPos, editor]\n );\n\n return (\n <NodeViewWrapper>\n <div className=\"p-0 m-0\" data-drag-handle>\n {/* <RenderFields\n fieldMap={[\n {\n name: 'thumbnail',\n type: 'upload',\n\n },\n ]}\n path=\"media\"\n readOnly={false}\n schemaPath=\"\"\n // fieldTypes={fieldTypes}\n // fields={sidebarFields}\n // permissions={permissions.fields}\n // readOnly={!hasSavePermission}\n /> */}\n {/* <ImageUploader onUpload={onUpload} /> */}\n </div>\n </NodeViewWrapper>\n );\n};\n\nexport default ImageUpload;\n"],"names":["NodeViewWrapper","useCallback","ImageUpload","getPos","editor","onUpload","url","chain","setImageBlock","src","deleteRange","from","to","focus","run","div","className","data-drag-handle"],"mappings":";AAAA,SAAiBA,eAAe,QAAQ,gBAAgB;AACxD,SAASC,WAAW,QAAQ,QAAQ;AAEpC,OAAO,MAAMC,cAAc,CAAC,EAC1BC,MAAM,EACNC,MAAM,EAIP;IACC,MAAMC,WAAWJ,YACf,CAACK;QACC,IAAIA,KAAK;YACPF,OACGG,KAAK,GACLC,aAAa,CAAC;gBAAEC,KAAKH;YAAI,GACzBI,WAAW,CAAC;gBAAEC,MAAMR;gBAAUS,IAAIT;YAAS,GAC3CU,KAAK,GACLC,GAAG;QACR;IACF,GACA;QAACX;QAAQC;KAAO;IAGlB,qBACE,KAACJ;kBACC,cAAA,KAACe;YAAIC,WAAU;YAAUC,kBAAgB;;;AAqB/C,EAAE;AAEF,eAAef,YAAY"}
1
+ {"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.tsx"],"sourcesContent":["import { Editor, NodeViewWrapper } from \"@tiptap/react\";\nimport { useCallback } from \"react\";\nimport { openAssetHQType } from \"src/fields/TiptapEditor/types.js\";\nexport const ImageUploadBuilder = (openAssetHQHandler: openAssetHQType) => {\n const ImageUpload = ({\n getPos,\n editor,\n }: {\n getPos: () => number;\n editor: Editor;\n }) => {\n const onUpload = useCallback(\n (url: string) => {\n if (url) {\n editor\n .chain()\n .focus()\n .setImageBlock({ src: url })\n .deleteRange({ from: getPos(), to: getPos() })\n .focus()\n .run();\n }\n },\n [getPos, editor]\n );\n\n return (\n <NodeViewWrapper>\n <div className=\"p-0 m-0\" data-drag-handle>\n {/* <RenderFields\n fieldMap={[\n {\n name: \"media\",\n type: \"upload\",\n cellComponentProps: {\n name: \"media\",\n schemaPath: \"media\",\n },\n fieldComponentProps: {},\n fieldIsPresentational: true,\n isFieldAffectingData: false,\n localized: false,\n },\n ]}\n path=\"media\"\n readOnly={false}\n schemaPath=\"\"\n // fieldTypes={fieldTypes}\n // fields={sidebarFields}\n // permissions={permissions.fields}\n // readOnly={!hasSavePermission}\n /> */}\n <a\n href=\"#\"\n style={{\n padding: 5,\n borderRadius: 5,\n backgroundColor: \"blue\",\n color: \"white\",\n cursor: \"pointer\",\n }}\n onClick={(e) => {\n e.preventDefault();\n openAssetHQHandler(onUpload);\n }}\n >\n Upload Image\n </a>\n {/* <ImageUploader onUpload={onUpload} /> */}\n </div>\n </NodeViewWrapper>\n );\n };\n\n return ImageUpload;\n};\n"],"names":["NodeViewWrapper","useCallback","ImageUploadBuilder","openAssetHQHandler","ImageUpload","getPos","editor","onUpload","url","chain","focus","setImageBlock","src","deleteRange","from","to","run","div","className","data-drag-handle","a","href","style","padding","borderRadius","backgroundColor","color","cursor","onClick","e","preventDefault"],"mappings":";AAAA,SAAiBA,eAAe,QAAQ,gBAAgB;AACxD,SAASC,WAAW,QAAQ,QAAQ;AAEpC,OAAO,MAAMC,qBAAqB,CAACC;IACjC,MAAMC,cAAc,CAAC,EACnBC,MAAM,EACNC,MAAM,EAIP;QACC,MAAMC,WAAWN,YACf,CAACO;YACC,IAAIA,KAAK;gBACPF,OACGG,KAAK,GACLC,KAAK,GACLC,aAAa,CAAC;oBAAEC,KAAKJ;gBAAI,GACzBK,WAAW,CAAC;oBAAEC,MAAMT;oBAAUU,IAAIV;gBAAS,GAC3CK,KAAK,GACLM,GAAG;YACR;QACF,GACA;YAACX;YAAQC;SAAO;QAGlB,qBACE,KAACN;sBACC,cAAA,KAACiB;gBAAIC,WAAU;gBAAUC,kBAAgB;0BAwBvC,cAAA,KAACC;oBACCC,MAAK;oBACLC,OAAO;wBACLC,SAAS;wBACTC,cAAc;wBACdC,iBAAiB;wBACjBC,OAAO;wBACPC,QAAQ;oBACV;oBACAC,SAAS,CAACC;wBACRA,EAAEC,cAAc;wBAChB3B,mBAAmBI;oBACrB;8BACD;;;;IAOT;IAEA,OAAOH;AACT,EAAE"}