@sc-360-v2/storefront-cms-library 0.2.89 → 0.2.91

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/menu.scss CHANGED
@@ -114,6 +114,9 @@
114
114
  var(--_ctm-tab-dn-mu-im-se-sw-cr, var(--_ctm-dn-mu-im-se-sw-cr))
115
115
  )
116
116
  );
117
+ &[data-has-link="true"] {
118
+ cursor: pointer;
119
+ }
117
120
 
118
121
  & button {
119
122
  color: var(
@@ -0,0 +1,149 @@
1
+ @use "sass:map";
2
+ @use "sass:list";
3
+
4
+ $resizerId: "[data-cms-tool='cms-element-resizer']";
5
+ $resizeActive: '[data-cms-element-resizer="true"]';
6
+ [data-div-type="element"] {
7
+ &[data-element-type="productCustomizations"] {
8
+ width: var(
9
+ --_sf-el-wh-st-mx,
10
+ calc(
11
+ 1% *
12
+ var(
13
+ --_ctm-mob-ele-nw-wh-vl,
14
+ var(--_ctm-tab-ele-nw-wh-vl, var(--_ctm-ele-nw-wh-vl, var(--_sf-nw-wh)))
15
+ )
16
+ )
17
+ );
18
+ margin: var(--_ctm-mob-lt-mn, var(--_ctm-tab-lt-mn, var(--_ctm-lt-mn)));
19
+
20
+ & > div {
21
+ &.wrapper {
22
+ width: 100%;
23
+ }
24
+ }
25
+
26
+ .product_customization_wrapper {
27
+ display: flex;
28
+ align-items: flex-start;
29
+ padding: var(--_ctm-lt-pg);
30
+ flex-direction: column;
31
+
32
+ .customization_button_wrapper {
33
+ display: flex;
34
+ width: 100%;
35
+ justify-content: space-between;
36
+ align-items: center;
37
+ height: 32px;
38
+ cursor: pointer;
39
+
40
+ .customize_text {
41
+ font-weight: 600;
42
+ font-size: 16px;
43
+ line-height: 150%;
44
+ color: #333333;
45
+ white-space: nowrap;
46
+ }
47
+ }
48
+
49
+ .customization_detail_wrapper {
50
+ display: flex;
51
+ flex-direction: column;
52
+ gap: var(--_ctm-lt-sg-bn-is);
53
+ align-items: flex-start;
54
+ height: auto;
55
+ width: 100%;
56
+
57
+ .customization_item_wrapper {
58
+ display: flex;
59
+ flex-direction: column;
60
+ gap: var(--_ctm-lt-im-gp);
61
+ align-items: flex-start;
62
+ width: 100%;
63
+ height: auto;
64
+
65
+ .customization_item_label {
66
+ background-color: var(--_ctm-dn-ll-dn-bd-cr);
67
+ border-color: var(--_ctm-dn-ll-dn-br-cr);
68
+ border-radius: var(--_ctm-dn-ll-dn-br-rs);
69
+ border-style: var(--_ctm-dn-ll-dn-br-se);
70
+ border-width: var(--_ctm-dn-ll-dn-br-wh);
71
+ color: var(--_ctm-dn-ll-dn-cr);
72
+ font-family: var(--_ctm-dn-ll-dn-ft-fy);
73
+ font-size: var(--_ctm-dn-ll-dn-ft-se);
74
+ font-style: var(--_ctm-dn-ll-dn-ft-se-ic);
75
+ font-weight: var(--_ctm-dn-ll-dn-ft-wt);
76
+ line-height: var(--_ctm-dn-ll-dn-le-ht);
77
+ letter-spacing: var(--_ctm-dn-ll-dn-lr-sg);
78
+ box-shadow: var(--_ctm-dn-ll-dn-sw-ae) var(--_ctm-dn-ll-dn-sw-br)
79
+ var(--_ctm-dn-ll-dn-sw-sd) var(--_ctm-dn-ll-dn-sw-cr);
80
+ text-align: var(--_ctm-dn-ll-dn-tt-an);
81
+ width: 100%;
82
+ text-decoration: var(--_ctm-dn-ll-dn-ue);
83
+ }
84
+
85
+ .est__dropdown__button {
86
+ width: 100%;
87
+ min-height: 48px;
88
+ display: flex;
89
+ align-items: center;
90
+ background-color: var(--_ctm-dn-dn-dn-bd-cr);
91
+ border-color: var(--_ctm-dn-dn-dn-br-cr);
92
+ border-radius: var(--_ctm-dn-dn-dn-br-rs);
93
+ border-style: var(--_ctm-dn-dn-dn-br-se);
94
+ border-width: var(--_ctm-dn-dn-dn-br-wh);
95
+ box-shadow: var(--_ctm-dn-dn-dn-sw-ae) var(--_ctm-dn-dn-dn-sw-br)
96
+ var(--_ctm-dn-dn-dn-sw-sd) var(--_ctm-dn-dn-dn-sw-cr);
97
+
98
+ .value__selected {
99
+ border: none;
100
+ flex: 1 0 0;
101
+ color: var(--_ctm-dn-dn-dn-cr);
102
+ font-family: var(--_ctm-dn-dn-dn-ft-fy);
103
+ font-size: var(--_ctm-dn-dn-dn-ft-se);
104
+ font-style: var(--_ctm-dn-dn-dn-ft-se-ic);
105
+ font-weight: var(--_ctm-dn-dn-dn-ft-wt);
106
+ line-height: var(--_ctm-dn-dn-dn-le-ht);
107
+ letter-spacing: var(--_ctm-dn-dn-dn-lr-sg);
108
+ text-align: var(--_ctm-dn-dn-dn-tt-an);
109
+ text-decoration: var(--_ctm-dn-dn-dn-ue);
110
+ }
111
+ }
112
+ }
113
+
114
+ .customization_preview_wrapper {
115
+ display: flex;
116
+ flex-direction: column;
117
+ min-height: 148px;
118
+ width: 100%;
119
+ border-radius: 4px;
120
+ border: 1px solid black;
121
+ gap: 16px;
122
+ background-color: #fff;
123
+ position: relative;
124
+ justify-content: center;
125
+ align-items: center;
126
+
127
+ .preview_text {
128
+ position: absolute;
129
+ top: 10px;
130
+ left: 10px;
131
+ }
132
+ }
133
+
134
+ .customization_note_wrapper {
135
+ display: flex;
136
+ align-items: center;
137
+ border-radius: 2px;
138
+ padding: 2px;
139
+ background-color: #f5f5f5;
140
+ font-weight: 400;
141
+ font-size: 14px;
142
+ line-height: 125%;
143
+ letter-spacing: -2%;
144
+ color: #333333;
145
+ }
146
+ }
147
+ }
148
+ }
149
+ }
@@ -0,0 +1,403 @@
1
+ // Colors
2
+ $white: var(--_white);
3
+ $black: var(--base-black);
4
+ $gray-100: #f9fafb;
5
+ $gray-300: #e5e7eb;
6
+ $gray-400: #ccc;
7
+ $gray-600: #737373;
8
+ $gray-700: #6b7280;
9
+ $gray-800: #444;
10
+ $gray-900: #111827;
11
+
12
+ $primary: var(--_primary-400);
13
+ $primary-hover: var(--_primary-500);
14
+ $text-dark: #222;
15
+ $text-medium: #374151;
16
+ $text-light: #666;
17
+
18
+ // Typography
19
+ $font-base: "Segoe UI", sans-serif;
20
+ $font-size-base: 14px;
21
+ $font-size-sm: 12px;
22
+ $font-size-md: 15px;
23
+ $font-size-lg: 18px;
24
+
25
+ // Spacing & Sizes
26
+ $radius: 6px;
27
+ $radius-lg: 8px;
28
+ $input-height: 32px;
29
+ $input-padding: 10px 12px;
30
+
31
+ // Z-Index
32
+ $z-index-modal: calc(var(--_higher-zIndex) + var(--_cs-et-zIndex) + 10);
33
+ $z-index-backdrop: calc(var(--_higher-zIndex) + var(--_cs-et-zIndex) + 11);
34
+ $z-index-wrapper: calc(var(--_higher-zIndex) + var(--_cs-et-zIndex) + 9);
35
+ $z-index-minimized: calc(var(--_higher-zIndex) + var(--_cs-et-zIndex) + 12);
36
+ $z-index-min-cart: calc(
37
+ var(--_higher-zIndex) + var(--_cs-et-zIndex) + 13
38
+ ); // Higher z-index for min cart
39
+
40
+ // Shadows
41
+ $shadow-md: 0 8px 20px rgba(0, 0, 0, 0.1);
42
+
43
+ .quick-order-main {
44
+ .quick-order-wrapper {
45
+ position: fixed;
46
+ bottom: 5%;
47
+ left: 50%;
48
+ transform: translate(-50%, 0%);
49
+ transition:
50
+ all 0.4s ease-in-out,
51
+ transform 0.4s ease-in-out;
52
+ background: $white;
53
+ border-radius: $radius-lg;
54
+ padding: 20px;
55
+ width: 850px;
56
+ font-family: $font-base;
57
+ box-shadow: $shadow-md;
58
+ z-index: $z-index-wrapper;
59
+ max-height: 70vh;
60
+ overflow: scroll;
61
+ display: flex;
62
+ flex-direction: column;
63
+
64
+ &.fullscreen {
65
+ transition:
66
+ all 0.5s ease-in-out,
67
+ transform 0.5s ease-in-out;
68
+ top: 50%;
69
+ left: 50%;
70
+ width: 95vw;
71
+ height: 95vh;
72
+ border-radius: $radius-lg;
73
+ transform: translate(-50%, -50%);
74
+ padding: 24px 32px;
75
+ box-shadow: none;
76
+ z-index: $z-index-modal;
77
+ display: flex;
78
+ flex-direction: column;
79
+ max-height: 100vh;
80
+
81
+ .product-list {
82
+ flex: 1;
83
+ overflow-y: auto;
84
+ margin-top: 24px;
85
+ }
86
+
87
+ .footer-bar {
88
+ border-top: 1px solid $gray-300;
89
+ padding-top: 16px;
90
+ margin-top: 24px;
91
+ }
92
+ }
93
+
94
+ .top-bar {
95
+ position: sticky;
96
+ top: 0;
97
+ background: $white;
98
+ z-index: 1;
99
+ padding-bottom: 12px;
100
+ .title-bar {
101
+ display: flex;
102
+ justify-content: space-between;
103
+ align-items: center;
104
+ margin-bottom: 16px;
105
+
106
+ .left-col {
107
+ display: flex;
108
+ gap: 10px;
109
+ align-items: center;
110
+ }
111
+
112
+ .title {
113
+ font-size: $font-size-lg;
114
+ font-weight: 600;
115
+ display: flex;
116
+ align-items: center;
117
+ gap: 8px;
118
+
119
+ .count {
120
+ font-weight: 700;
121
+ color: $gray-600;
122
+ background-color: #f2f4f7;
123
+ border-radius: 50%;
124
+ font-size: $font-size-sm;
125
+ width: 25px;
126
+ height: 25px;
127
+ display: flex;
128
+ align-items: center;
129
+ justify-content: center;
130
+ }
131
+ }
132
+
133
+ .actions span {
134
+ margin-left: 14px;
135
+ cursor: pointer;
136
+ font-size: 16px;
137
+ color: $text-light;
138
+ transition: color 0.2s;
139
+
140
+ &:hover {
141
+ color: $black;
142
+ }
143
+ }
144
+ }
145
+
146
+ .input-group {
147
+ display: flex;
148
+ gap: 12px;
149
+
150
+ input {
151
+ flex: 1;
152
+ padding: $input-padding;
153
+ border: 1px solid $gray-400;
154
+ border-radius: $radius;
155
+ font-size: $font-size-base;
156
+ transition: border 0.2s;
157
+
158
+ &:focus {
159
+ border-color: $primary;
160
+ outline: none;
161
+ }
162
+ }
163
+
164
+ .or-text {
165
+ align-self: center;
166
+ font-weight: 600;
167
+ color: $gray-800;
168
+ font-size: $font-size-base;
169
+ }
170
+
171
+ .add-btn {
172
+ background-color: $primary;
173
+ color: $white;
174
+ padding: 10px 16px;
175
+ border-radius: $radius;
176
+ font-weight: 600;
177
+ font-size: $font-size-base;
178
+ cursor: pointer;
179
+ transition: background-color 0.2s;
180
+
181
+ &:hover {
182
+ background-color: $primary-hover;
183
+ }
184
+ }
185
+ }
186
+ }
187
+
188
+ .product-list {
189
+ margin-top: 24px;
190
+
191
+ .product-row {
192
+ display: flex;
193
+ align-items: center;
194
+ padding: 16px 0;
195
+ border-bottom: 1px solid $gray-300;
196
+ transition: background 0.2s;
197
+
198
+ &:hover {
199
+ background-color: $gray-100;
200
+ }
201
+
202
+ .product-select {
203
+ flex: 0 0 32px;
204
+ display: flex;
205
+ justify-content: center;
206
+
207
+ input[type="checkbox"] {
208
+ width: 18px;
209
+ height: 18px;
210
+ }
211
+ }
212
+
213
+ .product-img {
214
+ flex: 0 0 60px;
215
+
216
+ img {
217
+ width: 60px;
218
+ height: 60px;
219
+ border-radius: $radius;
220
+ object-fit: cover;
221
+ }
222
+ }
223
+
224
+ .product-details {
225
+ flex: 1;
226
+ padding: 0 16px;
227
+
228
+ .product-title {
229
+ font-weight: 600;
230
+ font-size: $font-size-md;
231
+ margin-bottom: 4px;
232
+ color: $text-dark;
233
+ }
234
+
235
+ .product-meta,
236
+ .product-specs {
237
+ font-size: $font-size-sm;
238
+ color: $gray-700;
239
+ }
240
+ }
241
+
242
+ .product-qty {
243
+ display: flex;
244
+ align-items: center;
245
+ gap: 6px;
246
+ margin-right: 16px;
247
+
248
+ span {
249
+ font-size: 13px;
250
+ font-weight: 500;
251
+ }
252
+
253
+ input {
254
+ width: 50px;
255
+ height: $input-height;
256
+ padding: 4px;
257
+ border: 1px solid $gray-400;
258
+ border-radius: $radius;
259
+ text-align: center;
260
+ font-size: $font-size-base;
261
+ }
262
+ }
263
+
264
+ .product-price {
265
+ width: 90px;
266
+ text-align: right;
267
+ font-weight: 700;
268
+ font-size: $font-size-md;
269
+ color: $gray-900;
270
+ }
271
+ }
272
+ }
273
+
274
+ .footer-bar {
275
+ position: sticky;
276
+ bottom: 0;
277
+ display: flex;
278
+ justify-content: space-between;
279
+ padding-top: 16px;
280
+ border-top: 1px solid $gray-300;
281
+ margin-top: 24px;
282
+ font-size: $font-size-base;
283
+
284
+ .summary span {
285
+ margin-right: 18px;
286
+ font-weight: 500;
287
+ color: $text-medium;
288
+ }
289
+
290
+ .footer-actions {
291
+ display: flex;
292
+ gap: 10px;
293
+
294
+ .cancel-btn {
295
+ border-radius: $radius;
296
+ padding: 10px 14px;
297
+ font-weight: 500;
298
+ font-size: $font-size-base;
299
+ color: #333;
300
+ cursor: pointer;
301
+ transition: background 0.2s;
302
+
303
+ &:hover {
304
+ background: $gray-300;
305
+ }
306
+ }
307
+
308
+ .cart-btn {
309
+ background: $primary;
310
+ color: $white;
311
+ border-radius: $radius;
312
+ padding: 10px 20px;
313
+ font-weight: 600;
314
+ font-size: $font-size-base;
315
+ display: flex;
316
+ align-items: center;
317
+ gap: 8px;
318
+ cursor: pointer;
319
+ transition: background 0.2s;
320
+
321
+ &:hover {
322
+ background: $primary-hover;
323
+ }
324
+ }
325
+ }
326
+ }
327
+ }
328
+
329
+ .quick-order-backdrop {
330
+ position: fixed;
331
+ inset: 0;
332
+ background: rgba(0, 0, 0, 0.4);
333
+ z-index: $z-index-backdrop;
334
+ }
335
+
336
+ .quick-order-min {
337
+ position: fixed;
338
+ transition:
339
+ all 0.4s ease-in-out,
340
+ transform 0.4s ease-in-out;
341
+ right: 20px;
342
+ bottom: 20px;
343
+ padding: 0; /* Remove padding from the main min container */
344
+ border-radius: $radius;
345
+ box-shadow: $shadow-md;
346
+ z-index: $z-index-minimized;
347
+ display: none;
348
+ flex-direction: row; /* Align items in a row */
349
+ align-items: center;
350
+ gap: 10px; /* Adjust gap between elements */
351
+ font-size: $font-size-base;
352
+ background-color: transparent; /* Make the main container transparent */
353
+
354
+ .min-toolbar {
355
+ background-color: $white;
356
+ display: flex;
357
+ align-items: center; /* Align items vertically in the toolbar */
358
+ padding: 12px 16px; /* Add padding to the toolbar */
359
+ border-radius: $radius 0 0 $radius; /* Rounded left corners */
360
+ gap: 16px;
361
+ }
362
+
363
+ &.active {
364
+ display: flex;
365
+ }
366
+
367
+ .cart-btn {
368
+ background: $primary;
369
+ color: $white;
370
+ border: none; /* Remove border */
371
+ border-radius: 0 $radius $radius 0; /* Rounded right corners */
372
+ padding: 12px 16px;
373
+ font-weight: 600;
374
+ font-size: $font-size-sm;
375
+ display: flex;
376
+ align-items: center;
377
+ gap: 4px;
378
+ cursor: pointer;
379
+ transition: background 0.2s;
380
+ z-index: $z-index-min-cart;
381
+
382
+ &:hover {
383
+ background: $primary-hover;
384
+ }
385
+ }
386
+
387
+ .actions {
388
+ display: flex;
389
+ gap: 8px;
390
+
391
+ span {
392
+ cursor: pointer;
393
+ font-size: 16px;
394
+ color: $text-light;
395
+ transition: color 0.2s;
396
+
397
+ &:hover {
398
+ color: $black;
399
+ }
400
+ }
401
+ }
402
+ }
403
+ }