@sc-360-v2/storefront-cms-library 0.5.50 → 0.5.52

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 (58) hide show
  1. package/dist/add-order.scss +62 -13
  2. package/dist/brand-basic-elements.scss +109 -46
  3. package/dist/brand.scss +6 -0
  4. package/dist/breadcrumbs.scss +157 -51
  5. package/dist/builder.js +1 -1
  6. package/dist/bundle copy.scss +2805 -0
  7. package/dist/bundle.scss +74 -48
  8. package/dist/bundleDetails.scss +1360 -275
  9. package/dist/button copy.scss +271 -0
  10. package/dist/cart-details.scss +214 -0
  11. package/dist/cart.scss +124 -41
  12. package/dist/category-groups-product-image.scss +72 -21
  13. package/dist/category.scss +25 -4
  14. package/dist/container.scss +20 -17
  15. package/dist/embed-temp.scss +2 -2
  16. package/dist/hotspot.scss +153 -77
  17. package/dist/icon-library.scss +78 -74
  18. package/dist/image-temp.scss +2 -1
  19. package/dist/language-selector.scss +215 -55
  20. package/dist/light-box-v2.scss +4 -3
  21. package/dist/line.scss +54 -36
  22. package/dist/login.scss +225 -69
  23. package/dist/map.scss +354 -147
  24. package/dist/marchandiserSets.scss +34 -0
  25. package/dist/menu-v2.scss +51 -3
  26. package/dist/modal.scss +251 -28
  27. package/dist/product-actions.scss +53 -0
  28. package/dist/product-basic-elements.scss +44 -244
  29. package/dist/product-image-allocation.scss +51 -15
  30. package/dist/product-image-bundles.scss +72 -15
  31. package/dist/product-image.scss +178 -19
  32. package/dist/productDetails.scss +33 -0
  33. package/dist/quick-links.scss +23 -2
  34. package/dist/repeater copy.scss +635 -0
  35. package/dist/repeater-embla-controls.scss +9 -1
  36. package/dist/repeater-grid-toggle.scss +121 -7
  37. package/dist/repeater-item.scss +5 -1
  38. package/dist/repeater.scss +69 -102
  39. package/dist/review-cart.scss +7 -1
  40. package/dist/scroll.scss +52 -11
  41. package/dist/search.scss +46 -6
  42. package/dist/skeleton.scss +24 -35
  43. package/dist/styles.css +1 -1
  44. package/dist/tab-container.scss +14 -12
  45. package/dist/tab-v2.scss +834 -583
  46. package/dist/text-temp-v2.scss +18 -1
  47. package/dist/types/builder/tools/element-edit/breadcrumbs.d.ts +26 -5
  48. package/dist/types/builder/tools/element-edit/cart.d.ts +7 -0
  49. package/dist/types/builder/tools/element-edit/map.d.ts +0 -1
  50. package/dist/types/builder/tools/element-edit/product-image.d.ts +1 -0
  51. package/dist/types/builder/tools/element-edit/quickLinks.d.ts +6 -0
  52. package/dist/types/builder/tools/element-edit/repeater.d.ts +1 -1
  53. package/dist/types/builder/tools/element-edit/search.d.ts +4 -61
  54. package/dist/types/builder/tools/element-edit/tabsV2.d.ts +164 -1
  55. package/dist/types/builder/tools/element-edit/video.d.ts +32 -0
  56. package/dist/upload-media.scss +14 -2
  57. package/dist/video.scss +548 -476
  58. package/package.json +1 -1
@@ -44,6 +44,14 @@
44
44
  var(--_ctm-tab-dn-wt-se-br-rs, var(--_ctm-dn-wt-se-br-rs))
45
45
  );
46
46
 
47
+ // Widget Style's "Show Border" switch. The border above is painted from CSS
48
+ // variables, so the switch arrives as a data attribute and the width is zeroed
49
+ // here — same approach as the popover's border switch further down.
50
+ &[data-widget-border="false"] {
51
+ border-width: 0;
52
+ border-style: none;
53
+ }
54
+
47
55
  box-shadow: var(
48
56
  --_show-shadow,
49
57
  var(--_ctm-mob-dn-wt-se-sw-ae, var(--_ctm-tab-dn-wt-se-sw-ae, var(--_ctm-dn-wt-se-sw-ae)))
@@ -286,6 +294,7 @@
286
294
 
287
295
  path {
288
296
  stroke: var(--_sf-hr-in-c1, prepareMediaVariable(--_ctm-dn-ad-to-ct-dt-se-in-c1));
297
+ stroke-width: prepareMediaVariable(--_ctm-dn-ad-to-ct-dt-se-se-wh, 1);
289
298
  }
290
299
  }
291
300
  }
@@ -509,6 +518,7 @@
509
518
 
510
519
  path {
511
520
  stroke: var(--_sf-hr-in-c1, prepareMediaVariable(--_ctm-dn-by-nw-dt-se-in-c1));
521
+ stroke-width: prepareMediaVariable(--_ctm-dn-by-nw-dt-se-se-wh, 1);
512
522
  }
513
523
  }
514
524
  }
@@ -726,6 +736,7 @@
726
736
 
727
737
  path {
728
738
  stroke: var(--_sf-hr-in-c1, prepareMediaVariable(--_ctm-dn-wt-dt-se-in-c1));
739
+ stroke-width: prepareMediaVariable(--_ctm-dn-wt-dt-se-se-wh, 1);
729
740
  }
730
741
  }
731
742
  }
@@ -942,6 +953,7 @@
942
953
 
943
954
  path {
944
955
  stroke: var(--_sf-hr-in-c1, prepareMediaVariable(--_ctm-dn-ce-dt-se-in-c1));
956
+ stroke-width: prepareMediaVariable(--_ctm-dn-ce-dt-se-se-wh, 1);
945
957
  }
946
958
  }
947
959
  }
@@ -1167,6 +1179,7 @@
1167
1179
 
1168
1180
  path {
1169
1181
  stroke: var(--_sf-hr-in-c1, prepareMediaVariable(--_ctm-dn-ad-to-qe-dt-se-in-c1));
1182
+ stroke-width: prepareMediaVariable(--_ctm-dn-ad-to-qe-dt-se-se-wh, 1);
1170
1183
  }
1171
1184
  }
1172
1185
  }
@@ -1425,6 +1438,7 @@
1425
1438
  --_sf-hr-in-c1,
1426
1439
  prepareMediaVariable(--_ctm-dn-ad-to-or-te-dt-se-in-c1)
1427
1440
  );
1441
+ stroke-width: prepareMediaVariable(--_ctm-dn-ad-to-or-te-dt-se-se-wh, 1);
1428
1442
  }
1429
1443
  }
1430
1444
  }
@@ -1643,6 +1657,7 @@
1643
1657
 
1644
1658
  path {
1645
1659
  stroke: var(--_sf-hr-in-c1, prepareMediaVariable(--_ctm-dn-ny-me-dt-se-in-c1));
1660
+ stroke-width: prepareMediaVariable(--_ctm-dn-ny-me-dt-se-se-wh, 1);
1646
1661
  }
1647
1662
  }
1648
1663
  }
@@ -1858,6 +1873,7 @@
1858
1873
 
1859
1874
  path {
1860
1875
  stroke: var(--_sf-hr-in-c1, prepareMediaVariable(--_ctm-dn-dd-dt-se-in-c1));
1876
+ stroke-width: prepareMediaVariable(--_ctm-dn-dd-dt-se-se-wh, 1);
1861
1877
  }
1862
1878
  }
1863
1879
  }
@@ -2073,6 +2089,7 @@
2073
2089
 
2074
2090
  path {
2075
2091
  stroke: var(--_sf-hr-in-c1, prepareMediaVariable(--_ctm-dn-me-dt-se-in-c1));
2092
+ stroke-width: prepareMediaVariable(--_ctm-dn-me-dt-se-se-wh, 1);
2076
2093
  }
2077
2094
  }
2078
2095
  }
@@ -2321,6 +2338,11 @@
2321
2338
  }
2322
2339
  }
2323
2340
 
2341
+ // Horizontal side of the popover, from design > Popover Style > Popover Position.
2342
+ // Only the side changes — the vertical placement below is left to the display
2343
+ // style, so a vertically stacked list still opens beside its trigger and a
2344
+ // horizontal one still opens underneath it. "Right" is the original behaviour and
2345
+ // stays the default, so elements saved before this control are unaffected.
2324
2346
  &[data-display-style="Stack Vertically"] {
2325
2347
  .popover-box {
2326
2348
  left: 100%;
@@ -2328,12 +2350,43 @@
2328
2350
  margin-left: 6px;
2329
2351
  top: 0;
2330
2352
  }
2353
+
2354
+ // Beside the trigger, on its left instead of its right.
2355
+ .popover-container[data-popover-position="Left"] .popover-box {
2356
+ left: auto;
2357
+ right: 100%;
2358
+ margin-left: 0;
2359
+ margin-right: 6px;
2360
+ }
2331
2361
  }
2332
2362
  &[data-display-style="Stack Horizontally"] {
2333
2363
  .popover-box {
2334
2364
  right: 0;
2335
2365
  margin-top: 6px;
2336
2366
  }
2367
+
2368
+ // Under the trigger, aligned to its left edge instead of its right.
2369
+ .popover-container[data-popover-position="Left"] .popover-box {
2370
+ right: auto;
2371
+ left: 0;
2372
+ }
2373
+ }
2374
+
2375
+ // "Show Border" switch for the popover. The border is painted from CSS variables
2376
+ // above, so the switch arrives as a data attribute and the width is zeroed here.
2377
+ // Placed after the .popover-box rules and one attribute deeper, so it wins.
2378
+ .popover-container[data-popover-border="false"] .popover-box {
2379
+ border-width: 0;
2380
+ border-style: none;
2381
+ }
2382
+
2383
+ // The arrow sits on the edge facing the trigger, so it swaps sides with the box.
2384
+ // Its shadow is drawn on two adjacent sides, which also has to follow the flip.
2385
+ .popover-container[data-popover-position="Left"] .popover-arrow {
2386
+ left: auto;
2387
+ right: -5px;
2388
+ box-shadow: 1px 1px 0px
2389
+ var(--_ctm-mob-dn-pr-se-br-cr, var(--_ctm-tab-dn-pr-se-br-cr, var(--_ctm-dn-pr-se-br-cr)));
2337
2390
  }
2338
2391
  }
2339
2392
  }
@@ -39,6 +39,9 @@ $overflowSelector: ".flex__overflow";
39
39
 
40
40
  & > .wrapper {
41
41
  width: 100%;
42
+ // Follow the elements own height so the styled box (background, border, shadow)
43
+ // matches the Height set in layout instead of only hugging the text.
44
+ min-height: inherit;
42
45
  background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
43
46
  padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
44
47
  border-color: var(
@@ -128,7 +131,15 @@ $overflowSelector: ".flex__overflow";
128
131
  font-style: var(--_ctm-mob-dn-ft-se-ic, var(--_ctm-tab-dn-ft-se-ic, var(--_ctm-dn-ft-se-ic)));
129
132
  text-align: var(--_ctm-mob-dn-tt-an, var(--_ctm-tab-dn-tt-an, var(--_ctm-dn-tt-an)));
130
133
  letter-spacing: var(--_ctm-mob-dn-lr-sg, var(--_ctm-tab-dn-lr-sg, var(--_ctm-dn-lr-sg)));
131
- line-height: var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht)));
134
+ // Line box guard. The line-height control stores a fixed length (its default is
135
+ // 1rem), so it does not grow with the font size — at a large size the glyphs end
136
+ // up taller than their own line box and spill out of it, which is what makes the
137
+ // text look cut off. max(..., 1em) keeps the box at least as tall as the text
138
+ // while still honouring any larger value the user sets.
139
+ line-height: max(
140
+ var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht, 1em))),
141
+ 1em
142
+ );
132
143
  text-decoration: var(
133
144
  --_sf-hr-tt-dn,
134
145
  var(
@@ -179,6 +190,9 @@ $overflowSelector: ".flex__overflow";
179
190
 
180
191
  & > .wrapper {
181
192
  width: 100%;
193
+ // Follow the elements own height so the styled box (background, border, shadow)
194
+ // matches the Height set in layout instead of only hugging the text.
195
+ min-height: inherit;
182
196
 
183
197
  background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
184
198
  padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
@@ -287,7 +301,11 @@ $overflowSelector: ".flex__overflow";
287
301
  );
288
302
  text-align: var(--_ctm-mob-dn-tt-an, var(--_ctm-tab-dn-tt-an, var(--_ctm-dn-tt-an)));
289
303
  letter-spacing: var(--_ctm-mob-dn-lr-sg, var(--_ctm-tab-dn-lr-sg, var(--_ctm-dn-lr-sg)));
290
- line-height: var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht)));
304
+ // Line box guard — see the note on the other groups in this file.
305
+ line-height: max(
306
+ var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht, 1em))),
307
+ 1em
308
+ );
291
309
  text-decoration: var(
292
310
  --_sf-hr-tt-dn,
293
311
  var(
@@ -329,6 +347,9 @@ $overflowSelector: ".flex__overflow";
329
347
 
330
348
  & > .wrapper {
331
349
  width: 100%;
350
+ // Follow the elements own height so the styled box (background, border, shadow)
351
+ // matches the Height set in layout instead of only hugging the text.
352
+ min-height: inherit;
332
353
  background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
333
354
  padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
334
355
  border-color: var(
@@ -402,7 +423,15 @@ $overflowSelector: ".flex__overflow";
402
423
  font-style: var(--_ctm-mob-dn-ft-se-ic, var(--_ctm-tab-dn-ft-se-ic, var(--_ctm-dn-ft-se-ic)));
403
424
  text-align: var(--_ctm-mob-dn-tt-an, var(--_ctm-tab-dn-tt-an, var(--_ctm-dn-tt-an)));
404
425
  letter-spacing: var(--_ctm-mob-dn-lr-sg, var(--_ctm-tab-dn-lr-sg, var(--_ctm-dn-lr-sg)));
405
- line-height: var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht)));
426
+ // Line box guard. The line-height control stores a fixed length (its default is
427
+ // 1rem), so it does not grow with the font size — at a large size the glyphs end
428
+ // up taller than their own line box and spill out of it, which is what makes the
429
+ // text look cut off. max(..., 1em) keeps the box at least as tall as the text
430
+ // while still honouring any larger value the user sets.
431
+ line-height: max(
432
+ var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht, 1em))),
433
+ 1em
434
+ );
406
435
  text-decoration: var(
407
436
  --_sf-hr-tt-dn,
408
437
  var(
@@ -453,6 +482,9 @@ $overflowSelector: ".flex__overflow";
453
482
 
454
483
  & > .wrapper {
455
484
  width: 100%;
485
+ // Follow the elements own height so the styled box (background, border, shadow)
486
+ // matches the Height set in layout instead of only hugging the text.
487
+ min-height: inherit;
456
488
  background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
457
489
  padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
458
490
  border-color: var(
@@ -526,7 +558,15 @@ $overflowSelector: ".flex__overflow";
526
558
  font-style: var(--_ctm-mob-dn-ft-se-ic, var(--_ctm-tab-dn-ft-se-ic, var(--_ctm-dn-ft-se-ic)));
527
559
  text-align: var(--_ctm-mob-dn-tt-an, var(--_ctm-tab-dn-tt-an, var(--_ctm-dn-tt-an)));
528
560
  letter-spacing: var(--_ctm-mob-dn-lr-sg, var(--_ctm-tab-dn-lr-sg, var(--_ctm-dn-lr-sg)));
529
- line-height: var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht)));
561
+ // Line box guard. The line-height control stores a fixed length (its default is
562
+ // 1rem), so it does not grow with the font size — at a large size the glyphs end
563
+ // up taller than their own line box and spill out of it, which is what makes the
564
+ // text look cut off. max(..., 1em) keeps the box at least as tall as the text
565
+ // while still honouring any larger value the user sets.
566
+ line-height: max(
567
+ var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht, 1em))),
568
+ 1em
569
+ );
530
570
  text-decoration: var(
531
571
  --_sf-hr-tt-dn,
532
572
  var(
@@ -549,244 +589,4 @@ $overflowSelector: ".flex__overflow";
549
589
  }
550
590
  }
551
591
  }
552
- &[data-element-type="productReview"] {
553
- // width: var(--_lt-wh);
554
- // height: var(--_lt-ht);
555
- // margin: var(--_lt-mn);
556
- // padding: var(--_lt-pg);
557
- // width: var(--_ctm-lt-wh, var(--_tst-lt-wh));
558
- // width: var(--_sf-nw-wh, var(--_tst-lt-wh));
559
- width: var(
560
- --_sf-el-wh-st-mx,
561
- calc(
562
- 1% *
563
- var(
564
- --_ctm-mob-ele-nw-wh-vl,
565
- var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl, var(--_sf-nw-wh)))
566
- )
567
- )
568
- );
569
- margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn, var(--_tst-lt-mn))));
570
- min-height: var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht)));
571
- // height: var(--_ctm-lt-ht, var(--_tst-lt-ht));
572
- // height: ;
573
- // aspect-ratio: 1 / var(--_sf-aspect-ratio);
574
- // --_aspect-ratio: calc(
575
- // 1 * (var(--_ctm-lt-ht, var(--_tst-lt-ht)) / var(--_ctm-lt-wh, var(--_tst-lt-wh)))
576
- // );
577
-
578
- & > .wrapper {
579
- width: 100%;
580
- background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
581
- padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
582
- border-color: var(
583
- --_show-border,
584
- var(--_ctm-mob-dn-br-cr, var(--_ctm-tab-dn-br-cr, var(--_ctm-dn-br-cr)))
585
- );
586
- border-style: var(
587
- --_show-border,
588
- var(--_ctm-mob-dn-br-se, var(--_ctm-tab-dn-br-se, var(--_ctm-dn-br-se)))
589
- );
590
- border-width: var(
591
- --_show-border,
592
- var(--_ctm-mob-dn-br-wh, var(--_ctm-tab-dn-br-wh, var(--_ctm-dn-br-wh)))
593
- );
594
- border-radius: var(--_ctm-mob-dn-br-rs, var(--_ctm-tab-dn-br-rs, var(--_ctm-dn-br-rs)));
595
- box-shadow: var(
596
- --_show-shadow,
597
- var(--_ctm-mob-dn-sw-ae, var(--_ctm-tab-dn-sw-ae, var(--_ctm-dn-sw-ae)))
598
- var(--_ctm-mob-dn-sw-br, var(--_ctm-tab-dn-sw-br, var(--_ctm-dn-sw-br)))
599
- var(--_ctm-mob-dn-sw-sd, var(--_ctm-tab-dn-sw-sd, var(--_ctm-dn-sw-sd)))
600
- var(--_ctm-mob-dn-sw-cr, var(--_ctm-tab-dn-sw-cr, var(--_ctm-dn-sw-cr)))
601
- );
602
- // height: 100%;
603
- }
604
- &[data-show-shadow="false"] {
605
- --_show-shadow: none;
606
- }
607
- &[data-show-border="false"] {
608
- --_show-border: none;
609
- }
610
- // .text-element {
611
- // background: #6d96e4;
612
- // // padding: 10px;
613
- // font-weight: 600;
614
- // color: rgba(75, 69, 70, 1);
615
- // }
616
- .text-element {
617
- // background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
618
- // padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
619
- display: flex;
620
- flex-direction: column;
621
- --_sf-gp: 16px;
622
- --_sf-cd-gp: calc(var(--_sf-gp) * 0.5);
623
- row-gap: var(--_sf-gp);
624
- width: 100%;
625
- // height: var(--_ctm-lt-ht, var(--_tst-lt-ht));
626
- // border-color: var(
627
- // --_show-border,
628
- // var(--_ctm-mob-dn-br-cr, var(--_ctm-tab-dn-br-cr, var(--_ctm-dn-br-cr)))
629
- // );
630
- // border-style: var(
631
- // --_show-border,
632
- // var(--_ctm-mob-dn-br-se, var(--_ctm-tab-dn-br-se, var(--_ctm-dn-br-se)))
633
- // );
634
- // border-width: var(
635
- // --_show-border,
636
- // var(--_ctm-mob-dn-br-wh, var(--_ctm-tab-dn-br-wh, var(--_ctm-dn-br-wh)))
637
- // );
638
- // border-radius: var(--_ctm-mob-dn-br-rs, var(--_ctm-tab-dn-br-rs, var(--_ctm-dn-br-rs)));
639
- // box-shadow: var(
640
- // --_show-shadow,
641
- // var(--_ctm-mob-dn-sw-ae, var(--_ctm-tab-dn-sw-ae, var(--_ctm-dn-sw-ae)))
642
- // var(--_ctm-mob-dn-sw-br, var(--_ctm-tab-dn-sw-br, var(--_ctm-dn-sw-br)))
643
- // var(--_ctm-mob-dn-sw-sd, var(--_ctm-tab-dn-sw-sd, var(--_ctm-dn-sw-sd)))
644
- // var(--_ctm-mob-dn-sw-cr, var(--_ctm-tab-dn-sw-cr, var(--_ctm-dn-sw-cr)))
645
- // );
646
- color: var(--_ctm-mob-dn-cr, var(--_ctm-tab-dn-cr, var(--_ctm-dn-cr)));
647
- font-family: var(--_ctm-mob-dn-ft-fy, var(--_ctm-tab-dn-ft-fy, var(--_ctm-dn-ft-fy)));
648
- font-size: var(--_ctm-mob-dn-ft-se, var(--_ctm-tab-dn-ft-se, var(--_ctm-dn-ft-se)));
649
- font-weight: var(--_ctm-mob-dn-ft-wt, var(--_ctm-tab-dn-ft-wt, var(--_ctm-dn-ft-wt)));
650
- font-style: var(--_ctm-mob-dn-ft-se-ic, var(--_ctm-tab-dn-ft-se-ic, var(--_ctm-dn-ft-se-ic)));
651
- text-align: var(--_ctm-mob-dn-tt-an, var(--_ctm-tab-dn-tt-an, var(--_ctm-dn-tt-an)));
652
- letter-spacing: var(--_ctm-mob-dn-lr-sg, var(--_ctm-tab-dn-lr-sg, var(--_ctm-dn-lr-sg)));
653
- line-height: var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht)));
654
- text-decoration: var(
655
- --_sf-hr-tt-dn,
656
- var(
657
- --_ctm-mob-dn-dt-se-ue,
658
- var(--_ctm-tab-dn-dt-se-ue, var(--_ctm-dn-dt-se-ue, var(--_ctm-dn-ue)))
659
- )
660
- );
661
- scale: var(--_ctm-mob-dn-zm-ie, var(--_ctm-tab-dn-zm-ie, var(--_ctm-dn-zm-ie)));
662
- &[data-flip-x="true"] {
663
- transform: scaleX(-1);
664
- }
665
- &[data-flip-y="true"] {
666
- transform: scaleY(-1);
667
- }
668
- }
669
- text-transform: prepareMediaVariable(--_ctm-dn-tt-tm);
670
- }
671
- &[data-element-type="productRating"] {
672
- // width: var(--_lt-wh);
673
- // height: var(--_lt-ht);
674
- // margin: var(--_lt-mn);
675
- // padding: var(--_lt-pg);
676
- // width: var(--_ctm-lt-wh, var(--_tst-lt-wh));
677
- // width: var(--_sf-nw-wh, var(--_tst-lt-wh));
678
- width: var(
679
- --_sf-el-wh-st-mx,
680
- calc(
681
- 1% *
682
- var(
683
- --_ctm-mob-ele-nw-wh-vl,
684
- var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl, var(--_sf-nw-wh)))
685
- )
686
- )
687
- );
688
- margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn, var(--_tst-lt-mn))));
689
- min-height: var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht)));
690
- // height: var(--_ctm-lt-ht, var(--_tst-lt-ht));
691
- // height: ;
692
- // aspect-ratio: 1 / var(--_sf-aspect-ratio);
693
- // --_aspect-ratio: calc(
694
- // 1 * (var(--_ctm-lt-ht, var(--_tst-lt-ht)) / var(--_ctm-lt-wh, var(--_tst-lt-wh)))
695
- // );
696
-
697
- & > .wrapper {
698
- width: 100%;
699
- // height: 100%;
700
-
701
- border-color: var(
702
- --_show-border,
703
- var(--_ctm-mob-dn-br-cr, var(--_ctm-tab-dn-br-cr, var(--_ctm-dn-br-cr)))
704
- );
705
- border-style: var(
706
- --_show-border,
707
- var(--_ctm-mob-dn-br-se, var(--_ctm-tab-dn-br-se, var(--_ctm-dn-br-se)))
708
- );
709
- border-width: var(
710
- --_show-border,
711
- var(--_ctm-mob-dn-br-wh, var(--_ctm-tab-dn-br-wh, var(--_ctm-dn-br-wh)))
712
- );
713
- border-radius: var(--_ctm-mob-dn-br-rs, var(--_ctm-tab-dn-br-rs, var(--_ctm-dn-br-rs)));
714
- box-shadow: var(
715
- --_show-shadow,
716
- var(--_ctm-mob-dn-sw-ae, var(--_ctm-tab-dn-sw-ae, var(--_ctm-dn-sw-ae)))
717
- var(--_ctm-mob-dn-sw-br, var(--_ctm-tab-dn-sw-br, var(--_ctm-dn-sw-br)))
718
- var(--_ctm-mob-dn-sw-sd, var(--_ctm-tab-dn-sw-sd, var(--_ctm-dn-sw-sd)))
719
- var(--_ctm-mob-dn-sw-cr, var(--_ctm-tab-dn-sw-cr, var(--_ctm-dn-sw-cr)))
720
- );
721
-
722
- background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
723
- padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
724
- }
725
- &[data-show-shadow="false"] {
726
- --_show-shadow: none;
727
- }
728
- &[data-show-border="false"] {
729
- --_show-border: none;
730
- }
731
- // .text-element {
732
- // background: #6d96e4;
733
- // // padding: 10px;
734
- // font-weight: 600;
735
- // color: rgba(75, 69, 70, 1);
736
- // }
737
- .text-element {
738
- // background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
739
- // padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
740
- display: flex;
741
- flex-direction: column;
742
- --_sf-gp: 16px;
743
- --_sf-cd-gp: calc(var(--_sf-gp) * 0.5);
744
- row-gap: var(--_sf-gp);
745
- width: 100%;
746
- // height: var(--_ctm-lt-ht, var(--_tst-lt-ht));
747
- // border-color: var(
748
- // --_show-border,
749
- // var(--_ctm-mob-dn-br-cr, var(--_ctm-tab-dn-br-cr, var(--_ctm-dn-br-cr)))
750
- // );
751
- // border-style: var(
752
- // --_show-border,
753
- // var(--_ctm-mob-dn-br-se, var(--_ctm-tab-dn-br-se, var(--_ctm-dn-br-se)))
754
- // );
755
- // border-width: var(
756
- // --_show-border,
757
- // var(--_ctm-mob-dn-br-wh, var(--_ctm-tab-dn-br-wh, var(--_ctm-dn-br-wh)))
758
- // );
759
- // border-radius: var(--_ctm-mob-dn-br-rs, var(--_ctm-tab-dn-br-rs, var(--_ctm-dn-br-rs)));
760
- // box-shadow: var(
761
- // --_show-shadow,
762
- // var(--_ctm-mob-dn-sw-ae, var(--_ctm-tab-dn-sw-ae, var(--_ctm-dn-sw-ae)))
763
- // var(--_ctm-mob-dn-sw-br, var(--_ctm-tab-dn-sw-br, var(--_ctm-dn-sw-br)))
764
- // var(--_ctm-mob-dn-sw-sd, var(--_ctm-tab-dn-sw-sd, var(--_ctm-dn-sw-sd)))
765
- // var(--_ctm-mob-dn-sw-cr, var(--_ctm-tab-dn-sw-cr, var(--_ctm-dn-sw-cr)))
766
- // );
767
- color: var(--_ctm-mob-dn-cr, var(--_ctm-tab-dn-cr, var(--_ctm-dn-cr)));
768
- font-family: var(--_ctm-mob-dn-ft-fy, var(--_ctm-tab-dn-ft-fy, var(--_ctm-dn-ft-fy)));
769
- font-size: var(--_ctm-mob-dn-ft-se, var(--_ctm-tab-dn-ft-se, var(--_ctm-dn-ft-se)));
770
- font-weight: var(--_ctm-mob-dn-ft-wt, var(--_ctm-tab-dn-ft-wt, var(--_ctm-dn-ft-wt)));
771
- font-style: var(--_ctm-mob-dn-ft-se-ic, var(--_ctm-tab-dn-ft-se-ic, var(--_ctm-dn-ft-se-ic)));
772
- text-align: var(--_ctm-mob-dn-tt-an, var(--_ctm-tab-dn-tt-an, var(--_ctm-dn-tt-an)));
773
- letter-spacing: var(--_ctm-mob-dn-lr-sg, var(--_ctm-tab-dn-lr-sg, var(--_ctm-dn-lr-sg)));
774
- line-height: var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht)));
775
- text-decoration: var(
776
- --_sf-hr-tt-dn,
777
- var(
778
- --_ctm-mob-dn-dt-se-ue,
779
- var(--_ctm-tab-dn-dt-se-ue, var(--_ctm-dn-dt-se-ue, var(--_ctm-dn-ue)))
780
- )
781
- );
782
- scale: var(--_ctm-mob-dn-zm-ie, var(--_ctm-tab-dn-zm-ie, var(--_ctm-dn-zm-ie)));
783
- &[data-flip-x="true"] {
784
- transform: scaleX(-1);
785
- }
786
- &[data-flip-y="true"] {
787
- transform: scaleY(-1);
788
- }
789
- text-transform: prepareMediaVariable(--_ctm-dn-tt-tm);
790
- }
791
- }
792
592
  }
@@ -4,9 +4,17 @@
4
4
  width: var(--_ctm-mob-dn-ie-lt-wh, var(--_ctm-tab-dn-ie-lt-wh, var(--_ctm-dn-ie-lt-wh)));
5
5
  // height: var(--_ctm-mob-dn-ie-lt-ht, var(--_ctm-tab-dn-ie-lt-ht, var(--_ctm-dn-ie-lt-ht)));
6
6
 
7
- &:not(:has([data-display-style="Grid"][data-scroll-direction="Vertical"])) {
7
+ // Content-sized display styles — the element grows with the number of images.
8
+ // See product-image.scss for the full reasoning.
9
+ $contentSizedGallery: '.embla[data-scroll-control="Non"]:is([data-display-style="Grid"][data-scroll-direction="Vertical"], [data-display-style="Rows"], [data-display-style="Masonry"])';
10
+
11
+ &:not(:has(#{$contentSizedGallery})) {
8
12
  height: var(--_ctm-mob-dn-ie-lt-ht, var(--_ctm-tab-dn-ie-lt-ht, var(--_ctm-dn-ie-lt-ht)));
9
13
  }
14
+
15
+ &:has(#{$contentSizedGallery}) {
16
+ min-height: var(--_ctm-mob-dn-ie-lt-ht, var(--_ctm-tab-dn-ie-lt-ht, var(--_ctm-dn-ie-lt-ht)));
17
+ }
10
18
  &[data-has-link="true"] {
11
19
  cursor: pointer;
12
20
  }
@@ -169,19 +177,39 @@
169
177
 
170
178
  width: 100%;
171
179
  height: 100%;
180
+
181
+ // Gallery Widget Style > Border / Shadow toggles. Distinct names from the item
182
+ // ones below, because .gallery__slide is a descendant and would otherwise
183
+ // inherit whatever is set here.
184
+ &[data-show-border="false"] {
185
+ --_show-gy-border: none;
186
+ }
187
+ &[data-show-shadow="false"] {
188
+ --_show-gy-shadow: none;
189
+ }
190
+
172
191
  border-color: var(
173
- --_ctm-mob-dn-ie-gy-wt-se-br-cr,
174
- var(--_ctm-tab-dn-ie-gy-wt-se-br-cr, var(--_ctm-dn-ie-gy-wt-se-br-cr))
192
+ --_show-gy-border,
193
+ var(
194
+ --_ctm-mob-dn-ie-gy-wt-se-br-cr,
195
+ var(--_ctm-tab-dn-ie-gy-wt-se-br-cr, var(--_ctm-dn-ie-gy-wt-se-br-cr))
196
+ )
175
197
  );
176
198
 
177
199
  border-style: var(
178
- --_ctm-mob-dn-ie-gy-wt-se-br-se,
179
- var(--_ctm-tab-dn-ie-gy-wt-se-br-se, var(--_ctm-dn-ie-gy-wt-se-br-se))
200
+ --_show-gy-border,
201
+ var(
202
+ --_ctm-mob-dn-ie-gy-wt-se-br-se,
203
+ var(--_ctm-tab-dn-ie-gy-wt-se-br-se, var(--_ctm-dn-ie-gy-wt-se-br-se))
204
+ )
180
205
  );
181
206
 
182
207
  border-width: var(
183
- --_ctm-mob-dn-ie-gy-wt-se-br-wh,
184
- var(--_ctm-tab-dn-ie-gy-wt-se-br-wh, var(--_ctm-dn-ie-gy-wt-se-br-wh))
208
+ --_show-gy-border,
209
+ var(
210
+ --_ctm-mob-dn-ie-gy-wt-se-br-wh,
211
+ var(--_ctm-tab-dn-ie-gy-wt-se-br-wh, var(--_ctm-dn-ie-gy-wt-se-br-wh))
212
+ )
185
213
  );
186
214
 
187
215
  border-radius: var(
@@ -190,7 +218,7 @@
190
218
  );
191
219
 
192
220
  box-shadow: var(
193
- --_show-shadow,
221
+ --_show-gy-shadow,
194
222
  var(
195
223
  --_ctm-mob-dn-ie-gy-wt-se-sw-ae,
196
224
  var(--_ctm-tab-dn-ie-gy-wt-se-sw-ae, var(--_ctm-dn-ie-gy-wt-se-sw-ae))
@@ -879,17 +907,25 @@
879
907
  --_ctm-mob-dn-ie-im-se-bd-cr,
880
908
  var(--_ctm-tab-dn-ie-im-se-bd-cr, var(--_ctm-dn-ie-im-se-bd-cr))
881
909
  );
910
+ // Item Style > Border / Shadow toggles.
911
+ &[data-show-border="false"] {
912
+ --_show-im-border: none;
913
+ }
914
+ &[data-show-shadow="false"] {
915
+ --_show-im-shadow: none;
916
+ }
917
+
882
918
  border-color: var(
883
- --_ctm-mob-dn-ie-im-se-br-cr,
884
- var(--_ctm-tab-dn-ie-im-se-br-cr, var(--_ctm-dn-ie-im-se-br-cr))
919
+ --_show-im-border,
920
+ var(--_ctm-mob-dn-ie-im-se-br-cr, var(--_ctm-tab-dn-ie-im-se-br-cr, var(--_ctm-dn-ie-im-se-br-cr)))
885
921
  );
886
922
  border-style: var(
887
- --_ctm-mob-dn-ie-im-se-br-se,
888
- var(--_ctm-tab-dn-ie-im-se-br-se, var(--_ctm-dn-ie-im-se-br-se))
923
+ --_show-im-border,
924
+ var(--_ctm-mob-dn-ie-im-se-br-se, var(--_ctm-tab-dn-ie-im-se-br-se, var(--_ctm-dn-ie-im-se-br-se)))
889
925
  );
890
926
  border-width: var(
891
- --_ctm-mob-dn-ie-im-se-br-wh,
892
- var(--_ctm-tab-dn-ie-im-se-br-wh, var(--_ctm-dn-ie-im-se-br-wh))
927
+ --_show-im-border,
928
+ var(--_ctm-mob-dn-ie-im-se-br-wh, var(--_ctm-tab-dn-ie-im-se-br-wh, var(--_ctm-dn-ie-im-se-br-wh)))
893
929
  );
894
930
  border-radius: var(
895
931
  --_ctm-mob-dn-ie-im-se-br-rs,
@@ -897,7 +933,7 @@
897
933
  );
898
934
 
899
935
  box-shadow: var(
900
- --_show-shadow,
936
+ --_show-im-shadow,
901
937
  var(
902
938
  --_ctm-mob-dn-ie-im-se-sw-ae,
903
939
  var(--_ctm-tab-dn-ie-im-se-sw-ae, var(--_ctm-dn-ie-im-se-sw-ae))