@toptal/picasso 32.2.0 → 32.3.0

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 (39) hide show
  1. package/QuillEditor/LazyQuillEditor.d.ts +1 -1
  2. package/QuillEditor/QuillEditor.d.ts +1 -1
  3. package/QuillEditor/QuillEditor.js +5 -1
  4. package/QuillEditor/QuillEditor.js.map +1 -1
  5. package/QuillEditor/blots/emoji.d.ts +12 -0
  6. package/QuillEditor/blots/emoji.js +21 -0
  7. package/QuillEditor/blots/emoji.js.map +1 -0
  8. package/QuillEditor/constants.d.ts +1 -0
  9. package/QuillEditor/constants.js +1 -0
  10. package/QuillEditor/constants.js.map +1 -1
  11. package/QuillEditor/hooks/useQuillInstance/useQuillInstance.js +12 -0
  12. package/QuillEditor/hooks/useQuillInstance/useQuillInstance.js.map +1 -1
  13. package/QuillEditor/hooks/useSubscribeToTextEditorEvents/useSubscribeToTextEditorEvents.js +26 -2
  14. package/QuillEditor/hooks/useSubscribeToTextEditorEvents/useSubscribeToTextEditorEvents.js.map +1 -1
  15. package/QuillEditor/types.d.ts +17 -1
  16. package/QuillEditorView/styles.js +8 -1
  17. package/QuillEditorView/styles.js.map +1 -1
  18. package/RichText/hooks/useRichText/useRichText.js +14 -0
  19. package/RichText/hooks/useRichText/useRichText.js.map +1 -1
  20. package/RichTextEditor/RichTextEditor.d.ts +2 -1
  21. package/RichTextEditor/RichTextEditor.js +5 -3
  22. package/RichTextEditor/RichTextEditor.js.map +1 -1
  23. package/RichTextEditor/hooks/useToolbarHandlers/useToolbarHandlers.d.ts +1 -0
  24. package/RichTextEditor/hooks/useToolbarHandlers/useToolbarHandlers.js +12 -1
  25. package/RichTextEditor/hooks/useToolbarHandlers/useToolbarHandlers.js.map +1 -1
  26. package/RichTextEditor/index.d.ts +1 -0
  27. package/RichTextEditor/index.js.map +1 -1
  28. package/RichTextEditor/types.d.ts +1 -0
  29. package/RichTextEditorButton/RichTextEditorButton.d.ts +1 -0
  30. package/RichTextEditorButton/RichTextEditorButton.js.map +1 -1
  31. package/RichTextEditorEmojiPicker/RichTextEditorEmojiPicker.d.ts +8 -0
  32. package/RichTextEditorEmojiPicker/RichTextEditorEmojiPicker.js +58 -0
  33. package/RichTextEditorEmojiPicker/RichTextEditorEmojiPicker.js.map +1 -0
  34. package/RichTextEditorToolbar/RichTextEditorToolbar.d.ts +4 -1
  35. package/RichTextEditorToolbar/RichTextEditorToolbar.js +5 -2
  36. package/RichTextEditorToolbar/RichTextEditorToolbar.js.map +1 -1
  37. package/package.json +5 -1
  38. package/utils/html-to-hast.js +2 -1
  39. package/utils/html-to-hast.js.map +1 -1
@@ -5,7 +5,7 @@ declare const LazyQuillEditor: React.ForwardRefExoticComponent<import("@toptal/p
5
5
  id: string;
6
6
  isFocused: boolean;
7
7
  placeholder?: string | undefined;
8
- plugins?: "link"[] | undefined;
8
+ plugins?: import("./types").EditorPlugin[] | undefined;
9
9
  onSelectionChange: import("./types").SelectionHandler;
10
10
  onTextFormat: import("./types").TextFormatHandler;
11
11
  onTextChange: import("./types").ChangeHandler;
@@ -25,7 +25,7 @@ declare const QuillEditor: React.ForwardRefExoticComponent<BaseProps & {
25
25
  id: string;
26
26
  isFocused: boolean;
27
27
  placeholder?: string | undefined;
28
- plugins?: "link"[] | undefined;
28
+ plugins?: EditorPlugin[] | undefined;
29
29
  onSelectionChange: SelectionHandler;
30
30
  onTextFormat: TextFormatHandler;
31
31
  onTextChange: ChangeHandler;
@@ -5,7 +5,11 @@ import useQuillInstance from './hooks/useQuillInstance';
5
5
  import { useFocus, useSubscribeToQuillEvents, useDisabledEditor, useKeyBindings, useSubscribeToTextEditorEvents, } from './hooks';
6
6
  import useDefaultValue from './hooks/useDefaultValue';
7
7
  const QuillEditor = forwardRef(function QuillEditor({ defaultValue, disabled, 'data-testid': dataTestId, id, isFocused, placeholder, onTextLengthChange, onSelectionChange, onTextFormat, onTextChange, plugins, }, ref) {
8
- const quill = useQuillInstance({ id, placeholder, plugins });
8
+ const quill = useQuillInstance({
9
+ id,
10
+ placeholder,
11
+ plugins,
12
+ });
9
13
  const editorRef = useCombinedRefs(ref, useRef(null));
10
14
  useFocus({ isFocused, quill });
11
15
  useKeyBindings({ quill, onTextFormat });
@@ -1 +1 @@
1
- {"version":3,"file":"QuillEditor.js","sourceRoot":"","sources":["../../src/QuillEditor/QuillEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAGjD,OAAO,eAAe,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,gBAAgB,MAAM,0BAA0B,CAAA;AACvD,OAAO,EACL,QAAQ,EACR,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,8BAA8B,GAC/B,MAAM,SAAS,CAAA;AAChB,OAAO,eAAe,MAAM,yBAAyB,CAAA;AAyBrD,MAAM,WAAW,GAAG,UAAU,CAAwB,SAAS,WAAW,CACxE,EACE,YAAY,EACZ,QAAQ,EACR,aAAa,EAAE,UAAU,EACzB,EAAE,EACF,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,OAAO,GACR,EACD,GAAG;IAEH,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAG,eAAe,CAC/B,GAAG,EACH,MAAM,CAAiB,IAAI,CAAC,CAC7B,CAAA;IAED,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9B,cAAc,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;IACvC,yBAAyB,CAAC;QACxB,KAAK;QACL,YAAY;QACZ,iBAAiB;QACjB,kBAAkB;KACnB,CAAC,CAAA;IACF,8BAA8B,CAAC;QAC7B,SAAS;QACT,KAAK;KACN,CAAC,CAAA;IACF,eAAe,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA;IACxC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;IAEtC,OAAO,oBAAC,eAAe,IAAC,GAAG,EAAE,SAAS,iBAAe,UAAU,EAAE,EAAE,EAAE,EAAE,GAAI,CAAA;AAC7E,CAAC,CAAC,CAAA;AAEF,WAAW,CAAC,YAAY,GAAG;IACzB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,iBAAiB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC3B,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;IACtB,kBAAkB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC5B,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;CACvB,CAAA;AAED,WAAW,CAAC,WAAW,GAAG,aAAa,CAAA;AAEvC,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"QuillEditor.js","sourceRoot":"","sources":["../../src/QuillEditor/QuillEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAGjD,OAAO,eAAe,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,gBAAgB,MAAM,0BAA0B,CAAA;AACvD,OAAO,EACL,QAAQ,EACR,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,8BAA8B,GAC/B,MAAM,SAAS,CAAA;AAChB,OAAO,eAAe,MAAM,yBAAyB,CAAA;AAyBrD,MAAM,WAAW,GAAG,UAAU,CAAwB,SAAS,WAAW,CACxE,EACE,YAAY,EACZ,QAAQ,EACR,aAAa,EAAE,UAAU,EACzB,EAAE,EACF,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,OAAO,GACR,EACD,GAAG;IAEH,MAAM,KAAK,GAAG,gBAAgB,CAAC;QAC7B,EAAE;QACF,WAAW;QACX,OAAO;KACR,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,eAAe,CAC/B,GAAG,EACH,MAAM,CAAiB,IAAI,CAAC,CAC7B,CAAA;IAED,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9B,cAAc,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;IACvC,yBAAyB,CAAC;QACxB,KAAK;QACL,YAAY;QACZ,iBAAiB;QACjB,kBAAkB;KACnB,CAAC,CAAA;IACF,8BAA8B,CAAC;QAC7B,SAAS;QACT,KAAK;KACN,CAAC,CAAA;IACF,eAAe,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA;IACxC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;IAEtC,OAAO,oBAAC,eAAe,IAAC,GAAG,EAAE,SAAS,iBAAe,UAAU,EAAE,EAAE,EAAE,EAAE,GAAI,CAAA;AAC7E,CAAC,CAAC,CAAA;AAEF,WAAW,CAAC,YAAY,GAAG;IACzB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,iBAAiB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC3B,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;IACtB,kBAAkB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC5B,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;CACvB,CAAA;AAED,WAAW,CAAC,WAAW,GAAG,aAAa,CAAA;AAEvC,eAAe,WAAW,CAAA"}
@@ -0,0 +1,12 @@
1
+ declare const EmbedBlot: any;
2
+ export declare class EmojiBlot extends EmbedBlot {
3
+ static create(data: any): any;
4
+ static value(domNode: {
5
+ dataset: {
6
+ src: string;
7
+ };
8
+ }): {
9
+ src: string;
10
+ };
11
+ }
12
+ export {};
@@ -0,0 +1,21 @@
1
+ import Quill from 'quill';
2
+ const EmbedBlot = Quill.import('blots/embed');
3
+ export class EmojiBlot extends EmbedBlot {
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ static create(data) {
6
+ const node = super.create(data);
7
+ node.setAttribute('data-src', data.src);
8
+ node.setAttribute('data-emoji-name', data.emojiId);
9
+ node.setAttribute('src', data.src);
10
+ node.setAttribute('class', 'emoji-icon');
11
+ return node;
12
+ }
13
+ static value(domNode) {
14
+ const { src } = domNode.dataset;
15
+ return { src };
16
+ }
17
+ }
18
+ EmojiBlot.blotName = 'emojiBlot';
19
+ EmojiBlot.className = 'emoji-blot';
20
+ EmojiBlot.tagName = 'img';
21
+ //# sourceMappingURL=emoji.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emoji.js","sourceRoot":"","sources":["../../../src/QuillEditor/blots/emoji.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;AAE7C,MAAM,OAAO,SAAU,SAAQ,SAAS;IACtC,8DAA8D;IAC9D,MAAM,CAAC,MAAM,CAAC,IAAS;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAE/B,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAExC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAqC;QAChD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAA;QAE/B,OAAO,EAAE,GAAG,EAAE,CAAA;IAChB,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,GAAG,WAAW,CAAA;AAChC,SAAS,CAAC,SAAS,GAAG,YAAY,CAAA;AAClC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAA"}
@@ -1,2 +1,3 @@
1
1
  export declare const CUSTOM_QUILL_EDITOR_FORMAT_EVENT = "quill-editor-format";
2
2
  export declare const INSERT_DEFAULT_LINK_TEXT = "quill-editor-insert-default-link-text";
3
+ export declare const INSERT_EMOJI = "quill-editor-insert-emoji";
@@ -1,3 +1,4 @@
1
1
  export const CUSTOM_QUILL_EDITOR_FORMAT_EVENT = 'quill-editor-format';
2
2
  export const INSERT_DEFAULT_LINK_TEXT = 'quill-editor-insert-default-link-text';
3
+ export const INSERT_EMOJI = 'quill-editor-insert-emoji';
3
4
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/QuillEditor/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gCAAgC,GAAG,qBAAqB,CAAA;AACrE,MAAM,CAAC,MAAM,wBAAwB,GAAG,uCAAuC,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/QuillEditor/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gCAAgC,GAAG,qBAAqB,CAAA;AACrE,MAAM,CAAC,MAAM,wBAAwB,GAAG,uCAAuC,CAAA;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAG,2BAA2B,CAAA"}
@@ -2,8 +2,10 @@ import { useEffect, useState } from 'react';
2
2
  import Quill from 'quill';
3
3
  import 'quill-paste-smart';
4
4
  import { useTypographyClasses, makeHeaderFormat, makeBoldFormat, makeLinkFormat, } from '../../formats';
5
+ import { EmojiBlot } from '../../blots/emoji';
5
6
  export const getModules = (plugins) => {
6
7
  const allowLinks = plugins === null || plugins === void 0 ? void 0 : plugins.includes('link');
8
+ const allowEmojis = plugins === null || plugins === void 0 ? void 0 : plugins.includes('emoji');
7
9
  const allowedTags = [
8
10
  'b',
9
11
  'strong',
@@ -21,6 +23,10 @@ export const getModules = (plugins) => {
21
23
  allowedTags.push('a');
22
24
  allowedAttributes.push('href');
23
25
  }
26
+ if (allowEmojis) {
27
+ allowedTags.push('img');
28
+ allowedAttributes.push('src', 'data-src', 'data-emoji-name', 'class');
29
+ }
24
30
  return {
25
31
  clipboard: {
26
32
  matchVisual: false,
@@ -96,6 +102,7 @@ const Inline = Quill.import('blots/inline');
96
102
  // Lower index means deeper in the DOM tree, since not found (-1) is for embeds
97
103
  Inline.order = [
98
104
  'cursor',
105
+ 'emojiBlot',
99
106
  'link',
100
107
  'inline',
101
108
  'underline',
@@ -112,6 +119,11 @@ const useQuillInstance = ({ id, placeholder, plugins, }) => {
112
119
  const extendedFormats = [...formats];
113
120
  Quill.register(makeHeaderFormat(typographyClasses), true);
114
121
  Quill.register(makeBoldFormat(typographyClasses), true);
122
+ const allowEmojis = plugins === null || plugins === void 0 ? void 0 : plugins.includes('emoji');
123
+ if (allowEmojis) {
124
+ Quill.register({ 'formats/emojiBlot': EmojiBlot }, true);
125
+ extendedFormats.push('image', 'emojiBlot');
126
+ }
115
127
  const allowLinks = plugins === null || plugins === void 0 ? void 0 : plugins.includes('link');
116
128
  if (allowLinks) {
117
129
  Quill.register(makeLinkFormat(typographyClasses), true);
@@ -1 +1 @@
1
- {"version":3,"file":"useQuillInstance.js","sourceRoot":"","sources":["../../../../src/QuillEditor/hooks/useQuillInstance/useQuillInstance.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useQuillInstance.js","sourceRoot":"","sources":["../../../../src/QuillEditor/hooks/useQuillInstance/useQuillInstance.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { useCallback, useEffect, useMemo } from 'react';
2
- import { CUSTOM_QUILL_EDITOR_FORMAT_EVENT, INSERT_DEFAULT_LINK_TEXT, } from '../../constants';
2
+ import { CUSTOM_QUILL_EDITOR_FORMAT_EVENT, INSERT_DEFAULT_LINK_TEXT, INSERT_EMOJI, } from '../../constants';
3
3
  import getFormatChangeHandler from '../../utils/getFormatChangeHandler';
4
4
  const useSubscribeToTextEditorEvents = ({ editorRef, quill, }) => {
5
5
  const formatChangeHandler = useMemo(() => {
@@ -20,6 +20,28 @@ const useSubscribeToTextEditorEvents = ({ editorRef, quill, }) => {
20
20
  quill.setSelection(quill.getLength() - 1 - link.length, quill.getLength());
21
21
  }
22
22
  }, [quill]);
23
+ const insertEmoji = useCallback(({ detail }) => {
24
+ var _a, _b;
25
+ if (!quill) {
26
+ return;
27
+ }
28
+ const { native, src, id } = detail;
29
+ if (native) {
30
+ const selection = (_a = quill.getSelection(true)) !== null && _a !== void 0 ? _a : { index: 0, length: 0 };
31
+ if (selection.length === 0) {
32
+ quill.insertText(selection.index, native);
33
+ }
34
+ return;
35
+ }
36
+ const selection = (_b = quill.getSelection(true)) !== null && _b !== void 0 ? _b : { index: 0, length: 0 };
37
+ if (selection.length === 0) {
38
+ quill.insertEmbed(selection.index, 'emojiBlot', {
39
+ src,
40
+ emojiId: id,
41
+ });
42
+ quill.setSelection(selection.index + 1, selection.length + 1);
43
+ }
44
+ }, [quill]);
23
45
  useEffect(() => {
24
46
  const editor = editorRef.current;
25
47
  if (!editor) {
@@ -27,11 +49,13 @@ const useSubscribeToTextEditorEvents = ({ editorRef, quill, }) => {
27
49
  }
28
50
  editor.addEventListener(CUSTOM_QUILL_EDITOR_FORMAT_EVENT, formatChangeHandler, false);
29
51
  editor.addEventListener(INSERT_DEFAULT_LINK_TEXT, insertDefaultLinkText, false);
52
+ editor.addEventListener(INSERT_EMOJI, insertEmoji, false);
30
53
  return () => {
31
54
  editor === null || editor === void 0 ? void 0 : editor.removeEventListener(CUSTOM_QUILL_EDITOR_FORMAT_EVENT, formatChangeHandler, false);
32
55
  editor === null || editor === void 0 ? void 0 : editor.removeEventListener(INSERT_DEFAULT_LINK_TEXT, insertDefaultLinkText, false);
56
+ editor === null || editor === void 0 ? void 0 : editor.removeEventListener(INSERT_EMOJI, insertEmoji, false);
33
57
  };
34
- }, [editorRef, formatChangeHandler, insertDefaultLinkText]);
58
+ }, [editorRef, formatChangeHandler, insertDefaultLinkText, insertEmoji]);
35
59
  };
36
60
  export default useSubscribeToTextEditorEvents;
37
61
  //# sourceMappingURL=useSubscribeToTextEditorEvents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSubscribeToTextEditorEvents.js","sourceRoot":"","sources":["../../../../src/QuillEditor/hooks/useSubscribeToTextEditorEvents/useSubscribeToTextEditorEvents.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAGvD,OAAO,EACL,gCAAgC,EAChC,wBAAwB,GACzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,sBAAsB,MAAM,oCAAoC,CAAA;AAEvE,MAAM,8BAA8B,GAAG,CAAC,EACtC,SAAS,EACT,KAAK,GAIN,EAAE,EAAE;IACH,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;SAChB;QAED,OAAO,sBAAsB,CAAC,KAAK,CAAkB,CAAA;IACvD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,MAAM,qBAAqB,GAAG,WAAW,CACvC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;;QACb,IAAI,CAAC,KAAK,EAAE;YACV,OAAM;SACP;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;QAEvB,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,mCAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;QAErE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YACvC,KAAK,CAAC,YAAY,CAChB,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EACnC,KAAK,CAAC,SAAS,EAAE,CAClB,CAAA;SACF;IACH,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAA;QAEhC,IAAI,CAAC,MAAM,EAAE;YACX,OAAM;SACP;QAED,MAAM,CAAC,gBAAgB,CACrB,gCAAgC,EAChC,mBAAmB,EACnB,KAAK,CACN,CAAA;QAED,MAAM,CAAC,gBAAgB,CACrB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,CACN,CAAA;QAED,OAAO,GAAG,EAAE;YACV,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,CACzB,gCAAgC,EAChC,mBAAmB,EACnB,KAAK,CACN,CAAA;YACD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,CACzB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,CACN,CAAA;QACH,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,CAAA;AAC7D,CAAC,CAAA;AAED,eAAe,8BAA8B,CAAA"}
1
+ {"version":3,"file":"useSubscribeToTextEditorEvents.js","sourceRoot":"","sources":["../../../../src/QuillEditor/hooks/useSubscribeToTextEditorEvents/useSubscribeToTextEditorEvents.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export declare type ItalicValue = boolean | undefined;
3
3
  export declare type ListValue = 'bullet' | 'ordered' | undefined;
4
4
  export declare type HeaderValue = 3 | undefined;
5
5
  export declare type LinkValue = string | undefined;
6
+ export declare type EmojiValue = string;
6
7
  export declare type FormatType = {
7
8
  bold: BoldValue;
8
9
  italic: ItalicValue;
@@ -30,4 +31,19 @@ export declare type TextFormatHandler = (e: TextFormatHandlerEvent) => void;
30
31
  export declare type SelectionHandler = (format: FormatType) => void;
31
32
  export declare type ChangeHandler = (html: string) => void;
32
33
  export declare type TextLengthChangeHandler = (length: number) => void;
33
- export declare type EditorPlugin = 'link';
34
+ export declare type EditorPlugin = 'link' | 'emoji';
35
+ export declare type CustomEmoji = {
36
+ id: string;
37
+ name: string;
38
+ keywords: string[];
39
+ skins: [
40
+ {
41
+ src: string;
42
+ }
43
+ ];
44
+ };
45
+ export declare type CustomEmojiGroup = {
46
+ id: string;
47
+ name: string;
48
+ emojis: CustomEmoji[];
49
+ };
@@ -124,7 +124,14 @@ const clipboard = {
124
124
  top: '50%',
125
125
  },
126
126
  };
127
- const quillSpecificStyles = (theme) => (Object.assign(Object.assign(Object.assign(Object.assign({}, placeholder(theme)), editor), hidden), clipboard));
127
+ const emojiIcon = {
128
+ '& .emoji-icon': {
129
+ verticalAlign: 'bottom',
130
+ width: '22px',
131
+ height: '22px',
132
+ },
133
+ };
134
+ const quillSpecificStyles = (theme) => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, placeholder(theme)), editor), hidden), clipboard), emojiIcon));
128
135
  export default (theme) => {
129
136
  return createStyles({
130
137
  root: Object.assign(Object.assign(Object.assign({ height: '12.5em', overflowY: 'hidden', resize: 'vertical', position: 'relative' }, listStyles), margins), quillSpecificStyles(theme)),
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/QuillEditorView/styles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/QuillEditorView/styles.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import toH from 'hast-to-hyperscript';
13
13
  import React, { useMemo, createElement, isValidElement } from 'react';
14
+ import { makeStyles } from '@material-ui/core';
14
15
  import Typography from '../../../Typography';
15
16
  import Container from '../../../Container';
16
17
  import List from '../../../List';
@@ -21,6 +22,13 @@ const Li = (_a) => {
21
22
  var { children } = _a, props = __rest(_a, ["children"]);
22
23
  return (React.createElement(ListItem, Object.assign({}, props), children));
23
24
  };
25
+ const useStyles = makeStyles({
26
+ emoji: {
27
+ width: 24,
28
+ height: 24,
29
+ verticalAlign: 'bottom',
30
+ },
31
+ });
24
32
  /* eslint-disable id-length */
25
33
  const P = ({ children }) => (React.createElement(Typography, { size: 'medium' }, children));
26
34
  const Strong = ({ children }) => (React.createElement(Typography, { size: 'medium', as: 'strong', weight: 'semibold' }, children));
@@ -33,6 +41,11 @@ const A = (_a) => {
33
41
  var { children } = _a, props = __rest(_a, ["children"]);
34
42
  return React.createElement(Link, Object.assign({}, props), children);
35
43
  };
44
+ const Emoji = (_a) => {
45
+ var props = __rest(_a, []);
46
+ const classes = useStyles();
47
+ return React.createElement("img", Object.assign({ className: classes.emoji }, props));
48
+ };
36
49
  const componentMap = {
37
50
  p: P,
38
51
  strong: Strong,
@@ -42,6 +55,7 @@ const componentMap = {
42
55
  ol: Ol,
43
56
  ul: Ul,
44
57
  a: A,
58
+ img: Emoji,
45
59
  };
46
60
  const picassoMapper = (child) => {
47
61
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"useRichText.js","sourceRoot":"","sources":["../../../../src/RichText/hooks/useRichText/useRichText.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useRichText.js","sourceRoot":"","sources":["../../../../src/RichText/hooks/useRichText/useRichText.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { BaseProps } from '@toptal/picasso-shared';
3
- import type { EditorPlugin } from '../QuillEditor';
3
+ import type { CustomEmojiGroup, EditorPlugin } from '../QuillEditor';
4
4
  import type { ASTType } from '../RichText';
5
5
  import type { Status } from '../OutlinedInput';
6
6
  import type { CounterMessageSetter } from './types';
@@ -71,6 +71,7 @@ export interface Props extends BaseProps {
71
71
  orderedListButton?: string;
72
72
  };
73
73
  highlight?: 'autofill';
74
+ customEmojis?: CustomEmojiGroup[];
74
75
  }
75
76
  export declare const RichTextEditor: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
76
77
  export default RichTextEditor;
@@ -16,7 +16,7 @@ const useStyles = makeStyles(styles, {
16
16
  name: 'RichTextEditor',
17
17
  });
18
18
  export const RichTextEditor = forwardRef(function RichTextEditor(props, ref) {
19
- const { 'data-testid': dataTestId, plugins, autoFocus = false, className, defaultValue, disabled, id, onChange = noop, onFocus = noop, onBlur = noop, placeholder, minLength, maxLength, minLengthMessage, maxLengthMessage, style, status, testIds, hiddenInputId, setHasMultilineCounter, name, highlight, } = props;
19
+ const { 'data-testid': dataTestId, plugins, autoFocus = false, className, defaultValue, disabled, id, onChange = noop, onFocus = noop, onBlur = noop, placeholder, minLength, maxLength, minLengthMessage, maxLengthMessage, style, status, testIds, hiddenInputId, setHasMultilineCounter, name, highlight, customEmojis, } = props;
20
20
  const classes = useStyles();
21
21
  const toolbarRef = useRef(null);
22
22
  const editorRef = useRef(null);
@@ -30,7 +30,7 @@ export const RichTextEditor = forwardRef(function RichTextEditor(props, ref) {
30
30
  });
31
31
  const { handleSelectionChange } = useOnSelectionChange({ dispatch });
32
32
  const { handleTextFormat } = useOnTextFormat({ dispatch });
33
- const { handleBold, handleItalic, handleHeader, handleOrdered, handleUnordered, handleLink, } = useToolbarHandlers({
33
+ const { handleBold, handleItalic, handleHeader, handleOrdered, handleUnordered, handleLink, insertEmoji, } = useToolbarHandlers({
34
34
  editorRef,
35
35
  handleTextFormat,
36
36
  format: state.toolbar.format,
@@ -56,6 +56,8 @@ export const RichTextEditor = forwardRef(function RichTextEditor(props, ref) {
56
56
  // declare the array outside the component level
57
57
  // eslint-disable-next-line react-hooks/exhaustive-deps
58
58
  const memoizedPlugins = useMemo(() => plugins, []);
59
+ // eslint-disable-next-line react-hooks/exhaustive-deps
60
+ const memoizedCustomEmojis = useMemo(() => customEmojis, []);
59
61
  useHasMultilineCounter(name, !!counterMessage, setHasMultilineCounter);
60
62
  return (React.createElement(React.Fragment, null,
61
63
  React.createElement(Container, { className: cx(classes.editorWrapper, {
@@ -72,7 +74,7 @@ export const RichTextEditor = forwardRef(function RichTextEditor(props, ref) {
72
74
  }
73
75
  wrapperRef.current = node;
74
76
  }, "data-testid": (testIds === null || testIds === void 0 ? void 0 : testIds.wrapper) || dataTestId, onFocus: handleFocus, onBlur: handleBlur },
75
- React.createElement(Toolbar, { ref: toolbarRef, disabled: disabled || state.toolbar.disabled, id: id, format: state.toolbar.format, onBoldClick: handleBold, onItalicClick: handleItalic, onUnorderedClick: handleUnordered, onOrderedClick: handleOrdered, onHeaderChange: handleHeader, onLinkClick: handleLink, plugins: memoizedPlugins, testIds: {
77
+ React.createElement(Toolbar, { ref: toolbarRef, disabled: disabled || state.toolbar.disabled, id: id, format: state.toolbar.format, onBoldClick: handleBold, onItalicClick: handleItalic, onUnorderedClick: handleUnordered, onOrderedClick: handleOrdered, onHeaderChange: handleHeader, onLinkClick: handleLink, onInsertEmoji: insertEmoji, plugins: memoizedPlugins, customEmojis: memoizedCustomEmojis, testIds: {
76
78
  headerSelect: testIds === null || testIds === void 0 ? void 0 : testIds.headerSelect,
77
79
  boldButton: testIds === null || testIds === void 0 ? void 0 : testIds.boldButton,
78
80
  italicButton: testIds === null || testIds === void 0 ? void 0 : testIds.italicButton,
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.js","sourceRoot":"","sources":["../../src/RichTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RichTextEditor.js","sourceRoot":"","sources":["../../src/RichTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"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"}
@@ -13,5 +13,6 @@ declare const useToolbarHandlers: ({ editorRef, handleTextFormat, format }: Prop
13
13
  handleUnordered: ButtonHandlerType;
14
14
  handleHeader: SelectOnChangeHandler;
15
15
  handleLink: ButtonHandlerType;
16
+ insertEmoji: (emoji: any) => void;
16
17
  };
17
18
  export default useToolbarHandlers;
@@ -1,6 +1,6 @@
1
1
  import { useCallback } from 'react';
2
2
  import { CUSTOM_QUILL_EDITOR_FORMAT_EVENT } from '../../../QuillEditor';
3
- import { INSERT_DEFAULT_LINK_TEXT } from '../../../QuillEditor/constants';
3
+ import { INSERT_DEFAULT_LINK_TEXT, INSERT_EMOJI, } from '../../../QuillEditor/constants';
4
4
  import { convertHeaderToEditorValue } from '../../utils/convertFormat';
5
5
  const useToolbarHandlers = ({ editorRef, handleTextFormat, format }) => {
6
6
  const sendFormatEvent = useCallback((detail) => {
@@ -17,6 +17,13 @@ const useToolbarHandlers = ({ editorRef, handleTextFormat, format }) => {
17
17
  });
18
18
  (_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.dispatchEvent(defaultLinkTextEvent);
19
19
  }, [editorRef]);
20
+ const sendInsertEmojiEvent = useCallback(detail => {
21
+ var _a;
22
+ const insertEmojiEvent = new CustomEvent(INSERT_EMOJI, {
23
+ detail,
24
+ });
25
+ (_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.dispatchEvent(insertEmojiEvent);
26
+ }, [editorRef]);
20
27
  const handleBold = () => {
21
28
  const bold = !format.bold;
22
29
  sendFormatEvent({ bold });
@@ -71,6 +78,9 @@ const useToolbarHandlers = ({ editorRef, handleTextFormat, format }) => {
71
78
  value: link,
72
79
  });
73
80
  };
81
+ const insertEmoji = (emoji) => {
82
+ sendInsertEmojiEvent(emoji);
83
+ };
74
84
  return {
75
85
  handleBold,
76
86
  handleItalic,
@@ -78,6 +88,7 @@ const useToolbarHandlers = ({ editorRef, handleTextFormat, format }) => {
78
88
  handleUnordered,
79
89
  handleHeader,
80
90
  handleLink,
91
+ insertEmoji,
81
92
  };
82
93
  };
83
94
  export default useToolbarHandlers;
@@ -1 +1 @@
1
- {"version":3,"file":"useToolbarHandlers.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/hooks/useToolbarHandlers/useToolbarHandlers.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useToolbarHandlers.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/hooks/useToolbarHandlers/useToolbarHandlers.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { OmitInternalProps } from '@toptal/picasso-shared';
2
2
  import type { Props } from './RichTextEditor';
3
+ export type { CustomEmojiGroup } from './types';
3
4
  export { default } from './RichTextEditor';
4
5
  export type { RichTextEditorChangeHandler } from './types';
5
6
  export declare type RichTextEditorProps = OmitInternalProps<Props>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/RichTextEditor/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/RichTextEditor/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA"}
@@ -1,3 +1,4 @@
1
1
  import type { ChangeHandler } from '../QuillEditor';
2
2
  export declare type RichTextEditorChangeHandler = ChangeHandler;
3
3
  export declare type CounterMessageSetter = (limit: number, currLength: number, isError: boolean) => string;
4
+ export type { CustomEmojiGroup, CustomEmoji } from '../QuillEditor';
@@ -6,6 +6,7 @@ declare type Props = BaseProps & {
6
6
  disabled: boolean;
7
7
  icon: ReactElement;
8
8
  onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;
9
+ id?: string;
9
10
  };
10
11
  declare const RichTextEditorButton: {
11
12
  (props: Props): JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditorButton.js","sourceRoot":"","sources":["../../src/RichTextEditorButton/RichTextEditorButton.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,cAAc,MAAM,mBAAmB,CAAA;AAC9C,OAAO,MAAM,MAAM,UAAU,CAAA;AAS7B,iFAAiF;AACjF,iFAAiF;AACjF,uEAAuE;AACvE,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE;IAC1C,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,EAAE;CACV,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,CAAC,KAAY,EAAE,EAAE;IAC5C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAAtE,+DAA8D,CAAQ,CAAA;IAC5E,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAEhC,OAAO,CACL,oBAAC,cAAc,kBACb,OAAO,EAAC,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CACX,OAAO,CAAC,MAAM,EACd;YACE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM;SAC/B,EACD,SAAS,CACV,EACD,QAAQ,EAAE,QAAQ,IACd,IAAI,EACR,CACH,CAAA;AACH,CAAC,CAAA;AAED,oBAAoB,CAAC,YAAY,GAAG;IAClC,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;CAClB,CAAA;AAED,oBAAoB,CAAC,WAAW,GAAG,sBAAsB,CAAA;AAEzD,eAAe,oBAAoB,CAAA"}
1
+ {"version":3,"file":"RichTextEditorButton.js","sourceRoot":"","sources":["../../src/RichTextEditorButton/RichTextEditorButton.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,cAAc,MAAM,mBAAmB,CAAA;AAC9C,OAAO,MAAM,MAAM,UAAU,CAAA;AAU7B,iFAAiF;AACjF,iFAAiF;AACjF,uEAAuE;AACvE,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE;IAC1C,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,EAAE;CACV,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,CAAC,KAAY,EAAE,EAAE;IAC5C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAAtE,+DAA8D,CAAQ,CAAA;IAC5E,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAEhC,OAAO,CACL,oBAAC,cAAc,kBACb,OAAO,EAAC,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CACX,OAAO,CAAC,MAAM,EACd;YACE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM;SAC/B,EACD,SAAS,CACV,EACD,QAAQ,EAAE,QAAQ,IACd,IAAI,EACR,CACH,CAAA;AACH,CAAC,CAAA;AAED,oBAAoB,CAAC,YAAY,GAAG;IAClC,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;CAClB,CAAA;AAED,oBAAoB,CAAC,WAAW,GAAG,sBAAsB,CAAA;AAEzD,eAAe,oBAAoB,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { CustomEmojiGroup } from '../QuillEditor';
2
+ interface Props {
3
+ richEditorId: string;
4
+ customEmojis?: CustomEmojiGroup[];
5
+ onInsertEmoji: (emoji: string) => void;
6
+ }
7
+ export declare const RichtTextEditorEmojiPicker: ({ richEditorId, customEmojis, onInsertEmoji, }: Props) => JSX.Element;
8
+ export {};
@@ -0,0 +1,58 @@
1
+ /* eslint-disable no-inline-styles/no-inline-styles */
2
+ import React, { useEffect } from 'react';
3
+ import data from '@emoji-mart/data';
4
+ import Picker from '@emoji-mart/react';
5
+ import { makeStyles } from '@material-ui/core';
6
+ import cx from 'classnames';
7
+ import Container from '../Container';
8
+ import TextEditorButton from '../RichTextEditorButton';
9
+ const TRIGGER_EMOJI_PICKER_ID = 'trigger-emoji-picker';
10
+ const useStyles = makeStyles({
11
+ emojiPicker: {
12
+ position: 'absolute',
13
+ top: 34,
14
+ left: 0,
15
+ zIndex: 10,
16
+ opacity: 0,
17
+ pointerEvents: 'none',
18
+ },
19
+ activeOpacity: { opacity: 1 },
20
+ activePointers: { pointerEvents: 'all' },
21
+ });
22
+ const handleEmojiPickerEscBehaviour = (event, setShowEmojiPicker) => {
23
+ if (event.key === 'Escape') {
24
+ setShowEmojiPicker(false);
25
+ }
26
+ };
27
+ export const RichtTextEditorEmojiPicker = ({ richEditorId, customEmojis, onInsertEmoji, }) => {
28
+ const [showEmojiPicker, setShowEmojiPicker] = React.useState(false);
29
+ const classes = useStyles({ showEmojiPicker });
30
+ const handleEmojiPickerClick = () => {
31
+ setShowEmojiPicker(!showEmojiPicker);
32
+ };
33
+ const closePicker = () => {
34
+ setShowEmojiPicker(false);
35
+ };
36
+ const handleEmojiInsert = (emoji) => {
37
+ onInsertEmoji(emoji);
38
+ setShowEmojiPicker(false);
39
+ };
40
+ useEffect(() => {
41
+ if (!showEmojiPicker) {
42
+ return;
43
+ }
44
+ document.body.addEventListener('keyup', event => {
45
+ handleEmojiPickerEscBehaviour(event, setShowEmojiPicker);
46
+ });
47
+ return () => {
48
+ document.body.removeEventListener('keyup', event => {
49
+ handleEmojiPickerEscBehaviour(event, setShowEmojiPicker);
50
+ });
51
+ };
52
+ }, [showEmojiPicker, setShowEmojiPicker]);
53
+ return (React.createElement(Container, { style: { position: 'relative' } },
54
+ React.createElement(TextEditorButton, { onClick: handleEmojiPickerClick, icon: React.createElement(Container, { style: { pointerEvents: 'none' } }, "\uD83D\uDE42"), id: TRIGGER_EMOJI_PICKER_ID }),
55
+ React.createElement(Container, { className: cx(classes.emojiPicker, showEmojiPicker && classes.activeOpacity, showEmojiPicker && classes.activePointers) },
56
+ React.createElement(Picker, { id: `emoji-picker-${richEditorId}`, key: `emoji-picker-${richEditorId}`, data: data, custom: customEmojis, onEmojiSelect: handleEmojiInsert, onClickOutside: showEmojiPicker && closePicker }))));
57
+ };
58
+ //# sourceMappingURL=RichTextEditorEmojiPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RichTextEditorEmojiPicker.js","sourceRoot":"","sources":["../../src/RichTextEditorEmojiPicker/RichTextEditorEmojiPicker.tsx"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,IAAI,MAAM,kBAAkB,CAAA;AACnC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,SAAS,MAAM,cAAc,CAAA;AACpC,OAAO,gBAAgB,MAAM,yBAAyB,CAAA;AAStD,MAAM,uBAAuB,GAAG,sBAAsB,CAAA;AAMtD,MAAM,SAAS,GAAG,UAAU,CAAoB;IAC9C,WAAW,EAAE;QACX,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC;QACV,aAAa,EAAE,MAAM;KACtB;IACD,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;IAC7B,cAAc,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;CACzC,CAAC,CAAA;AAEF,MAAM,6BAA6B,GAAG,CACpC,KAAoB,EACpB,kBAAiE,EACjE,EAAE;IACF,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;QAC1B,kBAAkB,CAAC,KAAK,CAAC,CAAA;KAC1B;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EACzC,YAAY,EACZ,YAAY,EACZ,aAAa,GACP,EAAE,EAAE;IACV,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEnE,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC,CAAA;IAE9C,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,kBAAkB,CAAC,CAAC,eAAe,CAAC,CAAA;IACtC,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,EAAE;QAC1C,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE;YACpB,OAAM;SACP;QAED,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;YAC9C,6BAA6B,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjD,6BAA6B,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;YAC1D,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAEzC,OAAO,CACL,oBAAC,SAAS,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;QACxC,oBAAC,gBAAgB,IACf,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,oBAAC,SAAS,IAAC,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,mBAAgB,EACjE,EAAE,EAAE,uBAAuB,GAC3B;QACF,oBAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,OAAO,CAAC,WAAW,EACnB,eAAe,IAAI,OAAO,CAAC,aAAa,EACxC,eAAe,IAAI,OAAO,CAAC,cAAc,CAC1C;YAED,oBAAC,MAAM,IACL,EAAE,EAAE,gBAAgB,YAAY,EAAE,EAClC,GAAG,EAAE,gBAAgB,YAAY,EAAE,EACnC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,iBAAiB,EAChC,cAAc,EAAE,eAAe,IAAI,WAAW,GAC9C,CACQ,CACF,CACb,CAAA;AACH,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { ButtonHandlerType, SelectOnChangeHandler, FormatType } from './types';
3
- import type { EditorPlugin } from '../QuillEditor';
3
+ import type { CustomEmojiGroup, EditorPlugin } from '../QuillEditor';
4
4
  declare type Props = {
5
5
  disabled: boolean;
6
6
  id: string;
@@ -12,14 +12,17 @@ declare type Props = {
12
12
  unorderedListButton?: string;
13
13
  orderedListButton?: string;
14
14
  linkButton?: string;
15
+ emojiButton?: string;
15
16
  };
16
17
  onBoldClick: ButtonHandlerType;
17
18
  onItalicClick: ButtonHandlerType;
18
19
  onLinkClick: ButtonHandlerType;
20
+ onInsertEmoji: (emoji: string) => void;
19
21
  onHeaderChange: SelectOnChangeHandler;
20
22
  onUnorderedClick: ButtonHandlerType;
21
23
  onOrderedClick: ButtonHandlerType;
22
24
  plugins?: EditorPlugin[];
25
+ customEmojis?: CustomEmojiGroup[];
23
26
  };
24
27
  export declare const RichTextEditorToolbar: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
25
28
  export default RichTextEditorToolbar;
@@ -6,14 +6,16 @@ import Container from '../Container';
6
6
  import Select from '../Select';
7
7
  import styles from './styles';
8
8
  import TextEditorButton from '../RichTextEditorButton';
9
+ import { RichtTextEditorEmojiPicker } from '../RichTextEditorEmojiPicker/RichTextEditorEmojiPicker';
9
10
  const useStyles = makeStyles(styles, {
10
11
  name: 'RichTextEditorToolbar',
11
12
  });
12
13
  export const RichTextEditorToolbar = forwardRef(function RichTextEditorToolbar(props, ref) {
13
- const { disabled, id, format, onBoldClick, onItalicClick, onLinkClick, onHeaderChange, onUnorderedClick, onOrderedClick, testIds, plugins, } = props;
14
+ const { disabled, id, format, onBoldClick, onItalicClick, onLinkClick, onInsertEmoji, onHeaderChange, onUnorderedClick, onOrderedClick, testIds, plugins, customEmojis, } = props;
14
15
  const classes = useStyles(props);
15
16
  const isHeadingFormat = format.header === '3';
16
17
  const allowLinks = plugins === null || plugins === void 0 ? void 0 : plugins.includes('link');
18
+ const allowEmojis = plugins === null || plugins === void 0 ? void 0 : plugins.includes('emoji');
17
19
  return (React.createElement(Container, { id: `${id}toolbar`, ref: ref, className: classes.toolbar },
18
20
  React.createElement(Container, { className: cx(classes.group, {
19
21
  groupDisabled: disabled,
@@ -29,7 +31,8 @@ export const RichTextEditorToolbar = forwardRef(function RichTextEditorToolbar(p
29
31
  React.createElement(TextEditorButton, { icon: React.createElement(ListUnordered16, null), onClick: onUnorderedClick, active: format.list === 'bullet', disabled: disabled, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.unorderedListButton }),
30
32
  React.createElement(TextEditorButton, { icon: React.createElement(ListOrdered16, null), onClick: onOrderedClick, active: format.list === 'ordered', disabled: disabled, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.orderedListButton })),
31
33
  allowLinks && (React.createElement(Container, { className: classes.group },
32
- React.createElement(TextEditorButton, { icon: React.createElement(Link16, null), onClick: onLinkClick, active: !!format.link, disabled: disabled, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.linkButton })))));
34
+ React.createElement(TextEditorButton, { icon: React.createElement(Link16, null), onClick: onLinkClick, active: !!format.link, disabled: disabled, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.linkButton }))),
35
+ allowEmojis && (React.createElement(RichtTextEditorEmojiPicker, { richEditorId: id, customEmojis: customEmojis, onInsertEmoji: onInsertEmoji }))));
33
36
  });
34
37
  RichTextEditorToolbar.defaultProps = {
35
38
  disabled: false,
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditorToolbar.js","sourceRoot":"","sources":["../../src/RichTextEditorToolbar/RichTextEditorToolbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RichTextEditorToolbar.js","sourceRoot":"","sources":["../../src/RichTextEditorToolbar/RichTextEditorToolbar.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toptal/picasso",
3
- "version": "32.2.0",
3
+ "version": "32.3.0",
4
4
  "description": "Toptal UI components library",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -31,6 +31,8 @@
31
31
  "typescript": "~4.7.0"
32
32
  },
33
33
  "dependencies": {
34
+ "@emoji-mart/data": "^1.1.2",
35
+ "@emoji-mart/react": "^1.1.1",
34
36
  "@toptal/picasso-shared": "11.3.0",
35
37
  "ap-style-title-case": "^1.1.2",
36
38
  "classnames": "^2.3.1",
@@ -41,12 +43,14 @@
41
43
  "date-fns-tz": "^2.0.0",
42
44
  "debounce": "^1.2.1",
43
45
  "detect-browser": "^5.3.0",
46
+ "emoji-mart": "^5.5.2",
44
47
  "glider-js": "^1.7.8",
45
48
  "hast-to-hyperscript": "^9.0.1",
46
49
  "hast-util-from-dom": "^3.0.0",
47
50
  "hast-util-sanitize": "^3.0.2",
48
51
  "hast-util-to-html": "^7.1.3",
49
52
  "quill": "^1.3.7",
53
+ "quill-emoji": "^0.2.0",
50
54
  "quill-paste-smart": "^1.4.9",
51
55
  "react-content-loader": "^6.2.1",
52
56
  "react-dropzone": "^11.4.0",
@@ -9,8 +9,9 @@ export const hastSanitizeSchema = {
9
9
  attributes: {
10
10
  '*': [],
11
11
  a: ['href'],
12
+ img: ['src', 'data-src', 'data-emoji-name', 'class'],
12
13
  },
13
- tagNames: ['h3', 'p', 'br', 'strong', 'em', 'ul', 'ol', 'li', 'a'],
14
+ tagNames: ['h3', 'p', 'br', 'strong', 'em', 'ul', 'ol', 'li', 'a', 'img'],
14
15
  strip: ['script'],
15
16
  };
16
17
  const htmlToAst = (html) => {
@@ -1 +1 @@
1
- {"version":3,"file":"html-to-hast.js","sourceRoot":"","sources":["../../src/utils/html-to-hast.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAC7C,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAI5C,MAAM,CAAC,MAAM,kBAAkB,GAAW;IACxC,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE;QACT,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;KACjB;IACD,UAAU,EAAE;QACV,GAAG,EAAE,EAAE;QACP,CAAC,EAAE,CAAC,MAAM,CAAC;KACZ;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;IAClE,KAAK,EAAE,CAAC,QAAQ,CAAC;CAClB,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;IACjC,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAEtD,CAAA;IAEhB,MAAM,GAAG,GAAY;QACnB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;KACjE,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"html-to-hast.js","sourceRoot":"","sources":["../../src/utils/html-to-hast.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAC7C,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAI5C,MAAM,CAAC,MAAM,kBAAkB,GAAW;IACxC,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE;QACT,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;KACjB;IACD,UAAU,EAAE;QACV,GAAG,EAAE,EAAE;QACP,CAAC,EAAE,CAAC,MAAM,CAAC;QACX,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,CAAC;KACrD;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;IACzE,KAAK,EAAE,CAAC,QAAQ,CAAC;CAClB,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;IACjC,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAEtD,CAAA;IAEhB,MAAM,GAAG,GAAY;QACnB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;KACjE,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,eAAe,SAAS,CAAA"}