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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/add-existing-form.scss +5 -13
  2. package/dist/add-order.scss +236 -126
  3. package/dist/add-products-tab-details.scss +2097 -1048
  4. package/dist/add-products-tab.scss +1204 -666
  5. package/dist/allocation-header-quota-details.scss +407 -189
  6. package/dist/allocationDetails.scss +2143 -1661
  7. package/dist/allocations-quota-details.scss +323 -159
  8. package/dist/allocations.scss +793 -475
  9. package/dist/amount-estimator.scss +743 -405
  10. package/dist/badge.scss +18 -43
  11. package/dist/brand-basic-elements.scss +124 -76
  12. package/dist/brand.scss +55 -28
  13. package/dist/breadcrumbs.scss +718 -356
  14. package/dist/builder.js +1 -1
  15. package/dist/builderLite.js +1 -1
  16. package/dist/bulk-variant-picker.scss +2027 -1128
  17. package/dist/bundle.scss +1477 -841
  18. package/dist/bundleDetails.scss +5072 -3774
  19. package/dist/button.scss +103 -79
  20. package/dist/buy-for-tab-container.scss +106 -77
  21. package/dist/buyForHeaders.scss +2976 -1722
  22. package/dist/cart-details.scss +1012 -481
  23. package/dist/cart-summary.scss +1149 -557
  24. package/dist/cart-wrapper.scss +79 -37
  25. package/dist/cart.scss +225 -117
  26. package/dist/cartAttributes.scss +735 -416
  27. package/dist/category-groups-element.scss +108 -127
  28. package/dist/category-groups-product-grid.scss +147 -120
  29. package/dist/category-groups-product-image.scss +1457 -1162
  30. package/dist/category-groups-product-options.scss +680 -613
  31. package/dist/category-groups-product-price.scss +3244 -1966
  32. package/dist/category-groups-quota-details.scss +464 -210
  33. package/dist/category.scss +50 -26
  34. package/dist/checkout.scss +16 -24
  35. package/dist/confirm-modal.scss +2 -22
  36. package/dist/container.scss +54 -32
  37. package/dist/countdown.scss +443 -255
  38. package/dist/coupon.scss +710 -351
  39. package/dist/default-dropdown.scss +1 -12
  40. package/dist/embroider-template-1-v2.scss +172 -123
  41. package/dist/embroider-template-1.scss +104 -68
  42. package/dist/embroidery.scss +31 -30
  43. package/dist/employee-bulk-order.scss +142 -418
  44. package/dist/faq.scss +408 -228
  45. package/dist/filter-results.scss +265 -125
  46. package/dist/filters.scss +1797 -900
  47. package/dist/gallery-slider-temp.scss +750 -432
  48. package/dist/global-styles.scss +7 -23
  49. package/dist/grid.scss +33 -25
  50. package/dist/hotspot.scss +115 -68
  51. package/dist/image-temp.scss +20 -21
  52. package/dist/item-stock.scss +16 -9
  53. package/dist/kitDetails.scss +4301 -2721
  54. package/dist/kits.scss +19 -24
  55. package/dist/language-selector.scss +361 -211
  56. package/dist/last-x-orders.scss +174 -95
  57. package/dist/layouter-item.scss +103 -75
  58. package/dist/layouter-pro-item.scss +95 -89
  59. package/dist/layouter-pro.scss +92 -87
  60. package/dist/layouter.scss +445 -383
  61. package/dist/light-box-v2.scss +104 -89
  62. package/dist/login.scss +566 -287
  63. package/dist/map.scss +368 -221
  64. package/dist/marchandiserSets.scss +104 -95
  65. package/dist/mega-menu-container.scss +109 -96
  66. package/dist/mega-menu.scss +731 -624
  67. package/dist/menu-item.scss +2 -2
  68. package/dist/menu-v2.scss +619 -507
  69. package/dist/multi-select-dropdown.scss +3 -27
  70. package/dist/my-templates.scss +9 -38
  71. package/dist/option-bar.scss +375 -215
  72. package/dist/option-families.scss +252 -0
  73. package/dist/order-status.scss +1117 -646
  74. package/dist/overflow-module.scss +7 -6
  75. package/dist/past-orders.scss +149 -118
  76. package/dist/payment-methods.scss +30 -46
  77. package/dist/pickup-locations.scss +1118 -558
  78. package/dist/position-module.scss +17 -20
  79. package/dist/prefix-list.scss +10 -21
  80. package/dist/product-actions.scss +2316 -1610
  81. package/dist/product-basic-elements.scss +169 -108
  82. package/dist/product-highlights.scss +152 -107
  83. package/dist/product-image-bundles.scss +642 -337
  84. package/dist/product-inventory.scss +1357 -673
  85. package/dist/product-labels.scss +105 -84
  86. package/dist/product-options.scss +1274 -1117
  87. package/dist/product-price.scss +2561 -1283
  88. package/dist/product-promotions.scss +2830 -1388
  89. package/dist/product-sizechart.scss +905 -516
  90. package/dist/product.scss +61 -28
  91. package/dist/productDetails.scss +39 -19
  92. package/dist/profile.scss +447 -207
  93. package/dist/quantity-selector.scss +550 -313
  94. package/dist/quick-inventory-check.scss +174 -95
  95. package/dist/quick-links.scss +133 -55
  96. package/dist/quick-order-pad.scss +271 -218
  97. package/dist/quota-details.scss +282 -152
  98. package/dist/quotes.scss +122 -89
  99. package/dist/repeater-embla-controls.scss +15 -35
  100. package/dist/repeater-grid-toggle.scss +166 -156
  101. package/dist/repeater-item.scss +64 -41
  102. package/dist/repeater.scss +814 -671
  103. package/dist/request-for-quotes.scss +16 -66
  104. package/dist/responsive-behaviour.scss +1 -3
  105. package/dist/rfqs.scss +181 -118
  106. package/dist/scroll.scss +172 -93
  107. package/dist/search.scss +326 -179
  108. package/dist/section.scss +51 -27
  109. package/dist/shipping-payments.scss +58 -198
  110. package/dist/simple-list.scss +164 -74
  111. package/dist/social.scss +145 -80
  112. package/dist/sort.scss +19 -11
  113. package/dist/stack.scss +34 -23
  114. package/dist/static-global.scss +26 -44
  115. package/dist/stockStatus.scss +19 -11
  116. package/dist/store-locations.scss +1105 -577
  117. package/dist/tab-container.scss +108 -81
  118. package/dist/table-common.scss +408 -217
  119. package/dist/table.scss +502 -271
  120. package/dist/text-temp.scss +7 -8
  121. package/dist/theme-classes.scss +13 -17
  122. package/dist/types/builder/enums/data-connectors.d.ts +3 -1
  123. package/dist/types/builder/enums/index.d.ts +3 -1
  124. package/dist/types/builder/tools/element-edit/index.d.ts +2 -1
  125. package/dist/types/builder/tools/element-edit/optionFamilies.d.ts +20 -0
  126. package/dist/types/website/constants/data-connector-souces.d.ts +40 -8
  127. package/dist/types/website/constants/data-connectors.d.ts +12 -1
  128. package/dist/types/website/helper/ssr-functions.d.ts +8 -0
  129. package/dist/uom-selector.scss +949 -489
  130. package/dist/user-elements.scss +837 -529
  131. package/dist/variant-picker.scss +2555 -1281
  132. package/dist/volume-pricing.scss +1037 -541
  133. package/dist/website.js +1 -1
  134. package/dist/widget.scss +1 -0
  135. package/package.json +1 -1
@@ -0,0 +1,252 @@
1
+ @use "./functions.scss" as *;
2
+
3
+ // Option Families — swatch tiles of option families ("Shop by Color"): every family, the ones
4
+ // picked in Choose Item, or one per row when repeated by a Repeater.
5
+ //
6
+ // Variable names come from the builderData keys in element-edit/optionFamilies.ts:
7
+ // layout.swatchHeight -> --_ctm-lt-sh-ht
8
+ // design.tile.* -> --_ctm-dn-te-*
9
+ // design.swatch.* -> --_ctm-dn-sh-*
10
+ // design.image.* -> --_ctm-dn-ie-*
11
+ // design.label.* -> --_ctm-dn-ll-*
12
+ // Keep this file in step with storefront-cms-library/src/components/css/widgets/option-families.scss.
13
+
14
+ [data-div-type="element"] {
15
+ &[data-element-type="optionFamilies"] {
16
+ // Reads the percentage the left/right resize handles write, same as Quota Details.
17
+ width: var(
18
+ --_sf-el-wh-st-mx,
19
+ calc(
20
+ 1% * var(--_ctm-mob-ele-nw-wh-vl, var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl)))
21
+ )
22
+ );
23
+ min-width: 64px;
24
+ margin: prepareMediaVariable(--_ctm-lt-mn, 0);
25
+
26
+ & > .wrapper {
27
+ width: 100%;
28
+ height: auto;
29
+ }
30
+
31
+ // Connected on its own the element holds every family shown in Choose Item, one tile each,
32
+ // side by side in a single row that shares the element's width. Inside a Repeater it holds one.
33
+ .option__families__list {
34
+ display: flex;
35
+ flex-wrap: nowrap;
36
+ gap: 12px;
37
+ width: 100%;
38
+
39
+ & > * {
40
+ flex: 1 1 0;
41
+ min-width: 0;
42
+ }
43
+ }
44
+
45
+ .option__families__tile {
46
+ display: flex;
47
+ flex-direction: column;
48
+ gap: prepareMediaVariable(--_ctm-dn-te-im-gp);
49
+ width: 100%;
50
+ box-sizing: border-box;
51
+ padding: prepareMediaVariable(--_ctm-lt-pg, 8px);
52
+ color: inherit;
53
+ text-decoration: none;
54
+ background-color: prepareMediaVariable(--_ctm-dn-te-bd-cr, #ffffff);
55
+ border-color: prepareMediaVariable(--_ctm-dn-te-br-cr, #eaecf0);
56
+ border-style: prepareMediaVariable(--_ctm-dn-te-br-se, solid);
57
+ border-width: prepareMediaVariable(--_ctm-dn-te-br-wh, 1px);
58
+ border-radius: prepareMediaVariable(--_ctm-dn-te-br-rs, 6px);
59
+ box-shadow: var(
60
+ --_sf-of-te-show-shadow,
61
+ prepareMediaVariable(--_ctm-dn-te-sw-ae, 0px 0px)
62
+ prepareMediaVariable(--_ctm-dn-te-sw-br, 0px)
63
+ prepareMediaVariable(--_ctm-dn-te-sw-sd, 0px)
64
+ prepareMediaVariable(--_ctm-dn-te-sw-cr, transparent)
65
+ );
66
+ transition: transform 0.15s ease;
67
+
68
+ &[data-has-link="true"] {
69
+ cursor: pointer;
70
+
71
+ // &:hover {
72
+ // transform: translateY(-2px);
73
+ // }
74
+ }
75
+ }
76
+
77
+ &[data-tile-shadow="false"] .option__families__tile {
78
+ --_sf-of-te-show-shadow: none;
79
+ }
80
+
81
+ .option__families__swatch {
82
+ position: relative;
83
+ display: flex;
84
+ align-items: flex-end;
85
+ justify-content: center;
86
+ overflow: hidden;
87
+ width: 100%;
88
+ height: prepareMediaVariable(--_ctm-lt-sh-ht, 88px);
89
+ box-sizing: border-box;
90
+ // `--_sf-of-swatch` is the row's hex colour, set on the element by the renderer.
91
+ background-color: var(--_sf-of-swatch, #d0d5dd);
92
+ border-color: prepareMediaVariable(--_ctm-dn-sh-br-cr, #eaecf0);
93
+ border-style: prepareMediaVariable(--_ctm-dn-sh-br-se, solid);
94
+ border-width: prepareMediaVariable(--_ctm-dn-sh-br-wh, 0px);
95
+ border-radius: prepareMediaVariable(--_ctm-dn-sh-br-rs, 4px);
96
+ box-shadow: var(
97
+ --_sf-of-sh-show-shadow,
98
+ prepareMediaVariable(--_ctm-dn-sh-sw-ae, 0px 0px)
99
+ prepareMediaVariable(--_ctm-dn-sh-sw-br, 0px)
100
+ prepareMediaVariable(--_ctm-dn-sh-sw-sd, 0px)
101
+ prepareMediaVariable(--_ctm-dn-sh-sw-cr, transparent)
102
+ );
103
+
104
+ // Measured by SwatchImage (OptionFamilies.tsx) for the size it asks the CDN for.
105
+ .option__families__image-frame {
106
+ position: absolute;
107
+ inset: 0;
108
+ }
109
+
110
+ .option__families__image {
111
+ position: absolute;
112
+ inset: 0;
113
+ width: 100%;
114
+ height: 100%;
115
+ box-sizing: border-box;
116
+ object-fit: cover;
117
+ object-position: center;
118
+ background-color: prepareMediaVariable(--_ctm-dn-ie-bd-cr, transparent);
119
+ border-color: prepareMediaVariable(--_ctm-dn-ie-br-cr, #eaecf0);
120
+ border-style: prepareMediaVariable(--_ctm-dn-ie-br-se, solid);
121
+ border-width: prepareMediaVariable(--_ctm-dn-ie-br-wh, 0px);
122
+ border-radius: prepareMediaVariable(--_ctm-dn-ie-br-rs, 0px);
123
+ transition: transform 0.3s ease-in-out;
124
+ // Fit Options and Image Position are applied by the image CDN (scale.option /
125
+ // canvas.position in the request URL, see OptionFamilies.tsx), which returns an
126
+ // image of exactly the swatch's size — so nothing to fit here.
127
+ }
128
+
129
+ .option__families__label {
130
+ position: relative;
131
+ z-index: 2;
132
+ padding: 0 6px 8px;
133
+ }
134
+ }
135
+
136
+ // Layout > Image Settings > On Hover. The swatch clips it (overflow: hidden), so the
137
+ // zoom stays inside the tile. Zoom Out is a visible 0.92 — the Image element's 0.9998
138
+ // is too small to see on a swatch this size.
139
+ .option__families__tile:hover .option__families__image {
140
+ &[data-on-hover="Zoom In"] {
141
+ transform: scale(1.08);
142
+ }
143
+ &[data-on-hover="Zoom Out"] {
144
+ transform: scale(0.92);
145
+ }
146
+ }
147
+
148
+ // Layout > Swatch Shape. Rectangle is the default above: a full-width tile and swatch, with
149
+ // the Border Radius set in Design for each. Square and Circle make the swatch Swatch Height on
150
+ // each side and shrink the tile around it, so every border — tile, swatch and image — takes
151
+ // the shape: square corners for Square, round for Circle. There the shape decides the corners
152
+ // and the Design > Border Radius controls do not apply.
153
+ &[data-swatch-shape="square"],
154
+ &[data-swatch-shape="circle"] {
155
+ .option__families__tile {
156
+ flex: 0 1 auto;
157
+ width: fit-content;
158
+ max-width: 100%;
159
+ margin-inline: auto;
160
+ }
161
+
162
+ .option__families__swatch {
163
+ width: prepareMediaVariable(--_ctm-lt-sh-ht, 88px);
164
+ max-width: 100%;
165
+ align-self: center;
166
+ }
167
+ }
168
+
169
+ // &[data-swatch-shape="square"] {
170
+ // .option__families__tile,
171
+ // .option__families__swatch,
172
+ // .option__families__image {
173
+ // border-radius: 0;
174
+ // }
175
+ // }
176
+
177
+ &[data-swatch-shape="circle"] {
178
+ // The swatch and its image are square boxes, so 50% makes them round.
179
+ .option__families__swatch,
180
+ .option__families__image {
181
+ border-radius: 50%;
182
+ }
183
+
184
+ // With the name inside the swatch the tile is square too (swatch plus even padding) and
185
+ // 50% draws a circle. A name below makes it taller than wide, where 50% would draw an
186
+ // oval, so it becomes a pill instead.
187
+ &[data-label-position="inside"] .option__families__tile {
188
+ border-radius: 50%;
189
+ }
190
+ &[data-label-position="below"] .option__families__tile {
191
+ border-radius: 9999px;
192
+ }
193
+ }
194
+
195
+ &[data-swatch-shadow="false"] .option__families__swatch {
196
+ --_sf-of-sh-show-shadow: none;
197
+ }
198
+
199
+ .option__families__label {
200
+ display: block;
201
+ min-width: 0;
202
+ overflow-wrap: anywhere;
203
+ color: prepareMediaVariable(--_ctm-dn-ll-cr, #ffffff);
204
+ font-family: prepareMediaVariable(--_ctm-dn-ll-ft-fy);
205
+ font-size: prepareMediaVariable(--_ctm-dn-ll-ft-se, 14px);
206
+ font-weight: prepareMediaVariable(--_ctm-dn-ll-ft-wt, bold);
207
+ font-style: prepareMediaVariable(--_ctm-dn-ll-ft-se-ic);
208
+ text-align: prepareMediaVariable(--_ctm-dn-ll-tt-an, center);
209
+ letter-spacing: prepareMediaVariable(--_ctm-dn-ll-lr-sg);
210
+ line-height: prepareMediaVariable(--_ctm-dn-ll-le-ht);
211
+ text-decoration: prepareMediaVariable(--_ctm-dn-ll-ue);
212
+ text-transform: prepareMediaVariable(--_ctm-dn-ll-tt-tm, uppercase);
213
+ box-sizing: border-box;
214
+ max-width: 100%;
215
+
216
+ // Design > Label > Typography > Text Overflow: N lines, then an ellipsis. `--_sf-line-clamp`
217
+ // is set on the label by the renderer. `overflow-wrap: anywhere` above would break a long
218
+ // word across lines before the ellipsis could apply, so the clamp restores normal wrapping.
219
+ &.flex__overflow {
220
+ @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
221
+ overflow-wrap: normal;
222
+ word-break: normal;
223
+ }
224
+ }
225
+
226
+ // A Square or Circle tile is only as wide as its content. A label below the swatch would
227
+ // widen it to fit the whole name, leaving nothing to clamp; this makes the label take the
228
+ // tile's width (set by the swatch) without adding to it.
229
+ &[data-swatch-shape="square"],
230
+ &[data-swatch-shape="circle"] {
231
+ &[data-label-position="below"] .option__families__tile > .option__families__label {
232
+ width: 0;
233
+ min-width: 100%;
234
+ }
235
+ }
236
+
237
+ // Light swatches get a faint inner edge so they don't melt into a white tile. An
238
+ // outline, not the border: the border width holds four values and is the merchant's.
239
+ .option__families__swatch[data-light="true"] {
240
+ outline: 1px solid rgba(16, 24, 40, 0.12);
241
+ outline-offset: -1px;
242
+ }
243
+
244
+ // A white label disappears on white/cream swatches. Only while the label sits inside
245
+ // the swatch — below it, the label is on the tile and keeps its own colour.
246
+ &[data-label-position="inside"]
247
+ .option__families__swatch[data-light="true"]
248
+ .option__families__label {
249
+ color: #344054;
250
+ }
251
+ }
252
+ }