@cgi-learning-hub/ui 1.14.0 → 1.15.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,621 @@
1
+ @charset "UTF-8";
2
+ @keyframes fadeIn {
3
+ from {
4
+ opacity: 0;
5
+ }
6
+ to {
7
+ opacity: 1;
8
+ }
9
+ }
10
+ @keyframes fadeOut {
11
+ from {
12
+ opacity: 1;
13
+ }
14
+ to {
15
+ opacity: 0;
16
+ }
17
+ }
18
+ @keyframes zoomIn {
19
+ from {
20
+ transform: scale(0.95);
21
+ }
22
+ to {
23
+ transform: scale(1);
24
+ }
25
+ }
26
+ @keyframes zoomOut {
27
+ from {
28
+ transform: scale(1);
29
+ }
30
+ to {
31
+ transform: scale(0.95);
32
+ }
33
+ }
34
+ @keyframes zoom {
35
+ 0% {
36
+ opacity: 0;
37
+ transform: scale(0.95);
38
+ }
39
+ 100% {
40
+ opacity: 1;
41
+ transform: scale(1);
42
+ }
43
+ }
44
+ @keyframes slideFromTop {
45
+ from {
46
+ transform: translateY(-0.5rem);
47
+ }
48
+ to {
49
+ transform: translateY(0);
50
+ }
51
+ }
52
+ @keyframes slideFromRight {
53
+ from {
54
+ transform: translateX(0.5rem);
55
+ }
56
+ to {
57
+ transform: translateX(0);
58
+ }
59
+ }
60
+ @keyframes slideFromLeft {
61
+ from {
62
+ transform: translateX(-0.5rem);
63
+ }
64
+ to {
65
+ transform: translateX(0);
66
+ }
67
+ }
68
+ @keyframes slideFromBottom {
69
+ from {
70
+ transform: translateY(0.5rem);
71
+ }
72
+ to {
73
+ transform: translateY(0);
74
+ }
75
+ }
76
+ @keyframes spin {
77
+ from {
78
+ transform: rotate(0deg);
79
+ }
80
+ to {
81
+ transform: rotate(360deg);
82
+ }
83
+ }
84
+ :root {
85
+ /******************
86
+ Basics
87
+ ******************/
88
+ overflow-wrap: break-word;
89
+ /* iOS WebKit only honors the -webkit- prefixed form */
90
+ -webkit-text-size-adjust: none;
91
+ text-size-adjust: none;
92
+ text-rendering: optimizeLegibility;
93
+ -webkit-font-smoothing: antialiased;
94
+ -moz-osx-font-smoothing: grayscale;
95
+ /******************
96
+ Colors variables
97
+ ******************/
98
+ /* Gray alpha (light mode) */
99
+ --tt-gray-light-a-50: rgba(56, 56, 56, 0.04);
100
+ --tt-gray-light-a-100: rgba(15, 22, 36, 0.05);
101
+ --tt-gray-light-a-200: rgba(37, 39, 45, 0.1);
102
+ --tt-gray-light-a-300: rgba(47, 50, 55, 0.2);
103
+ --tt-gray-light-a-400: rgba(40, 44, 51, 0.42);
104
+ --tt-gray-light-a-500: rgba(52, 55, 60, 0.64);
105
+ --tt-gray-light-a-600: rgba(36, 39, 46, 0.78);
106
+ --tt-gray-light-a-700: rgba(35, 37, 42, 0.87);
107
+ --tt-gray-light-a-800: rgba(30, 32, 36, 0.95);
108
+ --tt-gray-light-a-900: rgba(29, 30, 32, 0.98);
109
+ /* Gray (light mode) */
110
+ --tt-gray-light-50: rgba(250, 250, 250, 1);
111
+ --tt-gray-light-100: rgba(244, 244, 245, 1);
112
+ --tt-gray-light-200: rgba(234, 234, 235, 1);
113
+ --tt-gray-light-300: rgba(213, 214, 215, 1);
114
+ --tt-gray-light-400: rgba(166, 167, 171, 1);
115
+ --tt-gray-light-500: rgba(125, 127, 130, 1);
116
+ --tt-gray-light-600: rgba(83, 86, 90, 1);
117
+ --tt-gray-light-700: rgba(64, 65, 69, 1);
118
+ --tt-gray-light-800: rgba(44, 45, 48, 1);
119
+ --tt-gray-light-900: rgba(34, 35, 37, 1);
120
+ /* Gray alpha (dark mode) */
121
+ --tt-gray-dark-a-50: rgba(232, 232, 253, 0.05);
122
+ --tt-gray-dark-a-100: rgba(231, 231, 243, 0.07);
123
+ --tt-gray-dark-a-200: rgba(238, 238, 246, 0.11);
124
+ --tt-gray-dark-a-300: rgba(239, 239, 245, 0.22);
125
+ --tt-gray-dark-a-400: rgba(244, 244, 255, 0.37);
126
+ --tt-gray-dark-a-500: rgba(236, 238, 253, 0.5);
127
+ --tt-gray-dark-a-600: rgba(247, 247, 253, 0.64);
128
+ --tt-gray-dark-a-700: rgba(251, 251, 254, 0.75);
129
+ --tt-gray-dark-a-800: rgba(253, 253, 253, 0.88);
130
+ --tt-gray-dark-a-900: rgba(255, 255, 255, 0.96);
131
+ /* Gray (dark mode) */
132
+ --tt-gray-dark-50: rgba(25, 25, 26, 1);
133
+ --tt-gray-dark-100: rgba(32, 32, 34, 1);
134
+ --tt-gray-dark-200: rgba(45, 45, 47, 1);
135
+ --tt-gray-dark-300: rgba(70, 70, 73, 1);
136
+ --tt-gray-dark-400: rgba(99, 99, 105, 1);
137
+ --tt-gray-dark-500: rgba(124, 124, 131, 1);
138
+ --tt-gray-dark-600: rgba(163, 163, 168, 1);
139
+ --tt-gray-dark-700: rgba(192, 192, 195, 1);
140
+ --tt-gray-dark-800: rgba(224, 224, 225, 1);
141
+ --tt-gray-dark-900: rgba(245, 245, 245, 1);
142
+ /******************
143
+ Shadow variables
144
+ ******************/
145
+ /* Shadows Light */
146
+ --tt-shadow-elevated-md:
147
+ 0px 16px 48px 0px rgba(17, 24, 39, 0.04),
148
+ 0px 12px 24px 0px rgba(17, 24, 39, 0.04),
149
+ 0px 6px 8px 0px rgba(17, 24, 39, 0.02),
150
+ 0px 2px 3px 0px rgba(17, 24, 39, 0.02);
151
+ /**************************************************
152
+ Radius variables
153
+ **************************************************/
154
+ --tt-radius-xxs: 0.125rem; /* 2px */
155
+ --tt-radius-xs: 0.25rem; /* 4px */
156
+ --tt-radius-sm: 0.375rem; /* 6px */
157
+ --tt-radius-md: 0.5rem; /* 8px */
158
+ --tt-radius-lg: 0.75rem; /* 12px */
159
+ --tt-radius-xl: 1rem; /* 16px */
160
+ /**************************************************
161
+ Transition variables
162
+ **************************************************/
163
+ --tt-transition-duration-short: 0.1s;
164
+ --tt-transition-duration-default: 0.2s;
165
+ --tt-transition-duration-long: 0.64s;
166
+ --tt-transition-easing-default: cubic-bezier(0.46, 0.03, 0.52, 0.96);
167
+ --tt-transition-easing-cubic: cubic-bezier(0.65, 0.05, 0.36, 1);
168
+ --tt-transition-easing-quart: cubic-bezier(0.77, 0, 0.18, 1);
169
+ --tt-transition-easing-circ: cubic-bezier(0.79, 0.14, 0.15, 0.86);
170
+ --tt-transition-easing-back: cubic-bezier(0.68, -0.55, 0.27, 1.55);
171
+ /******************
172
+ Contrast variables
173
+ ******************/
174
+ --tt-accent-contrast: 8%;
175
+ --tt-destructive-contrast: 8%;
176
+ --tt-foreground-contrast: 8%;
177
+ }
178
+ :root,
179
+ :root *,
180
+ :root ::before,
181
+ :root ::after {
182
+ box-sizing: border-box;
183
+ transition: none var(--tt-transition-duration-default) var(--tt-transition-easing-default);
184
+ }
185
+
186
+ :root {
187
+ /**************************************************
188
+ Global colors
189
+ **************************************************/
190
+ /* Global colors - Light mode */
191
+ --tt-bg-color: var(--theme-palette-background-default);
192
+ --tt-border-color: var(--tt-gray-light-a-200);
193
+ --tt-border-color-tint: var(--tt-gray-light-a-100);
194
+ --tt-sidebar-bg-color: var(--theme-palette-grey-100);
195
+ --tt-scrollbar-color: var(--tt-gray-light-a-200);
196
+ --tt-cursor-color: var(--theme-palette-primary-main);
197
+ --tt-selection-color: color-mix(in srgb, var(--theme-palette-primary-light) 30%, transparent);
198
+ --tt-card-bg-color: var(--theme-palette-background-paper);
199
+ --tt-card-border-color: var(--tt-gray-light-a-100);
200
+ }
201
+
202
+ .tiptap.ProseMirror {
203
+ --blockquote-bg-color: var(--theme-palette-grey-900);
204
+ }
205
+ .dark .tiptap.ProseMirror {
206
+ --blockquote-bg-color: var(--theme-palette-grey-100);
207
+ }
208
+
209
+ /* =====================
210
+ BLOCKQUOTE
211
+ ===================== */
212
+ .tiptap.ProseMirror blockquote {
213
+ position: relative;
214
+ padding-left: 1em;
215
+ padding-top: 0.375em;
216
+ padding-bottom: 0.375em;
217
+ margin: 1.5rem 0;
218
+ }
219
+ .tiptap.ProseMirror blockquote p {
220
+ margin-top: 0;
221
+ }
222
+ .tiptap.ProseMirror blockquote::before, .tiptap.ProseMirror blockquote.is-empty::before {
223
+ position: absolute;
224
+ bottom: 0;
225
+ left: 0;
226
+ top: 0;
227
+ height: 100%;
228
+ width: 0.25em;
229
+ background-color: var(--blockquote-bg-color);
230
+ content: "";
231
+ border-radius: 0;
232
+ }
233
+
234
+ .tiptap.ProseMirror {
235
+ --tt-inline-code-bg-color: var(--theme-palette-grey-100);
236
+ --tt-inline-code-text-color: var(--theme-palette-grey-700);
237
+ --tt-inline-code-border-color: var(--theme-palette-grey-200);
238
+ --tt-codeblock-bg: var(--theme-palette-grey-50);
239
+ --tt-codeblock-text: var(--theme-palette-grey-800);
240
+ --tt-codeblock-border: var(--theme-palette-grey-200);
241
+ }
242
+ .dark .tiptap.ProseMirror {
243
+ --tt-inline-code-bg-color: var(--tt-gray-dark-a-100);
244
+ --tt-inline-code-text-color: var(--tt-gray-dark-a-700);
245
+ --tt-inline-code-border-color: var(--tt-gray-dark-a-200);
246
+ --tt-codeblock-bg: var(--tt-gray-dark-a-50);
247
+ --tt-codeblock-text: var(--tt-gray-dark-a-800);
248
+ --tt-codeblock-border: var(--tt-gray-dark-a-200);
249
+ }
250
+
251
+ /* =====================
252
+ CODE FORMATTING
253
+ ===================== */
254
+ .tiptap.ProseMirror code {
255
+ background-color: var(--tt-inline-code-bg-color);
256
+ color: var(--tt-inline-code-text-color);
257
+ border: 1px solid var(--tt-inline-code-border-color);
258
+ font-family: "JetBrains Mono NL", monospace;
259
+ font-size: 0.875em;
260
+ line-height: 1.4;
261
+ border-radius: 6px/0.375rem;
262
+ padding: 0.1em 0.2em;
263
+ }
264
+ .tiptap.ProseMirror pre {
265
+ background-color: var(--tt-codeblock-bg);
266
+ color: var(--tt-codeblock-text);
267
+ border: 1px solid var(--tt-codeblock-border);
268
+ margin-top: 1.5em;
269
+ margin-bottom: 1.5em;
270
+ padding: 1em;
271
+ font-size: 1rem;
272
+ border-radius: 6px/0.375rem;
273
+ }
274
+ .tiptap.ProseMirror pre code {
275
+ background-color: transparent;
276
+ border: none;
277
+ border-radius: 0;
278
+ -webkit-text-fill-color: inherit;
279
+ color: inherit;
280
+ }
281
+
282
+ .tiptap.ProseMirror {
283
+ --tt-checklist-bg-color: var(--tt-gray-light-a-100);
284
+ --tt-checklist-bg-active-color: var(--tt-gray-light-a-900);
285
+ --tt-checklist-border-color: var(--tt-gray-light-a-200);
286
+ --tt-checklist-border-active-color: var(--tt-gray-light-a-900);
287
+ --tt-checklist-check-icon-color: var(--white);
288
+ --tt-checklist-text-active: var(--tt-gray-light-a-500);
289
+ }
290
+ .dark .tiptap.ProseMirror {
291
+ --tt-checklist-bg-color: var(--tt-gray-dark-a-100);
292
+ --tt-checklist-bg-active-color: var(--tt-gray-dark-a-900);
293
+ --tt-checklist-border-color: var(--tt-gray-dark-a-200);
294
+ --tt-checklist-border-active-color: var(--tt-gray-dark-a-900);
295
+ --tt-checklist-check-icon-color: var(--black);
296
+ --tt-checklist-text-active: var(--tt-gray-dark-a-500);
297
+ }
298
+
299
+ /* =====================
300
+ LISTS
301
+ ===================== */
302
+ .tiptap.ProseMirror ol,
303
+ .tiptap.ProseMirror ul {
304
+ margin-top: 1.5em;
305
+ margin-bottom: 1.5em;
306
+ padding-left: 1.5em;
307
+ }
308
+ .tiptap.ProseMirror ol:first-child,
309
+ .tiptap.ProseMirror ul:first-child {
310
+ margin-top: 0;
311
+ }
312
+ .tiptap.ProseMirror ol:last-child,
313
+ .tiptap.ProseMirror ul:last-child {
314
+ margin-bottom: 0;
315
+ }
316
+ .tiptap.ProseMirror ol ol,
317
+ .tiptap.ProseMirror ol ul,
318
+ .tiptap.ProseMirror ul ol,
319
+ .tiptap.ProseMirror ul ul {
320
+ margin-top: 0;
321
+ margin-bottom: 0;
322
+ }
323
+ .tiptap.ProseMirror li p:not(:first-child):not(td p):not(th p) {
324
+ margin-top: 0;
325
+ line-height: 1.6;
326
+ }
327
+ .tiptap.ProseMirror ol {
328
+ list-style: decimal;
329
+ }
330
+ .tiptap.ProseMirror ol ol {
331
+ list-style: lower-alpha;
332
+ }
333
+ .tiptap.ProseMirror ol ol ol {
334
+ list-style: lower-roman;
335
+ }
336
+ .tiptap.ProseMirror ol ol ol ol {
337
+ list-style: decimal;
338
+ }
339
+ .tiptap.ProseMirror ol ol ol ol ol {
340
+ list-style: lower-alpha;
341
+ }
342
+ .tiptap.ProseMirror ol ol ol ol ol ol {
343
+ list-style: lower-roman;
344
+ }
345
+ .tiptap.ProseMirror ol ol ol ol ol ol ol {
346
+ list-style: decimal;
347
+ }
348
+ .tiptap.ProseMirror ol ol ol ol ol ol ol ol {
349
+ list-style: lower-alpha;
350
+ }
351
+ .tiptap.ProseMirror ol ol ol ol ol ol ol ol ol {
352
+ list-style: lower-roman;
353
+ }
354
+ .tiptap.ProseMirror ul:not([data-type=taskList]) {
355
+ list-style: disc;
356
+ }
357
+ .tiptap.ProseMirror ul:not([data-type=taskList]) ul {
358
+ list-style: circle;
359
+ }
360
+ .tiptap.ProseMirror ul:not([data-type=taskList]) ul ul {
361
+ list-style: square;
362
+ }
363
+ .tiptap.ProseMirror ul:not([data-type=taskList]) ul ul ul {
364
+ list-style: disc;
365
+ }
366
+ .tiptap.ProseMirror ul:not([data-type=taskList]) ul ul ul ul {
367
+ list-style: circle;
368
+ }
369
+ .tiptap.ProseMirror ul:not([data-type=taskList]) ul ul ul ul ul {
370
+ list-style: square;
371
+ }
372
+ .tiptap.ProseMirror ul:not([data-type=taskList]) ul ul ul ul ul ul {
373
+ list-style: disc;
374
+ }
375
+ .tiptap.ProseMirror ul:not([data-type=taskList]) ul ul ul ul ul ul ul {
376
+ list-style: circle;
377
+ }
378
+ .tiptap.ProseMirror ul:not([data-type=taskList]) ul ul ul ul ul ul ul ul {
379
+ list-style: square;
380
+ }
381
+ .tiptap.ProseMirror ul[data-type=taskList] {
382
+ padding-left: 0.25em;
383
+ }
384
+ .tiptap.ProseMirror ul[data-type=taskList] li {
385
+ display: flex;
386
+ flex-direction: row;
387
+ align-items: flex-start;
388
+ }
389
+ .tiptap.ProseMirror ul[data-type=taskList] li:not(:has(> p:first-child)) {
390
+ list-style-type: none;
391
+ }
392
+ .tiptap.ProseMirror ul[data-type=taskList] li[data-checked=true] > div > p {
393
+ opacity: 0.5;
394
+ text-decoration: line-through;
395
+ }
396
+ .tiptap.ProseMirror ul[data-type=taskList] li[data-checked=true] > div > p span {
397
+ text-decoration: line-through;
398
+ }
399
+ .tiptap.ProseMirror ul[data-type=taskList] li label {
400
+ position: relative;
401
+ padding-top: 0.375rem;
402
+ padding-right: 0.5rem;
403
+ }
404
+ .tiptap.ProseMirror ul[data-type=taskList] li label input[type=checkbox] {
405
+ position: absolute;
406
+ opacity: 0;
407
+ width: 0;
408
+ height: 0;
409
+ }
410
+ .tiptap.ProseMirror ul[data-type=taskList] li label span {
411
+ display: block;
412
+ width: 1em;
413
+ height: 1em;
414
+ border: 1px solid var(--tt-checklist-border-color);
415
+ border-radius: var(--tt-radius-xs, 0.25rem);
416
+ position: relative;
417
+ cursor: pointer;
418
+ background-color: var(--tt-checklist-bg-color);
419
+ transition: background-color 80ms ease-out, border-color 80ms ease-out;
420
+ }
421
+ .tiptap.ProseMirror ul[data-type=taskList] li label span::before {
422
+ content: "";
423
+ position: absolute;
424
+ left: 50%;
425
+ top: 50%;
426
+ transform: translate(-50%, -50%);
427
+ width: 0.75em;
428
+ height: 0.75em;
429
+ background-color: var(--tt-checklist-check-icon-color);
430
+ opacity: 0;
431
+ -webkit-mask: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21.4142%204.58579C22.1953%205.36683%2022.1953%206.63317%2021.4142%207.41421L10.4142%2018.4142C9.63317%2019.1953%208.36684%2019.1953%207.58579%2018.4142L2.58579%2013.4142C1.80474%2012.6332%201.80474%2011.3668%202.58579%2010.5858C3.36683%209.80474%204.63317%209.80474%205.41421%2010.5858L9%2014.1716L18.5858%204.58579C19.3668%203.80474%2020.6332%203.80474%2021.4142%204.58579Z%22%20fill%3D%22currentColor%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;
432
+ mask: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22currentColor%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21.4142%204.58579C22.1953%205.36683%2022.1953%206.63317%2021.4142%207.41421L10.4142%2018.4142C9.63317%2019.1953%208.36684%2019.1953%207.58579%2018.4142L2.58579%2013.4142C1.80474%2012.6332%201.80474%2011.3668%202.58579%2010.5858C3.36683%209.80474%204.63317%209.80474%205.41421%2010.5858L9%2014.1716L18.5858%204.58579C19.3668%203.80474%2020.6332%203.80474%2021.4142%204.58579Z%22%20fill%3D%22currentColor%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;
433
+ }
434
+ .tiptap.ProseMirror ul[data-type=taskList] li label input[type=checkbox]:checked + span {
435
+ background: var(--tt-checklist-bg-active-color);
436
+ border-color: var(--tt-checklist-border-active-color);
437
+ }
438
+ .tiptap.ProseMirror ul[data-type=taskList] li label input[type=checkbox]:checked + span::before {
439
+ opacity: 1;
440
+ }
441
+ .tiptap.ProseMirror ul[data-type=taskList] li div {
442
+ flex: 1 1 0%;
443
+ min-width: 0;
444
+ }
445
+
446
+ .tiptap.ProseMirror {
447
+ --tt-collaboration-carets-label: var(--theme-palette-grey-900);
448
+ --link-text-color: var(--theme-palette-primary-main);
449
+ --placeholder-color: var(--tt-gray-light-a-400);
450
+ --tiptap-ai-insertion-color: var(--theme-palette-primary-dark);
451
+ }
452
+ .dark .tiptap.ProseMirror {
453
+ --tt-collaboration-carets-label: var(--tt-gray-dark-100);
454
+ --link-text-color: var(--theme-palette-primary-light);
455
+ --placeholder-color: var(--tt-gray-dark-a-400);
456
+ --tiptap-ai-insertion-color: var(--theme-palette-primary-light);
457
+ }
458
+
459
+ /* Ensure each top-level node has relative positioning
460
+ so absolutely positioned placeholders work correctly */
461
+ .tiptap.ProseMirror > * {
462
+ position: relative;
463
+ }
464
+
465
+ /* =====================
466
+ CORE EDITOR STYLES
467
+ ===================== */
468
+ .tiptap.ProseMirror {
469
+ white-space: pre-wrap;
470
+ outline: none;
471
+ caret-color: var(--tt-cursor-color);
472
+ }
473
+ .tiptap.ProseMirror p:not(:first-child):not(td p):not(th p) {
474
+ margin-top: 20px;
475
+ }
476
+ .tiptap.ProseMirror p:not(td p):not(th p) {
477
+ font-size: 1rem;
478
+ line-height: 1.6;
479
+ font-weight: normal;
480
+ }
481
+ .tiptap.ProseMirror:not(.readonly):not(.ProseMirror-hideselection) ::selection {
482
+ background-color: var(--tt-selection-color);
483
+ }
484
+ .tiptap.ProseMirror:not(.readonly):not(.ProseMirror-hideselection) .selection::selection {
485
+ background: transparent;
486
+ }
487
+ .tiptap.ProseMirror .selection {
488
+ display: inline;
489
+ background-color: var(--tt-selection-color);
490
+ }
491
+ .tiptap.ProseMirror .ProseMirror-selectednode:not(img):not(pre):not(.react-renderer) {
492
+ border-radius: var(--tt-radius-md);
493
+ background-color: var(--tt-selection-color);
494
+ }
495
+ .tiptap.ProseMirror .ProseMirror-hideselection {
496
+ caret-color: transparent;
497
+ }
498
+ .tiptap.ProseMirror.resize-cursor {
499
+ cursor: ew-resize;
500
+ cursor: col-resize;
501
+ }
502
+
503
+ /* =====================
504
+ TEXT DECORATION
505
+ ===================== */
506
+ .tiptap.ProseMirror a span {
507
+ text-decoration: underline;
508
+ }
509
+ .tiptap.ProseMirror s span {
510
+ text-decoration: line-through;
511
+ }
512
+ .tiptap.ProseMirror u span {
513
+ text-decoration: underline;
514
+ }
515
+ .tiptap.ProseMirror .tiptap-ai-insertion {
516
+ color: var(--tiptap-ai-insertion-color);
517
+ }
518
+
519
+ /* =====================
520
+ COLLABORATION
521
+ ===================== */
522
+ .tiptap.ProseMirror .collaboration-carets__caret {
523
+ border-right: 1px solid transparent;
524
+ border-left: 1px solid transparent;
525
+ pointer-events: none;
526
+ margin-left: -1px;
527
+ margin-right: -1px;
528
+ position: relative;
529
+ word-break: normal;
530
+ }
531
+ .tiptap.ProseMirror .collaboration-carets__label {
532
+ color: var(--tt-collaboration-carets-label);
533
+ border-radius: 0.25rem;
534
+ border-bottom-left-radius: 0;
535
+ font-size: 0.75rem;
536
+ font-weight: 600;
537
+ left: -1px;
538
+ line-height: 1;
539
+ padding: 0.125rem 0.375rem;
540
+ position: absolute;
541
+ top: -1.3em;
542
+ user-select: none;
543
+ white-space: nowrap;
544
+ }
545
+
546
+ /* =====================
547
+ EMOJI
548
+ ===================== */
549
+ .tiptap.ProseMirror [data-type=emoji] img {
550
+ display: inline-block;
551
+ width: 1.25em;
552
+ height: 1.25em;
553
+ cursor: text;
554
+ }
555
+
556
+ /* =====================
557
+ LINKS
558
+ ===================== */
559
+ .tiptap.ProseMirror a {
560
+ color: var(--link-text-color);
561
+ text-decoration: underline;
562
+ }
563
+
564
+ /* =====================
565
+ MENTION
566
+ ===================== */
567
+ .tiptap.ProseMirror [data-type=mention] {
568
+ display: inline-block;
569
+ color: var(--theme-palette-primary-main);
570
+ }
571
+
572
+ /* =====================
573
+ PLACEHOLDER
574
+ ===================== */
575
+ .is-empty:not(.with-slash)[data-placeholder]:has(> .ProseMirror-trailingBreak:only-child)::before {
576
+ content: attr(data-placeholder);
577
+ }
578
+
579
+ .is-empty.with-slash[data-placeholder]:has(> .ProseMirror-trailingBreak:only-child)::before {
580
+ content: "Write, type '/' for commands…";
581
+ font-style: italic;
582
+ }
583
+
584
+ .is-empty[data-placeholder]:has(> .ProseMirror-trailingBreak:only-child):before {
585
+ pointer-events: none;
586
+ height: 0;
587
+ position: absolute;
588
+ width: 100%;
589
+ text-align: inherit;
590
+ left: 0;
591
+ right: 0;
592
+ }
593
+
594
+ .is-empty[data-placeholder]:has(> .ProseMirror-trailingBreak):before {
595
+ color: var(--placeholder-color);
596
+ }
597
+
598
+ /* =====================
599
+ DROPCURSOR
600
+ ===================== */
601
+ .prosemirror-dropcursor-block,
602
+ .prosemirror-dropcursor-inline {
603
+ background: var(--theme-palette-primary-light) !important;
604
+ border-radius: 0.25rem;
605
+ margin-left: -1px;
606
+ margin-right: -1px;
607
+ width: 100%;
608
+ height: 0.188rem;
609
+ cursor: grabbing;
610
+ }
611
+
612
+ /* =====================
613
+ INDENT
614
+ ===================== */
615
+ .tiptap.ProseMirror {
616
+ --tt-indent-unit: 24px;
617
+ }
618
+ .tiptap.ProseMirror [data-indent] {
619
+ transition: margin-left 0.2s ease-in-out;
620
+ margin-left: calc(var(--tt-indent-unit) * var(--tt-indent-level, 0));
621
+ }
package/dist/ui.css CHANGED
@@ -11,4 +11,90 @@
11
11
  --toastify-text-color-light: var(--theme-palette-text-primary);
12
12
  --toastify-text-color-dark: var(--theme-palette-common-white);
13
13
  }
14
- /*$vite$:1*/
14
+ :root {
15
+ --tt-toolbar-height: 2.75rem;
16
+ --tt-safe-area-bottom: env(safe-area-inset-bottom, 0px);
17
+ --tt-toolbar-bg-color: var(--theme-palette-common-white);
18
+ --tt-toolbar-border-color: var(--theme-palette-divider);
19
+ }
20
+
21
+ .dark {
22
+ --tt-toolbar-bg-color: var(--theme-palette-common-black);
23
+ --tt-toolbar-border-color: var(--theme-palette-divider);
24
+ }
25
+
26
+ .tiptap-toolbar {
27
+ display: flex;
28
+ align-items: center;
29
+ gap: 0.25rem;
30
+ }
31
+ .tiptap-toolbar-group {
32
+ display: flex;
33
+ align-items: center;
34
+ gap: 0.125rem;
35
+ }
36
+ .tiptap-toolbar-group:empty {
37
+ display: none;
38
+ }
39
+ .tiptap-toolbar-group:empty + .tiptap-separator, .tiptap-separator + .tiptap-toolbar-group:empty {
40
+ display: none;
41
+ }
42
+ .tiptap-toolbar[data-variant=fixed] {
43
+ position: sticky;
44
+ top: 0;
45
+ z-index: 50;
46
+ width: 100%;
47
+ min-height: var(--tt-toolbar-height);
48
+ background: var(--tt-toolbar-bg-color);
49
+ border-bottom: 1px solid var(--tt-toolbar-border-color);
50
+ padding: 0 0.5rem;
51
+ overflow-x: auto;
52
+ overscroll-behavior-x: contain;
53
+ -webkit-overflow-scrolling: touch;
54
+ scrollbar-width: none;
55
+ -ms-overflow-style: none;
56
+ }
57
+ .tiptap-toolbar[data-variant=fixed]::-webkit-scrollbar {
58
+ display: none;
59
+ }
60
+ @media (max-width: 480px) {
61
+ .tiptap-toolbar[data-variant=fixed] {
62
+ position: absolute;
63
+ top: auto;
64
+ height: calc(var(--tt-toolbar-height) + var(--tt-safe-area-bottom));
65
+ border-top: 1px solid var(--tt-toolbar-border-color);
66
+ border-bottom: none;
67
+ padding: 0 0.5rem var(--tt-safe-area-bottom);
68
+ flex-wrap: nowrap;
69
+ justify-content: flex-start;
70
+ }
71
+ .tiptap-toolbar[data-variant=fixed] .tiptap-toolbar-group {
72
+ flex: 0 0 auto;
73
+ }
74
+ }
75
+ .tiptap-toolbar[data-variant=floating] {
76
+ --tt-toolbar-padding: 0.125rem;
77
+ --tt-toolbar-border-width: 1px;
78
+ padding: 0.188rem;
79
+ border-radius: calc(var(--tt-toolbar-padding) + var(--tt-radius-lg) + var(--tt-toolbar-border-width));
80
+ border: var(--tt-toolbar-border-width) solid var(--tt-toolbar-border-color);
81
+ background-color: var(--tt-toolbar-bg-color);
82
+ box-shadow: var(--tt-shadow-elevated-md);
83
+ outline: none;
84
+ overflow: hidden;
85
+ }
86
+ .tiptap-toolbar[data-variant=floating][data-plain=true] {
87
+ padding: 0;
88
+ border-radius: 0;
89
+ border: none;
90
+ box-shadow: none;
91
+ background-color: transparent;
92
+ }
93
+ @media screen and (max-width: 480px) {
94
+ .tiptap-toolbar[data-variant=floating] {
95
+ width: 100%;
96
+ border-radius: 0;
97
+ border: none;
98
+ box-shadow: none;
99
+ }
100
+ }/*$vite$:1*/