@tutti-os/ui-rich-text 0.0.23 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -159,3 +159,21 @@ Current runtime behavior:
159
159
  - query results are flattened into a shared result shape
160
160
  - mention hydration uses `resolveMention` when the owning trigger provider is
161
161
  available and keeps the label-only fallback when it is not
162
+
163
+ ## At-Panel Migration
164
+
165
+ The `@tutti-os/ui-rich-text/at-panel` subpath now exposes the shared mention
166
+ palette shell through:
167
+
168
+ - `MentionPaletteFromState`
169
+ - `createMentionPaletteStateAdapter`
170
+ - `buildMentionPaletteModel`
171
+ - `buildMentionPaletteModelFromTriggerMatches`
172
+ - `richTextTriggerQueryMatchToMentionRowItem`
173
+
174
+ Older helpers such as `buildMentionPaletteState`, `searchHelpers`, and
175
+ `RichTextAt*` grouping aliases were removed with the legacy flat grouping model.
176
+ Consumers should build category/section config with
177
+ `MentionPaletteCategoryConfig`, derive state with
178
+ `buildMentionPaletteModelFromTriggerMatches`, and keep app-specific copy,
179
+ i18n, provider selection, and insertion behavior in the host application.
@@ -41,11 +41,301 @@
41
41
  }
42
42
  .rich-text-at-mention-palette {
43
43
  container-type: inline-size;
44
+ --rich-text-at-mention-bg: var( --background-fronted, var(--panel, var(--background-panel, #fff)) );
45
+ --rich-text-at-mention-text-primary: var( --text-primary, var(--text, #171717) );
46
+ --rich-text-at-mention-text-secondary: var( --text-secondary, var(--muted, #737373) );
47
+ --rich-text-at-mention-text-tertiary: var( --text-tertiary, var(--muted, #8a8a8a) );
48
+ --rich-text-at-mention-line-1: var(--line-1, var(--border, #0000001a));
49
+ --rich-text-at-mention-line-2: var(--line-2, var(--border, #00000014));
50
+ --rich-text-at-mention-hover: var( --transparency-block, var(--accent-soft, var(--sidebar-hover, #0000000d)) );
51
+ --rich-text-at-mention-active: var( --transparency-active, var(--accent-hover, #00000014) );
52
+ --rich-text-at-mention-accent: var(--tutti-purple, var(--accent, #5f5cf0));
53
+ --rich-text-at-mention-danger-bg: var(--on-danger, #fee2e2);
54
+ --rich-text-at-mention-danger-fg: var(--state-danger, #dc2626);
55
+ --rich-text-at-mention-success-fg: var(--state-success, #16a34a);
56
+ --rich-text-at-mention-success-bg: color-mix( in srgb, var(--rich-text-at-mention-success-fg) 12%, transparent );
57
+ --rich-text-at-mention-warning-fg: var(--color-amber-500, #d97706);
58
+ --rich-text-at-mention-warning-bg: color-mix( in srgb, var(--rich-text-at-mention-warning-fg) 12%, transparent );
59
+ --rich-text-at-mention-info-fg: #0369a1;
60
+ --rich-text-at-mention-info-bg: rgb(14 165 233 / 10%);
61
+ }
62
+ .rich-text-at-mention-palette__shell {
63
+ display: grid;
64
+ grid-template-rows: auto minmax(0, 1fr) auto;
65
+ height: 100%;
66
+ max-height: 320px;
67
+ min-height: 0;
68
+ overflow: hidden;
69
+ color: var(--rich-text-at-mention-text-primary);
70
+ font-size: 13px;
71
+ -webkit-app-region: no-drag;
72
+ }
73
+ .rich-text-at-mention-palette__header {
74
+ position: relative;
75
+ z-index: 10;
76
+ flex-shrink: 0;
77
+ }
78
+ .rich-text-at-mention-palette__footer {
79
+ flex-shrink: 0;
80
+ }
81
+ .rich-text-at-mention-palette__scroll-shell {
82
+ position: relative;
83
+ min-height: 0;
84
+ overflow: hidden;
85
+ }
86
+ .rich-text-at-mention-palette__scroll-body {
87
+ height: 100%;
88
+ min-height: 0;
89
+ padding: 8px 4px 4px;
90
+ overflow-y: auto;
91
+ overscroll-behavior: contain;
92
+ }
93
+ .rich-text-at-mention-palette__groups,
94
+ .rich-text-at-mention-palette__group,
95
+ .rich-text-at-mention-palette__group-items {
96
+ display: grid;
97
+ }
98
+ .rich-text-at-mention-palette__groups {
99
+ gap: 12px;
100
+ }
101
+ .rich-text-at-mention-palette__group,
102
+ .rich-text-at-mention-palette__group-items {
103
+ gap: 4px;
104
+ }
105
+ .rich-text-at-mention-palette__group-divider {
106
+ margin: 0 12px 8px;
107
+ border-top: 1px solid var(--rich-text-at-mention-line-1);
108
+ }
109
+ .rich-text-at-mention-palette__group-label,
110
+ .rich-text-at-mention-palette__group-empty {
111
+ padding-inline: 12px;
112
+ font-size: 13px;
113
+ font-weight: 400;
114
+ }
115
+ .rich-text-at-mention-palette__group-label {
116
+ color: var(--rich-text-at-mention-text-secondary);
117
+ }
118
+ .rich-text-at-mention-palette__group-empty {
119
+ padding-block: 4px;
120
+ color: var(--rich-text-at-mention-text-tertiary);
121
+ }
122
+ .rich-text-at-mention-palette__row-button,
123
+ .rich-text-at-mention-palette__expand-button {
124
+ appearance: none;
125
+ -webkit-app-region: no-drag;
126
+ border: 0;
127
+ background: transparent;
128
+ color: inherit;
129
+ font: inherit;
130
+ cursor: pointer;
131
+ outline: none;
132
+ }
133
+ .rich-text-at-mention-palette__row-button {
134
+ position: relative;
135
+ display: flex;
136
+ align-items: center;
137
+ gap: 6px;
138
+ width: 100%;
139
+ min-width: 0;
140
+ min-height: 36px;
141
+ padding: 8px 10px;
142
+ overflow: hidden;
143
+ border-radius: 6px;
144
+ color: var(--rich-text-at-mention-text-primary);
145
+ text-align: left;
146
+ user-select: none;
147
+ transition: background-color 200ms ease, color 200ms ease;
148
+ }
149
+ .rich-text-at-mention-palette__row-button > svg,
150
+ .rich-text-at-mention-palette__row-button svg {
151
+ flex-shrink: 0;
152
+ pointer-events: none;
153
+ }
154
+ .rich-text-at-mention-palette__row-button > svg:not([class*=size-]) {
155
+ width: 16px;
156
+ height: 16px;
157
+ }
158
+ .rich-text-at-mention-palette__row-button[data-highlighted],
159
+ .rich-text-at-mention-palette__expand-button[data-highlighted] {
160
+ background: var(--rich-text-at-mention-hover);
161
+ color: var(--rich-text-at-mention-text-primary);
162
+ }
163
+ .rich-text-at-mention-palette__row-button:active,
164
+ .rich-text-at-mention-palette__expand-button:active {
165
+ background: var(--rich-text-at-mention-active);
166
+ }
167
+ .rich-text-at-mention-palette__expand-button {
168
+ display: flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ width: 100%;
172
+ padding: 8px 12px;
173
+ border-radius: 6px;
174
+ color: var(--rich-text-at-mention-text-secondary);
175
+ font-size: 13px;
176
+ font-weight: 500;
177
+ transition: background-color 160ms ease, color 160ms ease;
178
+ }
179
+ .rich-text-at-mention-palette__empty-state {
180
+ display: flex;
181
+ align-items: center;
182
+ justify-content: center;
183
+ min-height: 0;
184
+ height: 100%;
185
+ padding: 24px 16px;
186
+ color: var(--rich-text-at-mention-text-tertiary);
187
+ font-size: 13px;
188
+ text-align: center;
189
+ }
190
+ .rich-text-at-mention-palette__empty-state-inner {
191
+ display: flex;
192
+ flex-direction: column;
193
+ align-items: center;
194
+ justify-content: center;
195
+ gap: 12px;
196
+ max-width: 28ch;
197
+ }
198
+ .rich-text-at-mention-palette__empty-state-icon {
199
+ width: 24px;
200
+ height: 24px;
201
+ color: var(--rich-text-at-mention-text-tertiary);
202
+ }
203
+ .rich-text-at-mention-palette__empty-state-text {
204
+ color: var(--rich-text-at-mention-text-tertiary);
205
+ line-height: 20px;
206
+ }
207
+ .rich-text-at-mention-palette__loading {
208
+ display: flex;
209
+ align-items: center;
210
+ gap: 8px;
211
+ min-height: 52px;
212
+ padding-inline: 12px;
213
+ border-radius: 12px;
214
+ color: var(--rich-text-at-mention-text-secondary);
215
+ font-size: 13px;
216
+ }
217
+ .rich-text-at-mention-palette__loading-spinner {
218
+ width: 16px;
219
+ height: 16px;
220
+ border: 2px solid color-mix(in srgb, currentColor 28%, transparent);
221
+ border-top-color: currentColor;
222
+ border-radius: 999px;
223
+ animation: rich-text-at-mention-spin 820ms linear infinite;
224
+ }
225
+ @keyframes rich-text-at-mention-spin {
226
+ to {
227
+ transform: rotate(360deg);
228
+ }
44
229
  }
45
230
  .tsh-underline-tabs.rich-text-at-mention-palette-tabs {
46
231
  height: 41px;
47
232
  padding: 8px 16px 0;
48
233
  }
234
+ .rich-text-at-mention-palette [data-slot=underline-tabs] {
235
+ position: relative;
236
+ box-sizing: border-box;
237
+ min-width: 0;
238
+ height: 33px;
239
+ padding-inline: 16px;
240
+ border-bottom: 1px solid var(--rich-text-at-mention-line-1);
241
+ }
242
+ .rich-text-at-mention-palette [data-slot=underline-tabs-viewport] {
243
+ height: 32px;
244
+ overflow-x: auto;
245
+ overflow-y: hidden;
246
+ scrollbar-width: none;
247
+ }
248
+ .rich-text-at-mention-palette [data-slot=underline-tabs-viewport]::-webkit-scrollbar {
249
+ display: none;
250
+ }
251
+ .rich-text-at-mention-palette [data-slot=underline-tabs-viewport] > div {
252
+ position: relative;
253
+ display: flex;
254
+ align-items: center;
255
+ gap: 14px;
256
+ width: max-content;
257
+ min-width: 100%;
258
+ height: 32px;
259
+ padding-bottom: 8px;
260
+ }
261
+ .rich-text-at-mention-palette [data-slot=underline-tabs-tab] {
262
+ appearance: none;
263
+ position: relative;
264
+ display: inline-flex;
265
+ align-items: center;
266
+ flex-shrink: 0;
267
+ gap: 6px;
268
+ height: 24px;
269
+ padding: 0;
270
+ border: 0;
271
+ background: transparent;
272
+ color: var(--rich-text-at-mention-text-secondary);
273
+ font: inherit;
274
+ font-size: 13px;
275
+ font-weight: 600;
276
+ line-height: 24px;
277
+ white-space: nowrap;
278
+ cursor: pointer;
279
+ transition: color 160ms ease;
280
+ }
281
+ .rich-text-at-mention-palette [data-slot=underline-tabs-tab]:hover,
282
+ .rich-text-at-mention-palette [data-slot=underline-tabs-tab]:focus-visible {
283
+ color: var(--rich-text-at-mention-text-primary);
284
+ outline: none;
285
+ }
286
+ .rich-text-at-mention-palette [data-slot=underline-tabs-tab][data-active=true] {
287
+ color: var(--rich-text-at-mention-accent);
288
+ }
289
+ .rich-text-at-mention-palette [data-slot=underline-tabs-indicator] {
290
+ position: absolute;
291
+ bottom: 0;
292
+ left: 0;
293
+ z-index: 1;
294
+ height: 2px;
295
+ border-radius: 1px;
296
+ background: var(--rich-text-at-mention-accent);
297
+ transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1), width 220ms cubic-bezier(0.4, 0, 0.2, 1);
298
+ }
299
+ .rich-text-at-mention-palette [data-slot=underline-tabs-scroll-left],
300
+ .rich-text-at-mention-palette [data-slot=underline-tabs-scroll-right] {
301
+ appearance: none;
302
+ pointer-events: none;
303
+ position: absolute;
304
+ top: 12px;
305
+ z-index: 3;
306
+ display: inline-flex;
307
+ align-items: center;
308
+ justify-content: center;
309
+ width: 24px;
310
+ height: 24px;
311
+ padding: 0;
312
+ border: 0;
313
+ border-radius: 999px;
314
+ background: var(--rich-text-at-mention-bg);
315
+ color: var(--rich-text-at-mention-text-secondary);
316
+ opacity: 0;
317
+ box-shadow: 0 4px 16px rgb(15 23 42 / 12%);
318
+ transform: translateY(-50%) scale(0.94);
319
+ transition:
320
+ opacity 160ms ease,
321
+ transform 160ms ease,
322
+ background-color 160ms ease,
323
+ color 160ms ease;
324
+ }
325
+ .rich-text-at-mention-palette [data-slot=underline-tabs-scroll-left] {
326
+ left: 16px;
327
+ }
328
+ .rich-text-at-mention-palette [data-slot=underline-tabs-scroll-right] {
329
+ right: 16px;
330
+ }
331
+ .rich-text-at-mention-palette:hover [data-slot=underline-tabs-scroll-left][data-visible=true],
332
+ .rich-text-at-mention-palette:hover [data-slot=underline-tabs-scroll-right][data-visible=true],
333
+ .rich-text-at-mention-palette:focus-within [data-slot=underline-tabs-scroll-left][data-visible=true],
334
+ .rich-text-at-mention-palette:focus-within [data-slot=underline-tabs-scroll-right][data-visible=true] {
335
+ pointer-events: auto;
336
+ opacity: 1;
337
+ transform: translateY(-50%) scale(1);
338
+ }
49
339
  .rich-text-at-mention-palette-header {
50
340
  padding: 8px 0 0;
51
341
  }
@@ -62,7 +352,7 @@
62
352
  width: 100%;
63
353
  height: 36px;
64
354
  padding: 0 16px 1px;
65
- color: var(--agent-gui-text-secondary, var(--text-secondary));
355
+ color: var(--rich-text-at-mention-text-secondary);
66
356
  font-size: 13px;
67
357
  font-weight: 500;
68
358
  line-height: 20px;
@@ -86,29 +376,36 @@
86
376
  background: transparent;
87
377
  color: inherit;
88
378
  }
379
+ .rich-text-at-mention-palette-hint-button > span:last-child,
380
+ .rich-text-at-mention-palette-hint-item > span:last-child {
381
+ color: var(--rich-text-at-mention-text-secondary);
382
+ }
89
383
  .rich-text-at-mention-palette-shortcut {
90
384
  display: inline-flex;
91
385
  align-items: center;
92
386
  justify-content: center;
93
387
  height: 20px;
94
388
  min-width: 20px;
95
- border-radius: 4px;
96
- background: color-mix(in srgb, var(--transparency-block) 72%, transparent);
97
- color: var(--agent-gui-text-secondary, var(--text-secondary));
98
- font-size: 13px;
99
- font-weight: 600;
389
+ border: 1px solid var(--rich-text-at-mention-line-2);
390
+ border-radius: 5px;
391
+ background: var(--rich-text-at-mention-hover);
392
+ color: var(--rich-text-at-mention-text-primary);
393
+ box-shadow: inset 0 -1px 0 rgb(0 0 0 / 4%);
394
+ font-size: 12px;
395
+ font-weight: 650;
100
396
  line-height: 1;
101
- padding: 4px 6px;
397
+ padding: 3px 6px;
102
398
  }
103
399
  .rich-text-at-mention-palette-hint-button:hover .rich-text-at-mention-palette-shortcut,
104
400
  .rich-text-at-mention-palette-hint-button:focus-visible .rich-text-at-mention-palette-shortcut,
105
401
  .rich-text-at-mention-palette-shortcut-button:hover,
106
402
  .rich-text-at-mention-palette-shortcut-button:focus-visible {
107
- background: var(--transparency-block);
403
+ border-color: var(--rich-text-at-mention-line-1);
404
+ background: var(--rich-text-at-mention-active);
108
405
  }
109
406
  .rich-text-at-mention-palette-hint-button:focus-visible,
110
407
  .rich-text-at-mention-palette-shortcut-button:focus-visible {
111
- outline: 2px solid var(--line-1);
408
+ outline: 2px solid var(--rich-text-at-mention-line-1);
112
409
  outline-offset: 2px;
113
410
  }
114
411
  .rich-text-at-mention-palette-shortcut--arrow {
@@ -124,7 +421,7 @@
124
421
  gap: 5px;
125
422
  }
126
423
  .rich-text-at-mention-palette-hint-separator {
127
- color: var(--line-2, var(--tutti-line-2));
424
+ color: var(--rich-text-at-mention-line-1);
128
425
  }
129
426
  .rich-text-at-mention-palette:hover .rich-text-at-mention-palette-scrollbar[data-scrollable=true] {
130
427
  opacity: 1;
@@ -132,6 +429,285 @@
132
429
  .rich-text-at-mention-palette {
133
430
  --agent-mention-file-icon-size: 16px;
134
431
  }
432
+ .rich-text-at-mention-row {
433
+ display: flex;
434
+ align-items: center;
435
+ gap: 8px;
436
+ min-width: 0;
437
+ width: 100%;
438
+ overflow: hidden;
439
+ }
440
+ .rich-text-at-mention-row--session {
441
+ display: grid;
442
+ grid-template-columns: minmax(0, 1fr) auto;
443
+ gap: 12px;
444
+ }
445
+ .rich-text-at-mention-row--plain > :not(.rich-text-at-mention-row__text-stack) {
446
+ flex: 0 0 auto;
447
+ }
448
+ .rich-text-at-mention-row__leading,
449
+ .rich-text-at-mention-row__inline,
450
+ .rich-text-at-mention-row__file-text,
451
+ .rich-text-at-mention-row__app-text {
452
+ display: flex;
453
+ min-width: 0;
454
+ overflow: hidden;
455
+ }
456
+ .rich-text-at-mention-row__leading {
457
+ align-items: center;
458
+ gap: 8px;
459
+ }
460
+ .rich-text-at-mention-row__inline {
461
+ align-items: center;
462
+ gap: 8px;
463
+ }
464
+ .rich-text-at-mention-row__file-text,
465
+ .rich-text-at-mention-row__app-text {
466
+ align-items: baseline;
467
+ gap: 4px;
468
+ }
469
+ .rich-text-at-mention-row__app-text {
470
+ flex: 1 1 auto;
471
+ }
472
+ .rich-text-at-mention-row__text-stack {
473
+ display: grid;
474
+ gap: 2px;
475
+ min-width: 0;
476
+ overflow: hidden;
477
+ }
478
+ .rich-text-at-mention-row__text-stack--fill {
479
+ flex: 1 1 auto;
480
+ }
481
+ .rich-text-at-mention-row__title,
482
+ .rich-text-at-mention-row__app-name,
483
+ .rich-text-at-mention-row__session-title,
484
+ .rich-text-at-mention-row__description,
485
+ .rich-text-at-mention-row__app-description,
486
+ .rich-text-at-mention-row__file-count,
487
+ .rich-text-at-mention-row__session-participant,
488
+ .rich-text-at-mention-row__session-summary {
489
+ min-width: 0;
490
+ overflow: hidden;
491
+ text-overflow: ellipsis;
492
+ white-space: nowrap;
493
+ font-size: 13px;
494
+ }
495
+ .rich-text-at-mention-row__title,
496
+ .rich-text-at-mention-row__app-name,
497
+ .rich-text-at-mention-row__session-title,
498
+ .rich-text-at-mention-row__session-participant {
499
+ color: var(--rich-text-at-mention-text-primary);
500
+ font-weight: 600;
501
+ }
502
+ .rich-text-at-mention-row__title,
503
+ .rich-text-at-mention-row__app-name {
504
+ flex: 0 1 auto;
505
+ }
506
+ .rich-text-at-mention-row__app-name {
507
+ max-width: 40%;
508
+ flex-shrink: 0;
509
+ }
510
+ .rich-text-at-mention-row__description,
511
+ .rich-text-at-mention-row__app-description,
512
+ .rich-text-at-mention-row__file-count,
513
+ .rich-text-at-mention-row__session-summary {
514
+ color: var(--rich-text-at-mention-text-secondary);
515
+ font-weight: 400;
516
+ }
517
+ .rich-text-at-mention-row__app-description {
518
+ flex: 1 1 auto;
519
+ }
520
+ .rich-text-at-mention-row__file-count {
521
+ flex-shrink: 0;
522
+ }
523
+ .rich-text-at-mention-row__session-title,
524
+ .rich-text-at-mention-row__session-participant,
525
+ .rich-text-at-mention-row__session-summary {
526
+ line-height: 16px;
527
+ }
528
+ .rich-text-at-mention-row__media {
529
+ display: block;
530
+ width: 100%;
531
+ height: 100%;
532
+ object-fit: cover;
533
+ }
534
+ .rich-text-at-mention-row__open-references {
535
+ display: grid;
536
+ place-items: center;
537
+ width: 24px;
538
+ height: 24px;
539
+ margin-left: auto;
540
+ flex: 0 0 24px;
541
+ border-radius: 5px;
542
+ color: var(--rich-text-at-mention-text-tertiary);
543
+ cursor: pointer;
544
+ transition: background-color 160ms ease, color 160ms ease;
545
+ }
546
+ .rich-text-at-mention-row__open-references:hover {
547
+ background: var(--rich-text-at-mention-active);
548
+ color: var(--rich-text-at-mention-text-secondary);
549
+ }
550
+ .rich-text-at-mention-file-icon--glyph {
551
+ display: grid;
552
+ place-items: center;
553
+ color: var(--rich-text-at-mention-text-secondary);
554
+ }
555
+ .rich-text-at-mention-app-icon {
556
+ display: grid;
557
+ place-items: center;
558
+ width: 20px;
559
+ height: 20px;
560
+ flex: 0 0 20px;
561
+ overflow: hidden;
562
+ border-radius: 5px;
563
+ background: var(--bg-block, var(--block, #0000000a));
564
+ color: var(--rich-text-at-mention-text-secondary);
565
+ }
566
+ .rich-text-at-mention-kind-icon--app {
567
+ width: 16px;
568
+ height: 16px;
569
+ }
570
+ .rich-text-at-mention-avatar-stack {
571
+ position: relative;
572
+ isolation: isolate;
573
+ display: block;
574
+ width: 36px;
575
+ height: 20px;
576
+ flex: 0 0 36px;
577
+ }
578
+ .rich-text-at-mention-avatar {
579
+ position: absolute;
580
+ top: 0;
581
+ display: grid;
582
+ width: 20px;
583
+ height: 20px;
584
+ overflow: hidden;
585
+ border-radius: 999px;
586
+ background: var(--bg-block, var(--block, #0000000a));
587
+ }
588
+ .rich-text-at-mention-avatar--user {
589
+ left: 0;
590
+ z-index: 0;
591
+ }
592
+ .rich-text-at-mention-avatar--agent {
593
+ left: 16px;
594
+ z-index: 10;
595
+ }
596
+ .rich-text-at-mention-status {
597
+ display: inline-flex;
598
+ align-items: center;
599
+ justify-content: center;
600
+ flex-shrink: 0;
601
+ gap: 6px;
602
+ height: 20px;
603
+ min-width: 0;
604
+ width: fit-content;
605
+ padding: 0 8px;
606
+ overflow: hidden;
607
+ border: 1px solid transparent;
608
+ border-radius: 4px;
609
+ font-size: 11px;
610
+ font-weight: 600;
611
+ line-height: 1;
612
+ white-space: nowrap;
613
+ }
614
+ .rich-text-at-mention-status--issue {
615
+ font-size: 13px;
616
+ }
617
+ .rich-text-at-mention-status[data-tone=blue] {
618
+ background: var(--rich-text-at-mention-info-bg);
619
+ color: var(--rich-text-at-mention-info-fg);
620
+ }
621
+ .rich-text-at-mention-status[data-tone=amber] {
622
+ background: var(--rich-text-at-mention-warning-bg);
623
+ color: var(--rich-text-at-mention-warning-fg);
624
+ }
625
+ .rich-text-at-mention-status[data-tone=green] {
626
+ background: var(--rich-text-at-mention-success-bg);
627
+ color: var(--rich-text-at-mention-success-fg);
628
+ }
629
+ .rich-text-at-mention-status[data-tone=red] {
630
+ background: var(--rich-text-at-mention-danger-bg);
631
+ color: var(--rich-text-at-mention-danger-fg);
632
+ }
633
+ .rich-text-at-mention-status[data-tone=neutral] {
634
+ background: var(--rich-text-at-mention-hover);
635
+ color: var(--rich-text-at-mention-text-secondary);
636
+ }
637
+ .rich-text-at-mention-status [data-slot=status-dot] {
638
+ display: inline-flex;
639
+ width: 6px;
640
+ height: 6px;
641
+ flex: 0 0 6px;
642
+ border-radius: 999px;
643
+ background: currentColor;
644
+ }
645
+ .rich-text-at-mention-status [data-slot=status-dot][data-pulse=true] {
646
+ animation: rich-text-at-mention-pulse 1.4s ease-in-out infinite;
647
+ }
648
+ @keyframes rich-text-at-mention-pulse {
649
+ 50% {
650
+ opacity: 0.45;
651
+ }
652
+ }
653
+ .rich-text-at-mention-select-indicator {
654
+ display: grid;
655
+ place-items: center;
656
+ width: 18px;
657
+ height: 18px;
658
+ flex: 0 0 18px;
659
+ border: 1px solid var(--border, var(--rich-text-at-mention-line-1));
660
+ border-radius: 5px;
661
+ background: #fff;
662
+ color: transparent;
663
+ }
664
+ .rich-text-at-mention-select-indicator[data-selected=true] {
665
+ border-color: #171717;
666
+ background: #171717;
667
+ color: #fff;
668
+ }
669
+ .rich-text-at-mention-multiselect-footer {
670
+ display: flex;
671
+ align-items: center;
672
+ justify-content: space-between;
673
+ gap: 8px;
674
+ padding: 8px 10px;
675
+ border-top: 1px solid var(--border, var(--rich-text-at-mention-line-1));
676
+ background: var(--panel, var(--rich-text-at-mention-bg));
677
+ }
678
+ .rich-text-at-mention-multiselect-footer__count {
679
+ color: var(--rich-text-at-mention-text-secondary);
680
+ font-size: 12px;
681
+ font-weight: 600;
682
+ }
683
+ .rich-text-at-mention-multiselect-footer__actions {
684
+ display: flex;
685
+ gap: 8px;
686
+ }
687
+ .rich-text-at-mention-multiselect-footer__button {
688
+ appearance: none;
689
+ height: 30px;
690
+ padding-inline: 12px;
691
+ border-radius: 8px;
692
+ font: inherit;
693
+ font-size: 12px;
694
+ font-weight: 700;
695
+ cursor: pointer;
696
+ }
697
+ .rich-text-at-mention-multiselect-footer__button--secondary {
698
+ border: 1px solid var(--border, var(--rich-text-at-mention-line-1));
699
+ background: #fff;
700
+ color: var(--text, var(--rich-text-at-mention-text-primary));
701
+ }
702
+ .rich-text-at-mention-multiselect-footer__button--primary {
703
+ border: 0;
704
+ background: #171717;
705
+ color: #fff;
706
+ }
707
+ .rich-text-at-mention-multiselect-footer__button:disabled {
708
+ opacity: 0.45;
709
+ cursor: default;
710
+ }
135
711
  .rich-text-at-mention-file-thumb {
136
712
  display: inline-flex;
137
713
  align-items: center;