lexical 0.33.1-nightly.20250709.0 → 0.33.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.
package/Lexical.dev.js CHANGED
@@ -1049,7 +1049,7 @@ function $getWritableNodeState(node) {
1049
1049
  * Get the SharedNodeState for a node on this editor
1050
1050
  */
1051
1051
  function $getSharedNodeState(node) {
1052
- return getRegisteredNodeOrThrow($getEditor(), node.getType()).sharedNodeState;
1052
+ return node.__state ? node.__state.sharedNodeState : getRegisteredNodeOrThrow($getEditor(), node.getType()).sharedNodeState;
1053
1053
  }
1054
1054
 
1055
1055
  /**
@@ -1062,10 +1062,22 @@ function $getSharedNodeState(node) {
1062
1062
  * @param unknownState undefined or a serialized State
1063
1063
  * @returns A writable version of node, with the state set.
1064
1064
  */
1065
- function $updateStateFromJSON(node, unknownState) {
1065
+ function $updateStateFromJSON(node, serialized) {
1066
1066
  const writable = node.getWritable();
1067
- if (unknownState || writable.__state) {
1068
- $getWritableNodeState(node).updateFromJSON(unknownState);
1067
+ const unknownState = serialized[NODE_STATE_KEY];
1068
+ let parseState = unknownState;
1069
+ for (const k of $getSharedNodeState(writable).flatKeys) {
1070
+ if (k in serialized) {
1071
+ if (parseState === undefined || parseState === unknownState) {
1072
+ parseState = {
1073
+ ...unknownState
1074
+ };
1075
+ }
1076
+ parseState[k] = serialized[k];
1077
+ }
1078
+ }
1079
+ if (writable.__state || parseState) {
1080
+ $getWritableNodeState(node).updateFromJSON(parseState);
1069
1081
  }
1070
1082
  return writable;
1071
1083
  }
@@ -3909,7 +3921,7 @@ class LexicalNode {
3909
3921
  * ```
3910
3922
  **/
3911
3923
  updateFromJSON(serializedNode) {
3912
- return $updateStateFromJSON(this, serializedNode[NODE_STATE_KEY]);
3924
+ return $updateStateFromJSON(this, serializedNode);
3913
3925
  }
3914
3926
 
3915
3927
  /**
@@ -10751,7 +10763,7 @@ class LexicalEditor {
10751
10763
  };
10752
10764
  }
10753
10765
  }
10754
- LexicalEditor.version = "0.33.1-nightly.20250709.0+dev.cjs";
10766
+ LexicalEditor.version = "0.33.1+dev.cjs";
10755
10767
 
10756
10768
  let pendingNodeToClone = null;
10757
10769
  function setPendingNodeToClone(pendingNode) {
package/Lexical.dev.mjs CHANGED
@@ -1047,7 +1047,7 @@ function $getWritableNodeState(node) {
1047
1047
  * Get the SharedNodeState for a node on this editor
1048
1048
  */
1049
1049
  function $getSharedNodeState(node) {
1050
- return getRegisteredNodeOrThrow($getEditor(), node.getType()).sharedNodeState;
1050
+ return node.__state ? node.__state.sharedNodeState : getRegisteredNodeOrThrow($getEditor(), node.getType()).sharedNodeState;
1051
1051
  }
1052
1052
 
1053
1053
  /**
@@ -1060,10 +1060,22 @@ function $getSharedNodeState(node) {
1060
1060
  * @param unknownState undefined or a serialized State
1061
1061
  * @returns A writable version of node, with the state set.
1062
1062
  */
1063
- function $updateStateFromJSON(node, unknownState) {
1063
+ function $updateStateFromJSON(node, serialized) {
1064
1064
  const writable = node.getWritable();
1065
- if (unknownState || writable.__state) {
1066
- $getWritableNodeState(node).updateFromJSON(unknownState);
1065
+ const unknownState = serialized[NODE_STATE_KEY];
1066
+ let parseState = unknownState;
1067
+ for (const k of $getSharedNodeState(writable).flatKeys) {
1068
+ if (k in serialized) {
1069
+ if (parseState === undefined || parseState === unknownState) {
1070
+ parseState = {
1071
+ ...unknownState
1072
+ };
1073
+ }
1074
+ parseState[k] = serialized[k];
1075
+ }
1076
+ }
1077
+ if (writable.__state || parseState) {
1078
+ $getWritableNodeState(node).updateFromJSON(parseState);
1067
1079
  }
1068
1080
  return writable;
1069
1081
  }
@@ -3907,7 +3919,7 @@ class LexicalNode {
3907
3919
  * ```
3908
3920
  **/
3909
3921
  updateFromJSON(serializedNode) {
3910
- return $updateStateFromJSON(this, serializedNode[NODE_STATE_KEY]);
3922
+ return $updateStateFromJSON(this, serializedNode);
3911
3923
  }
3912
3924
 
3913
3925
  /**
@@ -10749,7 +10761,7 @@ class LexicalEditor {
10749
10761
  };
10750
10762
  }
10751
10763
  }
10752
- LexicalEditor.version = "0.33.1-nightly.20250709.0+dev.esm";
10764
+ LexicalEditor.version = "0.33.1+dev.esm";
10753
10765
 
10754
10766
  let pendingNodeToClone = null;
10755
10767
  function setPendingNodeToClone(pendingNode) {