@domainkit/react 0.3.1 → 0.5.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);
@@ -81,8 +84,9 @@
81
84
 
82
85
  :where(
83
86
  [data-domainkit-recipe="connect"],
87
+ [data-domainkit-part="integration-connect"],
84
88
  [data-domainkit-part="oauth-connect"],
85
- [data-domainkit-part="reuse-connection"],
89
+ [data-domainkit-part="attach-target"],
86
90
  [data-domainkit-part="connection-retry"],
87
91
  [data-domainkit-part="plan-trigger"],
88
92
  [data-domainkit-part="plan-apply"],
@@ -90,7 +94,10 @@
90
94
  [data-domainkit-part="observe-action"],
91
95
  [data-domainkit-part="cleanup-trigger"],
92
96
  [data-domainkit-part="cleanup-apply"],
97
+ [data-domainkit-part="cleanup-retry"],
93
98
  [data-domainkit-part="disconnect-action"],
99
+ [data-domainkit-part="disconnect-trigger"],
100
+ [data-domainkit-part="actions-trigger"],
94
101
  [data-domainkit-part="token-connect"] button,
95
102
  [data-domainkit-part="copy-action"],
96
103
  [data-domainkit-part="zone-copy"],
@@ -119,6 +126,7 @@
119
126
 
120
127
  :where(
121
128
  [data-domainkit-recipe="connect"],
129
+ [data-domainkit-part="integration-connect"],
122
130
  [data-domainkit-part="oauth-connect"],
123
131
  [data-domainkit-part="plan-trigger"],
124
132
  [data-domainkit-part="plan-apply"]
@@ -134,13 +142,14 @@
134
142
  );
135
143
  border-color: var(--domainkit-button-edge);
136
144
  box-shadow:
137
- 0 1px 2px rgb(15 23 42 / 0.18),
145
+ 0 1px 2px color-mix(in srgb, var(--domainkit-text) 18%, transparent),
138
146
  inset 0 1px 0 var(--domainkit-button-glint);
139
147
  color: var(--domainkit-accent-contrast);
140
148
  }
141
149
 
142
150
  :where(
143
151
  [data-domainkit-recipe="connect"]:hover:not(:disabled),
152
+ [data-domainkit-part="integration-connect"]:hover:not(:disabled),
144
153
  [data-domainkit-part="oauth-connect"]:hover:not(:disabled),
145
154
  [data-domainkit-part="plan-trigger"]:hover:not(:disabled),
146
155
  [data-domainkit-part="plan-apply"]:hover:not(:disabled)
@@ -150,6 +159,7 @@
150
159
 
151
160
  :where(
152
161
  [data-domainkit-recipe="connect"]:active:not(:disabled),
162
+ [data-domainkit-part="integration-connect"]:active:not(:disabled),
153
163
  [data-domainkit-part="oauth-connect"]:active:not(:disabled),
154
164
  [data-domainkit-part="plan-trigger"]:active:not(:disabled),
155
165
  [data-domainkit-part="plan-apply"]:active:not(:disabled)
@@ -159,13 +169,14 @@
159
169
  var(--domainkit-accent),
160
170
  color-mix(in oklch, var(--domainkit-accent), black 10%)
161
171
  );
162
- box-shadow: inset 0 1px 2px rgb(15 23 42 / 0.28);
172
+ box-shadow: inset 0 1px 2px color-mix(in srgb, var(--domainkit-text) 28%, transparent);
163
173
  }
164
174
 
165
175
  :where(
166
- [data-domainkit-part="reuse-connection"],
176
+ [data-domainkit-part="attach-target"],
167
177
  [data-domainkit-part="connection-retry"],
168
178
  [data-domainkit-part="provisioning-retry"],
179
+ [data-domainkit-part="cleanup-retry"],
169
180
  [data-domainkit-part="observe-action"],
170
181
  [data-domainkit-part="zone-copy"],
171
182
  [data-domainkit-part="zone-download"],
@@ -181,7 +192,7 @@
181
192
  }
182
193
 
183
194
  :where(
184
- [data-domainkit-part="reuse-connection"]:hover:not(:disabled),
195
+ [data-domainkit-part="attach-target"]:hover:not(:disabled),
185
196
  [data-domainkit-part="connection-retry"]:hover:not(:disabled),
186
197
  [data-domainkit-part="provisioning-retry"]:hover:not(:disabled),
187
198
  [data-domainkit-part="observe-action"]:hover:not(:disabled),
@@ -219,9 +230,9 @@
219
230
  );
220
231
  border-color: var(--domainkit-button-edge);
221
232
  box-shadow:
222
- 0 1px 2px rgb(15 23 42 / 0.18),
233
+ 0 1px 2px color-mix(in srgb, var(--domainkit-text) 18%, transparent),
223
234
  inset 0 1px 0 var(--domainkit-button-glint);
224
- color: var(--domainkit-accent-contrast);
235
+ color: var(--domainkit-danger-contrast);
225
236
  }
226
237
 
227
238
  :where([data-domainkit-part="cleanup-apply"]:hover:not(:disabled)) {
@@ -234,7 +245,7 @@
234
245
  var(--domainkit-danger),
235
246
  color-mix(in oklch, var(--domainkit-danger), black 10%)
236
247
  );
237
- box-shadow: inset 0 1px 2px rgb(15 23 42 / 0.28);
248
+ box-shadow: inset 0 1px 2px color-mix(in srgb, var(--domainkit-text) 28%, transparent);
238
249
  }
239
250
 
240
251
  :where([data-domainkit-part="dialog-cancel"], [data-domainkit-part="dialog-close"]) {
@@ -327,7 +338,7 @@
327
338
  }
328
339
 
329
340
  :where([data-domainkit-part="dialog-backdrop"]) {
330
- background: rgb(15 23 42 / 0.45);
341
+ background: var(--domainkit-backdrop);
331
342
  inset: 0;
332
343
  position: fixed;
333
344
  transition: opacity 150ms ease;
@@ -337,7 +348,8 @@
337
348
  :where(
338
349
  [data-domainkit-part="connection-dialog"],
339
350
  [data-domainkit-part="plan-dialog"],
340
- [data-domainkit-part="cleanup-dialog"]
351
+ [data-domainkit-part="cleanup-dialog"],
352
+ [data-domainkit-part="disconnect-dialog"]
341
353
  ) {
342
354
  background: var(--domainkit-background);
343
355
  border: 1px solid var(--domainkit-border);
@@ -370,7 +382,9 @@
370
382
  [data-domainkit-part="plan-dialog"][data-starting-style],
371
383
  [data-domainkit-part="plan-dialog"][data-ending-style],
372
384
  [data-domainkit-part="cleanup-dialog"][data-starting-style],
373
- [data-domainkit-part="cleanup-dialog"][data-ending-style]
385
+ [data-domainkit-part="cleanup-dialog"][data-ending-style],
386
+ [data-domainkit-part="disconnect-dialog"][data-starting-style],
387
+ [data-domainkit-part="disconnect-dialog"][data-ending-style]
374
388
  ) {
375
389
  opacity: 0;
376
390
  transform: translate(-50%, -48%) scale(0.98);
@@ -412,11 +426,80 @@
412
426
  padding: 1rem;
413
427
  }
414
428
 
415
- :where([data-domainkit-part="dialog-body"] [data-domainkit-part="oauth-connect"]),
416
- :where([data-domainkit-part="dialog-body"] [data-domainkit-part="reuse-connection"]) {
429
+ :where([data-domainkit-part="provider-authentication"]) {
430
+ display: grid;
431
+ gap: 0.55rem;
432
+ }
433
+
434
+ :where([data-domainkit-part="authentication-separator"]) {
435
+ align-items: center;
436
+ color: var(--domainkit-muted);
437
+ display: grid;
438
+ font-size: 0.75rem;
439
+ gap: 0.75rem;
440
+ grid-template-columns: 1fr auto 1fr;
441
+ line-height: 1;
442
+ padding: 0.15rem 0;
443
+ text-transform: lowercase;
444
+ }
445
+
446
+ :where([data-domainkit-part="authentication-separator"])::before,
447
+ :where([data-domainkit-part="authentication-separator"])::after {
448
+ border-top: 1px solid var(--domainkit-border);
449
+ content: "";
450
+ }
451
+
452
+ :where([data-domainkit-part="dialog-progress"]) {
453
+ color: var(--domainkit-muted);
454
+ margin: 0;
455
+ min-height: 1.4em;
456
+ }
457
+
458
+ :where(
459
+ [data-domainkit-part="dialog-body"] [data-domainkit-part="oauth-connect"],
460
+ [data-domainkit-part="dialog-body"] [data-domainkit-part="integration-connect"],
461
+ [data-domainkit-part="dialog-body"] [data-domainkit-part="attach-target"]
462
+ ) {
417
463
  width: 100%;
418
464
  }
419
465
 
466
+ :where([data-domainkit-part="reusable-connection"]) {
467
+ background: var(--domainkit-fill);
468
+ border: 1px solid var(--domainkit-border);
469
+ border-radius: var(--domainkit-control-radius);
470
+ display: grid;
471
+ gap: 0.55rem;
472
+ padding: 0.7rem;
473
+ }
474
+
475
+ :where([data-domainkit-part="reusable-connection-heading"]) {
476
+ align-items: baseline;
477
+ display: flex;
478
+ gap: 0.5rem;
479
+ justify-content: space-between;
480
+ }
481
+
482
+ :where([data-domainkit-part="reusable-connection-heading"] strong) {
483
+ font-size: 0.8125rem;
484
+ font-weight: 600;
485
+ }
486
+
487
+ :where([data-domainkit-part="reusable-connection-heading"] span) {
488
+ color: var(--domainkit-muted);
489
+ font-size: 0.6875rem;
490
+ }
491
+
492
+ :where([data-domainkit-part="target-list"]) {
493
+ display: grid;
494
+ gap: 0.45rem;
495
+ }
496
+
497
+ :where([data-domainkit-part="target-unavailable"]) {
498
+ color: var(--domainkit-muted);
499
+ font-size: 0.8125rem;
500
+ margin: 0;
501
+ }
502
+
420
503
  :where([data-domainkit-part="dialog-footer"]) {
421
504
  border-top: 1px solid var(--domainkit-border);
422
505
  display: flex;
@@ -430,6 +513,7 @@
430
513
  background: var(--domainkit-fill);
431
514
  border: 1px solid var(--domainkit-border);
432
515
  border-radius: var(--domainkit-control-radius);
516
+ box-sizing: border-box;
433
517
  display: inline-flex;
434
518
  flex: none;
435
519
  font-size: 0.75rem;
@@ -506,10 +590,11 @@
506
590
  background: var(--domainkit-background);
507
591
  border: 1px solid var(--domainkit-border);
508
592
  border-radius: var(--domainkit-radius);
509
- display: flex;
510
- flex-wrap: wrap;
593
+ display: grid;
511
594
  gap: 0.75rem 1rem;
595
+ grid-template-columns: minmax(0, 1fr) auto;
512
596
  justify-content: space-between;
597
+ min-height: 4.25rem;
513
598
  padding: 1rem;
514
599
  width: 100%;
515
600
  }
@@ -524,11 +609,96 @@
524
609
  :where([data-domainkit-part="connected-actions"]) {
525
610
  align-items: center;
526
611
  display: flex;
527
- flex-wrap: wrap;
612
+ flex-wrap: nowrap;
528
613
  gap: 0.5rem;
529
614
  margin-left: auto;
530
615
  }
531
616
 
617
+ :where([data-domainkit-part="actions-trigger"]) {
618
+ background: transparent;
619
+ border-color: transparent;
620
+ color: var(--domainkit-muted);
621
+ flex: none;
622
+ font-size: 1.15rem;
623
+ min-height: 2.25rem;
624
+ padding: 0;
625
+ width: 2.25rem;
626
+ }
627
+
628
+ :where(
629
+ [data-domainkit-part="actions-trigger"]:hover:not(:disabled),
630
+ [data-domainkit-part="actions-trigger"][data-popup-open]
631
+ ) {
632
+ background: var(--domainkit-fill);
633
+ color: var(--domainkit-text);
634
+ }
635
+
636
+ :where([data-domainkit-part="actions-menu"]) {
637
+ background: var(--domainkit-background);
638
+ border: 1px solid var(--domainkit-border);
639
+ border-radius: var(--domainkit-control-radius);
640
+ box-shadow: var(--domainkit-shadow);
641
+ color: var(--domainkit-text);
642
+ display: grid;
643
+ min-width: 11rem;
644
+ padding: 0.3rem;
645
+ transform-origin: var(--transform-origin);
646
+ transition:
647
+ opacity 120ms ease,
648
+ transform 120ms ease;
649
+ z-index: 1002;
650
+ }
651
+
652
+ :where(
653
+ [data-domainkit-part="actions-menu"][data-starting-style],
654
+ [data-domainkit-part="actions-menu"][data-ending-style]
655
+ ) {
656
+ opacity: 0;
657
+ transform: scale(0.98);
658
+ }
659
+
660
+ :where([data-domainkit-part="actions-item"]) {
661
+ align-items: center;
662
+ background: transparent;
663
+ border: 0;
664
+ border-radius: calc(var(--domainkit-control-radius) * 0.75);
665
+ cursor: pointer;
666
+ display: flex;
667
+ font: inherit;
668
+ font-size: 0.875rem;
669
+ min-height: 2.25rem;
670
+ outline: none;
671
+ padding: 0.45rem 0.65rem;
672
+ text-align: left;
673
+ width: 100%;
674
+ }
675
+
676
+ :where([data-domainkit-part="actions-item"][data-highlighted]) {
677
+ background: var(--domainkit-fill);
678
+ }
679
+
680
+ :where([data-domainkit-part="actions-item"][data-tone="danger"]) {
681
+ color: var(--domainkit-danger);
682
+ }
683
+
684
+ :where([data-domainkit-part="actions-separator"]) {
685
+ background: var(--domainkit-border);
686
+ height: 1px;
687
+ margin: 0.25rem 0.35rem;
688
+ }
689
+
690
+ @media (max-width: 36rem) {
691
+ :where([data-domainkit-part="connected-card"]) {
692
+ grid-template-columns: minmax(0, 1fr);
693
+ }
694
+
695
+ :where([data-domainkit-part="connected-actions"]) {
696
+ justify-content: space-between;
697
+ margin-left: 0;
698
+ width: 100%;
699
+ }
700
+ }
701
+
532
702
  :where(
533
703
  [data-domainkit-part="provisioning-flow"],
534
704
  [data-domainkit-part="verification-status"],
@@ -541,6 +711,11 @@
541
711
  width: 100%;
542
712
  }
543
713
 
714
+ :where([data-domainkit-part="verification-status"]) {
715
+ display: inline-flex;
716
+ width: auto;
717
+ }
718
+
544
719
  :where(
545
720
  [data-domainkit-part="connected-actions"] > [data-domainkit-part="provisioning-flow"],
546
721
  [data-domainkit-part="connected-actions"] > [data-domainkit-part="verification-status"],
@@ -552,23 +727,124 @@
552
727
 
553
728
  :where([data-domainkit-part="provisioning-flow"] > [data-domainkit-part="records-panel"]),
554
729
  :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
730
  :where([data-domainkit-part="cleanup-flow"] > [data-domainkit-part="flow-outcome"]) {
558
731
  flex: 1 1 100%;
559
732
  }
560
733
 
734
+ :where([data-domainkit-part="verification-positioner"]) {
735
+ max-width: min(var(--available-width), calc(100vw - 1rem));
736
+ z-index: 1002;
737
+ }
738
+
739
+ :where([data-domainkit-part="verification-popover"]) {
740
+ background: var(--domainkit-background);
741
+ border: 1px solid var(--domainkit-border);
742
+ border-radius: var(--domainkit-control-radius);
743
+ box-shadow: 0 6px 20px color-mix(in srgb, var(--domainkit-text) 12%, transparent);
744
+ box-sizing: border-box;
745
+ color: var(--domainkit-text);
746
+ display: grid;
747
+ gap: 0.625rem;
748
+ max-height: min(20rem, var(--available-height));
749
+ max-width: min(18rem, calc(100vw - 1rem), var(--available-width));
750
+ overflow-x: hidden;
751
+ overflow-y: auto;
752
+ padding: 0.625rem;
753
+ transform-origin: var(--transform-origin);
754
+ transition:
755
+ opacity 120ms ease,
756
+ transform 120ms ease;
757
+ width: 18rem;
758
+ }
759
+
760
+ :where(
761
+ [data-domainkit-part="verification-popover"][data-starting-style],
762
+ [data-domainkit-part="verification-popover"][data-ending-style]
763
+ ) {
764
+ opacity: 0;
765
+ transform: scale(0.98);
766
+ }
767
+
768
+ :where([data-domainkit-part="verification-arrow"]) {
769
+ display: block;
770
+ height: 5px;
771
+ overflow: clip;
772
+ position: relative;
773
+ width: 10px;
774
+ }
775
+
776
+ :where([data-domainkit-part="verification-arrow"])::before {
777
+ background: var(--domainkit-background);
778
+ border: 1px solid var(--domainkit-border);
779
+ box-sizing: border-box;
780
+ content: "";
781
+ display: block;
782
+ height: calc(5px * sqrt(2));
783
+ left: 50%;
784
+ position: absolute;
785
+ width: calc(5px * sqrt(2));
786
+ }
787
+
788
+ :where([data-domainkit-part="verification-arrow"][data-side="bottom"]) {
789
+ top: -5px;
790
+ }
791
+
792
+ :where([data-domainkit-part="verification-arrow"][data-side="bottom"])::before {
793
+ bottom: 0;
794
+ transform: translate(-50%, 50%) rotate(45deg);
795
+ }
796
+
797
+ :where([data-domainkit-part="verification-arrow"][data-side="top"]) {
798
+ bottom: -5px;
799
+ rotate: 180deg;
800
+ }
801
+
802
+ :where([data-domainkit-part="verification-arrow"][data-side="top"])::before {
803
+ bottom: 0;
804
+ transform: translate(-50%, 50%) rotate(45deg);
805
+ }
806
+
807
+ :where([data-domainkit-part="verification-arrow"][data-side="left"]) {
808
+ right: -7px;
809
+ rotate: 90deg;
810
+ }
811
+
812
+ :where([data-domainkit-part="verification-arrow"][data-side="left"])::before,
813
+ :where([data-domainkit-part="verification-arrow"][data-side="right"])::before {
814
+ bottom: 0;
815
+ transform: translate(-50%, 50%) rotate(45deg);
816
+ }
817
+
818
+ :where([data-domainkit-part="verification-arrow"][data-side="right"]) {
819
+ left: -7px;
820
+ rotate: -90deg;
821
+ }
822
+
823
+ :where([data-domainkit-part="verification-progress"]) {
824
+ color: var(--domainkit-muted);
825
+ font-size: 0.8125rem;
826
+ margin: 0;
827
+ }
828
+
561
829
  :where([data-domainkit-part="observation-list"]) {
562
830
  background: var(--domainkit-fill);
563
831
  border: 1px solid var(--domainkit-border);
564
832
  border-radius: var(--domainkit-control-radius);
565
833
  display: grid;
566
- gap: 0.85rem;
567
- max-width: 24rem;
834
+ gap: 0.625rem;
835
+ max-width: 18rem;
568
836
  padding: 0.75rem 0.85rem;
569
837
  width: 100%;
570
838
  }
571
839
 
840
+ :where([data-domainkit-part="verification-popover"] > [data-domainkit-part="observation-list"]) {
841
+ background: transparent;
842
+ border: 0;
843
+ box-sizing: border-box;
844
+ max-width: none;
845
+ padding: 0;
846
+ }
847
+
572
848
  :where([data-domainkit-part="observation-group"]) {
573
849
  display: grid;
574
850
  gap: 0.4rem;
@@ -579,7 +855,7 @@
579
855
  font-size: 0.6875rem;
580
856
  font-weight: 650;
581
857
  letter-spacing: 0.04em;
582
- margin: 0;
858
+ margin: 0 0 0.125rem;
583
859
  text-transform: uppercase;
584
860
  }
585
861
 
@@ -601,7 +877,7 @@
601
877
  display: flex;
602
878
  gap: 0.75rem;
603
879
  justify-content: space-between;
604
- min-height: 1.75rem;
880
+ min-height: 1.5rem;
605
881
  }
606
882
 
607
883
  :where([data-domainkit-part="observation-record"]) {
@@ -850,7 +1126,7 @@
850
1126
  }
851
1127
 
852
1128
  :where([data-domainkit-part="operation-value"]) {
853
- color: var(--domainkit-foreground);
1129
+ color: var(--domainkit-text);
854
1130
  overflow-wrap: anywhere;
855
1131
  white-space: pre-wrap;
856
1132
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@domainkit/react",
3
- "version": "0.3.1",
3
+ "version": "0.5.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.5.0",
40
40
  "scheduler": "0.27.0"
41
41
  },
42
42
  "devDependencies": {