@domainkit/react 0.3.1 → 0.4.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/dist/styles.css CHANGED
@@ -8,9 +8,11 @@
8
8
  ) {
9
9
  --domainkit-accent: #0070f3;
10
10
  --domainkit-accent-contrast: #ffffff;
11
+ --domainkit-backdrop: rgb(15 23 42 / 0.45);
11
12
  --domainkit-background: #ffffff;
12
13
  --domainkit-border: #d4d4d8;
13
14
  --domainkit-danger: #dc2626;
15
+ --domainkit-danger-contrast: #ffffff;
14
16
  --domainkit-fill: #f4f4f5;
15
17
  --domainkit-font-family: ui-sans-serif, system-ui, sans-serif;
16
18
  --domainkit-muted: #52525b;
@@ -20,8 +22,9 @@
20
22
  --domainkit-text: #18181b;
21
23
  --domainkit-control-radius: calc(var(--domainkit-radius) * 0.5);
22
24
  --domainkit-button-raised-glint: rgb(255 255 255 / 0.95);
23
- --domainkit-button-raised-shade: rgb(15 23 42 / 0.1);
24
- --domainkit-button-raised-shadow: 0 1px 2px rgb(15 23 42 / 0.1);
25
+ --domainkit-button-raised-shade: color-mix(in srgb, var(--domainkit-text) 10%, transparent);
26
+ --domainkit-button-raised-shadow: 0 1px 2px
27
+ color-mix(in srgb, var(--domainkit-text) 10%, transparent);
25
28
  color: var(--domainkit-text);
26
29
  color-scheme: light;
27
30
  font-family: var(--domainkit-font-family);
@@ -90,7 +93,10 @@
90
93
  [data-domainkit-part="observe-action"],
91
94
  [data-domainkit-part="cleanup-trigger"],
92
95
  [data-domainkit-part="cleanup-apply"],
96
+ [data-domainkit-part="cleanup-retry"],
93
97
  [data-domainkit-part="disconnect-action"],
98
+ [data-domainkit-part="disconnect-trigger"],
99
+ [data-domainkit-part="actions-trigger"],
94
100
  [data-domainkit-part="token-connect"] button,
95
101
  [data-domainkit-part="copy-action"],
96
102
  [data-domainkit-part="zone-copy"],
@@ -134,7 +140,7 @@
134
140
  );
135
141
  border-color: var(--domainkit-button-edge);
136
142
  box-shadow:
137
- 0 1px 2px rgb(15 23 42 / 0.18),
143
+ 0 1px 2px color-mix(in srgb, var(--domainkit-text) 18%, transparent),
138
144
  inset 0 1px 0 var(--domainkit-button-glint);
139
145
  color: var(--domainkit-accent-contrast);
140
146
  }
@@ -159,13 +165,14 @@
159
165
  var(--domainkit-accent),
160
166
  color-mix(in oklch, var(--domainkit-accent), black 10%)
161
167
  );
162
- box-shadow: inset 0 1px 2px rgb(15 23 42 / 0.28);
168
+ box-shadow: inset 0 1px 2px color-mix(in srgb, var(--domainkit-text) 28%, transparent);
163
169
  }
164
170
 
165
171
  :where(
166
172
  [data-domainkit-part="reuse-connection"],
167
173
  [data-domainkit-part="connection-retry"],
168
174
  [data-domainkit-part="provisioning-retry"],
175
+ [data-domainkit-part="cleanup-retry"],
169
176
  [data-domainkit-part="observe-action"],
170
177
  [data-domainkit-part="zone-copy"],
171
178
  [data-domainkit-part="zone-download"],
@@ -219,9 +226,9 @@
219
226
  );
220
227
  border-color: var(--domainkit-button-edge);
221
228
  box-shadow:
222
- 0 1px 2px rgb(15 23 42 / 0.18),
229
+ 0 1px 2px color-mix(in srgb, var(--domainkit-text) 18%, transparent),
223
230
  inset 0 1px 0 var(--domainkit-button-glint);
224
- color: var(--domainkit-accent-contrast);
231
+ color: var(--domainkit-danger-contrast);
225
232
  }
226
233
 
227
234
  :where([data-domainkit-part="cleanup-apply"]:hover:not(:disabled)) {
@@ -234,7 +241,7 @@
234
241
  var(--domainkit-danger),
235
242
  color-mix(in oklch, var(--domainkit-danger), black 10%)
236
243
  );
237
- box-shadow: inset 0 1px 2px rgb(15 23 42 / 0.28);
244
+ box-shadow: inset 0 1px 2px color-mix(in srgb, var(--domainkit-text) 28%, transparent);
238
245
  }
239
246
 
240
247
  :where([data-domainkit-part="dialog-cancel"], [data-domainkit-part="dialog-close"]) {
@@ -327,7 +334,7 @@
327
334
  }
328
335
 
329
336
  :where([data-domainkit-part="dialog-backdrop"]) {
330
- background: rgb(15 23 42 / 0.45);
337
+ background: var(--domainkit-backdrop);
331
338
  inset: 0;
332
339
  position: fixed;
333
340
  transition: opacity 150ms ease;
@@ -337,7 +344,8 @@
337
344
  :where(
338
345
  [data-domainkit-part="connection-dialog"],
339
346
  [data-domainkit-part="plan-dialog"],
340
- [data-domainkit-part="cleanup-dialog"]
347
+ [data-domainkit-part="cleanup-dialog"],
348
+ [data-domainkit-part="disconnect-dialog"]
341
349
  ) {
342
350
  background: var(--domainkit-background);
343
351
  border: 1px solid var(--domainkit-border);
@@ -370,7 +378,9 @@
370
378
  [data-domainkit-part="plan-dialog"][data-starting-style],
371
379
  [data-domainkit-part="plan-dialog"][data-ending-style],
372
380
  [data-domainkit-part="cleanup-dialog"][data-starting-style],
373
- [data-domainkit-part="cleanup-dialog"][data-ending-style]
381
+ [data-domainkit-part="cleanup-dialog"][data-ending-style],
382
+ [data-domainkit-part="disconnect-dialog"][data-starting-style],
383
+ [data-domainkit-part="disconnect-dialog"][data-ending-style]
374
384
  ) {
375
385
  opacity: 0;
376
386
  transform: translate(-50%, -48%) scale(0.98);
@@ -412,6 +422,35 @@
412
422
  padding: 1rem;
413
423
  }
414
424
 
425
+ :where([data-domainkit-part="provider-authentication"]) {
426
+ display: grid;
427
+ gap: 0.55rem;
428
+ }
429
+
430
+ :where([data-domainkit-part="authentication-separator"]) {
431
+ align-items: center;
432
+ color: var(--domainkit-muted);
433
+ display: grid;
434
+ font-size: 0.75rem;
435
+ gap: 0.75rem;
436
+ grid-template-columns: 1fr auto 1fr;
437
+ line-height: 1;
438
+ padding: 0.15rem 0;
439
+ text-transform: lowercase;
440
+ }
441
+
442
+ :where([data-domainkit-part="authentication-separator"])::before,
443
+ :where([data-domainkit-part="authentication-separator"])::after {
444
+ border-top: 1px solid var(--domainkit-border);
445
+ content: "";
446
+ }
447
+
448
+ :where([data-domainkit-part="dialog-progress"]) {
449
+ color: var(--domainkit-muted);
450
+ margin: 0;
451
+ min-height: 1.4em;
452
+ }
453
+
415
454
  :where([data-domainkit-part="dialog-body"] [data-domainkit-part="oauth-connect"]),
416
455
  :where([data-domainkit-part="dialog-body"] [data-domainkit-part="reuse-connection"]) {
417
456
  width: 100%;
@@ -430,6 +469,7 @@
430
469
  background: var(--domainkit-fill);
431
470
  border: 1px solid var(--domainkit-border);
432
471
  border-radius: var(--domainkit-control-radius);
472
+ box-sizing: border-box;
433
473
  display: inline-flex;
434
474
  flex: none;
435
475
  font-size: 0.75rem;
@@ -506,10 +546,11 @@
506
546
  background: var(--domainkit-background);
507
547
  border: 1px solid var(--domainkit-border);
508
548
  border-radius: var(--domainkit-radius);
509
- display: flex;
510
- flex-wrap: wrap;
549
+ display: grid;
511
550
  gap: 0.75rem 1rem;
551
+ grid-template-columns: minmax(0, 1fr) auto;
512
552
  justify-content: space-between;
553
+ min-height: 4.25rem;
513
554
  padding: 1rem;
514
555
  width: 100%;
515
556
  }
@@ -524,11 +565,96 @@
524
565
  :where([data-domainkit-part="connected-actions"]) {
525
566
  align-items: center;
526
567
  display: flex;
527
- flex-wrap: wrap;
568
+ flex-wrap: nowrap;
528
569
  gap: 0.5rem;
529
570
  margin-left: auto;
530
571
  }
531
572
 
573
+ :where([data-domainkit-part="actions-trigger"]) {
574
+ background: transparent;
575
+ border-color: transparent;
576
+ color: var(--domainkit-muted);
577
+ flex: none;
578
+ font-size: 1.15rem;
579
+ min-height: 2.25rem;
580
+ padding: 0;
581
+ width: 2.25rem;
582
+ }
583
+
584
+ :where(
585
+ [data-domainkit-part="actions-trigger"]:hover:not(:disabled),
586
+ [data-domainkit-part="actions-trigger"][data-popup-open]
587
+ ) {
588
+ background: var(--domainkit-fill);
589
+ color: var(--domainkit-text);
590
+ }
591
+
592
+ :where([data-domainkit-part="actions-menu"]) {
593
+ background: var(--domainkit-background);
594
+ border: 1px solid var(--domainkit-border);
595
+ border-radius: var(--domainkit-control-radius);
596
+ box-shadow: var(--domainkit-shadow);
597
+ color: var(--domainkit-text);
598
+ display: grid;
599
+ min-width: 11rem;
600
+ padding: 0.3rem;
601
+ transform-origin: var(--transform-origin);
602
+ transition:
603
+ opacity 120ms ease,
604
+ transform 120ms ease;
605
+ z-index: 1002;
606
+ }
607
+
608
+ :where(
609
+ [data-domainkit-part="actions-menu"][data-starting-style],
610
+ [data-domainkit-part="actions-menu"][data-ending-style]
611
+ ) {
612
+ opacity: 0;
613
+ transform: scale(0.98);
614
+ }
615
+
616
+ :where([data-domainkit-part="actions-item"]) {
617
+ align-items: center;
618
+ background: transparent;
619
+ border: 0;
620
+ border-radius: calc(var(--domainkit-control-radius) * 0.75);
621
+ cursor: pointer;
622
+ display: flex;
623
+ font: inherit;
624
+ font-size: 0.875rem;
625
+ min-height: 2.25rem;
626
+ outline: none;
627
+ padding: 0.45rem 0.65rem;
628
+ text-align: left;
629
+ width: 100%;
630
+ }
631
+
632
+ :where([data-domainkit-part="actions-item"][data-highlighted]) {
633
+ background: var(--domainkit-fill);
634
+ }
635
+
636
+ :where([data-domainkit-part="actions-item"][data-tone="danger"]) {
637
+ color: var(--domainkit-danger);
638
+ }
639
+
640
+ :where([data-domainkit-part="actions-separator"]) {
641
+ background: var(--domainkit-border);
642
+ height: 1px;
643
+ margin: 0.25rem 0.35rem;
644
+ }
645
+
646
+ @media (max-width: 36rem) {
647
+ :where([data-domainkit-part="connected-card"]) {
648
+ grid-template-columns: minmax(0, 1fr);
649
+ }
650
+
651
+ :where([data-domainkit-part="connected-actions"]) {
652
+ justify-content: space-between;
653
+ margin-left: 0;
654
+ width: 100%;
655
+ }
656
+ }
657
+
532
658
  :where(
533
659
  [data-domainkit-part="provisioning-flow"],
534
660
  [data-domainkit-part="verification-status"],
@@ -541,6 +667,11 @@
541
667
  width: 100%;
542
668
  }
543
669
 
670
+ :where([data-domainkit-part="verification-status"]) {
671
+ display: inline-flex;
672
+ width: auto;
673
+ }
674
+
544
675
  :where(
545
676
  [data-domainkit-part="connected-actions"] > [data-domainkit-part="provisioning-flow"],
546
677
  [data-domainkit-part="connected-actions"] > [data-domainkit-part="verification-status"],
@@ -552,23 +683,124 @@
552
683
 
553
684
  :where([data-domainkit-part="provisioning-flow"] > [data-domainkit-part="records-panel"]),
554
685
  :where([data-domainkit-part="provisioning-flow"] > [data-domainkit-part="flow-outcome"]),
555
- :where([data-domainkit-part="verification-status"] > [data-domainkit-part="observation-list"]),
556
- :where([data-domainkit-part="verification-status"] > p),
557
686
  :where([data-domainkit-part="cleanup-flow"] > [data-domainkit-part="flow-outcome"]) {
558
687
  flex: 1 1 100%;
559
688
  }
560
689
 
690
+ :where([data-domainkit-part="verification-positioner"]) {
691
+ max-width: min(var(--available-width), calc(100vw - 1rem));
692
+ z-index: 1002;
693
+ }
694
+
695
+ :where([data-domainkit-part="verification-popover"]) {
696
+ background: var(--domainkit-background);
697
+ border: 1px solid var(--domainkit-border);
698
+ border-radius: var(--domainkit-control-radius);
699
+ box-shadow: 0 6px 20px color-mix(in srgb, var(--domainkit-text) 12%, transparent);
700
+ box-sizing: border-box;
701
+ color: var(--domainkit-text);
702
+ display: grid;
703
+ gap: 0.625rem;
704
+ max-height: min(20rem, var(--available-height));
705
+ max-width: min(18rem, calc(100vw - 1rem), var(--available-width));
706
+ overflow-x: hidden;
707
+ overflow-y: auto;
708
+ padding: 0.625rem;
709
+ transform-origin: var(--transform-origin);
710
+ transition:
711
+ opacity 120ms ease,
712
+ transform 120ms ease;
713
+ width: 18rem;
714
+ }
715
+
716
+ :where(
717
+ [data-domainkit-part="verification-popover"][data-starting-style],
718
+ [data-domainkit-part="verification-popover"][data-ending-style]
719
+ ) {
720
+ opacity: 0;
721
+ transform: scale(0.98);
722
+ }
723
+
724
+ :where([data-domainkit-part="verification-arrow"]) {
725
+ display: block;
726
+ height: 5px;
727
+ overflow: clip;
728
+ position: relative;
729
+ width: 10px;
730
+ }
731
+
732
+ :where([data-domainkit-part="verification-arrow"])::before {
733
+ background: var(--domainkit-background);
734
+ border: 1px solid var(--domainkit-border);
735
+ box-sizing: border-box;
736
+ content: "";
737
+ display: block;
738
+ height: calc(5px * sqrt(2));
739
+ left: 50%;
740
+ position: absolute;
741
+ width: calc(5px * sqrt(2));
742
+ }
743
+
744
+ :where([data-domainkit-part="verification-arrow"][data-side="bottom"]) {
745
+ top: -5px;
746
+ }
747
+
748
+ :where([data-domainkit-part="verification-arrow"][data-side="bottom"])::before {
749
+ bottom: 0;
750
+ transform: translate(-50%, 50%) rotate(45deg);
751
+ }
752
+
753
+ :where([data-domainkit-part="verification-arrow"][data-side="top"]) {
754
+ bottom: -5px;
755
+ rotate: 180deg;
756
+ }
757
+
758
+ :where([data-domainkit-part="verification-arrow"][data-side="top"])::before {
759
+ bottom: 0;
760
+ transform: translate(-50%, 50%) rotate(45deg);
761
+ }
762
+
763
+ :where([data-domainkit-part="verification-arrow"][data-side="left"]) {
764
+ right: -7px;
765
+ rotate: 90deg;
766
+ }
767
+
768
+ :where([data-domainkit-part="verification-arrow"][data-side="left"])::before,
769
+ :where([data-domainkit-part="verification-arrow"][data-side="right"])::before {
770
+ bottom: 0;
771
+ transform: translate(-50%, 50%) rotate(45deg);
772
+ }
773
+
774
+ :where([data-domainkit-part="verification-arrow"][data-side="right"]) {
775
+ left: -7px;
776
+ rotate: -90deg;
777
+ }
778
+
779
+ :where([data-domainkit-part="verification-progress"]) {
780
+ color: var(--domainkit-muted);
781
+ font-size: 0.8125rem;
782
+ margin: 0;
783
+ }
784
+
561
785
  :where([data-domainkit-part="observation-list"]) {
562
786
  background: var(--domainkit-fill);
563
787
  border: 1px solid var(--domainkit-border);
564
788
  border-radius: var(--domainkit-control-radius);
565
789
  display: grid;
566
- gap: 0.85rem;
567
- max-width: 24rem;
790
+ gap: 0.625rem;
791
+ max-width: 18rem;
568
792
  padding: 0.75rem 0.85rem;
569
793
  width: 100%;
570
794
  }
571
795
 
796
+ :where([data-domainkit-part="verification-popover"] > [data-domainkit-part="observation-list"]) {
797
+ background: transparent;
798
+ border: 0;
799
+ box-sizing: border-box;
800
+ max-width: none;
801
+ padding: 0;
802
+ }
803
+
572
804
  :where([data-domainkit-part="observation-group"]) {
573
805
  display: grid;
574
806
  gap: 0.4rem;
@@ -579,7 +811,7 @@
579
811
  font-size: 0.6875rem;
580
812
  font-weight: 650;
581
813
  letter-spacing: 0.04em;
582
- margin: 0;
814
+ margin: 0 0 0.125rem;
583
815
  text-transform: uppercase;
584
816
  }
585
817
 
@@ -601,7 +833,7 @@
601
833
  display: flex;
602
834
  gap: 0.75rem;
603
835
  justify-content: space-between;
604
- min-height: 1.75rem;
836
+ min-height: 1.5rem;
605
837
  }
606
838
 
607
839
  :where([data-domainkit-part="observation-record"]) {
@@ -850,7 +1082,7 @@
850
1082
  }
851
1083
 
852
1084
  :where([data-domainkit-part="operation-value"]) {
853
- color: var(--domainkit-foreground);
1085
+ color: var(--domainkit-text);
854
1086
  overflow-wrap: anywhere;
855
1087
  white-space: pre-wrap;
856
1088
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@domainkit/react",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Accessible React flows for DomainKit",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@base-ui/react": "^1.7.0",
39
- "domainkit": "^0.3.0",
39
+ "domainkit": "^0.4.0",
40
40
  "scheduler": "0.27.0"
41
41
  },
42
42
  "devDependencies": {