@flexiui/svelte-rich-text 0.0.31 → 0.0.33
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/RichText.svelte
CHANGED
|
@@ -50,6 +50,21 @@
|
|
|
50
50
|
onSelectionUpdate?: (params: any) => void;
|
|
51
51
|
onPaste?: (params: any) => void;
|
|
52
52
|
};
|
|
53
|
+
config?: {
|
|
54
|
+
editorBgColor?: string;
|
|
55
|
+
editorRadius?: string;
|
|
56
|
+
toolbarStickyPosition?: number;
|
|
57
|
+
toolbarZIndex?: number;
|
|
58
|
+
toolbarBgColor?: string;
|
|
59
|
+
toolbarPadding?: string;
|
|
60
|
+
toolbarGap?: string;
|
|
61
|
+
docMaxWidth?: string;
|
|
62
|
+
docPadding?: string;
|
|
63
|
+
docBg?: string;
|
|
64
|
+
docMarginInline?: string;
|
|
65
|
+
docMarginBlock?: string;
|
|
66
|
+
docRadius?: string;
|
|
67
|
+
}
|
|
53
68
|
}
|
|
54
69
|
|
|
55
70
|
let {
|
|
@@ -72,9 +87,30 @@
|
|
|
72
87
|
onSelectionUpdate: () => {},
|
|
73
88
|
onPaste: () => {},
|
|
74
89
|
},
|
|
90
|
+
config,
|
|
75
91
|
}: Props = $props();
|
|
76
92
|
|
|
77
93
|
let editor = $state() as Readable<Editor>;
|
|
94
|
+
const defaultEditorConfig = {
|
|
95
|
+
editorBgColor: 'transparent',
|
|
96
|
+
editorRadius: '12px',
|
|
97
|
+
toolbarStickyPosition: 0,
|
|
98
|
+
toolbarBgColor: '#242424',
|
|
99
|
+
toolbarZIndex: 10,
|
|
100
|
+
toolbarPadding: '8px',
|
|
101
|
+
toolbarGap: '5px',
|
|
102
|
+
docMaxWidth: '1024px',
|
|
103
|
+
docPadding: '2rem',
|
|
104
|
+
docBg: 'transparent',
|
|
105
|
+
docMarginInline: 'auto',
|
|
106
|
+
docMarginBlock: '2rem',
|
|
107
|
+
docRadius: '0',
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
let editorConfig = $state({
|
|
111
|
+
...defaultEditorConfig,
|
|
112
|
+
...(config ?? {})
|
|
113
|
+
});
|
|
78
114
|
|
|
79
115
|
const extensions = [
|
|
80
116
|
// Color.configure({ types: [TextStyle.name, ListItem.name] }),
|
|
@@ -540,7 +576,24 @@
|
|
|
540
576
|
}
|
|
541
577
|
</script>
|
|
542
578
|
|
|
543
|
-
<div
|
|
579
|
+
<div
|
|
580
|
+
class="fl-rich-text {className}" class:editable
|
|
581
|
+
style="
|
|
582
|
+
--fl-editor-radius: {editorConfig.editorRadius};
|
|
583
|
+
--fl-editor-bg: {editorConfig.editorBgColor};
|
|
584
|
+
--fl-toolbar-sticky-position: {editorConfig.toolbarStickyPosition}px;
|
|
585
|
+
--fl-toolbar-z-index: {editorConfig.toolbarZIndex};
|
|
586
|
+
--fl-toolbar-padding: {editorConfig.toolbarPadding};
|
|
587
|
+
--fl-toolbar-gap: {editorConfig.toolbarGap};
|
|
588
|
+
--fl-toolbar-bg: {editorConfig.toolbarBgColor};
|
|
589
|
+
--fl-doc-max-width: {editorConfig.docMaxWidth};
|
|
590
|
+
--fl-doc-padding: {editorConfig.docPadding};
|
|
591
|
+
--fl-doc-bg: {editorConfig.docBg};
|
|
592
|
+
--fl-doc-margin-inline: {editorConfig.docMarginInline};
|
|
593
|
+
--fl-doc-margin-block: {editorConfig.docMarginBlock};
|
|
594
|
+
--fl-doc-radius: {editorConfig.docRadius};
|
|
595
|
+
"
|
|
596
|
+
>
|
|
544
597
|
|
|
545
598
|
{#if editor}
|
|
546
599
|
<header class="fl-rich-text-toolbar">
|
|
@@ -171,10 +171,18 @@
|
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
.fl-add-grid-item-btn {
|
|
174
|
-
padding:
|
|
174
|
+
padding: 8px 16px;
|
|
175
175
|
border-radius: 12px;
|
|
176
176
|
border: none;
|
|
177
177
|
background: #6b6b6b;
|
|
178
|
+
font-size: 14px;
|
|
179
|
+
font-weight: 600;
|
|
180
|
+
font-family: inherit;
|
|
181
|
+
cursor: pointer;
|
|
182
|
+
|
|
183
|
+
&:hover {
|
|
184
|
+
background: #818181;
|
|
185
|
+
}
|
|
178
186
|
}
|
|
179
187
|
|
|
180
188
|
.fl-editor-component-options {
|
|
@@ -201,11 +209,11 @@
|
|
|
201
209
|
}
|
|
202
210
|
|
|
203
211
|
&.m-l-small {
|
|
204
|
-
margin-left:
|
|
212
|
+
margin-left: 12px;
|
|
205
213
|
}
|
|
206
214
|
|
|
207
215
|
select {
|
|
208
|
-
background-color: #
|
|
216
|
+
background-color: #242424;
|
|
209
217
|
border: none;
|
|
210
218
|
padding: 3px 2px;
|
|
211
219
|
outline: none;
|
|
@@ -222,11 +230,12 @@
|
|
|
222
230
|
border: none;
|
|
223
231
|
background: #7e7e7e80;
|
|
224
232
|
padding: 6px 7px;
|
|
225
|
-
border-radius:
|
|
233
|
+
border-radius: 9px;
|
|
234
|
+
box-sizing: border-box;
|
|
226
235
|
}
|
|
227
236
|
|
|
228
237
|
&.option--cols {
|
|
229
|
-
width:
|
|
238
|
+
width: 52px;
|
|
230
239
|
}
|
|
231
240
|
|
|
232
241
|
&.option--gap {
|
|
@@ -248,6 +248,7 @@
|
|
|
248
248
|
function dragAreaClickHandler(e) {
|
|
249
249
|
console.log("Clicked drag area");
|
|
250
250
|
if (addGridMediaIconEl) {
|
|
251
|
+
console.log("Add grid Media icon el: ", addGridMediaIconEl);
|
|
251
252
|
showTooltip(addGridMediaIconEl);
|
|
252
253
|
}
|
|
253
254
|
}
|
|
@@ -408,9 +409,7 @@
|
|
|
408
409
|
</Dropdown> -->
|
|
409
410
|
|
|
410
411
|
<style>
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
}
|
|
412
|
+
|
|
414
413
|
.fl-dropdown-panel {
|
|
415
414
|
background: #0d0d0da8;
|
|
416
415
|
border: 1px solid #ffffff12;
|
|
@@ -418,6 +417,7 @@
|
|
|
418
417
|
border-radius: 14px;
|
|
419
418
|
padding: 8px;
|
|
420
419
|
position: absolute;
|
|
420
|
+
z-index: 50;
|
|
421
421
|
flex-direction: column;
|
|
422
422
|
gap: 6px;
|
|
423
423
|
|
package/dist/styles.css
CHANGED
|
@@ -6,9 +6,21 @@
|
|
|
6
6
|
--gray-1: #f0f0f0;
|
|
7
7
|
--gray-2: #e0e0e0;
|
|
8
8
|
--gray-3: #c0c0c0;
|
|
9
|
-
|
|
10
|
-
--toolbar-padding: 6px;
|
|
9
|
+
|
|
11
10
|
--fl-editor-radius: 12px;
|
|
11
|
+
--fl-editor-bg: #242424;
|
|
12
|
+
--fl-toolbar-sticky-position: 0;
|
|
13
|
+
--fl-toolbar-z-index: 10;
|
|
14
|
+
--fl-toolbar-padding: 6px;
|
|
15
|
+
--fl-toolbar-gap: 5px;
|
|
16
|
+
--fl-toolbar-bg: #242424;
|
|
17
|
+
|
|
18
|
+
--fl-doc-max-width: 1024px;
|
|
19
|
+
--fl-doc-padding: 2rem;
|
|
20
|
+
--fl-doc-bg: transparent;
|
|
21
|
+
--fl-doc-margin-inline: auto;
|
|
22
|
+
--fl-doc-margin-block: 2rem;
|
|
23
|
+
--fl-doc-radius: 0;
|
|
12
24
|
}
|
|
13
25
|
|
|
14
26
|
/* Basic editor styles */
|
|
@@ -252,9 +264,14 @@
|
|
|
252
264
|
flex-direction: column;
|
|
253
265
|
text-align: left;
|
|
254
266
|
min-height: 56px;
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
267
|
+
border-radius: var(--fl-doc-radius, 12px);
|
|
268
|
+
box-sizing: border-box;
|
|
269
|
+
max-width: var(--fl-doc-max-width, 1024px);
|
|
270
|
+
padding: var(--fl-doc-padding, 2rem);
|
|
271
|
+
background: var(--fl-doc-bg, transparent);
|
|
272
|
+
margin-inline: var(--fl-doc-margin-inline, auto);
|
|
273
|
+
margin-block: var(--fl-doc-margin-block, 2rem);
|
|
274
|
+
|
|
258
275
|
}
|
|
259
276
|
|
|
260
277
|
.fl-toolbar-dropdown-panel {
|
|
@@ -265,7 +282,7 @@
|
|
|
265
282
|
backdrop-filter: blur(42px);
|
|
266
283
|
border-radius: 14px;
|
|
267
284
|
min-width: auto;
|
|
268
|
-
z-index:
|
|
285
|
+
z-index: 1000;
|
|
269
286
|
box-sizing: border-box;
|
|
270
287
|
|
|
271
288
|
&.fl-toolbar-dropdown-panel--table {
|
|
@@ -296,7 +313,7 @@
|
|
|
296
313
|
width: 100%;
|
|
297
314
|
height: 100%;
|
|
298
315
|
min-height: 56px;
|
|
299
|
-
background-color: var(--fl-bg
|
|
316
|
+
background-color: var(--fl-editor-bg, #242424);
|
|
300
317
|
color: var(--text-color);
|
|
301
318
|
box-sizing: border-box;
|
|
302
319
|
border-radius: var(--fl-editor-radius);
|
|
@@ -307,10 +324,10 @@
|
|
|
307
324
|
flex-wrap: nowrap;
|
|
308
325
|
overflow: auto;
|
|
309
326
|
align-items: center;
|
|
310
|
-
gap: var(--toolbar-gap);
|
|
311
|
-
padding: var(--toolbar-padding);
|
|
327
|
+
gap: var(--fl-toolbar-gap);
|
|
328
|
+
padding: var(--fl-toolbar-padding);
|
|
312
329
|
position: sticky;
|
|
313
|
-
top: var(--sticky-position, 0);
|
|
330
|
+
top: var(--fl-toolbar-sticky-position, 0);
|
|
314
331
|
z-index: var(--fl-toolbar-z-index, 10);
|
|
315
332
|
background: var(--fl-toolbar-bg, #242424);
|
|
316
333
|
border-radius: var(--fl-editor-radius);
|
|
@@ -319,7 +336,7 @@
|
|
|
319
336
|
.fl-rich-text-toolbar-group {
|
|
320
337
|
display: flex;
|
|
321
338
|
flex-wrap: nowrap;
|
|
322
|
-
gap: var(--toolbar-gap);
|
|
339
|
+
gap: var(--fl-toolbar-gap);
|
|
323
340
|
|
|
324
341
|
button {
|
|
325
342
|
padding: 8px 8px;
|
|
@@ -374,7 +391,7 @@
|
|
|
374
391
|
font-weight: 500;
|
|
375
392
|
border: none;
|
|
376
393
|
padding: 0px;
|
|
377
|
-
font-size:
|
|
394
|
+
font-size: 11px;
|
|
378
395
|
border-radius: 3px;
|
|
379
396
|
outline: 1px dashed #818181;
|
|
380
397
|
scale: 1.1;
|