@cgi-learning-hub/ui 1.14.0-dev.1785507581 → 1.14.0-dev.1788349164

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cgi-learning-hub/ui",
3
- "version": "1.14.0-dev.1785507581",
3
+ "version": "1.14.0-dev.1788349164",
4
4
  "description": "React component library for Hub's design system, built on Material UI with custom and extended components.",
5
5
  "keywords": [
6
6
  "cgi-learning-hub",
@@ -26,7 +26,8 @@
26
26
  "import": "./dist/tiptap/index.es.js",
27
27
  "require": "./dist/tiptap/index.cjs.js"
28
28
  },
29
- "./index.css": "./dist/ui.css"
29
+ "./index.css": "./dist/ui.css",
30
+ "./tiptap/styles.css": "./dist/tiptap/styles.css"
30
31
  },
31
32
  "main": "dist/index.cjs.js",
32
33
  "module": "dist/index.es.js",
@@ -39,16 +40,16 @@
39
40
  ],
40
41
  "sideEffects": false,
41
42
  "dependencies": {
42
- "@mui/icons-material": "9.1.1",
43
- "@mui/lab": "9.0.0-beta.5",
43
+ "@mui/icons-material": "9.4.0",
44
+ "@mui/lab": "9.0.0-beta.9",
44
45
  "@mui/system": "^9",
45
- "@mui/x-date-pickers": "9.5.0",
46
- "@mui/x-tree-view": "9.4.0",
46
+ "@mui/x-date-pickers": "9.12.0",
47
+ "@mui/x-tree-view": "9.12.0",
47
48
  "@uiw/color-convert": "2.10.3",
48
49
  "@uiw/react-color-circle": "2.10.3",
49
50
  "clsx": "2.1.1",
50
- "dayjs": "1.11.21",
51
- "react-dropzone": "15.0.0"
51
+ "dayjs": "1.11.23",
52
+ "react-dropzone": "20.1.1"
52
53
  },
53
54
  "peerDependencies": {
54
55
  "@emotion/react": "^11",
@@ -73,10 +74,12 @@
73
74
  "@types/react": "^19",
74
75
  "@types/react-dom": "^19",
75
76
  "class-variance-authority": "^0",
76
- "sass-embedded": "^1.100.0"
77
+ "sass-embedded": "^1"
77
78
  },
78
79
  "scripts": {
79
- "build": "vite build",
80
+ "build:js": "vite build",
81
+ "build:css": "sass src/tiptap/styles/index.scss dist/tiptap/styles.css --no-source-map",
82
+ "build": "pnpm run build:js && pnpm run build:css",
80
83
  "watch": "vite build --watch"
81
84
  }
82
85
  }