merchi_checkout 0.0.0-a

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 (54) hide show
  1. package/README.md +69 -0
  2. package/lib/actions/confirm.js +83 -0
  3. package/lib/actions/customer.js +59 -0
  4. package/lib/actions/domain.js +69 -0
  5. package/lib/actions/files.js +38 -0
  6. package/lib/actions/helpers.js +125 -0
  7. package/lib/actions/invoice.js +120 -0
  8. package/lib/actions/shipping.js +33 -0
  9. package/lib/actions/user.js +64 -0
  10. package/lib/components/Alerts.js +89 -0
  11. package/lib/components/Collapse.js +34 -0
  12. package/lib/components/DraftImageUploaded.js +54 -0
  13. package/lib/components/FooterButtons.js +25 -0
  14. package/lib/components/InvoiceInfo.js +34 -0
  15. package/lib/components/JobInfoContent.js +276 -0
  16. package/lib/components/MerchiCheckout.js +29 -0
  17. package/lib/components/MerchiCheckoutProvider.js +357 -0
  18. package/lib/components/MerchiCheckoutTabs.js +50 -0
  19. package/lib/components/TabPane.js +21 -0
  20. package/lib/components/TabPaneAddress.js +28 -0
  21. package/lib/components/TabPaneConfirm.js +281 -0
  22. package/lib/components/TabPaneContainer.js +13 -0
  23. package/lib/components/TabPaneCustomer.js +102 -0
  24. package/lib/components/TabPaneDrafting.js +117 -0
  25. package/lib/components/TabPaneNewDomain.js +39 -0
  26. package/lib/components/TabPanePayment.js +41 -0
  27. package/lib/components/TabPaneSubmitted.js +79 -0
  28. package/lib/components/TitleStep.js +23 -0
  29. package/lib/components/buttons/ButtonInvoiceDownload.js +92 -0
  30. package/lib/components/buttons/ButtonNext.js +40 -0
  31. package/lib/components/buttons/ButtonPrevious.js +31 -0
  32. package/lib/components/buttons/index.js +4 -0
  33. package/lib/components/currency.js +223 -0
  34. package/lib/components/forms/CheckboxBillingAddressSameAsShippingAddress.js +23 -0
  35. package/lib/components/forms/FormAddresses.js +200 -0
  36. package/lib/components/forms/FormCustomerNew.js +197 -0
  37. package/lib/components/forms/FormCustomerReturning.js +144 -0
  38. package/lib/components/forms/FormDomainNew.js +146 -0
  39. package/lib/components/forms/InputAcceptUserTermsAndConditions.js +39 -0
  40. package/lib/components/forms/InputCheckStoreName.js +168 -0
  41. package/lib/components/forms/InputError.js +18 -0
  42. package/lib/components/forms/InputFileUpload.js +191 -0
  43. package/lib/components/forms/InputSelect.js +52 -0
  44. package/lib/components/forms/InputText.js +60 -0
  45. package/lib/components/forms/InputsAddress.js +227 -0
  46. package/lib/components/forms/index.js +5 -0
  47. package/lib/components/lists/ListShipmentQuoteOptions.js +139 -0
  48. package/lib/components/lists/index.js +3 -0
  49. package/lib/index.js +6 -0
  50. package/lib/styles/globals.scss +2236 -0
  51. package/lib/tabs_utils.js +126 -0
  52. package/lib/types.js +39 -0
  53. package/lib/utils.js +462 -0
  54. package/package.json +83 -0
@@ -0,0 +1,2236 @@
1
+ .modal-fullscreen {
2
+ width: 100vw;
3
+ max-width: none;
4
+ height: 100%;
5
+ margin: 0;
6
+ }
7
+
8
+ /* Embed form */
9
+ /* Muti step form */
10
+ /* Modal - checkout */
11
+ /* Invoice */
12
+
13
+ $brandBlue: #303dbf;
14
+ $brandRed: #ff464a;
15
+ $brandYellow: #ffc928;
16
+ $brandGreen: #65cf85;
17
+ $textDark: rgb(59, 64, 77);
18
+
19
+ .cursor-pointer {
20
+ cursor: pointer;
21
+ }
22
+
23
+ /* Helpers */
24
+ .flex-wrap {
25
+ flex-wrap: wrap !important;
26
+ }
27
+
28
+ .gap-1 {
29
+ gap: 0.5rem !important;
30
+ }
31
+
32
+ .height-xs {
33
+ height: 150px !important;
34
+ }
35
+
36
+ .height-sm {
37
+ height: 300px !important;
38
+ }
39
+
40
+ .height-md {
41
+ height: 450px !important;
42
+ }
43
+
44
+ .height-lg {
45
+ height: 600px !important;
46
+ }
47
+
48
+ .height-full {
49
+ height: 100% !important;
50
+ }
51
+
52
+ .height-0 {
53
+ height: 0px !important;
54
+ }
55
+
56
+ .height-10 {
57
+ height: 10px !important;
58
+ }
59
+
60
+ .height-20 {
61
+ height: 20px !important;
62
+ }
63
+
64
+ .height-30 {
65
+ height: 30px !important;
66
+ }
67
+
68
+ .height-40 {
69
+ height: 40px !important;
70
+ }
71
+
72
+ .height-50 {
73
+ height: 50px !important;
74
+ }
75
+
76
+ .height-60 {
77
+ height: 60px !important;
78
+ }
79
+
80
+ .height-70 {
81
+ height: 70px !important;
82
+ }
83
+
84
+ .height-80 {
85
+ height: 80px !important;
86
+ }
87
+
88
+ .height-90 {
89
+ height: 90px !important;
90
+ }
91
+
92
+ .height-100 {
93
+ height: 100px !important;
94
+ }
95
+
96
+ .height-150 {
97
+ height: 150px !important;
98
+ }
99
+
100
+ .height-200 {
101
+ height: 200px !important;
102
+ }
103
+
104
+ .height-250 {
105
+ height: 250px !important;
106
+ }
107
+
108
+ .height-300 {
109
+ height: 300px !important;
110
+ }
111
+
112
+ .height-310 {
113
+ height: 310px !important;
114
+ }
115
+
116
+ .height-350 {
117
+ height: 350px !important;
118
+ }
119
+
120
+ .height-400 {
121
+ height: 400px !important;
122
+ }
123
+
124
+ .height-450 {
125
+ height: 450px !important;
126
+ }
127
+
128
+ .height-500 {
129
+ height: 500px !important;
130
+ }
131
+
132
+ .height-550 {
133
+ height: 550px !important;
134
+ }
135
+
136
+ .height-600 {
137
+ height: 600px !important;
138
+ }
139
+
140
+ .width-xs {
141
+ width: 150px !important;
142
+ }
143
+
144
+ .width-sm {
145
+ width: 300px !important;
146
+ }
147
+
148
+ .width-md {
149
+ width: 450px !important;
150
+ }
151
+
152
+ .width-lg {
153
+ width: 600px !important;
154
+ }
155
+
156
+ .width-full {
157
+ width: 100% !important;
158
+ }
159
+
160
+ .width-0 {
161
+ width: 0px !important;
162
+ }
163
+
164
+ .width-10 {
165
+ width: 10px !important;
166
+ }
167
+
168
+ .width-20 {
169
+ width: 20px !important;
170
+ }
171
+
172
+ .width-30 {
173
+ width: 30px !important;
174
+ }
175
+
176
+ .width-40 {
177
+ width: 40px !important;
178
+ }
179
+
180
+ .width-50 {
181
+ width: 50px !important;
182
+ }
183
+
184
+ .width-60 {
185
+ width: 60px !important;
186
+ }
187
+
188
+ .width-70 {
189
+ width: 70px !important;
190
+ }
191
+
192
+ .width-80 {
193
+ width: 80px !important;
194
+ }
195
+
196
+ .width-90 {
197
+ width: 90px !important;
198
+ }
199
+
200
+ .width-100 {
201
+ width: 100px !important;
202
+ }
203
+
204
+ .width-150 {
205
+ width: 150px !important;
206
+ }
207
+
208
+ .width-200 {
209
+ width: 200px !important;
210
+ }
211
+
212
+ .width-250 {
213
+ width: 250px !important;
214
+ }
215
+
216
+ .width-300 {
217
+ width: 300px !important;
218
+ }
219
+
220
+ .width-350 {
221
+ width: 350px !important;
222
+ }
223
+
224
+ .width-400 {
225
+ width: 400px !important;
226
+ }
227
+
228
+ .width-450 {
229
+ width: 450px !important;
230
+ }
231
+
232
+ .width-500 {
233
+ width: 500px !important;
234
+ }
235
+
236
+ .width-550 {
237
+ width: 550px !important;
238
+ }
239
+
240
+ .width-600 {
241
+ width: 600px !important;
242
+ }
243
+
244
+ .ml-auto,
245
+ .mx-auto {
246
+ margin-left: auto !important;
247
+ }
248
+
249
+ /* Progress circle */
250
+ .progress-circle {
251
+ width: 50px;
252
+ height: 50px;
253
+ background: none;
254
+ position: relative;
255
+ }
256
+
257
+ .progress-circle-sm {
258
+ width: 40px !important;
259
+ height: 40px !important;
260
+ }
261
+
262
+ .progress-circle::after {
263
+ content: "";
264
+ width: 100%;
265
+ height: 100%;
266
+ border-radius: 50%;
267
+ border: 6px solid #f6f9fc;
268
+ position: absolute;
269
+ top: 0;
270
+ left: 0;
271
+ }
272
+
273
+ .progress-circle>span {
274
+ width: 50%;
275
+ height: 100%;
276
+ overflow: hidden;
277
+ position: absolute;
278
+ top: 0;
279
+ z-index: 1;
280
+ }
281
+
282
+ .progress-circle .progress-left {
283
+ left: 0;
284
+ }
285
+
286
+ .progress-circle .progress-bar {
287
+ width: 100%;
288
+ height: 100%;
289
+ background: none;
290
+ border-width: 6px;
291
+ border-style: solid;
292
+ position: absolute;
293
+ top: 0;
294
+ }
295
+
296
+ .progress-circle .progress-left .progress-bar {
297
+ left: 100%;
298
+ border-top-right-radius: 80px;
299
+ border-bottom-right-radius: 80px;
300
+ border-left: 0;
301
+ -webkit-transform-origin: center left;
302
+ transform-origin: center left;
303
+ }
304
+
305
+ .progress-circle .progress-right {
306
+ right: 0;
307
+ }
308
+
309
+ .progress-circle .progress-right .progress-bar {
310
+ left: -100%;
311
+ border-top-left-radius: 80px;
312
+ border-bottom-left-radius: 80px;
313
+ border-right: 0;
314
+ -webkit-transform-origin: center right;
315
+ transform-origin: center right;
316
+ }
317
+
318
+ .progress-circle .progress-value {
319
+ position: absolute;
320
+ top: 0;
321
+ left: 0;
322
+ }
323
+
324
+ .progress-circle-badge-counter {
325
+ position: absolute;
326
+ top: -10px;
327
+ right: -4px;
328
+ padding: .25rem .275rem;
329
+ }
330
+
331
+ .rounded-lg {
332
+ border-radius: 1rem;
333
+ }
334
+
335
+ .merchi-keyvisual {
336
+ background-image: url('../../public/merchi-jumper-front-back.png');
337
+ }
338
+
339
+ .footer-img-merchi-swipe {
340
+ background-image: url('../../public/merchi-swipe-outline.png');
341
+ background-size: contain;
342
+ background-repeat: no-repeat;
343
+ height: 100%;
344
+ width: 100%;
345
+ min-height: 100px;
346
+ }
347
+
348
+ .spinner,
349
+ .fade.in .spinner-small {
350
+ -webkit-animation: none !important;
351
+ -moz-animation: none !important;
352
+ -o-animation: none !important;
353
+ animation: none !important;
354
+ }
355
+
356
+ .spinner,
357
+ .spinner-small {
358
+ height: 100px !important;
359
+ width: 100px !important;
360
+ top: 45%;
361
+ left: 48%;
362
+ background: url('../../public/merchi-monster-loader.gif');
363
+ background-repeat: no-repeat;
364
+ background-position: center center;
365
+ background-size: 150px 150px;
366
+ margin: -20px 0 0 -20px;
367
+ position: absolute;
368
+ border: none;
369
+ }
370
+
371
+ .spinner,
372
+ .spinner-merchi-small {
373
+ height: 100px !important;
374
+ width: 100px !important;
375
+ background: url('../../public/merchi-monster-loader.gif');
376
+ background-repeat: no-repeat;
377
+ background-position: center center;
378
+ background-size: 150px 150px;
379
+ border: none;
380
+ }
381
+
382
+ .bg-landing-page {
383
+ background-color: #f8f9fe;
384
+ }
385
+
386
+ .navbar-landing {
387
+ background-color: #f8f9fe;
388
+ }
389
+
390
+ .navbar-horizontal .navbar-nav .nav-link {
391
+ font-size: 1rem !important;
392
+ font-weight: 1000 !important;
393
+ letter-spacing: 0;
394
+ }
395
+
396
+ .header-main-img {
397
+ background-size: contain;
398
+ background-repeat: no-repeat;
399
+ background-position: center;
400
+ min-height: 250px,
401
+ }
402
+
403
+ .landing-h1 {
404
+ font-size: 3.5rem;
405
+ font-weight: 800;
406
+ line-height: 3.5rem;
407
+ display: inline;
408
+ }
409
+
410
+ .landing-h2 {
411
+ font-size: 3rem;
412
+ font-weight: 800;
413
+ line-height: 3.5rem;
414
+ }
415
+
416
+ .landing-p {
417
+ font-size: 1.5rem;
418
+ line-height: 2.2rem;
419
+ }
420
+
421
+ .landing-p-strong {
422
+ font-size: 17px;
423
+ font-weight: 600;
424
+ }
425
+
426
+ .landing-p-1 {
427
+ font-size: 1.5rem;
428
+ line-height: 2.2rem;
429
+ }
430
+
431
+ @media(min-width: 500px) {
432
+ .header-main-img {
433
+ min-height: 500px;
434
+ }
435
+
436
+ .landing-h1 {
437
+ font-size: 3.5rem;
438
+ line-height: 3.5rem;
439
+ }
440
+ }
441
+
442
+ .display-3 {
443
+ line-height: 1.2;
444
+ margin-bottom: 1rem;
445
+ }
446
+
447
+ .progress-circle .progress-bar {
448
+ transition: all 0.1s linear;
449
+ }
450
+
451
+ .progress-circle-hero {
452
+ height: 110px;
453
+ width: 110px;
454
+ border-width: 6px;
455
+ }
456
+
457
+ .progress-circle-hero .progress-bar {
458
+ border-width: 6px !important;
459
+ }
460
+
461
+ .utils-progress .rounded-lg {
462
+ background: #fff;
463
+ border-radius: 100%;
464
+ padding: 10px;
465
+ }
466
+
467
+ .utils-progress .badge {
468
+ font-size: 14px;
469
+ margin-left: -10px !important;
470
+ border-top-right-radius: 20px;
471
+ border-bottom-right-radius: 20px;
472
+ padding: 15px;
473
+ }
474
+
475
+ .utils-progress .badge-left {
476
+ margin-right: -10px !important;
477
+ border-top-left-radius: 20px;
478
+ border-bottom-left-radius: 20px;
479
+ border-top-right-radius: 0;
480
+ border-bottom-right-radius: 0;
481
+ }
482
+
483
+ @media(max-width: 500px) {
484
+ .utils-progress .badge {
485
+ font-size: 12px;
486
+ }
487
+ }
488
+
489
+ @keyframes fade-in-out {
490
+ 0% {
491
+ opacity: 0;
492
+ transform: translateY(-15px);
493
+ }
494
+
495
+ 25% {
496
+ opacity: 1;
497
+ transform: translateY(0);
498
+ }
499
+
500
+ 75% {
501
+ opacity: 1;
502
+ transform: translateY(0);
503
+ }
504
+
505
+ 100% {
506
+ opacity: 0;
507
+ transform: translateY(15px);
508
+ }
509
+ }
510
+
511
+ .heading-fade-animate {
512
+ opacity: 0;
513
+ animation: fade-in-out cubic-bezier(.65, .05, .36, 1) infinite;
514
+ }
515
+
516
+ .customise-container {
517
+ height: 400px;
518
+ }
519
+
520
+ .customise-container_img {
521
+ position: absolute;
522
+ max-height: 400px;
523
+ top: 50%;
524
+ transform: translateY(-50%);
525
+ left: 0;
526
+ }
527
+
528
+ .customise-container_img-animated-position {
529
+ position: absolute;
530
+ left: calc(50% - 10px);
531
+ top: calc(50% - 20px);
532
+ transform: translate(-50%, -50%);
533
+ }
534
+
535
+ @media(min-width: 992px) and (max-width: 1200px) {
536
+ .customise-container_img-animated-position {
537
+ left: calc(50% - 18px);
538
+ top: calc(50% - 30px);
539
+ transform: translate(-50%, -50%);
540
+ }
541
+ }
542
+
543
+ .customise-container_lines-animated-position {
544
+ position: relative;
545
+ }
546
+
547
+ .animation-circular-progress-bar {
548
+ display: none;
549
+ }
550
+
551
+ @media(min-width: 991px) {
552
+ .animation-circular-progress-bar {
553
+ display: block;
554
+ height: 200px;
555
+ width: 200px;
556
+ border-radius: 100%;
557
+ background: linear-gradient(90deg, #ffc928 50%, rgba(255, 255, 255, 0) 50%);
558
+ position: relative;
559
+ z-index: 1;
560
+ }
561
+ }
562
+
563
+ .animation-circular-progress-bar-progress {
564
+ height: 200px;
565
+ width: 200px;
566
+ background: linear-gradient(90deg, #ffc928 50%, rgba(255, 255, 255, 0) 50%);
567
+ position: absolute;
568
+ left: 0;
569
+ top: 50%;
570
+ transform: translateY(-50%);
571
+ border-radius: 100%;
572
+ }
573
+
574
+ .animation-circular-progress-bar-progress-outer {
575
+ height: 200px;
576
+ width: 200px;
577
+ background: linear-gradient(90deg, #ffc928 50%, rgba(255, 255, 255, 1) 50%);
578
+ position: absolute;
579
+ left: 0;
580
+ top: 50%;
581
+ transform: translateY(-50%);
582
+ border-radius: 100%;
583
+ box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
584
+ }
585
+
586
+ .animation-circular-progress-bar-inner {
587
+ height: 150px;
588
+ width: 150px;
589
+ border-radius: 100%;
590
+ background: #fff;
591
+ position: absolute;
592
+ left: 50%;
593
+ top: 50%;
594
+ transform: translate(-50%, -50%);
595
+ box-shadow: 0 0 30px rgba(0, 0, 0, 0.1);
596
+ }
597
+
598
+ .analytics-animation_container_percentage_number {
599
+ color: #32325d;
600
+ font-family: Nunito, sans-serif;
601
+ font-size: 2.5rem;
602
+ font-weight: 800;
603
+ left: 50%;
604
+ position: absolute;
605
+ top: 50%;
606
+ transform: translate(-50%, -50%);
607
+ z-index: 1;
608
+ }
609
+
610
+ .analytics-img {
611
+ border-radius: 1.5rem;
612
+ display: block;
613
+ position: relative;
614
+ margin: auto;
615
+ width: 100%;
616
+ max-width: 400px;
617
+ box-shadow: 0 10px 30px rgba(1, 1, 1, 0.1);
618
+ }
619
+
620
+ @media(min-width: 991px) {
621
+ .analytics-img {
622
+ border-radius: 1.5rem;
623
+ max-width: 250px;
624
+ position: absolute;
625
+ top: 140px;
626
+ width: 100%;
627
+ right: 3rem;
628
+ }
629
+ }
630
+
631
+ @media(min-width: 1200px) {
632
+ .analytics-img {
633
+ border-radius: 1.5rem;
634
+ max-width: 330px;
635
+ position: absolute;
636
+ top: 100px;
637
+ width: 100%;
638
+ }
639
+ }
640
+
641
+ @media(max-width: 991px) {
642
+ .flex-column-reverse-md {
643
+ flex-direction: column-reverse !important;
644
+ }
645
+ }
646
+
647
+ @media(max-width: 460px) {
648
+ .search-merch-heading {
649
+ min-height: 144px;
650
+ }
651
+ }
652
+
653
+ .card-product-feature {
654
+ width: 50%;
655
+ }
656
+
657
+ /* Carousel SCSS */
658
+
659
+ $breakpoint-small: 576px;
660
+ $breakpoint-medium: 768px;
661
+ $breakpoint-large: 992px;
662
+
663
+ $default-height: 80%;
664
+ $default-width: 25%;
665
+ $level2-height: $default-height - 4%;
666
+ $level2-width: $default-width - 4%;
667
+ $level1-height: $default-height - 2%;
668
+ $level1-width: $default-width;
669
+ $level0-height: $default-height;
670
+ $level0-width: $default-width;
671
+ $level-2-left: 11%;
672
+ $level-1-left: 30%;
673
+ $level0-left: 50%;
674
+ $level1-left: 70%;
675
+ $level2-left: 89%;
676
+
677
+ $level0-height-sm: $default-height;
678
+ $level0-width-sm: $default-width + 40%;
679
+ $level0-left-sm: 50%;
680
+
681
+ $level1-height-sm: $default-height - 2%;
682
+ $level1-width-sm: $default-width + 40%;
683
+ $level-1-left-sm: 50%;
684
+ $level1-left-sm: 80%;
685
+
686
+ $level2-height-sm: $default-height - 8%;
687
+ $level2-width-sm: $default-width + 40%;
688
+ $level-2-left-sm: 15%;
689
+ $level2-left-sm: 70%;
690
+
691
+ .basedOn {
692
+ text-align: center;
693
+ font-size: 1.2em;
694
+ color: #FFF;
695
+
696
+ a,
697
+ a:visited,
698
+ a:hover,
699
+ a:active {
700
+ color: #FFEB3B;
701
+ }
702
+ }
703
+
704
+ .products-carousel {
705
+ height: 500px;
706
+ width: 100%;
707
+ margin: auto;
708
+ position: relative;
709
+ display: flex;
710
+ justify-content: center;
711
+ }
712
+
713
+ .products-carousel-main {
714
+ display: block;
715
+ position: relative;
716
+ flex-grow: 1;
717
+ overflow: hidden;
718
+ }
719
+
720
+ .arrow {
721
+ display: flex;
722
+ align-items: center;
723
+ justify-content: center;
724
+ width: 50px;
725
+ height: 100%;
726
+ font-size: 2em;
727
+ cursor: pointer;
728
+ z-index: 1000;
729
+ transition: all 500ms;
730
+ }
731
+
732
+ .arrow i {
733
+ position: static;
734
+ }
735
+
736
+ .item {
737
+ color: white;
738
+ font-size: 40px;
739
+ position: absolute;
740
+ left: 50%;
741
+ top: 50%;
742
+ transform: translate(-50%, -50%);
743
+ transition: box-shadow 1s, height 250ms, width 250ms, left 1s, margin-top 1s,
744
+ line-height 250ms, background-color 1s;
745
+ }
746
+
747
+ .level-2 {
748
+ height: $level2-height;
749
+ width: $level2-width;
750
+ line-height: $level2-height;
751
+
752
+ @media (min-width: $breakpoint-large) {
753
+ left: $level-2-left;
754
+ }
755
+
756
+ left: 3%;
757
+ }
758
+
759
+ .level-1 {
760
+ @media (min-width: $breakpoint-large) {
761
+ height: $level1-height;
762
+ width: $level1-width;
763
+ line-height: $level1-height;
764
+ left: $level-1-left;
765
+ }
766
+
767
+ height: $level1-height;
768
+ width: $level1-width;
769
+ line-height: $level1-height;
770
+ left: 10%;
771
+ }
772
+
773
+ .level0 {
774
+ @media (min-width: $breakpoint-large) {
775
+ height: $level0-height;
776
+ width: $level0-width;
777
+ line-height: $level0-height;
778
+ left: $level0-left;
779
+ }
780
+
781
+ height: $level0-height-sm;
782
+ width: $level0-width-sm;
783
+ line-height: $level0-height-sm;
784
+ left: $level0-left-sm;
785
+ }
786
+
787
+ .level1 {
788
+ @media (min-width: $breakpoint-large) {
789
+ height: $level1-height;
790
+ width: $level1-width;
791
+ line-height: $level1-height;
792
+ left: $level1-left;
793
+ }
794
+
795
+ height: $level1-height-sm;
796
+ width: $level1-width-sm;
797
+ line-height: $level1-height-sm;
798
+ left: $level1-left-sm;
799
+ }
800
+
801
+ .level2 {
802
+ @media (min-width: $breakpoint-large) {
803
+ height: $level2-height;
804
+ width: $level2-width;
805
+ line-height: $level2-height;
806
+ left: $level2-left;
807
+ }
808
+
809
+ height: $level2-height-sm;
810
+ width: $level2-width-sm;
811
+ line-height: $level2-height-sm;
812
+ left: $level2-left-sm;
813
+ }
814
+
815
+ .level-2,
816
+ .level2 {
817
+ z-index: 0;
818
+ }
819
+
820
+ .level-1,
821
+ .level1 {
822
+ z-index: 1;
823
+ }
824
+
825
+ .level0 {
826
+ z-index: 2;
827
+ }
828
+
829
+ .left-enter {
830
+ opacity: 0;
831
+
832
+ @media (min-width: $breakpoint-large) {
833
+ left: $level2-left;
834
+ height: $level2-height - $default-height;
835
+ width: $level2-width - $default-width;
836
+ line-height: $level2-height - 30;
837
+ }
838
+
839
+ left: 3%;
840
+ left: $level2-left;
841
+ height: $level2-height - $default-height;
842
+ width: $level2-width - $default-width;
843
+ line-height: $level2-height - 30;
844
+
845
+ &.left-enter-active {
846
+ opacity: 1;
847
+ left: 3%;
848
+
849
+ @media (min-width: $breakpoint-large) {
850
+ left: $level2-left;
851
+ }
852
+
853
+ height: $level2-height;
854
+ width: $level2-width;
855
+ line-height: $level2-height;
856
+ transition: box-shadow 1s,
857
+ left 1s,
858
+ opacity 1s,
859
+ height 250ms,
860
+ width 250ms,
861
+ margin-top 1s,
862
+ line-height 1s;
863
+ }
864
+ }
865
+
866
+ .left-leave {
867
+ opacity: 1;
868
+ left: 3%;
869
+
870
+ @media (min-width: $breakpoint-large) {
871
+ left: $level-2-left;
872
+ }
873
+
874
+ height: $level2-height;
875
+ width: $level2-width-sm;
876
+ line-height: $level2-height;
877
+ z-index: -1;
878
+
879
+ &.left-leave-active {
880
+ z-index: -1;
881
+ left: 3%;
882
+
883
+ @media (min-width: $breakpoint-large) {
884
+ left: $level-2-left;
885
+ }
886
+
887
+ opacity: 0;
888
+ height: $level2-height - $default-height;
889
+ width: $level2-width-sm - $default-width;
890
+ line-height: 120px;
891
+ transition: box-shadow 1s,
892
+ left 1s,
893
+ opacity 1s,
894
+ height 250ms,
895
+ width 250ms,
896
+ margin-top 1s,
897
+ line-height 1s;
898
+ }
899
+ }
900
+
901
+ .right-enter {
902
+ opacity: 0;
903
+ line-height: $level2-height - 30;
904
+ height: $level2-height - $default-height;
905
+ width: $level2-width - $default-width;
906
+ left: 3%;
907
+
908
+ @media (min-width: $breakpoint-large) {
909
+ left: $level-2-left;
910
+ }
911
+
912
+ &.right-enter-active {
913
+ @media (min-width: $breakpoint-large) {
914
+ left: $level-2-left;
915
+ }
916
+
917
+ left: 3%;
918
+ opacity: 1;
919
+ height: $level2-height;
920
+ line-height: $level2-height;
921
+ width: $level2-width;
922
+ transition: box-shadow 1s,
923
+ left 1s,
924
+ opacity 1s,
925
+ height 250ms,
926
+ width 250ms,
927
+ margin-top 1s,
928
+ line-height 1s;
929
+ }
930
+ }
931
+
932
+ .right-leave {
933
+ height: $level2-height;
934
+ opacity: 1;
935
+ line-height: $level2-height;
936
+ width: $level2-width;
937
+
938
+ @media (min-width: $breakpoint-large) {
939
+ left: $level-2-left;
940
+ }
941
+
942
+ left: 70%;
943
+
944
+ &.right-leave-active {
945
+ @media (min-width: $breakpoint-large) {
946
+ left: $level-2-left;
947
+ }
948
+
949
+ left: 70%;
950
+ opacity: 0;
951
+ height: $level2-height - $default-height;
952
+ width: $level2-width - $default-width;
953
+ line-height: $level2-height - 30;
954
+ transition: box-shadow 1s,
955
+ left 1s,
956
+ opacity 1s,
957
+ height 250ms,
958
+ width 250ms,
959
+ margin-top 1s,
960
+ line-height 1s;
961
+ }
962
+ }
963
+
964
+ .noselect {
965
+ -webkit-user-select: none;
966
+ -html-user-select: none;
967
+ -moz-user-select: none;
968
+ -ms-user-select: none;
969
+ user-select: none;
970
+ }
971
+
972
+ .image-container {
973
+ position: relative;
974
+ width: 100%;
975
+ height: 300px;
976
+ overflow: hidden;
977
+ }
978
+
979
+ .card-product-feature-img {
980
+ position: absolute;
981
+ width: 100%;
982
+ height: 100%;
983
+ max-height: 400px;
984
+ object-fit: cover;
985
+ }
986
+
987
+ .card-product-title {
988
+ color: #32325d;
989
+ font-weight: 600;
990
+ line-height: 1.5;
991
+ text-overflow: ellipsis;
992
+ overflow: hidden;
993
+ white-space: nowrap;
994
+ padding: 1rem;
995
+ }
996
+
997
+ .card-container {
998
+ display: block;
999
+ }
1000
+
1001
+ /*
1002
+ Avatar
1003
+ Badges
1004
+ Fixes
1005
+ Cards
1006
+ */
1007
+
1008
+ /* vietnamese */
1009
+ @font-face {
1010
+ font-family: 'Nunito';
1011
+ font-style: normal;
1012
+ font-weight: 400;
1013
+ src: local('Nunito Regular'), local('Nunito-Regular'), url(../fonts/nunito-regular-webfont.woff2) format('woff2');
1014
+ unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
1015
+ }
1016
+
1017
+ /* latin-ext */
1018
+ @font-face {
1019
+ font-family: 'Nunito';
1020
+ font-style: normal;
1021
+ font-weight: 400;
1022
+ src: local('Nunito Regular'), local('Nunito-Regular'), url(../fonts/nunito-regular-webfont.woff2) format('woff2');
1023
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
1024
+ }
1025
+
1026
+ /* latin */
1027
+ @font-face {
1028
+ font-family: 'Nunito';
1029
+ font-style: normal;
1030
+ font-weight: 400;
1031
+ src: local('Nunito Regular'), local('Nunito-Regular'), url(../fonts/nunito-regular-webfont.woff2) format('woff2');
1032
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
1033
+ }
1034
+
1035
+ /* vietnamese */
1036
+ @font-face {
1037
+ font-family: 'Nunito';
1038
+ font-style: normal;
1039
+ font-weight: 700;
1040
+ src: local('Nunito Bold'), local('Nunito-Bold'), url(../fonts/nunito-bold-webfont.woff2) format('woff2');
1041
+ unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
1042
+ }
1043
+
1044
+ /* latin-ext */
1045
+ @font-face {
1046
+ font-family: 'Nunito';
1047
+ font-style: normal;
1048
+ font-weight: 700;
1049
+ src: local('Nunito Bold'), local('Nunito-Bold'), url(../fonts/nunito-bold-webfont.woff2) format('woff2');
1050
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
1051
+ }
1052
+
1053
+ /* latin */
1054
+ @font-face {
1055
+ font-family: 'Nunito';
1056
+ font-style: normal;
1057
+ font-weight: 700;
1058
+ src: local('Nunito Bold'), local('Nunito-Bold'), url(../fonts/nunito-bold-webfont.woff2) format('woff2');
1059
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
1060
+ }
1061
+
1062
+ /*Avatar*/
1063
+ .avatar.rounded-circle img {
1064
+ max-height: 36px;
1065
+ }
1066
+
1067
+ .avatar-bg {
1068
+ background-repeat: no-repeat;
1069
+ background-position: center;
1070
+ background-size: cover;
1071
+ }
1072
+
1073
+ /*Badges*/
1074
+ .badge-right-align {
1075
+ position: absolute;
1076
+ right: 1rem;
1077
+ }
1078
+
1079
+ .badge-inverse {
1080
+ color: #212529;
1081
+ background-color: #f7fafc;
1082
+ }
1083
+
1084
+ .badge-side-nav {
1085
+ height: 19px;
1086
+ width: 19px;
1087
+ padding: 5px 1px 0px 0px;
1088
+ margin-left: 1em;
1089
+ }
1090
+
1091
+ /*Fixes*/
1092
+ .react-select-2-fix>div {
1093
+ border: 1px solid #dee2e6;
1094
+ font-size: 0.875rem;
1095
+ min-height: calc(2.75rem + 2px);
1096
+ }
1097
+
1098
+ .list-filter-container-left {
1099
+ margin-bottom: 0 !important;
1100
+ margin-top: 0 !important;
1101
+ padding-top: 1.1rem;
1102
+ }
1103
+
1104
+ .list-filter-container-right {
1105
+ margin-bottom: 0 !important;
1106
+ margin-top: 0 !important;
1107
+ padding-top: 1rem;
1108
+ padding-bottom: 0.5rem;
1109
+ }
1110
+
1111
+ .badge-danger {
1112
+ color: #fff;
1113
+ background-color: #dc3545;
1114
+ }
1115
+
1116
+ /* Firefox input autofill fix */
1117
+ input:autofill {
1118
+ background: #fff;
1119
+ /* or any other */
1120
+ }
1121
+
1122
+ /*Cards*/
1123
+ .card-title {
1124
+ text-overflow: ellipsis;
1125
+ overflow: hidden;
1126
+ white-space: nowrap;
1127
+ }
1128
+
1129
+ @keyframes animationBlink {
1130
+ 0% {
1131
+ opacity: 1;
1132
+ }
1133
+
1134
+ 50% {
1135
+ opacity: 0.2;
1136
+ }
1137
+
1138
+ 100% {
1139
+ opacity: 1;
1140
+
1141
+ }
1142
+ }
1143
+
1144
+ .animation-blink {
1145
+ animation-name: animationBlink;
1146
+ animation-duration: 0.5s;
1147
+ animation-iteration-count: infinite;
1148
+ animation-timing-function: ease-in-out;
1149
+ }
1150
+
1151
+ /* Product Images */
1152
+ .preview-container {
1153
+ display: flex;
1154
+ height: 490px;
1155
+ padding-bottom: 1rem !important;
1156
+ padding-top: 1rem !important;
1157
+ }
1158
+
1159
+ .preview-container-stacked {
1160
+ display: flex;
1161
+ padding-bottom: 1rem !important;
1162
+ padding-top: 1rem !important;
1163
+ }
1164
+
1165
+ .preview-container-main-image {
1166
+ align-items: center;
1167
+ display: flex;
1168
+ justify-content: center;
1169
+ width: 100%;
1170
+ }
1171
+
1172
+ .product-pic img {
1173
+ width: 100%;
1174
+ border-radius: .375rem;
1175
+ height: auto;
1176
+ max-width: 470px;
1177
+ max-height: 446px;
1178
+ }
1179
+
1180
+ .thumbnails {}
1181
+
1182
+ .fit-image {
1183
+ width: 100%;
1184
+ object-fit: cover;
1185
+ border-radius: .375rem;
1186
+ }
1187
+
1188
+ .tb {
1189
+ width: 62px;
1190
+ height: 62px;
1191
+ margin: 2px;
1192
+ opacity: 0.4;
1193
+ cursor: pointer;
1194
+ border-radius: .375rem;
1195
+ }
1196
+
1197
+ .tb-active {
1198
+ opacity: 1;
1199
+ }
1200
+
1201
+ .thumbnail-img {
1202
+ width: 60px;
1203
+ height: 60px;
1204
+ }
1205
+
1206
+ [data-rmiz-wrap="visible"],
1207
+ [data-rmiz-wrap="hidden"] {
1208
+ position: relative;
1209
+ display: inline-flex;
1210
+ align-items: flex-start;
1211
+ }
1212
+
1213
+ [data-rmiz-wrap="hidden"] {
1214
+ visibility: hidden;
1215
+ }
1216
+
1217
+ [data-rmiz-overlay] {
1218
+ position: fixed;
1219
+ top: 0;
1220
+ right: 0;
1221
+ bottom: 0;
1222
+ left: 0;
1223
+ width: 100%;
1224
+ height: 100%;
1225
+ transition-property: background-color;
1226
+ }
1227
+
1228
+ [data-rmiz-btn-open],
1229
+ [data-rmiz-btn-close] {
1230
+ position: absolute;
1231
+ top: 0;
1232
+ right: 0;
1233
+ bottom: 0;
1234
+ left: 0;
1235
+ width: 100%;
1236
+ height: 100%;
1237
+
1238
+ /* reset styles */
1239
+ margin: 0;
1240
+ padding: 0;
1241
+ border: none;
1242
+ border-radius: 0;
1243
+ font: inherit;
1244
+ color: inherit;
1245
+ background: none;
1246
+ -webkit-appearance: none;
1247
+ -moz-appearance: none;
1248
+ appearance: none;
1249
+ }
1250
+
1251
+ [data-rmiz-btn-open] {
1252
+ cursor: zoom-in;
1253
+ }
1254
+
1255
+ [data-rmiz-btn-close] {
1256
+ cursor: zoom-out;
1257
+ }
1258
+
1259
+ [data-rmiz-modal-content] {
1260
+ position: absolute;
1261
+ transition-property: transform;
1262
+ transform-origin: center center;
1263
+ }
1264
+
1265
+ /* Draft js RTE styles */
1266
+
1267
+ .rte-editor-iframeContainer {
1268
+ width: 100%;
1269
+ height: 0;
1270
+ position: relative;
1271
+ min-height: 300px;
1272
+ padding-bottom: 56.25%;
1273
+ }
1274
+
1275
+ .rte-editor-iframe {
1276
+ width: 100%;
1277
+ height: 100%;
1278
+ position: absolute;
1279
+ top: 0;
1280
+ left: 0;
1281
+ }
1282
+
1283
+ .rte-editor-invalidVideoSrc {
1284
+ text-align: center;
1285
+ background-color: #eaeaea;
1286
+ padding: 1em;
1287
+ }
1288
+
1289
+ .rte-editor-video {
1290
+ width: 100%;
1291
+ height: 100%;
1292
+ }
1293
+
1294
+ /* **********
1295
+ Embed form
1296
+ ********** */
1297
+ .merchi-embed-form {
1298
+
1299
+ /* buttons */
1300
+ &_button {
1301
+ &-submit {
1302
+ margin: 4px !important;
1303
+ }
1304
+ }
1305
+
1306
+ /* variant container */
1307
+ &_variantion-container {
1308
+ gap: 2rem;
1309
+ display: flex;
1310
+ flex-direction: column;
1311
+ padding: 1rem 0;
1312
+
1313
+ @media(min-width: 992px) {
1314
+ padding: 0;
1315
+ }
1316
+ }
1317
+
1318
+ /* information */
1319
+ &_information-container {
1320
+ margin-top: 1rem;
1321
+
1322
+ @media(min-width: 992px) {
1323
+ padding: 0;
1324
+ }
1325
+
1326
+ ul {
1327
+ gap: 1rem;
1328
+ }
1329
+
1330
+ .nav-item {
1331
+ padding: 0 !important;
1332
+ }
1333
+
1334
+ &-list-group-item {
1335
+ padding: 0.5rem !important;
1336
+ list-style-type: none;
1337
+ }
1338
+ }
1339
+
1340
+ /* images */
1341
+ &_img {
1342
+ &-container {}
1343
+
1344
+ &-product-pic {
1345
+ img {
1346
+ max-width: 100%;
1347
+ border-radius: 0.5rem;
1348
+ }
1349
+ }
1350
+
1351
+ &-preview-container {
1352
+ flex-direction: column;
1353
+ }
1354
+
1355
+ &-preview-container-main-image {
1356
+ align-items: center;
1357
+ display: flex;
1358
+ justify-content: center;
1359
+ width: 100%;
1360
+ }
1361
+
1362
+ &-thumbnails {
1363
+ gap: 1rem;
1364
+ flex-wrap: wrap;
1365
+ justify-content: center;
1366
+ padding: 0.5rem;
1367
+ }
1368
+ }
1369
+
1370
+ /* react zoom package */
1371
+ &_zoom {
1372
+ &-img button {
1373
+ font-size: 1.5rem;
1374
+ display: flex;
1375
+ }
1376
+ }
1377
+
1378
+ /* cost summary */
1379
+ &_summary {
1380
+ &-product-cost {
1381
+ display: flex;
1382
+ flex-direction: row;
1383
+ justify-content: space-between;
1384
+ width: 100%;
1385
+ margin: 1rem 0;
1386
+ flex-direction: wrap;
1387
+ }
1388
+
1389
+ &-product-cost-container {
1390
+ display: flex;
1391
+ flex-direction: column;
1392
+ font-size: 1.2rem;
1393
+ margin-top: 1.5rem
1394
+ }
1395
+
1396
+ &-button-submit-container {
1397
+ display: flex;
1398
+ }
1399
+ }
1400
+
1401
+ /* variation dropzone */
1402
+ &_dropzone {
1403
+ padding: 0;
1404
+ border: none;
1405
+ color: inherit;
1406
+ padding: 2rem 1rem;
1407
+ background-color: #fff;
1408
+ border: 1px dashed #dee2e6;
1409
+ border-radius: 0.375rem;
1410
+ text-align: center;
1411
+ color: #8898aa;
1412
+ order: -1;
1413
+ cursor: pointer;
1414
+ z-index: 999;
1415
+ transition: all .2s ease-in-out;
1416
+
1417
+ &:hover {
1418
+ box-shadow: 0 0.5em 0.75em #00000014;
1419
+ scale: 1.002;
1420
+ }
1421
+
1422
+ &-text-container {
1423
+ display: flex;
1424
+ }
1425
+
1426
+ &-icon-container {
1427
+ display: inline-block;
1428
+ width: 50px;
1429
+ height: 50px;
1430
+ background: #dfdfdf;
1431
+ border-radius: 100%;
1432
+ position: relative;
1433
+ margin-right: 1rem;
1434
+ }
1435
+
1436
+ &-icon {
1437
+ position: absolute;
1438
+ display: block;
1439
+ top: 50%;
1440
+ height: 24px;
1441
+ left: 50%;
1442
+ transform: translate(-50%, -50%)
1443
+ }
1444
+
1445
+ &-icon-plus {
1446
+ transition: all .15s ease-in-out;
1447
+ position: absolute;
1448
+ background: white;
1449
+ height: 30px;
1450
+ width: 30px !important;
1451
+ border-radius: 100%;
1452
+ border: 1px solid #dfdfdf;
1453
+ padding: 5px;
1454
+ display: block;
1455
+ right: -8px;
1456
+ bottom: -14px;
1457
+ top: initial;
1458
+ left: initial;
1459
+
1460
+ &:hover {
1461
+ scale: 1.2;
1462
+ }
1463
+ }
1464
+ }
1465
+
1466
+ /* variation image select */
1467
+ &_image-select-option {
1468
+ &-container {
1469
+ display: flex;
1470
+ gap: 1rem;
1471
+ flex-wrap: wrap;
1472
+ }
1473
+
1474
+ &-item-container {
1475
+ flex-grow: 1;
1476
+ flex: 0 0 calc(50% - 0.50rem);
1477
+
1478
+ @media(min-width: 782px) {
1479
+ flex: 0 0 calc(33.33% - 0.67rem);
1480
+ }
1481
+ }
1482
+
1483
+ &-item {
1484
+ background: #fff;
1485
+ border-radius: 0.5em;
1486
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
1487
+ cursor: pointer;
1488
+ transition-duration: 0.15s;
1489
+ position: relative;
1490
+ text-align: center;
1491
+ padding: 1rem 0.5rem;
1492
+
1493
+ &:hover {
1494
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
1495
+ transition-duration: 0.25s;
1496
+ }
1497
+
1498
+ &-img {
1499
+ display: block;
1500
+ height: 150px;
1501
+ margin: auto;
1502
+ max-width: 150px;
1503
+ width: 100%;
1504
+ background-repeat: no-repeat;
1505
+ background-size: contain;
1506
+ }
1507
+
1508
+ svg {
1509
+ position: absolute;
1510
+ top: 0.5rem;
1511
+ right: 0.5rem;
1512
+ background: #fff;
1513
+ padding: 2px;
1514
+ padding-bottom: 1px;
1515
+ border-radius: 0.4rem;
1516
+ color: $brandRed;
1517
+ font-size: 28px !important;
1518
+ -webkit-animation-name: fadeInOpacity;
1519
+ -webkit-animation-iteration-count: 1;
1520
+ -webkit-animation-duration: 0.2s;
1521
+ animation-name: fadeInOpacity;
1522
+ animation-iteration-count: 1;
1523
+ animation-duration: 0.2s;
1524
+ }
1525
+ }
1526
+ }
1527
+
1528
+ /* variation color select */
1529
+ &_color-select {
1530
+ &-container {
1531
+ display: flex;
1532
+ flex-wrap: wrap;
1533
+ gap: 2rem;
1534
+
1535
+ @media (max-width: 768px) {
1536
+ justify-content: center;
1537
+ }
1538
+ }
1539
+
1540
+ &-indicator {
1541
+ border-radius: 100%;
1542
+ height: 65px;
1543
+ width: 65px;
1544
+ }
1545
+
1546
+ &-item {
1547
+ align-items: center;
1548
+ display: flex;
1549
+ flex-direction: column;
1550
+ position: relative
1551
+ }
1552
+
1553
+ &-description {
1554
+ white-space: nowrap;
1555
+ text-overflow: ellipsis;
1556
+ overflow: clip;
1557
+ max-width: 125px;
1558
+ text-transform: capitalize;
1559
+ background-color: white;
1560
+ padding: 0 0.4rem;
1561
+ margin: 6px 0 0 0;
1562
+ cursor: pointer;
1563
+ border-radius: 5px;
1564
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
1565
+ font-size: 0.8rem;
1566
+ font-weight: 600;
1567
+ }
1568
+
1569
+ &-option {
1570
+ border: 4px solid #fff;
1571
+ border-radius: 100%;
1572
+ box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1);
1573
+ transition: all 0.2s ease-in-out;
1574
+ z-index: 1;
1575
+
1576
+ &:hover {
1577
+ box-shadow: 0 5px 4px rgba(0, 0, 0, 0.1);
1578
+ }
1579
+
1580
+ i,
1581
+ svg {
1582
+ position: absolute;
1583
+ top: 0;
1584
+ right: 0;
1585
+ background: #fff;
1586
+ border-radius: 100%;
1587
+ color: $brandRed;
1588
+ font-size: 21px;
1589
+ }
1590
+ }
1591
+ }
1592
+
1593
+ /* variation checkbox and radio */
1594
+ &_checkbox_radio {
1595
+ &-container {
1596
+ display: flex;
1597
+ flex-direction: column;
1598
+ }
1599
+
1600
+ &-item-container {
1601
+ display: flex;
1602
+ flex-direction: row;
1603
+ gap: 1rem;
1604
+ flex-wrap: wrap;
1605
+ }
1606
+
1607
+ // item and input are in the merchi embed form with the className merchi-embed-form_checkbox_radio-item, but I dont know what its used for. Leaving it here in case we need it later.
1608
+ &-item {}
1609
+
1610
+ &-input {
1611
+ position: absolute;
1612
+ opacity: 0;
1613
+ cursor: pointer;
1614
+ z-index: 999;
1615
+ height: 33px;
1616
+ width: 33px;
1617
+
1618
+ // Define the styles for the checkbox label
1619
+ +label {
1620
+ position: relative;
1621
+ cursor: pointer;
1622
+ display: flex;
1623
+ align-items: center;
1624
+ margin-bottom: 0;
1625
+
1626
+ // Define the custom checkbox indicator
1627
+ &::before {
1628
+ content: " ";
1629
+ display: inline-block;
1630
+ margin-right: 0.5rem;
1631
+ width: 33px;
1632
+ height: 33px;
1633
+ background-color: white;
1634
+ border-radius: 6px;
1635
+ box-shadow: rgba(42, 42, 42, 0.15) 0px 2px 2px 0px;
1636
+ transition: all 0.1s ease-in-out;
1637
+ cursor: pointer;
1638
+ }
1639
+
1640
+ // Define the custom checkbox indicator when checked
1641
+ &::after {
1642
+ content: "";
1643
+ width: 11px;
1644
+ height: 11px; // Size of the checkmark
1645
+ background: $brandRed;
1646
+ border-radius: 100%;
1647
+ position: absolute;
1648
+ top: 50%;
1649
+ left: 11px;
1650
+ transform: translateY(-50%);
1651
+ opacity: 0;
1652
+ transition: all 0.3s ease; // Smooth transition for hover/focus effects
1653
+ cursor: pointer;
1654
+ }
1655
+ }
1656
+
1657
+ &:disabled+label {
1658
+ &::before {
1659
+ opacity: 0.8;
1660
+ box-shadow: none;
1661
+ cursor: not-allowed;
1662
+ border: inset 1px #0000002b;
1663
+ background-color: transparent;
1664
+ }
1665
+
1666
+ &::after {
1667
+ cursor: not-allowed;
1668
+ }
1669
+ }
1670
+
1671
+ &:disabled+label &-label {
1672
+ opacity: 0.8;
1673
+ box-shadow: none;
1674
+ cursor: not-allowed;
1675
+ border: inset 1px #0000002b;
1676
+ background-color: transparent;
1677
+ }
1678
+
1679
+ &:disabled+label:hover::before {
1680
+ box-shadow: none;
1681
+ border: inset 1px #0000002b;
1682
+ }
1683
+
1684
+ // Apply styles to the checkbox when checked
1685
+ &:checked+label::before {
1686
+ box-shadow: rgba(42, 42, 42, 0.15) 0px 1px 1px 0px;
1687
+ }
1688
+
1689
+ // Show the checkmark when the checkbox is checked
1690
+ &:checked+label::after {
1691
+ opacity: 1;
1692
+ }
1693
+
1694
+ }
1695
+
1696
+ &-label {
1697
+ position: relative;
1698
+ cursor: auto !important;
1699
+ display: inline-flex;
1700
+ align-items: center;
1701
+ height: 33px;
1702
+ }
1703
+
1704
+ &-super {
1705
+ display: block;
1706
+ color: rgb(129, 136, 155);
1707
+ padding: 3px 10px;
1708
+ font-weight: bold;
1709
+ border-radius: 8px;
1710
+ font-size: 11px;
1711
+ margin-top: 10px;
1712
+ width: -moz-fit-content;
1713
+ width: fit-content;
1714
+ box-shadow: 1px 1px 2px #00000026;
1715
+ background: #f2f4fb;
1716
+ border-top: 1px solid white;
1717
+ border-left: 1px solid white;
1718
+ }
1719
+ }
1720
+
1721
+ /* titles */
1722
+ &_input {
1723
+ &-radio {
1724
+ font-size: 18px;
1725
+ font-weight: 800;
1726
+ padding-bottom: 0.25rem;
1727
+ }
1728
+
1729
+ &-checkbox {
1730
+ font-size: 18px;
1731
+ font-weight: 800;
1732
+ padding-bottom: 0.25rem;
1733
+
1734
+ }
1735
+
1736
+ &-select {
1737
+ font-size: 18px;
1738
+ font-weight: 800;
1739
+ padding-bottom: 0.25rem;
1740
+
1741
+ }
1742
+
1743
+ &-image-select {
1744
+ font-size: 18px;
1745
+ font-weight: 800;
1746
+ padding-bottom: 0.25rem;
1747
+
1748
+ }
1749
+
1750
+ &-file {
1751
+ font-size: 18px;
1752
+ font-weight: 800;
1753
+ padding-bottom: 0.25rem;
1754
+
1755
+ }
1756
+ }
1757
+
1758
+ /* other */
1759
+ &_variation-cost-detail {
1760
+ display: block;
1761
+ color: rgb(129, 136, 155);
1762
+ padding: 3px 10px;
1763
+ font-weight: bold;
1764
+ border-radius: 8px;
1765
+ font-size: 14px;
1766
+ width: -moz-fit-content;
1767
+ width: fit-content;
1768
+ box-shadow: 1px 1px 2px #00000026;
1769
+ background: #f2f4fb;
1770
+ border-top: 1px solid white;
1771
+ border-left: 1px solid white;
1772
+ margin: 0.25rem 0rem 0.5rem;
1773
+ }
1774
+
1775
+ /* product groups */
1776
+ &_product-group {
1777
+ &-container {
1778
+ background: rgba(255, 255, 255, 0.75);
1779
+ border-radius: 0.75rem;
1780
+ padding: 0.75rem 1rem 1rem;
1781
+ display: flex;
1782
+ flex-direction: column;
1783
+ gap: 1rem;
1784
+ }
1785
+
1786
+ &-actions-container {
1787
+ display: flex;
1788
+ align-items: center;
1789
+ justify-content: space-between;
1790
+ width: 100%;
1791
+
1792
+ @media(min-width: 500px) {
1793
+ width: auto;
1794
+ }
1795
+ }
1796
+
1797
+ &-actions-cost-container {
1798
+ align-items: center;
1799
+ display: flex;
1800
+ justify-content: space-between;
1801
+ margin-top: 2rem;
1802
+ flex-wrap: wrap;
1803
+ gap: 1rem;
1804
+ }
1805
+
1806
+ &-total-cost {
1807
+ font-weight: 800;
1808
+ }
1809
+
1810
+ &-button-remove {
1811
+ width: 100%;
1812
+
1813
+ @media(min-width: 500px) {
1814
+ width: fit-content;
1815
+ }
1816
+ }
1817
+
1818
+ &-button-add-group {
1819
+ display: flex;
1820
+ align-items: center;
1821
+ justify-content: center;
1822
+ width: 100%;
1823
+ margin: 1rem 0;
1824
+ }
1825
+
1826
+ &-inventory-status {
1827
+ width: fit-content;
1828
+ border-radius: 50px;
1829
+ color: white;
1830
+ font-weight: bold;
1831
+ font-size: 0.75rem;
1832
+ padding: 3px;
1833
+ display: flex;
1834
+ gap: 0.25rem;
1835
+ align-items: center;
1836
+ }
1837
+
1838
+ &-variation-container {
1839
+ display: flex;
1840
+ flex-direction: column;
1841
+ gap: 2rem;
1842
+ }
1843
+
1844
+ &-input-qty-container {
1845
+ font-size: 18px;
1846
+ font-weight: 800;
1847
+ }
1848
+ }
1849
+
1850
+ /* quantity input */
1851
+ &_quantity {
1852
+ &-container {}
1853
+
1854
+ &-label-container {
1855
+ font-size: 18px;
1856
+ font-weight: 800;
1857
+ ;
1858
+ margin-bottom: 0.5rem;
1859
+ }
1860
+ }
1861
+ }
1862
+
1863
+ /* **********
1864
+ END Embed from
1865
+ ********** */
1866
+
1867
+ .animate_spin {
1868
+ animation: spin 0.3s linear infinite;
1869
+ }
1870
+
1871
+ @keyframes spin {
1872
+ 0% {
1873
+ transform: rotate(0deg);
1874
+ }
1875
+
1876
+ 100% {
1877
+ transform: rotate(359deg);
1878
+ }
1879
+ }
1880
+
1881
+ .merchi-dropzone-sign-up {
1882
+ padding: 0;
1883
+ border: none;
1884
+ color: inherit;
1885
+ padding: 2rem 1rem;
1886
+ background-color: #fff;
1887
+ border: 1px dashed #dee2e6;
1888
+ border-radius: 0.375rem;
1889
+ text-align: center;
1890
+ color: #8898aa;
1891
+ transition: all .15s ease;
1892
+ cursor: pointer;
1893
+ z-index: 999;
1894
+ }
1895
+
1896
+ .merchi-dropzone-file-uploaded {
1897
+ height: 50px;
1898
+ width: 50px;
1899
+ margin: 0px 0px 0px auto;
1900
+ border-radius: 0.375rem;
1901
+ object-fit: cover;
1902
+ }
1903
+
1904
+ /* Variation colour select */
1905
+ .color-select-option-container {
1906
+ display: inline-block;
1907
+ text-align: center;
1908
+ }
1909
+
1910
+ .merchi-dropzone {
1911
+ padding: 0;
1912
+ border: none;
1913
+ color: inherit;
1914
+ padding: 2rem 1rem;
1915
+ background-color: #fff;
1916
+ border: 1px dashed #dee2e6;
1917
+ border-radius: 0.375rem;
1918
+ text-align: center;
1919
+ color: #8898aa;
1920
+ transition: all .15s ease;
1921
+ order: -1;
1922
+ cursor: pointer;
1923
+ z-index: 999;
1924
+ }
1925
+
1926
+ .merchi-dropzone-upload-text {
1927
+ padding-left: 20px;
1928
+ }
1929
+
1930
+ .uploaded-variation-file {
1931
+ position: relative;
1932
+ }
1933
+
1934
+ .uploaded-variation-file-icon-wrapper {
1935
+ position: absolute;
1936
+ top: -2px;
1937
+ right: -2px;
1938
+ padding: 4px;
1939
+ padding-top: 0px;
1940
+ cursor: pointer;
1941
+ }
1942
+
1943
+ .merchi-collapse {
1944
+ display: none;
1945
+ }
1946
+
1947
+ .merchi-collapse.show {
1948
+ display: block;
1949
+ }
1950
+
1951
+ .product-group-total-cost {
1952
+ align-self: center;
1953
+ flex: 1 1 auto;
1954
+ font-size: 1.0625rem;
1955
+ margin-bottom: 0px;
1956
+ }
1957
+
1958
+ .merchi-quantity-label-container {
1959
+ align-items: center;
1960
+ display: flex;
1961
+ }
1962
+
1963
+ .merchi-product-total {
1964
+ align-self: center;
1965
+ font-family: inherit;
1966
+ font-weight: 600;
1967
+ line-height: 1.5;
1968
+ }
1969
+
1970
+ .merchi-product-origin-title {
1971
+ align-items: center;
1972
+ display: flex;
1973
+ }
1974
+
1975
+ .merchi-product-title {
1976
+ margin-bottom: 1rem;
1977
+ }
1978
+
1979
+ /* Merchi checkout */
1980
+ .merchi-row {
1981
+ display: flex;
1982
+ flex-direction: column;
1983
+ }
1984
+
1985
+ @media (min-width: 768px) {
1986
+ .merchi-row {
1987
+ flex-direction: row;
1988
+ }
1989
+
1990
+ .merchi-column {
1991
+ width: 50%;
1992
+ padding-right: 10px;
1993
+ }
1994
+
1995
+ .merchi-column:last-child {
1996
+ padding-left: 10px;
1997
+ padding-right: 0;
1998
+ }
1999
+ }
2000
+
2001
+ .merchi-checkout-tabs-container {
2002
+ align-items: center;
2003
+ display: flex;
2004
+ justify-content: space-between;
2005
+ small {
2006
+ display: none;
2007
+ }
2008
+ }
2009
+
2010
+ .merchi-checkout-tab {
2011
+ display: flex;
2012
+ gap: 0.5rem;
2013
+ text-align: center;
2014
+ justify-content: center;
2015
+ align-items: center;
2016
+ flex-wrap: wrap;
2017
+ }
2018
+
2019
+ .merchi-checkout-tab-btn {
2020
+ color: $brandBlue;
2021
+ background-color: transparent;
2022
+ background-image: none;
2023
+ border-color: $brandBlue;
2024
+ border-radius: 6px;
2025
+ padding: 0.5rem 0.75rem;
2026
+ margin-right: 0 !important;
2027
+ }
2028
+
2029
+ .merchi-checkout-tab-btn.active {
2030
+ color: #fff;
2031
+ background-color: $brandBlue;
2032
+ border-color: $brandBlue;
2033
+ border-radius: 6px;
2034
+ }
2035
+
2036
+ @media(min-width: 500px) {
2037
+ .merchi-checkout-tabs-container {
2038
+ small {
2039
+ display: inline;
2040
+ }
2041
+ }
2042
+ }
2043
+
2044
+ @media(min-width: 762px) {
2045
+ .merchi-checkout-tabs-container {
2046
+ justify-content: start;
2047
+ gap: 2rem;
2048
+ }
2049
+
2050
+ .merchi-checkout-tab {
2051
+ text-align: center;
2052
+ }
2053
+
2054
+ .merchi-checkout-tab-btn {
2055
+ padding: 0.75rem 1.25rem;
2056
+ }
2057
+ }
2058
+
2059
+ /* GEO suggest close */
2060
+
2061
+ .geosuggest__suggests--hidden {
2062
+ max-height: 0;
2063
+ overflow: hidden;
2064
+ border-width: 0;
2065
+ }
2066
+
2067
+ /* **************
2068
+ Modal - checkout
2069
+ ************** */
2070
+
2071
+ .modal {
2072
+ &_merchi-checkout {
2073
+ max-width: calc(100% - 15px);
2074
+ margin: 0 0.5rem;
2075
+ .modal-content {
2076
+ top: 0.5rem;
2077
+ }
2078
+ @media (min-width: 900px) {
2079
+ margin: 0 auto;
2080
+ max-width: 900px;
2081
+ .modal-content {
2082
+ top: 3rem;
2083
+ }
2084
+ }
2085
+
2086
+ &_steps-heading {
2087
+ background: #f8f8f8;
2088
+ border-radius: 0.5rem;
2089
+ font-size: 1.25rem;
2090
+ margin-top: 1rem;
2091
+ padding: 0.5rem 1rem;
2092
+ width: fit-content;
2093
+ margin-bottom: 1rem;
2094
+ small {
2095
+ margin-bottom: 0;
2096
+ }
2097
+ h5 {
2098
+ font-size: 1rem !important;
2099
+ }
2100
+ }
2101
+
2102
+ /* variation dropzone */
2103
+ &_dropzone {
2104
+ padding: 0;
2105
+ border: none;
2106
+ color: inherit;
2107
+ padding: 2rem 1rem;
2108
+ background-color: #fff;
2109
+ border: 1px dashed #dee2e6;
2110
+ border-radius: 0.375rem;
2111
+ text-align: center;
2112
+ color: #8898aa;
2113
+ order: -1;
2114
+ cursor: pointer;
2115
+ z-index: 999;
2116
+ transition: all .2s ease-in-out;
2117
+
2118
+ &:hover {
2119
+ box-shadow: 0 0.5em 0.75em #00000014;
2120
+ scale: 1.002;
2121
+ }
2122
+
2123
+ &-image-preview {
2124
+ display: flex;
2125
+ gap: 1rem;
2126
+ margin-top: 1rem;
2127
+ flex-wrap: wrap;
2128
+
2129
+ &-item {
2130
+ height: 50px;
2131
+ width: 50px;
2132
+ border-radius: 0.375rem;
2133
+ object-fit: cover;
2134
+ }
2135
+ }
2136
+
2137
+ &-text-container {
2138
+ display: flex;
2139
+ }
2140
+
2141
+ &-icon-container {
2142
+ display: inline-block;
2143
+ width: 50px;
2144
+ height: 50px;
2145
+ background: #dfdfdf;
2146
+ border-radius: 100%;
2147
+ position: relative;
2148
+ margin-right: 1rem;
2149
+ }
2150
+
2151
+ &-icon {
2152
+ position: absolute;
2153
+ display: block;
2154
+ top: 50%;
2155
+ height: 24px;
2156
+ left: 50%;
2157
+ transform: translate(-50%, -50%)
2158
+ }
2159
+
2160
+ &-icon-plus {
2161
+ transition: all .15s ease-in-out;
2162
+ position: absolute;
2163
+ background: white;
2164
+ height: 30px;
2165
+ width: 30px !important;
2166
+ border-radius: 100%;
2167
+ border: 1px solid #dfdfdf;
2168
+ padding: 5px;
2169
+ display: block;
2170
+ right: -8px;
2171
+ bottom: -14px;
2172
+ top: initial;
2173
+ left: initial;
2174
+
2175
+ &:hover {
2176
+ scale: 1.2;
2177
+ }
2178
+ }
2179
+ }
2180
+
2181
+ /*customer info card*/
2182
+ &-customer-card {
2183
+ background: #f8f8f8;
2184
+ border-radius: 0.5rem;
2185
+ padding: 1rem;
2186
+ }
2187
+
2188
+ &-customer-details {
2189
+ p {
2190
+ margin: 0;
2191
+ padding: 0;
2192
+ }
2193
+ }
2194
+
2195
+ &-job-info-content {
2196
+ padding: 1rem;
2197
+ background: #f8f8f8;
2198
+ border-radius: 0.5rem;
2199
+ margin-top: 1rem;
2200
+ }
2201
+
2202
+ &-job-info-content-img {
2203
+ border-radius: 0.5rem;
2204
+ object-fit: cover;
2205
+ width: 50px;
2206
+ height: 50px;
2207
+ }
2208
+
2209
+ &-shipment-option {
2210
+ min-height: 86px;
2211
+ }
2212
+
2213
+ &-shipment-detail {
2214
+ padding: 1rem;
2215
+ background: #f8f8f8;
2216
+ border-radius: 0.5rem;
2217
+ margin-top: 1rem;
2218
+ }
2219
+ }
2220
+ }
2221
+
2222
+ /* **************
2223
+ Invoice
2224
+ ************** */
2225
+
2226
+ .merchi {
2227
+ &_invoice {
2228
+ &-container {
2229
+ &-icons {
2230
+ width: 150px;
2231
+ margin: auto;
2232
+ height: auto;
2233
+ }
2234
+ }
2235
+ }
2236
+ }