payload-richtext-tiptap 0.0.159 → 0.0.161
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/Iframe/IframeEmbed.d.ts +2 -7
- package/dist/src/fields/TiptapEditor/extensions/Iframe/IframeEmbed.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Iframe/IframeEmbed.js +20 -7
- package/dist/src/fields/TiptapEditor/extensions/Iframe/IframeEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Iframe/iframe.d.ts +2 -2
- package/dist/src/fields/TiptapEditor/extensions/Iframe/iframe.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Iframe/iframe.js +42 -30
- package/dist/src/fields/TiptapEditor/extensions/Iframe/iframe.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Paragraph/Paragraph.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Paragraph/Paragraph.js +27 -4
- package/dist/src/fields/TiptapEditor/extensions/Paragraph/Paragraph.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/PasteHandler/PasteHandler.d.ts +4 -0
- package/dist/src/fields/TiptapEditor/extensions/PasteHandler/PasteHandler.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/PasteHandler/PasteHandler.js +242 -0
- package/dist/src/fields/TiptapEditor/extensions/PasteHandler/PasteHandler.js.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/PasteHandler/index.d.ts +2 -0
- package/dist/src/fields/TiptapEditor/extensions/PasteHandler/index.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/PasteHandler/index.js +3 -0
- package/dist/src/fields/TiptapEditor/extensions/PasteHandler/index.js.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/groups.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/groups.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/groups.js +108 -84
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/groups.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/Table.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/Table.js +2 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/Table.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts +3 -3
- package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/extension-kit.js +29 -22
- package/dist/src/fields/TiptapEditor/extensions/extension-kit.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/index.d.ts +50 -49
- package/dist/src/fields/TiptapEditor/extensions/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/index.js +50 -49
- package/dist/src/fields/TiptapEditor/extensions/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/IFrameServerside.d.ts +2 -2
- package/dist/src/fields/TiptapEditor/extensions/serverside/IFrameServerside.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/IFrameServerside.js +26 -8
- package/dist/src/fields/TiptapEditor/extensions/serverside/IFrameServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/TableServerside.d.ts +10 -0
- package/dist/src/fields/TiptapEditor/extensions/serverside/TableServerside.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/serverside/TableServerside.js +90 -0
- package/dist/src/fields/TiptapEditor/extensions/serverside/TableServerside.js.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/serverside/index.d.ts +15 -13
- package/dist/src/fields/TiptapEditor/extensions/serverside/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/index.js +15 -13
- package/dist/src/fields/TiptapEditor/extensions/serverside/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js +9 -0
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.d.ts +2 -2
- package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js +20 -18
- package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashCommandTriggerButton.d.ts +4 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashCommandTriggerButton.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashCommandTriggerButton.js +32 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashCommandTriggerButton.js.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashDropdownMenu.d.ts +4 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashDropdownMenu.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashDropdownMenu.js +70 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashDropdownMenu.js.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashMenuList.d.ts +10 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashMenuList.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashMenuList.js +249 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashMenuList.js.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SuggestionMenu.d.ts +15 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SuggestionMenu.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SuggestionMenu.js +291 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SuggestionMenu.js.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/index.d.ts +7 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/index.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/index.js +7 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/index.js.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/types.d.ts +28 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/types.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/types.js +3 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/types.js.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/utils.d.ts +6 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/utils.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/utils.js +222 -0
- package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/utils.js.map +1 -0
- package/dist/src/fields/TiptapEditor/lib/utils/updateImageUrl.d.ts +2 -0
- package/dist/src/fields/TiptapEditor/lib/utils/updateImageUrl.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/lib/utils/updateImageUrl.js +17 -0
- package/dist/src/fields/TiptapEditor/lib/utils/updateImageUrl.js.map +1 -0
- package/dist/src/mobile.css +1 -1
- package/dist/src/styles.css +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { SlashDropdownMenu } from './SlashDropdownMenu.js';
|
|
2
|
+
export { SlashCommandTriggerButton } from './SlashCommandTriggerButton.js';
|
|
3
|
+
export { SuggestionMenu } from './SuggestionMenu.js';
|
|
4
|
+
export { SlashMenuList } from './SlashMenuList.js';
|
|
5
|
+
export { getSlashMenuItems, filterSuggestionItems, getDefaultSlashMenuItems } from './utils.js';
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/ui/SlashCommand/index.ts"],"sourcesContent":["export { SlashDropdownMenu } from './SlashDropdownMenu.js'\r\nexport { SlashCommandTriggerButton } from './SlashCommandTriggerButton.js'\r\nexport { SuggestionMenu } from './SuggestionMenu.js'\r\nexport { SlashMenuList } from './SlashMenuList.js'\r\nexport type {\r\n SlashMenuItemType,\r\n SuggestionItem,\r\n SlashMenuConfig,\r\n SlashDropdownMenuProps,\r\n SlashCommandTriggerButtonProps,\r\n} from './types.js'\r\nexport { getSlashMenuItems, filterSuggestionItems, getDefaultSlashMenuItems } from './utils.js'\r\n"],"names":["SlashDropdownMenu","SlashCommandTriggerButton","SuggestionMenu","SlashMenuList","getSlashMenuItems","filterSuggestionItems","getDefaultSlashMenuItems"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,yBAAwB;AAC1D,SAASC,yBAAyB,QAAQ,iCAAgC;AAC1E,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,aAAa,QAAQ,qBAAoB;AAQlD,SAASC,iBAAiB,EAAEC,qBAAqB,EAAEC,wBAAwB,QAAQ,aAAY"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Editor } from '@tiptap/core';
|
|
2
|
+
import { LucideIcon } from 'lucide-react';
|
|
3
|
+
export type SlashMenuItemType = 'text' | 'heading_1' | 'heading_2' | 'heading_3' | 'bullet_list' | 'ordered_list' | 'quote' | 'code_block' | 'image' | 'horizontal_rule' | 'button' | 'custom_html' | 'social' | 'columns' | 'unsubscribe_footer' | 'twitter' | 'ai_writer';
|
|
4
|
+
export interface SuggestionItem {
|
|
5
|
+
title: string;
|
|
6
|
+
subtext: string;
|
|
7
|
+
aliases: string[];
|
|
8
|
+
badge: LucideIcon;
|
|
9
|
+
group: string;
|
|
10
|
+
onSelect: (props: {
|
|
11
|
+
editor: Editor;
|
|
12
|
+
}) => void;
|
|
13
|
+
}
|
|
14
|
+
export interface SlashMenuConfig {
|
|
15
|
+
enabledItems: SlashMenuItemType[];
|
|
16
|
+
customItems?: SuggestionItem[];
|
|
17
|
+
itemGroups?: Record<string, string>;
|
|
18
|
+
showGroups?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface SlashDropdownMenuProps {
|
|
21
|
+
editor: Editor | null;
|
|
22
|
+
config?: SlashMenuConfig;
|
|
23
|
+
}
|
|
24
|
+
export interface SlashCommandTriggerButtonProps {
|
|
25
|
+
editor: Editor | null;
|
|
26
|
+
config?: SlashMenuConfig;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/ui/SlashCommand/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAS,UAAU,EAAE,MAAM,cAAc,CAAA;AAEhD,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,WAAW,GACX,WAAW,GACX,WAAW,GACX,aAAa,GACb,cAAc,GACd,OAAO,GACP,YAAY,GACZ,OAAO,GACP,iBAAiB,GACjB,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,SAAS,GACT,oBAAoB,GACpB,SAAS,GACT,WAAW,CAAA;AAEf,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CAC9C;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,iBAAiB,EAAE,CAAA;IACjC,WAAW,CAAC,EAAE,cAAc,EAAE,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,CAAC,EAAE,eAAe,CAAA;CACzB;AAED,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,CAAC,EAAE,eAAe,CAAA;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/ui/SlashCommand/types.ts"],"sourcesContent":["import { Editor } from '@tiptap/core'\r\nimport { icons, LucideIcon } from 'lucide-react'\r\n\r\nexport type SlashMenuItemType =\r\n | 'text'\r\n | 'heading_1'\r\n | 'heading_2'\r\n | 'heading_3'\r\n | 'bullet_list'\r\n | 'ordered_list'\r\n | 'quote'\r\n | 'code_block'\r\n | 'image'\r\n | 'horizontal_rule'\r\n | 'button'\r\n | 'custom_html'\r\n | 'social'\r\n | 'columns'\r\n | 'unsubscribe_footer'\r\n | 'twitter'\r\n | 'ai_writer'\r\n\r\nexport interface SuggestionItem {\r\n title: string\r\n subtext: string\r\n aliases: string[]\r\n badge: LucideIcon\r\n group: string\r\n onSelect: (props: { editor: Editor }) => void\r\n}\r\n\r\nexport interface SlashMenuConfig {\r\n enabledItems: SlashMenuItemType[]\r\n customItems?: SuggestionItem[]\r\n itemGroups?: Record<string, string>\r\n showGroups?: boolean\r\n}\r\n\r\nexport interface SlashDropdownMenuProps {\r\n editor: Editor | null\r\n config?: SlashMenuConfig\r\n}\r\n\r\nexport interface SlashCommandTriggerButtonProps {\r\n editor: Editor | null\r\n config?: SlashMenuConfig\r\n}\r\n"],"names":[],"mappings":"AA2CA,WAGC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Editor } from '@tiptap/core';
|
|
2
|
+
import { SlashMenuConfig, SuggestionItem } from './types.js';
|
|
3
|
+
export declare const getDefaultSlashMenuItems: (editor: Editor) => SuggestionItem[];
|
|
4
|
+
export declare const filterSuggestionItems: (items: SuggestionItem[], query: string) => SuggestionItem[];
|
|
5
|
+
export declare const getSlashMenuItems: (editor: Editor, config: SlashMenuConfig) => SuggestionItem[];
|
|
6
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/ui/SlashCommand/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,eAAe,EAAqB,cAAc,EAAE,MAAM,YAAY,CAAA;AAmB/E,eAAO,MAAM,wBAAwB,WAAY,MAAM,KAAG,cAAc,EA0JvE,CAAA;AAED,eAAO,MAAM,qBAAqB,UAAW,cAAc,EAAE,SAAS,MAAM,KAAG,cAAc,EAY5F,CAAA;AAED,eAAO,MAAM,iBAAiB,WAAY,MAAM,UAAU,eAAe,KAAG,cAAc,EAmBzF,CAAA"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import i18next from 'i18next';
|
|
2
|
+
import { Facebook, Heading1, Heading2, Heading3, Image, Instagram, Link, List, Minus, Music, Quote, Twitter, Video, Youtube } from 'lucide-react';
|
|
3
|
+
export const getDefaultSlashMenuItems = (editor)=>{
|
|
4
|
+
return [
|
|
5
|
+
{
|
|
6
|
+
title: i18next.t('heading1') || 'Heading 1',
|
|
7
|
+
subtext: i18next.t('heading1Desc') || 'High priority section title',
|
|
8
|
+
aliases: [
|
|
9
|
+
'h1'
|
|
10
|
+
],
|
|
11
|
+
badge: Heading1,
|
|
12
|
+
group: 'format',
|
|
13
|
+
onSelect: ({ editor })=>{
|
|
14
|
+
editor.chain().focus().setHeading({
|
|
15
|
+
level: 1
|
|
16
|
+
}).run();
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
title: i18next.t('heading2') || 'Heading 2',
|
|
21
|
+
subtext: i18next.t('heading2Desc') || 'Medium priority section title',
|
|
22
|
+
aliases: [
|
|
23
|
+
'h2'
|
|
24
|
+
],
|
|
25
|
+
badge: Heading2,
|
|
26
|
+
group: 'format',
|
|
27
|
+
onSelect: ({ editor })=>{
|
|
28
|
+
editor.chain().focus().setHeading({
|
|
29
|
+
level: 2
|
|
30
|
+
}).run();
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: i18next.t('heading3') || 'Heading 3',
|
|
35
|
+
subtext: i18next.t('heading3Desc') || 'Low priority section title',
|
|
36
|
+
aliases: [
|
|
37
|
+
'h3'
|
|
38
|
+
],
|
|
39
|
+
badge: Heading3,
|
|
40
|
+
group: 'format',
|
|
41
|
+
onSelect: ({ editor })=>{
|
|
42
|
+
editor.chain().focus().setHeading({
|
|
43
|
+
level: 3
|
|
44
|
+
}).run();
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
title: i18next.t('bulletList') || 'Bullet List',
|
|
49
|
+
subtext: i18next.t('bulletListDesc') || 'Unordered list of items',
|
|
50
|
+
aliases: [
|
|
51
|
+
'ul'
|
|
52
|
+
],
|
|
53
|
+
badge: List,
|
|
54
|
+
group: 'format',
|
|
55
|
+
onSelect: ({ editor })=>{
|
|
56
|
+
editor.chain().focus().toggleBulletList().run();
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
// Uncomment if you want a numbered list option
|
|
60
|
+
// {
|
|
61
|
+
// title: i18next.t("numberedList") || 'Numbered List',
|
|
62
|
+
// subtext: i18next.t("numberedListDesc") || "Ordered list of items",
|
|
63
|
+
// aliases: ["ol"],
|
|
64
|
+
// badge: ListOrdered,
|
|
65
|
+
// group: "format",
|
|
66
|
+
// onSelect: ({ editor }) => {
|
|
67
|
+
// editor.chain().focus().toggleOrderedList().run();
|
|
68
|
+
// },
|
|
69
|
+
// },
|
|
70
|
+
{
|
|
71
|
+
title: i18next.t('blockquote') || 'Blockquote',
|
|
72
|
+
subtext: i18next.t('blockquoteDesc') || 'Element for quoting',
|
|
73
|
+
aliases: [],
|
|
74
|
+
badge: Quote,
|
|
75
|
+
group: 'format',
|
|
76
|
+
onSelect: ({ editor })=>{
|
|
77
|
+
editor.chain().focus().setBlockquote().run();
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
title: i18next.t('image') || 'Image',
|
|
82
|
+
subtext: i18next.t('imageDesc') || 'Insert an image',
|
|
83
|
+
aliases: [
|
|
84
|
+
'img'
|
|
85
|
+
],
|
|
86
|
+
badge: Image,
|
|
87
|
+
group: 'insert',
|
|
88
|
+
onSelect: ({ editor })=>{
|
|
89
|
+
editor.chain().focus().setImageUpload('image').run();
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
title: i18next.t('video') || 'Video',
|
|
94
|
+
subtext: i18next.t('videoDesc') || 'Insert a video',
|
|
95
|
+
aliases: [
|
|
96
|
+
'video'
|
|
97
|
+
],
|
|
98
|
+
badge: Video,
|
|
99
|
+
group: 'insert',
|
|
100
|
+
onSelect: ({ editor })=>{
|
|
101
|
+
editor.chain().focus().setImageUpload('video').run();
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
title: i18next.t('horizontalRule') || 'HorizontalRule',
|
|
106
|
+
subtext: i18next.t('horizontalRuleDesc') || 'Insert a horizontal divider',
|
|
107
|
+
aliases: [
|
|
108
|
+
'hr'
|
|
109
|
+
],
|
|
110
|
+
badge: Minus,
|
|
111
|
+
group: 'insert',
|
|
112
|
+
onSelect: ({ editor })=>{
|
|
113
|
+
editor.chain().focus().setHorizontalRule().run();
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
title: i18next.t('embed') || 'Embed Link',
|
|
118
|
+
subtext: i18next.t('iframeDesc') || 'Insert an Embed link',
|
|
119
|
+
aliases: [
|
|
120
|
+
'linkPreview'
|
|
121
|
+
],
|
|
122
|
+
badge: Link,
|
|
123
|
+
group: 'embed',
|
|
124
|
+
onSelect: ({ editor })=>{
|
|
125
|
+
editor.chain().focus().setLinkPreview().run();
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
title: i18next.t('twitter') || 'Twitter',
|
|
130
|
+
subtext: i18next.t('twitterDesc') || 'Insert a Twitter embed',
|
|
131
|
+
aliases: [
|
|
132
|
+
'x',
|
|
133
|
+
'twitter'
|
|
134
|
+
],
|
|
135
|
+
badge: Twitter,
|
|
136
|
+
group: 'embed',
|
|
137
|
+
onSelect: ({ editor })=>{
|
|
138
|
+
editor.chain().focus().insertTwitter().run();
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
title: i18next.t('facebook') || 'Facebook',
|
|
143
|
+
subtext: i18next.t('facebookDesc') || 'Insert a Facebook embed',
|
|
144
|
+
aliases: [
|
|
145
|
+
'meta',
|
|
146
|
+
'facebook'
|
|
147
|
+
],
|
|
148
|
+
badge: Facebook,
|
|
149
|
+
group: 'embed',
|
|
150
|
+
onSelect: ({ editor })=>{
|
|
151
|
+
editor.chain().focus().insertFacebook().run();
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
title: i18next.t('instagram') || 'Instagram',
|
|
156
|
+
subtext: i18next.t('instagramDesc') || 'Insert a Instagram embed',
|
|
157
|
+
aliases: [
|
|
158
|
+
'instagram'
|
|
159
|
+
],
|
|
160
|
+
badge: Instagram,
|
|
161
|
+
group: 'embed',
|
|
162
|
+
onSelect: ({ editor })=>{
|
|
163
|
+
editor.chain().focus().insertInstagram().run();
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
title: i18next.t('youtube') || 'Youtube',
|
|
168
|
+
subtext: i18next.t('youtubeDesc') || 'Insert a Youtube embed',
|
|
169
|
+
aliases: [
|
|
170
|
+
'youtube'
|
|
171
|
+
],
|
|
172
|
+
badge: Youtube,
|
|
173
|
+
group: 'embed',
|
|
174
|
+
onSelect: ({ editor })=>{
|
|
175
|
+
editor.chain().focus().insertYoutube().run();
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
title: i18next.t('tiktok') || 'Tiktok',
|
|
180
|
+
subtext: i18next.t('tiktokDesc') || 'Insert a Tiktok embed',
|
|
181
|
+
aliases: [
|
|
182
|
+
'tiktok'
|
|
183
|
+
],
|
|
184
|
+
badge: Music,
|
|
185
|
+
group: 'embed',
|
|
186
|
+
onSelect: ({ editor })=>{
|
|
187
|
+
editor.chain().focus().insertTiktok().run();
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
];
|
|
191
|
+
};
|
|
192
|
+
export const filterSuggestionItems = (items, query)=>{
|
|
193
|
+
if (!query) return items;
|
|
194
|
+
const normalizedQuery = query.toLowerCase().trim();
|
|
195
|
+
return items.filter((item)=>{
|
|
196
|
+
const titleMatch = item.title.toLowerCase().includes(normalizedQuery);
|
|
197
|
+
const subtextMatch = item.subtext.toLowerCase().includes(normalizedQuery);
|
|
198
|
+
const aliasesMatch = item.aliases.some((alias)=>alias.toLowerCase().includes(normalizedQuery));
|
|
199
|
+
return titleMatch || subtextMatch || aliasesMatch;
|
|
200
|
+
});
|
|
201
|
+
};
|
|
202
|
+
export const getSlashMenuItems = (editor, config)=>{
|
|
203
|
+
const defaultItems = getDefaultSlashMenuItems(editor);
|
|
204
|
+
// Filter by enabled items
|
|
205
|
+
const enabledItems = defaultItems.filter((item)=>{
|
|
206
|
+
const itemType = item.title.toLowerCase().replace(/\s+/g, '_');
|
|
207
|
+
return config.enabledItems.includes(itemType) || config.enabledItems.includes('text');
|
|
208
|
+
});
|
|
209
|
+
// Add custom items
|
|
210
|
+
const customItems = config.customItems || [];
|
|
211
|
+
// Apply group assignments
|
|
212
|
+
const itemsWithGroups = [
|
|
213
|
+
...enabledItems,
|
|
214
|
+
...customItems
|
|
215
|
+
].map((item)=>({
|
|
216
|
+
...item,
|
|
217
|
+
group: config.itemGroups?.[item.title.toLowerCase().replace(/\s+/g, '_')] || item.group
|
|
218
|
+
}));
|
|
219
|
+
return itemsWithGroups;
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/ui/SlashCommand/utils.ts"],"sourcesContent":["import { Editor } from '@tiptap/core'\r\nimport { SlashMenuConfig, SlashMenuItemType, SuggestionItem } from './types.js'\r\nimport i18next from 'i18next'\r\nimport {\r\n Facebook,\r\n Heading1,\r\n Heading2,\r\n Heading3,\r\n Image,\r\n Instagram,\r\n Link,\r\n List,\r\n ListOrdered,\r\n Minus,\r\n Music,\r\n Quote,\r\n Twitter,\r\n Video,\r\n Youtube,\r\n} from 'lucide-react'\r\nexport const getDefaultSlashMenuItems = (editor: Editor): SuggestionItem[] => {\r\n return [\r\n {\r\n title: i18next.t('heading1') || 'Heading 1',\r\n subtext: i18next.t('heading1Desc') || 'High priority section title',\r\n aliases: ['h1'],\r\n badge: Heading1,\r\n group: 'format',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setHeading({ level: 1 }).run()\r\n },\r\n },\r\n {\r\n title: i18next.t('heading2') || 'Heading 2',\r\n subtext: i18next.t('heading2Desc') || 'Medium priority section title',\r\n aliases: ['h2'],\r\n badge: Heading2,\r\n group: 'format',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setHeading({ level: 2 }).run()\r\n },\r\n },\r\n {\r\n title: i18next.t('heading3') || 'Heading 3',\r\n subtext: i18next.t('heading3Desc') || 'Low priority section title',\r\n aliases: ['h3'],\r\n badge: Heading3,\r\n group: 'format',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setHeading({ level: 3 }).run()\r\n },\r\n },\r\n {\r\n title: i18next.t('bulletList') || 'Bullet List',\r\n subtext: i18next.t('bulletListDesc') || 'Unordered list of items',\r\n aliases: ['ul'],\r\n badge: List,\r\n group: 'format',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().toggleBulletList().run()\r\n },\r\n },\r\n // Uncomment if you want a numbered list option\r\n // {\r\n // title: i18next.t(\"numberedList\") || 'Numbered List',\r\n // subtext: i18next.t(\"numberedListDesc\") || \"Ordered list of items\",\r\n // aliases: [\"ol\"],\r\n // badge: ListOrdered,\r\n // group: \"format\",\r\n // onSelect: ({ editor }) => {\r\n // editor.chain().focus().toggleOrderedList().run();\r\n // },\r\n // },\r\n {\r\n title: i18next.t('blockquote') || 'Blockquote',\r\n subtext: i18next.t('blockquoteDesc') || 'Element for quoting',\r\n aliases: [],\r\n badge: Quote,\r\n group: 'format',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setBlockquote().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('image') || 'Image',\r\n subtext: i18next.t('imageDesc') || 'Insert an image',\r\n aliases: ['img'],\r\n badge: Image,\r\n group: 'insert',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setImageUpload('image').run()\r\n },\r\n },\r\n {\r\n title: i18next.t('video') || 'Video',\r\n subtext: i18next.t('videoDesc') || 'Insert a video',\r\n aliases: ['video'],\r\n badge: Video,\r\n group: 'insert',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setImageUpload('video').run()\r\n },\r\n },\r\n {\r\n title: i18next.t('horizontalRule') || 'HorizontalRule',\r\n subtext: i18next.t('horizontalRuleDesc') || 'Insert a horizontal divider',\r\n aliases: ['hr'],\r\n badge: Minus,\r\n group: 'insert',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setHorizontalRule().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('embed') || 'Embed Link',\r\n subtext: i18next.t('iframeDesc') || 'Insert an Embed link',\r\n aliases: ['linkPreview'],\r\n badge: Link,\r\n group: 'embed',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().setLinkPreview().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('twitter') || 'Twitter',\r\n subtext: i18next.t('twitterDesc') || 'Insert a Twitter embed',\r\n aliases: ['x', 'twitter'],\r\n badge: Twitter,\r\n group: 'embed',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().insertTwitter().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('facebook') || 'Facebook',\r\n subtext: i18next.t('facebookDesc') || 'Insert a Facebook embed',\r\n aliases: ['meta', 'facebook'],\r\n badge: Facebook,\r\n group: 'embed',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().insertFacebook().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('instagram') || 'Instagram',\r\n subtext: i18next.t('instagramDesc') || 'Insert a Instagram embed',\r\n aliases: ['instagram'],\r\n badge: Instagram,\r\n group: 'embed',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().insertInstagram().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('youtube') || 'Youtube',\r\n subtext: i18next.t('youtubeDesc') || 'Insert a Youtube embed',\r\n aliases: ['youtube'],\r\n badge: Youtube,\r\n group: 'embed',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().insertYoutube().run()\r\n },\r\n },\r\n {\r\n title: i18next.t('tiktok') || 'Tiktok',\r\n subtext: i18next.t('tiktokDesc') || 'Insert a Tiktok embed',\r\n aliases: ['tiktok'],\r\n badge: Music,\r\n group: 'embed',\r\n onSelect: ({ editor }) => {\r\n editor.chain().focus().insertTiktok().run()\r\n },\r\n },\r\n ]\r\n}\r\n\r\nexport const filterSuggestionItems = (items: SuggestionItem[], query: string): SuggestionItem[] => {\r\n if (!query) return items\r\n\r\n const normalizedQuery = query.toLowerCase().trim()\r\n\r\n return items.filter((item) => {\r\n const titleMatch = item.title.toLowerCase().includes(normalizedQuery)\r\n const subtextMatch = item.subtext.toLowerCase().includes(normalizedQuery)\r\n const aliasesMatch = item.aliases.some((alias) => alias.toLowerCase().includes(normalizedQuery))\r\n\r\n return titleMatch || subtextMatch || aliasesMatch\r\n })\r\n}\r\n\r\nexport const getSlashMenuItems = (editor: Editor, config: SlashMenuConfig): SuggestionItem[] => {\r\n const defaultItems = getDefaultSlashMenuItems(editor)\r\n\r\n // Filter by enabled items\r\n const enabledItems = defaultItems.filter((item) => {\r\n const itemType = item.title.toLowerCase().replace(/\\s+/g, '_') as SlashMenuItemType\r\n return config.enabledItems.includes(itemType) || config.enabledItems.includes('text')\r\n })\r\n\r\n // Add custom items\r\n const customItems = config.customItems || []\r\n\r\n // Apply group assignments\r\n const itemsWithGroups = [...enabledItems, ...customItems].map((item) => ({\r\n ...item,\r\n group: config.itemGroups?.[item.title.toLowerCase().replace(/\\s+/g, '_')] || item.group,\r\n }))\r\n\r\n return itemsWithGroups\r\n}\r\n"],"names":["i18next","Facebook","Heading1","Heading2","Heading3","Image","Instagram","Link","List","Minus","Music","Quote","Twitter","Video","Youtube","getDefaultSlashMenuItems","editor","title","t","subtext","aliases","badge","group","onSelect","chain","focus","setHeading","level","run","toggleBulletList","setBlockquote","setImageUpload","setHorizontalRule","setLinkPreview","insertTwitter","insertFacebook","insertInstagram","insertYoutube","insertTiktok","filterSuggestionItems","items","query","normalizedQuery","toLowerCase","trim","filter","item","titleMatch","includes","subtextMatch","aliasesMatch","some","alias","getSlashMenuItems","config","defaultItems","enabledItems","itemType","replace","customItems","itemsWithGroups","map","itemGroups"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateImageUrl.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/lib/utils/updateImageUrl.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBlF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function updateImageUrl(url, width, height) {
|
|
2
|
+
try {
|
|
3
|
+
const parsedUrl = new URL(url);
|
|
4
|
+
// Set or update width and height parameters
|
|
5
|
+
parsedUrl.searchParams.set('width', width.toString());
|
|
6
|
+
if (!!height) {
|
|
7
|
+
parsedUrl.searchParams.set('height', height.toString());
|
|
8
|
+
}
|
|
9
|
+
return parsedUrl.toString();
|
|
10
|
+
} catch (error) {
|
|
11
|
+
console.error('Invalid URL:', error);
|
|
12
|
+
return url // fallback in case the input URL is malformed
|
|
13
|
+
;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=updateImageUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/lib/utils/updateImageUrl.ts"],"sourcesContent":["export function updateImageUrl(url: string, width: number, height?: number): string {\r\n try {\r\n const parsedUrl = new URL(url)\r\n\r\n // Set or update width and height parameters\r\n parsedUrl.searchParams.set('width', width.toString())\r\n\r\n if (!!height) {\r\n parsedUrl.searchParams.set('height', height.toString())\r\n }\r\n\r\n return parsedUrl.toString()\r\n } catch (error) {\r\n console.error('Invalid URL:', error)\r\n return url // fallback in case the input URL is malformed\r\n }\r\n}\r\n"],"names":["updateImageUrl","url","width","height","parsedUrl","URL","searchParams","set","toString","error","console"],"mappings":"AAAA,OAAO,SAASA,eAAeC,GAAW,EAAEC,KAAa,EAAEC,MAAe;IACxE,IAAI;QACF,MAAMC,YAAY,IAAIC,IAAIJ;QAE1B,4CAA4C;QAC5CG,UAAUE,YAAY,CAACC,GAAG,CAAC,SAASL,MAAMM,QAAQ;QAElD,IAAI,CAAC,CAACL,QAAQ;YACZC,UAAUE,YAAY,CAACC,GAAG,CAAC,UAAUJ,OAAOK,QAAQ;QACtD;QAEA,OAAOJ,UAAUI,QAAQ;IAC3B,EAAE,OAAOC,OAAO;QACdC,QAAQD,KAAK,CAAC,gBAAgBA;QAC9B,OAAOR,IAAI,8CAA8C;;IAC3D;AACF"}
|