@sc-360-v2/storefront-cms-library 0.5.59 → 0.5.61

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 (156) hide show
  1. package/dist/add-order.scss +2 -8
  2. package/dist/allocation-header-quota-details.scss +9 -4
  3. package/dist/allocationDetails.scss +167 -164
  4. package/dist/allocations-quota-details.scss +9 -4
  5. package/dist/allocations.scss +1 -4
  6. package/dist/animation-control.scss +23 -23
  7. package/dist/builder.js +1 -1
  8. package/dist/builderLite.js +1 -1
  9. package/dist/bulk-variant-picker.scss +24 -26
  10. package/dist/bundle copy.scss +235 -0
  11. package/dist/bundle.scss +10 -10
  12. package/dist/bundleCategories.scss +301 -0
  13. package/dist/bundleDetails.scss +10 -1
  14. package/dist/button copy.scss +28 -0
  15. package/dist/buy-for-tabs-container-item.scss +80 -80
  16. package/dist/buyForHeaders.scss +3 -12
  17. package/dist/cart-details.scss +23 -4
  18. package/dist/cart-products-sidebar.scss +211 -211
  19. package/dist/cart-summary.scss +82 -10
  20. package/dist/cart-wrapper.scss +127 -127
  21. package/dist/cart.scss +2 -2
  22. package/dist/cartDropdownOverlay.scss +10 -1
  23. package/dist/cartGrouping.scss +89 -89
  24. package/dist/category-groups-product-grid.scss +143 -155
  25. package/dist/category-groups-product-image.scss +1372 -2010
  26. package/dist/category-groups-product-options.scss +680 -1054
  27. package/dist/category-groups-product-price.scss +2742 -4997
  28. package/dist/category-groups-quota-details.scss +7 -2
  29. package/dist/categoryDetails.scss +61 -61
  30. package/dist/categoryWidget.scss +34 -34
  31. package/dist/checkbox-radio.scss +124 -124
  32. package/dist/checkout.scss +1850 -4170
  33. package/dist/common-element.scss +35 -35
  34. package/dist/confirmationModal.scss +139 -139
  35. package/dist/coupon.scss +352 -714
  36. package/dist/custom-fonts.scss +100 -100
  37. package/dist/embroider-preview-element.scss +94 -94
  38. package/dist/emtpy-templates.scss +165 -165
  39. package/dist/faq.scss +7 -11
  40. package/dist/flex-text-editor.scss +271 -271
  41. package/dist/functions.scss +36 -0
  42. package/dist/gallery-slider-temp.scss +42 -5
  43. package/dist/hotspot.scss +1 -4
  44. package/dist/icon-list.scss +30 -59
  45. package/dist/image-for-product.scss +21 -21
  46. package/dist/image-temp.scss +18 -3
  47. package/dist/language-selector.scss +29 -21
  48. package/dist/last-x-orders.scss +6 -13
  49. package/dist/layouter-item.scss +3 -1
  50. package/dist/layouter.scss +164 -29
  51. package/dist/lightbox.scss +78 -78
  52. package/dist/line.scss +29 -70
  53. package/dist/loader.scss +37 -37
  54. package/dist/login.scss +49 -41
  55. package/dist/map.scss +23 -9
  56. package/dist/mega-menu.scss +1 -4
  57. package/dist/menu-item.scss +19 -19
  58. package/dist/myTemplates.scss +3 -0
  59. package/dist/order-processing.scss +61 -61
  60. package/dist/overflow-module.scss +63 -63
  61. package/dist/pickup-locations.scss +6 -3
  62. package/dist/position-module.scss +95 -95
  63. package/dist/prefix-list.scss +86 -86
  64. package/dist/product-actions.scss +6 -9
  65. package/dist/product-highlights.scss +40 -12
  66. package/dist/product-image-bundles.scss +12 -33
  67. package/dist/product-image.scss +341 -724
  68. package/dist/product-labels.scss +10 -8
  69. package/dist/product-options.scss +270 -125
  70. package/dist/product-price.scss +8 -2
  71. package/dist/productDetails.scss +2 -1
  72. package/dist/profile.scss +28 -0
  73. package/dist/quick-inventory-check.scss +6 -13
  74. package/dist/quick-links.scss +4 -0
  75. package/dist/quick-order-pad.scss +2 -2
  76. package/dist/quota-details.scss +11 -15
  77. package/dist/repeater copy.scss +24 -0
  78. package/dist/repeater-embla-controls.scss +13 -4
  79. package/dist/repeater.scss +161 -7
  80. package/dist/responsive-behaviour.scss +29 -29
  81. package/dist/scroll.scss +31 -1
  82. package/dist/shareCartSideBar.scss +254 -254
  83. package/dist/shipping-estimator.scss +41 -41
  84. package/dist/simple-list.scss +67 -0
  85. package/dist/social.scss +2 -2
  86. package/dist/sort.scss +89 -89
  87. package/dist/static-text.scss +52 -52
  88. package/dist/store-locations.scss +10 -8
  89. package/dist/sub-category.scss +74 -74
  90. package/dist/submit-quote.scss +275 -275
  91. package/dist/tab-container-item.scss +80 -80
  92. package/dist/tab-v2.scss +277 -604
  93. package/dist/table-common.scss +2 -2
  94. package/dist/table.scss +2 -2
  95. package/dist/text-temp-v2.scss +12 -23
  96. package/dist/text-temp.scss +109 -109
  97. package/dist/toggle-button.scss +32 -32
  98. package/dist/transform-properties-module.scss +20 -20
  99. package/dist/types/builder/elements/bundle-categories/index.d.ts +30 -0
  100. package/dist/types/builder/enums/index.d.ts +1 -0
  101. package/dist/types/builder/index.d.ts +2 -1
  102. package/dist/types/builder/tools/element-edit/addProductsTab.d.ts +108 -0
  103. package/dist/types/builder/tools/element-edit/breadcrumbs.d.ts +6 -0
  104. package/dist/types/builder/tools/element-edit/bundle.d.ts +22 -0
  105. package/dist/types/builder/tools/element-edit/bundleCategories.d.ts +115 -0
  106. package/dist/types/builder/tools/element-edit/bundleDetails.d.ts +64 -0
  107. package/dist/types/builder/tools/element-edit/button.d.ts +1 -0
  108. package/dist/types/builder/tools/element-edit/buttonInstance.d.ts +10 -0
  109. package/dist/types/builder/tools/element-edit/buyForWithTab.d.ts +84 -0
  110. package/dist/types/builder/tools/element-edit/cart.d.ts +6 -0
  111. package/dist/types/builder/tools/element-edit/cartAttributes.d.ts +60 -0
  112. package/dist/types/builder/tools/element-edit/cartDetails.d.ts +16 -0
  113. package/dist/types/builder/tools/element-edit/cartSummary.d.ts +1325 -74
  114. package/dist/types/builder/tools/element-edit/categoryGroups.d.ts +158 -0
  115. package/dist/types/builder/tools/element-edit/checkout.d.ts +172 -0
  116. package/dist/types/builder/tools/element-edit/common.d.ts +2 -0
  117. package/dist/types/builder/tools/element-edit/countdown.d.ts +44 -0
  118. package/dist/types/builder/tools/element-edit/coupon.d.ts +28 -0
  119. package/dist/types/builder/tools/element-edit/embroidery.d.ts +37 -0
  120. package/dist/types/builder/tools/element-edit/filterResults.d.ts +4 -0
  121. package/dist/types/builder/tools/element-edit/icon-list.d.ts +11 -0
  122. package/dist/types/builder/tools/element-edit/index.d.ts +2 -1
  123. package/dist/types/builder/tools/element-edit/itemStock.d.ts +2 -0
  124. package/dist/types/builder/tools/element-edit/kitDetails.d.ts +66 -0
  125. package/dist/types/builder/tools/element-edit/kits.d.ts +4 -0
  126. package/dist/types/builder/tools/element-edit/layouter.d.ts +33 -1
  127. package/dist/types/builder/tools/element-edit/map.d.ts +5 -1
  128. package/dist/types/builder/tools/element-edit/marchandiserSets.d.ts +2 -0
  129. package/dist/types/builder/tools/element-edit/orderStatus.d.ts +17 -0
  130. package/dist/types/builder/tools/element-edit/paymentMethods.d.ts +6 -0
  131. package/dist/types/builder/tools/element-edit/productCustomizations.d.ts +14 -0
  132. package/dist/types/builder/tools/element-edit/productOptions.d.ts +3 -1
  133. package/dist/types/builder/tools/element-edit/productPrice.d.ts +1 -0
  134. package/dist/types/builder/tools/element-edit/quickLinks.d.ts +26 -0
  135. package/dist/types/builder/tools/element-edit/repeater.d.ts +45 -1
  136. package/dist/types/builder/tools/element-edit/scroll.d.ts +8 -11
  137. package/dist/types/builder/tools/element-edit/search.d.ts +1 -0
  138. package/dist/types/builder/tools/element-edit/searchResultsHeading.d.ts +6 -0
  139. package/dist/types/builder/tools/element-edit/shipping-payments.d.ts +72 -0
  140. package/dist/types/builder/tools/element-edit/shippingEstimator.d.ts +4 -0
  141. package/dist/types/builder/tools/element-edit/social.d.ts +2 -0
  142. package/dist/types/builder/tools/element-edit/spotlight.d.ts +2 -0
  143. package/dist/types/builder/tools/element-edit/table.d.ts +10 -0
  144. package/dist/types/builder/tools/element-edit/tabs.d.ts +6 -0
  145. package/dist/types/builder/tools/element-edit/typographyInstance.d.ts +110 -0
  146. package/dist/types/builder/tools/element-edit/userElements.d.ts +62 -22
  147. package/dist/types/builder/tools/element-edit/variantPicker.d.ts +4 -0
  148. package/dist/types/builder/tools/element-edit/video.d.ts +22 -0
  149. package/dist/uom-selector.scss +8 -2
  150. package/dist/user-elements.scss +133 -104
  151. package/dist/variant-picker.scss +1 -4
  152. package/dist/video.scss +147 -325
  153. package/dist/volume-pricing.scss +2 -2
  154. package/dist/website.js +1 -1
  155. package/dist/wishlist-overlay.scss +48 -48
  156. package/package.json +131 -131
package/dist/hotspot.scss CHANGED
@@ -454,10 +454,7 @@ $data: (
454
454
  color: var(--_sf-hr-cr, prepareMediaVariable(--_ctm-dn-tp-bn-dt-se-cr));
455
455
 
456
456
  font-family: var(--_sf-hr-ft-fy, prepareMediaVariable(--_ctm-dn-tp-bn-dt-se-ft-fy));
457
- text-transform: var(
458
- --_sf-hr-tt-tm,
459
- prepareMediaVariable(--_ctm-dn-tp-bn-dt-se-tt-tm)
460
- );
457
+ text-transform: var(--_sf-hr-tt-tm, prepareMediaVariable(--_ctm-dn-tp-bn-dt-se-tt-tm));
461
458
  word-wrap: var(--_sf-hr-wd-wp, prepareMediaVariable(--_ctm-dn-tp-bn-dt-se-wd-wp));
462
459
  word-break: var(--_sf-hr-wd-bk, prepareMediaVariable(--_ctm-dn-tp-bn-dt-se-wd-bk));
463
460
  &.flex__overflow {
@@ -9,50 +9,36 @@ $textContaner: "flex__ili__container";
9
9
  $desc: "flex__ili__description";
10
10
  $overflowSelector: ".flex__overflow";
11
11
  $pos2: (
12
- hrz: (
13
- keys: (
14
- 0: inline,
15
- after: (
16
- top: 0,
12
+ hrz: (keys: (0: inline,
13
+ after: (top: 0,
17
14
  right: 0,
18
15
  height: prepareMediaVariable(--_ctm-dn-lt-dr-wh),
19
16
  width: prepareMediaVariable(--_ctm-dn-lt-dr-wt),
20
17
  ),
21
18
  ),
22
- after: (
23
- start: (
24
- top: 0px,
19
+ after: (start: (top: 0px,
25
20
  ),
26
- center: (
27
- top: 50%,
21
+ center: (top: 50%,
28
22
  transform: translateY(-50%),
29
23
  ),
30
- end: (
31
- top: auto,
24
+ end: (top: auto,
32
25
  bottom: 0,
33
26
  ),
34
27
  ),
35
28
  ),
36
- vtl: (
37
- keys: (
38
- 0: block,
39
- after: (
40
- bottom: 0,
29
+ vtl: (keys: (0: block,
30
+ after: (bottom: 0,
41
31
  left: 0,
42
32
  width: prepareMediaVariable(--_ctm-dn-lt-dr-wh),
43
33
  height: prepareMediaVariable(--_ctm-dn-lt-dr-wt),
44
34
  ),
45
35
  ),
46
- after: (
47
- start: (
48
- left: 0px,
36
+ after: (start: (left: 0px,
49
37
  ),
50
- center: (
51
- left: 50%,
38
+ center: (left: 50%,
52
39
  transform: translateX(-50%),
53
40
  ),
54
- end: (
55
- left: auto,
41
+ end: (left: auto,
56
42
  right: 0,
57
43
  ),
58
44
  ),
@@ -61,7 +47,7 @@ $pos2: (
61
47
 
62
48
  [data-div-type="element"] {
63
49
  &[data-element-type="icon-list"] {
64
- & > .wrapper {
50
+ &>.wrapper {
65
51
  width: 100%;
66
52
  // gap: prepareMediaVariable(--_ctm-lt-im-gp);
67
53
  row-gap: prepareMediaVariable(--_ctm-lt-rw-gp, 0px);
@@ -95,13 +81,12 @@ $pos2: (
95
81
  background-color: prepareMediaVariable(--_ctm-dn-lt-bd-cr);
96
82
 
97
83
  &[data-show-boxshadow="true"] {
98
- box-shadow: prepareMediaVariable(--_ctm-dn-lt-sw-ae)
99
- prepareMediaVariable(--_ctm-dn-lt-sw-br) prepareMediaVariable(--_ctm-dn-lt-sw-sd)
100
- prepareMediaVariable(--_ctm-dn-lt-sw-cr);
84
+ box-shadow: prepareMediaVariable(--_ctm-dn-lt-sw-ae) prepareMediaVariable(--_ctm-dn-lt-sw-br) prepareMediaVariable(--_ctm-dn-lt-sw-sd) prepareMediaVariable(--_ctm-dn-lt-sw-cr);
101
85
  }
102
86
 
103
87
  &[data-show-divider="true"] {
104
- & > .#{$item} {
88
+ &>.#{$item} {
89
+
105
90
  // &:not(:last-of-type)
106
91
  &:not(:last-child) {
107
92
  position: var(--_p-relative);
@@ -117,9 +102,7 @@ $pos2: (
117
102
  // #{prepareMediaVariable(--_ctm-lt-im-gp)} +
118
103
  // #{prepareMediaVariable(--_ctm-dn-lt-dr-wt)}
119
104
  // );
120
- padding-#{map.get($keys, 0)}-end: calc(
121
- #{var(--_ctm-custom-lt-im-gp)} + #{prepareMediaVariable(--_ctm-dn-lt-dr-wt)}
122
- );
105
+ padding-#{map.get($keys, 0)}-end: calc(#{var(--_ctm-custom-lt-im-gp)} + #{prepareMediaVariable(--_ctm-dn-lt-dr-wt)});
123
106
 
124
107
  @each $k, $v in $afterKeys {
125
108
  &::after {
@@ -149,7 +132,7 @@ $pos2: (
149
132
  }
150
133
  }
151
134
 
152
- & > .#{$item} {
135
+ &>.#{$item} {
153
136
  display: var(--_d-flex);
154
137
  gap: var(--_in_hr-gp, prepareMediaVariable(--_ctm-dn-in-dt-se-in-gp, 0px));
155
138
 
@@ -173,12 +156,12 @@ $pos2: (
173
156
  --_txt-ht-wd-bk: #{prepareMediaVariable(--_ctm-dn-tt-hr-se-wd-bk)};
174
157
  }
175
158
 
176
- & > span {
159
+ &>span {
177
160
  &.#{$icon} {
178
161
  display: var(--_d-flex);
179
162
  align-self: var(--_in-hr-as, prepareMediaVariable(--_ctm-dn-in-dt-se-vl-at));
180
163
 
181
- & > svg {
164
+ &>svg {
182
165
  width: var(--_in-hr-sz, prepareMediaVariable(--_ctm-dn-in-dt-se-in-se));
183
166
  height: var(--_in-hr-sz, prepareMediaVariable(--_ctm-dn-in-dt-se-in-se));
184
167
 
@@ -191,7 +174,7 @@ $pos2: (
191
174
  }
192
175
  }
193
176
 
194
- & > div {
177
+ &>div {
195
178
  &.#{$textContaner} {
196
179
  display: var(--_d-flex);
197
180
  flex-grow: 1;
@@ -205,13 +188,8 @@ $pos2: (
205
188
  // #{prepareMediaVariable(--_ctm-dn-lt-lt-gp)} +
206
189
  // #{prepareMediaVariable(--_ctm-dn-lt-dr-wt)}
207
190
  // );
208
- margin-inline-start: calc(
209
- var(--_in_hr-gp, prepareMediaVariable(--_ctm-dn-in-dt-se-in-gp, 0px)) +
210
- var(
211
- --_ctm-mob-dn-tt-cr-dr-wt,
212
- var(--_ctm-tab-dn-tt-cr-dr-wt, var(--_ctm-dn-tt-cr-dr-wt, inherit))
213
- )
214
- );
191
+ margin-inline-start: calc(var(--_in_hr-gp, prepareMediaVariable(--_ctm-dn-in-dt-se-in-gp, 0px)) + var(--_ctm-mob-dn-tt-cr-dr-wt,
192
+ var(--_ctm-tab-dn-tt-cr-dr-wt, var(--_ctm-dn-tt-cr-dr-wt, inherit))));
215
193
  position: relative;
216
194
 
217
195
  @each $key, $value in map.get(map.get($pos2, hrz), after) {
@@ -235,22 +213,16 @@ $pos2: (
235
213
  // #{prepareMediaVariable(--_ctm-dn-lt-dr-wt)}
236
214
  // )
237
215
  // );
238
- left: calc(
239
- calc(
240
- -1 *
241
- var(
242
- --_ctm-mob-dn-tt-cr-dr-wt,
243
- var(--_ctm-tab-dn-tt-cr-dr-wt, var(--_ctm-dn-tt-cr-dr-wt, inherit))
244
- )
245
- ) - var(--_in_hr-gp, prepareMediaVariable(--_ctm-dn-in-dt-se-in-gp, 0px))
246
- );
216
+ left: calc(calc(-1 * var(--_ctm-mob-dn-tt-cr-dr-wt,
217
+ var(--_ctm-tab-dn-tt-cr-dr-wt, var(--_ctm-dn-tt-cr-dr-wt, inherit)))) - var(--_in_hr-gp, prepareMediaVariable(--_ctm-dn-in-dt-se-in-gp, 0px)));
247
218
  width: prepareMediaVariable(--_ctm-dn-tt-cr-dr-wt);
248
219
  height: prepareMediaVariable(--_ctm-dn-tt-cr-dr-wh);
249
220
  border-radius: prepareMediaVariable(--_ctm-dn-tt-cr-dr-br-rs);
250
221
  }
251
222
  }
252
223
 
253
- & > .#{$text} {
224
+ &>.#{$text} {
225
+
254
226
  &,
255
227
  * {
256
228
  font-family: var(--_txt-ht-ff, prepareMediaVariable(--_ctm-dn-tt-dt-se-ft-fy));
@@ -262,10 +234,8 @@ $pos2: (
262
234
  text-align: var(--_txt-ht-tl, prepareMediaVariable(--_ctm-dn-tt-dt-se-tt-an));
263
235
  letter-spacing: var(--_txt-ht-ls, prepareMediaVariable(--_ctm-dn-tt-dt-se-lr-sg));
264
236
  line-height: var(--_txt-ht-lt, prepareMediaVariable(--_ctm-dn-tt-dt-se-le-ht));
265
- text-transform: var(
266
- --_txt-ht-tt-tm,
267
- prepareMediaVariable(--_ctm-dn-tt-dt-se-tt-tm)
268
- );
237
+ text-transform: var(--_txt-ht-tt-tm,
238
+ prepareMediaVariable(--_ctm-dn-tt-dt-se-tt-tm));
269
239
  word-wrap: var(--_txt-ht-wd-wp, prepareMediaVariable(--_ctm-dn-tt-dt-se-wd-wp));
270
240
  word-break: var(--_txt-ht-wd-bk, prepareMediaVariable(--_ctm-dn-tt-dt-se-wd-bk));
271
241
  }
@@ -275,7 +245,8 @@ $pos2: (
275
245
  }
276
246
  }
277
247
 
278
- & > .#{$desc} {
248
+ &>.#{$desc} {
249
+
279
250
  &,
280
251
  * {
281
252
  font-family: prepareMediaVariable(--_ctm-dn-dn-ft-fy);
@@ -309,4 +280,4 @@ $pos2: (
309
280
  }
310
281
  }
311
282
  }
312
- }
283
+ }
@@ -1,21 +1,21 @@
1
- .product_img {
2
- // background-color: var(--_base-white);
3
- border-radius: 6px;
4
- display: flex;
5
- justify-content: center;
6
- align-items: center;
7
- // border: 1px solid var(--_gray-200);
8
- overflow: hidden;
9
- img {
10
- max-height: 100%;
11
- object-fit: contain;
12
- // padding: 4px;
13
- }
14
- .no_image {
15
- padding: 16px;
16
- svg {
17
- width: 100%;
18
- height: 100%;
19
- }
20
- }
21
- }
1
+ .product_img {
2
+ // background-color: var(--_base-white);
3
+ border-radius: 6px;
4
+ display: flex;
5
+ justify-content: center;
6
+ align-items: center;
7
+ // border: 1px solid var(--_gray-200);
8
+ overflow: hidden;
9
+ img {
10
+ max-height: 100%;
11
+ object-fit: contain;
12
+ // padding: 4px;
13
+ }
14
+ .no_image {
15
+ padding: 16px;
16
+ svg {
17
+ width: 100%;
18
+ height: 100%;
19
+ }
20
+ }
21
+ }
@@ -91,13 +91,28 @@ $isFlexboxElementChild: ".flx > .wrapper > *";
91
91
  // border-box height the border lands outside the element's fixed height
92
92
  // and the top/bottom edges get clipped; without border-box the width grows
93
93
  // past the element and the outline sits wider than the image.
94
- // Tracks the var rather than 100% because the element drops its own height
95
- // while resizing, dragging or in full view.
96
- height: prepareMediaVariable(--_ctm-lt-ht);
94
+ // 100% rather than --_ctm-lt-ht: while resizing, dragging or in full view the
95
+ // element drops its own height, and a wrapper still pinned to the layout
96
+ // height kept a short box around a taller picture, so the image spilled over
97
+ // whatever sat below it on the canvas. Following the element keeps this box
98
+ // definite whenever the element has a height, and lets the two grow together
99
+ // when it does not.
100
+ height: 100%;
97
101
  box-sizing: border-box;
98
102
  // overflow: clip;
99
103
  rotate: calc(var(--_ctm-dn-re) * 1deg);
100
104
 
105
+ // FlexAnchorTag renders an <a> and CategoryImage adds a click <div> between
106
+ // this wrapper and the image, both height:auto by default. That left the
107
+ // image's own `height: 100%` with nothing definite to resolve against, so it
108
+ // fell back to the picture's natural size and escaped the box — 167px of logo
109
+ // in a 30px brand image. `:has` keeps this off the builder resizer, which
110
+ // carries no image.
111
+ :is(a, div):has(.image-element) {
112
+ display: block;
113
+ height: 100%;
114
+ }
115
+
101
116
  &:is(:not(:has([class*="crop__main"]) *)) {
102
117
  padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
103
118
  background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
@@ -13,8 +13,8 @@
13
13
  // section — Widget Style absorbed it, so the fallback exists only for pages saved
14
14
  // before the merge. Same shape the divider already uses for its
15
15
  // hover-falls-back-to-default chain below.
16
- $widgetFontProps:
17
- ft-fy, ft-se, cr, ft-wt, ft-se-ic, ue, tt-an, lr-sg, le-ht, tt-tm, wd-wp, wd-bk, pg;
16
+ $widgetFontProps: ft-fy, ft-se, cr, ft-wt, ft-se-ic, ue, tt-an, lr-sg, le-ht, tt-tm, wd-wp, wd-bk,
17
+ pg;
18
18
 
19
19
  @mixin widgetStateFont($state, $fallbackState: null) {
20
20
  @each $p in $widgetFontProps {
@@ -516,41 +516,49 @@ $widgetFontProps:
516
516
  );
517
517
  }
518
518
 
519
+ // Both states also collapse the weight when their own switch is off, so the space
520
+ // reserved below matches whether the divider is actually painted. Mirrors the
521
+ // `display: none` rules at the end of this block.
522
+ &[data-show-divider="false"]:not(:hover),
523
+ &[data-show-divider-hover="false"]:hover {
524
+ --_sf-dr-wt: 0px;
525
+ }
526
+
527
+ // The divider is a pseudo-element, so it takes no space of its own: at a weight
528
+ // wider than half the item gap it used to grow back over the option's label.
529
+ // `dividerGapReserve` gives the option that weight as margin and
530
+ // `dividerGapOffset` pushes the divider into it, so the rule stays inside the gap
531
+ // whatever the weight. `--_sf-dr-wt` rather than the raw variables so the reserve
532
+ // follows the hover weight the same way the divider itself does.
519
533
  &[data-flex-direction="row"] {
534
+ .option:not(:last-child) {
535
+ @include dividerGapReserve(var(--_sf-dr-wt), right);
536
+ }
520
537
  .option:not(:last-child)::before {
521
538
  content: "";
522
539
  position: absolute;
523
540
  top: 0;
524
541
  bottom: 0; /* For full height divider */
525
- right: calc(
526
- -1 *
527
- (
528
- var(
529
- --_ctm-mob-lt-gp-bn-is,
530
- var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is))
531
- ) /
532
- 2
533
- )
534
- ); /* Half of your gap, assuming divider is centered in the gap */
542
+ right: dividerGapOffset(
543
+ var(--_ctm-mob-lt-gp-bn-is, var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is))),
544
+ var(--_sf-dr-wt)
545
+ );
535
546
  width: var(--_sf-dr-wt); /* Divider thickness */
536
547
  background-color: var(--_sf-dr-cr); /* Divider color */
537
548
  }
538
549
  }
539
550
  &[data-flex-direction="column"] {
551
+ .option:not(:last-child) {
552
+ @include dividerGapReserve(var(--_sf-dr-wt));
553
+ }
540
554
  .option:not(:last-child)::before {
541
555
  content: "";
542
556
  position: absolute;
543
557
  left: 0;
544
558
  right: 0;
545
- bottom: calc(
546
- -1 *
547
- (
548
- var(
549
- --_ctm-mob-lt-gp-bn-is,
550
- var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is))
551
- ) /
552
- 2
553
- )
559
+ bottom: dividerGapOffset(
560
+ var(--_ctm-mob-lt-gp-bn-is, var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is))),
561
+ var(--_sf-dr-wt)
554
562
  );
555
563
  height: var(--_sf-dr-wt);
556
564
  background-color: var(--_sf-dr-cr);
@@ -101,6 +101,11 @@
101
101
  &[data-show-dividers="true"] {
102
102
  .product__list__item {
103
103
  position: relative;
104
+ // The divider is a pseudo-element and takes no space of its own, so a thick
105
+ // one grew back over the item beside it — see dividerGapReserve in functions.scss.
106
+ &:not(:last-child) {
107
+ @include dividerGapReserve(--_ctm-dn-dr-dr-wh, right);
108
+ }
104
109
  &:not(:last-child)::after {
105
110
  content: "";
106
111
  width: var(
@@ -109,19 +114,7 @@
109
114
  );
110
115
  height: 100%;
111
116
  position: absolute;
112
- right: calc(
113
- (
114
- -1 * var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg))) /
115
- 2
116
- ) -
117
- (
118
- var(
119
- --_ctm-mob-dn-dr-dr-wh,
120
- var(--_ctm-tab-dn-dr-dr-wh, var(--_ctm-dn-dr-dr-wh))
121
- ) /
122
- 2
123
- )
124
- );
117
+ right: dividerGapOffset(--_ctm-lt-im-sg, --_ctm-dn-dr-dr-wh);
125
118
  background-color: var(
126
119
  --_ctm-mob-dn-dr-dr-cr,
127
120
  var(--_ctm-tab-dn-dr-dr-cr, var(--_ctm-dn-dr-dr-cr))
@@ -13,12 +13,14 @@
13
13
 
14
14
  // width: 100%;
15
15
  // background: var(--_ctm-layo-dn-bd-cr);
16
+ height: 100% !important;
17
+ min-height: prepareMediaVariable(--_ctm-layo-lt-mn-ht, 100px) !important;
16
18
 
17
19
  & > div {
18
20
  &.wrapper {
19
21
  width: 100%;
20
22
  height: 100%;
21
- min-height: prepareMediaVariable(--_ctm-layo-lt-mn-ht, 0px) !important;
23
+ min-height: prepareMediaVariable(--_ctm-layo-lt-mn-ht, 100px) !important;
22
24
  padding: var(--_ctm-mob-layo-lt-pg, var(--_ctm-tab-layo-lt-pg, var(--_ctm-layo-lt-pg)));
23
25
 
24
26
  &:is([data-background-type="color"] > *).wrapper {
@@ -22,21 +22,51 @@ $sliderControlDragging: "[flex-slider-control-moving='true']";
22
22
  var(--_ctm-tab-lay-lt-mn, var(--_ctm-lay-lt-mn, var(--_ctm-lt-mn, var(--_tst-lt-mn))))
23
23
  );
24
24
 
25
+ // Widget Style (design.widgetStyle). The `wt-se` segment arrived when these moved
26
+ // off the Design tab root into their own accordion; the plain `dn-` name is kept as
27
+ // the fallback so pages published before the move keep their background, border,
28
+ // radius and shadow.
25
29
  &[data-background-type="color"] {
26
- background-color: prepareMediaVariable(--_ctm-lay-dn-bd-cr);
30
+ background-color: prepareMediaVariable(
31
+ --_ctm-lay-dn-wt-se-bd-cr,
32
+ prepareMediaVariable(--_ctm-lay-dn-bd-cr)
33
+ );
27
34
  }
28
35
 
29
36
  &[data-background-type="gradient"] {
30
- --_sf-lay-gradient-angle: calc(#{prepareMediaVariable(--_ctm-lay-dn-gt-ae, 90)} * 1deg);
31
- --_sf-lay-gradient-start-color: #{prepareMediaVariable(--_ctm-lay-dn-gt-st-cr, transparent)};
37
+ --_sf-lay-gradient-angle: calc(
38
+ #{prepareMediaVariable(
39
+ --_ctm-lay-dn-wt-se-gt-ae,
40
+ prepareMediaVariable(--_ctm-lay-dn-gt-ae, 90)
41
+ )} *
42
+ 1deg
43
+ );
44
+ --_sf-lay-gradient-start-color: #{prepareMediaVariable(
45
+ --_ctm-lay-dn-wt-se-gt-st-cr,
46
+ prepareMediaVariable(--_ctm-lay-dn-gt-st-cr, transparent)
47
+ )};
32
48
  --_sf-lay-gradient-start-position: calc(
33
- #{prepareMediaVariable(--_ctm-lay-dn-gt-st-pn, 0)} * 1%
49
+ #{prepareMediaVariable(
50
+ --_ctm-lay-dn-wt-se-gt-st-pn,
51
+ prepareMediaVariable(--_ctm-lay-dn-gt-st-pn, 0)
52
+ )} *
53
+ 1%
34
54
  );
35
- --_sf-lay-gradient-end-color: #{prepareMediaVariable(--_ctm-lay-dn-gt-ed-cr, transparent)};
55
+ --_sf-lay-gradient-end-color: #{prepareMediaVariable(
56
+ --_ctm-lay-dn-wt-se-gt-ed-cr,
57
+ prepareMediaVariable(--_ctm-lay-dn-gt-ed-cr, transparent)
58
+ )};
36
59
  --_sf-lay-gradient-end-position: calc(
37
- #{prepareMediaVariable(--_ctm-lay-dn-gt-ed-pn, 100)} * 1%
60
+ #{prepareMediaVariable(
61
+ --_ctm-lay-dn-wt-se-gt-ed-pn,
62
+ prepareMediaVariable(--_ctm-lay-dn-gt-ed-pn, 100)
63
+ )} *
64
+ 1%
38
65
  );
39
- --_sf-lay-gradient-position: #{prepareMediaVariable(--_ctm-lay-dn-gt-pn, center)};
66
+ --_sf-lay-gradient-position: #{prepareMediaVariable(
67
+ --_ctm-lay-dn-wt-se-gt-pn,
68
+ prepareMediaVariable(--_ctm-lay-dn-gt-pn, center)
69
+ )};
40
70
 
41
71
  &[data-gradient-type="Linear Gradient"] {
42
72
  background-image: linear-gradient(
@@ -56,12 +86,30 @@ $sliderControlDragging: "[flex-slider-control-moving='true']";
56
86
  }
57
87
 
58
88
  &[data-background-type="image"] {
59
- background-image: prepareMediaVariable(--_ctm-lay-dn-bd-ie);
60
- background-attachment: prepareMediaVariable(--_ctm-lay-dn-bd-at);
61
- background-position: prepareMediaVariable(--_ctm-lay-dn-bd-pn);
62
- background-position-y: prepareMediaVariable(--_ctm-lay-dn-bd-pn-y);
63
- background-repeat: prepareMediaVariable(--_ctm-lay-dn-bd-rt);
64
- background-size: prepareMediaVariable(--_ctm-lay-dn-bd-se);
89
+ background-image: prepareMediaVariable(
90
+ --_ctm-lay-dn-wt-se-bd-ie,
91
+ prepareMediaVariable(--_ctm-lay-dn-bd-ie)
92
+ );
93
+ background-attachment: prepareMediaVariable(
94
+ --_ctm-lay-dn-wt-se-bd-at,
95
+ prepareMediaVariable(--_ctm-lay-dn-bd-at)
96
+ );
97
+ background-position: prepareMediaVariable(
98
+ --_ctm-lay-dn-wt-se-bd-pn,
99
+ prepareMediaVariable(--_ctm-lay-dn-bd-pn)
100
+ );
101
+ background-position-y: prepareMediaVariable(
102
+ --_ctm-lay-dn-wt-se-bd-pn-y,
103
+ prepareMediaVariable(--_ctm-lay-dn-bd-pn-y)
104
+ );
105
+ background-repeat: prepareMediaVariable(
106
+ --_ctm-lay-dn-wt-se-bd-rt,
107
+ prepareMediaVariable(--_ctm-lay-dn-bd-rt)
108
+ );
109
+ background-size: prepareMediaVariable(
110
+ --_ctm-lay-dn-wt-se-bd-se,
111
+ prepareMediaVariable(--_ctm-lay-dn-bd-se)
112
+ );
65
113
  }
66
114
 
67
115
  // background-color: var(
@@ -88,21 +136,21 @@ $sliderControlDragging: "[flex-slider-control-moving='true']";
88
136
  // --_ctm-mob-lay-dn-bd-se,
89
137
  // var(--_ctm-tab-lay-dn-bd-se, var(--_ctm-lay-dn-bd-se))
90
138
  // );
91
- border-radius: var(
92
- --_ctm-mob-lay-dn-br-rs,
93
- var(--_ctm-tab-lay-dn-br-rs, var(--_ctm-lay-dn-br-rs))
139
+ border-radius: prepareMediaVariable(
140
+ --_ctm-lay-dn-wt-se-br-rs,
141
+ prepareMediaVariable(--_ctm-lay-dn-br-rs)
94
142
  );
95
- border-color: var(
96
- --_ctm-mob-lay-dn-br-cr,
97
- var(--_ctm-tab-lay-dn-br-cr, var(--_ctm-lay-dn-br-cr))
143
+ border-color: prepareMediaVariable(
144
+ --_ctm-lay-dn-wt-se-br-cr,
145
+ prepareMediaVariable(--_ctm-lay-dn-br-cr)
98
146
  );
99
- border-style: var(
100
- --_ctm-mob-lay-dn-br-se,
101
- var(--_ctm-tab-lay-dn-br-se, var(--_ctm-lay-dn-br-se))
147
+ border-style: prepareMediaVariable(
148
+ --_ctm-lay-dn-wt-se-br-se,
149
+ prepareMediaVariable(--_ctm-lay-dn-br-se)
102
150
  );
103
- border-width: var(
104
- --_ctm-mob-lay-dn-br-wh,
105
- var(--_ctm-tab-lay-dn-br-wh, var(--_ctm-lay-dn-br-wh))
151
+ border-width: prepareMediaVariable(
152
+ --_ctm-lay-dn-wt-se-br-wh,
153
+ prepareMediaVariable(--_ctm-lay-dn-br-wh)
106
154
  );
107
155
  box-shadow: var(
108
156
  --_hover-show-shadow,
@@ -110,10 +158,19 @@ $sliderControlDragging: "[flex-slider-control-moving='true']";
110
158
  --_sf-hr-bx-sw,
111
159
  var(
112
160
  --_show-shadow,
113
- var(--_ctm-mob-lay-dn-sw-ae, var(--_ctm-tab-lay-dn-sw-ae, var(--_ctm-lay-dn-sw-ae)))
114
- var(--_ctm-mob-lay-dn-sw-br, var(--_ctm-tab-lay-dn-sw-br, var(--_ctm-lay-dn-sw-br)))
115
- var(--_ctm-mob-lay-dn-sw-sd, var(--_ctm-tab-lay-dn-sw-sd, var(--_ctm-lay-dn-sw-sd)))
116
- var(--_ctm-mob-lay-dn-sw-cr, var(--_ctm-tab-lay-dn-sw-cr, var(--_ctm-lay-dn-sw-cr)))
161
+ prepareMediaVariable(--_ctm-lay-dn-wt-se-sw-ae, prepareMediaVariable(--_ctm-lay-dn-sw-ae))
162
+ prepareMediaVariable(
163
+ --_ctm-lay-dn-wt-se-sw-br,
164
+ prepareMediaVariable(--_ctm-lay-dn-sw-br)
165
+ )
166
+ prepareMediaVariable(
167
+ --_ctm-lay-dn-wt-se-sw-sd,
168
+ prepareMediaVariable(--_ctm-lay-dn-sw-sd)
169
+ )
170
+ prepareMediaVariable(
171
+ --_ctm-lay-dn-wt-se-sw-cr,
172
+ prepareMediaVariable(--_ctm-lay-dn-sw-cr)
173
+ )
117
174
  )
118
175
  )
119
176
  );
@@ -182,6 +239,52 @@ $sliderControlDragging: "[flex-slider-control-moving='true']";
182
239
  --_ctm-mob-lay-lt-cl-ae-cr,
183
240
  var(--_ctm-tab-lay-lt-cl-ae-cr, var(--_ctm-lay-lt-cl-ae-cr))
184
241
  );
242
+
243
+ // Design > Pagination Dots. Dot Size replaces the layout tab's Dot Size the
244
+ // same way Arrow Size replaces Arrow Icon Size, with the old var as fallback
245
+ // for elements saved before the section existed. The two colours had no layout
246
+ // equivalent: the selected dot used to follow Control Active Color, which still
247
+ // colours the arrow hover and the unselected dot border.
248
+ --_sf-ed-vl-sz: #{prepareMediaVariable(
249
+ --_ctm-lay-dn-pn-ds-dt-se,
250
+ var(--_ctm-mob-lay-lt-dt-se, var(--_ctm-tab-lay-lt-dt-se, var(--_ctm-lay-lt-dt-se, 10px)))
251
+ )};
252
+ --_sf-dt-ae-bg: #{prepareMediaVariable(--_ctm-lay-dn-pn-ds-ct-dt-cr, #162578)};
253
+ --_sf-dt-ie-bg: #{prepareMediaVariable(--_ctm-lay-dn-pn-ds-or-dt-cr, #fff)};
254
+
255
+ // Design > Pagination Arrows.
256
+ //
257
+ // Arrow Size and the layout tab's Arrow Icon Size drive the same button box, so
258
+ // the design value wins and the layout value is the fallback — an element saved
259
+ // before this section existed has no `dn-pn-as-aw-se` var and keeps its
260
+ // `lt-aw-in-se` size. Both schema defaults are 40px.
261
+ --_sf-ic-sz-nn: #{prepareMediaVariable(
262
+ --_ctm-lay-dn-pn-as-aw-se,
263
+ var(
264
+ --_ctm-mob-lay-lt-aw-in-se,
265
+ var(--_ctm-tab-lay-lt-aw-in-se, var(--_ctm-lay-lt-aw-in-se, 40px))
266
+ )
267
+ )};
268
+ // Resting stroke of the chevrons; hover still switches to Control Active Color.
269
+ --_sf-sl-ct-aw-in-cl: #{prepareMediaVariable(--_ctm-lay-dn-pn-as-aw-cr, #667085)};
270
+ // Background Color, as the gallery slider uses it: the button is a 10% tint of
271
+ // the chosen colour and 20% on hover (see the hover rule further down), not the
272
+ // flat colour. Kept in its own variable so both tints read the same source.
273
+ --_sf-lay-as-bg-cr: #{prepareMediaVariable(--_ctm-lay-dn-pn-as-bd-cr, #fff)};
274
+ --_sf-nv-ic-bg: color-mix(in srgb, var(--_sf-lay-as-bg-cr) 10%, transparent);
275
+
276
+ // Background Shape of the arrow buttons, matching the gallery slider's mapping:
277
+ // Round is the mixin's own 50% default, None squares the button off and Square
278
+ // rounds the corners slightly. Elements without this section have no attribute
279
+ // at all and stay round.
280
+ button.embla__btn {
281
+ &[data-background-shape="None"] {
282
+ --_sf-nv-ic-br: 0px;
283
+ }
284
+ &[data-background-shape="Square"] {
285
+ --_sf-nv-ic-br: 4px;
286
+ }
287
+ }
185
288
  // &:is([data-control-type="1"]) {
186
289
  // @include CMSRepeaterEmblaControlStyles(1);
187
290
  // }
@@ -194,6 +297,38 @@ $sliderControlDragging: "[flex-slider-control-moving='true']";
194
297
  }
195
298
  }
196
299
 
300
+ // Overrides of the shared control mixin. `:is([data-control-type])` matches the
301
+ // specificity of the rules being replaced, and this block comes after the
302
+ // @include, so on the tie these win.
303
+ &:is([data-control-type]) {
304
+ // Hover of the arrow buttons. The mixin tints them with Control Active Color,
305
+ // which ignores the Background Color the Pagination Arrows section sets; the
306
+ // gallery slider instead deepens that same colour from 10% to 20%. The icon
307
+ // stroke still switches to Control Active Color — the mixin's own rule.
308
+ button.embla__btn:hover:not(:disabled) {
309
+ @include BgColorLighter(var(--_sf-lay-as-bg-cr), 20%);
310
+ }
311
+
312
+ // Design > Pagination Dots > Border and Shadow.
313
+ //
314
+ // Both are gated on the container attributes the control components publish
315
+ // from the Show Border / Show Shadow toggles: with the border off the dots keep
316
+ // the hairline the mixin derives from Control Active Color, and with it on
317
+ // these longhands take over.
318
+ .pagination__v1[data-show-border="true"] > button.embla__dot {
319
+ border-width: #{prepareMediaVariable(--_ctm-lay-dn-pn-ds-br-wh, 0px)};
320
+ border-style: #{prepareMediaVariable(--_ctm-lay-dn-pn-ds-br-se, solid)};
321
+ border-color: #{prepareMediaVariable(--_ctm-lay-dn-pn-ds-br-cr, transparent)};
322
+ }
323
+
324
+ .pagination__v1[data-show-shadow="true"] > button.embla__dot {
325
+ box-shadow: #{prepareMediaVariable(--_ctm-lay-dn-pn-ds-sw-ae, 0px 0px)}
326
+ #{prepareMediaVariable(--_ctm-lay-dn-pn-ds-sw-br, 0px)}
327
+ #{prepareMediaVariable(--_ctm-lay-dn-pn-ds-sw-sd, 0px)}
328
+ #{prepareMediaVariable(--_ctm-lay-dn-pn-ds-sw-cr, transparent)};
329
+ }
330
+ }
331
+
197
332
  & > div {
198
333
  &.wrapper {
199
334
  justify-content: prepareMediaVariable(--_ctm-lay-lt-jy-ct);