@lockerverse/react 0.2.23 → 0.2.25

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
@@ -1,21 +1,24 @@
1
1
  .lockerverse-payment {
2
2
  --lockerverse-accent: #38d77a;
3
- --lockerverse-accent-contrast: #08110c;
3
+ --lockerverse-accent-contrast: #000;
4
4
  --lockerverse-bg: #080808;
5
- --lockerverse-border: rgb(255 255 255 / 14%);
6
- --lockerverse-control: #151515;
5
+ --lockerverse-border: rgb(255 255 255 / 12%);
6
+ --lockerverse-control: #121212;
7
7
  --lockerverse-danger: #f08a98;
8
+ --lockerverse-danger-border: #8f3542;
8
9
  --lockerverse-font-family:
9
10
  ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
10
11
  sans-serif;
11
12
  --lockerverse-muted: rgb(255 255 255 / 64%);
12
- --lockerverse-placeholder: rgb(255 255 255 / 38%);
13
+ --lockerverse-placeholder: rgb(255 255 255 / 34%);
13
14
  --lockerverse-radius: 10px;
15
+ --lockerverse-subtle: rgb(255 255 255 / 8%);
14
16
  --lockerverse-text: #fff;
15
17
  box-sizing: border-box;
16
18
  width: 100%;
17
19
  max-width: 480px;
18
- padding: 20px;
20
+ padding: clamp(16px, 4.2%, 20px);
21
+ container-type: inline-size;
19
22
  font-family: var(--lockerverse-font-family);
20
23
  font-size: 15px;
21
24
  line-height: 1.4;
@@ -26,11 +29,13 @@
26
29
 
27
30
  .lockerverse-payment[data-lockerverse-theme="light"] {
28
31
  --lockerverse-bg: #fff;
29
- --lockerverse-border: rgb(18 20 22 / 15%);
30
- --lockerverse-control: #f4f5f6;
32
+ --lockerverse-border: rgb(18 20 22 / 14%);
33
+ --lockerverse-control: #f5f6f7;
31
34
  --lockerverse-danger: #c52b3e;
35
+ --lockerverse-danger-border: #b64656;
32
36
  --lockerverse-muted: rgb(18 20 22 / 64%);
33
- --lockerverse-placeholder: rgb(18 20 22 / 40%);
37
+ --lockerverse-placeholder: rgb(18 20 22 / 38%);
38
+ --lockerverse-subtle: rgb(18 20 22 / 8%);
34
39
  --lockerverse-text: #121416;
35
40
  box-shadow: 0 18px 55px rgb(20 25 32 / 10%);
36
41
  }
@@ -48,31 +53,24 @@
48
53
  }
49
54
 
50
55
  .lockerverse-payment header {
51
- margin-bottom: 4px;
56
+ margin-bottom: 20px;
52
57
  }
53
58
 
54
59
  .lockerverse-payment h1 {
55
60
  font-size: 24px;
56
61
  font-weight: 600;
57
- line-height: 1.33;
62
+ line-height: 1.333;
63
+ letter-spacing: 0;
58
64
  }
59
65
 
60
66
  .lockerverse-payment header p {
61
- margin-top: 10px;
67
+ margin-top: 12px;
62
68
  font-size: 14px;
63
69
  line-height: 1.55;
64
70
  color: var(--lockerverse-muted);
65
71
  white-space: pre-line;
66
72
  }
67
73
 
68
- .lockerverse-payment h2,
69
- .lockerverse-payment label > span {
70
- font-size: 14px;
71
- font-weight: 600;
72
- line-height: 1.45;
73
- color: var(--lockerverse-text);
74
- }
75
-
76
74
  .lockerverse-payment__branding {
77
75
  display: flex;
78
76
  gap: 12px;
@@ -80,55 +78,138 @@
80
78
  min-width: 0;
81
79
  margin-bottom: 16px;
82
80
  font-size: 18px;
81
+ line-height: 1.25;
83
82
  }
84
83
 
85
84
  .lockerverse-payment__branding img {
86
85
  width: 48px;
87
86
  height: 48px;
88
87
  object-fit: cover;
89
- border: 1px solid var(--lockerverse-border);
88
+ border: 1px solid var(--lockerverse-subtle);
90
89
  border-radius: var(--lockerverse-radius);
91
90
  }
92
91
 
93
92
  .lockerverse-payment__branding strong {
94
93
  overflow: hidden;
95
94
  text-overflow: ellipsis;
95
+ font-weight: 600;
96
96
  white-space: nowrap;
97
97
  }
98
98
 
99
99
  .lockerverse-payment__form,
100
100
  .lockerverse-payment__contact,
101
+ .lockerverse-payment__tip,
101
102
  .lockerverse-payment__additional-fields,
102
103
  .lockerverse-payment__custom-fields,
103
104
  .lockerverse-payment__address,
104
105
  .lockerverse-payment__shipping,
105
106
  .lockerverse-payment__actions,
106
107
  .lockerverse-payment__stripe-element,
107
- .lockerverse-payment label {
108
+ .lockerverse-payment label,
109
+ .lockerverse-payment__field {
108
110
  display: grid;
109
111
  }
110
112
 
111
113
  .lockerverse-payment__form {
112
- gap: 18px;
114
+ gap: 16px;
115
+ }
116
+
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"] {
132
+ display: grid;
133
+ grid-template-columns: repeat(5, minmax(0, 1fr));
134
+ gap: 6px;
135
+ }
136
+
137
+ .lockerverse-payment__money-input {
138
+ position: relative;
139
+ }
140
+
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%);
149
+ }
150
+
151
+ .lockerverse-payment__money-input
152
+ input:not([type="checkbox"]):not([type="radio"]) {
153
+ padding-left: 28px;
154
+ }
155
+
156
+ .lockerverse-payment__contact {
157
+ gap: 8px;
158
+ padding-top: 14px;
159
+ border-top: 1px solid var(--lockerverse-subtle);
160
+ }
161
+
162
+ .lockerverse-payment__contact label:not(:first-child) {
163
+ margin-top: 4px;
113
164
  }
114
165
 
115
- .lockerverse-payment__contact,
116
166
  .lockerverse-payment__additional-fields,
117
167
  .lockerverse-payment__custom-fields,
118
168
  .lockerverse-payment__shipping,
119
169
  .lockerverse-payment__actions {
120
- gap: 14px;
170
+ gap: 16px;
121
171
  }
122
172
 
123
173
  .lockerverse-payment__address,
124
- .lockerverse-payment__stripe-element,
125
- .lockerverse-payment label {
174
+ .lockerverse-payment__stripe-element {
175
+ gap: 12px;
176
+ }
177
+
178
+ .lockerverse-payment label,
179
+ .lockerverse-payment fieldset,
180
+ .lockerverse-payment__field {
126
181
  gap: 8px;
127
182
  }
128
183
 
129
- .lockerverse-payment__contact {
130
- padding-top: 16px;
131
- border-top: 1px solid var(--lockerverse-border);
184
+ .lockerverse-payment__actions {
185
+ padding: 4px 0;
186
+ margin-top: 4px;
187
+ }
188
+
189
+ .lockerverse-payment label > span,
190
+ .lockerverse-payment__field > span,
191
+ .lockerverse-payment legend,
192
+ .lockerverse-payment h2 {
193
+ font-size: 14px;
194
+ font-weight: 500;
195
+ line-height: 1.45;
196
+ color: color-mix(in srgb, var(--lockerverse-text) 82%, transparent);
197
+ }
198
+
199
+ .lockerverse-payment h2 {
200
+ font-weight: 600;
201
+ color: var(--lockerverse-text);
202
+ }
203
+
204
+ .lockerverse-payment fieldset {
205
+ display: grid;
206
+ padding: 0;
207
+ margin: 0;
208
+ border: 0;
209
+ }
210
+
211
+ .lockerverse-payment legend {
212
+ margin-bottom: 8px;
132
213
  }
133
214
 
134
215
  .lockerverse-payment input:not([type="checkbox"]):not([type="radio"]),
@@ -141,34 +222,293 @@
141
222
  font-size: 16px;
142
223
  line-height: 1.5;
143
224
  color: var(--lockerverse-text);
225
+ appearance: none;
144
226
  outline: none;
145
- background: var(--lockerverse-control);
227
+ background-color: var(--lockerverse-control);
146
228
  border: 1px solid var(--lockerverse-border);
147
229
  border-radius: var(--lockerverse-radius);
230
+ box-shadow: inset 0 1px 0 rgb(255 255 255 / 4%);
148
231
  transition:
149
- border-color 120ms ease,
150
- box-shadow 120ms ease;
232
+ border-color 140ms ease,
233
+ box-shadow 140ms ease;
234
+ }
235
+
236
+ .lockerverse-payment select {
237
+ padding-right: 38px;
238
+ background-image:
239
+ linear-gradient(45deg, transparent 50%, currentcolor 50%),
240
+ linear-gradient(135deg, currentcolor 50%, transparent 50%);
241
+ background-repeat: no-repeat;
242
+ background-position:
243
+ calc(100% - 17px) calc(50% - 2px),
244
+ calc(100% - 12px) calc(50% - 2px);
245
+ background-size:
246
+ 5px 5px,
247
+ 5px 5px;
151
248
  }
152
249
 
153
250
  .lockerverse-payment textarea {
154
251
  min-height: 112px;
252
+ padding-top: 12px;
155
253
  resize: vertical;
156
254
  }
157
255
 
158
- .lockerverse-payment fieldset {
256
+ .lockerverse-payment input::placeholder,
257
+ .lockerverse-payment textarea::placeholder {
258
+ color: var(--lockerverse-placeholder);
259
+ opacity: 1;
260
+ }
261
+
262
+ .lockerverse-payment input:not([type="checkbox"]):not([type="radio"]):focus,
263
+ .lockerverse-payment__check-row input:focus,
264
+ .lockerverse-payment select:focus,
265
+ .lockerverse-payment textarea:focus,
266
+ .lockerverse-payment button:focus {
267
+ outline: none;
268
+ border-color: var(--lockerverse-accent);
269
+ }
270
+
271
+ .lockerverse-payment input:not([type="checkbox"]):not([type="radio"]):focus,
272
+ .lockerverse-payment select:focus,
273
+ .lockerverse-payment textarea:focus,
274
+ .lockerverse-payment__select-trigger:focus {
275
+ box-shadow: 0 0 0 1px var(--lockerverse-accent);
276
+ }
277
+
278
+ .lockerverse-payment
279
+ input:not([type="checkbox"]):not([type="radio"]):focus-visible,
280
+ .lockerverse-payment__check-row input:focus-visible,
281
+ .lockerverse-payment select:focus-visible,
282
+ .lockerverse-payment textarea:focus-visible,
283
+ .lockerverse-payment button:focus-visible {
284
+ box-shadow: 0 0 0 2px
285
+ color-mix(in srgb, var(--lockerverse-accent) 24%, transparent);
286
+ }
287
+
288
+ .lockerverse-payment [aria-invalid="true"] {
289
+ border-color: var(--lockerverse-danger-border) !important;
290
+ }
291
+
292
+ .lockerverse-payment__phone-control {
159
293
  display: grid;
294
+ grid-template-columns: 84px minmax(0, 1fr);
295
+ overflow: visible;
296
+ background: var(--lockerverse-control);
297
+ border: 1px solid var(--lockerverse-border);
298
+ border-radius: var(--lockerverse-radius);
299
+ box-shadow: inset 0 1px 0 rgb(255 255 255 / 4%);
300
+ transition:
301
+ border-color 140ms ease,
302
+ box-shadow 140ms ease;
303
+ }
304
+
305
+ .lockerverse-payment__phone-control:focus-within {
306
+ border-color: var(--lockerverse-accent);
307
+ box-shadow:
308
+ inset 0 1px 0 rgb(255 255 255 / 4%),
309
+ 0 0 0 1px var(--lockerverse-accent);
310
+ }
311
+
312
+ .lockerverse-payment__phone-control:has(:focus-visible) {
313
+ box-shadow: 0 0 0 2px
314
+ color-mix(in srgb, var(--lockerverse-accent) 24%, transparent);
315
+ }
316
+
317
+ .lockerverse-payment__phone-control:has([aria-invalid="true"]) {
318
+ border-color: var(--lockerverse-danger-border) !important;
319
+ }
320
+
321
+ .lockerverse-payment__select {
322
+ min-width: 0;
323
+ }
324
+
325
+ .lockerverse-payment__select-trigger {
326
+ display: flex;
160
327
  gap: 8px;
161
- padding: 0;
162
- margin: 0;
328
+ align-items: center;
329
+ justify-content: space-between;
330
+ width: 100%;
331
+ min-height: 48px;
332
+ padding: 8px 12px;
333
+ font: inherit;
334
+ font-size: 16px;
335
+ line-height: 1.5;
336
+ color: var(--lockerverse-text);
337
+ text-align: left;
338
+ white-space: nowrap;
339
+ cursor: pointer;
340
+ background: var(--lockerverse-control);
341
+ border: 1px solid var(--lockerverse-border);
342
+ border-radius: var(--lockerverse-radius);
343
+ box-shadow: inset 0 1px 0 rgb(255 255 255 / 4%);
344
+ transition:
345
+ border-color 140ms ease,
346
+ box-shadow 140ms ease,
347
+ background-color 140ms ease;
348
+ }
349
+
350
+ .lockerverse-payment__select-trigger:hover,
351
+ .lockerverse-payment__select-trigger[data-popup-open] {
352
+ background: color-mix(
353
+ in srgb,
354
+ var(--lockerverse-control) 94%,
355
+ var(--lockerverse-text)
356
+ );
357
+ }
358
+
359
+ .lockerverse-payment__select-trigger:focus-visible {
360
+ outline: none;
361
+ border-color: var(--lockerverse-accent);
362
+ box-shadow: 0 0 0 2px
363
+ color-mix(in srgb, var(--lockerverse-accent) 24%, transparent);
364
+ }
365
+
366
+ .lockerverse-payment__select-trigger:focus {
367
+ border-color: var(--lockerverse-accent);
368
+ }
369
+
370
+ .lockerverse-payment__select-icon {
371
+ display: grid;
372
+ flex: 0 0 auto;
373
+ place-items: center;
374
+ width: 16px;
375
+ height: 16px;
376
+ color: var(--lockerverse-muted);
377
+ transition: transform 140ms ease;
378
+ }
379
+
380
+ .lockerverse-payment__select-icon svg,
381
+ .lockerverse-payment__select-item-indicator svg {
382
+ width: 16px;
383
+ height: 16px;
384
+ stroke: currentcolor;
385
+ stroke-width: 1.8;
386
+ stroke-linecap: round;
387
+ stroke-linejoin: round;
388
+ }
389
+
390
+ .lockerverse-payment__select-trigger[data-popup-open]
391
+ .lockerverse-payment__select-icon {
392
+ transform: rotate(180deg);
393
+ }
394
+
395
+ .lockerverse-payment__select--phone-country {
396
+ position: relative;
397
+ z-index: 1;
398
+ }
399
+
400
+ .lockerverse-payment__select--phone-country
401
+ .lockerverse-payment__select-trigger {
402
+ padding-right: 9px;
403
+ padding-left: 11px;
404
+ background: transparent;
163
405
  border: 0;
406
+ border-right: 1px solid var(--lockerverse-border);
407
+ border-radius: var(--lockerverse-radius) 0 0 var(--lockerverse-radius);
408
+ box-shadow: none;
164
409
  }
165
410
 
166
- .lockerverse-payment legend {
167
- margin-bottom: 8px;
168
- font-size: 14px;
411
+ .lockerverse-payment__phone-control
412
+ input:not([type="checkbox"]):not([type="radio"]) {
413
+ background: transparent;
414
+ border: 0;
415
+ border-radius: 0 var(--lockerverse-radius) var(--lockerverse-radius) 0;
416
+ box-shadow: none;
417
+ }
418
+
419
+ .lockerverse-payment__phone-control
420
+ input:not([type="checkbox"]):not([type="radio"]):focus,
421
+ .lockerverse-payment__phone-control .lockerverse-payment__select-trigger:focus {
422
+ border-color: transparent;
423
+ box-shadow: none;
424
+ }
425
+
426
+ .lockerverse-payment__phone-control .lockerverse-payment__select-trigger:focus {
427
+ border-right-color: var(--lockerverse-accent);
428
+ }
429
+
430
+ .lockerverse-payment__phone-control:focus-within
431
+ .lockerverse-payment__select-trigger {
432
+ border-right-color: var(--lockerverse-accent);
433
+ }
434
+
435
+ .lockerverse-payment__phone-control [aria-invalid="true"] {
436
+ border-color: transparent !important;
437
+ }
438
+
439
+ .lockerverse-payment__select-positioner {
440
+ z-index: 100;
441
+ user-select: none;
442
+ outline: none;
443
+ }
444
+
445
+ .lockerverse-payment__select-popup {
446
+ min-width: var(--anchor-width);
447
+ max-width: min(320px, var(--available-width));
448
+ overflow: hidden;
449
+ color: var(--lockerverse-text);
450
+ background: color-mix(
451
+ in srgb,
452
+ var(--lockerverse-control) 96%,
453
+ var(--lockerverse-bg)
454
+ );
455
+ background-clip: padding-box;
456
+ border: 1px solid color-mix(in srgb, var(--lockerverse-text) 16%, transparent);
457
+ border-radius: var(--lockerverse-radius);
458
+ box-shadow: 0 18px 48px rgb(0 0 0 / 48%);
459
+ opacity: 1;
460
+ transform: scale(1);
461
+ transform-origin: var(--transform-origin);
462
+ transition:
463
+ transform 100ms ease-out,
464
+ opacity 100ms ease-out;
465
+ }
466
+
467
+ .lockerverse-payment__select-popup[data-starting-style],
468
+ .lockerverse-payment__select-popup[data-ending-style] {
469
+ opacity: 0;
470
+ transform: scale(0.98);
471
+ }
472
+
473
+ .lockerverse-payment__select-list {
474
+ position: relative;
475
+ max-height: min(320px, var(--available-height));
476
+ padding: 4px;
477
+ overflow-y: auto;
478
+ overscroll-behavior: contain;
479
+ outline: none;
480
+ scroll-padding-block: 4px;
481
+ }
482
+
483
+ .lockerverse-payment__select-item {
484
+ display: grid;
485
+ grid-template-columns: minmax(0, 1fr) 16px;
486
+ gap: 10px;
487
+ align-items: center;
488
+ min-height: 38px;
489
+ padding: 8px 10px;
490
+ font-size: 15px;
491
+ line-height: 1.35;
492
+ cursor: default;
493
+ outline: none;
494
+ border-radius: 6px;
495
+ }
496
+
497
+ .lockerverse-payment__select-item[data-highlighted] {
498
+ background: var(--lockerverse-subtle);
499
+ }
500
+
501
+ .lockerverse-payment__select-item[data-selected] {
169
502
  font-weight: 600;
170
503
  }
171
504
 
505
+ .lockerverse-payment__select-item-indicator {
506
+ display: grid;
507
+ grid-column: 2;
508
+ place-items: center;
509
+ color: var(--lockerverse-accent);
510
+ }
511
+
172
512
  .lockerverse-payment__choice {
173
513
  display: flex;
174
514
  grid-template-columns: none;
@@ -176,19 +516,72 @@
176
516
  align-items: center;
177
517
  }
178
518
 
179
- .lockerverse-payment input::placeholder {
180
- color: var(--lockerverse-placeholder);
519
+ .lockerverse-payment__choice input {
520
+ flex: 0 0 auto;
521
+ width: 20px;
522
+ height: 20px;
523
+ accent-color: var(--lockerverse-accent);
181
524
  }
182
525
 
183
- .lockerverse-payment input:focus-visible,
184
- .lockerverse-payment select:focus-visible,
185
- .lockerverse-payment textarea:focus-visible {
526
+ .lockerverse-payment__check-row {
527
+ display: flex;
528
+ grid-template-columns: none;
529
+ gap: 12px;
530
+ align-items: center;
531
+ min-height: 28px;
532
+ padding: 4px 2px;
533
+ font-size: 15px;
534
+ font-weight: 500;
535
+ line-height: 1.35;
536
+ color: color-mix(in srgb, var(--lockerverse-text) 86%, transparent);
537
+ }
538
+
539
+ .lockerverse-payment__check-row input {
540
+ display: grid;
541
+ flex: 0 0 auto;
542
+ place-content: center;
543
+ width: 20px;
544
+ height: 20px;
545
+ padding: 0;
546
+ margin: 0;
547
+ color: var(--lockerverse-accent-contrast);
548
+ appearance: none;
549
+ cursor: pointer;
550
+ background: transparent;
551
+ border: 1px solid color-mix(in srgb, var(--lockerverse-text) 25%, transparent);
552
+ border-radius: calc(var(--lockerverse-radius) / 2);
553
+ }
554
+
555
+ .lockerverse-payment__check-row input::before {
556
+ width: 11px;
557
+ height: 7px;
558
+ content: "";
559
+ border-bottom: 2.5px solid currentcolor;
560
+ border-left: 2.5px solid currentcolor;
561
+ opacity: 0;
562
+ transform: translateY(-1px) rotate(-45deg) scale(0.7);
563
+ transition:
564
+ opacity 100ms ease,
565
+ transform 100ms ease;
566
+ }
567
+
568
+ .lockerverse-payment__check-row input:checked {
569
+ background: var(--lockerverse-accent);
186
570
  border-color: var(--lockerverse-accent);
571
+ }
572
+
573
+ .lockerverse-payment__check-row input:checked::before {
574
+ opacity: 1;
575
+ transform: translateY(-1px) rotate(-45deg) scale(1);
576
+ }
577
+
578
+ .lockerverse-payment__check-row input:focus-visible {
579
+ outline: none;
187
580
  box-shadow: 0 0 0 2px
188
- color-mix(in srgb, var(--lockerverse-accent) 28%, transparent);
581
+ color-mix(in srgb, var(--lockerverse-accent) 24%, transparent);
189
582
  }
190
583
 
191
- .lockerverse-payment button {
584
+ .lockerverse-payment button:where(:not([role="combobox"])) {
192
585
  min-height: 44px;
193
586
  padding: 10px 16px;
194
587
  font: inherit;
@@ -200,14 +593,30 @@
200
593
  border-radius: var(--lockerverse-radius);
201
594
  }
202
595
 
203
- .lockerverse-payment button:focus-visible {
204
- outline: 2px solid var(--lockerverse-accent);
205
- outline-offset: 2px;
596
+ .lockerverse-payment button[type="submit"] {
597
+ width: 100%;
598
+ min-height: 48px;
599
+ padding: 12px;
600
+ font-size: 14px;
601
+ font-weight: 600;
602
+ line-height: 1.25;
603
+ box-shadow: 0 14px 34px rgb(0 0 0 / 34%);
604
+ transition:
605
+ filter 140ms ease,
606
+ transform 140ms ease;
607
+ }
608
+
609
+ .lockerverse-payment button[type="submit"]:hover {
610
+ filter: brightness(1.06);
611
+ }
612
+
613
+ .lockerverse-payment button[type="submit"]:active {
614
+ transform: translateY(1px);
206
615
  }
207
616
 
208
617
  .lockerverse-payment button:disabled {
209
618
  cursor: wait;
210
- opacity: 0.58;
619
+ opacity: 0.72;
211
620
  }
212
621
 
213
622
  .lockerverse-payment__additional-fields button {
@@ -216,16 +625,32 @@
216
625
  border-color: var(--lockerverse-border);
217
626
  }
218
627
 
628
+ .lockerverse-payment__payment-status button {
629
+ margin-top: 12px;
630
+ }
631
+
632
+ .lockerverse-payment__tip > div[role="radiogroup"] button {
633
+ min-width: 0;
634
+ min-height: 38px;
635
+ padding: 8px 4px;
636
+ font-size: 14px;
637
+ color: var(--lockerverse-muted);
638
+ background: color-mix(in srgb, var(--lockerverse-bg) 68%, transparent);
639
+ border-color: var(--lockerverse-subtle);
640
+ }
641
+
642
+ .lockerverse-payment__tip > div[role="radiogroup"] button[aria-pressed="true"] {
643
+ color: var(--lockerverse-accent-contrast);
644
+ background: var(--lockerverse-accent);
645
+ border-color: var(--lockerverse-accent);
646
+ }
647
+
219
648
  .lockerverse-payment__payment-status,
220
649
  .lockerverse-payment [role="alert"] {
221
650
  font-size: 14px;
222
651
  color: var(--lockerverse-danger);
223
652
  }
224
653
 
225
- .lockerverse-payment__payment-status button {
226
- margin-top: 12px;
227
- }
228
-
229
654
  .lockerverse-payment__stripe-element[hidden] {
230
655
  position: absolute;
231
656
  width: 1px;
@@ -234,77 +659,183 @@
234
659
  clip-path: inset(50%);
235
660
  }
236
661
 
662
+ .lockerverse-payment__stripe-mount {
663
+ visibility: visible;
664
+ min-width: 0;
665
+ opacity: 1;
666
+ transition: opacity 120ms ease;
667
+ }
668
+
669
+ .lockerverse-payment__stripe-element[data-ready="false"] {
670
+ position: relative;
671
+ }
672
+
673
+ .lockerverse-payment__stripe-element[data-ready="false"]
674
+ > .lockerverse-payment__stripe-mount {
675
+ position: absolute;
676
+ inset: 0;
677
+ z-index: -1;
678
+ visibility: hidden;
679
+ pointer-events: none;
680
+ opacity: 0;
681
+ }
682
+
683
+ .lockerverse-payment__stripe-loader {
684
+ padding: 12px;
685
+ background: color-mix(in srgb, var(--lockerverse-text) 2.5%, transparent);
686
+ border: 1px solid var(--lockerverse-subtle);
687
+ border-radius: var(--lockerverse-radius);
688
+ }
689
+
690
+ .lockerverse-payment__stripe-loader > p {
691
+ font-size: 14px;
692
+ font-weight: 500;
693
+ color: color-mix(in srgb, var(--lockerverse-text) 72%, transparent);
694
+ }
695
+
696
+ .lockerverse-payment__stripe-loader > div {
697
+ display: grid;
698
+ grid-template-columns: repeat(2, minmax(0, 1fr));
699
+ gap: 8px;
700
+ margin-top: 12px;
701
+ }
702
+
703
+ .lockerverse-payment .lockerverse-payment__stripe-loader span {
704
+ height: 36px;
705
+ background: color-mix(in srgb, var(--lockerverse-text) 4.5%, transparent);
706
+ border-radius: 6px;
707
+ animation: lockerverse-pulse 1.5s ease-in-out infinite;
708
+ }
709
+
710
+ .lockerverse-payment__stripe-loader span:first-child {
711
+ grid-column: 1 / -1;
712
+ background: color-mix(in srgb, var(--lockerverse-text) 6%, transparent);
713
+ }
714
+
237
715
  .lockerverse-payment__loading {
238
- min-height: 344px;
716
+ min-height: 420px;
239
717
  }
240
718
 
241
719
  .lockerverse-payment__skeleton {
242
720
  display: grid;
243
- gap: 22px;
721
+ gap: 16px;
722
+ }
723
+
724
+ .lockerverse-payment__skeleton-branding {
725
+ display: flex;
726
+ gap: 14px;
727
+ align-items: center;
244
728
  }
245
729
 
246
730
  .lockerverse-payment__skeleton-contact,
247
731
  .lockerverse-payment__skeleton-field,
248
- .lockerverse-payment__skeleton-loader-block,
732
+ .lockerverse-payment__skeleton-loader-content,
249
733
  .lockerverse-payment__skeleton-actions {
250
734
  display: grid;
251
- gap: 9px;
252
735
  }
253
736
 
254
737
  .lockerverse-payment__skeleton-contact {
255
- padding-top: 16px;
256
- border-top: 1px solid var(--lockerverse-border);
738
+ gap: 12px;
739
+ padding-top: 14px;
740
+ border-top: 1px solid var(--lockerverse-subtle);
257
741
  }
258
742
 
743
+ .lockerverse-payment__skeleton-field {
744
+ gap: 8px;
745
+ }
746
+
747
+ .lockerverse-payment__skeleton-avatar,
748
+ .lockerverse-payment__skeleton-community,
259
749
  .lockerverse-payment__skeleton-label,
260
750
  .lockerverse-payment__skeleton-input,
261
751
  .lockerverse-payment__skeleton-loader-label,
262
752
  .lockerverse-payment__skeleton-loader-full,
753
+ .lockerverse-payment__skeleton-loader-half,
754
+ .lockerverse-payment__skeleton-check-line,
263
755
  .lockerverse-payment__skeleton-button {
264
756
  display: block;
265
- overflow: hidden;
266
- background: color-mix(in srgb, var(--lockerverse-text) 9%, transparent);
757
+ background: color-mix(in srgb, var(--lockerverse-text) 8%, transparent);
758
+ animation: lockerverse-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
267
759
  }
268
760
 
269
- .lockerverse-payment__skeleton-label,
270
- .lockerverse-payment__skeleton-loader-label {
271
- width: 31%;
272
- height: 14px;
273
- border-radius: 5px;
761
+ .lockerverse-payment__skeleton-avatar {
762
+ flex: none;
763
+ width: 48px;
764
+ height: 48px;
765
+ border-radius: var(--lockerverse-radius);
766
+ }
767
+
768
+ .lockerverse-payment__skeleton-community {
769
+ width: 176px;
770
+ height: 20px;
771
+ border-radius: 4px;
772
+ }
773
+
774
+ .lockerverse-payment__skeleton-label {
775
+ width: 48px;
776
+ height: 16px;
777
+ border-radius: 4px;
274
778
  }
275
779
 
276
780
  .lockerverse-payment__skeleton-input,
277
- .lockerverse-payment__skeleton-loader-full,
278
781
  .lockerverse-payment__skeleton-button {
782
+ width: 100%;
279
783
  height: 48px;
280
784
  border-radius: var(--lockerverse-radius);
281
785
  }
282
786
 
787
+ .lockerverse-payment__skeleton-input {
788
+ background: var(--lockerverse-control);
789
+ border: 1px solid var(--lockerverse-subtle);
790
+ }
791
+
792
+ .lockerverse-payment__skeleton-loader-block {
793
+ padding: 12px;
794
+ background: color-mix(in srgb, var(--lockerverse-text) 2.5%, transparent);
795
+ border: 1px solid var(--lockerverse-subtle);
796
+ border-radius: var(--lockerverse-radius);
797
+ }
798
+
799
+ .lockerverse-payment__skeleton-loader-label {
800
+ width: 144px;
801
+ height: 16px;
802
+ border-radius: 4px;
803
+ }
804
+
805
+ .lockerverse-payment__skeleton-loader-content {
806
+ grid-template-columns: repeat(2, minmax(0, 1fr));
807
+ gap: 8px;
808
+ margin-top: 12px;
809
+ }
810
+
811
+ .lockerverse-payment__skeleton-loader-full,
812
+ .lockerverse-payment__skeleton-loader-half {
813
+ height: 36px;
814
+ border-radius: 6px;
815
+ }
816
+
283
817
  .lockerverse-payment__skeleton-loader-full {
284
- height: 128px;
818
+ grid-column: 1 / -1;
819
+ background: color-mix(in srgb, var(--lockerverse-text) 6%, transparent);
285
820
  }
286
821
 
287
- .lockerverse-payment__skeleton-button {
288
- margin-top: 8px;
822
+ .lockerverse-payment__skeleton-loader-half {
823
+ background: color-mix(in srgb, var(--lockerverse-text) 4.5%, transparent);
289
824
  }
290
825
 
291
- .lockerverse-payment__skeleton-label::after,
292
- .lockerverse-payment__skeleton-input::after,
293
- .lockerverse-payment__skeleton-loader-label::after,
294
- .lockerverse-payment__skeleton-loader-full::after,
295
- .lockerverse-payment__skeleton-button::after {
296
- display: block;
297
- width: 100%;
298
- height: 100%;
299
- content: "";
300
- background: linear-gradient(
301
- 90deg,
302
- transparent,
303
- color-mix(in srgb, var(--lockerverse-text) 13%, transparent),
304
- transparent
305
- );
306
- transform: translateX(-100%);
307
- animation: lockerverse-skeleton-shimmer 1.25s ease-in-out infinite;
826
+ .lockerverse-payment__skeleton-actions {
827
+ gap: 16px;
828
+ padding: 20px 0 4px;
829
+ }
830
+
831
+ .lockerverse-payment__skeleton-check-line {
832
+ width: min(256px, 70%);
833
+ height: 20px;
834
+ border-radius: 4px;
835
+ }
836
+
837
+ .lockerverse-payment__skeleton-button {
838
+ background: color-mix(in srgb, var(--lockerverse-text) 12%, transparent);
308
839
  }
309
840
 
310
841
  .lockerverse-payment__sr-only {
@@ -319,18 +850,19 @@
319
850
  clip: rect(0, 0, 0, 0);
320
851
  }
321
852
 
322
- @keyframes lockerverse-skeleton-shimmer {
323
- to {
324
- transform: translateX(100%);
853
+ @keyframes lockerverse-pulse {
854
+ 50% {
855
+ opacity: 0.55;
325
856
  }
326
857
  }
327
858
 
328
859
  @media (prefers-reduced-motion: reduce) {
329
- .lockerverse-payment__skeleton-label::after,
330
- .lockerverse-payment__skeleton-input::after,
331
- .lockerverse-payment__skeleton-loader-label::after,
332
- .lockerverse-payment__skeleton-loader-full::after,
333
- .lockerverse-payment__skeleton-button::after {
334
- animation: none;
860
+ .lockerverse-payment *,
861
+ .lockerverse-payment *::before,
862
+ .lockerverse-payment *::after {
863
+ scroll-behavior: auto !important;
864
+ animation-duration: 0.01ms !important;
865
+ animation-iteration-count: 1 !important;
866
+ transition-duration: 0.01ms !important;
335
867
  }
336
868
  }