fluentui-tiptap-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.
@@ -0,0 +1,1019 @@
1
+ .tiptap-editor {
2
+ display: flex;
3
+ flex-direction: column;
4
+ border: 1px solid #e4e4e7;
5
+ border-radius: 5px !important;
6
+ overflow: hidden;
7
+ background: #ffffff;
8
+ height: 100%;
9
+ min-height: 500px;
10
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.025);
11
+ font-family: 'Inter', system-ui, -apple-system, sans-serif;
12
+ transition: box-shadow 0.2s ease, border-color 0.2s ease;
13
+ }
14
+
15
+ .tiptap-editor:focus-within {
16
+ border-color: #e4e4e7;
17
+ }
18
+
19
+ .tiptap-content-wrapper {
20
+ position: relative;
21
+ flex: 1;
22
+ min-height: 0;
23
+ }
24
+
25
+ /* --- TOOLBAR --- */
26
+
27
+ .tiptap-toolbar {
28
+ flex-shrink: 0;
29
+ display: flex;
30
+ align-items: center;
31
+ gap: 6px;
32
+ padding: 10px 12px;
33
+ border-bottom: 1px solid #f4f4f5;
34
+ background: rgba(250, 250, 250, 0.8);
35
+ overflow-x: auto;
36
+ overflow-y: hidden;
37
+ scrollbar-width: none;
38
+ z-index: 10;
39
+ }
40
+
41
+ .tiptap-toolbar::-webkit-scrollbar {
42
+ display: none;
43
+ }
44
+
45
+ /* Toolbar Buttons */
46
+ .tiptap-toolbar button,
47
+ .tiptap-toolbar .fui-Button,
48
+ .tiptap-toolbar .fui-ToolbarButton {
49
+ display: flex !important;
50
+ align-items: center !important;
51
+ justify-content: center !important;
52
+ height: 32px !important;
53
+ min-height: 32px !important;
54
+ border-radius: 1px !important;
55
+ border: 1px solid transparent !important;
56
+ background: transparent !important;
57
+ box-shadow: none !important;
58
+ color: #52525b !important;
59
+ transition: all 0.15s !important;
60
+ cursor: pointer;
61
+ }
62
+
63
+ .tiptap-toolbar button:hover,
64
+ .tiptap-toolbar .fui-Button:hover,
65
+ .tiptap-toolbar .fui-ToolbarButton:hover {
66
+ background: #f4f4f5 !important;
67
+ color: #18181b !important;
68
+ }
69
+
70
+ /* Active State for Buttons */
71
+ .tiptap-toolbar .is-active,
72
+ .tiptap-toolbar .fui-ToolbarButton.is-active,
73
+ .tiptap-toolbar .fui-Button.is-active {
74
+ background: #eff6ff !important;
75
+ color: #2563eb !important;
76
+ border-color: #bfdbfe !important;
77
+ }
78
+
79
+ .tiptap-divider {
80
+ width: 1px;
81
+ height: 20px;
82
+ background: #e4e4e7;
83
+ margin: 0 8px;
84
+ flex-shrink: 0;
85
+ }
86
+
87
+ /* --- TOOLBAR DROPDOWNS & MENUS --- */
88
+
89
+ .heading-trigger,
90
+ .font-family-trigger,
91
+ .font-size-trigger,
92
+ .text-tools-trigger {
93
+ position: relative;
94
+ height: 32px;
95
+ padding: 0 12px;
96
+ display: flex;
97
+ align-items: center;
98
+ justify-content: space-between;
99
+ gap: 8px;
100
+ border-radius: 6px;
101
+ background: transparent;
102
+ font-size: 13px;
103
+ font-weight: 500;
104
+ color: #52525b;
105
+ cursor: pointer;
106
+ border: 1px solid transparent;
107
+ transition: all 0.15s ease;
108
+ overflow: hidden;
109
+ }
110
+
111
+ .heading-trigger span {
112
+ overflow: hidden;
113
+ text-overflow: ellipsis;
114
+ white-space: nowrap;
115
+ }
116
+
117
+ .heading-trigger:hover,
118
+ .font-family-trigger:hover,
119
+ .font-size-trigger:hover,
120
+ .text-tools-trigger:hover {
121
+ background: #f4f4f5;
122
+ color: #18181b;
123
+ }
124
+
125
+ /* Dropdown Menu Surfaces */
126
+ .font-size-menu {
127
+ max-height: 250px;
128
+ overflow-y: auto;
129
+ overflow-x: hidden;
130
+ }
131
+
132
+ .heading-menu,
133
+ .font-family-menu,
134
+ .font-size-menu,
135
+ .text-tools-menu,
136
+ .table-dropdown-surface,
137
+ .tiptap-link-popover,
138
+ .tiptap-color-popover,
139
+ .tiptap-table-popover,
140
+ .fui-PopoverSurface {
141
+ background: rgba(255, 255, 255, 0.98) !important;
142
+ backdrop-filter: blur(12px) !important;
143
+ -webkit-backdrop-filter: blur(12px) !important;
144
+ border: 1px solid #e4e4e7 !important;
145
+ border-radius: 10px !important;
146
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05), 0 8px 10px -6px rgba(0, 0, 0, 0.01) !important;
147
+ padding: 6px !important;
148
+ }
149
+
150
+ .heading-menu-item {
151
+ width: 100%;
152
+ height: 34px;
153
+ padding: 0 12px;
154
+ display: flex;
155
+ align-items: center;
156
+ gap: 8px;
157
+ border: none;
158
+ border-radius: 6px;
159
+ background: transparent;
160
+ font-size: 13px;
161
+ font-weight: 500;
162
+ color: #3f3f46;
163
+ cursor: pointer;
164
+ text-align: left;
165
+ transition: background 0.1s ease, color 0.1s ease;
166
+ }
167
+
168
+ .heading-menu-item:hover {
169
+ background: #f4f4f5;
170
+ color: #18181b;
171
+ }
172
+
173
+ .heading-menu-item.active {
174
+ background: #eff6ff;
175
+ color: #2563eb;
176
+ }
177
+
178
+ /* --- TEXT CONTENT AREA --- */
179
+
180
+ .tiptap-content {
181
+ flex: 1;
182
+ overflow-y: auto;
183
+ overflow-x: hidden;
184
+ min-height: 0;
185
+ background: #fff;
186
+ }
187
+
188
+ .tiptap-content .ProseMirror {
189
+ outline: none;
190
+ font-size: 16px;
191
+ color: #323130;
192
+ padding: 16px 20px;
193
+ line-height: 1.25;
194
+ min-height: 100%;
195
+ font-family: "Segoe UI", sans-serif;
196
+ }
197
+
198
+ .tiptap-prosemirror {
199
+ padding: 24px 32px;
200
+ min-height: 100%;
201
+ outline: none;
202
+ white-space: pre-wrap;
203
+ font-size: 16px;
204
+ color: #27272a;
205
+ font-family: inherit;
206
+ box-sizing: border-box;
207
+ }
208
+
209
+ .tiptap-prosemirror p {
210
+ margin: 0;
211
+ }
212
+
213
+ .tiptap-prosemirror p:last-child {
214
+ margin-bottom: 0;
215
+ }
216
+
217
+ /* Placeholder */
218
+ .tiptap-prosemirror p.is-editor-empty:first-child::before {
219
+ content: attr(data-placeholder);
220
+ float: left;
221
+ color: #a1a1aa;
222
+ pointer-events: none;
223
+ height: 0;
224
+ font-style: italic;
225
+ }
226
+
227
+ /* Headings */
228
+ .tiptap-prosemirror h1,
229
+ .tiptap-prosemirror h2,
230
+ .tiptap-prosemirror h3,
231
+ .tiptap-prosemirror h4,
232
+ .tiptap-prosemirror h5,
233
+ .tiptap-prosemirror h6 {
234
+ font-weight: 600;
235
+ color: #18181b;
236
+ margin-top: 1px;
237
+ margin-bottom: 1px;
238
+ line-height: 1.3;
239
+ }
240
+
241
+ .tiptap-prosemirror h1 {
242
+ font-size: 2.25rem;
243
+ }
244
+
245
+ .tiptap-prosemirror h2 {
246
+ font-size: 1.875rem;
247
+ }
248
+
249
+ .tiptap-prosemirror h3 {
250
+ font-size: 1.5rem;
251
+ }
252
+
253
+ .tiptap-prosemirror h4 {
254
+ font-size: 1.25rem;
255
+ }
256
+
257
+ .tiptap-prosemirror h5 {
258
+ font-size: 1.125rem;
259
+ }
260
+
261
+ .tiptap-prosemirror h6 {
262
+ font-size: 1rem;
263
+ }
264
+
265
+ /* Lists */
266
+ .tiptap-prosemirror ul,
267
+ .tiptap-prosemirror ol {
268
+ padding-left: 28px;
269
+ margin-bottom: 1em;
270
+ }
271
+
272
+ .tiptap-prosemirror li {
273
+ margin-bottom: 6px;
274
+ }
275
+
276
+ .tiptap-prosemirror li>p {
277
+ margin-bottom: 0;
278
+ }
279
+
280
+ /* Blockquotes */
281
+ .tiptap-prosemirror blockquote {
282
+ border-left: 4px solid #3b82f6;
283
+ padding-left: 16px;
284
+ margin: 1.5em 0;
285
+ color: #52525b;
286
+ font-style: italic;
287
+ background: #f8fafc;
288
+ padding: 12px 16px;
289
+ border-radius: 0 8px 8px 0;
290
+ }
291
+
292
+ /* Code & Pre */
293
+ .tiptap-prosemirror code {
294
+ background: #f4f4f5;
295
+ padding: 3px 6px;
296
+ border-radius: 4px;
297
+ font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
298
+ font-size: 0.85em;
299
+ color: #ef4444;
300
+ }
301
+
302
+ .tiptap-prosemirror pre {
303
+ background: #18181b;
304
+ color: #e4e4e7;
305
+ padding: 16px;
306
+ border-radius: 8px;
307
+ overflow-x: auto;
308
+ margin: 1.5em 0;
309
+ }
310
+
311
+ .tiptap-prosemirror pre code {
312
+ background: transparent;
313
+ padding: 0;
314
+ color: inherit;
315
+ font-size: 0.9em;
316
+ }
317
+
318
+ /* Links */
319
+ .tiptap-prosemirror a {
320
+ color: #2563eb;
321
+ text-decoration: none;
322
+ border-bottom: 1px solid transparent;
323
+ transition: border-color 0.2s ease;
324
+ }
325
+
326
+ .tiptap-prosemirror a:hover {
327
+ border-bottom-color: #2563eb;
328
+ }
329
+
330
+ /* Selection */
331
+ .tiptap-prosemirror ::selection {
332
+ background: rgba(59, 130, 246, 0.2);
333
+ }
334
+
335
+ /* =========================
336
+ LINK POPOVER
337
+ ========================= */
338
+
339
+ .tiptap-link-popover {
340
+ width: 280px;
341
+ padding: 18px 18px 16px !important;
342
+ border-radius: 4px !important;
343
+ border: 1px solid #e1dfdd !important;
344
+ background: #fff;
345
+ box-shadow:
346
+ 0 0 2px rgba(0, 0, 0, 0.12),
347
+ 0 8px 24px rgba(0, 0, 0, 0.18);
348
+
349
+ display: flex;
350
+ flex-direction: column;
351
+ gap: 18px;
352
+ }
353
+
354
+ .tiptap-link-row {
355
+ display: grid;
356
+ grid-template-columns: 70px 1fr;
357
+ align-items: center;
358
+ gap: 10px;
359
+ }
360
+
361
+ .tiptap-link-row label {
362
+ font-size: 14px;
363
+ color: #323130;
364
+ }
365
+
366
+ .tiptap-link-row .fui-Field {
367
+ width: 100%;
368
+ border-bottom: 1px solid #e1dfdd;
369
+ }
370
+
371
+ .tiptap-link-row .fui-Input {
372
+ width: 100%;
373
+ border: none !important;
374
+ background: transparent !important;
375
+ box-shadow: none !important;
376
+ }
377
+
378
+ .tiptap-link-row input {
379
+ width: 100%;
380
+ height: 26px;
381
+ border: none !important;
382
+ border-radius: 0 !important;
383
+ background: transparent !important;
384
+ font-size: 14px;
385
+ padding: 0 4px;
386
+ }
387
+
388
+ .tiptap-link-row input:focus {
389
+ outline: none;
390
+ }
391
+
392
+ .tiptap-link-actions {
393
+ display: flex;
394
+ justify-content: flex-end;
395
+ gap: 8px;
396
+ margin-top: -4px;
397
+ }
398
+
399
+ .tiptap-link-actions button {
400
+ min-width: 80px;
401
+ }
402
+
403
+ .tiptap-link-row input::placeholder {
404
+ color: #9ca3af !important;
405
+ opacity: 1;
406
+ }
407
+
408
+ /* =========================
409
+ TABLE POPOVER
410
+ ========================= */
411
+
412
+ .tiptap-table-popover {
413
+ width: 280px;
414
+ padding: 18px 18px 16px !important;
415
+ border-radius: 4px !important;
416
+ border: 1px solid #e1dfdd !important;
417
+ background: #fff;
418
+ box-shadow:
419
+ 0 0 2px rgba(0, 0, 0, 0.12),
420
+ 0 8px 24px rgba(0, 0, 0, 0.18);
421
+ display: flex;
422
+ flex-direction: column;
423
+ gap: 18px;
424
+ }
425
+
426
+ .tiptap-table-row {
427
+ display: grid;
428
+ grid-template-columns: 70px 1fr;
429
+ align-items: center;
430
+ gap: 14px;
431
+ }
432
+
433
+ .tiptap-table-row .fui-Field {
434
+ width: 100%;
435
+ border-bottom: 1px solid #e1dfdd;
436
+ }
437
+
438
+ .tiptap-table-row label {
439
+ font-size: 14px;
440
+ color: #323130;
441
+ }
442
+
443
+ .tiptap-table-row .fui-Field {
444
+ width: 100%;
445
+ }
446
+
447
+ .tiptap-table-row .fui-Input {
448
+ width: 100%;
449
+ border: none !important;
450
+ background: transparent !important;
451
+ box-shadow: none !important;
452
+ }
453
+
454
+ .tiptap-table-row input {
455
+ width: 100%;
456
+ height: 28px;
457
+ padding: 2px 4px;
458
+ border: none !important;
459
+ border-radius: 0 !important;
460
+ background: transparent !important;
461
+ font-size: 14px;
462
+ }
463
+
464
+ .tiptap-table-row input:focus {
465
+ outline: none;
466
+ }
467
+
468
+ .tiptap-table-actions {
469
+ display: flex;
470
+ justify-content: flex-end;
471
+ gap: 8px;
472
+ margin-top: -4px;
473
+ }
474
+
475
+ .tiptap-table-actions button {
476
+ min-width: 80px;
477
+ }
478
+
479
+ .tiptap-table-row input::placeholder {
480
+ color: #9ca3af !important;
481
+ opacity: 1;
482
+ }
483
+
484
+ .tiptap-table-row input[type="number"] {
485
+ text-align: left !important;
486
+ }
487
+
488
+ /* =========================
489
+ TABLE STYLING
490
+ ========================= */
491
+
492
+ .tiptap-content .tableWrapper {
493
+ width: 100%;
494
+ overflow-x: auto;
495
+ overflow-y: hidden;
496
+ padding-bottom: 4px;
497
+ }
498
+
499
+ .tiptap-content .ProseMirror table,
500
+ .tiptap-prosemirror table {
501
+ border-collapse: collapse;
502
+ table-layout: fixed;
503
+ width: 100%;
504
+ margin: 12px 0;
505
+ overflow: hidden;
506
+ border: 1px solid #d6d6d6;
507
+ background: #fff;
508
+ }
509
+
510
+ .tiptap-content .ProseMirror td,
511
+ .tiptap-content .ProseMirror th,
512
+ .tiptap-prosemirror td,
513
+ .tiptap-prosemirror th {
514
+ min-width: 120px;
515
+ height: 42px;
516
+ border: 1px solid #d6d6d6;
517
+ padding: 8px 10px;
518
+ vertical-align: top;
519
+ position: relative;
520
+ box-sizing: border-box;
521
+ }
522
+
523
+ .tiptap-content .ProseMirror th,
524
+ .tiptap-prosemirror th {
525
+ background: #f3f2f1;
526
+ font-weight: 600;
527
+ color: #323130;
528
+ text-align: left;
529
+ }
530
+
531
+ .tiptap-content .ProseMirror td,
532
+ .tiptap-prosemirror td {
533
+ background: #fff;
534
+ }
535
+
536
+ .tiptap-content .ProseMirror .selectedCell:after,
537
+ .tiptap-prosemirror .selectedCell:after {
538
+ content: "";
539
+ position: absolute;
540
+ inset: 0;
541
+ background: rgba(37, 99, 235, 0.12);
542
+ pointer-events: none;
543
+ }
544
+
545
+ .tiptap-content .ProseMirror .column-resize-handle,
546
+ .tiptap-prosemirror .column-resize-handle {
547
+ position: absolute;
548
+ top: 0;
549
+ right: -2px;
550
+ width: 4px;
551
+ height: 100%;
552
+ background: #2563eb;
553
+ pointer-events: none;
554
+ }
555
+
556
+ .tiptap-content .tableWrapper {
557
+ width: 100%;
558
+ overflow-x: auto;
559
+ overflow-y: hidden;
560
+ padding-bottom: 4px;
561
+ }
562
+
563
+ .table-dropdown-surface {
564
+ width: 190px !important;
565
+ padding: 8px 0 !important;
566
+ border-radius: 6px !important;
567
+ border: 1px solid #edebe9 !important;
568
+ background: #ffffff !important;
569
+ box-shadow:
570
+ 0 0 2px rgba(0, 0, 0, 0.12),
571
+ 0 8px 24px rgba(0, 0, 0, 0.14) !important;
572
+ display: flex;
573
+ flex-direction: column;
574
+ overflow: hidden;
575
+ }
576
+
577
+ .table-dropdown-section {
578
+ display: flex;
579
+ flex-direction: column;
580
+ }
581
+
582
+ .table-dropdown-title {
583
+ padding: 6px 14px 8px;
584
+
585
+ font-size: 14px;
586
+ font-weight: 600;
587
+
588
+ color: #323130;
589
+ }
590
+
591
+ .table-dropdown-divider {
592
+ height: 1px;
593
+ margin: 8px 0;
594
+ background: #edebe9;
595
+ }
596
+
597
+ .table-dropdown-btn,
598
+ .table-dropdown-btn.fui-Button {
599
+ height: 36px !important;
600
+ padding: 0 14px !important;
601
+ border: none !important;
602
+ border-radius: 0 !important;
603
+ background: transparent !important;
604
+ box-shadow: none !important;
605
+ display: flex !important;
606
+ align-items: center !important;
607
+ justify-content: flex-start !important;
608
+ gap: 10px;
609
+ font-size: 14px !important;
610
+ font-weight: 400 !important;
611
+ color: #323130 !important;
612
+ transition: background 0.12s ease;
613
+ }
614
+
615
+ .table-dropdown-btn:hover,
616
+ .table-dropdown-btn.fui-Button:hover {
617
+ background: #f3f2f1 !important;
618
+ }
619
+
620
+ .table-dropdown-btn:active,
621
+ .table-dropdown-btn.fui-Button:active {
622
+ background: #edebe9 !important;
623
+ transform: none !important;
624
+ }
625
+
626
+ .table-dropdown-btn svg {
627
+ font-size: 16px;
628
+ flex-shrink: 0;
629
+ }
630
+
631
+ .table-dropdown-btn.danger,
632
+ .table-dropdown-btn.danger.fui-Button {
633
+ color: #d13438 !important;
634
+ }
635
+
636
+ .table-dropdown-btn.danger:hover,
637
+ .table-dropdown-btn.danger.fui-Button:hover {
638
+ background: #fdf3f4 !important;
639
+ }
640
+
641
+ .table-dropdown-btn::after {
642
+ display: none !important;
643
+ }
644
+
645
+ .tiptap-content .ProseMirror table p,
646
+ .tiptap-prosemirror table p {
647
+ margin: 0;
648
+ }
649
+
650
+ .tiptap-color-popover.cp-surface {
651
+ border-radius: 8px !important;
652
+ padding: 12px !important;
653
+ width: 290px !important;
654
+ display: flex !important;
655
+ flex-direction: column !important;
656
+ gap: 10px !important;
657
+ background: #ffffff !important;
658
+ border: 1px solid #e1dfdd !important;
659
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.1), 0 10px 28px rgba(0, 0, 0, 0.18) !important;
660
+ }
661
+
662
+ .cp-header {
663
+ display: flex;
664
+ align-items: center;
665
+ gap: 10px;
666
+ }
667
+
668
+ .cp-preview {
669
+ width: 26px;
670
+ height: 26px;
671
+ border-radius: 6px;
672
+ border: 1px solid #d0d0d0;
673
+ flex-shrink: 0;
674
+ }
675
+
676
+ .cp-label {
677
+ font-size: 13px;
678
+ font-weight: 600;
679
+ color: #18181b;
680
+ }
681
+
682
+ .cp-hex-row {
683
+ display: flex;
684
+ align-items: center;
685
+ gap: 10px;
686
+ }
687
+
688
+ .cp-hex-label {
689
+ width: 42px;
690
+ font-size: 12px;
691
+ color: #666;
692
+ padding-top: 8px;
693
+ }
694
+
695
+ .cp-hex-input-wrap {
696
+ flex: 1;
697
+ }
698
+
699
+ .cp-presets {
700
+ display: grid;
701
+ grid-template-columns: repeat(9, 1fr);
702
+ gap: 6px;
703
+ }
704
+
705
+ .cp-swatch {
706
+ width: 100%;
707
+ aspect-ratio: 22 / 18;
708
+ height: auto;
709
+ border-radius: 4px;
710
+ border: 1px solid #d0d0d0;
711
+ cursor: pointer;
712
+ padding: 0;
713
+ transition: transform 0.1s ease, box-shadow 0.1s ease;
714
+ }
715
+
716
+ .cp-swatch:hover {
717
+ transform: scale(1.1);
718
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
719
+ z-index: 1;
720
+ position: relative;
721
+ }
722
+
723
+ .cp-swatch--active {
724
+ outline: 2px solid #0078d4;
725
+ outline-offset: 1.5px;
726
+ }
727
+
728
+ .cp-sv-area {
729
+ position: relative;
730
+ width: 100%;
731
+ height: 150px;
732
+ border-radius: 10px;
733
+ overflow: hidden;
734
+ cursor: crosshair;
735
+ border: 1px solid #e0e0e0;
736
+ }
737
+
738
+ .cp-sv-hue {
739
+ position: absolute;
740
+ inset: 0;
741
+ }
742
+
743
+ .cp-sv-white {
744
+ position: absolute;
745
+ inset: 0;
746
+ background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0));
747
+ }
748
+
749
+ .cp-sv-black {
750
+ position: absolute;
751
+ inset: 0;
752
+ background: linear-gradient(to top, #000, rgba(0, 0, 0, 0));
753
+ }
754
+
755
+ .cp-sv-thumb {
756
+ position: absolute;
757
+ width: 12px;
758
+ height: 12px;
759
+ border-radius: 999px;
760
+ border: 2px solid #fff;
761
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35);
762
+ transform: translate(-6px, -6px);
763
+ pointer-events: none;
764
+ }
765
+
766
+ .cp-hue-area {
767
+ position: relative;
768
+ height: 10px;
769
+ border-radius: 999px;
770
+ cursor: pointer;
771
+ border: 1px solid #e0e0e0;
772
+ background: linear-gradient(to right,
773
+ #ff0000,
774
+ #ffff00,
775
+ #00ff00,
776
+ #00ffff,
777
+ #0000ff,
778
+ #ff00ff,
779
+ #ff0000);
780
+ }
781
+
782
+ .cp-hue-thumb {
783
+ position: absolute;
784
+ top: 50%;
785
+ width: 12px;
786
+ height: 12px;
787
+ border-radius: 999px;
788
+ border: 2px solid #fff;
789
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35);
790
+ transform: translate(-6px, -6px);
791
+ pointer-events: none;
792
+ }
793
+
794
+ .cp-active-preview {
795
+ height: 10px;
796
+ border-radius: 999px;
797
+ border: 1px solid #e0e0e0;
798
+ }
799
+
800
+ .tiptap-prosemirror [data-block="signature"] {
801
+ margin: 8px 0 !important;
802
+ padding: 8px !important;
803
+ background: #f8fafc;
804
+ border: 1px dashed #cbd5e1;
805
+ border-radius: 6px;
806
+ display: inline-block;
807
+ }
808
+
809
+ .tiptap-editor::-webkit-scrollbar,
810
+ .tiptap-content::-webkit-scrollbar {
811
+ width: 8px;
812
+ height: 8px;
813
+ }
814
+
815
+ .tiptap-editor::-webkit-scrollbar-track,
816
+ .tiptap-content::-webkit-scrollbar-track {
817
+ background: transparent;
818
+ }
819
+
820
+ .tiptap-editor::-webkit-scrollbar-thumb,
821
+ .tiptap-content::-webkit-scrollbar-thumb {
822
+ background: #d4d4d8;
823
+ border-radius: 10px;
824
+ }
825
+
826
+ .tiptap-editor::-webkit-scrollbar-thumb:hover,
827
+ .tiptap-content::-webkit-scrollbar-thumb:hover {
828
+ background: #a1a1aa;
829
+ }
830
+
831
+ @media (max-width: 768px) {
832
+ .tiptap-toolbar {
833
+ padding: 8px;
834
+ flex-wrap: wrap;
835
+ }
836
+
837
+ .tiptap-prosemirror {
838
+ padding: 16px;
839
+ font-size: 15px;
840
+ }
841
+
842
+ .tiptap-link-popover,
843
+ .tiptap-table-popover,
844
+ .tiptap-color-popover.cp-surface {
845
+ width: calc(100vw - 32px) !important;
846
+ max-width: 320px;
847
+ }
848
+ }
849
+
850
+ /* =========================
851
+ RESPONSIVE TABLE FIXES
852
+ ========================= */
853
+ .tiptap-content .tableWrapper,
854
+ .tiptap-prosemirror .tableWrapper {
855
+ width: 100%;
856
+ overflow-x: auto;
857
+ overflow-y: hidden;
858
+ -webkit-overflow-scrolling: touch;
859
+ scrollbar-width: thin;
860
+ }
861
+
862
+ .tiptap-content .ProseMirror table,
863
+ .tiptap-prosemirror table {
864
+ width: max-content;
865
+ min-width: 100%;
866
+ table-layout: auto;
867
+ }
868
+
869
+ .tiptap-content .ProseMirror td,
870
+ .tiptap-content .ProseMirror th,
871
+ .tiptap-prosemirror td,
872
+ .tiptap-prosemirror th {
873
+ min-width: 120px;
874
+ max-width: 260px;
875
+ word-break: break-word;
876
+ overflow-wrap: break-word;
877
+ white-space: pre-wrap;
878
+ }
879
+
880
+ .table-menu-wrapper {
881
+ position: absolute;
882
+ z-index: 40;
883
+ top: 0;
884
+ left: 0;
885
+ transform: translate(-30px, 8px);
886
+ pointer-events: none;
887
+ }
888
+
889
+ .table-menu-wrapper>* {
890
+ pointer-events: auto;
891
+ }
892
+
893
+ .table-trigger-btn,
894
+ .table-trigger-btn.fui-Button {
895
+ width: 22px !important;
896
+ min-width: 22px !important;
897
+ height: 22px !important;
898
+ min-height: 22px !important;
899
+ padding: 0 !important;
900
+ display: flex !important;
901
+ align-items: center !important;
902
+ justify-content: center !important;
903
+ color: #605e5c !important;
904
+ line-height: 1 !important;
905
+ font-size: 18px !important;
906
+ cursor: pointer;
907
+ transition:
908
+ background 0.15s ease,
909
+ border-color 0.15s ease,
910
+ box-shadow 0.15s ease;
911
+ margin-top: 42px !important;
912
+ margin-left: 20px !important;
913
+ }
914
+
915
+ .tiptap-content .tableWrapper,
916
+ .tiptap-prosemirror .tableWrapper {
917
+ width: 100%;
918
+ overflow-x: auto;
919
+ overflow-y: hidden;
920
+ position: relative;
921
+ -webkit-overflow-scrolling: touch;
922
+ scrollbar-width: thin;
923
+ }
924
+
925
+ .tiptap-content .ProseMirror table,
926
+ .tiptap-prosemirror table {
927
+ width: max-content;
928
+ min-width: 100%;
929
+ table-layout: auto;
930
+ }
931
+
932
+ .tiptap-content .ProseMirror td,
933
+ .tiptap-content .ProseMirror th,
934
+ .tiptap-prosemirror td,
935
+ .tiptap-prosemirror th {
936
+ min-width: 120px;
937
+ max-width: 260px;
938
+ word-break: break-word;
939
+ overflow-wrap: break-word;
940
+ white-space: pre-wrap;
941
+ position: relative;
942
+ }
943
+
944
+ @media (max-width: 480px) {
945
+ .table-menu-wrapper {
946
+ transform: translate(-22px, 5px);
947
+ }
948
+
949
+ .table-trigger-btn,
950
+ .table-trigger-btn.fui-Button {
951
+ width: 18px !important;
952
+ min-width: 18px !important;
953
+ height: 25px !important;
954
+ min-height: 18px !important;
955
+ font-size: 9px !important;
956
+ border-radius: 3px !important;
957
+ margin-top: 120px !important;
958
+ margin-left: 15px !important;
959
+ }
960
+
961
+ .tiptap-content .ProseMirror td,
962
+ .tiptap-content .ProseMirror th,
963
+ .tiptap-prosemirror td,
964
+ .tiptap-prosemirror th {
965
+ min-width: 80px;
966
+ max-width: 140px;
967
+ padding: 5px 6px;
968
+ font-size: 13px;
969
+ }
970
+ }
971
+
972
+ @media (min-width: 1024px) {
973
+
974
+ .tiptap-content .ProseMirror td,
975
+ .tiptap-content .ProseMirror th,
976
+ .tiptap-prosemirror td,
977
+ .tiptap-prosemirror th {
978
+ min-width: 140px;
979
+ }
980
+ }
981
+
982
+ @media (max-width: 768px) {
983
+
984
+ .table-menu-wrapper {
985
+ transform: translate(-26px, 6px);
986
+ }
987
+
988
+ .table-trigger-btn,
989
+ .table-trigger-btn.fui-Button {
990
+ width: 20px !important;
991
+ min-width: 20px !important;
992
+ height: 20px !important;
993
+ min-height: 20px !important;
994
+ font-size: 10px !important;
995
+ border-radius: 4px !important;
996
+ margin-top: 84px !important;
997
+ margin-left: 15px !important;
998
+ }
999
+
1000
+ .tiptap-content .ProseMirror td,
1001
+ .tiptap-content .ProseMirror th,
1002
+ .tiptap-prosemirror td,
1003
+ .tiptap-prosemirror th {
1004
+
1005
+ min-width: 90px;
1006
+ max-width: 180px;
1007
+
1008
+ padding: 6px 8px;
1009
+
1010
+ font-size: 14px;
1011
+ }
1012
+ }
1013
+
1014
+ .cp-actions {
1015
+ display: flex;
1016
+ gap: 10px;
1017
+ justify-content: flex-end;
1018
+ margin-top: 12px;
1019
+ }