@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
@@ -1,271 +1,271 @@
1
- @use "sass:map";
2
- @use "sass:list";
3
-
4
- $editorMain: ".flex__text__editor__main";
5
- $editorWrapper: ".flx__txt__edt__wrapper";
6
- $editor: '[contenteditable="true"]';
7
- $suggestionsMain: ".flex__suggestions__box";
8
- $textElement: '[data-element-type="text"]';
9
- $textElementV2: '[data-custom-type="custom__text"]';
10
- $dataBodyShowFalse: '[data-body-show="false"]';
11
- $titleDiv: ".ttl__dv";
12
- $bodyDiv: ".bd__dv";
13
- $macroDiv: ".mcr__dv";
14
- $macroChip: ".macro__chip__v2";
15
- $previewMode: '[data-text-type="preview-mode"]';
16
- $dataDecoded: '[data-decoded="true"]';
17
- $dataDecodedV2: '[data-decoded-v2="true"]';
18
- $editorIframe: '[data-iframe-body="true"]';
19
- $width: 225px;
20
- $height: 300px;
21
-
22
- #{$textElement},
23
- #{$textElementV2} {
24
- #{$editorMain} {
25
- position: var(--_p-relative);
26
-
27
- #{$editor} {
28
- word-wrap: break-word;
29
- }
30
- #{$suggestionsMain} {
31
- position: var(--_p-fixed);
32
- left: var(--_sf-lt-vl-sg);
33
- top: var(--_sf-tp-vl-sg);
34
- z-index: calc(var(--_higher-zIndex) + var(--_it-gl-zIndex) + 1);
35
- border: 1px solid var(--_gray-200);
36
- background: var(--_base-white);
37
- box-shadow: 0px 1px 6px -2px var(--_gray-300);
38
- border-radius: 6px;
39
- width: $width;
40
- max-height: var(--_sf-ht-vl-sg, $height);
41
- overflow-y: auto;
42
- transform: translateY(8px);
43
-
44
- & > ul {
45
- display: var(--_d-flex);
46
- flex-direction: column;
47
- width: 100%;
48
-
49
- & > li {
50
- display: var(--_d-flex);
51
- flex-direction: column;
52
- width: 100%;
53
-
54
- &#{$dataBodyShowFalse} {
55
- --_sf-db-bd-dp: var(--_d-none);
56
- --_sf-sv-ic-rt: -90deg;
57
- }
58
-
59
- & > div {
60
- &#{$titleDiv} {
61
- padding: 8px 12px 8px 12px;
62
- display: var(--_d-flex);
63
- justify-content: space-between;
64
- background-color: var(--_gray-50);
65
- cursor: pointer;
66
- border-bottom: 1px solid var(--_gray-200);
67
- gap: 10px;
68
-
69
- & > .left {
70
- display: var(--_d-flex);
71
- align-items: center;
72
- gap: 4px;
73
-
74
- & > span {
75
- display: var(--_d-flex);
76
- align-content: center;
77
-
78
- &:nth-of-type(2) {
79
- font-weight: 600;
80
- font-size: 12px;
81
- color: var(--_gray-600);
82
- }
83
- &:nth-of-type(1) {
84
- svg {
85
- width: 10px;
86
- height: 10px;
87
- }
88
- }
89
- }
90
- }
91
-
92
- & > span {
93
- display: var(--_d-flex);
94
- align-items: center;
95
- transition: transform 0.45s ease;
96
- transform: rotate(var(--_sf-sv-ic-rt, 0deg));
97
-
98
- svg {
99
- width: 10px;
100
- height: 10px;
101
- }
102
- }
103
- }
104
-
105
- &#{$bodyDiv} {
106
- display: var(--_sf-db-bd-dp, var(--_d-flex));
107
- transition: display 0.45s ease;
108
- flex-wrap: wrap;
109
- gap: 8px;
110
- padding: 12px;
111
-
112
- & > div {
113
- &#{$macroDiv} {
114
- margin: 1px;
115
- background-color: var(--_sf-hr-cr, var(--_gray-100));
116
- border-radius: 6px;
117
- padding: 6px 10px;
118
- color: var(--_gray-600);
119
- font-size: 14px;
120
- font-weight: 500;
121
- max-width: 150px;
122
- text-overflow: ellipsis;
123
- white-space: nowrap;
124
- overflow: hidden;
125
- transition: all 0.2s ease-in-out;
126
- cursor: pointer;
127
-
128
- &:hover {
129
- --_sf-hr-cr: var(--_primary-50);
130
- }
131
- }
132
- }
133
- }
134
- }
135
- }
136
- }
137
- }
138
- }
139
- }
140
- #{$macroChip}:is(#{$editorIframe} *, #{$dataDecodedV2}, #{$textElementV2} *) {
141
- @extend .macro_styles;
142
- user-select: all;
143
- }
144
-
145
- #{$macroChip}:not(#{$dataDecoded}, #{$dataDecodedV2}) {
146
- &:is(#{$previewMode} *) {
147
- @extend .macro_styles;
148
- position: var(--_p-relative);
149
- width: 62px;
150
- display: var(--_d-inline-flex);
151
- flex-direction: row-reverse;
152
- align-items: center;
153
- justify-content: center;
154
- gap: 4px;
155
- overflow: clip;
156
-
157
- & > span {
158
- display: var(--_d-none);
159
- }
160
- &::before {
161
- font-size: 12px !important;
162
- color: var(--_primary-400) !important;
163
- content: "Loading";
164
- }
165
-
166
- &::after {
167
- content: "";
168
- // width: 6px;
169
- // height: 6px;
170
- // border: 1px solid var(--_primary-400);
171
- // border-top-color: var(--_primary-100);
172
- // border-radius: 50%;
173
- // animation: spin 2s linear infinite;
174
-
175
- width: 100%;
176
- height: 100%;
177
- background: linear-gradient(
178
- 90deg,
179
- rgba(255, 255, 255, 0) 0%,
180
- rgba(255, 255, 255, 0.6) 50%,
181
- rgba(255, 255, 255, 0) 100%
182
- );
183
- position: var(--_p-absolute);
184
- animation: skeleton-shimmer 1.5s infinite cubic-bezier(0.02, 0.02, 1, 1.01);
185
- }
186
-
187
- @keyframes skeleton-shimmer {
188
- 0% {
189
- transform: translateX(-100%);
190
- }
191
- 100% {
192
- transform: translateX(100%);
193
- }
194
- }
195
-
196
- @keyframes spin {
197
- to {
198
- transform: rotate(360deg);
199
- }
200
- }
201
- }
202
- }
203
- .macro_styles {
204
- background: var(--_primary-50);
205
- border-radius: 4px;
206
- display: inline-flex;
207
- padding-inline: 2px;
208
- & > span {
209
- color: var(--_primary-400) !important;
210
- font-weight: 600 !important;
211
- font-size: 12px !important;
212
- line-height: 1.4 !important;
213
- }
214
- }
215
-
216
- // Popup
217
- .custom__attribute__popup__v2 {
218
- background: var(--_base-white);
219
- padding: 8px;
220
- border-radius: 4px;
221
- width: 200px;
222
- box-shadow: var(--_shadow-x3);
223
- display: flex;
224
- flex-direction: column;
225
- row-gap: 8px;
226
- // transform: translate(50%, 50px);
227
-
228
- & > div {
229
- &.body__div {
230
- display: flex;
231
- flex-direction: column;
232
- gap: 6px;
233
-
234
- & > p {
235
- font-size: 12px;
236
- font-weight: 600;
237
- word-break: break-all;
238
- color: var(--_gray-900);
239
- }
240
-
241
- & > input {
242
- border: 1px solid var(--_gray-200);
243
- padding: 2px 4px;
244
- border-radius: 4px;
245
- font-size: 12px;
246
- max-width: 100%;
247
- width: 100%;
248
- }
249
- }
250
-
251
- &.footer__div {
252
- display: flex;
253
- align-items: center;
254
- gap: 8px;
255
-
256
- & > button {
257
- display: flex;
258
- padding: 4px 8px;
259
- font-size: 14px;
260
- line-height: 1.4;
261
- font-weight: 400;
262
- border-radius: 4px;
263
-
264
- &[data-type="submit"] {
265
- background: var(--_primary-500);
266
- color: #fff;
267
- }
268
- }
269
- }
270
- }
271
- }
1
+ @use "sass:map";
2
+ @use "sass:list";
3
+
4
+ $editorMain: ".flex__text__editor__main";
5
+ $editorWrapper: ".flx__txt__edt__wrapper";
6
+ $editor: '[contenteditable="true"]';
7
+ $suggestionsMain: ".flex__suggestions__box";
8
+ $textElement: '[data-element-type="text"]';
9
+ $textElementV2: '[data-custom-type="custom__text"]';
10
+ $dataBodyShowFalse: '[data-body-show="false"]';
11
+ $titleDiv: ".ttl__dv";
12
+ $bodyDiv: ".bd__dv";
13
+ $macroDiv: ".mcr__dv";
14
+ $macroChip: ".macro__chip__v2";
15
+ $previewMode: '[data-text-type="preview-mode"]';
16
+ $dataDecoded: '[data-decoded="true"]';
17
+ $dataDecodedV2: '[data-decoded-v2="true"]';
18
+ $editorIframe: '[data-iframe-body="true"]';
19
+ $width: 225px;
20
+ $height: 300px;
21
+
22
+ #{$textElement},
23
+ #{$textElementV2} {
24
+ #{$editorMain} {
25
+ position: var(--_p-relative);
26
+
27
+ #{$editor} {
28
+ word-wrap: break-word;
29
+ }
30
+ #{$suggestionsMain} {
31
+ position: var(--_p-fixed);
32
+ left: var(--_sf-lt-vl-sg);
33
+ top: var(--_sf-tp-vl-sg);
34
+ z-index: calc(var(--_higher-zIndex) + var(--_it-gl-zIndex) + 1);
35
+ border: 1px solid var(--_gray-200);
36
+ background: var(--_base-white);
37
+ box-shadow: 0px 1px 6px -2px var(--_gray-300);
38
+ border-radius: 6px;
39
+ width: $width;
40
+ max-height: var(--_sf-ht-vl-sg, $height);
41
+ overflow-y: auto;
42
+ transform: translateY(8px);
43
+
44
+ & > ul {
45
+ display: var(--_d-flex);
46
+ flex-direction: column;
47
+ width: 100%;
48
+
49
+ & > li {
50
+ display: var(--_d-flex);
51
+ flex-direction: column;
52
+ width: 100%;
53
+
54
+ &#{$dataBodyShowFalse} {
55
+ --_sf-db-bd-dp: var(--_d-none);
56
+ --_sf-sv-ic-rt: -90deg;
57
+ }
58
+
59
+ & > div {
60
+ &#{$titleDiv} {
61
+ padding: 8px 12px 8px 12px;
62
+ display: var(--_d-flex);
63
+ justify-content: space-between;
64
+ background-color: var(--_gray-50);
65
+ cursor: pointer;
66
+ border-bottom: 1px solid var(--_gray-200);
67
+ gap: 10px;
68
+
69
+ & > .left {
70
+ display: var(--_d-flex);
71
+ align-items: center;
72
+ gap: 4px;
73
+
74
+ & > span {
75
+ display: var(--_d-flex);
76
+ align-content: center;
77
+
78
+ &:nth-of-type(2) {
79
+ font-weight: 600;
80
+ font-size: 12px;
81
+ color: var(--_gray-600);
82
+ }
83
+ &:nth-of-type(1) {
84
+ svg {
85
+ width: 10px;
86
+ height: 10px;
87
+ }
88
+ }
89
+ }
90
+ }
91
+
92
+ & > span {
93
+ display: var(--_d-flex);
94
+ align-items: center;
95
+ transition: transform 0.45s ease;
96
+ transform: rotate(var(--_sf-sv-ic-rt, 0deg));
97
+
98
+ svg {
99
+ width: 10px;
100
+ height: 10px;
101
+ }
102
+ }
103
+ }
104
+
105
+ &#{$bodyDiv} {
106
+ display: var(--_sf-db-bd-dp, var(--_d-flex));
107
+ transition: display 0.45s ease;
108
+ flex-wrap: wrap;
109
+ gap: 8px;
110
+ padding: 12px;
111
+
112
+ & > div {
113
+ &#{$macroDiv} {
114
+ margin: 1px;
115
+ background-color: var(--_sf-hr-cr, var(--_gray-100));
116
+ border-radius: 6px;
117
+ padding: 6px 10px;
118
+ color: var(--_gray-600);
119
+ font-size: 14px;
120
+ font-weight: 500;
121
+ max-width: 150px;
122
+ text-overflow: ellipsis;
123
+ white-space: nowrap;
124
+ overflow: hidden;
125
+ transition: all 0.2s ease-in-out;
126
+ cursor: pointer;
127
+
128
+ &:hover {
129
+ --_sf-hr-cr: var(--_primary-50);
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ #{$macroChip}:is(#{$editorIframe} *, #{$dataDecodedV2}, #{$textElementV2} *) {
141
+ @extend .macro_styles;
142
+ user-select: all;
143
+ }
144
+
145
+ #{$macroChip}:not(#{$dataDecoded}, #{$dataDecodedV2}) {
146
+ &:is(#{$previewMode} *) {
147
+ @extend .macro_styles;
148
+ position: var(--_p-relative);
149
+ width: 62px;
150
+ display: var(--_d-inline-flex);
151
+ flex-direction: row-reverse;
152
+ align-items: center;
153
+ justify-content: center;
154
+ gap: 4px;
155
+ overflow: clip;
156
+
157
+ & > span {
158
+ display: var(--_d-none);
159
+ }
160
+ &::before {
161
+ font-size: 12px !important;
162
+ color: var(--_primary-400) !important;
163
+ content: "Loading";
164
+ }
165
+
166
+ &::after {
167
+ content: "";
168
+ // width: 6px;
169
+ // height: 6px;
170
+ // border: 1px solid var(--_primary-400);
171
+ // border-top-color: var(--_primary-100);
172
+ // border-radius: 50%;
173
+ // animation: spin 2s linear infinite;
174
+
175
+ width: 100%;
176
+ height: 100%;
177
+ background: linear-gradient(
178
+ 90deg,
179
+ rgba(255, 255, 255, 0) 0%,
180
+ rgba(255, 255, 255, 0.6) 50%,
181
+ rgba(255, 255, 255, 0) 100%
182
+ );
183
+ position: var(--_p-absolute);
184
+ animation: skeleton-shimmer 1.5s infinite cubic-bezier(0.02, 0.02, 1, 1.01);
185
+ }
186
+
187
+ @keyframes skeleton-shimmer {
188
+ 0% {
189
+ transform: translateX(-100%);
190
+ }
191
+ 100% {
192
+ transform: translateX(100%);
193
+ }
194
+ }
195
+
196
+ @keyframes spin {
197
+ to {
198
+ transform: rotate(360deg);
199
+ }
200
+ }
201
+ }
202
+ }
203
+ .macro_styles {
204
+ background: var(--_primary-50);
205
+ border-radius: 4px;
206
+ display: inline-flex;
207
+ padding-inline: 2px;
208
+ & > span {
209
+ color: var(--_primary-400) !important;
210
+ font-weight: 600 !important;
211
+ font-size: 12px !important;
212
+ line-height: 1.4 !important;
213
+ }
214
+ }
215
+
216
+ // Popup
217
+ .custom__attribute__popup__v2 {
218
+ background: var(--_base-white);
219
+ padding: 8px;
220
+ border-radius: 4px;
221
+ width: 200px;
222
+ box-shadow: var(--_shadow-x3);
223
+ display: flex;
224
+ flex-direction: column;
225
+ row-gap: 8px;
226
+ // transform: translate(50%, 50px);
227
+
228
+ & > div {
229
+ &.body__div {
230
+ display: flex;
231
+ flex-direction: column;
232
+ gap: 6px;
233
+
234
+ & > p {
235
+ font-size: 12px;
236
+ font-weight: 600;
237
+ word-break: break-all;
238
+ color: var(--_gray-900);
239
+ }
240
+
241
+ & > input {
242
+ border: 1px solid var(--_gray-200);
243
+ padding: 2px 4px;
244
+ border-radius: 4px;
245
+ font-size: 12px;
246
+ max-width: 100%;
247
+ width: 100%;
248
+ }
249
+ }
250
+
251
+ &.footer__div {
252
+ display: flex;
253
+ align-items: center;
254
+ gap: 8px;
255
+
256
+ & > button {
257
+ display: flex;
258
+ padding: 4px 8px;
259
+ font-size: 14px;
260
+ line-height: 1.4;
261
+ font-weight: 400;
262
+ border-radius: 4px;
263
+
264
+ &[data-type="submit"] {
265
+ background: var(--_primary-500);
266
+ color: #fff;
267
+ }
268
+ }
269
+ }
270
+ }
271
+ }
@@ -282,6 +282,42 @@ $breakPointsV3: (
282
282
  @return $mob-var;
283
283
  }
284
284
 
285
+ // Widget dividers are absolutely positioned pseudo-elements living in the gap between
286
+ // two items, so they take up no space of their own: a divider thicker than half the item
287
+ // spacing used to grow back over the text beside it. `dividerGapOffset` pushes the
288
+ // divider past the item edge by its own weight and `dividerGapReserve` hands that weight
289
+ // back to the item as margin, which keeps the whole divider inside the gap at any weight
290
+ // with half the item spacing clear either side.
291
+ //
292
+ // Pair them: the offset alone would leave the divider hanging in the next item's space,
293
+ // the reserve alone would just widen the gap. Both take either a `--_ctm-*` variable name
294
+ // (resolved across breakpoints by `prepareMediaVariable`) or a ready CSS value such as
295
+ // `var(--_sf-dr-wt)` or `8px`.
296
+
297
+ // `0px` rather than `prepareMediaVariable`'s usual `inherit`: an unset weight has to stay
298
+ // a valid length or it would take the whole `calc()` — and with it the divider's
299
+ // position — down with it.
300
+ @function dividerLength($value) {
301
+ @if meta.type-of($value) == "string" and string.slice($value, 1, 2) == "--" {
302
+ @return prepareMediaVariable($value, 0px);
303
+ }
304
+ @return $value;
305
+ }
306
+
307
+ @function dividerGapOffset($spacing, $weight) {
308
+ @return calc(-1 * (#{dividerLength($spacing)} / 2) - #{dividerLength($weight)});
309
+ }
310
+
311
+ @mixin dividerGapReserve($weight, $side: bottom) {
312
+ margin-#{$side}: dividerLength($weight);
313
+ }
314
+
315
+ // Some dividers carry a marker (circle / square / icon) centred on the rule. With the
316
+ // rule pushed out by its own weight, the marker's centre moves out with it by half that.
317
+ @function dividerMarkerOffset($spacing, $weight) {
318
+ @return calc(-1 * (#{dividerLength($spacing)} / 2) - (#{dividerLength($weight)} / 2));
319
+ }
320
+
285
321
  @mixin flexBorderRotationWithDashed($clr, $gap, $height) {
286
322
  --_clr-border: #{$clr};
287
323
  --_cid-page-cpn-box-br-width: #{$gap};
@@ -159,7 +159,12 @@ $overflowSelector: ".flex__overflow";
159
159
  var(--_ctm-tab-dn-gy-wt-tt-cr-dn-bd-cr, var(--_ctm-dn-gy-wt-tt-cr-dn-bd-cr))
160
160
  );
161
161
 
162
- width: 100%;
162
+ // Text Container Width. 100% is the previous behaviour, so an unset width
163
+ // still spans the widget.
164
+ width: prepareMediaVariable(--_ctm-dn-gy-wt-lt-tt-cr-wh, 100%);
165
+ // Shrink to that width, and never below the height the wrapped text needs.
166
+ min-width: 0;
167
+ flex: 0 0 auto;
163
168
 
164
169
  border-color: var(
165
170
  --_ctm-mob-dn-gy-wt-tt-cr-dn-br-cr,
@@ -329,12 +334,29 @@ $overflowSelector: ".flex__overflow";
329
334
  flex-direction: column-reverse;
330
335
  }
331
336
  }
337
+ // Gallery Text and Item Alignment places the text container horizontally when
338
+ // it is stacked above/below the gallery — only visible once its width is under
339
+ // 100%. Left/right positions use [data-widget-alignment] for the cross axis.
340
+ &:not([data-text-position="left"]):not([data-text-position="right"]) {
341
+ &[data-text-alignment="left"] .gallery-header {
342
+ margin-right: auto;
343
+ }
344
+ &[data-text-alignment="center"] .gallery-header {
345
+ margin-inline: auto;
346
+ }
347
+ &[data-text-alignment="right"] .gallery-header {
348
+ margin-left: auto;
349
+ }
350
+ }
351
+
332
352
  &[data-text-position="left"] {
333
353
  .gallery-slider-element {
334
354
  flex-direction: row;
335
355
  }
336
356
  .gallery-header {
337
- width: fit-content;
357
+ // Text Container Width; fit-content is the previous behaviour.
358
+ width: prepareMediaVariable(--_ctm-dn-gy-wt-lt-tt-cr-wh, fit-content);
359
+ min-width: 0;
338
360
  height: 100%;
339
361
  }
340
362
  &[data-widget-alignment="top"] {
@@ -364,7 +386,9 @@ $overflowSelector: ".flex__overflow";
364
386
  }
365
387
  &[data-text-position="right"] {
366
388
  .gallery-header {
367
- width: fit-content;
389
+ // Text Container Width; fit-content is the previous behaviour.
390
+ width: prepareMediaVariable(--_ctm-dn-gy-wt-lt-tt-cr-wh, fit-content);
391
+ min-width: 0;
368
392
  height: 100%;
369
393
  }
370
394
  .gallery-slider-element {
@@ -469,6 +493,9 @@ $overflowSelector: ".flex__overflow";
469
493
  .embla__slide {
470
494
  width: 100%;
471
495
  height: 100%;
496
+ // Grid item: without this it cannot shrink below its longest word, so a long
497
+ // caption widens the whole track past the widget.
498
+ min-width: 0;
472
499
  }
473
500
  }
474
501
  }
@@ -1312,6 +1339,8 @@ $overflowSelector: ".flex__overflow";
1312
1339
  width: 100%;
1313
1340
  height: 100%;
1314
1341
  display: flex;
1342
+ // Same reason as the slide above — let the caption wrap to the slide.
1343
+ min-width: 0;
1315
1344
  // flex-direction: column;
1316
1345
 
1317
1346
  background-color: var(
@@ -1383,6 +1412,10 @@ $overflowSelector: ".flex__overflow";
1383
1412
  );
1384
1413
 
1385
1414
  width: 100%;
1415
+ // Shrink to the slide, and never below the height the wrapped caption needs —
1416
+ // the same pair the widget-level header uses.
1417
+ min-width: 0;
1418
+ flex: 0 0 auto;
1386
1419
 
1387
1420
  border-color: var(
1388
1421
  --_ctm-mob-dn-im-tt-cr-dn-br-cr,
@@ -1592,7 +1625,9 @@ $overflowSelector: ".flex__overflow";
1592
1625
  flex-direction: row;
1593
1626
 
1594
1627
  .gallery-header {
1595
- width: fit-content;
1628
+ // Text Container Width; fit-content is the previous behaviour.
1629
+ width: prepareMediaVariable(--_ctm-dn-gy-wt-lt-tt-cr-wh, fit-content);
1630
+ min-width: 0;
1596
1631
  height: 100%;
1597
1632
  }
1598
1633
  &[data-widget-alignment="top"] {
@@ -1620,7 +1655,9 @@ $overflowSelector: ".flex__overflow";
1620
1655
  &[data-text-position="right"] {
1621
1656
  flex-direction: row-reverse;
1622
1657
  .gallery-header {
1623
- width: fit-content;
1658
+ // Text Container Width; fit-content is the previous behaviour.
1659
+ width: prepareMediaVariable(--_ctm-dn-gy-wt-lt-tt-cr-wh, fit-content);
1660
+ min-width: 0;
1624
1661
  height: 100%;
1625
1662
  }
1626
1663