@thangph2146/nextjs-editor 1.0.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.
package/dist/index.css ADDED
@@ -0,0 +1,326 @@
1
+ /* src/components/editor/themes/editor-theme.css */
2
+ .EditorTheme__code {
3
+ background-color: transparent;
4
+ font-family:
5
+ Menlo,
6
+ Consolas,
7
+ Monaco,
8
+ monospace;
9
+ display: block;
10
+ padding: 8px 8px 8px 52px;
11
+ line-height: 1.53;
12
+ font-size: 13px;
13
+ margin: 0;
14
+ margin-top: 8px;
15
+ margin-bottom: 8px;
16
+ overflow-x: auto;
17
+ border: 1px solid #ccc;
18
+ position: relative;
19
+ border-radius: 8px;
20
+ tab-size: 2;
21
+ }
22
+ .EditorTheme__code:before {
23
+ content: attr(data-gutter);
24
+ position: absolute;
25
+ background-color: transparent;
26
+ border-right: 1px solid #ccc;
27
+ left: 0;
28
+ top: 0;
29
+ padding: 8px;
30
+ color: #777;
31
+ white-space: pre-wrap;
32
+ text-align: right;
33
+ min-width: 25px;
34
+ }
35
+ .EditorTheme__table {
36
+ border-collapse: collapse;
37
+ border-spacing: 0;
38
+ overflow-y: scroll;
39
+ overflow-x: scroll;
40
+ table-layout: auto;
41
+ width: 100%;
42
+ margin: 0px 0px 30px 0px;
43
+ }
44
+ .EditorTheme__tableCell,
45
+ .EditorTheme__tableCellHeader {
46
+ min-width: 0;
47
+ word-wrap: break-word;
48
+ overflow-wrap: break-word;
49
+ white-space: normal;
50
+ }
51
+ .EditorTheme__table tr > td:first-child,
52
+ .EditorTheme__table tr > th:first-child {
53
+ width: 3rem;
54
+ max-width: 3rem;
55
+ }
56
+ .EditorTheme__tokenComment {
57
+ color: slategray;
58
+ }
59
+ .EditorTheme__tokenPunctuation {
60
+ color: #999;
61
+ }
62
+ .EditorTheme__tokenProperty {
63
+ color: #905;
64
+ }
65
+ .EditorTheme__tokenSelector {
66
+ color: #690;
67
+ }
68
+ .EditorTheme__tokenOperator {
69
+ color: #9a6e3a;
70
+ }
71
+ .EditorTheme__tokenAttr {
72
+ color: #07a;
73
+ }
74
+ .EditorTheme__tokenVariable {
75
+ color: #e90;
76
+ }
77
+ .EditorTheme__tokenFunction {
78
+ color: #dd4a68;
79
+ }
80
+ .Collapsible__container {
81
+ background-color: var(--background);
82
+ border: 1px solid #ccc;
83
+ border-radius: 0.5rem;
84
+ margin-bottom: 0.5rem;
85
+ }
86
+ .Collapsible__title {
87
+ padding: 0.25rem;
88
+ padding-left: 1rem;
89
+ position: relative;
90
+ font-weight: bold;
91
+ outline: none;
92
+ cursor: pointer;
93
+ list-style-type: disclosure-closed;
94
+ list-style-position: inside;
95
+ }
96
+ .Collapsible__title p {
97
+ display: inline-flex;
98
+ }
99
+ .Collapsible__title::marker {
100
+ color: lightgray;
101
+ }
102
+ .ContentEditable__root ul[data-list-color],
103
+ .ContentEditable__root ol[data-list-color] {
104
+ list-style-color: var(--list-marker-color, currentColor);
105
+ }
106
+ .ContentEditable__root ul[data-list-color] li::marker,
107
+ .ContentEditable__root ol[data-list-color] li::marker {
108
+ color: var(--list-marker-color, currentColor);
109
+ }
110
+ .Collapsible__container[open] > .Collapsible__title {
111
+ list-style-type: disclosure-open;
112
+ }
113
+ [data-lexical-layout-container=true] {
114
+ display: grid;
115
+ width: 100%;
116
+ max-width: 100%;
117
+ box-sizing: border-box;
118
+ grid-template-columns: 1fr;
119
+ }
120
+ @media (min-width: 400px) {
121
+ [data-lexical-layout-container=true] {
122
+ grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
123
+ }
124
+ }
125
+ [data-lexical-layout-item=true],
126
+ div.border.border-dashed {
127
+ min-width: 0;
128
+ width: 100%;
129
+ max-width: 100%;
130
+ box-sizing: border-box;
131
+ overflow: hidden;
132
+ }
133
+ .ContentEditable__root.editor-readonly [data-lexical-layout-item=true],
134
+ .ContentEditable__root.editor-readonly div.border.border-dashed,
135
+ .ContentEditable__root.editor-readonly div[class*=border-dashed],
136
+ .ContentEditable__root[data-editor-readonly=true] [data-lexical-layout-item=true],
137
+ .ContentEditable__root[data-editor-readonly=true] div.border.border-dashed,
138
+ .ContentEditable__root[data-editor-readonly=true] div[class*=border-dashed],
139
+ .ContentEditable__root[contenteditable=false] [data-lexical-layout-item=true],
140
+ .ContentEditable__root[contenteditable=false] div.border.border-dashed,
141
+ .ContentEditable__root[contenteditable=false] div[class*=border-dashed],
142
+ .ContentEditable__root[aria-readonly=true] [data-lexical-layout-item=true],
143
+ .ContentEditable__root[aria-readonly=true] div.border.border-dashed,
144
+ .ContentEditable__root[aria-readonly=true] div[class*=border-dashed] {
145
+ border: none;
146
+ padding: 0;
147
+ }
148
+ [data-lexical-layout-item=true] img,
149
+ div.border.border-dashed img {
150
+ max-width: 100%;
151
+ width: 100%;
152
+ height: auto;
153
+ object-fit: contain;
154
+ display: inline-block;
155
+ }
156
+ [data-lexical-layout-item=true] p[style*="text-align: left"],
157
+ div.border.border-dashed p[style*="text-align: left"] {
158
+ text-align: left;
159
+ }
160
+ [data-lexical-layout-item=true] p[style*="text-align: center"],
161
+ div.border.border-dashed p[style*="text-align: center"] {
162
+ text-align: center;
163
+ }
164
+ [data-lexical-layout-item=true] p[style*="text-align: right"],
165
+ div.border.border-dashed p[style*="text-align: right"] {
166
+ text-align: right;
167
+ }
168
+ [data-lexical-layout-item=true] p[style*="text-align: left"] .editor-image,
169
+ div.border.border-dashed p[style*="text-align: left"] .editor-image {
170
+ margin-left: 0;
171
+ margin-right: auto;
172
+ }
173
+ [data-lexical-layout-item=true] p[style*="text-align: center"] .editor-image,
174
+ div.border.border-dashed p[style*="text-align: center"] .editor-image {
175
+ margin-left: auto;
176
+ margin-right: auto;
177
+ }
178
+ [data-lexical-layout-item=true] p[style*="text-align: right"] .editor-image,
179
+ div.border.border-dashed p[style*="text-align: right"] .editor-image {
180
+ margin-left: auto;
181
+ margin-right: 0;
182
+ }
183
+ [data-lexical-layout-item=true] *,
184
+ div.border.border-dashed * {
185
+ max-width: 100%;
186
+ }
187
+ [data-lexical-layout-item=true] .editor-image,
188
+ div.border.border-dashed .editor-image {
189
+ max-width: 100%;
190
+ width: 100%;
191
+ display: inline-block;
192
+ }
193
+ [data-lexical-layout-item=true] .editor-image > div,
194
+ div.border.border-dashed .editor-image > div {
195
+ max-width: 100%;
196
+ width: 100%;
197
+ display: block;
198
+ }
199
+ [data-lexical-layout-item=true] .editor-image img,
200
+ div.border.border-dashed .editor-image img {
201
+ max-width: 100%;
202
+ width: 100%;
203
+ height: auto;
204
+ object-fit: contain;
205
+ }
206
+ .ContentEditable__root img {
207
+ max-width: 100%;
208
+ height: auto;
209
+ }
210
+ .ContentEditable__root .editor-image .editor-image__sized,
211
+ .ContentEditable__root .editor-image .editor-image__sized img {
212
+ max-width: 100%;
213
+ width: 100%;
214
+ height: auto;
215
+ box-sizing: border-box;
216
+ }
217
+ .ContentEditable__root .editor-image,
218
+ .ContentEditable__root .editor-image > div {
219
+ max-width: 100%;
220
+ }
221
+ .ContentEditable__root iframe {
222
+ max-width: 100%;
223
+ width: 100%;
224
+ }
225
+ [data-lexical-decorator=true] > div.user-select-none {
226
+ display: block;
227
+ width: 100%;
228
+ max-width: 100%;
229
+ margin-left: auto;
230
+ margin-right: auto;
231
+ overflow: visible;
232
+ box-sizing: border-box;
233
+ }
234
+ [data-lexical-decorator=true] > div.user-select-none > .relative:not(.editor-embed-frame) {
235
+ display: block;
236
+ width: 100%;
237
+ max-width: 100%;
238
+ height: auto;
239
+ margin-left: auto;
240
+ margin-right: auto;
241
+ box-sizing: border-box;
242
+ }
243
+ [data-lexical-decorator=true] > div.user-select-none iframe,
244
+ [data-lexical-decorator=true] > div.user-select-none video,
245
+ [data-lexical-decorator=true] > div.user-select-none embed {
246
+ width: 100%;
247
+ height: 100%;
248
+ display: block;
249
+ margin-left: auto;
250
+ margin-right: auto;
251
+ }
252
+ .ContentEditable__root [data-lexical-decorator=true] > div.user-select-none {
253
+ width: 100%;
254
+ max-width: 100%;
255
+ }
256
+ .ContentEditable__root [data-lexical-decorator=true] > div.user-select-none > .relative.inline-block:not(.editor-embed-frame) {
257
+ width: 100%;
258
+ max-width: 100%;
259
+ height: auto;
260
+ display: block;
261
+ }
262
+ [data-lexical-decorator=true] > div.user-select-none > .editor-embed-frame,
263
+ .ContentEditable__root [data-lexical-decorator=true] > div.user-select-none > .relative.editor-embed-frame {
264
+ display: inline-block;
265
+ max-width: 100%;
266
+ margin-left: 0;
267
+ margin-right: 0;
268
+ box-sizing: border-box;
269
+ vertical-align: top;
270
+ }
271
+ .editor-embed-frame {
272
+ position: relative;
273
+ box-sizing: border-box;
274
+ min-width: 0;
275
+ vertical-align: top;
276
+ line-height: 0;
277
+ height: auto;
278
+ }
279
+ .editor-embed-frame--full {
280
+ display: block;
281
+ width: 100%;
282
+ }
283
+ .editor-embed-frame--inline {
284
+ display: inline-block;
285
+ }
286
+ .editor-embed-frame--inline {
287
+ max-width: 100%;
288
+ }
289
+ [data-lexical-align=left] .editor-embed-frame--inline,
290
+ [data-lexical-align=start] .editor-embed-frame--inline {
291
+ margin-left: 0;
292
+ margin-right: auto;
293
+ }
294
+ [data-lexical-align=center] .editor-embed-frame--inline {
295
+ margin-left: auto;
296
+ margin-right: auto;
297
+ }
298
+ [data-lexical-align=right] .editor-embed-frame--inline,
299
+ [data-lexical-align=end] .editor-embed-frame--inline {
300
+ margin-left: auto;
301
+ margin-right: 0;
302
+ }
303
+ .editor-embed-frame iframe {
304
+ position: absolute;
305
+ inset: 0;
306
+ width: 100%;
307
+ height: 100%;
308
+ }
309
+ #editor-x .ContentEditable__root[contenteditable=false],
310
+ #editor-x .ContentEditable__root[aria-readonly=true] {
311
+ border: none;
312
+ }
313
+ #editor-x .ContentEditable__root {
314
+ max-width: 100%;
315
+ min-width: 0;
316
+ }
317
+ #editor-x .ContentEditable__root .editor-image,
318
+ #editor-x .ContentEditable__root .editor-image > div,
319
+ #editor-x .ContentEditable__root .editor-image .editor-image__sized,
320
+ #editor-x .ContentEditable__root .editor-image .editor-image__sized img {
321
+ max-width: 100%;
322
+ width: 100%;
323
+ height: auto;
324
+ box-sizing: border-box;
325
+ }
326
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/editor/themes/editor-theme.css"],"sourcesContent":[".EditorTheme__code {\r\n background-color: transparent;\r\n font-family: Menlo, Consolas, Monaco, monospace;\r\n display: block;\r\n padding: 8px 8px 8px 52px;\r\n line-height: 1.53;\r\n font-size: 13px;\r\n margin: 0;\r\n margin-top: 8px;\r\n margin-bottom: 8px;\r\n overflow-x: auto;\r\n border: 1px solid #ccc;\r\n position: relative;\r\n border-radius: 8px;\r\n tab-size: 2;\r\n}\r\n.EditorTheme__code:before {\r\n content: attr(data-gutter);\r\n position: absolute;\r\n background-color: transparent;\r\n border-right: 1px solid #ccc;\r\n left: 0;\r\n top: 0;\r\n padding: 8px;\r\n color: #777;\r\n white-space: pre-wrap;\r\n text-align: right;\r\n min-width: 25px;\r\n}\r\n.EditorTheme__table {\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n overflow-y: scroll;\r\n overflow-x: scroll;\r\n table-layout: auto; /* auto để width trên td/th được tôn trọng, cột \"TT\" không bị kéo 243px */\r\n width: 100%;\r\n margin: 0px 0px 30px 0px;\r\n}\r\n\r\n/* Cho phép cột tôn trọng width đã chỉnh (resize), không bị kéo về min từ theme/class khác */\r\n.EditorTheme__tableCell,\r\n.EditorTheme__tableCellHeader {\r\n min-width: 0 ;\r\n word-wrap: break-word;\r\n overflow-wrap: break-word;\r\n white-space: normal;\r\n}\r\n\r\n/* Cột đầu tiên (thứ tự, \"TT\") mặc định hẹp; resize vẫn ghi đè qua inline style */\r\n.EditorTheme__table tr > td:first-child,\r\n.EditorTheme__table tr > th:first-child {\r\n width: 3rem;\r\n max-width: 3rem;\r\n}\r\n.EditorTheme__tokenComment {\r\n color: slategray;\r\n}\r\n.EditorTheme__tokenPunctuation {\r\n color: #999;\r\n}\r\n.EditorTheme__tokenProperty {\r\n color: #905;\r\n}\r\n.EditorTheme__tokenSelector {\r\n color: #690;\r\n}\r\n.EditorTheme__tokenOperator {\r\n color: #9a6e3a;\r\n}\r\n.EditorTheme__tokenAttr {\r\n color: #07a;\r\n}\r\n.EditorTheme__tokenVariable {\r\n color: #e90;\r\n}\r\n.EditorTheme__tokenFunction {\r\n color: #dd4a68;\r\n}\r\n\r\n.Collapsible__container {\r\n background-color: var(--background);\r\n border: 1px solid #ccc;\r\n border-radius: 0.5rem;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\n.Collapsible__title{\r\n padding: 0.25rem;\r\n padding-left: 1rem;\r\n position: relative;\r\n font-weight: bold;\r\n outline: none;\r\n cursor: pointer;\r\n list-style-type: disclosure-closed;\r\n list-style-position: inside;\r\n}\r\n\r\n.Collapsible__title p{\r\n display: inline-flex;\r\n}\r\n.Collapsible__title::marker{\r\n color: lightgray;\r\n}\r\n\r\n/* Màu bullet/số list khi dùng \"Đổi màu list\" (data-list-color + --list-marker-color do plugin set) */\r\n.ContentEditable__root ul[data-list-color],\r\n.ContentEditable__root ol[data-list-color] {\r\n list-style-color: var(--list-marker-color, currentColor) ;\r\n}\r\n.ContentEditable__root ul[data-list-color] li::marker,\r\n.ContentEditable__root ol[data-list-color] li::marker {\r\n color: var(--list-marker-color, currentColor) ;\r\n}\r\n.Collapsible__container[open] >.Collapsible__title {\r\n list-style-type: disclosure-open;\r\n}\r\n\r\n/* Layout Container Styles */\r\n[data-lexical-layout-container=\"true\"] {\r\n display: grid ;\r\n width: 100% ;\r\n max-width: 100% ;\r\n box-sizing: border-box ;\r\n /* Responsive grid: single column by default */\r\n grid-template-columns: 1fr ;\r\n}\r\n\r\n/* Auto-fit columns with min 400px when container is wide enough */\r\n@media (min-width: 400px) {\r\n [data-lexical-layout-container=\"true\"] {\r\n grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)) ;\r\n }\r\n}\r\n\r\n/* Layout Item Styles - Ensure items don't overflow */\r\n[data-lexical-layout-item=\"true\"],\r\ndiv.border.border-dashed {\r\n min-width: 0 ;\r\n width: 100% ;\r\n max-width: 100% ;\r\n box-sizing: border-box ;\r\n overflow: hidden ;\r\n}\r\n\r\n/* Hide border and padding when editor is read-only - dùng selector đủ mạnh thay vì !important */\r\n.ContentEditable__root.editor-readonly [data-lexical-layout-item=\"true\"],\r\n.ContentEditable__root.editor-readonly div.border.border-dashed,\r\n.ContentEditable__root.editor-readonly div[class*=\"border-dashed\"],\r\n.ContentEditable__root[data-editor-readonly=\"true\"] [data-lexical-layout-item=\"true\"],\r\n.ContentEditable__root[data-editor-readonly=\"true\"] div.border.border-dashed,\r\n.ContentEditable__root[data-editor-readonly=\"true\"] div[class*=\"border-dashed\"],\r\n.ContentEditable__root[contenteditable=\"false\"] [data-lexical-layout-item=\"true\"],\r\n.ContentEditable__root[contenteditable=\"false\"] div.border.border-dashed,\r\n.ContentEditable__root[contenteditable=\"false\"] div[class*=\"border-dashed\"],\r\n.ContentEditable__root[aria-readonly=\"true\"] [data-lexical-layout-item=\"true\"],\r\n.ContentEditable__root[aria-readonly=\"true\"] div.border.border-dashed,\r\n.ContentEditable__root[aria-readonly=\"true\"] div[class*=\"border-dashed\"] {\r\n border: none;\r\n padding: 0;\r\n}\r\n\r\n/* Ensure images inside layout items are responsive and respect text-align */\r\n[data-lexical-layout-item=\"true\"] img,\r\ndiv.border.border-dashed img {\r\n max-width: 100% ;\r\n width: 100% ;\r\n height: auto ;\r\n object-fit: contain ;\r\n display: inline-block ;\r\n}\r\n\r\n/* Support text-align for images in layout items */\r\n[data-lexical-layout-item=\"true\"] p[style*=\"text-align: left\"],\r\ndiv.border.border-dashed p[style*=\"text-align: left\"] {\r\n text-align: left ;\r\n}\r\n\r\n[data-lexical-layout-item=\"true\"] p[style*=\"text-align: center\"],\r\ndiv.border.border-dashed p[style*=\"text-align: center\"] {\r\n text-align: center ;\r\n}\r\n\r\n[data-lexical-layout-item=\"true\"] p[style*=\"text-align: right\"],\r\ndiv.border.border-dashed p[style*=\"text-align: right\"] {\r\n text-align: right ;\r\n}\r\n\r\n/* Ensure image wrapper respects parent text-align */\r\n[data-lexical-layout-item=\"true\"] p[style*=\"text-align: left\"] .editor-image,\r\ndiv.border.border-dashed p[style*=\"text-align: left\"] .editor-image {\r\n margin-left: 0 ;\r\n margin-right: auto ;\r\n}\r\n\r\n[data-lexical-layout-item=\"true\"] p[style*=\"text-align: center\"] .editor-image,\r\ndiv.border.border-dashed p[style*=\"text-align: center\"] .editor-image {\r\n margin-left: auto ;\r\n margin-right: auto ;\r\n}\r\n\r\n[data-lexical-layout-item=\"true\"] p[style*=\"text-align: right\"] .editor-image,\r\ndiv.border.border-dashed p[style*=\"text-align: right\"] .editor-image {\r\n margin-left: auto ;\r\n margin-right: 0 ;\r\n}\r\n\r\n/* Ensure all content inside layout items scales properly */\r\n[data-lexical-layout-item=\"true\"] *,\r\ndiv.border.border-dashed * {\r\n max-width: 100% ;\r\n}\r\n\r\n/* Ensure image wrapper scales */\r\n[data-lexical-layout-item=\"true\"] .editor-image,\r\ndiv.border.border-dashed .editor-image {\r\n max-width: 100% ;\r\n width: 100% ;\r\n display: inline-block ;\r\n}\r\n\r\n[data-lexical-layout-item=\"true\"] .editor-image > div,\r\ndiv.border.border-dashed .editor-image > div {\r\n max-width: 100% ;\r\n width: 100% ;\r\n display: block ;\r\n}\r\n\r\n/* Force images to respect container width */\r\n[data-lexical-layout-item=\"true\"] .editor-image img,\r\ndiv.border.border-dashed .editor-image img {\r\n max-width: 100% ;\r\n width: 100% ;\r\n height: auto ;\r\n object-fit: contain ;\r\n}\r\n\r\n/* Generic responsive media inside editor content */\r\n.ContentEditable__root img {\r\n max-width: 100% ;\r\n height: auto ;\r\n}\r\n\r\n/* Wrapper và ảnh có kích thước tường minh: ép luôn trong khung, responsive */\r\n.ContentEditable__root .editor-image .editor-image__sized,\r\n.ContentEditable__root .editor-image .editor-image__sized img {\r\n max-width: 100% ;\r\n width: 100% ;\r\n height: auto ;\r\n box-sizing: border-box ;\r\n}\r\n\r\n.ContentEditable__root .editor-image,\r\n.ContentEditable__root .editor-image > div {\r\n max-width: 100% ;\r\n}\r\n\r\n.ContentEditable__root iframe {\r\n max-width: 100% ;\r\n width: 100% ;\r\n}\r\n\r\n/* Embed wrappers (BlockWithAlignableContents base class) */\r\n[data-lexical-decorator=\"true\"] > div.user-select-none {\r\n display: block ;\r\n width: 100% ;\r\n max-width: 100% ;\r\n margin-left: auto ;\r\n margin-right: auto ;\r\n overflow: visible ;\r\n box-sizing: border-box ;\r\n}\r\n\r\n[data-lexical-decorator=\"true\"] > div.user-select-none > .relative:not(.editor-embed-frame) {\r\n display: block ;\r\n width: 100% ;\r\n max-width: 100% ;\r\n height: auto ;\r\n margin-left: auto ;\r\n margin-right: auto ;\r\n box-sizing: border-box ;\r\n}\r\n\r\n[data-lexical-decorator=\"true\"] > div.user-select-none iframe,\r\n[data-lexical-decorator=\"true\"] > div.user-select-none video,\r\n[data-lexical-decorator=\"true\"] > div.user-select-none embed {\r\n width: 100% ;\r\n height: 100% ;\r\n display: block;\r\n margin-left: auto;\r\n margin-right: auto;\r\n}\r\n\r\n.ContentEditable__root [data-lexical-decorator=\"true\"] > div.user-select-none {\r\n width: 100% ;\r\n max-width: 100% ;\r\n}\r\n\r\n.ContentEditable__root\r\n [data-lexical-decorator=\"true\"]\r\n > div.user-select-none\r\n > .relative.inline-block:not(.editor-embed-frame) {\r\n width: 100% ;\r\n max-width: 100% ;\r\n height: auto ;\r\n display: block ;\r\n}\r\n\r\n/* Responsive overrides for resizable embed frames (e.g., YouTube) */\r\n[data-lexical-decorator=\"true\"] > div.user-select-none > .editor-embed-frame,\r\n.ContentEditable__root\r\n [data-lexical-decorator=\"true\"]\r\n > div.user-select-none\r\n > .relative.editor-embed-frame {\r\n display: inline-block ;\r\n max-width: 100% ;\r\n margin-left: 0 ;\r\n margin-right: 0 ;\r\n box-sizing: border-box ;\r\n vertical-align: top;\r\n}\r\n\r\n.editor-embed-frame {\r\n position: relative;\r\n box-sizing: border-box;\r\n min-width: 0;\r\n vertical-align: top;\r\n line-height: 0;\r\n height: auto;\r\n}\r\n\r\n.editor-embed-frame--full {\r\n display: block ;\r\n width: 100% ;\r\n}\r\n\r\n.editor-embed-frame--inline {\r\n display: inline-block ;\r\n}\r\n\r\n.editor-embed-frame--inline {\r\n max-width: 100%;\r\n}\r\n\r\n[data-lexical-align=\"left\"] .editor-embed-frame--inline,\r\n[data-lexical-align=\"start\"] .editor-embed-frame--inline {\r\n margin-left: 0 ;\r\n margin-right: auto ;\r\n}\r\n\r\n[data-lexical-align=\"center\"] .editor-embed-frame--inline {\r\n margin-left: auto ;\r\n margin-right: auto ;\r\n}\r\n\r\n[data-lexical-align=\"right\"] .editor-embed-frame--inline,\r\n[data-lexical-align=\"end\"] .editor-embed-frame--inline {\r\n margin-left: auto ;\r\n margin-right: 0 ;\r\n}\r\n\r\n.editor-embed-frame iframe {\r\n position: absolute;\r\n inset: 0;\r\n width: 100% ;\r\n height: 100% ;\r\n}\r\n\r\n/* Remove border for readonly editor surface */\r\n#editor-x .ContentEditable__root[contenteditable=\"false\"],\r\n#editor-x .ContentEditable__root[aria-readonly=\"true\"] {\r\n border: none ;\r\n}\r\n\r\n/* Admin editor: ép ảnh và wrapper luôn responsive trong #editor-x */\r\n#editor-x .ContentEditable__root {\r\n max-width: 100% ;\r\n min-width: 0 ;\r\n}\r\n\r\n#editor-x .ContentEditable__root .editor-image,\r\n#editor-x .ContentEditable__root .editor-image > div,\r\n#editor-x .ContentEditable__root .editor-image .editor-image__sized,\r\n#editor-x .ContentEditable__root .editor-image .editor-image__sized img {\r\n max-width: 100% ;\r\n width: 100% ;\r\n height: auto ;\r\n box-sizing: border-box ;\r\n}\r\n"],"mappings":"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","names":[]}
@@ -0,0 +1,15 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { EditorState, SerializedEditorState } from 'lexical';
3
+ export { EditorState, SerializedEditorState } from 'lexical';
4
+
5
+ declare function Editor({ editorState, editorSerializedState, onChange, onSerializedChange, readOnly, }: {
6
+ editorState?: EditorState;
7
+ editorSerializedState?: SerializedEditorState;
8
+ onChange?: (editorState: EditorState) => void;
9
+ onSerializedChange?: (editorSerializedState: SerializedEditorState) => void;
10
+ readOnly?: boolean;
11
+ }): react_jsx_runtime.JSX.Element;
12
+
13
+ declare const editorThemePath = "./editor-theme.css";
14
+
15
+ export { Editor, editorThemePath };
@@ -0,0 +1,15 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { EditorState, SerializedEditorState } from 'lexical';
3
+ export { EditorState, SerializedEditorState } from 'lexical';
4
+
5
+ declare function Editor({ editorState, editorSerializedState, onChange, onSerializedChange, readOnly, }: {
6
+ editorState?: EditorState;
7
+ editorSerializedState?: SerializedEditorState;
8
+ onChange?: (editorState: EditorState) => void;
9
+ onSerializedChange?: (editorSerializedState: SerializedEditorState) => void;
10
+ readOnly?: boolean;
11
+ }): react_jsx_runtime.JSX.Element;
12
+
13
+ declare const editorThemePath = "./editor-theme.css";
14
+
15
+ export { Editor, editorThemePath };