payload-richtext-tiptap 0.0.158 → 0.0.160
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/BlockquoteFigure.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/BlockquoteFigure.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/BlockquoteFigure.js +61 -15
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/BlockquoteFigure.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Quote/Quote.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Quote/Quote.js +1 -3
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Quote/Quote.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/QuoteCaption/QuoteCaption.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/GifPlayer.d.ts +12 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/GifPlayer.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/GifPlayer.js +152 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/GifPlayer.js.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/SmartImage.d.ts +12 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/SmartImage.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/SmartImage.js +55 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/SmartImage.js.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/TestImage.d.ts +4 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/TestImage.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/TestImage.js +26 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/TestImage.js.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/utils/gifUtils.d.ts +31 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/utils/gifUtils.d.ts.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/utils/gifUtils.js +62 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/utils/gifUtils.js.map +1 -0
- 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/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 +23 -21
- package/dist/src/fields/TiptapEditor/extensions/extension-kit.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.d.ts +2 -2
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.js +55 -61
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.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/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageBlock/utils/gifUtils.ts"],"sourcesContent":["/**\r\n * Utility functions for GIF handling\r\n */\r\n\r\n/**\r\n * Checks if a URL or file path points to a GIF file\r\n * @param src - The source URL or file path\r\n * @returns true if the source is a GIF file\r\n */\r\nexport const isGifFile = (src: string): boolean => {\r\n if (!src) return false\r\n\r\n // Check file extension\r\n const extension = src.toLowerCase().split('.').pop()\r\n if (extension === 'gif') {\r\n return true\r\n }\r\n\r\n // Check for GIF in URL path (even without extension)\r\n const urlPath = src.toLowerCase()\r\n if (urlPath.includes('.gif') || urlPath.includes('gif')) {\r\n return true\r\n }\r\n\r\n return false\r\n}\r\n\r\n/**\r\n * Checks if a URL is a data URL containing a GIF\r\n * @param src - The source URL\r\n * @returns true if the source is a data URL with GIF data\r\n */\r\nexport const isGifDataUrl = (src: string): boolean => {\r\n if (!src || !src.startsWith('data:')) return false\r\n\r\n // Check for GIF MIME type in data URL\r\n return src.includes('data:image/gif') || src.includes('image/gif')\r\n}\r\n\r\n/**\r\n * Determines if an image source should be rendered as a GIF\r\n * @param src - The image source URL\r\n * @returns true if the source should be rendered as a GIF\r\n */\r\nexport const shouldRenderAsGif = (src: string): boolean => {\r\n return isGifFile(src) || isGifDataUrl(src)\r\n}\r\n\r\n/**\r\n * Extracts dimensions from a GIF source for proper canvas sizing\r\n * @param src - The GIF source URL\r\n * @returns Promise resolving to width and height, or null if extraction fails\r\n */\r\nexport const getGifDimensions = async (\r\n src: string,\r\n): Promise<{ width: number; height: number } | null> => {\r\n try {\r\n const response = await fetch(src)\r\n if (!response.ok) return null\r\n\r\n const arrayBuffer = await response.arrayBuffer()\r\n const uint8Array = new Uint8Array(arrayBuffer)\r\n\r\n // Parse GIF header to get dimensions\r\n if (uint8Array.length < 10) return null\r\n\r\n // GIF header: 6 bytes signature + 2 bytes width + 2 bytes height\r\n const width = uint8Array[6] | (uint8Array[7] << 8)\r\n const height = uint8Array[8] | (uint8Array[9] << 8)\r\n\r\n return { width, height }\r\n } catch (error) {\r\n console.warn('Failed to extract GIF dimensions:', error)\r\n return null\r\n }\r\n}\r\n"],"names":["isGifFile","src","extension","toLowerCase","split","pop","urlPath","includes","isGifDataUrl","startsWith","shouldRenderAsGif","getGifDimensions","response","fetch","ok","arrayBuffer","uint8Array","Uint8Array","length","width","height","error","console","warn"],"mappings":"AAAA;;CAEC,GAED;;;;CAIC,GACD,OAAO,MAAMA,YAAY,CAACC;IACxB,IAAI,CAACA,KAAK,OAAO;IAEjB,uBAAuB;IACvB,MAAMC,YAAYD,IAAIE,WAAW,GAAGC,KAAK,CAAC,KAAKC,GAAG;IAClD,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,qDAAqD;IACrD,MAAMI,UAAUL,IAAIE,WAAW;IAC/B,IAAIG,QAAQC,QAAQ,CAAC,WAAWD,QAAQC,QAAQ,CAAC,QAAQ;QACvD,OAAO;IACT;IAEA,OAAO;AACT,EAAC;AAED;;;;CAIC,GACD,OAAO,MAAMC,eAAe,CAACP;IAC3B,IAAI,CAACA,OAAO,CAACA,IAAIQ,UAAU,CAAC,UAAU,OAAO;IAE7C,sCAAsC;IACtC,OAAOR,IAAIM,QAAQ,CAAC,qBAAqBN,IAAIM,QAAQ,CAAC;AACxD,EAAC;AAED;;;;CAIC,GACD,OAAO,MAAMG,oBAAoB,CAACT;IAChC,OAAOD,UAAUC,QAAQO,aAAaP;AACxC,EAAC;AAED;;;;CAIC,GACD,OAAO,MAAMU,mBAAmB,OAC9BV;IAEA,IAAI;QACF,MAAMW,WAAW,MAAMC,MAAMZ;QAC7B,IAAI,CAACW,SAASE,EAAE,EAAE,OAAO;QAEzB,MAAMC,cAAc,MAAMH,SAASG,WAAW;QAC9C,MAAMC,aAAa,IAAIC,WAAWF;QAElC,qCAAqC;QACrC,IAAIC,WAAWE,MAAM,GAAG,IAAI,OAAO;QAEnC,iEAAiE;QACjE,MAAMC,QAAQH,UAAU,CAAC,EAAE,GAAIA,UAAU,CAAC,EAAE,IAAI;QAChD,MAAMI,SAASJ,UAAU,CAAC,EAAE,GAAIA,UAAU,CAAC,EAAE,IAAI;QAEjD,OAAO;YAAEG;YAAOC;QAAO;IACzB,EAAE,OAAOC,OAAO;QACdC,QAAQC,IAAI,CAAC,qCAAqCF;QAClD,OAAO;IACT;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Paragraph.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/Paragraph/Paragraph.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"Paragraph.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/Paragraph/Paragraph.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,0FAsCpB,CAAA;AAEF,eAAe,SAAS,CAAA"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { mergeAttributes } from
|
|
2
|
-
import TiptapParagraph from
|
|
1
|
+
import { mergeAttributes } from '@tiptap/core';
|
|
2
|
+
import TiptapParagraph from '@tiptap/extension-paragraph';
|
|
3
3
|
export const Paragraph = TiptapParagraph.extend({
|
|
4
4
|
addAttributes () {
|
|
5
5
|
return {
|
|
6
6
|
textAlign: {
|
|
7
|
-
default:
|
|
7
|
+
default: ''
|
|
8
8
|
},
|
|
9
9
|
class: {
|
|
10
|
-
default:
|
|
10
|
+
default: ''
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
13
|
},
|
|
@@ -17,6 +17,29 @@ export const Paragraph = TiptapParagraph.extend({
|
|
|
17
17
|
mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),
|
|
18
18
|
0
|
|
19
19
|
];
|
|
20
|
+
},
|
|
21
|
+
addKeyboardShortcuts () {
|
|
22
|
+
return {
|
|
23
|
+
Backspace: ({ editor })=>{
|
|
24
|
+
const { state } = editor;
|
|
25
|
+
const { selection } = state;
|
|
26
|
+
const { $from, empty } = selection;
|
|
27
|
+
if (!empty) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
if ($from.parent.type.name !== 'paragraph') {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const isEmpty = $from.parent.content.size === 0;
|
|
34
|
+
const isAtStart = $from.parentOffset === 0;
|
|
35
|
+
// If the paragraph is empty and we're at the start, delete it
|
|
36
|
+
if (isEmpty && isAtStart) {
|
|
37
|
+
const pos = $from.before();
|
|
38
|
+
return editor.chain().setNodeSelection(pos).deleteSelection().run();
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
20
43
|
}
|
|
21
44
|
});
|
|
22
45
|
export default Paragraph;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/Paragraph/Paragraph.ts"],"sourcesContent":["import { mergeAttributes } from
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/Paragraph/Paragraph.ts"],"sourcesContent":["import { mergeAttributes } from '@tiptap/core'\r\nimport TiptapParagraph from '@tiptap/extension-paragraph'\r\n\r\nexport const Paragraph = TiptapParagraph.extend({\r\n addAttributes() {\r\n return {\r\n textAlign: { default: '' },\r\n class: { default: '' },\r\n }\r\n },\r\n renderHTML({ node, HTMLAttributes }) {\r\n return ['p', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n Backspace: ({ editor }) => {\r\n const { state } = editor\r\n const { selection } = state\r\n const { $from, empty } = selection\r\n\r\n if (!empty) {\r\n return false\r\n }\r\n\r\n if ($from.parent.type.name !== 'paragraph') {\r\n return false\r\n }\r\n\r\n const isEmpty = $from.parent.content.size === 0\r\n const isAtStart = $from.parentOffset === 0\r\n\r\n // If the paragraph is empty and we're at the start, delete it\r\n if (isEmpty && isAtStart) {\r\n const pos = $from.before()\r\n return editor.chain().setNodeSelection(pos).deleteSelection().run()\r\n }\r\n\r\n return false\r\n },\r\n }\r\n },\r\n})\r\n\r\nexport default Paragraph\r\n"],"names":["mergeAttributes","TiptapParagraph","Paragraph","extend","addAttributes","textAlign","default","class","renderHTML","node","HTMLAttributes","options","addKeyboardShortcuts","Backspace","editor","state","selection","$from","empty","parent","type","name","isEmpty","content","size","isAtStart","parentOffset","pos","before","chain","setNodeSelection","deleteSelection","run"],"mappings":"AAAA,SAASA,eAAe,QAAQ,eAAc;AAC9C,OAAOC,qBAAqB,8BAA6B;AAEzD,OAAO,MAAMC,YAAYD,gBAAgBE,MAAM,CAAC;IAC9CC;QACE,OAAO;YACLC,WAAW;gBAAEC,SAAS;YAAG;YACzBC,OAAO;gBAAED,SAAS;YAAG;QACvB;IACF;IACAE,YAAW,EAAEC,IAAI,EAAEC,cAAc,EAAE;QACjC,OAAO;YAAC;YAAKV,gBAAgB,IAAI,CAACW,OAAO,CAACD,cAAc,EAAEA;YAAiB;SAAE;IAC/E;IACAE;QACE,OAAO;YACLC,WAAW,CAAC,EAAEC,MAAM,EAAE;gBACpB,MAAM,EAAEC,KAAK,EAAE,GAAGD;gBAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;gBACtB,MAAM,EAAEE,KAAK,EAAEC,KAAK,EAAE,GAAGF;gBAEzB,IAAI,CAACE,OAAO;oBACV,OAAO;gBACT;gBAEA,IAAID,MAAME,MAAM,CAACC,IAAI,CAACC,IAAI,KAAK,aAAa;oBAC1C,OAAO;gBACT;gBAEA,MAAMC,UAAUL,MAAME,MAAM,CAACI,OAAO,CAACC,IAAI,KAAK;gBAC9C,MAAMC,YAAYR,MAAMS,YAAY,KAAK;gBAEzC,8DAA8D;gBAC9D,IAAIJ,WAAWG,WAAW;oBACxB,MAAME,MAAMV,MAAMW,MAAM;oBACxB,OAAOd,OAAOe,KAAK,GAAGC,gBAAgB,CAACH,KAAKI,eAAe,GAAGC,GAAG;gBACnE;gBAEA,OAAO;YACT;QACF;IACF;AACF,GAAE;AAEF,eAAe9B,UAAS"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { openAssetHQType } from
|
|
1
|
+
import { openAssetHQType } from '../types.js';
|
|
2
2
|
interface ExtensionKitProps {
|
|
3
3
|
openAssetHQHandler: openAssetHQType;
|
|
4
|
-
dir?:
|
|
4
|
+
dir?: 'ltr' | 'rtl';
|
|
5
5
|
}
|
|
6
|
-
export declare const ExtensionKit: ({ dir, openAssetHQHandler
|
|
6
|
+
export declare const ExtensionKit: ({ dir, openAssetHQHandler }: ExtensionKitProps) => (import("@tiptap/core").Node<any, any> | import("@tiptap/core").Extension<any, any> | import("@tiptap/core").Mark<import("@tiptap/extension-subscript").SubscriptExtensionOptions, any>)[];
|
|
7
7
|
export default ExtensionKit;
|
|
8
8
|
//# sourceMappingURL=extension-kit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-kit.d.ts","sourceRoot":"","sources":["../../../../../src/fields/TiptapEditor/extensions/extension-kit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extension-kit.d.ts","sourceRoot":"","sources":["../../../../../src/fields/TiptapEditor/extensions/extension-kit.ts"],"names":[],"mappings":"AAkDA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAI7C,UAAU,iBAAiB;IACzB,kBAAkB,EAAE,eAAe,CAAA;IACnC,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;CACpB;AAED,eAAO,MAAM,YAAY,gCAAyC,iBAAiB,+LA4HlF,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { AICommand, AudioBlock, BlockquoteFigure, CharacterCount, Document, Dropcursor, Facebook, Figcaption, FileHandler, Focus, Heading, HorizontalRule, LinkPreview, ImageBlock, InsideLinks, Instagram, Link, Linkedin, Placeholder, Selection, SlashCommand, StarterKit, Subscript, Superscript, TaskItem, TaskList, TextAlign, TextStyle, Tiktok,
|
|
2
|
-
import { ImageUpload } from
|
|
3
|
-
import History from
|
|
4
|
-
import { Markdown } from
|
|
5
|
-
import API from
|
|
6
|
-
import i18next from
|
|
7
|
-
import { getAssetActualSize } from
|
|
8
|
-
export const ExtensionKit = ({ dir =
|
|
1
|
+
import { AICommand, AudioBlock, BlockquoteFigure, CharacterCount, Document, Dropcursor, Facebook, Figcaption, FileHandler, Focus, Heading, HorizontalRule, LinkPreview, ImageBlock, InsideLinks, Instagram, Link, Linkedin, Paragraph, Placeholder, Selection, SlashCommand, StarterKit, Subscript, Superscript, TaskItem, TaskList, TextAlign, TextStyle, Tiktok, Twitter, Typography, Underline, VideoBlock, Youtube, Iframe, BulletList } from './index.js';
|
|
2
|
+
import { ImageUpload } from './ImageUpload/ImageUpload.js';
|
|
3
|
+
import History from '@tiptap/extension-history';
|
|
4
|
+
import { Markdown } from 'tiptap-markdown';
|
|
5
|
+
import API from '../lib/api.js';
|
|
6
|
+
import i18next from 'i18next';
|
|
7
|
+
import { getAssetActualSize } from './ImageUpload/getImageActualSize.js';
|
|
8
|
+
export const ExtensionKit = ({ dir = 'ltr', openAssetHQHandler })=>[
|
|
9
9
|
Markdown,
|
|
10
10
|
Document,
|
|
11
11
|
TaskList,
|
|
@@ -31,13 +31,15 @@ export const ExtensionKit = ({ dir = "ltr", openAssetHQHandler })=>[
|
|
|
31
31
|
horizontalRule: false,
|
|
32
32
|
blockquote: false,
|
|
33
33
|
history: false,
|
|
34
|
-
codeBlock: false
|
|
34
|
+
codeBlock: false,
|
|
35
|
+
paragraph: false
|
|
35
36
|
}),
|
|
37
|
+
Paragraph,
|
|
36
38
|
TextStyle,
|
|
37
39
|
// FontSize,
|
|
38
40
|
// FontFamily,
|
|
39
41
|
// Color,
|
|
40
|
-
TrailingNode,
|
|
42
|
+
// TrailingNode,
|
|
41
43
|
Link.configure({
|
|
42
44
|
openOnClick: false
|
|
43
45
|
}),
|
|
@@ -54,17 +56,17 @@ export const ExtensionKit = ({ dir = "ltr", openAssetHQHandler })=>[
|
|
|
54
56
|
AudioBlock,
|
|
55
57
|
FileHandler.configure({
|
|
56
58
|
allowedMimeTypes: [
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
'image/png',
|
|
60
|
+
'image/jpeg',
|
|
61
|
+
'image/gif',
|
|
62
|
+
'image/webp'
|
|
61
63
|
],
|
|
62
64
|
onDrop: (currentEditor, files, pos)=>{
|
|
63
65
|
const file = files[0];
|
|
64
66
|
(async ()=>{
|
|
65
67
|
openAssetHQHandler((asset)=>{
|
|
66
68
|
let title = asset.title;
|
|
67
|
-
if (i18next.language !==
|
|
69
|
+
if (i18next.language !== 'en' && !!asset.title_locale[i18next.language.toUpperCase()]) {
|
|
68
70
|
title = asset.title_locale[i18next.language.toUpperCase()];
|
|
69
71
|
}
|
|
70
72
|
const { actualHeight, actualWidth } = getAssetActualSize(asset);
|
|
@@ -75,7 +77,7 @@ export const ExtensionKit = ({ dir = "ltr", openAssetHQHandler })=>[
|
|
|
75
77
|
actualHeight,
|
|
76
78
|
actualWidth
|
|
77
79
|
}).focus().run();
|
|
78
|
-
}, file,
|
|
80
|
+
}, file, 'image');
|
|
79
81
|
})();
|
|
80
82
|
},
|
|
81
83
|
onPaste: (currentEditor, files)=>{
|
|
@@ -97,10 +99,10 @@ export const ExtensionKit = ({ dir = "ltr", openAssetHQHandler })=>[
|
|
|
97
99
|
return {};
|
|
98
100
|
}
|
|
99
101
|
}).configure({
|
|
100
|
-
defaultAlignment: dir ===
|
|
102
|
+
defaultAlignment: dir === 'rtl' ? 'right' : 'left',
|
|
101
103
|
types: [
|
|
102
|
-
|
|
103
|
-
|
|
104
|
+
'heading',
|
|
105
|
+
'paragraph'
|
|
104
106
|
]
|
|
105
107
|
}),
|
|
106
108
|
Subscript,
|
|
@@ -109,7 +111,7 @@ export const ExtensionKit = ({ dir = "ltr", openAssetHQHandler })=>[
|
|
|
109
111
|
Placeholder.configure({
|
|
110
112
|
includeChildren: true,
|
|
111
113
|
showOnlyCurrent: false,
|
|
112
|
-
placeholder: ()=>
|
|
114
|
+
placeholder: ()=>''
|
|
113
115
|
}),
|
|
114
116
|
SlashCommand,
|
|
115
117
|
Focus,
|
|
@@ -117,7 +119,7 @@ export const ExtensionKit = ({ dir = "ltr", openAssetHQHandler })=>[
|
|
|
117
119
|
BlockquoteFigure,
|
|
118
120
|
Dropcursor.configure({
|
|
119
121
|
width: 2,
|
|
120
|
-
class:
|
|
122
|
+
class: 'ProseMirror-dropcursor border-black'
|
|
121
123
|
}),
|
|
122
124
|
History,
|
|
123
125
|
Twitter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/fields/TiptapEditor/extensions/extension-kit.ts"],"sourcesContent":["import {\r\n AICommand,\r\n AudioBlock,\r\n BlockquoteFigure,\r\n CharacterCount,\r\n Color,\r\n Document,\r\n Dropcursor,\r\n Facebook,\r\n Figcaption,\r\n FileHandler,\r\n Focus,\r\n FontFamily,\r\n FontSize,\r\n Heading,\r\n Highlight,\r\n HorizontalRule,\r\n LinkPreview,\r\n ImageBlock,\r\n InsideLinks,\r\n Instagram,\r\n Link,\r\n Linkedin,\r\n Placeholder,\r\n Selection,\r\n SlashCommand,\r\n StarterKit,\r\n Subscript,\r\n Superscript,\r\n TaskItem,\r\n TaskList,\r\n TextAlign,\r\n TextStyle,\r\n Tiktok,\r\n TrailingNode,\r\n Twitter,\r\n Typography,\r\n Underline,\r\n VideoBlock,\r\n Youtube,\r\n Iframe,\r\n BulletList,\r\n} from
|
|
1
|
+
{"version":3,"sources":["../../../../../src/fields/TiptapEditor/extensions/extension-kit.ts"],"sourcesContent":["import {\r\n AICommand,\r\n AudioBlock,\r\n BlockquoteFigure,\r\n CharacterCount,\r\n Color,\r\n Document,\r\n Dropcursor,\r\n Facebook,\r\n Figcaption,\r\n FileHandler,\r\n Focus,\r\n FontFamily,\r\n FontSize,\r\n Heading,\r\n Highlight,\r\n HorizontalRule,\r\n LinkPreview,\r\n ImageBlock,\r\n InsideLinks,\r\n Instagram,\r\n Link,\r\n Linkedin,\r\n Paragraph,\r\n Placeholder,\r\n Selection,\r\n SlashCommand,\r\n StarterKit,\r\n Subscript,\r\n Superscript,\r\n TaskItem,\r\n TaskList,\r\n TextAlign,\r\n TextStyle,\r\n Tiktok,\r\n TrailingNode,\r\n Twitter,\r\n Typography,\r\n Underline,\r\n VideoBlock,\r\n Youtube,\r\n Iframe,\r\n BulletList,\r\n} from './index.js'\r\n\r\nimport { ImageUpload } from './ImageUpload/ImageUpload.js'\r\n\r\nimport History from '@tiptap/extension-history'\r\nimport { Markdown } from 'tiptap-markdown'\r\nimport API from '../lib/api.js'\r\nimport { openAssetHQType } from '../types.js'\r\nimport i18next from 'i18next'\r\nimport { getAssetActualSize } from './ImageUpload/getImageActualSize.js'\r\n\r\ninterface ExtensionKitProps {\r\n openAssetHQHandler: openAssetHQType\r\n dir?: 'ltr' | 'rtl'\r\n}\r\n\r\nexport const ExtensionKit = ({ dir = 'ltr', openAssetHQHandler }: ExtensionKitProps) => [\r\n Markdown,\r\n Document,\r\n TaskList,\r\n TaskItem.configure({\r\n nested: true,\r\n }),\r\n Selection,\r\n Heading.configure({\r\n levels: [1, 2, 3, 4, 5, 6],\r\n }),\r\n HorizontalRule,\r\n StarterKit.configure({\r\n document: false,\r\n dropcursor: false,\r\n heading: false,\r\n horizontalRule: false,\r\n blockquote: false,\r\n history: false,\r\n codeBlock: false,\r\n paragraph: false,\r\n }),\r\n Paragraph,\r\n TextStyle,\r\n // FontSize,\r\n // FontFamily,\r\n // Color,\r\n // TrailingNode,\r\n Link.configure({\r\n openOnClick: false,\r\n }),\r\n // Highlight.configure({ multicolor: true }),\r\n Underline,\r\n CharacterCount.configure({ limit: 50000 }),\r\n ImageUpload.configure({\r\n openAssetHQHandler,\r\n }),\r\n ImageBlock,\r\n VideoBlock,\r\n AudioBlock,\r\n FileHandler.configure({\r\n allowedMimeTypes: ['image/png', 'image/jpeg', 'image/gif', 'image/webp'],\r\n onDrop: (currentEditor, files, pos) => {\r\n const file = files[0]\r\n ;(async () => {\r\n openAssetHQHandler(\r\n (asset) => {\r\n let title = asset.title\r\n if (i18next.language !== 'en' && !!asset.title_locale[i18next.language.toUpperCase()]) {\r\n title = asset.title_locale[i18next.language.toUpperCase()]\r\n }\r\n const { actualHeight, actualWidth } = getAssetActualSize(asset)\r\n currentEditor\r\n .chain()\r\n .setImageBlockAt({\r\n pos,\r\n src: asset?.optimizedImageUrl || asset.fullUrl,\r\n caption: title,\r\n actualHeight,\r\n actualWidth,\r\n })\r\n .focus()\r\n .run()\r\n },\r\n file,\r\n 'image',\r\n )\r\n })()\r\n },\r\n onPaste: (currentEditor, files) => {\r\n files.forEach(async () => {\r\n const url = await API.uploadImage()\r\n\r\n return currentEditor\r\n .chain()\r\n .setImageBlockAt({\r\n pos: currentEditor.state.selection.anchor,\r\n src: url,\r\n })\r\n .focus()\r\n .run()\r\n })\r\n },\r\n }),\r\n // Emoji.configure({\r\n // enableEmoticons: true,\r\n // suggestion: emojiSuggestion,\r\n // }),\r\n TextAlign.extend({\r\n addKeyboardShortcuts() {\r\n return {}\r\n },\r\n }).configure({\r\n defaultAlignment: dir === 'rtl' ? 'right' : 'left',\r\n types: ['heading', 'paragraph'],\r\n }),\r\n Subscript,\r\n Superscript,\r\n Typography,\r\n Placeholder.configure({\r\n includeChildren: true,\r\n showOnlyCurrent: false,\r\n placeholder: () => '',\r\n }),\r\n SlashCommand,\r\n Focus,\r\n Figcaption,\r\n BlockquoteFigure,\r\n Dropcursor.configure({\r\n width: 2,\r\n class: 'ProseMirror-dropcursor border-black',\r\n }),\r\n History,\r\n Twitter,\r\n Tiktok,\r\n Instagram,\r\n Facebook,\r\n Linkedin,\r\n Youtube,\r\n InsideLinks,\r\n Iframe,\r\n AICommand,\r\n LinkPreview,\r\n BulletList,\r\n]\r\n\r\nexport default ExtensionKit\r\n"],"names":["AICommand","AudioBlock","BlockquoteFigure","CharacterCount","Document","Dropcursor","Facebook","Figcaption","FileHandler","Focus","Heading","HorizontalRule","LinkPreview","ImageBlock","InsideLinks","Instagram","Link","Linkedin","Paragraph","Placeholder","Selection","SlashCommand","StarterKit","Subscript","Superscript","TaskItem","TaskList","TextAlign","TextStyle","Tiktok","Twitter","Typography","Underline","VideoBlock","Youtube","Iframe","BulletList","ImageUpload","History","Markdown","API","i18next","getAssetActualSize","ExtensionKit","dir","openAssetHQHandler","configure","nested","levels","document","dropcursor","heading","horizontalRule","blockquote","history","codeBlock","paragraph","openOnClick","limit","allowedMimeTypes","onDrop","currentEditor","files","pos","file","asset","title","language","title_locale","toUpperCase","actualHeight","actualWidth","chain","setImageBlockAt","src","optimizedImageUrl","fullUrl","caption","focus","run","onPaste","forEach","url","uploadImage","state","selection","anchor","extend","addKeyboardShortcuts","defaultAlignment","types","includeChildren","showOnlyCurrent","placeholder","width","class"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Editor } from
|
|
1
|
+
import { Editor } from '@tiptap/react';
|
|
2
2
|
export type TextMenuProps = {
|
|
3
3
|
editor: Editor;
|
|
4
|
-
dir:
|
|
4
|
+
dir: 'rtl' | 'ltr' | 'auto';
|
|
5
5
|
};
|
|
6
6
|
export declare const TextMenu: ({ editor, dir }: TextMenuProps) => import("react").JSX.Element;
|
|
7
7
|
//# sourceMappingURL=TextMenu.d.ts.map
|
|
@@ -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,
|
|
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,CAAA;AAuClD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,QAAQ,oBAAqB,aAAa,gCAgNtD,CAAA"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import * as Popover from
|
|
3
|
-
import { BubbleMenu } from
|
|
4
|
-
import { AlignCenter, AlignJustify, AlignLeft, AlignRight, Bold, Italic, MoveVertical, RemoveFormatting, Sparkles, Strikethrough, Subscript, Superscript, Underline } from
|
|
5
|
-
import { memo, useState } from
|
|
6
|
-
import { AIEditorPanel } from
|
|
7
|
-
import { ColorPicker } from
|
|
8
|
-
import { Icon } from
|
|
9
|
-
import { Toolbar } from
|
|
10
|
-
import { ContentTypePicker } from
|
|
11
|
-
import { EditLinkPopover } from
|
|
2
|
+
import * as Popover from '@radix-ui/react-popover';
|
|
3
|
+
import { BubbleMenu } from '@tiptap/react';
|
|
4
|
+
import { AlignCenter, AlignJustify, AlignLeft, AlignRight, Bold, Italic, MoveVertical, RemoveFormatting, Sparkles, Strikethrough, Subscript, Superscript, Underline } from 'lucide-react';
|
|
5
|
+
import { memo, useState } from 'react';
|
|
6
|
+
import { AIEditorPanel } from '../../panels/AIEditorPanel/AIEditorPanel.js';
|
|
7
|
+
import { ColorPicker } from '../../panels/index.js';
|
|
8
|
+
import { Icon } from '../../ui/Icon.js';
|
|
9
|
+
import { Toolbar } from '../../ui/Toolbar.js';
|
|
10
|
+
import { ContentTypePicker } from './components/ContentTypePicker.js';
|
|
11
|
+
import { EditLinkPopover } from './components/EditLinkPopover.js';
|
|
12
12
|
// import { FontFamilyPicker } from "./components/FontFamilyPicker.js";
|
|
13
|
-
import
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
13
|
+
import i18next from 'i18next';
|
|
14
|
+
import { FontSizePicker } from './components/FontSizePicker.js';
|
|
15
|
+
import { useTextmenuCommands } from './hooks/useTextmenuCommands.js';
|
|
16
|
+
import { useTextmenuContentTypes } from './hooks/useTextmenuContentTypes.js';
|
|
17
|
+
import { useTextmenuStates } from './hooks/useTextmenuStates.js';
|
|
18
18
|
// We memorize the button so each button is not rerendered
|
|
19
19
|
// on every editor state change
|
|
20
20
|
const MemoButton = /*#__PURE__*/ memo(Toolbar.Button);
|
|
@@ -29,14 +29,14 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
29
29
|
const [openAi, setOpenAi] = useState(false);
|
|
30
30
|
return /*#__PURE__*/ _jsx(BubbleMenu, {
|
|
31
31
|
tippyOptions: {
|
|
32
|
-
placement:
|
|
32
|
+
placement: 'top-start',
|
|
33
33
|
onHide: ()=>{
|
|
34
34
|
setOpenAi(false);
|
|
35
35
|
},
|
|
36
36
|
popperOptions: {
|
|
37
37
|
modifiers: [
|
|
38
38
|
{
|
|
39
|
-
name:
|
|
39
|
+
name: 'flip',
|
|
40
40
|
enabled: false
|
|
41
41
|
}
|
|
42
42
|
]
|
|
@@ -53,12 +53,6 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
53
53
|
}
|
|
54
54
|
}) : /*#__PURE__*/ _jsxs(Toolbar.Wrapper, {
|
|
55
55
|
children: [
|
|
56
|
-
/*#__PURE__*/ _jsx(Toolbar.Button, {
|
|
57
|
-
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",
|
|
58
|
-
activeClassname: "text-purple-600 hover:text-purple-600 dark:text-purple-400 dark:hover:text-purple-200",
|
|
59
|
-
onClick: ()=>setOpenAi(true),
|
|
60
|
-
children: "1"
|
|
61
|
-
}),
|
|
62
56
|
/*#__PURE__*/ _jsxs(Toolbar.Button, {
|
|
63
57
|
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",
|
|
64
58
|
activeClassname: "text-purple-600 hover:text-purple-600 dark:text-purple-400 dark:hover:text-purple-200",
|
|
@@ -68,7 +62,7 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
68
62
|
icon: Sparkles,
|
|
69
63
|
className: "mr-1"
|
|
70
64
|
}),
|
|
71
|
-
i18next.t(
|
|
65
|
+
i18next.t('aiTools') || 'AI Tools',
|
|
72
66
|
/*#__PURE__*/ _jsx("span", {
|
|
73
67
|
className: "text-xs ml-1 px-2 py-1 bg-purple-100 text-purple-700 rounded-full dark:bg-purple-700 dark:text-purple-100 align-baseline",
|
|
74
68
|
children: "Beta"
|
|
@@ -82,10 +76,10 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
82
76
|
/*#__PURE__*/ _jsx(Toolbar.Divider, {}),
|
|
83
77
|
/*#__PURE__*/ _jsx(MemoButton, {
|
|
84
78
|
type: "button",
|
|
85
|
-
tooltip: i18next.t(
|
|
79
|
+
tooltip: i18next.t('boldText') || 'Bold',
|
|
86
80
|
tooltipShortcut: [
|
|
87
|
-
|
|
88
|
-
|
|
81
|
+
'Mod',
|
|
82
|
+
'B'
|
|
89
83
|
],
|
|
90
84
|
onClick: commands.onBold,
|
|
91
85
|
active: states.isBold,
|
|
@@ -95,10 +89,10 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
95
89
|
}),
|
|
96
90
|
/*#__PURE__*/ _jsx(MemoButton, {
|
|
97
91
|
type: "button",
|
|
98
|
-
tooltip: i18next.t(
|
|
92
|
+
tooltip: i18next.t('italicText') || 'Italic',
|
|
99
93
|
tooltipShortcut: [
|
|
100
|
-
|
|
101
|
-
|
|
94
|
+
'Mod',
|
|
95
|
+
'I'
|
|
102
96
|
],
|
|
103
97
|
onClick: commands.onItalic,
|
|
104
98
|
active: states.isItalic,
|
|
@@ -108,10 +102,10 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
108
102
|
}),
|
|
109
103
|
/*#__PURE__*/ _jsx(MemoButton, {
|
|
110
104
|
type: "button",
|
|
111
|
-
tooltip: i18next.t(
|
|
105
|
+
tooltip: i18next.t('underlineText') || 'Underline',
|
|
112
106
|
tooltipShortcut: [
|
|
113
|
-
|
|
114
|
-
|
|
107
|
+
'Mod',
|
|
108
|
+
'U'
|
|
115
109
|
],
|
|
116
110
|
onClick: commands.onUnderline,
|
|
117
111
|
active: states.isUnderline,
|
|
@@ -128,7 +122,7 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
128
122
|
asChild: true,
|
|
129
123
|
children: /*#__PURE__*/ _jsx(MemoButton, {
|
|
130
124
|
type: "button",
|
|
131
|
-
tooltip: i18next.t(
|
|
125
|
+
tooltip: i18next.t('moreOptions', 'More options'),
|
|
132
126
|
children: /*#__PURE__*/ _jsx(Icon, {
|
|
133
127
|
icon: MoveVertical
|
|
134
128
|
})
|
|
@@ -141,10 +135,10 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
141
135
|
children: [
|
|
142
136
|
/*#__PURE__*/ _jsx(MemoButton, {
|
|
143
137
|
type: "button",
|
|
144
|
-
tooltip: i18next.t(
|
|
138
|
+
tooltip: i18next.t('subscript', 'Subscript'),
|
|
145
139
|
tooltipShortcut: [
|
|
146
|
-
|
|
147
|
-
|
|
140
|
+
'Mod',
|
|
141
|
+
'.'
|
|
148
142
|
],
|
|
149
143
|
onClick: commands.onSubscript,
|
|
150
144
|
active: states.isSubscript,
|
|
@@ -154,10 +148,10 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
154
148
|
}),
|
|
155
149
|
/*#__PURE__*/ _jsx(MemoButton, {
|
|
156
150
|
type: "button",
|
|
157
|
-
tooltip: i18next.t(
|
|
151
|
+
tooltip: i18next.t('superscript', 'Superscript'),
|
|
158
152
|
tooltipShortcut: [
|
|
159
|
-
|
|
160
|
-
|
|
153
|
+
'Mod',
|
|
154
|
+
','
|
|
161
155
|
],
|
|
162
156
|
onClick: commands.onSuperscript,
|
|
163
157
|
active: states.isSuperscript,
|
|
@@ -168,11 +162,11 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
168
162
|
/*#__PURE__*/ _jsx(Toolbar.Divider, {}),
|
|
169
163
|
/*#__PURE__*/ _jsx(MemoButton, {
|
|
170
164
|
type: "button",
|
|
171
|
-
tooltip: i18next.t(
|
|
165
|
+
tooltip: i18next.t('alignLeft') || 'Align left',
|
|
172
166
|
tooltipShortcut: [
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
167
|
+
'Shift',
|
|
168
|
+
'Mod',
|
|
169
|
+
'L'
|
|
176
170
|
],
|
|
177
171
|
onClick: commands.onAlignLeft,
|
|
178
172
|
active: states.isAlignLeft,
|
|
@@ -182,11 +176,11 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
182
176
|
}),
|
|
183
177
|
/*#__PURE__*/ _jsx(MemoButton, {
|
|
184
178
|
type: "button",
|
|
185
|
-
tooltip: i18next.t(
|
|
179
|
+
tooltip: i18next.t('alignCenter') || 'Align center',
|
|
186
180
|
tooltipShortcut: [
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
181
|
+
'Shift',
|
|
182
|
+
'Mod',
|
|
183
|
+
'E'
|
|
190
184
|
],
|
|
191
185
|
onClick: commands.onAlignCenter,
|
|
192
186
|
active: states.isAlignCenter,
|
|
@@ -196,11 +190,11 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
196
190
|
}),
|
|
197
191
|
/*#__PURE__*/ _jsx(MemoButton, {
|
|
198
192
|
type: "button",
|
|
199
|
-
tooltip: i18next.t(
|
|
193
|
+
tooltip: i18next.t('alignRight', 'Align right'),
|
|
200
194
|
tooltipShortcut: [
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
195
|
+
'Shift',
|
|
196
|
+
'Mod',
|
|
197
|
+
'R'
|
|
204
198
|
],
|
|
205
199
|
onClick: commands.onAlignRight,
|
|
206
200
|
active: states.isAlignRight,
|
|
@@ -210,11 +204,11 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
210
204
|
}),
|
|
211
205
|
/*#__PURE__*/ _jsx(MemoButton, {
|
|
212
206
|
type: "button",
|
|
213
|
-
tooltip: i18next.t(
|
|
207
|
+
tooltip: i18next.t('alignJustify') || 'Justify',
|
|
214
208
|
tooltipShortcut: [
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
209
|
+
'Shift',
|
|
210
|
+
'Mod',
|
|
211
|
+
'J'
|
|
218
212
|
],
|
|
219
213
|
onClick: commands.onAlignJustify,
|
|
220
214
|
active: states.isAlignJustify,
|
|
@@ -224,11 +218,11 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
224
218
|
}),
|
|
225
219
|
/*#__PURE__*/ _jsx(MemoButton, {
|
|
226
220
|
type: "button",
|
|
227
|
-
tooltip: i18next.t(
|
|
221
|
+
tooltip: i18next.t('strikethrough', 'Strikethrough'),
|
|
228
222
|
tooltipShortcut: [
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
223
|
+
'Mod',
|
|
224
|
+
'Shift',
|
|
225
|
+
'S'
|
|
232
226
|
],
|
|
233
227
|
onClick: commands.onStrike,
|
|
234
228
|
active: states.isStrike,
|
|
@@ -238,7 +232,7 @@ export const TextMenu = ({ editor, dir })=>{
|
|
|
238
232
|
}),
|
|
239
233
|
/*#__PURE__*/ _jsx(MemoButton, {
|
|
240
234
|
type: "button",
|
|
241
|
-
tooltip: i18next.t(
|
|
235
|
+
tooltip: i18next.t('clearFormatting') || 'Clear Formatting',
|
|
242
236
|
onClick: commands.onClearFormatting,
|
|
243
237
|
children: /*#__PURE__*/ _jsx(Icon, {
|
|
244
238
|
icon: RemoveFormatting
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.tsx"],"sourcesContent":["import * as Popover from \"@radix-ui/react-popover\";\r\nimport { BubbleMenu, Editor } from \"@tiptap/react\";\r\n\r\nimport {\r\n AlignCenter,\r\n AlignJustify,\r\n AlignLeft,\r\n AlignRight,\r\n Bold,\r\n Highlighter,\r\n Italic,\r\n MoveVertical,\r\n Palette,\r\n RemoveFormatting,\r\n Sparkles,\r\n Strikethrough,\r\n Subscript,\r\n Superscript,\r\n Underline,\r\n} from \"lucide-react\";\r\nimport { memo, useState } from \"react\";\r\nimport { AIEditorPanel } from \"../../panels/AIEditorPanel/AIEditorPanel.js\";\r\nimport { ColorPicker } from \"../../panels/index.js\";\r\nimport { Icon } from \"../../ui/Icon.js\";\r\nimport { Surface } from \"../../ui/Surface.js\";\r\nimport { Toolbar } from \"../../ui/Toolbar.js\";\r\nimport { ContentTypePicker } from \"./components/ContentTypePicker.js\";\r\nimport { EditLinkPopover } from \"./components/EditLinkPopover.js\";\r\n// import { FontFamilyPicker } from \"./components/FontFamilyPicker.js\";\r\nimport { FontSizePicker } from \"./components/FontSizePicker.js\";\r\nimport { useTextmenuCommands } from \"./hooks/useTextmenuCommands.js\";\r\nimport { useTextmenuContentTypes } from \"./hooks/useTextmenuContentTypes.js\";\r\nimport { useTextmenuStates } from \"./hooks/useTextmenuStates.js\";\r\nimport i18next from \"i18next\";\r\n\r\n// We memorize the button so each button is not rerendered\r\n// on every editor state change\r\nconst MemoButton = memo(Toolbar.Button);\r\nconst MemoColorPicker = memo(ColorPicker);\r\n// const MemoFontFamilyPicker = memo(FontFamilyPicker);\r\nconst MemoFontSizePicker = memo(FontSizePicker);\r\nconst MemoContentTypePicker = memo(ContentTypePicker);\r\n\r\nexport type TextMenuProps = {\r\n editor: Editor;\r\n dir: \"rtl\" | \"ltr\" | \"auto\";\r\n};\r\n\r\nexport const TextMenu = ({ editor, dir }: TextMenuProps) => {\r\n const commands = useTextmenuCommands(editor);\r\n const states = useTextmenuStates(editor);\r\n const blockOptions = useTextmenuContentTypes(editor);\r\n const [openAi, setOpenAi] = useState(false);\r\n\r\n return (\r\n <BubbleMenu\r\n tippyOptions={{\r\n placement: \"top-start\",\r\n onHide: () => {\r\n setOpenAi(false);\r\n },\r\n popperOptions: {\r\n modifiers: [{ name: \"flip\", enabled: false }],\r\n },\r\n }}\r\n editor={editor}\r\n pluginKey=\"textMenu\"\r\n shouldShow={states.shouldShow}\r\n updateDelay={200}\r\n >\r\n {openAi ? (\r\n <AIEditorPanel\r\n editor={editor}\r\n onOpenChange={(value) => {\r\n setOpenAi(value);\r\n }}\r\n />\r\n ) : (\r\n <Toolbar.Wrapper>\r\n <Toolbar.Button\r\n className=\"text-purple-500 hover:text-purple-600 active:text-purple-600 dark:text-purple-400 dark:hover:text-purple-300 dark:active:text-purple-400\"\r\n activeClassname=\"text-purple-600 hover:text-purple-600 dark:text-purple-400 dark:hover:text-purple-200\"\r\n onClick={() => setOpenAi(true)}\r\n >\r\n 1\r\n </Toolbar.Button>\r\n <Toolbar.Button\r\n className=\"text-purple-500 hover:text-purple-600 active:text-purple-600 dark:text-purple-400 dark:hover:text-purple-300 dark:active:text-purple-400\"\r\n activeClassname=\"text-purple-600 hover:text-purple-600 dark:text-purple-400 dark:hover:text-purple-200\"\r\n onClick={() => setOpenAi(true)}\r\n >\r\n <Icon icon={Sparkles} className=\"mr-1\" />\r\n {i18next.t(\"aiTools\") || \"AI Tools\"}\r\n\r\n <span className=\"text-xs ml-1 px-2 py-1 bg-purple-100 text-purple-700 rounded-full dark:bg-purple-700 dark:text-purple-100 align-baseline\">\r\n Beta\r\n </span>\r\n </Toolbar.Button>\r\n <Toolbar.Divider />\r\n <MemoContentTypePicker options={blockOptions} />\r\n {/* <MemoFontFamilyPicker\r\n onChange={commands.onSetFont}\r\n value={states.currentFont || \"\"}\r\n /> */}\r\n {/* <MemoFontSizePicker\r\n onChange={commands.onSetFontSize}\r\n value={states.currentSize || \"\"}\r\n /> */}\r\n <Toolbar.Divider />\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"boldText\") || \"Bold\"}\r\n tooltipShortcut={[\"Mod\", \"B\"]}\r\n onClick={commands.onBold}\r\n active={states.isBold}\r\n >\r\n <Icon icon={Bold} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"italicText\") || \"Italic\"}\r\n tooltipShortcut={[\"Mod\", \"I\"]}\r\n onClick={commands.onItalic}\r\n active={states.isItalic}\r\n >\r\n <Icon icon={Italic} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"underlineText\") || \"Underline\"}\r\n tooltipShortcut={[\"Mod\", \"U\"]}\r\n onClick={commands.onUnderline}\r\n active={states.isUnderline}\r\n >\r\n <Icon icon={Underline} />\r\n </MemoButton>\r\n <EditLinkPopover onSetLink={commands.onLink} />\r\n {/* <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <MemoButton\r\n type=\"button\"\r\n active={!!states.currentHighlight}\r\n tooltip={i18next.t(\"highlightText\", \"Highlight text\")}\r\n >\r\n <Icon icon={Highlighter} />\r\n </MemoButton>\r\n </Popover.Trigger>\r\n <Popover.Content side=\"top\" sideOffset={8} asChild>\r\n <Surface className=\"p-1\">\r\n <MemoColorPicker\r\n color={states.currentHighlight}\r\n onChange={commands.onChangeHighlight}\r\n onClear={commands.onClearHighlight}\r\n />\r\n </Surface>\r\n </Popover.Content>\r\n </Popover.Root> */}\r\n {/* <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <MemoButton\r\n type=\"button\"\r\n active={!!states.currentColor}\r\n tooltip={i18next.t(\"textColor\") || \"Text color\"}\r\n >\r\n <Icon icon={Palette} />\r\n </MemoButton>\r\n </Popover.Trigger>\r\n <Popover.Content side=\"top\" sideOffset={8} asChild>\r\n <Surface className=\"p-1\">\r\n <MemoColorPicker\r\n color={states.currentColor}\r\n onChange={commands.onChangeColor}\r\n onClear={commands.onClearColor}\r\n />\r\n </Surface>\r\n </Popover.Content>\r\n </Popover.Root> */}\r\n <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"moreOptions\", \"More options\")}\r\n >\r\n <Icon icon={MoveVertical} />\r\n </MemoButton>\r\n </Popover.Trigger>\r\n <Popover.Content side=\"top\" asChild>\r\n <Toolbar.Wrapper>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"subscript\", \"Subscript\")}\r\n tooltipShortcut={[\"Mod\", \".\"]}\r\n onClick={commands.onSubscript}\r\n active={states.isSubscript}\r\n >\r\n <Icon icon={Subscript} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"superscript\", \"Superscript\")}\r\n tooltipShortcut={[\"Mod\", \",\"]}\r\n onClick={commands.onSuperscript}\r\n active={states.isSuperscript}\r\n >\r\n <Icon icon={Superscript} />\r\n </MemoButton>\r\n <Toolbar.Divider />\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"alignLeft\") || \"Align left\"}\r\n tooltipShortcut={[\"Shift\", \"Mod\", \"L\"]}\r\n onClick={commands.onAlignLeft}\r\n active={states.isAlignLeft}\r\n >\r\n <Icon icon={AlignLeft} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"alignCenter\") || \"Align center\"}\r\n tooltipShortcut={[\"Shift\", \"Mod\", \"E\"]}\r\n onClick={commands.onAlignCenter}\r\n active={states.isAlignCenter}\r\n >\r\n <Icon icon={AlignCenter} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"alignRight\", \"Align right\")}\r\n tooltipShortcut={[\"Shift\", \"Mod\", \"R\"]}\r\n onClick={commands.onAlignRight}\r\n active={states.isAlignRight}\r\n >\r\n <Icon icon={AlignRight} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"alignJustify\") || \"Justify\"}\r\n tooltipShortcut={[\"Shift\", \"Mod\", \"J\"]}\r\n onClick={commands.onAlignJustify}\r\n active={states.isAlignJustify}\r\n >\r\n <Icon icon={AlignJustify} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"strikethrough\", \"Strikethrough\")}\r\n tooltipShortcut={[\"Mod\", \"Shift\", \"S\"]}\r\n onClick={commands.onStrike}\r\n active={states.isStrike}\r\n >\r\n <Icon icon={Strikethrough} />\r\n </MemoButton>\r\n\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t(\"clearFormatting\") || \"Clear Formatting\"}\r\n onClick={commands.onClearFormatting}\r\n >\r\n <Icon icon={RemoveFormatting} />\r\n </MemoButton>\r\n </Toolbar.Wrapper>\r\n </Popover.Content>\r\n </Popover.Root>\r\n </Toolbar.Wrapper>\r\n )}\r\n </BubbleMenu>\r\n );\r\n};\r\n"],"names":["Popover","BubbleMenu","AlignCenter","AlignJustify","AlignLeft","AlignRight","Bold","Italic","MoveVertical","RemoveFormatting","Sparkles","Strikethrough","Subscript","Superscript","Underline","memo","useState","AIEditorPanel","ColorPicker","Icon","Toolbar","ContentTypePicker","EditLinkPopover","FontSizePicker","useTextmenuCommands","useTextmenuContentTypes","useTextmenuStates","i18next","MemoButton","Button","MemoColorPicker","MemoFontSizePicker","MemoContentTypePicker","TextMenu","editor","dir","commands","states","blockOptions","openAi","setOpenAi","tippyOptions","placement","onHide","popperOptions","modifiers","name","enabled","pluginKey","shouldShow","updateDelay","onOpenChange","value","Wrapper","className","activeClassname","onClick","icon","t","span","Divider","options","type","tooltip","tooltipShortcut","onBold","active","isBold","onItalic","isItalic","onUnderline","isUnderline","onSetLink","onLink","Root","Trigger","asChild","Content","side","onSubscript","isSubscript","onSuperscript","isSuperscript","onAlignLeft","isAlignLeft","onAlignCenter","isAlignCenter","onAlignRight","isAlignRight","onAlignJustify","isAlignJustify","onStrike","isStrike","onClearFormatting"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.tsx"],"sourcesContent":["import * as Popover from '@radix-ui/react-popover'\r\nimport { BubbleMenu, Editor } from '@tiptap/react'\r\n\r\nimport {\r\n AlignCenter,\r\n AlignJustify,\r\n AlignLeft,\r\n AlignRight,\r\n Bold,\r\n Italic,\r\n MoveVertical,\r\n RemoveFormatting,\r\n Sparkles,\r\n Strikethrough,\r\n Subscript,\r\n Superscript,\r\n Underline,\r\n} from 'lucide-react'\r\nimport { memo, useState } from 'react'\r\nimport { AIEditorPanel } from '../../panels/AIEditorPanel/AIEditorPanel.js'\r\nimport { ColorPicker } from '../../panels/index.js'\r\nimport { Icon } from '../../ui/Icon.js'\r\nimport { Toolbar } from '../../ui/Toolbar.js'\r\nimport { ContentTypePicker } from './components/ContentTypePicker.js'\r\nimport { EditLinkPopover } from './components/EditLinkPopover.js'\r\n// import { FontFamilyPicker } from \"./components/FontFamilyPicker.js\";\r\nimport i18next from 'i18next'\r\nimport { FontSizePicker } from './components/FontSizePicker.js'\r\nimport { useTextmenuCommands } from './hooks/useTextmenuCommands.js'\r\nimport { useTextmenuContentTypes } from './hooks/useTextmenuContentTypes.js'\r\nimport { useTextmenuStates } from './hooks/useTextmenuStates.js'\r\n\r\n// We memorize the button so each button is not rerendered\r\n// on every editor state change\r\nconst MemoButton = memo(Toolbar.Button)\r\nconst MemoColorPicker = memo(ColorPicker)\r\n// const MemoFontFamilyPicker = memo(FontFamilyPicker);\r\nconst MemoFontSizePicker = memo(FontSizePicker)\r\nconst MemoContentTypePicker = memo(ContentTypePicker)\r\n\r\nexport type TextMenuProps = {\r\n editor: Editor\r\n dir: 'rtl' | 'ltr' | 'auto'\r\n}\r\n\r\nexport const TextMenu = ({ editor, dir }: TextMenuProps) => {\r\n const commands = useTextmenuCommands(editor)\r\n const states = useTextmenuStates(editor)\r\n const blockOptions = useTextmenuContentTypes(editor)\r\n const [openAi, setOpenAi] = useState(false)\r\n\r\n return (\r\n <BubbleMenu\r\n tippyOptions={{\r\n placement: 'top-start',\r\n onHide: () => {\r\n setOpenAi(false)\r\n },\r\n popperOptions: {\r\n modifiers: [{ name: 'flip', enabled: false }],\r\n },\r\n }}\r\n editor={editor}\r\n pluginKey=\"textMenu\"\r\n shouldShow={states.shouldShow}\r\n updateDelay={200}\r\n >\r\n {openAi ? (\r\n <AIEditorPanel\r\n editor={editor}\r\n onOpenChange={(value) => {\r\n setOpenAi(value)\r\n }}\r\n />\r\n ) : (\r\n <Toolbar.Wrapper>\r\n <Toolbar.Button\r\n className=\"text-purple-500 hover:text-purple-600 active:text-purple-600 dark:text-purple-400 dark:hover:text-purple-300 dark:active:text-purple-400\"\r\n activeClassname=\"text-purple-600 hover:text-purple-600 dark:text-purple-400 dark:hover:text-purple-200\"\r\n onClick={() => setOpenAi(true)}\r\n >\r\n <Icon icon={Sparkles} className=\"mr-1\" />\r\n {i18next.t('aiTools') || 'AI Tools'}\r\n <span className=\"text-xs ml-1 px-2 py-1 bg-purple-100 text-purple-700 rounded-full dark:bg-purple-700 dark:text-purple-100 align-baseline\">\r\n Beta\r\n </span>\r\n </Toolbar.Button>\r\n <Toolbar.Divider />\r\n <MemoContentTypePicker options={blockOptions} />\r\n {/* <MemoFontFamilyPicker\r\n onChange={commands.onSetFont}\r\n value={states.currentFont || \"\"}\r\n /> */}\r\n {/* <MemoFontSizePicker\r\n onChange={commands.onSetFontSize}\r\n value={states.currentSize || \"\"}\r\n /> */}\r\n <Toolbar.Divider />\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t('boldText') || 'Bold'}\r\n tooltipShortcut={['Mod', 'B']}\r\n onClick={commands.onBold}\r\n active={states.isBold}\r\n >\r\n <Icon icon={Bold} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t('italicText') || 'Italic'}\r\n tooltipShortcut={['Mod', 'I']}\r\n onClick={commands.onItalic}\r\n active={states.isItalic}\r\n >\r\n <Icon icon={Italic} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t('underlineText') || 'Underline'}\r\n tooltipShortcut={['Mod', 'U']}\r\n onClick={commands.onUnderline}\r\n active={states.isUnderline}\r\n >\r\n <Icon icon={Underline} />\r\n </MemoButton>\r\n <EditLinkPopover onSetLink={commands.onLink} />\r\n {/* <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <MemoButton\r\n type=\"button\"\r\n active={!!states.currentHighlight}\r\n tooltip={i18next.t(\"highlightText\", \"Highlight text\")}\r\n >\r\n <Icon icon={Highlighter} />\r\n </MemoButton>\r\n </Popover.Trigger>\r\n <Popover.Content side=\"top\" sideOffset={8} asChild>\r\n <Surface className=\"p-1\">\r\n <MemoColorPicker\r\n color={states.currentHighlight}\r\n onChange={commands.onChangeHighlight}\r\n onClear={commands.onClearHighlight}\r\n />\r\n </Surface>\r\n </Popover.Content>\r\n </Popover.Root> */}\r\n {/* <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <MemoButton\r\n type=\"button\"\r\n active={!!states.currentColor}\r\n tooltip={i18next.t(\"textColor\") || \"Text color\"}\r\n >\r\n <Icon icon={Palette} />\r\n </MemoButton>\r\n </Popover.Trigger>\r\n <Popover.Content side=\"top\" sideOffset={8} asChild>\r\n <Surface className=\"p-1\">\r\n <MemoColorPicker\r\n color={states.currentColor}\r\n onChange={commands.onChangeColor}\r\n onClear={commands.onClearColor}\r\n />\r\n </Surface>\r\n </Popover.Content>\r\n </Popover.Root> */}\r\n <Popover.Root>\r\n <Popover.Trigger asChild>\r\n <MemoButton type=\"button\" tooltip={i18next.t('moreOptions', 'More options')}>\r\n <Icon icon={MoveVertical} />\r\n </MemoButton>\r\n </Popover.Trigger>\r\n <Popover.Content side=\"top\" asChild>\r\n <Toolbar.Wrapper>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t('subscript', 'Subscript')}\r\n tooltipShortcut={['Mod', '.']}\r\n onClick={commands.onSubscript}\r\n active={states.isSubscript}\r\n >\r\n <Icon icon={Subscript} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t('superscript', 'Superscript')}\r\n tooltipShortcut={['Mod', ',']}\r\n onClick={commands.onSuperscript}\r\n active={states.isSuperscript}\r\n >\r\n <Icon icon={Superscript} />\r\n </MemoButton>\r\n <Toolbar.Divider />\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t('alignLeft') || 'Align left'}\r\n tooltipShortcut={['Shift', 'Mod', 'L']}\r\n onClick={commands.onAlignLeft}\r\n active={states.isAlignLeft}\r\n >\r\n <Icon icon={AlignLeft} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t('alignCenter') || 'Align center'}\r\n tooltipShortcut={['Shift', 'Mod', 'E']}\r\n onClick={commands.onAlignCenter}\r\n active={states.isAlignCenter}\r\n >\r\n <Icon icon={AlignCenter} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t('alignRight', 'Align right')}\r\n tooltipShortcut={['Shift', 'Mod', 'R']}\r\n onClick={commands.onAlignRight}\r\n active={states.isAlignRight}\r\n >\r\n <Icon icon={AlignRight} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t('alignJustify') || 'Justify'}\r\n tooltipShortcut={['Shift', 'Mod', 'J']}\r\n onClick={commands.onAlignJustify}\r\n active={states.isAlignJustify}\r\n >\r\n <Icon icon={AlignJustify} />\r\n </MemoButton>\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t('strikethrough', 'Strikethrough')}\r\n tooltipShortcut={['Mod', 'Shift', 'S']}\r\n onClick={commands.onStrike}\r\n active={states.isStrike}\r\n >\r\n <Icon icon={Strikethrough} />\r\n </MemoButton>\r\n\r\n <MemoButton\r\n type=\"button\"\r\n tooltip={i18next.t('clearFormatting') || 'Clear Formatting'}\r\n onClick={commands.onClearFormatting}\r\n >\r\n <Icon icon={RemoveFormatting} />\r\n </MemoButton>\r\n </Toolbar.Wrapper>\r\n </Popover.Content>\r\n </Popover.Root>\r\n </Toolbar.Wrapper>\r\n )}\r\n </BubbleMenu>\r\n )\r\n}\r\n"],"names":["Popover","BubbleMenu","AlignCenter","AlignJustify","AlignLeft","AlignRight","Bold","Italic","MoveVertical","RemoveFormatting","Sparkles","Strikethrough","Subscript","Superscript","Underline","memo","useState","AIEditorPanel","ColorPicker","Icon","Toolbar","ContentTypePicker","EditLinkPopover","i18next","FontSizePicker","useTextmenuCommands","useTextmenuContentTypes","useTextmenuStates","MemoButton","Button","MemoColorPicker","MemoFontSizePicker","MemoContentTypePicker","TextMenu","editor","dir","commands","states","blockOptions","openAi","setOpenAi","tippyOptions","placement","onHide","popperOptions","modifiers","name","enabled","pluginKey","shouldShow","updateDelay","onOpenChange","value","Wrapper","className","activeClassname","onClick","icon","t","span","Divider","options","type","tooltip","tooltipShortcut","onBold","active","isBold","onItalic","isItalic","onUnderline","isUnderline","onSetLink","onLink","Root","Trigger","asChild","Content","side","onSubscript","isSubscript","onSuperscript","isSuperscript","onAlignLeft","isAlignLeft","onAlignCenter","isAlignCenter","onAlignRight","isAlignRight","onAlignJustify","isAlignJustify","onStrike","isStrike","onClearFormatting"],"mappings":"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"}
|
package/dist/src/fields/TiptapEditor/features/ui/SlashCommand/SlashCommandTriggerButton.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlashCommandTriggerButton.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/features/ui/SlashCommand/SlashCommandTriggerButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAA;AAK3D,eAAO,MAAM,yBAAyB,uBAAwB,8BAA8B,sBAqB3F,CAAA"}
|