@toptal/picasso 26.1.2 → 26.2.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 (65) hide show
  1. package/DatePicker/utils.d.ts +3 -3
  2. package/QuillEditor/LazyQuillEditor.d.ts +1 -0
  3. package/QuillEditor/QuillEditor.d.ts +3 -1
  4. package/QuillEditor/QuillEditor.js +2 -2
  5. package/QuillEditor/QuillEditor.js.map +1 -1
  6. package/QuillEditor/constants.d.ts +1 -0
  7. package/QuillEditor/constants.js +1 -0
  8. package/QuillEditor/constants.js.map +1 -1
  9. package/QuillEditor/formats/index.d.ts +1 -0
  10. package/QuillEditor/formats/index.js +1 -0
  11. package/QuillEditor/formats/index.js.map +1 -1
  12. package/QuillEditor/formats/link.d.ts +8 -0
  13. package/QuillEditor/formats/link.js +24 -0
  14. package/QuillEditor/formats/link.js.map +1 -0
  15. package/QuillEditor/hooks/useQuillInstance/useQuillInstance.d.ts +4 -2
  16. package/QuillEditor/hooks/useQuillInstance/useQuillInstance.js +46 -8
  17. package/QuillEditor/hooks/useQuillInstance/useQuillInstance.js.map +1 -1
  18. package/QuillEditor/hooks/useSubscribeToTextEditorEvents/useSubscribeToTextEditorEvents.js +17 -3
  19. package/QuillEditor/hooks/useSubscribeToTextEditorEvents/useSubscribeToTextEditorEvents.js.map +1 -1
  20. package/QuillEditor/types.d.ts +6 -0
  21. package/RatingThumbs/RatingThumbs.js +3 -3
  22. package/RatingThumbs/RatingThumbs.js.map +1 -1
  23. package/RichText/hooks/useRichText/useRichText.js +6 -0
  24. package/RichText/hooks/useRichText/useRichText.js.map +1 -1
  25. package/RichText/types.d.ts +1 -1
  26. package/RichTextEditor/RichTextEditor.d.ts +3 -0
  27. package/RichTextEditor/RichTextEditor.js +10 -5
  28. package/RichTextEditor/RichTextEditor.js.map +1 -1
  29. package/RichTextEditor/hooks/useOnSelectionChange/useOnSelectionChange.js +2 -1
  30. package/RichTextEditor/hooks/useOnSelectionChange/useOnSelectionChange.js.map +1 -1
  31. package/RichTextEditor/hooks/useOnTextFormat/useOnTextFormat.js +5 -1
  32. package/RichTextEditor/hooks/useOnTextFormat/useOnTextFormat.js.map +1 -1
  33. package/RichTextEditor/hooks/useToolbarHandlers/useToolbarHandlers.d.ts +1 -0
  34. package/RichTextEditor/hooks/useToolbarHandlers/useToolbarHandlers.js +23 -0
  35. package/RichTextEditor/hooks/useToolbarHandlers/useToolbarHandlers.js.map +1 -1
  36. package/RichTextEditor/store/toolbar/actionTypes.d.ts +1 -0
  37. package/RichTextEditor/store/toolbar/actionTypes.js +1 -0
  38. package/RichTextEditor/store/toolbar/actionTypes.js.map +1 -1
  39. package/RichTextEditor/store/toolbar/actions.d.ts +2 -1
  40. package/RichTextEditor/store/toolbar/actions.js +2 -0
  41. package/RichTextEditor/store/toolbar/actions.js.map +1 -1
  42. package/RichTextEditor/store/toolbar/initialState.js +1 -0
  43. package/RichTextEditor/store/toolbar/initialState.js.map +1 -1
  44. package/RichTextEditor/store/toolbar/reducer.js +2 -0
  45. package/RichTextEditor/store/toolbar/reducer.js.map +1 -1
  46. package/RichTextEditor/store/toolbar/types.d.ts +7 -1
  47. package/RichTextEditor/utils/convertFormat.d.ts +2 -1
  48. package/RichTextEditor/utils/convertFormat.js +2 -0
  49. package/RichTextEditor/utils/convertFormat.js.map +1 -1
  50. package/RichTextEditorToolbar/RichTextEditorToolbar.d.ts +4 -0
  51. package/RichTextEditorToolbar/RichTextEditorToolbar.js +7 -3
  52. package/RichTextEditorToolbar/RichTextEditorToolbar.js.map +1 -1
  53. package/RichTextEditorToolbar/types.d.ts +2 -0
  54. package/ScrollMenu/ScrollMenu.d.ts +1 -1
  55. package/SelectBase/utils/get-selected-options/get-selected-options.d.ts +1 -1
  56. package/SelectBase/utils/is-empty/is-empty.d.ts +1 -1
  57. package/TreeView/useFinalMargins.d.ts +1 -1
  58. package/Typography/styles.d.ts +1 -1
  59. package/Typography/styles.js +3 -0
  60. package/Typography/styles.js.map +1 -1
  61. package/package.json +3 -3
  62. package/test-utils/index.d.ts +1 -1
  63. package/utils/Notifications/use-notifications.d.ts +4 -4
  64. package/utils/html-to-hast.js +1 -1
  65. package/utils/html-to-hast.js.map +1 -1
@@ -1,7 +1,7 @@
1
1
  import { DatePickerInputValueParserParameters } from './types';
2
2
  import { DateOrDateRangeType, DateRangeType } from '../Calendar';
3
- export declare const timezoneConvert: (date: DateOrDateRangeType, timeZone?: string) => DateOrDateRangeType;
4
- export declare const timezoneFormat: (date: Date, timeZone?: string) => Date;
3
+ export declare const timezoneConvert: (date: DateOrDateRangeType, timeZone?: string | undefined) => DateOrDateRangeType;
4
+ export declare const timezoneFormat: (date: Date, timeZone?: string | undefined) => Date;
5
5
  export declare const formatDateRange: (dates: DateRangeType, format: string) => string;
6
6
  export declare const isDateValid: (date: string, pattern: string) => boolean;
7
7
  export declare const isDateAfter: (date: Date, dateToCompare: Date) => boolean;
@@ -9,4 +9,4 @@ export declare const isDateBefore: (date: Date, dateToCompare: Date) => boolean;
9
9
  export declare const isDateWithinInterval: (date: Date, minDate: Date | undefined, maxDate: Date | undefined) => boolean;
10
10
  export declare const datePickerParseDateString: (value: string, { customParser, dateFormat, timezone, minDate, maxDate, }: DatePickerInputValueParserParameters) => Date | undefined;
11
11
  export declare const isValidDateValue: (dateValue: DateOrDateRangeType | string) => dateValue is DateOrDateRangeType;
12
- export declare const getStartOfTheDayDate: (date?: Date) => Date | undefined;
12
+ export declare const getStartOfTheDayDate: (date?: Date | undefined) => Date | undefined;
@@ -5,6 +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
9
  onSelectionChange: import("./types").SelectionHandler;
9
10
  onTextFormat: import("./types").TextFormatHandler;
10
11
  onTextChange: import("./types").ChangeHandler;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { BaseProps } from '@toptal/picasso-shared';
3
- import { TextFormatHandler, ChangeHandler, SelectionHandler, TextLengthChangeHandler } from './types';
3
+ import type { TextFormatHandler, ChangeHandler, SelectionHandler, TextLengthChangeHandler, EditorPlugin } from './types';
4
4
  export declare type Props = BaseProps & {
5
5
  /**
6
6
  * HTML string
@@ -10,6 +10,7 @@ export declare type Props = BaseProps & {
10
10
  id: string;
11
11
  isFocused: boolean;
12
12
  placeholder?: string;
13
+ plugins?: EditorPlugin[];
13
14
  onSelectionChange: SelectionHandler;
14
15
  onTextFormat: TextFormatHandler;
15
16
  onTextChange: ChangeHandler;
@@ -24,6 +25,7 @@ declare const QuillEditor: React.ForwardRefExoticComponent<BaseProps & {
24
25
  id: string;
25
26
  isFocused: boolean;
26
27
  placeholder?: string | undefined;
28
+ plugins?: "link"[] | undefined;
27
29
  onSelectionChange: SelectionHandler;
28
30
  onTextFormat: TextFormatHandler;
29
31
  onTextChange: ChangeHandler;
@@ -4,8 +4,8 @@ import { useCombinedRefs } from '../utils';
4
4
  import useQuillInstance from './hooks/useQuillInstance';
5
5
  import { useFocus, useSubscribeToQuillEvents, useDisabledEditor, useKeyBindings, useSubscribeToTextEditorEvents, } from './hooks';
6
6
  import useDefaultValue from './hooks/useDefaultValue';
7
- const QuillEditor = forwardRef(function QuillEditor({ defaultValue, disabled, 'data-testid': dataTestId, id, isFocused, placeholder, onTextLengthChange, onSelectionChange, onTextFormat, onTextChange, }, ref) {
8
- const quill = useQuillInstance({ id, placeholder });
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 });
9
9
  const editorRef = useCombinedRefs(ref, useRef(null));
10
10
  useFocus({ isFocused, quill });
11
11
  useDisabledEditor({ disabled, quill });
@@ -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;AAuBrD,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,GACb,EACD,GAAG;IAEH,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA;IACnD,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,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;IACtC,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;IAExC,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,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,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;IACtC,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;IAExC,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 +1,2 @@
1
1
  export declare const CUSTOM_QUILL_EDITOR_FORMAT_EVENT = "quill-editor-format";
2
+ export declare const INSERT_DEFAULT_LINK_TEXT = "quill-editor-insert-default-link-text";
@@ -1,2 +1,3 @@
1
1
  export const CUSTOM_QUILL_EDITOR_FORMAT_EVENT = 'quill-editor-format';
2
+ export const INSERT_DEFAULT_LINK_TEXT = 'quill-editor-insert-default-link-text';
2
3
  //# 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"}
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,3 +1,4 @@
1
1
  export { default as makeHeaderFormat } from './header';
2
2
  export { default as makeBoldFormat } from './bold';
3
3
  export { default as useTypographyClasses } from './use-typography-classes';
4
+ export { default as makeLinkFormat } from './link';
@@ -1,4 +1,5 @@
1
1
  export { default as makeHeaderFormat } from './header';
2
2
  export { default as makeBoldFormat } from './bold';
3
3
  export { default as useTypographyClasses } from './use-typography-classes';
4
+ export { default as makeLinkFormat } from './link';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/QuillEditor/formats/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/QuillEditor/formats/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { Classes } from '@toptal/picasso-shared';
2
+ declare const QuillLink: any;
3
+ declare class LinkBlot extends QuillLink {
4
+ static typographyClasses: Classes;
5
+ static create(value: string): Element;
6
+ }
7
+ declare const makeLinkFormat: (typographyClasses: Classes) => typeof LinkBlot;
8
+ export default makeLinkFormat;
@@ -0,0 +1,24 @@
1
+ import Quill from 'quill';
2
+ import getTypographyClassName from '../../Typography/utils/get-typography-class-name';
3
+ const QuillLink = Quill.import('formats/link');
4
+ class LinkBlot extends QuillLink {
5
+ static create(value) {
6
+ const node = super.create(value);
7
+ node.setAttribute('class', getTypographyClassName(this.typographyClasses, {
8
+ variant: 'body',
9
+ size: 'inherit',
10
+ // we don't expose blue color in typography since it should be used only for links.
11
+ // in this case we are simulating look of the link
12
+ // @ts-ignore
13
+ color: 'blue',
14
+ weight: 'inherit',
15
+ }));
16
+ return node;
17
+ }
18
+ }
19
+ const makeLinkFormat = (typographyClasses) => {
20
+ LinkBlot.typographyClasses = typographyClasses;
21
+ return LinkBlot;
22
+ };
23
+ export default makeLinkFormat;
24
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/QuillEditor/formats/link.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,sBAAsB,MAAM,kDAAkD,CAAA;AAErF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;AAE9C,MAAM,QAAS,SAAQ,SAAS;IAE9B,MAAM,CAAC,MAAM,CAAC,KAAa;QACzB,MAAM,IAAI,GAAY,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAEzC,IAAI,CAAC,YAAY,CACf,OAAO,EACP,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC7C,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,SAAS;YACf,mFAAmF;YACnF,kDAAkD;YAClD,aAAa;YACb,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,SAAS;SAClB,CAAC,CACH,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED,MAAM,cAAc,GAAG,CAAC,iBAA0B,EAAE,EAAE;IACpD,QAAQ,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;IAE9C,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -1,9 +1,11 @@
1
1
  import Quill, { QuillOptionsStatic } from 'quill';
2
2
  import 'quill-paste-smart';
3
+ import type { EditorPlugin } from '../../types';
3
4
  export declare type EditorOptionsType = {
4
5
  id: string;
5
6
  placeholder?: string;
7
+ plugins?: EditorPlugin[];
6
8
  };
7
- export declare const getModules: () => QuillOptionsStatic['modules'];
8
- declare const useQuillInstance: ({ id, placeholder, }: EditorOptionsType) => Quill | undefined;
9
+ export declare const getModules: (plugins: EditorOptionsType['plugins']) => QuillOptionsStatic['modules'];
10
+ declare const useQuillInstance: ({ id, placeholder, plugins, }: EditorOptionsType) => Quill | undefined;
9
11
  export default useQuillInstance;
@@ -1,16 +1,34 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import Quill from 'quill';
3
3
  import 'quill-paste-smart';
4
- import { useTypographyClasses, makeHeaderFormat, makeBoldFormat, } from '../../formats';
5
- export const getModules = () => {
4
+ import { useTypographyClasses, makeHeaderFormat, makeBoldFormat, makeLinkFormat, } from '../../formats';
5
+ export const getModules = (plugins) => {
6
+ const allowLinks = plugins === null || plugins === void 0 ? void 0 : plugins.includes('link');
7
+ const allowedTags = [
8
+ 'b',
9
+ 'strong',
10
+ 'i',
11
+ 'em',
12
+ 'p',
13
+ 'br',
14
+ 'ul',
15
+ 'ol',
16
+ 'li',
17
+ 'h3',
18
+ ];
19
+ const allowedAttributes = [];
20
+ if (allowLinks) {
21
+ allowedTags.push('a');
22
+ allowedAttributes.push('href');
23
+ }
6
24
  return {
7
25
  clipboard: {
8
26
  matchVisual: false,
9
27
  allowed: {
10
28
  // unsupported tags will be also removed on BE side, so before extending
11
29
  // make sure, that our API supports new type
12
- tags: ['b', 'strong', 'i', 'em', 'p', 'br', 'ul', 'ol', 'li', 'h3'],
13
- attributes: [],
30
+ tags: allowedTags,
31
+ attributes: allowedAttributes,
14
32
  },
15
33
  keepSelection: true,
16
34
  substituteBlockElements: true,
@@ -50,18 +68,38 @@ const formats = [
50
68
  'header',
51
69
  'list',
52
70
  ];
53
- const useQuillInstance = ({ id, placeholder, }) => {
71
+ const Inline = Quill.import('blots/inline');
72
+ // We need link to be wrapped by other inline HTML tags to keep proper styling
73
+ // Lower index means deeper in the DOM tree, since not found (-1) is for embeds
74
+ Inline.order = [
75
+ 'cursor',
76
+ 'link',
77
+ 'inline',
78
+ 'underline',
79
+ 'strike',
80
+ 'italic',
81
+ 'bold',
82
+ 'script',
83
+ 'code', // Must be higher
84
+ ];
85
+ const useQuillInstance = ({ id, placeholder, plugins, }) => {
54
86
  const [quill, setQuill] = useState();
55
87
  const typographyClasses = useTypographyClasses();
56
88
  useEffect(() => {
89
+ const extendedFormats = [...formats];
57
90
  Quill.register(makeHeaderFormat(typographyClasses), true);
58
91
  Quill.register(makeBoldFormat(typographyClasses), true);
92
+ const allowLinks = plugins === null || plugins === void 0 ? void 0 : plugins.includes('link');
93
+ if (allowLinks) {
94
+ Quill.register(makeLinkFormat(typographyClasses), true);
95
+ extendedFormats.push('link');
96
+ }
59
97
  setQuill(new Quill(`#${id}`, {
60
- modules: getModules(),
61
- formats,
98
+ modules: getModules(plugins),
99
+ formats: extendedFormats,
62
100
  placeholder,
63
101
  }));
64
- }, [typographyClasses, id, placeholder]);
102
+ }, [typographyClasses, id, placeholder, plugins]);
65
103
  return quill;
66
104
  };
67
105
  export default useQuillInstance;
@@ -1 +1 @@
1
- {"version":3,"file":"useQuillInstance.js","sourceRoot":"","sources":["../../../../src/QuillEditor/hooks/useQuillInstance/useQuillInstance.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAA6B,MAAM,OAAO,CAAA;AACjD,OAAO,mBAAmB,CAAA;AAE1B,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,eAAe,CAAA;AAOtB,MAAM,CAAC,MAAM,UAAU,GAAG,GAAkC,EAAE;IAC5D,OAAO;QACL,SAAS,EAAE;YACT,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE;gBACP,wEAAwE;gBACxE,4CAA4C;gBAC5C,IAAI,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;gBACnE,UAAU,EAAE,EAAE;aACf;YACD,aAAa,EAAE,IAAI;YACnB,uBAAuB,EAAE,IAAI;SAC9B;QACD,QAAQ,EAAE;YACR,sCAAsC;YACtC,qDAAqD;YACrD,8CAA8C;YAC9C,0BAA0B;YAC1B,QAAQ,EAAE;gBACR,IAAI,EAAE;oBACJ,GAAG,EAAE,GAAG;oBACR,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,cAAa,CAAC;iBACxB;gBACD,MAAM,EAAE;oBACN,GAAG,EAAE,GAAG;oBACR,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,cAAa,CAAC;iBACxB;aACF;SACF;KACF,CAAA;AACH,CAAC,CAAA;AAED;;;;;;4BAM4B;AAC5B,MAAM,OAAO,GAAkC;IAC7C,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;CACP,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,EACxB,EAAE,EACF,WAAW,GACO,EAAqB,EAAE;IACzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAA;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAA;QACzD,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAA;QAEvD,QAAQ,CACN,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE;YAClB,OAAO,EAAE,UAAU,EAAE;YACrB,OAAO;YACP,WAAW;SACZ,CAAC,CACH,CAAA;IACH,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC,CAAA;IAExC,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,eAAe,gBAAgB,CAAA"}
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
- import { useEffect, useMemo } from 'react';
2
- import { CUSTOM_QUILL_EDITOR_FORMAT_EVENT } from '../../constants';
1
+ import { useCallback, useEffect, useMemo } from 'react';
2
+ import { CUSTOM_QUILL_EDITOR_FORMAT_EVENT, INSERT_DEFAULT_LINK_TEXT, } from '../../constants';
3
3
  import getFormatChangeHandler from '../../utils/getFormatChangeHandler';
4
4
  const useSubscribeToTextEditorEvents = ({ editorRef, quill, }) => {
5
5
  const formatChangeHandler = useMemo(() => {
@@ -8,16 +8,30 @@ const useSubscribeToTextEditorEvents = ({ editorRef, quill, }) => {
8
8
  }
9
9
  return getFormatChangeHandler(quill);
10
10
  }, [quill]);
11
+ const insertDefaultLinkText = useCallback(({ detail }) => {
12
+ var _a;
13
+ if (!quill) {
14
+ return;
15
+ }
16
+ const { link } = detail;
17
+ const selection = (_a = quill.getSelection(true)) !== null && _a !== void 0 ? _a : { index: 0, length: 0 };
18
+ if (selection.length === 0) {
19
+ quill.insertText(selection.index, link);
20
+ quill.setSelection(quill.getLength() - 1 - link.length, quill.getLength());
21
+ }
22
+ }, [quill]);
11
23
  useEffect(() => {
12
24
  const editor = editorRef.current;
13
25
  if (!editor) {
14
26
  return;
15
27
  }
16
28
  editor.addEventListener(CUSTOM_QUILL_EDITOR_FORMAT_EVENT, formatChangeHandler, false);
29
+ editor.addEventListener(INSERT_DEFAULT_LINK_TEXT, insertDefaultLinkText, false);
17
30
  return () => {
18
31
  editor === null || editor === void 0 ? void 0 : editor.removeEventListener(CUSTOM_QUILL_EDITOR_FORMAT_EVENT, formatChangeHandler, false);
32
+ editor === null || editor === void 0 ? void 0 : editor.removeEventListener(INSERT_DEFAULT_LINK_TEXT, insertDefaultLinkText, false);
19
33
  };
20
- }, [editorRef, formatChangeHandler]);
34
+ }, [editorRef, formatChangeHandler, insertDefaultLinkText]);
21
35
  };
22
36
  export default useSubscribeToTextEditorEvents;
23
37
  //# 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,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAG1C,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAA;AAClE,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,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,OAAO,GAAG,EAAE;YACV,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,CACzB,gCAAgC,EAChC,mBAAmB,EACnB,KAAK,CACN,CAAA;QACH,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,eAAe,8BAA8B,CAAA"}
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"}
@@ -2,11 +2,13 @@ export declare type BoldValue = boolean | undefined;
2
2
  export declare type ItalicValue = boolean | undefined;
3
3
  export declare type ListValue = 'bullet' | 'ordered' | undefined;
4
4
  export declare type HeaderValue = 3 | undefined;
5
+ export declare type LinkValue = string | undefined;
5
6
  export declare type FormatType = {
6
7
  bold: BoldValue;
7
8
  italic: ItalicValue;
8
9
  list: ListValue;
9
10
  header: HeaderValue;
11
+ link: LinkValue;
10
12
  };
11
13
  export declare type TextFormatHandlerEvent = {
12
14
  formatName: 'bold';
@@ -20,8 +22,12 @@ export declare type TextFormatHandlerEvent = {
20
22
  } | {
21
23
  formatName: 'header';
22
24
  value: HeaderValue;
25
+ } | {
26
+ formatName: 'link';
27
+ value: LinkValue;
23
28
  };
24
29
  export declare type TextFormatHandler = (e: TextFormatHandlerEvent) => void;
25
30
  export declare type SelectionHandler = (format: FormatType) => void;
26
31
  export declare type ChangeHandler = (html: string) => void;
27
32
  export declare type TextLengthChangeHandler = (length: number) => void;
33
+ export declare type EditorPlugin = 'link';
@@ -18,7 +18,7 @@ export const RatingThumbs = forwardRef(function RatingThumbs({ name, interactive
18
18
  const [ThumbsUp, ThumbsDown] = componentsBySize[size];
19
19
  const handleChange = useCallback((event) => {
20
20
  if (interactive) {
21
- onChange === null || onChange === void 0 ? void 0 : onChange(event.target.value === "positive" /* ThumbsValue.POSITIVE */, event);
21
+ onChange === null || onChange === void 0 ? void 0 : onChange(event.target.value === "positive" /* POSITIVE */, event);
22
22
  }
23
23
  }, [onChange, interactive]);
24
24
  return (React.createElement(Container, { ref: ref },
@@ -27,13 +27,13 @@ export const RatingThumbs = forwardRef(function RatingThumbs({ name, interactive
27
27
  [classes.interactiveThumbs]: interactive,
28
28
  [classes.thumbsPositive]: value === true,
29
29
  }) }),
30
- React.createElement("input", { id: positiveInputId, className: classes.radio, type: 'radio', name: name, value: "positive" /* ThumbsValue.POSITIVE */, onChange: handleChange, readOnly: !interactive, checked: value === true, "data-testid": testIds.positiveInput })),
30
+ React.createElement("input", { id: positiveInputId, className: classes.radio, type: 'radio', name: name, value: "positive" /* POSITIVE */, onChange: handleChange, readOnly: !interactive, checked: value === true, "data-testid": testIds.positiveInput })),
31
31
  React.createElement("label", { className: classes.label, htmlFor: negativeInputId },
32
32
  React.createElement(ThumbsDown, { className: classNames(classes.thumbs, {
33
33
  [classes.interactiveThumbs]: interactive,
34
34
  [classes.thumbsNegative]: value === false,
35
35
  }) }),
36
- React.createElement("input", { id: negativeInputId, className: classes.radio, type: 'radio', name: name, value: "negative" /* ThumbsValue.NEGATIVE */, onChange: handleChange, readOnly: !interactive, checked: value === false, "data-testid": testIds.negativeInput }))));
36
+ React.createElement("input", { id: negativeInputId, className: classes.radio, type: 'radio', name: name, value: "negative" /* NEGATIVE */, onChange: handleChange, readOnly: !interactive, checked: value === false, "data-testid": testIds.negativeInput }))));
37
37
  });
38
38
  RatingThumbs.displayName = 'RatingThumbs';
39
39
  export default RatingThumbs;
@@ -1 +1 @@
1
- {"version":3,"file":"RatingThumbs.js","sourceRoot":"","sources":["../../src/RatingThumbs/RatingThumbs.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RatingThumbs.js","sourceRoot":"","sources":["../../src/RatingThumbs/RatingThumbs.tsx"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import Typography from '../../../Typography';
15
15
  import Container from '../../../Container';
16
16
  import List from '../../../List';
17
17
  import ListItem from '../../../ListItem';
18
+ import Link from '../../../Link';
18
19
  // List internaly passes another props to ListItem
19
20
  const Li = (_a) => {
20
21
  var { children } = _a, props = __rest(_a, ["children"]);
@@ -28,6 +29,10 @@ const H3 = ({ children }) => (React.createElement(Container, { top: 'xsmall' },
28
29
  React.createElement(Typography, { as: 'h3', variant: 'heading', size: 'medium' }, children)));
29
30
  const Ul = ({ children }) => React.createElement(List, { variant: 'unordered' }, children);
30
31
  const Ol = ({ children }) => React.createElement(List, { variant: 'ordered' }, children);
32
+ const A = (_a) => {
33
+ var { children } = _a, props = __rest(_a, ["children"]);
34
+ return React.createElement(Link, Object.assign({}, props), children);
35
+ };
31
36
  const componentMap = {
32
37
  p: P,
33
38
  strong: Strong,
@@ -36,6 +41,7 @@ const componentMap = {
36
41
  li: Li,
37
42
  ol: Ol,
38
43
  ul: Ul,
44
+ a: A,
39
45
  };
40
46
  const picassoMapper = (child) => {
41
47
  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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"}
@@ -4,7 +4,7 @@ export declare type TextType = {
4
4
  };
5
5
  export declare type ElementType = {
6
6
  type: 'element';
7
- tagName: 'p' | 'h3' | 'strong' | 'em' | 'ul' | 'ol' | 'li' | 'br';
7
+ tagName: 'p' | 'h3' | 'strong' | 'em' | 'ul' | 'ol' | 'li' | 'br' | 'a';
8
8
  properties: {};
9
9
  children: ASTChildType[];
10
10
  };
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { BaseProps } from '@toptal/picasso-shared';
3
+ import { EditorPlugin } from '../QuillEditor';
3
4
  import { ASTType } from '../RichText';
4
5
  import { Status } from '../OutlinedInput';
5
6
  import { CounterMessageSetter } from './types';
@@ -53,6 +54,8 @@ export interface Props extends BaseProps {
53
54
  onFocus?: () => void;
54
55
  /** The placeholder attribute specifies a short hint that describes the expected value of a text editor. */
55
56
  placeholder?: string;
57
+ /** List of plugins to enable on the editor */
58
+ plugins?: EditorPlugin[];
56
59
  testIds?: {
57
60
  wrapper?: string;
58
61
  editor?: string;
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useRef, useState } from 'react';
1
+ import React, { forwardRef, useMemo, useRef, useState } from 'react';
2
2
  import { makeStyles } from '@material-ui/core/styles';
3
3
  import cx from 'classnames';
4
4
  import hastUtilToHtml from 'hast-util-to-html';
@@ -15,7 +15,7 @@ const useStyles = makeStyles(styles, {
15
15
  name: 'RichTextEditor',
16
16
  });
17
17
  export const RichTextEditor = forwardRef(function RichTextEditor(props, ref) {
18
- const { 'data-testid': dataTestId, autoFocus = false, className, defaultValue, disabled, id, onChange = noop, onFocus = noop, onBlur = noop, placeholder, minLength, maxLength, minLengthMessage, maxLengthMessage, style, status, testIds, } = props;
18
+ 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, } = props;
19
19
  const classes = useStyles();
20
20
  const toolbarRef = useRef(null);
21
21
  const editorRef = useRef(null);
@@ -29,7 +29,7 @@ export const RichTextEditor = forwardRef(function RichTextEditor(props, ref) {
29
29
  });
30
30
  const { handleSelectionChange } = useOnSelectionChange({ dispatch });
31
31
  const { handleTextFormat } = useOnTextFormat({ dispatch });
32
- const { handleBold, handleItalic, handleHeader, handleOrdered, handleUnordered, } = useToolbarHandlers({
32
+ const { handleBold, handleItalic, handleHeader, handleOrdered, handleUnordered, handleLink, } = useToolbarHandlers({
33
33
  editorRef,
34
34
  handleTextFormat,
35
35
  format: state.toolbar.format,
@@ -50,6 +50,11 @@ export const RichTextEditor = forwardRef(function RichTextEditor(props, ref) {
50
50
  minLengthMessage,
51
51
  maxLengthMessage,
52
52
  });
53
+ // Disabled the exhaustive deps rule to allow users to
54
+ // declare prop like "plugins={[]}" instead of having to
55
+ // declare the array outside the component level
56
+ // eslint-disable-next-line react-hooks/exhaustive-deps
57
+ const memoizedPlugins = useMemo(() => plugins, []);
53
58
  return (React.createElement(Container, { className: cx(classes.editorWrapper, {
54
59
  [classes.disabled]: disabled,
55
60
  [classes.focused]: isEditorFocused,
@@ -63,14 +68,14 @@ export const RichTextEditor = forwardRef(function RichTextEditor(props, ref) {
63
68
  }
64
69
  wrapperRef.current = node;
65
70
  }, "data-testid": (testIds === null || testIds === void 0 ? void 0 : testIds.wrapper) || dataTestId, onFocus: handleFocus, onBlur: handleBlur },
66
- 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, testIds: {
71
+ 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: {
67
72
  headerSelect: testIds === null || testIds === void 0 ? void 0 : testIds.headerSelect,
68
73
  boldButton: testIds === null || testIds === void 0 ? void 0 : testIds.boldButton,
69
74
  italicButton: testIds === null || testIds === void 0 ? void 0 : testIds.italicButton,
70
75
  unorderedListButton: testIds === null || testIds === void 0 ? void 0 : testIds.unorderedListButton,
71
76
  orderedListButton: testIds === null || testIds === void 0 ? void 0 : testIds.orderedListButton,
72
77
  } }),
73
- React.createElement(QuillEditor, { ref: editorRef, disabled: !!disabled, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.editor, id: id, isFocused: isEditorFocused, placeholder: placeholder, onTextLengthChange: handleCounterMessage, onTextFormat: handleTextFormat, onSelectionChange: handleSelectionChange, onTextChange: onChange, defaultValue: defaultValueInHtml }),
78
+ React.createElement(QuillEditor, { ref: editorRef, disabled: !!disabled, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.editor, id: id, isFocused: isEditorFocused, placeholder: placeholder, onTextLengthChange: handleCounterMessage, onTextFormat: handleTextFormat, onSelectionChange: handleSelectionChange, onTextChange: onChange, defaultValue: defaultValueInHtml, plugins: memoizedPlugins }),
74
79
  counterMessage && (React.createElement(Counter, { error: counterError, message: counterMessage }))));
75
80
  });
76
81
  RichTextEditor.defaultProps = {
@@ -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":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACpE,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAE5D,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,cAAc,MAAM,mBAAmB,CAAA;AAC9C,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAE7C,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,SAAS,MAAM,cAAc,CAAA;AACpC,OAAO,WAA6B,MAAM,gBAAgB,CAAA;AAC1D,OAAO,OAAO,MAAM,0BAA0B,CAAA;AAC9C,OAAO,OAAO,MAAM,0BAA0B,CAAA;AAC9C,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,UAAU,GACX,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAmE7E,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE;IAC1C,IAAI,EAAE,gBAAgB;CACvB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CACtC,SAAS,cAAc,CAAC,KAAK,EAAE,GAAG;IAChC,MAAM,EACJ,aAAa,EAAE,UAAU,EACzB,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,EAAE,EACF,QAAQ,GAAG,IAAI,EACf,OAAO,GAAG,IAAI,EACd,MAAM,GAAG,IAAI,EACb,WAAW,EACX,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,OAAO,GACR,GAAG,KAAK,CAAA;IAET,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACtD,MAAM,SAAS,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACrD,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACtD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAEhD,yBAAyB,CAAC;QACxB,KAAK;QACL,IAAI,EAAE,OAAO;QACb,aAAa,EAAE,gBAAgB;QAC/B,WAAW,EACT,qGAAqG;KACxG,CAAC,CAAA;IAEF,MAAM,EAAE,qBAAqB,EAAE,GAAG,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;IACpE,MAAM,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC1D,MAAM,EACJ,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,eAAe,EACf,UAAU,GACX,GAAG,kBAAkB,CAAC;QACrB,SAAS;QACT,gBAAgB;QAChB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;KAC7B,CAAC,CAAA;IAEF,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;QAC9D,SAAS;QACT,SAAS;QACT,UAAU;QACV,UAAU;QACV,OAAO;QACP,MAAM;QACN,QAAQ;KACT,CAAC,CAAA;IAEF,MAAM,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CACzC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CACzE,CAAA;IAED,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAC;QACxE,SAAS;QACT,SAAS;QACT,gBAAgB;QAChB,gBAAgB;KACjB,CAAC,CAAA;IAEF,sDAAsD;IACtD,wDAAwD;IACxD,gDAAgD;IAChD,uDAAuD;IACvD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,CACL,oBAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,OAAO,CAAC,aAAa,EACrB;YACE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ;YAC5B,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,eAAe;YAClC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO;SACpC,EACD,SAAS,CACV,EACD,QAAQ,EAAE,CAAC,CAAC,EACZ,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,IAAI,CAAC,EAAE;YACV,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;gBAC7B,GAAG,CAAC,IAAI,CAAC,CAAA;aACV;iBAAM,IAAI,GAAG,IAAI,IAAI,EAAE;gBACtB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;aACnB;YACD,UAAU,CAAC,OAAO,GAAG,IAAI,CAAA;QAC3B,CAAC,iBACY,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,UAAU,EAC3C,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU;QAElB,oBAAC,OAAO,IACN,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,EAC5C,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAC5B,WAAW,EAAE,UAAU,EACvB,aAAa,EAAE,YAAY,EAC3B,gBAAgB,EAAE,eAAe,EACjC,cAAc,EAAE,aAAa,EAC7B,cAAc,EAAE,YAAY,EAC5B,WAAW,EAAE,UAAU,EACvB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE;gBACP,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;gBACnC,UAAU,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU;gBAC/B,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;gBACnC,mBAAmB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB;gBACjD,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB;aAC9C,GACD;QACF,oBAAC,WAAW,IACV,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,CAAC,CAAC,QAAQ,iBACP,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAC5B,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,oBAAoB,EACxC,YAAY,EAAE,gBAAgB,EAC9B,iBAAiB,EAAE,qBAAqB,EACxC,YAAY,EAAE,QAAQ,EACtB,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,eAAe,GACxB;QACD,cAAc,IAAI,CACjB,oBAAC,OAAO,IAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAI,CAC1D,CACS,CACb,CAAA;AACH,CAAC,CACF,CAAA;AAED,cAAc,CAAC,YAAY,GAAG;IAC5B,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,SAAS;CAClB,CAAA;AAED,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAA;AAE7C,eAAe,cAAc,CAAA"}
@@ -3,11 +3,12 @@ import { actions as toolbarActions } from '../../store/toolbar';
3
3
  import { getToolbarFormatFromEditorFormat } from '../../utils/convertFormat';
4
4
  const useOnSelectionChange = ({ dispatch }) => {
5
5
  const handleSelectionChange = useCallback((editorFormat) => {
6
- const { bold, italic, header, list } = getToolbarFormatFromEditorFormat(editorFormat);
6
+ const { bold, italic, header, list, link } = getToolbarFormatFromEditorFormat(editorFormat);
7
7
  toolbarActions.setBold(dispatch)(bold);
8
8
  toolbarActions.setItalic(dispatch)(italic);
9
9
  toolbarActions.setHeader(dispatch)(header);
10
10
  toolbarActions.setList(dispatch)(list);
11
+ toolbarActions.setLink(dispatch)(link);
11
12
  }, [dispatch]);
12
13
  return { handleSelectionChange };
13
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useOnSelectionChange.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/hooks/useOnSelectionChange/useOnSelectionChange.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,OAAO,CAAA;AAG7C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAE/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAM5E,MAAM,oBAAoB,GAAG,CAAC,EAAE,QAAQ,EAAS,EAAE,EAAE;IACnD,MAAM,qBAAqB,GAAG,WAAW,CACvC,CAAC,YAA8B,EAAE,EAAE;QACjC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAClC,gCAAgC,CAAC,YAAY,CAAC,CAAA;QAEhD,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA;QACtC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;QAC1C,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;QAC1C,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAClC,CAAC,CAAA;AAED,eAAe,oBAAoB,CAAA"}
1
+ {"version":3,"file":"useOnSelectionChange.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/hooks/useOnSelectionChange/useOnSelectionChange.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,OAAO,CAAA;AAG7C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAE/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAM5E,MAAM,oBAAoB,GAAG,CAAC,EAAE,QAAQ,EAAS,EAAE,EAAE;IACnD,MAAM,qBAAqB,GAAG,WAAW,CACvC,CAAC,YAA8B,EAAE,EAAE;QACjC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GACxC,gCAAgC,CAAC,YAAY,CAAC,CAAA;QAEhD,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA;QACtC,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;QAC1C,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;QAC1C,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA;QACtC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAClC,CAAC,CAAA;AAED,eAAe,oBAAoB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { useCallback } from 'react';
2
2
  import { actions as toolbarActions } from '../../store/toolbar';
3
- import { convertBoldFromEditorValue, convertItalicFromEditorValue, convertListFromEditorValue, convertHeaderFromEditorValue, } from '../../utils/convertFormat';
3
+ import { convertBoldFromEditorValue, convertItalicFromEditorValue, convertListFromEditorValue, convertHeaderFromEditorValue, convertLinkFromEditorValue, } from '../../utils/convertFormat';
4
4
  const useOnTextFormat = ({ dispatch }) => {
5
5
  const handleTextFormat = useCallback((e) => {
6
6
  switch (e.formatName) {
@@ -20,6 +20,10 @@ const useOnTextFormat = ({ dispatch }) => {
20
20
  const headerValue = convertHeaderFromEditorValue(e.value);
21
21
  return toolbarActions.setHeader(dispatch)(headerValue);
22
22
  }
23
+ case 'link': {
24
+ const linkValue = convertLinkFromEditorValue(e.value);
25
+ return toolbarActions.setLink(dispatch)(linkValue);
26
+ }
23
27
  default:
24
28
  throw Error(`TextEditor - useOnTextFormat is not implemented for ${e}`);
25
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useOnTextFormat.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/hooks/useOnTextFormat/useOnTextFormat.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,OAAO,CAAA;AAG7C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAE/D,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,2BAA2B,CAAA;AAMlC,MAAM,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAS,EAAE,EAAE;IAC9C,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,CAAyB,EAAE,EAAE;QAC5B,QAAQ,CAAC,CAAC,UAAU,EAAE;YACpB,KAAK,MAAM,CAAC,CAAC;gBACX,MAAM,SAAS,GAAG,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAErD,OAAO,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;aACnD;YACD,KAAK,QAAQ,CAAC,CAAC;gBACb,MAAM,WAAW,GAAG,4BAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAEzD,OAAO,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAA;aACvD;YACD,KAAK,MAAM,CAAC,CAAC;gBACX,MAAM,SAAS,GAAG,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAErD,OAAO,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;aACnD;YACD,KAAK,QAAQ,CAAC,CAAC;gBACb,MAAM,WAAW,GAAG,4BAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAEzD,OAAO,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAA;aACvD;YACD;gBACE,MAAM,KAAK,CACT,uDAAuD,CAAC,EAAE,CAC3D,CAAA;SACJ;IACH,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAC7B,CAAC,CAAA;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"useOnTextFormat.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/hooks/useOnTextFormat/useOnTextFormat.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,OAAO,CAAA;AAG7C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAE/D,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,2BAA2B,CAAA;AAMlC,MAAM,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAS,EAAE,EAAE;IAC9C,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,CAAyB,EAAE,EAAE;QAC5B,QAAQ,CAAC,CAAC,UAAU,EAAE;YACpB,KAAK,MAAM,CAAC,CAAC;gBACX,MAAM,SAAS,GAAG,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAErD,OAAO,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;aACnD;YACD,KAAK,QAAQ,CAAC,CAAC;gBACb,MAAM,WAAW,GAAG,4BAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAEzD,OAAO,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAA;aACvD;YACD,KAAK,MAAM,CAAC,CAAC;gBACX,MAAM,SAAS,GAAG,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAErD,OAAO,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;aACnD;YACD,KAAK,QAAQ,CAAC,CAAC;gBACb,MAAM,WAAW,GAAG,4BAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAEzD,OAAO,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAA;aACvD;YACD,KAAK,MAAM,CAAC,CAAC;gBACX,MAAM,SAAS,GAAG,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAErD,OAAO,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;aACnD;YACD;gBACE,MAAM,KAAK,CACT,uDAAuD,CAAC,EAAE,CAC3D,CAAA;SACJ;IACH,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAC7B,CAAC,CAAA;AAED,eAAe,eAAe,CAAA"}
@@ -12,5 +12,6 @@ declare const useToolbarHandlers: ({ editorRef, handleTextFormat, format }: Prop
12
12
  handleOrdered: ButtonHandlerType;
13
13
  handleUnordered: ButtonHandlerType;
14
14
  handleHeader: SelectOnChangeHandler;
15
+ handleLink: ButtonHandlerType;
15
16
  };
16
17
  export default useToolbarHandlers;
@@ -1,5 +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
4
  import { convertHeaderToEditorValue } from '../../utils/convertFormat';
4
5
  const useToolbarHandlers = ({ editorRef, handleTextFormat, format }) => {
5
6
  const sendFormatEvent = useCallback((detail) => {
@@ -9,6 +10,13 @@ const useToolbarHandlers = ({ editorRef, handleTextFormat, format }) => {
9
10
  });
10
11
  (_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.dispatchEvent(formatEvent);
11
12
  }, [editorRef]);
13
+ const sendDefaultLinkTextEvent = useCallback(detail => {
14
+ var _a;
15
+ const defaultLinkTextEvent = new CustomEvent(INSERT_DEFAULT_LINK_TEXT, {
16
+ detail,
17
+ });
18
+ (_a = editorRef.current) === null || _a === void 0 ? void 0 : _a.dispatchEvent(defaultLinkTextEvent);
19
+ }, [editorRef]);
12
20
  const handleBold = () => {
13
21
  const bold = !format.bold;
14
22
  sendFormatEvent({ bold });
@@ -49,12 +57,27 @@ const useToolbarHandlers = ({ editorRef, handleTextFormat, format }) => {
49
57
  value: header,
50
58
  });
51
59
  };
60
+ const handleLink = () => {
61
+ const link = window.prompt('URL');
62
+ const URLRegexp = new RegExp(/[(http(s)?)://(www.)?a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/gi);
63
+ if (!link || !URLRegexp.test(link)) {
64
+ window.alert('Not valid URL');
65
+ return;
66
+ }
67
+ sendDefaultLinkTextEvent({ link });
68
+ sendFormatEvent({ link });
69
+ handleTextFormat({
70
+ formatName: 'link',
71
+ value: link,
72
+ });
73
+ };
52
74
  return {
53
75
  handleBold,
54
76
  handleItalic,
55
77
  handleOrdered,
56
78
  handleUnordered,
57
79
  handleHeader,
80
+ handleLink,
58
81
  };
59
82
  };
60
83
  export default useToolbarHandlers;
@@ -1 +1 @@
1
- {"version":3,"file":"useToolbarHandlers.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/hooks/useToolbarHandlers/useToolbarHandlers.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEnC,OAAO,EAEL,gCAAgC,GAEjC,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAQtE,MAAM,kBAAkB,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAS,EAAE,EAAE;IAC5E,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,MAAiC,EAAE,EAAE;;QACpC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,gCAAgC,EAAE;YACpE,MAAM;SACP,CAAC,CAAA;QAEF,MAAA,SAAS,CAAC,OAAO,0CAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAC/C,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAA;IAED,MAAM,UAAU,GAAsB,GAAG,EAAE;QACzC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAA;QAEzB,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QACzB,gBAAgB,CAAC;YACf,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,YAAY,GAAsB,GAAG,EAAE;QAC3C,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA;QAE7B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAC3B,gBAAgB,CAAC;YACf,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,MAAM;SACd,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,aAAa,GAAsB,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;QAE9D,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QACzB,gBAAgB,CAAC;YACf,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,eAAe,GAAsB,GAAG,EAAE;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;QAE5D,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QACzB,gBAAgB,CAAC;YACf,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,YAAY,GAA0B,KAAK,CAAC,EAAE;QAClD,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAE7D,eAAe,CACb,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAC7D,CAAA;QACD,gBAAgB,CAAC;YACf,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,MAAM;SACd,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO;QACL,UAAU;QACV,YAAY;QACZ,aAAa;QACb,eAAe;QACf,YAAY;KACb,CAAA;AACH,CAAC,CAAA;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"useToolbarHandlers.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/hooks/useToolbarHandlers/useToolbarHandlers.tsx"],"names":[],"mappings":"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"}
@@ -5,5 +5,6 @@ declare const actionTypes: {
5
5
  readonly list: "TOOLBAR/SET_LIST";
6
6
  readonly disabled: "TOOLBAR/SET_DISABLED";
7
7
  readonly resetFormat: "TOOLBAR/RESET_FORMAT";
8
+ readonly link: "TOOLBAR/LINK";
8
9
  };
9
10
  export default actionTypes;
@@ -5,6 +5,7 @@ const actionTypes = {
5
5
  list: 'TOOLBAR/SET_LIST',
6
6
  disabled: 'TOOLBAR/SET_DISABLED',
7
7
  resetFormat: 'TOOLBAR/RESET_FORMAT',
8
+ link: 'TOOLBAR/LINK',
8
9
  };
9
10
  export default actionTypes;
10
11
  //# sourceMappingURL=actionTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionTypes.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/store/toolbar/actionTypes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,oBAAoB;IAC5B,MAAM,EAAE,oBAAoB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,sBAAsB;IAChC,WAAW,EAAE,sBAAsB;CAC3B,CAAA;AAEV,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"actionTypes.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/store/toolbar/actionTypes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,oBAAoB;IAC5B,MAAM,EAAE,oBAAoB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,sBAAsB;IAChC,WAAW,EAAE,sBAAsB;IACnC,IAAI,EAAE,cAAc;CACZ,CAAA;AAEV,eAAe,WAAW,CAAA"}
@@ -1,10 +1,11 @@
1
1
  import { Dispatch } from 'react';
2
- import { SetBoldActionType, SetHeaderActionType, SetItalicActionType, SetListActionType, SetDisabled, ResetFormatType } from './types';
2
+ import { SetBoldActionType, SetHeaderActionType, SetItalicActionType, SetListActionType, SetDisabled, ResetFormatType, SetLinkActionType } from './types';
3
3
  declare const actions: {
4
4
  setBold: (dispatch: Dispatch<SetBoldActionType>) => (payload: SetBoldActionType['payload']) => void;
5
5
  setItalic: (dispatch: Dispatch<SetItalicActionType>) => (payload: SetItalicActionType['payload']) => void;
6
6
  setHeader: (dispatch: Dispatch<SetHeaderActionType>) => (payload: SetHeaderActionType['payload']) => void;
7
7
  setList: (dispatch: Dispatch<SetListActionType>) => (payload: SetListActionType['payload']) => void;
8
+ setLink: (dispatch: Dispatch<SetLinkActionType>) => (payload: SetLinkActionType['payload']) => void;
8
9
  setDisabled: (dispatch: Dispatch<SetDisabled>) => (payload: boolean) => void;
9
10
  resetFormat: (dispatch: Dispatch<ResetFormatType>) => () => void;
10
11
  };
@@ -3,6 +3,7 @@ const setBold = (dispatch) => (payload) => dispatch({ type: actionTypes.bold, pa
3
3
  const setItalic = (dispatch) => (payload) => dispatch({ type: actionTypes.italic, payload });
4
4
  const setHeader = (dispatch) => (payload) => dispatch({ type: actionTypes.header, payload });
5
5
  const setList = (dispatch) => (payload) => dispatch({ type: actionTypes.list, payload });
6
+ const setLink = (dispatch) => (payload) => dispatch({ type: actionTypes.link, payload });
6
7
  const setDisabled = (dispatch) => (payload) => dispatch({ type: actionTypes.disabled, payload });
7
8
  const resetFormat = (dispatch) => () => dispatch({ type: actionTypes.resetFormat });
8
9
  const actions = {
@@ -10,6 +11,7 @@ const actions = {
10
11
  setItalic,
11
12
  setHeader,
12
13
  setList,
14
+ setLink,
13
15
  setDisabled,
14
16
  resetFormat,
15
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/store/toolbar/actions.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,eAAe,CAAA;AAUvC,MAAM,OAAO,GACX,CAAC,QAAqC,EAAE,EAAE,CAC1C,CAAC,OAAqC,EAAE,EAAE,CACxC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;AAEjD,MAAM,SAAS,GACb,CAAC,QAAuC,EAAE,EAAE,CAC5C,CAAC,OAAuC,EAAE,EAAE,CAC1C,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;AAEnD,MAAM,SAAS,GACb,CAAC,QAAuC,EAAE,EAAE,CAC5C,CAAC,OAAuC,EAAE,EAAE,CAC1C,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;AAEnD,MAAM,OAAO,GACX,CAAC,QAAqC,EAAE,EAAE,CAC1C,CAAC,OAAqC,EAAE,EAAE,CACxC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;AAEjD,MAAM,WAAW,GAAG,CAAC,QAA+B,EAAE,EAAE,CAAC,CAAC,OAAgB,EAAE,EAAE,CAC5E,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;AAEnD,MAAM,WAAW,GAAG,CAAC,QAAmC,EAAE,EAAE,CAAC,GAAG,EAAE,CAChE,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAE7C,MAAM,OAAO,GAAG;IACd,OAAO;IACP,SAAS;IACT,SAAS;IACT,OAAO;IACP,WAAW;IACX,WAAW;CACZ,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/store/toolbar/actions.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,eAAe,CAAA;AAWvC,MAAM,OAAO,GACX,CAAC,QAAqC,EAAE,EAAE,CAC1C,CAAC,OAAqC,EAAE,EAAE,CACxC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;AAEjD,MAAM,SAAS,GACb,CAAC,QAAuC,EAAE,EAAE,CAC5C,CAAC,OAAuC,EAAE,EAAE,CAC1C,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;AAEnD,MAAM,SAAS,GACb,CAAC,QAAuC,EAAE,EAAE,CAC5C,CAAC,OAAuC,EAAE,EAAE,CAC1C,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;AAEnD,MAAM,OAAO,GACX,CAAC,QAAqC,EAAE,EAAE,CAC1C,CAAC,OAAqC,EAAE,EAAE,CACxC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;AAEjD,MAAM,OAAO,GACX,CAAC,QAAqC,EAAE,EAAE,CAC1C,CAAC,OAAqC,EAAE,EAAE,CACxC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;AAEjD,MAAM,WAAW,GAAG,CAAC,QAA+B,EAAE,EAAE,CAAC,CAAC,OAAgB,EAAE,EAAE,CAC5E,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;AAEnD,MAAM,WAAW,GAAG,CAAC,QAAmC,EAAE,EAAE,CAAC,GAAG,EAAE,CAChE,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAE7C,MAAM,OAAO,GAAG;IACd,OAAO;IACP,SAAS;IACT,SAAS;IACT,OAAO;IACP,OAAO;IACP,WAAW;IACX,WAAW;CACZ,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -4,6 +4,7 @@ const initialState = {
4
4
  header: '',
5
5
  italic: false,
6
6
  list: false,
7
+ link: '',
7
8
  },
8
9
  disabled: true,
9
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"initialState.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/store/toolbar/initialState.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAqB;IACrC,MAAM,EAAE;QACN,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;KACZ;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"initialState.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/store/toolbar/initialState.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAqB;IACrC,MAAM,EAAE;QACN,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,EAAE;KACT;IACD,QAAQ,EAAE,IAAI;CACf,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -10,6 +10,8 @@ const reducer = (state = initialState, action) => {
10
10
  return Object.assign(Object.assign({}, state), { format: Object.assign(Object.assign({}, state.format), { header: action.payload }) });
11
11
  case actionTypes.list:
12
12
  return Object.assign(Object.assign({}, state), { format: Object.assign(Object.assign({}, state.format), { list: action.payload }) });
13
+ case actionTypes.link:
14
+ return Object.assign(Object.assign({}, state), { format: Object.assign(Object.assign({}, state.format), { link: action.payload }) });
13
15
  case actionTypes.disabled:
14
16
  return Object.assign(Object.assign({}, state), { disabled: action.payload });
15
17
  case actionTypes.resetFormat:
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/store/toolbar/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAA;AAEvC,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,MAAM,OAAO,GAAuB,CAAC,KAAK,GAAG,YAAY,EAAE,MAAM,EAAE,EAAE;IACnE,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,WAAW,CAAC,IAAI;YACnB,uCACK,KAAK,KACR,MAAM,kCAAO,KAAK,CAAC,MAAM,KAAE,IAAI,EAAE,MAAM,CAAC,OAAO,OAChD;QACH,KAAK,WAAW,CAAC,MAAM;YACrB,uCACK,KAAK,KACR,MAAM,kCAAO,KAAK,CAAC,MAAM,KAAE,MAAM,EAAE,MAAM,CAAC,OAAO,OAClD;QACH,KAAK,WAAW,CAAC,MAAM;YACrB,uCACK,KAAK,KACR,MAAM,kCAAO,KAAK,CAAC,MAAM,KAAE,MAAM,EAAE,MAAM,CAAC,OAAO,OAClD;QACH,KAAK,WAAW,CAAC,IAAI;YACnB,uCACK,KAAK,KACR,MAAM,kCAAO,KAAK,CAAC,MAAM,KAAE,IAAI,EAAE,MAAM,CAAC,OAAO,OAChD;QAEH,KAAK,WAAW,CAAC,QAAQ;YACvB,uCACK,KAAK,KACR,QAAQ,EAAE,MAAM,CAAC,OAAO,IACzB;QAEH,KAAK,WAAW,CAAC,WAAW;YAC1B,uCACK,KAAK,KACR,MAAM,EAAE,YAAY,CAAC,MAAM,IAC5B;QAEH;YACE,OAAO,KAAK,CAAA;KACf;AACH,CAAC,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../../src/RichTextEditor/store/toolbar/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAA;AAEvC,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,MAAM,OAAO,GAAuB,CAAC,KAAK,GAAG,YAAY,EAAE,MAAM,EAAE,EAAE;IACnE,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,WAAW,CAAC,IAAI;YACnB,uCACK,KAAK,KACR,MAAM,kCAAO,KAAK,CAAC,MAAM,KAAE,IAAI,EAAE,MAAM,CAAC,OAAO,OAChD;QACH,KAAK,WAAW,CAAC,MAAM;YACrB,uCACK,KAAK,KACR,MAAM,kCAAO,KAAK,CAAC,MAAM,KAAE,MAAM,EAAE,MAAM,CAAC,OAAO,OAClD;QACH,KAAK,WAAW,CAAC,MAAM;YACrB,uCACK,KAAK,KACR,MAAM,kCAAO,KAAK,CAAC,MAAM,KAAE,MAAM,EAAE,MAAM,CAAC,OAAO,OAClD;QACH,KAAK,WAAW,CAAC,IAAI;YACnB,uCACK,KAAK,KACR,MAAM,kCAAO,KAAK,CAAC,MAAM,KAAE,IAAI,EAAE,MAAM,CAAC,OAAO,OAChD;QACH,KAAK,WAAW,CAAC,IAAI;YACnB,uCACK,KAAK,KACR,MAAM,kCAAO,KAAK,CAAC,MAAM,KAAE,IAAI,EAAE,MAAM,CAAC,OAAO,OAChD;QACH,KAAK,WAAW,CAAC,QAAQ;YACvB,uCACK,KAAK,KACR,QAAQ,EAAE,MAAM,CAAC,OAAO,IACzB;QAEH,KAAK,WAAW,CAAC,WAAW;YAC1B,uCACK,KAAK,KACR,MAAM,EAAE,YAAY,CAAC,MAAM,IAC5B;QAEH;YACE,OAAO,KAAK,CAAA;KACf;AACH,CAAC,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -3,11 +3,13 @@ export declare type HeaderValue = '3' | '';
3
3
  export declare type BoldValue = boolean;
4
4
  export declare type ItalicValue = boolean;
5
5
  export declare type ListValue = 'bullet' | 'ordered' | false;
6
+ export declare type LinkValue = string;
6
7
  export declare type FormatType = {
7
8
  bold: BoldValue;
8
9
  italic: ItalicValue;
9
10
  list: ListValue;
10
11
  header: HeaderValue;
12
+ link: LinkValue;
11
13
  };
12
14
  export declare type ToolbarStateType = {
13
15
  format: FormatType;
@@ -29,6 +31,10 @@ export declare type SetHeaderActionType = {
29
31
  type: typeof actionTypes.header;
30
32
  payload: ToolbarStateType['format']['header'];
31
33
  };
34
+ export declare type SetLinkActionType = {
35
+ type: typeof actionTypes.link;
36
+ payload: ToolbarStateType['format']['link'];
37
+ };
32
38
  export declare type SetDisabled = {
33
39
  type: typeof actionTypes.disabled;
34
40
  payload: boolean;
@@ -36,5 +42,5 @@ export declare type SetDisabled = {
36
42
  export declare type ResetFormatType = {
37
43
  type: typeof actionTypes.resetFormat;
38
44
  };
39
- export declare type ToolbarActionsType = SetBoldActionType | SetItalicActionType | SetListActionType | SetHeaderActionType | SetDisabled | ResetFormatType;
45
+ export declare type ToolbarActionsType = SetBoldActionType | SetItalicActionType | SetListActionType | SetHeaderActionType | SetDisabled | ResetFormatType | SetLinkActionType;
40
46
  export declare type ToolbarReducerType = (state: ToolbarStateType | undefined, action: ToolbarActionsType) => ToolbarStateType;
@@ -1,8 +1,9 @@
1
- import { FormatType as EditorFormatType, BoldValue as EditorBoldValue, ItalicValue as EditorItalicValue, ListValue as EditorListValue, HeaderValue as EditorHeaderValue } from '../../QuillEditor';
1
+ import { FormatType as EditorFormatType, BoldValue as EditorBoldValue, ItalicValue as EditorItalicValue, ListValue as EditorListValue, HeaderValue as EditorHeaderValue, LinkValue as EditorLinkValue } from '../../QuillEditor';
2
2
  import { FormatType as ToolbarFormatType, HeaderValue } from '../store/toolbar';
3
3
  export declare const convertBoldFromEditorValue: (bold: EditorBoldValue) => boolean;
4
4
  export declare const convertItalicFromEditorValue: (italic: EditorItalicValue) => boolean;
5
5
  export declare const convertListFromEditorValue: (list: EditorListValue) => false | "bullet" | "ordered";
6
6
  export declare const convertHeaderFromEditorValue: (header: EditorHeaderValue) => "" | "3";
7
+ export declare const convertLinkFromEditorValue: (link: EditorLinkValue) => string;
7
8
  export declare const getToolbarFormatFromEditorFormat: (format: EditorFormatType) => ToolbarFormatType;
8
9
  export declare const convertHeaderToEditorValue: (header: HeaderValue) => EditorHeaderValue;
@@ -2,12 +2,14 @@ export const convertBoldFromEditorValue = (bold) => bold || false;
2
2
  export const convertItalicFromEditorValue = (italic) => italic || false;
3
3
  export const convertListFromEditorValue = (list) => list || false;
4
4
  export const convertHeaderFromEditorValue = (header) => header ? '3' : '';
5
+ export const convertLinkFromEditorValue = (link) => link || '';
5
6
  export const getToolbarFormatFromEditorFormat = (format) => {
6
7
  return {
7
8
  bold: convertBoldFromEditorValue(format.bold),
8
9
  italic: convertItalicFromEditorValue(format.italic),
9
10
  list: convertListFromEditorValue(format.list),
10
11
  header: convertHeaderFromEditorValue(format.header),
12
+ link: convertLinkFromEditorValue(format.link),
11
13
  };
12
14
  };
13
15
  export const convertHeaderToEditorValue = (header) => {
@@ -1 +1 @@
1
- {"version":3,"file":"convertFormat.js","sourceRoot":"","sources":["../../../src/RichTextEditor/utils/convertFormat.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAqB,EAAE,EAAE,CAClE,IAAI,IAAI,KAAK,CAAA;AACf,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,MAAyB,EAAE,EAAE,CACxE,MAAM,IAAI,KAAK,CAAA;AACjB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAqB,EAAE,EAAE,CAClE,IAAI,IAAI,KAAK,CAAA;AACf,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,MAAyB,EAAE,EAAE,CACxE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;AAEnB,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,MAAwB,EACL,EAAE;IACrB,OAAO;QACL,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7C,MAAM,EAAE,4BAA4B,CAAC,MAAM,CAAC,MAAM,CAAC;QACnD,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7C,MAAM,EAAE,4BAA4B,CAAC,MAAM,CAAC,MAAM,CAAC;KACpD,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,MAAmB,EACA,EAAE;IACrB,IAAI,MAAM,KAAK,EAAE,EAAE;QACjB,OAAO,SAAS,CAAA;KACjB;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA"}
1
+ {"version":3,"file":"convertFormat.js","sourceRoot":"","sources":["../../../src/RichTextEditor/utils/convertFormat.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAqB,EAAE,EAAE,CAClE,IAAI,IAAI,KAAK,CAAA;AACf,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,MAAyB,EAAE,EAAE,CACxE,MAAM,IAAI,KAAK,CAAA;AACjB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAqB,EAAE,EAAE,CAClE,IAAI,IAAI,KAAK,CAAA;AACf,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,MAAyB,EAAE,EAAE,CACxE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;AACnB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAqB,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAA;AAE/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,MAAwB,EACL,EAAE;IACrB,OAAO;QACL,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7C,MAAM,EAAE,4BAA4B,CAAC,MAAM,CAAC,MAAM,CAAC;QACnD,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7C,MAAM,EAAE,4BAA4B,CAAC,MAAM,CAAC,MAAM,CAAC;QACnD,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC,IAAI,CAAC;KAC9C,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,MAAmB,EACA,EAAE;IACrB,IAAI,MAAM,KAAK,EAAE,EAAE;QACjB,OAAO,SAAS,CAAA;KACjB;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ButtonHandlerType, SelectOnChangeHandler, FormatType } from './types';
3
+ import type { EditorPlugin } from '../QuillEditor';
3
4
  declare type Props = {
4
5
  disabled: boolean;
5
6
  id: string;
@@ -10,12 +11,15 @@ declare type Props = {
10
11
  italicButton?: string;
11
12
  unorderedListButton?: string;
12
13
  orderedListButton?: string;
14
+ linkButton?: string;
13
15
  };
14
16
  onBoldClick: ButtonHandlerType;
15
17
  onItalicClick: ButtonHandlerType;
18
+ onLinkClick: ButtonHandlerType;
16
19
  onHeaderChange: SelectOnChangeHandler;
17
20
  onUnorderedClick: ButtonHandlerType;
18
21
  onOrderedClick: ButtonHandlerType;
22
+ plugins?: EditorPlugin[];
19
23
  };
20
24
  export declare const RichTextEditorToolbar: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
21
25
  export default RichTextEditorToolbar;
@@ -1,6 +1,6 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import { makeStyles } from '@material-ui/core';
3
- import { Bold16, Italic16, ListOrdered16, ListUnordered16 } from '../Icon';
3
+ import { Bold16, Italic16, Link16, ListOrdered16, ListUnordered16, } from '../Icon';
4
4
  import Container from '../Container';
5
5
  import Select from '../Select';
6
6
  import styles from './styles';
@@ -9,9 +9,10 @@ const useStyles = makeStyles(styles, {
9
9
  name: 'RichTextEditorToolbar',
10
10
  });
11
11
  export const RichTextEditorToolbar = forwardRef(function RichTextEditorToolbar(props, ref) {
12
- const { disabled, id, format, onBoldClick, onItalicClick, onHeaderChange, onUnorderedClick, onOrderedClick, testIds, } = props;
12
+ const { disabled, id, format, onBoldClick, onItalicClick, onLinkClick, onHeaderChange, onUnorderedClick, onOrderedClick, testIds, plugins, } = props;
13
13
  const classes = useStyles(props);
14
14
  const isHeadingFormat = format.header === '3';
15
+ const allowLinks = plugins === null || plugins === void 0 ? void 0 : plugins.includes('link');
15
16
  return (React.createElement(Container, { id: `${id}toolbar`, ref: ref, className: classes.toolbar },
16
17
  React.createElement(Container, { className: classes.group },
17
18
  React.createElement(Select, { onChange: onHeaderChange, value: format.header, options: [
@@ -23,7 +24,9 @@ export const RichTextEditorToolbar = forwardRef(function RichTextEditorToolbar(p
23
24
  React.createElement(TextEditorButton, { icon: React.createElement(Italic16, null), onClick: onItalicClick, active: isHeadingFormat ? false : format.italic, disabled: isHeadingFormat || disabled, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.italicButton })),
24
25
  React.createElement(Container, { className: classes.group },
25
26
  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 }),
26
- 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 }))));
27
+ 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 })),
28
+ allowLinks && (React.createElement(Container, { className: classes.group },
29
+ 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 })))));
27
30
  });
28
31
  RichTextEditorToolbar.defaultProps = {
29
32
  disabled: false,
@@ -32,6 +35,7 @@ RichTextEditorToolbar.defaultProps = {
32
35
  italic: false,
33
36
  list: false,
34
37
  header: '',
38
+ link: '',
35
39
  },
36
40
  onBoldClick: () => { },
37
41
  onItalicClick: () => { },
@@ -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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"}
@@ -3,11 +3,13 @@ export declare type HeaderValue = '3' | '';
3
3
  export declare type BoldValue = boolean;
4
4
  export declare type ItalicValue = boolean;
5
5
  export declare type ListValue = 'bullet' | 'ordered' | false;
6
+ export declare type LinkValue = string;
6
7
  export declare type FormatType = {
7
8
  bold: BoldValue;
8
9
  italic: ItalicValue;
9
10
  list: ListValue;
10
11
  header: HeaderValue;
12
+ link: LinkValue;
11
13
  };
12
14
  export declare type ButtonHandlerType = MouseEventHandler<HTMLButtonElement>;
13
15
  export declare type SelectOnChangeHandler = (event: ChangeEvent<{
@@ -12,7 +12,7 @@ export interface Props extends BaseProps {
12
12
  list?: string;
13
13
  };
14
14
  }
15
- export declare const scrollToSelection: (menuRef: RefObject<HTMLDivElement>, selectedIndex?: number | null) => void;
15
+ export declare const scrollToSelection: (menuRef: RefObject<HTMLDivElement>, selectedIndex?: number | null | undefined) => void;
16
16
  declare const ScrollMenu: {
17
17
  (props: Props): JSX.Element;
18
18
  defaultProps: {
@@ -1,3 +1,3 @@
1
1
  import { Option, ValueType } from '../../types';
2
- declare const getSelectedOptions: (flatOptions: Option[], value?: ValueType | ValueType[]) => Option<string | number>[];
2
+ declare const getSelectedOptions: (flatOptions: Option[], value?: ValueType | ValueType[] | undefined) => Option<string | number>[];
3
3
  export default getSelectedOptions;
@@ -1,3 +1,3 @@
1
1
  import { ValueType } from '../../types';
2
- export declare const isEmpty: (value?: ValueType | ValueType[]) => boolean;
2
+ export declare const isEmpty: (value?: ValueType | ValueType[] | undefined) => boolean;
3
3
  export default isEmpty;
@@ -1,2 +1,2 @@
1
1
  import { DirectionsType } from './types';
2
- export declare const useFinalMargins: (direction: DirectionsType, verticalMargin?: number, horizontalMargin?: number) => [number, number];
2
+ export declare const useFinalMargins: (direction: DirectionsType, verticalMargin?: number | undefined, horizontalMargin?: number | undefined) => [number, number];
@@ -1,3 +1,3 @@
1
1
  import { Theme } from '@material-ui/core/styles';
2
- declare const _default: (theme: Theme) => import("@material-ui/styles").StyleRules<{}, "inherit" | "black" | "green" | "grey" | "red" | "yellow" | "dashed" | "solid" | "invert" | "regular" | "lightBlue" | "lightGrey" | "darkGrey" | "bodyXxsmall" | "bodyXsmall" | "bodySmall" | "bodyMedium" | "bodyLarge" | "bodyInherit" | "headingMedium" | "semibold" | "inheritWeight" | "lineThrough">;
2
+ declare const _default: (theme: Theme) => import("@material-ui/styles").StyleRules<{}, "inherit" | "black" | "blue" | "green" | "grey" | "red" | "yellow" | "dashed" | "solid" | "invert" | "regular" | "lightBlue" | "lightGrey" | "darkGrey" | "bodyXxsmall" | "bodyXsmall" | "bodySmall" | "bodyMedium" | "bodyLarge" | "bodyInherit" | "headingMedium" | "semibold" | "inheritWeight" | "lineThrough">;
3
3
  export default _default;
@@ -122,6 +122,9 @@ export default (theme) => {
122
122
  inherit: {
123
123
  color: 'inherit',
124
124
  },
125
+ blue: {
126
+ color: palette.blue.main,
127
+ },
125
128
  solid: {
126
129
  textDecoration: 'underline',
127
130
  textDecorationStyle: 'solid',
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Typography/styles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Typography/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,YAAY,MAAM,wBAAwB,CAAA;AAEjD,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IAC1C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;IACjC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ;IACjD,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,MAAM;CACnB,CAAC,CAAA;AAEF,yDAAyD;AACzD,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;IAC/B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IACrC,kEAAkE;IAClE,wFAAwF;IAExF,OAAO;QACL,aAAa,EAAE;YACb,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;gBACnC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;gBAC3B,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ;gBAC3C,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,MAAM;aACnB;YACD,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE;gBAClC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;gBAC3B,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ;gBAC3C,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,MAAM;aACnB;YACD,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC;YAC5D,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE;gBAClC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;gBAC3B,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ;gBAC3C,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,MAAM;aACnB;YACD,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE;gBAChC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;gBAC3B,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO;gBAC1C,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,MAAM;aACnB;SACF;KACF,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,CAAC,KAAY,EAAE,EAAE;IAC9B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IAErC,8GAA8G;IAC9G,OAAO,YAAY,CAAC;QAClB,WAAW,EAAE;YACX,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;YAC3B,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO;YAC1C,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,MAAM;SACnB;QACD,UAAU,EAAE;YACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;YAC3B,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO;YAC1C,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,MAAM;SACnB;QACD,SAAS,EAAE;YACT,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;YAC3B,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO;YAC1C,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,MAAM;SACnB;QACD,UAAU,EAAE;YACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;YAC3B,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO;YAC1C,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,MAAM;SACnB;QACD,SAAS,EAAE;YACT,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;YAC3B,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO;YAC1C,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,MAAM;SACnB;QACD,WAAW,EAAE;YACX,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,OAAO;YACnB,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO;YAC1C,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;SAC5B;QAED,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC;QAEtC,OAAO,EAAE;YACP,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO;SAC3C;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ;SAC5C;QACD,aAAa,EAAE;YACb,UAAU,EAAE,SAAS;SACtB;QAED,KAAK,EAAE;YACL,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;SAC1B;QACD,GAAG,EAAE;YACH,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;SACxB;QACD,MAAM,EAAE;YACN,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;SAC3B;QACD,SAAS,EAAE;YACT,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;SAC3B;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;SACzB;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;SAC5B;QACD,KAAK,EAAE;YACL,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;SAC5B;QACD,SAAS,EAAE;YACT,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;SAC1B;QACD,MAAM,EAAE;YACN,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;SAC5B;QACD,OAAO,EAAE;YACP,KAAK,EAAE,SAAS;SACjB;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;SACzB;QAED,KAAK,EAAE;YACL,cAAc,EAAE,WAAW;YAC3B,mBAAmB,EAAE,OAAO;SAC7B;QACD,MAAM,EAAE;YACN,cAAc,EAAE,WAAW;YAC3B,mBAAmB,EAAE,QAAQ;SAC9B;QACD,WAAW,EAAE;YACX,cAAc,EAAE,cAAc;SAC/B;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toptal/picasso",
3
- "version": "26.1.2",
3
+ "version": "26.2.0",
4
4
  "description": "Toptal UI components library",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -24,11 +24,11 @@
24
24
  "homepage": "https://github.com/toptal/picasso/tree/master/packages/picasso#readme",
25
25
  "peerDependencies": {
26
26
  "@material-ui/core": "4.11.0",
27
+ "@toptal/picasso-provider": "^1.2.0",
27
28
  "notistack": "1.0.6",
28
29
  "react": ">=16.12.0 < 19.0.0",
29
30
  "react-dom": ">=16.12.0 < 19.0.0",
30
31
  "react-helmet": "6.1.0",
31
- "@toptal/picasso-provider": "^1.2.0",
32
32
  "typescript": "4.6.x"
33
33
  },
34
34
  "dependencies": {
@@ -58,10 +58,10 @@
58
58
  },
59
59
  "devDependencies": {
60
60
  "@babel/types": "^7.15.0",
61
- "@toptal/picasso-provider": "1.2.0",
62
61
  "@testing-library/jest-dom": "^5.16.4",
63
62
  "@testing-library/react": "^13.0.0",
64
63
  "@testing-library/react-hooks": "^7.0.2",
64
+ "@toptal/picasso-provider": "1.2.0",
65
65
  "@types/classnames": "^2.3.1",
66
66
  "@types/d3": "^6.7.4",
67
67
  "@types/quill": "^2.0.9",
@@ -4,6 +4,6 @@ import TestingPicasso from './TestingPicasso';
4
4
  export declare type PicassoConfig = {
5
5
  titleCase: boolean;
6
6
  };
7
- declare const customRender: (ui: ReactElement, options?: Omit<RenderOptions, 'queries'>, picassoConfig?: PicassoConfig) => RenderResult;
7
+ declare const customRender: (ui: ReactElement, options?: Omit<RenderOptions<typeof import("@testing-library/dom/types/queries"), HTMLElement, HTMLElement>, "queries"> | undefined, picassoConfig?: PicassoConfig | undefined) => RenderResult;
8
8
  export * from '@testing-library/react';
9
9
  export { customRender as render, TestingPicasso };
@@ -1,9 +1,9 @@
1
1
  import React, { ReactNode, ReactElement } from 'react';
2
2
  import { OptionsObject } from 'notistack';
3
3
  export declare const useNotifications: () => {
4
- showError: (content: ReactNode, icon?: ReactElement, options?: OptionsObject) => import("notistack").SnackbarKey;
5
- showInfo: (content: ReactNode, icon?: ReactElement, options?: OptionsObject) => import("notistack").SnackbarKey;
6
- showSuccess: (content: ReactNode, icon?: ReactElement, options?: OptionsObject) => import("notistack").SnackbarKey;
7
- showCustom: (notificationElement: React.ReactElement, options?: OptionsObject) => import("notistack").SnackbarKey;
4
+ showError: (content: ReactNode, icon?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined, options?: OptionsObject | undefined) => import("notistack").SnackbarKey;
5
+ showInfo: (content: ReactNode, icon?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined, options?: OptionsObject | undefined) => import("notistack").SnackbarKey;
6
+ showSuccess: (content: ReactNode, icon?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined, options?: OptionsObject | undefined) => import("notistack").SnackbarKey;
7
+ showCustom: (notificationElement: React.ReactElement, options?: OptionsObject | undefined) => import("notistack").SnackbarKey;
8
8
  closeNotification: (key?: import("notistack").SnackbarKey | undefined) => void;
9
9
  };
@@ -9,7 +9,7 @@ export const hastSanitizeSchema = {
9
9
  attributes: {
10
10
  '*': [],
11
11
  },
12
- tagNames: ['h3', 'p', 'br', 'strong', 'em', 'ul', 'ol', 'li'],
12
+ tagNames: ['h3', 'p', 'br', 'strong', 'em', 'ul', 'ol', 'li', 'a'],
13
13
  strip: ['script'],
14
14
  };
15
15
  const htmlToAst = (html) => {
@@ -1 +1 @@
1
- {"version":3,"file":"html-to-hast.js","sourceRoot":"","sources":["../../src/utils/html-to-hast.ts"],"names":[],"mappings":"AAAA,OAAO,YAAwB,MAAM,oBAAoB,CAAA;AACzD,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;KACR;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC7D,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,CAC1B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EACrB,kBAAkB,CACJ,CAAA;IAEhB,MAAM,GAAG,GAAY;QACnB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,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":"AAAA,OAAO,YAAwB,MAAM,oBAAoB,CAAA;AACzD,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;KACR;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,CAC1B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EACrB,kBAAkB,CACJ,CAAA;IAEhB,MAAM,GAAG,GAAY;QACnB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,eAAe,SAAS,CAAA"}