@crystallize/design-system 1.11.7 → 1.13.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 (84) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/draggable-block-menu-KKHDNKJA.svg +1 -0
  3. package/dist/index.css +565 -1025
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +538 -517
  6. package/dist/index.mjs +419 -398
  7. package/package.json +22 -23
  8. package/src/button/Button.stories.tsx +1 -0
  9. package/src/card/card.stories.tsx +1 -0
  10. package/src/checkbox/checkbox.stories.tsx +1 -1
  11. package/src/checkbox/checkbox.tsx +1 -1
  12. package/src/colors/Colors.stories.tsx +3 -3
  13. package/src/dialog/config.tsx +1 -1
  14. package/src/dialog/index.tsx +1 -1
  15. package/src/dropdown-menu/dropdown-menu-item.tsx +2 -2
  16. package/src/dropdown-menu/dropdown-menu-label.tsx +1 -1
  17. package/src/icon-button/IconButton.stories.tsx +1 -0
  18. package/src/iconography/Icon.stories.tsx +1 -0
  19. package/src/inline-radio/inline-radio.stories.tsx +3 -3
  20. package/src/inline-radio/inline-radio.tsx +2 -2
  21. package/src/input/input.tsx +1 -1
  22. package/src/input-with-label/input-with-label.tsx +1 -1
  23. package/src/label/label.stories.tsx +1 -0
  24. package/src/progress/Progress.stories.tsx +2 -1
  25. package/src/progress/progress.tsx +1 -1
  26. package/src/radio/radio.stories.tsx +1 -1
  27. package/src/radio/radio.tsx +1 -1
  28. package/src/rich-text-editor/model/crystallize-to-lexical.ts +4 -3
  29. package/src/rich-text-editor/model/parse-initial-state.test.ts +48 -0
  30. package/src/rich-text-editor/model/parse-initial-state.ts +20 -0
  31. package/src/rich-text-editor/plugins/ActionsPlugin/index.css +3 -0
  32. package/src/rich-text-editor/plugins/ActionsPlugin/index.tsx +1 -2
  33. package/src/rich-text-editor/plugins/AutoLinkPlugin/index.tsx +1 -1
  34. package/src/rich-text-editor/plugins/CodeActionMenuPlugin/components/CopyButton/index.tsx +6 -2
  35. package/src/rich-text-editor/plugins/CodeActionMenuPlugin/components/PrettierButton/index.tsx +10 -6
  36. package/src/rich-text-editor/plugins/CodeActionMenuPlugin/index.css +32 -17
  37. package/src/rich-text-editor/plugins/CodeActionMenuPlugin/index.tsx +3 -4
  38. package/src/rich-text-editor/plugins/DimensionsDetectorPlugin/index.tsx +49 -0
  39. package/src/rich-text-editor/plugins/DraggableBlockPlugin/index.css +14 -14
  40. package/src/rich-text-editor/plugins/DraggableBlockPlugin/index.tsx +4 -4
  41. package/src/rich-text-editor/plugins/FloatingLinkEditorPlugin/index.css +87 -21
  42. package/src/rich-text-editor/plugins/FloatingLinkEditorPlugin/index.tsx +11 -17
  43. package/src/rich-text-editor/plugins/FloatingTextFormatToolbarPlugin/index.css +10 -2
  44. package/src/rich-text-editor/plugins/FloatingTextFormatToolbarPlugin/index.tsx +17 -17
  45. package/src/rich-text-editor/plugins/LinkPlugin/index.tsx +1 -1
  46. package/src/rich-text-editor/plugins/ListMaxIndentLevelPlugin/index.ts +10 -21
  47. package/src/rich-text-editor/plugins/TableActionMenuPlugin/index.css +6 -0
  48. package/src/rich-text-editor/plugins/TableActionMenuPlugin/index.tsx +2 -2
  49. package/src/rich-text-editor/plugins/ToolbarPlugin/index.css +115 -0
  50. package/src/rich-text-editor/plugins/ToolbarPlugin/index.tsx +57 -78
  51. package/src/rich-text-editor/plugins/ToolbarPlugin/insert-table.tsx +5 -5
  52. package/src/rich-text-editor/rich-text-editor-icons.css +213 -0
  53. package/src/rich-text-editor/rich-text-editor.css +33 -913
  54. package/src/rich-text-editor/rich-text-editor.stories.tsx +24 -0
  55. package/src/rich-text-editor/rich-text-editor.tsx +13 -27
  56. package/src/rich-text-editor/themes/CrystallizeRTEditorTheme.ts +1 -1
  57. package/src/rich-text-editor/ui/LinkPreview.tsx +7 -8
  58. package/src/rich-text-editor/utils/getSelectedNode.ts +4 -5
  59. package/src/rich-text-editor/utils/point.ts +4 -7
  60. package/src/rich-text-editor/utils/rect.ts +18 -41
  61. package/src/rich-text-editor/utils/url.ts +1 -2
  62. package/src/select/select-root.tsx +1 -1
  63. package/src/select/select.stories.tsx +1 -1
  64. package/src/select/select.ts +0 -1
  65. package/src/slider/Slider.stories.tsx +2 -1
  66. package/src/slider/slider.tsx +2 -2
  67. package/src/spinner/Spinner.stories.tsx +1 -0
  68. package/src/spinner/index.tsx +1 -1
  69. package/src/tag/Tag.stories.tsx +1 -0
  70. package/dist/camera-CR7D2PNH.svg +0 -1
  71. package/dist/clipboard-OSEFDF25.svg +0 -1
  72. package/dist/gear-ICMT4NTP.svg +0 -1
  73. package/dist/journal-code-XUT44HDV.svg +0 -1
  74. package/dist/lock-WCYOZOHW.svg +0 -1
  75. package/dist/lock-fill-JZSKOSHK.svg +0 -1
  76. package/dist/pencil-fill-STFSC26F.svg +0 -1
  77. package/dist/plug-HGGGEVS3.svg +0 -1
  78. package/dist/plug-fill-OTG3U4TN.svg +0 -1
  79. package/src/rich-text-editor/hooks/useReport.ts +0 -64
  80. package/src/rich-text-editor/plugins/CodeActionMenuPlugin/components/PrettierButton/index.css +0 -14
  81. package/src/rich-text-editor/ui/LinkPreview.css +0 -57
  82. package/src/rich-text-editor/utils/isMobileWidth.ts +0 -7
  83. package/src/rich-text-editor/utils/joinClasses.ts +0 -13
  84. package/src/rich-text-editor/utils/swipe.ts +0 -127
@@ -6,93 +6,29 @@
6
6
  *
7
7
  */
8
8
 
9
+ @import './rich-text-editor-icons.css';
10
+ @import './plugins/ActionsPlugin/index.css';
11
+ @import './plugins/CodeActionMenuPlugin/index.css';
12
+ @import './plugins/DraggableBlockPlugin/index.css';
13
+ @import './plugins/TableActionMenuPlugin/index.css';
14
+ @import './plugins/ToolbarPlugin/index.css';
15
+
9
16
  .c-rich-text-editor {
10
17
  margin: 0px auto;
11
18
  max-width: 1100px;
12
19
  position: relative;
13
20
  line-height: 1.7;
14
21
 
22
+ --c-rte-min-height: 150px;
23
+
15
24
  > * {
16
25
  box-sizing: border-box;
17
26
  }
18
27
 
19
28
  @apply !font-sans font-normal text-gray-900-50;
20
29
 
21
- .editor-container {
22
- background: #fff;
23
- position: relative;
24
- cursor: text;
25
- @apply mt-2 rounded-bl-md rounded-br-md;
26
- }
27
-
28
- .editor-container.plain-text {
29
- @apply rounded-tl-md rounded-tr-md;
30
- }
31
-
32
- span.editor-image {
33
- cursor: default;
34
- display: inline-block;
35
- position: relative;
36
- user-select: none;
37
- }
38
-
39
- .editor-image img {
40
- max-width: 100%;
41
- cursor: default;
42
- }
43
-
44
- .editor-image img.focused {
45
- outline: 2px solid rgb(60, 132, 244);
46
- user-select: none;
47
- }
48
-
49
- .editor-image img.focused.draggable {
50
- cursor: grab;
51
- }
52
-
53
- .editor-image img.focused.draggable:active {
54
- cursor: grabbing;
55
- }
56
-
57
- .editor-image .image-caption-container {
58
- display: block;
59
- position: absolute;
60
- bottom: 4px;
61
- left: 0;
62
- right: 0;
63
- padding: 0;
64
- margin: 0;
65
- border-top: 1px solid #fff;
66
- background-color: rgba(255, 255, 255, 0.9);
67
- min-width: 100px;
68
- color: #000;
69
- overflow: hidden;
70
- }
71
-
72
- .editor-image .image-caption-button {
73
- display: block;
74
- position: absolute;
75
- bottom: 20px;
76
- left: 0;
77
- right: 0;
78
- width: 30%;
79
- padding: 10px;
80
- margin: 0 auto;
81
- border: 1px solid rgba(255, 255, 255, 0.3);
82
- border-radius: 5px;
83
- background-color: rgba(0, 0, 0, 0.5);
84
- min-width: 100px;
85
- color: #fff;
86
- cursor: pointer;
87
- user-select: none;
88
- }
89
-
90
- .editor-image .image-caption-button:hover {
91
- background-color: rgba(60, 132, 244, 0.5);
92
- }
93
-
94
- .editor-scroller {
95
- min-height: 150px;
30
+ .c-rte-editor-scroller {
31
+ min-height: var(--c-rte-min-height);
96
32
  border: 0;
97
33
  resize: none;
98
34
  cursor: text;
@@ -102,14 +38,26 @@
102
38
  resize: vertical;
103
39
  }
104
40
 
105
- .editor {
106
- height: 100%;
107
- position: relative;
41
+ .c-rte-editor-container {
42
+ background: #fff;
43
+ @apply relative mt-2 cursor-text rounded-bl-md rounded-br-md;
44
+ }
45
+
46
+ .c-rte-editor {
47
+ @apply relative;
108
48
  }
109
49
 
110
- .test-recorder-output {
111
- margin: 20px auto 20px auto;
112
- width: 100%;
50
+ .c-rte-table-action-dropdown {
51
+ display: absolute;
52
+ right: 2px;
53
+ top: 2px;
54
+ }
55
+
56
+ .c-rte-contenteditable-root {
57
+ @apply relative block border-0 px-6 py-2 !pt-0 text-sm outline-0;
58
+ tab-size: 1;
59
+ padding-bottom: 8px;
60
+ min-height: calc(var(--c-rte-min-height) - 8px);
113
61
  }
114
62
 
115
63
  pre {
@@ -131,699 +79,10 @@
131
79
  background: #999;
132
80
  }
133
81
 
134
- .editor-dev-button {
135
- position: relative;
136
- display: block;
137
- width: 40px;
138
- height: 40px;
139
- font-size: 12px;
140
- border-radius: 20px;
141
- border: none;
142
- cursor: pointer;
143
- outline: none;
144
- box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.3);
145
- background-color: #444;
146
- }
147
-
148
- .editor-dev-button::after {
149
- content: '';
150
- position: absolute;
151
- top: 10px;
152
- right: 10px;
153
- bottom: 10px;
154
- left: 10px;
155
- display: block;
156
- background-size: contain;
157
- filter: invert(1);
158
- }
159
-
160
- .editor-dev-button:hover {
161
- background-color: #555;
162
- }
163
-
164
- .editor-dev-button.active {
165
- background-color: rgb(233, 35, 35);
166
- }
167
-
168
- .test-recorder-toolbar {
169
- display: flex;
170
- }
171
-
172
- .test-recorder-button {
173
- position: relative;
174
- display: block;
175
- width: 32px;
176
- height: 32px;
177
- font-size: 10px;
178
- padding: 6px 6px;
179
- border-radius: 4px;
180
- border: none;
181
- cursor: pointer;
182
- outline: none;
183
- box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.4);
184
- background-color: #222;
185
- transition: box-shadow 50ms ease-out;
186
- }
187
-
188
- .test-recorder-button:active {
189
- box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.4);
190
- }
191
-
192
- .test-recorder-button + .test-recorder-button {
193
- margin-left: 4px;
194
- }
195
-
196
- .test-recorder-button::after {
197
- content: '';
198
- position: absolute;
199
- top: 8px;
200
- right: 8px;
201
- bottom: 8px;
202
- left: 8px;
203
- display: block;
204
- background-size: contain;
205
- filter: invert(1);
206
- }
207
-
208
- #options-button {
209
- position: fixed;
210
- left: 20px;
211
- bottom: 20px;
212
- }
213
-
214
- #test-recorder-button {
215
- position: fixed;
216
- left: 70px;
217
- bottom: 20px;
218
- }
219
-
220
- #paste-log-button {
221
- position: fixed;
222
- left: 120px;
223
- bottom: 20px;
224
- }
225
-
226
- #options-button::after {
227
- background-image: url(images/icons/gear.svg);
228
- }
229
-
230
- #test-recorder-button::after {
231
- background-image: url(images/icons/journal-code.svg);
232
- }
233
-
234
- #paste-log-button::after {
235
- background-image: url(images/icons/clipboard.svg);
236
- }
237
-
238
- #test-recorder-button-snapshot {
239
- margin-right: auto;
240
- }
241
-
242
- #test-recorder-button-snapshot::after {
243
- background-image: url(images/icons/camera.svg);
244
- }
245
-
246
- #test-recorder-button-copy::after {
247
- background-image: url(images/icons/clipboard.svg);
248
- }
249
-
250
- #test-recorder-button-download::after {
251
- background-image: url(images/icons/download.svg);
252
- }
253
-
254
- .typeahead-popover {
255
- background: #fff;
256
- box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.3);
257
- border-radius: 8px;
258
- margin-top: 25px;
259
- }
260
-
261
- .typeahead-popover ul {
262
- padding: 0;
263
- list-style: none;
264
- margin: 0;
265
- border-radius: 8px;
266
- max-height: 200px;
267
- overflow-y: scroll;
268
- }
269
-
270
- .typeahead-popover ul::-webkit-scrollbar {
271
- display: none;
272
- }
273
-
274
- .typeahead-popover ul {
275
- -ms-overflow-style: none;
276
- scrollbar-width: none;
277
- }
278
-
279
- .typeahead-popover ul li {
280
- margin: 0;
281
- min-width: 180px;
282
- font-size: 14px;
283
- outline: none;
284
- cursor: pointer;
285
- border-radius: 8px;
286
- }
287
-
288
- .typeahead-popover ul li.selected {
289
- background: #eee;
290
- }
291
-
292
- .typeahead-popover li {
293
- margin: 0 8px 0 8px;
294
- padding: 8px;
295
- color: #050505;
296
- cursor: pointer;
297
- line-height: 16px;
298
- font-size: 15px;
299
- display: flex;
300
- align-content: center;
301
- flex-direction: row;
302
- flex-shrink: 0;
303
- background-color: #fff;
304
- border-radius: 8px;
305
- border: 0;
306
- }
307
-
308
- .typeahead-popover li.active {
309
- display: flex;
310
- width: 20px;
311
- height: 20px;
312
- background-size: contain;
313
- }
314
-
315
- .typeahead-popover li:first-child {
316
- border-radius: 8px 8px 0px 0px;
317
- }
318
-
319
- .typeahead-popover li:last-child {
320
- border-radius: 0px 0px 8px 8px;
321
- }
322
-
323
- .typeahead-popover li:hover {
324
- background-color: #eee;
325
- }
326
-
327
- .typeahead-popover li .text {
328
- display: flex;
329
- line-height: 20px;
330
- flex-grow: 1;
331
- min-width: 150px;
332
- }
333
-
334
- .typeahead-popover li .icon {
335
- display: flex;
336
- width: 20px;
337
- height: 20px;
338
- user-select: none;
339
- margin-right: 8px;
340
- line-height: 16px;
341
- background-size: contain;
342
- background-repeat: no-repeat;
343
- background-position: center;
344
- }
345
-
346
- .component-picker-menu {
347
- width: 200px;
348
- }
349
-
350
- .auto-embed-menu {
351
- width: 150px;
352
- }
353
-
354
- i.palette {
355
- background-image: url(images/icons/palette.svg);
356
- }
357
-
358
- i.bucket {
359
- background-image: url(images/icons/paint-bucket.svg);
360
- }
361
-
362
- i.bold {
363
- background-image: url(images/icons/type-bold.svg);
364
- }
365
-
366
- i.italic {
367
- background-image: url(images/icons/type-italic.svg);
368
- }
369
-
370
- i.clear {
371
- background-image: url(images/icons/trash.svg);
372
- }
373
-
374
- i.code {
375
- background-image: url(images/icons/code.svg);
376
- }
377
-
378
- i.underline {
379
- background-image: url(images/icons/type-underline.svg);
380
- }
381
-
382
- i.strikethrough {
383
- background-image: url(images/icons/type-strikethrough.svg);
384
- }
385
-
386
- i.subscript {
387
- background-image: url(images/icons/type-subscript.svg);
388
- }
389
-
390
- i.superscript {
391
- background-image: url(images/icons/type-superscript.svg);
392
- }
393
-
394
- i.link {
395
- background-image: url(images/icons/link.svg);
396
- }
397
-
398
- i.horizontal-rule {
399
- background-image: url(images/icons/horizontal-rule.svg);
400
- }
401
-
402
- .icon.plus {
403
- background-image: url(images/icons/plus.svg);
404
- }
405
-
406
- .icon.caret-right {
407
- background-image: url(images/icons/caret-right-fill.svg);
408
- }
409
-
410
- .icon.dropdown-more {
411
- background-image: url(images/icons/dropdown-more.svg);
412
- }
413
-
414
- .icon.font-color {
415
- background-image: url(images/icons/font-color.svg);
416
- }
417
-
418
- .icon.font-family {
419
- background-image: url(images/icons/font-family.svg);
420
- }
421
-
422
- .icon.bg-color {
423
- background-image: url(images/icons/bg-color.svg);
424
- }
425
-
426
- i.image {
427
- background-image: url(images/icons/file-image.svg);
428
- }
429
-
430
- i.table {
431
- background-image: url(images/icons/table.svg);
432
- }
433
-
434
- i.close {
435
- background-image: url(images/icons/close.svg);
436
- }
437
-
438
- .icon.left-align,
439
- i.left-align {
440
- background-image: url(images/icons/text-left.svg);
441
- }
442
-
443
- i.center-align {
444
- background-image: url(images/icons/text-center.svg);
445
- }
446
-
447
- i.right-align {
448
- background-image: url(images/icons/text-right.svg);
449
- }
450
-
451
- i.justify-align {
452
- background-image: url(images/icons/justify.svg);
453
- }
454
-
455
- i.indent {
456
- background-image: url(images/icons/indent.svg);
457
- }
458
-
459
- i.outdent {
460
- background-image: url(images/icons/outdent.svg);
461
- }
462
-
463
- i.undo {
464
- background-image: url(images/icons/arrow-counterclockwise.svg);
465
- }
466
-
467
- i.redo {
468
- background-image: url(images/icons/arrow-clockwise.svg);
469
- }
470
-
471
- i.mic {
472
- background-image: url(images/icons/mic.svg);
473
- }
474
-
475
- i.import {
476
- background-image: url(images/icons/upload.svg);
477
- }
478
-
479
- i.export {
480
- background-image: url(images/icons/download.svg);
481
- }
482
-
483
- i.diagram-2 {
484
- background-image: url(images/icons/diagram-2.svg);
485
- }
486
-
487
- i.user {
488
- background-image: url(images/icons/user.svg);
489
- }
490
-
491
- i.equation {
492
- background-image: url(images/icons/plus-slash-minus.svg);
493
- }
494
-
495
- i.gif {
496
- background-image: url(images/icons/filetype-gif.svg);
497
- }
498
-
499
- i.copy {
500
- background-image: url(images/icons/copy.svg);
501
- }
502
-
503
- i.success {
504
- background-image: url(images/icons/success.svg);
505
- }
506
-
507
- i.prettier {
508
- background-image: url(images/icons/prettier.svg);
509
- }
510
-
511
- i.prettier-error {
512
- background-image: url(images/icons/prettier-error.svg);
513
- }
514
-
515
- .link-editor {
516
- box-sizing: border-box;
517
- }
518
- .link-editor .button.active,
519
- .toolbar .button.active {
520
- @apply bg-purple-50-900;
521
- }
522
- .link-editor {
523
- @apply !rounded-lg border border-solid border-gray-100-800 !shadow-lg;
524
- }
525
- .link-editor .link-input {
526
- width: 100%;
527
- box-sizing: border-box;
528
- margin: 8px 0;
529
- padding: 8px 24px;
530
- /* background-color: #eee; */
531
- font-size: 15px;
532
- color: rgb(5, 5, 5);
533
- outline: 0;
534
- position: relative;
535
- font-family: inherit;
536
-
537
- @apply border-gray text-sm text-s-blue-600-300;
538
- }
539
-
540
- .link-editor div.link-edit {
541
- background-image: url(images/icons/pencil-fill.svg);
542
- background-size: 12px;
543
- background-position: center;
544
- background-repeat: no-repeat;
545
- width: 35px;
546
- vertical-align: -0.25em;
547
- position: absolute;
548
- right: 0;
549
- top: 0;
550
- bottom: 0;
551
- cursor: pointer;
552
- }
553
- .link-editor .link-input {
554
- box-sizing: border-box;
555
- }
556
- .link-editor .link-input a {
557
- color: rgb(33, 111, 219);
558
- text-decoration: none;
559
- display: block;
560
- white-space: nowrap;
561
- overflow: hidden;
562
- text-overflow: ellipsis;
563
- @apply text-s-blue-600-300;
564
- }
565
-
566
- .link-editor .link-input a:hover {
567
- text-decoration: underline;
568
- }
569
-
570
- .link-editor .font-size-wrapper,
571
- .link-editor .font-family-wrapper {
572
- display: flex;
573
- margin: 0 4px;
574
- }
575
-
576
- .link-editor select {
577
- padding: 6px;
578
- border: none;
579
- background-color: rgba(0, 0, 0, 0.075);
580
- border-radius: 4px;
581
- }
582
-
583
- #block-controls {
584
- display: block;
585
- position: absolute;
586
- right: 10px;
587
- width: 32px;
588
- height: 32px;
589
- box-sizing: border-box;
590
- box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 2px 0px;
591
- top: 16px;
592
- z-index: 10;
593
- border-radius: 8px;
594
- border: 1px solid rgb(206, 208, 212);
595
- overflow: hidden;
596
- }
597
-
598
- #block-controls button {
599
- border: 1px solid white;
600
- background-color: #fff;
601
- display: block;
602
- transition: background-color 0.1s ease;
603
- cursor: pointer;
604
- outline: none;
605
- border-radius: 8px;
606
- padding: 3px;
607
- }
608
-
609
- #block-controls button:hover {
610
- background-color: #efefef;
611
- }
612
-
613
- #block-controls button:focus-visible {
614
- border-color: blue;
615
- }
616
-
617
- #block-controls span.block-type {
618
- background-size: contain;
619
- display: block;
620
- width: 18px;
621
- height: 18px;
622
- margin: 2px;
623
- }
624
-
625
- #block-controls span.block-type.paragraph {
626
- background-image: url(images/icons/text-paragraph.svg);
627
- }
628
-
629
- #block-controls span.block-type.h1 {
630
- background-image: url(images/icons/type-h1.svg);
631
- }
632
-
633
- #block-controls span.block-type.h2 {
634
- background-image: url(images/icons/type-h2.svg);
635
- }
636
-
637
- #block-controls span.block-type.quote {
638
- background-image: url(images/icons/chat-square-quote.svg);
639
- }
640
-
641
- #block-controls span.block-type.ul {
642
- background-image: url(images/icons/list-ul.svg);
643
- }
644
-
645
- #block-controls span.block-type.ol {
646
- background-image: url(images/icons/list-ol.svg);
647
- }
648
-
649
- #block-controls span.block-type.code {
650
- background-image: url(images/icons/code.svg);
651
- }
652
-
653
- .characters-limit {
654
- color: #888;
655
- font-size: 12px;
656
- text-align: right;
657
- display: block;
658
- position: absolute;
659
- left: 12px;
660
- bottom: 5px;
661
- }
662
-
663
- .characters-limit.characters-limit-exceeded {
664
- color: red;
665
- }
666
-
667
- .icon.paragraph {
668
- background-image: url(images/icons/text-paragraph.svg);
669
- }
670
-
671
- .icon.h1 {
672
- background-image: url(images/icons/type-h1.svg);
673
- }
674
-
675
- .icon.h2 {
676
- background-image: url(images/icons/type-h2.svg);
677
- }
678
-
679
- .icon.h3 {
680
- background-image: url(images/icons/type-h3.svg);
681
- }
682
-
683
- .icon.h4 {
684
- background-image: url(images/icons/type-h4.svg);
685
- }
686
-
687
- .icon.h5 {
688
- background-image: url(images/icons/type-h5.svg);
689
- }
690
-
691
- .icon.h6 {
692
- background-image: url(images/icons/type-h6.svg);
693
- }
694
-
695
- .icon.bullet-list,
696
- .icon.bullet {
697
- background-image: url(images/icons/list-ul.svg);
698
- }
699
-
700
- .icon.check-list,
701
- .icon.check {
702
- background-image: url(images/icons/square-check.svg);
703
- }
704
-
705
- .icon.numbered-list,
706
- .icon.number {
707
- background-image: url(images/icons/list-ol.svg);
708
- }
709
-
710
- .icon.quote {
711
- background-image: url(images/icons/chat-square-quote.svg);
712
- }
713
-
714
- .icon.code {
715
- background-image: url(images/icons/code.svg);
716
- }
717
-
718
- .switches {
719
- z-index: 6;
720
- position: fixed;
721
- left: 10px;
722
- bottom: 70px;
723
- animation: slide-in 0.4s ease;
724
- }
725
-
726
- @keyframes slide-in {
727
- 0% {
728
- opacity: 0;
729
- transform: translateX(-200px);
730
- }
731
- 100% {
732
- opacity: 1;
733
- transform: translateX(0);
734
- }
735
- }
736
-
737
82
  [role='separator'] {
738
83
  @apply h-px bg-gray-200-700;
739
84
  }
740
85
 
741
- .actions i.indent {
742
- background-image: url(images/icons/indent.svg);
743
- }
744
-
745
- .actions i.outdent {
746
- background-image: url(images/icons/outdent.svg);
747
- }
748
-
749
- .actions i.lock {
750
- background-image: url(images/icons/lock-fill.svg);
751
- }
752
-
753
- .actions i.image {
754
- background-image: url(images/icons/file-image.svg);
755
- }
756
-
757
- .actions i.table {
758
- background-image: url(images/icons/table.svg);
759
- }
760
-
761
- .actions i.unlock {
762
- background-image: url(images/icons/lock.svg);
763
- }
764
-
765
- .actions i.left-align {
766
- background-image: url(images/icons/text-left.svg);
767
- }
768
-
769
- .actions i.center-align {
770
- background-image: url(images/icons/text-center.svg);
771
- }
772
-
773
- .actions i.right-align {
774
- background-image: url(images/icons/text-right.svg);
775
- }
776
-
777
- .actions i.justify-align {
778
- background-image: url(images/icons/justify.svg);
779
- }
780
-
781
- .actions i.disconnect {
782
- background-image: url(images/icons/plug.svg);
783
- }
784
-
785
- .actions i.connect {
786
- background-image: url(images/icons/plug-fill.svg);
787
- }
788
-
789
- table.disable-selection {
790
- -webkit-touch-callout: none;
791
- -webkit-user-select: none;
792
- -khtml-user-select: none;
793
- -moz-user-select: none;
794
- -ms-user-select: none;
795
- user-select: none;
796
- }
797
-
798
- table.disable-selection span::selection {
799
- background-color: transparent;
800
- }
801
-
802
- table.disable-selection br::selection {
803
- background-color: transparent;
804
- }
805
-
806
- .table-cell-action-button-container {
807
- position: absolute;
808
- top: 0;
809
- left: 0;
810
- will-change: transform;
811
- }
812
-
813
- .connecting {
814
- font-size: 15px;
815
- color: #999;
816
- overflow: hidden;
817
- position: absolute;
818
- text-overflow: ellipsis;
819
- top: 10px;
820
- left: 10px;
821
- user-select: none;
822
- white-space: nowrap;
823
- display: inline-block;
824
- pointer-events: none;
825
- }
826
-
827
86
  .ltr {
828
87
  text-align: left;
829
88
  }
@@ -832,137 +91,6 @@
832
91
  text-align: right;
833
92
  }
834
93
 
835
- .toolbar {
836
- @apply flex h-12 w-full justify-between overflow-auto rounded-tl-md rounded-tr-md py-1 pr-2 pl-4 align-middle;
837
- }
838
-
839
- .toolbar button.toolbar-item {
840
- @apply flex shrink-0 cursor-pointer items-center justify-between rounded-md border-0 bg-transparent p-2 align-middle;
841
- }
842
-
843
- .toolbar button.toolbar-item:disabled {
844
- @apply cursor-not-allowed;
845
- }
846
-
847
- .toolbar button.toolbar-item.spaced {
848
- @apply mr-0.5;
849
- }
850
-
851
- .toolbar button.toolbar-item i.format {
852
- background-size: contain;
853
- display: inline-block;
854
- height: 18px;
855
- width: 18px;
856
- vertical-align: -0.25em;
857
- display: flex;
858
- opacity: 0.6;
859
- }
860
-
861
- .toolbar button.toolbar-item:disabled .icon,
862
- .toolbar button.toolbar-item:disabled .text,
863
- .toolbar button.toolbar-item:disabled i.format,
864
- .toolbar button.toolbar-item:disabled .chevron-down {
865
- opacity: 0.2;
866
- }
867
-
868
- .toolbar button.toolbar-item.active {
869
- @apply bg-purple-50-900;
870
- }
871
-
872
- .toolbar button.toolbar-item.active i {
873
- opacity: 1;
874
- }
875
-
876
- .toolbar .toolbar-item:hover:not([disabled]) {
877
- @apply bg-purple-50-900;
878
- }
879
-
880
- .toolbar .toolbar-item.font-family .text {
881
- display: block;
882
- max-width: 40px;
883
- }
884
-
885
- .toolbar .code-language {
886
- width: 150px;
887
- }
888
-
889
- .toolbar .toolbar-item .text {
890
- display: flex;
891
- line-height: 20px;
892
- vertical-align: middle;
893
- font-size: 14px;
894
- color: #777;
895
- text-overflow: ellipsis;
896
- overflow: hidden;
897
- height: 20px;
898
- text-align: left;
899
- padding-right: 10px;
900
- }
901
-
902
- .toolbar .toolbar-item .icon {
903
- display: flex;
904
- width: 20px;
905
- height: 20px;
906
- user-select: none;
907
- margin-right: 8px;
908
- line-height: 16px;
909
- background-size: contain;
910
- }
911
-
912
- .toolbar i.chevron-down {
913
- margin-top: 3px;
914
- width: 16px;
915
- height: 16px;
916
- display: flex;
917
- user-select: none;
918
- }
919
-
920
- .toolbar i.chevron-down.inside {
921
- width: 16px;
922
- height: 16px;
923
- display: flex;
924
- margin-left: -25px;
925
- margin-top: 11px;
926
- margin-right: 10px;
927
- pointer-events: none;
928
- }
929
-
930
- .toolbar .divider {
931
- width: 1px;
932
- background-color: #eee;
933
- margin: 0 4px;
934
- }
935
-
936
- .github-corner:hover .octo-arm {
937
- animation: octocat-wave 560ms ease-in-out;
938
- }
939
- @keyframes octocat-wave {
940
- 0%,
941
- 100% {
942
- transform: rotate(0);
943
- }
944
- 20%,
945
- 60% {
946
- transform: rotate(-25deg);
947
- }
948
- 40%,
949
- 80% {
950
- transform: rotate(10deg);
951
- }
952
- }
953
- @media (max-width: 500px) {
954
- .github-corner:hover .octo-arm {
955
- animation: none;
956
- }
957
- .github-corner .octo-arm {
958
- animation: octocat-wave 560ms ease-in-out;
959
- }
960
- }
961
-
962
- .spacer {
963
- letter-spacing: -2px;
964
- }
965
-
966
94
  button.item i {
967
95
  opacity: 0.6;
968
96
  }
@@ -997,12 +125,6 @@
997
125
  user-select: none;
998
126
  }
999
127
 
1000
- .ContentEditable__root {
1001
- tab-size: 1;
1002
- min-height: calc(100% - 16px);
1003
- @apply relative block border-0 px-6 py-2 !pt-0 text-sm outline-0;
1004
- }
1005
-
1006
128
  .TableNode__contentEditable {
1007
129
  min-height: 20px;
1008
130
  border: 0px;
@@ -1041,15 +163,13 @@
1041
163
  animation: CursorBlink 1.1s steps(2, start) infinite;
1042
164
  }
1043
165
 
166
+ .c-rte-placeholder {
167
+ @apply pointer-events-none absolute left-6 right-10 top-0 inline-block select-none overflow-hidden text-ellipsis whitespace-nowrap text-[14px] font-normal italic text-gray-300-600;
168
+ }
169
+
1044
170
  @keyframes CursorBlink {
1045
171
  to {
1046
172
  visibility: hidden;
1047
173
  }
1048
174
  }
1049
175
  }
1050
-
1051
- .c-rte-table-action-dropdown {
1052
- display: absolute;
1053
- right: 2px;
1054
- top: 2px;
1055
- }