@sc-360-v2/storefront-cms-library 0.5.54 → 0.5.55
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.
- package/dist/add-products-tab-details.scss +3 -0
- package/dist/allocation-header-quota-details.scss +520 -0
- package/dist/allocationDetails.scss +608 -396
- package/dist/allocations-quota-details.scss +173 -170
- package/dist/allocations.scss +8 -112
- package/dist/amount-estimator.scss +1088 -1083
- package/dist/badge.scss +396 -388
- package/dist/breadcrumbs.scss +17 -0
- package/dist/builder.js +1 -1
- package/dist/bulk-variant-picker.scss +4 -0
- package/dist/bundle copy.scss +26 -0
- package/dist/bundle.scss +10 -0
- package/dist/bundleDetails.scss +14 -0
- package/dist/button copy.scss +2 -0
- package/dist/button.scss +2 -0
- package/dist/buyForHeaders.scss +19 -0
- package/dist/cart-details.scss +101 -18
- package/dist/cart-summary.scss +18 -0
- package/dist/cart.scss +2 -0
- package/dist/cartAttributes.scss +4 -0
- package/dist/category-groups-quota-details.scss +124 -38
- package/dist/checkout.scss +6 -0
- package/dist/countdown.scss +2 -0
- package/dist/coupon.scss +8 -0
- package/dist/embroidery.scss +2 -0
- package/dist/employee-bulk-order.scss +5 -0
- package/dist/faq.scss +9 -0
- package/dist/filters.scss +2 -0
- package/dist/form-zindex-module.scss +24 -24
- package/dist/gallery-slider-temp.scss +205 -14
- package/dist/hotspot.scss +4 -0
- package/dist/icon-list.scss +2 -0
- package/dist/kitDetails.scss +2 -0
- package/dist/kits.scss +2 -0
- package/dist/language-selector.scss +6 -4
- package/dist/last-x-orders.scss +5 -0
- package/dist/login.scss +14 -0
- package/dist/map.scss +6 -0
- package/dist/mega-menu.scss +41 -0
- package/dist/menu-v2.scss +83 -6
- package/dist/past-orders.scss +989 -975
- package/dist/pickup-locations.scss +1172 -1167
- package/dist/product-image-allocation.scss +59 -0
- package/dist/product-inventory.scss +1381 -1378
- package/dist/product-promotions.scss +2768 -2759
- package/dist/product-sizechart.scss +4 -0
- package/dist/profile.scss +8 -0
- package/dist/quantity-selector.scss +4 -0
- package/dist/quick-inventory-check.scss +5 -0
- package/dist/quick-order-pad.scss +5 -0
- package/dist/quota-details.scss +99 -15
- package/dist/repeater copy.scss +3 -0
- package/dist/repeater-grid-toggle.scss +2 -0
- package/dist/repeater-item.scss +2 -2
- package/dist/repeater.scss +2 -0
- package/dist/request-for-quotes.scss +1 -1
- package/dist/rfqs.scss +10 -0
- package/dist/scroll.scss +46 -0
- package/dist/search.scss +4 -0
- package/dist/shipping-payments.scss +4 -0
- package/dist/social.scss +5 -0
- package/dist/store-locations.scss +1402 -1398
- package/dist/tab-v2.scss +2 -0
- package/dist/table-common.scss +509 -506
- package/dist/table.scss +687 -685
- package/dist/types/builder/tools/element-edit/addProductsTab.d.ts +28 -0
- package/dist/types/builder/tools/element-edit/allocationDetails.d.ts +5 -0
- package/dist/types/builder/tools/element-edit/allocations.d.ts +1 -0
- package/dist/types/builder/tools/element-edit/breadcrumbs.d.ts +5 -0
- package/dist/types/builder/tools/element-edit/bundle.d.ts +40 -0
- package/dist/types/builder/tools/element-edit/bundleDetails.d.ts +20 -0
- package/dist/types/builder/tools/element-edit/buttonInstance.d.ts +18 -0
- package/dist/types/builder/tools/element-edit/buyForWithTab.d.ts +1 -0
- package/dist/types/builder/tools/element-edit/cartAttributes.d.ts +9 -0
- package/dist/types/builder/tools/element-edit/cartDetails.d.ts +79 -1
- package/dist/types/builder/tools/element-edit/cartSummary.d.ts +72 -0
- package/dist/types/builder/tools/element-edit/categoryGroups.d.ts +28 -0
- package/dist/types/builder/tools/element-edit/checkout.d.ts +1 -0
- package/dist/types/builder/tools/element-edit/common.d.ts +23 -0
- package/dist/types/builder/tools/element-edit/countdown.d.ts +1 -0
- package/dist/types/builder/tools/element-edit/coupon.d.ts +19 -0
- package/dist/types/builder/tools/element-edit/embroidery.d.ts +9 -0
- package/dist/types/builder/tools/element-edit/filterResults.d.ts +10 -0
- package/dist/types/builder/tools/element-edit/gallery-slider.d.ts +19 -0
- package/dist/types/builder/tools/element-edit/icon-list.d.ts +9 -0
- package/dist/types/builder/tools/element-edit/iconInstace.d.ts +1 -0
- package/dist/types/builder/tools/element-edit/iconLibrary.d.ts +2 -7
- package/dist/types/builder/tools/element-edit/kitDetails.d.ts +19 -0
- package/dist/types/builder/tools/element-edit/kits.d.ts +9 -0
- package/dist/types/builder/tools/element-edit/orderStatus.d.ts +19 -0
- package/dist/types/builder/tools/element-edit/quickLinks.d.ts +10 -0
- package/dist/types/builder/tools/element-edit/quotaDetails.d.ts +1 -0
- package/dist/types/builder/tools/element-edit/rfqs.d.ts +5 -0
- package/dist/types/builder/tools/element-edit/scroll.d.ts +1 -0
- package/dist/types/builder/tools/element-edit/shipping-payments.d.ts +2 -0
- package/dist/types/builder/tools/element-edit/social.d.ts +1 -0
- package/dist/types/builder/tools/element-edit/table.d.ts +1 -0
- package/dist/types/builder/tools/element-edit/tabs.d.ts +18 -0
- package/dist/types/builder/tools/element-edit/tabsV2.d.ts +17 -0
- package/dist/types/builder/tools/element-edit/userElements.d.ts +5 -0
- package/dist/types/builder/tools/element-edit/video.d.ts +2 -0
- package/dist/user-elements.scss +10 -0
- package/dist/variant-picker.scss +2 -0
- package/dist/video.scss +2 -0
- package/dist/volume-pricing.scss +3 -0
- package/package.json +1 -1
|
@@ -24,8 +24,11 @@ $ad-tree: "--_ctm-dn-sr-dn-pe-rw"; // sidebarDesign.profileRow
|
|
|
24
24
|
$ad-tree-icon: "--_ctm-dn-sr-dn-pe-te-in"; // sidebarDesign.profileTreeIcon
|
|
25
25
|
$ad-subtree: "--_ctm-dn-sr-dn-an-rw"; // sidebarDesign.allocationRow
|
|
26
26
|
$ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
27
|
+
$ad-slider-arrows: "--_ctm-dn-sr-pn-as"; // design.slider.paginationArrows
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
// $transform is the fallback for Text Transform, so a row that already rendered
|
|
30
|
+
// uppercase keeps doing so on elements saved before the control existed.
|
|
31
|
+
@mixin ad-font($base, $color, $size, $weight: 600, $transform: none) {
|
|
29
32
|
color: prepareMediaVariable(#{$base}-cr, $color);
|
|
30
33
|
font-family: prepareMediaVariable(#{$base}-ft-fy, ("Inter", sans-serif));
|
|
31
34
|
font-size: prepareMediaVariable(#{$base}-ft-se, $size);
|
|
@@ -35,6 +38,83 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
35
38
|
letter-spacing: prepareMediaVariable(#{$base}-lr-sg);
|
|
36
39
|
line-height: prepareMediaVariable(#{$base}-le-ht);
|
|
37
40
|
text-decoration: prepareMediaVariable(#{$base}-ue);
|
|
41
|
+
text-transform: prepareMediaVariable(#{$base}-tt-tm, $transform);
|
|
42
|
+
word-wrap: prepareMediaVariable(#{$base}-wd-wp, normal);
|
|
43
|
+
word-break: prepareMediaVariable(#{$base}-wd-bk, normal);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Text Transform and the word wrap/break pair the typography panel groups with it.
|
|
47
|
+
// $suffix is "-dc" for the sections whose Value block writes the *Desc keys.
|
|
48
|
+
@mixin ad-text-transform($base, $suffix: "", $transform: none) {
|
|
49
|
+
text-transform: prepareMediaVariable(#{$base}-tt-tm#{$suffix}, $transform);
|
|
50
|
+
word-wrap: prepareMediaVariable(#{$base}-wd-wp#{$suffix}, normal);
|
|
51
|
+
word-break: prepareMediaVariable(#{$base}-wd-bk#{$suffix}, normal);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Text Overflow: the renderer adds `.flex__overflow` and publishes the line count,
|
|
55
|
+
// so the clamp only applies once the toggle is on. `white-space: normal` undoes any
|
|
56
|
+
// `nowrap` above it — the text has to wrap before it can be restricted to N lines.
|
|
57
|
+
@mixin ad-text-overflow($clampVar: --_sf-line-clamp) {
|
|
58
|
+
&#{$overflowSelector} {
|
|
59
|
+
white-space: normal;
|
|
60
|
+
@include restrictToLinesShow(#{var($clampVar, 1)});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Container box for the sections whose schema has always carried Padding, Fill,
|
|
65
|
+
// Border, Border Radius and Shadow but which only ever rendered their font — the
|
|
66
|
+
// controls were there and did nothing (Brand, Code).
|
|
67
|
+
//
|
|
68
|
+
// Every fallback is the neutral value, not `prepareMediaVariable`'s `inherit`
|
|
69
|
+
// default: these boxes had no such rule at all until now, so an untouched card has
|
|
70
|
+
// to keep rendering byte for byte as it did. `inherit` would quietly hand them the
|
|
71
|
+
// parent's padding and fill, and a non-zero radius default would round every card
|
|
72
|
+
// nobody had styled.
|
|
73
|
+
@mixin ad-section-box($base) {
|
|
74
|
+
padding: prepareMediaVariable(#{$base}-pg, 0);
|
|
75
|
+
background-color: prepareMediaVariable(#{$base}-bd-cr, transparent);
|
|
76
|
+
border-color: prepareMediaVariable(#{$base}-br-cr, transparent);
|
|
77
|
+
border-style: prepareMediaVariable(#{$base}-br-se, solid);
|
|
78
|
+
border-width: prepareMediaVariable(#{$base}-br-wh, 0);
|
|
79
|
+
border-radius: prepareMediaVariable(#{$base}-br-rs, 0);
|
|
80
|
+
box-shadow: var(
|
|
81
|
+
--_show-shadow,
|
|
82
|
+
prepareMediaVariable(#{$base}-sw-ae, 0 0) prepareMediaVariable(#{$base}-sw-br, 0)
|
|
83
|
+
prepareMediaVariable(#{$base}-sw-sd, 0) prepareMediaVariable(#{$base}-sw-cr, transparent)
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// The icon a Brand / Code block can carry in front of its value. Sized and coloured
|
|
88
|
+
// from the section's own Icon settings, and told to hold its width so a long value
|
|
89
|
+
// wrapping beside it cannot squeeze the glyph.
|
|
90
|
+
@mixin ad-section-icon($base) {
|
|
91
|
+
display: flex;
|
|
92
|
+
align-items: center;
|
|
93
|
+
justify-content: center;
|
|
94
|
+
flex-shrink: 0;
|
|
95
|
+
color: prepareMediaVariable(#{$base}-in-c1, currentColor);
|
|
96
|
+
|
|
97
|
+
svg {
|
|
98
|
+
width: prepareMediaVariable(#{$base}-in-se, 16px);
|
|
99
|
+
height: prepareMediaVariable(#{$base}-in-se, 16px);
|
|
100
|
+
|
|
101
|
+
// Apply the configured colour even when the fetched SVG hardcodes its own
|
|
102
|
+
// stroke/fill (parts explicitly set to "none" are left alone).
|
|
103
|
+
&[stroke]:not([stroke="none"]),
|
|
104
|
+
[stroke]:not([stroke="none"]) {
|
|
105
|
+
stroke: prepareMediaVariable(#{$base}-in-c1, currentColor);
|
|
106
|
+
}
|
|
107
|
+
&[fill]:not([fill="none"]),
|
|
108
|
+
[fill]:not([fill="none"]) {
|
|
109
|
+
fill: prepareMediaVariable(#{$base}-in-c1, currentColor);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
img {
|
|
114
|
+
width: prepareMediaVariable(#{$base}-in-se, 16px);
|
|
115
|
+
height: prepareMediaVariable(#{$base}-in-se, 16px);
|
|
116
|
+
object-fit: contain;
|
|
117
|
+
}
|
|
38
118
|
}
|
|
39
119
|
|
|
40
120
|
@mixin ad-design($base) {
|
|
@@ -86,6 +166,80 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
86
166
|
#{$base}-#{$state}-ue,
|
|
87
167
|
prepareMediaVariable(#{$base}-dt-se-ue)
|
|
88
168
|
);
|
|
169
|
+
text-transform: prepareMediaVariable(
|
|
170
|
+
#{$base}-#{$state}-tt-tm,
|
|
171
|
+
prepareMediaVariable(#{$base}-dt-se-tt-tm, none)
|
|
172
|
+
);
|
|
173
|
+
word-wrap: prepareMediaVariable(
|
|
174
|
+
#{$base}-#{$state}-wd-wp,
|
|
175
|
+
prepareMediaVariable(#{$base}-dt-se-wd-wp, normal)
|
|
176
|
+
);
|
|
177
|
+
word-break: prepareMediaVariable(
|
|
178
|
+
#{$base}-#{$state}-wd-bk,
|
|
179
|
+
prepareMediaVariable(#{$base}-dt-se-wd-bk, normal)
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Padding, and the icon-to-label gap on the profile row, per interaction state.
|
|
184
|
+
// Same default-state fallback as ad-design-state; kept separate because only the
|
|
185
|
+
// profile row has an item gap — the allocation row is a lone label with nothing to
|
|
186
|
+
// space, so $gap is left out there rather than emitting a gap it never uses.
|
|
187
|
+
@mixin ad-layout-state($base, $state, $padding, $gap: null) {
|
|
188
|
+
padding: prepareMediaVariable(
|
|
189
|
+
#{$base}-#{$state}-pg,
|
|
190
|
+
prepareMediaVariable(#{$base}-dt-se-pg, $padding)
|
|
191
|
+
);
|
|
192
|
+
@if $gap != null {
|
|
193
|
+
gap: prepareMediaVariable(
|
|
194
|
+
#{$base}-#{$state}-im-gp,
|
|
195
|
+
prepareMediaVariable(#{$base}-dt-se-im-gp, $gap)
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// One key of the profile tree icon, resolved for an interaction state.
|
|
201
|
+
//
|
|
202
|
+
// $state is the state segment ("dt-se" | "hr-se" | "sd-se") and $key the icon key
|
|
203
|
+
// ("in-se" / "in-c1" for the collapsed icon, "in-se-ed" / "in-cr-ed" for the
|
|
204
|
+
// expanded one). Hover and selected fall back to the default state, so editing
|
|
205
|
+
// Default still cascades — the same rule the rows either side of the icon follow.
|
|
206
|
+
// The innermost fallback is the stateless variable this section used before it had
|
|
207
|
+
// states, which is what keeps trees saved back then rendering unchanged.
|
|
208
|
+
@function ad-tree-icon-var($state, $key, $fallback) {
|
|
209
|
+
$legacy: prepareMediaVariable(#{$ad-tree-icon}-#{$key}, $fallback);
|
|
210
|
+
|
|
211
|
+
@if $state == "dt-se" {
|
|
212
|
+
@return prepareMediaVariable(#{$ad-tree-icon}-dt-se-#{$key}, $legacy);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
@return prepareMediaVariable(
|
|
216
|
+
#{$ad-tree-icon}-#{$state}-#{$key},
|
|
217
|
+
prepareMediaVariable(#{$ad-tree-icon}-dt-se-#{$key}, $legacy)
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Size + colour of the tree icon for one state. The colour is applied to the
|
|
222
|
+
// element and to the fetched SVG's own stroke/fill, since a custom icon may
|
|
223
|
+
// hardcode them (parts explicitly set to "none" are left alone).
|
|
224
|
+
@mixin ad-tree-icon($state, $sizeKey, $colorKey, $fallbackSize: 20px, $fallbackColor: #002a4e) {
|
|
225
|
+
$size: ad-tree-icon-var($state, $sizeKey, $fallbackSize);
|
|
226
|
+
$color: ad-tree-icon-var($state, $colorKey, $fallbackColor);
|
|
227
|
+
|
|
228
|
+
color: $color;
|
|
229
|
+
|
|
230
|
+
svg {
|
|
231
|
+
width: $size;
|
|
232
|
+
height: $size;
|
|
233
|
+
|
|
234
|
+
&[stroke]:not([stroke="none"]),
|
|
235
|
+
[stroke]:not([stroke="none"]) {
|
|
236
|
+
stroke: $color;
|
|
237
|
+
}
|
|
238
|
+
&[fill]:not([fill="none"]),
|
|
239
|
+
[fill]:not([fill="none"]) {
|
|
240
|
+
fill: $color;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
89
243
|
}
|
|
90
244
|
|
|
91
245
|
@mixin ad-design-state($base, $state) {
|
|
@@ -271,6 +425,8 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
271
425
|
);
|
|
272
426
|
text-decoration: var(--_ctm-mob-dn-te-ue, var(--_ctm-tab-dn-te-ue, var(--_ctm-dn-te-ue)));
|
|
273
427
|
padding: prepareMediaVariable(--_ctm-dn-te-pg);
|
|
428
|
+
@include ad-text-transform(--_ctm-dn-te);
|
|
429
|
+
@include ad-text-overflow;
|
|
274
430
|
}
|
|
275
431
|
}
|
|
276
432
|
|
|
@@ -301,13 +457,23 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
301
457
|
.allocation__item {
|
|
302
458
|
@import "./product-image-allocation.scss";
|
|
303
459
|
|
|
460
|
+
// The configured Width must NOT go into flex-basis. In grid view the card
|
|
461
|
+
// is a column flex container, where basis is the main axis — the HEIGHT —
|
|
462
|
+
// so putting the width there silently overrode the Height (px) the import
|
|
463
|
+
// above sets, and the control looked dead. `auto` lets Width and Height
|
|
464
|
+
// each land on their own axis in both views; `0 0` still keeps the image
|
|
465
|
+
// from shrinking, which is the only thing the explicit basis was for.
|
|
304
466
|
.product__image_element {
|
|
305
|
-
flex: 0 0
|
|
467
|
+
flex: 0 0 auto;
|
|
306
468
|
}
|
|
307
469
|
|
|
308
470
|
display: flex;
|
|
309
471
|
flex-direction: column;
|
|
310
|
-
|
|
472
|
+
// Allocation > Item Gap. Spaces the header from the card grid below it;
|
|
473
|
+
// the same value spaces the header's own two parts (see `.showcase__title`),
|
|
474
|
+
// so name -> quota details -> cards keep one rhythm. 10px is what was
|
|
475
|
+
// hardcoded here before, so an untouched element does not move.
|
|
476
|
+
gap: prepareMediaVariable(--_ctm-dn-an-im-gp, 10px);
|
|
311
477
|
background-color: var(
|
|
312
478
|
--_ctm-mob-dn-an-an-im-bd-cr,
|
|
313
479
|
var(--_ctm-tab-dn-an-an-im-bd-cr, var(--_ctm-dn-an-an-im-bd-cr))
|
|
@@ -357,214 +523,32 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
357
523
|
var(--_ctm-tab-dn-an-an-im-pg, var(--_ctm-dn-an-an-im-pg))
|
|
358
524
|
);
|
|
359
525
|
|
|
360
|
-
.
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
);
|
|
375
|
-
|
|
376
|
-
border-width: var(
|
|
377
|
-
--_ctm-mob-dn-an-qa-lt-br-wh,
|
|
378
|
-
var(--_ctm-tab-dn-an-qa-lt-br-wh, var(--_ctm-dn-an-qa-lt-br-wh))
|
|
379
|
-
);
|
|
380
|
-
|
|
381
|
-
border-radius: var(
|
|
382
|
-
--_ctm-mob-dn-an-qa-lt-br-rs,
|
|
383
|
-
var(--_ctm-tab-dn-an-qa-lt-br-rs, var(--_ctm-dn-an-qa-lt-br-rs))
|
|
384
|
-
);
|
|
385
|
-
|
|
386
|
-
box-shadow: var(
|
|
387
|
-
--_show-shadow,
|
|
388
|
-
var(
|
|
389
|
-
--_ctm-mob-dn-an-qa-lt-sw-ae,
|
|
390
|
-
var(--_ctm-tab-dn-an-qa-lt-sw-ae, var(--_ctm-dn-an-qa-lt-sw-ae))
|
|
391
|
-
)
|
|
392
|
-
var(
|
|
393
|
-
--_ctm-mob-dn-an-qa-lt-sw-br,
|
|
394
|
-
var(--_ctm-tab-dn-an-qa-lt-sw-br, var(--_ctm-dn-an-qa-lt-sw-br))
|
|
395
|
-
)
|
|
396
|
-
var(
|
|
397
|
-
--_ctm-mob-dn-an-qa-lt-sw-sd,
|
|
398
|
-
var(--_ctm-tab-dn-an-qa-lt-sw-sd, var(--_ctm-dn-an-qa-lt-sw-sd))
|
|
399
|
-
)
|
|
400
|
-
var(
|
|
401
|
-
--_ctm-mob-dn-an-qa-lt-sw-cr,
|
|
402
|
-
var(--_ctm-tab-dn-an-qa-lt-sw-cr, var(--_ctm-dn-an-qa-lt-sw-cr))
|
|
403
|
-
)
|
|
404
|
-
);
|
|
405
|
-
white-space: nowrap;
|
|
406
|
-
|
|
407
|
-
height: 100%;
|
|
408
|
-
|
|
409
|
-
padding: prepareMediaVariable(--_ctm-dn-an-qa-lt-pg);
|
|
410
|
-
.label {
|
|
411
|
-
color: var(
|
|
412
|
-
--_ctm-mob-dn-an-qa-lt-cr,
|
|
413
|
-
var(--_ctm-tab-dn-an-qa-lt-cr, var(--_ctm-dn-an-qa-lt-cr))
|
|
414
|
-
);
|
|
415
|
-
font-family: var(
|
|
416
|
-
--_ctm-mob-dn-an-qa-lt-ft-fy,
|
|
417
|
-
var(--_ctm-tab-dn-an-qa-lt-ft-fy, var(--_ctm-dn-an-qa-lt-ft-fy))
|
|
418
|
-
);
|
|
419
|
-
font-size: var(
|
|
420
|
-
--_ctm-mob-dn-an-qa-lt-ft-se,
|
|
421
|
-
var(--_ctm-tab-dn-an-qa-lt-ft-se, var(--_ctm-dn-an-qa-lt-ft-se))
|
|
422
|
-
);
|
|
423
|
-
font-weight: var(
|
|
424
|
-
--_ctm-mob-dn-an-qa-lt-ft-wt,
|
|
425
|
-
var(--_ctm-tab-dn-an-qa-lt-ft-wt, var(--_ctm-dn-an-qa-lt-ft-wt))
|
|
426
|
-
);
|
|
427
|
-
font-style: var(
|
|
428
|
-
--_ctm-mob-dn-an-qa-lt-ft-se-ic,
|
|
429
|
-
var(--_ctm-tab-dn-an-qa-lt-ft-se-ic, var(--_ctm-dn-an-qa-lt-ft-se-ic))
|
|
430
|
-
);
|
|
431
|
-
text-align: var(
|
|
432
|
-
--_ctm-mob-dn-an-qa-lt-tt-an,
|
|
433
|
-
var(--_ctm-tab-dn-an-qa-lt-tt-an, var(--_ctm-dn-an-qa-lt-tt-an))
|
|
434
|
-
);
|
|
435
|
-
letter-spacing: var(
|
|
436
|
-
--_ctm-mob-dn-an-qa-lt-lr-sg,
|
|
437
|
-
var(--_ctm-tab-dn-an-qa-lt-lr-sg, var(--_ctm-dn-an-qa-lt-lr-sg))
|
|
438
|
-
);
|
|
439
|
-
line-height: var(
|
|
440
|
-
--_ctm-mob-dn-an-qa-lt-le-ht,
|
|
441
|
-
var(--_ctm-tab-dn-an-qa-lt-le-ht, var(--_ctm-dn-an-qa-lt-le-ht))
|
|
442
|
-
);
|
|
443
|
-
text-decoration: var(
|
|
444
|
-
--_ctm-mob-dn-an-qa-lt-ue,
|
|
445
|
-
var(--_ctm-tab-dn-an-qa-lt-ue, var(--_ctm-dn-an-qa-lt-ue))
|
|
446
|
-
);
|
|
447
|
-
}
|
|
448
|
-
.value {
|
|
449
|
-
// padding-block-end: var(--_sf-dc-pd-bt);
|
|
526
|
+
// Quota details in the allocation header. It renders the same embedded
|
|
527
|
+
// Quota Details element the cards do, from its own copy of the settings,
|
|
528
|
+
// so the rules come from a rebound copy of the card stylesheet rather than
|
|
529
|
+
// being written out again here.
|
|
530
|
+
.showcase__title {
|
|
531
|
+
// A row now, because the view switcher sits in this header beside the
|
|
532
|
+
// name and quota rather than up in `.main__header`. `flex-start` lets the
|
|
533
|
+
// switcher's own Vertical Alignment decide where it sits against the
|
|
534
|
+
// taller text column — in a row, align-self IS the vertical axis, which
|
|
535
|
+
// is what Top / Center / Bottom means.
|
|
536
|
+
display: flex;
|
|
537
|
+
align-items: flex-start;
|
|
538
|
+
justify-content: space-between;
|
|
539
|
+
gap: prepareMediaVariable(--_ctm-dn-an-im-gp, 10px);
|
|
450
540
|
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
font-size: var(
|
|
460
|
-
--_ctm-mob-dn-an-qa-lt-ft-se-dc,
|
|
461
|
-
var(--_ctm-tab-dn-an-qa-lt-ft-se-dc, var(--_ctm-dn-an-qa-lt-ft-se-dc))
|
|
462
|
-
);
|
|
463
|
-
font-weight: var(
|
|
464
|
-
--_ctm-mob-dn-an-qa-lt-ft-wt-dc,
|
|
465
|
-
var(--_ctm-tab-dn-an-qa-lt-ft-wt-dc, var(--_ctm-dn-an-qa-lt-ft-wt-dc))
|
|
466
|
-
);
|
|
467
|
-
font-style: var(
|
|
468
|
-
--_ctm-mob-dn-an-qa-lt-ft-se-ic-dc,
|
|
469
|
-
var(--_ctm-tab-dn-an-qa-lt-ft-se-ic-dc, var(--_ctm-dn-an-qa-lt-ft-se-ic-dc))
|
|
470
|
-
);
|
|
471
|
-
text-align: var(
|
|
472
|
-
--_ctm-mob-dn-an-qa-lt-tt-an-dc,
|
|
473
|
-
var(--_ctm-tab-dn-an-qa-lt-tt-an-dc, var(--_ctm-dn-an-qa-lt-tt-an-dc))
|
|
474
|
-
);
|
|
475
|
-
letter-spacing: var(
|
|
476
|
-
--_ctm-mob-dn-an-qa-lt-lr-sg-dc,
|
|
477
|
-
var(--_ctm-tab-dn-an-qa-lt-lr-sg-dc, var(--_ctm-dn-an-qa-lt-lr-sg-dc))
|
|
478
|
-
);
|
|
479
|
-
line-height: var(
|
|
480
|
-
--_ctm-mob-dn-an-qa-lt-le-ht-dc,
|
|
481
|
-
var(--_ctm-tab-dn-an-qa-lt-le-ht-dc, var(--_ctm-dn-an-qa-lt-le-ht-dc))
|
|
482
|
-
);
|
|
483
|
-
text-decoration: var(
|
|
484
|
-
--_ctm-mob-dn-an-qa-lt-ue-dc,
|
|
485
|
-
var(--_ctm-tab-dn-an-qa-lt-ue-dc, var(--_ctm-dn-an-qa-lt-ue-dc))
|
|
486
|
-
);
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
.days__left {
|
|
490
|
-
.label {
|
|
491
|
-
color: var(
|
|
492
|
-
--_ctm-mob-dn-an-es-in-cr,
|
|
493
|
-
var(--_ctm-tab-dn-an-es-in-cr, var(--_ctm-dn-an-es-in-cr))
|
|
494
|
-
);
|
|
495
|
-
font-family: var(
|
|
496
|
-
--_ctm-mob-dn-an-es-in-ft-fy,
|
|
497
|
-
var(--_ctm-tab-dn-an-es-in-ft-fy, var(--_ctm-dn-an-es-in-ft-fy))
|
|
498
|
-
);
|
|
499
|
-
font-size: var(
|
|
500
|
-
--_ctm-mob-dn-an-es-in-ft-se,
|
|
501
|
-
var(--_ctm-tab-dn-an-es-in-ft-se, var(--_ctm-dn-an-es-in-ft-se))
|
|
502
|
-
);
|
|
503
|
-
font-weight: var(
|
|
504
|
-
--_ctm-mob-dn-an-es-in-ft-wt,
|
|
505
|
-
var(--_ctm-tab-dn-an-es-in-ft-wt, var(--_ctm-dn-an-es-in-ft-wt))
|
|
506
|
-
);
|
|
507
|
-
font-style: var(
|
|
508
|
-
--_ctm-mob-dn-an-es-in-ft-se-ic,
|
|
509
|
-
var(--_ctm-tab-dn-an-es-in-ft-se-ic, var(--_ctm-dn-an-es-in-ft-se-ic))
|
|
510
|
-
);
|
|
511
|
-
text-align: var(
|
|
512
|
-
--_ctm-mob-dn-an-es-in-tt-an,
|
|
513
|
-
var(--_ctm-tab-dn-an-es-in-tt-an, var(--_ctm-dn-an-es-in-tt-an))
|
|
514
|
-
);
|
|
515
|
-
letter-spacing: var(
|
|
516
|
-
--_ctm-mob-dn-an-es-in-lr-sg,
|
|
517
|
-
var(--_ctm-tab-dn-an-es-in-lr-sg, var(--_ctm-dn-an-es-in-lr-sg))
|
|
518
|
-
);
|
|
519
|
-
line-height: var(
|
|
520
|
-
--_ctm-mob-dn-an-es-in-le-ht,
|
|
521
|
-
var(--_ctm-tab-dn-an-es-in-le-ht, var(--_ctm-dn-an-es-in-le-ht))
|
|
522
|
-
);
|
|
523
|
-
text-decoration: var(
|
|
524
|
-
--_ctm-mob-dn-an-es-in-ue,
|
|
525
|
-
var(--_ctm-tab-dn-an-es-in-ue, var(--_ctm-dn-an-es-in-ue))
|
|
526
|
-
);
|
|
541
|
+
// The name and quota keep their own column, so Allocation > Item Gap goes
|
|
542
|
+
// on spacing those two rather than pushing the switcher around.
|
|
543
|
+
.showcase__title__info {
|
|
544
|
+
display: flex;
|
|
545
|
+
flex-direction: column;
|
|
546
|
+
gap: prepareMediaVariable(--_ctm-dn-an-im-gp, 10px);
|
|
547
|
+
flex: 1;
|
|
548
|
+
min-width: 0;
|
|
527
549
|
}
|
|
528
|
-
.value {
|
|
529
|
-
// padding-block-end: var(--_sf-dc-pd-bt);
|
|
530
550
|
|
|
531
|
-
|
|
532
|
-
--_ctm-mob-dn-an-es-in-cr-dc,
|
|
533
|
-
var(--_ctm-tab-dn-an-es-in-cr-dc, var(--_ctm-dn-an-es-in-cr-dc))
|
|
534
|
-
);
|
|
535
|
-
font-family: var(
|
|
536
|
-
--_ctm-mob-dn-an-es-in-ft-fy-dc,
|
|
537
|
-
var(--_ctm-tab-dn-an-es-in-ft-fy-dc, var(--_ctm-dn-an-es-in-ft-fy-dc))
|
|
538
|
-
);
|
|
539
|
-
font-size: var(
|
|
540
|
-
--_ctm-mob-dn-an-es-in-ft-se-dc,
|
|
541
|
-
var(--_ctm-tab-dn-an-es-in-ft-se-dc, var(--_ctm-dn-an-es-in-ft-se-dc))
|
|
542
|
-
);
|
|
543
|
-
font-weight: var(
|
|
544
|
-
--_ctm-mob-dn-an-es-in-ft-wt-dc,
|
|
545
|
-
var(--_ctm-tab-dn-an-es-in-ft-wt-dc, var(--_ctm-dn-an-es-in-ft-wt-dc))
|
|
546
|
-
);
|
|
547
|
-
font-style: var(
|
|
548
|
-
--_ctm-mob-dn-an-es-in-ft-se-ic-dc,
|
|
549
|
-
var(--_ctm-tab-dn-an-es-in-ft-se-ic-dc, var(--_ctm-dn-an-es-in-ft-se-ic-dc))
|
|
550
|
-
);
|
|
551
|
-
text-align: var(
|
|
552
|
-
--_ctm-mob-dn-an-es-in-tt-an-dc,
|
|
553
|
-
var(--_ctm-tab-dn-an-es-in-tt-an-dc, var(--_ctm-dn-an-es-in-tt-an-dc))
|
|
554
|
-
);
|
|
555
|
-
letter-spacing: var(
|
|
556
|
-
--_ctm-mob-dn-an-es-in-lr-sg-dc,
|
|
557
|
-
var(--_ctm-tab-dn-an-es-in-lr-sg-dc, var(--_ctm-dn-an-es-in-lr-sg-dc))
|
|
558
|
-
);
|
|
559
|
-
line-height: var(
|
|
560
|
-
--_ctm-mob-dn-an-es-in-le-ht-dc,
|
|
561
|
-
var(--_ctm-tab-dn-an-es-in-le-ht-dc, var(--_ctm-dn-an-es-in-le-ht-dc))
|
|
562
|
-
);
|
|
563
|
-
text-decoration: var(
|
|
564
|
-
--_ctm-mob-dn-an-es-in-ue-dc,
|
|
565
|
-
var(--_ctm-tab-dn-an-es-in-ue-dc, var(--_ctm-dn-an-es-in-ue-dc))
|
|
566
|
-
);
|
|
567
|
-
}
|
|
551
|
+
@import "./allocation-header-quota-details.scss";
|
|
568
552
|
}
|
|
569
553
|
|
|
570
554
|
.allocation__name {
|
|
@@ -651,6 +635,8 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
651
635
|
var(--_ctm-tab-dn-an-an-ne-ue, var(--_ctm-dn-an-an-ne-ue))
|
|
652
636
|
);
|
|
653
637
|
padding: prepareMediaVariable(--_ctm-dn-an-an-ne-pg);
|
|
638
|
+
@include ad-text-transform(--_ctm-dn-an-an-ne);
|
|
639
|
+
@include ad-text-overflow;
|
|
654
640
|
}
|
|
655
641
|
}
|
|
656
642
|
|
|
@@ -707,107 +693,191 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
707
693
|
}
|
|
708
694
|
}
|
|
709
695
|
}
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
// The view switcher lives in the allocation header (`.showcase__title`), not
|
|
699
|
+
// in `.main__header` where it started, so its rules sit at showcase level and
|
|
700
|
+
// reach it wherever it is nested.
|
|
701
|
+
.button__group {
|
|
702
|
+
display: flex;
|
|
703
|
+
gap: 12px;
|
|
704
|
+
margin-left: auto;
|
|
705
|
+
// Grid View Control Style > Layout Style > Vertical Alignment. The
|
|
706
|
+
// renderer publishes the stored word (top / center / bottom); those are
|
|
707
|
+
// not align-self keywords, so the mapping is done here rather than
|
|
708
|
+
// written into every saved element.
|
|
709
|
+
align-self: center;
|
|
710
|
+
&[data-vertical-align="top"] {
|
|
711
|
+
align-self: flex-start;
|
|
714
712
|
}
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
713
|
+
&[data-vertical-align="center"] {
|
|
714
|
+
align-self: center;
|
|
715
|
+
}
|
|
716
|
+
&[data-vertical-align="bottom"] {
|
|
717
|
+
align-self: flex-end;
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
.product__views {
|
|
721
|
+
display: flex;
|
|
722
|
+
// background-color: #fff;
|
|
723
|
+
// border: 1px solid var(--_gray-300);
|
|
724
|
+
border-radius: 4px;
|
|
725
|
+
border-style: prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-lt-se-br-se, solid);
|
|
726
|
+
border-width: prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-lt-se-br-wh, 1px);
|
|
727
|
+
border-color: prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-lt-se-br-cr, var(--_gray-200));
|
|
728
|
+
background-color: prepareMediaVariable(
|
|
729
|
+
--_ctm-dn-gd-vw-cl-se-lt-se-bd-cr,
|
|
730
|
+
var(--_base-white)
|
|
731
|
+
);
|
|
732
|
+
// height: 40px;
|
|
733
|
+
// overflow: hidden;
|
|
734
|
+
|
|
735
|
+
// Hoisted out of `.btn` so the "Icon + Text" rules further down can size
|
|
736
|
+
// themselves off the same icon measurement.
|
|
737
|
+
$size: #{var(
|
|
738
|
+
--_sf-at-btn-size,
|
|
739
|
+
#{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-dt-se-in-se, var(--_width-20))}
|
|
740
|
+
)};
|
|
741
|
+
|
|
742
|
+
.btn {
|
|
743
|
+
// display: inline-block;
|
|
744
|
+
// // padding: 8px;
|
|
745
|
+
// display: flex;
|
|
746
|
+
// align-items: center;
|
|
747
|
+
// justify-content: center;
|
|
729
748
|
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
749
|
+
display: var(--_d-flex);
|
|
750
|
+
--_width-20: 20px;
|
|
751
|
+
// $size: var(--_width-40);
|
|
752
|
+
// The 2x cell is now a floor rather than a fixed size: Padding is
|
|
753
|
+
// configurable, so the button grows past it once the padding needs more
|
|
754
|
+
// room than the icon left over. Untouched elements have no padding and
|
|
755
|
+
// stay exactly 2x, as they always were.
|
|
756
|
+
min-width: calc(#{$size} * 2);
|
|
757
|
+
min-height: calc(#{$size} * 2);
|
|
758
|
+
box-sizing: border-box;
|
|
759
|
+
padding: var(
|
|
760
|
+
--_sf-at-btn-pg,
|
|
761
|
+
#{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-dt-se-pg, 0)}
|
|
762
|
+
);
|
|
763
|
+
align-items: center;
|
|
764
|
+
justify-content: center;
|
|
765
|
+
background: var(
|
|
766
|
+
--_sf-at-btn-bd,
|
|
767
|
+
#{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-dt-se-bd-cr)}
|
|
768
|
+
);
|
|
769
|
+
box-shadow: var(
|
|
770
|
+
--_sf-at-btn-sw,
|
|
771
|
+
#{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-dt-se-sw-ae, 0 0)}
|
|
772
|
+
#{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-dt-se-sw-br, 0)}
|
|
773
|
+
#{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-dt-se-sw-sd, 0)}
|
|
774
|
+
#{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-dt-se-sw-cr, transparent)}
|
|
775
|
+
);
|
|
776
|
+
|
|
777
|
+
// The renderer reads Show Shadow off whichever state the button is in,
|
|
778
|
+
// so one attribute covers both.
|
|
779
|
+
&[data-show-shadow="false"] {
|
|
780
|
+
box-shadow: none;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
cursor: pointer;
|
|
784
|
+
button {
|
|
785
|
+
display: flex;
|
|
786
|
+
// Until these are cleared the button keeps the browser's own
|
|
787
|
+
// padding and border, which pushed the glyph off the centre of its
|
|
788
|
+
// cell — that is what made the Grid and List icons sit unevenly
|
|
789
|
+
// beside each other. Filling the cell and centring here keeps them
|
|
790
|
+
// on one baseline at every icon size.
|
|
747
791
|
align-items: center;
|
|
748
792
|
justify-content: center;
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
793
|
+
width: 100%;
|
|
794
|
+
height: 100%;
|
|
795
|
+
padding: 0;
|
|
796
|
+
border: none;
|
|
797
|
+
background: transparent;
|
|
798
|
+
}
|
|
753
799
|
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
800
|
+
// The glyph gets its own flex box so the svg sits centred without the
|
|
801
|
+
// inline-baseline gap a bare `dangerouslySetInnerHTML` span would add.
|
|
802
|
+
.btn__icon {
|
|
803
|
+
display: flex;
|
|
804
|
+
align-items: center;
|
|
805
|
+
justify-content: center;
|
|
806
|
+
flex-shrink: 0;
|
|
761
807
|
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
)};
|
|
768
|
-
--_sf-at-pt-cl: #{prepareMediaVariable(
|
|
769
|
-
--_ctm-dn-gd-vw-cl-se-bn-sd-se-in-c1,
|
|
770
|
-
var(--_gray-700)
|
|
771
|
-
)};
|
|
772
|
-
--_sf-at-btn-bd: #{prepareMediaVariable(
|
|
773
|
-
--_ctm-dn-gd-vw-cl-se-bn-sd-se-bd-cr,
|
|
774
|
-
var(--_gray-200)
|
|
775
|
-
)};
|
|
776
|
-
// background: var(--_gray-200);
|
|
777
|
-
}
|
|
778
|
-
// &.active {
|
|
779
|
-
// background-color: #ced4f6;
|
|
780
|
-
// button {
|
|
781
|
-
// svg {
|
|
782
|
-
// path {
|
|
783
|
-
// stroke: var(--_primary-500);
|
|
784
|
-
// }
|
|
785
|
-
// }
|
|
786
|
-
// }
|
|
787
|
-
// }
|
|
788
|
-
// &:first-child {
|
|
789
|
-
// border-right: 1px solid var(--_gray-200);
|
|
790
|
-
// }
|
|
791
|
-
|
|
792
|
-
svg {
|
|
808
|
+
// An uploaded icon comes through as an <img> sized to its box, so the
|
|
809
|
+
// box needs a size of its own — the svg rule further down only reaches
|
|
810
|
+
// library icons, and a percentage inside a shrink-to-fit parent would
|
|
811
|
+
// otherwise resolve to nothing.
|
|
812
|
+
img {
|
|
793
813
|
width: calc(#{$size} * 1);
|
|
794
814
|
height: calc(#{$size} * 1);
|
|
795
|
-
|
|
796
|
-
path {
|
|
797
|
-
stroke: var(
|
|
798
|
-
--_sf-at-pt-cl,
|
|
799
|
-
#{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-dt-se-in-c1, var(--_gray-500))}
|
|
800
|
-
);
|
|
801
|
-
}
|
|
815
|
+
object-fit: contain;
|
|
802
816
|
}
|
|
817
|
+
}
|
|
803
818
|
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
819
|
+
// &:hover {
|
|
820
|
+
// background-color: var(--_gray-100);
|
|
821
|
+
// }
|
|
822
|
+
|
|
823
|
+
&.active {
|
|
824
|
+
// --_sf-at-pt-cl: var(--_gray-700);
|
|
825
|
+
--_sf-at-btn-size: #{prepareMediaVariable(
|
|
826
|
+
--_ctm-dn-gd-vw-cl-se-bn-sd-se-in-se,
|
|
827
|
+
var(--_width-20)
|
|
828
|
+
)};
|
|
829
|
+
--_sf-at-pt-cl: #{prepareMediaVariable(
|
|
830
|
+
--_ctm-dn-gd-vw-cl-se-bn-sd-se-in-c1,
|
|
831
|
+
var(--_gray-700)
|
|
832
|
+
)};
|
|
833
|
+
--_sf-at-btn-bd: #{prepareMediaVariable(
|
|
834
|
+
--_ctm-dn-gd-vw-cl-se-bn-sd-se-bd-cr,
|
|
835
|
+
var(--_gray-200)
|
|
836
|
+
)};
|
|
837
|
+
// Same re-pointing trick as the icon vars above: the padding and
|
|
838
|
+
// shadow declarations stay written once and simply re-resolve
|
|
839
|
+
// against the selected state's values.
|
|
840
|
+
--_sf-at-btn-pg: #{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-sd-se-pg, 0)};
|
|
841
|
+
--_sf-at-btn-sw: #{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-sd-se-sw-ae, 0 0)}
|
|
842
|
+
#{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-sd-se-sw-br, 0)}
|
|
843
|
+
#{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-sd-se-sw-sd, 0)}
|
|
844
|
+
#{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-sd-se-sw-cr, transparent)};
|
|
845
|
+
// background: var(--_gray-200);
|
|
846
|
+
}
|
|
847
|
+
// &.active {
|
|
848
|
+
// background-color: #ced4f6;
|
|
849
|
+
// button {
|
|
850
|
+
// svg {
|
|
851
|
+
// path {
|
|
852
|
+
// stroke: var(--_primary-500);
|
|
853
|
+
// }
|
|
854
|
+
// }
|
|
855
|
+
// }
|
|
856
|
+
// }
|
|
857
|
+
// &:first-child {
|
|
858
|
+
// border-right: 1px solid var(--_gray-200);
|
|
859
|
+
// }
|
|
860
|
+
|
|
861
|
+
svg {
|
|
862
|
+
width: calc(#{$size} * 1);
|
|
863
|
+
height: calc(#{$size} * 1);
|
|
864
|
+
|
|
865
|
+
path {
|
|
866
|
+
stroke: var(
|
|
867
|
+
--_sf-at-pt-cl,
|
|
868
|
+
#{prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-dt-se-in-c1, var(--_gray-500))}
|
|
869
|
+
);
|
|
870
|
+
// Overrides the stroke-width presentation attribute baked into the icon markup.
|
|
871
|
+
stroke-width: prepareMediaVariable(--_ctm-dn-gd-vw-cl-se-bn-dt-se-se-wh, 1.25);
|
|
809
872
|
}
|
|
810
873
|
}
|
|
874
|
+
|
|
875
|
+
&:first-of-type {
|
|
876
|
+
border-radius: 4px 0 0 4px;
|
|
877
|
+
}
|
|
878
|
+
&:last-of-type {
|
|
879
|
+
border-radius: 0 4px 4px 0;
|
|
880
|
+
}
|
|
811
881
|
}
|
|
812
882
|
}
|
|
813
883
|
// products header styles
|
|
@@ -906,7 +976,12 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
906
976
|
// 1fr
|
|
907
977
|
// );
|
|
908
978
|
--_sf-cl-count: #{prepareMediaVariable(--_ctm-dn-an-an-im-is-pr-rw, 1)};
|
|
909
|
-
|
|
979
|
+
// The column width has to be worked out from the COLUMN gap alone — it is
|
|
980
|
+
// the only one that eats into the row's width.
|
|
981
|
+
--_sf-cl-gp: #{prepareMediaVariable(
|
|
982
|
+
--_ctm-dn-an-an-im-cn-gp,
|
|
983
|
+
prepareMediaVariable(--_ctm-dn-an-an-im-im-gp, 0px)
|
|
984
|
+
)};
|
|
910
985
|
grid-template-columns: getRepeatColWidth(--_sf-cl-count, --_sf-cl-gp);
|
|
911
986
|
// gap: 24px;
|
|
912
987
|
.product__card {
|
|
@@ -929,15 +1004,24 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
929
1004
|
}
|
|
930
1005
|
}
|
|
931
1006
|
display: grid;
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
1007
|
+
// Gap BETWEEN the item cards, now one control per axis. Both fall back to
|
|
1008
|
+
// the single `itemGap` this section used to carry, so a grid spaced before
|
|
1009
|
+
// the split keeps its spacing until either axis is touched.
|
|
1010
|
+
row-gap: prepareMediaVariable(
|
|
1011
|
+
--_ctm-dn-an-an-im-rw-gp,
|
|
1012
|
+
prepareMediaVariable(--_ctm-dn-an-an-im-im-gp, 0px)
|
|
1013
|
+
);
|
|
1014
|
+
column-gap: prepareMediaVariable(
|
|
1015
|
+
--_ctm-dn-an-an-im-cn-gp,
|
|
1016
|
+
prepareMediaVariable(--_ctm-dn-an-an-im-im-gp, 0px)
|
|
935
1017
|
);
|
|
936
1018
|
|
|
937
1019
|
.product__card {
|
|
938
1020
|
// product card styles
|
|
939
1021
|
display: flex;
|
|
940
|
-
|
|
1022
|
+
// Item Card > Item Gap: image container <-> details container. 12px is
|
|
1023
|
+
// what was hardcoded here, so an untouched card does not move.
|
|
1024
|
+
gap: prepareMediaVariable(--_ctm-dn-im-cd-im-gp, 12px);
|
|
941
1025
|
|
|
942
1026
|
background-color: var(
|
|
943
1027
|
--_ctm-mob-dn-im-cd-bd-cr,
|
|
@@ -1089,13 +1173,11 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1089
1173
|
var(--_ctm-tab-dn-ne-ue, var(--_ctm-dn-ne-ue))
|
|
1090
1174
|
);
|
|
1091
1175
|
padding: prepareMediaVariable(--_ctm-dn-ne-pg);
|
|
1092
|
-
text-transform
|
|
1176
|
+
@include ad-text-transform(--_ctm-dn-ne);
|
|
1093
1177
|
|
|
1094
1178
|
& > span {
|
|
1095
1179
|
width: 100%;
|
|
1096
|
-
|
|
1097
|
-
@include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
|
|
1098
|
-
}
|
|
1180
|
+
@include ad-text-overflow;
|
|
1099
1181
|
}
|
|
1100
1182
|
&[data-has-link="true"] {
|
|
1101
1183
|
cursor: pointer;
|
|
@@ -1111,6 +1193,15 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1111
1193
|
gap: 8px;
|
|
1112
1194
|
color: var(--_gray-600);
|
|
1113
1195
|
font-weight: 500;
|
|
1196
|
+
|
|
1197
|
+
// Item Card > Brand & Code Direction. Horizontal is the original
|
|
1198
|
+
// side-by-side row; vertical stacks the two blocks and lets each
|
|
1199
|
+
// start at the left rather than being centred against the other.
|
|
1200
|
+
&[data-direction="vertical"] {
|
|
1201
|
+
flex-direction: column;
|
|
1202
|
+
align-items: flex-start;
|
|
1203
|
+
flex-wrap: nowrap;
|
|
1204
|
+
}
|
|
1114
1205
|
}
|
|
1115
1206
|
}
|
|
1116
1207
|
|
|
@@ -1118,6 +1209,11 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1118
1209
|
display: flex;
|
|
1119
1210
|
align-items: center;
|
|
1120
1211
|
gap: 6px;
|
|
1212
|
+
@include ad-section-box(--_ctm-dn-bd);
|
|
1213
|
+
|
|
1214
|
+
.brand__icon {
|
|
1215
|
+
@include ad-section-icon(--_ctm-dn-bd);
|
|
1216
|
+
}
|
|
1121
1217
|
|
|
1122
1218
|
.value {
|
|
1123
1219
|
// padding-block-end: var(--_sf-dc-pd-bt);
|
|
@@ -1158,6 +1254,8 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1158
1254
|
--_ctm-mob-dn-bd-ue-dc,
|
|
1159
1255
|
var(--_ctm-tab-dn-bd-ue-dc, var(--_ctm-dn-bd-ue-dc))
|
|
1160
1256
|
);
|
|
1257
|
+
@include ad-text-transform(--_ctm-dn-bd, "-dc");
|
|
1258
|
+
@include ad-text-overflow(--_sf-line-clamp-desc);
|
|
1161
1259
|
}
|
|
1162
1260
|
.label {
|
|
1163
1261
|
color: var(--_ctm-mob-dn-bd-cr, var(--_ctm-tab-dn-bd-cr, var(--_ctm-dn-bd-cr)));
|
|
@@ -1193,12 +1291,19 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1193
1291
|
--_ctm-mob-dn-bd-ue,
|
|
1194
1292
|
var(--_ctm-tab-dn-bd-ue, var(--_ctm-dn-bd-ue))
|
|
1195
1293
|
);
|
|
1294
|
+
@include ad-text-transform(--_ctm-dn-bd);
|
|
1295
|
+
@include ad-text-overflow;
|
|
1196
1296
|
}
|
|
1197
1297
|
}
|
|
1198
1298
|
.code {
|
|
1199
1299
|
display: flex;
|
|
1200
1300
|
align-items: center;
|
|
1201
1301
|
gap: 6px;
|
|
1302
|
+
@include ad-section-box(--_ctm-dn-ce);
|
|
1303
|
+
|
|
1304
|
+
.code__icon {
|
|
1305
|
+
@include ad-section-icon(--_ctm-dn-ce);
|
|
1306
|
+
}
|
|
1202
1307
|
|
|
1203
1308
|
.value {
|
|
1204
1309
|
// padding-block-end: var(--_sf-dc-pd-bt);
|
|
@@ -1239,6 +1344,8 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1239
1344
|
--_ctm-mob-dn-ce-ue-dc,
|
|
1240
1345
|
var(--_ctm-tab-dn-ce-ue-dc, var(--_ctm-dn-ce-ue-dc))
|
|
1241
1346
|
);
|
|
1347
|
+
@include ad-text-transform(--_ctm-dn-ce, "-dc");
|
|
1348
|
+
@include ad-text-overflow(--_sf-line-clamp-desc);
|
|
1242
1349
|
}
|
|
1243
1350
|
.label {
|
|
1244
1351
|
color: var(--_ctm-mob-dn-ce-cr, var(--_ctm-tab-dn-ce-cr, var(--_ctm-dn-ce-cr)));
|
|
@@ -1274,6 +1381,8 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1274
1381
|
--_ctm-mob-dn-ce-ue,
|
|
1275
1382
|
var(--_ctm-tab-dn-ce-ue, var(--_ctm-dn-ce-ue))
|
|
1276
1383
|
);
|
|
1384
|
+
@include ad-text-transform(--_ctm-dn-ce);
|
|
1385
|
+
@include ad-text-overflow;
|
|
1277
1386
|
}
|
|
1278
1387
|
}
|
|
1279
1388
|
.price {
|
|
@@ -1347,6 +1456,8 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1347
1456
|
var(--_ctm-tab-dn-pe-ue, var(--_ctm-dn-pe-ue))
|
|
1348
1457
|
);
|
|
1349
1458
|
padding: prepareMediaVariable(--_ctm-dn-pe-pg);
|
|
1459
|
+
@include ad-text-transform(--_ctm-dn-pe);
|
|
1460
|
+
@include ad-text-overflow;
|
|
1350
1461
|
}
|
|
1351
1462
|
}
|
|
1352
1463
|
|
|
@@ -1504,6 +1615,18 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1504
1615
|
--_ctm-mob-dn-sr-tb-hr-se-le-ht,
|
|
1505
1616
|
var(--_ctm-tab-dn-sr-tb-hr-se-le-ht, var(--_ctm-dn-sr-tb-hr-se-le-ht))
|
|
1506
1617
|
);
|
|
1618
|
+
--_sf-hr-tt-tm: var(
|
|
1619
|
+
--_ctm-mob-dn-sr-tb-hr-se-tt-tm,
|
|
1620
|
+
var(--_ctm-tab-dn-sr-tb-hr-se-tt-tm, var(--_ctm-dn-sr-tb-hr-se-tt-tm))
|
|
1621
|
+
);
|
|
1622
|
+
--_sf-hr-wd-wp: var(
|
|
1623
|
+
--_ctm-mob-dn-sr-tb-hr-se-wd-wp,
|
|
1624
|
+
var(--_ctm-tab-dn-sr-tb-hr-se-wd-wp, var(--_ctm-dn-sr-tb-hr-se-wd-wp))
|
|
1625
|
+
);
|
|
1626
|
+
--_sf-hr-wd-bk: var(
|
|
1627
|
+
--_ctm-mob-dn-sr-tb-hr-se-wd-bk,
|
|
1628
|
+
var(--_ctm-tab-dn-sr-tb-hr-se-wd-bk, var(--_ctm-dn-sr-tb-hr-se-wd-bk))
|
|
1629
|
+
);
|
|
1507
1630
|
|
|
1508
1631
|
--_sf-hr-in-se: var(
|
|
1509
1632
|
--_ctm-mob-dn-sr-tb-hr-se-in-se,
|
|
@@ -1585,6 +1708,21 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1585
1708
|
|
|
1586
1709
|
text-decoration: var(--_sf-hr-ue, prepareMediaVariable(--_ctm-dn-dt-ue));
|
|
1587
1710
|
|
|
1711
|
+
// Same shape as the font rules above: the base value is the default
|
|
1712
|
+
// state, and the `&:hover` block below re-points --_sf-hr-* at the hover
|
|
1713
|
+
// state so this declaration re-resolves without being repeated.
|
|
1714
|
+
text-transform: var(
|
|
1715
|
+
--_sf-hr-tt-tm,
|
|
1716
|
+
prepareMediaVariable(--_ctm-dn-sr-tb-dt-se-tt-tm, none)
|
|
1717
|
+
);
|
|
1718
|
+
|
|
1719
|
+
word-wrap: var(--_sf-hr-wd-wp, prepareMediaVariable(--_ctm-dn-sr-tb-dt-se-wd-wp, normal));
|
|
1720
|
+
|
|
1721
|
+
word-break: var(
|
|
1722
|
+
--_sf-hr-wd-bk,
|
|
1723
|
+
prepareMediaVariable(--_ctm-dn-sr-tb-dt-se-wd-bk, normal)
|
|
1724
|
+
);
|
|
1725
|
+
|
|
1588
1726
|
[data-element-style="Text"] {
|
|
1589
1727
|
display: inline-block;
|
|
1590
1728
|
width: 100%;
|
|
@@ -1672,6 +1810,18 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1672
1810
|
--_ctm-mob-dn-sr-tb-sd-se-le-ht,
|
|
1673
1811
|
var(--_ctm-tab-dn-sr-tb-sd-se-le-ht, var(--_ctm-dn-sr-tb-sd-se-le-ht))
|
|
1674
1812
|
);
|
|
1813
|
+
--_sf-sd-tt-tm: var(
|
|
1814
|
+
--_ctm-mob-dn-sr-tb-sd-se-tt-tm,
|
|
1815
|
+
var(--_ctm-tab-dn-sr-tb-sd-se-tt-tm, var(--_ctm-dn-sr-tb-sd-se-tt-tm))
|
|
1816
|
+
);
|
|
1817
|
+
--_sf-sd-wd-wp: var(
|
|
1818
|
+
--_ctm-mob-dn-sr-tb-sd-se-wd-wp,
|
|
1819
|
+
var(--_ctm-tab-dn-sr-tb-sd-se-wd-wp, var(--_ctm-dn-sr-tb-sd-se-wd-wp))
|
|
1820
|
+
);
|
|
1821
|
+
--_sf-sd-wd-bk: var(
|
|
1822
|
+
--_ctm-mob-dn-sr-tb-sd-se-wd-bk,
|
|
1823
|
+
var(--_ctm-tab-dn-sr-tb-sd-se-wd-bk, var(--_ctm-dn-sr-tb-sd-se-wd-bk))
|
|
1824
|
+
);
|
|
1675
1825
|
|
|
1676
1826
|
--_sf-sd-in-se: var(
|
|
1677
1827
|
--_ctm-mob-dn-sr-tb-sd-se-in-se,
|
|
@@ -1758,6 +1908,21 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1758
1908
|
|
|
1759
1909
|
text-decoration: var(--_sf-sd-ue, prepareMediaVariable(--_ctm-dn-dt-ue));
|
|
1760
1910
|
|
|
1911
|
+
text-transform: var(
|
|
1912
|
+
--_sf-sd-tt-tm,
|
|
1913
|
+
prepareMediaVariable(--_ctm-dn-sr-tb-dt-se-tt-tm, none)
|
|
1914
|
+
);
|
|
1915
|
+
|
|
1916
|
+
word-wrap: var(
|
|
1917
|
+
--_sf-sd-wd-wp,
|
|
1918
|
+
prepareMediaVariable(--_ctm-dn-sr-tb-dt-se-wd-wp, normal)
|
|
1919
|
+
);
|
|
1920
|
+
|
|
1921
|
+
word-break: var(
|
|
1922
|
+
--_sf-sd-wd-bk,
|
|
1923
|
+
prepareMediaVariable(--_ctm-dn-sr-tb-dt-se-wd-bk, normal)
|
|
1924
|
+
);
|
|
1925
|
+
|
|
1761
1926
|
[data-element-style="Text"] {
|
|
1762
1927
|
display: inline-block;
|
|
1763
1928
|
width: 100%;
|
|
@@ -1880,65 +2045,67 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1880
2045
|
margin-top: 10px;
|
|
1881
2046
|
}
|
|
1882
2047
|
}
|
|
2048
|
+
// Profiles Slider > Pagination Arrows. These rules used to read
|
|
2049
|
+
// `--_ctm-dn-pn-as-*`, a `design.paginationArrows` node that does not exist
|
|
2050
|
+
// on this element — so every one of them fell through to its hardcoded
|
|
2051
|
+
// default and the panel could not reach the strip's arrows at all. They now
|
|
2052
|
+
// read design.slider.paginationArrows, and each fallback is the value that
|
|
2053
|
+
// was hardcoded, so an untouched strip renders exactly as before.
|
|
1883
2054
|
&[data-control-type="Side"] {
|
|
1884
2055
|
.left-button,
|
|
1885
2056
|
.right-button {
|
|
1886
|
-
background-color: transparent;
|
|
2057
|
+
background-color: prepareMediaVariable(#{$ad-slider-arrows}-bd-cr, transparent);
|
|
1887
2058
|
}
|
|
1888
2059
|
}
|
|
1889
2060
|
&[data-background-shape="Round"] {
|
|
1890
2061
|
.left-button,
|
|
1891
2062
|
.right-button {
|
|
1892
|
-
background-color: #f2f5f5;
|
|
2063
|
+
background-color: prepareMediaVariable(#{$ad-slider-arrows}-bd-cr, #f2f5f5);
|
|
1893
2064
|
box-sizing: 0 4px 8px rgba(0, 0, 0, 0.1);
|
|
1894
2065
|
}
|
|
1895
2066
|
}
|
|
1896
|
-
.left-button
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
border:
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
2067
|
+
.left-button,
|
|
2068
|
+
.right-button {
|
|
2069
|
+
padding: prepareMediaVariable(#{$ad-slider-arrows}-pg, 10px);
|
|
2070
|
+
border-color: prepareMediaVariable(#{$ad-slider-arrows}-br-cr, transparent);
|
|
2071
|
+
border-style: prepareMediaVariable(#{$ad-slider-arrows}-br-se, solid);
|
|
2072
|
+
border-width: prepareMediaVariable(#{$ad-slider-arrows}-br-wh, 0);
|
|
2073
|
+
// 50%, not prepareMediaVariable's `inherit` tail: an arrow with no
|
|
2074
|
+
// configured radius has always been a circle.
|
|
2075
|
+
border-radius: prepareMediaVariable(#{$ad-slider-arrows}-br-rs, 50%);
|
|
2076
|
+
// 20px, not prepareMediaVariable's `inherit` tail — inheriting the strip's
|
|
2077
|
+
// width here would blow the buttons out. 20 is also the schema default, so
|
|
2078
|
+
// a strip saved before this node existed matches a fresh one.
|
|
2079
|
+
width: prepareMediaVariable(#{$ad-slider-arrows}-aw-se, 20px);
|
|
2080
|
+
height: prepareMediaVariable(#{$ad-slider-arrows}-aw-se, 20px);
|
|
2081
|
+
// Opt-in, like the gallery's: these arrows have never cast a shadow.
|
|
2082
|
+
box-shadow: none;
|
|
2083
|
+
|
|
2084
|
+
&[data-show-shadow="true"] {
|
|
2085
|
+
box-shadow: prepareMediaVariable(#{$ad-slider-arrows}-sw-ae, 0 0)
|
|
2086
|
+
prepareMediaVariable(#{$ad-slider-arrows}-sw-br, 0)
|
|
2087
|
+
prepareMediaVariable(#{$ad-slider-arrows}-sw-sd, 0)
|
|
2088
|
+
prepareMediaVariable(#{$ad-slider-arrows}-sw-cr, transparent);
|
|
2089
|
+
}
|
|
1908
2090
|
|
|
1909
2091
|
display: flex;
|
|
1910
2092
|
align-items: center;
|
|
1911
2093
|
justify-content: center;
|
|
1912
2094
|
cursor: pointer;
|
|
1913
2095
|
outline: none;
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
path {
|
|
1918
|
-
stroke: #c3b7b7;
|
|
1919
|
-
}
|
|
1920
|
-
}
|
|
2096
|
+
|
|
2097
|
+
&[data-show-border="false"] {
|
|
2098
|
+
border: none;
|
|
1921
2099
|
}
|
|
1922
|
-
}
|
|
1923
|
-
.right-button {
|
|
1924
|
-
border-radius: 50%;
|
|
1925
|
-
border: none;
|
|
1926
|
-
width: var(
|
|
1927
|
-
--_ctm-mob-dn-pn-as-aw-se,
|
|
1928
|
-
var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
|
|
1929
|
-
);
|
|
1930
|
-
height: var(
|
|
1931
|
-
--_ctm-mob-dn-pn-as-aw-se,
|
|
1932
|
-
var(--_ctm-tab-dn-pn-as-aw-se, var(--_ctm-dn-pn-as-aw-se))
|
|
1933
|
-
);
|
|
1934
2100
|
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
2101
|
+
// Background Shape overrides the configured radius when it names one;
|
|
2102
|
+
// "None" leaves the radius alone.
|
|
2103
|
+
&[data-background-shape="Round"] {
|
|
2104
|
+
border-radius: 50%;
|
|
2105
|
+
}
|
|
2106
|
+
&[data-background-shape="Square"] {
|
|
2107
|
+
border-radius: 0;
|
|
2108
|
+
}
|
|
1942
2109
|
|
|
1943
2110
|
&:disabled {
|
|
1944
2111
|
& svg {
|
|
@@ -1948,27 +2115,30 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
1948
2115
|
}
|
|
1949
2116
|
}
|
|
1950
2117
|
}
|
|
2118
|
+
.left-button {
|
|
2119
|
+
margin-left: 12px;
|
|
2120
|
+
}
|
|
2121
|
+
.right-button {
|
|
2122
|
+
margin-right: 12px;
|
|
2123
|
+
}
|
|
1951
2124
|
.icon {
|
|
1952
2125
|
display: flex;
|
|
1953
2126
|
|
|
1954
2127
|
svg {
|
|
1955
|
-
width: calc(
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
path {
|
|
1971
|
-
stroke: #514949;
|
|
2128
|
+
width: calc(#{prepareMediaVariable(#{$ad-slider-arrows}-aw-se, 20px)} * 0.5);
|
|
2129
|
+
height: calc(#{prepareMediaVariable(#{$ad-slider-arrows}-aw-se, 20px)} * 0.5);
|
|
2130
|
+
|
|
2131
|
+
// Arrow Color. `path { stroke }` alone was too narrow — it matched the
|
|
2132
|
+
// built-in chevrons and nothing else. Cover the svg itself and any
|
|
2133
|
+
// descendant carrying a stroke or a fill, leaving parts explicitly set
|
|
2134
|
+
// to "none" alone so an unfilled shape stays unfilled.
|
|
2135
|
+
&[stroke]:not([stroke="none"]),
|
|
2136
|
+
[stroke]:not([stroke="none"]) {
|
|
2137
|
+
stroke: prepareMediaVariable(#{$ad-slider-arrows}-aw-cr, #514949);
|
|
2138
|
+
}
|
|
2139
|
+
&[fill]:not([fill="none"]),
|
|
2140
|
+
[fill]:not([fill="none"]) {
|
|
2141
|
+
fill: prepareMediaVariable(#{$ad-slider-arrows}-aw-cr, #514949);
|
|
1972
2142
|
}
|
|
1973
2143
|
}
|
|
1974
2144
|
}
|
|
@@ -2205,9 +2375,11 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
2205
2375
|
.ad_sidebar_heading {
|
|
2206
2376
|
white-space: nowrap;
|
|
2207
2377
|
margin: 0;
|
|
2208
|
-
text-transform: uppercase;
|
|
2209
2378
|
line-height: 1.25;
|
|
2210
|
-
|
|
2379
|
+
// `uppercase` is the fallback, not a hardcoded rule, so Text Transform can
|
|
2380
|
+
// override it while untouched elements keep the look they always had.
|
|
2381
|
+
@include ad-font($ad-heading, #002a4e, 16px, 400, uppercase);
|
|
2382
|
+
@include ad-text-overflow;
|
|
2211
2383
|
}
|
|
2212
2384
|
|
|
2213
2385
|
.ad_allocation_tree {
|
|
@@ -2235,7 +2407,7 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
2235
2407
|
width: 24px;
|
|
2236
2408
|
height: 24px;
|
|
2237
2409
|
flex-shrink: 0;
|
|
2238
|
-
color:
|
|
2410
|
+
color: ad-tree-icon-var("dt-se", "in-c1", #002a4e);
|
|
2239
2411
|
}
|
|
2240
2412
|
|
|
2241
2413
|
.ad_chevron {
|
|
@@ -2243,64 +2415,100 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
2243
2415
|
align-items: center;
|
|
2244
2416
|
justify-content: center;
|
|
2245
2417
|
transition: transform 0.15s ease;
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
svg {
|
|
2249
|
-
width: prepareMediaVariable(#{$ad-tree-icon}-in-se, 20px);
|
|
2250
|
-
height: prepareMediaVariable(#{$ad-tree-icon}-in-se, 20px);
|
|
2251
|
-
// Apply the configured colour even when the fetched SVG hardcodes its own
|
|
2252
|
-
// stroke/fill (skip parts explicitly set to "none").
|
|
2253
|
-
&[stroke]:not([stroke="none"]),
|
|
2254
|
-
[stroke]:not([stroke="none"]) {
|
|
2255
|
-
stroke: prepareMediaVariable(#{$ad-tree-icon}-in-c1, #002a4e);
|
|
2256
|
-
}
|
|
2257
|
-
&[fill]:not([fill="none"]),
|
|
2258
|
-
[fill]:not([fill="none"]) {
|
|
2259
|
-
fill: prepareMediaVariable(#{$ad-tree-icon}-in-c1, #002a4e);
|
|
2260
|
-
}
|
|
2261
|
-
}
|
|
2418
|
+
@include ad-tree-icon("dt-se", "in-se", "in-c1");
|
|
2262
2419
|
}
|
|
2263
2420
|
|
|
2264
2421
|
.ad_chevron.is-open {
|
|
2265
2422
|
transform: rotate(90deg);
|
|
2266
2423
|
}
|
|
2267
2424
|
|
|
2425
|
+
// Show / hide of the icon, per interaction state. `aria-expanded` picks which of
|
|
2426
|
+
// the two switches applies: the Collapsed Icon's while the profile is closed,
|
|
2427
|
+
// the Expanded Icon's while it is open.
|
|
2428
|
+
//
|
|
2429
|
+
// Each state emits BOTH outcomes, not just the hidden one — a state that shows
|
|
2430
|
+
// the icon has to be able to bring it back when the state beneath it hid it
|
|
2431
|
+
// (Default off, Hover on). Hover and Selected carry one extra selector each, so
|
|
2432
|
+
// they already outrank Default; Selected is written last so it wins over Hover
|
|
2433
|
+
// on a row that is both.
|
|
2434
|
+
.ad_tree_node[aria-expanded="false"][data-show-icon="false"] .ad_tree_node_icon,
|
|
2435
|
+
.ad_tree_node[aria-expanded="true"][data-show-icon-expanded="false"] .ad_tree_node_icon {
|
|
2436
|
+
display: none;
|
|
2437
|
+
}
|
|
2438
|
+
|
|
2439
|
+
.ad_tree_node[aria-expanded="false"]:hover[data-hover-show-icon="false"] .ad_tree_node_icon,
|
|
2440
|
+
.ad_tree_node[aria-expanded="true"]:hover[data-hover-show-icon-expanded="false"]
|
|
2441
|
+
.ad_tree_node_icon {
|
|
2442
|
+
display: none;
|
|
2443
|
+
}
|
|
2444
|
+
.ad_tree_node[aria-expanded="false"]:hover[data-hover-show-icon="true"] .ad_tree_node_icon,
|
|
2445
|
+
.ad_tree_node[aria-expanded="true"]:hover[data-hover-show-icon-expanded="true"]
|
|
2446
|
+
.ad_tree_node_icon {
|
|
2447
|
+
display: flex;
|
|
2448
|
+
}
|
|
2449
|
+
|
|
2450
|
+
.ad_tree_node[aria-expanded="false"].is-active[data-selected-show-icon="false"]
|
|
2451
|
+
.ad_tree_node_icon,
|
|
2452
|
+
.ad_tree_node[aria-expanded="true"].is-active[data-selected-show-icon-expanded="false"]
|
|
2453
|
+
.ad_tree_node_icon {
|
|
2454
|
+
display: none;
|
|
2455
|
+
}
|
|
2456
|
+
.ad_tree_node[aria-expanded="false"].is-active[data-selected-show-icon="true"]
|
|
2457
|
+
.ad_tree_node_icon,
|
|
2458
|
+
.ad_tree_node[aria-expanded="true"].is-active[data-selected-show-icon-expanded="true"]
|
|
2459
|
+
.ad_tree_node_icon {
|
|
2460
|
+
display: flex;
|
|
2461
|
+
}
|
|
2462
|
+
|
|
2268
2463
|
// The expanded icon has its own size/colour vars so it is independent of the
|
|
2269
2464
|
// collapsed one.
|
|
2270
2465
|
.ad_chevron.is-expanded {
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
svg {
|
|
2274
|
-
width: prepareMediaVariable(#{$ad-tree-icon}-in-se-ed, 20px);
|
|
2275
|
-
height: prepareMediaVariable(#{$ad-tree-icon}-in-se-ed, 20px);
|
|
2276
|
-
&[stroke]:not([stroke="none"]),
|
|
2277
|
-
[stroke]:not([stroke="none"]) {
|
|
2278
|
-
stroke: prepareMediaVariable(#{$ad-tree-icon}-in-cr-ed, #002a4e);
|
|
2279
|
-
}
|
|
2280
|
-
&[fill]:not([fill="none"]),
|
|
2281
|
-
[fill]:not([fill="none"]) {
|
|
2282
|
-
fill: prepareMediaVariable(#{$ad-tree-icon}-in-cr-ed, #002a4e);
|
|
2283
|
-
}
|
|
2284
|
-
}
|
|
2466
|
+
@include ad-tree-icon("dt-se", "in-se-ed", "in-cr-ed");
|
|
2285
2467
|
}
|
|
2286
2468
|
|
|
2287
2469
|
.ad_tree_node_label {
|
|
2288
2470
|
flex: 1;
|
|
2471
|
+
min-width: 0;
|
|
2289
2472
|
@include ad-font(#{$ad-tree}-dt-se, #002a4e, 14px, 600);
|
|
2473
|
+
@include ad-text-overflow;
|
|
2290
2474
|
}
|
|
2291
2475
|
|
|
2292
2476
|
.ad_tree_node:hover {
|
|
2293
2477
|
@include ad-design-state($ad-tree, hr-se);
|
|
2478
|
+
@include ad-layout-state($ad-tree, hr-se, 4px 0, 4px);
|
|
2294
2479
|
}
|
|
2295
2480
|
.ad_tree_node:hover .ad_tree_node_label {
|
|
2296
2481
|
@include ad-font-state($ad-tree, hr-se, #002a4e, 14px, 600);
|
|
2297
2482
|
}
|
|
2483
|
+
// The icon follows the row it sits in. `.is-expanded` is listed after the plain
|
|
2484
|
+
// rule in each block on purpose: it is the more specific selector, so the
|
|
2485
|
+
// expanded icon keeps its own size/colour instead of inheriting the collapsed
|
|
2486
|
+
// one's while the row is hovered or active.
|
|
2487
|
+
.ad_tree_node:hover .ad_tree_node_icon {
|
|
2488
|
+
color: ad-tree-icon-var("hr-se", "in-c1", #002a4e);
|
|
2489
|
+
}
|
|
2490
|
+
.ad_tree_node:hover .ad_chevron {
|
|
2491
|
+
@include ad-tree-icon("hr-se", "in-se", "in-c1");
|
|
2492
|
+
}
|
|
2493
|
+
.ad_tree_node:hover .ad_chevron.is-expanded {
|
|
2494
|
+
@include ad-tree-icon("hr-se", "in-se-ed", "in-cr-ed");
|
|
2495
|
+
}
|
|
2298
2496
|
.ad_tree_node.is-active {
|
|
2299
2497
|
@include ad-design-state($ad-tree, sd-se);
|
|
2498
|
+
@include ad-layout-state($ad-tree, sd-se, 4px 0, 4px);
|
|
2300
2499
|
}
|
|
2301
2500
|
.ad_tree_node.is-active .ad_tree_node_label {
|
|
2302
2501
|
@include ad-font-state($ad-tree, sd-se, #002a4e, 14px, 600);
|
|
2303
2502
|
}
|
|
2503
|
+
.ad_tree_node.is-active .ad_tree_node_icon {
|
|
2504
|
+
color: ad-tree-icon-var("sd-se", "in-c1", #002a4e);
|
|
2505
|
+
}
|
|
2506
|
+
.ad_tree_node.is-active .ad_chevron {
|
|
2507
|
+
@include ad-tree-icon("sd-se", "in-se", "in-c1");
|
|
2508
|
+
}
|
|
2509
|
+
.ad_tree_node.is-active .ad_chevron.is-expanded {
|
|
2510
|
+
@include ad-tree-icon("sd-se", "in-se-ed", "in-cr-ed");
|
|
2511
|
+
}
|
|
2304
2512
|
|
|
2305
2513
|
.ad_subtree {
|
|
2306
2514
|
display: flex;
|
|
@@ -2319,17 +2527,21 @@ $ad-widget: "--_ctm-dn-wt-se"; // design.widgetStyle (divider)
|
|
|
2319
2527
|
|
|
2320
2528
|
.ad_subtree_node_label {
|
|
2321
2529
|
letter-spacing: -0.28px;
|
|
2530
|
+
min-width: 0;
|
|
2322
2531
|
@include ad-font(#{$ad-subtree}-dt-se, #1d1b1c, 14px, 400);
|
|
2532
|
+
@include ad-text-overflow;
|
|
2323
2533
|
}
|
|
2324
2534
|
|
|
2325
2535
|
.ad_subtree_node:hover {
|
|
2326
2536
|
@include ad-design-state($ad-subtree, hr-se);
|
|
2537
|
+
@include ad-layout-state($ad-subtree, hr-se, 4px 0);
|
|
2327
2538
|
}
|
|
2328
2539
|
.ad_subtree_node:hover .ad_subtree_node_label {
|
|
2329
2540
|
@include ad-font-state($ad-subtree, hr-se, #1d1b1c, 14px, 400);
|
|
2330
2541
|
}
|
|
2331
2542
|
.ad_subtree_node.is-active {
|
|
2332
2543
|
@include ad-design-state($ad-subtree, sd-se);
|
|
2544
|
+
@include ad-layout-state($ad-subtree, sd-se, 4px 0);
|
|
2333
2545
|
}
|
|
2334
2546
|
.ad_subtree_node.is-active .ad_subtree_node_label {
|
|
2335
2547
|
@include ad-font-state($ad-subtree, sd-se, #1d1b1c, 14px, 400);
|