@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
@@ -6,34 +6,35 @@
6
6
  &[data-show-shadow="false"] {
7
7
  --_show-shadow: none;
8
8
  }
9
- &[data-icon-position="left"] {
10
- .add_order_button {
11
- flex-direction: row;
9
+ // Icon Position. These used to target `.add_order_button`, which no longer exists —
10
+ // the button is rendered by the shared ButtonComponent as `.btn__with__text`, so none
11
+ // of these rules matched and the control did nothing. `.btn__with__text` resolves its
12
+ // direction through `--_sf-jc`, which nothing was setting either, so it fell back to
13
+ // the initial `row` whatever the control said.
14
+ &[data-icon-position="left"],
15
+ &[data-icon-position="center"] {
16
+ .btn__with__text {
17
+ --_sf-jc: row;
12
18
  }
13
19
  }
14
20
  &[data-icon-position="right"] {
15
- .add_order_button {
16
- flex-direction: row-reverse;
17
- }
18
- }
19
- &[data-icon-position="center"] {
20
- .add_order_button {
21
- flex-direction: row;
21
+ .btn__with__text {
22
+ --_sf-jc: row-reverse;
22
23
  }
23
24
  }
24
25
  &[data-element-style="Icon"] {
25
26
  &[data-icon-position="left"] {
26
- .add_order_button {
27
+ .btn__with__text {
27
28
  justify-content: start;
28
29
  }
29
30
  }
30
31
  &[data-icon-position="right"] {
31
- .add_order_button {
32
+ .btn__with__text {
32
33
  justify-content: end;
33
34
  }
34
35
  }
35
36
  &[data-icon-position="center"] {
36
- .add_order_button {
37
+ .btn__with__text {
37
38
  justify-content: center;
38
39
  }
39
40
  }
@@ -144,10 +145,58 @@
144
145
  --_ctm-mob-dn-dt-se-in-c1,
145
146
  var(--_ctm-tab-dn-dt-se-in-c1, var(--_ctm-dn-dt-se-in-c1))
146
147
  );
148
+ // Overrides the stroke-width presentation attribute baked into the icon markup.
149
+ // `--_sf-hr-se-wh` is published by the :hover block so the hover state can carry
150
+ // its own width; it is unset otherwise and the default state's value applies.
151
+ stroke-width: var(--_sf-hr-se-wh, prepareMediaVariable(--_ctm-dn-dt-se-se-wh, 1));
147
152
  }
148
153
  }
149
154
 
150
155
  &:hover {
156
+ // The label lives in a child (`.txt`, from ButtonComponent) which sets its own
157
+ // typography as `var(--_sf-hr-*, <default state>)`. Declaring color/font directly
158
+ // on the button below therefore never reached it — the child always won with the
159
+ // default-state values, which is why the Hover state's text properties appeared
160
+ // dead. Publishing the hover values as those custom properties is what `.txt`
161
+ // is written to consume, and matches how product-actions.scss does it.
162
+ --_sf-hr-cr: var(
163
+ --_ctm-mob-dn-hr-se-cr,
164
+ var(--_ctm-tab-dn-hr-se-cr, var(--_ctm-dn-hr-se-cr))
165
+ );
166
+ --_sf-hr-ft-fy: var(
167
+ --_ctm-mob-dn-hr-se-ft-fy,
168
+ var(--_ctm-tab-dn-hr-se-ft-fy, var(--_ctm-dn-hr-se-ft-fy))
169
+ );
170
+ --_sf-hr-ft-se: var(
171
+ --_ctm-mob-dn-hr-se-ft-se,
172
+ var(--_ctm-tab-dn-hr-se-ft-se, var(--_ctm-dn-hr-se-ft-se))
173
+ );
174
+ --_sf-hr-ft-wt: var(
175
+ --_ctm-mob-dn-hr-se-ft-wt,
176
+ var(--_ctm-tab-dn-hr-se-ft-wt, var(--_ctm-dn-hr-se-ft-wt))
177
+ );
178
+ --_sf-hr-ft-se-ic: var(
179
+ --_ctm-mob-dn-hr-se-ft-se-ic,
180
+ var(--_ctm-tab-dn-hr-se-ft-se-ic, var(--_ctm-dn-hr-se-ft-se-ic))
181
+ );
182
+ --_sf-hr-tt-an: var(
183
+ --_ctm-mob-dn-hr-se-tt-an,
184
+ var(--_ctm-tab-dn-hr-se-tt-an, var(--_ctm-dn-hr-se-tt-an))
185
+ );
186
+ --_sf-hr-lr-sg: var(
187
+ --_ctm-mob-dn-hr-se-lr-sg,
188
+ var(--_ctm-tab-dn-hr-se-lr-sg, var(--_ctm-dn-hr-se-lr-sg))
189
+ );
190
+ --_sf-hr-le-ht: var(
191
+ --_ctm-mob-dn-hr-se-le-ht,
192
+ var(--_ctm-tab-dn-hr-se-le-ht, var(--_ctm-dn-hr-se-le-ht))
193
+ );
194
+ --_sf-hr-ue: var(
195
+ --_ctm-mob-dn-hr-se-ue,
196
+ var(--_ctm-tab-dn-hr-se-ue, var(--_ctm-dn-hr-se-ue))
197
+ );
198
+ --_sf-hr-se-wh: prepareMediaVariable(--_ctm-dn-hr-se-se-wh, 1);
199
+
151
200
  background-color: var(
152
201
  --_ctm-mob-dn-hr-se-bd-cr,
153
202
  var(--_ctm-tab-dn-hr-se-bd-cr, var(--_ctm-dn-hr-se-bd-cr))
@@ -22,6 +22,12 @@ $overflowSelector: ".flex__overflow";
22
22
  )
23
23
  );
24
24
  margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
25
+ // The Height control. brandDescription and brandCode below already had this; only
26
+ // brandName was missing it, so its own stylesheet never applied the height at all
27
+ // and the wrapper's `min-height: inherit` had nothing to inherit. It happened to
28
+ // work because brandName is *also* declared in product-basic-elements.scss, which
29
+ // does set it — relying on that cross-file declaration is not something to keep.
30
+ min-height: var(--_ctm-mob-lt-ht, var(--_ctm-tab-lt-ht, var(--_ctm-lt-ht)));
25
31
  // height: var(--_ctm-lt-ht, var(--_tst-lt-ht));
26
32
  // height: ;
27
33
  // aspect-ratio: 1 / var(--_sf-aspect-ratio);
@@ -32,7 +38,33 @@ $overflowSelector: ".flex__overflow";
32
38
 
33
39
  & > .wrapper {
34
40
  width: 100%;
41
+ // Follow the elements own height so the styled box (background, border, shadow)
42
+ // matches the Height set in layout instead of only hugging the text.
43
+ min-height: inherit;
35
44
  // height: 100%;
45
+ background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
46
+
47
+ border-color: var(
48
+ --_show-border,
49
+ var(--_ctm-mob-dn-br-cr, var(--_ctm-tab-dn-br-cr, var(--_ctm-dn-br-cr)))
50
+ );
51
+ border-style: var(
52
+ --_show-border,
53
+ var(--_ctm-mob-dn-br-se, var(--_ctm-tab-dn-br-se, var(--_ctm-dn-br-se)))
54
+ );
55
+ border-width: var(
56
+ --_show-border,
57
+ var(--_ctm-mob-dn-br-wh, var(--_ctm-tab-dn-br-wh, var(--_ctm-dn-br-wh)))
58
+ );
59
+ border-radius: var(--_ctm-mob-dn-br-rs, var(--_ctm-tab-dn-br-rs, var(--_ctm-dn-br-rs)));
60
+ box-shadow: var(
61
+ --_show-shadow,
62
+ var(--_ctm-mob-dn-sw-ae, var(--_ctm-tab-dn-sw-ae, var(--_ctm-dn-sw-ae)))
63
+ var(--_ctm-mob-dn-sw-br, var(--_ctm-tab-dn-sw-br, var(--_ctm-dn-sw-br)))
64
+ var(--_ctm-mob-dn-sw-sd, var(--_ctm-tab-dn-sw-sd, var(--_ctm-dn-sw-sd)))
65
+ var(--_ctm-mob-dn-sw-cr, var(--_ctm-tab-dn-sw-cr, var(--_ctm-dn-sw-cr)))
66
+ );
67
+ padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
36
68
  }
37
69
  &[data-show-shadow="false"] {
38
70
  --_show-shadow: none;
@@ -48,7 +80,6 @@ $overflowSelector: ".flex__overflow";
48
80
  // // cursor: pointer;
49
81
  // }
50
82
  .text-element {
51
- background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
52
83
  // padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
53
84
  display: flex;
54
85
  flex-direction: column;
@@ -84,7 +115,15 @@ $overflowSelector: ".flex__overflow";
84
115
  font-style: var(--_ctm-mob-dn-ft-se-ic, var(--_ctm-tab-dn-ft-se-ic, var(--_ctm-dn-ft-se-ic)));
85
116
  text-align: var(--_ctm-mob-dn-tt-an, var(--_ctm-tab-dn-tt-an, var(--_ctm-dn-tt-an)));
86
117
  letter-spacing: var(--_ctm-mob-dn-lr-sg, var(--_ctm-tab-dn-lr-sg, var(--_ctm-dn-lr-sg)));
87
- line-height: var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht)));
118
+ // Line box guard. The line-height control stores a fixed length (its default is
119
+ // 1rem), so it does not grow with the font size — at a large size the glyphs end
120
+ // up taller than their own line box and spill out of it, which is what makes the
121
+ // text look cut off. max(..., 1em) keeps the box at least as tall as the text
122
+ // while still honouring any larger value the user sets.
123
+ line-height: max(
124
+ var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht, 1em))),
125
+ 1em
126
+ );
88
127
  word-wrap: prepareMediaVariable(--_ctm-dn-wd-wp);
89
128
  word-break: prepareMediaVariable(--_ctm-dn-wd-bk);
90
129
 
@@ -132,30 +171,12 @@ $overflowSelector: ".flex__overflow";
132
171
 
133
172
  & > .wrapper {
134
173
  width: 100%;
174
+ // Follow the elements own height so the styled box (background, border, shadow)
175
+ // matches the Height set in layout instead of only hugging the text.
176
+ min-height: inherit;
135
177
  // height: 100%;
136
- }
137
- &[data-show-shadow="false"] {
138
- --_show-shadow: none;
139
- }
140
- &[data-show-border="false"] {
141
- --_show-border: none;
142
- }
143
- // .text-element {
144
- // background: #6d96e4;
145
- // padding: 10px;
146
- // font-weight: 600;
147
- // color: rgba(75, 69, 70, 1);
148
- // }
149
- .text-element {
150
178
  background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
151
179
  padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
152
- display: flex;
153
- flex-direction: column;
154
- --_sf-gp: 16px;
155
- --_sf-cd-gp: calc(var(--_sf-gp) * 0.5);
156
- row-gap: var(--_sf-gp);
157
- width: 100%;
158
- // height: var(--_ctm-lt-ht, var(--_tst-lt-ht));
159
180
  border-color: var(
160
181
  --_show-border,
161
182
  var(--_ctm-mob-dn-br-cr, var(--_ctm-tab-dn-br-cr, var(--_ctm-dn-br-cr)))
@@ -176,6 +197,28 @@ $overflowSelector: ".flex__overflow";
176
197
  var(--_ctm-mob-dn-sw-sd, var(--_ctm-tab-dn-sw-sd, var(--_ctm-dn-sw-sd)))
177
198
  var(--_ctm-mob-dn-sw-cr, var(--_ctm-tab-dn-sw-cr, var(--_ctm-dn-sw-cr)))
178
199
  );
200
+ }
201
+ &[data-show-shadow="false"] {
202
+ --_show-shadow: none;
203
+ }
204
+ &[data-show-border="false"] {
205
+ --_show-border: none;
206
+ }
207
+ // .text-element {
208
+ // background: #6d96e4;
209
+ // padding: 10px;
210
+ // font-weight: 600;
211
+ // color: rgba(75, 69, 70, 1);
212
+ // }
213
+ .text-element {
214
+ display: flex;
215
+ flex-direction: column;
216
+ --_sf-gp: 16px;
217
+ --_sf-cd-gp: calc(var(--_sf-gp) * 0.5);
218
+ row-gap: var(--_sf-gp);
219
+ width: 100%;
220
+ // height: var(--_ctm-lt-ht, var(--_tst-lt-ht));
221
+
179
222
  color: var(--_ctm-mob-dn-cr, var(--_ctm-tab-dn-cr, var(--_ctm-dn-cr)));
180
223
  font-family: var(--_ctm-mob-dn-ft-fy, var(--_ctm-tab-dn-ft-fy, var(--_ctm-dn-ft-fy)));
181
224
  font-size: var(--_ctm-mob-dn-ft-se, var(--_ctm-tab-dn-ft-se, var(--_ctm-dn-ft-se)));
@@ -183,7 +226,15 @@ $overflowSelector: ".flex__overflow";
183
226
  font-style: var(--_ctm-mob-dn-ft-se-ic, var(--_ctm-tab-dn-ft-se-ic, var(--_ctm-dn-ft-se-ic)));
184
227
  text-align: var(--_ctm-mob-dn-tt-an, var(--_ctm-tab-dn-tt-an, var(--_ctm-dn-tt-an)));
185
228
  letter-spacing: var(--_ctm-mob-dn-lr-sg, var(--_ctm-tab-dn-lr-sg, var(--_ctm-dn-lr-sg)));
186
- line-height: var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht)));
229
+ // Line box guard. The line-height control stores a fixed length (its default is
230
+ // 1rem), so it does not grow with the font size — at a large size the glyphs end
231
+ // up taller than their own line box and spill out of it, which is what makes the
232
+ // text look cut off. max(..., 1em) keeps the box at least as tall as the text
233
+ // while still honouring any larger value the user sets.
234
+ line-height: max(
235
+ var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht, 1em))),
236
+ 1em
237
+ );
187
238
  text-decoration: var(
188
239
  --_sf-hr-tt-dn,
189
240
  var(
@@ -231,30 +282,12 @@ $overflowSelector: ".flex__overflow";
231
282
 
232
283
  & > .wrapper {
233
284
  width: 100%;
285
+ // Follow the elements own height so the styled box (background, border, shadow)
286
+ // matches the Height set in layout instead of only hugging the text.
287
+ min-height: inherit;
234
288
  // height: 100%;
235
- }
236
- &[data-show-shadow="false"] {
237
- --_show-shadow: none;
238
- }
239
- &[data-show-border="false"] {
240
- --_show-border: none;
241
- }
242
- // .text-element {
243
- // // background: #6d96e4;
244
- // // padding: 10px;
245
- // // font-weight: 600;
246
- // // color: rgba(75, 69, 70, 1);
247
- // }
248
- .text-element {
249
289
  background-color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
250
290
  padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
251
- display: flex;
252
- flex-direction: column;
253
- --_sf-gp: 16px;
254
- --_sf-cd-gp: calc(var(--_sf-gp) * 0.5);
255
- row-gap: var(--_sf-gp);
256
- width: 100%;
257
- // height: var(--_ctm-lt-ht, var(--_tst-lt-ht));
258
291
  border-color: var(
259
292
  --_show-border,
260
293
  var(--_ctm-mob-dn-br-cr, var(--_ctm-tab-dn-br-cr, var(--_ctm-dn-br-cr)))
@@ -275,6 +308,28 @@ $overflowSelector: ".flex__overflow";
275
308
  var(--_ctm-mob-dn-sw-sd, var(--_ctm-tab-dn-sw-sd, var(--_ctm-dn-sw-sd)))
276
309
  var(--_ctm-mob-dn-sw-cr, var(--_ctm-tab-dn-sw-cr, var(--_ctm-dn-sw-cr)))
277
310
  );
311
+ }
312
+ &[data-show-shadow="false"] {
313
+ --_show-shadow: none;
314
+ }
315
+ &[data-show-border="false"] {
316
+ --_show-border: none;
317
+ }
318
+ // .text-element {
319
+ // // background: #6d96e4;
320
+ // // padding: 10px;
321
+ // // font-weight: 600;
322
+ // // color: rgba(75, 69, 70, 1);
323
+ // }
324
+ .text-element {
325
+ display: flex;
326
+ flex-direction: column;
327
+ --_sf-gp: 16px;
328
+ --_sf-cd-gp: calc(var(--_sf-gp) * 0.5);
329
+ row-gap: var(--_sf-gp);
330
+ width: 100%;
331
+ // height: var(--_ctm-lt-ht, var(--_tst-lt-ht));
332
+
278
333
  color: var(--_ctm-mob-dn-cr, var(--_ctm-tab-dn-cr, var(--_ctm-dn-cr)));
279
334
  font-family: var(--_ctm-mob-dn-ft-fy, var(--_ctm-tab-dn-ft-fy, var(--_ctm-dn-ft-fy)));
280
335
  font-size: var(--_ctm-mob-dn-ft-se, var(--_ctm-tab-dn-ft-se, var(--_ctm-dn-ft-se)));
@@ -282,7 +337,15 @@ $overflowSelector: ".flex__overflow";
282
337
  font-style: var(--_ctm-mob-dn-ft-se-ic, var(--_ctm-tab-dn-ft-se-ic, var(--_ctm-dn-ft-se-ic)));
283
338
  text-align: var(--_ctm-mob-dn-tt-an, var(--_ctm-tab-dn-tt-an, var(--_ctm-dn-tt-an)));
284
339
  letter-spacing: var(--_ctm-mob-dn-lr-sg, var(--_ctm-tab-dn-lr-sg, var(--_ctm-dn-lr-sg)));
285
- line-height: var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht)));
340
+ // Line box guard. The line-height control stores a fixed length (its default is
341
+ // 1rem), so it does not grow with the font size — at a large size the glyphs end
342
+ // up taller than their own line box and spill out of it, which is what makes the
343
+ // text look cut off. max(..., 1em) keeps the box at least as tall as the text
344
+ // while still honouring any larger value the user sets.
345
+ line-height: max(
346
+ var(--_ctm-mob-dn-le-ht, var(--_ctm-tab-dn-le-ht, var(--_ctm-dn-le-ht, 1em))),
347
+ 1em
348
+ );
286
349
  text-decoration: var(
287
350
  --_sf-hr-tt-dn,
288
351
  var(
package/dist/brand.scss CHANGED
@@ -109,6 +109,12 @@ $resizeActive: '[data-cms-element-resizer="true"]';
109
109
  --_ctm-mob-bran-dn-br-wh,
110
110
  var(--_ctm-tab-bran-dn-br-wh, var(--_ctm-bran-dn-br-wh))
111
111
  );
112
+ // "Show Border" switch. The border above is painted from CSS variables, so the
113
+ // switch arrives as a data attribute and zeroes the width when it is off.
114
+ &[data-show-border="false"] {
115
+ border-width: 0;
116
+ border-style: none;
117
+ }
112
118
  border-radius: var(
113
119
  --_ctm-mob-bran-dn-br-rs,
114
120
  var(--_ctm-tab-bran-dn-br-rs, var(--_ctm-bran-dn-br-rs))
@@ -15,22 +15,18 @@ $resizeActive: '[data-cms-element-resizer="true"]';
15
15
  )
16
16
  )
17
17
  );
18
+ min-width: 200px !important;
19
+
18
20
  margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
19
21
 
20
22
  & > div {
21
23
  &.wrapper {
24
+ min-width: 200px !important;
22
25
  width: 100%;
23
- }
24
-
25
- .breadcrumb_item {
26
- &[data-show-cursor="true"] {
27
- cursor: pointer;
28
- }
29
- }
30
-
31
- .horizontal_breadcrumb_wrapper {
32
- display: inline-flex;
33
- align-items: center;
26
+ background-color: var(
27
+ --_ctm-mob-dn-bd-ad-fl-bd-cr,
28
+ var(--_ctm-tab-dn-bd-ad-fl-bd-cr, var(--_ctm-dn-bd-ad-fl-bd-cr))
29
+ );
34
30
  border-style: var(
35
31
  --_ctm-mob-dn-bd-ad-fl-br-se,
36
32
  var(--_ctm-tab-dn-bd-ad-fl-br-se, var(--_ctm-dn-bd-ad-fl-br-se))
@@ -47,11 +43,7 @@ $resizeActive: '[data-cms-element-resizer="true"]';
47
43
  --_ctm-mob-dn-bd-ad-fl-br-rs,
48
44
  var(--_ctm-tab-dn-bd-ad-fl-br-rs, var(--_ctm-dn-bd-ad-fl-br-rs))
49
45
  );
50
- background-color: var(
51
- --_ctm-mob-dn-bd-ad-fl-bd-cr,
52
- var(--_ctm-tab-dn-bd-ad-fl-bd-cr, var(--_ctm-dn-bd-ad-fl-bd-cr))
53
- );
54
- padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
46
+
55
47
  box-shadow: var(
56
48
  --_show-shadow,
57
49
  var(
@@ -71,6 +63,19 @@ $resizeActive: '[data-cms-element-resizer="true"]';
71
63
  var(--_ctm-tab-dn-bd-ad-fl-sw-cr, var(--_ctm-dn-bd-ad-fl-sw-cr))
72
64
  )
73
65
  );
66
+ }
67
+
68
+ .breadcrumb_item {
69
+ &[data-show-cursor="true"] {
70
+ cursor: pointer;
71
+ }
72
+ }
73
+
74
+ .horizontal_breadcrumb_wrapper {
75
+ display: inline-flex;
76
+ align-items: center;
77
+ padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
78
+
74
79
  gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg)));
75
80
 
76
81
  &[overflow-item="Scroll"],
@@ -161,6 +166,18 @@ $resizeActive: '[data-cms-element-resizer="true"]';
161
166
  --_ctm-mob-dn-or-im-se-ue,
162
167
  var(--_ctm-tab-dn-or-im-se-ue, var(--_ctm-dn-or-im-se-ue))
163
168
  );
169
+ text-transform: var(
170
+ --_ctm-mob-dn-or-im-se-tt-tm,
171
+ var(--_ctm-tab-dn-or-im-se-tt-tm, var(--_ctm-dn-or-im-se-tt-tm, none))
172
+ );
173
+ word-wrap: var(
174
+ --_ctm-mob-dn-or-im-se-wd-wp,
175
+ var(--_ctm-tab-dn-or-im-se-wd-wp, var(--_ctm-dn-or-im-se-wd-wp, normal))
176
+ );
177
+ word-break: var(
178
+ --_ctm-mob-dn-or-im-se-wd-bk,
179
+ var(--_ctm-tab-dn-or-im-se-wd-bk, var(--_ctm-dn-or-im-se-wd-bk, normal))
180
+ );
164
181
  box-shadow: var(
165
182
  --_ctm-mob-dn-or-im-se-sw-ae,
166
183
  var(--_ctm-tab-dn-or-im-se-sw-ae, var(--_ctm-dn-or-im-se-sw-ae))
@@ -262,6 +279,18 @@ $resizeActive: '[data-cms-element-resizer="true"]';
262
279
  --_ctm-mob-dn-he-pe-im-se-ue,
263
280
  var(--_ctm-tab-dn-he-pe-im-se-ue, var(--_ctm-dn-he-pe-im-se-ue))
264
281
  );
282
+ text-transform: var(
283
+ --_ctm-mob-dn-he-pe-im-se-tt-tm,
284
+ var(--_ctm-tab-dn-he-pe-im-se-tt-tm, var(--_ctm-dn-he-pe-im-se-tt-tm, none))
285
+ );
286
+ word-wrap: var(
287
+ --_ctm-mob-dn-he-pe-im-se-wd-wp,
288
+ var(--_ctm-tab-dn-he-pe-im-se-wd-wp, var(--_ctm-dn-he-pe-im-se-wd-wp, normal))
289
+ );
290
+ word-break: var(
291
+ --_ctm-mob-dn-he-pe-im-se-wd-bk,
292
+ var(--_ctm-tab-dn-he-pe-im-se-wd-bk, var(--_ctm-dn-he-pe-im-se-wd-bk, normal))
293
+ );
265
294
  box-shadow: var(
266
295
  --_ctm-mob-dn-he-pe-im-se-sw-ae,
267
296
  var(--_ctm-tab-dn-he-pe-im-se-sw-ae, var(--_ctm-dn-he-pe-im-se-sw-ae))
@@ -364,6 +393,18 @@ $resizeActive: '[data-cms-element-resizer="true"]';
364
393
  --_ctm-mob-dn-ct-pe-im-se-ue,
365
394
  var(--_ctm-tab-dn-ct-pe-im-se-ue, var(--_ctm-dn-ct-pe-im-se-ue))
366
395
  );
396
+ text-transform: var(
397
+ --_ctm-mob-dn-ct-pe-im-se-tt-tm,
398
+ var(--_ctm-tab-dn-ct-pe-im-se-tt-tm, var(--_ctm-dn-ct-pe-im-se-tt-tm, none))
399
+ );
400
+ word-wrap: var(
401
+ --_ctm-mob-dn-ct-pe-im-se-wd-wp,
402
+ var(--_ctm-tab-dn-ct-pe-im-se-wd-wp, var(--_ctm-dn-ct-pe-im-se-wd-wp, normal))
403
+ );
404
+ word-break: var(
405
+ --_ctm-mob-dn-ct-pe-im-se-wd-bk,
406
+ var(--_ctm-tab-dn-ct-pe-im-se-wd-bk, var(--_ctm-dn-ct-pe-im-se-wd-bk, normal))
407
+ );
367
408
  box-shadow: var(
368
409
  --_ctm-mob-dn-ct-pe-im-se-sw-ae,
369
410
  var(--_ctm-tab-dn-ct-pe-im-se-sw-ae, var(--_ctm-dn-ct-pe-im-se-sw-ae))
@@ -408,46 +449,15 @@ $resizeActive: '[data-cms-element-resizer="true"]';
408
449
  flex-direction: column;
409
450
  height: 120px;
410
451
 
411
- border-style: var(
412
- --_ctm-mob-dn-bd-ad-fl-br-se,
413
- var(--_ctm-tab-dn-bd-ad-fl-br-se, var(--_ctm-dn-bd-ad-fl-br-se))
414
- );
415
- border-width: var(
416
- --_ctm-mob-dn-bd-ad-fl-br-wh,
417
- var(--_ctm-tab-dn-bd-ad-fl-br-wh, var(--_ctm-dn-bd-ad-fl-br-wh))
418
- );
419
- border-color: var(
420
- --_ctm-mob-dn-bd-ad-fl-br-cr,
421
- var(--_ctm-tab-dn-bd-ad-fl-br-cr, var(--_ctm-dn-bd-ad-fl-br-cr))
422
- );
423
- border-radius: var(
424
- --_ctm-mob-dn-bd-ad-fl-br-rs,
425
- var(--_ctm-tab-dn-bd-ad-fl-br-rs, var(--_ctm-dn-bd-ad-fl-br-rs))
426
- );
452
+ // Background & Fill's border and shadow are painted once, on .wrapper above,
453
+ // which encloses both the horizontal and the vertical trail. They used to be
454
+ // repeated here as well, so the vertical layout drew the section's border and
455
+ // shadow twice — once around the whole widget and again around the inner list.
427
456
  background-color: var(
428
457
  --_ctm-mob-dn-bd-ad-fl-bd-cr,
429
458
  var(--_ctm-tab-dn-bd-ad-fl-bd-cr, var(--_ctm-dn-bd-ad-fl-bd-cr))
430
459
  );
431
460
  padding: var(--_ctm-mob-lt-pg, var(--_ctm-tab-lt-pg, var(--_ctm-lt-pg)));
432
- box-shadow: var(
433
- --_show-shadow,
434
- var(
435
- --_ctm-mob-dn-bd-ad-fl-sw-ae,
436
- var(--_ctm-tab-dn-bd-ad-fl-sw-ae, var(--_ctm-dn-bd-ad-fl-sw-ae))
437
- )
438
- var(
439
- --_ctm-mob-dn-bd-ad-fl-sw-br,
440
- var(--_ctm-tab-dn-bd-ad-fl-sw-br, var(--_ctm-dn-bd-ad-fl-sw-br))
441
- )
442
- var(
443
- --_ctm-mob-dn-bd-ad-fl-sw-sd,
444
- var(--_ctm-tab-dn-bd-ad-fl-sw-sd, var(--_ctm-dn-bd-ad-fl-sw-sd))
445
- )
446
- var(
447
- --_ctm-mob-dn-bd-ad-fl-sw-cr,
448
- var(--_ctm-tab-dn-bd-ad-fl-sw-cr, var(--_ctm-dn-bd-ad-fl-sw-cr))
449
- )
450
- );
451
461
 
452
462
  &[overflow-item="Scroll"],
453
463
  &[overflow-item="Show More"],
@@ -533,6 +543,18 @@ $resizeActive: '[data-cms-element-resizer="true"]';
533
543
  --_ctm-mob-dn-he-pe-im-se-ue,
534
544
  var(--_ctm-tab-dn-he-pe-im-se-ue, var(--_ctm-dn-he-pe-im-se-ue))
535
545
  );
546
+ text-transform: var(
547
+ --_ctm-mob-dn-he-pe-im-se-tt-tm,
548
+ var(--_ctm-tab-dn-he-pe-im-se-tt-tm, var(--_ctm-dn-he-pe-im-se-tt-tm, none))
549
+ );
550
+ word-wrap: var(
551
+ --_ctm-mob-dn-he-pe-im-se-wd-wp,
552
+ var(--_ctm-tab-dn-he-pe-im-se-wd-wp, var(--_ctm-dn-he-pe-im-se-wd-wp, normal))
553
+ );
554
+ word-break: var(
555
+ --_ctm-mob-dn-he-pe-im-se-wd-bk,
556
+ var(--_ctm-tab-dn-he-pe-im-se-wd-bk, var(--_ctm-dn-he-pe-im-se-wd-bk, normal))
557
+ );
536
558
  box-shadow: var(
537
559
  --_ctm-mob-dn-he-pe-im-se-sw-ae,
538
560
  var(--_ctm-tab-dn-he-pe-im-se-sw-ae, var(--_ctm-dn-he-pe-im-se-sw-ae))
@@ -634,6 +656,18 @@ $resizeActive: '[data-cms-element-resizer="true"]';
634
656
  --_ctm-mob-dn-or-im-se-ue,
635
657
  var(--_ctm-tab-dn-or-im-se-ue, var(--_ctm-dn-or-im-se-ue))
636
658
  );
659
+ text-transform: var(
660
+ --_ctm-mob-dn-or-im-se-tt-tm,
661
+ var(--_ctm-tab-dn-or-im-se-tt-tm, var(--_ctm-dn-or-im-se-tt-tm, none))
662
+ );
663
+ word-wrap: var(
664
+ --_ctm-mob-dn-or-im-se-wd-wp,
665
+ var(--_ctm-tab-dn-or-im-se-wd-wp, var(--_ctm-dn-or-im-se-wd-wp, normal))
666
+ );
667
+ word-break: var(
668
+ --_ctm-mob-dn-or-im-se-wd-bk,
669
+ var(--_ctm-tab-dn-or-im-se-wd-bk, var(--_ctm-dn-or-im-se-wd-bk, normal))
670
+ );
637
671
  box-shadow: var(
638
672
  --_ctm-mob-dn-or-im-se-sw-ae,
639
673
  var(--_ctm-tab-dn-or-im-se-sw-ae, var(--_ctm-dn-or-im-se-sw-ae))
@@ -735,6 +769,18 @@ $resizeActive: '[data-cms-element-resizer="true"]';
735
769
  --_ctm-mob-dn-ct-pe-im-se-ue,
736
770
  var(--_ctm-tab-dn-ct-pe-im-se-ue, var(--_ctm-dn-ct-pe-im-se-ue))
737
771
  );
772
+ text-transform: var(
773
+ --_ctm-mob-dn-ct-pe-im-se-tt-tm,
774
+ var(--_ctm-tab-dn-ct-pe-im-se-tt-tm, var(--_ctm-dn-ct-pe-im-se-tt-tm, none))
775
+ );
776
+ word-wrap: var(
777
+ --_ctm-mob-dn-ct-pe-im-se-wd-wp,
778
+ var(--_ctm-tab-dn-ct-pe-im-se-wd-wp, var(--_ctm-dn-ct-pe-im-se-wd-wp, normal))
779
+ );
780
+ word-break: var(
781
+ --_ctm-mob-dn-ct-pe-im-se-wd-bk,
782
+ var(--_ctm-tab-dn-ct-pe-im-se-wd-bk, var(--_ctm-dn-ct-pe-im-se-wd-bk, normal))
783
+ );
738
784
  box-shadow: var(
739
785
  --_ctm-mob-dn-ct-pe-im-se-sw-ae,
740
786
  var(--_ctm-tab-dn-ct-pe-im-se-sw-ae, var(--_ctm-dn-ct-pe-im-se-sw-ae))
@@ -797,6 +843,11 @@ $resizeActive: '[data-cms-element-resizer="true"]';
797
843
  }
798
844
  }
799
845
 
846
+ // The Collapsed layout's expand/collapse toggle had no rules at all, so the Expand
847
+ // Icon design section had nothing to paint and the toggle rendered as an unsized,
848
+ // uncoloured, non-clickable box. It takes the same `ed-in` (expand icon) variables
849
+ // the Show More button already uses.
850
+ .collapse_btn,
800
851
  .show_more_btn {
801
852
  white-space: nowrap;
802
853
  background-color: var(
@@ -804,6 +855,7 @@ $resizeActive: '[data-cms-element-resizer="true"]';
804
855
  var(--_ctm-tab-dn-ed-in-bd-cr, var(--_ctm-dn-ed-in-bd-cr))
805
856
  );
806
857
  .icon {
858
+ display: flex;
807
859
  svg {
808
860
  width: var(
809
861
  --_ctm-mob-dn-ed-in-in-se,
@@ -822,6 +874,60 @@ $resizeActive: '[data-cms-element-resizer="true"]';
822
874
  }
823
875
  }
824
876
  }
877
+
878
+ .collapse_btn {
879
+ display: flex;
880
+ align-items: center;
881
+ flex-shrink: 0;
882
+ cursor: pointer;
883
+ }
884
+ }
885
+
886
+ // "Show Border" switches. Each design section paints its border from CSS variables,
887
+ // so the switch reaches the stylesheet as a data attribute and the matching
888
+ // border-width is zeroed here. Kept at the end of the block and matched to the same
889
+ // selector depth as the rules above — anywhere earlier and the section rules would
890
+ // win the tie on source order. The item gates carry :not(:first-of-type)
891
+ // /:not(:last-of-type) so switching "Other Item Style" off doesn't also strip the
892
+ // home and current items, which have their own borders and their own switches.
893
+ // Background & Fill's border lives on .wrapper, which is where both trail layouts
894
+ // now take it from — so the switch has to target that, not the inner trail wrappers.
895
+ &[data-trail-border="false"] > div.wrapper {
896
+ border-width: 0;
897
+ border-style: none;
898
+ }
899
+ &[data-other-border="false"]
900
+ > div
901
+ .horizontal_breadcrumb_wrapper
902
+ .breadcrumb_item:not(:first-of-type):not(:last-of-type),
903
+ &[data-other-border="false"]
904
+ > div
905
+ .vertical_breadcrumb_wrapper
906
+ .item_wrapper:not(:first-of-type):not(:last-of-type)
907
+ .breadcrumb_item {
908
+ border-width: 0;
909
+ border-style: none;
910
+ }
911
+ &[data-home-border="false"] > div .horizontal_breadcrumb_wrapper .breadcrumb_item:first-of-type,
912
+ &[data-home-border="false"]
913
+ > div
914
+ .vertical_breadcrumb_wrapper
915
+ .item_wrapper:first-of-type
916
+ .breadcrumb_item {
917
+ border-width: 0;
918
+ border-style: none;
919
+ }
920
+ &[data-current-border="false"]
921
+ > div
922
+ .horizontal_breadcrumb_wrapper
923
+ .breadcrumb_item:last-of-type,
924
+ &[data-current-border="false"]
925
+ > div
926
+ .vertical_breadcrumb_wrapper
927
+ .item_wrapper:last-of-type
928
+ .breadcrumb_item {
929
+ border-width: 0;
930
+ border-style: none;
825
931
  }
826
932
  }
827
933
  }