@brdgapp/ui 0.1.0 → 0.1.2

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,848 @@
1
+ /* Bridge network people helper.
2
+ Position defaults come from data-placement. Override with:
3
+ --bridge-helper-top, --bridge-helper-right, --bridge-helper-bottom,
4
+ --bridge-helper-left, --bridge-helper-z
5
+ */
6
+
7
+ .bridge-network-helper-anchor,
8
+ .bridge-network-helper__person-menu-content,
9
+ .bridge-network-nudge {
10
+ --bridge-helper-fg: var(--foreground, #0f172a);
11
+ --bridge-helper-bg: var(--background, #ffffff);
12
+ --bridge-helper-muted: var(--muted, #f1f5f9);
13
+ --bridge-helper-muted-fg: var(--muted-foreground, #64748b);
14
+ --bridge-helper-border: var(--border, #e2e8f0);
15
+ --bridge-helper-accent: #0038ff;
16
+ color: var(--bridge-helper-fg);
17
+ font-family: inherit;
18
+ }
19
+
20
+ .bridge-network-helper-anchor {
21
+ position: fixed;
22
+ z-index: var(--bridge-helper-z, 40);
23
+ top: var(--bridge-helper-top, var(--bridge-helper-preset-top, auto));
24
+ right: var(--bridge-helper-right, var(--bridge-helper-preset-right, auto));
25
+ bottom: var(--bridge-helper-bottom, var(--bridge-helper-preset-bottom, auto));
26
+ left: var(--bridge-helper-left, var(--bridge-helper-preset-left, auto));
27
+ display: flex;
28
+ width: min(100vw - 1.5rem, 22rem);
29
+ pointer-events: none;
30
+ box-sizing: border-box;
31
+ }
32
+
33
+ .bridge-network-helper-anchor *,
34
+ .bridge-network-helper-anchor *::before,
35
+ .bridge-network-helper-anchor *::after,
36
+ .bridge-network-helper__person-menu-content,
37
+ .bridge-network-helper__person-menu-content * {
38
+ box-sizing: border-box;
39
+ }
40
+
41
+ .bridge-network-helper-anchor[data-placement="bottom-end"] {
42
+ --bridge-helper-preset-bottom: 1.25rem;
43
+ --bridge-helper-preset-right: 1.25rem;
44
+ align-items: flex-end;
45
+ justify-content: flex-end;
46
+ }
47
+
48
+ .bridge-network-helper-anchor[data-placement="bottom-start"] {
49
+ --bridge-helper-preset-bottom: 1.25rem;
50
+ --bridge-helper-preset-left: 1.25rem;
51
+ align-items: flex-end;
52
+ justify-content: flex-start;
53
+ }
54
+
55
+ .bridge-network-helper-anchor[data-placement="top-end"] {
56
+ --bridge-helper-preset-top: 1.25rem;
57
+ --bridge-helper-preset-right: 1.25rem;
58
+ align-items: flex-start;
59
+ justify-content: flex-end;
60
+ }
61
+
62
+ .bridge-network-helper-anchor[data-placement="top-start"] {
63
+ --bridge-helper-preset-top: 1.25rem;
64
+ --bridge-helper-preset-left: 1.25rem;
65
+ align-items: flex-start;
66
+ justify-content: flex-start;
67
+ }
68
+
69
+ @media (min-width: 640px) {
70
+ .bridge-network-helper-anchor[data-placement="bottom-end"] {
71
+ --bridge-helper-preset-bottom: 1.75rem;
72
+ --bridge-helper-preset-right: 1.75rem;
73
+ }
74
+
75
+ .bridge-network-helper-anchor[data-placement="bottom-start"] {
76
+ --bridge-helper-preset-bottom: 1.75rem;
77
+ --bridge-helper-preset-left: 1.75rem;
78
+ }
79
+
80
+ .bridge-network-helper-anchor[data-placement="top-end"] {
81
+ --bridge-helper-preset-top: 1.75rem;
82
+ --bridge-helper-preset-right: 1.75rem;
83
+ }
84
+
85
+ .bridge-network-helper-anchor[data-placement="top-start"] {
86
+ --bridge-helper-preset-top: 1.75rem;
87
+ --bridge-helper-preset-left: 1.75rem;
88
+ }
89
+ }
90
+
91
+ .bridge-network-helper .helper-icon,
92
+ .bridge-network-nudge .helper-icon {
93
+ width: 26px;
94
+ height: auto;
95
+ display: block;
96
+ overflow: visible;
97
+ }
98
+
99
+ .bridge-network-helper .dot,
100
+ .bridge-network-nudge .dot {
101
+ fill: #ffffff;
102
+ transform-box: fill-box;
103
+ transform-origin: center;
104
+ }
105
+
106
+ .bridge-network-helper .nudge .dot {
107
+ animation: bridgeHelperSubtleNudge 5.5s ease-in-out infinite;
108
+ }
109
+
110
+ .bridge-network-helper .nudge .d1 { animation-delay: 0s; }
111
+ .bridge-network-helper .nudge .d2 { animation-delay: 0.04s; }
112
+ .bridge-network-helper .nudge .d3 { animation-delay: 0.08s; }
113
+ .bridge-network-helper .nudge .d4 { animation-delay: 0.12s; }
114
+ .bridge-network-helper .nudge .d5 { animation-delay: 0.16s; }
115
+ .bridge-network-helper .nudge .d6 { animation-delay: 0.2s; }
116
+ .bridge-network-helper .nudge .d7 { animation-delay: 0.24s; }
117
+ .bridge-network-helper .nudge .d8 { animation-delay: 0.28s; }
118
+ .bridge-network-helper .nudge .d9 { animation-delay: 0.32s; }
119
+ .bridge-network-helper .nudge .d10 { animation-delay: 0.36s; }
120
+ .bridge-network-helper .nudge .d11 { animation-delay: 0.4s; }
121
+ .bridge-network-helper .nudge .d12 { animation-delay: 0.44s; }
122
+ .bridge-network-helper .nudge .d13 { animation-delay: 0.48s; }
123
+ .bridge-network-helper .nudge .d14 { animation-delay: 0.52s; }
124
+ .bridge-network-helper .nudge .d15 { animation-delay: 0.56s; }
125
+
126
+ @keyframes bridgeHelperSubtleNudge {
127
+ 0%, 82%, 100% { transform: translate(0, 0) scale(1); }
128
+ 85% { transform: translateY(-2.5px) scale(1.04); }
129
+ 88% { transform: translateY(2px) scale(0.985); }
130
+ 91% { transform: translateY(-1px) scale(1.015); }
131
+ 94% { transform: translate(0, 0) scale(1); }
132
+ }
133
+
134
+ .bridge-network-helper {
135
+ display: flex;
136
+ flex-direction: column;
137
+ align-items: flex-end;
138
+ width: 100%;
139
+ pointer-events: auto;
140
+ }
141
+
142
+ .bridge-network-nudge {
143
+ display: flex;
144
+ width: 100%;
145
+ align-items: center;
146
+ gap: 0.55rem;
147
+ margin: 0;
148
+ padding: 0.35rem 0.55rem 0.35rem 0.35rem;
149
+ border: 1px solid color-mix(in oklab, var(--bridge-helper-border) 70%, transparent);
150
+ border-radius: 1.25rem;
151
+ background: color-mix(in oklab, var(--bridge-helper-bg) 94%, transparent);
152
+ box-shadow: 0 10px 40px rgba(15, 23, 42, 0.08);
153
+ backdrop-filter: blur(10px);
154
+ text-align: left;
155
+ cursor: pointer;
156
+ }
157
+
158
+ .bridge-network-nudge:hover {
159
+ border-color: color-mix(in oklab, var(--bridge-helper-accent) 28%, var(--bridge-helper-border));
160
+ }
161
+
162
+ .bridge-network-nudge__icon,
163
+ .bridge-network-helper__icon-btn {
164
+ display: inline-flex;
165
+ width: 2.5rem;
166
+ height: 2.5rem;
167
+ flex-shrink: 0;
168
+ align-items: center;
169
+ justify-content: center;
170
+ border: 0;
171
+ border-radius: 9999px;
172
+ background: var(--bridge-helper-accent);
173
+ padding: 0;
174
+ box-shadow: 0 8px 20px rgba(0, 56, 255, 0.28);
175
+ cursor: pointer;
176
+ }
177
+
178
+ .bridge-network-nudge__line,
179
+ .bridge-network-helper__line {
180
+ margin: 0;
181
+ min-width: 0;
182
+ overflow: hidden;
183
+ text-overflow: ellipsis;
184
+ white-space: nowrap;
185
+ font-size: 0.8125rem;
186
+ line-height: 1.3;
187
+ color: var(--bridge-helper-fg);
188
+ }
189
+
190
+ .bridge-network-nudge__line {
191
+ flex: 1 1 auto;
192
+ }
193
+
194
+ .bridge-network-nudge__count,
195
+ .bridge-network-helper__count {
196
+ font-weight: 600;
197
+ font-variant-numeric: tabular-nums;
198
+ color: var(--bridge-helper-accent);
199
+ text-decoration: underline;
200
+ text-decoration-color: color-mix(in oklab, var(--bridge-helper-accent) 35%, transparent);
201
+ text-underline-offset: 2px;
202
+ }
203
+
204
+ .bridge-network-helper__count {
205
+ display: inline;
206
+ padding: 0;
207
+ border: 0;
208
+ background: transparent;
209
+ font: inherit;
210
+ font-weight: 600;
211
+ cursor: pointer;
212
+ }
213
+
214
+ .bridge-network-nudge__avatars,
215
+ .bridge-network-helper__avatars {
216
+ display: flex;
217
+ flex-shrink: 0;
218
+ align-items: center;
219
+ }
220
+
221
+ .bridge-network-helper__avatars {
222
+ margin-left: 0.1rem;
223
+ padding: 0;
224
+ border: 0;
225
+ background: transparent;
226
+ cursor: pointer;
227
+ border-radius: 9999px;
228
+ }
229
+
230
+ .bridge-network-nudge__avatars > * + *,
231
+ .bridge-network-helper__avatars > * + * {
232
+ margin-left: -0.35rem;
233
+ }
234
+
235
+ .bridge-network-nudge__toggle,
236
+ .bridge-network-helper__toggle {
237
+ display: inline-flex;
238
+ width: 1.5rem;
239
+ height: 1.5rem;
240
+ flex-shrink: 0;
241
+ align-items: center;
242
+ justify-content: center;
243
+ border: 0;
244
+ border-radius: 9999px;
245
+ background: color-mix(in oklab, var(--bridge-helper-muted) 55%, transparent);
246
+ color: var(--bridge-helper-muted-fg);
247
+ padding: 0;
248
+ }
249
+
250
+ .bridge-network-helper__toggle {
251
+ cursor: pointer;
252
+ }
253
+
254
+ .bridge-network-nudge__toggle {
255
+ margin-left: auto;
256
+ }
257
+
258
+ .bridge-network-nudge__toggle svg,
259
+ .bridge-network-helper__toggle svg,
260
+ .bridge-network-helper__person-menu > svg {
261
+ width: 0.875rem;
262
+ height: 0.875rem;
263
+ }
264
+
265
+ .bridge-network-helper__dismiss-bar {
266
+ display: flex;
267
+ justify-content: flex-end;
268
+ width: 100%;
269
+ margin-bottom: 0.35rem;
270
+ padding-right: 0.2rem;
271
+ }
272
+
273
+ .bridge-network-helper__dismiss-link,
274
+ .bridge-network-helper__dismiss-action,
275
+ .bridge-network-helper__dismiss-cancel {
276
+ border: 0;
277
+ background: transparent;
278
+ padding: 0;
279
+ font: inherit;
280
+ font-size: 0.6875rem;
281
+ line-height: 1.2;
282
+ cursor: pointer;
283
+ }
284
+
285
+ .bridge-network-helper__dismiss-link {
286
+ display: inline-flex;
287
+ align-items: center;
288
+ gap: 0.3rem;
289
+ border-radius: 9999px;
290
+ border: 1px solid color-mix(in oklab, var(--bridge-helper-border) 70%, transparent);
291
+ background: color-mix(in oklab, var(--bridge-helper-bg) 92%, transparent);
292
+ padding: 0.25rem 0.55rem;
293
+ color: var(--bridge-helper-muted-fg);
294
+ box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
295
+ backdrop-filter: blur(8px);
296
+ }
297
+
298
+ .bridge-network-helper__dismiss-link svg {
299
+ width: 0.75rem;
300
+ height: 0.75rem;
301
+ flex-shrink: 0;
302
+ }
303
+
304
+ .bridge-network-helper__dismiss-confirm {
305
+ margin: 0;
306
+ border-radius: 9999px;
307
+ border: 1px solid color-mix(in oklab, var(--bridge-helper-border) 70%, transparent);
308
+ background: color-mix(in oklab, var(--bridge-helper-bg) 92%, transparent);
309
+ padding: 0.25rem 0.55rem;
310
+ font-size: 0.6875rem;
311
+ line-height: 1.2;
312
+ color: var(--bridge-helper-muted-fg);
313
+ box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
314
+ }
315
+
316
+ .bridge-network-helper__dismiss-action {
317
+ font-weight: 600;
318
+ color: var(--bridge-helper-accent);
319
+ }
320
+
321
+ .bridge-network-helper__dismiss-sep {
322
+ margin: 0 0.25rem;
323
+ color: color-mix(in oklab, var(--bridge-helper-muted-fg) 50%, transparent);
324
+ }
325
+
326
+ .bridge-network-helper__shell {
327
+ position: relative;
328
+ display: flex;
329
+ flex-direction: column;
330
+ align-items: stretch;
331
+ min-height: 2.5rem;
332
+ width: max-content;
333
+ max-width: 100%;
334
+ margin-left: auto;
335
+ border-radius: 1.25rem;
336
+ overflow: hidden;
337
+ transition: background-color 320ms ease, box-shadow 320ms ease, border-color 320ms ease, padding 320ms ease;
338
+ }
339
+
340
+ .bridge-network-helper__row {
341
+ display: flex;
342
+ align-items: center;
343
+ justify-content: flex-end;
344
+ gap: 0.5rem;
345
+ min-height: 2.5rem;
346
+ }
347
+
348
+ .bridge-network-helper--icon .bridge-network-helper__shell {
349
+ width: 2.5rem;
350
+ padding: 0;
351
+ background: transparent;
352
+ border: 0;
353
+ box-shadow: none;
354
+ }
355
+
356
+ .bridge-network-helper--icon .bridge-network-helper__row {
357
+ gap: 0;
358
+ }
359
+
360
+ .bridge-network-helper--icon .bridge-network-helper__icon-btn {
361
+ animation: bridgeHelperIconEnter 480ms cubic-bezier(0.22, 1, 0.36, 1) both;
362
+ }
363
+
364
+ .bridge-network-helper--revealing .bridge-network-helper__shell,
365
+ .bridge-network-helper--expanded .bridge-network-helper__shell,
366
+ .bridge-network-helper--list .bridge-network-helper__shell {
367
+ width: max-content;
368
+ max-width: 100%;
369
+ padding: 0.25rem 0.4rem 0.25rem 0.25rem;
370
+ border: 1px solid color-mix(in oklab, var(--bridge-helper-border) 70%, transparent);
371
+ background: color-mix(in oklab, var(--bridge-helper-bg) 94%, transparent);
372
+ box-shadow: 0 10px 40px rgba(15, 23, 42, 0.12);
373
+ backdrop-filter: blur(10px);
374
+ }
375
+
376
+ .bridge-network-helper--list .bridge-network-helper__shell {
377
+ width: 100%;
378
+ padding-bottom: 0.45rem;
379
+ }
380
+
381
+ .bridge-network-helper--revealing .bridge-network-helper__row,
382
+ .bridge-network-helper--expanded .bridge-network-helper__row,
383
+ .bridge-network-helper--list .bridge-network-helper__row {
384
+ min-width: 0;
385
+ max-width: 100%;
386
+ justify-content: flex-start;
387
+ }
388
+
389
+ .bridge-network-helper--list {
390
+ align-items: stretch;
391
+ }
392
+
393
+ .bridge-network-helper--list .bridge-network-helper__note-reveal,
394
+ .bridge-network-helper--list .bridge-network-helper__note-reveal-inner {
395
+ flex: 1 1 auto;
396
+ width: 100%;
397
+ min-width: 0;
398
+ }
399
+
400
+ .bridge-network-helper--list .bridge-network-helper__toggle {
401
+ margin-left: auto;
402
+ }
403
+
404
+ .bridge-network-helper__note-reveal {
405
+ display: grid;
406
+ grid-template-columns: 0fr;
407
+ min-width: 0;
408
+ opacity: 0;
409
+ overflow: hidden;
410
+ pointer-events: none;
411
+ transition: grid-template-columns 620ms cubic-bezier(0.22, 1, 0.36, 1), opacity 420ms ease;
412
+ }
413
+
414
+ .bridge-network-helper--revealing .bridge-network-helper__note-reveal,
415
+ .bridge-network-helper--expanded .bridge-network-helper__note-reveal,
416
+ .bridge-network-helper--list .bridge-network-helper__note-reveal {
417
+ grid-template-columns: 1fr;
418
+ opacity: 1;
419
+ pointer-events: auto;
420
+ }
421
+
422
+ .bridge-network-helper__note-reveal-inner {
423
+ display: flex;
424
+ min-width: 0;
425
+ align-items: center;
426
+ gap: 0.5rem;
427
+ overflow: hidden;
428
+ transform: translateX(0.85rem);
429
+ transition: transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
430
+ }
431
+
432
+ .bridge-network-helper--revealing .bridge-network-helper__note-reveal-inner,
433
+ .bridge-network-helper--expanded .bridge-network-helper__note-reveal-inner,
434
+ .bridge-network-helper--list .bridge-network-helper__note-reveal-inner {
435
+ transform: translateX(0);
436
+ }
437
+
438
+ .bridge-network-helper__content {
439
+ display: flex;
440
+ min-width: 0;
441
+ flex: 0 1 auto;
442
+ align-items: center;
443
+ overflow: hidden;
444
+ }
445
+
446
+ .bridge-network-helper__list {
447
+ display: grid;
448
+ grid-template-rows: 0fr;
449
+ width: 0;
450
+ max-width: 100%;
451
+ opacity: 0;
452
+ overflow: hidden;
453
+ pointer-events: none;
454
+ transition: grid-template-rows 480ms cubic-bezier(0.22, 1, 0.36, 1), opacity 280ms ease, margin-top 480ms cubic-bezier(0.22, 1, 0.36, 1), width 480ms cubic-bezier(0.22, 1, 0.36, 1);
455
+ }
456
+
457
+ .bridge-network-helper--list .bridge-network-helper__list {
458
+ grid-template-rows: 1fr;
459
+ width: 100%;
460
+ margin-top: 0.45rem;
461
+ opacity: 1;
462
+ pointer-events: auto;
463
+ }
464
+
465
+ .bridge-network-helper__list-inner {
466
+ min-height: 0;
467
+ overflow: hidden;
468
+ }
469
+
470
+ .bridge-network-helper__list-panel {
471
+ display: flex;
472
+ flex-direction: column;
473
+ max-height: min(22rem, 52vh);
474
+ border-top: 1px solid color-mix(in oklab, var(--bridge-helper-border) 30%, transparent);
475
+ padding: 0.45rem 0.1rem 0.1rem;
476
+ }
477
+
478
+ .bridge-network-helper__search {
479
+ position: relative;
480
+ flex-shrink: 0;
481
+ margin: 0 0.2rem 0.4rem;
482
+ }
483
+
484
+ .bridge-network-helper__search-icon {
485
+ position: absolute;
486
+ top: 50%;
487
+ left: 0.65rem;
488
+ z-index: 1;
489
+ width: 0.85rem;
490
+ height: 0.85rem;
491
+ transform: translateY(-50%);
492
+ color: var(--bridge-helper-muted-fg);
493
+ pointer-events: none;
494
+ }
495
+
496
+ .bridge-network-helper__search-input {
497
+ width: 100%;
498
+ height: 2rem;
499
+ padding: 0 0.7rem 0 1.9rem;
500
+ border-radius: 0.65rem;
501
+ border: 1px solid color-mix(in oklab, var(--bridge-helper-border) 45%, transparent);
502
+ background: color-mix(in oklab, var(--bridge-helper-bg) 80%, transparent);
503
+ color: var(--bridge-helper-fg);
504
+ font: inherit;
505
+ font-size: 0.75rem;
506
+ outline: none;
507
+ }
508
+
509
+ .bridge-network-helper__search-input:focus-visible {
510
+ border-color: color-mix(in oklab, var(--bridge-helper-accent) 45%, var(--bridge-helper-border));
511
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--bridge-helper-accent) 14%, transparent);
512
+ }
513
+
514
+ .bridge-network-helper__list-scroll {
515
+ min-height: 0;
516
+ flex: 1;
517
+ overflow-x: hidden;
518
+ overflow-y: auto;
519
+ scrollbar-gutter: stable;
520
+ }
521
+
522
+ .bridge-network-helper__list-status {
523
+ display: flex;
524
+ align-items: center;
525
+ justify-content: center;
526
+ padding: 1.25rem 0.75rem;
527
+ font-size: 0.75rem;
528
+ color: var(--bridge-helper-muted-fg);
529
+ }
530
+
531
+ .bridge-network-helper__list-status.is-error {
532
+ color: #e13535;
533
+ }
534
+
535
+ .bridge-network-helper__people {
536
+ margin: 0;
537
+ padding: 0;
538
+ list-style: none;
539
+ }
540
+
541
+ .bridge-network-helper__person {
542
+ display: flex;
543
+ align-items: flex-start;
544
+ gap: 0.65rem;
545
+ padding: 0.55rem 0.6rem;
546
+ border-radius: 0.75rem;
547
+ animation: bridgeHelperPersonEnter 380ms cubic-bezier(0.22, 1, 0.36, 1) both;
548
+ }
549
+
550
+ .bridge-network-helper__person:hover {
551
+ background: color-mix(in oklab, var(--bridge-helper-muted) 55%, transparent);
552
+ }
553
+
554
+ .bridge-network-helper__person--skeleton {
555
+ animation: none;
556
+ }
557
+
558
+ .bridge-network-helper__person-copy {
559
+ min-width: 0;
560
+ flex: 1;
561
+ }
562
+
563
+ .bridge-network-helper__person-name,
564
+ .bridge-network-helper__person-meta {
565
+ margin: 0;
566
+ overflow: hidden;
567
+ text-overflow: ellipsis;
568
+ white-space: nowrap;
569
+ }
570
+
571
+ .bridge-network-helper__person-name {
572
+ font-size: 0.875rem;
573
+ font-weight: 500;
574
+ color: var(--bridge-helper-fg);
575
+ }
576
+
577
+ .bridge-network-helper__person-meta {
578
+ font-size: 11px;
579
+ color: color-mix(in oklab, var(--bridge-helper-muted-fg) 80%, transparent);
580
+ }
581
+
582
+ .bridge-network-helper__share-link {
583
+ display: inline-flex;
584
+ max-width: 100%;
585
+ align-items: center;
586
+ gap: 0.35rem;
587
+ margin-top: 0.2rem;
588
+ padding: 0;
589
+ border: 0;
590
+ background: transparent;
591
+ color: var(--bridge-helper-muted-fg);
592
+ font: inherit;
593
+ font-size: 0.6875rem;
594
+ line-height: 1.25;
595
+ cursor: pointer;
596
+ text-align: left;
597
+ }
598
+
599
+ .bridge-network-helper__share-link-text {
600
+ min-width: 0;
601
+ overflow: hidden;
602
+ text-overflow: ellipsis;
603
+ white-space: nowrap;
604
+ color: var(--bridge-helper-accent);
605
+ }
606
+
607
+ .bridge-network-helper__share-link-icon {
608
+ width: 0.75rem;
609
+ height: 0.75rem;
610
+ flex-shrink: 0;
611
+ }
612
+
613
+ .bridge-network-helper__share-link-icon.is-copied,
614
+ .bridge-network-helper__person-menu-icon.is-copied {
615
+ color: #0ea02e;
616
+ }
617
+
618
+ .bridge-network-helper__person-menu {
619
+ display: inline-flex;
620
+ width: 1.5rem;
621
+ height: 1.5rem;
622
+ flex-shrink: 0;
623
+ align-items: center;
624
+ justify-content: center;
625
+ margin-top: 0.1rem;
626
+ border: 0;
627
+ border-radius: 9999px;
628
+ background: transparent;
629
+ padding: 0;
630
+ color: color-mix(in oklab, var(--bridge-helper-muted-fg) 70%, transparent);
631
+ cursor: pointer;
632
+ }
633
+
634
+ .bridge-network-helper__person-menu:hover,
635
+ .bridge-network-helper__person-menu[data-state="open"] {
636
+ color: var(--bridge-helper-fg);
637
+ background: color-mix(in oklab, var(--bridge-helper-muted) 70%, transparent);
638
+ }
639
+
640
+ .bridge-network-helper__person-menu-content {
641
+ position: fixed;
642
+ z-index: 60;
643
+ width: 15.5rem;
644
+ overflow: hidden;
645
+ border-radius: 0.9rem;
646
+ border: 1px solid color-mix(in oklab, var(--bridge-helper-border) 55%, transparent);
647
+ background: var(--bridge-helper-bg);
648
+ padding: 0.35rem;
649
+ box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
650
+ }
651
+
652
+ .bridge-network-helper__person-menu-item {
653
+ display: flex;
654
+ width: 100%;
655
+ align-items: center;
656
+ gap: 0.7rem;
657
+ border: 0;
658
+ border-radius: 0.65rem;
659
+ background: transparent;
660
+ padding: 0.65rem 0.75rem;
661
+ color: color-mix(in oklab, var(--bridge-helper-fg) 78%, transparent);
662
+ font: inherit;
663
+ font-size: 0.8125rem;
664
+ line-height: 1.2;
665
+ text-align: left;
666
+ text-decoration: none;
667
+ cursor: pointer;
668
+ }
669
+
670
+ .bridge-network-helper__person-menu-item.has-description {
671
+ align-items: flex-start;
672
+ }
673
+
674
+ .bridge-network-helper__person-menu-item:hover,
675
+ .bridge-network-helper__person-menu-item:focus-visible {
676
+ background: color-mix(in oklab, var(--bridge-helper-muted) 55%, transparent);
677
+ color: var(--bridge-helper-fg);
678
+ }
679
+
680
+ .bridge-network-helper__person-menu-icon {
681
+ width: 1rem;
682
+ height: 1rem;
683
+ flex-shrink: 0;
684
+ color: color-mix(in oklab, var(--bridge-helper-fg) 62%, transparent);
685
+ }
686
+
687
+ .bridge-network-helper__person-menu-icon svg,
688
+ .bridge-network-helper__person-menu-item > svg {
689
+ width: 1rem;
690
+ height: 1rem;
691
+ flex-shrink: 0;
692
+ }
693
+
694
+ .bridge-network-helper__person-menu-label,
695
+ .bridge-network-helper__person-menu-description {
696
+ display: block;
697
+ }
698
+
699
+ .bridge-network-helper__person-menu-description {
700
+ margin-top: 0.125rem;
701
+ font-size: 11px;
702
+ font-weight: 400;
703
+ line-height: 1.35;
704
+ color: var(--bridge-helper-muted-fg);
705
+ }
706
+
707
+ .bridge-network-helper__load-more {
708
+ height: 1px;
709
+ width: 100%;
710
+ }
711
+
712
+ .bridge-network-helper__skeleton {
713
+ display: block;
714
+ border-radius: 9999px;
715
+ background: color-mix(in oklab, var(--bridge-helper-muted) 80%, transparent);
716
+ }
717
+
718
+ .bridge-network-helper__skeleton--avatar {
719
+ width: 2rem;
720
+ height: 2rem;
721
+ flex-shrink: 0;
722
+ }
723
+
724
+ .bridge-network-helper__skeleton--menu {
725
+ width: 1.5rem;
726
+ height: 1.5rem;
727
+ flex-shrink: 0;
728
+ }
729
+
730
+ .bridge-network-helper__skeleton--line {
731
+ height: 0.625rem;
732
+ width: 9rem;
733
+ margin-top: 0.35rem;
734
+ }
735
+
736
+ .bridge-network-helper__skeleton--line.is-name {
737
+ height: 0.875rem;
738
+ width: 7rem;
739
+ margin-top: 0;
740
+ }
741
+
742
+ .bridge-network-helper__skeleton--line.is-long {
743
+ width: 10rem;
744
+ }
745
+
746
+ .bridge-network-helper-avatar {
747
+ position: relative;
748
+ display: inline-block;
749
+ flex-shrink: 0;
750
+ }
751
+
752
+ .bridge-network-helper-avatar--sm {
753
+ width: 1.5rem;
754
+ height: 1.5rem;
755
+ font-size: 9px;
756
+ }
757
+
758
+ .bridge-network-helper-avatar--md {
759
+ width: 2rem;
760
+ height: 2rem;
761
+ font-size: 10px;
762
+ }
763
+
764
+ .bridge-network-helper-avatar__face {
765
+ display: block;
766
+ width: 100%;
767
+ height: 100%;
768
+ overflow: hidden;
769
+ border-radius: 9999px;
770
+ background: var(--bridge-helper-muted);
771
+ box-shadow: 0 0 0 2px var(--bridge-helper-bg);
772
+ }
773
+
774
+ .bridge-network-helper-avatar__face img,
775
+ .bridge-network-helper-avatar__fallback {
776
+ display: flex;
777
+ width: 100%;
778
+ height: 100%;
779
+ align-items: center;
780
+ justify-content: center;
781
+ object-fit: cover;
782
+ object-position: top;
783
+ font-weight: 600;
784
+ color: white;
785
+ }
786
+
787
+ .bridge-network-helper-avatar__fallback.is-0 { background: linear-gradient(to bottom right, #475569, #1e293b); }
788
+ .bridge-network-helper-avatar__fallback.is-1 { background: linear-gradient(to bottom right, #0038ff, #1e4fd6); }
789
+ .bridge-network-helper-avatar__fallback.is-2 { background: linear-gradient(to bottom right, #7450da, #5a3fb8); }
790
+ .bridge-network-helper-avatar__fallback.is-3 { background: linear-gradient(to bottom right, #0ea02e, #0b7d24); }
791
+ .bridge-network-helper-avatar__fallback.is-4 { background: linear-gradient(to bottom right, #e19500, #c47f00); }
792
+ .bridge-network-helper-avatar__fallback.is-5 { background: linear-gradient(to bottom right, #e13535, #b82b2b); }
793
+
794
+ .bridge-network-helper-avatar__badge {
795
+ position: absolute;
796
+ right: 0;
797
+ bottom: 0;
798
+ display: flex;
799
+ width: 0.5rem;
800
+ height: 0.5rem;
801
+ align-items: center;
802
+ justify-content: center;
803
+ border-radius: 9999px;
804
+ background: var(--bridge-helper-accent);
805
+ color: white;
806
+ box-shadow: 0 0 0 1px var(--bridge-helper-bg);
807
+ }
808
+
809
+ .bridge-network-helper-avatar--md .bridge-network-helper-avatar__badge {
810
+ width: 0.625rem;
811
+ height: 0.625rem;
812
+ box-shadow: 0 0 0 1.5px var(--bridge-helper-bg);
813
+ }
814
+
815
+ .bridge-network-helper-avatar__badge svg {
816
+ width: 0.35rem;
817
+ height: 0.35rem;
818
+ stroke-width: 3.5;
819
+ }
820
+
821
+ @keyframes bridgeHelperIconEnter {
822
+ 0% { opacity: 0; transform: scale(0.62); }
823
+ 100% { opacity: 1; transform: scale(1); }
824
+ }
825
+
826
+ @keyframes bridgeHelperPersonEnter {
827
+ 0% { opacity: 0; transform: translateY(6px); }
828
+ 100% { opacity: 1; transform: translateY(0); }
829
+ }
830
+
831
+ @media (prefers-reduced-motion: reduce) {
832
+ .bridge-network-helper .dot,
833
+ .bridge-network-helper__icon-btn,
834
+ .bridge-network-helper__person {
835
+ animation: none !important;
836
+ }
837
+
838
+ .bridge-network-helper__list,
839
+ .bridge-network-helper__shell,
840
+ .bridge-network-helper__note-reveal,
841
+ .bridge-network-helper__note-reveal-inner {
842
+ transition: none !important;
843
+ }
844
+
845
+ .bridge-network-helper__note-reveal-inner {
846
+ transform: none !important;
847
+ }
848
+ }