@toptal/picasso-rich-text-editor 4.2.0 → 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 (175) hide show
  1. package/LexicalEditor/hooks/useOnFocus/index.d.ts +1 -1
  2. package/LexicalEditor/hooks/useOnFocus/index.js +1 -1
  3. package/LexicalEditor/hooks/useOnFocus/index.js.map +1 -1
  4. package/LexicalEditor/hooks/useOnFocus/{useOnFocus.js → use-on-focus.js} +1 -1
  5. package/LexicalEditor/hooks/useOnFocus/use-on-focus.js.map +1 -0
  6. package/LexicalEditor/hooks/useTypographyClasses/index.d.ts +1 -1
  7. package/LexicalEditor/hooks/useTypographyClasses/index.js +1 -1
  8. package/LexicalEditor/hooks/useTypographyClasses/index.js.map +1 -1
  9. package/LexicalEditor/hooks/useTypographyClasses/{useTypographyClasses.js → use-typography-classes.js} +1 -1
  10. package/LexicalEditor/hooks/useTypographyClasses/use-typography-classes.js.map +1 -0
  11. package/LexicalEditor/styles.d.ts +1 -1
  12. package/LexicalEditor/styles.js +10 -3
  13. package/LexicalEditor/styles.js.map +1 -1
  14. package/LexicalEditor/utils/{cleanupHtmlOutput.js → cleanup-html-output.js} +3 -1
  15. package/LexicalEditor/utils/cleanup-html-output.js.map +1 -0
  16. package/LexicalEditor/utils/{cleanupHtmlOutput.test.js → cleanup-html-output.test.js} +14 -2
  17. package/LexicalEditor/utils/cleanup-html-output.test.js.map +1 -0
  18. package/LexicalEditor/utils/{createLexicalTheme.js → create-lexical-theme.js} +3 -1
  19. package/LexicalEditor/utils/create-lexical-theme.js.map +1 -0
  20. package/LexicalEditor/utils/{getDomValue.js → get-dom-value.js} +1 -1
  21. package/LexicalEditor/utils/get-dom-value.js.map +1 -0
  22. package/LexicalEditor/utils/{getDomValue.test.js → get-dom-value.test.js} +2 -2
  23. package/LexicalEditor/utils/get-dom-value.test.js.map +1 -0
  24. package/LexicalEditor/utils/{getLexicalNode.js → get-lexical-node.js} +1 -1
  25. package/LexicalEditor/utils/get-lexical-node.js.map +1 -0
  26. package/LexicalEditor/utils/{getSelectedNode.js → get-selected-node.js} +1 -1
  27. package/LexicalEditor/utils/get-selected-node.js.map +1 -0
  28. package/LexicalEditor/utils/hasChildDOMNodeTag.d.ts +2 -0
  29. package/LexicalEditor/utils/hasChildDOMNodeTag.js +12 -0
  30. package/LexicalEditor/utils/hasChildDOMNodeTag.js.map +1 -0
  31. package/LexicalEditor/utils/hasChildDOMNodeTag.test.js +39 -0
  32. package/LexicalEditor/utils/hasChildDOMNodeTag.test.js.map +1 -0
  33. package/LexicalEditor/utils/index.d.ts +9 -8
  34. package/LexicalEditor/utils/index.js +9 -8
  35. package/LexicalEditor/utils/index.js.map +1 -1
  36. package/LexicalEditor/utils/{registerLexicalEvents.js → register-lexical-events.js} +1 -1
  37. package/LexicalEditor/utils/register-lexical-events.js.map +1 -0
  38. package/LexicalEditor/utils/{registerLexicalEvents.test.js → register-lexical-events.test.js} +2 -2
  39. package/LexicalEditor/utils/register-lexical-events.test.js.map +1 -0
  40. package/LexicalEditor/utils/{setEditorValue.js → set-editor-value.js} +2 -2
  41. package/LexicalEditor/utils/set-editor-value.js.map +1 -0
  42. package/LexicalEditor/utils/{synchronizeToolbarState.d.ts → synchronize-toolbar-state.d.ts} +1 -1
  43. package/LexicalEditor/utils/{synchronizeToolbarState.js → synchronize-toolbar-state.js} +3 -3
  44. package/LexicalEditor/utils/synchronize-toolbar-state.js.map +1 -0
  45. package/LexicalEditor/utils/{synchronizeToolbarState.test.js → synchronize-toolbar-state.test.js} +7 -7
  46. package/LexicalEditor/utils/synchronize-toolbar-state.test.js.map +1 -0
  47. package/LexicalEditor/utils/{toolbarState.js → toolbar-state.js} +1 -1
  48. package/LexicalEditor/utils/toolbar-state.js.map +1 -0
  49. package/LexicalEditorToolbarPlugin/LexicalEditorToolbarPlugin.js +16 -2
  50. package/LexicalEditorToolbarPlugin/LexicalEditorToolbarPlugin.js.map +1 -1
  51. package/RichText/components/CodeBlock.d.ts +6 -0
  52. package/RichText/components/CodeBlock.js +10 -0
  53. package/RichText/components/CodeBlock.js.map +1 -0
  54. package/RichText/components/index.d.ts +2 -0
  55. package/RichText/components/index.js +2 -0
  56. package/RichText/components/index.js.map +1 -1
  57. package/RichText/components/styles.d.ts +4 -10
  58. package/RichText/components/styles.js +17 -0
  59. package/RichText/components/styles.js.map +1 -1
  60. package/RichText/hooks/useRichText/useRichText.js +2 -2
  61. package/RichText/hooks/useRichText/useRichText.js.map +1 -1
  62. package/RichText/types.d.ts +1 -1
  63. package/RichTextEditor/hooks/useTypographyClasses/index.d.ts +1 -1
  64. package/RichTextEditor/hooks/useTypographyClasses/index.js +1 -1
  65. package/RichTextEditor/hooks/useTypographyClasses/index.js.map +1 -1
  66. package/RichTextEditor/hooks/useTypographyClasses/{useTypographyClasses.js → use-typography-classes.js} +1 -1
  67. package/RichTextEditor/hooks/useTypographyClasses/use-typography-classes.js.map +1 -0
  68. package/RichTextEditor/store/toolbar/{actionTypes.js → action-types.js} +1 -1
  69. package/RichTextEditor/store/toolbar/action-types.js.map +1 -0
  70. package/RichTextEditor/store/toolbar/actions.js +1 -1
  71. package/RichTextEditor/store/toolbar/actions.js.map +1 -1
  72. package/RichTextEditor/store/toolbar/index.d.ts +2 -2
  73. package/RichTextEditor/store/toolbar/index.js +2 -2
  74. package/RichTextEditor/store/toolbar/index.js.map +1 -1
  75. package/RichTextEditor/store/toolbar/{initialState.js → initial-state.js} +1 -1
  76. package/RichTextEditor/store/toolbar/initial-state.js.map +1 -0
  77. package/RichTextEditor/store/toolbar/reducer.js +2 -2
  78. package/RichTextEditor/store/toolbar/reducer.js.map +1 -1
  79. package/RichTextEditor/store/toolbar/types.d.ts +1 -1
  80. package/RichTextEditor/styles.js +1 -1
  81. package/RichTextEditor/styles.js.map +1 -1
  82. package/RichTextEditorToolbar/RichTextEditorToolbar.js +5 -4
  83. package/RichTextEditorToolbar/RichTextEditorToolbar.js.map +1 -1
  84. package/index.d.ts +1 -1
  85. package/index.js +1 -1
  86. package/index.js.map +1 -1
  87. package/package.json +2 -2
  88. package/plugins/CodeBlockPlugin/CodeBlockButton.d.ts +6 -0
  89. package/plugins/CodeBlockPlugin/CodeBlockButton.js +98 -0
  90. package/plugins/CodeBlockPlugin/CodeBlockButton.js.map +1 -0
  91. package/plugins/CodeBlockPlugin/CodeBlockPlugin.d.ts +8 -0
  92. package/plugins/CodeBlockPlugin/CodeBlockPlugin.js +43 -0
  93. package/plugins/CodeBlockPlugin/CodeBlockPlugin.js.map +1 -0
  94. package/plugins/CodeBlockPlugin/index.d.ts +1 -0
  95. package/plugins/CodeBlockPlugin/index.js +2 -0
  96. package/plugins/CodeBlockPlugin/index.js.map +1 -0
  97. package/plugins/CodeBlockPlugin/nodes/CodeBlockNode.d.ts +18 -0
  98. package/plugins/CodeBlockPlugin/nodes/CodeBlockNode.js +135 -0
  99. package/plugins/CodeBlockPlugin/nodes/CodeBlockNode.js.map +1 -0
  100. package/plugins/CodeBlockPlugin/nodes/CodeBlockTextNode.d.ts +14 -0
  101. package/plugins/CodeBlockPlugin/nodes/CodeBlockTextNode.js +43 -0
  102. package/plugins/CodeBlockPlugin/nodes/CodeBlockTextNode.js.map +1 -0
  103. package/plugins/CodeBlockPlugin/nodes/index.d.ts +8 -0
  104. package/plugins/CodeBlockPlugin/nodes/index.js +15 -0
  105. package/plugins/CodeBlockPlugin/nodes/index.js.map +1 -0
  106. package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.d.ts +4 -0
  107. package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.js +12 -0
  108. package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.js.map +1 -0
  109. package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.test.d.ts +1 -0
  110. package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.test.js +66 -0
  111. package/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.test.js.map +1 -0
  112. package/plugins/CodeBlockPlugin/utils/index.d.ts +1 -0
  113. package/plugins/CodeBlockPlugin/utils/index.js +2 -0
  114. package/plugins/CodeBlockPlugin/utils/index.js.map +1 -0
  115. package/plugins/CodePlugin/CodeButton.js +3 -2
  116. package/plugins/CodePlugin/CodeButton.js.map +1 -1
  117. package/plugins/HeadingsReplacementPlugin/utils/index.d.ts +1 -1
  118. package/plugins/HeadingsReplacementPlugin/utils/index.js +1 -1
  119. package/plugins/HeadingsReplacementPlugin/utils/index.js.map +1 -1
  120. package/plugins/HeadingsReplacementPlugin/utils/{replaceHeadingNodes.js → replace-heading-nodes.js} +1 -1
  121. package/plugins/HeadingsReplacementPlugin/utils/replace-heading-nodes.js.map +1 -0
  122. package/plugins/HeadingsReplacementPlugin/utils/replace-heading-nodes.test.d.ts +1 -0
  123. package/plugins/HeadingsReplacementPlugin/utils/{replaceHeadingNodes.test.js → replace-heading-nodes.test.js} +2 -2
  124. package/plugins/HeadingsReplacementPlugin/utils/replace-heading-nodes.test.js.map +1 -0
  125. package/plugins/ImagePlugin/components/ImagePluginButton/ImagePluginButton.js +2 -2
  126. package/plugins/ImagePlugin/components/ImagePluginButton/ImagePluginButton.js.map +1 -1
  127. package/plugins/LinkPlugin/LinkPluginButton.js +4 -3
  128. package/plugins/LinkPlugin/LinkPluginButton.js.map +1 -1
  129. package/plugins/api.d.ts +2 -0
  130. package/plugins/api.js +10 -3
  131. package/plugins/api.js.map +1 -1
  132. package/plugins/index.d.ts +1 -0
  133. package/plugins/index.js +1 -0
  134. package/plugins/index.js.map +1 -1
  135. package/utils/html-to-hast.js +1 -0
  136. package/utils/html-to-hast.js.map +1 -1
  137. package/LexicalEditor/hooks/useOnFocus/useOnFocus.js.map +0 -1
  138. package/LexicalEditor/hooks/useTypographyClasses/useTypographyClasses.js.map +0 -1
  139. package/LexicalEditor/utils/cleanupHtmlOutput.js.map +0 -1
  140. package/LexicalEditor/utils/cleanupHtmlOutput.test.js.map +0 -1
  141. package/LexicalEditor/utils/createLexicalTheme.js.map +0 -1
  142. package/LexicalEditor/utils/getDomValue.js.map +0 -1
  143. package/LexicalEditor/utils/getDomValue.test.js.map +0 -1
  144. package/LexicalEditor/utils/getLexicalNode.js.map +0 -1
  145. package/LexicalEditor/utils/getSelectedNode.js.map +0 -1
  146. package/LexicalEditor/utils/registerLexicalEvents.js.map +0 -1
  147. package/LexicalEditor/utils/registerLexicalEvents.test.js.map +0 -1
  148. package/LexicalEditor/utils/setEditorValue.js.map +0 -1
  149. package/LexicalEditor/utils/synchronizeToolbarState.js.map +0 -1
  150. package/LexicalEditor/utils/synchronizeToolbarState.test.js.map +0 -1
  151. package/LexicalEditor/utils/toolbarState.js.map +0 -1
  152. package/RichTextEditor/hooks/useTypographyClasses/useTypographyClasses.js.map +0 -1
  153. package/RichTextEditor/store/toolbar/actionTypes.js.map +0 -1
  154. package/RichTextEditor/store/toolbar/initialState.js.map +0 -1
  155. package/plugins/HeadingsReplacementPlugin/utils/replaceHeadingNodes.js.map +0 -1
  156. package/plugins/HeadingsReplacementPlugin/utils/replaceHeadingNodes.test.js.map +0 -1
  157. /package/LexicalEditor/hooks/useOnFocus/{useOnFocus.d.ts → use-on-focus.d.ts} +0 -0
  158. /package/LexicalEditor/hooks/useTypographyClasses/{useTypographyClasses.d.ts → use-typography-classes.d.ts} +0 -0
  159. /package/LexicalEditor/utils/{cleanupHtmlOutput.d.ts → cleanup-html-output.d.ts} +0 -0
  160. /package/LexicalEditor/utils/{cleanupHtmlOutput.test.d.ts → cleanup-html-output.test.d.ts} +0 -0
  161. /package/LexicalEditor/utils/{createLexicalTheme.d.ts → create-lexical-theme.d.ts} +0 -0
  162. /package/LexicalEditor/utils/{getDomValue.d.ts → get-dom-value.d.ts} +0 -0
  163. /package/LexicalEditor/utils/{getDomValue.test.d.ts → get-dom-value.test.d.ts} +0 -0
  164. /package/LexicalEditor/utils/{getLexicalNode.d.ts → get-lexical-node.d.ts} +0 -0
  165. /package/LexicalEditor/utils/{getSelectedNode.d.ts → get-selected-node.d.ts} +0 -0
  166. /package/LexicalEditor/utils/{registerLexicalEvents.test.d.ts → hasChildDOMNodeTag.test.d.ts} +0 -0
  167. /package/LexicalEditor/utils/{registerLexicalEvents.d.ts → register-lexical-events.d.ts} +0 -0
  168. /package/LexicalEditor/utils/{synchronizeToolbarState.test.d.ts → register-lexical-events.test.d.ts} +0 -0
  169. /package/LexicalEditor/utils/{setEditorValue.d.ts → set-editor-value.d.ts} +0 -0
  170. /package/{plugins/HeadingsReplacementPlugin/utils/replaceHeadingNodes.test.d.ts → LexicalEditor/utils/synchronize-toolbar-state.test.d.ts} +0 -0
  171. /package/LexicalEditor/utils/{toolbarState.d.ts → toolbar-state.d.ts} +0 -0
  172. /package/RichTextEditor/hooks/useTypographyClasses/{useTypographyClasses.d.ts → use-typography-classes.d.ts} +0 -0
  173. /package/RichTextEditor/store/toolbar/{actionTypes.d.ts → action-types.d.ts} +0 -0
  174. /package/RichTextEditor/store/toolbar/{initialState.d.ts → initial-state.d.ts} +0 -0
  175. /package/plugins/HeadingsReplacementPlugin/utils/{replaceHeadingNodes.d.ts → replace-heading-nodes.d.ts} +0 -0
@@ -0,0 +1,135 @@
1
+ import { $createLineBreakNode, $createParagraphNode, ElementNode, } from 'lexical';
2
+ import { $createCodeBlockNode, $createCodeBlockTextNode, $isCodeBlockTextNode, } from '../nodes';
3
+ import hasChildDOMNodeTag from '../../../LexicalEditor/utils/hasChildDOMNodeTag';
4
+ import { getFirstCodeNodeOfLine } from '../utils';
5
+ const convertPreElement = () => {
6
+ return { node: $createCodeBlockNode() };
7
+ };
8
+ const ELEMENT_TYPE = 'code-block';
9
+ export class CodeBlockNode extends ElementNode {
10
+ static getType() {
11
+ return ELEMENT_TYPE;
12
+ }
13
+ static clone(node) {
14
+ return new CodeBlockNode(node.__key);
15
+ }
16
+ constructor(key) {
17
+ super(key);
18
+ }
19
+ createDOM(config) {
20
+ const element = document.createElement('code');
21
+ const theme = config.theme;
22
+ const className = theme.codeBlock;
23
+ if (className !== undefined) {
24
+ element.className = className;
25
+ }
26
+ return element;
27
+ }
28
+ updateDOM() {
29
+ return false;
30
+ }
31
+ exportDOM() {
32
+ const element = document.createElement('pre');
33
+ return { element };
34
+ }
35
+ static importDOM() {
36
+ return {
37
+ // Typically <pre> is used for code blocks, and <code> for inline code styles
38
+ // but if it's a multi line <code> we'll create a block. Pass through to
39
+ // inline format handled by TextNode otherwise.
40
+ code: (node) => {
41
+ const isMultiLine = node.textContent != null &&
42
+ (/\r?\n/.test(node.textContent) || hasChildDOMNodeTag(node, 'BR'));
43
+ return isMultiLine
44
+ ? {
45
+ conversion: convertPreElement,
46
+ priority: 1,
47
+ }
48
+ : null;
49
+ },
50
+ pre: () => ({
51
+ conversion: convertPreElement,
52
+ priority: 0,
53
+ }),
54
+ };
55
+ }
56
+ static importJSON(serializedNode) {
57
+ const node = $createCodeBlockNode();
58
+ node.setFormat(serializedNode.format);
59
+ node.setIndent(serializedNode.indent);
60
+ node.setDirection(serializedNode.direction);
61
+ return node;
62
+ }
63
+ exportJSON() {
64
+ return Object.assign(Object.assign({}, super.exportJSON()), { type: ELEMENT_TYPE, version: 1 });
65
+ }
66
+ canIndent() {
67
+ return false;
68
+ }
69
+ extractWithChild() {
70
+ return true;
71
+ }
72
+ // eslint-disable-next-line max-statements, complexity
73
+ insertNewAfter(selection, restoreSelection = true) {
74
+ const children = this.getChildren();
75
+ const childrenLength = children.length;
76
+ if (childrenLength >= 2 &&
77
+ children[childrenLength - 1].getTextContent() === '\n' &&
78
+ children[childrenLength - 2].getTextContent() === '\n' &&
79
+ selection.isCollapsed() &&
80
+ selection.anchor.key === this.__key &&
81
+ selection.anchor.offset === childrenLength) {
82
+ children[childrenLength - 1].remove();
83
+ children[childrenLength - 2].remove();
84
+ const newElement = $createParagraphNode();
85
+ this.insertAfter(newElement, restoreSelection);
86
+ return newElement;
87
+ }
88
+ // If the selection is within the codeblock, find all leading tabs and
89
+ // spaces of the current line. Create a new line that has all those
90
+ // tabs and spaces, such that leading indentation is preserved.
91
+ const anchor = selection.anchor;
92
+ const focus = selection.focus;
93
+ const firstPoint = anchor.isBefore(focus) ? anchor : focus;
94
+ const firstSelectionNode = firstPoint.getNode();
95
+ if ($isCodeBlockTextNode(firstSelectionNode)) {
96
+ let node = getFirstCodeNodeOfLine(firstSelectionNode);
97
+ const insertNodes = [];
98
+ // eslint-disable-next-line no-constant-condition
99
+ while (true) {
100
+ if ($isCodeBlockTextNode(node)) {
101
+ const text = node.getTextContent();
102
+ const textSize = node.getTextContentSize();
103
+ // eslint-disable-next-line max-depth
104
+ for (let spaces = 0; spaces < textSize && text[spaces] === ' '; spaces++) {
105
+ // eslint-disable-next-line max-depth
106
+ if (spaces !== 0) {
107
+ insertNodes.push($createCodeBlockTextNode(' '.repeat(spaces)));
108
+ }
109
+ // eslint-disable-next-line max-depth
110
+ if (spaces !== textSize) {
111
+ break;
112
+ }
113
+ }
114
+ node = node.getNextSibling();
115
+ }
116
+ else {
117
+ break;
118
+ }
119
+ }
120
+ if (insertNodes.length > 0) {
121
+ selection.insertNodes([$createLineBreakNode(), ...insertNodes]);
122
+ return insertNodes[insertNodes.length - 1];
123
+ }
124
+ }
125
+ return null;
126
+ }
127
+ collapseAtStart() {
128
+ const paragraph = $createParagraphNode();
129
+ const children = this.getChildren();
130
+ children.forEach(child => paragraph.append(child));
131
+ this.replace(paragraph);
132
+ return true;
133
+ }
134
+ }
135
+ //# sourceMappingURL=CodeBlockNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBlockNode.js","sourceRoot":"","sources":["../../../../src/plugins/CodeBlockPlugin/nodes/CodeBlockNode.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { SerializedTextNode, EditorConfig, NodeKey } from 'lexical';
2
+ import { TextNode } from 'lexical';
3
+ import type { CodeBlockNode } from '../nodes';
4
+ export declare class CodeBlockTextNode extends TextNode {
5
+ constructor(text: string, key?: NodeKey);
6
+ static getType(): string;
7
+ static clone(node: CodeBlockTextNode): CodeBlockTextNode;
8
+ static importJSON(serializedNode: SerializedTextNode): CodeBlockTextNode;
9
+ createDOM(config: EditorConfig): HTMLElement;
10
+ exportJSON(): SerializedTextNode;
11
+ setFormat(): this;
12
+ isParentRequired(): boolean;
13
+ createParentElementNode(): CodeBlockNode;
14
+ }
@@ -0,0 +1,43 @@
1
+ import { TextNode } from 'lexical';
2
+ import { $createCodeBlockNode, $createCodeBlockTextNode } from '../nodes';
3
+ const ELEMENT_TYPE = 'code-block-text';
4
+ export class CodeBlockTextNode extends TextNode {
5
+ constructor(text, key) {
6
+ super(text, key);
7
+ }
8
+ static getType() {
9
+ return ELEMENT_TYPE;
10
+ }
11
+ static clone(node) {
12
+ return new CodeBlockTextNode(node.__text, node.__key);
13
+ }
14
+ static importJSON(serializedNode) {
15
+ console.log('importJSON');
16
+ const { text } = serializedNode;
17
+ const node = $createCodeBlockTextNode(text);
18
+ return node;
19
+ }
20
+ createDOM(config) {
21
+ const element = super.createDOM(config);
22
+ const theme = config.theme;
23
+ const className = theme.codeBlockText;
24
+ if (className !== undefined) {
25
+ element.className = className;
26
+ }
27
+ return element;
28
+ }
29
+ exportJSON() {
30
+ return Object.assign(Object.assign({}, super.exportJSON()), { type: ELEMENT_TYPE, version: 1 });
31
+ }
32
+ // prevent formatting
33
+ setFormat() {
34
+ return this;
35
+ }
36
+ isParentRequired() {
37
+ return true;
38
+ }
39
+ createParentElementNode() {
40
+ return $createCodeBlockNode();
41
+ }
42
+ }
43
+ //# sourceMappingURL=CodeBlockTextNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeBlockTextNode.js","sourceRoot":"","sources":["../../../../src/plugins/CodeBlockPlugin/nodes/CodeBlockTextNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAGzE,MAAM,YAAY,GAAG,iBAAiB,CAAA;AAEtC,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAC7C,YAAY,IAAY,EAAE,GAAa;QACrC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAuB;QAClC,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,cAAkC;QAClD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAA;QAE/B,MAAM,IAAI,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAA;QAE3C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,SAAS,CAAC,MAAoB;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAEvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAA;QAErC,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAA;SAC9B;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,UAAU;QACR,uCACK,KAAK,CAAC,UAAU,EAAE,KACrB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,CAAC,IACX;IACH,CAAC;IAED,qBAAqB;IACrB,SAAS;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,uBAAuB;QACrB,OAAO,oBAAoB,EAAE,CAAA;IAC/B,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import type { LexicalNode } from 'lexical';
2
+ import { CodeBlockNode } from './CodeBlockNode';
3
+ import { CodeBlockTextNode } from './CodeBlockTextNode';
4
+ export declare const $createCodeBlockNode: () => CodeBlockNode;
5
+ export declare const $isCodeBlockNode: (node: LexicalNode | null | undefined) => node is CodeBlockNode;
6
+ export declare const $isCodeBlockTextNode: (node: LexicalNode | CodeBlockTextNode | null | undefined) => node is CodeBlockTextNode;
7
+ export declare const $createCodeBlockTextNode: (text: string) => CodeBlockTextNode;
8
+ export { CodeBlockNode, CodeBlockTextNode };
@@ -0,0 +1,15 @@
1
+ import { $applyNodeReplacement } from 'lexical';
2
+ import { CodeBlockNode } from './CodeBlockNode';
3
+ import { CodeBlockTextNode } from './CodeBlockTextNode';
4
+ export const $createCodeBlockNode = () => $applyNodeReplacement(new CodeBlockNode());
5
+ export const $isCodeBlockNode = (node) => {
6
+ return node instanceof CodeBlockNode;
7
+ };
8
+ export const $isCodeBlockTextNode = (node) => {
9
+ return node instanceof CodeBlockTextNode;
10
+ };
11
+ export const $createCodeBlockTextNode = (text) => {
12
+ return $applyNodeReplacement(new CodeBlockTextNode(text));
13
+ };
14
+ export { CodeBlockNode, CodeBlockTextNode };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/CodeBlockPlugin/nodes/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAkB,EAAE,CACtD,qBAAqB,CAAC,IAAI,aAAa,EAAE,CAAC,CAAA;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAoC,EACb,EAAE;IACzB,OAAO,IAAI,YAAY,aAAa,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAwD,EAC7B,EAAE;IAC7B,OAAO,IAAI,YAAY,iBAAiB,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAAqB,EAAE;IAC1E,OAAO,qBAAqB,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;AAC3D,CAAC,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { LineBreakNode } from 'lexical';
2
+ import type { CodeBlockTextNode } from '../nodes';
3
+ declare const getFirstCodeNodeOfLine: (anchor: CodeBlockTextNode | LineBreakNode) => null | CodeBlockTextNode | LineBreakNode;
4
+ export default getFirstCodeNodeOfLine;
@@ -0,0 +1,12 @@
1
+ import { $isCodeBlockTextNode } from '../nodes';
2
+ const getFirstCodeNodeOfLine = (anchor) => {
3
+ let previousNode = anchor;
4
+ let node = anchor;
5
+ while ($isCodeBlockTextNode(node)) {
6
+ previousNode = node;
7
+ node = node.getPreviousSibling();
8
+ }
9
+ return previousNode;
10
+ };
11
+ export default getFirstCodeNodeOfLine;
12
+ //# sourceMappingURL=getFirstCodeNodeOfLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFirstCodeNodeOfLine.js","sourceRoot":"","sources":["../../../../src/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/C,MAAM,sBAAsB,GAAG,CAC7B,MAAyC,EACC,EAAE;IAC5C,IAAI,YAAY,GAAG,MAAM,CAAA;IACzB,IAAI,IAAI,GAAuB,MAAM,CAAA;IAErC,OAAO,oBAAoB,CAAC,IAAI,CAAC,EAAE;QACjC,YAAY,GAAG,IAAI,CAAA;QACnB,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;KACjC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,eAAe,sBAAsB,CAAA"}
@@ -0,0 +1,66 @@
1
+ import { $isCodeBlockTextNode } from '../nodes';
2
+ import getFirstCodeNodeOfLine from './getFirstCodeNodeOfLine';
3
+ jest.mock('../nodes', () => ({
4
+ __esModule: true,
5
+ $isCodeBlockTextNode: jest.fn(),
6
+ }));
7
+ // Mocking the function and methods
8
+ const getPreviousSibling = jest.fn();
9
+ const $isCodeBlockTextNodeMock = $isCodeBlockTextNode;
10
+ describe('getFirstCodeNodeOfLine', () => {
11
+ afterEach(() => {
12
+ jest.resetAllMocks();
13
+ });
14
+ describe('when the provided node is a CodeBlockTextNode', () => {
15
+ it('returns the first CodeBlockTextNode', () => {
16
+ const codeBlockTextNode = {
17
+ getPreviousSibling,
18
+ };
19
+ $isCodeBlockTextNodeMock
20
+ .mockReturnValueOnce(true)
21
+ .mockReturnValueOnce(false);
22
+ getPreviousSibling.mockReturnValueOnce(null);
23
+ const result = getFirstCodeNodeOfLine(codeBlockTextNode);
24
+ expect(result).toBe(codeBlockTextNode);
25
+ expect($isCodeBlockTextNode).toHaveBeenCalledWith(codeBlockTextNode);
26
+ expect(getPreviousSibling).toHaveBeenCalledTimes(1);
27
+ });
28
+ });
29
+ describe('when the provided node is a LineBreakNode', () => {
30
+ it('returns the provided node as it is', () => {
31
+ const lineBreakNode = {
32
+ getPreviousSibling,
33
+ };
34
+ $isCodeBlockTextNodeMock.mockReturnValue(false);
35
+ const result = getFirstCodeNodeOfLine(lineBreakNode);
36
+ expect(result).toBe(lineBreakNode);
37
+ expect($isCodeBlockTextNodeMock).toHaveBeenCalledWith(lineBreakNode);
38
+ expect(getPreviousSibling).toHaveBeenCalledTimes(0);
39
+ });
40
+ });
41
+ describe('when the provided node is a CodeBlockTextNode with a non-CodeBlockTextNode in the sibling chain', () => {
42
+ it('returns the first CodeBlockTextNode until the non-CodeBlockTextNode', () => {
43
+ const firstCodeBlockTextNode = {
44
+ getPreviousSibling,
45
+ };
46
+ const secondCodeBlockTextNode = { getPreviousSibling };
47
+ const nonCodeBlockTextNode = { getPreviousSibling };
48
+ const thirdCodeBlockTextNode = { getPreviousSibling };
49
+ $isCodeBlockTextNodeMock
50
+ .mockReturnValueOnce(true)
51
+ .mockReturnValueOnce(true)
52
+ .mockReturnValueOnce(false)
53
+ .mockReturnValueOnce(true);
54
+ getPreviousSibling
55
+ .mockReturnValueOnce(secondCodeBlockTextNode)
56
+ .mockReturnValueOnce(nonCodeBlockTextNode)
57
+ .mockReturnValueOnce(thirdCodeBlockTextNode)
58
+ .mockReturnValueOnce(null);
59
+ const result = getFirstCodeNodeOfLine(firstCodeBlockTextNode);
60
+ expect(result).toBe(secondCodeBlockTextNode);
61
+ expect($isCodeBlockTextNode).toHaveBeenCalledTimes(3);
62
+ expect(getPreviousSibling).toHaveBeenCalledTimes(2);
63
+ });
64
+ });
65
+ });
66
+ //# sourceMappingURL=getFirstCodeNodeOfLine.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFirstCodeNodeOfLine.test.js","sourceRoot":"","sources":["../../../../src/plugins/CodeBlockPlugin/utils/getFirstCodeNodeOfLine.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { default as getFirstCodeNodeOfLine } from './getFirstCodeNodeOfLine';
@@ -0,0 +1,2 @@
1
+ export { default as getFirstCodeNodeOfLine } from './getFirstCodeNodeOfLine';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/CodeBlockPlugin/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAA"}
@@ -7,7 +7,7 @@ import RichTextEditorButton from '../../RichTextEditorButton';
7
7
  const CodeButton = ({ 'data-testid': testId }) => {
8
8
  const [active, setActive] = useState(false);
9
9
  const [editor] = useLexicalComposerContext();
10
- const { disabled, focused } = useRTEPluginContext();
10
+ const { disabled, focused, disabledFormatting } = useRTEPluginContext();
11
11
  useRTEUpdate(() => {
12
12
  const selection = $getSelection();
13
13
  if ($isRangeSelection(selection)) {
@@ -17,7 +17,8 @@ const CodeButton = ({ 'data-testid': testId }) => {
17
17
  const handleCodeClick = () => {
18
18
  editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'code');
19
19
  };
20
- return (React.createElement(RichTextEditorButton, { icon: React.createElement(Code16, null), onClick: handleCodeClick, active: active, disabled: disabled || !focused, "data-testid": testId }));
20
+ const isDisabled = disabled || !focused || disabledFormatting;
21
+ return (React.createElement(RichTextEditorButton, { icon: React.createElement(Code16, null), onClick: handleCodeClick, active: isDisabled ? false : active, disabled: isDisabled, "data-testid": testId }));
21
22
  };
22
23
  export default CodeButton;
23
24
  //# sourceMappingURL=CodeButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeButton.js","sourceRoot":"","sources":["../../../src/plugins/CodePlugin/CodeButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC/E,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,oBAAoB,MAAM,4BAA4B,CAAA;AAM7D,MAAM,UAAU,GAAG,CAAC,EAAE,aAAa,EAAE,MAAM,EAAS,EAAE,EAAE;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,yBAAyB,EAAE,CAAA;IAC5C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAEnD,YAAY,CAAC,GAAG,EAAE;QAChB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAA;QAEjC,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE;YAChC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;SACvC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;IACrD,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,oBAAoB,IACnB,IAAI,EAAE,oBAAC,MAAM,OAAG,EAChB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,IAAI,CAAC,OAAO,iBACjB,MAAM,GACnB,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"CodeButton.js","sourceRoot":"","sources":["../../../src/plugins/CodePlugin/CodeButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC/E,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,oBAAoB,MAAM,4BAA4B,CAAA;AAM7D,MAAM,UAAU,GAAG,CAAC,EAAE,aAAa,EAAE,MAAM,EAAS,EAAE,EAAE;IACtD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,yBAAyB,EAAE,CAAA;IAC5C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAEvE,YAAY,CAAC,GAAG,EAAE;QAChB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAA;QAEjC,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE;YAChC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;SACvC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;IACrD,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,QAAQ,IAAI,CAAC,OAAO,IAAI,kBAAkB,CAAA;IAE7D,OAAO,CACL,oBAAC,oBAAoB,IACnB,IAAI,EAAE,oBAAC,MAAM,OAAG,EAChB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EACnC,QAAQ,EAAE,UAAU,iBACP,MAAM,GACnB,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -1 +1 @@
1
- export { replaceHeadingNodes } from './replaceHeadingNodes';
1
+ export { replaceHeadingNodes } from './replace-heading-nodes';
@@ -1,2 +1,2 @@
1
- export { replaceHeadingNodes } from './replaceHeadingNodes';
1
+ export { replaceHeadingNodes } from './replace-heading-nodes';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/HeadingsReplacementPlugin/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/HeadingsReplacementPlugin/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -9,4 +9,4 @@ export const replaceHeadingNodes = (node) => {
9
9
  paragraphNode.select();
10
10
  }
11
11
  };
12
- //# sourceMappingURL=replaceHeadingNodes.js.map
12
+ //# sourceMappingURL=replace-heading-nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-heading-nodes.js","sourceRoot":"","sources":["../../../../src/plugins/HeadingsReplacementPlugin/utils/replace-heading-nodes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAiB,EAAE,EAAE;IACvD,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QAC1B,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;QAEvD,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAE1B,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAA;QAE5C,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC3B,aAAa,CAAC,MAAM,EAAE,CAAA;KACvB;AACH,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { $createParagraphNode, $createTextNode } from 'lexical';
2
- import { replaceHeadingNodes } from './replaceHeadingNodes';
2
+ import { replaceHeadingNodes } from './replace-heading-nodes';
3
3
  jest.mock('lexical', () => ({
4
4
  __esModule: true,
5
5
  $createTextNode: jest.fn(),
@@ -47,4 +47,4 @@ describe('replaceHeadingNodes', () => {
47
47
  });
48
48
  });
49
49
  });
50
- //# sourceMappingURL=replaceHeadingNodes.test.js.map
50
+ //# sourceMappingURL=replace-heading-nodes.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-heading-nodes.test.js","sourceRoot":"","sources":["../../../../src/plugins/HeadingsReplacementPlugin/utils/replace-heading-nodes.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAE7D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1B,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;IAC1B,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;CAChC,CAAC,CAAC,CAAA;AAEH,MAAM,yBAAyB,GAAG,oBAEjC,CAAA;AAED,MAAM,oBAAoB,GAAG,eAE5B,CAAA;AAED,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAA4B,CAAA;YAEhD,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAExB,mBAAmB,CAAC,IAAI,CAAC,CAAA;YAEzB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,WAAW,GAAG,MAAM,CAAA;YAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAA4B,CAAA;YAEhD,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;YACxB,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC,WAAW,CAAA;YACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAExB,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAE/B,oBAAoB,CAAC,kBAAkB,CACrC,GAAG,EAAE,CACH,CAAC;gBACC,SAAS,EAAE,aAAa;aACD,CAAA,CAC5B,CAAA;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAE5B,yBAAyB,CAAC,kBAAkB,CAC1C,GAAG,EAAE,CACH,CAAC;gBACC,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,UAAU;aACU,CAAA,CACjC,CAAA;YAED,mBAAmB,CAAC,IAAI,CAAC,CAAA;YAEzB,MAAM,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAA;YAC9D,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAE1D,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;YAClD,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAA;YACrE,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAA;YAErC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC;gBACxC,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -3,8 +3,8 @@ import React from 'react';
3
3
  import { useRTEPluginContext } from '../../../api';
4
4
  import RichTextEditorButton from '../../../../RichTextEditorButton';
5
5
  const ImagePluginButton = ({ 'data-testid': testId, onClick }) => {
6
- const { disabled, focused } = useRTEPluginContext();
7
- return (React.createElement(RichTextEditorButton, { icon: React.createElement(Image16, null), onClick: onClick, disabled: disabled || !focused, "data-testid": testId }));
6
+ const { disabled, focused, disabledFormatting } = useRTEPluginContext();
7
+ return (React.createElement(RichTextEditorButton, { icon: React.createElement(Image16, null), onClick: onClick, disabled: disabled || !focused || disabledFormatting, "data-testid": testId }));
8
8
  };
9
9
  export default ImagePluginButton;
10
10
  //# sourceMappingURL=ImagePluginButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImagePluginButton.js","sourceRoot":"","sources":["../../../../../src/plugins/ImagePlugin/components/ImagePluginButton/ImagePluginButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,oBAAoB,MAAM,kCAAkC,CAAA;AAOnE,MAAM,iBAAiB,GAAG,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAS,EAAE,EAAE;IACtE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAEnD,OAAO,CACL,oBAAC,oBAAoB,IACnB,IAAI,EAAE,oBAAC,OAAO,OAAG,EACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,IAAI,CAAC,OAAO,iBACjB,MAAM,GACnB,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"ImagePluginButton.js","sourceRoot":"","sources":["../../../../../src/plugins/ImagePlugin/components/ImagePluginButton/ImagePluginButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,oBAAoB,MAAM,kCAAkC,CAAA;AAOnE,MAAM,iBAAiB,GAAG,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAS,EAAE,EAAE;IACtE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAEvE,OAAO,CACL,oBAAC,oBAAoB,IACnB,IAAI,EAAE,oBAAC,OAAO,OAAG,EACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,IAAI,CAAC,OAAO,IAAI,kBAAkB,iBACvC,MAAM,GACnB,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,iBAAiB,CAAA"}
@@ -3,14 +3,14 @@ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext
3
3
  import { Link16 } from '@toptal/picasso';
4
4
  import { $createTextNode, $getSelection, $isRangeSelection } from 'lexical';
5
5
  import React, { useCallback, useState } from 'react';
6
- import { getSelectedNode } from '../../LexicalEditor/utils/getSelectedNode';
6
+ import { getSelectedNode } from '../../LexicalEditor/utils/get-selected-node';
7
7
  import { useRTEPluginContext, useRTEUpdate } from '../api';
8
8
  import RichTextEditorButton from '../../RichTextEditorButton';
9
9
  import { sanitizeUrl, validateUrl } from './utils/url';
10
10
  const LinkPluginButton = ({ 'data-testid': testId }) => {
11
11
  const [active, setActive] = useState(false);
12
12
  const [editor] = useLexicalComposerContext();
13
- const { disabled, focused } = useRTEPluginContext();
13
+ const { disabled, focused, disabledFormatting } = useRTEPluginContext();
14
14
  useRTEUpdate(() => {
15
15
  const selection = $getSelection();
16
16
  if ($isRangeSelection(selection)) {
@@ -58,7 +58,8 @@ const LinkPluginButton = ({ 'data-testid': testId }) => {
58
58
  }
59
59
  });
60
60
  }, [editor, active]);
61
- return (React.createElement(RichTextEditorButton, { icon: React.createElement(Link16, null), onClick: onLinkClick, active: active, disabled: disabled || !focused, "data-testid": testId }));
61
+ const isDisabled = disabled || !focused || disabledFormatting;
62
+ return (React.createElement(RichTextEditorButton, { icon: React.createElement(Link16, null), onClick: onLinkClick, active: isDisabled ? false : active, disabled: isDisabled, "data-testid": testId }));
62
63
  };
63
64
  export default LinkPluginButton;
64
65
  //# sourceMappingURL=LinkPluginButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinkPluginButton.js","sourceRoot":"","sources":["../../../src/plugins/LinkPlugin/LinkPluginButton.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LinkPluginButton.js","sourceRoot":"","sources":["../../../src/plugins/LinkPlugin/LinkPluginButton.tsx"],"names":[],"mappings":"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"}
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,6 +1,6 @@
1
1
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
2
- import React, { createContext, useContext, useEffect } from 'react';
3
- import { registerLexicalEvents } from '../LexicalEditor/utils/registerLexicalEvents';
2
+ import React, { createContext, useContext, useEffect, useState } from 'react';
3
+ import { registerLexicalEvents } from '../LexicalEditor/utils/register-lexical-events';
4
4
  import { ToolbarProvider } from './Toolbar/Toolbar';
5
5
  export const RTEPluginMeta = Symbol('PicassoRTEPluginMeta');
6
6
  export const isRTEPluginElement = (plugin) => {
@@ -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,8CAA8C,CAAA;AACpF,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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useOnFocus.js","sourceRoot":"","sources":["../../../../src/LexicalEditor/hooks/useOnFocus/useOnFocus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAc5C,MAAM,UAAU,GAAG,CAAC,EAClB,OAAO,GAAG,IAAI,EACd,MAAM,GAAG,IAAI,EACb,YAAY,GAAG,EAAE,GACX,EAAU,EAAE;IAClB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7C,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,OAAO,EAAE,CAAA;IACX,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,CAAmC,EAAE,EAAE;QACtC,MAAM,YAAY,GAAG,CAAC,CAAC,aAAqB,CAAA;QAC5C,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CACzC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CACzD,CAAA;QAED,IAAI,iBAAiB,EAAE;YACrB,OAAM;SACP;QAED,UAAU,CAAC,KAAK,CAAC,CAAA;QACjB,MAAM,EAAE,CAAA;IACV,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAA;IAED,OAAO;QACL,OAAO;QACP,WAAW;QACX,UAAU;KACX,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTypographyClasses.js","sourceRoot":"","sources":["../../../../src/LexicalEditor/hooks/useTypographyClasses/useTypographyClasses.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAG1E,MAAM,0BAA0B,GAAG,UAAU,CAAQ,gBAAgB,EAAE;IACrE,IAAI,EAAE,sBAAsB;CAC7B,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,CAAC,OAA0B,EAAU,EAAE;IAClE,MAAM,OAAO,GAAG,0BAA0B,EAAE,CAAA;IAE5C,OAAO,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AACjD,CAAC,CAAA;AAED,eAAe,oBAAoB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cleanupHtmlOutput.js","sourceRoot":"","sources":["../../../src/LexicalEditor/utils/cleanupHtmlOutput.ts"],"names":[],"mappings":"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"}