@sc-360-v2/storefront-cms-library 0.5.70 → 0.5.71
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-existing-form.scss +68 -68
- package/dist/add-products-tab-details.scss +4071 -4071
- package/dist/add-products-tab-uom-details.scss +1106 -1106
- package/dist/add-products-tab.scss +2377 -2377
- package/dist/allocation-header-quota-details.scss +609 -609
- package/dist/allocations-quota-details.scss +525 -525
- package/dist/amount-estimator.scss +1192 -1192
- package/dist/animation-control.scss +23 -23
- package/dist/badge.scss +408 -408
- package/dist/brand-basic-elements.scss +387 -387
- package/dist/brand.scss +142 -142
- package/dist/breadcrumbs.scss +966 -966
- package/dist/builder.js +1 -1
- package/dist/bulk-order-pad.scss +692 -692
- package/dist/bundleCategories.scss +301 -301
- package/dist/bundleDetails.scss +6189 -6189
- package/dist/buy-for-tab-container.scss +141 -141
- package/dist/buy-for-tab.scss +649 -649
- package/dist/buy-for-tabs-container-item.scss +80 -80
- package/dist/buyForPopup.scss +339 -339
- package/dist/cart-details.scss +3986 -3986
- package/dist/cart-products-sidebar.scss +211 -211
- package/dist/cart-summary.scss +2826 -2826
- package/dist/cart-wrapper.scss +127 -127
- package/dist/cartAttributes.scss +1422 -1422
- package/dist/cartDropdownOverlay.scss +653 -653
- package/dist/cartGrouping.scss +89 -89
- package/dist/category-groups-element.scss +739 -739
- package/dist/category-groups-quota-details.scss +626 -626
- package/dist/category.scss +137 -137
- package/dist/categoryDetails.scss +61 -61
- package/dist/categoryWidget.scss +34 -34
- package/dist/checkbox-radio.scss +124 -124
- package/dist/code-temp.scss +59 -59
- package/dist/colorpicker_v2.scss +62 -62
- package/dist/common-element.scss +35 -35
- package/dist/confirm-modal.scss +370 -370
- package/dist/confirmationModal.scss +139 -139
- package/dist/contact-us.scss +105 -105
- package/dist/container.scss +168 -168
- package/dist/countdown.scss +899 -899
- package/dist/coupon.scss +1519 -1519
- package/dist/custom-fonts.scss +100 -100
- package/dist/customization-tree.scss +162 -162
- package/dist/default-dropdown.scss +259 -259
- package/dist/dropdownTemplate.scss +699 -699
- package/dist/editCartItem.scss +110 -110
- package/dist/embed-temp.scss +73 -73
- package/dist/embroider-preview-element.scss +94 -94
- package/dist/embroider-template-1-v2.scss +1105 -1105
- package/dist/embroider-template-1.scss +501 -501
- package/dist/embroidery.scss +247 -247
- package/dist/employee-bulk-order.scss +4060 -4060
- package/dist/emtpy-templates.scss +165 -165
- package/dist/faq.scss +696 -696
- package/dist/fb-dropdown.scss +135 -135
- package/dist/filter-results.scss +361 -361
- package/dist/filters.scss +3040 -3040
- package/dist/flex-text-editor.scss +271 -271
- package/dist/form-preview.scss +530 -530
- package/dist/gallery-slider-temp.scss +1776 -1776
- package/dist/global-styles.scss +198 -198
- package/dist/grid.scss +169 -169
- package/dist/icon-library.scss +78 -78
- package/dist/image-for-product.scss +21 -21
- package/dist/image-temp.scss +203 -203
- package/dist/item-stock.scss +93 -93
- package/dist/kitDetails.scss +5739 -5739
- package/dist/kits.scss +305 -305
- package/dist/language-selector.scss +948 -948
- package/dist/last-x-orders.scss +285 -285
- package/dist/layouter-item.scss +141 -141
- package/dist/layouter-pro-item.scss +139 -139
- package/dist/layouter-pro.scss +134 -134
- package/dist/layouter.scss +491 -491
- package/dist/light-box-v2.scss +155 -155
- package/dist/lightbox.scss +78 -78
- package/dist/loader.scss +37 -37
- package/dist/login.scss +29 -11
- package/dist/map.scss +1359 -1359
- package/dist/marchandiserSets.scss +141 -141
- package/dist/mega-menu-container.scss +152 -152
- package/dist/menu-item.scss +19 -19
- package/dist/menu-v2.scss +999 -999
- package/dist/menu.scss +174 -174
- package/dist/multi-select-dropdown.scss +316 -316
- package/dist/my-templates.scss +477 -477
- package/dist/my-wishlist.scss +27 -27
- package/dist/option-bar.scss +886 -886
- package/dist/order-processing.scss +61 -61
- package/dist/order-status.scss +2187 -2187
- package/dist/overflow-module.scss +63 -63
- package/dist/past-orders.scss +1039 -1039
- package/dist/payment-methods.scss +307 -307
- package/dist/phone-input.scss +208 -208
- package/dist/pickup-locations.scss +1359 -1359
- package/dist/position-module.scss +95 -95
- package/dist/prefix-list.scss +86 -86
- package/dist/product-actions.scss +2872 -2872
- package/dist/product-basic-elements.scss +600 -600
- package/dist/product-customizations.scss +155 -155
- package/dist/product-highlights.scss +348 -348
- package/dist/product-image-allocation.scss +1477 -1477
- package/dist/product-inventory.scss +1621 -1621
- package/dist/product-labels.scss +265 -265
- package/dist/product-options.scss +1444 -1444
- package/dist/product-price.scss +3392 -3392
- package/dist/product-promotions.scss +3224 -3224
- package/dist/product-sizechart.scss +1921 -1921
- package/dist/product.scss +140 -140
- package/dist/profile.scss +824 -824
- package/dist/quantity-selector.scss +1074 -1074
- package/dist/quick-inventory-check.scss +285 -285
- package/dist/quick-links.scss +627 -627
- package/dist/quota-details.scss +526 -526
- package/dist/quotes.scss +847 -847
- package/dist/repeater-embla-controls.scss +211 -211
- package/dist/repeater-grid-toggle.scss +206 -206
- package/dist/repeater-item.scss +152 -152
- package/dist/repeater.scss +946 -946
- package/dist/request-for-quotes.scss +841 -841
- package/dist/responsive-behaviour.scss +29 -29
- package/dist/rfqs.scss +861 -861
- package/dist/scroll.scss +414 -414
- package/dist/search-results-heading.scss +309 -309
- package/dist/search.scss +689 -689
- package/dist/section.scss +276 -276
- package/dist/shareCartSideBar.scss +254 -254
- package/dist/shipping-estimator.scss +41 -41
- package/dist/shipping-payments.scss +2518 -2518
- package/dist/simple-list.scss +338 -338
- package/dist/skeleton.scss +64 -64
- package/dist/spotlight.scss +1706 -1706
- package/dist/stack.scss +171 -171
- package/dist/static-global.scss +292 -292
- package/dist/static-text.scss +52 -52
- package/dist/stockStatus.scss +70 -70
- package/dist/store-locations.scss +1592 -1592
- package/dist/sub-category.scss +74 -74
- package/dist/submit-quote.scss +275 -275
- package/dist/tab-container-item.scss +80 -80
- package/dist/tab-container.scss +141 -141
- package/dist/table.scss +9 -0
- package/dist/tabs.scss +440 -440
- package/dist/text-temp.scss +109 -109
- package/dist/theme-classes.scss +421 -421
- package/dist/toaster.scss +392 -392
- package/dist/toggle-button.scss +32 -32
- package/dist/transform-properties-module.scss +20 -20
- package/dist/types/builder/tools/element-edit/login.d.ts +1 -0
- package/dist/types/builder/tools/element-edit/resetPassword.d.ts +1 -0
- package/dist/user-elements.scss +2896 -2896
- package/dist/widget.scss +153 -153
- package/dist/wishlist-overlay.scss +48 -48
- package/package.json +1 -1
|
@@ -1,948 +1,948 @@
|
|
|
1
|
-
@use "sass:map";
|
|
2
|
-
@use "sass:list";
|
|
3
|
-
@use "./functions.scss" as *;
|
|
4
|
-
|
|
5
|
-
// Widget Style > Placeholder Text. The section is per-state (Default / Hover) and its
|
|
6
|
-
// typography reached the stylesheet as `--_ctm-dn-wt-se-{dt,hr}-se-*` that nothing
|
|
7
|
-
// read, so both states looked dead in the panel. Both states publish the same
|
|
8
|
-
// `--_sf-wt-*` names and the hovered widget wins the cascade.
|
|
9
|
-
//
|
|
10
|
-
// Deliberately no final fallback inside these chains: an untouched property stays
|
|
11
|
-
// invalid at computed-value time, which is what lets the consumers fall back to
|
|
12
|
-
// `--_ctm-dn-wt-pr-tt-*`. Those come from the retired Widget Placeholder Text
|
|
13
|
-
// section — Widget Style absorbed it, so the fallback exists only for pages saved
|
|
14
|
-
// before the merge. Same shape the divider already uses for its
|
|
15
|
-
// hover-falls-back-to-default chain below.
|
|
16
|
-
$widgetFontProps: ft-fy, ft-se, cr, ft-wt, ft-se-ic, ue, tt-an, lr-sg, le-ht, tt-tm, wd-wp, wd-bk,
|
|
17
|
-
pg;
|
|
18
|
-
|
|
19
|
-
@mixin widgetStateFont($state, $fallbackState: null) {
|
|
20
|
-
@each $p in $widgetFontProps {
|
|
21
|
-
$inner: if(
|
|
22
|
-
$fallbackState == null,
|
|
23
|
-
var(--_ctm-dn-wt-se-#{$state}-#{$p}),
|
|
24
|
-
var(
|
|
25
|
-
--_ctm-dn-wt-se-#{$state}-#{$p},
|
|
26
|
-
var(
|
|
27
|
-
--_ctm-mob-dn-wt-se-#{$fallbackState}-#{$p},
|
|
28
|
-
var(
|
|
29
|
-
--_ctm-tab-dn-wt-se-#{$fallbackState}-#{$p},
|
|
30
|
-
var(--_ctm-dn-wt-se-#{$fallbackState}-#{$p})
|
|
31
|
-
)
|
|
32
|
-
)
|
|
33
|
-
)
|
|
34
|
-
);
|
|
35
|
-
--_sf-wt-#{$p}: var(
|
|
36
|
-
--_ctm-mob-dn-wt-se-#{$state}-#{$p},
|
|
37
|
-
var(--_ctm-tab-dn-wt-se-#{$state}-#{$p}, #{$inner})
|
|
38
|
-
);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
[data-div-type="element"] {
|
|
43
|
-
&[data-element-type="languageMenu"],
|
|
44
|
-
&[data-element-type="currencySelector"],
|
|
45
|
-
&[data-element-type="userGroupsSelector"],
|
|
46
|
-
&[data-element-type="warehouseSelector"] {
|
|
47
|
-
margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
|
|
48
|
-
|
|
49
|
-
& > .wrapper {
|
|
50
|
-
width: 100%;
|
|
51
|
-
height: auto;
|
|
52
|
-
}
|
|
53
|
-
&[data-show-shadow="false"] {
|
|
54
|
-
--_show-shadow: none;
|
|
55
|
-
}
|
|
56
|
-
.language__conatiner {
|
|
57
|
-
// background-color: var(
|
|
58
|
-
// --_ctm-mob-dn-wt-se-dt-se-bd-cr,
|
|
59
|
-
// var(--_ctm-tab-dn-wt-se-dt-se-bd-cr, var(--_ctm-dn-wt-se-dt-se-bd-cr))
|
|
60
|
-
// );
|
|
61
|
-
|
|
62
|
-
// border-color: var(
|
|
63
|
-
// --_ctm-mob-dn-wt-se-dt-se-br-cr,
|
|
64
|
-
// var(--_ctm-tab-dn-wt-se-dt-se-br-cr, var(--_ctm-dn-wt-se-dt-se-br-cr))
|
|
65
|
-
// );
|
|
66
|
-
|
|
67
|
-
// border-style: var(
|
|
68
|
-
// --_ctm-mob-dn-wt-se-dt-se-br-se,
|
|
69
|
-
// var(--_ctm-tab-dn-wt-se-dt-se-br-se, var(--_ctm-dn-wt-se-dt-se-br-se))
|
|
70
|
-
// );
|
|
71
|
-
|
|
72
|
-
// border-width: var(
|
|
73
|
-
// --_ctm-mob-dn-wt-se-dt-se-br-wh,
|
|
74
|
-
// var(--_ctm-tab-dn-wt-se-dt-se-br-wh, var(--_ctm-dn-wt-se-dt-se-br-wh))
|
|
75
|
-
// );
|
|
76
|
-
|
|
77
|
-
// border-radius: var(
|
|
78
|
-
// --_ctm-mob-dn-wt-se-dt-se-br-rs,
|
|
79
|
-
// var(--_ctm-tab-dn-wt-se-dt-se-br-rs, var(--_ctm-dn-wt-se-dt-se-br-rs))
|
|
80
|
-
// );
|
|
81
|
-
|
|
82
|
-
// box-shadow: var(
|
|
83
|
-
// --_show-shadow,
|
|
84
|
-
// var(
|
|
85
|
-
// --_ctm-mob-dn-wt-se-dt-se-sw-ae,
|
|
86
|
-
// var(--_ctm-tab-dn-wt-se-dt-se-sw-ae, var(--_ctm-dn-wt-se-dt-se-sw-ae))
|
|
87
|
-
// )
|
|
88
|
-
// var(
|
|
89
|
-
// --_ctm-mob-dn-wt-se-dt-se-sw-br,
|
|
90
|
-
// var(--_ctm-tab-dn-wt-se-dt-se-sw-br, var(--_ctm-dn-wt-se-dt-se-sw-br))
|
|
91
|
-
// )
|
|
92
|
-
// var(
|
|
93
|
-
// --_ctm-mob-dn-wt-se-dt-se-sw-sd,
|
|
94
|
-
// var(--_ctm-tab-dn-wt-se-dt-se-sw-sd, var(--_ctm-dn-wt-se-dt-se-sw-sd))
|
|
95
|
-
// )
|
|
96
|
-
// var(
|
|
97
|
-
// --_ctm-mob-dn-wt-se-dt-se-sw-cr,
|
|
98
|
-
// var(--_ctm-tab-dn-wt-se-dt-se-sw-cr, var(--_ctm-dn-wt-se-dt-se-sw-cr))
|
|
99
|
-
// )
|
|
100
|
-
// );
|
|
101
|
-
// &:hover {
|
|
102
|
-
// background-color: var(
|
|
103
|
-
// --_ctm-mob-dn-wt-se-hr-se-bd-cr,
|
|
104
|
-
// var(--_ctm-tab-dn-wt-se-hr-se-bd-cr, var(--_ctm-dn-wt-se-hr-se-bd-cr))
|
|
105
|
-
// );
|
|
106
|
-
|
|
107
|
-
// border-color: var(
|
|
108
|
-
// --_ctm-mob-dn-wt-se-hr-se-br-cr,
|
|
109
|
-
// var(--_ctm-tab-dn-wt-se-hr-se-br-cr, var(--_ctm-dn-wt-se-hr-se-br-cr))
|
|
110
|
-
// );
|
|
111
|
-
|
|
112
|
-
// border-style: var(
|
|
113
|
-
// --_ctm-mob-dn-wt-se-hr-se-br-se,
|
|
114
|
-
// var(--_ctm-tab-dn-wt-se-hr-se-br-se, var(--_ctm-dn-wt-se-hr-se-br-se))
|
|
115
|
-
// );
|
|
116
|
-
|
|
117
|
-
// border-width: var(
|
|
118
|
-
// --_ctm-mob-dn-wt-se-hr-se-br-wh,
|
|
119
|
-
// var(--_ctm-tab-dn-wt-se-hr-se-br-wh, var(--_ctm-dn-wt-se-hr-se-br-wh))
|
|
120
|
-
// );
|
|
121
|
-
|
|
122
|
-
// border-radius: var(
|
|
123
|
-
// --_ctm-mob-dn-wt-se-hr-se-br-rs,
|
|
124
|
-
// var(--_ctm-tab-dn-wt-se-hr-se-br-rs, var(--_ctm-dn-wt-se-hr-se-br-rs))
|
|
125
|
-
// );
|
|
126
|
-
|
|
127
|
-
// box-shadow: var(
|
|
128
|
-
// --_show-shadow,
|
|
129
|
-
// var(
|
|
130
|
-
// --_ctm-mob-dn-wt-se-hr-se-sw-ae,
|
|
131
|
-
// var(--_ctm-tab-dn-wt-se-hr-se-sw-ae, var(--_ctm-dn-wt-se-hr-se-sw-ae))
|
|
132
|
-
// )
|
|
133
|
-
// var(
|
|
134
|
-
// --_ctm-mob-dn-wt-se-hr-se-sw-br,
|
|
135
|
-
// var(--_ctm-tab-dn-wt-se-hr-se-sw-br, var(--_ctm-dn-wt-se-hr-se-sw-br))
|
|
136
|
-
// )
|
|
137
|
-
// var(
|
|
138
|
-
// --_ctm-mob-dn-wt-se-hr-se-sw-sd,
|
|
139
|
-
// var(--_ctm-tab-dn-wt-se-hr-se-sw-sd, var(--_ctm-dn-wt-se-hr-se-sw-sd))
|
|
140
|
-
// )
|
|
141
|
-
// var(
|
|
142
|
-
// --_ctm-mob-dn-wt-se-hr-se-sw-cr,
|
|
143
|
-
// var(--_ctm-tab-dn-wt-se-hr-se-sw-cr, var(--_ctm-dn-wt-se-hr-se-sw-cr))
|
|
144
|
-
// )
|
|
145
|
-
// );
|
|
146
|
-
// }
|
|
147
|
-
|
|
148
|
-
// gap: var(
|
|
149
|
-
// --_ctm-mob-lt-it-ad-mn-qy-sg,
|
|
150
|
-
// var(--_ctm-tab-lt-it-ad-mn-qy-sg, var(--_ctm-lt-it-ad-mn-qy-sg))
|
|
151
|
-
// );
|
|
152
|
-
display: flex;
|
|
153
|
-
gap: var(--_ctm-mob-lt-gp-bn-is, var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is)));
|
|
154
|
-
|
|
155
|
-
// "Show Border" switches — widget style (default/hover), widget dropdown and
|
|
156
|
-
// item style (default/hover/selected). Each state is gated on its own switch.
|
|
157
|
-
// border-style is reset alongside the width: a state whose width variables are
|
|
158
|
-
// unset resolves border-width to the initial `medium`, so zeroing the width
|
|
159
|
-
// alone still leaves a border painted in whatever border-style is in effect.
|
|
160
|
-
&[data-widget-border="false"] {
|
|
161
|
-
.est__dropdown__main .est__dropdown .dropdown__button__wrapper {
|
|
162
|
-
border-width: 0;
|
|
163
|
-
border-style: none;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
&[data-widget-hover-border="false"] {
|
|
167
|
-
.est__dropdown__main .est__dropdown .dropdown__button__wrapper:hover {
|
|
168
|
-
border-width: 0;
|
|
169
|
-
border-style: none;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
&[data-dropdown-border="false"] {
|
|
173
|
-
.est__dropdown__main .est__dropdown .list {
|
|
174
|
-
border-width: 0;
|
|
175
|
-
border-style: none;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
&[data-item-border="false"] {
|
|
179
|
-
.option:not(:hover):not([data-selected="true"]) {
|
|
180
|
-
border-width: 0;
|
|
181
|
-
border-style: none;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
&[data-item-hover-border="false"] {
|
|
185
|
-
.option:hover:not([data-selected="true"]) {
|
|
186
|
-
border-width: 0;
|
|
187
|
-
border-style: none;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
&[data-item-selected-border="false"] {
|
|
191
|
-
.option[data-selected="true"] {
|
|
192
|
-
border-width: 0;
|
|
193
|
-
border-style: none;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
.option:hover {
|
|
198
|
-
--_sf-hr-bd-cr: var(
|
|
199
|
-
--_ctm-mob-dn-im-se-hr-se-bd-cr,
|
|
200
|
-
var(--_ctm-tab-dn-im-se-hr-se-bd-cr, var(--_ctm-dn-im-se-hr-se-bd-cr))
|
|
201
|
-
);
|
|
202
|
-
--_sf-hr-br-cr: var(
|
|
203
|
-
--_ctm-mob-dn-im-se-hr-se-br-cr,
|
|
204
|
-
var(--_ctm-tab-dn-im-se-hr-se-br-cr, var(--_ctm-dn-im-se-hr-se-br-cr))
|
|
205
|
-
);
|
|
206
|
-
--_sf-hr-br-se: var(
|
|
207
|
-
--_ctm-mob-dn-im-se-hr-se-br-se,
|
|
208
|
-
var(--_ctm-tab-dn-im-se-hr-se-br-se, var(--_ctm-dn-im-se-hr-se-br-se))
|
|
209
|
-
);
|
|
210
|
-
--_sf-hr-br-wh: var(
|
|
211
|
-
--_ctm-mob-dn-im-se-hr-se-br-wh,
|
|
212
|
-
var(--_ctm-tab-dn-im-se-hr-se-br-wh, var(--_ctm-dn-im-se-hr-se-br-wh))
|
|
213
|
-
);
|
|
214
|
-
--_sf-hr-br-rs: var(
|
|
215
|
-
--_ctm-mob-dn-im-se-hr-se-br-rs,
|
|
216
|
-
var(--_ctm-tab-dn-im-se-hr-se-br-rs, var(--_ctm-dn-im-se-hr-se-br-rs))
|
|
217
|
-
);
|
|
218
|
-
|
|
219
|
-
// for shadow
|
|
220
|
-
--_sf-hr-sw-ae: var(
|
|
221
|
-
--_ctm-mob-dn-im-se-hr-se-sw-ae,
|
|
222
|
-
var(--_ctm-tab-dn-im-se-hr-se-sw-ae, var(--_ctm-dn-im-se-hr-se-sw-ae))
|
|
223
|
-
);
|
|
224
|
-
--_sf-hr-sw-br: var(
|
|
225
|
-
--_ctm-mob-dn-im-se-hr-se-sw-br,
|
|
226
|
-
var(--_ctm-tab-dn-im-se-hr-se-sw-br, var(--_ctm-dn-im-se-hr-se-sw-br))
|
|
227
|
-
);
|
|
228
|
-
--_sf-hr-sw-hr: var(
|
|
229
|
-
--_ctm-mob-dn-im-se-hr-se-sw-hr,
|
|
230
|
-
var(--_ctm-tab-dn-im-se-hr-se-sw-hr, var(--_ctm-dn-im-se-hr-se-sw-hr))
|
|
231
|
-
);
|
|
232
|
-
--_sf-hr-sw-cr: var(
|
|
233
|
-
--_ctm-mob-dn-im-se-hr-se-sw-cr,
|
|
234
|
-
var(--_ctm-tab-dn-im-se-hr-se-sw-cr, var(--_ctm-dn-im-se-hr-se-sw-cr))
|
|
235
|
-
);
|
|
236
|
-
|
|
237
|
-
// for font
|
|
238
|
-
|
|
239
|
-
--_sf-hr-cr: var(
|
|
240
|
-
--_ctm-mob-dn-im-se-hr-se-cr,
|
|
241
|
-
var(--_ctm-tab-dn-im-se-hr-se-cr, var(--_ctm-dn-im-se-hr-se-cr))
|
|
242
|
-
);
|
|
243
|
-
--_sf-hr-ft-fy: var(
|
|
244
|
-
--_ctm-mob-dn-im-se-hr-se-ft-fy,
|
|
245
|
-
var(--_ctm-tab-dn-im-se-hr-se-ft-fy, var(--_ctm-dn-im-se-hr-se-ft-fy))
|
|
246
|
-
);
|
|
247
|
-
--_sf-hr-ft-se: var(
|
|
248
|
-
--_ctm-mob-dn-im-se-hr-se-ft-se,
|
|
249
|
-
var(--_ctm-tab-dn-im-se-hr-se-ft-se, var(--_ctm-dn-im-se-hr-se-ft-se))
|
|
250
|
-
);
|
|
251
|
-
--_sf-hr-ft-wt: var(
|
|
252
|
-
--_ctm-mob-dn-im-se-hr-se-ft-wt,
|
|
253
|
-
var(--_ctm-tab-dn-im-se-hr-se-ft-wt, var(--_ctm-dn-im-se-hr-se-ft-wt))
|
|
254
|
-
);
|
|
255
|
-
--_sf-hr-ft-se-ic: var(
|
|
256
|
-
--_ctm-mob-dn-im-se-hr-se-ft-se-ic,
|
|
257
|
-
var(--_ctm-tab-dn-im-se-hr-se-ft-se-ic, var(--_ctm-dn-im-se-hr-se-ft-se-ic))
|
|
258
|
-
);
|
|
259
|
-
--_sf-hr-tt-an: var(
|
|
260
|
-
--_ctm-mob-dn-im-se-hr-se-tt-an,
|
|
261
|
-
var(--_ctm-tab-dn-im-se-hr-se-tt-an, var(--_ctm-dn-im-se-hr-se-tt-an))
|
|
262
|
-
);
|
|
263
|
-
--_sf-hr-lr-sg: var(
|
|
264
|
-
--_ctm-mob-dn-im-se-hr-se-lr-sg,
|
|
265
|
-
var(--_ctm-tab-dn-im-se-hr-se-lr-sg, var(--_ctm-dn-im-se-hr-se-lr-sg))
|
|
266
|
-
);
|
|
267
|
-
--_sf-hr-le-ht: var(
|
|
268
|
-
--_ctm-mob-dn-im-se-hr-se-le-ht,
|
|
269
|
-
var(--_ctm-tab-dn-im-se-hr-se-le-ht, var(--_ctm-dn-im-se-hr-se-le-ht))
|
|
270
|
-
);
|
|
271
|
-
|
|
272
|
-
--_sf-hr-ue: var(
|
|
273
|
-
--_ctm-mob-dn-im-se-hr-se-ue,
|
|
274
|
-
var(--_ctm-tab-dn-im-se-hr-se-ue, var(--_ctm-dn-im-se-hr-se-ue))
|
|
275
|
-
);
|
|
276
|
-
--_sf-hr-tt-tm: var(
|
|
277
|
-
--_ctm-mob-dn-im-se-hr-se-tt-tm,
|
|
278
|
-
var(--_ctm-tab-dn-im-se-hr-se-tt-tm, var(--_ctm-dn-im-se-hr-se-tt-tm))
|
|
279
|
-
);
|
|
280
|
-
--_sf-hr-wd-wp: var(
|
|
281
|
-
--_ctm-mob-dn-im-se-hr-se-wd-wp,
|
|
282
|
-
var(--_ctm-tab-dn-im-se-hr-se-wd-wp, var(--_ctm-dn-im-se-hr-se-wd-wp))
|
|
283
|
-
);
|
|
284
|
-
--_sf-hr-wd-bk: var(
|
|
285
|
-
--_ctm-mob-dn-im-se-hr-se-wd-bk,
|
|
286
|
-
var(--_ctm-tab-dn-im-se-hr-se-wd-bk, var(--_ctm-dn-im-se-hr-se-wd-bk))
|
|
287
|
-
);
|
|
288
|
-
--_sf-hr-pg: var(
|
|
289
|
-
--_ctm-mob-dn-im-se-hr-se-pg,
|
|
290
|
-
var(--_ctm-tab-dn-im-se-hr-se-pg, var(--_ctm-dn-im-se-hr-se-pg))
|
|
291
|
-
);
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
.option[data-selected="true"] {
|
|
295
|
-
--_sf-sd-bd-cr: var(
|
|
296
|
-
--_ctm-mob-dn-im-se-sd-se-bd-cr,
|
|
297
|
-
var(--_ctm-tab-dn-im-se-sd-se-bd-cr, var(--_ctm-dn-im-se-sd-se-bd-cr))
|
|
298
|
-
);
|
|
299
|
-
--_sf-sd-br-cr: var(
|
|
300
|
-
--_ctm-mob-dn-im-se-sd-se-br-cr,
|
|
301
|
-
var(--_ctm-tab-dn-im-se-sd-se-br-cr, var(--_ctm-dn-im-se-sd-se-br-cr))
|
|
302
|
-
);
|
|
303
|
-
--_sf-sd-br-se: var(
|
|
304
|
-
--_ctm-mob-dn-im-se-sd-se-br-se,
|
|
305
|
-
var(--_ctm-tab-dn-im-se-sd-se-br-se, var(--_ctm-dn-im-se-sd-se-br-se))
|
|
306
|
-
);
|
|
307
|
-
--_sf-sd-br-wh: var(
|
|
308
|
-
--_ctm-mob-dn-im-se-sd-se-br-wh,
|
|
309
|
-
var(--_ctm-tab-dn-im-se-sd-se-br-wh, var(--_ctm-dn-im-se-sd-se-br-wh))
|
|
310
|
-
);
|
|
311
|
-
// Was missing entirely, so `border-radius: var(--_sf-sd-br-rs, <default state>)`
|
|
312
|
-
// always fell through to the default state and Selected > Border Radius did
|
|
313
|
-
// nothing. Every sibling state variable had one; this is the odd one out.
|
|
314
|
-
--_sf-sd-br-rs: var(
|
|
315
|
-
--_ctm-mob-dn-im-se-sd-se-br-rs,
|
|
316
|
-
var(--_ctm-tab-dn-im-se-sd-se-br-rs, var(--_ctm-dn-im-se-sd-se-br-rs))
|
|
317
|
-
);
|
|
318
|
-
// new
|
|
319
|
-
--_sf-sd-sw-ae: var(
|
|
320
|
-
--_ctm-mob-dn-im-se-sd-se-sw-ae,
|
|
321
|
-
var(--_ctm-tab-dn-im-se-sd-se-sw-ae, var(--_ctm-dn-im-se-sd-se-sw-ae))
|
|
322
|
-
);
|
|
323
|
-
--_sf-sd-sw-br: var(
|
|
324
|
-
--_ctm-mob-dn-im-se-sd-se-sw-br,
|
|
325
|
-
var(--_ctm-tab-dn-im-se-sd-se-sw-br, var(--_ctm-dn-im-se-sd-se-sw-br))
|
|
326
|
-
);
|
|
327
|
-
--_sf-sd-sw-sd: var(
|
|
328
|
-
--_ctm-mob-dn-im-se-sd-se-sw-sd,
|
|
329
|
-
var(--_ctm-tab-dn-im-se-sd-se-sw-sd, var(--_ctm-dn-im-se-sd-se-sw-sd))
|
|
330
|
-
);
|
|
331
|
-
--_sf-sd-sw-cr: var(
|
|
332
|
-
--_ctm-mob-dn-im-se-sd-se-sw-cr,
|
|
333
|
-
var(--_ctm-tab-dn-im-se-sd-se-sw-cr, var(--_ctm-dn-im-se-sd-se-sw-cr))
|
|
334
|
-
);
|
|
335
|
-
|
|
336
|
-
// for font
|
|
337
|
-
|
|
338
|
-
--_sf-sd-cr: var(
|
|
339
|
-
--_ctm-mob-dn-im-se-sd-se-cr,
|
|
340
|
-
var(--_ctm-tab-dn-im-se-sd-se-cr, var(--_ctm-dn-im-se-sd-se-cr))
|
|
341
|
-
);
|
|
342
|
-
--_sf-sd-ft-fy: var(
|
|
343
|
-
--_ctm-mob-dn-im-se-sd-se-ft-fy,
|
|
344
|
-
var(--_ctm-tab-dn-im-se-sd-se-ft-fy, var(--_ctm-dn-im-se-sd-se-ft-fy))
|
|
345
|
-
);
|
|
346
|
-
--_sf-sd-ft-se: var(
|
|
347
|
-
--_ctm-mob-dn-im-se-sd-se-ft-se,
|
|
348
|
-
var(--_ctm-tab-dn-im-se-sd-se-ft-se, var(--_ctm-dn-im-se-sd-se-ft-se))
|
|
349
|
-
);
|
|
350
|
-
--_sf-sd-ft-wt: var(
|
|
351
|
-
--_ctm-mob-dn-im-se-sd-se-ft-wt,
|
|
352
|
-
var(--_ctm-tab-dn-im-se-sd-se-ft-wt, var(--_ctm-dn-im-se-sd-se-ft-wt))
|
|
353
|
-
);
|
|
354
|
-
--_sf-sd-ft-se-ic: var(
|
|
355
|
-
--_ctm-mob-dn-im-se-sd-se-ft-se-ic,
|
|
356
|
-
var(--_ctm-tab-dn-im-se-sd-se-ft-se-ic, var(--_ctm-dn-im-se-sd-se-ft-se-ic))
|
|
357
|
-
);
|
|
358
|
-
--_sf-sd-tt-an: var(
|
|
359
|
-
--_ctm-mob-dn-im-se-sd-se-tt-an,
|
|
360
|
-
var(--_ctm-tab-dn-im-se-sd-se-tt-an, var(--_ctm-dn-im-se-sd-se-tt-an))
|
|
361
|
-
);
|
|
362
|
-
--_sf-sd-lr-sg: var(
|
|
363
|
-
--_ctm-mob-dn-im-se-sd-se-lr-sg,
|
|
364
|
-
var(--_ctm-tab-dn-im-se-sd-se-lr-sg, var(--_ctm-dn-im-se-sd-se-lr-sg))
|
|
365
|
-
);
|
|
366
|
-
--_sf-sd-le-ht: var(
|
|
367
|
-
--_ctm-mob-dn-im-se-sd-se-le-ht,
|
|
368
|
-
var(--_ctm-tab-dn-im-se-sd-se-le-ht, var(--_ctm-dn-im-se-sd-se-le-ht))
|
|
369
|
-
);
|
|
370
|
-
|
|
371
|
-
--_sf-sd-ue: var(
|
|
372
|
-
--_ctm-mob-dn-im-se-sd-se-ue,
|
|
373
|
-
var(--_ctm-tab-dn-im-se-sd-se-ue, var(--_ctm-dn-im-se-sd-se-ue))
|
|
374
|
-
);
|
|
375
|
-
--_sf-sd-tt-tm: var(
|
|
376
|
-
--_ctm-mob-dn-im-se-sd-se-tt-tm,
|
|
377
|
-
var(--_ctm-tab-dn-im-se-sd-se-tt-tm, var(--_ctm-dn-im-se-sd-se-tt-tm))
|
|
378
|
-
);
|
|
379
|
-
--_sf-sd-wd-wp: var(
|
|
380
|
-
--_ctm-mob-dn-im-se-sd-se-wd-wp,
|
|
381
|
-
var(--_ctm-tab-dn-im-se-sd-se-wd-wp, var(--_ctm-dn-im-se-sd-se-wd-wp))
|
|
382
|
-
);
|
|
383
|
-
--_sf-sd-wd-bk: var(
|
|
384
|
-
--_ctm-mob-dn-im-se-sd-se-wd-bk,
|
|
385
|
-
var(--_ctm-tab-dn-im-se-sd-se-wd-bk, var(--_ctm-dn-im-se-sd-se-wd-bk))
|
|
386
|
-
);
|
|
387
|
-
--_sf-sd-pg: var(
|
|
388
|
-
--_ctm-mob-dn-im-se-sd-se-pg,
|
|
389
|
-
var(--_ctm-tab-dn-im-se-sd-se-pg, var(--_ctm-dn-im-se-sd-se-pg))
|
|
390
|
-
);
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
.option {
|
|
394
|
-
width: 100%;
|
|
395
|
-
display: flex;
|
|
396
|
-
align-items: center;
|
|
397
|
-
cursor: pointer;
|
|
398
|
-
justify-content: var(--_ctm-mob-lt-at, var(--_ctm-tab-lt-at, var(--_ctm-lt-at)));
|
|
399
|
-
|
|
400
|
-
position: relative;
|
|
401
|
-
box-sizing: border-box;
|
|
402
|
-
// Without this a flex item refuses to shrink below its content width, so a
|
|
403
|
-
// larger font size pushed the label straight out of the widget.
|
|
404
|
-
// min-width: 0;
|
|
405
|
-
|
|
406
|
-
padding: var(--_sf-hr-pg, prepareMediaVariable(--_ctm-dn-im-se-dt-se-pg));
|
|
407
|
-
gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg)));
|
|
408
|
-
border-color: var(--_sf-hr-br-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-cr));
|
|
409
|
-
|
|
410
|
-
background-color: var(--_sf-hr-bd-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-bd-cr));
|
|
411
|
-
border-style: var(--_sf-hr-br-se, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-se));
|
|
412
|
-
border-radius: var(--_sf-hr-br-rs, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-rs));
|
|
413
|
-
border-width: var(--_sf-hr-br-wh, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-wh));
|
|
414
|
-
|
|
415
|
-
box-shadow: var(--_sf-hr-sw-ae, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-ae))
|
|
416
|
-
var(--_sf-hr-sw-br, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-br))
|
|
417
|
-
var(--_sf-hr-sw-sd, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-sd))
|
|
418
|
-
var(--_sf-hr-sw-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-cr));
|
|
419
|
-
//
|
|
420
|
-
&[data-selected="true"] {
|
|
421
|
-
// `.option` only ever declared padding from the hover variable, so
|
|
422
|
-
// `--_sf-sd-pg` was set by the selected-state block but never read and
|
|
423
|
-
// Selected > Padding did nothing.
|
|
424
|
-
padding: var(--_sf-sd-pg, prepareMediaVariable(--_ctm-dn-im-se-dt-se-pg));
|
|
425
|
-
border-color: var(--_sf-sd-br-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-cr));
|
|
426
|
-
|
|
427
|
-
background-color: var(--_sf-sd-bd-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-bd-cr));
|
|
428
|
-
border-style: var(--_sf-sd-br-se, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-se));
|
|
429
|
-
border-width: var(--_sf-sd-br-wh, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-wh));
|
|
430
|
-
border-radius: var(--_sf-sd-br-rs, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-rs));
|
|
431
|
-
box-shadow: var(--_sf-sd-sw-ae, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-ae))
|
|
432
|
-
var(--_sf-sd-sw-br, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-br))
|
|
433
|
-
var(--_sf-sd-sw-sd, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-sd))
|
|
434
|
-
var(--_sf-sd-sw-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-cr));
|
|
435
|
-
.language__name {
|
|
436
|
-
color: var(--_sf-sd-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-cr));
|
|
437
|
-
font-family: var(--_sf-sd-ft-fy, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-fy));
|
|
438
|
-
font-size: var(--_sf-sd-ft-se, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-se));
|
|
439
|
-
font-weight: var(--_sf-sd-ft-wt, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-wt));
|
|
440
|
-
font-style: var(
|
|
441
|
-
--_sf-sd-ft-se-ic,
|
|
442
|
-
prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-se-ic)
|
|
443
|
-
);
|
|
444
|
-
text-align: var(--_sf-sd-tt-an, prepareMediaVariable(--_ctm-dn-im-se-dt-se-tt-an));
|
|
445
|
-
letter-spacing: var(--_sf-sd-lr-sg, prepareMediaVariable(--_ctm-dn-im-se-dt-se-lr-sg));
|
|
446
|
-
line-height: var(--_sf-sd-le-ht, prepareMediaVariable(--_ctm-dn-im-se-dt-se-le-ht-dc));
|
|
447
|
-
text-decoration: var(--_sf-sd-ue, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ue));
|
|
448
|
-
text-transform: var(--_sf-sd-tt-tm, prepareMediaVariable(--_ctm-dn-im-se-dt-se-tt-tm));
|
|
449
|
-
word-wrap: var(
|
|
450
|
-
--_sf-sd-wd-wp,
|
|
451
|
-
prepareMediaVariable(--_ctm-dn-im-se-dt-se-wd-wp, normal)
|
|
452
|
-
);
|
|
453
|
-
word-break: var(
|
|
454
|
-
--_sf-sd-wd-bk,
|
|
455
|
-
prepareMediaVariable(--_ctm-dn-im-se-dt-se-wd-bk, normal)
|
|
456
|
-
);
|
|
457
|
-
-webkit-line-clamp: var(--_sf-it-clamp-sd, var(--_sf-it-clamp, 1));
|
|
458
|
-
white-space: var(--_sf-it-ws-sd, var(--_sf-it-ws, nowrap));
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
&[data-flex-direction="column"] {
|
|
463
|
-
.language__name {
|
|
464
|
-
white-space: unset;
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
&[data-flex-direction="row"] {
|
|
468
|
-
overflow-x: auto;
|
|
469
|
-
}
|
|
470
|
-
// Matched when *either* state wants a divider, so the rules below exist and each
|
|
471
|
-
// state can then decide visibility for itself — gating on the default state alone
|
|
472
|
-
// meant a divider switched on only for hover could never appear.
|
|
473
|
-
&:is([data-show-divider="true"], [data-show-divider-hover="true"]) {
|
|
474
|
-
// Divider weight/colour resolve through these two, so the hover block below
|
|
475
|
-
// only has to re-point them. Previously the declarations read the default
|
|
476
|
-
// state's variables directly and the Widget Style > Hover > Divider controls
|
|
477
|
-
// wrote to `--_ctm-dn-wt-se-hr-se-dr-*`, which nothing ever read.
|
|
478
|
-
--_sf-dr-wt: var(
|
|
479
|
-
--_ctm-mob-dn-wt-se-dt-se-dr-wt,
|
|
480
|
-
var(--_ctm-tab-dn-wt-se-dt-se-dr-wt, var(--_ctm-dn-wt-se-dt-se-dr-wt))
|
|
481
|
-
);
|
|
482
|
-
--_sf-dr-cr: var(
|
|
483
|
-
--_ctm-mob-dn-wt-se-dt-se-dr-cr,
|
|
484
|
-
var(--_ctm-tab-dn-wt-se-dt-se-dr-cr, var(--_ctm-dn-wt-se-dt-se-dr-cr))
|
|
485
|
-
);
|
|
486
|
-
|
|
487
|
-
// Divider lives under Widget Style, so its hover state is the *widget* being
|
|
488
|
-
// hovered, not an individual option. Scoping this to `.option:hover` only
|
|
489
|
-
// repainted the hovered option's own divider, which read as "not working".
|
|
490
|
-
&:hover {
|
|
491
|
-
--_sf-dr-wt: var(
|
|
492
|
-
--_ctm-mob-dn-wt-se-hr-se-dr-wt,
|
|
493
|
-
var(
|
|
494
|
-
--_ctm-tab-dn-wt-se-hr-se-dr-wt,
|
|
495
|
-
var(
|
|
496
|
-
--_ctm-dn-wt-se-hr-se-dr-wt,
|
|
497
|
-
var(
|
|
498
|
-
--_ctm-mob-dn-wt-se-dt-se-dr-wt,
|
|
499
|
-
var(--_ctm-tab-dn-wt-se-dt-se-dr-wt, var(--_ctm-dn-wt-se-dt-se-dr-wt))
|
|
500
|
-
)
|
|
501
|
-
)
|
|
502
|
-
)
|
|
503
|
-
);
|
|
504
|
-
--_sf-dr-cr: var(
|
|
505
|
-
--_ctm-mob-dn-wt-se-hr-se-dr-cr,
|
|
506
|
-
var(
|
|
507
|
-
--_ctm-tab-dn-wt-se-hr-se-dr-cr,
|
|
508
|
-
var(
|
|
509
|
-
--_ctm-dn-wt-se-hr-se-dr-cr,
|
|
510
|
-
var(
|
|
511
|
-
--_ctm-mob-dn-wt-se-dt-se-dr-cr,
|
|
512
|
-
var(--_ctm-tab-dn-wt-se-dt-se-dr-cr, var(--_ctm-dn-wt-se-dt-se-dr-cr))
|
|
513
|
-
)
|
|
514
|
-
)
|
|
515
|
-
)
|
|
516
|
-
);
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
// Both states also collapse the weight when their own switch is off, so the space
|
|
520
|
-
// reserved below matches whether the divider is actually painted. Mirrors the
|
|
521
|
-
// `display: none` rules at the end of this block.
|
|
522
|
-
&[data-show-divider="false"]:not(:hover),
|
|
523
|
-
&[data-show-divider-hover="false"]:hover {
|
|
524
|
-
--_sf-dr-wt: 0px;
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
// The divider is a pseudo-element, so it takes no space of its own: at a weight
|
|
528
|
-
// wider than half the item gap it used to grow back over the option's label.
|
|
529
|
-
// `dividerGapReserve` gives the option that weight as margin and
|
|
530
|
-
// `dividerGapOffset` pushes the divider into it, so the rule stays inside the gap
|
|
531
|
-
// whatever the weight. `--_sf-dr-wt` rather than the raw variables so the reserve
|
|
532
|
-
// follows the hover weight the same way the divider itself does.
|
|
533
|
-
&[data-flex-direction="row"] {
|
|
534
|
-
.option:not(:last-child) {
|
|
535
|
-
@include dividerGapReserve(var(--_sf-dr-wt), right);
|
|
536
|
-
}
|
|
537
|
-
.option:not(:last-child)::before {
|
|
538
|
-
content: "";
|
|
539
|
-
position: absolute;
|
|
540
|
-
top: 0;
|
|
541
|
-
bottom: 0; /* For full height divider */
|
|
542
|
-
right: dividerGapOffset(
|
|
543
|
-
var(--_ctm-mob-lt-gp-bn-is, var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is))),
|
|
544
|
-
var(--_sf-dr-wt)
|
|
545
|
-
);
|
|
546
|
-
width: var(--_sf-dr-wt); /* Divider thickness */
|
|
547
|
-
background-color: var(--_sf-dr-cr); /* Divider color */
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
&[data-flex-direction="column"] {
|
|
551
|
-
.option:not(:last-child) {
|
|
552
|
-
@include dividerGapReserve(var(--_sf-dr-wt));
|
|
553
|
-
}
|
|
554
|
-
.option:not(:last-child)::before {
|
|
555
|
-
content: "";
|
|
556
|
-
position: absolute;
|
|
557
|
-
left: 0;
|
|
558
|
-
right: 0;
|
|
559
|
-
bottom: dividerGapOffset(
|
|
560
|
-
var(--_ctm-mob-lt-gp-bn-is, var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is))),
|
|
561
|
-
var(--_sf-dr-wt)
|
|
562
|
-
);
|
|
563
|
-
height: var(--_sf-dr-wt);
|
|
564
|
-
background-color: var(--_sf-dr-cr);
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
|
|
568
|
-
// Each state's own Show Divider switch. Declared last so they win over the
|
|
569
|
-
// `::before` rules above, and split by state so turning the divider off for
|
|
570
|
-
// hover only affects the hovered widget.
|
|
571
|
-
&[data-show-divider="false"] .option::before {
|
|
572
|
-
display: none;
|
|
573
|
-
}
|
|
574
|
-
&[data-show-divider-hover="false"]:hover .option::before {
|
|
575
|
-
display: none;
|
|
576
|
-
}
|
|
577
|
-
&[data-show-divider-hover="true"]:hover .option:not(:last-child)::before {
|
|
578
|
-
display: block;
|
|
579
|
-
}
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
.option_select {
|
|
583
|
-
width: 100%;
|
|
584
|
-
display: flex;
|
|
585
|
-
align-items: center;
|
|
586
|
-
justify-content: var(--_ctm-mob-lt-at, var(--_ctm-tab-lt-at, var(--_ctm-lt-at)));
|
|
587
|
-
|
|
588
|
-
position: relative;
|
|
589
|
-
min-width: 0;
|
|
590
|
-
|
|
591
|
-
// Widget Style > padding (was Widget Placeholder Text > padding). It used to sit
|
|
592
|
-
// on `.value__selected__new` only, which is the *empty* state — as soon as an
|
|
593
|
-
// option was selected the markup switched to this branch and the padding
|
|
594
|
-
// appeared to do nothing.
|
|
595
|
-
padding: var(--_sf-wt-pg, prepareMediaVariable(--_ctm-dn-wt-pr-tt-pg));
|
|
596
|
-
gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg)));
|
|
597
|
-
.language__name {
|
|
598
|
-
width: 100%;
|
|
599
|
-
// Widget Style's per-state values first; the retired Widget Placeholder Text
|
|
600
|
-
// variables remain only as a fallback for pages saved before the two merged.
|
|
601
|
-
font-family: var(--_sf-wt-ft-fy, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-fy));
|
|
602
|
-
font-size: var(--_sf-wt-ft-se, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-se));
|
|
603
|
-
color: var(--_sf-wt-cr, prepareMediaVariable(--_ctm-dn-wt-pr-tt-cr));
|
|
604
|
-
font-weight: var(--_sf-wt-ft-wt, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-wt));
|
|
605
|
-
text-decoration: var(--_sf-wt-ue, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ue));
|
|
606
|
-
font-style: var(--_sf-wt-ft-se-ic, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-se-ic));
|
|
607
|
-
text-align: var(--_sf-wt-tt-an, prepareMediaVariable(--_ctm-dn-wt-pr-tt-tt-an));
|
|
608
|
-
letter-spacing: var(--_sf-wt-lr-sg, prepareMediaVariable(--_ctm-dn-wt-pr-tt-lr-sg));
|
|
609
|
-
line-height: var(--_sf-wt-le-ht, prepareMediaVariable(--_ctm-dn-wt-pr-tt-le-ht));
|
|
610
|
-
text-transform: var(--_sf-wt-tt-tm, prepareMediaVariable(--_ctm-dn-wt-pr-tt-tt-tm));
|
|
611
|
-
word-wrap: var(--_sf-wt-wd-wp, prepareMediaVariable(--_ctm-dn-wt-pr-tt-wd-wp, normal));
|
|
612
|
-
word-break: var(--_sf-wt-wd-bk, prepareMediaVariable(--_ctm-dn-wt-pr-tt-wd-bk, normal));
|
|
613
|
-
}
|
|
614
|
-
}
|
|
615
|
-
|
|
616
|
-
.language__name {
|
|
617
|
-
color: var(--_sf-hr-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-cr));
|
|
618
|
-
font-family: var(--_sf-hr-ft-fy, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-fy));
|
|
619
|
-
&.flex__overflow {
|
|
620
|
-
white-space: normal;
|
|
621
|
-
@include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
|
|
622
|
-
}
|
|
623
|
-
font-size: var(--_sf-hr-ft-se, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-se));
|
|
624
|
-
font-weight: var(--_sf-hr-ft-wt, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-wt));
|
|
625
|
-
font-style: var(--_sf-hr-ft-se-ic, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-se-ic));
|
|
626
|
-
text-align: var(--_sf-hr-tt-an, prepareMediaVariable(--_ctm-dn-im-se-dt-se-tt-an));
|
|
627
|
-
letter-spacing: var(--_sf-hr-lr-sg, prepareMediaVariable(--_ctm-dn-im-se-dt-se-lr-sg));
|
|
628
|
-
line-height: var(--_sf-hr-le-ht, prepareMediaVariable(--_ctm-dn-im-se-dt-se-le-ht));
|
|
629
|
-
text-decoration: var(--_sf-hr-ue, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ue));
|
|
630
|
-
text-transform: var(--_sf-hr-tt-tm, prepareMediaVariable(--_ctm-dn-im-se-dt-se-tt-tm));
|
|
631
|
-
word-wrap: var(--_sf-hr-wd-wp, prepareMediaVariable(--_ctm-dn-im-se-dt-se-wd-wp, normal));
|
|
632
|
-
word-break: var(--_sf-hr-wd-bk, prepareMediaVariable(--_ctm-dn-im-se-dt-se-wd-bk, normal));
|
|
633
|
-
|
|
634
|
-
// text-align only has room to act once the label owns the line box — as a
|
|
635
|
-
// content-sized flex item it hugged its text, so every alignment looked the
|
|
636
|
-
// same. `min-width: 0` keeps it shrinkable so a larger font size truncates
|
|
637
|
-
// instead of overflowing the widget.
|
|
638
|
-
flex: 1 1 auto;
|
|
639
|
-
min-width: 0;
|
|
640
|
-
max-width: 100%;
|
|
641
|
-
|
|
642
|
-
// Text Overflow is driven entirely by the two clamp custom properties the
|
|
643
|
-
// element sets per interaction state (see LanguageMenuElement/DropdownComponent):
|
|
644
|
-
// off resolves to 1 nowrap line, on to N wrapped lines. Keeping the box display
|
|
645
|
-
// constant means the hover and selected rules below only have to swap the pair,
|
|
646
|
-
// which a marker class could not express.
|
|
647
|
-
display: -webkit-box;
|
|
648
|
-
-webkit-box-orient: vertical;
|
|
649
|
-
overflow: hidden;
|
|
650
|
-
text-overflow: ellipsis;
|
|
651
|
-
-webkit-line-clamp: var(--_sf-it-clamp, 1);
|
|
652
|
-
white-space: var(--_sf-it-ws, nowrap);
|
|
653
|
-
}
|
|
654
|
-
|
|
655
|
-
.option:hover .language__name {
|
|
656
|
-
-webkit-line-clamp: var(--_sf-it-clamp-hr, var(--_sf-it-clamp, 1));
|
|
657
|
-
white-space: var(--_sf-it-ws-hr, var(--_sf-it-ws, nowrap));
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
//Dropdown
|
|
661
|
-
.value__selected__new {
|
|
662
|
-
width: 100%;
|
|
663
|
-
// padding: 8px 12px;
|
|
664
|
-
// text-align: left;
|
|
665
|
-
// Same order as `.option_select .language__name` above: Widget Style's per-state
|
|
666
|
-
// typography first, Widget Placeholder Text second. This is the empty branch —
|
|
667
|
-
// the two swap in the markup as soon as an option is picked, so they have to
|
|
668
|
-
// resolve identically or the text would jump on first selection.
|
|
669
|
-
font-family: var(--_sf-wt-ft-fy, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-fy));
|
|
670
|
-
&.flex__overflow {
|
|
671
|
-
white-space: normal;
|
|
672
|
-
@include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
|
|
673
|
-
}
|
|
674
|
-
font-size: var(--_sf-wt-ft-se, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-se));
|
|
675
|
-
color: var(--_sf-wt-cr, prepareMediaVariable(--_ctm-dn-wt-pr-tt-cr));
|
|
676
|
-
// color: var(--_gray-600);
|
|
677
|
-
font-weight: var(--_sf-wt-ft-wt, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-wt));
|
|
678
|
-
text-decoration: var(--_sf-wt-ue, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ue));
|
|
679
|
-
font-style: var(--_sf-wt-ft-se-ic, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-se-ic));
|
|
680
|
-
text-align: var(--_sf-wt-tt-an, prepareMediaVariable(--_ctm-dn-wt-pr-tt-tt-an));
|
|
681
|
-
letter-spacing: var(--_sf-wt-lr-sg, prepareMediaVariable(--_ctm-dn-wt-pr-tt-lr-sg));
|
|
682
|
-
line-height: var(--_sf-wt-le-ht, prepareMediaVariable(--_ctm-dn-wt-pr-tt-le-ht));
|
|
683
|
-
padding: var(--_sf-wt-pg, prepareMediaVariable(--_ctm-dn-wt-pr-tt-pg));
|
|
684
|
-
text-transform: var(--_sf-wt-tt-tm, prepareMediaVariable(--_ctm-dn-wt-pr-tt-tt-tm));
|
|
685
|
-
word-wrap: var(--_sf-wt-wd-wp, prepareMediaVariable(--_ctm-dn-wt-pr-tt-wd-wp, normal));
|
|
686
|
-
word-break: var(--_sf-wt-wd-bk, prepareMediaVariable(--_ctm-dn-wt-pr-tt-wd-bk, normal));
|
|
687
|
-
min-width: 0;
|
|
688
|
-
display: -webkit-box;
|
|
689
|
-
-webkit-box-orient: vertical;
|
|
690
|
-
overflow: hidden;
|
|
691
|
-
text-overflow: ellipsis;
|
|
692
|
-
-webkit-line-clamp: var(--_sf-it-clamp, 1);
|
|
693
|
-
white-space: var(--_sf-it-ws, nowrap);
|
|
694
|
-
}
|
|
695
|
-
.est__dropdown__main {
|
|
696
|
-
position: relative;
|
|
697
|
-
width: 100%;
|
|
698
|
-
margin-top: 0px;
|
|
699
|
-
label {
|
|
700
|
-
font-size: 14px;
|
|
701
|
-
color: var(--_gray-700);
|
|
702
|
-
margin-bottom: 8px;
|
|
703
|
-
display: block;
|
|
704
|
-
}
|
|
705
|
-
|
|
706
|
-
.est__dropdown {
|
|
707
|
-
cursor: pointer;
|
|
708
|
-
position: relative;
|
|
709
|
-
color: var(--_gray-700);
|
|
710
|
-
|
|
711
|
-
// border-radius: 6px;
|
|
712
|
-
// background-color: #fff;
|
|
713
|
-
display: flex;
|
|
714
|
-
justify-content: space-between;
|
|
715
|
-
align-items: center;
|
|
716
|
-
padding: prepareMediaVariable(--_ctm-dn-dn-se-pg);
|
|
717
|
-
|
|
718
|
-
width: 100%;
|
|
719
|
-
|
|
720
|
-
.dropdown__button__wrapper {
|
|
721
|
-
width: 100%;
|
|
722
|
-
// Widget Style > Placeholder Text, default state. Published here rather than
|
|
723
|
-
// on the text nodes because the hover state below has to override it, and
|
|
724
|
-
// `.value__selected__new` / `.option_select .language__name` are two separate
|
|
725
|
-
// branches of the same markup.
|
|
726
|
-
@include widgetStateFont(dt-se);
|
|
727
|
-
padding: var(--_ctm-mob-lt-im-pg, var(--_ctm-tab-lt-im-pg, var(--_ctm-lt-im-pg)));
|
|
728
|
-
background-color: var(
|
|
729
|
-
--_ctm-mob-dn-wt-se-dt-se-bd-cr,
|
|
730
|
-
var(--_ctm-tab-dn-wt-se-dt-se-bd-cr, var(--_ctm-dn-wt-se-dt-se-bd-cr))
|
|
731
|
-
);
|
|
732
|
-
|
|
733
|
-
border-color: var(
|
|
734
|
-
--_ctm-mob-dn-wt-se-dt-se-br-cr,
|
|
735
|
-
var(--_ctm-tab-dn-wt-se-dt-se-br-cr, var(--_ctm-dn-wt-se-dt-se-br-cr))
|
|
736
|
-
);
|
|
737
|
-
|
|
738
|
-
border-style: var(
|
|
739
|
-
--_ctm-mob-dn-wt-se-dt-se-br-se,
|
|
740
|
-
var(--_ctm-tab-dn-wt-se-dt-se-br-se, var(--_ctm-dn-wt-se-dt-se-br-se))
|
|
741
|
-
);
|
|
742
|
-
|
|
743
|
-
border-width: var(
|
|
744
|
-
--_ctm-mob-dn-wt-se-dt-se-br-wh,
|
|
745
|
-
var(--_ctm-tab-dn-wt-se-dt-se-br-wh, var(--_ctm-dn-wt-se-dt-se-br-wh))
|
|
746
|
-
);
|
|
747
|
-
|
|
748
|
-
border-radius: var(
|
|
749
|
-
--_ctm-mob-dn-wt-se-dt-se-br-rs,
|
|
750
|
-
var(--_ctm-tab-dn-wt-se-dt-se-br-rs, var(--_ctm-dn-wt-se-dt-se-br-rs))
|
|
751
|
-
);
|
|
752
|
-
|
|
753
|
-
box-shadow: var(
|
|
754
|
-
--_show-shadow,
|
|
755
|
-
var(
|
|
756
|
-
--_ctm-mob-dn-wt-se-dt-se-sw-ae,
|
|
757
|
-
var(--_ctm-tab-dn-wt-se-dt-se-sw-ae, var(--_ctm-dn-wt-se-dt-se-sw-ae))
|
|
758
|
-
)
|
|
759
|
-
var(
|
|
760
|
-
--_ctm-mob-dn-wt-se-dt-se-sw-br,
|
|
761
|
-
var(--_ctm-tab-dn-wt-se-dt-se-sw-br, var(--_ctm-dn-wt-se-dt-se-sw-br))
|
|
762
|
-
)
|
|
763
|
-
var(
|
|
764
|
-
--_ctm-mob-dn-wt-se-dt-se-sw-sd,
|
|
765
|
-
var(--_ctm-tab-dn-wt-se-dt-se-sw-sd, var(--_ctm-dn-wt-se-dt-se-sw-sd))
|
|
766
|
-
)
|
|
767
|
-
var(
|
|
768
|
-
--_ctm-mob-dn-wt-se-dt-se-sw-cr,
|
|
769
|
-
var(--_ctm-tab-dn-wt-se-dt-se-sw-cr, var(--_ctm-dn-wt-se-dt-se-sw-cr))
|
|
770
|
-
)
|
|
771
|
-
);
|
|
772
|
-
&:hover {
|
|
773
|
-
// Hover state, falling back to the default state per property so a widget
|
|
774
|
-
// that only sets a hover colour keeps the default font, size and the rest.
|
|
775
|
-
@include widgetStateFont(hr-se, dt-se);
|
|
776
|
-
background-color: var(
|
|
777
|
-
--_ctm-mob-dn-wt-se-hr-se-bd-cr,
|
|
778
|
-
var(--_ctm-tab-dn-wt-se-hr-se-bd-cr, var(--_ctm-dn-wt-se-hr-se-bd-cr))
|
|
779
|
-
);
|
|
780
|
-
|
|
781
|
-
border-color: var(
|
|
782
|
-
--_ctm-mob-dn-wt-se-hr-se-br-cr,
|
|
783
|
-
var(--_ctm-tab-dn-wt-se-hr-se-br-cr, var(--_ctm-dn-wt-se-hr-se-br-cr))
|
|
784
|
-
);
|
|
785
|
-
|
|
786
|
-
border-style: var(
|
|
787
|
-
--_ctm-mob-dn-wt-se-hr-se-br-se,
|
|
788
|
-
var(--_ctm-tab-dn-wt-se-hr-se-br-se, var(--_ctm-dn-wt-se-hr-se-br-se))
|
|
789
|
-
);
|
|
790
|
-
|
|
791
|
-
border-width: var(
|
|
792
|
-
--_ctm-mob-dn-wt-se-hr-se-br-wh,
|
|
793
|
-
var(--_ctm-tab-dn-wt-se-hr-se-br-wh, var(--_ctm-dn-wt-se-hr-se-br-wh))
|
|
794
|
-
);
|
|
795
|
-
|
|
796
|
-
border-radius: var(
|
|
797
|
-
--_ctm-mob-dn-wt-se-hr-se-br-rs,
|
|
798
|
-
var(--_ctm-tab-dn-wt-se-hr-se-br-rs, var(--_ctm-dn-wt-se-hr-se-br-rs))
|
|
799
|
-
);
|
|
800
|
-
|
|
801
|
-
box-shadow: var(
|
|
802
|
-
--_show-shadow,
|
|
803
|
-
var(
|
|
804
|
-
--_ctm-mob-dn-wt-se-hr-se-sw-ae,
|
|
805
|
-
var(--_ctm-tab-dn-wt-se-hr-se-sw-ae, var(--_ctm-dn-wt-se-hr-se-sw-ae))
|
|
806
|
-
)
|
|
807
|
-
var(
|
|
808
|
-
--_ctm-mob-dn-wt-se-hr-se-sw-br,
|
|
809
|
-
var(--_ctm-tab-dn-wt-se-hr-se-sw-br, var(--_ctm-dn-wt-se-hr-se-sw-br))
|
|
810
|
-
)
|
|
811
|
-
var(
|
|
812
|
-
--_ctm-mob-dn-wt-se-hr-se-sw-sd,
|
|
813
|
-
var(--_ctm-tab-dn-wt-se-hr-se-sw-sd, var(--_ctm-dn-wt-se-hr-se-sw-sd))
|
|
814
|
-
)
|
|
815
|
-
var(
|
|
816
|
-
--_ctm-mob-dn-wt-se-hr-se-sw-cr,
|
|
817
|
-
var(--_ctm-tab-dn-wt-se-hr-se-sw-cr, var(--_ctm-dn-wt-se-hr-se-sw-cr))
|
|
818
|
-
)
|
|
819
|
-
);
|
|
820
|
-
}
|
|
821
|
-
.option_select {
|
|
822
|
-
// Truncation is handled by `.language__name` inside, which knows whether
|
|
823
|
-
// Text Overflow is on and how many lines to clamp to. A `white-space:
|
|
824
|
-
// nowrap` here inherited down and defeated the multi-line clamp.
|
|
825
|
-
overflow: hidden;
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
// Widget Style > Hover > Text Overflow. The clamp pair reaches the DOM as an
|
|
829
|
-
// inline style (it is `controls`, not CSS), so hover cannot be expressed by
|
|
830
|
-
// the variable cascade above — the element publishes both pairs on the label
|
|
831
|
-
// and this rule chooses the hovered one, falling back to the default pair.
|
|
832
|
-
// Safe to scope on the wrapper: the options list is its sibling, not a
|
|
833
|
-
// descendant, so option labels keep their own Item Style clamp.
|
|
834
|
-
&:hover {
|
|
835
|
-
.language__name,
|
|
836
|
-
.value__selected__new {
|
|
837
|
-
-webkit-line-clamp: var(--_sf-it-clamp-hr, var(--_sf-it-clamp, 1));
|
|
838
|
-
white-space: var(--_sf-it-ws-hr, var(--_sf-it-ws, nowrap));
|
|
839
|
-
}
|
|
840
|
-
}
|
|
841
|
-
}
|
|
842
|
-
|
|
843
|
-
.est__dropdown__button {
|
|
844
|
-
display: flex;
|
|
845
|
-
align-items: center;
|
|
846
|
-
width: 100%;
|
|
847
|
-
position: relative;
|
|
848
|
-
gap: 8px;
|
|
849
|
-
// Keeps the label shrinkable so a larger font size truncates instead of
|
|
850
|
-
// pushing the toggle icon out of the widget.
|
|
851
|
-
min-width: 0;
|
|
852
|
-
|
|
853
|
-
& > .option_select,
|
|
854
|
-
& > .value__selected__new {
|
|
855
|
-
flex: 1 1 auto;
|
|
856
|
-
min-width: 0;
|
|
857
|
-
}
|
|
858
|
-
}
|
|
859
|
-
|
|
860
|
-
.est__dropdown__icon {
|
|
861
|
-
// position: absolute;
|
|
862
|
-
// right: 0;
|
|
863
|
-
transition: transform 0.4s ease-in-out;
|
|
864
|
-
display: flex;
|
|
865
|
-
&.rotate__180 {
|
|
866
|
-
transform: rotate(180deg);
|
|
867
|
-
}
|
|
868
|
-
&.rotate__0 {
|
|
869
|
-
transform: rotate(0deg);
|
|
870
|
-
}
|
|
871
|
-
width: prepareMediaVariable(--_ctm-dn-te-in-in-se);
|
|
872
|
-
height: prepareMediaVariable(--_ctm-dn-te-in-in-se);
|
|
873
|
-
|
|
874
|
-
svg {
|
|
875
|
-
width: prepareMediaVariable(--_ctm-dn-te-in-in-se);
|
|
876
|
-
height: prepareMediaVariable(--_ctm-dn-te-in-in-se);
|
|
877
|
-
|
|
878
|
-
path {
|
|
879
|
-
stroke: var(
|
|
880
|
-
--_ctm-mob-dn-te-in-in-c1,
|
|
881
|
-
var(--_ctm-tab-dn-te-in-cr, var(--_ctm-dn-te-in-in-c1))
|
|
882
|
-
);
|
|
883
|
-
// Overrides the stroke-width presentation attribute baked into the icon markup.
|
|
884
|
-
stroke-width: prepareMediaVariable(--_ctm-dn-te-in-se-wh, 1.25);
|
|
885
|
-
}
|
|
886
|
-
}
|
|
887
|
-
}
|
|
888
|
-
|
|
889
|
-
.list {
|
|
890
|
-
flex-direction: column;
|
|
891
|
-
border: 1px solid var(--_gray-200);
|
|
892
|
-
border-radius: 6px;
|
|
893
|
-
position: absolute;
|
|
894
|
-
top: 100%;
|
|
895
|
-
left: 0;
|
|
896
|
-
width: 100%;
|
|
897
|
-
padding: 4px;
|
|
898
|
-
background-color: prepareMediaVariable(--_ctm-dn-wt-dn-bd-cr);
|
|
899
|
-
border-radius: prepareMediaVariable(--_ctm-dn-wt-dn-br-rs);
|
|
900
|
-
z-index: var(--_higher-zIndex);
|
|
901
|
-
max-height: 200px;
|
|
902
|
-
overflow-y: auto;
|
|
903
|
-
border-width: prepareMediaVariable(--_ctm-dn-wt-dn-br-wh);
|
|
904
|
-
border-style: prepareMediaVariable(--_ctm-dn-wt-dn-br-se);
|
|
905
|
-
border-color: prepareMediaVariable(--_ctm-dn-wt-dn-br-cr);
|
|
906
|
-
// margin-top: var(
|
|
907
|
-
// --_ctm-mob-lt-gp-bn-is,
|
|
908
|
-
// var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is))
|
|
909
|
-
// );
|
|
910
|
-
gap: var(--_ctm-mob-lt-gp-bn-is, var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is)));
|
|
911
|
-
// padding: 2px;
|
|
912
|
-
// border-radius: 4px;
|
|
913
|
-
// border: 1px solid var(--_gray-300);
|
|
914
|
-
box-shadow: prepareMediaVariable(--_ctm-dn-wt-dn-sw-ae)
|
|
915
|
-
prepareMediaVariable(--_ctm-dn-wt-dn-sw-br)
|
|
916
|
-
prepareMediaVariable(--_ctm-dn-wt-dn-sw-sd)
|
|
917
|
-
prepareMediaVariable(--_ctm-dn-wt-dn-sw-cr);
|
|
918
|
-
|
|
919
|
-
&.top {
|
|
920
|
-
bottom: 100%;
|
|
921
|
-
top: auto;
|
|
922
|
-
}
|
|
923
|
-
|
|
924
|
-
.option {
|
|
925
|
-
cursor: pointer;
|
|
926
|
-
// &:not(:last-child) {
|
|
927
|
-
// margin-bottom: 2px;
|
|
928
|
-
// }
|
|
929
|
-
// padding: 4px;
|
|
930
|
-
// &:hover {
|
|
931
|
-
// background: var(--_gray-100);
|
|
932
|
-
// border-radius: 4px;
|
|
933
|
-
// }
|
|
934
|
-
}
|
|
935
|
-
&.show__panel {
|
|
936
|
-
animation: slideUp 0.4s ease-in-out forwards;
|
|
937
|
-
}
|
|
938
|
-
|
|
939
|
-
&.hide__panel {
|
|
940
|
-
animation: slideDown 0.4s ease-in-out forwards;
|
|
941
|
-
pointer-events: none;
|
|
942
|
-
}
|
|
943
|
-
}
|
|
944
|
-
}
|
|
945
|
-
}
|
|
946
|
-
}
|
|
947
|
-
}
|
|
948
|
-
}
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "sass:list";
|
|
3
|
+
@use "./functions.scss" as *;
|
|
4
|
+
|
|
5
|
+
// Widget Style > Placeholder Text. The section is per-state (Default / Hover) and its
|
|
6
|
+
// typography reached the stylesheet as `--_ctm-dn-wt-se-{dt,hr}-se-*` that nothing
|
|
7
|
+
// read, so both states looked dead in the panel. Both states publish the same
|
|
8
|
+
// `--_sf-wt-*` names and the hovered widget wins the cascade.
|
|
9
|
+
//
|
|
10
|
+
// Deliberately no final fallback inside these chains: an untouched property stays
|
|
11
|
+
// invalid at computed-value time, which is what lets the consumers fall back to
|
|
12
|
+
// `--_ctm-dn-wt-pr-tt-*`. Those come from the retired Widget Placeholder Text
|
|
13
|
+
// section — Widget Style absorbed it, so the fallback exists only for pages saved
|
|
14
|
+
// before the merge. Same shape the divider already uses for its
|
|
15
|
+
// hover-falls-back-to-default chain below.
|
|
16
|
+
$widgetFontProps: ft-fy, ft-se, cr, ft-wt, ft-se-ic, ue, tt-an, lr-sg, le-ht, tt-tm, wd-wp, wd-bk,
|
|
17
|
+
pg;
|
|
18
|
+
|
|
19
|
+
@mixin widgetStateFont($state, $fallbackState: null) {
|
|
20
|
+
@each $p in $widgetFontProps {
|
|
21
|
+
$inner: if(
|
|
22
|
+
$fallbackState == null,
|
|
23
|
+
var(--_ctm-dn-wt-se-#{$state}-#{$p}),
|
|
24
|
+
var(
|
|
25
|
+
--_ctm-dn-wt-se-#{$state}-#{$p},
|
|
26
|
+
var(
|
|
27
|
+
--_ctm-mob-dn-wt-se-#{$fallbackState}-#{$p},
|
|
28
|
+
var(
|
|
29
|
+
--_ctm-tab-dn-wt-se-#{$fallbackState}-#{$p},
|
|
30
|
+
var(--_ctm-dn-wt-se-#{$fallbackState}-#{$p})
|
|
31
|
+
)
|
|
32
|
+
)
|
|
33
|
+
)
|
|
34
|
+
);
|
|
35
|
+
--_sf-wt-#{$p}: var(
|
|
36
|
+
--_ctm-mob-dn-wt-se-#{$state}-#{$p},
|
|
37
|
+
var(--_ctm-tab-dn-wt-se-#{$state}-#{$p}, #{$inner})
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
[data-div-type="element"] {
|
|
43
|
+
&[data-element-type="languageMenu"],
|
|
44
|
+
&[data-element-type="currencySelector"],
|
|
45
|
+
&[data-element-type="userGroupsSelector"],
|
|
46
|
+
&[data-element-type="warehouseSelector"] {
|
|
47
|
+
margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
|
|
48
|
+
|
|
49
|
+
& > .wrapper {
|
|
50
|
+
width: 100%;
|
|
51
|
+
height: auto;
|
|
52
|
+
}
|
|
53
|
+
&[data-show-shadow="false"] {
|
|
54
|
+
--_show-shadow: none;
|
|
55
|
+
}
|
|
56
|
+
.language__conatiner {
|
|
57
|
+
// background-color: var(
|
|
58
|
+
// --_ctm-mob-dn-wt-se-dt-se-bd-cr,
|
|
59
|
+
// var(--_ctm-tab-dn-wt-se-dt-se-bd-cr, var(--_ctm-dn-wt-se-dt-se-bd-cr))
|
|
60
|
+
// );
|
|
61
|
+
|
|
62
|
+
// border-color: var(
|
|
63
|
+
// --_ctm-mob-dn-wt-se-dt-se-br-cr,
|
|
64
|
+
// var(--_ctm-tab-dn-wt-se-dt-se-br-cr, var(--_ctm-dn-wt-se-dt-se-br-cr))
|
|
65
|
+
// );
|
|
66
|
+
|
|
67
|
+
// border-style: var(
|
|
68
|
+
// --_ctm-mob-dn-wt-se-dt-se-br-se,
|
|
69
|
+
// var(--_ctm-tab-dn-wt-se-dt-se-br-se, var(--_ctm-dn-wt-se-dt-se-br-se))
|
|
70
|
+
// );
|
|
71
|
+
|
|
72
|
+
// border-width: var(
|
|
73
|
+
// --_ctm-mob-dn-wt-se-dt-se-br-wh,
|
|
74
|
+
// var(--_ctm-tab-dn-wt-se-dt-se-br-wh, var(--_ctm-dn-wt-se-dt-se-br-wh))
|
|
75
|
+
// );
|
|
76
|
+
|
|
77
|
+
// border-radius: var(
|
|
78
|
+
// --_ctm-mob-dn-wt-se-dt-se-br-rs,
|
|
79
|
+
// var(--_ctm-tab-dn-wt-se-dt-se-br-rs, var(--_ctm-dn-wt-se-dt-se-br-rs))
|
|
80
|
+
// );
|
|
81
|
+
|
|
82
|
+
// box-shadow: var(
|
|
83
|
+
// --_show-shadow,
|
|
84
|
+
// var(
|
|
85
|
+
// --_ctm-mob-dn-wt-se-dt-se-sw-ae,
|
|
86
|
+
// var(--_ctm-tab-dn-wt-se-dt-se-sw-ae, var(--_ctm-dn-wt-se-dt-se-sw-ae))
|
|
87
|
+
// )
|
|
88
|
+
// var(
|
|
89
|
+
// --_ctm-mob-dn-wt-se-dt-se-sw-br,
|
|
90
|
+
// var(--_ctm-tab-dn-wt-se-dt-se-sw-br, var(--_ctm-dn-wt-se-dt-se-sw-br))
|
|
91
|
+
// )
|
|
92
|
+
// var(
|
|
93
|
+
// --_ctm-mob-dn-wt-se-dt-se-sw-sd,
|
|
94
|
+
// var(--_ctm-tab-dn-wt-se-dt-se-sw-sd, var(--_ctm-dn-wt-se-dt-se-sw-sd))
|
|
95
|
+
// )
|
|
96
|
+
// var(
|
|
97
|
+
// --_ctm-mob-dn-wt-se-dt-se-sw-cr,
|
|
98
|
+
// var(--_ctm-tab-dn-wt-se-dt-se-sw-cr, var(--_ctm-dn-wt-se-dt-se-sw-cr))
|
|
99
|
+
// )
|
|
100
|
+
// );
|
|
101
|
+
// &:hover {
|
|
102
|
+
// background-color: var(
|
|
103
|
+
// --_ctm-mob-dn-wt-se-hr-se-bd-cr,
|
|
104
|
+
// var(--_ctm-tab-dn-wt-se-hr-se-bd-cr, var(--_ctm-dn-wt-se-hr-se-bd-cr))
|
|
105
|
+
// );
|
|
106
|
+
|
|
107
|
+
// border-color: var(
|
|
108
|
+
// --_ctm-mob-dn-wt-se-hr-se-br-cr,
|
|
109
|
+
// var(--_ctm-tab-dn-wt-se-hr-se-br-cr, var(--_ctm-dn-wt-se-hr-se-br-cr))
|
|
110
|
+
// );
|
|
111
|
+
|
|
112
|
+
// border-style: var(
|
|
113
|
+
// --_ctm-mob-dn-wt-se-hr-se-br-se,
|
|
114
|
+
// var(--_ctm-tab-dn-wt-se-hr-se-br-se, var(--_ctm-dn-wt-se-hr-se-br-se))
|
|
115
|
+
// );
|
|
116
|
+
|
|
117
|
+
// border-width: var(
|
|
118
|
+
// --_ctm-mob-dn-wt-se-hr-se-br-wh,
|
|
119
|
+
// var(--_ctm-tab-dn-wt-se-hr-se-br-wh, var(--_ctm-dn-wt-se-hr-se-br-wh))
|
|
120
|
+
// );
|
|
121
|
+
|
|
122
|
+
// border-radius: var(
|
|
123
|
+
// --_ctm-mob-dn-wt-se-hr-se-br-rs,
|
|
124
|
+
// var(--_ctm-tab-dn-wt-se-hr-se-br-rs, var(--_ctm-dn-wt-se-hr-se-br-rs))
|
|
125
|
+
// );
|
|
126
|
+
|
|
127
|
+
// box-shadow: var(
|
|
128
|
+
// --_show-shadow,
|
|
129
|
+
// var(
|
|
130
|
+
// --_ctm-mob-dn-wt-se-hr-se-sw-ae,
|
|
131
|
+
// var(--_ctm-tab-dn-wt-se-hr-se-sw-ae, var(--_ctm-dn-wt-se-hr-se-sw-ae))
|
|
132
|
+
// )
|
|
133
|
+
// var(
|
|
134
|
+
// --_ctm-mob-dn-wt-se-hr-se-sw-br,
|
|
135
|
+
// var(--_ctm-tab-dn-wt-se-hr-se-sw-br, var(--_ctm-dn-wt-se-hr-se-sw-br))
|
|
136
|
+
// )
|
|
137
|
+
// var(
|
|
138
|
+
// --_ctm-mob-dn-wt-se-hr-se-sw-sd,
|
|
139
|
+
// var(--_ctm-tab-dn-wt-se-hr-se-sw-sd, var(--_ctm-dn-wt-se-hr-se-sw-sd))
|
|
140
|
+
// )
|
|
141
|
+
// var(
|
|
142
|
+
// --_ctm-mob-dn-wt-se-hr-se-sw-cr,
|
|
143
|
+
// var(--_ctm-tab-dn-wt-se-hr-se-sw-cr, var(--_ctm-dn-wt-se-hr-se-sw-cr))
|
|
144
|
+
// )
|
|
145
|
+
// );
|
|
146
|
+
// }
|
|
147
|
+
|
|
148
|
+
// gap: var(
|
|
149
|
+
// --_ctm-mob-lt-it-ad-mn-qy-sg,
|
|
150
|
+
// var(--_ctm-tab-lt-it-ad-mn-qy-sg, var(--_ctm-lt-it-ad-mn-qy-sg))
|
|
151
|
+
// );
|
|
152
|
+
display: flex;
|
|
153
|
+
gap: var(--_ctm-mob-lt-gp-bn-is, var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is)));
|
|
154
|
+
|
|
155
|
+
// "Show Border" switches — widget style (default/hover), widget dropdown and
|
|
156
|
+
// item style (default/hover/selected). Each state is gated on its own switch.
|
|
157
|
+
// border-style is reset alongside the width: a state whose width variables are
|
|
158
|
+
// unset resolves border-width to the initial `medium`, so zeroing the width
|
|
159
|
+
// alone still leaves a border painted in whatever border-style is in effect.
|
|
160
|
+
&[data-widget-border="false"] {
|
|
161
|
+
.est__dropdown__main .est__dropdown .dropdown__button__wrapper {
|
|
162
|
+
border-width: 0;
|
|
163
|
+
border-style: none;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
&[data-widget-hover-border="false"] {
|
|
167
|
+
.est__dropdown__main .est__dropdown .dropdown__button__wrapper:hover {
|
|
168
|
+
border-width: 0;
|
|
169
|
+
border-style: none;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
&[data-dropdown-border="false"] {
|
|
173
|
+
.est__dropdown__main .est__dropdown .list {
|
|
174
|
+
border-width: 0;
|
|
175
|
+
border-style: none;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
&[data-item-border="false"] {
|
|
179
|
+
.option:not(:hover):not([data-selected="true"]) {
|
|
180
|
+
border-width: 0;
|
|
181
|
+
border-style: none;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
&[data-item-hover-border="false"] {
|
|
185
|
+
.option:hover:not([data-selected="true"]) {
|
|
186
|
+
border-width: 0;
|
|
187
|
+
border-style: none;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
&[data-item-selected-border="false"] {
|
|
191
|
+
.option[data-selected="true"] {
|
|
192
|
+
border-width: 0;
|
|
193
|
+
border-style: none;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.option:hover {
|
|
198
|
+
--_sf-hr-bd-cr: var(
|
|
199
|
+
--_ctm-mob-dn-im-se-hr-se-bd-cr,
|
|
200
|
+
var(--_ctm-tab-dn-im-se-hr-se-bd-cr, var(--_ctm-dn-im-se-hr-se-bd-cr))
|
|
201
|
+
);
|
|
202
|
+
--_sf-hr-br-cr: var(
|
|
203
|
+
--_ctm-mob-dn-im-se-hr-se-br-cr,
|
|
204
|
+
var(--_ctm-tab-dn-im-se-hr-se-br-cr, var(--_ctm-dn-im-se-hr-se-br-cr))
|
|
205
|
+
);
|
|
206
|
+
--_sf-hr-br-se: var(
|
|
207
|
+
--_ctm-mob-dn-im-se-hr-se-br-se,
|
|
208
|
+
var(--_ctm-tab-dn-im-se-hr-se-br-se, var(--_ctm-dn-im-se-hr-se-br-se))
|
|
209
|
+
);
|
|
210
|
+
--_sf-hr-br-wh: var(
|
|
211
|
+
--_ctm-mob-dn-im-se-hr-se-br-wh,
|
|
212
|
+
var(--_ctm-tab-dn-im-se-hr-se-br-wh, var(--_ctm-dn-im-se-hr-se-br-wh))
|
|
213
|
+
);
|
|
214
|
+
--_sf-hr-br-rs: var(
|
|
215
|
+
--_ctm-mob-dn-im-se-hr-se-br-rs,
|
|
216
|
+
var(--_ctm-tab-dn-im-se-hr-se-br-rs, var(--_ctm-dn-im-se-hr-se-br-rs))
|
|
217
|
+
);
|
|
218
|
+
|
|
219
|
+
// for shadow
|
|
220
|
+
--_sf-hr-sw-ae: var(
|
|
221
|
+
--_ctm-mob-dn-im-se-hr-se-sw-ae,
|
|
222
|
+
var(--_ctm-tab-dn-im-se-hr-se-sw-ae, var(--_ctm-dn-im-se-hr-se-sw-ae))
|
|
223
|
+
);
|
|
224
|
+
--_sf-hr-sw-br: var(
|
|
225
|
+
--_ctm-mob-dn-im-se-hr-se-sw-br,
|
|
226
|
+
var(--_ctm-tab-dn-im-se-hr-se-sw-br, var(--_ctm-dn-im-se-hr-se-sw-br))
|
|
227
|
+
);
|
|
228
|
+
--_sf-hr-sw-hr: var(
|
|
229
|
+
--_ctm-mob-dn-im-se-hr-se-sw-hr,
|
|
230
|
+
var(--_ctm-tab-dn-im-se-hr-se-sw-hr, var(--_ctm-dn-im-se-hr-se-sw-hr))
|
|
231
|
+
);
|
|
232
|
+
--_sf-hr-sw-cr: var(
|
|
233
|
+
--_ctm-mob-dn-im-se-hr-se-sw-cr,
|
|
234
|
+
var(--_ctm-tab-dn-im-se-hr-se-sw-cr, var(--_ctm-dn-im-se-hr-se-sw-cr))
|
|
235
|
+
);
|
|
236
|
+
|
|
237
|
+
// for font
|
|
238
|
+
|
|
239
|
+
--_sf-hr-cr: var(
|
|
240
|
+
--_ctm-mob-dn-im-se-hr-se-cr,
|
|
241
|
+
var(--_ctm-tab-dn-im-se-hr-se-cr, var(--_ctm-dn-im-se-hr-se-cr))
|
|
242
|
+
);
|
|
243
|
+
--_sf-hr-ft-fy: var(
|
|
244
|
+
--_ctm-mob-dn-im-se-hr-se-ft-fy,
|
|
245
|
+
var(--_ctm-tab-dn-im-se-hr-se-ft-fy, var(--_ctm-dn-im-se-hr-se-ft-fy))
|
|
246
|
+
);
|
|
247
|
+
--_sf-hr-ft-se: var(
|
|
248
|
+
--_ctm-mob-dn-im-se-hr-se-ft-se,
|
|
249
|
+
var(--_ctm-tab-dn-im-se-hr-se-ft-se, var(--_ctm-dn-im-se-hr-se-ft-se))
|
|
250
|
+
);
|
|
251
|
+
--_sf-hr-ft-wt: var(
|
|
252
|
+
--_ctm-mob-dn-im-se-hr-se-ft-wt,
|
|
253
|
+
var(--_ctm-tab-dn-im-se-hr-se-ft-wt, var(--_ctm-dn-im-se-hr-se-ft-wt))
|
|
254
|
+
);
|
|
255
|
+
--_sf-hr-ft-se-ic: var(
|
|
256
|
+
--_ctm-mob-dn-im-se-hr-se-ft-se-ic,
|
|
257
|
+
var(--_ctm-tab-dn-im-se-hr-se-ft-se-ic, var(--_ctm-dn-im-se-hr-se-ft-se-ic))
|
|
258
|
+
);
|
|
259
|
+
--_sf-hr-tt-an: var(
|
|
260
|
+
--_ctm-mob-dn-im-se-hr-se-tt-an,
|
|
261
|
+
var(--_ctm-tab-dn-im-se-hr-se-tt-an, var(--_ctm-dn-im-se-hr-se-tt-an))
|
|
262
|
+
);
|
|
263
|
+
--_sf-hr-lr-sg: var(
|
|
264
|
+
--_ctm-mob-dn-im-se-hr-se-lr-sg,
|
|
265
|
+
var(--_ctm-tab-dn-im-se-hr-se-lr-sg, var(--_ctm-dn-im-se-hr-se-lr-sg))
|
|
266
|
+
);
|
|
267
|
+
--_sf-hr-le-ht: var(
|
|
268
|
+
--_ctm-mob-dn-im-se-hr-se-le-ht,
|
|
269
|
+
var(--_ctm-tab-dn-im-se-hr-se-le-ht, var(--_ctm-dn-im-se-hr-se-le-ht))
|
|
270
|
+
);
|
|
271
|
+
|
|
272
|
+
--_sf-hr-ue: var(
|
|
273
|
+
--_ctm-mob-dn-im-se-hr-se-ue,
|
|
274
|
+
var(--_ctm-tab-dn-im-se-hr-se-ue, var(--_ctm-dn-im-se-hr-se-ue))
|
|
275
|
+
);
|
|
276
|
+
--_sf-hr-tt-tm: var(
|
|
277
|
+
--_ctm-mob-dn-im-se-hr-se-tt-tm,
|
|
278
|
+
var(--_ctm-tab-dn-im-se-hr-se-tt-tm, var(--_ctm-dn-im-se-hr-se-tt-tm))
|
|
279
|
+
);
|
|
280
|
+
--_sf-hr-wd-wp: var(
|
|
281
|
+
--_ctm-mob-dn-im-se-hr-se-wd-wp,
|
|
282
|
+
var(--_ctm-tab-dn-im-se-hr-se-wd-wp, var(--_ctm-dn-im-se-hr-se-wd-wp))
|
|
283
|
+
);
|
|
284
|
+
--_sf-hr-wd-bk: var(
|
|
285
|
+
--_ctm-mob-dn-im-se-hr-se-wd-bk,
|
|
286
|
+
var(--_ctm-tab-dn-im-se-hr-se-wd-bk, var(--_ctm-dn-im-se-hr-se-wd-bk))
|
|
287
|
+
);
|
|
288
|
+
--_sf-hr-pg: var(
|
|
289
|
+
--_ctm-mob-dn-im-se-hr-se-pg,
|
|
290
|
+
var(--_ctm-tab-dn-im-se-hr-se-pg, var(--_ctm-dn-im-se-hr-se-pg))
|
|
291
|
+
);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.option[data-selected="true"] {
|
|
295
|
+
--_sf-sd-bd-cr: var(
|
|
296
|
+
--_ctm-mob-dn-im-se-sd-se-bd-cr,
|
|
297
|
+
var(--_ctm-tab-dn-im-se-sd-se-bd-cr, var(--_ctm-dn-im-se-sd-se-bd-cr))
|
|
298
|
+
);
|
|
299
|
+
--_sf-sd-br-cr: var(
|
|
300
|
+
--_ctm-mob-dn-im-se-sd-se-br-cr,
|
|
301
|
+
var(--_ctm-tab-dn-im-se-sd-se-br-cr, var(--_ctm-dn-im-se-sd-se-br-cr))
|
|
302
|
+
);
|
|
303
|
+
--_sf-sd-br-se: var(
|
|
304
|
+
--_ctm-mob-dn-im-se-sd-se-br-se,
|
|
305
|
+
var(--_ctm-tab-dn-im-se-sd-se-br-se, var(--_ctm-dn-im-se-sd-se-br-se))
|
|
306
|
+
);
|
|
307
|
+
--_sf-sd-br-wh: var(
|
|
308
|
+
--_ctm-mob-dn-im-se-sd-se-br-wh,
|
|
309
|
+
var(--_ctm-tab-dn-im-se-sd-se-br-wh, var(--_ctm-dn-im-se-sd-se-br-wh))
|
|
310
|
+
);
|
|
311
|
+
// Was missing entirely, so `border-radius: var(--_sf-sd-br-rs, <default state>)`
|
|
312
|
+
// always fell through to the default state and Selected > Border Radius did
|
|
313
|
+
// nothing. Every sibling state variable had one; this is the odd one out.
|
|
314
|
+
--_sf-sd-br-rs: var(
|
|
315
|
+
--_ctm-mob-dn-im-se-sd-se-br-rs,
|
|
316
|
+
var(--_ctm-tab-dn-im-se-sd-se-br-rs, var(--_ctm-dn-im-se-sd-se-br-rs))
|
|
317
|
+
);
|
|
318
|
+
// new
|
|
319
|
+
--_sf-sd-sw-ae: var(
|
|
320
|
+
--_ctm-mob-dn-im-se-sd-se-sw-ae,
|
|
321
|
+
var(--_ctm-tab-dn-im-se-sd-se-sw-ae, var(--_ctm-dn-im-se-sd-se-sw-ae))
|
|
322
|
+
);
|
|
323
|
+
--_sf-sd-sw-br: var(
|
|
324
|
+
--_ctm-mob-dn-im-se-sd-se-sw-br,
|
|
325
|
+
var(--_ctm-tab-dn-im-se-sd-se-sw-br, var(--_ctm-dn-im-se-sd-se-sw-br))
|
|
326
|
+
);
|
|
327
|
+
--_sf-sd-sw-sd: var(
|
|
328
|
+
--_ctm-mob-dn-im-se-sd-se-sw-sd,
|
|
329
|
+
var(--_ctm-tab-dn-im-se-sd-se-sw-sd, var(--_ctm-dn-im-se-sd-se-sw-sd))
|
|
330
|
+
);
|
|
331
|
+
--_sf-sd-sw-cr: var(
|
|
332
|
+
--_ctm-mob-dn-im-se-sd-se-sw-cr,
|
|
333
|
+
var(--_ctm-tab-dn-im-se-sd-se-sw-cr, var(--_ctm-dn-im-se-sd-se-sw-cr))
|
|
334
|
+
);
|
|
335
|
+
|
|
336
|
+
// for font
|
|
337
|
+
|
|
338
|
+
--_sf-sd-cr: var(
|
|
339
|
+
--_ctm-mob-dn-im-se-sd-se-cr,
|
|
340
|
+
var(--_ctm-tab-dn-im-se-sd-se-cr, var(--_ctm-dn-im-se-sd-se-cr))
|
|
341
|
+
);
|
|
342
|
+
--_sf-sd-ft-fy: var(
|
|
343
|
+
--_ctm-mob-dn-im-se-sd-se-ft-fy,
|
|
344
|
+
var(--_ctm-tab-dn-im-se-sd-se-ft-fy, var(--_ctm-dn-im-se-sd-se-ft-fy))
|
|
345
|
+
);
|
|
346
|
+
--_sf-sd-ft-se: var(
|
|
347
|
+
--_ctm-mob-dn-im-se-sd-se-ft-se,
|
|
348
|
+
var(--_ctm-tab-dn-im-se-sd-se-ft-se, var(--_ctm-dn-im-se-sd-se-ft-se))
|
|
349
|
+
);
|
|
350
|
+
--_sf-sd-ft-wt: var(
|
|
351
|
+
--_ctm-mob-dn-im-se-sd-se-ft-wt,
|
|
352
|
+
var(--_ctm-tab-dn-im-se-sd-se-ft-wt, var(--_ctm-dn-im-se-sd-se-ft-wt))
|
|
353
|
+
);
|
|
354
|
+
--_sf-sd-ft-se-ic: var(
|
|
355
|
+
--_ctm-mob-dn-im-se-sd-se-ft-se-ic,
|
|
356
|
+
var(--_ctm-tab-dn-im-se-sd-se-ft-se-ic, var(--_ctm-dn-im-se-sd-se-ft-se-ic))
|
|
357
|
+
);
|
|
358
|
+
--_sf-sd-tt-an: var(
|
|
359
|
+
--_ctm-mob-dn-im-se-sd-se-tt-an,
|
|
360
|
+
var(--_ctm-tab-dn-im-se-sd-se-tt-an, var(--_ctm-dn-im-se-sd-se-tt-an))
|
|
361
|
+
);
|
|
362
|
+
--_sf-sd-lr-sg: var(
|
|
363
|
+
--_ctm-mob-dn-im-se-sd-se-lr-sg,
|
|
364
|
+
var(--_ctm-tab-dn-im-se-sd-se-lr-sg, var(--_ctm-dn-im-se-sd-se-lr-sg))
|
|
365
|
+
);
|
|
366
|
+
--_sf-sd-le-ht: var(
|
|
367
|
+
--_ctm-mob-dn-im-se-sd-se-le-ht,
|
|
368
|
+
var(--_ctm-tab-dn-im-se-sd-se-le-ht, var(--_ctm-dn-im-se-sd-se-le-ht))
|
|
369
|
+
);
|
|
370
|
+
|
|
371
|
+
--_sf-sd-ue: var(
|
|
372
|
+
--_ctm-mob-dn-im-se-sd-se-ue,
|
|
373
|
+
var(--_ctm-tab-dn-im-se-sd-se-ue, var(--_ctm-dn-im-se-sd-se-ue))
|
|
374
|
+
);
|
|
375
|
+
--_sf-sd-tt-tm: var(
|
|
376
|
+
--_ctm-mob-dn-im-se-sd-se-tt-tm,
|
|
377
|
+
var(--_ctm-tab-dn-im-se-sd-se-tt-tm, var(--_ctm-dn-im-se-sd-se-tt-tm))
|
|
378
|
+
);
|
|
379
|
+
--_sf-sd-wd-wp: var(
|
|
380
|
+
--_ctm-mob-dn-im-se-sd-se-wd-wp,
|
|
381
|
+
var(--_ctm-tab-dn-im-se-sd-se-wd-wp, var(--_ctm-dn-im-se-sd-se-wd-wp))
|
|
382
|
+
);
|
|
383
|
+
--_sf-sd-wd-bk: var(
|
|
384
|
+
--_ctm-mob-dn-im-se-sd-se-wd-bk,
|
|
385
|
+
var(--_ctm-tab-dn-im-se-sd-se-wd-bk, var(--_ctm-dn-im-se-sd-se-wd-bk))
|
|
386
|
+
);
|
|
387
|
+
--_sf-sd-pg: var(
|
|
388
|
+
--_ctm-mob-dn-im-se-sd-se-pg,
|
|
389
|
+
var(--_ctm-tab-dn-im-se-sd-se-pg, var(--_ctm-dn-im-se-sd-se-pg))
|
|
390
|
+
);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.option {
|
|
394
|
+
width: 100%;
|
|
395
|
+
display: flex;
|
|
396
|
+
align-items: center;
|
|
397
|
+
cursor: pointer;
|
|
398
|
+
justify-content: var(--_ctm-mob-lt-at, var(--_ctm-tab-lt-at, var(--_ctm-lt-at)));
|
|
399
|
+
|
|
400
|
+
position: relative;
|
|
401
|
+
box-sizing: border-box;
|
|
402
|
+
// Without this a flex item refuses to shrink below its content width, so a
|
|
403
|
+
// larger font size pushed the label straight out of the widget.
|
|
404
|
+
// min-width: 0;
|
|
405
|
+
|
|
406
|
+
padding: var(--_sf-hr-pg, prepareMediaVariable(--_ctm-dn-im-se-dt-se-pg));
|
|
407
|
+
gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg)));
|
|
408
|
+
border-color: var(--_sf-hr-br-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-cr));
|
|
409
|
+
|
|
410
|
+
background-color: var(--_sf-hr-bd-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-bd-cr));
|
|
411
|
+
border-style: var(--_sf-hr-br-se, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-se));
|
|
412
|
+
border-radius: var(--_sf-hr-br-rs, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-rs));
|
|
413
|
+
border-width: var(--_sf-hr-br-wh, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-wh));
|
|
414
|
+
|
|
415
|
+
box-shadow: var(--_sf-hr-sw-ae, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-ae))
|
|
416
|
+
var(--_sf-hr-sw-br, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-br))
|
|
417
|
+
var(--_sf-hr-sw-sd, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-sd))
|
|
418
|
+
var(--_sf-hr-sw-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-cr));
|
|
419
|
+
//
|
|
420
|
+
&[data-selected="true"] {
|
|
421
|
+
// `.option` only ever declared padding from the hover variable, so
|
|
422
|
+
// `--_sf-sd-pg` was set by the selected-state block but never read and
|
|
423
|
+
// Selected > Padding did nothing.
|
|
424
|
+
padding: var(--_sf-sd-pg, prepareMediaVariable(--_ctm-dn-im-se-dt-se-pg));
|
|
425
|
+
border-color: var(--_sf-sd-br-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-cr));
|
|
426
|
+
|
|
427
|
+
background-color: var(--_sf-sd-bd-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-bd-cr));
|
|
428
|
+
border-style: var(--_sf-sd-br-se, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-se));
|
|
429
|
+
border-width: var(--_sf-sd-br-wh, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-wh));
|
|
430
|
+
border-radius: var(--_sf-sd-br-rs, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-rs));
|
|
431
|
+
box-shadow: var(--_sf-sd-sw-ae, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-ae))
|
|
432
|
+
var(--_sf-sd-sw-br, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-br))
|
|
433
|
+
var(--_sf-sd-sw-sd, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-sd))
|
|
434
|
+
var(--_sf-sd-sw-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-cr));
|
|
435
|
+
.language__name {
|
|
436
|
+
color: var(--_sf-sd-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-cr));
|
|
437
|
+
font-family: var(--_sf-sd-ft-fy, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-fy));
|
|
438
|
+
font-size: var(--_sf-sd-ft-se, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-se));
|
|
439
|
+
font-weight: var(--_sf-sd-ft-wt, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-wt));
|
|
440
|
+
font-style: var(
|
|
441
|
+
--_sf-sd-ft-se-ic,
|
|
442
|
+
prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-se-ic)
|
|
443
|
+
);
|
|
444
|
+
text-align: var(--_sf-sd-tt-an, prepareMediaVariable(--_ctm-dn-im-se-dt-se-tt-an));
|
|
445
|
+
letter-spacing: var(--_sf-sd-lr-sg, prepareMediaVariable(--_ctm-dn-im-se-dt-se-lr-sg));
|
|
446
|
+
line-height: var(--_sf-sd-le-ht, prepareMediaVariable(--_ctm-dn-im-se-dt-se-le-ht-dc));
|
|
447
|
+
text-decoration: var(--_sf-sd-ue, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ue));
|
|
448
|
+
text-transform: var(--_sf-sd-tt-tm, prepareMediaVariable(--_ctm-dn-im-se-dt-se-tt-tm));
|
|
449
|
+
word-wrap: var(
|
|
450
|
+
--_sf-sd-wd-wp,
|
|
451
|
+
prepareMediaVariable(--_ctm-dn-im-se-dt-se-wd-wp, normal)
|
|
452
|
+
);
|
|
453
|
+
word-break: var(
|
|
454
|
+
--_sf-sd-wd-bk,
|
|
455
|
+
prepareMediaVariable(--_ctm-dn-im-se-dt-se-wd-bk, normal)
|
|
456
|
+
);
|
|
457
|
+
-webkit-line-clamp: var(--_sf-it-clamp-sd, var(--_sf-it-clamp, 1));
|
|
458
|
+
white-space: var(--_sf-it-ws-sd, var(--_sf-it-ws, nowrap));
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
&[data-flex-direction="column"] {
|
|
463
|
+
.language__name {
|
|
464
|
+
white-space: unset;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
&[data-flex-direction="row"] {
|
|
468
|
+
overflow-x: auto;
|
|
469
|
+
}
|
|
470
|
+
// Matched when *either* state wants a divider, so the rules below exist and each
|
|
471
|
+
// state can then decide visibility for itself — gating on the default state alone
|
|
472
|
+
// meant a divider switched on only for hover could never appear.
|
|
473
|
+
&:is([data-show-divider="true"], [data-show-divider-hover="true"]) {
|
|
474
|
+
// Divider weight/colour resolve through these two, so the hover block below
|
|
475
|
+
// only has to re-point them. Previously the declarations read the default
|
|
476
|
+
// state's variables directly and the Widget Style > Hover > Divider controls
|
|
477
|
+
// wrote to `--_ctm-dn-wt-se-hr-se-dr-*`, which nothing ever read.
|
|
478
|
+
--_sf-dr-wt: var(
|
|
479
|
+
--_ctm-mob-dn-wt-se-dt-se-dr-wt,
|
|
480
|
+
var(--_ctm-tab-dn-wt-se-dt-se-dr-wt, var(--_ctm-dn-wt-se-dt-se-dr-wt))
|
|
481
|
+
);
|
|
482
|
+
--_sf-dr-cr: var(
|
|
483
|
+
--_ctm-mob-dn-wt-se-dt-se-dr-cr,
|
|
484
|
+
var(--_ctm-tab-dn-wt-se-dt-se-dr-cr, var(--_ctm-dn-wt-se-dt-se-dr-cr))
|
|
485
|
+
);
|
|
486
|
+
|
|
487
|
+
// Divider lives under Widget Style, so its hover state is the *widget* being
|
|
488
|
+
// hovered, not an individual option. Scoping this to `.option:hover` only
|
|
489
|
+
// repainted the hovered option's own divider, which read as "not working".
|
|
490
|
+
&:hover {
|
|
491
|
+
--_sf-dr-wt: var(
|
|
492
|
+
--_ctm-mob-dn-wt-se-hr-se-dr-wt,
|
|
493
|
+
var(
|
|
494
|
+
--_ctm-tab-dn-wt-se-hr-se-dr-wt,
|
|
495
|
+
var(
|
|
496
|
+
--_ctm-dn-wt-se-hr-se-dr-wt,
|
|
497
|
+
var(
|
|
498
|
+
--_ctm-mob-dn-wt-se-dt-se-dr-wt,
|
|
499
|
+
var(--_ctm-tab-dn-wt-se-dt-se-dr-wt, var(--_ctm-dn-wt-se-dt-se-dr-wt))
|
|
500
|
+
)
|
|
501
|
+
)
|
|
502
|
+
)
|
|
503
|
+
);
|
|
504
|
+
--_sf-dr-cr: var(
|
|
505
|
+
--_ctm-mob-dn-wt-se-hr-se-dr-cr,
|
|
506
|
+
var(
|
|
507
|
+
--_ctm-tab-dn-wt-se-hr-se-dr-cr,
|
|
508
|
+
var(
|
|
509
|
+
--_ctm-dn-wt-se-hr-se-dr-cr,
|
|
510
|
+
var(
|
|
511
|
+
--_ctm-mob-dn-wt-se-dt-se-dr-cr,
|
|
512
|
+
var(--_ctm-tab-dn-wt-se-dt-se-dr-cr, var(--_ctm-dn-wt-se-dt-se-dr-cr))
|
|
513
|
+
)
|
|
514
|
+
)
|
|
515
|
+
)
|
|
516
|
+
);
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
// Both states also collapse the weight when their own switch is off, so the space
|
|
520
|
+
// reserved below matches whether the divider is actually painted. Mirrors the
|
|
521
|
+
// `display: none` rules at the end of this block.
|
|
522
|
+
&[data-show-divider="false"]:not(:hover),
|
|
523
|
+
&[data-show-divider-hover="false"]:hover {
|
|
524
|
+
--_sf-dr-wt: 0px;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
// The divider is a pseudo-element, so it takes no space of its own: at a weight
|
|
528
|
+
// wider than half the item gap it used to grow back over the option's label.
|
|
529
|
+
// `dividerGapReserve` gives the option that weight as margin and
|
|
530
|
+
// `dividerGapOffset` pushes the divider into it, so the rule stays inside the gap
|
|
531
|
+
// whatever the weight. `--_sf-dr-wt` rather than the raw variables so the reserve
|
|
532
|
+
// follows the hover weight the same way the divider itself does.
|
|
533
|
+
&[data-flex-direction="row"] {
|
|
534
|
+
.option:not(:last-child) {
|
|
535
|
+
@include dividerGapReserve(var(--_sf-dr-wt), right);
|
|
536
|
+
}
|
|
537
|
+
.option:not(:last-child)::before {
|
|
538
|
+
content: "";
|
|
539
|
+
position: absolute;
|
|
540
|
+
top: 0;
|
|
541
|
+
bottom: 0; /* For full height divider */
|
|
542
|
+
right: dividerGapOffset(
|
|
543
|
+
var(--_ctm-mob-lt-gp-bn-is, var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is))),
|
|
544
|
+
var(--_sf-dr-wt)
|
|
545
|
+
);
|
|
546
|
+
width: var(--_sf-dr-wt); /* Divider thickness */
|
|
547
|
+
background-color: var(--_sf-dr-cr); /* Divider color */
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
&[data-flex-direction="column"] {
|
|
551
|
+
.option:not(:last-child) {
|
|
552
|
+
@include dividerGapReserve(var(--_sf-dr-wt));
|
|
553
|
+
}
|
|
554
|
+
.option:not(:last-child)::before {
|
|
555
|
+
content: "";
|
|
556
|
+
position: absolute;
|
|
557
|
+
left: 0;
|
|
558
|
+
right: 0;
|
|
559
|
+
bottom: dividerGapOffset(
|
|
560
|
+
var(--_ctm-mob-lt-gp-bn-is, var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is))),
|
|
561
|
+
var(--_sf-dr-wt)
|
|
562
|
+
);
|
|
563
|
+
height: var(--_sf-dr-wt);
|
|
564
|
+
background-color: var(--_sf-dr-cr);
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
// Each state's own Show Divider switch. Declared last so they win over the
|
|
569
|
+
// `::before` rules above, and split by state so turning the divider off for
|
|
570
|
+
// hover only affects the hovered widget.
|
|
571
|
+
&[data-show-divider="false"] .option::before {
|
|
572
|
+
display: none;
|
|
573
|
+
}
|
|
574
|
+
&[data-show-divider-hover="false"]:hover .option::before {
|
|
575
|
+
display: none;
|
|
576
|
+
}
|
|
577
|
+
&[data-show-divider-hover="true"]:hover .option:not(:last-child)::before {
|
|
578
|
+
display: block;
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
.option_select {
|
|
583
|
+
width: 100%;
|
|
584
|
+
display: flex;
|
|
585
|
+
align-items: center;
|
|
586
|
+
justify-content: var(--_ctm-mob-lt-at, var(--_ctm-tab-lt-at, var(--_ctm-lt-at)));
|
|
587
|
+
|
|
588
|
+
position: relative;
|
|
589
|
+
min-width: 0;
|
|
590
|
+
|
|
591
|
+
// Widget Style > padding (was Widget Placeholder Text > padding). It used to sit
|
|
592
|
+
// on `.value__selected__new` only, which is the *empty* state — as soon as an
|
|
593
|
+
// option was selected the markup switched to this branch and the padding
|
|
594
|
+
// appeared to do nothing.
|
|
595
|
+
padding: var(--_sf-wt-pg, prepareMediaVariable(--_ctm-dn-wt-pr-tt-pg));
|
|
596
|
+
gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg)));
|
|
597
|
+
.language__name {
|
|
598
|
+
width: 100%;
|
|
599
|
+
// Widget Style's per-state values first; the retired Widget Placeholder Text
|
|
600
|
+
// variables remain only as a fallback for pages saved before the two merged.
|
|
601
|
+
font-family: var(--_sf-wt-ft-fy, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-fy));
|
|
602
|
+
font-size: var(--_sf-wt-ft-se, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-se));
|
|
603
|
+
color: var(--_sf-wt-cr, prepareMediaVariable(--_ctm-dn-wt-pr-tt-cr));
|
|
604
|
+
font-weight: var(--_sf-wt-ft-wt, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-wt));
|
|
605
|
+
text-decoration: var(--_sf-wt-ue, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ue));
|
|
606
|
+
font-style: var(--_sf-wt-ft-se-ic, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-se-ic));
|
|
607
|
+
text-align: var(--_sf-wt-tt-an, prepareMediaVariable(--_ctm-dn-wt-pr-tt-tt-an));
|
|
608
|
+
letter-spacing: var(--_sf-wt-lr-sg, prepareMediaVariable(--_ctm-dn-wt-pr-tt-lr-sg));
|
|
609
|
+
line-height: var(--_sf-wt-le-ht, prepareMediaVariable(--_ctm-dn-wt-pr-tt-le-ht));
|
|
610
|
+
text-transform: var(--_sf-wt-tt-tm, prepareMediaVariable(--_ctm-dn-wt-pr-tt-tt-tm));
|
|
611
|
+
word-wrap: var(--_sf-wt-wd-wp, prepareMediaVariable(--_ctm-dn-wt-pr-tt-wd-wp, normal));
|
|
612
|
+
word-break: var(--_sf-wt-wd-bk, prepareMediaVariable(--_ctm-dn-wt-pr-tt-wd-bk, normal));
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
.language__name {
|
|
617
|
+
color: var(--_sf-hr-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-cr));
|
|
618
|
+
font-family: var(--_sf-hr-ft-fy, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-fy));
|
|
619
|
+
&.flex__overflow {
|
|
620
|
+
white-space: normal;
|
|
621
|
+
@include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
|
|
622
|
+
}
|
|
623
|
+
font-size: var(--_sf-hr-ft-se, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-se));
|
|
624
|
+
font-weight: var(--_sf-hr-ft-wt, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-wt));
|
|
625
|
+
font-style: var(--_sf-hr-ft-se-ic, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ft-se-ic));
|
|
626
|
+
text-align: var(--_sf-hr-tt-an, prepareMediaVariable(--_ctm-dn-im-se-dt-se-tt-an));
|
|
627
|
+
letter-spacing: var(--_sf-hr-lr-sg, prepareMediaVariable(--_ctm-dn-im-se-dt-se-lr-sg));
|
|
628
|
+
line-height: var(--_sf-hr-le-ht, prepareMediaVariable(--_ctm-dn-im-se-dt-se-le-ht));
|
|
629
|
+
text-decoration: var(--_sf-hr-ue, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ue));
|
|
630
|
+
text-transform: var(--_sf-hr-tt-tm, prepareMediaVariable(--_ctm-dn-im-se-dt-se-tt-tm));
|
|
631
|
+
word-wrap: var(--_sf-hr-wd-wp, prepareMediaVariable(--_ctm-dn-im-se-dt-se-wd-wp, normal));
|
|
632
|
+
word-break: var(--_sf-hr-wd-bk, prepareMediaVariable(--_ctm-dn-im-se-dt-se-wd-bk, normal));
|
|
633
|
+
|
|
634
|
+
// text-align only has room to act once the label owns the line box — as a
|
|
635
|
+
// content-sized flex item it hugged its text, so every alignment looked the
|
|
636
|
+
// same. `min-width: 0` keeps it shrinkable so a larger font size truncates
|
|
637
|
+
// instead of overflowing the widget.
|
|
638
|
+
flex: 1 1 auto;
|
|
639
|
+
min-width: 0;
|
|
640
|
+
max-width: 100%;
|
|
641
|
+
|
|
642
|
+
// Text Overflow is driven entirely by the two clamp custom properties the
|
|
643
|
+
// element sets per interaction state (see LanguageMenuElement/DropdownComponent):
|
|
644
|
+
// off resolves to 1 nowrap line, on to N wrapped lines. Keeping the box display
|
|
645
|
+
// constant means the hover and selected rules below only have to swap the pair,
|
|
646
|
+
// which a marker class could not express.
|
|
647
|
+
display: -webkit-box;
|
|
648
|
+
-webkit-box-orient: vertical;
|
|
649
|
+
overflow: hidden;
|
|
650
|
+
text-overflow: ellipsis;
|
|
651
|
+
-webkit-line-clamp: var(--_sf-it-clamp, 1);
|
|
652
|
+
white-space: var(--_sf-it-ws, nowrap);
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
.option:hover .language__name {
|
|
656
|
+
-webkit-line-clamp: var(--_sf-it-clamp-hr, var(--_sf-it-clamp, 1));
|
|
657
|
+
white-space: var(--_sf-it-ws-hr, var(--_sf-it-ws, nowrap));
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
//Dropdown
|
|
661
|
+
.value__selected__new {
|
|
662
|
+
width: 100%;
|
|
663
|
+
// padding: 8px 12px;
|
|
664
|
+
// text-align: left;
|
|
665
|
+
// Same order as `.option_select .language__name` above: Widget Style's per-state
|
|
666
|
+
// typography first, Widget Placeholder Text second. This is the empty branch —
|
|
667
|
+
// the two swap in the markup as soon as an option is picked, so they have to
|
|
668
|
+
// resolve identically or the text would jump on first selection.
|
|
669
|
+
font-family: var(--_sf-wt-ft-fy, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-fy));
|
|
670
|
+
&.flex__overflow {
|
|
671
|
+
white-space: normal;
|
|
672
|
+
@include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
|
|
673
|
+
}
|
|
674
|
+
font-size: var(--_sf-wt-ft-se, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-se));
|
|
675
|
+
color: var(--_sf-wt-cr, prepareMediaVariable(--_ctm-dn-wt-pr-tt-cr));
|
|
676
|
+
// color: var(--_gray-600);
|
|
677
|
+
font-weight: var(--_sf-wt-ft-wt, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-wt));
|
|
678
|
+
text-decoration: var(--_sf-wt-ue, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ue));
|
|
679
|
+
font-style: var(--_sf-wt-ft-se-ic, prepareMediaVariable(--_ctm-dn-wt-pr-tt-ft-se-ic));
|
|
680
|
+
text-align: var(--_sf-wt-tt-an, prepareMediaVariable(--_ctm-dn-wt-pr-tt-tt-an));
|
|
681
|
+
letter-spacing: var(--_sf-wt-lr-sg, prepareMediaVariable(--_ctm-dn-wt-pr-tt-lr-sg));
|
|
682
|
+
line-height: var(--_sf-wt-le-ht, prepareMediaVariable(--_ctm-dn-wt-pr-tt-le-ht));
|
|
683
|
+
padding: var(--_sf-wt-pg, prepareMediaVariable(--_ctm-dn-wt-pr-tt-pg));
|
|
684
|
+
text-transform: var(--_sf-wt-tt-tm, prepareMediaVariable(--_ctm-dn-wt-pr-tt-tt-tm));
|
|
685
|
+
word-wrap: var(--_sf-wt-wd-wp, prepareMediaVariable(--_ctm-dn-wt-pr-tt-wd-wp, normal));
|
|
686
|
+
word-break: var(--_sf-wt-wd-bk, prepareMediaVariable(--_ctm-dn-wt-pr-tt-wd-bk, normal));
|
|
687
|
+
min-width: 0;
|
|
688
|
+
display: -webkit-box;
|
|
689
|
+
-webkit-box-orient: vertical;
|
|
690
|
+
overflow: hidden;
|
|
691
|
+
text-overflow: ellipsis;
|
|
692
|
+
-webkit-line-clamp: var(--_sf-it-clamp, 1);
|
|
693
|
+
white-space: var(--_sf-it-ws, nowrap);
|
|
694
|
+
}
|
|
695
|
+
.est__dropdown__main {
|
|
696
|
+
position: relative;
|
|
697
|
+
width: 100%;
|
|
698
|
+
margin-top: 0px;
|
|
699
|
+
label {
|
|
700
|
+
font-size: 14px;
|
|
701
|
+
color: var(--_gray-700);
|
|
702
|
+
margin-bottom: 8px;
|
|
703
|
+
display: block;
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
.est__dropdown {
|
|
707
|
+
cursor: pointer;
|
|
708
|
+
position: relative;
|
|
709
|
+
color: var(--_gray-700);
|
|
710
|
+
|
|
711
|
+
// border-radius: 6px;
|
|
712
|
+
// background-color: #fff;
|
|
713
|
+
display: flex;
|
|
714
|
+
justify-content: space-between;
|
|
715
|
+
align-items: center;
|
|
716
|
+
padding: prepareMediaVariable(--_ctm-dn-dn-se-pg);
|
|
717
|
+
|
|
718
|
+
width: 100%;
|
|
719
|
+
|
|
720
|
+
.dropdown__button__wrapper {
|
|
721
|
+
width: 100%;
|
|
722
|
+
// Widget Style > Placeholder Text, default state. Published here rather than
|
|
723
|
+
// on the text nodes because the hover state below has to override it, and
|
|
724
|
+
// `.value__selected__new` / `.option_select .language__name` are two separate
|
|
725
|
+
// branches of the same markup.
|
|
726
|
+
@include widgetStateFont(dt-se);
|
|
727
|
+
padding: var(--_ctm-mob-lt-im-pg, var(--_ctm-tab-lt-im-pg, var(--_ctm-lt-im-pg)));
|
|
728
|
+
background-color: var(
|
|
729
|
+
--_ctm-mob-dn-wt-se-dt-se-bd-cr,
|
|
730
|
+
var(--_ctm-tab-dn-wt-se-dt-se-bd-cr, var(--_ctm-dn-wt-se-dt-se-bd-cr))
|
|
731
|
+
);
|
|
732
|
+
|
|
733
|
+
border-color: var(
|
|
734
|
+
--_ctm-mob-dn-wt-se-dt-se-br-cr,
|
|
735
|
+
var(--_ctm-tab-dn-wt-se-dt-se-br-cr, var(--_ctm-dn-wt-se-dt-se-br-cr))
|
|
736
|
+
);
|
|
737
|
+
|
|
738
|
+
border-style: var(
|
|
739
|
+
--_ctm-mob-dn-wt-se-dt-se-br-se,
|
|
740
|
+
var(--_ctm-tab-dn-wt-se-dt-se-br-se, var(--_ctm-dn-wt-se-dt-se-br-se))
|
|
741
|
+
);
|
|
742
|
+
|
|
743
|
+
border-width: var(
|
|
744
|
+
--_ctm-mob-dn-wt-se-dt-se-br-wh,
|
|
745
|
+
var(--_ctm-tab-dn-wt-se-dt-se-br-wh, var(--_ctm-dn-wt-se-dt-se-br-wh))
|
|
746
|
+
);
|
|
747
|
+
|
|
748
|
+
border-radius: var(
|
|
749
|
+
--_ctm-mob-dn-wt-se-dt-se-br-rs,
|
|
750
|
+
var(--_ctm-tab-dn-wt-se-dt-se-br-rs, var(--_ctm-dn-wt-se-dt-se-br-rs))
|
|
751
|
+
);
|
|
752
|
+
|
|
753
|
+
box-shadow: var(
|
|
754
|
+
--_show-shadow,
|
|
755
|
+
var(
|
|
756
|
+
--_ctm-mob-dn-wt-se-dt-se-sw-ae,
|
|
757
|
+
var(--_ctm-tab-dn-wt-se-dt-se-sw-ae, var(--_ctm-dn-wt-se-dt-se-sw-ae))
|
|
758
|
+
)
|
|
759
|
+
var(
|
|
760
|
+
--_ctm-mob-dn-wt-se-dt-se-sw-br,
|
|
761
|
+
var(--_ctm-tab-dn-wt-se-dt-se-sw-br, var(--_ctm-dn-wt-se-dt-se-sw-br))
|
|
762
|
+
)
|
|
763
|
+
var(
|
|
764
|
+
--_ctm-mob-dn-wt-se-dt-se-sw-sd,
|
|
765
|
+
var(--_ctm-tab-dn-wt-se-dt-se-sw-sd, var(--_ctm-dn-wt-se-dt-se-sw-sd))
|
|
766
|
+
)
|
|
767
|
+
var(
|
|
768
|
+
--_ctm-mob-dn-wt-se-dt-se-sw-cr,
|
|
769
|
+
var(--_ctm-tab-dn-wt-se-dt-se-sw-cr, var(--_ctm-dn-wt-se-dt-se-sw-cr))
|
|
770
|
+
)
|
|
771
|
+
);
|
|
772
|
+
&:hover {
|
|
773
|
+
// Hover state, falling back to the default state per property so a widget
|
|
774
|
+
// that only sets a hover colour keeps the default font, size and the rest.
|
|
775
|
+
@include widgetStateFont(hr-se, dt-se);
|
|
776
|
+
background-color: var(
|
|
777
|
+
--_ctm-mob-dn-wt-se-hr-se-bd-cr,
|
|
778
|
+
var(--_ctm-tab-dn-wt-se-hr-se-bd-cr, var(--_ctm-dn-wt-se-hr-se-bd-cr))
|
|
779
|
+
);
|
|
780
|
+
|
|
781
|
+
border-color: var(
|
|
782
|
+
--_ctm-mob-dn-wt-se-hr-se-br-cr,
|
|
783
|
+
var(--_ctm-tab-dn-wt-se-hr-se-br-cr, var(--_ctm-dn-wt-se-hr-se-br-cr))
|
|
784
|
+
);
|
|
785
|
+
|
|
786
|
+
border-style: var(
|
|
787
|
+
--_ctm-mob-dn-wt-se-hr-se-br-se,
|
|
788
|
+
var(--_ctm-tab-dn-wt-se-hr-se-br-se, var(--_ctm-dn-wt-se-hr-se-br-se))
|
|
789
|
+
);
|
|
790
|
+
|
|
791
|
+
border-width: var(
|
|
792
|
+
--_ctm-mob-dn-wt-se-hr-se-br-wh,
|
|
793
|
+
var(--_ctm-tab-dn-wt-se-hr-se-br-wh, var(--_ctm-dn-wt-se-hr-se-br-wh))
|
|
794
|
+
);
|
|
795
|
+
|
|
796
|
+
border-radius: var(
|
|
797
|
+
--_ctm-mob-dn-wt-se-hr-se-br-rs,
|
|
798
|
+
var(--_ctm-tab-dn-wt-se-hr-se-br-rs, var(--_ctm-dn-wt-se-hr-se-br-rs))
|
|
799
|
+
);
|
|
800
|
+
|
|
801
|
+
box-shadow: var(
|
|
802
|
+
--_show-shadow,
|
|
803
|
+
var(
|
|
804
|
+
--_ctm-mob-dn-wt-se-hr-se-sw-ae,
|
|
805
|
+
var(--_ctm-tab-dn-wt-se-hr-se-sw-ae, var(--_ctm-dn-wt-se-hr-se-sw-ae))
|
|
806
|
+
)
|
|
807
|
+
var(
|
|
808
|
+
--_ctm-mob-dn-wt-se-hr-se-sw-br,
|
|
809
|
+
var(--_ctm-tab-dn-wt-se-hr-se-sw-br, var(--_ctm-dn-wt-se-hr-se-sw-br))
|
|
810
|
+
)
|
|
811
|
+
var(
|
|
812
|
+
--_ctm-mob-dn-wt-se-hr-se-sw-sd,
|
|
813
|
+
var(--_ctm-tab-dn-wt-se-hr-se-sw-sd, var(--_ctm-dn-wt-se-hr-se-sw-sd))
|
|
814
|
+
)
|
|
815
|
+
var(
|
|
816
|
+
--_ctm-mob-dn-wt-se-hr-se-sw-cr,
|
|
817
|
+
var(--_ctm-tab-dn-wt-se-hr-se-sw-cr, var(--_ctm-dn-wt-se-hr-se-sw-cr))
|
|
818
|
+
)
|
|
819
|
+
);
|
|
820
|
+
}
|
|
821
|
+
.option_select {
|
|
822
|
+
// Truncation is handled by `.language__name` inside, which knows whether
|
|
823
|
+
// Text Overflow is on and how many lines to clamp to. A `white-space:
|
|
824
|
+
// nowrap` here inherited down and defeated the multi-line clamp.
|
|
825
|
+
overflow: hidden;
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
// Widget Style > Hover > Text Overflow. The clamp pair reaches the DOM as an
|
|
829
|
+
// inline style (it is `controls`, not CSS), so hover cannot be expressed by
|
|
830
|
+
// the variable cascade above — the element publishes both pairs on the label
|
|
831
|
+
// and this rule chooses the hovered one, falling back to the default pair.
|
|
832
|
+
// Safe to scope on the wrapper: the options list is its sibling, not a
|
|
833
|
+
// descendant, so option labels keep their own Item Style clamp.
|
|
834
|
+
&:hover {
|
|
835
|
+
.language__name,
|
|
836
|
+
.value__selected__new {
|
|
837
|
+
-webkit-line-clamp: var(--_sf-it-clamp-hr, var(--_sf-it-clamp, 1));
|
|
838
|
+
white-space: var(--_sf-it-ws-hr, var(--_sf-it-ws, nowrap));
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
.est__dropdown__button {
|
|
844
|
+
display: flex;
|
|
845
|
+
align-items: center;
|
|
846
|
+
width: 100%;
|
|
847
|
+
position: relative;
|
|
848
|
+
gap: 8px;
|
|
849
|
+
// Keeps the label shrinkable so a larger font size truncates instead of
|
|
850
|
+
// pushing the toggle icon out of the widget.
|
|
851
|
+
min-width: 0;
|
|
852
|
+
|
|
853
|
+
& > .option_select,
|
|
854
|
+
& > .value__selected__new {
|
|
855
|
+
flex: 1 1 auto;
|
|
856
|
+
min-width: 0;
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
.est__dropdown__icon {
|
|
861
|
+
// position: absolute;
|
|
862
|
+
// right: 0;
|
|
863
|
+
transition: transform 0.4s ease-in-out;
|
|
864
|
+
display: flex;
|
|
865
|
+
&.rotate__180 {
|
|
866
|
+
transform: rotate(180deg);
|
|
867
|
+
}
|
|
868
|
+
&.rotate__0 {
|
|
869
|
+
transform: rotate(0deg);
|
|
870
|
+
}
|
|
871
|
+
width: prepareMediaVariable(--_ctm-dn-te-in-in-se);
|
|
872
|
+
height: prepareMediaVariable(--_ctm-dn-te-in-in-se);
|
|
873
|
+
|
|
874
|
+
svg {
|
|
875
|
+
width: prepareMediaVariable(--_ctm-dn-te-in-in-se);
|
|
876
|
+
height: prepareMediaVariable(--_ctm-dn-te-in-in-se);
|
|
877
|
+
|
|
878
|
+
path {
|
|
879
|
+
stroke: var(
|
|
880
|
+
--_ctm-mob-dn-te-in-in-c1,
|
|
881
|
+
var(--_ctm-tab-dn-te-in-cr, var(--_ctm-dn-te-in-in-c1))
|
|
882
|
+
);
|
|
883
|
+
// Overrides the stroke-width presentation attribute baked into the icon markup.
|
|
884
|
+
stroke-width: prepareMediaVariable(--_ctm-dn-te-in-se-wh, 1.25);
|
|
885
|
+
}
|
|
886
|
+
}
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
.list {
|
|
890
|
+
flex-direction: column;
|
|
891
|
+
border: 1px solid var(--_gray-200);
|
|
892
|
+
border-radius: 6px;
|
|
893
|
+
position: absolute;
|
|
894
|
+
top: 100%;
|
|
895
|
+
left: 0;
|
|
896
|
+
width: 100%;
|
|
897
|
+
padding: 4px;
|
|
898
|
+
background-color: prepareMediaVariable(--_ctm-dn-wt-dn-bd-cr);
|
|
899
|
+
border-radius: prepareMediaVariable(--_ctm-dn-wt-dn-br-rs);
|
|
900
|
+
z-index: var(--_higher-zIndex);
|
|
901
|
+
max-height: 200px;
|
|
902
|
+
overflow-y: auto;
|
|
903
|
+
border-width: prepareMediaVariable(--_ctm-dn-wt-dn-br-wh);
|
|
904
|
+
border-style: prepareMediaVariable(--_ctm-dn-wt-dn-br-se);
|
|
905
|
+
border-color: prepareMediaVariable(--_ctm-dn-wt-dn-br-cr);
|
|
906
|
+
// margin-top: var(
|
|
907
|
+
// --_ctm-mob-lt-gp-bn-is,
|
|
908
|
+
// var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is))
|
|
909
|
+
// );
|
|
910
|
+
gap: var(--_ctm-mob-lt-gp-bn-is, var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is)));
|
|
911
|
+
// padding: 2px;
|
|
912
|
+
// border-radius: 4px;
|
|
913
|
+
// border: 1px solid var(--_gray-300);
|
|
914
|
+
box-shadow: prepareMediaVariable(--_ctm-dn-wt-dn-sw-ae)
|
|
915
|
+
prepareMediaVariable(--_ctm-dn-wt-dn-sw-br)
|
|
916
|
+
prepareMediaVariable(--_ctm-dn-wt-dn-sw-sd)
|
|
917
|
+
prepareMediaVariable(--_ctm-dn-wt-dn-sw-cr);
|
|
918
|
+
|
|
919
|
+
&.top {
|
|
920
|
+
bottom: 100%;
|
|
921
|
+
top: auto;
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
.option {
|
|
925
|
+
cursor: pointer;
|
|
926
|
+
// &:not(:last-child) {
|
|
927
|
+
// margin-bottom: 2px;
|
|
928
|
+
// }
|
|
929
|
+
// padding: 4px;
|
|
930
|
+
// &:hover {
|
|
931
|
+
// background: var(--_gray-100);
|
|
932
|
+
// border-radius: 4px;
|
|
933
|
+
// }
|
|
934
|
+
}
|
|
935
|
+
&.show__panel {
|
|
936
|
+
animation: slideUp 0.4s ease-in-out forwards;
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
&.hide__panel {
|
|
940
|
+
animation: slideDown 0.4s ease-in-out forwards;
|
|
941
|
+
pointer-events: none;
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
}
|