@lexion-rte/react 0.1.7 → 0.1.9
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.
- package/CHANGELOG.md +12 -0
- package/README.md +2 -0
- package/dist/LexionEditorView.d.ts.map +1 -1
- package/dist/LexionEditorView.js +13 -3
- package/dist/LexionEditorView.js.map +1 -1
- package/package.json +3 -3
- package/src/LexionEditorView.tsx +14 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @lexion-rte/react
|
|
2
2
|
|
|
3
|
+
## 0.1.9
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Harden ProseMirror rendering defaults by enforcing required root editor white-space styles in `LexionEditorView`, preventing the common `prosemirror.css` console warning from appearing in React integrations.
|
|
8
|
+
|
|
9
|
+
## 0.1.8
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Preserve undo history when a controlled editor value is synced back into the adapter without any actual document change. This also keeps the rendered editor state and status bar aligned when React, Vue, or the web adapter receives the current document again.
|
|
14
|
+
|
|
3
15
|
## 0.1.7
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -18,6 +18,7 @@ It supports:
|
|
|
18
18
|
- uncontrolled mode (`defaultValue`)
|
|
19
19
|
- custom external editor instances
|
|
20
20
|
- read-only mode
|
|
21
|
+
- automatic ProseMirror base white-space safeguards to avoid console CSS warnings
|
|
21
22
|
|
|
22
23
|
## Install
|
|
23
24
|
|
|
@@ -86,3 +87,4 @@ export function SharedEditor() {
|
|
|
86
87
|
|
|
87
88
|
- In controlled mode, pass updated `value` back on every `onChange` call.
|
|
88
89
|
- The component renders the same footer message as other adapters.
|
|
90
|
+
- The editor root enforces required ProseMirror `white-space` styles, so users should not see the `prosemirror.css` warning.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LexionEditorView.d.ts","sourceRoot":"","sources":["../src/LexionEditorView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EACL,YAAY,EAEZ,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAChC;
|
|
1
|
+
{"version":3,"file":"LexionEditorView.d.ts","sourceRoot":"","sources":["../src/LexionEditorView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EACL,YAAY,EAEZ,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAChC;AAcD,eAAO,MAAM,gBAAgB,GAAI,gFAS9B,qBAAqB,4CAoKvB,CAAC"}
|
package/dist/LexionEditorView.js
CHANGED
|
@@ -7,6 +7,7 @@ const serializeJSON = (document) => JSON.stringify(document);
|
|
|
7
7
|
const STATUS_BAR_STYLE = lexionStatusBarAppearance.style;
|
|
8
8
|
const STATUS_BAR_START_STYLE = lexionStatusBarAppearance.groupStyles.start;
|
|
9
9
|
const STATUS_BAR_END_STYLE = lexionStatusBarAppearance.groupStyles.end;
|
|
10
|
+
const PROSEMIRROR_REQUIRED_STYLE_ATTRIBUTE = "white-space: pre-wrap !important; word-wrap: break-word !important; -webkit-font-variant-ligatures: none; font-variant-ligatures: none;";
|
|
10
11
|
const splitStatusBarItems = (items) => ({
|
|
11
12
|
start: items.filter((item) => (item.align ?? "start") === "start"),
|
|
12
13
|
end: items.filter((item) => (item.align ?? "start") === "end")
|
|
@@ -42,11 +43,17 @@ export const LexionEditorView = ({ editor, value, defaultValue, onChange, onRead
|
|
|
42
43
|
return;
|
|
43
44
|
}
|
|
44
45
|
if (isControlled && value !== undefined) {
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
const nextValue = serializeJSON(value);
|
|
47
|
+
if (nextValue !== serializeJSON(activeEditor.getJSON())) {
|
|
48
|
+
activeEditor.setJSON(value);
|
|
49
|
+
}
|
|
50
|
+
lastAppliedValueRef.current = nextValue;
|
|
47
51
|
}
|
|
48
52
|
const view = new EditorView(containerRef.current, {
|
|
49
53
|
state: activeEditor.state,
|
|
54
|
+
attributes: {
|
|
55
|
+
style: PROSEMIRROR_REQUIRED_STYLE_ATTRIBUTE
|
|
56
|
+
},
|
|
50
57
|
editable: () => !latestReadOnly.current,
|
|
51
58
|
dispatchTransaction: (transaction) => {
|
|
52
59
|
activeEditor.dispatchTransaction(transaction);
|
|
@@ -79,7 +86,10 @@ export const LexionEditorView = ({ editor, value, defaultValue, onChange, onRead
|
|
|
79
86
|
return;
|
|
80
87
|
}
|
|
81
88
|
const nextValue = serializeJSON(value);
|
|
82
|
-
if (nextValue === lastAppliedValueRef.current) {
|
|
89
|
+
if (nextValue === lastAppliedValueRef.current || nextValue === serializeJSON(activeEditor.getJSON())) {
|
|
90
|
+
lastAppliedValueRef.current = nextValue;
|
|
91
|
+
viewRef.current?.updateState(activeEditor.state);
|
|
92
|
+
setStatusBarItems(activeEditor.getStatusBarItems());
|
|
83
93
|
return;
|
|
84
94
|
}
|
|
85
95
|
activeEditor.setJSON(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LexionEditorView.js","sourceRoot":"","sources":["../src/LexionEditorView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,yBAAyB,EAG1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAa9D,MAAM,aAAa,GAAG,CAAC,QAAsB,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACnF,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,KAAsB,CAAC;AAC1E,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,WAAW,CAAC,KAAsB,CAAC;AAC5F,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,WAAW,CAAC,GAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"LexionEditorView.js","sourceRoot":"","sources":["../src/LexionEditorView.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lexion-rte/react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "React adapter for the Lexion editor platform.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"prosemirror-view": "^1.37.2",
|
|
38
|
-
"@lexion-rte/
|
|
39
|
-
"@lexion-rte/
|
|
38
|
+
"@lexion-rte/starter-kit": "0.2.2",
|
|
39
|
+
"@lexion-rte/core": "0.1.5"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"react": "^18.2.0 || ^19.0.0",
|
package/src/LexionEditorView.tsx
CHANGED
|
@@ -24,6 +24,8 @@ const serializeJSON = (document: JSONDocument): string => JSON.stringify(documen
|
|
|
24
24
|
const STATUS_BAR_STYLE = lexionStatusBarAppearance.style as CSSProperties;
|
|
25
25
|
const STATUS_BAR_START_STYLE = lexionStatusBarAppearance.groupStyles.start as CSSProperties;
|
|
26
26
|
const STATUS_BAR_END_STYLE = lexionStatusBarAppearance.groupStyles.end as CSSProperties;
|
|
27
|
+
const PROSEMIRROR_REQUIRED_STYLE_ATTRIBUTE =
|
|
28
|
+
"white-space: pre-wrap !important; word-wrap: break-word !important; -webkit-font-variant-ligatures: none; font-variant-ligatures: none;";
|
|
27
29
|
|
|
28
30
|
const splitStatusBarItems = (items: readonly LexionStatusBarItem[]) => ({
|
|
29
31
|
start: items.filter((item) => (item.align ?? "start") === "start"),
|
|
@@ -81,12 +83,18 @@ export const LexionEditorView = ({
|
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
if (isControlled && value !== undefined) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
const nextValue = serializeJSON(value);
|
|
87
|
+
if (nextValue !== serializeJSON(activeEditor.getJSON())) {
|
|
88
|
+
activeEditor.setJSON(value);
|
|
89
|
+
}
|
|
90
|
+
lastAppliedValueRef.current = nextValue;
|
|
86
91
|
}
|
|
87
92
|
|
|
88
93
|
const view = new EditorView(containerRef.current, {
|
|
89
94
|
state: activeEditor.state,
|
|
95
|
+
attributes: {
|
|
96
|
+
style: PROSEMIRROR_REQUIRED_STYLE_ATTRIBUTE
|
|
97
|
+
},
|
|
90
98
|
editable: () => !latestReadOnly.current,
|
|
91
99
|
dispatchTransaction: (transaction) => {
|
|
92
100
|
activeEditor.dispatchTransaction(transaction);
|
|
@@ -125,7 +133,10 @@ export const LexionEditorView = ({
|
|
|
125
133
|
}
|
|
126
134
|
|
|
127
135
|
const nextValue = serializeJSON(value);
|
|
128
|
-
if (nextValue === lastAppliedValueRef.current) {
|
|
136
|
+
if (nextValue === lastAppliedValueRef.current || nextValue === serializeJSON(activeEditor.getJSON())) {
|
|
137
|
+
lastAppliedValueRef.current = nextValue;
|
|
138
|
+
viewRef.current?.updateState(activeEditor.state);
|
|
139
|
+
setStatusBarItems(activeEditor.getStatusBarItems());
|
|
129
140
|
return;
|
|
130
141
|
}
|
|
131
142
|
|