@lexical/react 0.12.0 → 0.12.1

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.
@@ -174,7 +174,23 @@ function useYjsHistory(editor, binding) {
174
174
  });
175
175
  const clearHistory = React.useCallback(() => {
176
176
  undoManager.clear();
177
- }, [undoManager]);
177
+ }, [undoManager]); // Exposing undo and redo states
178
+
179
+ React.useEffect(() => {
180
+ const updateUndoRedoStates = () => {
181
+ editor.dispatchCommand(lexical.CAN_UNDO_COMMAND, undoManager.undoStack.length > 0);
182
+ editor.dispatchCommand(lexical.CAN_REDO_COMMAND, undoManager.redoStack.length > 0);
183
+ };
184
+
185
+ undoManager.on('stack-item-added', updateUndoRedoStates);
186
+ undoManager.on('stack-item-popped', updateUndoRedoStates);
187
+ undoManager.on('stack-cleared', updateUndoRedoStates);
188
+ return () => {
189
+ undoManager.off('stack-item-added', updateUndoRedoStates);
190
+ undoManager.off('stack-item-popped', updateUndoRedoStates);
191
+ undoManager.off('stack-cleared', updateUndoRedoStates);
192
+ };
193
+ }, [editor, undoManager]);
178
194
  return clearHistory;
179
195
  }
180
196
 
@@ -4,12 +4,13 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- 'use strict';var e=require("@lexical/react/LexicalCollaborationContext"),f=require("@lexical/react/LexicalComposerContext"),k=require("react"),B=require("@lexical/utils"),J=require("@lexical/yjs"),K=require("lexical"),L=require("react-dom"),M=require("yjs");
8
- function N(b,c,a,d,h,z,A,v,w,n,t){let q=k.useRef(!1),[x,r]=k.useState(d.get(c)),g=k.useMemo(()=>J.createBinding(b,a,c,x,d,n),[b,a,c,d,x,n]),p=k.useCallback(()=>{a.connect()},[a]),y=k.useCallback(()=>{try{a.disconnect()}catch(m){}},[a]);k.useEffect(()=>{let {root:m}=g,{awareness:C}=a,D=({status:l})=>{b.dispatchCommand(J.CONNECTED_COMMAND,"connected"===l)},E=l=>{A&&l&&m.isEmpty()&&0===m._xmlText._length&&!1===q.current&&O(b,w);q.current=!1},F=()=>{J.syncCursorPositions(g,a)},G=(l,u)=>{u=u.origin;u!==
9
- g&&J.syncYjsChangesToLexical(g,a,l,u instanceof M.UndoManager)};J.initLocalState(a,h,z,document.activeElement===b.getRootElement(),t||{});let H=l=>{P(b,g);r(l);d.set(c,l);q.current=!0};a.on("reload",H);a.on("status",D);a.on("sync",E);C.on("update",F);m.getSharedType().observeDeep(G);let T=b.registerUpdateListener(({prevEditorState:l,editorState:u,dirtyLeaves:Q,dirtyElements:R,normalizedNodes:S,tags:I})=>{!1===I.has("skip-collab")&&J.syncLexicalUpdateToYjs(g,a,l,u,R,Q,S,I)});p();return()=>{!1===q.current&&
10
- y();a.off("sync",E);a.off("status",D);a.off("reload",H);C.off("update",F);m.getSharedType().unobserveDeep(G);d.delete(c);T()}},[g,z,p,y,d,b,c,w,h,a,A,t]);let U=k.useMemo(()=>L.createPortal(k.createElement("div",{ref:m=>{g.cursorsContainer=m}}),v&&v.current||document.body),[g,v]);k.useEffect(()=>b.registerCommand(J.TOGGLE_CONNECT_COMMAND,m=>{void 0!==p&&void 0!==y&&(m?(console.log("Collaboration connected!"),p()):(console.log("Collaboration disconnected!"),y()));return!0},K.COMMAND_PRIORITY_EDITOR),
11
- [p,y,b]);return[U,g]}function V(b,c,a,d,h){k.useEffect(()=>B.mergeRegister(b.registerCommand(K.FOCUS_COMMAND,()=>{J.setLocalStateFocus(c,a,d,!0,h||{});return!1},K.COMMAND_PRIORITY_EDITOR),b.registerCommand(K.BLUR_COMMAND,()=>{J.setLocalStateFocus(c,a,d,!1,h||{});return!1},K.COMMAND_PRIORITY_EDITOR)),[d,b,a,c,h])}
12
- function W(b,c){let a=k.useMemo(()=>J.createUndoManager(c,c.root.getSharedType()),[c]);k.useEffect(()=>B.mergeRegister(b.registerCommand(K.UNDO_COMMAND,()=>{a.undo();return!0},K.COMMAND_PRIORITY_EDITOR),b.registerCommand(K.REDO_COMMAND,()=>{a.redo();return!0},K.COMMAND_PRIORITY_EDITOR)));return k.useCallback(()=>{a.clear()},[a])}
7
+ 'use strict';var f=require("@lexical/react/LexicalCollaborationContext"),g=require("@lexical/react/LexicalComposerContext"),k=require("react"),B=require("@lexical/utils"),J=require("@lexical/yjs"),K=require("lexical"),L=require("react-dom"),M=require("yjs");
8
+ function N(b,c,a,d,e,z,A,v,w,n,t){let q=k.useRef(!1),[x,r]=k.useState(d.get(c)),h=k.useMemo(()=>J.createBinding(b,a,c,x,d,n),[b,a,c,d,x,n]),p=k.useCallback(()=>{a.connect()},[a]),y=k.useCallback(()=>{try{a.disconnect()}catch(m){}},[a]);k.useEffect(()=>{let {root:m}=h,{awareness:C}=a,D=({status:l})=>{b.dispatchCommand(J.CONNECTED_COMMAND,"connected"===l)},E=l=>{A&&l&&m.isEmpty()&&0===m._xmlText._length&&!1===q.current&&O(b,w);q.current=!1},F=()=>{J.syncCursorPositions(h,a)},G=(l,u)=>{u=u.origin;u!==
9
+ h&&J.syncYjsChangesToLexical(h,a,l,u instanceof M.UndoManager)};J.initLocalState(a,e,z,document.activeElement===b.getRootElement(),t||{});let H=l=>{P(b,h);r(l);d.set(c,l);q.current=!0};a.on("reload",H);a.on("status",D);a.on("sync",E);C.on("update",F);m.getSharedType().observeDeep(G);let T=b.registerUpdateListener(({prevEditorState:l,editorState:u,dirtyLeaves:Q,dirtyElements:R,normalizedNodes:S,tags:I})=>{!1===I.has("skip-collab")&&J.syncLexicalUpdateToYjs(h,a,l,u,R,Q,S,I)});p();return()=>{!1===q.current&&
10
+ y();a.off("sync",E);a.off("status",D);a.off("reload",H);C.off("update",F);m.getSharedType().unobserveDeep(G);d.delete(c);T()}},[h,z,p,y,d,b,c,w,e,a,A,t]);let U=k.useMemo(()=>L.createPortal(k.createElement("div",{ref:m=>{h.cursorsContainer=m}}),v&&v.current||document.body),[h,v]);k.useEffect(()=>b.registerCommand(J.TOGGLE_CONNECT_COMMAND,m=>{void 0!==p&&void 0!==y&&(m?(console.log("Collaboration connected!"),p()):(console.log("Collaboration disconnected!"),y()));return!0},K.COMMAND_PRIORITY_EDITOR),
11
+ [p,y,b]);return[U,h]}function V(b,c,a,d,e){k.useEffect(()=>B.mergeRegister(b.registerCommand(K.FOCUS_COMMAND,()=>{J.setLocalStateFocus(c,a,d,!0,e||{});return!1},K.COMMAND_PRIORITY_EDITOR),b.registerCommand(K.BLUR_COMMAND,()=>{J.setLocalStateFocus(c,a,d,!1,e||{});return!1},K.COMMAND_PRIORITY_EDITOR)),[d,b,a,c,e])}
12
+ function W(b,c){let a=k.useMemo(()=>J.createUndoManager(c,c.root.getSharedType()),[c]);k.useEffect(()=>B.mergeRegister(b.registerCommand(K.UNDO_COMMAND,()=>{a.undo();return!0},K.COMMAND_PRIORITY_EDITOR),b.registerCommand(K.REDO_COMMAND,()=>{a.redo();return!0},K.COMMAND_PRIORITY_EDITOR)));let d=k.useCallback(()=>{a.clear()},[a]);k.useEffect(()=>{let e=()=>{b.dispatchCommand(K.CAN_UNDO_COMMAND,0<a.undoStack.length);b.dispatchCommand(K.CAN_REDO_COMMAND,0<a.redoStack.length)};a.on("stack-item-added",
13
+ e);a.on("stack-item-popped",e);a.on("stack-cleared",e);return()=>{a.off("stack-item-added",e);a.off("stack-item-popped",e);a.off("stack-cleared",e)}},[b,a]);return d}
13
14
  function O(b,c){b.update(()=>{var a=K.$getRoot();if(a.isEmpty())if(c)switch(typeof c){case "string":var d=b.parseEditorState(c);b.setEditorState(d,{tag:"history-merge"});break;case "object":b.setEditorState(c,{tag:"history-merge"});break;case "function":b.update(()=>{K.$getRoot().isEmpty()&&c(b)},{tag:"history-merge"})}else d=K.$createParagraphNode(),a.append(d),{activeElement:a}=document,(null!==K.$getSelection()||null!==a&&a===b.getRootElement())&&d.select()},{tag:"history-merge"})}
14
- function P(b,c){b.update(()=>{let d=K.$getRoot();d.clear();d.select()},{tag:"skip-collab"});if(null!=c.cursors&&(b=c.cursors,null!=b&&(c=c.cursorsContainer,null!=c))){b=Array.from(b.values());for(let d=0;d<b.length;d++){var a=b[d].selection;if(a&&null!=a.selections){a=a.selections;for(let h=0;h<a.length;h++)c.removeChild(a[d])}}}}
15
- exports.CollaborationPlugin=function({id:b,providerFactory:c,shouldBootstrap:a,username:d,cursorColor:h,cursorsContainerRef:z,initialEditorState:A,excludedProperties:v,awarenessData:w}){let n=e.useCollaborationContext(d,h),{yjsDocMap:t,name:q,color:x}=n,[r]=f.useLexicalComposerContext();k.useEffect(()=>{n.isCollabActive=!0;return()=>{null==r._parentEditor&&(n.isCollabActive=!1)}},[n,r]);d=k.useMemo(()=>c(b,t),[b,c,t]);let [g,p]=N(r,b,d,t,q,x,a,z,A,v,w);n.clientID=p.clientID;W(r,p);V(r,d,q,x,w);return g}
15
+ function P(b,c){b.update(()=>{let d=K.$getRoot();d.clear();d.select()},{tag:"skip-collab"});if(null!=c.cursors&&(b=c.cursors,null!=b&&(c=c.cursorsContainer,null!=c))){b=Array.from(b.values());for(let d=0;d<b.length;d++){var a=b[d].selection;if(a&&null!=a.selections){a=a.selections;for(let e=0;e<a.length;e++)c.removeChild(a[d])}}}}
16
+ exports.CollaborationPlugin=function({id:b,providerFactory:c,shouldBootstrap:a,username:d,cursorColor:e,cursorsContainerRef:z,initialEditorState:A,excludedProperties:v,awarenessData:w}){let n=f.useCollaborationContext(d,e),{yjsDocMap:t,name:q,color:x}=n,[r]=g.useLexicalComposerContext();k.useEffect(()=>{n.isCollabActive=!0;return()=>{null==r._parentEditor&&(n.isCollabActive=!1)}},[n,r]);d=k.useMemo(()=>c(b,t),[b,c,t]);let [h,p]=N(r,b,d,t,q,x,a,z,A,v,w);n.clientID=p.clientID;W(r,p);V(r,d,q,x,w);return h}
@@ -19,24 +19,10 @@ var react = require('react');
19
19
  *
20
20
  */
21
21
 
22
- function $filter(nodes, filterFn) {
23
- const result = [];
24
-
25
- for (let i = 0; i < nodes.length; i++) {
26
- const node = filterFn(nodes[i]);
27
-
28
- if (node !== null) {
29
- result.push(node);
30
- }
31
- }
32
-
33
- return result;
34
- }
35
-
36
22
  function indentOverTab(selection) {
37
23
  // const handled = new Set();
38
24
  const nodes = selection.getNodes();
39
- const canIndentBlockNodes = $filter(nodes, node => {
25
+ const canIndentBlockNodes = utils.$filter(nodes, node => {
40
26
  if (lexical.$isBlockElementNode(node) && node.canIndent()) {
41
27
  return node;
42
28
  }
@@ -4,6 +4,6 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- 'use strict';var d=require("@lexical/react/LexicalComposerContext"),g=require("@lexical/utils"),h=require("lexical"),k=require("react");function l(b,a){let c=[];for(let e=0;e<b.length;e++){let f=a(b[e]);null!==f&&c.push(f)}return c}
8
- function m(b){var a=b.getNodes();if(0<l(a,c=>h.$isBlockElementNode(c)&&c.canIndent()?c:null).length)return!0;a=b.anchor;b=b.focus;b=b.isBefore(a)?b:a;a=b.getNode();a=g.$getNearestBlockElementAncestorOrThrow(a);if(a.canIndent()){a=a.getKey();let c=h.$createRangeSelection();c.anchor.set(a,0,"element");c.focus.set(a,0,"element");c=h.$normalizeSelection__EXPERIMENTAL(c);if(c.anchor.is(b))return!0}return!1}
9
- function n(b){return b.registerCommand(h.KEY_TAB_COMMAND,a=>{let c=h.$getSelection();if(!h.$isRangeSelection(c))return!1;a.preventDefault();a=m(c)?a.shiftKey?h.OUTDENT_CONTENT_COMMAND:h.INDENT_CONTENT_COMMAND:h.INSERT_TAB_COMMAND;return b.dispatchCommand(a,void 0)},h.COMMAND_PRIORITY_EDITOR)}exports.TabIndentationPlugin=function(){let [b]=d.useLexicalComposerContext();k.useEffect(()=>n(b));return null};exports.registerTabIndentation=n
7
+ 'use strict';var d=require("@lexical/react/LexicalComposerContext"),e=require("@lexical/utils"),f=require("lexical"),g=require("react");
8
+ function h(b){var a=b.getNodes();if(0<e.$filter(a,c=>f.$isBlockElementNode(c)&&c.canIndent()?c:null).length)return!0;a=b.anchor;b=b.focus;b=b.isBefore(a)?b:a;a=b.getNode();a=e.$getNearestBlockElementAncestorOrThrow(a);if(a.canIndent()){a=a.getKey();let c=f.$createRangeSelection();c.anchor.set(a,0,"element");c.focus.set(a,0,"element");c=f.$normalizeSelection__EXPERIMENTAL(c);if(c.anchor.is(b))return!0}return!1}
9
+ function k(b){return b.registerCommand(f.KEY_TAB_COMMAND,a=>{let c=f.$getSelection();if(!f.$isRangeSelection(c))return!1;a.preventDefault();a=h(c)?a.shiftKey?f.OUTDENT_CONTENT_COMMAND:f.INDENT_CONTENT_COMMAND:f.INSERT_TAB_COMMAND;return b.dispatchCommand(a,void 0)},f.COMMAND_PRIORITY_EDITOR)}exports.TabIndentationPlugin=function(){let [b]=d.useLexicalComposerContext();g.useEffect(()=>k(b));return null};exports.registerTabIndentation=k
@@ -19,17 +19,6 @@ var react = require('react');
19
19
  * LICENSE file in the root directory of this source tree.
20
20
  *
21
21
  */
22
-
23
- function $insertFirst(parent, node) {
24
- const firstChild = parent.getFirstChild();
25
-
26
- if (firstChild !== null) {
27
- firstChild.insertBefore(node);
28
- } else {
29
- parent.append(node);
30
- }
31
- }
32
-
33
22
  function TablePlugin({
34
23
  hasCellMerge = true,
35
24
  hasCellBackgroundColor = true,
@@ -159,7 +148,7 @@ function TablePlugin({
159
148
  if (lastRowCell !== null) {
160
149
  lastRowCell.insertAfter(newCell);
161
150
  } else {
162
- $insertFirst(row, newCell);
151
+ utils.$insertFirst(row, newCell);
163
152
  }
164
153
  }
165
154
  }
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- 'use strict';var c=require("@lexical/react/LexicalComposerContext"),h=require("@lexical/table"),r=require("@lexical/utils"),w=require("lexical"),x=require("react");function y(m){let n=new URLSearchParams;n.append("code",m);for(let p=1;p<arguments.length;p++)n.append("v",arguments[p]);throw Error(`Minified Lexical error #${m}; visit https://lexical.dev/docs/error?${n} for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}
8
- exports.TablePlugin=function({hasCellMerge:m=!0,hasCellBackgroundColor:n=!0,hasTabHandler:p=!0}){let [d]=c.useLexicalComposerContext();x.useEffect(()=>{d.hasNodes([h.TableNode,h.TableCellNode,h.TableRowNode])||y(10);return d.registerCommand(h.INSERT_TABLE_COMMAND,({columns:a,rows:e,includeHeaders:g})=>{a=h.$createTableNodeWithDimensions(Number(e),Number(a),g);r.$insertNodeToNearestRoot(a);a=a.getFirstDescendant();w.$isTextNode(a)&&a.select();return!0},w.COMMAND_PRIORITY_EDITOR)},[d]);x.useEffect(()=>
9
- {let a=new Map,e=b=>{const f=b.getKey(),l=d.getElementByKey(f);l&&!a.has(f)&&(b=h.applyTableHandlers(b,l,d,p),a.set(f,b))};d.getEditorState().read(()=>{let b=w.$nodesOfType(h.TableNode);for(let f of b)h.$isTableNode(f)&&e(f)});let g=d.registerMutationListener(h.TableNode,b=>{for(const [f,l]of b)"created"===l?d.getEditorState().read(()=>{const q=w.$getNodeByKey(f);h.$isTableNode(q)&&e(q)}):"destroyed"===l&&(b=a.get(f),void 0!==b&&(b.removeListeners(),a.delete(f)))});return()=>{g();for(let [,b]of a)b.removeListeners()}},
10
- [d,p]);x.useEffect(()=>{if(!m)return d.registerNodeTransform(h.TableCellNode,a=>{if(1<a.getColSpan()||1<a.getRowSpan()){var [,,e]=w.DEPRECATED_$getNodeTriplet(a);[a]=w.DEPRECATED_$computeGridMap(e,a,a);let f=a.length,l=a[0].length;e=e.getFirstChild();if(!w.DEPRECATED_$isGridRowNode(e))throw Error("Expected TableNode first child to be a RowNode");let q=[];for(let k=0;k<f;k++){if(0!==k&&(e=e.getNextSibling(),!w.DEPRECATED_$isGridRowNode(e)))throw Error("Expected TableNode first child to be a RowNode");
11
- let u=null;for(let t=0;t<l;t++){var g=a[k][t],b=g.cell;if(g.startRow===k&&g.startColumn===t)u=b,q.push(b);else if(1<b.getColSpan()||1<b.getRowSpan())if(b=h.$createTableCellNode(b.__headerState),null!==u)u.insertAfter(b);else{g=e;let v=g.getFirstChild();null!==v?v.insertBefore(b):g.append(b)}}}for(let k of q)k.setColSpan(1),k.setRowSpan(1)}})},[d,m]);x.useEffect(()=>{if(!n)return d.registerNodeTransform(h.TableCellNode,a=>{null!==a.getBackgroundColor()&&a.setBackgroundColor(null)})},[d,n,m]);return null}
7
+ 'use strict';var c=require("@lexical/react/LexicalComposerContext"),k=require("@lexical/table"),r=require("@lexical/utils"),v=require("lexical"),w=require("react");function x(m){let n=new URLSearchParams;n.append("code",m);for(let p=1;p<arguments.length;p++)n.append("v",arguments[p]);throw Error(`Minified Lexical error #${m}; visit https://lexical.dev/docs/error?${n} for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}
8
+ exports.TablePlugin=function({hasCellMerge:m=!0,hasCellBackgroundColor:n=!0,hasTabHandler:p=!0}){let [d]=c.useLexicalComposerContext();w.useEffect(()=>{d.hasNodes([k.TableNode,k.TableCellNode,k.TableRowNode])||x(10);return d.registerCommand(k.INSERT_TABLE_COMMAND,({columns:a,rows:e,includeHeaders:h})=>{a=k.$createTableNodeWithDimensions(Number(e),Number(a),h);r.$insertNodeToNearestRoot(a);a=a.getFirstDescendant();v.$isTextNode(a)&&a.select();return!0},v.COMMAND_PRIORITY_EDITOR)},[d]);w.useEffect(()=>
9
+ {let a=new Map,e=b=>{const f=b.getKey(),l=d.getElementByKey(f);l&&!a.has(f)&&(b=k.applyTableHandlers(b,l,d,p),a.set(f,b))};d.getEditorState().read(()=>{let b=v.$nodesOfType(k.TableNode);for(let f of b)k.$isTableNode(f)&&e(f)});let h=d.registerMutationListener(k.TableNode,b=>{for(const [f,l]of b)"created"===l?d.getEditorState().read(()=>{const g=v.$getNodeByKey(f);k.$isTableNode(g)&&e(g)}):"destroyed"===l&&(b=a.get(f),void 0!==b&&(b.removeListeners(),a.delete(f)))});return()=>{h();for(let [,b]of a)b.removeListeners()}},
10
+ [d,p]);w.useEffect(()=>{if(!m)return d.registerNodeTransform(k.TableCellNode,a=>{if(1<a.getColSpan()||1<a.getRowSpan()){var [,,e]=v.DEPRECATED_$getNodeTriplet(a);[a]=v.DEPRECATED_$computeGridMap(e,a,a);let b=a.length,f=a[0].length;e=e.getFirstChild();if(!v.DEPRECATED_$isGridRowNode(e))throw Error("Expected TableNode first child to be a RowNode");let l=[];for(let g=0;g<b;g++){if(0!==g&&(e=e.getNextSibling(),!v.DEPRECATED_$isGridRowNode(e)))throw Error("Expected TableNode first child to be a RowNode");
11
+ let u=null;for(let t=0;t<f;t++){var h=a[g][t];let q=h.cell;if(h.startRow===g&&h.startColumn===t)u=q,l.push(q);else if(1<q.getColSpan()||1<q.getRowSpan())h=k.$createTableCellNode(q.__headerState),null!==u?u.insertAfter(h):r.$insertFirst(e,h)}}for(let g of l)g.setColSpan(1),g.setRowSpan(1)}})},[d,m]);w.useEffect(()=>{if(!n)return d.registerNodeTransform(k.TableCellNode,a=>{null!==a.getBackgroundColor()&&a.setBackgroundColor(null)})},[d,n,m]);return null}
package/package.json CHANGED
@@ -8,29 +8,29 @@
8
8
  "rich-text"
9
9
  ],
10
10
  "license": "MIT",
11
- "version": "0.12.0",
11
+ "version": "0.12.1",
12
12
  "dependencies": {
13
- "@lexical/clipboard": "0.12.0",
14
- "@lexical/code": "0.12.0",
15
- "@lexical/dragon": "0.12.0",
16
- "@lexical/hashtag": "0.12.0",
17
- "@lexical/history": "0.12.0",
18
- "@lexical/link": "0.12.0",
19
- "@lexical/list": "0.12.0",
20
- "@lexical/mark": "0.12.0",
21
- "@lexical/markdown": "0.12.0",
22
- "@lexical/overflow": "0.12.0",
23
- "@lexical/plain-text": "0.12.0",
24
- "@lexical/rich-text": "0.12.0",
25
- "@lexical/selection": "0.12.0",
26
- "@lexical/table": "0.12.0",
27
- "@lexical/text": "0.12.0",
28
- "@lexical/utils": "0.12.0",
29
- "@lexical/yjs": "0.12.0",
13
+ "@lexical/clipboard": "0.12.1",
14
+ "@lexical/code": "0.12.1",
15
+ "@lexical/dragon": "0.12.1",
16
+ "@lexical/hashtag": "0.12.1",
17
+ "@lexical/history": "0.12.1",
18
+ "@lexical/link": "0.12.1",
19
+ "@lexical/list": "0.12.1",
20
+ "@lexical/mark": "0.12.1",
21
+ "@lexical/markdown": "0.12.1",
22
+ "@lexical/overflow": "0.12.1",
23
+ "@lexical/plain-text": "0.12.1",
24
+ "@lexical/rich-text": "0.12.1",
25
+ "@lexical/selection": "0.12.1",
26
+ "@lexical/table": "0.12.1",
27
+ "@lexical/text": "0.12.1",
28
+ "@lexical/utils": "0.12.1",
29
+ "@lexical/yjs": "0.12.1",
30
30
  "react-error-boundary": "^3.1.4"
31
31
  },
32
32
  "peerDependencies": {
33
- "lexical": "0.12.0",
33
+ "lexical": "0.12.1",
34
34
  "react": ">=17.x",
35
35
  "react-dom": ">=17.x"
36
36
  },