@sc-360-v2/storefront-cms-library 0.5.59 → 0.5.61

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 (156) hide show
  1. package/dist/add-order.scss +2 -8
  2. package/dist/allocation-header-quota-details.scss +9 -4
  3. package/dist/allocationDetails.scss +167 -164
  4. package/dist/allocations-quota-details.scss +9 -4
  5. package/dist/allocations.scss +1 -4
  6. package/dist/animation-control.scss +23 -23
  7. package/dist/builder.js +1 -1
  8. package/dist/builderLite.js +1 -1
  9. package/dist/bulk-variant-picker.scss +24 -26
  10. package/dist/bundle copy.scss +235 -0
  11. package/dist/bundle.scss +10 -10
  12. package/dist/bundleCategories.scss +301 -0
  13. package/dist/bundleDetails.scss +10 -1
  14. package/dist/button copy.scss +28 -0
  15. package/dist/buy-for-tabs-container-item.scss +80 -80
  16. package/dist/buyForHeaders.scss +3 -12
  17. package/dist/cart-details.scss +23 -4
  18. package/dist/cart-products-sidebar.scss +211 -211
  19. package/dist/cart-summary.scss +82 -10
  20. package/dist/cart-wrapper.scss +127 -127
  21. package/dist/cart.scss +2 -2
  22. package/dist/cartDropdownOverlay.scss +10 -1
  23. package/dist/cartGrouping.scss +89 -89
  24. package/dist/category-groups-product-grid.scss +143 -155
  25. package/dist/category-groups-product-image.scss +1372 -2010
  26. package/dist/category-groups-product-options.scss +680 -1054
  27. package/dist/category-groups-product-price.scss +2742 -4997
  28. package/dist/category-groups-quota-details.scss +7 -2
  29. package/dist/categoryDetails.scss +61 -61
  30. package/dist/categoryWidget.scss +34 -34
  31. package/dist/checkbox-radio.scss +124 -124
  32. package/dist/checkout.scss +1850 -4170
  33. package/dist/common-element.scss +35 -35
  34. package/dist/confirmationModal.scss +139 -139
  35. package/dist/coupon.scss +352 -714
  36. package/dist/custom-fonts.scss +100 -100
  37. package/dist/embroider-preview-element.scss +94 -94
  38. package/dist/emtpy-templates.scss +165 -165
  39. package/dist/faq.scss +7 -11
  40. package/dist/flex-text-editor.scss +271 -271
  41. package/dist/functions.scss +36 -0
  42. package/dist/gallery-slider-temp.scss +42 -5
  43. package/dist/hotspot.scss +1 -4
  44. package/dist/icon-list.scss +30 -59
  45. package/dist/image-for-product.scss +21 -21
  46. package/dist/image-temp.scss +18 -3
  47. package/dist/language-selector.scss +29 -21
  48. package/dist/last-x-orders.scss +6 -13
  49. package/dist/layouter-item.scss +3 -1
  50. package/dist/layouter.scss +164 -29
  51. package/dist/lightbox.scss +78 -78
  52. package/dist/line.scss +29 -70
  53. package/dist/loader.scss +37 -37
  54. package/dist/login.scss +49 -41
  55. package/dist/map.scss +23 -9
  56. package/dist/mega-menu.scss +1 -4
  57. package/dist/menu-item.scss +19 -19
  58. package/dist/myTemplates.scss +3 -0
  59. package/dist/order-processing.scss +61 -61
  60. package/dist/overflow-module.scss +63 -63
  61. package/dist/pickup-locations.scss +6 -3
  62. package/dist/position-module.scss +95 -95
  63. package/dist/prefix-list.scss +86 -86
  64. package/dist/product-actions.scss +6 -9
  65. package/dist/product-highlights.scss +40 -12
  66. package/dist/product-image-bundles.scss +12 -33
  67. package/dist/product-image.scss +341 -724
  68. package/dist/product-labels.scss +10 -8
  69. package/dist/product-options.scss +270 -125
  70. package/dist/product-price.scss +8 -2
  71. package/dist/productDetails.scss +2 -1
  72. package/dist/profile.scss +28 -0
  73. package/dist/quick-inventory-check.scss +6 -13
  74. package/dist/quick-links.scss +4 -0
  75. package/dist/quick-order-pad.scss +2 -2
  76. package/dist/quota-details.scss +11 -15
  77. package/dist/repeater copy.scss +24 -0
  78. package/dist/repeater-embla-controls.scss +13 -4
  79. package/dist/repeater.scss +161 -7
  80. package/dist/responsive-behaviour.scss +29 -29
  81. package/dist/scroll.scss +31 -1
  82. package/dist/shareCartSideBar.scss +254 -254
  83. package/dist/shipping-estimator.scss +41 -41
  84. package/dist/simple-list.scss +67 -0
  85. package/dist/social.scss +2 -2
  86. package/dist/sort.scss +89 -89
  87. package/dist/static-text.scss +52 -52
  88. package/dist/store-locations.scss +10 -8
  89. package/dist/sub-category.scss +74 -74
  90. package/dist/submit-quote.scss +275 -275
  91. package/dist/tab-container-item.scss +80 -80
  92. package/dist/tab-v2.scss +277 -604
  93. package/dist/table-common.scss +2 -2
  94. package/dist/table.scss +2 -2
  95. package/dist/text-temp-v2.scss +12 -23
  96. package/dist/text-temp.scss +109 -109
  97. package/dist/toggle-button.scss +32 -32
  98. package/dist/transform-properties-module.scss +20 -20
  99. package/dist/types/builder/elements/bundle-categories/index.d.ts +30 -0
  100. package/dist/types/builder/enums/index.d.ts +1 -0
  101. package/dist/types/builder/index.d.ts +2 -1
  102. package/dist/types/builder/tools/element-edit/addProductsTab.d.ts +108 -0
  103. package/dist/types/builder/tools/element-edit/breadcrumbs.d.ts +6 -0
  104. package/dist/types/builder/tools/element-edit/bundle.d.ts +22 -0
  105. package/dist/types/builder/tools/element-edit/bundleCategories.d.ts +115 -0
  106. package/dist/types/builder/tools/element-edit/bundleDetails.d.ts +64 -0
  107. package/dist/types/builder/tools/element-edit/button.d.ts +1 -0
  108. package/dist/types/builder/tools/element-edit/buttonInstance.d.ts +10 -0
  109. package/dist/types/builder/tools/element-edit/buyForWithTab.d.ts +84 -0
  110. package/dist/types/builder/tools/element-edit/cart.d.ts +6 -0
  111. package/dist/types/builder/tools/element-edit/cartAttributes.d.ts +60 -0
  112. package/dist/types/builder/tools/element-edit/cartDetails.d.ts +16 -0
  113. package/dist/types/builder/tools/element-edit/cartSummary.d.ts +1325 -74
  114. package/dist/types/builder/tools/element-edit/categoryGroups.d.ts +158 -0
  115. package/dist/types/builder/tools/element-edit/checkout.d.ts +172 -0
  116. package/dist/types/builder/tools/element-edit/common.d.ts +2 -0
  117. package/dist/types/builder/tools/element-edit/countdown.d.ts +44 -0
  118. package/dist/types/builder/tools/element-edit/coupon.d.ts +28 -0
  119. package/dist/types/builder/tools/element-edit/embroidery.d.ts +37 -0
  120. package/dist/types/builder/tools/element-edit/filterResults.d.ts +4 -0
  121. package/dist/types/builder/tools/element-edit/icon-list.d.ts +11 -0
  122. package/dist/types/builder/tools/element-edit/index.d.ts +2 -1
  123. package/dist/types/builder/tools/element-edit/itemStock.d.ts +2 -0
  124. package/dist/types/builder/tools/element-edit/kitDetails.d.ts +66 -0
  125. package/dist/types/builder/tools/element-edit/kits.d.ts +4 -0
  126. package/dist/types/builder/tools/element-edit/layouter.d.ts +33 -1
  127. package/dist/types/builder/tools/element-edit/map.d.ts +5 -1
  128. package/dist/types/builder/tools/element-edit/marchandiserSets.d.ts +2 -0
  129. package/dist/types/builder/tools/element-edit/orderStatus.d.ts +17 -0
  130. package/dist/types/builder/tools/element-edit/paymentMethods.d.ts +6 -0
  131. package/dist/types/builder/tools/element-edit/productCustomizations.d.ts +14 -0
  132. package/dist/types/builder/tools/element-edit/productOptions.d.ts +3 -1
  133. package/dist/types/builder/tools/element-edit/productPrice.d.ts +1 -0
  134. package/dist/types/builder/tools/element-edit/quickLinks.d.ts +26 -0
  135. package/dist/types/builder/tools/element-edit/repeater.d.ts +45 -1
  136. package/dist/types/builder/tools/element-edit/scroll.d.ts +8 -11
  137. package/dist/types/builder/tools/element-edit/search.d.ts +1 -0
  138. package/dist/types/builder/tools/element-edit/searchResultsHeading.d.ts +6 -0
  139. package/dist/types/builder/tools/element-edit/shipping-payments.d.ts +72 -0
  140. package/dist/types/builder/tools/element-edit/shippingEstimator.d.ts +4 -0
  141. package/dist/types/builder/tools/element-edit/social.d.ts +2 -0
  142. package/dist/types/builder/tools/element-edit/spotlight.d.ts +2 -0
  143. package/dist/types/builder/tools/element-edit/table.d.ts +10 -0
  144. package/dist/types/builder/tools/element-edit/tabs.d.ts +6 -0
  145. package/dist/types/builder/tools/element-edit/typographyInstance.d.ts +110 -0
  146. package/dist/types/builder/tools/element-edit/userElements.d.ts +62 -22
  147. package/dist/types/builder/tools/element-edit/variantPicker.d.ts +4 -0
  148. package/dist/types/builder/tools/element-edit/video.d.ts +22 -0
  149. package/dist/uom-selector.scss +8 -2
  150. package/dist/user-elements.scss +133 -104
  151. package/dist/variant-picker.scss +1 -4
  152. package/dist/video.scss +147 -325
  153. package/dist/volume-pricing.scss +2 -2
  154. package/dist/website.js +1 -1
  155. package/dist/wishlist-overlay.scss +48 -48
  156. package/package.json +131 -131
@@ -20,19 +20,8 @@ $imagePositions: (
20
20
  "west": left center,
21
21
  );
22
22
 
23
- // Every divider in this widget is an absolutely positioned pseudo-element, so it takes
24
- // no space of its own and a thick one used to grow back over the text beside it.
25
- // Pairing this offset with `dividerGapReserve` on the item itself keeps the whole
26
- // divider inside the gap at any weight, with half the item spacing clear either side.
27
- @function dividerGapOffset($spacing-var, $weight-var) {
28
- @return calc(
29
- -1 * (#{prepareMediaVariable($spacing-var)} / 2) - #{prepareMediaVariable($weight-var)}
30
- );
31
- }
32
-
33
- @mixin dividerGapReserve($weight-var, $side: bottom) {
34
- margin-#{$side}: prepareMediaVariable($weight-var);
35
- }
23
+ // `dividerGapOffset` / `dividerGapReserve` moved to functions.scss — every widget draws
24
+ // its dividers as absolutely positioned pseudo-elements and hit the same overlap.
36
25
 
37
26
  [data-div-type="element"] {
38
27
  &[data-element-type="userElements"] {
@@ -738,7 +727,11 @@ $imagePositions: (
738
727
  flex-direction: column;
739
728
  justify-content: flex-start;
740
729
  width: 100%;
741
- height: 44px;
730
+ // A wrapping value (a long shipping address with Text Overflow off) used to spill
731
+ // out of this cell and past the element, because the cell was a fixed 44px. A
732
+ // floor keeps the short cells aligned and lets a tall one grow the section -
733
+ // every ancestor up to the element root is already height:auto.
734
+ min-height: 44px;
742
735
  }
743
736
  }
744
737
  @media (max-width: 1024px) {
@@ -1113,6 +1106,16 @@ $imagePositions: (
1113
1106
  display: flex;
1114
1107
  flex-direction: column;
1115
1108
  min-width: 109px;
1109
+
1110
+ // Heading font size must not size the dropdown.
1111
+ // This wrapper is a flex column, so its width comes from its widest child — the
1112
+ // heading — and a stretched dropdown grew with it every time the heading's font
1113
+ // size went up. Size the dropdown to its own content and cap it at the wrapper so
1114
+ // a long profile name still cannot overflow.
1115
+ .language__conatiner {
1116
+ align-self: flex-start;
1117
+ max-width: 100%;
1118
+ }
1116
1119
  gap: 4px;
1117
1120
 
1118
1121
  .quota_label {
@@ -1144,10 +1147,6 @@ $imagePositions: (
1144
1147
  text-transform: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ne-dn-tt-tm);
1145
1148
  word-wrap: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ne-dn-wd-wp);
1146
1149
  word-break: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ne-dn-wd-bk);
1147
- &.flex__overflow {
1148
- white-space: normal;
1149
- @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
1150
- }
1151
1150
  font-size: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ne-dn-ft-se);
1152
1151
  font-style: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ne-dn-ft-se-ic);
1153
1152
  font-weight: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ne-dn-ft-wt);
@@ -1173,9 +1172,14 @@ $imagePositions: (
1173
1172
  display: flex;
1174
1173
  gap: 12px;
1175
1174
  justify-content: space-between;
1175
+ // Flex items default to min-width:auto and refuse to shrink below their text,
1176
+ // so a long quota name pushed the row out of the widget instead of wrapping
1177
+ // inside it.
1178
+ min-width: 0;
1176
1179
  .quota_name_wrapper {
1177
1180
  display: flex;
1178
1181
  flex-direction: column;
1182
+ min-width: 0;
1179
1183
  // gap: 6px;
1180
1184
 
1181
1185
  .quota_name {
@@ -1186,10 +1190,6 @@ $imagePositions: (
1186
1190
  text-transform: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ne-dn-tt-tm);
1187
1191
  word-wrap: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ne-dn-wd-wp);
1188
1192
  word-break: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ne-dn-wd-bk);
1189
- &.flex__overflow {
1190
- white-space: normal;
1191
- @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
1192
- }
1193
1193
  font-size: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ne-dn-ft-se);
1194
1194
  font-style: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ne-dn-ft-se-ic);
1195
1195
  font-weight: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ne-dn-ft-wt);
@@ -1207,10 +1207,6 @@ $imagePositions: (
1207
1207
  text-transform: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ey-dn-tt-tm);
1208
1208
  word-wrap: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ey-dn-wd-wp);
1209
1209
  word-break: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ey-dn-wd-bk);
1210
- &.flex__overflow {
1211
- white-space: normal;
1212
- @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
1213
- }
1214
1210
  font-size: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ey-dn-ft-se);
1215
1211
  font-style: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ey-dn-ft-se-ic);
1216
1212
  font-weight: prepareMediaVariable(--_ctm-dn-qa-dn-qa-ey-dn-ft-wt);
@@ -1223,6 +1219,7 @@ $imagePositions: (
1223
1219
 
1224
1220
  .quota_inventory_parent {
1225
1221
  display: flex;
1222
+ min-width: 0;
1226
1223
  }
1227
1224
  .hilighted {
1228
1225
  color: prepareMediaVariable(--_ctm-dn-qa-dn-qa-hd-dn-cr);
@@ -1248,10 +1245,6 @@ $imagePositions: (
1248
1245
  text-transform: prepareMediaVariable(--_ctm-dn-qa-dn-qa-iy-dn-tt-tm);
1249
1246
  word-wrap: prepareMediaVariable(--_ctm-dn-qa-dn-qa-iy-dn-wd-wp);
1250
1247
  word-break: prepareMediaVariable(--_ctm-dn-qa-dn-qa-iy-dn-wd-bk);
1251
- &.flex__overflow {
1252
- white-space: normal;
1253
- @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
1254
- }
1255
1248
  font-size: prepareMediaVariable(--_ctm-dn-qa-dn-qa-iy-dn-ft-se);
1256
1249
  font-style: prepareMediaVariable(--_ctm-dn-qa-dn-qa-iy-dn-ft-se-ic);
1257
1250
  font-weight: prepareMediaVariable(--_ctm-dn-qa-dn-qa-iy-dn-ft-wt);
@@ -1361,6 +1354,16 @@ $imagePositions: (
1361
1354
  display: flex;
1362
1355
  flex-direction: column;
1363
1356
  min-width: 109px;
1357
+
1358
+ // Heading font size must not size the dropdown.
1359
+ // This wrapper is a flex column, so its width comes from its widest child — the
1360
+ // heading — and a stretched dropdown grew with it every time the heading's font
1361
+ // size went up. Size the dropdown to its own content and cap it at the wrapper so
1362
+ // a long profile name still cannot overflow.
1363
+ .language__conatiner {
1364
+ align-self: flex-start;
1365
+ max-width: 100%;
1366
+ }
1364
1367
  // align-items: center;
1365
1368
  gap: 4px;
1366
1369
 
@@ -1395,10 +1398,6 @@ $imagePositions: (
1395
1398
  text-transform: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ne-dn-tt-tm);
1396
1399
  word-wrap: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ne-dn-wd-wp);
1397
1400
  word-break: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ne-dn-wd-bk);
1398
- &.flex__overflow {
1399
- white-space: normal;
1400
- @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
1401
- }
1402
1401
  font-size: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ne-dn-ft-se);
1403
1402
  font-style: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ne-dn-ft-se-ic);
1404
1403
  font-weight: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ne-dn-ft-wt);
@@ -1423,9 +1422,13 @@ $imagePositions: (
1423
1422
  .allowance_info_wrapper {
1424
1423
  display: flex;
1425
1424
  gap: 12px;
1425
+ // Same as the quota rows: without this the name refuses to shrink and
1426
+ // overflows the widget.
1427
+ min-width: 0;
1426
1428
  .allowance_name_wrapper {
1427
1429
  display: flex;
1428
1430
  flex-direction: column;
1431
+ min-width: 0;
1429
1432
  gap: 6px;
1430
1433
 
1431
1434
  .allowance_name {
@@ -1436,10 +1439,6 @@ $imagePositions: (
1436
1439
  text-transform: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ne-dn-tt-tm);
1437
1440
  word-wrap: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ne-dn-wd-wp);
1438
1441
  word-break: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ne-dn-wd-bk);
1439
- &.flex__overflow {
1440
- white-space: normal;
1441
- @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
1442
- }
1443
1442
  font-size: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ne-dn-ft-se);
1444
1443
  font-style: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ne-dn-ft-se-ic);
1445
1444
  font-weight: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ne-dn-ft-wt);
@@ -1457,10 +1456,6 @@ $imagePositions: (
1457
1456
  text-transform: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ey-dn-tt-tm);
1458
1457
  word-wrap: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ey-dn-wd-wp);
1459
1458
  word-break: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ey-dn-wd-bk);
1460
- &.flex__overflow {
1461
- white-space: normal;
1462
- @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
1463
- }
1464
1459
  font-size: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ey-dn-ft-se);
1465
1460
  font-style: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ey-dn-ft-se-ic);
1466
1461
  font-weight: prepareMediaVariable(--_ctm-dn-ae-dn-ae-ey-dn-ft-wt);
@@ -1480,10 +1475,6 @@ $imagePositions: (
1480
1475
  text-transform: prepareMediaVariable(--_ctm-dn-ae-dn-ae-iy-dn-tt-tm);
1481
1476
  word-wrap: prepareMediaVariable(--_ctm-dn-ae-dn-ae-iy-dn-wd-wp);
1482
1477
  word-break: prepareMediaVariable(--_ctm-dn-ae-dn-ae-iy-dn-wd-bk);
1483
- &.flex__overflow {
1484
- white-space: normal;
1485
- @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
1486
- }
1487
1478
  font-size: prepareMediaVariable(--_ctm-dn-ae-dn-ae-iy-dn-ft-se);
1488
1479
  font-style: prepareMediaVariable(--_ctm-dn-ae-dn-ae-iy-dn-ft-se-ic);
1489
1480
  font-weight: prepareMediaVariable(--_ctm-dn-ae-dn-ae-iy-dn-ft-wt);
@@ -1952,20 +1943,17 @@ $imagePositions: (
1952
1943
  position: relative;
1953
1944
  }
1954
1945
  &[data-show-divider="true"] {
1946
+ .child:not(:last-child) {
1947
+ @include dividerGapReserve(--_ctm-dn-ur-sy-io-dn-fl-ad-oy-dr-wt);
1948
+ }
1955
1949
  .child:not(:last-child)::before {
1956
1950
  content: "";
1957
1951
  position: absolute;
1958
1952
  left: 0;
1959
1953
  right: 0;
1960
- bottom: calc(
1961
- -1 *
1962
- (
1963
- var(
1964
- --_ctm-mob-lt-ur-io-sy-im-sg,
1965
- var(--_ctm-tab-lt-ur-io-sy-im-sg, var(--_ctm-lt-ur-io-sy-im-sg))
1966
- ) /
1967
- 2
1968
- )
1954
+ bottom: dividerGapOffset(
1955
+ --_ctm-lt-ur-io-sy-im-sg,
1956
+ --_ctm-dn-ur-sy-io-dn-fl-ad-oy-dr-wt
1969
1957
  );
1970
1958
 
1971
1959
  height: var(
@@ -1984,17 +1972,17 @@ $imagePositions: (
1984
1972
  );
1985
1973
  }
1986
1974
  &[data-content-alignment="Horizontal"] {
1975
+ // Side by side, so the thickness has to be reserved horizontally instead.
1976
+ .child:not(:last-child) {
1977
+ margin-bottom: 0;
1978
+ @include dividerGapReserve(--_ctm-dn-ur-sy-io-dn-fl-ad-oy-dr-wt, right);
1979
+ }
1987
1980
  .child:not(:last-child)::before {
1988
- // right: calc(
1989
- // -1 *
1990
- // (
1991
- // var(
1992
- // --_ctm-mob-lt-ur-io-sy-im-sg,
1993
- // var(--_ctm-tab-lt-ur-io-sy-im-sg, var(--_ctm-lt-ur-io-sy-im-sg))
1994
- // ) /
1995
- // 2
1996
- // )
1997
- // );
1981
+ right: dividerGapOffset(
1982
+ --_ctm-lt-ur-io-sy-im-sg,
1983
+ --_ctm-dn-ur-sy-io-dn-fl-ad-oy-dr-wt
1984
+ );
1985
+ bottom: unset;
1998
1986
  top: 0;
1999
1987
 
2000
1988
  width: var(
@@ -2008,19 +1996,18 @@ $imagePositions: (
2008
1996
  left: unset;
2009
1997
  }
2010
1998
  @media (max-width: 768px) {
1999
+ // Back to stacked below the breakpoint, so the reserve goes back under the item.
2000
+ .child:not(:last-child) {
2001
+ margin-right: 0;
2002
+ @include dividerGapReserve(--_ctm-dn-ur-sy-io-dn-fl-ad-oy-dr-wt);
2003
+ }
2011
2004
  .child:not(:last-child)::before {
2012
2005
  top: unset;
2013
2006
  left: 0;
2014
2007
  right: 0;
2015
- bottom: calc(
2016
- -1 *
2017
- (
2018
- var(
2019
- --_ctm-mob-lt-ur-io-sy-im-sg,
2020
- var(--_ctm-tab-lt-ur-io-sy-im-sg, var(--_ctm-lt-ur-io-sy-im-sg))
2021
- ) /
2022
- 2
2023
- )
2008
+ bottom: dividerGapOffset(
2009
+ --_ctm-lt-ur-io-sy-im-sg,
2010
+ --_ctm-dn-ur-sy-io-dn-fl-ad-oy-dr-wt
2024
2011
  );
2025
2012
  height: var(
2026
2013
  --_ctm-mob-dn-ur-sy-io-dn-fl-ad-oy-dr-wt,
@@ -2037,20 +2024,15 @@ $imagePositions: (
2037
2024
  .secondary_label_wrapper {
2038
2025
  width: 100%;
2039
2026
  position: relative;
2027
+ @include dividerGapReserve(--_ctm-dn-ur-sy-io-dn-fl-ad-oy-dr-wt);
2040
2028
  &::after {
2041
2029
  content: "";
2042
2030
  position: absolute;
2043
2031
  left: 0;
2044
2032
  right: 0;
2045
- bottom: calc(
2046
- -1 *
2047
- (
2048
- var(
2049
- --_ctm-mob-lt-ur-io-sy-im-sg,
2050
- var(--_ctm-tab-lt-ur-io-sy-im-sg, var(--_ctm-lt-ur-io-sy-im-sg))
2051
- ) /
2052
- 2
2053
- )
2033
+ bottom: dividerGapOffset(
2034
+ --_ctm-lt-ur-io-sy-im-sg,
2035
+ --_ctm-dn-ur-sy-io-dn-fl-ad-oy-dr-wt
2054
2036
  );
2055
2037
  height: var(
2056
2038
  --_ctm-mob-dn-ur-sy-io-dn-fl-ad-oy-dr-wt,
@@ -2681,10 +2663,8 @@ $imagePositions: (
2681
2663
  align-items: center;
2682
2664
  position: relative;
2683
2665
  .language__name {
2684
- // Clearance for the absolutely positioned caret. It was `padding-right`,
2685
- // which the section's own padding would have had to fight with; as a margin
2686
- // the Padding control owns all four sides cleanly.
2687
- margin-right: 20px;
2666
+ // No caret clearance needed anymore: the caret is an in-flow sibling, spaced
2667
+ // by Widget Style > Item Gap.
2688
2668
  font-family: prepareMediaVariable(--_ctm-dn-dn-se-wt-pr-tt-ft-fy);
2689
2669
  word-wrap: prepareMediaVariable(--_ctm-dn-dn-se-wt-pr-tt-wd-wp);
2690
2670
  word-break: prepareMediaVariable(--_ctm-dn-dn-se-wt-pr-tt-wd-bk);
@@ -2739,24 +2719,64 @@ $imagePositions: (
2739
2719
  }
2740
2720
 
2741
2721
  //Dropdown
2742
- // The placeholder shown while nothing is selected. Widget Style's typography tab
2743
- // is labelled "Placeholder Text" and drives it — none of it was read before.
2722
+ // The placeholder shown while nothing is selected. It reads the Widget Placeholder
2723
+ // Text section, the same one that styles the selected value in `.option_select
2724
+ // .language__name` — the two swap in the markup on first selection, so they have to
2725
+ // resolve identically or the text would jump. Widget Style's own typography is kept
2726
+ // only as the fallback: its Text tab has been removed from the panel, so the values
2727
+ // exist solely on pages saved while that tab was still there.
2744
2728
  .value__selected__new {
2745
2729
  width: 100%;
2746
2730
  // padding: 8px 12px;
2747
2731
  text-align: left;
2748
- font-family: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-ft-fy);
2749
- word-wrap: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-wd-wp);
2750
- word-break: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-wd-bk);
2751
- font-size: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-ft-se);
2752
- color: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-cr);
2753
- font-weight: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-ft-wt);
2754
- font-style: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-ft-se-ic);
2755
- text-decoration: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-ue);
2756
- text-align: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-tt-an);
2757
- letter-spacing: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-lr-sg);
2758
- line-height: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-le-ht);
2759
- text-transform: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-tt-tm);
2732
+ font-family: prepareMediaVariable(
2733
+ --_ctm-dn-dn-se-wt-pr-tt-ft-fy,
2734
+ prepareMediaVariable(--_ctm-dn-dn-se-wt-se-ft-fy)
2735
+ );
2736
+ word-wrap: prepareMediaVariable(
2737
+ --_ctm-dn-dn-se-wt-pr-tt-wd-wp,
2738
+ prepareMediaVariable(--_ctm-dn-dn-se-wt-se-wd-wp)
2739
+ );
2740
+ word-break: prepareMediaVariable(
2741
+ --_ctm-dn-dn-se-wt-pr-tt-wd-bk,
2742
+ prepareMediaVariable(--_ctm-dn-dn-se-wt-se-wd-bk)
2743
+ );
2744
+ font-size: prepareMediaVariable(
2745
+ --_ctm-dn-dn-se-wt-pr-tt-ft-se,
2746
+ prepareMediaVariable(--_ctm-dn-dn-se-wt-se-ft-se)
2747
+ );
2748
+ color: prepareMediaVariable(
2749
+ --_ctm-dn-dn-se-wt-pr-tt-cr,
2750
+ prepareMediaVariable(--_ctm-dn-dn-se-wt-se-cr)
2751
+ );
2752
+ font-weight: prepareMediaVariable(
2753
+ --_ctm-dn-dn-se-wt-pr-tt-ft-wt,
2754
+ prepareMediaVariable(--_ctm-dn-dn-se-wt-se-ft-wt)
2755
+ );
2756
+ font-style: prepareMediaVariable(
2757
+ --_ctm-dn-dn-se-wt-pr-tt-ft-se-ic,
2758
+ prepareMediaVariable(--_ctm-dn-dn-se-wt-se-ft-se-ic)
2759
+ );
2760
+ text-decoration: prepareMediaVariable(
2761
+ --_ctm-dn-dn-se-wt-pr-tt-ue,
2762
+ prepareMediaVariable(--_ctm-dn-dn-se-wt-se-ue)
2763
+ );
2764
+ text-align: prepareMediaVariable(
2765
+ --_ctm-dn-dn-se-wt-pr-tt-tt-an,
2766
+ prepareMediaVariable(--_ctm-dn-dn-se-wt-se-tt-an)
2767
+ );
2768
+ letter-spacing: prepareMediaVariable(
2769
+ --_ctm-dn-dn-se-wt-pr-tt-lr-sg,
2770
+ prepareMediaVariable(--_ctm-dn-dn-se-wt-se-lr-sg)
2771
+ );
2772
+ line-height: prepareMediaVariable(
2773
+ --_ctm-dn-dn-se-wt-pr-tt-le-ht,
2774
+ prepareMediaVariable(--_ctm-dn-dn-se-wt-se-le-ht)
2775
+ );
2776
+ text-transform: prepareMediaVariable(
2777
+ --_ctm-dn-dn-se-wt-pr-tt-tt-tm,
2778
+ prepareMediaVariable(--_ctm-dn-dn-se-wt-se-tt-tm)
2779
+ );
2760
2780
 
2761
2781
  &#{$overflowSelector} {
2762
2782
  @include restrictToLinesShow(#{var(--_sf-line-clamp, 1)});
@@ -2799,12 +2819,21 @@ $imagePositions: (
2799
2819
  // child, so it spaced nothing. The button is where the widget's own items
2800
2820
  // (icon and label) sit — same place the variant picker applies it.
2801
2821
  gap: prepareMediaVariable(--_ctm-dn-dn-se-wt-se-im-gp);
2822
+ // The caret is the button's second item, so it has to stay in flow for the
2823
+ // gap above to have anything to space; `space-between` keeps it at the far
2824
+ // end, where the old `position: absolute` used to pin it.
2825
+ justify-content: space-between;
2826
+
2827
+ .option_select,
2828
+ .value__selected__new {
2829
+ flex: 1 1 auto;
2830
+ min-width: 0;
2831
+ }
2802
2832
  }
2803
2833
 
2804
2834
  .est__dropdown__icon {
2805
- position: absolute;
2806
- // top: 10px;
2807
- right: 10px;
2835
+ display: flex;
2836
+ flex: 0 0 auto;
2808
2837
  transition: all 200ms ease-in;
2809
2838
  &.open {
2810
2839
  transform: rotate(180deg);
@@ -3173,10 +3173,7 @@ $minWidth: 70px;
3173
3173
  .language__name {
3174
3174
  color: var(--_sf-hr-cr, prepareMediaVariable(--_ctm-dn-dn-se-im-se-dt-se-cr));
3175
3175
  font-family: var(--_sf-hr-ft-fy, prepareMediaVariable(--_ctm-dn-dn-se-im-se-dt-se-ft-fy));
3176
- text-transform: var(
3177
- --_sf-hr-tt-tm,
3178
- prepareMediaVariable(--_ctm-dn-dn-se-im-se-dt-se-tt-tm)
3179
- );
3176
+ text-transform: var(--_sf-hr-tt-tm, prepareMediaVariable(--_ctm-dn-dn-se-im-se-dt-se-tt-tm));
3180
3177
  word-wrap: var(--_sf-hr-wd-wp, prepareMediaVariable(--_ctm-dn-dn-se-im-se-dt-se-wd-wp));
3181
3178
  word-break: var(--_sf-hr-wd-bk, prepareMediaVariable(--_ctm-dn-dn-se-im-se-dt-se-wd-bk));
3182
3179
  font-size: var(--_sf-hr-ft-se, prepareMediaVariable(--_ctm-dn-dn-se-im-se-dt-se-ft-se));