@toptal/picasso-rich-text-editor 4.2.1 → 5.0.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 (79) hide show
  1. package/LexicalEditor/styles.d.ts +1 -1
  2. package/LexicalEditor/styles.js +10 -3
  3. package/LexicalEditor/styles.js.map +1 -1
  4. package/LexicalEditor/utils/cleanup-html-output.js +2 -0
  5. package/LexicalEditor/utils/cleanup-html-output.js.map +1 -1
  6. package/LexicalEditor/utils/cleanup-html-output.test.js +12 -0
  7. package/LexicalEditor/utils/cleanup-html-output.test.js.map +1 -1
  8. package/LexicalEditor/utils/create-lexical-theme.js +2 -0
  9. package/LexicalEditor/utils/create-lexical-theme.js.map +1 -1
  10. package/LexicalEditor/utils/hasChildDOMNodeTag.d.ts +2 -0
  11. package/LexicalEditor/utils/hasChildDOMNodeTag.js +12 -0
  12. package/LexicalEditor/utils/hasChildDOMNodeTag.js.map +1 -0
  13. package/LexicalEditor/utils/hasChildDOMNodeTag.test.d.ts +1 -0
  14. package/LexicalEditor/utils/hasChildDOMNodeTag.test.js +39 -0
  15. package/LexicalEditor/utils/hasChildDOMNodeTag.test.js.map +1 -0
  16. package/LexicalEditor/utils/index.d.ts +1 -0
  17. package/LexicalEditor/utils/index.js +1 -0
  18. package/LexicalEditor/utils/index.js.map +1 -1
  19. package/LexicalEditorToolbarPlugin/LexicalEditorToolbarPlugin.js +16 -2
  20. package/LexicalEditorToolbarPlugin/LexicalEditorToolbarPlugin.js.map +1 -1
  21. package/RichText/components/CodeBlock.d.ts +6 -0
  22. package/RichText/components/CodeBlock.js +10 -0
  23. package/RichText/components/CodeBlock.js.map +1 -0
  24. package/RichText/components/index.d.ts +2 -0
  25. package/RichText/components/index.js +2 -0
  26. package/RichText/components/index.js.map +1 -1
  27. package/RichText/components/styles.d.ts +4 -10
  28. package/RichText/components/styles.js +17 -0
  29. package/RichText/components/styles.js.map +1 -1
  30. package/RichText/hooks/useRichText/useRichText.js +2 -2
  31. package/RichText/hooks/useRichText/useRichText.js.map +1 -1
  32. package/RichText/types.d.ts +1 -1
  33. package/RichTextEditorToolbar/RichTextEditorToolbar.js +5 -4
  34. package/RichTextEditorToolbar/RichTextEditorToolbar.js.map +1 -1
  35. package/index.d.ts +1 -1
  36. package/index.js +1 -1
  37. package/index.js.map +1 -1
  38. package/package.json +2 -2
  39. package/plugins/CodeBlockPlugin/CodeBlockButton.d.ts +6 -0
  40. package/plugins/CodeBlockPlugin/CodeBlockButton.js +98 -0
  41. package/plugins/CodeBlockPlugin/CodeBlockButton.js.map +1 -0
  42. package/plugins/CodeBlockPlugin/CodeBlockPlugin.d.ts +8 -0
  43. package/plugins/CodeBlockPlugin/CodeBlockPlugin.js +43 -0
  44. package/plugins/CodeBlockPlugin/CodeBlockPlugin.js.map +1 -0
  45. package/plugins/CodeBlockPlugin/index.d.ts +1 -0
  46. package/plugins/CodeBlockPlugin/index.js +2 -0
  47. package/plugins/CodeBlockPlugin/index.js.map +1 -0
  48. package/plugins/CodeBlockPlugin/nodes/CodeBlockNode.d.ts +18 -0
  49. package/plugins/CodeBlockPlugin/nodes/CodeBlockNode.js +135 -0
  50. package/plugins/CodeBlockPlugin/nodes/CodeBlockNode.js.map +1 -0
  51. package/plugins/CodeBlockPlugin/nodes/CodeBlockTextNode.d.ts +14 -0
  52. package/plugins/CodeBlockPlugin/nodes/CodeBlockTextNode.js +43 -0
  53. package/plugins/CodeBlockPlugin/nodes/CodeBlockTextNode.js.map +1 -0
  54. package/plugins/CodeBlockPlugin/nodes/index.d.ts +8 -0
  55. package/plugins/CodeBlockPlugin/nodes/index.js +15 -0
  56. package/plugins/CodeBlockPlugin/nodes/index.js.map +1 -0
  57. package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.d.ts +4 -0
  58. package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.js +12 -0
  59. package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.js.map +1 -0
  60. package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.test.d.ts +1 -0
  61. package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.test.js +66 -0
  62. package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.test.js.map +1 -0
  63. package/plugins/CodeBlockPlugin/utils/index.d.ts +1 -0
  64. package/plugins/CodeBlockPlugin/utils/index.js +2 -0
  65. package/plugins/CodeBlockPlugin/utils/index.js.map +1 -0
  66. package/plugins/CodePlugin/CodeButton.js +3 -2
  67. package/plugins/CodePlugin/CodeButton.js.map +1 -1
  68. package/plugins/ImagePlugin/components/ImagePluginButton/ImagePluginButton.js +2 -2
  69. package/plugins/ImagePlugin/components/ImagePluginButton/ImagePluginButton.js.map +1 -1
  70. package/plugins/LinkPlugin/LinkPluginButton.js +3 -2
  71. package/plugins/LinkPlugin/LinkPluginButton.js.map +1 -1
  72. package/plugins/api.d.ts +2 -0
  73. package/plugins/api.js +9 -2
  74. package/plugins/api.js.map +1 -1
  75. package/plugins/index.d.ts +1 -0
  76. package/plugins/index.js +1 -0
  77. package/plugins/index.js.map +1 -1
  78. package/utils/html-to-hast.js +1 -0
  79. package/utils/html-to-hast.js.map +1 -1
package/plugins/api.d.ts CHANGED
@@ -21,6 +21,8 @@ export declare type ToolbarPortalProviderProps = {
21
21
  export declare const RTEPluginContextProvider: ({ children, disabled, focused, }: ToolbarPortalProviderProps) => JSX.Element;
22
22
  export declare const useRTEPluginContext: () => {
23
23
  disabled: boolean;
24
+ disabledFormatting: boolean;
24
25
  focused: boolean;
26
+ setDisabledFormatting: (value: boolean) => void;
25
27
  };
26
28
  export { Props as ToolbarProps, Toolbar, useToolbarPortalRegister, } from './Toolbar/Toolbar';
package/plugins/api.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
2
- import React, { createContext, useContext, useEffect } from 'react';
2
+ import React, { createContext, useContext, useEffect, useState } from 'react';
3
3
  import { registerLexicalEvents } from '../LexicalEditor/utils/register-lexical-events';
4
4
  import { ToolbarProvider } from './Toolbar/Toolbar';
5
5
  export const RTEPluginMeta = Symbol('PicassoRTEPluginMeta');
@@ -17,21 +17,28 @@ export const useRTEUpdate = (callback) => {
17
17
  };
18
18
  const RTEPluginContext = createContext({
19
19
  disabled: false,
20
+ disabledFormatting: false,
20
21
  focused: false,
22
+ setDisabledFormatting: () => { },
21
23
  });
22
24
  export const RTEPluginContextProvider = ({ children, disabled, focused, }) => {
25
+ const [disabledFormatting, setDisabledFormatting] = useState(false);
23
26
  const value = {
24
27
  disabled,
28
+ disabledFormatting,
29
+ setDisabledFormatting,
25
30
  focused,
26
31
  };
27
32
  return (React.createElement(ToolbarProvider, null,
28
33
  React.createElement(RTEPluginContext.Provider, { value: value }, children)));
29
34
  };
30
35
  export const useRTEPluginContext = () => {
31
- const { disabled, focused } = useContext(RTEPluginContext);
36
+ const { disabled, focused, disabledFormatting, setDisabledFormatting } = useContext(RTEPluginContext);
32
37
  return {
33
38
  disabled,
39
+ disabledFormatting,
34
40
  focused,
41
+ setDisabledFormatting,
35
42
  };
36
43
  };
37
44
  export { Toolbar, useToolbarPortalRegister, } from './Toolbar/Toolbar';
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/plugins/api.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAGjF,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAA;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAA;AAe3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAU,EAG3C,EAAE;IACF,OAAO,CACL,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU;QACjC,aAAa,IAAI,MAAM,CAAC,IAAI,CAC7B,CAAA;AACH,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAoB,EAAE,EAAE;IACnD,MAAM,CAAC,MAAM,CAAC,GAAG,yBAAyB,EAAE,CAAA;IAE5C,SAAS,CACP,GAAG,EAAE,CACH,qBAAqB,CAAC;QACpB,MAAM;QACN,aAAa,EAAE,QAAQ;KACxB,CAAC,EACJ,CAAC,QAAQ,EAAE,MAAM,CAAC,CACnB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,aAAa,CAAwB;IAC5D,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,KAAK;CACf,CAAC,CAAA;AAQF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,QAAQ,EACR,QAAQ,EACR,OAAO,GACoB,EAAE,EAAE;IAC/B,MAAM,KAAK,GAA0B;QACnC,QAAQ;QACR,OAAO;KACR,CAAA;IAED,OAAO,CACL,oBAAC,eAAe;QACd,oBAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACpC,QAAQ,CACiB,CACZ,CACnB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAE1D,OAAO;QACL,QAAQ;QACR,OAAO;KACR,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAEL,OAAO,EACP,wBAAwB,GACzB,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/plugins/api.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAGjF,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAA;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAA;AAe3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAU,EAG3C,EAAE;IACF,OAAO,CACL,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU;QACjC,aAAa,IAAI,MAAM,CAAC,IAAI,CAC7B,CAAA;AACH,CAAC,CAAA;AASD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAoB,EAAE,EAAE;IACnD,MAAM,CAAC,MAAM,CAAC,GAAG,yBAAyB,EAAE,CAAA;IAE5C,SAAS,CACP,GAAG,EAAE,CACH,qBAAqB,CAAC;QACpB,MAAM;QACN,aAAa,EAAE,QAAQ;KACxB,CAAC,EACJ,CAAC,QAAQ,EAAE,MAAM,CAAC,CACnB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,aAAa,CAAwB;IAC5D,QAAQ,EAAE,KAAK;IACf,kBAAkB,EAAE,KAAK;IACzB,OAAO,EAAE,KAAK;IACd,qBAAqB,EAAE,GAAG,EAAE,GAAE,CAAC;CAChC,CAAC,CAAA;AAQF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,QAAQ,EACR,QAAQ,EACR,OAAO,GACoB,EAAE,EAAE;IAC/B,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEnE,MAAM,KAAK,GAA0B;QACnC,QAAQ;QACR,kBAAkB;QAClB,qBAAqB;QACrB,OAAO;KACR,CAAA;IAED,OAAO,CACL,oBAAC,eAAe;QACd,oBAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACpC,QAAQ,CACiB,CACZ,CACnB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,GACpE,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAE9B,OAAO;QACL,QAAQ;QACR,kBAAkB;QAClB,OAAO;QACP,qBAAqB;KACtB,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAEL,OAAO,EACP,wBAAwB,GACzB,MAAM,mBAAmB,CAAA"}
@@ -9,4 +9,5 @@ export { default as TriggerInitialOnChangePlugin } from './TriggerInitialOnChang
9
9
  export { default as FocusOnLabelClickPlugin } from './FocusOnLabelClickPlugin';
10
10
  export { default as CodePlugin } from './CodePlugin';
11
11
  export { default as ImagePlugin } from './ImagePlugin';
12
+ export { default as CodeBlockPlugin } from './CodeBlockPlugin';
12
13
  export type { UploadedImage } from './ImagePlugin';
package/plugins/index.js CHANGED
@@ -8,4 +8,5 @@ export { default as TriggerInitialOnChangePlugin } from './TriggerInitialOnChang
8
8
  export { default as FocusOnLabelClickPlugin } from './FocusOnLabelClickPlugin';
9
9
  export { default as CodePlugin } from './CodePlugin';
10
10
  export { default as ImagePlugin } from './ImagePlugin';
11
+ export { default as CodeBlockPlugin } from './CodeBlockPlugin';
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,UAAU,EAA4B,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AACxF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,UAAU,EAA4B,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AACxF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
@@ -23,6 +23,7 @@ export const hastSanitizeSchema = {
23
23
  'a',
24
24
  'img',
25
25
  'code',
26
+ 'pre',
26
27
  ],
27
28
  strip: ['script'],
28
29
  };
@@ -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,CAAC,EAAE,CAAC,MAAM,CAAC;QACX,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;QAC9B,GAAG,EAAE,EAAE;KACR;IACD,QAAQ,EAAE;QACR,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,MAAM;KACP;IACD,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,CAAC,EAAE,CAAC,MAAM,CAAC;QACX,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;QAC9B,GAAG,EAAE,EAAE;KACR;IACD,QAAQ,EAAE;QACR,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,MAAM;QACN,KAAK;KACN;IACD,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"}