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

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 (135) hide show
  1. package/dist/add-existing-form.scss +5 -13
  2. package/dist/add-order.scss +236 -126
  3. package/dist/add-products-tab-details.scss +2097 -1048
  4. package/dist/add-products-tab.scss +1204 -666
  5. package/dist/allocation-header-quota-details.scss +407 -189
  6. package/dist/allocationDetails.scss +2143 -1661
  7. package/dist/allocations-quota-details.scss +323 -159
  8. package/dist/allocations.scss +793 -475
  9. package/dist/amount-estimator.scss +743 -405
  10. package/dist/badge.scss +18 -43
  11. package/dist/brand-basic-elements.scss +124 -76
  12. package/dist/brand.scss +55 -28
  13. package/dist/breadcrumbs.scss +718 -356
  14. package/dist/builder.js +1 -1
  15. package/dist/builderLite.js +1 -1
  16. package/dist/bulk-variant-picker.scss +2027 -1128
  17. package/dist/bundle.scss +1477 -841
  18. package/dist/bundleDetails.scss +5072 -3774
  19. package/dist/button.scss +103 -79
  20. package/dist/buy-for-tab-container.scss +106 -77
  21. package/dist/buyForHeaders.scss +2976 -1722
  22. package/dist/cart-details.scss +1012 -481
  23. package/dist/cart-summary.scss +1149 -557
  24. package/dist/cart-wrapper.scss +79 -37
  25. package/dist/cart.scss +225 -117
  26. package/dist/cartAttributes.scss +735 -416
  27. package/dist/category-groups-element.scss +108 -127
  28. package/dist/category-groups-product-grid.scss +147 -120
  29. package/dist/category-groups-product-image.scss +1457 -1162
  30. package/dist/category-groups-product-options.scss +680 -613
  31. package/dist/category-groups-product-price.scss +3244 -1966
  32. package/dist/category-groups-quota-details.scss +464 -210
  33. package/dist/category.scss +50 -26
  34. package/dist/checkout.scss +16 -24
  35. package/dist/confirm-modal.scss +2 -22
  36. package/dist/container.scss +54 -32
  37. package/dist/countdown.scss +443 -255
  38. package/dist/coupon.scss +710 -351
  39. package/dist/default-dropdown.scss +1 -12
  40. package/dist/embroider-template-1-v2.scss +172 -123
  41. package/dist/embroider-template-1.scss +104 -68
  42. package/dist/embroidery.scss +31 -30
  43. package/dist/employee-bulk-order.scss +142 -418
  44. package/dist/faq.scss +408 -228
  45. package/dist/filter-results.scss +265 -125
  46. package/dist/filters.scss +1797 -900
  47. package/dist/gallery-slider-temp.scss +750 -432
  48. package/dist/global-styles.scss +7 -23
  49. package/dist/grid.scss +33 -25
  50. package/dist/hotspot.scss +115 -68
  51. package/dist/image-temp.scss +20 -21
  52. package/dist/item-stock.scss +16 -9
  53. package/dist/kitDetails.scss +4301 -2721
  54. package/dist/kits.scss +19 -24
  55. package/dist/language-selector.scss +361 -211
  56. package/dist/last-x-orders.scss +174 -95
  57. package/dist/layouter-item.scss +103 -75
  58. package/dist/layouter-pro-item.scss +95 -89
  59. package/dist/layouter-pro.scss +92 -87
  60. package/dist/layouter.scss +445 -383
  61. package/dist/light-box-v2.scss +104 -89
  62. package/dist/login.scss +566 -287
  63. package/dist/map.scss +368 -221
  64. package/dist/marchandiserSets.scss +104 -95
  65. package/dist/mega-menu-container.scss +109 -96
  66. package/dist/mega-menu.scss +731 -624
  67. package/dist/menu-item.scss +2 -2
  68. package/dist/menu-v2.scss +619 -507
  69. package/dist/multi-select-dropdown.scss +3 -27
  70. package/dist/my-templates.scss +9 -38
  71. package/dist/option-bar.scss +375 -215
  72. package/dist/option-families.scss +252 -0
  73. package/dist/order-status.scss +1117 -646
  74. package/dist/overflow-module.scss +7 -6
  75. package/dist/past-orders.scss +149 -118
  76. package/dist/payment-methods.scss +30 -46
  77. package/dist/pickup-locations.scss +1118 -558
  78. package/dist/position-module.scss +17 -20
  79. package/dist/prefix-list.scss +10 -21
  80. package/dist/product-actions.scss +2316 -1610
  81. package/dist/product-basic-elements.scss +169 -108
  82. package/dist/product-highlights.scss +152 -107
  83. package/dist/product-image-bundles.scss +642 -337
  84. package/dist/product-inventory.scss +1357 -673
  85. package/dist/product-labels.scss +105 -84
  86. package/dist/product-options.scss +1274 -1117
  87. package/dist/product-price.scss +2561 -1283
  88. package/dist/product-promotions.scss +2830 -1388
  89. package/dist/product-sizechart.scss +905 -516
  90. package/dist/product.scss +61 -28
  91. package/dist/productDetails.scss +39 -19
  92. package/dist/profile.scss +447 -207
  93. package/dist/quantity-selector.scss +550 -313
  94. package/dist/quick-inventory-check.scss +174 -95
  95. package/dist/quick-links.scss +133 -55
  96. package/dist/quick-order-pad.scss +271 -218
  97. package/dist/quota-details.scss +282 -152
  98. package/dist/quotes.scss +122 -89
  99. package/dist/repeater-embla-controls.scss +15 -35
  100. package/dist/repeater-grid-toggle.scss +166 -156
  101. package/dist/repeater-item.scss +64 -41
  102. package/dist/repeater.scss +814 -671
  103. package/dist/request-for-quotes.scss +16 -66
  104. package/dist/responsive-behaviour.scss +1 -3
  105. package/dist/rfqs.scss +181 -118
  106. package/dist/scroll.scss +172 -93
  107. package/dist/search.scss +326 -179
  108. package/dist/section.scss +51 -27
  109. package/dist/shipping-payments.scss +58 -198
  110. package/dist/simple-list.scss +164 -74
  111. package/dist/social.scss +145 -80
  112. package/dist/sort.scss +19 -11
  113. package/dist/stack.scss +34 -23
  114. package/dist/static-global.scss +26 -44
  115. package/dist/stockStatus.scss +19 -11
  116. package/dist/store-locations.scss +1105 -577
  117. package/dist/tab-container.scss +108 -81
  118. package/dist/table-common.scss +408 -217
  119. package/dist/table.scss +502 -271
  120. package/dist/text-temp.scss +7 -8
  121. package/dist/theme-classes.scss +13 -17
  122. package/dist/types/builder/enums/data-connectors.d.ts +3 -1
  123. package/dist/types/builder/enums/index.d.ts +3 -1
  124. package/dist/types/builder/tools/element-edit/index.d.ts +2 -1
  125. package/dist/types/builder/tools/element-edit/optionFamilies.d.ts +20 -0
  126. package/dist/types/website/constants/data-connector-souces.d.ts +40 -8
  127. package/dist/types/website/constants/data-connectors.d.ts +12 -1
  128. package/dist/types/website/helper/ssr-functions.d.ts +8 -0
  129. package/dist/uom-selector.scss +949 -489
  130. package/dist/user-elements.scss +837 -529
  131. package/dist/variant-picker.scss +2555 -1281
  132. package/dist/volume-pricing.scss +1037 -541
  133. package/dist/website.js +1 -1
  134. package/dist/widget.scss +1 -0
  135. package/package.json +1 -1
@@ -3,26 +3,22 @@
3
3
  @use "./functions.scss" as *;
4
4
 
5
5
  @mixin CMSRepeaterEmblaControlStyles($type: 1) {
6
- @if ($type ==1) {
7
-
6
+ @if ($type == 1) {
8
7
  &:is(body[data-iframe-body="true"] *),
9
8
  &:hover {
10
9
  --_sf-nv-ic-vt: visible;
11
10
  --_sf-nv-ic-op: 1;
12
11
  }
13
12
  }
14
-
15
13
  @include emblaBtnStylesV1($type);
16
14
  @include emblaDotsStylesV1($type);
17
15
 
18
- @if ($type ==2 or $type ==3) {
19
-
16
+ @if ($type == 2 or $type == 3) {
20
17
  &:is(body[data-iframe-body="true"] *),
21
18
  &:hover {
22
19
  --_sf-pg-ic-vt: visible;
23
20
  --_sf-pg-ic-op: 1;
24
21
  }
25
-
26
22
  .repeater__control__element {
27
23
  position: absolute;
28
24
  bottom: var(--_sf-t3-bt-bl-v2, 20px);
@@ -30,14 +26,11 @@
30
26
  transform: var(--_sf-t3-tr-bl-v2, translateX(-50%));
31
27
  // z-index: calc(var(--_higher-zIndex, 99999) - 2);
32
28
  z-index: 2;
33
-
34
- @if ($type !=3) {
29
+ @if ($type != 3) {
35
30
  visibility: var(--_sf-pg-ic-vt, hidden);
36
31
  opacity: var(--_sf-pg-ic-op, 0);
37
32
  transition: all 0.45s ease;
38
- }
39
-
40
- @else {
33
+ } @else {
41
34
  // min-height: var(
42
35
  // --_ctm-mob-rep-lt-aw-in-se,
43
36
  // var(--_ctm-tab-rep-lt-aw-in-se, var(--_ctm-rep-lt-aw-in-se, 40px))
@@ -60,11 +53,10 @@
60
53
  }
61
54
 
62
55
  @mixin emblaBtnStylesV1($type: 1) {
63
-
64
56
  // Navigation
65
57
  button {
66
58
  &.embla__btn {
67
- @if ($type ==1) {
59
+ @if ($type == 1) {
68
60
  position: absolute;
69
61
  // z-index: calc(var(--_higher-zIndex, 99999) - 2);
70
62
  z-index: 2;
@@ -73,16 +65,13 @@
73
65
  visibility: var(--_sf-nv-ic-vt, hidden);
74
66
  opacity: var(--_sf-nv-ic-op, 0);
75
67
  transition: all 0.45s ease;
76
-
77
68
  &.embla__prev {
78
69
  left: var(--_sf-nv-lt-vl, 10px);
79
70
  }
80
-
81
71
  &.embla__next {
82
72
  right: var(--_sf-nv-lt-vl, 10px);
83
73
  }
84
74
  }
85
-
86
75
  // --_sf-ic-sz-nn: var(
87
76
  // --_ctm-mob-rep-lt-aw-in-se,
88
77
  // var(--_ctm-tab-rep-lt-aw-in-se, var(--_ctm-rep-lt-aw-in-se, 40px))
@@ -92,14 +81,12 @@
92
81
  height: var(--_sf-ic-sz-nn);
93
82
  border-radius: var(--_sf-nv-ic-br, 50%);
94
83
 
95
- @if ($type ==3) {
84
+ @if ($type == 3) {
96
85
  --_sf-dd-vl-bg-t3: transparent;
97
-
98
86
  &:is(body[data-iframe-body="true"] *) {
99
87
  pointer-events: none !important;
100
88
  }
101
89
  }
102
-
103
90
  background: var(--_sf-nv-ic-bg, var(--_sf-dd-vl-bg-t3, #fff));
104
91
 
105
92
  &:hover:not(:disabled) {
@@ -112,7 +99,6 @@
112
99
  }
113
100
  }
114
101
  }
115
-
116
102
  &:disabled {
117
103
  opacity: 0.45;
118
104
  cursor: auto;
@@ -121,8 +107,8 @@
121
107
  // Custom (Sirv-hosted) arrow icons are fetched at runtime and land inside a
122
108
  // `.icon` span instead of directly on the button, so they need the same sizing
123
109
  // and stroke as the inlined built-in chevrons.
124
- &>svg,
125
- &>.icon>svg {
110
+ & > svg,
111
+ & > .icon > svg {
126
112
  width: calc(var(--_sf-ic-sz-nn) * 0.5);
127
113
  height: calc(var(--_sf-ic-sz-nn) * 0.5);
128
114
  display: flex;
@@ -135,7 +121,6 @@
135
121
  stroke: var(--_sf-sl-ct-aw-in-cl, #667085);
136
122
  }
137
123
  }
138
-
139
124
  display: flex;
140
125
  justify-content: center;
141
126
  align-items: center;
@@ -145,7 +130,7 @@
145
130
 
146
131
  @mixin emblaDotsStylesV1($type: 1) {
147
132
  :is(.pagination__v1) {
148
- @if ($type ==1) {
133
+ @if ($type == 1) {
149
134
  position: absolute;
150
135
  // z-index: calc(var(--_higher-zIndex, 99999) - 2);
151
136
  z-index: 2;
@@ -154,7 +139,7 @@
154
139
  bottom: var(--_sf-nv-tp-vl, 10px);
155
140
  }
156
141
 
157
- @if ($type ==3) {
142
+ @if ($type == 3) {
158
143
  --_sf-dt-wh-t3: 16px;
159
144
  --_sf-dt-ht-t3: 2px;
160
145
  // --_sf-dt-br-t3: 100px;
@@ -171,14 +156,13 @@
171
156
  gap: var(--_sf-dt-gp-vl, 8px);
172
157
  max-width: 200px;
173
158
 
174
- &>button {
159
+ & > button {
175
160
  &.embla__dot {
176
-
177
161
  // --_sf-ed-vl-sz: var(
178
162
  // --_ctm-mob-rep-lt-dt-se,
179
163
  // var(--_ctm-tab-rep-lt-dt-se, var(--_ctm-rep-lt-dt-se, 10px))
180
164
  // );
181
- @if ($type !=3) {
165
+ @if ($type != 3) {
182
166
  transition: all 0.45s ease;
183
167
  width: var(--_sf-nv-pg-sz-ac, var(--_sf-ed-vl-sz, 10px));
184
168
  height: var(--_sf-ed-vl-sz, 10px);
@@ -191,9 +175,7 @@
191
175
  &:not(.embla__dot--selected) {
192
176
  border: 1px solid color-mix(in srgb, var(--_sf-sl-ct-ic-dt-at-cl) 30%, transparent);
193
177
  }
194
- }
195
-
196
- @else if($type ==3) {
178
+ } @else if($type == 3) {
197
179
  width: var(--_sf-dt-at-wh-t3, var(--_sf-dt-wh-t3, 10px));
198
180
  height: var(--_sf-dt-at-ht-t3, var(--_sf-dt-ht-t3, 10px));
199
181
  border-radius: var(--_sf-dt-at-br-t3, var(--_sf-dt-bt-at, 0px));
@@ -201,11 +183,9 @@
201
183
 
202
184
  &:not(.embla__dot--selected) {
203
185
  --_sf-br-vl-t3: 16px;
204
-
205
186
  &:nth-of-type(1) {
206
187
  --_sf-dt-bt-at: var(--_sf-br-vl-t3) 0px 0px var(--_sf-br-vl-t3);
207
188
  }
208
-
209
189
  &:last-of-type {
210
190
  --_sf-dt-bt-at: 0px var(--_sf-br-vl-t3) var(--_sf-br-vl-t3) 0px;
211
191
  }
@@ -219,7 +199,7 @@
219
199
  --_sf-dt-bt-at: min(calc(var(--_sf-ed-vl-sz, 10px) * 0.5), 10px);
220
200
  --_sf-nv-pg-sz-ac: max(calc(var(--_sf-ed-vl-sz, 10px) * 2), 20px);
221
201
 
222
- @if ($type ==3) {
202
+ @if ($type == 3) {
223
203
  --_sf-dt-at-wh-t3: calc(2 * var(--_sf-dt-wh-t3));
224
204
  --_sf-dt-at-ht-t3: 6px;
225
205
  --_sf-dt-at-br-t3: var(--_sf-dt-at-ht-t3);
@@ -228,4 +208,4 @@
228
208
  }
229
209
  }
230
210
  }
231
- }
211
+ }
@@ -14,183 +14,193 @@ $wrapper: ".tgl__wrapper";
14
14
  bottom: var(--_sf-rp-gt-t3-bottom-vl, auto);
15
15
  top: var(--_sf-rp-gt-t3-top-vl, 0px);
16
16
 
17
- &>div {
17
+ & > div {
18
18
  &#{$wrapper} {
19
19
  display: var(--_d-flex);
20
20
  align-items: center;
21
-
22
21
  // border: 1px solid var(--_gray-200);
23
22
  // Gated on the Layout Style > Show Border switch; previously the border was
24
23
  // unconditional, so turning the switch off changed nothing.
25
24
  &[data-show-border="true"] {
26
25
  border-style: prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-lt-se-br-se, solid);
27
26
  border-width: prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-lt-se-br-wh, 1px);
28
- border-color: prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-lt-se-br-cr,
29
- var(--_gray-200));
27
+ border-color: prepareMediaVariable(
28
+ --_ctm-rep-dn-gd-vw-cl-se-lt-se-br-cr,
29
+ var(--_gray-200)
30
+ );
30
31
  }
31
-
32
32
  --_br-6: 6px;
33
33
  --_width-40: 40px;
34
34
  --_width-20: 20px;
35
35
  border-radius: 4px;
36
36
  // --_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-bd-cr,
37
- background-color: prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-lt-se-bd-cr,
38
- var(--_base-white));
37
+ background-color: prepareMediaVariable(
38
+ --_ctm-rep-dn-gd-vw-cl-se-lt-se-bd-cr,
39
+ var(--_base-white)
40
+ );
39
41
 
40
- &>button {
42
+ & > button {
41
43
  display: var(--_d-flex);
42
44
  // $size: var(--_width-40);
43
45
  $size: #{var(
44
- --_sf-at-btn-size,
45
- #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-in-se, var(--_width-20))})
46
+ --_sf-at-btn-size,
47
+ #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-in-se, var(--_width-20))}
48
+ )};
49
+ width: var(
50
+ --_sf-at-btn-wh,
51
+ #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-wh, calc(#{$size} * 2))}
52
+ );
53
+ height: calc(#{$size} * 2);
54
+ align-items: center;
55
+ justify-content: center;
56
+ background: var(
57
+ --_sf-at-btn-bd,
58
+ #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-bd-cr)}
59
+ );
60
+
61
+ padding: var(
62
+ --_sf-at-btn-pg,
63
+ #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-pg, 0px)}
64
+ );
65
+
66
+ // Border / radius / shadow now come from the button's own settings. The
67
+ // first/last radius overrides below only apply while no radius is configured,
68
+ // so the default pill shape survives an unconfigured toggle.
69
+ &[data-show-border="true"] {
70
+ border-color: var(
71
+ --_sf-at-btn-br-cr,
72
+ #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-br-cr)}
73
+ );
74
+ border-style: var(
75
+ --_sf-at-btn-br-se,
76
+ #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-br-se)}
77
+ );
78
+ border-width: var(
79
+ --_sf-at-btn-br-wh,
80
+ #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-br-wh)}
81
+ );
82
+ }
83
+
84
+ // Show Shadow / Show Icon are per-state switches on the Button accordion; they
85
+ // reach the markup as data attributes and gate the two variables below.
86
+ &[data-show-shadow="false"] {
87
+ --_show-shadow: none;
88
+ }
89
+ &[data-show-icon="false"] {
90
+ --_show-icon: none;
91
+ }
92
+
93
+ box-shadow: var(
94
+ --_show-shadow,
95
+ var(
96
+ --_sf-at-btn-sw-ae,
97
+ #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-sw-ae, 0)}
98
+ )
99
+ var(
100
+ --_sf-at-btn-sw-br,
101
+ #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-sw-br, 0)}
102
+ )
103
+ var(
104
+ --_sf-at-btn-sw-sd,
105
+ #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-sw-sd, 0)}
106
+ )
107
+ var(
108
+ --_sf-at-btn-sw-cr,
109
+ #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-sw-cr, transparent)}
110
+ )
111
+ );
112
+
113
+ // Radius falls back to the pill geometry these two buttons have always had.
114
+ // It is NOT routed through an --_sf-at-btn-* variable: prepareMediaVariable
115
+ // tails with `inherit`, so the variable would always be "set" and the
116
+ // per-position fallback below would never fire, collapsing the pill to 0.
117
+ &:first-of-type {
118
+ border-radius: #{prepareMediaVariable(
119
+ --_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-br-rs,
120
+ 4px 0 0 4px
121
+ )};
122
+ }
123
+ &:last-of-type {
124
+ border-radius: #{prepareMediaVariable(
125
+ --_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-br-rs,
126
+ 0 4px 4px 0
127
+ )};
128
+ }
129
+
130
+ // Hover sits between default and selected: it overrides the same
131
+ // `--_sf-at-btn-*` layer, and the `[data-style-active="true"]` block below
132
+ // comes later in source order, so the selected button keeps its own styling
133
+ // while hovered rather than flipping to the hover look.
134
+ &:hover {
135
+ --_sf-at-btn-size: #{prepareMediaVariable(
136
+ --_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-in-se,
137
+ var(--_width-20)
138
+ )};
139
+ --_sf-at-pt-cl: #{prepareMediaVariable(
140
+ --_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-in-c1,
141
+ var(--_gray-700)
142
+ )};
143
+ --_sf-at-btn-bd: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-bd-cr)};
144
+ --_sf-at-btn-br-cr: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-br-cr)};
145
+ --_sf-at-btn-br-se: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-br-se)};
146
+ --_sf-at-btn-br-wh: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-br-wh)};
147
+ --_sf-at-btn-sw-ae: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-sw-ae)};
148
+ --_sf-at-btn-sw-br: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-sw-br)};
149
+ --_sf-at-btn-sw-sd: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-sw-sd)};
150
+ --_sf-at-btn-sw-cr: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-sw-cr)};
151
+ --_sf-at-btn-wh: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-wh)};
152
+ --_sf-at-btn-pg: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-pg)};
153
+ }
154
+
155
+ &[data-style-active="true"] {
156
+ // --_sf-at-pt-cl: var(--_gray-700);
157
+ --_sf-at-btn-size: #{prepareMediaVariable(
158
+ --_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-in-se,
159
+ var(--_width-20)
160
+ )};
161
+ --_sf-at-pt-cl: #{prepareMediaVariable(
162
+ --_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-in-c1,
163
+ var(--_gray-700)
164
+ )};
165
+ --_sf-at-btn-bd: #{prepareMediaVariable(
166
+ --_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-bd-cr,
167
+ var(--_gray-200)
168
+ )};
169
+ // background: var(--_gray-200);
170
+
171
+ // Selected state overrides the same properties via the --_sf-at-btn-* layer
172
+ // the default declarations above already read from.
173
+ --_sf-at-btn-br-cr: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-br-cr)};
174
+ --_sf-at-btn-br-se: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-br-se)};
175
+ --_sf-at-btn-br-wh: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-br-wh)};
176
+ --_sf-at-btn-sw-ae: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-sw-ae)};
177
+ --_sf-at-btn-sw-br: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-sw-br)};
178
+ --_sf-at-btn-sw-sd: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-sw-sd)};
179
+ --_sf-at-btn-sw-cr: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-sw-cr)};
180
+ --_sf-at-btn-wh: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-wh)};
181
+ --_sf-at-btn-pg: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-pg)};
182
+ }
183
+
184
+ // `img` covers custom uploaded toggle icons, which render as an <img>.
185
+ svg,
186
+ img {
187
+ display: var(--_show-icon, block);
188
+ width: calc(#{$size} * 1);
189
+ height: calc(#{$size} * 1);
190
+ }
191
+
192
+ svg {
193
+ path {
194
+ stroke: var(
195
+ --_sf-at-pt-cl,
196
+ #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-in-c1, var(--_gray-500))}
197
+ );
198
+ // Overrides the stroke-width presentation attribute baked into the icon markup.
199
+ stroke-width: prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-se-wh, 1.25);
200
+ }
201
+ }
46
202
  }
47
-
48
- ;
49
- width: var(--_sf-at-btn-wh,
50
- #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-wh, calc(#{$size} * 2))
51
- });
52
- height: calc(#{$size} * 2);
53
- align-items: center;
54
- justify-content: center;
55
- background: var(--_sf-at-btn-bd,
56
- #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-bd-cr)});
57
-
58
- padding: var(--_sf-at-btn-pg,
59
- #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-pg, 0px)});
60
-
61
- // Border / radius / shadow now come from the button's own settings. The
62
- // first/last radius overrides below only apply while no radius is configured,
63
- // so the default pill shape survives an unconfigured toggle.
64
- &[data-show-border="true"] {
65
- border-color: var(--_sf-at-btn-br-cr,
66
- #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-br-cr)});
67
- border-style: var(--_sf-at-btn-br-se,
68
- #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-br-se)});
69
- border-width: var(--_sf-at-btn-br-wh,
70
- #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-br-wh)});
71
- }
72
-
73
- // Show Shadow / Show Icon are per-state switches on the Button accordion; they
74
- // reach the markup as data attributes and gate the two variables below.
75
- &[data-show-shadow="false"] {
76
- --_show-shadow: none;
77
- }
78
-
79
- &[data-show-icon="false"] {
80
- --_show-icon: none;
81
- }
82
-
83
- box-shadow: var(--_show-shadow,
84
- var(--_sf-at-btn-sw-ae,
85
- #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-sw-ae, 0)}) var(--_sf-at-btn-sw-br,
86
- #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-sw-br, 0)}) var(--_sf-at-btn-sw-sd,
87
- #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-sw-sd, 0)}) var(--_sf-at-btn-sw-cr,
88
- #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-sw-cr, transparent)}));
89
-
90
- // Radius falls back to the pill geometry these two buttons have always had.
91
- // It is NOT routed through an --_sf-at-btn-* variable: prepareMediaVariable
92
- // tails with `inherit`, so the variable would always be "set" and the
93
- // per-position fallback below would never fire, collapsing the pill to 0.
94
- &:first-of-type {
95
- border-radius: #{prepareMediaVariable(
96
- --_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-br-rs,
97
- 4px 0 0 4px)
98
203
  }
99
-
100
- ;
101
- }
102
-
103
- &:last-of-type {
104
- border-radius: #{prepareMediaVariable(
105
- --_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-br-rs,
106
- 0 4px 4px 0)
107
204
  }
108
-
109
- ;
110
- }
111
-
112
- // Hover sits between default and selected: it overrides the same
113
- // `--_sf-at-btn-*` layer, and the `[data-style-active="true"]` block below
114
- // comes later in source order, so the selected button keeps its own styling
115
- // while hovered rather than flipping to the hover look.
116
- &:hover {
117
- --_sf-at-btn-size: #{prepareMediaVariable(
118
- --_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-in-se,
119
- var(--_width-20))
120
205
  }
121
-
122
- ;
123
- --_sf-at-pt-cl: #{prepareMediaVariable(
124
- --_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-in-c1,
125
- var(--_gray-700))
126
- }
127
-
128
- ;
129
- --_sf-at-btn-bd: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-bd-cr)};
130
- --_sf-at-btn-br-cr: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-br-cr)};
131
- --_sf-at-btn-br-se: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-br-se)};
132
- --_sf-at-btn-br-wh: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-br-wh)};
133
- --_sf-at-btn-sw-ae: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-sw-ae)};
134
- --_sf-at-btn-sw-br: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-sw-br)};
135
- --_sf-at-btn-sw-sd: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-sw-sd)};
136
- --_sf-at-btn-sw-cr: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-sw-cr)};
137
- --_sf-at-btn-wh: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-wh)};
138
- --_sf-at-btn-pg: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-hr-se-pg)};
139
- }
140
-
141
- &[data-style-active="true"] {
142
- // --_sf-at-pt-cl: var(--_gray-700);
143
- --_sf-at-btn-size: #{prepareMediaVariable(
144
- --_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-in-se,
145
- var(--_width-20))
146
- }
147
-
148
- ;
149
- --_sf-at-pt-cl: #{prepareMediaVariable(
150
- --_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-in-c1,
151
- var(--_gray-700))
152
- }
153
-
154
- ;
155
- --_sf-at-btn-bd: #{prepareMediaVariable(
156
- --_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-bd-cr,
157
- var(--_gray-200))
158
- }
159
-
160
- ;
161
- // background: var(--_gray-200);
162
-
163
- // Selected state overrides the same properties via the --_sf-at-btn-* layer
164
- // the default declarations above already read from.
165
- --_sf-at-btn-br-cr: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-br-cr)};
166
- --_sf-at-btn-br-se: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-br-se)};
167
- --_sf-at-btn-br-wh: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-br-wh)};
168
- --_sf-at-btn-sw-ae: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-sw-ae)};
169
- --_sf-at-btn-sw-br: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-sw-br)};
170
- --_sf-at-btn-sw-sd: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-sw-sd)};
171
- --_sf-at-btn-sw-cr: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-sw-cr)};
172
- --_sf-at-btn-wh: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-wh)};
173
- --_sf-at-btn-pg: #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-sd-se-pg)};
174
- }
175
-
176
- // `img` covers custom uploaded toggle icons, which render as an <img>.
177
- svg,
178
- img {
179
- display: var(--_show-icon, block);
180
- width: calc(#{$size} * 1);
181
- height: calc(#{$size} * 1);
182
- }
183
-
184
- svg {
185
- path {
186
- stroke: var(--_sf-at-pt-cl,
187
- #{prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-in-c1, var(--_gray-500))});
188
- // Overrides the stroke-width presentation attribute baked into the icon markup.
189
- stroke-width: prepareMediaVariable(--_ctm-rep-dn-gd-vw-cl-se-bn-dt-se-se-wh, 1.25);
190
- }
191
- }
192
- }
193
- }
194
- }
195
206
  }
196
- }
@@ -25,7 +25,7 @@
25
25
  --_sf-repe-show-shadow: none;
26
26
  }
27
27
 
28
- &>div {
28
+ & > div {
29
29
  &.wrapper {
30
30
  width: 100%;
31
31
  height: 100%;
@@ -57,14 +57,22 @@
57
57
  // --_ctm-mob-repe-dn-bd-se,
58
58
  // var(--_ctm-tab-repe-dn-bd-se, var(--_ctm-repe-dn-bd-se))
59
59
  // );
60
- border-radius: var(--_ctm-mob-repe-dn-br-rs,
61
- var(--_ctm-tab-repe-dn-br-rs, var(--_ctm-repe-dn-br-rs)));
62
- border-color: var(--_ctm-mob-repe-dn-br-cr,
63
- var(--_ctm-tab-repe-dn-br-cr, var(--_ctm-repe-dn-br-cr)));
64
- border-style: var(--_ctm-mob-repe-dn-br-se,
65
- var(--_ctm-tab-repe-dn-br-se, var(--_ctm-repe-dn-br-se)));
66
- border-width: var(--_ctm-mob-repe-dn-br-wh,
67
- var(--_ctm-tab-repe-dn-br-wh, var(--_ctm-repe-dn-br-wh)));
60
+ border-radius: var(
61
+ --_ctm-mob-repe-dn-br-rs,
62
+ var(--_ctm-tab-repe-dn-br-rs, var(--_ctm-repe-dn-br-rs))
63
+ );
64
+ border-color: var(
65
+ --_ctm-mob-repe-dn-br-cr,
66
+ var(--_ctm-tab-repe-dn-br-cr, var(--_ctm-repe-dn-br-cr))
67
+ );
68
+ border-style: var(
69
+ --_ctm-mob-repe-dn-br-se,
70
+ var(--_ctm-tab-repe-dn-br-se, var(--_ctm-repe-dn-br-se))
71
+ );
72
+ border-width: var(
73
+ --_ctm-mob-repe-dn-br-wh,
74
+ var(--_ctm-tab-repe-dn-br-wh, var(--_ctm-repe-dn-br-wh))
75
+ );
68
76
  // The four shadow variables read `repe-se-*`, but the design section is
69
77
  // `design`, so the builder writes `repe-dn-*` (see default-templates.ts). No
70
78
  // `repe-se-*` variable is ever defined, which made the whole var() chain
@@ -79,13 +87,23 @@
79
87
  //
80
88
  // Per-part fallbacks match repeater.scss: without them a single unset part would
81
89
  // invalidate the whole declaration again.
82
- box-shadow: var(--_sf-repe-show-shadow,
83
- var(--_ctm-mob-repe-dn-sw-ae, var(--_ctm-tab-repe-dn-sw-ae, var(--_ctm-repe-dn-sw-ae, 0))) var(--_ctm-mob-repe-dn-sw-br,
84
- var(--_ctm-tab-repe-dn-sw-br, var(--_ctm-repe-dn-sw-br, 0))) var(--_ctm-mob-repe-dn-sw-sd,
85
- var(--_ctm-tab-repe-dn-sw-sd, var(--_ctm-repe-dn-sw-sd, 0))) var(--_ctm-mob-repe-dn-sw-cr,
86
- var(--_ctm-tab-repe-dn-sw-cr, var(--_ctm-repe-dn-sw-cr, transparent))));
90
+ box-shadow: var(
91
+ --_sf-repe-show-shadow,
92
+ var(--_ctm-mob-repe-dn-sw-ae, var(--_ctm-tab-repe-dn-sw-ae, var(--_ctm-repe-dn-sw-ae, 0)))
93
+ var(
94
+ --_ctm-mob-repe-dn-sw-br,
95
+ var(--_ctm-tab-repe-dn-sw-br, var(--_ctm-repe-dn-sw-br, 0))
96
+ )
97
+ var(
98
+ --_ctm-mob-repe-dn-sw-sd,
99
+ var(--_ctm-tab-repe-dn-sw-sd, var(--_ctm-repe-dn-sw-sd, 0))
100
+ )
101
+ var(
102
+ --_ctm-mob-repe-dn-sw-cr,
103
+ var(--_ctm-tab-repe-dn-sw-cr, var(--_ctm-repe-dn-sw-cr, transparent))
104
+ )
105
+ );
87
106
  }
88
-
89
107
  &:is([data-background-type="color"] > *).wrapper {
90
108
  background-color: #{prepareMediaVariable(--_ctm-repe-dn-bd-cr)};
91
109
  }
@@ -93,37 +111,42 @@
93
111
  &:is([data-background-type="gradient"] > *).wrapper {
94
112
  --_sf-repe-gradient-angle: calc(#{prepareMediaVariable(--_ctm-repe-dn-gt-ae, 90)} * 1deg);
95
113
  --_sf-repe-gradient-start-color: #{prepareMediaVariable(
96
- --_ctm-repe-dn-gt-st-cr,
97
- transparent)
114
+ --_ctm-repe-dn-gt-st-cr,
115
+ transparent
116
+ )};
117
+ --_sf-repe-gradient-start-position: calc(
118
+ #{prepareMediaVariable(--_ctm-repe-dn-gt-st-pn, 0)} * 1%
119
+ );
120
+ --_sf-repe-gradient-end-color: #{prepareMediaVariable(--_ctm-repe-dn-gt-ed-cr, transparent)};
121
+ --_sf-repe-gradient-end-position: calc(
122
+ #{prepareMediaVariable(--_ctm-repe-dn-gt-ed-pn, 100)} * 1%
123
+ );
124
+ --_sf-repe-gradient-position: #{prepareMediaVariable(--_ctm-repe-dn-gt-pn, center)};
98
125
  }
99
126
 
100
- ;
101
- --_sf-repe-gradient-start-position: calc(#{prepareMediaVariable(--_ctm-repe-dn-gt-st-pn, 0)} * 1%);
102
- --_sf-repe-gradient-end-color: #{prepareMediaVariable(--_ctm-repe-dn-gt-ed-cr, transparent)};
103
- --_sf-repe-gradient-end-position: calc(#{prepareMediaVariable(--_ctm-repe-dn-gt-ed-pn, 100)} * 1%);
104
- --_sf-repe-gradient-position: #{prepareMediaVariable(--_ctm-repe-dn-gt-pn, center)};
105
- }
106
-
107
- &:is([data-gradient-type="Linear Gradient"] > *).wrapper {
108
- background-image: linear-gradient(var(--_sf-repe-gradient-angle),
127
+ &:is([data-gradient-type="Linear Gradient"] > *).wrapper {
128
+ background-image: linear-gradient(
129
+ var(--_sf-repe-gradient-angle),
109
130
  var(--_sf-repe-gradient-start-color) var(--_sf-repe-gradient-start-position),
110
- var(--_sf-repe-gradient-end-color) var(--_sf-repe-gradient-end-position));
111
- }
131
+ var(--_sf-repe-gradient-end-color) var(--_sf-repe-gradient-end-position)
132
+ );
133
+ }
112
134
 
113
- &:is([data-gradient-type="Radial Gradient"] > *).wrapper {
114
- background-image: radial-gradient(circle at var(--_sf-repe-gradient-position),
135
+ &:is([data-gradient-type="Radial Gradient"] > *).wrapper {
136
+ background-image: radial-gradient(
137
+ circle at var(--_sf-repe-gradient-position),
115
138
  var(--_sf-repe-gradient-start-color) var(--_sf-repe-gradient-start-position),
116
- var(--_sf-repe-gradient-end-color) var(--_sf-repe-gradient-end-position));
117
- }
118
-
119
- &:is([data-background-type="image"] > *).wrapper {
120
- background-image: prepareMediaVariable(--_ctm-repe-dn-bd-ie);
121
- background-attachment: prepareMediaVariable(--_ctm-repe-dn-bd-at);
122
- background-position: prepareMediaVariable(--_ctm-repe-dn-bd-pn);
123
- background-position-y: prepareMediaVariable(--_ctm-repe-dn-bd-pn-y);
124
- background-repeat: prepareMediaVariable(--_ctm-repe-dn-bd-rt);
125
- background-size: prepareMediaVariable(--_ctm-repe-dn-bd-se);
139
+ var(--_sf-repe-gradient-end-color) var(--_sf-repe-gradient-end-position)
140
+ );
141
+ }
142
+ &:is([data-background-type="image"] > *).wrapper {
143
+ background-image: prepareMediaVariable(--_ctm-repe-dn-bd-ie);
144
+ background-attachment: prepareMediaVariable(--_ctm-repe-dn-bd-at);
145
+ background-position: prepareMediaVariable(--_ctm-repe-dn-bd-pn);
146
+ background-position-y: prepareMediaVariable(--_ctm-repe-dn-bd-pn-y);
147
+ background-repeat: prepareMediaVariable(--_ctm-repe-dn-bd-rt);
148
+ background-size: prepareMediaVariable(--_ctm-repe-dn-bd-se);
149
+ }
126
150
  }
127
151
  }
128
152
  }
129
- }