@ecomiq/storefront 1.1.9 → 2.0.1

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.
Files changed (134) hide show
  1. package/README.md +30 -415
  2. package/bin/ecomiq.mjs +165 -0
  3. package/package.json +72 -94
  4. package/src/api-proxy.ts +194 -0
  5. package/src/auth/create-storefront-auth.ts +35 -0
  6. package/src/auth/ecomiq-oauth-password-client.ts +26 -0
  7. package/src/auth/ecomiq-oauth-password-constants.ts +26 -0
  8. package/src/auth/ecomiq-oauth-password-plugin.ts +299 -0
  9. package/src/auth/ecomiq-oauth-password-types.ts +25 -0
  10. package/src/auth/ecomiq-storefront-sign-in.ts +47 -0
  11. package/src/auth/env.ts +7 -0
  12. package/src/cart-session.ts +241 -0
  13. package/src/client.ts +48 -0
  14. package/src/codegen.mjs +704 -0
  15. package/src/components/checkout/cart-sync.ts +143 -0
  16. package/src/components/checkout/checkout-external-update-banner.tsx +15 -0
  17. package/src/components/checkout/checkout-form-controls.tsx +139 -0
  18. package/src/components/checkout/checkout-line-items.tsx +43 -0
  19. package/src/components/checkout/checkout-order-summary.tsx +156 -0
  20. package/src/components/checkout/checkout-payment-section.tsx +215 -0
  21. package/src/components/checkout/checkout-session-view.tsx +240 -0
  22. package/src/components/checkout/checkout-shipping-address-section.tsx +266 -0
  23. package/src/components/checkout/checkout-shipping-section.tsx +90 -0
  24. package/src/components/checkout/checkout-states.tsx +73 -0
  25. package/src/components/checkout/form-schema.ts +229 -0
  26. package/src/components/checkout/format.ts +27 -0
  27. package/src/components/checkout/index.ts +51 -0
  28. package/src/components/checkout/types.ts +43 -0
  29. package/src/components/checkout/use-checkout-geo.ts +50 -0
  30. package/src/components/checkout/use-checkout-session.ts +583 -0
  31. package/src/components/hero.tsx +291 -0
  32. package/src/config.d.ts +69 -0
  33. package/src/config.mjs +165 -0
  34. package/src/index.ts +274 -0
  35. package/src/link.tsx +2 -0
  36. package/src/pages/checkout.$checkoutId.tsx +60 -0
  37. package/src/pages/checkout.tsx +31 -0
  38. package/src/pages/thank-you.tsx +53 -0
  39. package/src/providers/auth.tsx +69 -0
  40. package/src/providers/cart.tsx +275 -0
  41. package/src/providers/ecomiq.ts +137 -0
  42. package/src/providers/index.ts +26 -0
  43. package/src/public-config.ts +44 -0
  44. package/src/review-submission.ts +89 -0
  45. package/src/runtime/context.ts +1 -0
  46. package/src/runtime/default-layout.tsx +80 -0
  47. package/src/runtime/head.ts +126 -0
  48. package/src/runtime/page.tsx +82 -0
  49. package/src/runtime/postcss-browser-stub.mjs +5 -0
  50. package/src/server-config-store.ts +26 -0
  51. package/src/server.ts +279 -0
  52. package/src/styles.css +76 -0
  53. package/src/ui/badge.tsx +32 -0
  54. package/src/ui/button.tsx +31 -0
  55. package/src/ui/card.tsx +31 -0
  56. package/src/ui/carousel.tsx +218 -0
  57. package/src/ui/cn.ts +6 -0
  58. package/src/ui/index.ts +8 -0
  59. package/src/ui/separator.tsx +6 -0
  60. package/src/ui/skeleton.tsx +6 -0
  61. package/src/ui/storefront-error.tsx +49 -0
  62. package/src/utils.ts +36 -0
  63. package/src/vite-inline.mjs +135 -0
  64. package/templates/__root.tsx +77 -0
  65. package/templates/router.tsx +19 -0
  66. package/dist/chunk-64GLOWMJ.js +0 -216
  67. package/dist/chunk-64GLOWMJ.js.map +0 -1
  68. package/dist/chunk-AKD5IDEB.js +0 -177
  69. package/dist/chunk-AKD5IDEB.js.map +0 -1
  70. package/dist/chunk-EFEVJJWF.js +0 -1345
  71. package/dist/chunk-EFEVJJWF.js.map +0 -1
  72. package/dist/chunk-NAJQB5DN.js +0 -155
  73. package/dist/chunk-NAJQB5DN.js.map +0 -1
  74. package/dist/chunk-OABDGTBI.js +0 -253
  75. package/dist/chunk-OABDGTBI.js.map +0 -1
  76. package/dist/chunk-Q4U5OEUT.js +0 -21
  77. package/dist/chunk-Q4U5OEUT.js.map +0 -1
  78. package/dist/chunk-S7CPZ4UE.js +0 -6
  79. package/dist/chunk-S7CPZ4UE.js.map +0 -1
  80. package/dist/chunks/client.css +0 -984
  81. package/dist/chunks/client.css.map +0 -1
  82. package/dist/chunks/client.d.ts +0 -10759
  83. package/dist/chunks/client.js +0 -5398
  84. package/dist/chunks/client.js.map +0 -1
  85. package/dist/chunks/config.d.ts +0 -31
  86. package/dist/chunks/config.js +0 -5
  87. package/dist/chunks/config.js.map +0 -1
  88. package/dist/chunks/core-public.d.ts +0 -130
  89. package/dist/chunks/core-public.js +0 -92
  90. package/dist/chunks/core-public.js.map +0 -1
  91. package/dist/chunks/server-nextjs.d.ts +0 -33
  92. package/dist/chunks/server-nextjs.js +0 -59
  93. package/dist/chunks/server-nextjs.js.map +0 -1
  94. package/dist/chunks/server-tanstack.d.ts +0 -22
  95. package/dist/chunks/server-tanstack.js +0 -40
  96. package/dist/chunks/server-tanstack.js.map +0 -1
  97. package/dist/collection-DU7gREXS.d.ts +0 -4062
  98. package/dist/ecomiq-oauth-password-plugin-B_gMdGuc.d.ts +0 -3631
  99. package/dist/ecomiq-shell-ui-SWIFLQVM.js +0 -8
  100. package/dist/ecomiq-shell-ui-SWIFLQVM.js.map +0 -1
  101. package/dist/index.d.ts +0 -9
  102. package/dist/index.js +0 -1
  103. package/dist/index.js.map +0 -1
  104. package/dist/index.server.d.ts +0 -9
  105. package/dist/index.server.js +0 -8
  106. package/dist/index.server.js.map +0 -1
  107. package/dist/nextjs/api.d.ts +0 -45
  108. package/dist/nextjs/api.js +0 -32
  109. package/dist/nextjs/api.js.map +0 -1
  110. package/dist/nextjs/globals.css +0 -13
  111. package/dist/nextjs.d.ts +0 -2
  112. package/dist/nextjs.js +0 -2
  113. package/dist/nextjs.js.map +0 -1
  114. package/dist/nextjs.server.d.ts +0 -18
  115. package/dist/nextjs.server.js +0 -1
  116. package/dist/nextjs.server.js.map +0 -1
  117. package/dist/postcss.config.mjs +0 -6
  118. package/dist/react/checkout-page.css +0 -855
  119. package/dist/react/client.css +0 -984
  120. package/dist/react/payment-provider.css +0 -91
  121. package/dist/react/thank-you-page.css +0 -105
  122. package/dist/react.d.ts +0 -1
  123. package/dist/react.js +0 -2
  124. package/dist/react.js.map +0 -1
  125. package/dist/store-proxy-handler-CNzKlTFA.d.ts +0 -10
  126. package/dist/tanstack/api.d.ts +0 -41
  127. package/dist/tanstack/api.js +0 -30
  128. package/dist/tanstack/api.js.map +0 -1
  129. package/dist/tanstack.d.ts +0 -1
  130. package/dist/tanstack.js +0 -2
  131. package/dist/tanstack.js.map +0 -1
  132. package/dist/tanstack.server.d.ts +0 -18
  133. package/dist/tanstack.server.js +0 -1
  134. package/dist/tanstack.server.js.map +0 -1
@@ -1,855 +0,0 @@
1
- @import "./payment-provider.css";
2
- /* Shopify-like checkout — layout autocontenido */
3
- .ecomiq-checkout-page {
4
- --ecp-bg: #ffffff;
5
- --ecp-summary-bg: #f5f5f5;
6
- --ecp-border: #d9d9d9;
7
- --ecp-text: #121212;
8
- --ecp-muted: #6d6d6d;
9
- --ecp-accent: #121212;
10
- min-height: 100dvh;
11
- background: var(--ecp-bg);
12
- color: var(--ecp-text);
13
- font-family:
14
- -apple-system,
15
- BlinkMacSystemFont,
16
- "Segoe UI",
17
- Roboto,
18
- Helvetica,
19
- Arial,
20
- sans-serif;
21
- font-size: 14px;
22
- line-height: 1.4;
23
- }
24
-
25
- .ecomiq-checkout-page__top {
26
- border-bottom: 1px solid var(--ecp-border);
27
- padding: 1.25rem 1.5rem;
28
- text-align: center;
29
- background: var(--ecp-bg);
30
- display: flex;
31
- justify-content: center;
32
- }
33
-
34
- .ecomiq-checkout-page__logo {
35
- font-size: 1.5rem;
36
- font-weight: 700;
37
- letter-spacing: 0.2em;
38
- text-transform: uppercase;
39
- text-decoration: none;
40
- color: inherit;
41
- }
42
-
43
- .ecomiq-checkout-page__logo img {
44
- max-height: 2.5rem;
45
- width: auto;
46
- }
47
-
48
- .ecomiq-checkout-page__layout {
49
- display: grid;
50
- grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
51
- min-height: calc(100dvh - 73px);
52
- }
53
-
54
- @media (max-width: 999px) {
55
- .ecomiq-checkout-page__layout {
56
- grid-template-columns: 1fr;
57
- }
58
- .ecomiq-checkout-page__summary-wrap {
59
- order: -1;
60
- border-bottom: 1px solid var(--ecp-border);
61
- }
62
- }
63
-
64
- /* Formulario: anclado al borde interior (centro), como Shopify */
65
- .ecomiq-checkout-page__main-wrap {
66
- box-sizing: border-box;
67
- justify-self: end;
68
- max-width: 36rem;
69
- width: 100%;
70
- padding: 2.5rem clamp(1.5rem, 5vw, 4.5rem) 2.5rem clamp(1.5rem, 5vw, 4.5rem);
71
- }
72
-
73
- /* Panel gris a ancho completo; contenido del resumen desde el centro hacia afuera */
74
- .ecomiq-checkout-page__summary-wrap {
75
- box-sizing: border-box;
76
- width: 100%;
77
- min-height: 100%;
78
- background: var(--ecp-summary-bg);
79
- border-left: 1px solid var(--ecp-border);
80
- padding: 2.5rem clamp(1.5rem, 5vw, 4.5rem);
81
- display: flex;
82
- justify-content: flex-start;
83
- }
84
-
85
- .ecomiq-checkout-page__summary-wrap > * {
86
- flex: 0 1 24rem;
87
- max-width: 24rem;
88
- width: 100%;
89
- }
90
-
91
- @media (min-width: 1000px) {
92
- .ecomiq-checkout-page__summary-wrap > * {
93
- align-self: flex-start;
94
- }
95
-
96
- .ecomiq-checkout-page__summary {
97
- position: sticky;
98
- top: 1.5rem;
99
- max-height: calc(100dvh - 3rem);
100
- overflow-y: auto;
101
- padding-top: 5px;
102
- }
103
- }
104
-
105
- @media (max-width: 999px) {
106
- .ecomiq-checkout-page__main-wrap {
107
- justify-self: stretch;
108
- max-width: 36rem;
109
- margin-inline: auto;
110
- }
111
-
112
- .ecomiq-checkout-page__summary-wrap {
113
- border-left: none;
114
- justify-content: center;
115
- }
116
-
117
- .ecomiq-checkout-page__summary-wrap > * {
118
- flex-basis: 36rem;
119
- max-width: 36rem;
120
- }
121
- }
122
-
123
- .ecomiq-checkout-page__section {
124
- margin-bottom: 2rem;
125
- }
126
-
127
- .ecomiq-checkout-page__section h2 {
128
- margin: 0 0 1rem;
129
- font-size: 1.125rem;
130
- font-weight: 600;
131
- }
132
-
133
- .ecomiq-checkout-page__section-head {
134
- display: flex;
135
- align-items: center;
136
- justify-content: space-between;
137
- margin-bottom: 1rem;
138
- }
139
-
140
- .ecomiq-checkout-page__section-head h2 {
141
- margin: 0;
142
- }
143
-
144
- .ecomiq-checkout-page__link {
145
- color: var(--ecp-accent);
146
- text-decoration: underline;
147
- font-size: 0.875rem;
148
- }
149
-
150
- .ecomiq-checkout-page__field {
151
- display: block;
152
- margin-bottom: 0.75rem;
153
- }
154
-
155
- .ecomiq-checkout-page__field--half {
156
- flex: 1;
157
- min-width: 0;
158
- }
159
-
160
- .ecomiq-checkout-page__label {
161
- display: block;
162
- font-size: 0.8125rem;
163
- color: var(--ecp-muted);
164
- margin-bottom: 0.35rem;
165
- }
166
-
167
- .ecomiq-checkout-page__input,
168
- .ecomiq-checkout-page__field select {
169
- width: 100%;
170
- box-sizing: border-box;
171
- padding: 0.7rem 0.75rem;
172
- border: 1px solid var(--ecp-border);
173
- border-radius: 5px;
174
- font-size: 0.9375rem;
175
- background: #fff;
176
- color: var(--ecp-text);
177
- }
178
-
179
- .ecomiq-checkout-page__input:focus,
180
- .ecomiq-checkout-page__field select:focus {
181
- outline: 2px solid #1773b0;
182
- outline-offset: 1px;
183
- border-color: #1773b0;
184
- }
185
-
186
- .ecomiq-checkout-page__row {
187
- display: flex;
188
- gap: 0.75rem;
189
- }
190
-
191
- .ecomiq-checkout-page__row--3 {
192
- display: grid;
193
- grid-template-columns: repeat(3, minmax(0, 1fr));
194
- gap: 0.75rem;
195
- }
196
-
197
- @media (max-width: 640px) {
198
- .ecomiq-checkout-page__row--3 {
199
- grid-template-columns: 1fr;
200
- }
201
- }
202
-
203
- .ecomiq-checkout-page__checkbox {
204
- display: flex;
205
- align-items: center;
206
- gap: 0.5rem;
207
- margin-top: 0.5rem;
208
- font-size: 0.875rem;
209
- }
210
-
211
- .ecomiq-checkout-page__hint {
212
- color: var(--ecp-muted);
213
- font-size: 0.875rem;
214
- margin: 0 0 0.75rem;
215
- }
216
-
217
- .ecomiq-checkout-page__field-error {
218
- color: #c62828;
219
- font-size: 0.875rem;
220
- margin: 0 0 1rem;
221
- }
222
-
223
- .ecomiq-checkout-page__field-error-inline {
224
- color: #c62828;
225
- font-size: 0.8125rem;
226
- display: block;
227
- margin-top: 0.35rem;
228
- }
229
-
230
- .ecomiq-checkout-page__input--error {
231
- border-color: #c62828;
232
- }
233
-
234
- .ecomiq-checkout-page__input--error:focus {
235
- outline-color: #c62828;
236
- border-color: #c62828;
237
- }
238
-
239
- .ecomiq-checkout-page__options--error {
240
- border-color: #c62828;
241
- }
242
-
243
- .ecomiq-checkout-page__options {
244
- border: 1px solid var(--ecp-border);
245
- border-radius: 5px;
246
- overflow: hidden;
247
- background: #fff;
248
- }
249
-
250
- .ecomiq-checkout-page__option {
251
- display: flex;
252
- align-items: flex-start;
253
- gap: 0.75rem;
254
- padding: 1rem;
255
- border-bottom: 1px solid var(--ecp-border);
256
- cursor: pointer;
257
- margin: 0;
258
- }
259
-
260
- .ecomiq-checkout-page__option:last-child {
261
- border-bottom: none;
262
- }
263
-
264
- .ecomiq-checkout-page__option.is-selected {
265
- background: #f0f5ff;
266
- box-shadow: inset 0 0 0 1px #1773b0;
267
- }
268
-
269
- .ecomiq-checkout-page__option input {
270
- margin-top: 0.2rem;
271
- flex-shrink: 0;
272
- }
273
-
274
- .ecomiq-checkout-page__option-body {
275
- flex: 1;
276
- min-width: 0;
277
- }
278
-
279
- .ecomiq-checkout-page__option-title {
280
- display: block;
281
- font-weight: 500;
282
- }
283
-
284
- .ecomiq-checkout-page__option-sub {
285
- display: block;
286
- font-size: 0.8125rem;
287
- color: var(--ecp-muted);
288
- margin-top: 0.15rem;
289
- }
290
-
291
- .ecomiq-checkout-page__option-price {
292
- font-weight: 500;
293
- white-space: nowrap;
294
- }
295
-
296
- .ecomiq-checkout-page__pay {
297
- width: 100%;
298
- margin-top: 0.5rem;
299
- padding: 1.1rem 1.5rem;
300
- border: none;
301
- border-radius: 5px;
302
- background: var(--ecp-accent);
303
- color: #fff;
304
- font-size: 0.9375rem;
305
- font-weight: 600;
306
- cursor: pointer;
307
- }
308
-
309
- .ecomiq-checkout-page__pay:disabled {
310
- opacity: 0.6;
311
- cursor: not-allowed;
312
- }
313
-
314
- .ecomiq-checkout-page__manual-payment {
315
- margin-top: 1rem;
316
- border: 1px solid var(--ecp-border);
317
- border-radius: 5px;
318
- background: #fafafa;
319
- padding: 1rem;
320
- }
321
-
322
- .ecomiq-checkout-page__manual-payment-body {
323
- display: flex;
324
- flex-direction: column;
325
- gap: 1rem;
326
- }
327
-
328
- @media (min-width: 640px) {
329
- .ecomiq-checkout-page__manual-payment-body {
330
- flex-direction: row;
331
- }
332
- }
333
-
334
- .ecomiq-checkout-page__manual-payment-qr {
335
- width: 9rem;
336
- height: 9rem;
337
- flex-shrink: 0;
338
- display: grid;
339
- place-items: center;
340
- border: 1px solid var(--ecp-border);
341
- border-radius: 5px;
342
- background: #fff;
343
- padding: 0.5rem;
344
- }
345
-
346
- .ecomiq-checkout-page__manual-payment-qr img {
347
- width: 100%;
348
- height: 100%;
349
- object-fit: contain;
350
- }
351
-
352
- .ecomiq-checkout-page__manual-payment-info {
353
- flex: 1;
354
- min-width: 0;
355
- }
356
-
357
- .ecomiq-checkout-page__manual-payment-title {
358
- font-weight: 600;
359
- margin: 0 0 0.35rem;
360
- }
361
-
362
- .ecomiq-checkout-page__manual-payment-row {
363
- display: grid;
364
- grid-template-columns: 7rem 1fr;
365
- gap: 0.5rem;
366
- font-size: 0.875rem;
367
- margin: 0.35rem 0 0;
368
- }
369
-
370
- .ecomiq-checkout-page__manual-payment-row span {
371
- color: var(--ecp-muted);
372
- }
373
-
374
- .ecomiq-checkout-page__receipt-upload {
375
- margin-top: 0.75rem;
376
- padding-top: 0.75rem;
377
- border-top: 1px solid var(--ecp-border);
378
- }
379
-
380
- .ecomiq-checkout-page__receipt-label {
381
- display: flex;
382
- align-items: center;
383
- gap: 0.5rem;
384
- margin-top: 0.35rem;
385
- padding: 0.65rem 0.75rem;
386
- border: 1px solid var(--ecp-border);
387
- border-radius: 5px;
388
- background: #fff;
389
- font-size: 0.875rem;
390
- cursor: pointer;
391
- }
392
-
393
- .ecomiq-checkout-page__receipt-input {
394
- position: absolute;
395
- width: 1px;
396
- height: 1px;
397
- padding: 0;
398
- margin: -1px;
399
- overflow: hidden;
400
- clip: rect(0, 0, 0, 0);
401
- border: 0;
402
- }
403
-
404
- .ecomiq-checkout-page__receipt-preview {
405
- display: block;
406
- margin-top: 0.5rem;
407
- max-height: 7rem;
408
- max-width: 100%;
409
- border: 1px solid var(--ecp-border);
410
- border-radius: 5px;
411
- object-fit: contain;
412
- }
413
-
414
- .ecomiq-checkout-page__payment-provider {
415
- margin-top: 1rem;
416
- display: flex;
417
- flex-direction: column;
418
- gap: 1rem;
419
- }
420
-
421
- .ecomiq-checkout-page__provider-confirm {
422
- width: 100%;
423
- padding: 0.85rem 1.25rem;
424
- border: none;
425
- border-radius: 5px;
426
- background: var(--ecp-accent);
427
- color: #fff;
428
- font-size: 0.875rem;
429
- font-weight: 600;
430
- cursor: pointer;
431
- }
432
-
433
- .ecomiq-checkout-page__provider-confirm:disabled {
434
- opacity: 0.6;
435
- cursor: not-allowed;
436
- }
437
-
438
- .ecomiq-checkout-page__policies {
439
- display: flex;
440
- flex-wrap: wrap;
441
- gap: 0.75rem 1rem;
442
- justify-content: center;
443
- margin-top: 1.25rem;
444
- font-size: 0.75rem;
445
- }
446
-
447
- .ecomiq-checkout-page__policies a {
448
- color: var(--ecp-muted);
449
- text-decoration: underline;
450
- }
451
-
452
- /* Order summary (right column) */
453
- .ecomiq-checkout-page__summary-items {
454
- list-style: none;
455
- margin: 0 0 1.25rem;
456
- padding: 0;
457
- }
458
-
459
- .ecomiq-checkout-page__summary-item {
460
- display: flex;
461
- gap: 1rem;
462
- align-items: flex-start;
463
- margin-bottom: 1rem;
464
- }
465
-
466
- .ecomiq-checkout-page__summary-thumb {
467
- position: relative;
468
- width: 64px;
469
- height: 64px;
470
- flex-shrink: 0;
471
- border-radius: 8px;
472
- border: 1px solid rgb(0 0 0 / 0.08);
473
- background: #fff;
474
- }
475
-
476
- .ecomiq-checkout-page__summary-thumb-image {
477
- overflow: hidden;
478
- border-radius: 8px;
479
- }
480
-
481
- .ecomiq-checkout-page__summary-thumb img {
482
- width: 100%;
483
- height: 100%;
484
- object-fit: cover;
485
- }
486
-
487
- .ecomiq-checkout-page__summary-thumb-ph {
488
- display: block;
489
- width: 100%;
490
- height: 100%;
491
- background: #e5e5e5;
492
- }
493
-
494
- .ecomiq-checkout-page__summary-qty {
495
- position: absolute;
496
- top: -6px;
497
- right: -6px;
498
- min-width: 1.25rem;
499
- height: 1.25rem;
500
- padding: 0 0.25rem;
501
- border-radius: 999px;
502
- background: rgb(0 0 0 / 0.7);
503
- color: #fff;
504
- font-size: 0.6875rem;
505
- font-weight: 600;
506
- display: flex;
507
- align-items: center;
508
- justify-content: center;
509
- }
510
-
511
- .ecomiq-checkout-page__summary-item-body {
512
- flex: 1;
513
- min-width: 0;
514
- }
515
-
516
- .ecomiq-checkout-page__summary-item-title {
517
- margin: 0;
518
- font-weight: 500;
519
- font-size: 0.875rem;
520
- }
521
-
522
- .ecomiq-checkout-page__summary-item-meta {
523
- margin: 0.2rem 0 0;
524
- font-size: 0.8125rem;
525
- color: var(--ecp-muted);
526
- }
527
-
528
- .ecomiq-checkout-page__summary-item-price {
529
- margin: 0;
530
- font-weight: 500;
531
- font-size: 0.875rem;
532
- }
533
-
534
- .ecomiq-checkout-page__discount {
535
- display: flex;
536
- gap: 0.5rem;
537
- margin-bottom: 1rem;
538
- }
539
-
540
- .ecomiq-checkout-page__discount .ecomiq-checkout-page__input {
541
- flex: 1;
542
- }
543
-
544
- .ecomiq-checkout-page__discount-apply {
545
- padding: 0 1rem;
546
- border: 1px solid var(--ecp-border);
547
- border-radius: 5px;
548
- background: #f0f0f0;
549
- color: var(--ecp-muted);
550
- font-size: 0.875rem;
551
- cursor: pointer;
552
- }
553
-
554
- .ecomiq-checkout-page__discount-apply:not(:disabled) {
555
- background: #fff;
556
- color: var(--ecp-text);
557
- cursor: pointer;
558
- }
559
-
560
- .ecomiq-checkout-page__coupon-tags {
561
- list-style: none;
562
- margin: 0 0 1rem;
563
- padding: 0;
564
- display: flex;
565
- flex-wrap: wrap;
566
- gap: 0.5rem;
567
- }
568
-
569
- .ecomiq-checkout-page__coupon-tags li {
570
- display: flex;
571
- align-items: center;
572
- gap: 0.35rem;
573
- padding: 0.25rem 0.5rem;
574
- background: #fff;
575
- border: 1px solid var(--ecp-border);
576
- border-radius: 4px;
577
- font-size: 0.8125rem;
578
- }
579
-
580
- .ecomiq-checkout-page__coupon-tags button {
581
- border: none;
582
- background: none;
583
- cursor: pointer;
584
- padding: 0;
585
- line-height: 1;
586
- }
587
-
588
- .ecomiq-checkout-page__totals {
589
- margin: 0;
590
- }
591
-
592
- .ecomiq-checkout-page__totals-row {
593
- display: flex;
594
- justify-content: space-between;
595
- align-items: baseline;
596
- margin-bottom: 0.5rem;
597
- font-size: 0.875rem;
598
- }
599
-
600
- .ecomiq-checkout-page__totals-row dt {
601
- color: var(--ecp-muted);
602
- }
603
-
604
- .ecomiq-checkout-page__totals-row dd {
605
- margin: 0;
606
- }
607
-
608
- .ecomiq-checkout-page__totals-row--total {
609
- margin-top: 1rem;
610
- padding-top: 1rem;
611
- border-top: 1px solid var(--ecp-border);
612
- font-size: 1.125rem;
613
- font-weight: 600;
614
- }
615
-
616
- .ecomiq-checkout-page__totals-row--total dt {
617
- color: var(--ecp-text);
618
- }
619
-
620
- .ecomiq-checkout-page__total-currency {
621
- font-size: 0.75rem;
622
- font-weight: 400;
623
- color: var(--ecp-muted);
624
- margin-right: 0.35rem;
625
- }
626
-
627
- .ecomiq-checkout-page__state {
628
- padding: 3rem 1.5rem;
629
- text-align: center;
630
- max-width: 24rem;
631
- margin: 0 auto;
632
- }
633
-
634
- .ecomiq-checkout-page__state h1 {
635
- font-size: 1.25rem;
636
- margin: 0 0 0.5rem;
637
- }
638
-
639
- .ecomiq-checkout-page__state p {
640
- color: var(--ecp-muted);
641
- margin: 0 0 1rem;
642
- }
643
-
644
- .ecomiq-checkout-page__external-cart-banner {
645
- display: flex;
646
- flex-wrap: wrap;
647
- align-items: center;
648
- justify-content: space-between;
649
- gap: 0.75rem 1rem;
650
- margin: 0;
651
- padding: 0.4rem 1.25rem;
652
- background: #fff8e6;
653
- border-bottom: 1px solid #f0d590;
654
- color: #5c4a12;
655
- font-size: 0.875rem;
656
- }
657
-
658
- .ecomiq-checkout-page__external-cart-banner p {
659
- margin: 0;
660
- flex: 1 1 16rem;
661
- }
662
-
663
- .ecomiq-checkout-page__external-cart-reload {
664
- flex-shrink: 0;
665
- padding: 0.4rem 0.75rem;
666
- border: 1px solid #5c4a12;
667
- border-radius: 6px;
668
- background: #5c4a12;
669
- color: #fff;
670
- font-size: 0.75rem;
671
- font-weight: 600;
672
- cursor: pointer;
673
- }
674
-
675
- .ecomiq-checkout-page__external-cart-reload:hover {
676
- background: #46380e;
677
- border-color: #46380e;
678
- }
679
-
680
- /* Loading skeleton */
681
- @keyframes ecomiq-checkout-skeleton-shimmer {
682
- 0% {
683
- background-position: 200% 0;
684
- }
685
- 100% {
686
- background-position: -200% 0;
687
- }
688
- }
689
-
690
- .ecomiq-checkout-page--skeleton .ecomiq-checkout-page__skeleton-block {
691
- background: linear-gradient(
692
- 90deg,
693
- rgb(0 0 0 / 0.06) 0%,
694
- rgb(0 0 0 / 0.1) 50%,
695
- rgb(0 0 0 / 0.06) 100%
696
- );
697
- background-size: 200% 100%;
698
- animation: ecomiq-checkout-skeleton-shimmer 1.4s ease-in-out infinite;
699
- border-radius: 6px;
700
- }
701
-
702
- .ecomiq-checkout-page__skeleton-title {
703
- height: 1.125rem;
704
- width: 6rem;
705
- margin-bottom: 1rem;
706
- }
707
-
708
- .ecomiq-checkout-page__section-head .ecomiq-checkout-page__skeleton-title {
709
- margin-bottom: 0;
710
- }
711
-
712
- .ecomiq-checkout-page__skeleton-link {
713
- height: 0.875rem;
714
- width: 3.5rem;
715
- border-radius: 4px;
716
- }
717
-
718
- .ecomiq-checkout-page__skeleton-field {
719
- height: 2.75rem;
720
- width: 100%;
721
- margin-bottom: 0.75rem;
722
- }
723
-
724
- .ecomiq-checkout-page__skeleton-field--half {
725
- flex: 1;
726
- min-width: 0;
727
- }
728
-
729
- .ecomiq-checkout-page__skeleton-field--third {
730
- flex: 1;
731
- min-width: 0;
732
- }
733
-
734
- .ecomiq-checkout-page__skeleton-row {
735
- display: flex;
736
- gap: 0.75rem;
737
- margin-bottom: 0.75rem;
738
- }
739
-
740
- .ecomiq-checkout-page__skeleton-row .ecomiq-checkout-page__skeleton-field {
741
- margin-bottom: 0;
742
- }
743
-
744
- .ecomiq-checkout-page__skeleton-checkbox {
745
- height: 1.25rem;
746
- width: 14rem;
747
- margin-top: 0.25rem;
748
- }
749
-
750
- .ecomiq-checkout-page__skeleton-option {
751
- height: 3.5rem;
752
- width: 100%;
753
- margin-bottom: 0.5rem;
754
- border-radius: 8px;
755
- }
756
-
757
- .ecomiq-checkout-page__skeleton-button {
758
- height: 3rem;
759
- width: 100%;
760
- margin-top: 0.5rem;
761
- border-radius: 8px;
762
- }
763
-
764
- .ecomiq-checkout-page__skeleton-summary-item {
765
- display: flex;
766
- gap: 1rem;
767
- align-items: flex-start;
768
- margin-bottom: 1.25rem;
769
- }
770
-
771
- .ecomiq-checkout-page__skeleton-thumb {
772
- width: 64px;
773
- height: 64px;
774
- flex-shrink: 0;
775
- border-radius: 8px;
776
- }
777
-
778
- .ecomiq-checkout-page__skeleton-summary-body {
779
- flex: 1;
780
- min-width: 0;
781
- display: flex;
782
- flex-direction: column;
783
- gap: 0.5rem;
784
- padding-top: 0.25rem;
785
- }
786
-
787
- .ecomiq-checkout-page__skeleton-line {
788
- height: 0.875rem;
789
- width: 100%;
790
- }
791
-
792
- .ecomiq-checkout-page__skeleton-line--short {
793
- width: 55%;
794
- }
795
-
796
- .ecomiq-checkout-page__skeleton-line--xs {
797
- width: 3rem;
798
- }
799
-
800
- .ecomiq-checkout-page__skeleton-line--price {
801
- width: 4.5rem;
802
- height: 1.125rem;
803
- }
804
-
805
- .ecomiq-checkout-page__skeleton-price {
806
- width: 3.5rem;
807
- height: 0.875rem;
808
- flex-shrink: 0;
809
- }
810
-
811
- .ecomiq-checkout-page__skeleton-coupon {
812
- display: flex;
813
- gap: 0.5rem;
814
- margin-bottom: 1.25rem;
815
- }
816
-
817
- .ecomiq-checkout-page__skeleton-coupon-input {
818
- flex: 1;
819
- height: 2.75rem;
820
- border-radius: 8px;
821
- }
822
-
823
- .ecomiq-checkout-page__skeleton-coupon-btn {
824
- width: 4.5rem;
825
- height: 2.75rem;
826
- border-radius: 8px;
827
- flex-shrink: 0;
828
- }
829
-
830
- .ecomiq-checkout-page__skeleton-totals {
831
- display: flex;
832
- flex-direction: column;
833
- gap: 0.65rem;
834
- }
835
-
836
- .ecomiq-checkout-page__skeleton-total-row {
837
- display: flex;
838
- justify-content: space-between;
839
- align-items: center;
840
- gap: 1rem;
841
- }
842
-
843
- .ecomiq-checkout-page__skeleton-total-row--final {
844
- margin-top: 0.75rem;
845
- padding-top: 1rem;
846
- border-top: 1px solid var(--ecp-border);
847
- }
848
-
849
- .ecomiq-checkout-page--skeleton .ecomiq-checkout-page__summary-wrap {
850
- pointer-events: none;
851
- }
852
-
853
- .ecomiq-checkout-page--skeleton .ecomiq-checkout-page__main-wrap {
854
- pointer-events: none;
855
- }