@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
@@ -0,0 +1,301 @@
1
+ /**
2
+ * Bundle Categories — the category strip above a bundle's product list.
3
+ *
4
+ * Mirrors the category tabs in the Bundle Details element: a horizontal row of
5
+ * cards, each with the category's image, its name, how many products it holds
6
+ * and how many are selected. The row is an Embla carousel, so the slides are
7
+ * laid out by the carousel and only the card itself is styled here.
8
+ */
9
+ [data-div-type="element"] {
10
+ &[data-element-type="bundleCategories"] {
11
+ // The builder writes width/height/margin/padding as --_ctm-* custom properties
12
+ // rather than as plain CSS. Without consuming them the Layout panel appears to
13
+ // do nothing — which is exactly how this element behaved.
14
+ //
15
+ // `--_sf-nw-wh` closes the chain: it is the width the element emits itself
16
+ // while a resize drag is in flight, before the percentage is committed.
17
+ width: var(
18
+ --_sf-el-wh-st-mx,
19
+ calc(
20
+ 1% *
21
+ var(
22
+ --_ctm-mob-ele-nw-wh-vl,
23
+ var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl, var(--_sf-nw-wh)))
24
+ )
25
+ )
26
+ );
27
+ margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn, 0)));
28
+ padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg, 0)));
29
+
30
+ // Show Border / Show Shadow are CONTROLS, not CSS, so the builder never turns
31
+ // them into `--_ctm-*` variables — the element surfaces them as data
32
+ // attributes and the gates below read those.
33
+ &[data-show-border="false"] > .wrapper {
34
+ border-style: none;
35
+ }
36
+
37
+ // A gate of its own rather than the shared `--_show-shadow`: custom properties
38
+ // inherit, so a parent whose shadow is switched off would silently clear this
39
+ // element's too.
40
+ &[data-show-shadow="false"] {
41
+ --_sf-bc-show-shadow: none;
42
+ }
43
+
44
+ // Background type is chosen in the Design tab and written onto the element as
45
+ // `data-background-type`; gradients add `data-gradient-type`. Both are gated
46
+ // exactly as the repeater item gates them, and like it the painted surface is
47
+ // the wrapper rather than the root — the root carries the builder's own
48
+ // `#<id>` rule and cannot be overridden from this stylesheet.
49
+ &[data-background-type="color"] > .wrapper {
50
+ background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
51
+ }
52
+
53
+ &[data-background-type="image"] > .wrapper {
54
+ background-image: var(--_ctm-mob-dn-bd-ie, var(--_ctm-tab-dn-bd-ie, var(--_ctm-dn-bd-ie)));
55
+ }
56
+
57
+ &[data-background-type="gradient"] > .wrapper {
58
+ --_sf-bc-gradient-angle: calc(
59
+ var(--_ctm-mob-dn-gt-ae, var(--_ctm-tab-dn-gt-ae, var(--_ctm-dn-gt-ae, 90))) * 1deg
60
+ );
61
+ --_sf-bc-gradient-start-color: var(
62
+ --_ctm-mob-dn-gt-st-cr,
63
+ var(--_ctm-tab-dn-gt-st-cr, var(--_ctm-dn-gt-st-cr, transparent))
64
+ );
65
+ --_sf-bc-gradient-start-position: calc(
66
+ var(--_ctm-mob-dn-gt-st-pn, var(--_ctm-tab-dn-gt-st-pn, var(--_ctm-dn-gt-st-pn, 0))) * 1%
67
+ );
68
+ --_sf-bc-gradient-end-color: var(
69
+ --_ctm-mob-dn-gt-ed-cr,
70
+ var(--_ctm-tab-dn-gt-ed-cr, var(--_ctm-dn-gt-ed-cr, transparent))
71
+ );
72
+ --_sf-bc-gradient-end-position: calc(
73
+ var(--_ctm-mob-dn-gt-ed-pn, var(--_ctm-tab-dn-gt-ed-pn, var(--_ctm-dn-gt-ed-pn, 100))) * 1%
74
+ );
75
+ --_sf-bc-gradient-position: var(
76
+ --_ctm-mob-dn-gt-pn,
77
+ var(--_ctm-tab-dn-gt-pn, var(--_ctm-dn-gt-pn, center))
78
+ );
79
+ }
80
+
81
+ &[data-gradient-type="Linear Gradient"] > .wrapper {
82
+ background-image: linear-gradient(
83
+ var(--_sf-bc-gradient-angle),
84
+ var(--_sf-bc-gradient-start-color) var(--_sf-bc-gradient-start-position),
85
+ var(--_sf-bc-gradient-end-color) var(--_sf-bc-gradient-end-position)
86
+ );
87
+ }
88
+
89
+ &[data-gradient-type="Radial Gradient"] > .wrapper {
90
+ background-image: radial-gradient(
91
+ circle at var(--_sf-bc-gradient-position),
92
+ var(--_sf-bc-gradient-start-color) var(--_sf-bc-gradient-start-position),
93
+ var(--_sf-bc-gradient-end-color) var(--_sf-bc-gradient-end-position)
94
+ );
95
+ }
96
+ background-position: var(--_ctm-mob-dn-bd-pn, var(--_ctm-tab-dn-bd-pn, var(--_ctm-dn-bd-pn)));
97
+ background-repeat: var(--_ctm-mob-dn-bd-rt, var(--_ctm-tab-dn-bd-rt, var(--_ctm-dn-bd-rt)));
98
+ background-size: var(--_ctm-mob-dn-bd-se, var(--_ctm-tab-dn-bd-se, var(--_ctm-dn-bd-se)));
99
+
100
+ border-color: var(--_ctm-mob-dn-br-cr, var(--_ctm-tab-dn-br-cr, var(--_ctm-dn-br-cr)));
101
+ border-style: var(--_ctm-mob-dn-br-se, var(--_ctm-tab-dn-br-se, var(--_ctm-dn-br-se)));
102
+ border-width: var(--_ctm-mob-dn-br-wh, var(--_ctm-tab-dn-br-wh, var(--_ctm-dn-br-wh)));
103
+ border-radius: var(--_ctm-mob-dn-br-rs, var(--_ctm-tab-dn-br-rs, var(--_ctm-dn-br-rs)));
104
+
105
+ // Show Border / Show Shadow are CONTROLS, not CSS, so they never become
106
+ // variables — the element surfaces them as data attributes instead.
107
+ &[data-show-border="false"] {
108
+ border-style: none;
109
+ }
110
+
111
+ // A gate of its own rather than the shared `--_show-shadow`: custom properties
112
+ // inherit, so a parent whose shadow is switched off would silently clear this
113
+ // element's too.
114
+ &[data-show-shadow="false"] {
115
+ --_sf-bc-show-shadow: none;
116
+ }
117
+
118
+ // Per-part fallbacks: without them one unset part invalidates the whole
119
+ // `box-shadow` at computed-value time and it resolves to `none`.
120
+ box-shadow: var(
121
+ --_sf-bc-show-shadow,
122
+ var(--_ctm-mob-dn-sw-ae, var(--_ctm-tab-dn-sw-ae, var(--_ctm-dn-sw-ae, 0)))
123
+ var(--_ctm-mob-dn-sw-br, var(--_ctm-tab-dn-sw-br, var(--_ctm-dn-sw-br, 0)))
124
+ var(--_ctm-mob-dn-sw-sd, var(--_ctm-tab-dn-sw-sd, var(--_ctm-dn-sw-sd, 0)))
125
+ var(--_ctm-mob-dn-sw-cr, var(--_ctm-tab-dn-sw-cr, var(--_ctm-dn-sw-cr, transparent)))
126
+ );
127
+
128
+ // Height goes on the wrapper, not here: the builder emits the element's own
129
+ // default styles as `#<id>{ height: auto }`, and an id selector outranks this
130
+ // stylesheet — so a height set here could never win and the top/bottom resize
131
+ // handles moved nothing. The wrapper is outside that rule's reach.
132
+ > .wrapper {
133
+ width: 100%;
134
+ height: var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht, 100%))) !important;
135
+
136
+ // Border, radius and shadow ride on the wrapper alongside the background so
137
+ // the whole painted surface is one box.
138
+ border-color: var(--_ctm-mob-dn-br-cr, var(--_ctm-tab-dn-br-cr, var(--_ctm-dn-br-cr)));
139
+ border-style: var(--_ctm-mob-dn-br-se, var(--_ctm-tab-dn-br-se, var(--_ctm-dn-br-se)));
140
+ border-width: var(--_ctm-mob-dn-br-wh, var(--_ctm-tab-dn-br-wh, var(--_ctm-dn-br-wh)));
141
+ border-radius: var(--_ctm-mob-dn-br-rs, var(--_ctm-tab-dn-br-rs, var(--_ctm-dn-br-rs)));
142
+
143
+ background-repeat: var(--_ctm-mob-dn-bd-rt, var(--_ctm-tab-dn-bd-rt, var(--_ctm-dn-bd-rt)));
144
+ background-size: var(--_ctm-mob-dn-bd-se, var(--_ctm-tab-dn-bd-se, var(--_ctm-dn-bd-se)));
145
+ background-attachment: var(
146
+ --_ctm-mob-dn-bd-at,
147
+ var(--_ctm-tab-dn-bd-at, var(--_ctm-dn-bd-at))
148
+ );
149
+ // Position is stored as separate X and Y values, not one shorthand.
150
+ background-position: var(
151
+ --_ctm-mob-dn-bd-pn-x,
152
+ var(--_ctm-tab-dn-bd-pn-x, var(--_ctm-dn-bd-pn-x, center))
153
+ )
154
+ var(--_ctm-mob-dn-bd-pn-y, var(--_ctm-tab-dn-bd-pn-y, var(--_ctm-dn-bd-pn-y, center)));
155
+
156
+ // Per-part fallbacks: without them one unset part invalidates the whole
157
+ // `box-shadow` at computed-value time and it resolves to `none`.
158
+ box-shadow: var(
159
+ --_sf-bc-show-shadow,
160
+ var(--_ctm-mob-dn-sw-ae, var(--_ctm-tab-dn-sw-ae, var(--_ctm-dn-sw-ae, 0)))
161
+ var(--_ctm-mob-dn-sw-br, var(--_ctm-tab-dn-sw-br, var(--_ctm-dn-sw-br, 0)))
162
+ var(--_ctm-mob-dn-sw-sd, var(--_ctm-tab-dn-sw-sd, var(--_ctm-dn-sw-sd, 0)))
163
+ var(--_ctm-mob-dn-sw-cr, var(--_ctm-tab-dn-sw-cr, var(--_ctm-dn-sw-cr, transparent)))
164
+ );
165
+ }
166
+
167
+ // Bundle name above the strip, matching the heading Bundle Details prints.
168
+ .bundle__name {
169
+ margin: 0 0 12px;
170
+ font-size: 18px;
171
+ font-weight: 600;
172
+ }
173
+
174
+ .bundle__categories {
175
+ width: 100%;
176
+
177
+ // Embla's own classes. The container has to be an explicit row — otherwise
178
+ // the slides stack — and each slide needs a width of its own, or it
179
+ // collapses to the widest word and the labels wrap per character.
180
+ .embla__container {
181
+ display: flex;
182
+ flex-direction: row;
183
+ }
184
+
185
+ .embla__slide {
186
+ flex: 0 0 auto;
187
+ min-width: 240px;
188
+ }
189
+
190
+ // Arrow placement is driven by the carousel's control position, which the
191
+ // shared EmblaCarouselBasic stamps onto `.embla` as `data-control-type`.
192
+ // In "Side" mode — the default this element passes — it renders the two
193
+ // buttons as bare children of `.embla` with no wrapper, so an earlier rule
194
+ // written against an `.arrow-navigation` wrapper never matched and the
195
+ // arrows stacked above and below the strip.
196
+ //
197
+ // Keyed and sized exactly as bundleDetails does it: the viewport gives up
198
+ // 120px so the absolutely-placed arrows sit beside the cards rather than
199
+ // on top of them.
200
+ .embla {
201
+ position: relative;
202
+
203
+ &[data-control-type="Side"] {
204
+ .embla__viewport {
205
+ width: calc(100% - 120px);
206
+ margin-inline: auto;
207
+ }
208
+
209
+ .left-button,
210
+ .right-button {
211
+ position: absolute;
212
+ top: 50%;
213
+ transform: translateY(-50%);
214
+ z-index: 2;
215
+ display: flex;
216
+ align-items: center;
217
+ justify-content: center;
218
+ cursor: pointer;
219
+ }
220
+
221
+ .left-button {
222
+ left: 0;
223
+ }
224
+
225
+ .right-button {
226
+ right: 0;
227
+ }
228
+ }
229
+ }
230
+ }
231
+
232
+ .bundle__category {
233
+ display: flex;
234
+ align-items: center;
235
+ gap: 12px;
236
+ padding: 8px 12px;
237
+ background: transparent;
238
+ border: 1px solid transparent;
239
+ border-radius: 4px;
240
+ cursor: pointer;
241
+ font: inherit;
242
+ text-align: left;
243
+ width: 100%;
244
+ min-width: 240px;
245
+ white-space: nowrap;
246
+
247
+ // The open tab. Kept to a border rather than a fill so the strip stays quiet
248
+ // against the product list below it.
249
+ &[data-is-active="true"] {
250
+ border-color: #1f1f1f;
251
+ }
252
+ }
253
+
254
+ .bundle__category__image {
255
+ flex: 0 0 auto;
256
+ width: 56px;
257
+ height: 56px;
258
+ overflow: hidden;
259
+ border-radius: 2px;
260
+
261
+ img {
262
+ width: 100%;
263
+ height: 100%;
264
+ object-fit: cover;
265
+ }
266
+ }
267
+
268
+ .bundle__category__text {
269
+ display: flex;
270
+ flex-direction: column;
271
+ gap: 2px;
272
+ min-width: 0;
273
+ }
274
+
275
+ .bundle__category__name {
276
+ display: flex;
277
+ align-items: center;
278
+ gap: 6px;
279
+ font-weight: 600;
280
+ }
281
+
282
+ .bundle__category__tick {
283
+ color: #2e7d32;
284
+ }
285
+
286
+ .bundle__category__count,
287
+ .bundle__category__selected {
288
+ font-size: 12px;
289
+ opacity: 0.75;
290
+ }
291
+
292
+ // Validation message for this category, shown after a failed add to cart.
293
+ // `white-space: normal` because the card itself is nowrap.
294
+ .bundle__category__error {
295
+ margin-top: 4px;
296
+ font-size: 12px;
297
+ color: #c62828;
298
+ white-space: normal;
299
+ }
300
+ }
301
+ }
@@ -3615,11 +3615,20 @@ $defaultValues: (
3615
3615
  // Divider colour/width come from DividerStylesInstance on widgetStyle
3616
3616
  // (dividerWeight / dividerColor), with defaults so the line still
3617
3617
  // renders when nothing is configured.
3618
+ // Rows sit flush against each other, so the divider is pushed just
3619
+ // below the row and the row keeps that much margin for it —
3620
+ // otherwise a thick one grew up over its own label.
3621
+ &[data-show-divider="true"]:not(:last-child) {
3622
+ @include dividerGapReserve(--_ctm-dn-pt-pl-dn-vt-pr-dn-vt-dn-wt-se-dr-wh);
3623
+ }
3618
3624
  &[data-show-divider="true"]:not(:last-child)::after {
3619
3625
  content: "";
3620
3626
  position: absolute;
3621
3627
  left: 0;
3622
- bottom: 0;
3628
+ bottom: dividerGapOffset(
3629
+ 0px,
3630
+ --_ctm-dn-pt-pl-dn-vt-pr-dn-vt-dn-wt-se-dr-wh
3631
+ );
3623
3632
  width: 100%;
3624
3633
  height: #{prepareMediaVariable(
3625
3634
  --_ctm-dn-pt-pl-dn-vt-pr-dn-vt-dn-wt-se-dr-wh,
@@ -62,6 +62,18 @@
62
62
  --_ctm-mob-dn-hr-se-ft-fy,
63
63
  var(--_ctm-tab-dn-hr-se-ft-fy, var(--_ctm-dn-hr-se-ft-fy))
64
64
  );
65
+ --_sf-hr-tt-tm: var(
66
+ --_ctm-mob-dn-hr-se-tt-tm,
67
+ var(--_ctm-tab-dn-hr-se-tt-tm, var(--_ctm-dn-hr-se-tt-tm))
68
+ );
69
+ --_sf-hr-wd-wp: var(
70
+ --_ctm-mob-dn-hr-se-wd-wp,
71
+ var(--_ctm-tab-dn-hr-se-wd-wp, var(--_ctm-dn-hr-se-wd-wp))
72
+ );
73
+ --_sf-hr-wd-bk: var(
74
+ --_ctm-mob-dn-hr-se-wd-bk,
75
+ var(--_ctm-tab-dn-hr-se-wd-bk, var(--_ctm-dn-hr-se-wd-bk))
76
+ );
65
77
  --_sf-hr-fs: var(
66
78
  --_ctm-mob-dn-hr-se-ft-se,
67
79
  var(--_ctm-tab-dn-hr-se-ft-se, var(--_ctm-dn-hr-se-ft-se))
@@ -201,6 +213,22 @@
201
213
  --_sf-hr-ff,
202
214
  var(--_ctm-mob-dn-dt-se-ft-fy, var(--_ctm-tab-dn-dt-se-ft-fy, var(--_ctm-dn-dt-se-ft-fy)))
203
215
  );
216
+ text-transform: var(
217
+ --_sf-hr-tt-tm,
218
+ var(--_ctm-mob-dn-dt-se-tt-tm, var(--_ctm-tab-dn-dt-se-tt-tm, var(--_ctm-dn-dt-se-tt-tm)))
219
+ );
220
+ word-wrap: var(
221
+ --_sf-hr-wd-wp,
222
+ var(--_ctm-mob-dn-dt-se-wd-wp, var(--_ctm-tab-dn-dt-se-wd-wp, var(--_ctm-dn-dt-se-wd-wp)))
223
+ );
224
+ word-break: var(
225
+ --_sf-hr-wd-bk,
226
+ var(--_ctm-mob-dn-dt-se-wd-bk, var(--_ctm-tab-dn-dt-se-wd-bk, var(--_ctm-dn-dt-se-wd-bk)))
227
+ );
228
+ &.flex__overflow {
229
+ white-space: normal;
230
+ @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
231
+ }
204
232
  font-size: var(
205
233
  --_sf-hr-fs,
206
234
  var(--_ctm-mob-dn-dt-se-ft-se, var(--_ctm-tab-dn-dt-se-ft-se, var(--_ctm-dn-dt-se-ft-se)))
@@ -1,80 +1,80 @@
1
- @use "sass:map";
2
- @use "sass:list";
3
- [data-div-type="element"] {
4
- &[data-element-type="buyForTabsContainer"] {
5
- width: 100%;
6
- & > div {
7
- &.wrapper {
8
- width: 100%;
9
- height: 100%;
10
- padding: var(--_ctm-mob-repe-lt-pg, var(--_ctm-tab-repe-lt-pg, var(--_ctm-repe-lt-pg)));
11
-
12
- background-color: var(
13
- --_ctm-mob-repe-dn-bd-cr,
14
- var(--_ctm-tab-repe-dn-bd-cr, var(--_ctm-repe-dn-bd-cr))
15
- );
16
- background-image: var(
17
- --_ctm-mob-repe-dn-bd-ie,
18
- var(--_ctm-tab-repe-dn-bd-ie, var(--_ctm-repe-dn-bd-ie))
19
- );
20
- background-attachment: var(
21
- --_ctm-mob-repe-dn-bd-at,
22
- var(--_ctm-tab-repe-dn-bd-at, var(--_ctm-repe-dn-bd-at))
23
- );
24
- background-position: var(
25
- --_ctm-mob-repe-dn-bd-pn,
26
- var(--_ctm-tab-repe-dn-bd-pn, var(--_ctm-repe-dn-bd-pn))
27
- );
28
- background-repeat: var(
29
- --_ctm-mob-repe-dn-bd-rt,
30
- var(--_ctm-tab-repe-dn-bd-rt, var(--_ctm-repe-dn-bd-rt))
31
- );
32
- background-size: var(
33
- --_ctm-mob-repe-dn-bd-se,
34
- var(--_ctm-tab-repe-dn-bd-se, var(--_ctm-repe-dn-bd-se))
35
- );
36
- border-radius: var(
37
- --_ctm-mob-repe-dn-br-rs,
38
- var(--_ctm-tab-repe-dn-br-rs, var(--_ctm-repe-dn-br-rs))
39
- );
40
- border-color: var(
41
- --_ctm-mob-repe-dn-br-cr,
42
- var(--_ctm-tab-repe-dn-br-cr, var(--_ctm-repe-dn-br-cr))
43
- );
44
- border-style: var(
45
- --_ctm-mob-repe-dn-br-se,
46
- var(--_ctm-tab-repe-dn-br-se, var(--_ctm-repe-dn-br-se))
47
- );
48
- border-width: var(
49
- --_ctm-mob-repe-dn-br-wh,
50
- var(--_ctm-tab-repe-dn-br-wh, var(--_ctm-repe-dn-br-wh))
51
- );
52
- box-shadow: var(
53
- --_hover-show-shadow,
54
- var(
55
- --_sf-hr-bx-sw,
56
- var(
57
- --_show-shadow,
58
- var(
59
- --_ctm-mob-dn-dt-se-sw-ae,
60
- var(--_ctm-tab-dn-dt-se-sw-ae, var(--_ctm-dn-dt-se-sw-ae))
61
- )
62
- var(
63
- --_ctm-mob-dn-dt-se-sw-br,
64
- var(--_ctm-tab-dn-dt-se-sw-br, var(--_ctm-dn-dt-se-sw-br))
65
- )
66
- var(
67
- --_ctm-mob-dn-dt-se-sw-sd,
68
- var(--_ctm-tab-dn-dt-se-sw-sd, var(--_ctm-dn-dt-se-sw-sd))
69
- )
70
- var(
71
- --_ctm-mob-dn-dt-se-sw-cr,
72
- var(--_ctm-tab-dn-dt-se-sw-cr, var(--_ctm-dn-dt-se-sw-cr))
73
- )
74
- )
75
- )
76
- );
77
- }
78
- }
79
- }
80
- }
1
+ @use "sass:map";
2
+ @use "sass:list";
3
+ [data-div-type="element"] {
4
+ &[data-element-type="buyForTabsContainer"] {
5
+ width: 100%;
6
+ & > div {
7
+ &.wrapper {
8
+ width: 100%;
9
+ height: 100%;
10
+ padding: var(--_ctm-mob-repe-lt-pg, var(--_ctm-tab-repe-lt-pg, var(--_ctm-repe-lt-pg)));
11
+
12
+ background-color: var(
13
+ --_ctm-mob-repe-dn-bd-cr,
14
+ var(--_ctm-tab-repe-dn-bd-cr, var(--_ctm-repe-dn-bd-cr))
15
+ );
16
+ background-image: var(
17
+ --_ctm-mob-repe-dn-bd-ie,
18
+ var(--_ctm-tab-repe-dn-bd-ie, var(--_ctm-repe-dn-bd-ie))
19
+ );
20
+ background-attachment: var(
21
+ --_ctm-mob-repe-dn-bd-at,
22
+ var(--_ctm-tab-repe-dn-bd-at, var(--_ctm-repe-dn-bd-at))
23
+ );
24
+ background-position: var(
25
+ --_ctm-mob-repe-dn-bd-pn,
26
+ var(--_ctm-tab-repe-dn-bd-pn, var(--_ctm-repe-dn-bd-pn))
27
+ );
28
+ background-repeat: var(
29
+ --_ctm-mob-repe-dn-bd-rt,
30
+ var(--_ctm-tab-repe-dn-bd-rt, var(--_ctm-repe-dn-bd-rt))
31
+ );
32
+ background-size: var(
33
+ --_ctm-mob-repe-dn-bd-se,
34
+ var(--_ctm-tab-repe-dn-bd-se, var(--_ctm-repe-dn-bd-se))
35
+ );
36
+ border-radius: var(
37
+ --_ctm-mob-repe-dn-br-rs,
38
+ var(--_ctm-tab-repe-dn-br-rs, var(--_ctm-repe-dn-br-rs))
39
+ );
40
+ border-color: var(
41
+ --_ctm-mob-repe-dn-br-cr,
42
+ var(--_ctm-tab-repe-dn-br-cr, var(--_ctm-repe-dn-br-cr))
43
+ );
44
+ border-style: var(
45
+ --_ctm-mob-repe-dn-br-se,
46
+ var(--_ctm-tab-repe-dn-br-se, var(--_ctm-repe-dn-br-se))
47
+ );
48
+ border-width: var(
49
+ --_ctm-mob-repe-dn-br-wh,
50
+ var(--_ctm-tab-repe-dn-br-wh, var(--_ctm-repe-dn-br-wh))
51
+ );
52
+ box-shadow: var(
53
+ --_hover-show-shadow,
54
+ var(
55
+ --_sf-hr-bx-sw,
56
+ var(
57
+ --_show-shadow,
58
+ var(
59
+ --_ctm-mob-dn-dt-se-sw-ae,
60
+ var(--_ctm-tab-dn-dt-se-sw-ae, var(--_ctm-dn-dt-se-sw-ae))
61
+ )
62
+ var(
63
+ --_ctm-mob-dn-dt-se-sw-br,
64
+ var(--_ctm-tab-dn-dt-se-sw-br, var(--_ctm-dn-dt-se-sw-br))
65
+ )
66
+ var(
67
+ --_ctm-mob-dn-dt-se-sw-sd,
68
+ var(--_ctm-tab-dn-dt-se-sw-sd, var(--_ctm-dn-dt-se-sw-sd))
69
+ )
70
+ var(
71
+ --_ctm-mob-dn-dt-se-sw-cr,
72
+ var(--_ctm-tab-dn-dt-se-sw-cr, var(--_ctm-dn-dt-se-sw-cr))
73
+ )
74
+ )
75
+ )
76
+ );
77
+ }
78
+ }
79
+ }
80
+ }
@@ -720,10 +720,7 @@ $resizeActive: '[data-cms-element-resizer="true"]';
720
720
  )
721
721
  );
722
722
  // Overrides the stroke-width presentation attribute baked into the icon markup.
723
- stroke-width: prepareMediaVariable(
724
- --_ctm-buy-dn-ee-ds-wr-my-ct-ct-in-se-wh,
725
- 1.25
726
- );
723
+ stroke-width: prepareMediaVariable(--_ctm-buy-dn-ee-ds-wr-my-ct-ct-in-se-wh, 1.25);
727
724
  }
728
725
  }
729
726
 
@@ -1332,10 +1329,7 @@ $resizeActive: '[data-cms-element-resizer="true"]';
1332
1329
  )
1333
1330
  );
1334
1331
  // Overrides the stroke-width presentation attribute baked into the icon markup.
1335
- stroke-width: prepareMediaVariable(
1336
- --_ctm-buy-dn-ee-ds-wr-my-ct-ct-in-se-wh,
1337
- 1.25
1338
- );
1332
+ stroke-width: prepareMediaVariable(--_ctm-buy-dn-ee-ds-wr-my-ct-ct-in-se-wh, 1.25);
1339
1333
  }
1340
1334
  }
1341
1335
 
@@ -1895,10 +1889,7 @@ $resizeActive: '[data-cms-element-resizer="true"]';
1895
1889
  path {
1896
1890
  stroke: var(--_ctm-buy-dn-ee-ds-wr-my-ct-ct-in-in-c1);
1897
1891
  // Overrides the stroke-width presentation attribute baked into the icon markup.
1898
- stroke-width: prepareMediaVariable(
1899
- --_ctm-buy-dn-ee-ds-wr-my-ct-ct-in-se-wh,
1900
- 1.25
1901
- );
1892
+ stroke-width: prepareMediaVariable(--_ctm-buy-dn-ee-ds-wr-my-ct-ct-in-se-wh, 1.25);
1902
1893
  }
1903
1894
  }
1904
1895
 
@@ -153,10 +153,12 @@ $overflowSelector: ".flex__overflow";
153
153
  text-transform: prepareMediaVariable(--_ctm-dn-ct-hg-ss-tt-tm);
154
154
  word-wrap: prepareMediaVariable(--_ctm-dn-ct-hg-ss-wd-wp);
155
155
  word-break: prepareMediaVariable(--_ctm-dn-ct-hg-ss-wd-bk);
156
+
156
157
  &.flex__overflow {
157
158
  white-space: normal;
158
159
  @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
159
160
  }
161
+
160
162
  text-align: prepareMediaVariable(--_ctm-dn-ct-hg-ss-tt-an);
161
163
  @include cartDetailsTextFlow(--_ctm-dn-ct-hg-ss);
162
164
  display: block;
@@ -580,13 +582,12 @@ $overflowSelector: ".flex__overflow";
580
582
  border: 1px solid var(--_thm-cs-be-se-3);
581
583
  border-radius: 4px;
582
584
  padding: 10px;
583
- border: 1px solid var(--_thm-cs-be-se-3);
584
585
  background-color: var(--_base-white);
585
586
  border-radius: 4px;
586
587
 
587
588
  .label {
588
589
  display: block;
589
- color: var(--_gray-700);
590
+ color: var(--_thm-cs-be-cr-1);
590
591
  font-weight: 500;
591
592
  font-size: 14px;
592
593
  line-height: 20px;
@@ -894,8 +895,8 @@ $overflowSelector: ".flex__overflow";
894
895
  gap: 8px;
895
896
 
896
897
  img {
897
- width: 40px;
898
- height: 40px;
898
+ // width: 40px;
899
+ // height: 40px;
899
900
 
900
901
  border-radius: 50%;
901
902
  }
@@ -1477,10 +1478,12 @@ $overflowSelector: ".flex__overflow";
1477
1478
  var(--_ctm-tab-dn-pt-as-ss-wd-bk, var(--_ctm-dn-pt-as-ss-wd-bk))
1478
1479
  )
1479
1480
  );
1481
+
1480
1482
  &.flex__overflow {
1481
1483
  white-space: normal;
1482
1484
  @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
1483
1485
  }
1486
+
1484
1487
  font-size: var(
1485
1488
  --_ctm-mob-dn-pt-as-ss-ft-se,
1486
1489
  var(--_ctm-tab-dn-pt-as-ss-ft-se, var(--_ctm-dn-pt-as-ss-ft-se))
@@ -1599,10 +1602,12 @@ $overflowSelector: ".flex__overflow";
1599
1602
  var(--_ctm-tab-dn-pt-rd-io-wd-bk, var(--_ctm-dn-pt-rd-io-wd-bk))
1600
1603
  )
1601
1604
  );
1605
+
1602
1606
  &.flex__overflow {
1603
1607
  white-space: normal;
1604
1608
  @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
1605
1609
  }
1610
+
1606
1611
  font-size: var(
1607
1612
  --_ctm-mob-dn-pt-rd-io-ft-se,
1608
1613
  var(--_ctm-tab-dn-pt-rd-io-ft-se, var(--_ctm-dn-pt-rd-io-ft-se))
@@ -1842,6 +1847,16 @@ $overflowSelector: ".flex__overflow";
1842
1847
 
1843
1848
  &:hover {
1844
1849
  background-color: var(--_gray-100);
1850
+
1851
+ // The hover target is this 32px wrapper, but the icons carry their own
1852
+ // :hover stroke rule and are smaller than it - hovering the surrounding
1853
+ // padding lit the background while the icon kept its base color. Drive
1854
+ // the stroke from the wrapper so both change together, as the responsive
1855
+ // block below already does.
1856
+ .edit_icon svg path,
1857
+ .wishlist_icon svg path {
1858
+ stroke: var(--_thm-cs-at-py);
1859
+ }
1845
1860
  }
1846
1861
  }
1847
1862
 
@@ -3238,10 +3253,12 @@ $overflowSelector: ".flex__overflow";
3238
3253
  var(--_ctm-tab-dn-pt-as-ss-wd-bk, var(--_ctm-dn-pt-as-ss-wd-bk))
3239
3254
  )
3240
3255
  );
3256
+
3241
3257
  &.flex__overflow {
3242
3258
  white-space: normal;
3243
3259
  @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
3244
3260
  }
3261
+
3245
3262
  font-size: var(
3246
3263
  --_ctm-mob-dn-pt-as-ss-ft-se,
3247
3264
  var(--_ctm-tab-dn-pt-as-ss-ft-se, var(--_ctm-dn-pt-as-ss-ft-se))
@@ -3360,10 +3377,12 @@ $overflowSelector: ".flex__overflow";
3360
3377
  var(--_ctm-tab-dn-pt-rd-io-wd-bk, var(--_ctm-dn-pt-rd-io-wd-bk))
3361
3378
  )
3362
3379
  );
3380
+
3363
3381
  &.flex__overflow {
3364
3382
  white-space: normal;
3365
3383
  @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
3366
3384
  }
3385
+
3367
3386
  font-size: var(
3368
3387
  --_ctm-mob-dn-pt-rd-io-ft-se,
3369
3388
  var(--_ctm-tab-dn-pt-rd-io-ft-se, var(--_ctm-dn-pt-rd-io-ft-se))