@lockerverse/react 0.2.41 → 0.2.43

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
@@ -98,15 +98,11 @@
98
98
 
99
99
  .lockerverse-payment__form,
100
100
  .lockerverse-payment__contact,
101
- .lockerverse-payment__tip,
102
101
  .lockerverse-payment__additional-fields,
103
- .lockerverse-payment__custom-fields,
104
102
  .lockerverse-payment__address,
105
103
  .lockerverse-payment__shipping,
106
104
  .lockerverse-payment__actions,
107
- .lockerverse-payment__stripe-element,
108
- .lockerverse-payment label,
109
- .lockerverse-payment__field {
105
+ .lockerverse-payment__stripe-element {
110
106
  display: grid;
111
107
  }
112
108
 
@@ -114,43 +110,24 @@
114
110
  gap: 16px;
115
111
  }
116
112
 
117
- .lockerverse-payment__tip {
118
- gap: 10px;
119
- padding: 12px;
120
- background: color-mix(in srgb, var(--lockerverse-control) 88%, transparent);
121
- border: 1px solid var(--lockerverse-subtle);
122
- border-radius: var(--lockerverse-radius);
123
- }
124
-
125
- .lockerverse-payment__tip > strong {
126
- padding-bottom: 2px;
127
- font-size: 15px;
128
- font-weight: 600;
129
- }
130
-
131
- .lockerverse-payment__tip > div[role="radiogroup"] {
113
+ .lockerverse-payment__input-fieldset {
132
114
  display: grid;
133
- grid-template-columns: repeat(5, minmax(0, 1fr));
134
- gap: 6px;
135
- }
136
-
137
- .lockerverse-payment__money-input {
138
- position: relative;
115
+ gap: 16px;
116
+ min-width: 0;
117
+ padding: 0;
118
+ margin: 0;
119
+ border: 0;
139
120
  }
140
121
 
141
- .lockerverse-payment__money-input > span {
142
- position: absolute;
143
- top: 50%;
144
- left: 13px;
145
- z-index: 1;
146
- color: var(--lockerverse-placeholder);
147
- pointer-events: none;
148
- transform: translateY(-50%);
122
+ .lockerverse-payment [data-lockerverse-input-region][inert] {
123
+ opacity: 0.72;
149
124
  }
150
125
 
151
- .lockerverse-payment__money-input
152
- input:not([type="checkbox"]):not([type="radio"]) {
153
- padding-left: 28px;
126
+ .lockerverse-payment__payment-status {
127
+ margin: 0;
128
+ font-size: 14px;
129
+ color: var(--lockerverse-muted);
130
+ outline: none;
154
131
  }
155
132
 
156
133
  .lockerverse-payment__contact {
@@ -164,7 +141,6 @@
164
141
  }
165
142
 
166
143
  .lockerverse-payment__additional-fields,
167
- .lockerverse-payment__custom-fields,
168
144
  .lockerverse-payment__shipping,
169
145
  .lockerverse-payment__actions {
170
146
  gap: 16px;
@@ -175,10 +151,25 @@
175
151
  gap: 12px;
176
152
  }
177
153
 
178
- .lockerverse-payment label,
179
- .lockerverse-payment fieldset,
180
- .lockerverse-payment__field {
181
- gap: 8px;
154
+ .lockerverse-payment__stripe-mount {
155
+ visibility: visible;
156
+ min-width: 0;
157
+ opacity: 1;
158
+ transition: opacity 120ms ease;
159
+ }
160
+
161
+ .lockerverse-payment__stripe-element[data-ready="false"] {
162
+ position: relative;
163
+ }
164
+
165
+ .lockerverse-payment__stripe-element[data-ready="false"]
166
+ > .lockerverse-payment__stripe-mount {
167
+ position: absolute;
168
+ inset: 0;
169
+ z-index: -1;
170
+ visibility: hidden;
171
+ pointer-events: none;
172
+ opacity: 0;
182
173
  }
183
174
 
184
175
  .lockerverse-payment__actions {
@@ -186,8 +177,15 @@
186
177
  margin-top: 4px;
187
178
  }
188
179
 
180
+ .lockerverse-payment label:not(.lockerverse-payment__check-row),
181
+ .lockerverse-payment__field,
182
+ .lockerverse-payment fieldset {
183
+ display: grid;
184
+ gap: 8px;
185
+ }
186
+
189
187
  .lockerverse-payment label > span,
190
- .lockerverse-payment__field > span,
188
+ .lockerverse-payment .lockerverse-payment__field > span,
191
189
  .lockerverse-payment legend,
192
190
  .lockerverse-payment h2 {
193
191
  font-size: 14px;
@@ -197,23 +195,16 @@
197
195
  }
198
196
 
199
197
  .lockerverse-payment h2 {
200
- font-size: 15px;
201
198
  font-weight: 600;
202
- line-height: 20px;
203
199
  color: var(--lockerverse-text);
204
200
  }
205
201
 
206
202
  .lockerverse-payment fieldset {
207
- display: grid;
208
203
  padding: 0;
209
204
  margin: 0;
210
205
  border: 0;
211
206
  }
212
207
 
213
- .lockerverse-payment legend {
214
- margin-bottom: 8px;
215
- }
216
-
217
208
  .lockerverse-payment input:not([type="checkbox"]):not([type="radio"]),
218
209
  .lockerverse-payment select,
219
210
  .lockerverse-payment textarea {
@@ -337,7 +328,6 @@
337
328
  line-height: 1.5;
338
329
  color: var(--lockerverse-text);
339
330
  text-align: left;
340
- white-space: nowrap;
341
331
  cursor: pointer;
342
332
  background: var(--lockerverse-control);
343
333
  border: 1px solid var(--lockerverse-border);
@@ -511,23 +501,8 @@
511
501
  color: var(--lockerverse-accent);
512
502
  }
513
503
 
514
- .lockerverse-payment__choice {
504
+ .lockerverse-payment__check-row {
515
505
  display: flex;
516
- grid-template-columns: none;
517
- gap: 9px;
518
- align-items: center;
519
- }
520
-
521
- .lockerverse-payment__choice input {
522
- flex: 0 0 auto;
523
- width: 20px;
524
- height: 20px;
525
- accent-color: var(--lockerverse-accent);
526
- }
527
-
528
- .lockerverse-payment .lockerverse-payment__check-row {
529
- display: flex;
530
- grid-template-columns: none;
531
506
  gap: 12px;
532
507
  align-items: center;
533
508
  min-height: 28px;
@@ -538,12 +513,6 @@
538
513
  color: color-mix(in srgb, var(--lockerverse-text) 86%, transparent);
539
514
  }
540
515
 
541
- .lockerverse-payment .lockerverse-payment__check-row > span {
542
- font-size: 15px;
543
- font-weight: 500;
544
- line-height: 1.35;
545
- }
546
-
547
516
  .lockerverse-payment__check-row input {
548
517
  display: grid;
549
518
  flex: 0 0 auto;
@@ -583,109 +552,123 @@
583
552
  transform: translateY(-1px) rotate(-45deg) scale(1);
584
553
  }
585
554
 
586
- .lockerverse-payment__check-row input:focus-visible {
587
- outline: none;
588
- box-shadow: 0 0 0 2px
589
- color-mix(in srgb, var(--lockerverse-accent) 24%, transparent);
555
+ .lockerverse-payment__check-row input[type="radio"] {
556
+ border-radius: 50%;
590
557
  }
591
558
 
592
- .lockerverse-payment button:where(:not([role="combobox"])) {
593
- min-height: 44px;
594
- padding: 10px 16px;
595
- font: inherit;
596
- font-weight: 650;
597
- color: var(--lockerverse-accent-contrast);
598
- cursor: pointer;
599
- background: var(--lockerverse-accent);
600
- border: 1px solid transparent;
601
- border-radius: var(--lockerverse-radius);
559
+ .lockerverse-payment__check-row input[type="radio"]::before {
560
+ width: 10px;
561
+ height: 10px;
562
+ background: currentcolor;
563
+ border: 0;
564
+ border-radius: 50%;
565
+ transform: scale(0.6);
602
566
  }
603
567
 
604
- .lockerverse-payment button[type="submit"] {
605
- width: 100%;
606
- min-height: 48px;
607
- padding: 12px;
608
- font-size: 14px;
609
- font-weight: 600;
610
- line-height: 1.25;
611
- box-shadow: 0 14px 34px rgb(0 0 0 / 34%);
612
- transition:
613
- filter 140ms ease,
614
- transform 140ms ease;
568
+ .lockerverse-payment__check-row input[type="radio"]:checked::before {
569
+ transform: scale(1);
615
570
  }
616
571
 
617
- .lockerverse-payment button[type="submit"]:hover {
618
- filter: brightness(1.06);
572
+ .lockerverse-payment__tip-box {
573
+ display: grid;
574
+ gap: 10px;
575
+ padding: 12px;
576
+ background: var(--lockerverse-subtle);
577
+ border: 1px solid var(--lockerverse-subtle);
578
+ border-radius: var(--lockerverse-radius);
619
579
  }
620
580
 
621
- .lockerverse-payment button[type="submit"]:active {
622
- transform: translateY(1px);
581
+ .lockerverse-payment__tip-box > p {
582
+ padding-bottom: 8px;
583
+ font-size: 14px;
584
+ font-weight: 600;
623
585
  }
624
586
 
625
- .lockerverse-payment button:disabled {
626
- cursor: wait;
627
- opacity: 0.72;
587
+ .lockerverse-payment__tip-box [role="radiogroup"] {
588
+ display: grid;
589
+ grid-template-columns: repeat(5, minmax(0, 1fr));
590
+ gap: 6px;
628
591
  }
629
592
 
630
- .lockerverse-payment__additional-fields button {
631
- color: var(--lockerverse-text);
632
- background: transparent;
633
- border-color: var(--lockerverse-border);
593
+ .lockerverse-payment__tip-choice {
594
+ position: relative;
595
+ min-width: 0;
634
596
  }
635
597
 
636
- .lockerverse-payment__payment-status button {
637
- margin-top: 12px;
598
+ .lockerverse-payment__tip-choice input {
599
+ position: absolute;
600
+ width: 1px;
601
+ height: 1px;
602
+ opacity: 0;
638
603
  }
639
604
 
640
- .lockerverse-payment__tip > div[role="radiogroup"] button {
641
- min-width: 0;
642
- min-height: 38px;
605
+ .lockerverse-payment .lockerverse-payment__tip-choice > span {
606
+ display: grid;
607
+ place-items: center;
608
+ min-height: 40px;
643
609
  padding: 8px 4px;
610
+ font: inherit;
644
611
  font-size: 14px;
612
+ font-weight: 600;
645
613
  color: var(--lockerverse-muted);
646
- background: color-mix(in srgb, var(--lockerverse-bg) 68%, transparent);
647
- border-color: var(--lockerverse-subtle);
614
+ cursor: pointer;
615
+ background: color-mix(in srgb, var(--lockerverse-bg) 28%, transparent);
616
+ border: 1px solid color-mix(in srgb, var(--lockerverse-text) 9%, transparent);
617
+ border-radius: var(--lockerverse-radius);
618
+ transition:
619
+ background-color 140ms ease,
620
+ border-color 140ms ease,
621
+ color 140ms ease,
622
+ transform 140ms ease;
623
+ }
624
+
625
+ .lockerverse-payment__tip-choice:hover span {
626
+ color: var(--lockerverse-text);
627
+ background: var(--lockerverse-control);
628
+ }
629
+
630
+ .lockerverse-payment__tip-choice:active span {
631
+ transform: translateY(1px);
648
632
  }
649
633
 
650
- .lockerverse-payment__tip > div[role="radiogroup"] button[aria-pressed="true"] {
634
+ .lockerverse-payment__tip-choice input:checked + span {
651
635
  color: var(--lockerverse-accent-contrast);
652
636
  background: var(--lockerverse-accent);
653
637
  border-color: var(--lockerverse-accent);
654
638
  }
655
639
 
656
- .lockerverse-payment__payment-status,
657
- .lockerverse-payment [role="alert"] {
658
- font-size: 14px;
659
- color: var(--lockerverse-danger);
660
- }
661
-
662
- .lockerverse-payment__stripe-element[hidden] {
663
- position: absolute;
664
- width: 1px;
665
- height: 1px;
666
- overflow: hidden;
667
- clip-path: inset(50%);
640
+ .lockerverse-payment__tip-choice input:focus-visible + span {
641
+ outline: none;
642
+ border-color: var(--lockerverse-accent);
643
+ box-shadow: 0 0 0 1px var(--lockerverse-accent);
668
644
  }
669
645
 
670
- .lockerverse-payment__stripe-mount {
671
- visibility: visible;
672
- min-width: 0;
673
- opacity: 1;
674
- transition: opacity 120ms ease;
646
+ .lockerverse-payment__tip-box
647
+ [role="radiogroup"]
648
+ .lockerverse-payment__tip-choice:hover
649
+ input:checked
650
+ + span {
651
+ color: var(--lockerverse-accent-contrast);
652
+ background: var(--lockerverse-accent);
675
653
  }
676
654
 
677
- .lockerverse-payment__stripe-element[data-ready="false"] {
655
+ .lockerverse-payment__money-input {
678
656
  position: relative;
657
+ display: block;
679
658
  }
680
659
 
681
- .lockerverse-payment__stripe-element[data-ready="false"]
682
- > .lockerverse-payment__stripe-mount {
660
+ .lockerverse-payment .lockerverse-payment__money-input > span {
683
661
  position: absolute;
684
- inset: 0;
685
- z-index: -1;
686
- visibility: hidden;
662
+ top: 50%;
663
+ left: 13px;
664
+ z-index: 1;
665
+ color: var(--lockerverse-muted);
687
666
  pointer-events: none;
688
- opacity: 0;
667
+ transform: translateY(-50%);
668
+ }
669
+
670
+ .lockerverse-payment__money-input input {
671
+ padding-left: 28px !important;
689
672
  }
690
673
 
691
674
  .lockerverse-payment__stripe-loader {
@@ -720,8 +703,16 @@
720
703
  background: color-mix(in srgb, var(--lockerverse-text) 6%, transparent);
721
704
  }
722
705
 
723
- .lockerverse-payment__loading {
724
- min-height: 420px;
706
+ .lockerverse-payment__sr-only {
707
+ position: absolute;
708
+ width: 1px;
709
+ height: 1px;
710
+ padding: 0;
711
+ margin: -1px;
712
+ overflow: hidden;
713
+ white-space: nowrap;
714
+ border: 0;
715
+ clip: rect(0, 0, 0, 0);
725
716
  }
726
717
 
727
718
  .lockerverse-payment__skeleton {
@@ -735,23 +726,6 @@
735
726
  align-items: center;
736
727
  }
737
728
 
738
- .lockerverse-payment__skeleton-contact,
739
- .lockerverse-payment__skeleton-field,
740
- .lockerverse-payment__skeleton-loader-content,
741
- .lockerverse-payment__skeleton-actions {
742
- display: grid;
743
- }
744
-
745
- .lockerverse-payment__skeleton-contact {
746
- gap: 12px;
747
- padding-top: 14px;
748
- border-top: 1px solid var(--lockerverse-subtle);
749
- }
750
-
751
- .lockerverse-payment__skeleton-field {
752
- gap: 8px;
753
- }
754
-
755
729
  .lockerverse-payment__skeleton-avatar,
756
730
  .lockerverse-payment__skeleton-community,
757
731
  .lockerverse-payment__skeleton-label,
@@ -779,22 +753,30 @@
779
753
  border-radius: 4px;
780
754
  }
781
755
 
756
+ .lockerverse-payment__skeleton-contact {
757
+ display: grid;
758
+ gap: 12px;
759
+ padding-top: 14px;
760
+ border-top: 1px solid var(--lockerverse-subtle);
761
+ }
762
+
763
+ .lockerverse-payment__skeleton-field {
764
+ display: grid;
765
+ gap: 8px;
766
+ }
767
+
782
768
  .lockerverse-payment__skeleton-label {
783
769
  width: 48px;
784
770
  height: 16px;
785
771
  border-radius: 4px;
786
772
  }
787
773
 
788
- .lockerverse-payment__skeleton-input,
789
- .lockerverse-payment__skeleton-button {
774
+ .lockerverse-payment__skeleton-input {
790
775
  width: 100%;
791
776
  height: 48px;
792
- border-radius: var(--lockerverse-radius);
793
- }
794
-
795
- .lockerverse-payment__skeleton-input {
796
777
  background: var(--lockerverse-control);
797
778
  border: 1px solid var(--lockerverse-subtle);
779
+ border-radius: var(--lockerverse-radius);
798
780
  }
799
781
 
800
782
  .lockerverse-payment__skeleton-loader-block {
@@ -811,7 +793,7 @@
811
793
  }
812
794
 
813
795
  .lockerverse-payment__skeleton-loader-content {
814
- grid-template-columns: repeat(2, minmax(0, 1fr));
796
+ display: grid;
815
797
  gap: 8px;
816
798
  margin-top: 12px;
817
799
  }
@@ -823,15 +805,21 @@
823
805
  }
824
806
 
825
807
  .lockerverse-payment__skeleton-loader-full {
826
- grid-column: 1 / -1;
827
808
  background: color-mix(in srgb, var(--lockerverse-text) 6%, transparent);
828
809
  }
829
810
 
811
+ .lockerverse-payment__skeleton-loader-grid {
812
+ display: grid;
813
+ grid-template-columns: repeat(2, minmax(0, 1fr));
814
+ gap: 8px;
815
+ }
816
+
830
817
  .lockerverse-payment__skeleton-loader-half {
831
818
  background: color-mix(in srgb, var(--lockerverse-text) 4.5%, transparent);
832
819
  }
833
820
 
834
821
  .lockerverse-payment__skeleton-actions {
822
+ display: grid;
835
823
  gap: 16px;
836
824
  padding: 20px 0 4px;
837
825
  }
@@ -843,19 +831,54 @@
843
831
  }
844
832
 
845
833
  .lockerverse-payment__skeleton-button {
834
+ width: 100%;
835
+ height: 48px;
846
836
  background: color-mix(in srgb, var(--lockerverse-text) 12%, transparent);
837
+ border-radius: var(--lockerverse-radius);
847
838
  }
848
839
 
849
- .lockerverse-payment__sr-only {
850
- position: absolute;
851
- width: 1px;
852
- height: 1px;
853
- padding: 0;
854
- margin: -1px;
855
- overflow: hidden;
856
- white-space: nowrap;
840
+ .lockerverse-payment button[type="submit"] {
841
+ width: 100%;
842
+ min-height: 48px;
843
+ padding: 12px;
844
+ font: inherit;
845
+ font-size: 14px;
846
+ font-weight: 600;
847
+ line-height: 1.25;
848
+ color: var(--lockerverse-accent-contrast);
849
+ cursor: pointer;
850
+ background: var(--lockerverse-accent);
857
851
  border: 0;
858
- clip: rect(0, 0, 0, 0);
852
+ border-radius: var(--lockerverse-radius);
853
+ box-shadow: 0 14px 34px rgb(0 0 0 / 34%);
854
+ transition:
855
+ filter 140ms ease,
856
+ transform 140ms ease;
857
+ }
858
+
859
+ .lockerverse-payment button[type="submit"]:hover {
860
+ filter: brightness(1.06);
861
+ }
862
+
863
+ .lockerverse-payment button[type="submit"]:active {
864
+ transform: translateY(1px);
865
+ }
866
+
867
+ .lockerverse-payment button:disabled {
868
+ cursor: wait;
869
+ opacity: 0.72;
870
+ }
871
+
872
+ .lockerverse-payment [role="alert"],
873
+ .lockerverse-payment [id$="-error"] {
874
+ font-size: 12px;
875
+ font-weight: 500;
876
+ line-height: 1.35;
877
+ color: var(--lockerverse-danger);
878
+ }
879
+
880
+ .lockerverse-payment__field-message:empty {
881
+ display: none;
859
882
  }
860
883
 
861
884
  @keyframes lockerverse-pulse {
@@ -864,6 +887,26 @@
864
887
  }
865
888
  }
866
889
 
890
+ @container (max-width: 360px) {
891
+ .lockerverse-payment__phone-control {
892
+ grid-template-columns: 78px minmax(0, 1fr);
893
+ }
894
+
895
+ .lockerverse-payment__tip-box [role="radiogroup"] {
896
+ grid-template-columns: repeat(6, minmax(0, 1fr));
897
+ }
898
+
899
+ .lockerverse-payment__tip-choice {
900
+ grid-column: span 2;
901
+ }
902
+
903
+ .lockerverse-payment__tip-box
904
+ [role="radiogroup"]
905
+ .lockerverse-payment__tip-choice:nth-last-child(-n + 2) {
906
+ grid-column: span 3;
907
+ }
908
+ }
909
+
867
910
  @media (prefers-reduced-motion: reduce) {
868
911
  .lockerverse-payment *,
869
912
  .lockerverse-payment *::before,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lockerverse/react",
3
- "version": "0.2.41",
3
+ "version": "0.2.43",
4
4
  "description": "React payment UI for Lockerverse",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,7 +31,7 @@
31
31
  "dependencies": {
32
32
  "@base-ui/react": "1.6.0",
33
33
  "valibot": "1.4.2",
34
- "@lockerverse/sdk": "0.2.41"
34
+ "@lockerverse/sdk": "0.2.43"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@size-limit/file": "13.0.3",
@@ -63,7 +63,7 @@
63
63
  "size-limit": [
64
64
  {
65
65
  "name": "React payment UI",
66
- "limit": "10 kB",
66
+ "limit": "9.25 kB",
67
67
  "path": "dist/index.js"
68
68
  },
69
69
  {