@sc-360-v2/storefront-cms-library 0.5.71 → 0.5.73

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 (128) hide show
  1. package/dist/add-existing-form.scss +13 -5
  2. package/dist/add-order.scss +126 -236
  3. package/dist/add-products-tab-details.scss +1048 -2097
  4. package/dist/add-products-tab.scss +666 -1204
  5. package/dist/allocation-header-quota-details.scss +189 -407
  6. package/dist/allocationDetails.scss +1661 -2143
  7. package/dist/allocations-quota-details.scss +159 -323
  8. package/dist/allocations.scss +475 -793
  9. package/dist/amount-estimator.scss +405 -743
  10. package/dist/badge.scss +43 -18
  11. package/dist/brand-basic-elements.scss +76 -124
  12. package/dist/brand.scss +28 -55
  13. package/dist/breadcrumbs.scss +356 -718
  14. package/dist/builder.js +1 -1
  15. package/dist/bulk-variant-picker.scss +1128 -2027
  16. package/dist/bundle.scss +841 -1477
  17. package/dist/bundleCategories.scss +301 -301
  18. package/dist/bundleDetails.scss +3774 -5072
  19. package/dist/button.scss +79 -103
  20. package/dist/buy-for-tab-container.scss +77 -106
  21. package/dist/buyForHeaders.scss +1722 -2976
  22. package/dist/cart-details.scss +481 -1012
  23. package/dist/cart-summary.scss +2234 -2826
  24. package/dist/cart-wrapper.scss +37 -79
  25. package/dist/cart.scss +117 -225
  26. package/dist/cartAttributes.scss +1103 -1422
  27. package/dist/category-groups-element.scss +127 -108
  28. package/dist/category-groups-product-grid.scss +120 -147
  29. package/dist/category-groups-product-image.scss +1162 -1457
  30. package/dist/category-groups-product-options.scss +613 -680
  31. package/dist/category-groups-product-price.scss +1966 -3244
  32. package/dist/category-groups-quota-details.scss +210 -464
  33. package/dist/category.scss +26 -50
  34. package/dist/checkout.scss +24 -16
  35. package/dist/confirm-modal.scss +22 -2
  36. package/dist/container.scss +32 -54
  37. package/dist/countdown.scss +711 -899
  38. package/dist/coupon.scss +1160 -1519
  39. package/dist/default-dropdown.scss +12 -1
  40. package/dist/embroider-template-1-v2.scss +123 -172
  41. package/dist/embroider-template-1.scss +68 -104
  42. package/dist/embroidery.scss +30 -31
  43. package/dist/employee-bulk-order.scss +418 -142
  44. package/dist/faq.scss +228 -408
  45. package/dist/filter-results.scss +125 -265
  46. package/dist/filters.scss +2143 -3040
  47. package/dist/gallery-slider-temp.scss +1458 -1776
  48. package/dist/global-styles.scss +218 -198
  49. package/dist/grid.scss +25 -33
  50. package/dist/hotspot.scss +68 -115
  51. package/dist/image-temp.scss +21 -20
  52. package/dist/item-stock.scss +9 -16
  53. package/dist/kitDetails.scss +2719 -4299
  54. package/dist/kits.scss +24 -19
  55. package/dist/language-selector.scss +211 -361
  56. package/dist/last-x-orders.scss +95 -174
  57. package/dist/layouter-item.scss +75 -103
  58. package/dist/layouter-pro-item.scss +89 -95
  59. package/dist/layouter-pro.scss +87 -92
  60. package/dist/layouter.scss +383 -445
  61. package/dist/light-box-v2.scss +89 -104
  62. package/dist/login.scss +287 -566
  63. package/dist/map.scss +1212 -1359
  64. package/dist/marchandiserSets.scss +95 -104
  65. package/dist/mega-menu-container.scss +96 -109
  66. package/dist/mega-menu.scss +624 -731
  67. package/dist/menu-item.scss +2 -2
  68. package/dist/menu-v2.scss +507 -619
  69. package/dist/multi-select-dropdown.scss +27 -3
  70. package/dist/my-templates.scss +38 -9
  71. package/dist/option-bar.scss +215 -375
  72. package/dist/order-status.scss +1790 -2187
  73. package/dist/overflow-module.scss +6 -7
  74. package/dist/past-orders.scss +118 -149
  75. package/dist/payment-methods.scss +46 -30
  76. package/dist/pickup-locations.scss +558 -1118
  77. package/dist/position-module.scss +20 -17
  78. package/dist/prefix-list.scss +21 -10
  79. package/dist/product-actions.scss +1750 -2055
  80. package/dist/product-basic-elements.scss +108 -169
  81. package/dist/product-highlights.scss +303 -348
  82. package/dist/product-image-allocation.scss +1477 -1477
  83. package/dist/product-image-bundles.scss +337 -642
  84. package/dist/product-inventory.scss +673 -1357
  85. package/dist/product-labels.scss +84 -105
  86. package/dist/product-options.scss +1287 -1444
  87. package/dist/product-price.scss +1283 -2561
  88. package/dist/product-promotions.scss +1388 -2830
  89. package/dist/product-sizechart.scss +516 -905
  90. package/dist/product.scss +28 -61
  91. package/dist/productDetails.scss +19 -39
  92. package/dist/profile.scss +207 -447
  93. package/dist/quantity-selector.scss +837 -1074
  94. package/dist/quick-inventory-check.scss +95 -174
  95. package/dist/quick-links.scss +55 -133
  96. package/dist/quick-order-pad.scss +218 -271
  97. package/dist/quota-details.scss +152 -282
  98. package/dist/quotes.scss +814 -847
  99. package/dist/repeater-embla-controls.scss +35 -15
  100. package/dist/repeater-grid-toggle.scss +156 -166
  101. package/dist/repeater-item.scss +41 -64
  102. package/dist/repeater.scss +671 -814
  103. package/dist/request-for-quotes.scss +66 -16
  104. package/dist/responsive-behaviour.scss +3 -1
  105. package/dist/rfqs.scss +118 -181
  106. package/dist/scroll.scss +93 -172
  107. package/dist/search-results-heading.scss +309 -309
  108. package/dist/search.scss +179 -326
  109. package/dist/section.scss +27 -51
  110. package/dist/shipping-payments.scss +198 -58
  111. package/dist/simple-list.scss +74 -164
  112. package/dist/social.scss +80 -145
  113. package/dist/sort.scss +168 -176
  114. package/dist/stack.scss +23 -34
  115. package/dist/static-global.scss +44 -26
  116. package/dist/stockStatus.scss +11 -19
  117. package/dist/store-locations.scss +577 -1105
  118. package/dist/tab-container.scss +81 -108
  119. package/dist/table-common.scss +217 -408
  120. package/dist/table.scss +271 -502
  121. package/dist/text-temp.scss +8 -7
  122. package/dist/theme-classes.scss +17 -13
  123. package/dist/uom-selector.scss +489 -949
  124. package/dist/user-elements.scss +2588 -2896
  125. package/dist/variant-picker.scss +1281 -2555
  126. package/dist/volume-pricing.scss +541 -1037
  127. package/dist/widget.scss +153 -153
  128. package/package.json +1 -1
@@ -56,136 +56,85 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
56
56
  border-style: prepareMediaVariable(#{$base}-br-se, solid);
57
57
  border-width: prepareMediaVariable(#{$base}-br-wh, 0);
58
58
  border-radius: prepareMediaVariable(#{$base}-br-rs, 4px);
59
- box-shadow: prepareMediaVariable(#{$base}-sw-ae, 0 0) prepareMediaVariable(#{$base}-sw-br, 0)
60
- prepareMediaVariable(#{$base}-sw-sd, 0) prepareMediaVariable(#{$base}-sw-cr, transparent);
59
+ box-shadow: prepareMediaVariable(#{$base}-sw-ae, 0 0) prepareMediaVariable(#{$base}-sw-br, 0) prepareMediaVariable(#{$base}-sw-sd, 0) prepareMediaVariable(#{$base}-sw-cr, transparent);
61
60
  }
62
61
 
63
62
  // Interactive-state typography ($state = "hr-se" | "sd-se"): the state's own
64
63
  // vars fall back to the DEFAULT state (dt-se), then the Figma value — so Figma
65
64
  // only seeds the default state and edits to the default cascade to every state.
66
65
  @mixin cg-font-state($base, $state, $color, $size, $weight: 600) {
67
- color: prepareMediaVariable(
68
- #{$base}-#{$state}-cr,
69
- prepareMediaVariable(#{$base}-dt-se-cr, $color)
70
- );
71
- font-family: prepareMediaVariable(
72
- #{$base}-#{$state}-ft-fy,
73
- prepareMediaVariable(#{$base}-dt-se-ft-fy, ("Inter", sans-serif))
74
- );
75
- text-transform: prepareMediaVariable(
76
- #{$base}-#{$state}-tt-tm,
77
- prepareMediaVariable(#{$base}-dt-se-tt-tm, ("Inter", sans-serif))
78
- );
79
- word-wrap: prepareMediaVariable(
80
- #{$base}-#{$state}-wd-wp,
81
- prepareMediaVariable(#{$base}-dt-se-wd-wp, ("Inter", sans-serif))
82
- );
83
- word-break: prepareMediaVariable(
84
- #{$base}-#{$state}-wd-bk,
85
- prepareMediaVariable(#{$base}-dt-se-wd-bk, ("Inter", sans-serif))
86
- );
87
- font-size: prepareMediaVariable(
88
- #{$base}-#{$state}-ft-se,
89
- prepareMediaVariable(#{$base}-dt-se-ft-se, $size)
90
- );
91
- font-weight: prepareMediaVariable(
92
- #{$base}-#{$state}-ft-wt,
93
- prepareMediaVariable(#{$base}-dt-se-ft-wt, $weight)
94
- );
95
- font-style: prepareMediaVariable(
96
- #{$base}-#{$state}-ft-se-ic,
97
- prepareMediaVariable(#{$base}-dt-se-ft-se-ic)
98
- );
99
- text-align: prepareMediaVariable(
100
- #{$base}-#{$state}-tt-an,
101
- prepareMediaVariable(#{$base}-dt-se-tt-an)
102
- );
103
- letter-spacing: prepareMediaVariable(
104
- #{$base}-#{$state}-lr-sg,
105
- prepareMediaVariable(#{$base}-dt-se-lr-sg)
106
- );
107
- line-height: prepareMediaVariable(
108
- #{$base}-#{$state}-le-ht,
109
- prepareMediaVariable(#{$base}-dt-se-le-ht)
110
- );
111
- text-decoration: prepareMediaVariable(
112
- #{$base}-#{$state}-ue,
113
- prepareMediaVariable(#{$base}-dt-se-ue)
114
- );
66
+ color: prepareMediaVariable(#{$base}-#{$state}-cr,
67
+ prepareMediaVariable(#{$base}-dt-se-cr, $color));
68
+ font-family: prepareMediaVariable(#{$base}-#{$state}-ft-fy,
69
+ prepareMediaVariable(#{$base}-dt-se-ft-fy, ("Inter", sans-serif)));
70
+ text-transform: prepareMediaVariable(#{$base}-#{$state}-tt-tm,
71
+ prepareMediaVariable(#{$base}-dt-se-tt-tm, ("Inter", sans-serif)));
72
+ word-wrap: prepareMediaVariable(#{$base}-#{$state}-wd-wp,
73
+ prepareMediaVariable(#{$base}-dt-se-wd-wp, ("Inter", sans-serif)));
74
+ word-break: prepareMediaVariable(#{$base}-#{$state}-wd-bk,
75
+ prepareMediaVariable(#{$base}-dt-se-wd-bk, ("Inter", sans-serif)));
76
+ font-size: prepareMediaVariable(#{$base}-#{$state}-ft-se,
77
+ prepareMediaVariable(#{$base}-dt-se-ft-se, $size));
78
+ font-weight: prepareMediaVariable(#{$base}-#{$state}-ft-wt,
79
+ prepareMediaVariable(#{$base}-dt-se-ft-wt, $weight));
80
+ font-style: prepareMediaVariable(#{$base}-#{$state}-ft-se-ic,
81
+ prepareMediaVariable(#{$base}-dt-se-ft-se-ic));
82
+ text-align: prepareMediaVariable(#{$base}-#{$state}-tt-an,
83
+ prepareMediaVariable(#{$base}-dt-se-tt-an));
84
+ letter-spacing: prepareMediaVariable(#{$base}-#{$state}-lr-sg,
85
+ prepareMediaVariable(#{$base}-dt-se-lr-sg));
86
+ line-height: prepareMediaVariable(#{$base}-#{$state}-le-ht,
87
+ prepareMediaVariable(#{$base}-dt-se-le-ht));
88
+ text-decoration: prepareMediaVariable(#{$base}-#{$state}-ue,
89
+ prepareMediaVariable(#{$base}-dt-se-ue));
115
90
  }
116
91
 
117
92
  // Interactive-state container design, falling back to the DEFAULT state.
118
93
  @mixin cg-design-state($base, $state) {
119
- background-color: prepareMediaVariable(
120
- #{$base}-#{$state}-bd-cr,
121
- prepareMediaVariable(#{$base}-dt-se-bd-cr, transparent)
122
- );
123
- border-color: prepareMediaVariable(
124
- #{$base}-#{$state}-br-cr,
125
- prepareMediaVariable(#{$base}-dt-se-br-cr, transparent)
126
- );
127
- border-style: prepareMediaVariable(
128
- #{$base}-#{$state}-br-se,
129
- prepareMediaVariable(#{$base}-dt-se-br-se, solid)
130
- );
131
- border-width: prepareMediaVariable(
132
- #{$base}-#{$state}-br-wh,
133
- prepareMediaVariable(#{$base}-dt-se-br-wh, 0)
134
- );
135
- border-radius: prepareMediaVariable(
136
- #{$base}-#{$state}-br-rs,
137
- prepareMediaVariable(#{$base}-dt-se-br-rs, 4px)
138
- );
139
- box-shadow: prepareMediaVariable(
140
- #{$base}-#{$state}-sw-ae,
141
- prepareMediaVariable(#{$base}-dt-se-sw-ae, 0 0)
142
- )
143
- prepareMediaVariable(#{$base}-#{$state}-sw-br, prepareMediaVariable(#{$base}-dt-se-sw-br, 0))
144
- prepareMediaVariable(#{$base}-#{$state}-sw-sd, prepareMediaVariable(#{$base}-dt-se-sw-sd, 0))
145
- prepareMediaVariable(
146
- #{$base}-#{$state}-sw-cr,
147
- prepareMediaVariable(#{$base}-dt-se-sw-cr, transparent)
148
- );
94
+ background-color: prepareMediaVariable(#{$base}-#{$state}-bd-cr,
95
+ prepareMediaVariable(#{$base}-dt-se-bd-cr, transparent));
96
+ border-color: prepareMediaVariable(#{$base}-#{$state}-br-cr,
97
+ prepareMediaVariable(#{$base}-dt-se-br-cr, transparent));
98
+ border-style: prepareMediaVariable(#{$base}-#{$state}-br-se,
99
+ prepareMediaVariable(#{$base}-dt-se-br-se, solid));
100
+ border-width: prepareMediaVariable(#{$base}-#{$state}-br-wh,
101
+ prepareMediaVariable(#{$base}-dt-se-br-wh, 0));
102
+ border-radius: prepareMediaVariable(#{$base}-#{$state}-br-rs,
103
+ prepareMediaVariable(#{$base}-dt-se-br-rs, 4px));
104
+ box-shadow: prepareMediaVariable(#{$base}-#{$state}-sw-ae,
105
+ prepareMediaVariable(#{$base}-dt-se-sw-ae, 0 0)) prepareMediaVariable(#{$base}-#{$state}-sw-br, prepareMediaVariable(#{$base}-dt-se-sw-br, 0)) prepareMediaVariable(#{$base}-#{$state}-sw-sd, prepareMediaVariable(#{$base}-dt-se-sw-sd, 0)) prepareMediaVariable(#{$base}-#{$state}-sw-cr,
106
+ prepareMediaVariable(#{$base}-dt-se-sw-cr, transparent));
149
107
  }
150
108
 
151
109
  [data-div-type="element"] {
152
110
  &[data-element-type="categoryGroups"] {
153
- width: calc(
154
- 1% *
155
- var(
156
- --_ctm-mob-catego-ele-nw-wh-vl,
157
- var(--_ctm-tab-catego-ele-nw-wh-vl, var(--_ctm-catego-ele-nw-wh-vl, auto))
158
- )
159
- );
160
- margin: var(
161
- --_ctm-mob-catego-lt-mn,
162
- var(--_ctm-tab-catego-lt-mn, var(--_ctm-catego-lt-mn, var(--_ctm-lt-mn)))
163
- );
111
+ width: calc(1% * var(--_ctm-mob-catego-ele-nw-wh-vl,
112
+ var(--_ctm-tab-catego-ele-nw-wh-vl, var(--_ctm-catego-ele-nw-wh-vl, auto))));
113
+ margin: var(--_ctm-mob-catego-lt-mn,
114
+ var(--_ctm-tab-catego-lt-mn, var(--_ctm-catego-lt-mn, var(--_ctm-lt-mn))));
164
115
 
165
116
  &[data-view-state="full"] {
166
- & > .wrapper {
117
+ &>.wrapper {
167
118
  grid-template-rows: auto !important;
168
119
  }
169
120
  }
170
- & > div {
121
+
122
+ &>div {
171
123
  &.wrapper {
172
124
  width: 100%;
173
125
  min-height: prepareMediaVariable(--_ctm-catego-lt-mn-ht);
174
- padding: var(
175
- --_ctm-mob-catego-lt-pg,
176
- var(--_ctm-tab-catego-lt-pg, var(--_ctm-catego-lt-pg))
177
- );
126
+ padding: var(--_ctm-mob-catego-lt-pg,
127
+ var(--_ctm-tab-catego-lt-pg, var(--_ctm-catego-lt-pg)));
178
128
 
179
129
  background-color: prepareMediaVariable(#{$cg-widget}-bd-cr, transparent);
180
130
  border-color: prepareMediaVariable(#{$cg-widget}-br-cr, transparent);
181
131
  border-style: prepareMediaVariable(#{$cg-widget}-br-se, solid);
182
132
  border-width: prepareMediaVariable(#{$cg-widget}-br-wh, 0);
183
133
  border-radius: prepareMediaVariable(#{$cg-widget}-br-rs, 0);
184
- box-shadow: prepareMediaVariable(#{$cg-widget}-sw-ae, 0 0)
185
- prepareMediaVariable(#{$cg-widget}-sw-br, 0) prepareMediaVariable(#{$cg-widget}-sw-sd, 0)
186
- prepareMediaVariable(#{$cg-widget}-sw-cr, transparent);
134
+ box-shadow: prepareMediaVariable(#{$cg-widget}-sw-ae, 0 0) prepareMediaVariable(#{$cg-widget}-sw-br, 0) prepareMediaVariable(#{$cg-widget}-sw-sd, 0) prepareMediaVariable(#{$cg-widget}-sw-cr, transparent);
187
135
  }
188
136
  }
137
+
189
138
  // The modal-tree wrapper re-applies the element data-attrs (so the scoped
190
139
  // tree styles reach it through the portal), which makes it also match the
191
140
  // element-level box rules (margin/width). Target it on the SAME element
@@ -195,6 +144,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
195
144
  margin: 0;
196
145
  padding: 4px;
197
146
  }
147
+
198
148
  // -------------------------------------------------------------------
199
149
  // Fixed two-column layout. Figma tokens are the prepareMediaVariable
200
150
  // fallbacks so the design renders correctly before any panel edits.
@@ -217,6 +167,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
217
167
  width: 100%;
218
168
  }
219
169
  }
170
+
220
171
  .cg_mobile_category_select {
221
172
  display: flex;
222
173
  flex-direction: row;
@@ -226,6 +177,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
226
177
  width: 100%;
227
178
  cursor: pointer;
228
179
  }
180
+
229
181
  // Mobile Select-category button (rendered by the shared ButtonComponent as
230
182
  // `.btn__with__text`). Styled from the `selectButton` design block — which
231
183
  // uses the standard button property suffixes — via the cg-design / cg-font
@@ -244,6 +196,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
244
196
  &[data-icon-position="right"] {
245
197
  --_sf-fd-bn: row-reverse;
246
198
  }
199
+
247
200
  &[data-icon-position="left"],
248
201
  &[data-icon-position="center"] {
249
202
  --_sf-fd-bn: row;
@@ -261,32 +214,39 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
261
214
  .icon {
262
215
  display: flex;
263
216
  flex-shrink: 0;
217
+
264
218
  svg {
265
219
  width: prepareMediaVariable(#{$cg-select-btn}-dt-se-in-se, 16px);
266
220
  height: prepareMediaVariable(#{$cg-select-btn}-dt-se-in-se, 16px);
221
+
267
222
  path {
268
223
  stroke: prepareMediaVariable(#{$cg-select-btn}-dt-se-in-c1, currentColor);
269
224
  }
270
225
  }
271
226
  }
227
+
272
228
  .icon--hover {
273
229
  display: none;
274
230
  }
275
231
 
276
232
  &:hover {
277
233
  @include cg-design-state($cg-select-btn, hr-se);
234
+
278
235
  .txt {
279
236
  @include cg-font-state($cg-select-btn, hr-se, #002a4e, 14px, 400);
280
237
  }
238
+
281
239
  .icon--hover {
282
240
  display: flex;
283
241
  }
284
242
  }
243
+
285
244
  // Swap to the hover icon only when one is configured.
286
245
  &:hover:has(.icon--hover) .icon--default {
287
246
  display: none;
288
247
  }
289
248
  }
249
+
290
250
  // Tree rendered inside the (portaled) category modal.
291
251
 
292
252
  // ---- Left sidebar -------------------------------------------------
@@ -303,9 +263,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
303
263
  border-style: prepareMediaVariable(#{$cg-sidebar}-br-se, solid);
304
264
  border-width: prepareMediaVariable(#{$cg-sidebar}-br-wh, 0);
305
265
  border-radius: prepareMediaVariable(#{$cg-sidebar}-br-rs, 0);
306
- box-shadow: prepareMediaVariable(#{$cg-sidebar}-sw-ae, 0 0)
307
- prepareMediaVariable(#{$cg-sidebar}-sw-br, 0) prepareMediaVariable(#{$cg-sidebar}-sw-sd, 0)
308
- prepareMediaVariable(#{$cg-sidebar}-sw-cr, transparent);
266
+ box-shadow: prepareMediaVariable(#{$cg-sidebar}-sw-ae, 0 0) prepareMediaVariable(#{$cg-sidebar}-sw-br, 0) prepareMediaVariable(#{$cg-sidebar}-sw-sd, 0) prepareMediaVariable(#{$cg-sidebar}-sw-cr, transparent);
309
267
  }
310
268
 
311
269
  .cg_sidebar_heading {
@@ -315,12 +273,14 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
315
273
  line-height: 1.25;
316
274
  @include cg-font($cg-cat-heading, #002a4e, 16px, 400);
317
275
  }
276
+
318
277
  .cg_all_products_heading {
319
278
  margin: 0;
320
279
  text-transform: uppercase;
321
280
  line-height: 1.25;
322
281
  @include cg-font($cg-allprod-heading, #002a4e, 24px, 400);
323
282
  }
283
+
324
284
  .cg_subcategory_title {
325
285
  margin: 0;
326
286
  font-family: "Inter", sans-serif;
@@ -338,7 +298,9 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
338
298
  height: prepareMediaVariable(#{$cg-widget}-dr-wh, 1px);
339
299
  background: prepareMediaVariable(#{$cg-widget}-dr-cr, #e5e7eb);
340
300
  }
301
+
341
302
  &[data-show-dividers="false"] {
303
+
342
304
  .cg_sidebar_divider,
343
305
  .cg_main_divider,
344
306
  .cg_subcategory_divider {
@@ -364,6 +326,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
364
326
  cursor: pointer;
365
327
  @include cg-design(#{$cg-tree}-dt-se);
366
328
  }
329
+
367
330
  .cg_tree_node_icon {
368
331
  display: flex;
369
332
  align-items: center;
@@ -374,60 +337,74 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
374
337
  // Configurable expand/collapse icon colour (inherited by the SVG below).
375
338
  color: prepareMediaVariable(#{$cg-tree-icon}-in-c1, #002a4e);
376
339
  }
340
+
377
341
  .cg_chevron {
378
342
  display: flex;
379
343
  align-items: center;
380
344
  justify-content: center;
381
345
  transition: transform 0.15s ease;
382
346
  color: prepareMediaVariable(#{$cg-tree-icon}-in-c1, #002a4e);
347
+
383
348
  svg {
384
349
  width: prepareMediaVariable(#{$cg-tree-icon}-in-se, 20px);
385
350
  height: prepareMediaVariable(#{$cg-tree-icon}-in-se, 20px);
351
+
386
352
  // Apply the configured colour even when the fetched SVG hardcodes its
387
353
  // own stroke/fill (skip parts explicitly set to "none").
388
354
  &[stroke]:not([stroke="none"]),
389
355
  [stroke]:not([stroke="none"]) {
390
356
  stroke: prepareMediaVariable(#{$cg-tree-icon}-in-c1, #002a4e);
391
357
  }
358
+
392
359
  &[fill]:not([fill="none"]),
393
360
  [fill]:not([fill="none"]) {
394
361
  fill: prepareMediaVariable(#{$cg-tree-icon}-in-c1, #002a4e);
395
362
  }
396
363
  }
397
364
  }
365
+
398
366
  .cg_chevron.is-open {
399
367
  transform: rotate(90deg);
400
368
  }
369
+
401
370
  // Expanded icon uses its own size/colour vars (iconSizeExpanded /
402
371
  // iconColorExpanded) so it is independent of the collapsed icon.
403
372
  .cg_chevron.is-expanded {
404
373
  color: prepareMediaVariable(#{$cg-tree-icon}-in-cr-ed, #002a4e);
374
+
405
375
  svg {
406
376
  width: prepareMediaVariable(#{$cg-tree-icon}-in-se-ed, 20px);
407
377
  height: prepareMediaVariable(#{$cg-tree-icon}-in-se-ed, 20px);
378
+
408
379
  &[stroke]:not([stroke="none"]),
409
380
  [stroke]:not([stroke="none"]) {
410
381
  stroke: prepareMediaVariable(#{$cg-tree-icon}-in-cr-ed, #002a4e);
411
382
  }
383
+
412
384
  &[fill]:not([fill="none"]),
413
385
  [fill]:not([fill="none"]) {
414
386
  fill: prepareMediaVariable(#{$cg-tree-icon}-in-cr-ed, #002a4e);
415
387
  }
416
388
  }
417
389
  }
390
+
418
391
  .cg_tree_node_label {
419
392
  flex: 1;
420
393
  @include cg-font(#{$cg-tree}-dt-se, #002a4e, 14px, 600);
421
394
  }
395
+
422
396
  .cg_tree_node:hover {
423
397
  @include cg-design-state($cg-tree, hr-se);
424
398
  }
399
+
425
400
  .cg_tree_node:hover .cg_tree_node_label {
426
401
  @include cg-font-state($cg-tree, hr-se, #002a4e, 14px, 600);
427
402
  }
403
+
428
404
  .cg_tree_node.is-active {
429
405
  @include cg-design-state($cg-tree, sd-se);
430
406
  }
407
+
431
408
  .cg_tree_node.is-active .cg_tree_node_label {
432
409
  @include cg-font-state($cg-tree, sd-se, #002a4e, 14px, 600);
433
410
  }
@@ -440,25 +417,31 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
440
417
  padding-left: 31px;
441
418
  width: 100%;
442
419
  }
420
+
443
421
  .cg_subtree_node {
444
422
  // Sub Category Tree Item → Layout padding.
445
423
  padding: prepareMediaVariable(#{$cg-subtree}-dt-se-pg, 4px 0);
446
424
  cursor: pointer;
447
425
  @include cg-design(#{$cg-subtree}-dt-se);
448
426
  }
427
+
449
428
  .cg_subtree_node_label {
450
429
  letter-spacing: -0.28px;
451
430
  @include cg-font(#{$cg-subtree}-dt-se, #1d1b1c, 14px, 400);
452
431
  }
432
+
453
433
  .cg_subtree_node:hover {
454
434
  @include cg-design-state($cg-subtree, hr-se);
455
435
  }
436
+
456
437
  .cg_subtree_node:hover .cg_subtree_node_label {
457
438
  @include cg-font-state($cg-subtree, hr-se, #1d1b1c, 14px, 400);
458
439
  }
440
+
459
441
  .cg_subtree_node.is-active {
460
442
  @include cg-design-state($cg-subtree, sd-se);
461
443
  }
444
+
462
445
  .cg_subtree_node.is-active .cg_subtree_node_label {
463
446
  @include cg-font-state($cg-subtree, sd-se, #1d1b1c, 14px, 400);
464
447
  }
@@ -481,6 +464,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
481
464
  // separatorIcon. Selected state = the current (last) crumb.
482
465
  .cg_breadcrumb {
483
466
  width: 100%;
467
+
484
468
  .horizontal_breadcrumb_wrapper {
485
469
  display: inline-flex;
486
470
  align-items: center;
@@ -489,6 +473,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
489
473
  overflow-x: auto;
490
474
  gap: 6px;
491
475
  }
476
+
492
477
  .breadcrumb_item {
493
478
  padding: 0 4px;
494
479
  display: flex;
@@ -497,18 +482,22 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
497
482
  white-space: nowrap;
498
483
  @include cg-design(#{$cg-bc-item}-dt-se);
499
484
  @include cg-font(#{$cg-bc-item}-dt-se, #4b4546, 14px, 400);
485
+
500
486
  &[data-show-cursor="true"] {
501
487
  cursor: pointer;
502
488
  }
489
+
503
490
  &[data-show-cursor="true"]:hover {
504
491
  @include cg-design-state($cg-bc-item, hr-se);
505
492
  @include cg-font-state($cg-bc-item, hr-se, #4b4546, 14px, 400);
506
493
  }
494
+
507
495
  &:last-of-type {
508
496
  @include cg-design-state($cg-bc-item, sd-se);
509
497
  @include cg-font-state($cg-bc-item, sd-se, #1d1b1c, 14px, 600);
510
498
  }
511
499
  }
500
+
512
501
  // Collapse ("…") button shown when the trail is too deep.
513
502
  .collapse_btn {
514
503
  display: flex;
@@ -520,11 +509,14 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
520
509
  line-height: 1;
521
510
  @include cg-font(#{$cg-bc-item}-dt-se, #4b4546, 16px, 600);
522
511
  }
512
+
523
513
  .separator .icon {
524
514
  display: flex;
515
+
525
516
  svg {
526
517
  width: prepareMediaVariable(#{$cg-bc-sep}-in-se, 16px);
527
518
  height: prepareMediaVariable(#{$cg-bc-sep}-in-se, 16px);
519
+
528
520
  path {
529
521
  stroke: prepareMediaVariable(#{$cg-bc-sep}-in-c1, #8a8a8a);
530
522
  }
@@ -542,6 +534,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
542
534
  gap: prepareMediaVariable(#{$cg-main}-im-gp, 12px);
543
535
  width: 100%;
544
536
  }
537
+
545
538
  // The horizontal chip row: left arrow + scrolling rail + right arrow.
546
539
  .cg_subcategory_row {
547
540
  display: flex;
@@ -549,6 +542,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
549
542
  gap: 12px;
550
543
  width: 100%;
551
544
  }
545
+
552
546
  .cg_subcategory_divider {
553
547
  width: 100%;
554
548
  // Widget Style → Divider (colour + thickness), same as the other dividers.
@@ -556,6 +550,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
556
550
  background: prepareMediaVariable(#{$cg-widget}-dr-cr, #cbd5e1);
557
551
  flex-shrink: 0;
558
552
  }
553
+
559
554
  .cg_scroller_arrow {
560
555
  display: flex;
561
556
  align-items: center;
@@ -567,18 +562,19 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
567
562
  @include cg-design(#{$cg-arrow}-dt-se);
568
563
  // Icon colour (in-c1) drives the SVG `currentColor` stroke.
569
564
  color: prepareMediaVariable(#{$cg-arrow}-dt-se-in-c1, #002a4e);
565
+
570
566
  svg {
571
567
  width: prepareMediaVariable(#{$cg-arrow}-dt-se-in-se, 20px);
572
568
  height: prepareMediaVariable(#{$cg-arrow}-dt-se-in-se, 20px);
573
569
  }
570
+
574
571
  &:hover {
575
572
  @include cg-design-state($cg-arrow, hr-se);
576
- color: prepareMediaVariable(
577
- #{$cg-arrow}-hr-se-in-c1,
578
- prepareMediaVariable(#{$cg-arrow}-dt-se-in-c1, #002a4e)
579
- );
573
+ color: prepareMediaVariable(#{$cg-arrow}-hr-se-in-c1,
574
+ prepareMediaVariable(#{$cg-arrow}-dt-se-in-c1, #002a4e));
580
575
  }
581
576
  }
577
+
582
578
  .cg_chip_rail {
583
579
  display: flex;
584
580
  align-items: center;
@@ -587,10 +583,12 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
587
583
  min-width: 0;
588
584
  overflow-x: auto;
589
585
  scrollbar-width: none;
586
+
590
587
  &::-webkit-scrollbar {
591
588
  display: none;
592
589
  }
593
590
  }
591
+
594
592
  .cg_chip {
595
593
  display: flex;
596
594
  align-items: center;
@@ -601,6 +599,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
601
599
  padding: 0;
602
600
  @include cg-design(#{$cg-chip}-dt-se);
603
601
  }
602
+
604
603
  .cg_chip_icon {
605
604
  display: flex;
606
605
  align-items: center;
@@ -613,34 +612,42 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
613
612
  color: #002a4e;
614
613
  // Sub Category Image design controls (fill / border / radius / shadow).
615
614
  @include cg-design($cg-chip-image);
615
+
616
616
  img {
617
617
  width: 100%;
618
618
  height: 100%;
619
619
  object-fit: cover;
620
620
  transition: transform 0.3s ease-in-out;
621
621
  }
622
+
622
623
  // Image Settings -> On Hover (zoom).
623
624
  &[data-on-hover="Zoom In"]:hover img {
624
625
  transform: scale(1.08);
625
626
  }
627
+
626
628
  &[data-on-hover="Zoom Out"]:hover img {
627
629
  transform: scale(0.92);
628
630
  }
629
631
  }
632
+
630
633
  .cg_chip_label {
631
634
  padding: 4px 12px;
632
635
  white-space: nowrap;
633
636
  @include cg-font(#{$cg-chip}-dt-se, #002a4e, 14px, 400);
634
637
  }
638
+
635
639
  .cg_chip:hover {
636
640
  @include cg-design-state($cg-chip, hr-se);
637
641
  }
642
+
638
643
  .cg_chip:hover .cg_chip_label {
639
644
  @include cg-font-state($cg-chip, hr-se, #002a4e, 14px, 400);
640
645
  }
646
+
641
647
  .cg_chip.is-active {
642
648
  @include cg-design-state($cg-chip, sd-se);
643
649
  }
650
+
644
651
  .cg_chip.is-active .cg_chip_label {
645
652
  @include cg-font-state($cg-chip, sd-se, #002a4e, 14px, 400);
646
653
  }
@@ -655,8 +662,10 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
655
662
  // Grid container fill / border / radius / shadow.
656
663
  @include cg-design(#{$cg-grid}-lt);
657
664
  }
665
+
658
666
  // Display styles (Grid / Cards / Slider) for the product grid.
659
667
  @import "./category-groups-product-grid.scss";
668
+
660
669
  .cg_product_card {
661
670
  display: flex;
662
671
  flex-direction: column;
@@ -666,9 +675,11 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
666
675
  min-width: 0;
667
676
  @include cg-design(#{$cg-card}-dt-se);
668
677
  }
678
+
669
679
  .cg_product_card:hover {
670
680
  @include cg-design-state($cg-card, hr-se);
671
681
  }
682
+
672
683
  .cg_product_image_wrapper {
673
684
  position: relative;
674
685
  width: 100%;
@@ -678,6 +689,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
678
689
  // rebound to the Category Groups productImage CSS-variable paths.
679
690
  @import "./category-groups-product-image.scss";
680
691
  }
692
+
681
693
  // Fallback image (rendered only when the Product Image setting is absent).
682
694
  .cg_product_image {
683
695
  display: block;
@@ -685,29 +697,35 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
685
697
  height: 400px;
686
698
  object-fit: cover;
687
699
  }
700
+
688
701
  .cg_product_info {
689
702
  display: flex;
690
703
  flex-direction: column;
691
704
  // Product Card → content gap (between brand / name / price / options).
692
705
  gap: prepareMediaVariable(#{$cg-card}-dt-se-ct-gp, 12px);
693
706
  }
707
+
694
708
  .cg_brand_name {
695
709
  margin: 0;
696
710
  @include cg-font($cg-brand, #737373, 14px, 400);
711
+
697
712
  // Text overflow toggle + max lines (Brand Name design controls).
698
713
  &.flex__overflow {
699
714
  @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
700
715
  }
701
716
  }
717
+
702
718
  .cg_product_name {
703
719
  margin: 0;
704
720
  letter-spacing: -0.32px;
705
721
  @include cg-font($cg-name, #0a3355, 16px, 600);
722
+
706
723
  // Text overflow toggle + max lines (Product Name design controls).
707
724
  &.flex__overflow {
708
725
  @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
709
726
  }
710
727
  }
728
+
711
729
  .cg_product_price {
712
730
  margin: 0;
713
731
  display: flex;
@@ -715,6 +733,7 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
715
733
  gap: 6px;
716
734
  @include cg-font($cg-price, #000, 16px, 800);
717
735
  }
736
+
718
737
  .cg_variants_text {
719
738
  margin: 0;
720
739
  @include cg-font($cg-variants, #737373, 14px, 400);
@@ -736,4 +755,4 @@ $cg-select-btn: "--_ctm-catego-dn-st-bn"; // selectButton (mobile category selec
736
755
  justify-content: center;
737
756
  }
738
757
  }
739
- }
758
+ }