@lexical/rich-text 0.3.11 → 0.4.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.
@@ -29,13 +29,7 @@ const IS_IOS = CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && !w
29
29
  // export const IS_CHROME: boolean = CAN_USE_DOM && /^(?=.*Chrome).*/i.test(navigator.userAgent);
30
30
  // export const canUseTextInputEvent: boolean = CAN_USE_DOM && 'TextEvent' in window && !documentMode;
31
31
 
32
- /**
33
- * Copyright (c) Meta Platforms, Inc. and affiliates.
34
- *
35
- * This source code is licensed under the MIT license found in the
36
- * LICENSE file in the root directory of this source tree.
37
- *
38
- */
32
+ /** @module @lexical/rich-text */
39
33
 
40
34
  // Convoluted logic to make this work with Flow. Order matters.
41
35
  const options = {
@@ -43,6 +37,8 @@ const options = {
43
37
  };
44
38
  const setEditorOptions = options;
45
39
  const updateOptions = options;
40
+ /** @noInheritDoc */
41
+
46
42
  class QuoteNode extends lexical.ElementNode {
47
43
  static getType() {
48
44
  return 'quote';
@@ -114,7 +110,10 @@ function $createQuoteNode() {
114
110
  function $isQuoteNode(node) {
115
111
  return node instanceof QuoteNode;
116
112
  }
113
+
114
+ /** @noInheritDoc */
117
115
  class HeadingNode extends lexical.ElementNode {
116
+ /** @internal */
118
117
  static getType() {
119
118
  return 'heading';
120
119
  }
@@ -346,10 +345,10 @@ function onPasteForRichText(event, editor) {
346
345
  }
347
346
 
348
347
  function onCopyForRichText(event, editor) {
349
- event.preventDefault();
350
348
  const selection = lexical.$getSelection();
351
349
 
352
350
  if (selection !== null) {
351
+ event.preventDefault();
353
352
  const clipboardData = event instanceof KeyboardEvent ? null : event.clipboardData;
354
353
  const htmlString = clipboard.$getHtmlContent(editor);
355
354
  const lexicalString = clipboard.$getLexicalContent(editor);
@@ -572,16 +571,57 @@ function registerRichText(editor, initialEditorState) {
572
571
  }
573
572
  });
574
573
  return true;
574
+ }, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.KEY_ARROW_UP_COMMAND, event => {
575
+ const selection = lexical.$getSelection();
576
+
577
+ if (lexical.$isNodeSelection(selection) && !isTargetWithinDecorator(event.target)) {
578
+ // If selection is on a node, let's try and move selection
579
+ // back to being a range selection.
580
+ const nodes = selection.getNodes();
581
+
582
+ if (nodes.length > 0) {
583
+ nodes[0].selectPrevious();
584
+ return true;
585
+ }
586
+ }
587
+
588
+ return false;
589
+ }, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.KEY_ARROW_DOWN_COMMAND, event => {
590
+ const selection = lexical.$getSelection();
591
+
592
+ if (lexical.$isNodeSelection(selection) && !isTargetWithinDecorator(event.target)) {
593
+ // If selection is on a node, let's try and move selection
594
+ // back to being a range selection.
595
+ const nodes = selection.getNodes();
596
+
597
+ if (nodes.length > 0) {
598
+ nodes[0].selectNext(0, 0);
599
+ return true;
600
+ }
601
+ }
602
+
603
+ return false;
575
604
  }, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.KEY_ARROW_LEFT_COMMAND, event => {
576
605
  const selection$1 = lexical.$getSelection();
577
606
 
607
+ if (lexical.$isNodeSelection(selection$1) && !isTargetWithinDecorator(event.target)) {
608
+ // If selection is on a node, let's try and move selection
609
+ // back to being a range selection.
610
+ const nodes = selection$1.getNodes();
611
+
612
+ if (nodes.length > 0) {
613
+ event.preventDefault();
614
+ nodes[0].selectPrevious();
615
+ return true;
616
+ }
617
+ }
618
+
578
619
  if (!lexical.$isRangeSelection(selection$1)) {
579
620
  return false;
580
621
  }
581
622
 
582
- const isHoldingShift = event.shiftKey;
583
-
584
623
  if (selection.$shouldOverrideDefaultCharacterSelection(selection$1, true)) {
624
+ const isHoldingShift = event.shiftKey;
585
625
  event.preventDefault();
586
626
  selection.$moveCharacter(selection$1, isHoldingShift, true);
587
627
  return true;
@@ -591,6 +631,18 @@ function registerRichText(editor, initialEditorState) {
591
631
  }, lexical.COMMAND_PRIORITY_EDITOR), editor.registerCommand(lexical.KEY_ARROW_RIGHT_COMMAND, event => {
592
632
  const selection$1 = lexical.$getSelection();
593
633
 
634
+ if (lexical.$isNodeSelection(selection$1) && !isTargetWithinDecorator(event.target)) {
635
+ // If selection is on a node, let's try and move selection
636
+ // back to being a range selection.
637
+ const nodes = selection$1.getNodes();
638
+
639
+ if (nodes.length > 0) {
640
+ event.preventDefault();
641
+ nodes[0].selectNext(0, 0);
642
+ return true;
643
+ }
644
+ }
645
+
594
646
  if (!lexical.$isRangeSelection(selection$1)) {
595
647
  return false;
596
648
  }
@@ -619,9 +671,10 @@ function registerRichText(editor, initialEditorState) {
619
671
  const {
620
672
  anchor
621
673
  } = selection;
674
+ const anchorNode = anchor.getNode();
622
675
 
623
- if (selection.isCollapsed() && anchor.offset === 0) {
624
- const element = utils.$getNearestBlockElementAncestorOrThrow(anchor.getNode());
676
+ if (selection.isCollapsed() && anchor.offset === 0 && !lexical.$isRootNode(anchorNode)) {
677
+ const element = utils.$getNearestBlockElementAncestorOrThrow(anchorNode);
625
678
 
626
679
  if (element.getIndent() > 0) {
627
680
  return editor.dispatchCommand(lexical.OUTDENT_CONTENT_COMMAND, undefined);
@@ -6,23 +6,24 @@
6
6
  */
7
7
  'use strict';var b=require("@lexical/clipboard"),h=require("@lexical/selection"),k=require("@lexical/utils"),l=require("lexical");let m="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement,n=m&&"documentMode"in document?document.documentMode:null;m&&/Mac|iPod|iPhone|iPad/.test(navigator.platform);m&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);
8
8
  let p=m&&"InputEvent"in window&&!n?"getTargetRanges"in new window.InputEvent("input"):!1,q=m&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),r=m&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,t={tag:"history-merge"};
9
- class u extends l.ElementNode{static getType(){return"quote"}static clone(a){return new u(a.__key)}constructor(a){super(a)}createDOM(a){let e=document.createElement("blockquote");k.addClassNamesToElement(e,a.theme.quote);return e}updateDOM(){return!1}static importDOM(){return{blockquote:()=>({conversion:w,priority:0})}}static importJSON(a){let e=x();e.setFormat(a.format);e.setIndent(a.indent);e.setDirection(a.direction);return e}exportJSON(){return{...super.exportJSON(),type:"quote"}}insertNewAfter(){let a=
9
+ class u extends l.ElementNode{static getType(){return"quote"}static clone(a){return new u(a.__key)}constructor(a){super(a)}createDOM(a){let e=document.createElement("blockquote");k.addClassNamesToElement(e,a.theme.quote);return e}updateDOM(){return!1}static importDOM(){return{blockquote:()=>({conversion:v,priority:0})}}static importJSON(a){let e=x();e.setFormat(a.format);e.setIndent(a.indent);e.setDirection(a.direction);return e}exportJSON(){return{...super.exportJSON(),type:"quote"}}insertNewAfter(){let a=
10
10
  l.$createParagraphNode(),e=this.getDirection();a.setDirection(e);this.insertAfter(a);return a}collapseAtStart(){let a=l.$createParagraphNode();this.getChildren().forEach(e=>a.append(e));this.replace(a);return!0}}function x(){return new u}
11
11
  class y extends l.ElementNode{static getType(){return"heading"}static clone(a){return new y(a.__tag,a.__key)}constructor(a,e){super(e);this.__tag=a}getTag(){return this.__tag}createDOM(a){let e=this.__tag,f=document.createElement(e);a=a.theme.heading;void 0!==a&&k.addClassNamesToElement(f,a[e]);return f}updateDOM(){return!1}static importDOM(){return{h1:()=>({conversion:z,priority:0}),h2:()=>({conversion:z,priority:0}),h3:()=>({conversion:z,priority:0}),h4:()=>({conversion:z,priority:0}),h5:()=>({conversion:z,
12
12
  priority:0}),h6:()=>({conversion:z,priority:0}),p:a=>{a=a.firstChild;return null!==a&&A(a)?{conversion:()=>({node:null}),priority:3}:null},span:a=>A(a)?{conversion:()=>({node:B("h1")}),priority:3}:null}}static importJSON(a){let e=B(a.tag);e.setFormat(a.format);e.setIndent(a.indent);e.setDirection(a.direction);return e}exportJSON(){return{...super.exportJSON(),tag:this.getTag(),type:"heading",version:1}}insertNewAfter(){let a=l.$createParagraphNode(),e=this.getDirection();a.setDirection(e);this.insertAfter(a);
13
- return a}collapseAtStart(){let a=l.$createParagraphNode();this.getChildren().forEach(e=>a.append(e));this.replace(a);return!0}extractWithChild(){return!0}}function A(a){return"span"===a.nodeName.toLowerCase()?"26pt"===a.style.fontSize:!1}function z(a){a=a.nodeName.toLowerCase();let e=null;if("h1"===a||"h2"===a||"h3"===a||"h4"===a||"h5"===a||"h6"===a)e=B(a);return{node:e}}function w(){return{node:x()}}function B(a){return new y(a)}
13
+ return a}collapseAtStart(){let a=l.$createParagraphNode();this.getChildren().forEach(e=>a.append(e));this.replace(a);return!0}extractWithChild(){return!0}}function A(a){return"span"===a.nodeName.toLowerCase()?"26pt"===a.style.fontSize:!1}function z(a){a=a.nodeName.toLowerCase();let e=null;if("h1"===a||"h2"===a||"h3"===a||"h4"===a||"h5"===a||"h6"===a)e=B(a);return{node:e}}function v(){return{node:x()}}function B(a){return new y(a)}
14
14
  function C(a,e){if(null!==e)if(void 0===e)a.update(()=>{var f=l.$getRoot();if(f.isEmpty()){let c=l.$createParagraphNode();f.append(c);f=document.activeElement;(null!==l.$getSelection()||null!==f&&f===a.getRootElement())&&c.select()}},t);else if(null!==e)switch(typeof e){case "string":let f=a.parseEditorState(e);a.setEditorState(f,t);break;case "object":a.setEditorState(e,t);break;case "function":a.update(()=>{l.$getRoot().isEmpty()&&e(a)},t)}}
15
15
  function D(a,e){a.preventDefault();e.update(()=>{let f=l.$getSelection(),c=a instanceof InputEvent?null:a.clipboardData;null!=c&&(l.$isRangeSelection(f)||l.$isGridSelection(f))&&b.$insertDataTransferForRichText(c,f,e)},{tag:"paste"})}
16
- function E(a,e){a.preventDefault();var f=l.$getSelection();if(null!==f){a=a instanceof KeyboardEvent?null:a.clipboardData;let c=b.$getHtmlContent(e);e=b.$getLexicalContent(e);null!=a?(null!==c&&a.setData("text/html",c),null!==e&&a.setData("application/x-lexical-editor",e),f=f.getTextContent(),a.setData("text/plain",f)):(f=navigator.clipboard,null!=f&&(a=[new ClipboardItem({"text/html":new Blob([c],{type:"text/html"})})],f.write(a)))}}
17
- function F(a,e){E(a,e);a=l.$getSelection();l.$isRangeSelection(a)?a.removeText():l.$isNodeSelection(a)&&a.getNodes().forEach(f=>f.remove())}function G(a,e){var f=l.$getSelection();if(l.$isRangeSelection(f)){var c=new Set;f=f.getNodes();for(let g=0;g<f.length;g++){let v=f[g];var d=v.getKey();c.has(d)||(c.add(d),d=k.$getNearestBlockElementAncestorOrThrow(v),d.canInsertTab()?a(v):d.canIndent()&&e(d))}}}function H(a){a=l.$getNearestNodeFromDOMNode(a);return l.$isDecoratorNode(a)}
16
+ function E(a,e){var f=l.$getSelection();if(null!==f){a.preventDefault();a=a instanceof KeyboardEvent?null:a.clipboardData;let c=b.$getHtmlContent(e);e=b.$getLexicalContent(e);null!=a?(null!==c&&a.setData("text/html",c),null!==e&&a.setData("application/x-lexical-editor",e),f=f.getTextContent(),a.setData("text/plain",f)):(f=navigator.clipboard,null!=f&&(a=[new ClipboardItem({"text/html":new Blob([c],{type:"text/html"})})],f.write(a)))}}
17
+ function F(a,e){E(a,e);a=l.$getSelection();l.$isRangeSelection(a)?a.removeText():l.$isNodeSelection(a)&&a.getNodes().forEach(f=>f.remove())}function G(a,e){var f=l.$getSelection();if(l.$isRangeSelection(f)){var c=new Set;f=f.getNodes();for(let g=0;g<f.length;g++){let w=f[g];var d=w.getKey();c.has(d)||(c.add(d),d=k.$getNearestBlockElementAncestorOrThrow(w),d.canInsertTab()?a(w):d.canIndent()&&e(d))}}}function H(a){a=l.$getNearestNodeFromDOMNode(a);return l.$isDecoratorNode(a)}
18
18
  exports.$createHeadingNode=B;exports.$createQuoteNode=x;exports.$isHeadingNode=function(a){return a instanceof y};exports.$isQuoteNode=function(a){return a instanceof u};exports.HeadingNode=y;exports.QuoteNode=u;
19
19
  exports.registerRichText=function(a,e){let f=k.mergeRegister(a.registerCommand(l.CLICK_COMMAND,()=>{const c=l.$getSelection();return l.$isNodeSelection(c)?(c.clear(),!0):!1},0),a.registerCommand(l.DELETE_CHARACTER_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.deleteCharacter(c);return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.DELETE_WORD_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.deleteWord(c);return!0},l.COMMAND_PRIORITY_EDITOR),
20
20
  a.registerCommand(l.DELETE_LINE_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.deleteLine(c);return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.CONTROLLED_TEXT_INSERTION_COMMAND,c=>{const d=l.$getSelection();if("string"===typeof c)l.$isRangeSelection(d)?d.insertText(c):l.$isGridSelection(d);else{if(!l.$isRangeSelection(d)&&!l.$isGridSelection(d))return!1;const g=c.dataTransfer;null!=g?b.$insertDataTransferForRichText(g,d,a):l.$isRangeSelection(d)&&(c=c.data)&&d.insertText(c)}return!0},
21
21
  l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.REMOVE_TEXT_COMMAND,()=>{const c=l.$getSelection();if(!l.$isRangeSelection(c))return!1;c.removeText();return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.FORMAT_TEXT_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.formatText(c);return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.FORMAT_ELEMENT_COMMAND,c=>{var d=l.$getSelection();if(!l.$isRangeSelection(d)&&!l.$isNodeSelection(d))return!1;d=d.getNodes();for(const g of d)k.$getNearestBlockElementAncestorOrThrow(g).setFormat(c);
22
22
  return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.INSERT_LINE_BREAK_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;d.insertLineBreak(c);return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.INSERT_PARAGRAPH_COMMAND,()=>{const c=l.$getSelection();if(!l.$isRangeSelection(c))return!1;c.insertParagraph();return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.INDENT_CONTENT_COMMAND,()=>{G(()=>{a.dispatchCommand(l.CONTROLLED_TEXT_INSERTION_COMMAND,"\t")},c=>{const d=
23
- c.getIndent();10!==d&&c.setIndent(d+1)});return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.OUTDENT_CONTENT_COMMAND,()=>{G(c=>{l.$isTextNode(c)&&(c=c.getTextContent(),"\t"===c[c.length-1]&&a.dispatchCommand(l.DELETE_CHARACTER_COMMAND,!0))},c=>{const d=c.getIndent();0!==d&&c.setIndent(d-1)});return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_ARROW_LEFT_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;const g=c.shiftKey;return h.$shouldOverrideDefaultCharacterSelection(d,
24
- !0)?(c.preventDefault(),h.$moveCharacter(d,g,!0),!0):!1},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_ARROW_RIGHT_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;const g=c.shiftKey;return h.$shouldOverrideDefaultCharacterSelection(d,!1)?(c.preventDefault(),h.$moveCharacter(d,g,!1),!0):!1},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_BACKSPACE_COMMAND,c=>{if(H(c.target))return!1;const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;c.preventDefault();({anchor:c}=
25
- d);return d.isCollapsed()&&0===c.offset&&0<k.$getNearestBlockElementAncestorOrThrow(c.getNode()).getIndent()?a.dispatchCommand(l.OUTDENT_CONTENT_COMMAND,void 0):a.dispatchCommand(l.DELETE_CHARACTER_COMMAND,!0)},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_DELETE_COMMAND,c=>{if(H(c.target))return!1;const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;c.preventDefault();return a.dispatchCommand(l.DELETE_CHARACTER_COMMAND,!1)},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_ENTER_COMMAND,
26
- c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;if(null!==c){if((r||q)&&p)return!1;c.preventDefault();if(c.shiftKey)return a.dispatchCommand(l.INSERT_LINE_BREAK_COMMAND,!1)}return a.dispatchCommand(l.INSERT_PARAGRAPH_COMMAND,void 0)},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_TAB_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;c.preventDefault();return a.dispatchCommand(c.shiftKey?l.OUTDENT_CONTENT_COMMAND:l.INDENT_CONTENT_COMMAND,void 0)},l.COMMAND_PRIORITY_EDITOR),
27
- a.registerCommand(l.KEY_ESCAPE_COMMAND,()=>{const c=l.$getSelection();if(!l.$isRangeSelection(c))return!1;a.blur();return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.DROP_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;c.preventDefault();return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.DRAGSTART_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;c.preventDefault();return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.COPY_COMMAND,c=>
28
- {E(c,a);return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.CUT_COMMAND,c=>{F(c,a);return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.PASTE_COMMAND,c=>{const d=l.$getSelection();return l.$isRangeSelection(d)||l.$isGridSelection(d)?(D(c,a),!0):!1},l.COMMAND_PRIORITY_EDITOR));C(a,e);return f}
23
+ c.getIndent();10!==d&&c.setIndent(d+1)});return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.OUTDENT_CONTENT_COMMAND,()=>{G(c=>{l.$isTextNode(c)&&(c=c.getTextContent(),"\t"===c[c.length-1]&&a.dispatchCommand(l.DELETE_CHARACTER_COMMAND,!0))},c=>{const d=c.getIndent();0!==d&&c.setIndent(d-1)});return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_ARROW_UP_COMMAND,c=>{const d=l.$getSelection();return l.$isNodeSelection(d)&&!H(c.target)&&(c=d.getNodes(),0<c.length)?(c[0].selectPrevious(),
24
+ !0):!1},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_ARROW_DOWN_COMMAND,c=>{const d=l.$getSelection();return l.$isNodeSelection(d)&&!H(c.target)&&(c=d.getNodes(),0<c.length)?(c[0].selectNext(0,0),!0):!1},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_ARROW_LEFT_COMMAND,c=>{const d=l.$getSelection();if(l.$isNodeSelection(d)&&!H(c.target)){var g=d.getNodes();if(0<g.length)return c.preventDefault(),g[0].selectPrevious(),!0}return l.$isRangeSelection(d)?h.$shouldOverrideDefaultCharacterSelection(d,
25
+ !0)?(g=c.shiftKey,c.preventDefault(),h.$moveCharacter(d,g,!0),!0):!1:!1},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_ARROW_RIGHT_COMMAND,c=>{const d=l.$getSelection();if(l.$isNodeSelection(d)&&!H(c.target)){var g=d.getNodes();if(0<g.length)return c.preventDefault(),g[0].selectNext(0,0),!0}if(!l.$isRangeSelection(d))return!1;g=c.shiftKey;return h.$shouldOverrideDefaultCharacterSelection(d,!1)?(c.preventDefault(),h.$moveCharacter(d,g,!1),!0):!1},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_BACKSPACE_COMMAND,
26
+ c=>{if(H(c.target))return!1;const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;c.preventDefault();({anchor:c}=d);const g=c.getNode();return d.isCollapsed()&&0===c.offset&&!l.$isRootNode(g)&&0<k.$getNearestBlockElementAncestorOrThrow(g).getIndent()?a.dispatchCommand(l.OUTDENT_CONTENT_COMMAND,void 0):a.dispatchCommand(l.DELETE_CHARACTER_COMMAND,!0)},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_DELETE_COMMAND,c=>{if(H(c.target))return!1;const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;
27
+ c.preventDefault();return a.dispatchCommand(l.DELETE_CHARACTER_COMMAND,!1)},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_ENTER_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;if(null!==c){if((r||q)&&p)return!1;c.preventDefault();if(c.shiftKey)return a.dispatchCommand(l.INSERT_LINE_BREAK_COMMAND,!1)}return a.dispatchCommand(l.INSERT_PARAGRAPH_COMMAND,void 0)},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_TAB_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;
28
+ c.preventDefault();return a.dispatchCommand(c.shiftKey?l.OUTDENT_CONTENT_COMMAND:l.INDENT_CONTENT_COMMAND,void 0)},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.KEY_ESCAPE_COMMAND,()=>{const c=l.$getSelection();if(!l.$isRangeSelection(c))return!1;a.blur();return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.DROP_COMMAND,c=>{const d=l.$getSelection();if(!l.$isRangeSelection(d))return!1;c.preventDefault();return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.DRAGSTART_COMMAND,c=>{const d=l.$getSelection();
29
+ if(!l.$isRangeSelection(d))return!1;c.preventDefault();return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.COPY_COMMAND,c=>{E(c,a);return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.CUT_COMMAND,c=>{F(c,a);return!0},l.COMMAND_PRIORITY_EDITOR),a.registerCommand(l.PASTE_COMMAND,c=>{const d=l.$getSelection();return l.$isRangeSelection(d)||l.$isGridSelection(d)?(D(c,a),!0):!1},l.COMMAND_PRIORITY_EDITOR));C(a,e);return f}
package/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ /** @module @lexical/rich-text */
1
2
  /**
2
3
  * Copyright (c) Meta Platforms, Inc. and affiliates.
3
4
  *
@@ -17,6 +18,7 @@ export declare type SerializedQuoteNode = Spread<{
17
18
  type: 'quote';
18
19
  version: 1;
19
20
  }, SerializedElementNode>;
21
+ /** @noInheritDoc */
20
22
  export declare class QuoteNode extends ElementNode {
21
23
  static getType(): string;
22
24
  static clone(node: QuoteNode): QuoteNode;
@@ -32,7 +34,9 @@ export declare class QuoteNode extends ElementNode {
32
34
  export declare function $createQuoteNode(): QuoteNode;
33
35
  export declare function $isQuoteNode(node: LexicalNode | null | undefined): node is QuoteNode;
34
36
  export declare type HeadingTagType = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
37
+ /** @noInheritDoc */
35
38
  export declare class HeadingNode extends ElementNode {
39
+ /** @internal */
36
40
  __tag: HeadingTagType;
37
41
  static getType(): string;
38
42
  static clone(node: HeadingNode): HeadingNode;
package/package.json CHANGED
@@ -7,13 +7,13 @@
7
7
  "rich-text"
8
8
  ],
9
9
  "license": "MIT",
10
- "version": "0.3.11",
10
+ "version": "0.4.0",
11
11
  "main": "LexicalRichText.js",
12
12
  "peerDependencies": {
13
- "lexical": "0.3.11",
14
- "@lexical/selection": "0.3.11",
15
- "@lexical/clipboard": "0.3.11",
16
- "@lexical/utils": "0.3.11"
13
+ "lexical": "0.4.0",
14
+ "@lexical/selection": "0.4.0",
15
+ "@lexical/clipboard": "0.4.0",
16
+ "@lexical/utils": "0.4.0"
17
17
  },
18
18
  "repository": {
19
19
  "type": "git",