@domainkit/react 0.10.0 → 0.11.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.
- package/README.md +23 -2
- package/dist/index.d.mts +137 -15
- package/dist/index.mjs +607 -157
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +432 -87
- package/package.json +2 -2
package/dist/styles.css
CHANGED
|
@@ -28,6 +28,38 @@
|
|
|
28
28
|
--domainkit-text: #18181b;
|
|
29
29
|
--domainkit-warning: #b45309;
|
|
30
30
|
--domainkit-control-radius: calc(var(--domainkit-radius) * 0.5);
|
|
31
|
+
/*
|
|
32
|
+
* The quiet controls in a dialog — a docs link, a disclosure trigger, a secondary action, the
|
|
33
|
+
* way back, the provider menu — share one rhythm: what sits above them, what sits below, and
|
|
34
|
+
* the room their hover and focus states need around the text.
|
|
35
|
+
*/
|
|
36
|
+
--domainkit-quiet-lead: 0.5rem;
|
|
37
|
+
--domainkit-quiet-trail: 0.75rem;
|
|
38
|
+
--domainkit-quiet-inset: 0.5rem;
|
|
39
|
+
--domainkit-quiet-pad: 0.25rem;
|
|
40
|
+
/* The inner room a panel gives its contents: the dialog's form, and the two cards. */
|
|
41
|
+
--domainkit-panel-pad: 0.75rem;
|
|
42
|
+
/* A dialog that asks one question, and the width a dialog listing records takes instead. */
|
|
43
|
+
--domainkit-dialog-width: 24rem;
|
|
44
|
+
--domainkit-dialog-wide: 36rem;
|
|
45
|
+
/* The switch track, the thumb inside it, and the room it keeps at each end of the track. */
|
|
46
|
+
--domainkit-switch-width: 2.25rem;
|
|
47
|
+
--domainkit-switch-height: 1.25rem;
|
|
48
|
+
--domainkit-switch-thumb: 1rem;
|
|
49
|
+
--domainkit-switch-inset: 0.125rem;
|
|
50
|
+
/*
|
|
51
|
+
* A provider's identity is a name over one line about it, and the mark stands against both.
|
|
52
|
+
* The mark's size is the two lines added up, so it spans the block instead of guessing at it.
|
|
53
|
+
*/
|
|
54
|
+
--domainkit-identity-name: 0.875rem;
|
|
55
|
+
--domainkit-identity-line: 0.8125rem;
|
|
56
|
+
--domainkit-identity-leading: 1.4;
|
|
57
|
+
--domainkit-mark-size: calc(
|
|
58
|
+
(var(--domainkit-identity-name) + var(--domainkit-identity-line)) *
|
|
59
|
+
var(--domainkit-identity-leading)
|
|
60
|
+
);
|
|
61
|
+
/* Cards draw no border of their own. A host that wants one sets this on the part. */
|
|
62
|
+
--domainkit-card-border: transparent;
|
|
31
63
|
--domainkit-button-raised-glint: rgb(255 255 255 / 0.95);
|
|
32
64
|
--domainkit-button-raised-shade: color-mix(in srgb, var(--domainkit-text) 10%, transparent);
|
|
33
65
|
--domainkit-button-raised-shadow: 0 1px 2px
|
|
@@ -105,6 +137,11 @@
|
|
|
105
137
|
[data-domainkit-part="cleanup-apply"],
|
|
106
138
|
[data-domainkit-part="cleanup-retry"],
|
|
107
139
|
[data-domainkit-part="disconnect-action"],
|
|
140
|
+
[data-domainkit-part="disconnect-confirm"],
|
|
141
|
+
[data-domainkit-part="method-alternate"],
|
|
142
|
+
[data-domainkit-part="dialog-back"],
|
|
143
|
+
[data-domainkit-part="dialog-provider-menu"],
|
|
144
|
+
[data-domainkit-part="more-options-trigger"],
|
|
108
145
|
[data-domainkit-part="disconnect-trigger"],
|
|
109
146
|
[data-domainkit-part="actions-trigger"],
|
|
110
147
|
[data-domainkit-part="token-connect"] button,
|
|
@@ -237,7 +274,7 @@
|
|
|
237
274
|
background: color-mix(in srgb, var(--domainkit-danger) 8%, transparent);
|
|
238
275
|
}
|
|
239
276
|
|
|
240
|
-
:where([data-domainkit-part="cleanup-apply"]) {
|
|
277
|
+
:where([data-domainkit-part="cleanup-apply"], [data-domainkit-part="disconnect-confirm"]) {
|
|
241
278
|
--domainkit-button-face: color-mix(in oklch, var(--domainkit-danger), white 22%);
|
|
242
279
|
--domainkit-button-glint: color-mix(in oklch, var(--domainkit-danger), white 42%);
|
|
243
280
|
--domainkit-button-edge: color-mix(in oklch, var(--domainkit-danger), black 18%);
|
|
@@ -254,11 +291,17 @@
|
|
|
254
291
|
color: var(--domainkit-danger-contrast);
|
|
255
292
|
}
|
|
256
293
|
|
|
257
|
-
:where(
|
|
294
|
+
:where(
|
|
295
|
+
[data-domainkit-part="cleanup-apply"]:hover:not(:disabled),
|
|
296
|
+
[data-domainkit-part="disconnect-confirm"]:hover:not(:disabled)
|
|
297
|
+
) {
|
|
258
298
|
--domainkit-button-face: color-mix(in oklch, var(--domainkit-danger), white 28%);
|
|
259
299
|
}
|
|
260
300
|
|
|
261
|
-
:where(
|
|
301
|
+
:where(
|
|
302
|
+
[data-domainkit-part="cleanup-apply"]:active:not(:disabled),
|
|
303
|
+
[data-domainkit-part="disconnect-confirm"]:active:not(:disabled)
|
|
304
|
+
) {
|
|
262
305
|
background-image: linear-gradient(
|
|
263
306
|
to bottom,
|
|
264
307
|
var(--domainkit-danger),
|
|
@@ -267,6 +310,158 @@
|
|
|
267
310
|
box-shadow: inset 0 1px 2px color-mix(in srgb, var(--domainkit-text) 28%, transparent);
|
|
268
311
|
}
|
|
269
312
|
|
|
313
|
+
/* Every quiet control in the dialog keeps the same rhythm above and below it. */
|
|
314
|
+
:where(
|
|
315
|
+
[data-domainkit-part="method-alternate"],
|
|
316
|
+
[data-domainkit-part="dialog-back"],
|
|
317
|
+
[data-domainkit-part="more-options-trigger"]
|
|
318
|
+
) {
|
|
319
|
+
margin-block: var(--domainkit-quiet-lead) var(--domainkit-quiet-trail);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
:where([data-domainkit-part="method-alternate"]) {
|
|
323
|
+
background: transparent;
|
|
324
|
+
border-color: var(--domainkit-border);
|
|
325
|
+
box-shadow: none;
|
|
326
|
+
color: var(--domainkit-text);
|
|
327
|
+
width: 100%;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
:where(
|
|
331
|
+
[data-domainkit-part="method-alternate"]:hover:not(:disabled),
|
|
332
|
+
[data-domainkit-part="more-options-trigger"]:hover:not(:disabled)
|
|
333
|
+
) {
|
|
334
|
+
background: var(--domainkit-fill);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
:where([data-domainkit-part="more-options-trigger"]) {
|
|
338
|
+
background: transparent;
|
|
339
|
+
border-color: var(--domainkit-border);
|
|
340
|
+
box-shadow: none;
|
|
341
|
+
color: var(--domainkit-muted);
|
|
342
|
+
font-size: 0.8125rem;
|
|
343
|
+
gap: var(--domainkit-quiet-pad);
|
|
344
|
+
justify-self: start;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
:where([data-domainkit-part="more-options-trigger"] svg),
|
|
348
|
+
:where([data-domainkit-part="dialog-provider-menu"] svg) {
|
|
349
|
+
height: 1rem;
|
|
350
|
+
transition: transform 150ms ease;
|
|
351
|
+
width: 1rem;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
:where([data-domainkit-part="more-options"][data-state="open"])
|
|
355
|
+
:where([data-domainkit-part="more-options-trigger"] svg) {
|
|
356
|
+
transform: rotate(180deg);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
:where([data-domainkit-part="more-options-panel"]) {
|
|
360
|
+
display: grid;
|
|
361
|
+
gap: var(--domainkit-quiet-lead);
|
|
362
|
+
padding-block-end: var(--domainkit-quiet-lead);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
:where([data-domainkit-part="dialog-back"]) {
|
|
366
|
+
background: transparent;
|
|
367
|
+
border-color: transparent;
|
|
368
|
+
box-shadow: none;
|
|
369
|
+
color: var(--domainkit-muted);
|
|
370
|
+
justify-self: start;
|
|
371
|
+
margin-inline-start: calc(-1 * var(--domainkit-quiet-inset));
|
|
372
|
+
padding-inline: var(--domainkit-quiet-inset);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
:where([data-domainkit-part="dialog-back"]:hover:not(:disabled)) {
|
|
376
|
+
background: var(--domainkit-fill);
|
|
377
|
+
color: var(--domainkit-text);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
:where([data-domainkit-part="dialog-back"])::before {
|
|
381
|
+
content: "\2190";
|
|
382
|
+
margin-inline-end: 0.35rem;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
:where([data-domainkit-part="dialog-provider-menu"]) {
|
|
386
|
+
background: transparent;
|
|
387
|
+
border-color: transparent;
|
|
388
|
+
box-shadow: none;
|
|
389
|
+
color: inherit;
|
|
390
|
+
font: inherit;
|
|
391
|
+
gap: var(--domainkit-quiet-pad);
|
|
392
|
+
margin-inline-start: calc(-1 * var(--domainkit-quiet-inset));
|
|
393
|
+
padding: var(--domainkit-quiet-pad) var(--domainkit-quiet-inset);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
:where([data-domainkit-part="dialog-provider-menu"]:hover:not(:disabled)) {
|
|
397
|
+
background: var(--domainkit-fill);
|
|
398
|
+
color: var(--domainkit-accent);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
:where([data-domainkit-part="dialog-provider-menu"][data-popup-open] svg) {
|
|
402
|
+
transform: rotate(180deg);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
/* Above the dialog that opened it: the trigger sits inside the dialog's own stacking context. */
|
|
406
|
+
:where([data-domainkit-part="provider-menu-positioner"]) {
|
|
407
|
+
z-index: 1002;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
:where([data-domainkit-part="provider-menu"]) {
|
|
411
|
+
background: var(--domainkit-background);
|
|
412
|
+
border: 1px solid var(--domainkit-border);
|
|
413
|
+
border-radius: var(--domainkit-radius);
|
|
414
|
+
box-shadow: var(--domainkit-shadow);
|
|
415
|
+
display: grid;
|
|
416
|
+
gap: 0.15rem;
|
|
417
|
+
min-width: 12rem;
|
|
418
|
+
padding: 0.3rem;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
:where([data-domainkit-part="provider-menu-item"]) {
|
|
422
|
+
align-items: center;
|
|
423
|
+
border-radius: var(--domainkit-control-radius);
|
|
424
|
+
color: var(--domainkit-text);
|
|
425
|
+
cursor: pointer;
|
|
426
|
+
display: flex;
|
|
427
|
+
font-size: 0.875rem;
|
|
428
|
+
gap: 0.5rem;
|
|
429
|
+
padding: 0.35rem 0.5rem;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
:where([data-domainkit-part="provider-menu-item"][data-highlighted]) {
|
|
433
|
+
background: var(--domainkit-fill);
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
:where([data-domainkit-part="disconnect-scope"]) {
|
|
437
|
+
border: 1px solid var(--domainkit-border);
|
|
438
|
+
border-radius: var(--domainkit-control-radius);
|
|
439
|
+
display: grid;
|
|
440
|
+
gap: 0.4rem;
|
|
441
|
+
margin: 0;
|
|
442
|
+
padding: 0.6rem 0.75rem;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
:where([data-domainkit-part="disconnect-scope"] legend) {
|
|
446
|
+
color: var(--domainkit-muted);
|
|
447
|
+
font-size: 0.8125rem;
|
|
448
|
+
padding-inline: 0.25rem;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
:where([data-domainkit-part="disconnect-scope"] label) {
|
|
452
|
+
align-items: center;
|
|
453
|
+
color: var(--domainkit-text);
|
|
454
|
+
cursor: pointer;
|
|
455
|
+
display: flex;
|
|
456
|
+
font-size: 0.875rem;
|
|
457
|
+
gap: 0.5rem;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
:where([data-domainkit-part="disconnect-scope"] input) {
|
|
461
|
+
accent-color: var(--domainkit-accent);
|
|
462
|
+
margin: 0;
|
|
463
|
+
}
|
|
464
|
+
|
|
270
465
|
:where([data-domainkit-part="dialog-cancel"], [data-domainkit-part="dialog-close"]) {
|
|
271
466
|
background: transparent;
|
|
272
467
|
border-color: transparent;
|
|
@@ -359,6 +554,7 @@
|
|
|
359
554
|
:where([data-domainkit-part="dialog-backdrop"]) {
|
|
360
555
|
background: var(--domainkit-backdrop);
|
|
361
556
|
inset: 0;
|
|
557
|
+
opacity: 1;
|
|
362
558
|
position: fixed;
|
|
363
559
|
transition: opacity 150ms ease;
|
|
364
560
|
z-index: 1000;
|
|
@@ -389,12 +585,42 @@
|
|
|
389
585
|
transition:
|
|
390
586
|
opacity 150ms ease,
|
|
391
587
|
transform 150ms ease;
|
|
392
|
-
width:
|
|
588
|
+
width: var(--domainkit-dialog-width);
|
|
393
589
|
z-index: 1001;
|
|
394
590
|
}
|
|
395
591
|
|
|
396
|
-
|
|
397
|
-
|
|
592
|
+
/*
|
|
593
|
+
* A dialog that lists records takes the wider width: the plan and the cleanup always do, and the
|
|
594
|
+
* disconnect dialog does whenever it carries removals to decide over.
|
|
595
|
+
*/
|
|
596
|
+
:where(
|
|
597
|
+
[data-domainkit-part="plan-dialog"],
|
|
598
|
+
[data-domainkit-part="cleanup-dialog"],
|
|
599
|
+
[data-domainkit-part="disconnect-dialog"][data-cleanup="offered"]
|
|
600
|
+
) {
|
|
601
|
+
--domainkit-dialog-width: var(--domainkit-dialog-wide);
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
/* The backdrop fades with the dialog it belongs to rather than appearing whole. */
|
|
605
|
+
:where(
|
|
606
|
+
[data-domainkit-part="dialog-backdrop"][data-starting-style],
|
|
607
|
+
[data-domainkit-part="dialog-backdrop"][data-ending-style]
|
|
608
|
+
) {
|
|
609
|
+
opacity: 0;
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
/*
|
|
613
|
+
* A closed dialog is out of the customer's way even while it is still in the tree: it may linger
|
|
614
|
+
* for its exit, and a transparent sheet that still takes a press would swallow the next click.
|
|
615
|
+
*/
|
|
616
|
+
:where(
|
|
617
|
+
[data-domainkit-part="dialog-backdrop"][data-closed],
|
|
618
|
+
[data-domainkit-part="connection-dialog"][data-closed],
|
|
619
|
+
[data-domainkit-part="plan-dialog"][data-closed],
|
|
620
|
+
[data-domainkit-part="cleanup-dialog"][data-closed],
|
|
621
|
+
[data-domainkit-part="disconnect-dialog"][data-closed]
|
|
622
|
+
) {
|
|
623
|
+
pointer-events: none;
|
|
398
624
|
}
|
|
399
625
|
|
|
400
626
|
:where(
|
|
@@ -419,6 +645,14 @@
|
|
|
419
645
|
padding: 1rem 1rem 0.85rem;
|
|
420
646
|
}
|
|
421
647
|
|
|
648
|
+
/* The mark stands against the title and the line under it, the way it does on the two cards. */
|
|
649
|
+
:where([data-domainkit-part="dialog-media"]) {
|
|
650
|
+
align-items: center;
|
|
651
|
+
align-self: center;
|
|
652
|
+
display: inline-flex;
|
|
653
|
+
flex: none;
|
|
654
|
+
}
|
|
655
|
+
|
|
422
656
|
:where([data-domainkit-part="dialog-heading"]) {
|
|
423
657
|
display: grid;
|
|
424
658
|
flex: 1;
|
|
@@ -521,6 +755,91 @@
|
|
|
521
755
|
margin: 0;
|
|
522
756
|
}
|
|
523
757
|
|
|
758
|
+
:where([data-domainkit-part="disconnect-cleanup"]) {
|
|
759
|
+
display: grid;
|
|
760
|
+
gap: var(--domainkit-quiet-lead);
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
:where([data-domainkit-part="disconnect-cleanup-label"]) {
|
|
764
|
+
align-items: center;
|
|
765
|
+
color: var(--domainkit-text);
|
|
766
|
+
cursor: pointer;
|
|
767
|
+
display: flex;
|
|
768
|
+
font-size: 0.875rem;
|
|
769
|
+
gap: 0.6rem;
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
/*
|
|
773
|
+
* Base UI's own Switch anatomy: the root is the track and the thumb is a box laid out inside it.
|
|
774
|
+
* `border-box` and `inline-flex` make the declared width and height the track a customer sees,
|
|
775
|
+
* whatever the host's reset does with padding, and centre the thumb between the track's edges.
|
|
776
|
+
*/
|
|
777
|
+
:where([data-domainkit-part="disconnect-cleanup-switch"]) {
|
|
778
|
+
align-items: center;
|
|
779
|
+
background: var(--domainkit-border);
|
|
780
|
+
border: 0;
|
|
781
|
+
border-radius: 999px;
|
|
782
|
+
box-sizing: border-box;
|
|
783
|
+
cursor: pointer;
|
|
784
|
+
display: inline-flex;
|
|
785
|
+
flex: none;
|
|
786
|
+
height: var(--domainkit-switch-height);
|
|
787
|
+
padding: var(--domainkit-switch-inset);
|
|
788
|
+
transition: background-color 150ms ease;
|
|
789
|
+
width: var(--domainkit-switch-width);
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
:where([data-domainkit-part="disconnect-cleanup-switch"][data-checked]) {
|
|
793
|
+
background: var(--domainkit-accent);
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
:where([data-domainkit-part="disconnect-cleanup-switch"]:disabled) {
|
|
797
|
+
cursor: default;
|
|
798
|
+
opacity: 0.6;
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
:where([data-domainkit-part="disconnect-cleanup-thumb"]) {
|
|
802
|
+
background: var(--domainkit-background);
|
|
803
|
+
border-radius: 999px;
|
|
804
|
+
display: block;
|
|
805
|
+
flex: none;
|
|
806
|
+
height: var(--domainkit-switch-thumb);
|
|
807
|
+
transition: translate 150ms ease;
|
|
808
|
+
width: var(--domainkit-switch-thumb);
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
/* The travel is the track less the thumb and the room the track keeps at both ends. */
|
|
812
|
+
:where([data-domainkit-part="disconnect-cleanup-thumb"][data-checked]) {
|
|
813
|
+
translate: calc(
|
|
814
|
+
var(--domainkit-switch-width) - var(--domainkit-switch-thumb) -
|
|
815
|
+
var(--domainkit-switch-inset) * 2
|
|
816
|
+
);
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
:where([data-domainkit-part="disconnect-cleanup-panel"]) {
|
|
820
|
+
display: grid;
|
|
821
|
+
gap: 0.35rem;
|
|
822
|
+
transition: opacity 150ms ease;
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
/* Off, the records are still what the decision is about, so they stay legible and step back. */
|
|
826
|
+
:where([data-domainkit-part="disconnect-cleanup"][data-state="off"])
|
|
827
|
+
:where([data-domainkit-part="disconnect-cleanup-panel"]) {
|
|
828
|
+
opacity: 0.55;
|
|
829
|
+
}
|
|
830
|
+
|
|
831
|
+
:where([data-domainkit-part="disconnect-cleanup-note"]) {
|
|
832
|
+
color: var(--domainkit-muted);
|
|
833
|
+
font-size: 0.8125rem;
|
|
834
|
+
margin: 0;
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
:where([data-domainkit-part="disconnect-status"]) {
|
|
838
|
+
color: var(--domainkit-muted);
|
|
839
|
+
font-size: 0.875rem;
|
|
840
|
+
margin: 0;
|
|
841
|
+
}
|
|
842
|
+
|
|
524
843
|
:where([data-domainkit-part="dialog-footer"]) {
|
|
525
844
|
border-top: 1px solid var(--domainkit-border);
|
|
526
845
|
display: flex;
|
|
@@ -529,6 +848,8 @@
|
|
|
529
848
|
padding: 0.75rem 1rem;
|
|
530
849
|
}
|
|
531
850
|
|
|
851
|
+
/* A squircle: a rounded square on the radius token, filled edge to edge. Nothing here rounds it
|
|
852
|
+
* into a circle, so a mark that reads as one is a circular asset the host passed in. */
|
|
532
853
|
:where([data-domainkit-part="provider-mark"]) {
|
|
533
854
|
align-items: center;
|
|
534
855
|
background: var(--domainkit-fill);
|
|
@@ -537,12 +858,12 @@
|
|
|
537
858
|
box-sizing: border-box;
|
|
538
859
|
display: inline-flex;
|
|
539
860
|
flex: none;
|
|
540
|
-
font-size: 0.
|
|
861
|
+
font-size: 0.8125rem;
|
|
541
862
|
font-weight: 600;
|
|
542
|
-
height:
|
|
863
|
+
height: var(--domainkit-mark-size);
|
|
543
864
|
justify-content: center;
|
|
544
865
|
overflow: hidden;
|
|
545
|
-
width:
|
|
866
|
+
width: var(--domainkit-mark-size);
|
|
546
867
|
}
|
|
547
868
|
|
|
548
869
|
:where([data-domainkit-part="provider-mark"] img),
|
|
@@ -553,18 +874,6 @@
|
|
|
553
874
|
width: 100%;
|
|
554
875
|
}
|
|
555
876
|
|
|
556
|
-
:where([data-domainkit-recipe="connect"]) {
|
|
557
|
-
gap: 0.45rem;
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
:where([data-domainkit-recipe="connect"] [data-domainkit-part="provider-mark"]) {
|
|
561
|
-
background: var(--domainkit-accent-contrast);
|
|
562
|
-
border-color: color-mix(in oklch, var(--domainkit-accent) 18%, transparent);
|
|
563
|
-
font-size: 0.625rem;
|
|
564
|
-
height: 1.25rem;
|
|
565
|
-
width: 1.25rem;
|
|
566
|
-
}
|
|
567
|
-
|
|
568
877
|
:where([data-domainkit-part="provider-mark"][data-domainkit-provider="vercel"]) {
|
|
569
878
|
border-color: transparent;
|
|
570
879
|
}
|
|
@@ -575,7 +884,7 @@
|
|
|
575
884
|
border-radius: var(--domainkit-control-radius);
|
|
576
885
|
display: grid;
|
|
577
886
|
gap: 0.65rem;
|
|
578
|
-
padding:
|
|
887
|
+
padding: var(--domainkit-panel-pad);
|
|
579
888
|
}
|
|
580
889
|
|
|
581
890
|
:where([data-domainkit-part="token-connect"] [data-domainkit-part="field-label"]) {
|
|
@@ -610,27 +919,27 @@
|
|
|
610
919
|
width: 100%;
|
|
611
920
|
}
|
|
612
921
|
|
|
922
|
+
/*
|
|
923
|
+
* Both cards sit on the host's inset surface rather than floating on the page ground, so a
|
|
924
|
+
* domain page reads as one section. The border is off unless a host sets `--domainkit-card-border`
|
|
925
|
+
* on the part.
|
|
926
|
+
*/
|
|
927
|
+
:where([data-domainkit-part="connected-card"], [data-domainkit-part="connect-prompt"]) {
|
|
928
|
+
background: var(--domainkit-fill);
|
|
929
|
+
border: 1px solid var(--domainkit-card-border);
|
|
930
|
+
border-radius: var(--domainkit-radius);
|
|
931
|
+
padding: var(--domainkit-panel-pad);
|
|
932
|
+
}
|
|
933
|
+
|
|
613
934
|
:where([data-domainkit-part="connected-card"]) {
|
|
614
935
|
align-items: center;
|
|
615
|
-
|
|
616
|
-
border: 1px solid var(--domainkit-border);
|
|
617
|
-
border-radius: var(--domainkit-radius);
|
|
936
|
+
column-gap: 1rem;
|
|
618
937
|
display: grid;
|
|
619
|
-
gap: 0.75rem 1rem;
|
|
620
938
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
621
939
|
justify-content: space-between;
|
|
622
|
-
min-height: 4.25rem;
|
|
623
|
-
padding: 1rem;
|
|
624
940
|
width: 100%;
|
|
625
941
|
}
|
|
626
942
|
|
|
627
|
-
:where([data-domainkit-part="connected-identity"]) {
|
|
628
|
-
align-items: center;
|
|
629
|
-
display: flex;
|
|
630
|
-
gap: 0.75rem;
|
|
631
|
-
min-width: 0;
|
|
632
|
-
}
|
|
633
|
-
|
|
634
943
|
:where([data-domainkit-part="connected-actions"]) {
|
|
635
944
|
align-items: center;
|
|
636
945
|
display: flex;
|
|
@@ -905,10 +1214,13 @@
|
|
|
905
1214
|
min-height: 1.5rem;
|
|
906
1215
|
}
|
|
907
1216
|
|
|
1217
|
+
/* A record name longer than the popover wraps inside its own cell; the status keeps the row. */
|
|
908
1218
|
:where([data-domainkit-part="observation-record"]) {
|
|
909
1219
|
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
910
1220
|
font-size: 0.75rem;
|
|
911
1221
|
font-weight: 600;
|
|
1222
|
+
min-width: 0;
|
|
1223
|
+
overflow-wrap: anywhere;
|
|
912
1224
|
}
|
|
913
1225
|
|
|
914
1226
|
:where([data-domainkit-part="observation-note"]) {
|
|
@@ -1057,12 +1369,23 @@
|
|
|
1057
1369
|
font-size: 0.6875rem;
|
|
1058
1370
|
}
|
|
1059
1371
|
|
|
1372
|
+
/* Glyph and word are one badge: a narrow status column breaks the line, not the badge. */
|
|
1060
1373
|
:where([data-domainkit-part="record-status"]) {
|
|
1374
|
+
align-items: center;
|
|
1061
1375
|
border-radius: 999px;
|
|
1376
|
+
display: inline-flex;
|
|
1062
1377
|
font-size: 0.6875rem;
|
|
1063
1378
|
font-weight: 600;
|
|
1379
|
+
gap: 0.25rem;
|
|
1064
1380
|
letter-spacing: 0.02em;
|
|
1065
1381
|
padding: 0.15rem 0.45rem;
|
|
1382
|
+
white-space: nowrap;
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
/* The glyph reads at the size of the word beside it rather than a size above it. */
|
|
1386
|
+
:where([data-domainkit-part="record-status"] [data-icon] svg) {
|
|
1387
|
+
height: 1em;
|
|
1388
|
+
width: 1em;
|
|
1066
1389
|
}
|
|
1067
1390
|
|
|
1068
1391
|
:where([data-domainkit-part="record-status"][data-status="Found"]) {
|
|
@@ -1144,6 +1467,7 @@
|
|
|
1144
1467
|
color: var(--domainkit-muted);
|
|
1145
1468
|
}
|
|
1146
1469
|
|
|
1470
|
+
/* A record name is longer than a dialog is wide; it wraps rather than running off the row. */
|
|
1147
1471
|
:where([data-domainkit-part="operation-record"]) {
|
|
1148
1472
|
color: var(--domainkit-muted);
|
|
1149
1473
|
display: grid;
|
|
@@ -1151,6 +1475,7 @@
|
|
|
1151
1475
|
font-size: 0.75rem;
|
|
1152
1476
|
gap: 0.2rem;
|
|
1153
1477
|
min-width: 0;
|
|
1478
|
+
overflow-wrap: anywhere;
|
|
1154
1479
|
}
|
|
1155
1480
|
|
|
1156
1481
|
:where([data-domainkit-part="operation-value"]) {
|
|
@@ -1207,12 +1532,50 @@
|
|
|
1207
1532
|
text-align: center;
|
|
1208
1533
|
}
|
|
1209
1534
|
|
|
1535
|
+
/* Glyph and title on one row, the description under the title, the action beside both. */
|
|
1210
1536
|
:where([data-domainkit-part="outcome"][data-layout="inline"]) {
|
|
1211
|
-
align-items:
|
|
1537
|
+
align-items: start;
|
|
1212
1538
|
column-gap: 0.5rem;
|
|
1213
|
-
display:
|
|
1214
|
-
|
|
1215
|
-
row-gap: 0.
|
|
1539
|
+
display: grid;
|
|
1540
|
+
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
1541
|
+
row-gap: 0.15rem;
|
|
1542
|
+
}
|
|
1543
|
+
|
|
1544
|
+
/* The header groups the words for a card; inline puts its parts on the outcome's own grid. */
|
|
1545
|
+
:where(
|
|
1546
|
+
[data-domainkit-part="outcome"][data-layout="inline"] [data-domainkit-part="outcome-header"]
|
|
1547
|
+
) {
|
|
1548
|
+
display: contents;
|
|
1549
|
+
}
|
|
1550
|
+
|
|
1551
|
+
:where(
|
|
1552
|
+
[data-domainkit-part="outcome"][data-layout="inline"] [data-domainkit-part="outcome-media"]
|
|
1553
|
+
) {
|
|
1554
|
+
grid-area: 1 / 1;
|
|
1555
|
+
}
|
|
1556
|
+
|
|
1557
|
+
:where(
|
|
1558
|
+
[data-domainkit-part="outcome"][data-layout="inline"] [data-domainkit-part="outcome-title"]
|
|
1559
|
+
) {
|
|
1560
|
+
grid-area: 1 / 2;
|
|
1561
|
+
}
|
|
1562
|
+
|
|
1563
|
+
:where(
|
|
1564
|
+
[data-domainkit-part="outcome"][data-layout="inline"]
|
|
1565
|
+
[data-domainkit-part="outcome-description"]
|
|
1566
|
+
) {
|
|
1567
|
+
grid-area: 2 / 2;
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1570
|
+
/*
|
|
1571
|
+
* The action sits on the title's row. Spanning the description's row too would hold that row
|
|
1572
|
+
* open where an outcome has no description, and leave the row's gap under a single line.
|
|
1573
|
+
*/
|
|
1574
|
+
:where(
|
|
1575
|
+
[data-domainkit-part="outcome"][data-layout="inline"] [data-domainkit-part="outcome-content"]
|
|
1576
|
+
) {
|
|
1577
|
+
align-self: start;
|
|
1578
|
+
grid-area: 1 / 3;
|
|
1216
1579
|
}
|
|
1217
1580
|
|
|
1218
1581
|
:where([data-domainkit-part="outcome-header"]) {
|
|
@@ -1274,17 +1637,6 @@
|
|
|
1274
1637
|
gap: 0.5rem;
|
|
1275
1638
|
}
|
|
1276
1639
|
|
|
1277
|
-
:where(
|
|
1278
|
-
[data-domainkit-part="outcome"][data-layout="inline"] [data-domainkit-part="outcome-header"]
|
|
1279
|
-
) {
|
|
1280
|
-
align-items: center;
|
|
1281
|
-
column-gap: 0.5rem;
|
|
1282
|
-
display: flex;
|
|
1283
|
-
flex: 1 1 12rem;
|
|
1284
|
-
flex-wrap: wrap;
|
|
1285
|
-
row-gap: 0.15rem;
|
|
1286
|
-
}
|
|
1287
|
-
|
|
1288
1640
|
:where([data-domainkit-part]:focus-visible) {
|
|
1289
1641
|
outline: 2px solid var(--domainkit-accent);
|
|
1290
1642
|
outline-offset: 2px;
|
|
@@ -1381,14 +1733,23 @@
|
|
|
1381
1733
|
|
|
1382
1734
|
[data-domainkit-part="field-description"] {
|
|
1383
1735
|
align-items: center;
|
|
1736
|
+
border-radius: var(--domainkit-control-radius);
|
|
1384
1737
|
color: var(--domainkit-muted);
|
|
1385
1738
|
display: inline-flex;
|
|
1386
1739
|
font-size: 0.8125rem;
|
|
1387
1740
|
gap: 0.25rem;
|
|
1388
1741
|
justify-self: start;
|
|
1742
|
+
margin-block: var(--domainkit-quiet-lead) var(--domainkit-quiet-trail);
|
|
1743
|
+
margin-inline-start: calc(-1 * var(--domainkit-quiet-inset));
|
|
1744
|
+
padding: var(--domainkit-quiet-pad) var(--domainkit-quiet-inset);
|
|
1389
1745
|
text-decoration: none;
|
|
1390
1746
|
}
|
|
1391
1747
|
|
|
1748
|
+
[data-domainkit-part="field-description"]:hover {
|
|
1749
|
+
background: var(--domainkit-fill);
|
|
1750
|
+
color: var(--domainkit-text);
|
|
1751
|
+
}
|
|
1752
|
+
|
|
1392
1753
|
/* ---------------------------------------------------------------------------------------------
|
|
1393
1754
|
* The disconnected prompt, and the disclosures that keep the dialog to one decision
|
|
1394
1755
|
* ------------------------------------------------------------------------------------------- */
|
|
@@ -1402,57 +1763,39 @@
|
|
|
1402
1763
|
width: 100%;
|
|
1403
1764
|
}
|
|
1404
1765
|
|
|
1766
|
+
/*
|
|
1767
|
+
* The mark beside a name, with the line about it directly under: both cards read the same. Two
|
|
1768
|
+
* explicit rows carry the name and the line, and the mark spans them, so it stands against the
|
|
1769
|
+
* whole identity rather than hanging off the name.
|
|
1770
|
+
*/
|
|
1771
|
+
[data-domainkit-part="connected-identity"],
|
|
1405
1772
|
[data-domainkit-part="host-identity"] {
|
|
1406
|
-
align-items: center;
|
|
1407
1773
|
column-gap: 0.5rem;
|
|
1408
1774
|
display: grid;
|
|
1409
1775
|
grid-template-columns: auto minmax(0, 1fr);
|
|
1776
|
+
grid-template-rows: auto auto;
|
|
1777
|
+
min-width: 0;
|
|
1778
|
+
row-gap: 0;
|
|
1779
|
+
}
|
|
1780
|
+
|
|
1781
|
+
[data-domainkit-part="connected-identity"] > [data-domainkit-part="provider-mark"],
|
|
1782
|
+
[data-domainkit-part="host-identity"] > [data-domainkit-part="provider-mark"] {
|
|
1783
|
+
align-self: center;
|
|
1784
|
+
grid-row: 1 / -1;
|
|
1410
1785
|
}
|
|
1411
1786
|
|
|
1412
1787
|
[data-domainkit-part="host-name"] {
|
|
1413
|
-
font-size:
|
|
1788
|
+
font-size: var(--domainkit-identity-name);
|
|
1414
1789
|
font-weight: 600;
|
|
1415
1790
|
grid-column: 2;
|
|
1791
|
+
line-height: var(--domainkit-identity-leading);
|
|
1416
1792
|
}
|
|
1417
1793
|
|
|
1418
1794
|
[data-domainkit-part="host-statement"] {
|
|
1419
1795
|
color: var(--domainkit-muted);
|
|
1420
|
-
font-size:
|
|
1796
|
+
font-size: var(--domainkit-identity-line);
|
|
1421
1797
|
grid-column: 2;
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
[data-domainkit-part="other-providers"],
|
|
1425
|
-
[data-domainkit-part="more-options"] {
|
|
1426
|
-
display: grid;
|
|
1427
|
-
gap: 0.5rem;
|
|
1428
|
-
}
|
|
1429
|
-
|
|
1430
|
-
[data-domainkit-part="other-providers-trigger"],
|
|
1431
|
-
[data-domainkit-part="more-options-trigger"] {
|
|
1432
|
-
color: var(--domainkit-muted);
|
|
1433
|
-
cursor: pointer;
|
|
1434
|
-
font-size: 0.8125rem;
|
|
1435
|
-
list-style: none;
|
|
1436
|
-
width: fit-content;
|
|
1437
|
-
}
|
|
1438
|
-
|
|
1439
|
-
[data-domainkit-part="other-providers-trigger"]::before,
|
|
1440
|
-
[data-domainkit-part="more-options-trigger"]::before {
|
|
1441
|
-
content: "\25b8";
|
|
1442
|
-
display: inline-block;
|
|
1443
|
-
margin-inline-end: 0.35rem;
|
|
1444
|
-
}
|
|
1445
|
-
|
|
1446
|
-
[data-domainkit-part="other-providers"][open]
|
|
1447
|
-
> [data-domainkit-part="other-providers-trigger"]::before,
|
|
1448
|
-
[data-domainkit-part="more-options"][open]
|
|
1449
|
-
> [data-domainkit-part="more-options-trigger"]::before {
|
|
1450
|
-
transform: rotate(90deg);
|
|
1451
|
-
}
|
|
1452
|
-
|
|
1453
|
-
[data-domainkit-part="other-providers"] {
|
|
1454
|
-
border-top: 1px solid var(--domainkit-border);
|
|
1455
|
-
padding-top: 0.75rem;
|
|
1798
|
+
line-height: var(--domainkit-identity-leading);
|
|
1456
1799
|
}
|
|
1457
1800
|
|
|
1458
1801
|
button[data-domainkit-part="provider-heading"] {
|
|
@@ -1504,10 +1847,12 @@
|
|
|
1504
1847
|
gap: 0.375rem;
|
|
1505
1848
|
}
|
|
1506
1849
|
|
|
1850
|
+
/* A DKIM key is one word wider than the popover; it breaks rather than widening the whole list. */
|
|
1507
1851
|
[data-domainkit-part="observation-expected"] {
|
|
1508
1852
|
color: var(--domainkit-muted);
|
|
1509
1853
|
font-size: 0.8125rem;
|
|
1510
1854
|
margin: 0;
|
|
1855
|
+
overflow-wrap: anywhere;
|
|
1511
1856
|
}
|
|
1512
1857
|
|
|
1513
1858
|
/* The source line above these is a small uppercase label; the values under it are data. */
|