chore: Upgrade Lexical to 0.30.0 (#2892)

This commit is contained in:
Aman Harwara
2025-04-23 14:13:23 +05:30
committed by GitHub
parent eab3f3900b
commit eb813d56b4
56 changed files with 224 additions and 493 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,134 +0,0 @@
diff --git a/LexicalClipboard.dev.js b/LexicalClipboard.dev.js
index 1bc958d606217588101f79ed3706669bb6b398ec..5c4e967e31d660504d41466b62e87449d4925ed2 100644
--- a/LexicalClipboard.dev.js
+++ b/LexicalClipboard.dev.js
@@ -93,7 +93,7 @@ function $insertDataTransferForPlainText(dataTransfer, selection) {
* @param selection the selection to use as the insertion point for the content in the DataTransfer object
* @param editor the LexicalEditor the content is being inserted into.
*/
-function $insertDataTransferForRichText(dataTransfer, selection, editor) {
+function $insertDataTransferForRichText(dataTransfer, selection, editor, event) {
const lexicalString = dataTransfer.getData('application/x-lexical-editor');
if (lexicalString) {
try {
@@ -106,15 +106,18 @@ function $insertDataTransferForRichText(dataTransfer, selection, editor) {
// Fail silently.
}
}
- const htmlString = dataTransfer.getData('text/html');
- if (htmlString) {
- try {
- const parser = new DOMParser();
- const dom = parser.parseFromString(trustHTML(htmlString), 'text/html');
- const nodes = html.$generateNodesFromDOM(editor, dom);
- return $insertGeneratedNodes(editor, nodes, selection);
- } catch (_unused2) {
- // Fail silently.
+ const shouldIgnoreHTML = event && event.inputType === 'insertReplacementText' && dataTransfer.types.includes('text/plain');
+ if (!shouldIgnoreHTML) {
+ const htmlString = dataTransfer.getData('text/html');
+ if (htmlString) {
+ try {
+ const parser = new DOMParser();
+ const dom = parser.parseFromString(trustHTML(htmlString), 'text/html');
+ const nodes = html.$generateNodesFromDOM(editor, dom);
+ return $insertGeneratedNodes(editor, nodes, selection);
+ } catch (_unused2) {
+ // Fail silently.
+ }
}
}
diff --git a/LexicalClipboard.dev.mjs b/LexicalClipboard.dev.mjs
index fd0c1b790dae92b742d569d62752d2c0b5705236..d00179beebd5d9f396fc3f7ab84745eea8959633 100644
--- a/LexicalClipboard.dev.mjs
+++ b/LexicalClipboard.dev.mjs
@@ -91,7 +91,7 @@ function $insertDataTransferForPlainText(dataTransfer, selection) {
* @param selection the selection to use as the insertion point for the content in the DataTransfer object
* @param editor the LexicalEditor the content is being inserted into.
*/
-function $insertDataTransferForRichText(dataTransfer, selection, editor) {
+function $insertDataTransferForRichText(dataTransfer, selection, editor, event) {
const lexicalString = dataTransfer.getData('application/x-lexical-editor');
if (lexicalString) {
try {
@@ -104,15 +104,18 @@ function $insertDataTransferForRichText(dataTransfer, selection, editor) {
// Fail silently.
}
}
- const htmlString = dataTransfer.getData('text/html');
- if (htmlString) {
- try {
- const parser = new DOMParser();
- const dom = parser.parseFromString(trustHTML(htmlString), 'text/html');
- const nodes = $generateNodesFromDOM(editor, dom);
- return $insertGeneratedNodes(editor, nodes, selection);
- } catch (_unused2) {
- // Fail silently.
+ const shouldIgnoreHTML = event && event.inputType === 'insertReplacementText' && dataTransfer.types.includes('text/plain');
+ if (!shouldIgnoreHTML) {
+ const htmlString = dataTransfer.getData('text/html');
+ if (htmlString) {
+ try {
+ const parser = new DOMParser();
+ const dom = parser.parseFromString(trustHTML(htmlString), 'text/html');
+ const nodes = $generateNodesFromDOM(editor, dom);
+ return $insertGeneratedNodes(editor, nodes, selection);
+ } catch (_unused2) {
+ // Fail silently.
+ }
}
}
diff --git a/LexicalClipboard.prod.js b/LexicalClipboard.prod.js
index da19707c8c6cfebbfbf4eab94eb4427e81015e01..afe044183dfe347f4da04277e1dd484ad11052fe 100644
--- a/LexicalClipboard.prod.js
+++ b/LexicalClipboard.prod.js
@@ -6,15 +6,15 @@
*
*/
-'use strict';var e=require("@lexical/html"),m=require("@lexical/selection"),n=require("@lexical/utils"),p=require("lexical"),t;function u(a){let b=new URLSearchParams;b.append("code",a);for(let c=1;c<arguments.length;c++)b.append("v",arguments[c]);throw Error(`Minified Lexical error #${a}; visit https://lexical.dev/docs/error?${b} for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}
-t=u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u["default"]:u;function v(a,b=p.$getSelection()){null==b&&t(166);return p.$isRangeSelection(b)&&b.isCollapsed()||0===b.getNodes().length?"":e.$generateHtmlFromNodes(a,b)}function w(a,b=p.$getSelection()){null==b&&t(166);return p.$isRangeSelection(b)&&b.isCollapsed()||0===b.getNodes().length?null:JSON.stringify(x(a,b))}
+'use strict';var f=require("@lexical/html"),m=require("@lexical/selection"),n=require("@lexical/utils"),p=require("lexical"),t;function u(a){let b=new URLSearchParams;b.append("code",a);for(let c=1;c<arguments.length;c++)b.append("v",arguments[c]);throw Error(`Minified Lexical error #${a}; visit https://lexical.dev/docs/error?${b} for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}
+t=u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u["default"]:u;function v(a,b=p.$getSelection()){null==b&&t(166);return p.$isRangeSelection(b)&&b.isCollapsed()||0===b.getNodes().length?"":f.$generateHtmlFromNodes(a,b)}function w(a,b=p.$getSelection()){null==b&&t(166);return p.$isRangeSelection(b)&&b.isCollapsed()||0===b.getNodes().length?null:JSON.stringify(x(a,b))}
function y(a){return window.trustedTypes&&window.trustedTypes.createPolicy?window.trustedTypes.createPolicy("lexical",{createHTML:b=>b}).createHTML(a):a}function z(a,b,c){a.dispatchCommand(p.SELECTION_INSERT_CLIPBOARD_NODES_COMMAND,{nodes:b,selection:c})||c.insertNodes(b)}
-function A(a,b,c,d=[]){let f=null!==b?c.isSelected(b):!0,k=p.$isElementNode(c)&&c.excludeFromCopy("html");var g=c;if(null!==b){var h=p.$cloneWithProperties(c);g=h=p.$isTextNode(h)&&null!==b?m.$sliceSelectedTextNodeContent(b,h):h}let q=p.$isElementNode(g)?g.getChildren():[];var l=g;h=l.exportJSON();var r=l.constructor;h.type!==r.getType()&&t(58,r.name);p.$isElementNode(l)&&(Array.isArray(h.children)||t(59,r.name));p.$isTextNode(g)&&(g=g.__text,0<g.length?h.text=g:f=!1);for(g=0;g<q.length;g++)l=q[g],
-r=A(a,b,l,h.children),!f&&p.$isElementNode(c)&&r&&c.extractWithChild(l,b,"clone")&&(f=!0);if(f&&!k)d.push(h);else if(Array.isArray(h.children))for(a=0;a<h.children.length;a++)d.push(h.children[a]);return f}function x(a,b){let c=[],d=p.$getRoot().getChildren();for(let f=0;f<d.length;f++)A(a,b,d[f],c);return{namespace:a._config.namespace,nodes:c}}function B(a){let b=[];for(let c=0;c<a.length;c++){let d=p.$parseSerializedNode(a[c]);p.$isTextNode(d)&&m.$addNodeStyle(d);b.push(d)}return b}let C=null;
+function A(a,b,c,d=[]){let h=null!==b?c.isSelected(b):!0,k=p.$isElementNode(c)&&c.excludeFromCopy("html");var e=c;if(null!==b){var g=p.$cloneWithProperties(c);e=g=p.$isTextNode(g)&&null!==b?m.$sliceSelectedTextNodeContent(b,g):g}let q=p.$isElementNode(e)?e.getChildren():[];var l=e;g=l.exportJSON();var r=l.constructor;g.type!==r.getType()&&t(58,r.name);p.$isElementNode(l)&&(Array.isArray(g.children)||t(59,r.name));p.$isTextNode(e)&&(e=e.__text,0<e.length?g.text=e:h=!1);for(e=0;e<q.length;e++)l=q[e],
+r=A(a,b,l,g.children),!h&&p.$isElementNode(c)&&r&&c.extractWithChild(l,b,"clone")&&(h=!0);if(h&&!k)d.push(g);else if(Array.isArray(g.children))for(a=0;a<g.children.length;a++)d.push(g.children[a]);return h}function x(a,b){let c=[],d=p.$getRoot().getChildren();for(let h=0;h<d.length;h++)A(a,b,d[h],c);return{namespace:a._config.namespace,nodes:c}}function B(a){let b=[];for(let c=0;c<a.length;c++){let d=p.$parseSerializedNode(a[c]);p.$isTextNode(d)&&m.$addNodeStyle(d);b.push(d)}return b}let C=null;
function D(a,b,c){if(void 0===c){var d=p.getDOMSelection(a._window);if(!d)return!1;c=d.anchorNode;d=d.focusNode;if(null!==c&&null!==d&&!p.isSelectionWithinEditor(a,c,d))return!1;a=p.$getSelection();if(null===a)return!1;c=E(a)}b.preventDefault();b=b.clipboardData;if(null===b)return!1;F(b,c);return!0}let G=[["text/html",v],["application/x-lexical-editor",w]];
-function E(a=p.$getSelection()){let b={"text/plain":a?a.getTextContent():""};if(a){let c=p.$getEditor();for(let [d,f]of G){let k=f(c,a);null!==k&&(b[d]=k)}}return b}function F(a,b){for(let c in b){let d=b[c];void 0!==d&&a.setData(c,d)}}exports.$generateJSONFromSelectedNodes=x;exports.$generateNodesFromSerializedNodes=B;exports.$getClipboardDataFromSelection=E;exports.$getHtmlContent=v;exports.$getLexicalContent=w;
+function E(a=p.$getSelection()){let b={"text/plain":a?a.getTextContent():""};if(a){let c=p.$getEditor();for(let [d,h]of G){let k=h(c,a);null!==k&&(b[d]=k)}}return b}function F(a,b){for(let c in b){let d=b[c];void 0!==d&&a.setData(c,d)}}exports.$generateJSONFromSelectedNodes=x;exports.$generateNodesFromSerializedNodes=B;exports.$getClipboardDataFromSelection=E;exports.$getHtmlContent=v;exports.$getLexicalContent=w;
exports.$insertDataTransferForPlainText=function(a,b){a=a.getData("text/plain")||a.getData("text/uri-list");null!=a&&b.insertRawText(a)};
-exports.$insertDataTransferForRichText=function(a,b,c){var d=a.getData("application/x-lexical-editor");if(d)try{let k=JSON.parse(d);if(k.namespace===c._config.namespace&&Array.isArray(k.nodes)){let g=B(k.nodes);return z(c,g,b)}}catch(k){}if(d=a.getData("text/html"))try{var f=(new DOMParser).parseFromString(y(d),"text/html");let k=e.$generateNodesFromDOM(c,f);return z(c,k,b)}catch(k){}a=a.getData("text/plain")||a.getData("text/uri-list");if(null!=a)if(p.$isRangeSelection(b))for(b=a.split(/(\r?\n|\t)/),
-""===b[b.length-1]&&b.pop(),a=0;a<b.length;a++)c=p.$getSelection(),p.$isRangeSelection(c)&&(f=b[a],"\n"===f||"\r\n"===f?c.insertParagraph():"\t"===f?c.insertNodes([p.$createTabNode()]):c.insertText(f));else b.insertRawText(a)};exports.$insertGeneratedNodes=z;
-exports.copyToClipboard=async function(a,b,c){if(null!==C)return!1;if(null!==b)return new Promise(h=>{a.update(()=>{h(D(a,b,c))})});var d=a.getRootElement();let f=null==a._window?window.document:a._window.document,k=p.getDOMSelection(a._window);if(null===d||null===k)return!1;let g=f.createElement("span");g.style.cssText="position: fixed; top: -1000px;";g.append(f.createTextNode("#"));d.append(g);d=new Range;d.setStart(g,0);d.setEnd(g,1);k.removeAllRanges();k.addRange(d);return new Promise(h=>{let q=
-a.registerCommand(p.COPY_COMMAND,l=>{n.objectKlassEquals(l,ClipboardEvent)&&(q(),null!==C&&(window.clearTimeout(C),C=null),h(D(a,l,c)));return!0},p.COMMAND_PRIORITY_CRITICAL);C=window.setTimeout(()=>{q();C=null;h(!1)},50);f.execCommand("copy");g.remove()})};exports.setLexicalClipboardDataTransfer=F
+exports.$insertDataTransferForRichText=function(a,b,c,d){let h=a.getData("application/x-lexical-editor");if(h)try{let e=JSON.parse(h);if(e.namespace===c._config.namespace&&Array.isArray(e.nodes)){let g=B(e.nodes);return z(c,g,b)}}catch(e){}if(!d||"insertReplacementText"!==d.inputType||!a.types.includes("text/plain"))if(d=a.getData("text/html"))try{var k=(new DOMParser).parseFromString(y(d),"text/html");let e=f.$generateNodesFromDOM(c,k);return z(c,e,b)}catch(e){}a=a.getData("text/plain")||a.getData("text/uri-list");
+if(null!=a)if(p.$isRangeSelection(b))for(b=a.split(/(\r?\n|\t)/),""===b[b.length-1]&&b.pop(),a=0;a<b.length;a++)c=p.$getSelection(),p.$isRangeSelection(c)&&(k=b[a],"\n"===k||"\r\n"===k?c.insertParagraph():"\t"===k?c.insertNodes([p.$createTabNode()]):c.insertText(k));else b.insertRawText(a)};exports.$insertGeneratedNodes=z;
+exports.copyToClipboard=async function(a,b,c){if(null!==C)return!1;if(null!==b)return new Promise(g=>{a.update(()=>{g(D(a,b,c))})});var d=a.getRootElement();let h=null==a._window?window.document:a._window.document,k=p.getDOMSelection(a._window);if(null===d||null===k)return!1;let e=h.createElement("span");e.style.cssText="position: fixed; top: -1000px;";e.append(h.createTextNode("#"));d.append(e);d=new Range;d.setStart(e,0);d.setEnd(e,1);k.removeAllRanges();k.addRange(d);return new Promise(g=>{let q=
+a.registerCommand(p.COPY_COMMAND,l=>{n.objectKlassEquals(l,ClipboardEvent)&&(q(),null!==C&&(window.clearTimeout(C),C=null),g(D(a,l,c)));return!0},p.COMMAND_PRIORITY_CRITICAL);C=window.setTimeout(()=>{q();C=null;g(!1)},50);h.execCommand("copy");e.remove()})};exports.setLexicalClipboardDataTransfer=F
diff --git a/LexicalClipboard.prod.mjs b/LexicalClipboard.prod.mjs
index 0a2b0694926fa9838a417295956bc832a02d5499..68090dd340db822053b4e3ceda8f68e4413c8908 100644
--- a/LexicalClipboard.prod.mjs
+++ b/LexicalClipboard.prod.mjs
@@ -6,4 +6,4 @@
*
*/
-import{$generateHtmlFromNodes as t,$generateNodesFromDOM as e}from"@lexical/html";import{$addNodeStyle as n,$sliceSelectedTextNodeContent as o}from"@lexical/selection";import{objectKlassEquals as r}from"@lexical/utils";import{$isRangeSelection as l,$getSelection as i,$createTabNode as s,SELECTION_INSERT_CLIPBOARD_NODES_COMMAND as c,$getRoot as a,$parseSerializedNode as u,$isTextNode as d,getDOMSelection as f,COPY_COMMAND as p,COMMAND_PRIORITY_CRITICAL as m,isSelectionWithinEditor as h,$getEditor as g,$isElementNode as x,$cloneWithProperties as w}from"lexical";function y(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var T=y((function(t){const e=new URLSearchParams;e.append("code",t);for(let t=1;t<arguments.length;t++)e.append("v",arguments[t]);throw Error(`Minified Lexical error #${t}; visit https://lexical.dev/docs/error?${e} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));function v(e,n=i()){return null==n&&T(166),l(n)&&n.isCollapsed()||0===n.getNodes().length?"":t(e,n)}function C(t,e=i()){return null==e&&T(166),l(e)&&e.isCollapsed()||0===e.getNodes().length?null:JSON.stringify(A(t,e))}function D(t,e){const n=t.getData("text/plain")||t.getData("text/uri-list");null!=n&&e.insertRawText(n)}function N(t,n,o){const r=t.getData("application/x-lexical-editor");if(r)try{const t=JSON.parse(r);if(t.namespace===o._config.namespace&&Array.isArray(t.nodes)){return _(o,R(t.nodes),n)}}catch(t){}const c=t.getData("text/html");if(c)try{const t=(new DOMParser).parseFromString(function(t){if(window.trustedTypes&&window.trustedTypes.createPolicy){return window.trustedTypes.createPolicy("lexical",{createHTML:t=>t}).createHTML(t)}return t}(c),"text/html");return _(o,e(o,t),n)}catch(t){}const a=t.getData("text/plain")||t.getData("text/uri-list");if(null!=a)if(l(n)){const t=a.split(/(\r?\n|\t)/);""===t[t.length-1]&&t.pop();for(let e=0;e<t.length;e++){const n=i();if(l(n)){const o=t[e];"\n"===o||"\r\n"===o?n.insertParagraph():"\t"===o?n.insertNodes([s()]):n.insertText(o)}}}else n.insertRawText(a)}function _(t,e,n){t.dispatchCommand(c,{nodes:e,selection:n})||n.insertNodes(e)}function P(t,e,n,r=[]){let l=null===e||n.isSelected(e);const i=x(n)&&n.excludeFromCopy("html");let s=n;if(null!==e){let t=w(n);t=d(t)&&null!==e?o(e,t):t,s=t}const c=x(s)?s.getChildren():[],a=function(t){const e=t.exportJSON(),n=t.constructor;if(e.type!==n.getType()&&T(58,n.name),x(t)){const t=e.children;Array.isArray(t)||T(59,n.name)}return e}(s);if(d(s)){const t=s.__text;t.length>0?a.text=t:l=!1}for(let o=0;o<c.length;o++){const r=c[o],i=P(t,e,r,a.children);!l&&x(n)&&i&&n.extractWithChild(r,e,"clone")&&(l=!0)}if(l&&!i)r.push(a);else if(Array.isArray(a.children))for(let t=0;t<a.children.length;t++){const e=a.children[t];r.push(e)}return l}function A(t,e){const n=[],o=a().getChildren();for(let r=0;r<o.length;r++){P(t,e,o[r],n)}return{namespace:t._config.namespace,nodes:n}}function R(t){const e=[];for(let o=0;o<t.length;o++){const r=t[o],l=u(r);d(l)&&n(l),e.push(l)}return e}let S=null;async function O(t,e,n){if(null!==S)return!1;if(null!==e)return new Promise(((o,r)=>{t.update((()=>{o(E(t,e,n))}))}));const o=t.getRootElement(),l=null==t._window?window.document:t._window.document,i=f(t._window);if(null===o||null===i)return!1;const s=l.createElement("span");s.style.cssText="position: fixed; top: -1000px;",s.append(l.createTextNode("#")),o.append(s);const c=new Range;return c.setStart(s,0),c.setEnd(s,1),i.removeAllRanges(),i.addRange(c),new Promise(((e,o)=>{const i=t.registerCommand(p,(o=>(r(o,ClipboardEvent)&&(i(),null!==S&&(window.clearTimeout(S),S=null),e(E(t,o,n))),!0)),m);S=window.setTimeout((()=>{i(),S=null,e(!1)}),50),l.execCommand("copy"),s.remove()}))}function E(t,e,n){if(void 0===n){const e=f(t._window);if(!e)return!1;const o=e.anchorNode,r=e.focusNode;if(null!==o&&null!==r&&!h(t,o,r))return!1;const l=i();if(null===l)return!1;n=L(l)}e.preventDefault();const o=e.clipboardData;return null!==o&&(b(o,n),!0)}const M=[["text/html",v],["application/x-lexical-editor",C]];function L(t=i()){const e={"text/plain":t?t.getTextContent():""};if(t){const n=g();for(const[o,r]of M){const l=r(n,t);null!==l&&(e[o]=l)}}return e}function b(t,e){for(const n in e){const o=e[n];void 0!==o&&t.setData(n,o)}}export{A as $generateJSONFromSelectedNodes,R as $generateNodesFromSerializedNodes,L as $getClipboardDataFromSelection,v as $getHtmlContent,C as $getLexicalContent,D as $insertDataTransferForPlainText,N as $insertDataTransferForRichText,_ as $insertGeneratedNodes,O as copyToClipboard,b as setLexicalClipboardDataTransfer};
+import{$generateHtmlFromNodes as t,$generateNodesFromDOM as e}from"@lexical/html";import{$addNodeStyle as n,$sliceSelectedTextNodeContent as o}from"@lexical/selection";import{objectKlassEquals as r}from"@lexical/utils";import{$isRangeSelection as l,$getSelection as i,$createTabNode as s,SELECTION_INSERT_CLIPBOARD_NODES_COMMAND as c,$getRoot as a,$parseSerializedNode as u,$isTextNode as d,getDOMSelection as f,COPY_COMMAND as p,COMMAND_PRIORITY_CRITICAL as m,isSelectionWithinEditor as h,$getEditor as x,$isElementNode as g,$cloneWithProperties as w}from"lexical";function y(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var T=y((function(t){const e=new URLSearchParams;e.append("code",t);for(let t=1;t<arguments.length;t++)e.append("v",arguments[t]);throw Error(`Minified Lexical error #${t}; visit https://lexical.dev/docs/error?${e} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));function v(e,n=i()){return null==n&&T(166),l(n)&&n.isCollapsed()||0===n.getNodes().length?"":t(e,n)}function C(t,e=i()){return null==e&&T(166),l(e)&&e.isCollapsed()||0===e.getNodes().length?null:JSON.stringify(R(t,e))}function D(t,e){const n=t.getData("text/plain")||t.getData("text/uri-list");null!=n&&e.insertRawText(n)}function N(t,n,o,r){const c=t.getData("application/x-lexical-editor");if(c)try{const t=JSON.parse(c);if(t.namespace===o._config.namespace&&Array.isArray(t.nodes)){return _(o,A(t.nodes),n)}}catch(t){}if(!(r&&"insertReplacementText"===r.inputType&&t.types.includes("text/plain"))){const r=t.getData("text/html");if(r)try{const t=(new DOMParser).parseFromString(function(t){if(window.trustedTypes&&window.trustedTypes.createPolicy){return window.trustedTypes.createPolicy("lexical",{createHTML:t=>t}).createHTML(t)}return t}(r),"text/html");return _(o,e(o,t),n)}catch(t){}}const a=t.getData("text/plain")||t.getData("text/uri-list");if(null!=a)if(l(n)){const t=a.split(/(\r?\n|\t)/);""===t[t.length-1]&&t.pop();for(let e=0;e<t.length;e++){const n=i();if(l(n)){const o=t[e];"\n"===o||"\r\n"===o?n.insertParagraph():"\t"===o?n.insertNodes([s()]):n.insertText(o)}}}else n.insertRawText(a)}function _(t,e,n){t.dispatchCommand(c,{nodes:e,selection:n})||n.insertNodes(e)}function P(t,e,n,r=[]){let l=null===e||n.isSelected(e);const i=g(n)&&n.excludeFromCopy("html");let s=n;if(null!==e){let t=w(n);t=d(t)&&null!==e?o(e,t):t,s=t}const c=g(s)?s.getChildren():[],a=function(t){const e=t.exportJSON(),n=t.constructor;if(e.type!==n.getType()&&T(58,n.name),g(t)){const t=e.children;Array.isArray(t)||T(59,n.name)}return e}(s);if(d(s)){const t=s.__text;t.length>0?a.text=t:l=!1}for(let o=0;o<c.length;o++){const r=c[o],i=P(t,e,r,a.children);!l&&g(n)&&i&&n.extractWithChild(r,e,"clone")&&(l=!0)}if(l&&!i)r.push(a);else if(Array.isArray(a.children))for(let t=0;t<a.children.length;t++){const e=a.children[t];r.push(e)}return l}function R(t,e){const n=[],o=a().getChildren();for(let r=0;r<o.length;r++){P(t,e,o[r],n)}return{namespace:t._config.namespace,nodes:n}}function A(t){const e=[];for(let o=0;o<t.length;o++){const r=t[o],l=u(r);d(l)&&n(l),e.push(l)}return e}let S=null;async function O(t,e,n){if(null!==S)return!1;if(null!==e)return new Promise(((o,r)=>{t.update((()=>{o(E(t,e,n))}))}));const o=t.getRootElement(),l=null==t._window?window.document:t._window.document,i=f(t._window);if(null===o||null===i)return!1;const s=l.createElement("span");s.style.cssText="position: fixed; top: -1000px;",s.append(l.createTextNode("#")),o.append(s);const c=new Range;return c.setStart(s,0),c.setEnd(s,1),i.removeAllRanges(),i.addRange(c),new Promise(((e,o)=>{const i=t.registerCommand(p,(o=>(r(o,ClipboardEvent)&&(i(),null!==S&&(window.clearTimeout(S),S=null),e(E(t,o,n))),!0)),m);S=window.setTimeout((()=>{i(),S=null,e(!1)}),50),l.execCommand("copy"),s.remove()}))}function E(t,e,n){if(void 0===n){const e=f(t._window);if(!e)return!1;const o=e.anchorNode,r=e.focusNode;if(null!==o&&null!==r&&!h(t,o,r))return!1;const l=i();if(null===l)return!1;n=L(l)}e.preventDefault();const o=e.clipboardData;return null!==o&&(b(o,n),!0)}const M=[["text/html",v],["application/x-lexical-editor",C]];function L(t=i()){const e={"text/plain":t?t.getTextContent():""};if(t){const n=x();for(const[o,r]of M){const l=r(n,t);null!==l&&(e[o]=l)}}return e}function b(t,e){for(const n in e){const o=e[n];void 0!==o&&t.setData(n,o)}}export{R as $generateJSONFromSelectedNodes,A as $generateNodesFromSerializedNodes,L as $getClipboardDataFromSelection,v as $getHtmlContent,C as $getLexicalContent,D as $insertDataTransferForPlainText,N as $insertDataTransferForRichText,_ as $insertGeneratedNodes,O as copyToClipboard,b as setLexicalClipboardDataTransfer};
diff --git a/clipboard.d.ts b/clipboard.d.ts
index 33ee79d61150403f45566839251c5c2950fba8e0..b7a27d5f4700814f55bfc988eead2709e8f2a040 100644
--- a/clipboard.d.ts
+++ b/clipboard.d.ts
@@ -51,7 +51,7 @@ export declare function $insertDataTransferForPlainText(dataTransfer: DataTransf
* @param selection the selection to use as the insertion point for the content in the DataTransfer object
* @param editor the LexicalEditor the content is being inserted into.
*/
-export declare function $insertDataTransferForRichText(dataTransfer: DataTransfer, selection: BaseSelection, editor: LexicalEditor): void;
+export declare function $insertDataTransferForRichText(dataTransfer: DataTransfer, selection: BaseSelection, editor: LexicalEditor, event?: InputEvent): void;
/**
* Inserts Lexical nodes into the editor using different strategies depending on
* some simple selection-based heuristics. If you're looking for a generic way to

File diff suppressed because one or more lines are too long

View File

@@ -44,8 +44,6 @@
"@types/react-native-vector-icons/@types/react": "17.0.2", "@types/react-native-vector-icons/@types/react": "17.0.2",
"@types/react-native/@types/react": "17.0.2", "@types/react-native/@types/react": "17.0.2",
"@types/hoist-non-react-statics/@types/react": "17.0.2", "@types/hoist-non-react-statics/@types/react": "17.0.2",
"@lexical/clipboard@0.23.1": "patch:@lexical/clipboard@npm:0.23.1#.yarn/patches/@lexical-clipboard-npm-0.23.1-961671e399.patch",
"@lexical/rich-text@0.23.1": "patch:@lexical/rich-text@npm:0.23.1#.yarn/patches/@lexical-rich-text-npm-0.23.1-a9f13154ae.patch",
"node-abi": "^4.2.0" "node-abi": "^4.2.0"
}, },
"dependencies": { "dependencies": {

View File

@@ -15,6 +15,7 @@ platform :ios do
end end
def build_ios(scheme) def build_ios(scheme)
xcversion(version: "16.1")
increment_version_number( increment_version_number(
version_number: ENV['PACKAGE_VERSION'], version_number: ENV['PACKAGE_VERSION'],
xcodeproj: 'ios/StandardNotes.xcodeproj' xcodeproj: 'ios/StandardNotes.xcodeproj'

View File

@@ -108,17 +108,17 @@
}, },
"dependencies": { "dependencies": {
"@ariakit/react": "^0.3.9", "@ariakit/react": "^0.3.9",
"@lexical/clipboard": "0.23.1", "@lexical/clipboard": "0.30.0",
"@lexical/headless": "0.23.1", "@lexical/headless": "0.30.0",
"@lexical/link": "0.23.1", "@lexical/link": "0.30.0",
"@lexical/list": "0.23.1", "@lexical/list": "0.30.0",
"@lexical/react": "0.23.1", "@lexical/react": "0.30.0",
"@lexical/rich-text": "0.23.1", "@lexical/rich-text": "0.30.0",
"@lexical/utils": "0.23.1", "@lexical/utils": "0.30.0",
"@radix-ui/react-slot": "^1.0.1", "@radix-ui/react-slot": "^1.0.1",
"@react-pdf/renderer": "^3.3.2", "@react-pdf/renderer": "^3.3.2",
"comlink": "^4.4.1", "comlink": "^4.4.1",
"fast-diff": "^1.3.0", "fast-diff": "^1.3.0",
"lexical": "0.23.1" "lexical": "0.30.0"
} }
} }

View File

@@ -5,7 +5,7 @@ import { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin'
import { ClearEditorPlugin } from '@lexical/react/LexicalClearEditorPlugin' import { ClearEditorPlugin } from '@lexical/react/LexicalClearEditorPlugin'
import { MarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin' import { MarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin'
import { TablePlugin } from '@lexical/react/LexicalTablePlugin' import { TablePlugin } from '@lexical/react/LexicalTablePlugin'
import LexicalErrorBoundary from '@lexical/react/LexicalErrorBoundary' import { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary'
import { HashtagPlugin } from '@lexical/react/LexicalHashtagPlugin' import { HashtagPlugin } from '@lexical/react/LexicalHashtagPlugin'
import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin' import { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin'
import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin' import { LinkPlugin } from '@lexical/react/LexicalLinkPlugin'

View File

@@ -1,4 +1,4 @@
import { $isListItemNode, INSERT_CHECK_LIST_COMMAND, insertList, ListNode } from '@lexical/list' import { $insertList, $isListItemNode, INSERT_CHECK_LIST_COMMAND, ListNode } from '@lexical/list'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext' import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'
import { calculateZoomLevel, isHTMLElement, mergeRegister } from '@lexical/utils' import { calculateZoomLevel, isHTMLElement, mergeRegister } from '@lexical/utils'
import { import {
@@ -23,7 +23,7 @@ export function CheckListPlugin(): null {
editor.registerCommand( editor.registerCommand(
INSERT_CHECK_LIST_COMMAND, INSERT_CHECK_LIST_COMMAND,
() => { () => {
insertList(editor, 'check') $insertList('check')
return true return true
}, },
COMMAND_PRIORITY_LOW, COMMAND_PRIORITY_LOW,

View File

@@ -12,23 +12,15 @@ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext
import { $findMatchingParent, mergeRegister, $insertNodeToNearestRoot } from '@lexical/utils' import { $findMatchingParent, mergeRegister, $insertNodeToNearestRoot } from '@lexical/utils'
import { import {
$createParagraphNode, $createParagraphNode,
$getNodeByKey,
$getPreviousSelection,
$getSelection, $getSelection,
$isElementNode,
$isRangeSelection, $isRangeSelection,
$setSelection,
COMMAND_PRIORITY_EDITOR,
COMMAND_PRIORITY_LOW, COMMAND_PRIORITY_LOW,
createCommand, createCommand,
DELETE_CHARACTER_COMMAND,
INSERT_PARAGRAPH_COMMAND, INSERT_PARAGRAPH_COMMAND,
KEY_ARROW_DOWN_COMMAND, KEY_ARROW_DOWN_COMMAND,
KEY_ARROW_LEFT_COMMAND, KEY_ARROW_LEFT_COMMAND,
KEY_ARROW_RIGHT_COMMAND, KEY_ARROW_RIGHT_COMMAND,
KEY_ARROW_UP_COMMAND, KEY_ARROW_UP_COMMAND,
LexicalNode,
NodeKey,
} from 'lexical' } from 'lexical'
import { useEffect } from 'react' import { useEffect } from 'react'
@@ -45,7 +37,6 @@ import {
import { $createCollapsibleTitleNode, $isCollapsibleTitleNode, CollapsibleTitleNode } from './CollapsibleTitleNode' import { $createCollapsibleTitleNode, $isCollapsibleTitleNode, CollapsibleTitleNode } from './CollapsibleTitleNode'
export const INSERT_COLLAPSIBLE_COMMAND = createCommand<void>() export const INSERT_COLLAPSIBLE_COMMAND = createCommand<void>()
export const TOGGLE_COLLAPSIBLE_COMMAND = createCommand<NodeKey>()
export default function CollapsiblePlugin(): JSX.Element | null { export default function CollapsiblePlugin(): JSX.Element | null {
const [editor] = useLexicalComposerContext() const [editor] = useLexicalComposerContext()
@@ -56,7 +47,7 @@ export default function CollapsiblePlugin(): JSX.Element | null {
) )
} }
const onEscapeUp = () => { const $onEscapeUp = () => {
const selection = $getSelection() const selection = $getSelection()
if ($isRangeSelection(selection) && selection.isCollapsed() && selection.anchor.offset === 0) { if ($isRangeSelection(selection) && selection.isCollapsed() && selection.anchor.offset === 0) {
const container = $findMatchingParent(selection.anchor.getNode(), $isCollapsibleContainerNode) const container = $findMatchingParent(selection.anchor.getNode(), $isCollapsibleContainerNode)
@@ -76,7 +67,7 @@ export default function CollapsiblePlugin(): JSX.Element | null {
return false return false
} }
const onEscapeDown = () => { const $onEscapeDown = () => {
const selection = $getSelection() const selection = $getSelection()
if ($isRangeSelection(selection) && selection.isCollapsed()) { if ($isRangeSelection(selection) && selection.isCollapsed()) {
const container = $findMatchingParent(selection.anchor.getNode(), $isCollapsibleContainerNode) const container = $findMatchingParent(selection.anchor.getNode(), $isCollapsibleContainerNode)
@@ -84,8 +75,8 @@ export default function CollapsiblePlugin(): JSX.Element | null {
if ($isCollapsibleContainerNode(container)) { if ($isCollapsibleContainerNode(container)) {
const parent = container.getParent() const parent = container.getParent()
if (parent !== null && parent.getLastChild() === container) { if (parent !== null && parent.getLastChild() === container) {
const titleParagraph = container.getFirstDescendant<LexicalNode>() const titleParagraph = container.getFirstDescendant()
const contentParagraph = container.getLastDescendant<LexicalNode>() const contentParagraph = container.getLastDescendant()
if ( if (
(contentParagraph !== null && (contentParagraph !== null &&
@@ -133,69 +124,34 @@ export default function CollapsiblePlugin(): JSX.Element | null {
node.remove() node.remove()
} }
}), }),
// This handles the case when container is collapsed and we delete its previous sibling
// into it, it would cause collapsed content deleted (since it's display: none, and selection
// swallows it when deletes single char). Instead we expand container, which is although
// not perfect, but avoids bigger problem
editor.registerCommand(
DELETE_CHARACTER_COMMAND,
() => {
const selection = $getSelection()
if (!$isRangeSelection(selection) || !selection.isCollapsed() || selection.anchor.offset !== 0) {
return false
}
const anchorNode = selection.anchor.getNode()
const topLevelElement = anchorNode.getTopLevelElement()
if (topLevelElement === null) {
return false
}
const container = topLevelElement.getPreviousSibling()
if (!$isCollapsibleContainerNode(container) || container.getOpen()) {
return false
}
container.setOpen(true)
return true
},
COMMAND_PRIORITY_LOW,
),
// When collapsible is the last child pressing down/right arrow will insert paragraph // When collapsible is the last child pressing down/right arrow will insert paragraph
// below it to allow adding more content. It's similar what $insertBlockNode // below it to allow adding more content. It's similar what $insertBlockNode
// (mainly for decorators), except it'll always be possible to continue adding // (mainly for decorators), except it'll always be possible to continue adding
// new content even if trailing paragraph is accidentally deleted // new content even if trailing paragraph is accidentally deleted
editor.registerCommand(KEY_ARROW_DOWN_COMMAND, onEscapeDown, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ARROW_DOWN_COMMAND, $onEscapeDown, COMMAND_PRIORITY_LOW),
editor.registerCommand(KEY_ARROW_RIGHT_COMMAND, onEscapeDown, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ARROW_RIGHT_COMMAND, $onEscapeDown, COMMAND_PRIORITY_LOW),
// When collapsible is the first child pressing up/left arrow will insert paragraph // When collapsible is the first child pressing up/left arrow will insert paragraph
// above it to allow adding more content. It's similar what $insertBlockNode // above it to allow adding more content. It's similar what $insertBlockNode
// (mainly for decorators), except it'll always be possible to continue adding // (mainly for decorators), except it'll always be possible to continue adding
// new content even if leading paragraph is accidentally deleted // new content even if leading paragraph is accidentally deleted
editor.registerCommand(KEY_ARROW_UP_COMMAND, onEscapeUp, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ARROW_UP_COMMAND, $onEscapeUp, COMMAND_PRIORITY_LOW),
editor.registerCommand(KEY_ARROW_LEFT_COMMAND, onEscapeUp, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ARROW_LEFT_COMMAND, $onEscapeUp, COMMAND_PRIORITY_LOW),
// Handling CMD+Enter to toggle collapsible element collapsed state // Handling CMD+Enter to toggle collapsible element collapsed state
editor.registerCommand( editor.registerCommand(
INSERT_PARAGRAPH_COMMAND, INSERT_PARAGRAPH_COMMAND,
() => { () => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment const selection = $getSelection()
// @ts-ignore if ($isRangeSelection(selection)) {
const windowEvent: KeyboardEvent | undefined = editor._window?.event const titleNode = $findMatchingParent(selection.anchor.getNode(), (node) => $isCollapsibleTitleNode(node))
if (windowEvent && (windowEvent.ctrlKey || windowEvent.metaKey) && windowEvent.key === 'Enter') { if ($isCollapsibleTitleNode(titleNode)) {
const selection = $getPreviousSelection() const container = titleNode.getParent()
if ($isRangeSelection(selection) && selection.isCollapsed()) { if (container && $isCollapsibleContainerNode(container)) {
const parent = $findMatchingParent( if (!container.getOpen()) {
selection.anchor.getNode(),
(node) => $isElementNode(node) && !node.isInline(),
)
if ($isCollapsibleTitleNode(parent)) {
const container = parent.getParent()
if ($isCollapsibleContainerNode(container)) {
container.toggleOpen() container.toggleOpen()
$setSelection(selection.clone())
return true
} }
titleNode.getNextSibling()?.selectEnd()
return true
} }
} }
} }
@@ -209,32 +165,18 @@ export default function CollapsiblePlugin(): JSX.Element | null {
() => { () => {
editor.update(() => { editor.update(() => {
const title = $createCollapsibleTitleNode() const title = $createCollapsibleTitleNode()
const paragraph = $createParagraphNode()
$insertNodeToNearestRoot( $insertNodeToNearestRoot(
$createCollapsibleContainerNode(true).append( $createCollapsibleContainerNode(true).append(
title, title.append(paragraph),
$createCollapsibleContentNode().append($createParagraphNode()), $createCollapsibleContentNode().append($createParagraphNode()),
), ),
) )
title.select() paragraph.select()
}) })
return true return true
}, },
COMMAND_PRIORITY_EDITOR, COMMAND_PRIORITY_LOW,
),
editor.registerCommand(
TOGGLE_COLLAPSIBLE_COMMAND,
(key: NodeKey) => {
editor.update(() => {
const containerNode = $getNodeByKey(key)
if ($isCollapsibleContainerNode(containerNode)) {
containerNode.toggleOpen()
}
})
return true
},
COMMAND_PRIORITY_EDITOR,
), ),
) )
}, [editor]) }, [editor])

View File

@@ -18,17 +18,17 @@ import {
} from 'lexical' } from 'lexical'
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext' import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'
import useLexicalEditable from '@lexical/react/useLexicalEditable' import { useLexicalEditable } from '@lexical/react/useLexicalEditable'
import { import {
$deleteTableColumn__EXPERIMENTAL, $deleteTableColumnAtSelection,
$deleteTableRow__EXPERIMENTAL, $deleteTableRowAtSelection,
$getNodeTriplet, $getNodeTriplet,
$getTableCellNodeFromLexicalNode, $getTableCellNodeFromLexicalNode,
$getTableColumnIndexFromTableCellNode, $getTableColumnIndexFromTableCellNode,
$getTableNodeFromLexicalNodeOrThrow, $getTableNodeFromLexicalNodeOrThrow,
$getTableRowIndexFromTableCellNode, $getTableRowIndexFromTableCellNode,
$insertTableColumn__EXPERIMENTAL, $insertTableColumnAtSelection,
$insertTableRow__EXPERIMENTAL, $insertTableRowAtSelection,
$isTableCellNode, $isTableCellNode,
$isTableRowNode, $isTableRowNode,
$isTableSelection, $isTableSelection,
@@ -249,7 +249,7 @@ function TableActionMenu({ onClose, tableCellNode: _tableCellNode, cellMerge }:
const insertTableRowAtSelection = useCallback( const insertTableRowAtSelection = useCallback(
(shouldInsertAfter: boolean) => { (shouldInsertAfter: boolean) => {
editor.update(() => { editor.update(() => {
$insertTableRow__EXPERIMENTAL(shouldInsertAfter) $insertTableRowAtSelection(shouldInsertAfter)
onClose() onClose()
}) })
}, },
@@ -260,7 +260,7 @@ function TableActionMenu({ onClose, tableCellNode: _tableCellNode, cellMerge }:
(shouldInsertAfter: boolean) => { (shouldInsertAfter: boolean) => {
editor.update(() => { editor.update(() => {
for (let i = 0; i < selectionCounts.columns; i++) { for (let i = 0; i < selectionCounts.columns; i++) {
$insertTableColumn__EXPERIMENTAL(shouldInsertAfter) $insertTableColumnAtSelection(shouldInsertAfter)
} }
onClose() onClose()
}) })
@@ -270,7 +270,7 @@ function TableActionMenu({ onClose, tableCellNode: _tableCellNode, cellMerge }:
const deleteTableRowAtSelection = useCallback(() => { const deleteTableRowAtSelection = useCallback(() => {
editor.update(() => { editor.update(() => {
$deleteTableRow__EXPERIMENTAL() $deleteTableRowAtSelection()
onClose() onClose()
}) })
}, [editor, onClose]) }, [editor, onClose])
@@ -287,7 +287,7 @@ function TableActionMenu({ onClose, tableCellNode: _tableCellNode, cellMerge }:
const deleteTableColumnAtSelection = useCallback(() => { const deleteTableColumnAtSelection = useCallback(() => {
editor.update(() => { editor.update(() => {
$deleteTableColumn__EXPERIMENTAL() $deleteTableColumnAtSelection()
onClose() onClose()
}) })
}, [editor, onClose]) }, [editor, onClose])

View File

@@ -63,7 +63,7 @@ import { Toolbar, ToolbarItem, useToolbarStore } from '@ariakit/react'
import { PasswordBlock } from '../Blocks/Password' import { PasswordBlock } from '../Blocks/Password'
import { URL_REGEX } from '@/Constants/Constants' import { URL_REGEX } from '@/Constants/Constants'
import Popover from '@/Components/Popover/Popover' import Popover from '@/Components/Popover/Popover'
import LexicalTableOfContents from '@lexical/react/LexicalTableOfContents' import { TableOfContentsPlugin } from '@lexical/react/LexicalTableOfContentsPlugin'
import Menu from '@/Components/Menu/Menu' import Menu from '@/Components/Menu/Menu'
import MenuItem, { MenuItemProps } from '@/Components/Menu/MenuItem' import MenuItem, { MenuItemProps } from '@/Components/Menu/MenuItem'
import { debounce, remToPx } from '@/Utils' import { debounce, remToPx } from '@/Utils'
@@ -823,7 +823,7 @@ const ToolbarPlugin = () => {
documentElement={popoverDocumentElement} documentElement={popoverDocumentElement}
> >
<div className="mb-1.5 mt-1 px-3 text-sm font-semibold uppercase text-text">Table of Contents</div> <div className="mb-1.5 mt-1 px-3 text-sm font-semibold uppercase text-text">Table of Contents</div>
<LexicalTableOfContents> <TableOfContentsPlugin>
{(tableOfContents) => { {(tableOfContents) => {
if (!tableOfContents.length) { if (!tableOfContents.length) {
return <div className="py-2 text-center">No headings found</div> return <div className="py-2 text-center">No headings found</div>
@@ -871,7 +871,7 @@ const ToolbarPlugin = () => {
</Menu> </Menu>
) )
}} }}
</LexicalTableOfContents> </TableOfContentsPlugin>
</Popover> </Popover>
<Popover <Popover
title="Text formatting options" title="Text formatting options"

385
yarn.lock
View File

@@ -4722,290 +4722,263 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/clipboard@npm:0.23.1": "@lexical/clipboard@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/clipboard@npm:0.23.1" resolution: "@lexical/clipboard@npm:0.30.0"
dependencies: dependencies:
"@lexical/html": 0.23.1 "@lexical/html": 0.30.0
"@lexical/list": 0.23.1 "@lexical/list": 0.30.0
"@lexical/selection": 0.23.1 "@lexical/selection": 0.30.0
"@lexical/utils": 0.23.1 "@lexical/utils": 0.30.0
lexical: 0.23.1 lexical: 0.30.0
checksum: 625e5ab24a552edf6675a1539841ce7c003384f51c02e5400555c3fe1ef1cff449cb7571b9be08951c4376cf52c6ff544a635feb7f141a534ced69220ff18cf8 checksum: c309ec4d775530321b673adfc8ca0be3930e2d540991ca42e2de03e80f555116b230d95056516071b354c52708a542ce31c4412a4fc75ca3406bf96c57febb35
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/clipboard@patch:@lexical/clipboard@npm:0.23.1#.yarn/patches/@lexical-clipboard-npm-0.23.1-961671e399.patch::locator=%40standardnotes%2Fapp-monorepo%40workspace%3A.": "@lexical/code@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/clipboard@patch:@lexical/clipboard@npm%3A0.23.1#.yarn/patches/@lexical-clipboard-npm-0.23.1-961671e399.patch::version=0.23.1&hash=30572a&locator=%40standardnotes%2Fapp-monorepo%40workspace%3A." resolution: "@lexical/code@npm:0.30.0"
dependencies: dependencies:
"@lexical/html": 0.23.1 "@lexical/utils": 0.30.0
"@lexical/list": 0.23.1 lexical: 0.30.0
"@lexical/selection": 0.23.1 prismjs: ^1.30.0
"@lexical/utils": 0.23.1 checksum: 2170e396cee1e304f846ef2b02ffdb8e679ac55481c4c92f44135b2a056f4bcdfc1f7078f88bfe4efa7757a7f87c09b64cc169375a66272f412e9e407c051b3e
lexical: 0.23.1
checksum: 94c4d2b126b27374c2e4c958b69609c554a9accab6bd561dad57c9ddfe2d29bb6f8915edd3a67576968f357e5da98f52da8fa87f4da8c43c658f6d2237cfadbc
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/code@npm:0.23.1": "@lexical/devtools-core@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/code@npm:0.23.1" resolution: "@lexical/devtools-core@npm:0.30.0"
dependencies: dependencies:
"@lexical/utils": 0.23.1 "@lexical/html": 0.30.0
lexical: 0.23.1 "@lexical/link": 0.30.0
prismjs: ^1.27.0 "@lexical/mark": 0.30.0
checksum: 0dfa1717949d2d50b3f1f93e941d7d80f4628cc5d93cbcb4658a4e67ef74b6db05ca8012f2a7af942b52a732dc825ad31a793a7f6c8b866adcf9d41cb7118a8f "@lexical/table": 0.30.0
languageName: node "@lexical/utils": 0.30.0
linkType: hard lexical: 0.30.0
"@lexical/devtools-core@npm:0.23.1":
version: 0.23.1
resolution: "@lexical/devtools-core@npm:0.23.1"
dependencies:
"@lexical/html": 0.23.1
"@lexical/link": 0.23.1
"@lexical/mark": 0.23.1
"@lexical/table": 0.23.1
"@lexical/utils": 0.23.1
lexical: 0.23.1
peerDependencies: peerDependencies:
react: ">=17.x" react: ">=17.x"
react-dom: ">=17.x" react-dom: ">=17.x"
checksum: 17807df72311abfdda8f692cc4bcb1223d1e77b1db3c24e1c460d021b00742ad7bb8bd7aa2346af3570470e21284317087e8645e79eeb8a5819cb9e6a2e63d1d checksum: acddbb84d4aa0599fd632adb248bb8e1575d7bf05f886941a4553bf6b0fa1e3ad551bf302ea66b2d3b4a295bde3a0d46cc3fbbe3ba2307871c216b911f56e310
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/dragon@npm:0.23.1": "@lexical/dragon@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/dragon@npm:0.23.1" resolution: "@lexical/dragon@npm:0.30.0"
dependencies: dependencies:
lexical: 0.23.1 lexical: 0.30.0
checksum: 92a644f3f59f65dc21185ccf7914b293e3d25699624d18da880c64af646eec8aaf972b36f458ed6aaeeb0bf6b2c2ceef7caf143957705c3ed9d9468a10b6e1d7 checksum: 0cb68c43e6626d1713e1479bd8a11e03c957bcc01b0b23614b24512e98969ee338ee0134c2106d41ddb90ff12892f47e63096d626d8e62e1c8a6a58ed49a7e4c
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/hashtag@npm:0.23.1": "@lexical/hashtag@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/hashtag@npm:0.23.1" resolution: "@lexical/hashtag@npm:0.30.0"
dependencies: dependencies:
"@lexical/utils": 0.23.1 "@lexical/utils": 0.30.0
lexical: 0.23.1 lexical: 0.30.0
checksum: e7006a2abffe06ff4743c568baf2c5e8339ee8eba2cdc87d0fe696517842ef83055ca09fa3c66f28078f99d3329c1174c64fbd7269cbc24d321a8fd03c033960 checksum: b28bae6959f0e5dee68431f6dba2ac06452095d32faca0ec51e18770290c9d503597b04339ad3207f5aaa404e541280ed959df37f252a8921e39e83c2767be5a
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/headless@npm:0.23.1": "@lexical/headless@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/headless@npm:0.23.1" resolution: "@lexical/headless@npm:0.30.0"
dependencies: dependencies:
lexical: 0.23.1 lexical: 0.30.0
checksum: e3284935aefef50d66e5733e9e6f4ec1dd0236ac9411c62f6cce53fbdfa3d471dc28260611f252c7a8cd4eac5b53e1d0dd4b45cd822d3bc06ca4652cab2b9e44 checksum: f9c09d4bdb6ea0ff77ed93014e762a6c5eb5c650a793beecf0351b53936dd6d7521425ebc15e55c114ba52c7e9bc790f4447a4572ee17d34874fc0a182e2252c
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/history@npm:0.23.1": "@lexical/history@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/history@npm:0.23.1" resolution: "@lexical/history@npm:0.30.0"
dependencies: dependencies:
"@lexical/utils": 0.23.1 "@lexical/utils": 0.30.0
lexical: 0.23.1 lexical: 0.30.0
checksum: 23b52196a866f0ce4d42794f648ebaa56537b19f0d3217fbb4f731c7edcf18bbf3b682b670bc2d2b6f674b32e8e6e91f4e60f9d3f1e73587494ae1df5ad550b5 checksum: 6491d8d95386379d5b87acc72fd17e8335f2fc4ee942fa04191e0cf4b9c74c7a6297e5a0662ba2d1630cb5a7715e19a5c23443d762487287318ab936dd7eedd5
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/html@npm:0.23.1": "@lexical/html@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/html@npm:0.23.1" resolution: "@lexical/html@npm:0.30.0"
dependencies: dependencies:
"@lexical/selection": 0.23.1 "@lexical/selection": 0.30.0
"@lexical/utils": 0.23.1 "@lexical/utils": 0.30.0
lexical: 0.23.1 lexical: 0.30.0
checksum: 7041f6af6ac8a08e2a6c2ce433f250e30d8b9095e104753f0b712b8a0c467908e640b2cd074ff73b71fca571fe0ea75433fe6f5c081cbfa38d3515945f33e818 checksum: c7b4da1898fbc8b97e8293a200230138b6f5b5c605fc6a9812518fd93813eb30479ac3553e264f7dea268ebe7dd7a80e60ea5da9200170ed875f7ea14f8b26f0
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/link@npm:0.23.1": "@lexical/link@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/link@npm:0.23.1" resolution: "@lexical/link@npm:0.30.0"
dependencies: dependencies:
"@lexical/utils": 0.23.1 "@lexical/utils": 0.30.0
lexical: 0.23.1 lexical: 0.30.0
checksum: 80076c11de17d40748f1e085cb8d33b1f0a6592a3a0bf10bfd3292d26d95cb06f9959ae013fc74ff273d5ea4b45ffa75b372dd43b368186bc4e2d90e5320b18f checksum: 80f4053ca96f2e74f7e4dcd9cff1bb0cd802015452c1d2db0b7ce4abe6829b90ecfd14847691e2f5dbbdd1be6d50612d242714e472879a439555227e5328065e
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/list@npm:0.23.1": "@lexical/list@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/list@npm:0.23.1" resolution: "@lexical/list@npm:0.30.0"
dependencies: dependencies:
"@lexical/utils": 0.23.1 "@lexical/selection": 0.30.0
lexical: 0.23.1 "@lexical/utils": 0.30.0
checksum: b6e802f1ed241c90e434829dadc947f613cc6c701ddf87f241f77fd3553eaec8ef2ef5550ba7f1be892b9b962aa7b77d3d6b1953005dac5a01afb1843d6564d6 lexical: 0.30.0
checksum: 2b7d9f56255f20557c4852a69c1cb34ea25a14b250ed61d91c4d9752f20cb471be5d0562df74eb6838f116177adceca4a94f753c3f941daa07a908971524ba0a
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/mark@npm:0.23.1": "@lexical/mark@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/mark@npm:0.23.1" resolution: "@lexical/mark@npm:0.30.0"
dependencies: dependencies:
"@lexical/utils": 0.23.1 "@lexical/utils": 0.30.0
lexical: 0.23.1 lexical: 0.30.0
checksum: 06291881510439cddb235680d27ffaa2b94dd8d75c76743d2a208fa9eac6dfdfa6fcc135a40e834d05be8b87dca611c8b0ad7a22c9e5bb547af701ea92660a69 checksum: d576067928267788eae1194c9335ecc63eac005909f6a2580d744e924f862e59ba9e0458bd33d654dd8157db053181711a851c140511447f2c36677aa6bd37ce
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/markdown@npm:0.23.1": "@lexical/markdown@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/markdown@npm:0.23.1" resolution: "@lexical/markdown@npm:0.30.0"
dependencies: dependencies:
"@lexical/code": 0.23.1 "@lexical/code": 0.30.0
"@lexical/link": 0.23.1 "@lexical/link": 0.30.0
"@lexical/list": 0.23.1 "@lexical/list": 0.30.0
"@lexical/rich-text": 0.23.1 "@lexical/rich-text": 0.30.0
"@lexical/text": 0.23.1 "@lexical/text": 0.30.0
"@lexical/utils": 0.23.1 "@lexical/utils": 0.30.0
lexical: 0.23.1 lexical: 0.30.0
checksum: 097e93c5109c0c71b8eedb151a85e295f4e8f555f7395f3a42a1587b553872bb2972ce5246a0c3782c2d98981d332f484c3b610247a9c2da53c790baa2e18bba checksum: 03508b722be2534164aefd8863ac3cc543540f5e6471bc0556331346c1b13f117720b0194c79c0f22f90ae981b3e7884aa975e4b7e3c1fe3b46725daa318676c
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/offset@npm:0.23.1": "@lexical/offset@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/offset@npm:0.23.1" resolution: "@lexical/offset@npm:0.30.0"
dependencies: dependencies:
lexical: 0.23.1 lexical: 0.30.0
checksum: e4692cd251802228c926cdfd790c95736127ba892c4eef613649d73de28f4c06ad8426360f2e5218ed9f9b7467aeff52038fc514359341a311900c28f9e9d718 checksum: 83d550a4bb46e0ce19bb10b040d055f128f7069b3611ed0a2f9b839b03990252e1d5fd842754e33a59b229571565dcf00d5b03eb570c3b73ad3a0bfde01c46ff
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/overflow@npm:0.23.1": "@lexical/overflow@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/overflow@npm:0.23.1" resolution: "@lexical/overflow@npm:0.30.0"
dependencies: dependencies:
lexical: 0.23.1 lexical: 0.30.0
checksum: 117a58efa7647979ba6dc83eeeb88534c6c38cba51dd6667b6a4d5d6840271e9bf4895f2d0dcbc5ec0cc2c579dc175134fbd1386c9a8d335fb45ca80e8ac8a65 checksum: 5e82701a2928a87c2c2bcf06afb0da1f505098552811ba3b5febfa741bb137e38ea541c376b673dadb8e6b9e91c8105157fa91ec1cb07d831b2b098f46641ba8
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/plain-text@npm:0.23.1": "@lexical/plain-text@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/plain-text@npm:0.23.1" resolution: "@lexical/plain-text@npm:0.30.0"
dependencies: dependencies:
"@lexical/clipboard": 0.23.1 "@lexical/clipboard": 0.30.0
"@lexical/selection": 0.23.1 "@lexical/selection": 0.30.0
"@lexical/utils": 0.23.1 "@lexical/utils": 0.30.0
lexical: 0.23.1 lexical: 0.30.0
checksum: 5405332b1c559223e8941915ac48cc2a630648848d0135340d7e798858f2a59326eaa413612b5d39bbb6471aa6c0f94e42dffd20f98c71ea1c3a4d6ab38f9bb0 checksum: 201d02428929934259357a52536d6397ede43cff7c6d5502246a5a4277f51c9862b437ed153ddc299c43b3819470a185e33032dabab6e56105e6205be645c15c
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/react@npm:0.23.1": "@lexical/react@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/react@npm:0.23.1" resolution: "@lexical/react@npm:0.30.0"
dependencies: dependencies:
"@lexical/clipboard": 0.23.1 "@lexical/devtools-core": 0.30.0
"@lexical/code": 0.23.1 "@lexical/dragon": 0.30.0
"@lexical/devtools-core": 0.23.1 "@lexical/hashtag": 0.30.0
"@lexical/dragon": 0.23.1 "@lexical/history": 0.30.0
"@lexical/hashtag": 0.23.1 "@lexical/link": 0.30.0
"@lexical/history": 0.23.1 "@lexical/list": 0.30.0
"@lexical/link": 0.23.1 "@lexical/mark": 0.30.0
"@lexical/list": 0.23.1 "@lexical/markdown": 0.30.0
"@lexical/mark": 0.23.1 "@lexical/overflow": 0.30.0
"@lexical/markdown": 0.23.1 "@lexical/plain-text": 0.30.0
"@lexical/overflow": 0.23.1 "@lexical/rich-text": 0.30.0
"@lexical/plain-text": 0.23.1 "@lexical/table": 0.30.0
"@lexical/rich-text": 0.23.1 "@lexical/text": 0.30.0
"@lexical/selection": 0.23.1 "@lexical/utils": 0.30.0
"@lexical/table": 0.23.1 "@lexical/yjs": 0.30.0
"@lexical/text": 0.23.1 lexical: 0.30.0
"@lexical/utils": 0.23.1
"@lexical/yjs": 0.23.1
lexical: 0.23.1
react-error-boundary: ^3.1.4 react-error-boundary: ^3.1.4
peerDependencies: peerDependencies:
react: ">=17.x" react: ">=17.x"
react-dom: ">=17.x" react-dom: ">=17.x"
checksum: dd462ea7e1827ecb8f0ff18ae6f1e66c16f7b9e69011c004b713fb139e8937247c5b293a059bd59ca8dd51881ab0558be78d937ddd2441da03b1bdc5f9e9b355 checksum: 7dc461334d59a871861470da1dc8eb101d1766270e1cf08957b9979d0cbeffa3e7f40c01bfac364a752ce2646c712b4ae33613a78f3b6a3113993a8f8db14d0e
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/rich-text@npm:0.23.1": "@lexical/rich-text@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/rich-text@npm:0.23.1" resolution: "@lexical/rich-text@npm:0.30.0"
dependencies: dependencies:
"@lexical/clipboard": 0.23.1 "@lexical/clipboard": 0.30.0
"@lexical/selection": 0.23.1 "@lexical/selection": 0.30.0
"@lexical/utils": 0.23.1 "@lexical/utils": 0.30.0
lexical: 0.23.1 lexical: 0.30.0
checksum: 54a3a524b54d2cfc8b7373d8768ac79de570cbca0940986ead2f2dde2fa3ceaf33122809710786a9dfc906cd4d222e6200e2c271ec7c8828ef6a2f48b6d51e28 checksum: b97d25b4c8bf8fff567a0cd727e98dcadc8fcba3b1c5c8c6c497f597a12157a12fbcad0751e127898069430e0b55b3995c192ce6795f3c47b451989be160ef1e
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/rich-text@patch:@lexical/rich-text@npm:0.23.1#.yarn/patches/@lexical-rich-text-npm-0.23.1-a9f13154ae.patch::locator=%40standardnotes%2Fapp-monorepo%40workspace%3A.": "@lexical/selection@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/rich-text@patch:@lexical/rich-text@npm%3A0.23.1#.yarn/patches/@lexical-rich-text-npm-0.23.1-a9f13154ae.patch::version=0.23.1&hash=9d0a4e&locator=%40standardnotes%2Fapp-monorepo%40workspace%3A." resolution: "@lexical/selection@npm:0.30.0"
dependencies: dependencies:
"@lexical/clipboard": 0.23.1 lexical: 0.30.0
"@lexical/selection": 0.23.1 checksum: df1ace2b289257654824f881771fd9f53ebd82ed6f7dd44c9d368766e1e9383470ed6e7b0a3fd245527340e7ec08bddf0a8e7ae9635b81670a82e47ba99a3561
"@lexical/utils": 0.23.1
lexical: 0.23.1
checksum: 8d452ef63a3fedc193f67d0fe57697ebca8815183e07ae6b7246064d11cb7efdc4051925a58d4b15b8cf7c0dee875ad58db11240538378ab50901df0b2b3ed64
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/selection@npm:0.23.1": "@lexical/table@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/selection@npm:0.23.1" resolution: "@lexical/table@npm:0.30.0"
dependencies: dependencies:
lexical: 0.23.1 "@lexical/clipboard": 0.30.0
checksum: d5218e5eb35754b3a63472c25630c0399e561c5cbbd17b1387c318083dfee519b76ae9554d44c31d1a483ed3a427c4023f2ceb32a0d99a5f4521742cde71158a "@lexical/utils": 0.30.0
lexical: 0.30.0
checksum: 10d2dc18350e01e664db9903b842371051d0bc0a8ad76d25d5028f1051e3baff3c0e20a4c73db2b22b1eb95e0cab2b81755882d2db18a5e71245f61b9e927381
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/table@npm:0.23.1": "@lexical/text@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/table@npm:0.23.1" resolution: "@lexical/text@npm:0.30.0"
dependencies: dependencies:
"@lexical/clipboard": 0.23.1 lexical: 0.30.0
"@lexical/utils": 0.23.1 checksum: 316aa43e7e44de6de285168a1093e5067079a5123ae53c13a933cdcd5be595364b9dcedd4a23700fc64b948186497e33dab57ce997dc8a6237a736e0b5b40de2
lexical: 0.23.1
checksum: cab32ce7c1ddf033dc30f89e20d3336ade747b4026bc47088c5ec762f162966f7ccb1ea01603c00c6552516a4b78d84ba17f346814113198bd2468bd3acd93f9
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/text@npm:0.23.1": "@lexical/utils@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/text@npm:0.23.1" resolution: "@lexical/utils@npm:0.30.0"
dependencies: dependencies:
lexical: 0.23.1 "@lexical/list": 0.30.0
checksum: 55de1fe8c999f7dd8e3e29eb6dff78483d2c5a41e8e05c63e484ffcfeac21464d8c212eb4735e72354fd44038e9ba0fa228da0699fd1c8b1c18007bd54f3a9dd "@lexical/selection": 0.30.0
"@lexical/table": 0.30.0
lexical: 0.30.0
checksum: 5bec6846b556b46b0716decf1d4f238541e87597ddbdef25ab0062309b7a3c91752c7faeff1f1bf5383550495244dc900687f601e089b4e481fef0a3974fb5cd
languageName: node languageName: node
linkType: hard linkType: hard
"@lexical/utils@npm:0.23.1": "@lexical/yjs@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "@lexical/utils@npm:0.23.1" resolution: "@lexical/yjs@npm:0.30.0"
dependencies: dependencies:
"@lexical/list": 0.23.1 "@lexical/offset": 0.30.0
"@lexical/selection": 0.23.1 "@lexical/selection": 0.30.0
"@lexical/table": 0.23.1 lexical: 0.30.0
lexical: 0.23.1
checksum: fce12e3de78ba6f7d54692cc962d196206f396fc32ded2258094b625c91213b68c97062488bb02711dac6394a7f8e1be1a2cf025102a058a661f866ba18d916d
languageName: node
linkType: hard
"@lexical/yjs@npm:0.23.1":
version: 0.23.1
resolution: "@lexical/yjs@npm:0.23.1"
dependencies:
"@lexical/offset": 0.23.1
"@lexical/selection": 0.23.1
lexical: 0.23.1
peerDependencies: peerDependencies:
yjs: ">=13.5.22" yjs: ">=13.5.22"
checksum: bb06b140b74fc8c381be849138b48271b6286fca06fe481b926e6662d57e2499af67639295f46e42fbbf6240a59145d725789a58f1fcf29ef2396bc6232eaf32 checksum: 61530582bd669096f8bf15b97156f1fc3d4de473df06e12222738893c61752b46f6661f6c2d58b0518f4916c2180066aacee49d9ec7f57a087c2da99b36f3b1a
languageName: node languageName: node
linkType: hard linkType: hard
@@ -8793,13 +8766,13 @@ __metadata:
"@babel/plugin-transform-react-jsx": ^7.19.0 "@babel/plugin-transform-react-jsx": ^7.19.0
"@babel/preset-env": "*" "@babel/preset-env": "*"
"@babel/preset-typescript": ^7.21.5 "@babel/preset-typescript": ^7.21.5
"@lexical/clipboard": 0.23.1 "@lexical/clipboard": 0.30.0
"@lexical/headless": 0.23.1 "@lexical/headless": 0.30.0
"@lexical/link": 0.23.1 "@lexical/link": 0.30.0
"@lexical/list": 0.23.1 "@lexical/list": 0.30.0
"@lexical/react": 0.23.1 "@lexical/react": 0.30.0
"@lexical/rich-text": 0.23.1 "@lexical/rich-text": 0.30.0
"@lexical/utils": 0.23.1 "@lexical/utils": 0.30.0
"@pmmmwh/react-refresh-webpack-plugin": ^0.5.10 "@pmmmwh/react-refresh-webpack-plugin": ^0.5.10
"@radix-ui/react-slot": ^1.0.1 "@radix-ui/react-slot": ^1.0.1
"@react-pdf/renderer": ^3.3.2 "@react-pdf/renderer": ^3.3.2
@@ -8851,7 +8824,7 @@ __metadata:
identity-obj-proxy: ^3.0.0 identity-obj-proxy: ^3.0.0
jest: ^29.3.1 jest: ^29.3.1
jest-environment-jsdom: ^29.3.1 jest-environment-jsdom: ^29.3.1
lexical: 0.23.1 lexical: 0.30.0
lint-staged: ">=13" lint-staged: ">=13"
mini-css-extract-plugin: ^2.7.2 mini-css-extract-plugin: ^2.7.2
minimatch: ^5.1.1 minimatch: ^5.1.1
@@ -20057,10 +20030,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"lexical@npm:0.23.1": "lexical@npm:0.30.0":
version: 0.23.1 version: 0.30.0
resolution: "lexical@npm:0.23.1" resolution: "lexical@npm:0.30.0"
checksum: f842a5fc435c5e26bcaf3a1403822896f8d2eedd4783d179b7de94979a9d28a2b1ba43c0f7ff729db2e80dfa526858f08d0c84fd41a3f57f06adfe864d18e1c1 checksum: f29359090bbe5dcd7ca9f8b14d64644dd4f8075a71787f79ae1741995eca2b1934402d4d35101511f43167b979cb7f2dca92997011f7a92818c508208c5bceb3
languageName: node languageName: node
linkType: hard linkType: hard
@@ -23742,10 +23715,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"prismjs@npm:^1.27.0": "prismjs@npm:^1.30.0":
version: 1.29.0 version: 1.30.0
resolution: "prismjs@npm:1.29.0" resolution: "prismjs@npm:1.30.0"
checksum: 007a8869d4456ff8049dc59404e32d5666a07d99c3b0e30a18bd3b7676dfa07d1daae9d0f407f20983865fd8da56de91d09cb08e6aa61f5bc420a27c0beeaf93 checksum: a68eddd4c5f1c506badb5434b0b28a7cc2479ed1df91bc4218e6833c7971ef40c50ec481ea49749ac964256acb78d8b66a6bd11554938e8998e46c18b5f9a580
languageName: node languageName: node
linkType: hard linkType: hard