@domainkit/react 0.9.1 → 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 +52 -4
- package/dist/index.d.mts +333 -50
- package/dist/index.mjs +1121 -248
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +580 -50
- package/package.json +2 -2
package/dist/styles.css
CHANGED
|
@@ -26,7 +26,40 @@
|
|
|
26
26
|
--domainkit-shadow: 0 16px 40px rgb(15 23 42 / 0.12);
|
|
27
27
|
--domainkit-success: #059669;
|
|
28
28
|
--domainkit-text: #18181b;
|
|
29
|
+
--domainkit-warning: #b45309;
|
|
29
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;
|
|
30
63
|
--domainkit-button-raised-glint: rgb(255 255 255 / 0.95);
|
|
31
64
|
--domainkit-button-raised-shade: color-mix(in srgb, var(--domainkit-text) 10%, transparent);
|
|
32
65
|
--domainkit-button-raised-shadow: 0 1px 2px
|
|
@@ -43,6 +76,7 @@
|
|
|
43
76
|
--domainkit-muted: #a1a1aa;
|
|
44
77
|
--domainkit-shadow: 0 16px 40px rgb(0 0 0 / 0.4);
|
|
45
78
|
--domainkit-success: #34d399;
|
|
79
|
+
--domainkit-warning: #fbbf24;
|
|
46
80
|
--domainkit-text: #fafafa;
|
|
47
81
|
--domainkit-button-raised-glint: rgb(255 255 255 / 0.14);
|
|
48
82
|
--domainkit-button-raised-shade: rgb(0 0 0 / 0.42);
|
|
@@ -58,6 +92,7 @@
|
|
|
58
92
|
--domainkit-muted: #a1a1aa;
|
|
59
93
|
--domainkit-shadow: 0 16px 40px rgb(0 0 0 / 0.4);
|
|
60
94
|
--domainkit-success: #34d399;
|
|
95
|
+
--domainkit-warning: #fbbf24;
|
|
61
96
|
--domainkit-text: #fafafa;
|
|
62
97
|
--domainkit-button-raised-glint: rgb(255 255 255 / 0.14);
|
|
63
98
|
--domainkit-button-raised-shade: rgb(0 0 0 / 0.42);
|
|
@@ -102,6 +137,11 @@
|
|
|
102
137
|
[data-domainkit-part="cleanup-apply"],
|
|
103
138
|
[data-domainkit-part="cleanup-retry"],
|
|
104
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"],
|
|
105
145
|
[data-domainkit-part="disconnect-trigger"],
|
|
106
146
|
[data-domainkit-part="actions-trigger"],
|
|
107
147
|
[data-domainkit-part="token-connect"] button,
|
|
@@ -234,7 +274,7 @@
|
|
|
234
274
|
background: color-mix(in srgb, var(--domainkit-danger) 8%, transparent);
|
|
235
275
|
}
|
|
236
276
|
|
|
237
|
-
:where([data-domainkit-part="cleanup-apply"]) {
|
|
277
|
+
:where([data-domainkit-part="cleanup-apply"], [data-domainkit-part="disconnect-confirm"]) {
|
|
238
278
|
--domainkit-button-face: color-mix(in oklch, var(--domainkit-danger), white 22%);
|
|
239
279
|
--domainkit-button-glint: color-mix(in oklch, var(--domainkit-danger), white 42%);
|
|
240
280
|
--domainkit-button-edge: color-mix(in oklch, var(--domainkit-danger), black 18%);
|
|
@@ -251,11 +291,17 @@
|
|
|
251
291
|
color: var(--domainkit-danger-contrast);
|
|
252
292
|
}
|
|
253
293
|
|
|
254
|
-
:where(
|
|
294
|
+
:where(
|
|
295
|
+
[data-domainkit-part="cleanup-apply"]:hover:not(:disabled),
|
|
296
|
+
[data-domainkit-part="disconnect-confirm"]:hover:not(:disabled)
|
|
297
|
+
) {
|
|
255
298
|
--domainkit-button-face: color-mix(in oklch, var(--domainkit-danger), white 28%);
|
|
256
299
|
}
|
|
257
300
|
|
|
258
|
-
:where(
|
|
301
|
+
:where(
|
|
302
|
+
[data-domainkit-part="cleanup-apply"]:active:not(:disabled),
|
|
303
|
+
[data-domainkit-part="disconnect-confirm"]:active:not(:disabled)
|
|
304
|
+
) {
|
|
259
305
|
background-image: linear-gradient(
|
|
260
306
|
to bottom,
|
|
261
307
|
var(--domainkit-danger),
|
|
@@ -264,6 +310,158 @@
|
|
|
264
310
|
box-shadow: inset 0 1px 2px color-mix(in srgb, var(--domainkit-text) 28%, transparent);
|
|
265
311
|
}
|
|
266
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
|
+
|
|
267
465
|
:where([data-domainkit-part="dialog-cancel"], [data-domainkit-part="dialog-close"]) {
|
|
268
466
|
background: transparent;
|
|
269
467
|
border-color: transparent;
|
|
@@ -356,6 +554,7 @@
|
|
|
356
554
|
:where([data-domainkit-part="dialog-backdrop"]) {
|
|
357
555
|
background: var(--domainkit-backdrop);
|
|
358
556
|
inset: 0;
|
|
557
|
+
opacity: 1;
|
|
359
558
|
position: fixed;
|
|
360
559
|
transition: opacity 150ms ease;
|
|
361
560
|
z-index: 1000;
|
|
@@ -386,12 +585,42 @@
|
|
|
386
585
|
transition:
|
|
387
586
|
opacity 150ms ease,
|
|
388
587
|
transform 150ms ease;
|
|
389
|
-
width:
|
|
588
|
+
width: var(--domainkit-dialog-width);
|
|
390
589
|
z-index: 1001;
|
|
391
590
|
}
|
|
392
591
|
|
|
393
|
-
|
|
394
|
-
|
|
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;
|
|
395
624
|
}
|
|
396
625
|
|
|
397
626
|
:where(
|
|
@@ -416,6 +645,14 @@
|
|
|
416
645
|
padding: 1rem 1rem 0.85rem;
|
|
417
646
|
}
|
|
418
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
|
+
|
|
419
656
|
:where([data-domainkit-part="dialog-heading"]) {
|
|
420
657
|
display: grid;
|
|
421
658
|
flex: 1;
|
|
@@ -518,6 +755,91 @@
|
|
|
518
755
|
margin: 0;
|
|
519
756
|
}
|
|
520
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
|
+
|
|
521
843
|
:where([data-domainkit-part="dialog-footer"]) {
|
|
522
844
|
border-top: 1px solid var(--domainkit-border);
|
|
523
845
|
display: flex;
|
|
@@ -526,6 +848,8 @@
|
|
|
526
848
|
padding: 0.75rem 1rem;
|
|
527
849
|
}
|
|
528
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. */
|
|
529
853
|
:where([data-domainkit-part="provider-mark"]) {
|
|
530
854
|
align-items: center;
|
|
531
855
|
background: var(--domainkit-fill);
|
|
@@ -534,12 +858,12 @@
|
|
|
534
858
|
box-sizing: border-box;
|
|
535
859
|
display: inline-flex;
|
|
536
860
|
flex: none;
|
|
537
|
-
font-size: 0.
|
|
861
|
+
font-size: 0.8125rem;
|
|
538
862
|
font-weight: 600;
|
|
539
|
-
height:
|
|
863
|
+
height: var(--domainkit-mark-size);
|
|
540
864
|
justify-content: center;
|
|
541
865
|
overflow: hidden;
|
|
542
|
-
width:
|
|
866
|
+
width: var(--domainkit-mark-size);
|
|
543
867
|
}
|
|
544
868
|
|
|
545
869
|
:where([data-domainkit-part="provider-mark"] img),
|
|
@@ -550,18 +874,6 @@
|
|
|
550
874
|
width: 100%;
|
|
551
875
|
}
|
|
552
876
|
|
|
553
|
-
:where([data-domainkit-recipe="connect"]) {
|
|
554
|
-
gap: 0.45rem;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
:where([data-domainkit-recipe="connect"] [data-domainkit-part="provider-mark"]) {
|
|
558
|
-
background: var(--domainkit-accent-contrast);
|
|
559
|
-
border-color: color-mix(in oklch, var(--domainkit-accent) 18%, transparent);
|
|
560
|
-
font-size: 0.625rem;
|
|
561
|
-
height: 1.25rem;
|
|
562
|
-
width: 1.25rem;
|
|
563
|
-
}
|
|
564
|
-
|
|
565
877
|
:where([data-domainkit-part="provider-mark"][data-domainkit-provider="vercel"]) {
|
|
566
878
|
border-color: transparent;
|
|
567
879
|
}
|
|
@@ -572,10 +884,10 @@
|
|
|
572
884
|
border-radius: var(--domainkit-control-radius);
|
|
573
885
|
display: grid;
|
|
574
886
|
gap: 0.65rem;
|
|
575
|
-
padding:
|
|
887
|
+
padding: var(--domainkit-panel-pad);
|
|
576
888
|
}
|
|
577
889
|
|
|
578
|
-
:where([data-domainkit-part="token-connect"] label) {
|
|
890
|
+
:where([data-domainkit-part="token-connect"] [data-domainkit-part="field-label"]) {
|
|
579
891
|
color: var(--domainkit-muted);
|
|
580
892
|
display: grid;
|
|
581
893
|
font-size: 0.8125rem;
|
|
@@ -607,27 +919,27 @@
|
|
|
607
919
|
width: 100%;
|
|
608
920
|
}
|
|
609
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
|
+
|
|
610
934
|
:where([data-domainkit-part="connected-card"]) {
|
|
611
935
|
align-items: center;
|
|
612
|
-
|
|
613
|
-
border: 1px solid var(--domainkit-border);
|
|
614
|
-
border-radius: var(--domainkit-radius);
|
|
936
|
+
column-gap: 1rem;
|
|
615
937
|
display: grid;
|
|
616
|
-
gap: 0.75rem 1rem;
|
|
617
938
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
618
939
|
justify-content: space-between;
|
|
619
|
-
min-height: 4.25rem;
|
|
620
|
-
padding: 1rem;
|
|
621
940
|
width: 100%;
|
|
622
941
|
}
|
|
623
942
|
|
|
624
|
-
:where([data-domainkit-part="connected-identity"]) {
|
|
625
|
-
align-items: center;
|
|
626
|
-
display: flex;
|
|
627
|
-
gap: 0.75rem;
|
|
628
|
-
min-width: 0;
|
|
629
|
-
}
|
|
630
|
-
|
|
631
943
|
:where([data-domainkit-part="connected-actions"]) {
|
|
632
944
|
align-items: center;
|
|
633
945
|
display: flex;
|
|
@@ -748,8 +1060,8 @@
|
|
|
748
1060
|
}
|
|
749
1061
|
|
|
750
1062
|
:where([data-domainkit-part="provisioning-flow"] > [data-domainkit-part="records-panel"]),
|
|
751
|
-
:where([data-domainkit-part="provisioning-flow"] > [data-domainkit-part="
|
|
752
|
-
:where([data-domainkit-part="cleanup-flow"] > [data-domainkit-part="
|
|
1063
|
+
:where([data-domainkit-part="provisioning-flow"] > [data-domainkit-part="outcome"]),
|
|
1064
|
+
:where([data-domainkit-part="cleanup-flow"] > [data-domainkit-part="outcome"]) {
|
|
753
1065
|
flex: 1 1 100%;
|
|
754
1066
|
}
|
|
755
1067
|
|
|
@@ -902,10 +1214,13 @@
|
|
|
902
1214
|
min-height: 1.5rem;
|
|
903
1215
|
}
|
|
904
1216
|
|
|
1217
|
+
/* A record name longer than the popover wraps inside its own cell; the status keeps the row. */
|
|
905
1218
|
:where([data-domainkit-part="observation-record"]) {
|
|
906
1219
|
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
907
1220
|
font-size: 0.75rem;
|
|
908
1221
|
font-weight: 600;
|
|
1222
|
+
min-width: 0;
|
|
1223
|
+
overflow-wrap: anywhere;
|
|
909
1224
|
}
|
|
910
1225
|
|
|
911
1226
|
:where([data-domainkit-part="observation-note"]) {
|
|
@@ -1054,12 +1369,23 @@
|
|
|
1054
1369
|
font-size: 0.6875rem;
|
|
1055
1370
|
}
|
|
1056
1371
|
|
|
1372
|
+
/* Glyph and word are one badge: a narrow status column breaks the line, not the badge. */
|
|
1057
1373
|
:where([data-domainkit-part="record-status"]) {
|
|
1374
|
+
align-items: center;
|
|
1058
1375
|
border-radius: 999px;
|
|
1376
|
+
display: inline-flex;
|
|
1059
1377
|
font-size: 0.6875rem;
|
|
1060
1378
|
font-weight: 600;
|
|
1379
|
+
gap: 0.25rem;
|
|
1061
1380
|
letter-spacing: 0.02em;
|
|
1062
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;
|
|
1063
1389
|
}
|
|
1064
1390
|
|
|
1065
1391
|
:where([data-domainkit-part="record-status"][data-status="Found"]) {
|
|
@@ -1141,6 +1467,7 @@
|
|
|
1141
1467
|
color: var(--domainkit-muted);
|
|
1142
1468
|
}
|
|
1143
1469
|
|
|
1470
|
+
/* A record name is longer than a dialog is wide; it wraps rather than running off the row. */
|
|
1144
1471
|
:where([data-domainkit-part="operation-record"]) {
|
|
1145
1472
|
color: var(--domainkit-muted);
|
|
1146
1473
|
display: grid;
|
|
@@ -1148,6 +1475,7 @@
|
|
|
1148
1475
|
font-size: 0.75rem;
|
|
1149
1476
|
gap: 0.2rem;
|
|
1150
1477
|
min-width: 0;
|
|
1478
|
+
overflow-wrap: anywhere;
|
|
1151
1479
|
}
|
|
1152
1480
|
|
|
1153
1481
|
:where([data-domainkit-part="operation-value"]) {
|
|
@@ -1175,18 +1503,138 @@
|
|
|
1175
1503
|
gap: 0.5rem;
|
|
1176
1504
|
}
|
|
1177
1505
|
|
|
1178
|
-
|
|
1506
|
+
/* -------------------------------------------------------------------------------------------
|
|
1507
|
+
* Outcome: media, title, description, and the action, in a card or on one line
|
|
1508
|
+
* ----------------------------------------------------------------------------------------- */
|
|
1509
|
+
|
|
1510
|
+
:where([data-domainkit-part="outcome"]) {
|
|
1511
|
+
--domainkit-outcome-tone: var(--domainkit-danger);
|
|
1512
|
+
color: var(--domainkit-text);
|
|
1179
1513
|
font-size: 0.875rem;
|
|
1180
|
-
margin: 0;
|
|
1181
1514
|
width: 100%;
|
|
1182
1515
|
}
|
|
1183
1516
|
|
|
1184
|
-
:where([data-domainkit-part="
|
|
1185
|
-
|
|
1517
|
+
:where([data-domainkit-part="outcome"][data-tone="success"]) {
|
|
1518
|
+
--domainkit-outcome-tone: var(--domainkit-success);
|
|
1186
1519
|
}
|
|
1187
1520
|
|
|
1188
|
-
:where([data-domainkit-part="
|
|
1189
|
-
|
|
1521
|
+
:where([data-domainkit-part="outcome"][data-tone="warning"]) {
|
|
1522
|
+
--domainkit-outcome-tone: var(--domainkit-warning);
|
|
1523
|
+
}
|
|
1524
|
+
|
|
1525
|
+
:where([data-domainkit-part="outcome"][data-layout="card"]) {
|
|
1526
|
+
border: 1px dashed color-mix(in srgb, var(--domainkit-outcome-tone) 45%, transparent);
|
|
1527
|
+
border-radius: var(--domainkit-radius);
|
|
1528
|
+
display: grid;
|
|
1529
|
+
gap: 0.75rem;
|
|
1530
|
+
justify-items: center;
|
|
1531
|
+
padding: 1.25rem 1rem;
|
|
1532
|
+
text-align: center;
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1535
|
+
/* Glyph and title on one row, the description under the title, the action beside both. */
|
|
1536
|
+
:where([data-domainkit-part="outcome"][data-layout="inline"]) {
|
|
1537
|
+
align-items: start;
|
|
1538
|
+
column-gap: 0.5rem;
|
|
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;
|
|
1579
|
+
}
|
|
1580
|
+
|
|
1581
|
+
:where([data-domainkit-part="outcome-header"]) {
|
|
1582
|
+
display: grid;
|
|
1583
|
+
gap: 0.25rem;
|
|
1584
|
+
justify-items: inherit;
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1587
|
+
:where(
|
|
1588
|
+
[data-domainkit-part="outcome"][data-layout="card"] [data-domainkit-part="outcome-header"]
|
|
1589
|
+
) {
|
|
1590
|
+
gap: 0.35rem;
|
|
1591
|
+
max-width: 26rem;
|
|
1592
|
+
}
|
|
1593
|
+
|
|
1594
|
+
:where([data-domainkit-part="outcome-media"]) {
|
|
1595
|
+
align-items: center;
|
|
1596
|
+
color: var(--domainkit-outcome-tone);
|
|
1597
|
+
display: inline-flex;
|
|
1598
|
+
justify-content: center;
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1601
|
+
:where([data-domainkit-part="outcome-media"] svg) {
|
|
1602
|
+
height: 1.25rem;
|
|
1603
|
+
width: 1.25rem;
|
|
1604
|
+
}
|
|
1605
|
+
|
|
1606
|
+
:where([data-domainkit-part="outcome-media"][data-variant="icon"]) {
|
|
1607
|
+
background: color-mix(in srgb, var(--domainkit-outcome-tone) 12%, transparent);
|
|
1608
|
+
border-radius: var(--domainkit-control-radius);
|
|
1609
|
+
height: 2.25rem;
|
|
1610
|
+
width: 2.25rem;
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
:where(
|
|
1614
|
+
[data-domainkit-part="outcome"][data-layout="inline"]
|
|
1615
|
+
[data-domainkit-part="outcome-media"][data-variant="icon"]
|
|
1616
|
+
) {
|
|
1617
|
+
background: none;
|
|
1618
|
+
height: 1.25rem;
|
|
1619
|
+
width: 1.25rem;
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1622
|
+
:where([data-domainkit-part="outcome-title"]) {
|
|
1623
|
+
color: var(--domainkit-text);
|
|
1624
|
+
font-size: 0.875rem;
|
|
1625
|
+
font-weight: 600;
|
|
1626
|
+
}
|
|
1627
|
+
|
|
1628
|
+
:where([data-domainkit-part="outcome-description"]) {
|
|
1629
|
+
color: var(--domainkit-muted);
|
|
1630
|
+
font-size: 0.8125rem;
|
|
1631
|
+
margin: 0;
|
|
1632
|
+
}
|
|
1633
|
+
|
|
1634
|
+
:where([data-domainkit-part="outcome-content"]) {
|
|
1635
|
+
display: flex;
|
|
1636
|
+
flex-wrap: wrap;
|
|
1637
|
+
gap: 0.5rem;
|
|
1190
1638
|
}
|
|
1191
1639
|
|
|
1192
1640
|
:where([data-domainkit-part]:focus-visible) {
|
|
@@ -1235,12 +1683,17 @@
|
|
|
1235
1683
|
gap: 0.5rem;
|
|
1236
1684
|
}
|
|
1237
1685
|
|
|
1238
|
-
[data-domainkit-part="
|
|
1686
|
+
[data-domainkit-part="field"] {
|
|
1239
1687
|
display: grid;
|
|
1240
1688
|
gap: 0.25rem;
|
|
1241
1689
|
}
|
|
1242
1690
|
|
|
1243
|
-
[data-domainkit-part="
|
|
1691
|
+
[data-domainkit-part="field"][data-orientation="horizontal"] {
|
|
1692
|
+
align-items: center;
|
|
1693
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
1694
|
+
}
|
|
1695
|
+
|
|
1696
|
+
[data-domainkit-part="field-label"] {
|
|
1244
1697
|
align-items: baseline;
|
|
1245
1698
|
color: var(--domainkit-muted);
|
|
1246
1699
|
display: flex;
|
|
@@ -1248,12 +1701,12 @@
|
|
|
1248
1701
|
gap: 0.375rem;
|
|
1249
1702
|
}
|
|
1250
1703
|
|
|
1251
|
-
[data-domainkit-part="
|
|
1704
|
+
[data-domainkit-part="field-optional"] {
|
|
1252
1705
|
font-size: 0.75rem;
|
|
1253
1706
|
opacity: 0.8;
|
|
1254
1707
|
}
|
|
1255
1708
|
|
|
1256
|
-
[data-domainkit-part="
|
|
1709
|
+
[data-domainkit-part="field-input"] {
|
|
1257
1710
|
background-color: var(--domainkit-background);
|
|
1258
1711
|
border: 1px solid var(--domainkit-border);
|
|
1259
1712
|
border-radius: var(--domainkit-control-radius);
|
|
@@ -1264,21 +1717,96 @@
|
|
|
1264
1717
|
width: 100%;
|
|
1265
1718
|
}
|
|
1266
1719
|
|
|
1267
|
-
[data-domainkit-part="
|
|
1720
|
+
[data-domainkit-part="field-input"]:focus-visible {
|
|
1268
1721
|
border-color: var(--domainkit-accent);
|
|
1269
1722
|
outline: none;
|
|
1270
1723
|
}
|
|
1271
1724
|
|
|
1272
|
-
[data-domainkit-part="
|
|
1725
|
+
[data-domainkit-part="field-input"][aria-invalid="true"] {
|
|
1726
|
+
border-color: var(--domainkit-danger);
|
|
1727
|
+
}
|
|
1728
|
+
|
|
1729
|
+
[data-domainkit-part="field-error"] {
|
|
1730
|
+
display: grid;
|
|
1731
|
+
gap: 0.25rem;
|
|
1732
|
+
}
|
|
1733
|
+
|
|
1734
|
+
[data-domainkit-part="field-description"] {
|
|
1273
1735
|
align-items: center;
|
|
1736
|
+
border-radius: var(--domainkit-control-radius);
|
|
1274
1737
|
color: var(--domainkit-muted);
|
|
1275
1738
|
display: inline-flex;
|
|
1276
1739
|
font-size: 0.8125rem;
|
|
1277
1740
|
gap: 0.25rem;
|
|
1278
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);
|
|
1279
1745
|
text-decoration: none;
|
|
1280
1746
|
}
|
|
1281
1747
|
|
|
1748
|
+
[data-domainkit-part="field-description"]:hover {
|
|
1749
|
+
background: var(--domainkit-fill);
|
|
1750
|
+
color: var(--domainkit-text);
|
|
1751
|
+
}
|
|
1752
|
+
|
|
1753
|
+
/* ---------------------------------------------------------------------------------------------
|
|
1754
|
+
* The disconnected prompt, and the disclosures that keep the dialog to one decision
|
|
1755
|
+
* ------------------------------------------------------------------------------------------- */
|
|
1756
|
+
|
|
1757
|
+
[data-domainkit-part="connect-prompt"] {
|
|
1758
|
+
align-items: center;
|
|
1759
|
+
display: flex;
|
|
1760
|
+
flex-wrap: wrap;
|
|
1761
|
+
gap: 0.75rem;
|
|
1762
|
+
justify-content: space-between;
|
|
1763
|
+
width: 100%;
|
|
1764
|
+
}
|
|
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"],
|
|
1772
|
+
[data-domainkit-part="host-identity"] {
|
|
1773
|
+
column-gap: 0.5rem;
|
|
1774
|
+
display: grid;
|
|
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;
|
|
1785
|
+
}
|
|
1786
|
+
|
|
1787
|
+
[data-domainkit-part="host-name"] {
|
|
1788
|
+
font-size: var(--domainkit-identity-name);
|
|
1789
|
+
font-weight: 600;
|
|
1790
|
+
grid-column: 2;
|
|
1791
|
+
line-height: var(--domainkit-identity-leading);
|
|
1792
|
+
}
|
|
1793
|
+
|
|
1794
|
+
[data-domainkit-part="host-statement"] {
|
|
1795
|
+
color: var(--domainkit-muted);
|
|
1796
|
+
font-size: var(--domainkit-identity-line);
|
|
1797
|
+
grid-column: 2;
|
|
1798
|
+
line-height: var(--domainkit-identity-leading);
|
|
1799
|
+
}
|
|
1800
|
+
|
|
1801
|
+
button[data-domainkit-part="provider-heading"] {
|
|
1802
|
+
background: none;
|
|
1803
|
+
border: 0;
|
|
1804
|
+
cursor: pointer;
|
|
1805
|
+
padding: 0;
|
|
1806
|
+
text-align: start;
|
|
1807
|
+
width: 100%;
|
|
1808
|
+
}
|
|
1809
|
+
|
|
1282
1810
|
[data-domainkit-part="discovery-resolved"],
|
|
1283
1811
|
[data-domainkit-part="discovery-candidates"] {
|
|
1284
1812
|
display: grid;
|
|
@@ -1319,10 +1847,12 @@
|
|
|
1319
1847
|
gap: 0.375rem;
|
|
1320
1848
|
}
|
|
1321
1849
|
|
|
1850
|
+
/* A DKIM key is one word wider than the popover; it breaks rather than widening the whole list. */
|
|
1322
1851
|
[data-domainkit-part="observation-expected"] {
|
|
1323
1852
|
color: var(--domainkit-muted);
|
|
1324
1853
|
font-size: 0.8125rem;
|
|
1325
1854
|
margin: 0;
|
|
1855
|
+
overflow-wrap: anywhere;
|
|
1326
1856
|
}
|
|
1327
1857
|
|
|
1328
1858
|
/* The source line above these is a small uppercase label; the values under it are data. */
|