@lexical/plain-text 0.35.1-nightly.20250924.0 → 0.36.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.
@@ -9,6 +9,7 @@
9
9
  'use strict';
10
10
 
11
11
  var clipboard = require('@lexical/clipboard');
12
+ var dragon = require('@lexical/dragon');
12
13
  var selection = require('@lexical/selection');
13
14
  var utils = require('@lexical/utils');
14
15
  var lexical = require('lexical');
@@ -32,6 +33,7 @@ const CAN_USE_DOM = typeof window !== 'undefined' && typeof window.document !==
32
33
  */
33
34
 
34
35
  const documentMode = CAN_USE_DOM && 'documentMode' in document ? document.documentMode : null;
36
+ const IS_APPLE = CAN_USE_DOM && /Mac|iPod|iPhone|iPad/.test(navigator.platform);
35
37
  const CAN_USE_BEFORE_INPUT = CAN_USE_DOM && 'InputEvent' in window && !documentMode ? 'getTargetRanges' in new window.InputEvent('input') : false;
36
38
  const IS_SAFARI = CAN_USE_DOM && /Version\/[\d.]+.*Safari/.test(navigator.userAgent);
37
39
  const IS_IOS = CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
@@ -39,7 +41,7 @@ const IS_IOS = CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && !w
39
41
  // Keep these in case we need to use them in the future.
40
42
  // export const IS_WINDOWS: boolean = CAN_USE_DOM && /Win/.test(navigator.platform);
41
43
  const IS_CHROME = CAN_USE_DOM && /^(?=.*Chrome).*/i.test(navigator.userAgent);
42
- const IS_APPLE_WEBKIT = CAN_USE_DOM && /AppleWebKit\/[\d.]+/.test(navigator.userAgent) && !IS_CHROME;
44
+ const IS_APPLE_WEBKIT = CAN_USE_DOM && /AppleWebKit\/[\d.]+/.test(navigator.userAgent) && IS_APPLE && !IS_CHROME;
43
45
 
44
46
  /**
45
47
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -259,4 +261,15 @@ function registerPlainText(editor) {
259
261
  return removeListener;
260
262
  }
261
263
 
264
+ /**
265
+ * An extension to register \@lexical/plain-text behavior
266
+ */
267
+ const PlainTextExtension = lexical.defineExtension({
268
+ conflictsWith: ['@lexical/rich-text'],
269
+ dependencies: [dragon.DragonExtension],
270
+ name: '@lexical/plain-text',
271
+ register: registerPlainText
272
+ });
273
+
274
+ exports.PlainTextExtension = PlainTextExtension;
262
275
  exports.registerPlainText = registerPlainText;
@@ -7,9 +7,10 @@
7
7
  */
8
8
 
9
9
  import { $insertDataTransferForPlainText, $getHtmlContent } from '@lexical/clipboard';
10
+ import { DragonExtension } from '@lexical/dragon';
10
11
  import { $shouldOverrideDefaultCharacterSelection, $moveCharacter } from '@lexical/selection';
11
12
  import { mergeRegister, objectKlassEquals } from '@lexical/utils';
12
- import { DELETE_CHARACTER_COMMAND, $getSelection, $isRangeSelection, COMMAND_PRIORITY_EDITOR, DELETE_WORD_COMMAND, DELETE_LINE_COMMAND, CONTROLLED_TEXT_INSERTION_COMMAND, REMOVE_TEXT_COMMAND, INSERT_LINE_BREAK_COMMAND, INSERT_PARAGRAPH_COMMAND, KEY_ARROW_LEFT_COMMAND, KEY_ARROW_RIGHT_COMMAND, KEY_BACKSPACE_COMMAND, KEY_DELETE_COMMAND, KEY_ENTER_COMMAND, SELECT_ALL_COMMAND, $selectAll, COPY_COMMAND, CUT_COMMAND, PASTE_COMMAND, DROP_COMMAND, DRAGSTART_COMMAND, PASTE_TAG } from 'lexical';
13
+ import { defineExtension, DELETE_CHARACTER_COMMAND, $getSelection, $isRangeSelection, COMMAND_PRIORITY_EDITOR, DELETE_WORD_COMMAND, DELETE_LINE_COMMAND, CONTROLLED_TEXT_INSERTION_COMMAND, REMOVE_TEXT_COMMAND, INSERT_LINE_BREAK_COMMAND, INSERT_PARAGRAPH_COMMAND, KEY_ARROW_LEFT_COMMAND, KEY_ARROW_RIGHT_COMMAND, KEY_BACKSPACE_COMMAND, KEY_DELETE_COMMAND, KEY_ENTER_COMMAND, SELECT_ALL_COMMAND, $selectAll, COPY_COMMAND, CUT_COMMAND, PASTE_COMMAND, DROP_COMMAND, DRAGSTART_COMMAND, PASTE_TAG } from 'lexical';
13
14
 
14
15
  /**
15
16
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -30,6 +31,7 @@ const CAN_USE_DOM = typeof window !== 'undefined' && typeof window.document !==
30
31
  */
31
32
 
32
33
  const documentMode = CAN_USE_DOM && 'documentMode' in document ? document.documentMode : null;
34
+ const IS_APPLE = CAN_USE_DOM && /Mac|iPod|iPhone|iPad/.test(navigator.platform);
33
35
  const CAN_USE_BEFORE_INPUT = CAN_USE_DOM && 'InputEvent' in window && !documentMode ? 'getTargetRanges' in new window.InputEvent('input') : false;
34
36
  const IS_SAFARI = CAN_USE_DOM && /Version\/[\d.]+.*Safari/.test(navigator.userAgent);
35
37
  const IS_IOS = CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
@@ -37,7 +39,7 @@ const IS_IOS = CAN_USE_DOM && /iPad|iPhone|iPod/.test(navigator.userAgent) && !w
37
39
  // Keep these in case we need to use them in the future.
38
40
  // export const IS_WINDOWS: boolean = CAN_USE_DOM && /Win/.test(navigator.platform);
39
41
  const IS_CHROME = CAN_USE_DOM && /^(?=.*Chrome).*/i.test(navigator.userAgent);
40
- const IS_APPLE_WEBKIT = CAN_USE_DOM && /AppleWebKit\/[\d.]+/.test(navigator.userAgent) && !IS_CHROME;
42
+ const IS_APPLE_WEBKIT = CAN_USE_DOM && /AppleWebKit\/[\d.]+/.test(navigator.userAgent) && IS_APPLE && !IS_CHROME;
41
43
 
42
44
  /**
43
45
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -257,4 +259,14 @@ function registerPlainText(editor) {
257
259
  return removeListener;
258
260
  }
259
261
 
260
- export { registerPlainText };
262
+ /**
263
+ * An extension to register \@lexical/plain-text behavior
264
+ */
265
+ const PlainTextExtension = defineExtension({
266
+ conflictsWith: ['@lexical/rich-text'],
267
+ dependencies: [DragonExtension],
268
+ name: '@lexical/plain-text',
269
+ register: registerPlainText
270
+ });
271
+
272
+ export { PlainTextExtension, registerPlainText };
@@ -6,6 +6,8 @@
6
6
  *
7
7
  * @flow strict
8
8
  */
9
- import type {EditorState, LexicalEditor} from 'lexical';
9
+ import type {LexicalExtension, ExtensionConfigBase, EditorState, LexicalEditor} from 'lexical';
10
10
 
11
11
  declare export function registerPlainText(editor: LexicalEditor): () => void;
12
+
13
+ declare export var PlainTextExtension: LexicalExtension<ExtensionConfigBase, "@lexical/plain-text", void, void>;
@@ -9,4 +9,5 @@
9
9
  import * as modDev from './LexicalPlainText.dev.mjs';
10
10
  import * as modProd from './LexicalPlainText.prod.mjs';
11
11
  const mod = process.env.NODE_ENV !== 'production' ? modDev : modProd;
12
+ export const PlainTextExtension = mod.PlainTextExtension;
12
13
  export const registerPlainText = mod.registerPlainText;
@@ -7,4 +7,5 @@
7
7
  */
8
8
 
9
9
  const mod = await (process.env.NODE_ENV !== 'production' ? import('./LexicalPlainText.dev.mjs') : import('./LexicalPlainText.prod.mjs'));
10
+ export const PlainTextExtension = mod.PlainTextExtension;
10
11
  export const registerPlainText = mod.registerPlainText;
@@ -6,4 +6,4 @@
6
6
  *
7
7
  */
8
8
 
9
- "use strict";var e=require("@lexical/clipboard"),t=require("@lexical/selection"),n=require("@lexical/utils"),r=require("lexical");const i="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,o=i&&"documentMode"in document?document.documentMode:null,a=!(!i||!("InputEvent"in window)||o)&&"getTargetRanges"in new window.InputEvent("input"),l=i&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),s=i&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,R=i&&/^(?=.*Chrome).*/i.test(navigator.userAgent),c=i&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!R;function O(t,i){i.update((()=>{if(null!==t){const o=n.objectKlassEquals(t,KeyboardEvent)?null:t.clipboardData,a=r.$getSelection();if(null!==a&&null!=o){t.preventDefault();const n=e.$getHtmlContent(i);null!==n&&o.setData("text/html",n),o.setData("text/plain",a.getTextContent())}}}))}exports.registerPlainText=function(i){const o=n.mergeRegister(i.registerCommand(r.DELETE_CHARACTER_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(t.deleteCharacter(e),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.DELETE_WORD_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(t.deleteWord(e),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.DELETE_LINE_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(t.deleteLine(e),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.CONTROLLED_TEXT_INSERTION_COMMAND,(t=>{const n=r.$getSelection();if(!r.$isRangeSelection(n))return!1;if("string"==typeof t)n.insertText(t);else{const r=t.dataTransfer;if(null!=r)e.$insertDataTransferForPlainText(r,n);else{const e=t.data;e&&n.insertText(e)}}return!0}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.REMOVE_TEXT_COMMAND,(()=>{const e=r.$getSelection();return!!r.$isRangeSelection(e)&&(e.removeText(),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.INSERT_LINE_BREAK_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(t.insertLineBreak(e),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.INSERT_PARAGRAPH_COMMAND,(()=>{const e=r.$getSelection();return!!r.$isRangeSelection(e)&&(e.insertLineBreak(),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_ARROW_LEFT_COMMAND,(e=>{const n=r.$getSelection();if(!r.$isRangeSelection(n))return!1;const i=e,o=i.shiftKey;return!!t.$shouldOverrideDefaultCharacterSelection(n,!0)&&(i.preventDefault(),t.$moveCharacter(n,o,!0),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_ARROW_RIGHT_COMMAND,(e=>{const n=r.$getSelection();if(!r.$isRangeSelection(n))return!1;const i=e,o=i.shiftKey;return!!t.$shouldOverrideDefaultCharacterSelection(n,!1)&&(i.preventDefault(),t.$moveCharacter(n,o,!1),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_BACKSPACE_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&((!s||"ko-KR"!==navigator.language)&&(e.preventDefault(),i.dispatchCommand(r.DELETE_CHARACTER_COMMAND,!0)))}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_DELETE_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(e.preventDefault(),i.dispatchCommand(r.DELETE_CHARACTER_COMMAND,!1))}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.KEY_ENTER_COMMAND,(e=>{const t=r.$getSelection();if(!r.$isRangeSelection(t))return!1;if(null!==e){if((s||l||c)&&a)return!1;e.preventDefault()}return i.dispatchCommand(r.INSERT_LINE_BREAK_COMMAND,!1)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.SELECT_ALL_COMMAND,(()=>(r.$selectAll(),!0)),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.COPY_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(O(e,i),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.CUT_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(function(e,t){O(e,t),t.update((()=>{const e=r.$getSelection();r.$isRangeSelection(e)&&e.removeText()}))}(e,i),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.PASTE_COMMAND,(t=>{const o=r.$getSelection();return!!r.$isRangeSelection(o)&&(function(t,i){t.preventDefault(),i.update((()=>{const i=r.$getSelection(),o=n.objectKlassEquals(t,ClipboardEvent)?t.clipboardData:null;null!=o&&r.$isRangeSelection(i)&&e.$insertDataTransferForPlainText(o,i)}),{tag:r.PASTE_TAG})}(t,i),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.DROP_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(e.preventDefault(),!0)}),r.COMMAND_PRIORITY_EDITOR),i.registerCommand(r.DRAGSTART_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(e.preventDefault(),!0)}),r.COMMAND_PRIORITY_EDITOR));return o};
9
+ "use strict";var e=require("@lexical/clipboard"),t=require("@lexical/dragon"),n=require("@lexical/selection"),i=require("@lexical/utils"),r=require("lexical");const o="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,a=o&&"documentMode"in document?document.documentMode:null,l=o&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),s=!(!o||!("InputEvent"in window)||a)&&"getTargetRanges"in new window.InputEvent("input"),c=o&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),R=o&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,O=o&&/^(?=.*Chrome).*/i.test(navigator.userAgent),D=o&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&l&&!O;function M(t,n){n.update((()=>{if(null!==t){const o=i.objectKlassEquals(t,KeyboardEvent)?null:t.clipboardData,a=r.$getSelection();if(null!==a&&null!=o){t.preventDefault();const i=e.$getHtmlContent(n);null!==i&&o.setData("text/html",i),o.setData("text/plain",a.getTextContent())}}}))}function g(t){const o=i.mergeRegister(t.registerCommand(r.DELETE_CHARACTER_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(t.deleteCharacter(e),!0)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.DELETE_WORD_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(t.deleteWord(e),!0)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.DELETE_LINE_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(t.deleteLine(e),!0)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.CONTROLLED_TEXT_INSERTION_COMMAND,(t=>{const n=r.$getSelection();if(!r.$isRangeSelection(n))return!1;if("string"==typeof t)n.insertText(t);else{const i=t.dataTransfer;if(null!=i)e.$insertDataTransferForPlainText(i,n);else{const e=t.data;e&&n.insertText(e)}}return!0}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.REMOVE_TEXT_COMMAND,(()=>{const e=r.$getSelection();return!!r.$isRangeSelection(e)&&(e.removeText(),!0)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.INSERT_LINE_BREAK_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(t.insertLineBreak(e),!0)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.INSERT_PARAGRAPH_COMMAND,(()=>{const e=r.$getSelection();return!!r.$isRangeSelection(e)&&(e.insertLineBreak(),!0)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.KEY_ARROW_LEFT_COMMAND,(e=>{const t=r.$getSelection();if(!r.$isRangeSelection(t))return!1;const i=e,o=i.shiftKey;return!!n.$shouldOverrideDefaultCharacterSelection(t,!0)&&(i.preventDefault(),n.$moveCharacter(t,o,!0),!0)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.KEY_ARROW_RIGHT_COMMAND,(e=>{const t=r.$getSelection();if(!r.$isRangeSelection(t))return!1;const i=e,o=i.shiftKey;return!!n.$shouldOverrideDefaultCharacterSelection(t,!1)&&(i.preventDefault(),n.$moveCharacter(t,o,!1),!0)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.KEY_BACKSPACE_COMMAND,(e=>{const n=r.$getSelection();return!!r.$isRangeSelection(n)&&((!R||"ko-KR"!==navigator.language)&&(e.preventDefault(),t.dispatchCommand(r.DELETE_CHARACTER_COMMAND,!0)))}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.KEY_DELETE_COMMAND,(e=>{const n=r.$getSelection();return!!r.$isRangeSelection(n)&&(e.preventDefault(),t.dispatchCommand(r.DELETE_CHARACTER_COMMAND,!1))}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.KEY_ENTER_COMMAND,(e=>{const n=r.$getSelection();if(!r.$isRangeSelection(n))return!1;if(null!==e){if((R||c||D)&&s)return!1;e.preventDefault()}return t.dispatchCommand(r.INSERT_LINE_BREAK_COMMAND,!1)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.SELECT_ALL_COMMAND,(()=>(r.$selectAll(),!0)),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.COPY_COMMAND,(e=>{const n=r.$getSelection();return!!r.$isRangeSelection(n)&&(M(e,t),!0)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.CUT_COMMAND,(e=>{const n=r.$getSelection();return!!r.$isRangeSelection(n)&&(function(e,t){M(e,t),t.update((()=>{const e=r.$getSelection();r.$isRangeSelection(e)&&e.removeText()}))}(e,t),!0)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.PASTE_COMMAND,(n=>{const o=r.$getSelection();return!!r.$isRangeSelection(o)&&(function(t,n){t.preventDefault(),n.update((()=>{const n=r.$getSelection(),o=i.objectKlassEquals(t,ClipboardEvent)?t.clipboardData:null;null!=o&&r.$isRangeSelection(n)&&e.$insertDataTransferForPlainText(o,n)}),{tag:r.PASTE_TAG})}(n,t),!0)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.DROP_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(e.preventDefault(),!0)}),r.COMMAND_PRIORITY_EDITOR),t.registerCommand(r.DRAGSTART_COMMAND,(e=>{const t=r.$getSelection();return!!r.$isRangeSelection(t)&&(e.preventDefault(),!0)}),r.COMMAND_PRIORITY_EDITOR));return o}const C=r.defineExtension({conflictsWith:["@lexical/rich-text"],dependencies:[t.DragonExtension],name:"@lexical/plain-text",register:g});exports.PlainTextExtension=C,exports.registerPlainText=g;
@@ -6,4 +6,4 @@
6
6
  *
7
7
  */
8
8
 
9
- import{$insertDataTransferForPlainText as e,$getHtmlContent as t}from"@lexical/clipboard";import{$shouldOverrideDefaultCharacterSelection as n,$moveCharacter as r}from"@lexical/selection";import{mergeRegister as o,objectKlassEquals as i}from"@lexical/utils";import{DELETE_CHARACTER_COMMAND as a,$getSelection as s,$isRangeSelection as u,COMMAND_PRIORITY_EDITOR as m,DELETE_WORD_COMMAND as d,DELETE_LINE_COMMAND as l,CONTROLLED_TEXT_INSERTION_COMMAND as c,REMOVE_TEXT_COMMAND as g,INSERT_LINE_BREAK_COMMAND as f,INSERT_PARAGRAPH_COMMAND as p,KEY_ARROW_LEFT_COMMAND as C,KEY_ARROW_RIGHT_COMMAND as v,KEY_BACKSPACE_COMMAND as w,KEY_DELETE_COMMAND as D,KEY_ENTER_COMMAND as x,SELECT_ALL_COMMAND as h,$selectAll as T,COPY_COMMAND as b,CUT_COMMAND as y,PASTE_COMMAND as A,DROP_COMMAND as E,DRAGSTART_COMMAND as K,PASTE_TAG as k}from"lexical";const L="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,M=L&&"documentMode"in document?document.documentMode:null,P=!(!L||!("InputEvent"in window)||M)&&"getTargetRanges"in new window.InputEvent("input"),S=L&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),B=L&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,I=L&&/^(?=.*Chrome).*/i.test(navigator.userAgent),R=L&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!I;function W(e,n){n.update((()=>{if(null!==e){const r=i(e,KeyboardEvent)?null:e.clipboardData,o=s();if(null!==o&&null!=r){e.preventDefault();const i=t(n);null!==i&&r.setData("text/html",i),r.setData("text/plain",o.getTextContent())}}}))}function V(t){return o(t.registerCommand(a,(e=>{const t=s();return!!u(t)&&(t.deleteCharacter(e),!0)}),m),t.registerCommand(d,(e=>{const t=s();return!!u(t)&&(t.deleteWord(e),!0)}),m),t.registerCommand(l,(e=>{const t=s();return!!u(t)&&(t.deleteLine(e),!0)}),m),t.registerCommand(c,(t=>{const n=s();if(!u(n))return!1;if("string"==typeof t)n.insertText(t);else{const r=t.dataTransfer;if(null!=r)e(r,n);else{const e=t.data;e&&n.insertText(e)}}return!0}),m),t.registerCommand(g,(()=>{const e=s();return!!u(e)&&(e.removeText(),!0)}),m),t.registerCommand(f,(e=>{const t=s();return!!u(t)&&(t.insertLineBreak(e),!0)}),m),t.registerCommand(p,(()=>{const e=s();return!!u(e)&&(e.insertLineBreak(),!0)}),m),t.registerCommand(C,(e=>{const t=s();if(!u(t))return!1;const o=e,i=o.shiftKey;return!!n(t,!0)&&(o.preventDefault(),r(t,i,!0),!0)}),m),t.registerCommand(v,(e=>{const t=s();if(!u(t))return!1;const o=e,i=o.shiftKey;return!!n(t,!1)&&(o.preventDefault(),r(t,i,!1),!0)}),m),t.registerCommand(w,(e=>{const n=s();return!!u(n)&&((!B||"ko-KR"!==navigator.language)&&(e.preventDefault(),t.dispatchCommand(a,!0)))}),m),t.registerCommand(D,(e=>{const n=s();return!!u(n)&&(e.preventDefault(),t.dispatchCommand(a,!1))}),m),t.registerCommand(x,(e=>{const n=s();if(!u(n))return!1;if(null!==e){if((B||S||R)&&P)return!1;e.preventDefault()}return t.dispatchCommand(f,!1)}),m),t.registerCommand(h,(()=>(T(),!0)),m),t.registerCommand(b,(e=>{const n=s();return!!u(n)&&(W(e,t),!0)}),m),t.registerCommand(y,(e=>{const n=s();return!!u(n)&&(function(e,t){W(e,t),t.update((()=>{const e=s();u(e)&&e.removeText()}))}(e,t),!0)}),m),t.registerCommand(A,(n=>{const r=s();return!!u(r)&&(function(t,n){t.preventDefault(),n.update((()=>{const n=s(),r=i(t,ClipboardEvent)?t.clipboardData:null;null!=r&&u(n)&&e(r,n)}),{tag:k})}(n,t),!0)}),m),t.registerCommand(E,(e=>{const t=s();return!!u(t)&&(e.preventDefault(),!0)}),m),t.registerCommand(K,(e=>{const t=s();return!!u(t)&&(e.preventDefault(),!0)}),m))}export{V as registerPlainText};
9
+ import{$insertDataTransferForPlainText as e,$getHtmlContent as t}from"@lexical/clipboard";import{DragonExtension as n}from"@lexical/dragon";import{$shouldOverrideDefaultCharacterSelection as r,$moveCharacter as o}from"@lexical/selection";import{mergeRegister as i,objectKlassEquals as a}from"@lexical/utils";import{defineExtension as s,DELETE_CHARACTER_COMMAND as m,$getSelection as d,$isRangeSelection as u,COMMAND_PRIORITY_EDITOR as l,DELETE_WORD_COMMAND as c,DELETE_LINE_COMMAND as g,CONTROLLED_TEXT_INSERTION_COMMAND as f,REMOVE_TEXT_COMMAND as p,INSERT_LINE_BREAK_COMMAND as C,INSERT_PARAGRAPH_COMMAND as v,KEY_ARROW_LEFT_COMMAND as x,KEY_ARROW_RIGHT_COMMAND as w,KEY_BACKSPACE_COMMAND as D,KEY_DELETE_COMMAND as h,KEY_ENTER_COMMAND as T,SELECT_ALL_COMMAND as b,$selectAll as P,COPY_COMMAND as y,CUT_COMMAND as A,PASTE_COMMAND as E,DROP_COMMAND as K,DRAGSTART_COMMAND as M,PASTE_TAG as k}from"lexical";const L="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,S=L&&"documentMode"in document?document.documentMode:null,W=L&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),B=!(!L||!("InputEvent"in window)||S)&&"getTargetRanges"in new window.InputEvent("input"),I=L&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),R=L&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,V=L&&/^(?=.*Chrome).*/i.test(navigator.userAgent),j=L&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&W&&!V;function q(e,n){n.update((()=>{if(null!==e){const r=a(e,KeyboardEvent)?null:e.clipboardData,o=d();if(null!==o&&null!=r){e.preventDefault();const i=t(n);null!==i&&r.setData("text/html",i),r.setData("text/plain",o.getTextContent())}}}))}function z(t){return i(t.registerCommand(m,(e=>{const t=d();return!!u(t)&&(t.deleteCharacter(e),!0)}),l),t.registerCommand(c,(e=>{const t=d();return!!u(t)&&(t.deleteWord(e),!0)}),l),t.registerCommand(g,(e=>{const t=d();return!!u(t)&&(t.deleteLine(e),!0)}),l),t.registerCommand(f,(t=>{const n=d();if(!u(n))return!1;if("string"==typeof t)n.insertText(t);else{const r=t.dataTransfer;if(null!=r)e(r,n);else{const e=t.data;e&&n.insertText(e)}}return!0}),l),t.registerCommand(p,(()=>{const e=d();return!!u(e)&&(e.removeText(),!0)}),l),t.registerCommand(C,(e=>{const t=d();return!!u(t)&&(t.insertLineBreak(e),!0)}),l),t.registerCommand(v,(()=>{const e=d();return!!u(e)&&(e.insertLineBreak(),!0)}),l),t.registerCommand(x,(e=>{const t=d();if(!u(t))return!1;const n=e,i=n.shiftKey;return!!r(t,!0)&&(n.preventDefault(),o(t,i,!0),!0)}),l),t.registerCommand(w,(e=>{const t=d();if(!u(t))return!1;const n=e,i=n.shiftKey;return!!r(t,!1)&&(n.preventDefault(),o(t,i,!1),!0)}),l),t.registerCommand(D,(e=>{const n=d();return!!u(n)&&((!R||"ko-KR"!==navigator.language)&&(e.preventDefault(),t.dispatchCommand(m,!0)))}),l),t.registerCommand(h,(e=>{const n=d();return!!u(n)&&(e.preventDefault(),t.dispatchCommand(m,!1))}),l),t.registerCommand(T,(e=>{const n=d();if(!u(n))return!1;if(null!==e){if((R||I||j)&&B)return!1;e.preventDefault()}return t.dispatchCommand(C,!1)}),l),t.registerCommand(b,(()=>(P(),!0)),l),t.registerCommand(y,(e=>{const n=d();return!!u(n)&&(q(e,t),!0)}),l),t.registerCommand(A,(e=>{const n=d();return!!u(n)&&(function(e,t){q(e,t),t.update((()=>{const e=d();u(e)&&e.removeText()}))}(e,t),!0)}),l),t.registerCommand(E,(n=>{const r=d();return!!u(r)&&(function(t,n){t.preventDefault(),n.update((()=>{const n=d(),r=a(t,ClipboardEvent)?t.clipboardData:null;null!=r&&u(n)&&e(r,n)}),{tag:k})}(n,t),!0)}),l),t.registerCommand(K,(e=>{const t=d();return!!u(t)&&(e.preventDefault(),!0)}),l),t.registerCommand(M,(e=>{const t=d();return!!u(t)&&(e.preventDefault(),!0)}),l))}const F=s({conflictsWith:["@lexical/rich-text"],dependencies:[n],name:"@lexical/plain-text",register:z});export{F as PlainTextExtension,z as registerPlainText};
package/index.d.ts CHANGED
@@ -7,3 +7,7 @@
7
7
  */
8
8
  import type { LexicalEditor } from 'lexical';
9
9
  export declare function registerPlainText(editor: LexicalEditor): () => void;
10
+ /**
11
+ * An extension to register \@lexical/plain-text behavior
12
+ */
13
+ export declare const PlainTextExtension: import("lexical").LexicalExtension<import("lexical").ExtensionConfigBase, "@lexical/plain-text", unknown, unknown>;
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "plain-text"
8
8
  ],
9
9
  "license": "MIT",
10
- "version": "0.35.1-nightly.20250924.0",
10
+ "version": "0.36.0",
11
11
  "main": "LexicalPlainText.js",
12
12
  "types": "index.d.ts",
13
13
  "repository": {
@@ -35,9 +35,10 @@
35
35
  }
36
36
  },
37
37
  "dependencies": {
38
- "@lexical/clipboard": "0.35.1-nightly.20250924.0",
39
- "@lexical/selection": "0.35.1-nightly.20250924.0",
40
- "@lexical/utils": "0.35.1-nightly.20250924.0",
41
- "lexical": "0.35.1-nightly.20250924.0"
38
+ "@lexical/clipboard": "0.36.0",
39
+ "@lexical/dragon": "0.36.0",
40
+ "@lexical/selection": "0.36.0",
41
+ "@lexical/utils": "0.36.0",
42
+ "lexical": "0.36.0"
42
43
  }
43
44
  }