@team-monolith/cds 1.3.3 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +2 -2
  2. package/dist/CodleDesignSystemProvider.d.ts +3 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +1 -0
  5. package/dist/patterns/LexicalEditor/LexicalEditor.d.ts +14 -0
  6. package/dist/patterns/LexicalEditor/LexicalEditor.js +39 -0
  7. package/dist/patterns/LexicalEditor/Plugins.d.ts +10 -0
  8. package/dist/patterns/LexicalEditor/Plugins.js +81 -0
  9. package/dist/patterns/LexicalEditor/hr.svg +3 -0
  10. package/dist/patterns/LexicalEditor/index.d.ts +2 -0
  11. package/dist/patterns/LexicalEditor/index.js +2 -0
  12. package/dist/patterns/LexicalEditor/nodes/ImageComponent.d.ts +18 -0
  13. package/dist/patterns/LexicalEditor/nodes/ImageComponent.js +143 -0
  14. package/dist/patterns/LexicalEditor/nodes/ImageNode.d.ts +56 -0
  15. package/dist/patterns/LexicalEditor/nodes/ImageNode.js +117 -0
  16. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/ComponentAdder.d.ts +10 -0
  17. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/ComponentAdder.js +68 -0
  18. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/ComponentAdderPlugin.d.ts +11 -0
  19. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/ComponentAdderPlugin.js +214 -0
  20. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/getContextMenuOptions.d.ts +6 -0
  21. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/getContextMenuOptions.js +90 -0
  22. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/index.d.ts +1 -0
  23. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/index.js +1 -0
  24. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/menu.svg +8 -0
  25. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/plus.svg +3 -0
  26. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/useDraggableBlockMenu.d.ts +16 -0
  27. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/useDraggableBlockMenu.js +234 -0
  28. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/useFloatingMenu.d.ts +20 -0
  29. package/dist/patterns/LexicalEditor/plugins/ComponentAdderPlugin/useFloatingMenu.js +158 -0
  30. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/ComponentPickerMenuItem.d.ts +10 -0
  31. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/ComponentPickerMenuItem.js +40 -0
  32. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/ComponentPickerMenuList.d.ts +9 -0
  33. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/ComponentPickerMenuList.js +46 -0
  34. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/ComponentPickerMenuPlugin.d.ts +26 -0
  35. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/ComponentPickerMenuPlugin.js +174 -0
  36. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/index.d.ts +3 -0
  37. package/dist/patterns/LexicalEditor/plugins/ComponentPickerMenuPlugin/index.js +3 -0
  38. package/dist/patterns/LexicalEditor/plugins/FloatingLinkEditorPlugin/FloatingLinkEditor.d.ts +11 -0
  39. package/dist/patterns/LexicalEditor/plugins/FloatingLinkEditorPlugin/FloatingLinkEditor.js +201 -0
  40. package/dist/patterns/LexicalEditor/plugins/FloatingLinkEditorPlugin/index.d.ts +6 -0
  41. package/dist/patterns/LexicalEditor/plugins/FloatingLinkEditorPlugin/index.js +62 -0
  42. package/dist/patterns/LexicalEditor/plugins/FloatingTextFormatToolbarPlugin/FloatingTextFormatPopup.d.ts +13 -0
  43. package/dist/patterns/LexicalEditor/plugins/FloatingTextFormatToolbarPlugin/FloatingTextFormatPopup.js +60 -0
  44. package/dist/patterns/LexicalEditor/plugins/FloatingTextFormatToolbarPlugin/index.d.ts +4 -0
  45. package/dist/patterns/LexicalEditor/plugins/FloatingTextFormatToolbarPlugin/index.js +190 -0
  46. package/dist/patterns/LexicalEditor/plugins/ImagesPlugin/InsertImageDialog.d.ts +7 -0
  47. package/dist/patterns/LexicalEditor/plugins/ImagesPlugin/InsertImageDialog.js +39 -0
  48. package/dist/patterns/LexicalEditor/plugins/ImagesPlugin/InsertImageUploadedDialogBody.d.ts +5 -0
  49. package/dist/patterns/LexicalEditor/plugins/ImagesPlugin/InsertImageUploadedDialogBody.js +49 -0
  50. package/dist/patterns/LexicalEditor/plugins/ImagesPlugin/InsertImageUriDialogBody.d.ts +5 -0
  51. package/dist/patterns/LexicalEditor/plugins/ImagesPlugin/InsertImageUriDialogBody.js +24 -0
  52. package/dist/patterns/LexicalEditor/plugins/ImagesPlugin/index.d.ts +14 -0
  53. package/dist/patterns/LexicalEditor/plugins/ImagesPlugin/index.js +151 -0
  54. package/dist/patterns/LexicalEditor/plugins/ListMaxIndentLevelPlugin/index.d.ts +12 -0
  55. package/dist/patterns/LexicalEditor/plugins/ListMaxIndentLevelPlugin/index.js +49 -0
  56. package/dist/patterns/LexicalEditor/plugins/MarkdownTransformers/index.d.ts +12 -0
  57. package/dist/patterns/LexicalEditor/plugins/MarkdownTransformers/index.js +184 -0
  58. package/dist/patterns/LexicalEditor/theme.d.ts +24 -0
  59. package/dist/patterns/LexicalEditor/theme.js +178 -0
  60. package/dist/patterns/LexicalEditor/utils/getDOMRangeRect.d.ts +8 -0
  61. package/dist/patterns/LexicalEditor/utils/getDOMRangeRect.js +22 -0
  62. package/dist/patterns/LexicalEditor/utils/getSelectedNode.d.ts +2 -0
  63. package/dist/patterns/LexicalEditor/utils/getSelectedNode.js +24 -0
  64. package/dist/patterns/LexicalEditor/utils/guard.d.ts +8 -0
  65. package/dist/patterns/LexicalEditor/utils/guard.js +10 -0
  66. package/dist/patterns/LexicalEditor/utils/point.d.ts +21 -0
  67. package/dist/patterns/LexicalEditor/utils/point.js +41 -0
  68. package/dist/patterns/LexicalEditor/utils/rect.d.ts +45 -0
  69. package/dist/patterns/LexicalEditor/utils/rect.js +99 -0
  70. package/dist/patterns/LexicalEditor/utils/setFloatingElemPosition.d.ts +1 -0
  71. package/dist/patterns/LexicalEditor/utils/setFloatingElemPosition.js +36 -0
  72. package/dist/patterns/LexicalEditor/utils/setFloatingElemPositionForLinkEditor.d.ts +1 -0
  73. package/dist/patterns/LexicalEditor/utils/setFloatingElemPositionForLinkEditor.js +32 -0
  74. package/dist/patterns/LexicalEditor/utils/url.d.ts +9 -0
  75. package/dist/patterns/LexicalEditor/utils/url.js +34 -0
  76. package/package.json +6 -3
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ import { $isAtNodeEnd } from "@lexical/selection";
9
+ export function getSelectedNode(selection) {
10
+ const anchor = selection.anchor;
11
+ const focus = selection.focus;
12
+ const anchorNode = selection.anchor.getNode();
13
+ const focusNode = selection.focus.getNode();
14
+ if (anchorNode === focusNode) {
15
+ return anchorNode;
16
+ }
17
+ const isBackward = selection.isBackward();
18
+ if (isBackward) {
19
+ return $isAtNodeEnd(focus) ? anchorNode : focusNode;
20
+ }
21
+ else {
22
+ return $isAtNodeEnd(anchor) ? anchorNode : focusNode;
23
+ }
24
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export declare function isHTMLElement(x: unknown): x is HTMLElement;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export function isHTMLElement(x) {
9
+ return x instanceof HTMLElement;
10
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export declare class Point {
9
+ private readonly _x;
10
+ private readonly _y;
11
+ constructor(x: number, y: number);
12
+ get x(): number;
13
+ get y(): number;
14
+ equals({ x, y }: Point): boolean;
15
+ calcDeltaXTo({ x }: Point): number;
16
+ calcDeltaYTo({ y }: Point): number;
17
+ calcHorizontalDistanceTo(point: Point): number;
18
+ calcVerticalDistance(point: Point): number;
19
+ calcDistanceTo(point: Point): number;
20
+ }
21
+ export declare function isPoint(x: unknown): x is Point;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export class Point {
9
+ constructor(x, y) {
10
+ this._x = x;
11
+ this._y = y;
12
+ }
13
+ get x() {
14
+ return this._x;
15
+ }
16
+ get y() {
17
+ return this._y;
18
+ }
19
+ equals({ x, y }) {
20
+ return this.x === x && this.y === y;
21
+ }
22
+ calcDeltaXTo({ x }) {
23
+ return this.x - x;
24
+ }
25
+ calcDeltaYTo({ y }) {
26
+ return this.y - y;
27
+ }
28
+ calcHorizontalDistanceTo(point) {
29
+ return Math.abs(this.calcDeltaXTo(point));
30
+ }
31
+ calcVerticalDistance(point) {
32
+ return Math.abs(this.calcDeltaYTo(point));
33
+ }
34
+ calcDistanceTo(point) {
35
+ return Math.sqrt(Math.pow(this.calcDeltaXTo(point), 2) +
36
+ Math.pow(this.calcDeltaYTo(point), 2));
37
+ }
38
+ }
39
+ export function isPoint(x) {
40
+ return x instanceof Point;
41
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ import { Point } from "./point";
9
+ type ContainsPointReturn = {
10
+ result: boolean;
11
+ reason: {
12
+ isOnTopSide: boolean;
13
+ isOnBottomSide: boolean;
14
+ isOnLeftSide: boolean;
15
+ isOnRightSide: boolean;
16
+ };
17
+ };
18
+ export declare class Rect {
19
+ private readonly _left;
20
+ private readonly _top;
21
+ private readonly _right;
22
+ private readonly _bottom;
23
+ constructor(left: number, top: number, right: number, bottom: number);
24
+ get top(): number;
25
+ get right(): number;
26
+ get bottom(): number;
27
+ get left(): number;
28
+ get width(): number;
29
+ get height(): number;
30
+ equals({ top, left, bottom, right }: Rect): boolean;
31
+ contains({ x, y }: Point): ContainsPointReturn;
32
+ contains({ top, left, bottom, right }: Rect): boolean;
33
+ intersectsWith(rect: Rect): boolean;
34
+ generateNewRect({ left, top, right, bottom, }: {
35
+ left?: number | undefined;
36
+ top?: number | undefined;
37
+ right?: number | undefined;
38
+ bottom?: number | undefined;
39
+ }): Rect;
40
+ static fromLTRB(left: number, top: number, right: number, bottom: number): Rect;
41
+ static fromLWTH(left: number, width: number, top: number, height: number): Rect;
42
+ static fromPoints(startPoint: Point, endPoint: Point): Rect;
43
+ static fromDOM(dom: HTMLElement): Rect;
44
+ }
45
+ export {};
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ import { isPoint } from "./point";
9
+ export class Rect {
10
+ constructor(left, top, right, bottom) {
11
+ const [physicTop, physicBottom] = top <= bottom ? [top, bottom] : [bottom, top];
12
+ const [physicLeft, physicRight] = left <= right ? [left, right] : [right, left];
13
+ this._top = physicTop;
14
+ this._right = physicRight;
15
+ this._left = physicLeft;
16
+ this._bottom = physicBottom;
17
+ }
18
+ get top() {
19
+ return this._top;
20
+ }
21
+ get right() {
22
+ return this._right;
23
+ }
24
+ get bottom() {
25
+ return this._bottom;
26
+ }
27
+ get left() {
28
+ return this._left;
29
+ }
30
+ get width() {
31
+ return Math.abs(this._left - this._right);
32
+ }
33
+ get height() {
34
+ return Math.abs(this._bottom - this._top);
35
+ }
36
+ equals({ top, left, bottom, right }) {
37
+ return (top === this._top &&
38
+ bottom === this._bottom &&
39
+ left === this._left &&
40
+ right === this._right);
41
+ }
42
+ contains(target) {
43
+ if (isPoint(target)) {
44
+ const { x, y } = target;
45
+ const isOnTopSide = y < this._top;
46
+ const isOnBottomSide = y > this._bottom;
47
+ const isOnLeftSide = x < this._left;
48
+ const isOnRightSide = x > this._right;
49
+ const result = !isOnTopSide && !isOnBottomSide && !isOnLeftSide && !isOnRightSide;
50
+ return {
51
+ reason: {
52
+ isOnBottomSide,
53
+ isOnLeftSide,
54
+ isOnRightSide,
55
+ isOnTopSide,
56
+ },
57
+ result,
58
+ };
59
+ }
60
+ else {
61
+ const { top, left, bottom, right } = target;
62
+ return (top >= this._top &&
63
+ top <= this._bottom &&
64
+ bottom >= this._top &&
65
+ bottom <= this._bottom &&
66
+ left >= this._left &&
67
+ left <= this._right &&
68
+ right >= this._left &&
69
+ right <= this._right);
70
+ }
71
+ }
72
+ intersectsWith(rect) {
73
+ const { left: x1, top: y1, width: w1, height: h1 } = rect;
74
+ const { left: x2, top: y2, width: w2, height: h2 } = this;
75
+ const maxX = x1 + w1 >= x2 + w2 ? x1 + w1 : x2 + w2;
76
+ const maxY = y1 + h1 >= y2 + h2 ? y1 + h1 : y2 + h2;
77
+ const minX = x1 <= x2 ? x1 : x2;
78
+ const minY = y1 <= y2 ? y1 : y2;
79
+ return maxX - minX <= w1 + w2 && maxY - minY <= h1 + h2;
80
+ }
81
+ generateNewRect({ left = this.left, top = this.top, right = this.right, bottom = this.bottom, }) {
82
+ return new Rect(left, top, right, bottom);
83
+ }
84
+ static fromLTRB(left, top, right, bottom) {
85
+ return new Rect(left, top, right, bottom);
86
+ }
87
+ static fromLWTH(left, width, top, height) {
88
+ return new Rect(left, top, left + width, top + height);
89
+ }
90
+ static fromPoints(startPoint, endPoint) {
91
+ const { y: top, x: left } = startPoint;
92
+ const { y: bottom, x: right } = endPoint;
93
+ return Rect.fromLTRB(left, top, right, bottom);
94
+ }
95
+ static fromDOM(dom) {
96
+ const { top, width, left, height } = dom.getBoundingClientRect();
97
+ return Rect.fromLWTH(left, width, top, height);
98
+ }
99
+ }
@@ -0,0 +1 @@
1
+ export declare function setFloatingElemPosition(targetRect: DOMRect | null, floatingElem: HTMLElement, anchorElem: HTMLElement, isLink?: boolean, verticalGap?: number, horizontalOffset?: number): void;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ const VERTICAL_GAP = 10;
9
+ const HORIZONTAL_OFFSET = 5;
10
+ export function setFloatingElemPosition(targetRect, floatingElem, anchorElem, isLink = false, verticalGap = VERTICAL_GAP, horizontalOffset = HORIZONTAL_OFFSET) {
11
+ const scrollerElem = anchorElem.parentElement;
12
+ if (targetRect === null || !scrollerElem) {
13
+ floatingElem.style.opacity = "0";
14
+ floatingElem.style.transform = "translate(-10000px, -10000px)";
15
+ return;
16
+ }
17
+ const floatingElemRect = floatingElem.getBoundingClientRect();
18
+ const anchorElementRect = anchorElem.getBoundingClientRect();
19
+ const editorScrollerRect = scrollerElem.getBoundingClientRect();
20
+ let top = targetRect.top - floatingElemRect.height - verticalGap;
21
+ let left = targetRect.left - horizontalOffset;
22
+ if (top < editorScrollerRect.top) {
23
+ // adjusted height for link element if the element is at top
24
+ top +=
25
+ floatingElemRect.height +
26
+ targetRect.height +
27
+ verticalGap * (isLink ? 9 : 2);
28
+ }
29
+ if (left + floatingElemRect.width > editorScrollerRect.right) {
30
+ left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset;
31
+ }
32
+ top -= anchorElementRect.top;
33
+ left -= anchorElementRect.left;
34
+ floatingElem.style.opacity = "1";
35
+ floatingElem.style.transform = `translate(${left}px, ${top}px)`;
36
+ }
@@ -0,0 +1 @@
1
+ export declare function setFloatingElemPositionForLinkEditor(targetRect: DOMRect | null, floatingElem: HTMLElement, anchorElem: HTMLElement, verticalGap?: number, horizontalOffset?: number): void;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ const VERTICAL_GAP = 10;
9
+ const HORIZONTAL_OFFSET = 5;
10
+ export function setFloatingElemPositionForLinkEditor(targetRect, floatingElem, anchorElem, verticalGap = VERTICAL_GAP, horizontalOffset = HORIZONTAL_OFFSET) {
11
+ const scrollerElem = anchorElem.parentElement;
12
+ if (targetRect === null || !scrollerElem) {
13
+ floatingElem.style.opacity = "0";
14
+ floatingElem.style.transform = "translate(-10000px, -10000px)";
15
+ return;
16
+ }
17
+ const floatingElemRect = floatingElem.getBoundingClientRect();
18
+ const anchorElementRect = anchorElem.getBoundingClientRect();
19
+ const editorScrollerRect = scrollerElem.getBoundingClientRect();
20
+ let top = targetRect.top - verticalGap;
21
+ let left = targetRect.left - horizontalOffset;
22
+ if (top < editorScrollerRect.top) {
23
+ top += floatingElemRect.height + targetRect.height + verticalGap * 2;
24
+ }
25
+ if (left + floatingElemRect.width > editorScrollerRect.right) {
26
+ left = editorScrollerRect.right - floatingElemRect.width - horizontalOffset;
27
+ }
28
+ top -= anchorElementRect.top;
29
+ left -= anchorElementRect.left;
30
+ floatingElem.style.opacity = "1";
31
+ floatingElem.style.transform = `translate(${left}px, ${top}px)`;
32
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export declare function sanitizeUrl(url: string): string;
9
+ export declare function validateUrl(url: string): boolean;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ const SUPPORTED_URL_PROTOCOLS = new Set([
9
+ "http:",
10
+ "https:",
11
+ "mailto:",
12
+ "sms:",
13
+ "tel:",
14
+ ]);
15
+ export function sanitizeUrl(url) {
16
+ try {
17
+ const parsedUrl = new URL(url);
18
+ // eslint-disable-next-line no-script-url
19
+ if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) {
20
+ return "about:blank";
21
+ }
22
+ }
23
+ catch (_a) {
24
+ return url;
25
+ }
26
+ return url;
27
+ }
28
+ // Source: https://stackoverflow.com/a/8234912/2013580
29
+ const urlRegExp = new RegExp(/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)/);
30
+ export function validateUrl(url) {
31
+ // TODO Fix UI for link insertion; it should never default to an invalid URL such as https://.
32
+ // Maybe show a dialog where they user can type the URL before inserting it.
33
+ return url === "https://" || urlRegExp.test(url);
34
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@team-monolith/cds",
3
- "version": "1.3.3",
3
+ "version": "1.4.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "sideEffects": false,
@@ -16,16 +16,19 @@
16
16
  "@editorjs/raw": "^2.5.0",
17
17
  "@editorjs/table": "^2.3.0",
18
18
  "@editorjs/underline": "^1.1.0",
19
+ "@emotion/css": "^11.11.2",
19
20
  "@emotion/react": "^11.8.2",
20
21
  "@emotion/styled": "^11.8.1",
22
+ "@lexical/react": "^0.12.4",
21
23
  "@mui/material": "^5.13.6",
22
24
  "@types/node": "^16.11.26",
23
25
  "@types/react": "^18.2.28",
24
26
  "@types/react-dom": "^18.2.13",
25
- "react": "^18.2.0",
26
- "react-dom": "^18.2.0",
27
27
  "editorjs-strikethrough": "^1.0.0",
28
28
  "hex-to-css-filter": "^5.4.0",
29
+ "lexical": "^0.12.4",
30
+ "react": "^18.2.0",
31
+ "react-dom": "^18.2.0",
29
32
  "react-editor-js": "^2.1.0",
30
33
  "remixicon": "^3.4.0",
31
34
  "typescript": "^4.5.5",