@sc-360-v2/storefront-cms-library 0.5.70 → 0.5.72
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/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-wrapper.scss +127 -127
- 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/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/flex-text-editor.scss +271 -271
- package/dist/form-preview.scss +530 -530
- 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/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 +74 -0
- 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-inventory.scss +1621 -1621
- package/dist/product-labels.scss +265 -265
- 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/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.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/sort.scss +176 -176
- 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/wishlist-overlay.scss +48 -48
- package/package.json +1 -1
package/dist/skeleton.scss
CHANGED
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
// `.skeleton__element` and `@keyframes skeleton-shimmer` are NOT defined here.
|
|
2
|
-
//
|
|
3
|
-
// They used to be — a copy of the library's old skeleton.scss. But global-styles.scss
|
|
4
|
-
// also defines them (mirrored from storefront-websites globals, which is what the
|
|
5
|
-
// shared elements are written against), and both files load into the builder. The two
|
|
6
|
-
// definitions did not replace each other, they stacked:
|
|
7
|
-
//
|
|
8
|
-
// old rule -> .skeleton__element::before { absolute gradient + shimmer }
|
|
9
|
-
// new rule -> .skeleton__element::after { absolute gradient + shimmer }
|
|
10
|
-
//
|
|
11
|
-
// so every skeleton ran TWO shimmer sweeps at once (0.6 alpha over 0.4), which read as
|
|
12
|
-
// a flicker in the builder canvas. The old `border-radius: 6px` also leaked through,
|
|
13
|
-
// since the new rules never set one — corners the same skeleton does not have on the
|
|
14
|
-
// storefront. Confirmed in the browser on the cms-builder page: both pseudo-elements
|
|
15
|
-
// had `animation-name: skeleton-shimmer` and the box computed `border-radius: 6px`.
|
|
16
|
-
//
|
|
17
|
-
// global-styles.scss is now the single definition, so the builder and the storefront
|
|
18
|
-
// render these skeletons identically. Everything the old block set that still matters
|
|
19
|
-
// (`display: block`, `min-height`, background) is already there. Nothing in the CMS
|
|
20
|
-
// used `.skeleton__element.rounded` — the dashboard Skeleton is a CSS module with its
|
|
21
|
-
// own scoped class, and the shared Skeleton component sets its radius inline.
|
|
22
|
-
//
|
|
23
|
-
// If a skeleton style needs changing, change it in ONE of the two mirrored files
|
|
24
|
-
// (globals.scss in storefront-websites, global-styles.scss here) and copy it across.
|
|
25
|
-
|
|
26
|
-
// dropdown skeletons
|
|
27
|
-
.dpd_skeleton {
|
|
28
|
-
display: flex;
|
|
29
|
-
flex-direction: column;
|
|
30
|
-
gap: 4px;
|
|
31
|
-
padding: 4px;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// dropdown skeletons
|
|
35
|
-
.opt1_skeleton {
|
|
36
|
-
display: flex;
|
|
37
|
-
flex-direction: column;
|
|
38
|
-
padding: 4px 12px;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.opt2_skeleton {
|
|
42
|
-
display: flex;
|
|
43
|
-
flex-direction: column;
|
|
44
|
-
gap: 16px;
|
|
45
|
-
padding: 8px;
|
|
46
|
-
.emp_types {
|
|
47
|
-
display: flex;
|
|
48
|
-
flex-direction: column;
|
|
49
|
-
gap: 6px;
|
|
50
|
-
.emp_type {
|
|
51
|
-
display: flex;
|
|
52
|
-
gap: 8px;
|
|
53
|
-
}
|
|
54
|
-
.emp_dtls {
|
|
55
|
-
display: flex;
|
|
56
|
-
flex-direction: column;
|
|
57
|
-
gap: 6px;
|
|
58
|
-
.emp_code {
|
|
59
|
-
display: flex;
|
|
60
|
-
gap: 8px;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
1
|
+
// `.skeleton__element` and `@keyframes skeleton-shimmer` are NOT defined here.
|
|
2
|
+
//
|
|
3
|
+
// They used to be — a copy of the library's old skeleton.scss. But global-styles.scss
|
|
4
|
+
// also defines them (mirrored from storefront-websites globals, which is what the
|
|
5
|
+
// shared elements are written against), and both files load into the builder. The two
|
|
6
|
+
// definitions did not replace each other, they stacked:
|
|
7
|
+
//
|
|
8
|
+
// old rule -> .skeleton__element::before { absolute gradient + shimmer }
|
|
9
|
+
// new rule -> .skeleton__element::after { absolute gradient + shimmer }
|
|
10
|
+
//
|
|
11
|
+
// so every skeleton ran TWO shimmer sweeps at once (0.6 alpha over 0.4), which read as
|
|
12
|
+
// a flicker in the builder canvas. The old `border-radius: 6px` also leaked through,
|
|
13
|
+
// since the new rules never set one — corners the same skeleton does not have on the
|
|
14
|
+
// storefront. Confirmed in the browser on the cms-builder page: both pseudo-elements
|
|
15
|
+
// had `animation-name: skeleton-shimmer` and the box computed `border-radius: 6px`.
|
|
16
|
+
//
|
|
17
|
+
// global-styles.scss is now the single definition, so the builder and the storefront
|
|
18
|
+
// render these skeletons identically. Everything the old block set that still matters
|
|
19
|
+
// (`display: block`, `min-height`, background) is already there. Nothing in the CMS
|
|
20
|
+
// used `.skeleton__element.rounded` — the dashboard Skeleton is a CSS module with its
|
|
21
|
+
// own scoped class, and the shared Skeleton component sets its radius inline.
|
|
22
|
+
//
|
|
23
|
+
// If a skeleton style needs changing, change it in ONE of the two mirrored files
|
|
24
|
+
// (globals.scss in storefront-websites, global-styles.scss here) and copy it across.
|
|
25
|
+
|
|
26
|
+
// dropdown skeletons
|
|
27
|
+
.dpd_skeleton {
|
|
28
|
+
display: flex;
|
|
29
|
+
flex-direction: column;
|
|
30
|
+
gap: 4px;
|
|
31
|
+
padding: 4px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// dropdown skeletons
|
|
35
|
+
.opt1_skeleton {
|
|
36
|
+
display: flex;
|
|
37
|
+
flex-direction: column;
|
|
38
|
+
padding: 4px 12px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.opt2_skeleton {
|
|
42
|
+
display: flex;
|
|
43
|
+
flex-direction: column;
|
|
44
|
+
gap: 16px;
|
|
45
|
+
padding: 8px;
|
|
46
|
+
.emp_types {
|
|
47
|
+
display: flex;
|
|
48
|
+
flex-direction: column;
|
|
49
|
+
gap: 6px;
|
|
50
|
+
.emp_type {
|
|
51
|
+
display: flex;
|
|
52
|
+
gap: 8px;
|
|
53
|
+
}
|
|
54
|
+
.emp_dtls {
|
|
55
|
+
display: flex;
|
|
56
|
+
flex-direction: column;
|
|
57
|
+
gap: 6px;
|
|
58
|
+
.emp_code {
|
|
59
|
+
display: flex;
|
|
60
|
+
gap: 8px;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
package/dist/sort.scss
CHANGED
|
@@ -1,176 +1,176 @@
|
|
|
1
|
-
@use "sass:map";
|
|
2
|
-
@use "sass:list";
|
|
3
|
-
@use "./functions.scss" as *;
|
|
4
|
-
|
|
5
|
-
$resizerId: "[data-cms-tool='cms-element-resizer']";
|
|
6
|
-
$resizeActive: '[data-cms-element-resizer="true"]';
|
|
7
|
-
[data-div-type="element"] {
|
|
8
|
-
&[data-element-type="sort"] {
|
|
9
|
-
width: var(
|
|
10
|
-
--_sf-el-wh-st-mx,
|
|
11
|
-
calc(
|
|
12
|
-
1% *
|
|
13
|
-
var(
|
|
14
|
-
--_ctm-mob-ele-nw-wh-vl,
|
|
15
|
-
var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl, var(--_sf-nw-wh)))
|
|
16
|
-
)
|
|
17
|
-
)
|
|
18
|
-
);
|
|
19
|
-
margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
|
|
20
|
-
|
|
21
|
-
// The Design tab's Sort Button toggles. Both are CONTROLS with no CSS property of
|
|
22
|
-
// their own, so the element publishes them as data attributes and the styling has
|
|
23
|
-
// to act on them here — an unhandled toggle stores a value that never reaches the
|
|
24
|
-
// page, which is what the whole Design tab did before these variables were wired.
|
|
25
|
-
&[data-sort-button-shadow="false"] {
|
|
26
|
-
--_show-shadow-sort-button: none;
|
|
27
|
-
}
|
|
28
|
-
&[data-sort-button-border="false"] {
|
|
29
|
-
.est__dropdown {
|
|
30
|
-
border: none;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
& > div {
|
|
35
|
-
&.wrapper {
|
|
36
|
-
width: 100%;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
//Dropdown
|
|
40
|
-
.est__dropdown__main {
|
|
41
|
-
position: relative;
|
|
42
|
-
width: 100%;
|
|
43
|
-
|
|
44
|
-
label {
|
|
45
|
-
font-size: 14px;
|
|
46
|
-
color: var(--_gray-700);
|
|
47
|
-
margin-bottom: 8px;
|
|
48
|
-
display: block;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.est__dropdown {
|
|
52
|
-
cursor: pointer;
|
|
53
|
-
position: relative;
|
|
54
|
-
display: flex;
|
|
55
|
-
justify-content: space-between;
|
|
56
|
-
align-items: center;
|
|
57
|
-
gap: 8px;
|
|
58
|
-
width: 100%;
|
|
59
|
-
|
|
60
|
-
// Design > Sort Button. `--_ctm-dn-st-bn-*` is what the schema's
|
|
61
|
-
// design.sortButton scope emits: splitCamelCaseAndJoin("design") -> "dn",
|
|
62
|
-
// ("sortButton") -> "st-bn". The literals stay as the fallbacks so an element
|
|
63
|
-
// saved before the Design tab existed keeps the look it had.
|
|
64
|
-
background-color: prepareMediaVariable(--_ctm-dn-st-bn-bd-cr, #fff);
|
|
65
|
-
border-color: prepareMediaVariable(--_ctm-dn-st-bn-br-cr, transparent);
|
|
66
|
-
border-style: prepareMediaVariable(--_ctm-dn-st-bn-br-se, solid);
|
|
67
|
-
border-width: prepareMediaVariable(--_ctm-dn-st-bn-br-wh, 0);
|
|
68
|
-
border-radius: prepareMediaVariable(--_ctm-dn-st-bn-br-rs, 6px);
|
|
69
|
-
box-shadow: var(
|
|
70
|
-
--_show-shadow-sort-button,
|
|
71
|
-
prepareMediaVariable(--_ctm-dn-st-bn-sw-ae, 0 0)
|
|
72
|
-
prepareMediaVariable(--_ctm-dn-st-bn-sw-br, 0)
|
|
73
|
-
prepareMediaVariable(--_ctm-dn-st-bn-sw-sd, 0)
|
|
74
|
-
prepareMediaVariable(--_ctm-dn-st-bn-sw-cr, transparent)
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
.value__selected {
|
|
78
|
-
display: flex;
|
|
79
|
-
align-items: baseline;
|
|
80
|
-
gap: 4px;
|
|
81
|
-
// The title and the value are laid out side by side, so the pair has to be
|
|
82
|
-
// allowed to shrink — without min-width the flex item keeps its content
|
|
83
|
-
// width and pushes the chevron out of a narrow element instead of clamping.
|
|
84
|
-
min-width: 0;
|
|
85
|
-
flex: 1;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// Text Overflow is a CONTROL, not CSS: the element adds this class and
|
|
89
|
-
// publishes the line count inline, one variable per typography scope.
|
|
90
|
-
.sort__title.flex__overflow {
|
|
91
|
-
white-space: normal;
|
|
92
|
-
@include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
|
|
93
|
-
}
|
|
94
|
-
.selected__option.flex__overflow {
|
|
95
|
-
white-space: normal;
|
|
96
|
-
@include restrictToLinesShow(#{var(--_sf-line-clamp-desc, 1)});
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// Design > Sort Title (design.sortTitle -> "dn-st-te")
|
|
100
|
-
.sort__title {
|
|
101
|
-
color: prepareMediaVariable(--_ctm-dn-st-te-cr, var(--_gray-700));
|
|
102
|
-
font-family: var(--_sf-hr-ff, prepareMediaVariable(--_ctm-dn-st-te-ft-fy, inherit));
|
|
103
|
-
font-size: prepareMediaVariable(--_ctm-dn-st-te-ft-se, inherit);
|
|
104
|
-
font-weight: prepareMediaVariable(--_ctm-dn-st-te-ft-wt, inherit);
|
|
105
|
-
font-style: prepareMediaVariable(--_ctm-dn-st-te-ft-se-ic, normal);
|
|
106
|
-
text-align: prepareMediaVariable(--_ctm-dn-st-te-tt-an, left);
|
|
107
|
-
letter-spacing: prepareMediaVariable(--_ctm-dn-st-te-lr-sg, normal);
|
|
108
|
-
line-height: prepareMediaVariable(--_ctm-dn-st-te-le-ht, normal);
|
|
109
|
-
text-decoration: prepareMediaVariable(--_ctm-dn-st-te-ue, none);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
// Design > Selected Option (design.selectedOption -> "dn-sd-on")
|
|
113
|
-
.selected__option {
|
|
114
|
-
color: prepareMediaVariable(--_ctm-dn-sd-on-cr, var(--_gray-700));
|
|
115
|
-
font-family: var(--_sf-hr-ff, prepareMediaVariable(--_ctm-dn-sd-on-ft-fy, inherit));
|
|
116
|
-
font-size: prepareMediaVariable(--_ctm-dn-sd-on-ft-se, inherit);
|
|
117
|
-
font-weight: prepareMediaVariable(--_ctm-dn-sd-on-ft-wt, inherit);
|
|
118
|
-
font-style: prepareMediaVariable(--_ctm-dn-sd-on-ft-se-ic, normal);
|
|
119
|
-
text-align: prepareMediaVariable(--_ctm-dn-sd-on-tt-an, left);
|
|
120
|
-
letter-spacing: prepareMediaVariable(--_ctm-dn-sd-on-lr-sg, normal);
|
|
121
|
-
line-height: prepareMediaVariable(--_ctm-dn-sd-on-le-ht, normal);
|
|
122
|
-
text-decoration: prepareMediaVariable(--_ctm-dn-sd-on-ue, none);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
&.open .list {
|
|
126
|
-
display: flex;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
.list {
|
|
130
|
-
display: none;
|
|
131
|
-
flex-direction: column;
|
|
132
|
-
border: 1px solid var(--_gray-200);
|
|
133
|
-
border-radius: 6px;
|
|
134
|
-
position: absolute;
|
|
135
|
-
top: 100%;
|
|
136
|
-
left: 0;
|
|
137
|
-
width: 100%;
|
|
138
|
-
background-color: #fff;
|
|
139
|
-
border-radius: 4px;
|
|
140
|
-
z-index: var(--_higher-zIndex);
|
|
141
|
-
max-height: 200px;
|
|
142
|
-
overflow-y: auto;
|
|
143
|
-
|
|
144
|
-
&.top {
|
|
145
|
-
bottom: 100%;
|
|
146
|
-
top: auto;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
.list__option {
|
|
150
|
-
padding: 12px;
|
|
151
|
-
cursor: pointer;
|
|
152
|
-
// The list has no design scope of its own. It borrows the Selected
|
|
153
|
-
// Option's type so the open list matches the closed control — colour and
|
|
154
|
-
// alignment are left to the list's own resting/hover rules below, which
|
|
155
|
-
// are what make an option look clickable.
|
|
156
|
-
font-family: var(--_sf-hr-ff, prepareMediaVariable(--_ctm-dn-sd-on-ft-fy, inherit));
|
|
157
|
-
font-size: prepareMediaVariable(--_ctm-dn-sd-on-ft-se, inherit);
|
|
158
|
-
font-weight: prepareMediaVariable(--_ctm-dn-sd-on-ft-wt, inherit);
|
|
159
|
-
letter-spacing: prepareMediaVariable(--_ctm-dn-sd-on-lr-sg, normal);
|
|
160
|
-
color: var(--_gray-700);
|
|
161
|
-
|
|
162
|
-
&:hover {
|
|
163
|
-
background-color: var(--_primary-25);
|
|
164
|
-
color: var(--_primary-400);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
&[aria-selected="true"] {
|
|
168
|
-
background-color: var(--_primary-25);
|
|
169
|
-
color: var(--_primary-400);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "sass:list";
|
|
3
|
+
@use "./functions.scss" as *;
|
|
4
|
+
|
|
5
|
+
$resizerId: "[data-cms-tool='cms-element-resizer']";
|
|
6
|
+
$resizeActive: '[data-cms-element-resizer="true"]';
|
|
7
|
+
[data-div-type="element"] {
|
|
8
|
+
&[data-element-type="sort"] {
|
|
9
|
+
width: var(
|
|
10
|
+
--_sf-el-wh-st-mx,
|
|
11
|
+
calc(
|
|
12
|
+
1% *
|
|
13
|
+
var(
|
|
14
|
+
--_ctm-mob-ele-nw-wh-vl,
|
|
15
|
+
var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl, var(--_sf-nw-wh)))
|
|
16
|
+
)
|
|
17
|
+
)
|
|
18
|
+
);
|
|
19
|
+
margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
|
|
20
|
+
|
|
21
|
+
// The Design tab's Sort Button toggles. Both are CONTROLS with no CSS property of
|
|
22
|
+
// their own, so the element publishes them as data attributes and the styling has
|
|
23
|
+
// to act on them here — an unhandled toggle stores a value that never reaches the
|
|
24
|
+
// page, which is what the whole Design tab did before these variables were wired.
|
|
25
|
+
&[data-sort-button-shadow="false"] {
|
|
26
|
+
--_show-shadow-sort-button: none;
|
|
27
|
+
}
|
|
28
|
+
&[data-sort-button-border="false"] {
|
|
29
|
+
.est__dropdown {
|
|
30
|
+
border: none;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
& > div {
|
|
35
|
+
&.wrapper {
|
|
36
|
+
width: 100%;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//Dropdown
|
|
40
|
+
.est__dropdown__main {
|
|
41
|
+
position: relative;
|
|
42
|
+
width: 100%;
|
|
43
|
+
|
|
44
|
+
label {
|
|
45
|
+
font-size: 14px;
|
|
46
|
+
color: var(--_gray-700);
|
|
47
|
+
margin-bottom: 8px;
|
|
48
|
+
display: block;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.est__dropdown {
|
|
52
|
+
cursor: pointer;
|
|
53
|
+
position: relative;
|
|
54
|
+
display: flex;
|
|
55
|
+
justify-content: space-between;
|
|
56
|
+
align-items: center;
|
|
57
|
+
gap: 8px;
|
|
58
|
+
width: 100%;
|
|
59
|
+
|
|
60
|
+
// Design > Sort Button. `--_ctm-dn-st-bn-*` is what the schema's
|
|
61
|
+
// design.sortButton scope emits: splitCamelCaseAndJoin("design") -> "dn",
|
|
62
|
+
// ("sortButton") -> "st-bn". The literals stay as the fallbacks so an element
|
|
63
|
+
// saved before the Design tab existed keeps the look it had.
|
|
64
|
+
background-color: prepareMediaVariable(--_ctm-dn-st-bn-bd-cr, #fff);
|
|
65
|
+
border-color: prepareMediaVariable(--_ctm-dn-st-bn-br-cr, transparent);
|
|
66
|
+
border-style: prepareMediaVariable(--_ctm-dn-st-bn-br-se, solid);
|
|
67
|
+
border-width: prepareMediaVariable(--_ctm-dn-st-bn-br-wh, 0);
|
|
68
|
+
border-radius: prepareMediaVariable(--_ctm-dn-st-bn-br-rs, 6px);
|
|
69
|
+
box-shadow: var(
|
|
70
|
+
--_show-shadow-sort-button,
|
|
71
|
+
prepareMediaVariable(--_ctm-dn-st-bn-sw-ae, 0 0)
|
|
72
|
+
prepareMediaVariable(--_ctm-dn-st-bn-sw-br, 0)
|
|
73
|
+
prepareMediaVariable(--_ctm-dn-st-bn-sw-sd, 0)
|
|
74
|
+
prepareMediaVariable(--_ctm-dn-st-bn-sw-cr, transparent)
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
.value__selected {
|
|
78
|
+
display: flex;
|
|
79
|
+
align-items: baseline;
|
|
80
|
+
gap: 4px;
|
|
81
|
+
// The title and the value are laid out side by side, so the pair has to be
|
|
82
|
+
// allowed to shrink — without min-width the flex item keeps its content
|
|
83
|
+
// width and pushes the chevron out of a narrow element instead of clamping.
|
|
84
|
+
min-width: 0;
|
|
85
|
+
flex: 1;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Text Overflow is a CONTROL, not CSS: the element adds this class and
|
|
89
|
+
// publishes the line count inline, one variable per typography scope.
|
|
90
|
+
.sort__title.flex__overflow {
|
|
91
|
+
white-space: normal;
|
|
92
|
+
@include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
|
|
93
|
+
}
|
|
94
|
+
.selected__option.flex__overflow {
|
|
95
|
+
white-space: normal;
|
|
96
|
+
@include restrictToLinesShow(#{var(--_sf-line-clamp-desc, 1)});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Design > Sort Title (design.sortTitle -> "dn-st-te")
|
|
100
|
+
.sort__title {
|
|
101
|
+
color: prepareMediaVariable(--_ctm-dn-st-te-cr, var(--_gray-700));
|
|
102
|
+
font-family: var(--_sf-hr-ff, prepareMediaVariable(--_ctm-dn-st-te-ft-fy, inherit));
|
|
103
|
+
font-size: prepareMediaVariable(--_ctm-dn-st-te-ft-se, inherit);
|
|
104
|
+
font-weight: prepareMediaVariable(--_ctm-dn-st-te-ft-wt, inherit);
|
|
105
|
+
font-style: prepareMediaVariable(--_ctm-dn-st-te-ft-se-ic, normal);
|
|
106
|
+
text-align: prepareMediaVariable(--_ctm-dn-st-te-tt-an, left);
|
|
107
|
+
letter-spacing: prepareMediaVariable(--_ctm-dn-st-te-lr-sg, normal);
|
|
108
|
+
line-height: prepareMediaVariable(--_ctm-dn-st-te-le-ht, normal);
|
|
109
|
+
text-decoration: prepareMediaVariable(--_ctm-dn-st-te-ue, none);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Design > Selected Option (design.selectedOption -> "dn-sd-on")
|
|
113
|
+
.selected__option {
|
|
114
|
+
color: prepareMediaVariable(--_ctm-dn-sd-on-cr, var(--_gray-700));
|
|
115
|
+
font-family: var(--_sf-hr-ff, prepareMediaVariable(--_ctm-dn-sd-on-ft-fy, inherit));
|
|
116
|
+
font-size: prepareMediaVariable(--_ctm-dn-sd-on-ft-se, inherit);
|
|
117
|
+
font-weight: prepareMediaVariable(--_ctm-dn-sd-on-ft-wt, inherit);
|
|
118
|
+
font-style: prepareMediaVariable(--_ctm-dn-sd-on-ft-se-ic, normal);
|
|
119
|
+
text-align: prepareMediaVariable(--_ctm-dn-sd-on-tt-an, left);
|
|
120
|
+
letter-spacing: prepareMediaVariable(--_ctm-dn-sd-on-lr-sg, normal);
|
|
121
|
+
line-height: prepareMediaVariable(--_ctm-dn-sd-on-le-ht, normal);
|
|
122
|
+
text-decoration: prepareMediaVariable(--_ctm-dn-sd-on-ue, none);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
&.open .list {
|
|
126
|
+
display: flex;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.list {
|
|
130
|
+
display: none;
|
|
131
|
+
flex-direction: column;
|
|
132
|
+
border: 1px solid var(--_gray-200);
|
|
133
|
+
border-radius: 6px;
|
|
134
|
+
position: absolute;
|
|
135
|
+
top: 100%;
|
|
136
|
+
left: 0;
|
|
137
|
+
width: 100%;
|
|
138
|
+
background-color: #fff;
|
|
139
|
+
border-radius: 4px;
|
|
140
|
+
z-index: var(--_higher-zIndex);
|
|
141
|
+
max-height: 200px;
|
|
142
|
+
overflow-y: auto;
|
|
143
|
+
|
|
144
|
+
&.top {
|
|
145
|
+
bottom: 100%;
|
|
146
|
+
top: auto;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.list__option {
|
|
150
|
+
padding: 12px;
|
|
151
|
+
cursor: pointer;
|
|
152
|
+
// The list has no design scope of its own. It borrows the Selected
|
|
153
|
+
// Option's type so the open list matches the closed control — colour and
|
|
154
|
+
// alignment are left to the list's own resting/hover rules below, which
|
|
155
|
+
// are what make an option look clickable.
|
|
156
|
+
font-family: var(--_sf-hr-ff, prepareMediaVariable(--_ctm-dn-sd-on-ft-fy, inherit));
|
|
157
|
+
font-size: prepareMediaVariable(--_ctm-dn-sd-on-ft-se, inherit);
|
|
158
|
+
font-weight: prepareMediaVariable(--_ctm-dn-sd-on-ft-wt, inherit);
|
|
159
|
+
letter-spacing: prepareMediaVariable(--_ctm-dn-sd-on-lr-sg, normal);
|
|
160
|
+
color: var(--_gray-700);
|
|
161
|
+
|
|
162
|
+
&:hover {
|
|
163
|
+
background-color: var(--_primary-25);
|
|
164
|
+
color: var(--_primary-400);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
&[aria-selected="true"] {
|
|
168
|
+
background-color: var(--_primary-25);
|
|
169
|
+
color: var(--_primary-400);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|