From e96ee55b749c0fed8ac03d49044dd5594f0bc32e Mon Sep 17 00:00:00 2001 From: Sherry Date: Sat, 26 Oct 2024 00:47:28 +0800 Subject: [PATCH 1/7] [lexical-react] replace abstract component (#6752) --- .flowconfig | 3 ++- libdefs/yjs.js | 1 + package-lock.json | 15 +++++++------- package.json | 2 +- .../flow/LexicalContentEditable.js.flow | 20 +++++++++---------- 5 files changed, 21 insertions(+), 20 deletions(-) diff --git a/.flowconfig b/.flowconfig index 8d966996cb3..04806f560c0 100644 --- a/.flowconfig +++ b/.flowconfig @@ -17,6 +17,7 @@ untyped-type-import=error [options] server.max_workers=4 exact_by_default=true +component_syntax=true ;; [generated-start update-flowconfig] module.name_mapper='^lexical$' -> '/packages/lexical/flow/Lexical.js.flow' @@ -105,4 +106,4 @@ nonstrict-import unclear-type [version] -^0.226.0 +^0.250.0 diff --git a/libdefs/yjs.js b/libdefs/yjs.js index b58fc7a834d..8912a4461e9 100644 --- a/libdefs/yjs.js +++ b/libdefs/yjs.js @@ -644,6 +644,7 @@ declare module 'yjs' { }; declare type StackItem = { + // $FlowFixMe: perhaps add generic typing instead of mixed meta: Map, type: 'undo' | 'redo', }; diff --git a/package-lock.json b/package-lock.json index 97f74d56156..d0e83273504 100644 --- a/package-lock.json +++ b/package-lock.json @@ -65,7 +65,7 @@ "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-simple-import-sort": "^12.1.0", "eslint-plugin-sort-keys-fix": "^1.1.2", - "flow-bin": "^0.226.0", + "flow-bin": "^0.250.0", "fs-extra": "^10.0.0", "glob": "^10.4.1", "google-closure-compiler": "^20220202.0.0", @@ -17265,10 +17265,11 @@ "dev": true }, "node_modules/flow-bin": { - "version": "0.226.0", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.226.0.tgz", - "integrity": "sha512-q8hXSRhZ+I14jS0KGDDsPYCvPufvBexk6nJXSOsSP6DgCuXbvCOByWhsXRAjPtmXKmO8v9RKSJm1kRaWaf0fZw==", + "version": "0.250.0", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.250.0.tgz", + "integrity": "sha512-OYEPzpgSzvV+33kBuOOA1C0AjQkzIjrmbS/324CRRijnU1tABKyM5unzf4KIkyN5IQutgxqsSRZ1GsixC8+xIQ==", "dev": true, + "license": "MIT", "bin": { "flow": "cli.js" }, @@ -49129,9 +49130,9 @@ "dev": true }, "flow-bin": { - "version": "0.226.0", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.226.0.tgz", - "integrity": "sha512-q8hXSRhZ+I14jS0KGDDsPYCvPufvBexk6nJXSOsSP6DgCuXbvCOByWhsXRAjPtmXKmO8v9RKSJm1kRaWaf0fZw==", + "version": "0.250.0", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.250.0.tgz", + "integrity": "sha512-OYEPzpgSzvV+33kBuOOA1C0AjQkzIjrmbS/324CRRijnU1tABKyM5unzf4KIkyN5IQutgxqsSRZ1GsixC8+xIQ==", "dev": true }, "flow-enums-runtime": { diff --git a/package.json b/package.json index f1d0d0d401c..e8b913dd2cd 100644 --- a/package.json +++ b/package.json @@ -160,7 +160,7 @@ "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-simple-import-sort": "^12.1.0", "eslint-plugin-sort-keys-fix": "^1.1.2", - "flow-bin": "^0.226.0", + "flow-bin": "^0.250.0", "fs-extra": "^10.0.0", "glob": "^10.4.1", "google-closure-compiler": "^20220202.0.0", diff --git a/packages/lexical-react/flow/LexicalContentEditable.js.flow b/packages/lexical-react/flow/LexicalContentEditable.js.flow index 3c50a112513..46fa8ccb950 100644 --- a/packages/lexical-react/flow/LexicalContentEditable.js.flow +++ b/packages/lexical-react/flow/LexicalContentEditable.js.flow @@ -12,11 +12,10 @@ import type { LexicalEditor } from 'lexical'; import type {TRefFor} from 'CoreTypes.flow'; import * as React from 'react'; -import type { AbstractComponent } from "react"; type InlineStyle = { - [key: string]: mixed; -} + [key: string]: mixed, +}; // Due to Flow limitations, we prefer fixed types over the built-in inexact HTMLElement type HTMLDivElementDOMProps = $ReadOnly<{ @@ -29,7 +28,7 @@ type HTMLDivElementDOMProps = $ReadOnly<{ 'aria-invalid'?: void | boolean, 'aria-owns'?: void | string, 'title'?: void | string, - onClick?: void | (e: SyntheticEvent) => mixed, + onClick?: void | ((e: SyntheticEvent) => mixed), autoCapitalize?: void | boolean, autoComplete?: void | boolean, autoCorrect?: void | boolean, @@ -72,11 +71,10 @@ export type Props = $ReadOnly<{ ariaOwns?: string, ariaRequired?: string, autoCapitalize?: boolean, - ref?: TRefFor, - ...PlaceholderProps -}> + ...PlaceholderProps, +}>; -declare export var ContentEditable: AbstractComponent< - Props, - HTMLDivElement, ->; +declare export var ContentEditable: component( + ref: React.RefSetter, + ...Props +); From d64d395ce9db90912684346d0b06b57024dcc8a6 Mon Sep 17 00:00:00 2001 From: Taro Shono Date: Sat, 26 Oct 2024 02:55:44 +0900 Subject: [PATCH 2/7] [lexical-react] Feature: add attributes in LinkPlugin (#6760) --- .../__tests__/e2e/Links.spec.mjs | 43 +++++++++++++++++++ .../__tests__/utils/index.mjs | 3 ++ packages/lexical-playground/src/Editor.tsx | 3 +- packages/lexical-playground/src/Settings.tsx | 6 +++ .../lexical-playground/src/appSettings.ts | 1 + .../src/plugins/LinkPlugin/index.tsx | 22 +++++++++- .../lexical-react/src/LexicalLinkPlugin.ts | 28 +++++++++--- 7 files changed, 96 insertions(+), 10 deletions(-) diff --git a/packages/lexical-playground/__tests__/e2e/Links.spec.mjs b/packages/lexical-playground/__tests__/e2e/Links.spec.mjs index 695ee28d8e6..d0db3462c25 100644 --- a/packages/lexical-playground/__tests__/e2e/Links.spec.mjs +++ b/packages/lexical-playground/__tests__/e2e/Links.spec.mjs @@ -12,6 +12,7 @@ import { moveRight, moveToLineBeginning, moveToLineEnd, + paste, selectAll, selectCharacters, STANDARD_KEYPRESS_DELAY_MS, @@ -2076,6 +2077,48 @@ test.describe.parallel('Links', () => { }); }); +test.describe('Link attributes', () => { + test.use({hasLinkAttributes: true}); + test.beforeEach(({isCollab, hasLinkAttributes, page}) => + initialize({hasLinkAttributes, isCollab, page}), + ); + test('Can add attributes with paste', async ({ + page, + context, + hasLinkAttributes, + browserName, + }) => { + if (browserName === 'chromium') { + await focusEditor(page); + await page.keyboard.type('Hello awesome'); + await focusEditor(page); + await selectAll(page); + await context.grantPermissions(['clipboard-read', 'clipboard-write']); + await page.evaluate(() => + navigator.clipboard.writeText('https://facebook.com'), + ); + await paste(page); + await assertHTML( + page, + html` +

+ + Hello awesome + +

+ `, + ); + } + }); +}); + async function setURL(page, url) { await click(page, '.link-edit'); await focus(page, '.link-input'); diff --git a/packages/lexical-playground/__tests__/utils/index.mjs b/packages/lexical-playground/__tests__/utils/index.mjs index 907db4b110a..c2f4d921ff9 100644 --- a/packages/lexical-playground/__tests__/utils/index.mjs +++ b/packages/lexical-playground/__tests__/utils/index.mjs @@ -58,6 +58,7 @@ export async function initialize({ isCharLimit, isCharLimitUtf8, isMaxLength, + hasLinkAttributes, showNestedEditorTreeView, tableCellMerge, tableCellBackgroundColor, @@ -85,6 +86,7 @@ export async function initialize({ appSettings.isCharLimit = !!isCharLimit; appSettings.isCharLimitUtf8 = !!isCharLimitUtf8; appSettings.isMaxLength = !!isMaxLength; + appSettings.hasLinkAttributes = !!hasLinkAttributes; if (tableCellMerge !== undefined) { appSettings.tableCellMerge = tableCellMerge; } @@ -140,6 +142,7 @@ async function exposeLexicalEditor(page) { } export const test = base.extend({ + hasLinkAttributes: false, isCharLimit: false, isCharLimitUtf8: false, isCollab: IS_COLLAB, diff --git a/packages/lexical-playground/src/Editor.tsx b/packages/lexical-playground/src/Editor.tsx index 9d03a71c21e..31d8a38d433 100644 --- a/packages/lexical-playground/src/Editor.tsx +++ b/packages/lexical-playground/src/Editor.tsx @@ -83,6 +83,7 @@ export default function Editor(): JSX.Element { isAutocomplete, isMaxLength, isCharLimit, + hasLinkAttributes, isCharLimitUtf8, isRichText, showTreeView, @@ -185,7 +186,7 @@ export default function Editor(): JSX.Element { - + diff --git a/packages/lexical-playground/src/Settings.tsx b/packages/lexical-playground/src/Settings.tsx index a8e622dc6b0..b015f570d9d 100644 --- a/packages/lexical-playground/src/Settings.tsx +++ b/packages/lexical-playground/src/Settings.tsx @@ -22,6 +22,7 @@ export default function Settings(): JSX.Element { isCollab, isRichText, isMaxLength, + hasLinkAttributes, isCharLimit, isCharLimitUtf8, isAutocomplete, @@ -116,6 +117,11 @@ export default function Settings(): JSX.Element { checked={isCharLimitUtf8} text="Char Limit (UTF-8)" /> + setOption('hasLinkAttributes', !hasLinkAttributes)} + checked={hasLinkAttributes} + text="Link Attributes" + /> setOption('isMaxLength', !isMaxLength)} checked={isMaxLength} diff --git a/packages/lexical-playground/src/appSettings.ts b/packages/lexical-playground/src/appSettings.ts index 61892c2946e..d698af382c2 100644 --- a/packages/lexical-playground/src/appSettings.ts +++ b/packages/lexical-playground/src/appSettings.ts @@ -14,6 +14,7 @@ export const isDevPlayground: boolean = export const DEFAULT_SETTINGS = { disableBeforeInput: false, emptyEditor: isDevPlayground, + hasLinkAttributes: false, isAutocomplete: false, isCharLimit: false, isCharLimitUtf8: false, diff --git a/packages/lexical-playground/src/plugins/LinkPlugin/index.tsx b/packages/lexical-playground/src/plugins/LinkPlugin/index.tsx index 1f3dc437994..68799491dc5 100644 --- a/packages/lexical-playground/src/plugins/LinkPlugin/index.tsx +++ b/packages/lexical-playground/src/plugins/LinkPlugin/index.tsx @@ -11,6 +11,24 @@ import * as React from 'react'; import {validateUrl} from '../../utils/url'; -export default function LinkPlugin(): JSX.Element { - return ; +type Props = { + hasLinkAttributes?: boolean; +}; + +export default function LinkPlugin({ + hasLinkAttributes = false, +}: Props): JSX.Element { + return ( + + ); } diff --git a/packages/lexical-react/src/LexicalLinkPlugin.ts b/packages/lexical-react/src/LexicalLinkPlugin.ts index e5f5b0afdc1..1d5da4844a2 100644 --- a/packages/lexical-react/src/LexicalLinkPlugin.ts +++ b/packages/lexical-react/src/LexicalLinkPlugin.ts @@ -6,7 +6,12 @@ * */ -import {$toggleLink, LinkNode, TOGGLE_LINK_COMMAND} from '@lexical/link'; +import { + $toggleLink, + LinkAttributes, + LinkNode, + TOGGLE_LINK_COMMAND, +} from '@lexical/link'; import {useLexicalComposerContext} from '@lexical/react/LexicalComposerContext'; import {mergeRegister, objectKlassEquals} from '@lexical/utils'; import { @@ -20,9 +25,10 @@ import {useEffect} from 'react'; type Props = { validateUrl?: (url: string) => boolean; + attributes?: LinkAttributes; }; -export function LinkPlugin({validateUrl}: Props): null { +export function LinkPlugin({validateUrl, attributes}: Props): null { const [editor] = useLexicalComposerContext(); useEffect(() => { @@ -38,13 +44,18 @@ export function LinkPlugin({validateUrl}: Props): null { return true; } else if (typeof payload === 'string') { if (validateUrl === undefined || validateUrl(payload)) { - $toggleLink(payload); + $toggleLink(payload, attributes); return true; } return false; } else { const {url, target, rel, title} = payload; - $toggleLink(url, {rel, target, title}); + $toggleLink(url, { + ...attributes, + rel, + target, + title, + }); return true; } }, @@ -73,7 +84,10 @@ export function LinkPlugin({validateUrl}: Props): null { } // If we select nodes that are elements then avoid applying the link. if (!selection.getNodes().some((node) => $isElementNode(node))) { - editor.dispatchCommand(TOGGLE_LINK_COMMAND, clipboardText); + editor.dispatchCommand(TOGGLE_LINK_COMMAND, { + ...attributes, + url: clipboardText, + }); event.preventDefault(); return true; } @@ -82,10 +96,10 @@ export function LinkPlugin({validateUrl}: Props): null { COMMAND_PRIORITY_LOW, ) : () => { - // Don't paste arbritrary text as a link when there's no validate function + // Don't paste arbitrary text as a link when there's no validate function }, ); - }, [editor, validateUrl]); + }, [editor, validateUrl, attributes]); return null; } From 173a3deecadf90c0ed47f6e8617ffc532c5a7f00 Mon Sep 17 00:00:00 2001 From: Sherry Date: Mon, 28 Oct 2024 02:24:05 +0800 Subject: [PATCH 3/7] [lexical] Add missing commands to Lexical.js.flow (#6769) --- packages/lexical/flow/Lexical.js.flow | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/lexical/flow/Lexical.js.flow b/packages/lexical/flow/Lexical.js.flow index 33e5a952bd1..bc58eea45cf 100644 --- a/packages/lexical/flow/Lexical.js.flow +++ b/packages/lexical/flow/Lexical.js.flow @@ -58,11 +58,18 @@ declare export var CAN_REDO_COMMAND: LexicalCommand; declare export var CAN_UNDO_COMMAND: LexicalCommand; declare export var FOCUS_COMMAND: LexicalCommand; declare export var BLUR_COMMAND: LexicalCommand; +declare export var SELECT_ALL_COMMAND: LexicalCommand; +declare export var MOVE_TO_END: LexicalCommand; +declare export var MOVE_TO_START: LexicalCommand; +declare export var SELECTION_INSERT_CLIPBOARD_NODES_COMMAND: LexicalCommand<{ + nodes: Array; + selection: BaseSelection; +}>; declare export function createCommand(type?: string): LexicalCommand; /** - * LexicalConstnats + * LexicalConstants */ declare export var IS_ALL_FORMATTING: number; From c892d55dbe5873bdcb0a936e44bf1687f719578c Mon Sep 17 00:00:00 2001 From: Sherry Date: Mon, 28 Oct 2024 10:44:56 +0800 Subject: [PATCH 4/7] update dependencies to address security vulnerabilities (#6764) --- package-lock.json | 321 ++++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 171 insertions(+), 152 deletions(-) diff --git a/package-lock.json b/package-lock.json index d0e83273504..aee57d24b3f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -84,7 +84,7 @@ "prettier-plugin-organize-attributes": "^0.0.5", "prettier-plugin-tailwindcss": "^0.4.1", "react-test-renderer": "^17.0.2", - "rollup": "^4.17.2", + "rollup": "^4.22.4", "size-limit": "^11.1.2", "tmp": "^0.2.1", "ts-jest": "^29.1.2", @@ -7058,208 +7058,224 @@ "dev": true }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", - "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", - "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", - "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", - "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", - "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", - "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", - "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", - "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", - "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", - "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", - "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", - "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", - "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", - "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", - "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", - "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -7948,9 +7964,10 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", @@ -19124,9 +19141,10 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -30563,12 +30581,13 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", - "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -30578,22 +30597,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.17.2", - "@rollup/rollup-android-arm64": "4.17.2", - "@rollup/rollup-darwin-arm64": "4.17.2", - "@rollup/rollup-darwin-x64": "4.17.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", - "@rollup/rollup-linux-arm-musleabihf": "4.17.2", - "@rollup/rollup-linux-arm64-gnu": "4.17.2", - "@rollup/rollup-linux-arm64-musl": "4.17.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", - "@rollup/rollup-linux-riscv64-gnu": "4.17.2", - "@rollup/rollup-linux-s390x-gnu": "4.17.2", - "@rollup/rollup-linux-x64-gnu": "4.17.2", - "@rollup/rollup-linux-x64-musl": "4.17.2", - "@rollup/rollup-win32-arm64-msvc": "4.17.2", - "@rollup/rollup-win32-ia32-msvc": "4.17.2", - "@rollup/rollup-win32-x64-msvc": "4.17.2", + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", "fsevents": "~2.3.2" } }, @@ -41730,114 +41749,114 @@ } }, "@rollup/rollup-android-arm-eabi": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", - "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", "dev": true, "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", - "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", "dev": true, "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", - "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", "dev": true, "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", - "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", - "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", - "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", - "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", - "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", "dev": true, "optional": true }, "@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", - "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", - "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", "dev": true, "optional": true }, "@rollup/rollup-linux-s390x-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", - "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", - "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", - "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", "dev": true, "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", - "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", "dev": true, "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", - "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", "dev": true, "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", - "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", "dev": true, "optional": true }, @@ -42302,9 +42321,9 @@ } }, "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "@types/estree-jsx": { "version": "1.0.5", @@ -50459,9 +50478,9 @@ } }, "http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", "requires": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -58297,28 +58316,28 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "rollup": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", - "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.17.2", - "@rollup/rollup-android-arm64": "4.17.2", - "@rollup/rollup-darwin-arm64": "4.17.2", - "@rollup/rollup-darwin-x64": "4.17.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", - "@rollup/rollup-linux-arm-musleabihf": "4.17.2", - "@rollup/rollup-linux-arm64-gnu": "4.17.2", - "@rollup/rollup-linux-arm64-musl": "4.17.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", - "@rollup/rollup-linux-riscv64-gnu": "4.17.2", - "@rollup/rollup-linux-s390x-gnu": "4.17.2", - "@rollup/rollup-linux-x64-gnu": "4.17.2", - "@rollup/rollup-linux-x64-musl": "4.17.2", - "@rollup/rollup-win32-arm64-msvc": "4.17.2", - "@rollup/rollup-win32-ia32-msvc": "4.17.2", - "@rollup/rollup-win32-x64-msvc": "4.17.2", - "@types/estree": "1.0.5", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "@types/estree": "1.0.6", "fsevents": "~2.3.2" } }, diff --git a/package.json b/package.json index e8b913dd2cd..39fd67c53cd 100644 --- a/package.json +++ b/package.json @@ -179,7 +179,7 @@ "prettier-plugin-organize-attributes": "^0.0.5", "prettier-plugin-tailwindcss": "^0.4.1", "react-test-renderer": "^17.0.2", - "rollup": "^4.17.2", + "rollup": "^4.22.4", "size-limit": "^11.1.2", "tmp": "^0.2.1", "ts-jest": "^29.1.2", From e423c6888dbf2dbd0b5ef68f781efadda20d34f3 Mon Sep 17 00:00:00 2001 From: Sherry Date: Mon, 28 Oct 2024 14:27:19 +0800 Subject: [PATCH 5/7] v0.19.0 (#6774) Co-authored-by: Lexical GitHub Actions Bot <> --- CHANGELOG.md | 39 ++ examples/react-plain-text/package.json | 6 +- examples/react-rich-collab/package.json | 8 +- examples/react-rich/package.json | 6 +- examples/react-table/package.json | 6 +- examples/vanilla-js-plugin/package.json | 12 +- examples/vanilla-js/package.json | 12 +- package-lock.json | 442 +++++++++--------- package.json | 2 +- packages/lexical-clipboard/package.json | 12 +- packages/lexical-code/package.json | 6 +- packages/lexical-devtools-core/package.json | 14 +- packages/lexical-devtools/package.json | 6 +- packages/lexical-dragon/package.json | 4 +- packages/lexical-eslint-plugin/package.json | 2 +- packages/lexical-file/package.json | 4 +- packages/lexical-hashtag/package.json | 6 +- packages/lexical-headless/package.json | 4 +- packages/lexical-history/package.json | 6 +- packages/lexical-html/package.json | 8 +- packages/lexical-link/package.json | 6 +- packages/lexical-list/package.json | 6 +- packages/lexical-mark/package.json | 6 +- packages/lexical-markdown/package.json | 16 +- packages/lexical-offset/package.json | 4 +- packages/lexical-overflow/package.json | 4 +- packages/lexical-plain-text/package.json | 10 +- packages/lexical-playground/package.json | 32 +- packages/lexical-react/package.json | 40 +- packages/lexical-rich-text/package.json | 10 +- packages/lexical-selection/package.json | 4 +- packages/lexical-table/package.json | 8 +- packages/lexical-text/package.json | 4 +- packages/lexical-utils/package.json | 10 +- packages/lexical-website/package.json | 2 +- packages/lexical-yjs/package.json | 8 +- packages/lexical/package.json | 2 +- packages/shared/package.json | 4 +- .../lexical-esm-astro-react/package.json | 8 +- .../fixtures/lexical-esm-nextjs/package.json | 8 +- .../package.json | 12 +- scripts/error-codes/codes.json | 5 +- 42 files changed, 428 insertions(+), 386 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d185739801..1618f50e10d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,42 @@ +## v0.19.0 (2024-10-28) + +- lexical Add missing commands to Lexical.js.flow (#6769) Sherry +- lexical-react Feature add attributes in LinkPlugin (#6760) Taro Shono +- lexical-react replace abstract component (#6752) Sherry +- Trust HTML for rich text clipboard (#6755) Gerard Rovira +- lexical-playground Bug Fix Disable editing of Excalidraw Component in Read-Only Mode (#6704) Neysan Foo +- lexical-playground Bug Fix Disable table hover actions in read-only mode (#6706) Neysan Foo +- lexical-table lexical-selection Try to fix calling split on undefined (#6746) Ivaylo Pavlov +- Add ariaErrorMessage and ariaInvalid to Flow type (#6751) EJ Hammond +- lexical-react Feature Add aria-errormessage and aria-invalid support to LexicalContentEditable (#6745) EJ Hammond +- lexical-table Return inserted node from insertTableRowEXPERIMENTAL and insertTableColumnEXPERIMENTAL (#6741) Aman Harwara +- Bug Fix Shiftdown selects an extra subsequent element for Table selection (#6679) Katsia +- lexical-playground Bug Fix Disable equation editing in read-only mode (#6707) Neysan Foo +- lexical-markdown Feature add ability to hook into the import process for multiline element transformers (#6682) Alessio Gravili +- lexical-playground Bug Fix Disable image and inline focusing, adding caption and editing in read-only mode (#6705) Neysan Foo +- lexical-code Bug Fix Add global type declarations for Prism (#6736) Bob Ippolito +- Chore Disable react-beta test job for now (#6738) Bob Ippolito +- lexical-playground Table Hover Actions Layout Fixes (#6725) Ivaylo Pavlov +- lexical Bug Fix lines were being deleted with deleteLine (#6719) Taro Shono +- lexical-table Bug Fix colWidths not imported from DOM for TableNode (#6731) cwstra +- Chore add workflow to auto close stale pr based on label (#6732) Sherry +- lexical-playground Bug Fix match toolbar font size input with the rest of toolbar items in Read-Only mode (#6698) Bedru Umer +- lexical-playground Remove unused command (#6726) Ivaylo Pavlov +- fix preserve custom fields in Lexical-Yjs sync (#6724) Vadim Nicolaev +- lexicallexical-listlexical-rich-text Fix Preserve indentation when serializing to and from HTML (#6693) Germn Jabloski +- lexicallexical-list Bug Fix Retain indentation when list format is removed and reapplied (#6684) Sebastian Arrazola +- lexical Bug Fix Insertion into inline ElementNode should not crash (#6703) Bob Ippolito +- lexical-playground Bug Fix Track Resizing Actions for Excalidraw in History Stack (#6696) Neysan Foo +- lexical-playground Bug Fix toolbar font size input keyboard accessibility (#6695) Riley Pearce +- lexical-playground 3 Bug Fixes, 1 UX Improvement All Regarding Excalidraw Node (#6666) Neysan Foo +- lexical Bug Fix TextNode in token mode should not be split by removeText (#6690) Bob Ippolito +- lexical-yjs Bug Fix Add missing setLocalStateField method to ProviderAwareness type (#6683) Vadim Nicolaev +- lexical Bug Fix Fix Table formatting when no TextNodes present (#6675) Katsia +- lexical-tablelexical-playground Bug Fix Make style buttons in toolbar respect table selection (#6678) Katsia +- Support backward selection in rows deletion (#6680) Maksim Horbachevsky +- v0.18.0 (#6676) Sherry +- v0.18.0 Lexical GitHub Actions Bot + ## v0.18.0 (2024-09-26) - lexical-markdown set shouldMergeAdjacentLines default to be false (#6660) Sherry diff --git a/examples/react-plain-text/package.json b/examples/react-plain-text/package.json index 2ca57f3e88a..09efd494a71 100644 --- a/examples/react-plain-text/package.json +++ b/examples/react-plain-text/package.json @@ -1,7 +1,7 @@ { "name": "@lexical/react-plain-text-example", "private": true, - "version": "0.18.0", + "version": "0.19.0", "type": "module", "scripts": { "dev": "vite", @@ -9,8 +9,8 @@ "preview": "vite preview" }, "dependencies": { - "@lexical/react": "0.18.0", - "lexical": "0.18.0", + "@lexical/react": "0.19.0", + "lexical": "0.19.0", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/examples/react-rich-collab/package.json b/examples/react-rich-collab/package.json index 07ad5f31dca..a6255202a9e 100644 --- a/examples/react-rich-collab/package.json +++ b/examples/react-rich-collab/package.json @@ -1,7 +1,7 @@ { "name": "@lexical/react-rich-collab-example", "private": true, - "version": "0.18.0", + "version": "0.19.0", "type": "module", "scripts": { "dev": "vite", @@ -12,9 +12,9 @@ "server:webrtc": "cross-env HOST=localhost PORT=1235 npx y-webrtc" }, "dependencies": { - "@lexical/react": "0.18.0", - "@lexical/yjs": "0.18.0", - "lexical": "0.18.0", + "@lexical/react": "0.19.0", + "@lexical/yjs": "0.19.0", + "lexical": "0.19.0", "react": "^18.2.0", "react-dom": "^18.2.0", "y-webrtc": "^10.3.0", diff --git a/examples/react-rich/package.json b/examples/react-rich/package.json index f16d62b0f75..994710af1a1 100644 --- a/examples/react-rich/package.json +++ b/examples/react-rich/package.json @@ -1,7 +1,7 @@ { "name": "@lexical/react-rich-example", "private": true, - "version": "0.18.0", + "version": "0.19.0", "type": "module", "scripts": { "dev": "vite", @@ -9,8 +9,8 @@ "preview": "vite preview" }, "dependencies": { - "@lexical/react": "0.18.0", - "lexical": "0.18.0", + "@lexical/react": "0.19.0", + "lexical": "0.19.0", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/examples/react-table/package.json b/examples/react-table/package.json index 19b01d84ed8..9ae92f1d043 100644 --- a/examples/react-table/package.json +++ b/examples/react-table/package.json @@ -1,7 +1,7 @@ { "name": "@lexical/react-table-example", "private": true, - "version": "0.18.0", + "version": "0.19.0", "type": "module", "scripts": { "dev": "vite", @@ -9,8 +9,8 @@ "preview": "vite preview" }, "dependencies": { - "@lexical/react": "0.18.0", - "lexical": "0.18.0", + "@lexical/react": "0.19.0", + "lexical": "0.19.0", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/examples/vanilla-js-plugin/package.json b/examples/vanilla-js-plugin/package.json index 46c9eef6358..dac39f57f09 100644 --- a/examples/vanilla-js-plugin/package.json +++ b/examples/vanilla-js-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@lexical/vanilla-js-plugin-example", "private": true, - "version": "0.18.0", + "version": "0.19.0", "type": "module", "scripts": { "dev": "vite", @@ -9,12 +9,12 @@ "preview": "vite preview" }, "dependencies": { - "@lexical/dragon": "0.18.0", - "@lexical/history": "0.18.0", - "@lexical/rich-text": "0.18.0", - "@lexical/utils": "0.18.0", + "@lexical/dragon": "0.19.0", + "@lexical/history": "0.19.0", + "@lexical/rich-text": "0.19.0", + "@lexical/utils": "0.19.0", "emoji-datasource-facebook": "15.1.2", - "lexical": "0.18.0" + "lexical": "0.19.0" }, "devDependencies": { "typescript": "^5.2.2", diff --git a/examples/vanilla-js/package.json b/examples/vanilla-js/package.json index bda715c2e58..69930c7e448 100644 --- a/examples/vanilla-js/package.json +++ b/examples/vanilla-js/package.json @@ -1,7 +1,7 @@ { "name": "@lexical/vanilla-js-example", "private": true, - "version": "0.18.0", + "version": "0.19.0", "type": "module", "scripts": { "dev": "vite", @@ -9,11 +9,11 @@ "preview": "vite preview" }, "dependencies": { - "@lexical/dragon": "0.18.0", - "@lexical/history": "0.18.0", - "@lexical/rich-text": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/dragon": "0.19.0", + "@lexical/history": "0.19.0", + "@lexical/rich-text": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" }, "devDependencies": { "typescript": "^5.2.2", diff --git a/package-lock.json b/package-lock.json index aee57d24b3f..d230173f961 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@lexical/monorepo", - "version": "0.18.0", + "version": "0.19.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@lexical/monorepo", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "workspaces": [ "packages/*" @@ -36296,28 +36296,28 @@ } }, "packages/lexical": { - "version": "0.18.0", + "version": "0.19.0", "license": "MIT" }, "packages/lexical-clipboard": { "name": "@lexical/clipboard", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/html": "0.18.0", - "@lexical/list": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/html": "0.19.0", + "@lexical/list": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "packages/lexical-code": { "name": "@lexical/code", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0", "prismjs": "^1.27.0" }, "devDependencies": { @@ -36326,7 +36326,7 @@ }, "packages/lexical-devtools": { "name": "@lexical/devtools", - "version": "0.18.0", + "version": "0.19.0", "hasInstallScript": true, "dependencies": { "@chakra-ui/react": "^2.8.2", @@ -36343,12 +36343,12 @@ "devDependencies": { "@babel/plugin-transform-flow-strip-types": "^7.24.7", "@babel/preset-react": "^7.24.7", - "@lexical/devtools-core": "0.18.0", + "@lexical/devtools-core": "0.19.0", "@rollup/plugin-babel": "^6.0.4", "@types/react": "^18.2.46", "@types/react-dom": "^18.2.18", "@vitejs/plugin-react": "^4.2.1", - "lexical": "0.18.0", + "lexical": "0.19.0", "typescript": "^5.4.5", "vite": "^5.2.2", "wxt": "^0.17.0" @@ -36356,15 +36356,15 @@ }, "packages/lexical-devtools-core": { "name": "@lexical/devtools-core", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/html": "0.18.0", - "@lexical/link": "0.18.0", - "@lexical/mark": "0.18.0", - "@lexical/table": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/html": "0.19.0", + "@lexical/link": "0.19.0", + "@lexical/mark": "0.19.0", + "@lexical/table": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" }, "peerDependencies": { "react": ">=17.x", @@ -36373,15 +36373,15 @@ }, "packages/lexical-dragon": { "name": "@lexical/dragon", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "packages/lexical-eslint-plugin": { "name": "@lexical/eslint-plugin", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "devDependencies": { "@types/eslint": "^8.56.9" @@ -36392,136 +36392,136 @@ }, "packages/lexical-file": { "name": "@lexical/file", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "packages/lexical-hashtag": { "name": "@lexical/hashtag", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "packages/lexical-headless": { "name": "@lexical/headless", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "packages/lexical-history": { "name": "@lexical/history", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "packages/lexical-html": { "name": "@lexical/html", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/selection": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/selection": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "packages/lexical-link": { "name": "@lexical/link", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "packages/lexical-list": { "name": "@lexical/list", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "packages/lexical-mark": { "name": "@lexical/mark", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "packages/lexical-markdown": { "name": "@lexical/markdown", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/code": "0.18.0", - "@lexical/link": "0.18.0", - "@lexical/list": "0.18.0", - "@lexical/rich-text": "0.18.0", - "@lexical/text": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/code": "0.19.0", + "@lexical/link": "0.19.0", + "@lexical/list": "0.19.0", + "@lexical/rich-text": "0.19.0", + "@lexical/text": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "packages/lexical-offset": { "name": "@lexical/offset", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "packages/lexical-overflow": { "name": "@lexical/overflow", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "packages/lexical-plain-text": { "name": "@lexical/plain-text", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/clipboard": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/clipboard": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "packages/lexical-playground": { - "version": "0.18.0", + "version": "0.19.0", "dependencies": { "@excalidraw/excalidraw": "^0.17.0", - "@lexical/clipboard": "0.18.0", - "@lexical/code": "0.18.0", - "@lexical/file": "0.18.0", - "@lexical/hashtag": "0.18.0", - "@lexical/link": "0.18.0", - "@lexical/list": "0.18.0", - "@lexical/mark": "0.18.0", - "@lexical/overflow": "0.18.0", - "@lexical/plain-text": "0.18.0", - "@lexical/react": "0.18.0", - "@lexical/rich-text": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/table": "0.18.0", - "@lexical/utils": "0.18.0", + "@lexical/clipboard": "0.19.0", + "@lexical/code": "0.19.0", + "@lexical/file": "0.19.0", + "@lexical/hashtag": "0.19.0", + "@lexical/link": "0.19.0", + "@lexical/list": "0.19.0", + "@lexical/mark": "0.19.0", + "@lexical/overflow": "0.19.0", + "@lexical/plain-text": "0.19.0", + "@lexical/react": "0.19.0", + "@lexical/rich-text": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/table": "0.19.0", + "@lexical/utils": "0.19.0", "katex": "^0.16.10", - "lexical": "0.18.0", + "lexical": "0.19.0", "lodash-es": "^4.17.21", "prettier": "^2.3.2", "react": "^18.2.0", @@ -36544,28 +36544,28 @@ }, "packages/lexical-react": { "name": "@lexical/react", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/clipboard": "0.18.0", - "@lexical/code": "0.18.0", - "@lexical/devtools-core": "0.18.0", - "@lexical/dragon": "0.18.0", - "@lexical/hashtag": "0.18.0", - "@lexical/history": "0.18.0", - "@lexical/link": "0.18.0", - "@lexical/list": "0.18.0", - "@lexical/mark": "0.18.0", - "@lexical/markdown": "0.18.0", - "@lexical/overflow": "0.18.0", - "@lexical/plain-text": "0.18.0", - "@lexical/rich-text": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/table": "0.18.0", - "@lexical/text": "0.18.0", - "@lexical/utils": "0.18.0", - "@lexical/yjs": "0.18.0", - "lexical": "0.18.0", + "@lexical/clipboard": "0.19.0", + "@lexical/code": "0.19.0", + "@lexical/devtools-core": "0.19.0", + "@lexical/dragon": "0.19.0", + "@lexical/hashtag": "0.19.0", + "@lexical/history": "0.19.0", + "@lexical/link": "0.19.0", + "@lexical/list": "0.19.0", + "@lexical/mark": "0.19.0", + "@lexical/markdown": "0.19.0", + "@lexical/overflow": "0.19.0", + "@lexical/plain-text": "0.19.0", + "@lexical/rich-text": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/table": "0.19.0", + "@lexical/text": "0.19.0", + "@lexical/utils": "0.19.0", + "@lexical/yjs": "0.19.0", + "lexical": "0.19.0", "react-error-boundary": "^3.1.4" }, "peerDependencies": { @@ -36575,55 +36575,55 @@ }, "packages/lexical-rich-text": { "name": "@lexical/rich-text", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/clipboard": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/clipboard": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "packages/lexical-selection": { "name": "@lexical/selection", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "packages/lexical-table": { "name": "@lexical/table", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/clipboard": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/clipboard": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "packages/lexical-text": { "name": "@lexical/text", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "packages/lexical-utils": { "name": "@lexical/utils", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/list": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/table": "0.18.0", - "lexical": "0.18.0" + "@lexical/list": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/table": "0.19.0", + "lexical": "0.19.0" } }, "packages/lexical-website": { "name": "@lexical/website", - "version": "0.18.0", + "version": "0.19.0", "dependencies": { "@docusaurus/core": "^3.3.2", "@docusaurus/preset-classic": "^3.3.2", @@ -36652,12 +36652,12 @@ }, "packages/lexical-yjs": { "name": "@lexical/yjs", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "@lexical/offset": "0.18.0", - "@lexical/selection": "0.18.0", - "lexical": "0.18.0" + "@lexical/offset": "0.19.0", + "@lexical/selection": "0.19.0", + "lexical": "0.19.0" }, "peerDependencies": { "yjs": ">=13.5.22" @@ -36690,10 +36690,10 @@ } }, "packages/shared": { - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } } }, @@ -41018,19 +41018,19 @@ "@lexical/clipboard": { "version": "file:packages/lexical-clipboard", "requires": { - "@lexical/html": "0.18.0", - "@lexical/list": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/html": "0.19.0", + "@lexical/list": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/code": { "version": "file:packages/lexical-code", "requires": { - "@lexical/utils": "0.18.0", + "@lexical/utils": "0.19.0", "@types/prismjs": "^1.26.0", - "lexical": "0.18.0", + "lexical": "0.19.0", "prismjs": "^1.27.0" } }, @@ -41042,7 +41042,7 @@ "@chakra-ui/react": "^2.8.2", "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.5", - "@lexical/devtools-core": "0.18.0", + "@lexical/devtools-core": "0.19.0", "@rollup/plugin-babel": "^6.0.4", "@types/react": "^18.2.46", "@types/react-dom": "^18.2.18", @@ -41051,7 +41051,7 @@ "@webext-pegasus/store-zustand": "^0.3.0", "@webext-pegasus/transport": "^0.3.0", "framer-motion": "^11.1.5", - "lexical": "0.18.0", + "lexical": "0.19.0", "react": "^18.2.0", "react-dom": "^18.2.0", "typescript": "^5.4.5", @@ -41063,18 +41063,18 @@ "@lexical/devtools-core": { "version": "file:packages/lexical-devtools-core", "requires": { - "@lexical/html": "0.18.0", - "@lexical/link": "0.18.0", - "@lexical/mark": "0.18.0", - "@lexical/table": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/html": "0.19.0", + "@lexical/link": "0.19.0", + "@lexical/mark": "0.19.0", + "@lexical/table": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/dragon": { "version": "file:packages/lexical-dragon", "requires": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "@lexical/eslint-plugin": { @@ -41086,152 +41086,152 @@ "@lexical/file": { "version": "file:packages/lexical-file", "requires": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "@lexical/hashtag": { "version": "file:packages/lexical-hashtag", "requires": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/headless": { "version": "file:packages/lexical-headless", "requires": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "@lexical/history": { "version": "file:packages/lexical-history", "requires": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/html": { "version": "file:packages/lexical-html", "requires": { - "@lexical/selection": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/selection": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/link": { "version": "file:packages/lexical-link", "requires": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/list": { "version": "file:packages/lexical-list", "requires": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/mark": { "version": "file:packages/lexical-mark", "requires": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/markdown": { "version": "file:packages/lexical-markdown", "requires": { - "@lexical/code": "0.18.0", - "@lexical/link": "0.18.0", - "@lexical/list": "0.18.0", - "@lexical/rich-text": "0.18.0", - "@lexical/text": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/code": "0.19.0", + "@lexical/link": "0.19.0", + "@lexical/list": "0.19.0", + "@lexical/rich-text": "0.19.0", + "@lexical/text": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/offset": { "version": "file:packages/lexical-offset", "requires": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "@lexical/overflow": { "version": "file:packages/lexical-overflow", "requires": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "@lexical/plain-text": { "version": "file:packages/lexical-plain-text", "requires": { - "@lexical/clipboard": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/clipboard": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/react": { "version": "file:packages/lexical-react", "requires": { - "@lexical/clipboard": "0.18.0", - "@lexical/code": "0.18.0", - "@lexical/devtools-core": "0.18.0", - "@lexical/dragon": "0.18.0", - "@lexical/hashtag": "0.18.0", - "@lexical/history": "0.18.0", - "@lexical/link": "0.18.0", - "@lexical/list": "0.18.0", - "@lexical/mark": "0.18.0", - "@lexical/markdown": "0.18.0", - "@lexical/overflow": "0.18.0", - "@lexical/plain-text": "0.18.0", - "@lexical/rich-text": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/table": "0.18.0", - "@lexical/text": "0.18.0", - "@lexical/utils": "0.18.0", - "@lexical/yjs": "0.18.0", - "lexical": "0.18.0", + "@lexical/clipboard": "0.19.0", + "@lexical/code": "0.19.0", + "@lexical/devtools-core": "0.19.0", + "@lexical/dragon": "0.19.0", + "@lexical/hashtag": "0.19.0", + "@lexical/history": "0.19.0", + "@lexical/link": "0.19.0", + "@lexical/list": "0.19.0", + "@lexical/mark": "0.19.0", + "@lexical/markdown": "0.19.0", + "@lexical/overflow": "0.19.0", + "@lexical/plain-text": "0.19.0", + "@lexical/rich-text": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/table": "0.19.0", + "@lexical/text": "0.19.0", + "@lexical/utils": "0.19.0", + "@lexical/yjs": "0.19.0", + "lexical": "0.19.0", "react-error-boundary": "^3.1.4" } }, "@lexical/rich-text": { "version": "file:packages/lexical-rich-text", "requires": { - "@lexical/clipboard": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/clipboard": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/selection": { "version": "file:packages/lexical-selection", "requires": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "@lexical/table": { "version": "file:packages/lexical-table", "requires": { - "@lexical/clipboard": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/clipboard": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/text": { "version": "file:packages/lexical-text", "requires": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "@lexical/utils": { "version": "file:packages/lexical-utils", "requires": { - "@lexical/list": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/table": "0.18.0", - "lexical": "0.18.0" + "@lexical/list": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/table": "0.19.0", + "lexical": "0.19.0" } }, "@lexical/website": { @@ -41263,9 +41263,9 @@ "@lexical/yjs": { "version": "file:packages/lexical-yjs", "requires": { - "@lexical/offset": "0.18.0", - "@lexical/selection": "0.18.0", - "lexical": "0.18.0" + "@lexical/offset": "0.19.0", + "@lexical/selection": "0.19.0", + "lexical": "0.19.0" } }, "@mdx-js/mdx": { @@ -52991,26 +52991,26 @@ "@babel/plugin-transform-flow-strip-types": "^7.24.7", "@babel/preset-react": "^7.24.7", "@excalidraw/excalidraw": "^0.17.0", - "@lexical/clipboard": "0.18.0", - "@lexical/code": "0.18.0", - "@lexical/file": "0.18.0", - "@lexical/hashtag": "0.18.0", - "@lexical/link": "0.18.0", - "@lexical/list": "0.18.0", - "@lexical/mark": "0.18.0", - "@lexical/overflow": "0.18.0", - "@lexical/plain-text": "0.18.0", - "@lexical/react": "0.18.0", - "@lexical/rich-text": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/table": "0.18.0", - "@lexical/utils": "0.18.0", + "@lexical/clipboard": "0.19.0", + "@lexical/code": "0.19.0", + "@lexical/file": "0.19.0", + "@lexical/hashtag": "0.19.0", + "@lexical/link": "0.19.0", + "@lexical/list": "0.19.0", + "@lexical/mark": "0.19.0", + "@lexical/overflow": "0.19.0", + "@lexical/plain-text": "0.19.0", + "@lexical/react": "0.19.0", + "@lexical/rich-text": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/table": "0.19.0", + "@lexical/utils": "0.19.0", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-commonjs": "^25.0.7", "@types/lodash-es": "^4.14.182", "@vitejs/plugin-react": "^4.2.1", "katex": "^0.16.10", - "lexical": "0.18.0", + "lexical": "0.19.0", "lodash-es": "^4.17.21", "prettier": "^2.3.2", "react": "^18.2.0", @@ -58892,7 +58892,7 @@ "shared": { "version": "file:packages/shared", "requires": { - "lexical": "0.18.0" + "lexical": "0.19.0" } }, "shebang-command": { diff --git a/package.json b/package.json index 39fd67c53cd..7c2a5ab57c0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@lexical/monorepo", "description": "Lexical is an extensible text editor framework that provides excellent reliability, accessibility and performance.", - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "private": true, "workspaces": [ diff --git a/packages/lexical-clipboard/package.json b/packages/lexical-clipboard/package.json index 397e51c1034..59da212fb4d 100644 --- a/packages/lexical-clipboard/package.json +++ b/packages/lexical-clipboard/package.json @@ -9,15 +9,15 @@ "paste" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalClipboard.js", "types": "index.d.ts", "dependencies": { - "@lexical/html": "0.18.0", - "@lexical/list": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/html": "0.19.0", + "@lexical/list": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" }, "repository": { "type": "git", diff --git a/packages/lexical-code/package.json b/packages/lexical-code/package.json index 91331220c16..e436a96468e 100644 --- a/packages/lexical-code/package.json +++ b/packages/lexical-code/package.json @@ -8,12 +8,12 @@ "code" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalCode.js", "types": "index.d.ts", "dependencies": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0", "prismjs": "^1.27.0" }, "repository": { diff --git a/packages/lexical-devtools-core/package.json b/packages/lexical-devtools-core/package.json index ecec8abf35e..fc8e4f3c714 100644 --- a/packages/lexical-devtools-core/package.json +++ b/packages/lexical-devtools-core/package.json @@ -8,16 +8,16 @@ "utils" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalDevtoolsCore.js", "types": "index.d.ts", "dependencies": { - "@lexical/html": "0.18.0", - "@lexical/link": "0.18.0", - "@lexical/mark": "0.18.0", - "@lexical/table": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/html": "0.19.0", + "@lexical/link": "0.19.0", + "@lexical/mark": "0.19.0", + "@lexical/table": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" }, "peerDependencies": { "react": ">=17.x", diff --git a/packages/lexical-devtools/package.json b/packages/lexical-devtools/package.json index fb2d1963112..406b826393c 100644 --- a/packages/lexical-devtools/package.json +++ b/packages/lexical-devtools/package.json @@ -2,7 +2,7 @@ "name": "@lexical/devtools", "description": "Lexical DevTools browser extension", "private": true, - "version": "0.18.0", + "version": "0.19.0", "type": "module", "scripts": { "dev": "wxt", @@ -41,12 +41,12 @@ "devDependencies": { "@babel/plugin-transform-flow-strip-types": "^7.24.7", "@babel/preset-react": "^7.24.7", - "@lexical/devtools-core": "0.18.0", + "@lexical/devtools-core": "0.19.0", "@rollup/plugin-babel": "^6.0.4", "@types/react": "^18.2.46", "@types/react-dom": "^18.2.18", "@vitejs/plugin-react": "^4.2.1", - "lexical": "0.18.0", + "lexical": "0.19.0", "typescript": "^5.4.5", "vite": "^5.2.2", "wxt": "^0.17.0" diff --git a/packages/lexical-dragon/package.json b/packages/lexical-dragon/package.json index d3bc8eb181f..d446fa6e700 100644 --- a/packages/lexical-dragon/package.json +++ b/packages/lexical-dragon/package.json @@ -9,7 +9,7 @@ "accessibility" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalDragon.js", "types": "index.d.ts", "repository": { @@ -37,6 +37,6 @@ } }, "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } } diff --git a/packages/lexical-eslint-plugin/package.json b/packages/lexical-eslint-plugin/package.json index cdcd24aede3..d8311110bb0 100644 --- a/packages/lexical-eslint-plugin/package.json +++ b/packages/lexical-eslint-plugin/package.json @@ -8,7 +8,7 @@ "lexical", "editor" ], - "version": "0.18.0", + "version": "0.19.0", "license": "MIT", "repository": { "type": "git", diff --git a/packages/lexical-file/package.json b/packages/lexical-file/package.json index 6da57dffc2f..28e08173e4a 100644 --- a/packages/lexical-file/package.json +++ b/packages/lexical-file/package.json @@ -10,7 +10,7 @@ "export" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalFile.js", "types": "index.d.ts", "repository": { @@ -38,6 +38,6 @@ } }, "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } } diff --git a/packages/lexical-hashtag/package.json b/packages/lexical-hashtag/package.json index d86b7edc3b3..2a3b0cb6d42 100644 --- a/packages/lexical-hashtag/package.json +++ b/packages/lexical-hashtag/package.json @@ -8,12 +8,12 @@ "hashtag" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalHashtag.js", "types": "index.d.ts", "dependencies": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" }, "repository": { "type": "git", diff --git a/packages/lexical-headless/package.json b/packages/lexical-headless/package.json index de0ff4fde95..ac5bfbc81b0 100644 --- a/packages/lexical-headless/package.json +++ b/packages/lexical-headless/package.json @@ -8,7 +8,7 @@ "headless" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalHeadless.js", "types": "index.d.ts", "repository": { @@ -36,6 +36,6 @@ } }, "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } } diff --git a/packages/lexical-history/package.json b/packages/lexical-history/package.json index d703a8d73df..8c5fea30560 100644 --- a/packages/lexical-history/package.json +++ b/packages/lexical-history/package.json @@ -8,12 +8,12 @@ "history" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalHistory.js", "types": "index.d.ts", "dependencies": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" }, "repository": { "type": "git", diff --git a/packages/lexical-html/package.json b/packages/lexical-html/package.json index 2bfca39ac9d..b7310fcded0 100644 --- a/packages/lexical-html/package.json +++ b/packages/lexical-html/package.json @@ -8,7 +8,7 @@ "html" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalHtml.js", "types": "index.d.ts", "repository": { @@ -17,9 +17,9 @@ "directory": "packages/lexical-html" }, "dependencies": { - "@lexical/selection": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/selection": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" }, "module": "LexicalHtml.mjs", "sideEffects": false, diff --git a/packages/lexical-link/package.json b/packages/lexical-link/package.json index 95ca67265d4..6bbc2f9f1d0 100644 --- a/packages/lexical-link/package.json +++ b/packages/lexical-link/package.json @@ -8,12 +8,12 @@ "link" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalLink.js", "types": "index.d.ts", "dependencies": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" }, "repository": { "type": "git", diff --git a/packages/lexical-list/package.json b/packages/lexical-list/package.json index 6ec34d721cf..c75ffb5d8bd 100644 --- a/packages/lexical-list/package.json +++ b/packages/lexical-list/package.json @@ -8,12 +8,12 @@ "list" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalList.js", "types": "index.d.ts", "dependencies": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" }, "repository": { "type": "git", diff --git a/packages/lexical-mark/package.json b/packages/lexical-mark/package.json index f8d600d721b..3a81b001412 100644 --- a/packages/lexical-mark/package.json +++ b/packages/lexical-mark/package.json @@ -8,12 +8,12 @@ "mark" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalMark.js", "types": "index.d.ts", "dependencies": { - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" }, "repository": { "type": "git", diff --git a/packages/lexical-markdown/package.json b/packages/lexical-markdown/package.json index 02daab66555..796ba318519 100644 --- a/packages/lexical-markdown/package.json +++ b/packages/lexical-markdown/package.json @@ -8,17 +8,17 @@ "markdown" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalMarkdown.js", "types": "index.d.ts", "dependencies": { - "@lexical/code": "0.18.0", - "@lexical/link": "0.18.0", - "@lexical/list": "0.18.0", - "@lexical/rich-text": "0.18.0", - "@lexical/text": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/code": "0.19.0", + "@lexical/link": "0.19.0", + "@lexical/list": "0.19.0", + "@lexical/rich-text": "0.19.0", + "@lexical/text": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" }, "repository": { "type": "git", diff --git a/packages/lexical-offset/package.json b/packages/lexical-offset/package.json index d61f8d0b70d..bbfdee16989 100644 --- a/packages/lexical-offset/package.json +++ b/packages/lexical-offset/package.json @@ -8,7 +8,7 @@ "offset" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalOffset.js", "types": "index.d.ts", "repository": { @@ -36,6 +36,6 @@ } }, "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } } diff --git a/packages/lexical-overflow/package.json b/packages/lexical-overflow/package.json index 74ed5fa03a6..26fbd14b150 100644 --- a/packages/lexical-overflow/package.json +++ b/packages/lexical-overflow/package.json @@ -8,7 +8,7 @@ "overflow" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalOverflow.js", "types": "index.d.ts", "repository": { @@ -36,6 +36,6 @@ } }, "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } } diff --git a/packages/lexical-plain-text/package.json b/packages/lexical-plain-text/package.json index e316bfddd67..ecaf6a53f53 100644 --- a/packages/lexical-plain-text/package.json +++ b/packages/lexical-plain-text/package.json @@ -7,7 +7,7 @@ "plain-text" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalPlainText.js", "types": "index.d.ts", "repository": { @@ -35,9 +35,9 @@ } }, "dependencies": { - "@lexical/clipboard": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/clipboard": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } } diff --git a/packages/lexical-playground/package.json b/packages/lexical-playground/package.json index c2cafc71468..32911a5d25d 100644 --- a/packages/lexical-playground/package.json +++ b/packages/lexical-playground/package.json @@ -1,6 +1,6 @@ { "name": "lexical-playground", - "version": "0.18.0", + "version": "0.19.0", "private": true, "type": "module", "scripts": { @@ -12,22 +12,22 @@ }, "dependencies": { "@excalidraw/excalidraw": "^0.17.0", - "@lexical/clipboard": "0.18.0", - "@lexical/code": "0.18.0", - "@lexical/file": "0.18.0", - "@lexical/hashtag": "0.18.0", - "@lexical/link": "0.18.0", - "@lexical/list": "0.18.0", - "@lexical/mark": "0.18.0", - "@lexical/overflow": "0.18.0", - "@lexical/plain-text": "0.18.0", - "@lexical/react": "0.18.0", - "@lexical/rich-text": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/table": "0.18.0", - "@lexical/utils": "0.18.0", + "@lexical/clipboard": "0.19.0", + "@lexical/code": "0.19.0", + "@lexical/file": "0.19.0", + "@lexical/hashtag": "0.19.0", + "@lexical/link": "0.19.0", + "@lexical/list": "0.19.0", + "@lexical/mark": "0.19.0", + "@lexical/overflow": "0.19.0", + "@lexical/plain-text": "0.19.0", + "@lexical/react": "0.19.0", + "@lexical/rich-text": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/table": "0.19.0", + "@lexical/utils": "0.19.0", "katex": "^0.16.10", - "lexical": "0.18.0", + "lexical": "0.19.0", "lodash-es": "^4.17.21", "prettier": "^2.3.2", "react": "^18.2.0", diff --git a/packages/lexical-react/package.json b/packages/lexical-react/package.json index 6360d26502f..24abcc61c8a 100644 --- a/packages/lexical-react/package.json +++ b/packages/lexical-react/package.json @@ -8,27 +8,27 @@ "rich-text" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "dependencies": { - "@lexical/clipboard": "0.18.0", - "@lexical/code": "0.18.0", - "@lexical/devtools-core": "0.18.0", - "@lexical/dragon": "0.18.0", - "@lexical/hashtag": "0.18.0", - "@lexical/history": "0.18.0", - "@lexical/link": "0.18.0", - "@lexical/list": "0.18.0", - "@lexical/mark": "0.18.0", - "@lexical/markdown": "0.18.0", - "@lexical/overflow": "0.18.0", - "@lexical/plain-text": "0.18.0", - "@lexical/rich-text": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/table": "0.18.0", - "@lexical/text": "0.18.0", - "@lexical/utils": "0.18.0", - "@lexical/yjs": "0.18.0", - "lexical": "0.18.0", + "@lexical/clipboard": "0.19.0", + "@lexical/code": "0.19.0", + "@lexical/devtools-core": "0.19.0", + "@lexical/dragon": "0.19.0", + "@lexical/hashtag": "0.19.0", + "@lexical/history": "0.19.0", + "@lexical/link": "0.19.0", + "@lexical/list": "0.19.0", + "@lexical/mark": "0.19.0", + "@lexical/markdown": "0.19.0", + "@lexical/overflow": "0.19.0", + "@lexical/plain-text": "0.19.0", + "@lexical/rich-text": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/table": "0.19.0", + "@lexical/text": "0.19.0", + "@lexical/utils": "0.19.0", + "@lexical/yjs": "0.19.0", + "lexical": "0.19.0", "react-error-boundary": "^3.1.4" }, "peerDependencies": { diff --git a/packages/lexical-rich-text/package.json b/packages/lexical-rich-text/package.json index 0bd956b2dff..4745a432de2 100644 --- a/packages/lexical-rich-text/package.json +++ b/packages/lexical-rich-text/package.json @@ -7,7 +7,7 @@ "rich-text" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalRichText.js", "types": "index.d.ts", "repository": { @@ -35,9 +35,9 @@ } }, "dependencies": { - "@lexical/clipboard": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/clipboard": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" } } diff --git a/packages/lexical-selection/package.json b/packages/lexical-selection/package.json index a08d821efa5..08c1002dd52 100644 --- a/packages/lexical-selection/package.json +++ b/packages/lexical-selection/package.json @@ -9,7 +9,7 @@ "selection" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalSelection.js", "types": "index.d.ts", "repository": { @@ -37,6 +37,6 @@ } }, "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } } diff --git a/packages/lexical-table/package.json b/packages/lexical-table/package.json index 3e64fd93dbb..d2164872321 100644 --- a/packages/lexical-table/package.json +++ b/packages/lexical-table/package.json @@ -8,13 +8,13 @@ "table" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalTable.js", "types": "index.d.ts", "dependencies": { - "@lexical/clipboard": "0.18.0", - "@lexical/utils": "0.18.0", - "lexical": "0.18.0" + "@lexical/clipboard": "0.19.0", + "@lexical/utils": "0.19.0", + "lexical": "0.19.0" }, "repository": { "type": "git", diff --git a/packages/lexical-text/package.json b/packages/lexical-text/package.json index 9def319d3ed..1075e5979d8 100644 --- a/packages/lexical-text/package.json +++ b/packages/lexical-text/package.json @@ -9,7 +9,7 @@ "text" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalText.js", "types": "index.d.ts", "repository": { @@ -37,6 +37,6 @@ } }, "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" } } diff --git a/packages/lexical-utils/package.json b/packages/lexical-utils/package.json index a228ad0b27b..4b10fbb739c 100644 --- a/packages/lexical-utils/package.json +++ b/packages/lexical-utils/package.json @@ -8,14 +8,14 @@ "utils" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalUtils.js", "types": "index.d.ts", "dependencies": { - "@lexical/list": "0.18.0", - "@lexical/selection": "0.18.0", - "@lexical/table": "0.18.0", - "lexical": "0.18.0" + "@lexical/list": "0.19.0", + "@lexical/selection": "0.19.0", + "@lexical/table": "0.19.0", + "lexical": "0.19.0" }, "repository": { "type": "git", diff --git a/packages/lexical-website/package.json b/packages/lexical-website/package.json index 002e91eebd1..a3777af286e 100644 --- a/packages/lexical-website/package.json +++ b/packages/lexical-website/package.json @@ -1,6 +1,6 @@ { "name": "@lexical/website", - "version": "0.18.0", + "version": "0.19.0", "private": true, "scripts": { "docusaurus": "docusaurus", diff --git a/packages/lexical-yjs/package.json b/packages/lexical-yjs/package.json index 71f38a78c1c..d281b9c9393 100644 --- a/packages/lexical-yjs/package.json +++ b/packages/lexical-yjs/package.json @@ -11,13 +11,13 @@ "crdt" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "LexicalYjs.js", "types": "index.d.ts", "dependencies": { - "@lexical/offset": "0.18.0", - "@lexical/selection": "0.18.0", - "lexical": "0.18.0" + "@lexical/offset": "0.19.0", + "@lexical/selection": "0.19.0", + "lexical": "0.19.0" }, "peerDependencies": { "yjs": ">=13.5.22" diff --git a/packages/lexical/package.json b/packages/lexical/package.json index 198583a9818..35711998c37 100644 --- a/packages/lexical/package.json +++ b/packages/lexical/package.json @@ -9,7 +9,7 @@ "rich-text" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "main": "Lexical.js", "types": "index.d.ts", "repository": { diff --git a/packages/shared/package.json b/packages/shared/package.json index 951ee6f8f9e..3f145586bf2 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -8,9 +8,9 @@ "rich-text" ], "license": "MIT", - "version": "0.18.0", + "version": "0.19.0", "dependencies": { - "lexical": "0.18.0" + "lexical": "0.19.0" }, "repository": { "type": "git", diff --git a/scripts/__tests__/integration/fixtures/lexical-esm-astro-react/package.json b/scripts/__tests__/integration/fixtures/lexical-esm-astro-react/package.json index dddf28e1d62..d8ecd2945c4 100644 --- a/scripts/__tests__/integration/fixtures/lexical-esm-astro-react/package.json +++ b/scripts/__tests__/integration/fixtures/lexical-esm-astro-react/package.json @@ -1,7 +1,7 @@ { "name": "lexical-esm-astro-react", "type": "module", - "version": "0.18.0", + "version": "0.19.0", "scripts": { "dev": "astro dev", "start": "astro dev", @@ -13,12 +13,12 @@ "dependencies": { "@astrojs/check": "^0.9.3", "@astrojs/react": "^3.1.0", - "@lexical/react": "0.18.0", - "@lexical/utils": "0.18.0", + "@lexical/react": "0.19.0", + "@lexical/utils": "0.19.0", "@types/react": "^18.2.66", "@types/react-dom": "^18.2.22", "astro": "^4.5.4", - "lexical": "0.18.0", + "lexical": "0.19.0", "react": "^18.2.0", "react-dom": "^18.2.0", "typescript": "^5.4.2" diff --git a/scripts/__tests__/integration/fixtures/lexical-esm-nextjs/package.json b/scripts/__tests__/integration/fixtures/lexical-esm-nextjs/package.json index 94e51d28b20..a524ec4e1e1 100644 --- a/scripts/__tests__/integration/fixtures/lexical-esm-nextjs/package.json +++ b/scripts/__tests__/integration/fixtures/lexical-esm-nextjs/package.json @@ -1,6 +1,6 @@ { "name": "lexical-esm-nextjs", - "version": "0.18.0", + "version": "0.19.0", "private": true, "scripts": { "dev": "next dev", @@ -9,9 +9,9 @@ "test": "playwright test" }, "dependencies": { - "@lexical/plain-text": "0.18.0", - "@lexical/react": "0.18.0", - "lexical": "0.18.0", + "@lexical/plain-text": "0.19.0", + "@lexical/react": "0.19.0", + "lexical": "0.19.0", "next": "^14.2.1", "react": "^18", "react-dom": "^18" diff --git a/scripts/__tests__/integration/fixtures/lexical-esm-sveltekit-vanilla-js/package.json b/scripts/__tests__/integration/fixtures/lexical-esm-sveltekit-vanilla-js/package.json index db051a94a3e..0a59b0510b6 100644 --- a/scripts/__tests__/integration/fixtures/lexical-esm-sveltekit-vanilla-js/package.json +++ b/scripts/__tests__/integration/fixtures/lexical-esm-sveltekit-vanilla-js/package.json @@ -1,6 +1,6 @@ { "name": "lexical-sveltekit-vanilla-js", - "version": "0.18.0", + "version": "0.19.0", "private": true, "scripts": { "dev": "vite dev", @@ -9,17 +9,17 @@ "test": "playwright test" }, "devDependencies": { - "@lexical/dragon": "0.18.0", - "@lexical/history": "0.18.0", - "@lexical/rich-text": "0.18.0", - "@lexical/utils": "0.18.0", + "@lexical/dragon": "0.19.0", + "@lexical/history": "0.19.0", + "@lexical/rich-text": "0.19.0", + "@lexical/utils": "0.19.0", "@playwright/test": "^1.28.1", "@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/adapter-node": "^5.0.1", "@sveltejs/adapter-static": "^3.0.1", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", - "lexical": "0.18.0", + "lexical": "0.19.0", "prettier": "^3.1.1", "prettier-plugin-svelte": "^3.1.2", "svelte": "^4.2.19", diff --git a/scripts/error-codes/codes.json b/scripts/error-codes/codes.json index 92a650456c6..fe602bf04fc 100644 --- a/scripts/error-codes/codes.json +++ b/scripts/error-codes/codes.json @@ -209,5 +209,8 @@ "207": "Anchor not found in Table", "208": "Focus not found in Table", "209": "Expected TableNode children to be TableRowNode", - "210": "Expected TableRowNode to have a parent TableNode" + "210": "Expected TableRowNode to have a parent TableNode", + "211": "Expected node %s of type %s to have a block ElementNode ancestor", + "212": "Expected node %s of type %s to have a block ancestor", + "213": "Expected ancestor to be a block ElementNode" } From 07ca5c83c2f512734976504ef9fae5d39b6072ae Mon Sep 17 00:00:00 2001 From: Michael Landis <44303132+landisdesign@users.noreply.github.com> Date: Tue, 29 Oct 2024 11:10:00 -0700 Subject: [PATCH 6/7] [lexical] Feature: Add onUpdate function during update with $onUpdate (correct baselline) (#6773) --- packages/lexical/flow/Lexical.js.flow | 1 + packages/lexical/src/LexicalUtils.ts | 13 +++++++ .../src/__tests__/unit/LexicalUtils.test.ts | 38 +++++++++++++++++++ packages/lexical/src/index.ts | 1 + 4 files changed, 53 insertions(+) diff --git a/packages/lexical/flow/Lexical.js.flow b/packages/lexical/flow/Lexical.js.flow index bc58eea45cf..bc32e05bff6 100644 --- a/packages/lexical/flow/Lexical.js.flow +++ b/packages/lexical/flow/Lexical.js.flow @@ -844,6 +844,7 @@ declare export function $isParagraphNode( export type EventHandler = (event: Event, editor: LexicalEditor) => void; declare export function $hasUpdateTag(tag: string): boolean; declare export function $addUpdateTag(tag: string): void; +declare export function $onUpdate(updateFn: () => void): void; declare export function $getNearestNodeFromDOMNode( startingDOM: Node, ): LexicalNode | null; diff --git a/packages/lexical/src/LexicalUtils.ts b/packages/lexical/src/LexicalUtils.ts index 9039a186c50..b1a409a9f36 100644 --- a/packages/lexical/src/LexicalUtils.ts +++ b/packages/lexical/src/LexicalUtils.ts @@ -1314,6 +1314,19 @@ export function $addUpdateTag(tag: string): void { editor._updateTags.add(tag); } +/** + * Add a function to run after the current update. This will run after any + * `onUpdate` function already supplied to `editor.update()`, as well as any + * functions added with previous calls to `$onUpdate`. + * + * @param updateFn The function to run after the current update. + */ +export function $onUpdate(updateFn: () => void): void { + errorOnReadOnly(); + const editor = getActiveEditor(); + editor._deferred.push(updateFn); +} + export function $maybeMoveChildrenSelectionToParent( parentNode: LexicalNode, ): BaseSelection | null { diff --git a/packages/lexical/src/__tests__/unit/LexicalUtils.test.ts b/packages/lexical/src/__tests__/unit/LexicalUtils.test.ts index 2a497860b07..e360eac2486 100644 --- a/packages/lexical/src/__tests__/unit/LexicalUtils.test.ts +++ b/packages/lexical/src/__tests__/unit/LexicalUtils.test.ts @@ -23,6 +23,7 @@ import { } from 'lexical'; import { + $onUpdate, emptyFunction, generateRandomKey, getCachedTypeToNodeMap, @@ -242,6 +243,43 @@ describe('LexicalUtils tests', () => { }); }); + describe('$onUpdate', () => { + test('added fn runs after update, original onUpdate, and prior calls to $onUpdate', () => { + const {editor} = testEnv; + const runs: string[] = []; + + editor.update( + () => { + $getRoot().append( + $createParagraphNode().append($createTextNode('foo')), + ); + $onUpdate(() => { + runs.push('second'); + }); + $onUpdate(() => { + runs.push('third'); + }); + }, + { + onUpdate: () => { + runs.push('first'); + }, + }, + ); + + // Flush pending updates + editor.read(() => {}); + + expect(runs).toEqual(['first', 'second', 'third']); + }); + + test('adding fn throws outside update', () => { + expect(() => { + $onUpdate(() => {}); + }).toThrow(); + }); + }); + test('getCachedTypeToNodeMap', async () => { const {editor} = testEnv; const paragraphKeys: string[] = []; diff --git a/packages/lexical/src/index.ts b/packages/lexical/src/index.ts index 538440b8195..0bc18239b37 100644 --- a/packages/lexical/src/index.ts +++ b/packages/lexical/src/index.ts @@ -172,6 +172,7 @@ export { $isRootOrShadowRoot, $isTokenOrSegmented, $nodesOfType, + $onUpdate, $selectAll, $setCompositionKey, $setSelection, From 07e300c60c4f1d7a5f63dd9ac983c1a0cf7133f0 Mon Sep 17 00:00:00 2001 From: Maksim Horbachevsky Date: Wed, 30 Oct 2024 03:18:37 -0400 Subject: [PATCH 7/7] #6768 fix to avoid infinite markdown shortcut matchers run (#6778) --- packages/lexical-markdown/src/MarkdownShortcuts.ts | 5 ++++- .../lexical-playground/__tests__/e2e/Markdown.spec.mjs | 10 ++++++++++ .../src/plugins/MarkdownTransformers/index.ts | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/lexical-markdown/src/MarkdownShortcuts.ts b/packages/lexical-markdown/src/MarkdownShortcuts.ts index 8021296c648..e6b5d7e523c 100644 --- a/packages/lexical-markdown/src/MarkdownShortcuts.ts +++ b/packages/lexical-markdown/src/MarkdownShortcuts.ts @@ -480,10 +480,13 @@ export function registerMarkdownShortcuts( const selection = editorState.read($getSelection); const prevSelection = prevEditorState.read($getSelection); + // We expect selection to be a collapsed range and not match previous one (as we want + // to trigger transforms only as user types) if ( !$isRangeSelection(prevSelection) || !$isRangeSelection(selection) || - !selection.isCollapsed() + !selection.isCollapsed() || + selection.is(prevSelection) ) { return; } diff --git a/packages/lexical-playground/__tests__/e2e/Markdown.spec.mjs b/packages/lexical-playground/__tests__/e2e/Markdown.spec.mjs index b434d62be55..dc8d9a4a18e 100644 --- a/packages/lexical-playground/__tests__/e2e/Markdown.spec.mjs +++ b/packages/lexical-playground/__tests__/e2e/Markdown.spec.mjs @@ -595,6 +595,16 @@ test.describe.parallel('Markdown', () => { `, text: 'hello [world](https://www.test.com)!', }, + { + html: html` +

+ 10:20:30😄 +

+ `, + text: '10:20:30:smile:', + }, ]; const NESTED_TEXT_FORMAT_SHORTCUTS = [ diff --git a/packages/lexical-playground/src/plugins/MarkdownTransformers/index.ts b/packages/lexical-playground/src/plugins/MarkdownTransformers/index.ts index 736267dee54..391e8a7bdb2 100644 --- a/packages/lexical-playground/src/plugins/MarkdownTransformers/index.ts +++ b/packages/lexical-playground/src/plugins/MarkdownTransformers/index.ts @@ -100,7 +100,7 @@ export const EMOJI: TextMatchTransformer = { dependencies: [], export: () => null, importRegExp: /:([a-z0-9_]+):/, - regExp: /:([a-z0-9_]+):/, + regExp: /:([a-z0-9_]+):$/, replace: (textNode, [, name]) => { const emoji = emojiList.find((e) => e.aliases.includes(name))?.emoji; if (emoji) {