@storepecker/storefront-core 2.3.6 → 2.4.1

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 (91) hide show
  1. package/dist/api/index.cjs +28 -24
  2. package/dist/api/index.d.cts +8 -5
  3. package/dist/api/index.d.ts +8 -5
  4. package/dist/api/index.js +1 -1
  5. package/dist/{booking-CG6tul9l.d.ts → booking-BVWe8HHh.d.ts} +1 -1
  6. package/dist/{booking-DNVf5ZAS.d.cts → booking-DX9SU_qm.d.cts} +1 -1
  7. package/dist/cart-kJoawc_Z.d.cts +126 -0
  8. package/dist/cart-y-7RPmnQ.d.ts +126 -0
  9. package/dist/checkout/index.cjs +22 -22
  10. package/dist/checkout/index.d.cts +3 -1
  11. package/dist/checkout/index.d.ts +3 -1
  12. package/dist/checkout/index.js +2 -2
  13. package/dist/{chunk-BTT3XQ32.cjs → chunk-33TWVRZE.cjs} +6 -6
  14. package/dist/chunk-3YRSHPM6.cjs +34 -0
  15. package/dist/chunk-6DXB4O6P.cjs +121 -0
  16. package/dist/{chunk-ILVGYHNI.js → chunk-6Q7QMPOQ.js} +2 -1
  17. package/dist/{chunk-HTFVROIV.cjs → chunk-7UK3E7SL.cjs} +6 -0
  18. package/dist/chunk-B3BXKMQA.cjs +271 -0
  19. package/dist/chunk-BTR3HLL4.js +14 -0
  20. package/dist/chunk-EGFOTJPC.js +22 -0
  21. package/dist/{chunk-YUPBTD4M.js → chunk-F45S7UWC.js} +1 -139
  22. package/dist/chunk-HAQWCNDY.cjs +24 -0
  23. package/dist/{chunk-Y4NGR42Z.js → chunk-HUIT4JCR.js} +1 -1
  24. package/dist/{chunk-TF2KMTB6.js → chunk-JRYWZMNT.js} +1 -1
  25. package/dist/{chunk-JCOOINQF.cjs → chunk-KLNKIQQM.cjs} +4 -3
  26. package/dist/chunk-L43KF3AC.js +269 -0
  27. package/dist/chunk-LHF5BSWO.cjs +16 -0
  28. package/dist/chunk-LJUGNSQQ.cjs +149 -0
  29. package/dist/chunk-LLRSKDH5.js +115 -0
  30. package/dist/chunk-OSM73ETC.js +139 -0
  31. package/dist/{chunk-4CVKE6CC.cjs → chunk-OTMTHA5C.cjs} +0 -147
  32. package/dist/{chunk-JH4JJBXE.cjs → chunk-TTIQRDHX.cjs} +2 -2
  33. package/dist/chunk-U7EXLQCT.js +32 -0
  34. package/dist/{chunk-LW3V53WJ.js → chunk-UVU7H4E6.js} +6 -1
  35. package/dist/chunk-V447PVRV.cjs +308 -0
  36. package/dist/chunk-YK4M3SFP.js +301 -0
  37. package/dist/{collections-Bz9KD7Na.d.cts → collections-BDSVfRNo.d.ts} +1 -1
  38. package/dist/{collections-CkEUi3BR.d.ts → collections-WzvTO0OQ.d.cts} +1 -1
  39. package/dist/components/address-form.cjs +17 -0
  40. package/dist/components/address-form.css +329 -0
  41. package/dist/components/address-form.d.cts +33 -0
  42. package/dist/components/address-form.d.ts +33 -0
  43. package/dist/components/address-form.js +11 -0
  44. package/dist/components/digital-product-download-modal.cjs +8 -0
  45. package/dist/components/digital-product-download-modal.d.cts +15 -0
  46. package/dist/components/digital-product-download-modal.d.ts +15 -0
  47. package/dist/components/digital-product-download-modal.js +2 -0
  48. package/dist/components/index.cjs +35 -695
  49. package/dist/components/index.d.cts +14 -87
  50. package/dist/components/index.d.ts +14 -87
  51. package/dist/components/index.js +11 -688
  52. package/dist/components/search-dropdown.cjs +7 -0
  53. package/dist/components/search-dropdown.css +200 -0
  54. package/dist/components/search-dropdown.d.cts +28 -0
  55. package/dist/components/search-dropdown.d.ts +28 -0
  56. package/dist/components/search-dropdown.js +1 -0
  57. package/dist/components/share-button.cjs +9 -0
  58. package/dist/components/share-button.d.cts +11 -0
  59. package/dist/components/share-button.d.ts +11 -0
  60. package/dist/components/share-button.js +3 -0
  61. package/dist/components/share-icon.cjs +7 -0
  62. package/dist/components/share-icon.d.cts +9 -0
  63. package/dist/components/share-icon.d.ts +9 -0
  64. package/dist/components/share-icon.js +1 -0
  65. package/dist/components/theme-data-initializer.cjs +8 -0
  66. package/dist/components/theme-data-initializer.d.cts +12 -0
  67. package/dist/components/theme-data-initializer.d.ts +12 -0
  68. package/dist/components/theme-data-initializer.js +2 -0
  69. package/dist/hooks/index.cjs +18 -17
  70. package/dist/hooks/index.d.cts +4 -2
  71. package/dist/hooks/index.d.ts +4 -2
  72. package/dist/hooks/index.js +6 -5
  73. package/dist/models/index.d.cts +6 -4
  74. package/dist/models/index.d.ts +6 -4
  75. package/dist/orders-CjNmCY5I.d.cts +144 -0
  76. package/dist/orders-L_8eIkUS.d.ts +144 -0
  77. package/dist/{pixelEvents-OVIkPw-J.d.ts → pixelEvents-Bo-VjAx8.d.ts} +4 -2
  78. package/dist/{pixelEvents-DYkiTkb2.d.cts → pixelEvents-C1rFPOwb.d.cts} +4 -2
  79. package/dist/{orders-fIdANHSl.d.ts → product-DJMdi4D4.d.cts} +1 -265
  80. package/dist/{orders-fIdANHSl.d.cts → product-DJMdi4D4.d.ts} +1 -265
  81. package/dist/store/index.cjs +5 -5
  82. package/dist/store/index.d.cts +6 -4
  83. package/dist/store/index.d.ts +6 -4
  84. package/dist/store/index.js +2 -2
  85. package/dist/utils/index.cjs +44 -43
  86. package/dist/utils/index.d.cts +7 -5
  87. package/dist/utils/index.d.ts +7 -5
  88. package/dist/utils/index.js +3 -2
  89. package/dist/{wishlist-stNzfvIP.d.cts → wishlist-CUuCTSVJ.d.cts} +1 -1
  90. package/dist/{wishlist-_bd4gLyQ.d.ts → wishlist-DKYFZR0s.d.ts} +1 -1
  91. package/package.json +50 -6
@@ -0,0 +1,329 @@
1
+ /* src/components/address-form/address-form.module.css */
2
+ .addressForm {
3
+ font-family: var(--body-font, "Inter", sans-serif);
4
+ }
5
+ .formBody {
6
+ max-height: 350px;
7
+ overflow-y: auto;
8
+ }
9
+ @media screen and (min-width: 640px) {
10
+ .formBody {
11
+ max-height: 480px;
12
+ }
13
+ }
14
+ .formGroup {
15
+ position: relative;
16
+ margin-bottom: 1.5rem;
17
+ }
18
+ .formGroup label {
19
+ display: block;
20
+ color: var(--text-primary, #000);
21
+ font-size: var(--fs-md, 14px);
22
+ margin-bottom: 0.5rem;
23
+ }
24
+ .formControl {
25
+ display: block;
26
+ width: 100%;
27
+ padding: 0.5rem 0.625rem;
28
+ color: var(--text-primary, #000);
29
+ font-size: var(--fs-md, 14px);
30
+ transition: all 0.2s ease-in;
31
+ border: 1px solid var(--bg-border, #d0d0d0);
32
+ border-radius: 4px;
33
+ outline: none;
34
+ box-shadow: none;
35
+ background-color: #fafafa;
36
+ }
37
+ .formControl:focus {
38
+ border-color: var(--text-primary, #000);
39
+ }
40
+ .formControl::placeholder {
41
+ color: var(--text-secondary, #666);
42
+ }
43
+ .error {
44
+ font-size: 0.75rem;
45
+ color: var(--error, #bc3232);
46
+ position: absolute;
47
+ font-weight: 400;
48
+ bottom: -20px;
49
+ left: 0;
50
+ }
51
+ .row {
52
+ display: flex;
53
+ gap: 0.75rem;
54
+ }
55
+ .col {
56
+ flex: 1;
57
+ min-width: 0;
58
+ }
59
+ .phoneRow {
60
+ display: flex;
61
+ gap: 0.5rem;
62
+ }
63
+ .phoneCodeCol {
64
+ width: 8rem;
65
+ flex-shrink: 0;
66
+ }
67
+ .phoneInputCol {
68
+ flex: 1;
69
+ min-width: 0;
70
+ }
71
+ .divider {
72
+ border: none;
73
+ border-top: 1px solid var(--bg-border, #d0d0d0);
74
+ margin: 0.75rem 0;
75
+ }
76
+ .checkboxLabel {
77
+ display: flex;
78
+ align-items: center;
79
+ font-size: var(--fs-md, 14px);
80
+ cursor: pointer;
81
+ gap: 0.5rem;
82
+ }
83
+ .checkboxInput {
84
+ width: 16px;
85
+ height: 16px;
86
+ accent-color: var(--primary, #003d29);
87
+ cursor: pointer;
88
+ }
89
+ .formFooter {
90
+ display: flex;
91
+ align-items: center;
92
+ justify-content: flex-end;
93
+ gap: 0.5rem;
94
+ padding-top: 0.75rem;
95
+ }
96
+ .cancelBtn {
97
+ padding: 0.5rem 1rem;
98
+ border: none;
99
+ border-radius: 4px;
100
+ background-color: var(--bg-secondary, rgb(243 244 246));
101
+ color: var(--text-primary, #000);
102
+ font-size: var(--fs-md, 14px);
103
+ cursor: pointer;
104
+ transition: var(--transition-all, all 0.25s ease);
105
+ }
106
+ .cancelBtn:hover {
107
+ background-color: var(--bg-border, #d0d0d0);
108
+ }
109
+ .selectWrapper {
110
+ position: relative;
111
+ }
112
+ .selectArrow {
113
+ position: absolute;
114
+ right: 12px;
115
+ top: 50%;
116
+ transform: translateY(-50%);
117
+ pointer-events: none;
118
+ color: var(--text-secondary, #666);
119
+ }
120
+ .formControl[data-select] {
121
+ -webkit-appearance: none;
122
+ -moz-appearance: none;
123
+ appearance: none;
124
+ padding-right: 2rem;
125
+ }
126
+ .phoneCodeCol .dropdownButton {
127
+ min-height: auto;
128
+ }
129
+
130
+ /* src/components/search-dropdown/search-dropdown.module.css */
131
+ .searchDropdown {
132
+ position: relative;
133
+ width: 100%;
134
+ font-family: var(--body-font, "Inter", sans-serif);
135
+ }
136
+ .label {
137
+ display: block;
138
+ margin-bottom: var(--sm, 8px);
139
+ font-size: var(--fs-md, 14px);
140
+ color: var(--text-secondary, #666);
141
+ font-weight: 400;
142
+ }
143
+ .dropdownContainer {
144
+ position: relative;
145
+ }
146
+ .dropdownButton {
147
+ display: flex;
148
+ align-items: center;
149
+ justify-content: space-between;
150
+ width: 100%;
151
+ padding: 0 var(--smd, 12px);
152
+ font-size: var(--fs-md, 14px);
153
+ color: var(--text-primary, #000);
154
+ background-color: transparent;
155
+ border-radius: var(--xs, 4px);
156
+ cursor: pointer;
157
+ transition: var(--transition-all, all 0.25s ease);
158
+ text-align: left;
159
+ min-height: 38px;
160
+ border: none !important;
161
+ outline: none !important;
162
+ box-shadow: 0px 0px 0px 1px var(--bg-border, #d0d0d0);
163
+ }
164
+ .dropdownButton:focus {
165
+ outline: none;
166
+ box-shadow: 0px 0px 0px 1.5px var(--bg-dark, #3d3b40);
167
+ }
168
+ .dropdownButton:disabled {
169
+ cursor: not-allowed;
170
+ opacity: 0.6;
171
+ background-color: var(--bg-secondary, rgb(243 244 246));
172
+ }
173
+ .selectedValue {
174
+ flex: 1;
175
+ overflow: hidden;
176
+ text-overflow: ellipsis;
177
+ white-space: nowrap;
178
+ color: var(--text-primary, #000);
179
+ font-weight: 500;
180
+ }
181
+ .chevron {
182
+ flex-shrink: 0;
183
+ margin-left: var(--sm, 8px);
184
+ color: var(--text-secondary, #666);
185
+ transition: transform 0.25s ease;
186
+ }
187
+ .chevronOpen {
188
+ transform: rotate(180deg);
189
+ }
190
+ .dropdownMenu {
191
+ position: absolute;
192
+ top: calc(100% + var(--xs, 4px));
193
+ left: 0;
194
+ right: 0;
195
+ z-index: 1000;
196
+ background-color: var(--bg-primary, #fefefe);
197
+ border: 1px solid var(--bg-border, #d0d0d0);
198
+ border-radius: var(--xs, 4px);
199
+ box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
200
+ overflow: hidden;
201
+ animation: slideDown 0.2s ease-out;
202
+ min-width: 260px;
203
+ }
204
+ @keyframes slideDown {
205
+ from {
206
+ opacity: 0;
207
+ transform: translateY(-8px);
208
+ }
209
+ to {
210
+ opacity: 1;
211
+ transform: translateY(0);
212
+ }
213
+ }
214
+ .searchContainer {
215
+ position: relative;
216
+ padding: var(--sm, 8px);
217
+ border-bottom: 1px solid var(--bg-border, #d0d0d0);
218
+ background-color: var(--bg-primary-smoke, #efefef);
219
+ }
220
+ .searchIcon {
221
+ position: absolute;
222
+ left: var(--md, 16px);
223
+ top: 50%;
224
+ transform: translateY(-50%);
225
+ color: var(--text-secondary, #666);
226
+ pointer-events: none;
227
+ }
228
+ .searchInput {
229
+ width: 100%;
230
+ padding: var(--sm, 8px) var(--sm, 8px) var(--sm, 8px) var(--xl, 32px);
231
+ font-size: var(--fs-md, 14px);
232
+ color: var(--text-primary, #000);
233
+ background-color: var(--bg-primary, #fefefe);
234
+ border: 1px solid var(--bg-border, #d0d0d0);
235
+ border-radius: var(--xs, 4px);
236
+ outline: none;
237
+ transition: var(--transition-all, all 0.25s ease);
238
+ }
239
+ .searchInput:focus {
240
+ border-color: var(--bg-dark, #3d3b40);
241
+ box-shadow: 0px 0px 0px 1.5px var(--bg-dark, #3d3b40);
242
+ }
243
+ .searchInput::placeholder {
244
+ color: var(--text-secondary, #666);
245
+ }
246
+ .optionsList {
247
+ list-style: none;
248
+ padding: 0;
249
+ margin: 0;
250
+ overflow-y: auto;
251
+ max-height: inherit;
252
+ }
253
+ .option {
254
+ padding: var(--smd, 12px) var(--md, 16px);
255
+ font-size: var(--fs-md, 14px);
256
+ color: var(--text-primary, #000);
257
+ cursor: pointer;
258
+ transition: var(--transition-all, all 0.25s ease);
259
+ border-bottom: 1px solid var(--bg-border, #d0d0d0);
260
+ }
261
+ .option:last-child {
262
+ border-bottom: none;
263
+ }
264
+ .option:hover:not(.optionDisabled) {
265
+ background-color: var(--bg-primary-smoke, #efefef);
266
+ color: var(--text-primary, #000);
267
+ }
268
+ .optionFocused:not(.optionDisabled) {
269
+ background-color: var(--primary-lighter, #f0f4f8);
270
+ color: var(--text-primary, #000);
271
+ }
272
+ .optionSelected {
273
+ background-color: var(--primary-lighter2, #d8e4f0);
274
+ color: var(--primary, #003d29);
275
+ font-weight: 500;
276
+ }
277
+ .optionDisabled {
278
+ opacity: 0.5;
279
+ cursor: not-allowed;
280
+ background-color: var(--bg-secondary, rgb(243 244 246));
281
+ }
282
+ .emptyMessage {
283
+ padding: var(--md, 16px);
284
+ text-align: center;
285
+ color: var(--text-secondary, #666);
286
+ font-size: var(--fs-md, 14px);
287
+ font-style: italic;
288
+ }
289
+ .errorMessage {
290
+ display: block;
291
+ margin-top: var(--xs, 4px);
292
+ font-size: var(--fs-sm, 12px);
293
+ color: var(--error, #bc3232);
294
+ position: absolute;
295
+ bottom: -20px;
296
+ left: 0;
297
+ }
298
+ .error .dropdownButton {
299
+ border-color: var(--error, #bc3232);
300
+ }
301
+ .error .dropdownButton:focus {
302
+ border-color: var(--error, #bc3232);
303
+ box-shadow: 0px 0px 0px 1.5px var(--error, #bc3232);
304
+ }
305
+ .disabled {
306
+ opacity: 0.6;
307
+ pointer-events: none;
308
+ }
309
+ .open .dropdownButton {
310
+ border-color: var(--bg-dark, #3d3b40);
311
+ box-shadow: 0px 0px 0px 1.5px var(--bg-dark, #3d3b40);
312
+ }
313
+ .countryCodeDropdown .label {
314
+ display: none;
315
+ }
316
+ .countryCodeDropdown .dropdownButton {
317
+ min-height: auto;
318
+ padding: 0.5rem 0.625rem;
319
+ font-size: var(--fs-md, 14px);
320
+ }
321
+ .countryCodeDropdown .selectedValue {
322
+ font-size: var(--fs-md, 14px);
323
+ font-weight: 500;
324
+ }
325
+ @media screen and (max-width: 768px) {
326
+ .dropdownMenu {
327
+ max-height: 250px;
328
+ }
329
+ }
@@ -0,0 +1,33 @@
1
+ import React__default from 'react';
2
+ import { U as UseAddressFormOptions, u as useAddressForm } from '../useAddressForm-DGbEn91-.cjs';
3
+ import 'formik';
4
+ import '../address-DwBZHzbI.cjs';
5
+
6
+ interface AddressFormRef {
7
+ formik: ReturnType<typeof useAddressForm>["formik"];
8
+ resetForm: () => void;
9
+ }
10
+ interface AddressFormProps extends UseAddressFormOptions {
11
+ /** Custom Button component rendered for the submit action. Receives type, disabled, children. */
12
+ renderButton?: (props: {
13
+ type: "submit";
14
+ disabled: boolean;
15
+ loading: boolean;
16
+ children: React__default.ReactNode;
17
+ }) => React__default.ReactNode;
18
+ /** Called when formik instance is ready (alternative to ref) */
19
+ onFormikReady?: (formik: ReturnType<typeof useAddressForm>["formik"]) => void;
20
+ /** Called when cancel is clicked */
21
+ onCancel?: () => void;
22
+ /** Show cancel button. Default: true */
23
+ showCancel?: boolean;
24
+ /** Show "Make default address" checkbox. Default: true */
25
+ showDefaultCheckbox?: boolean;
26
+ /** Custom class name for the form wrapper */
27
+ className?: string;
28
+ /** Submit button text. Default: "Save" */
29
+ submitLabel?: string;
30
+ }
31
+ declare const AddressForm: React__default.ForwardRefExoticComponent<AddressFormProps & React__default.RefAttributes<AddressFormRef>>;
32
+
33
+ export { type AddressFormProps, type AddressFormRef, AddressForm as default };
@@ -0,0 +1,33 @@
1
+ import React__default from 'react';
2
+ import { U as UseAddressFormOptions, u as useAddressForm } from '../useAddressForm-cO3Au33k.js';
3
+ import 'formik';
4
+ import '../address-DwBZHzbI.js';
5
+
6
+ interface AddressFormRef {
7
+ formik: ReturnType<typeof useAddressForm>["formik"];
8
+ resetForm: () => void;
9
+ }
10
+ interface AddressFormProps extends UseAddressFormOptions {
11
+ /** Custom Button component rendered for the submit action. Receives type, disabled, children. */
12
+ renderButton?: (props: {
13
+ type: "submit";
14
+ disabled: boolean;
15
+ loading: boolean;
16
+ children: React__default.ReactNode;
17
+ }) => React__default.ReactNode;
18
+ /** Called when formik instance is ready (alternative to ref) */
19
+ onFormikReady?: (formik: ReturnType<typeof useAddressForm>["formik"]) => void;
20
+ /** Called when cancel is clicked */
21
+ onCancel?: () => void;
22
+ /** Show cancel button. Default: true */
23
+ showCancel?: boolean;
24
+ /** Show "Make default address" checkbox. Default: true */
25
+ showDefaultCheckbox?: boolean;
26
+ /** Custom class name for the form wrapper */
27
+ className?: string;
28
+ /** Submit button text. Default: "Save" */
29
+ submitLabel?: string;
30
+ }
31
+ declare const AddressForm: React__default.ForwardRefExoticComponent<AddressFormProps & React__default.RefAttributes<AddressFormRef>>;
32
+
33
+ export { type AddressFormProps, type AddressFormRef, AddressForm as default };
@@ -0,0 +1,11 @@
1
+ export { address_form_default as default } from '../chunk-L43KF3AC.js';
2
+ import '../chunk-YK4M3SFP.js';
3
+ import '../chunk-6Q7QMPOQ.js';
4
+ import '../chunk-ZGMLOLTC.js';
5
+ import '../chunk-OSM73ETC.js';
6
+ import '../chunk-F45S7UWC.js';
7
+ import '../chunk-ELP23UGF.js';
8
+ import '../chunk-3SYYP3XV.js';
9
+ import '../chunk-WEMNXIRS.js';
10
+ import '../chunk-BQ256JKN.js';
11
+ import '../chunk-JQMLHRWL.js';
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var chunk6DXB4O6P_cjs = require('../chunk-6DXB4O6P.cjs');
4
+ require('../chunk-BBRB475I.cjs');
5
+
6
+
7
+
8
+ module.exports = chunk6DXB4O6P_cjs.digital_product_download_modal_default;
@@ -0,0 +1,15 @@
1
+ import { O as Order } from '../orders-CjNmCY5I.cjs';
2
+ import { f as ProductDetail } from '../product-DJMdi4D4.cjs';
3
+ import 'react-toastify';
4
+
5
+ interface DigitalProductDownloadModalProps {
6
+ open: boolean;
7
+ onClose: () => void;
8
+ product: Order.PurchasedProduct | null;
9
+ downloadAttribute: ProductDetail.DigitalProductVariant[];
10
+ onDownload: (attribute: ProductDetail.DigitalProductVariant) => void;
11
+ loading?: boolean;
12
+ }
13
+ declare const DigitalProductDownloadModal: React.FC<DigitalProductDownloadModalProps>;
14
+
15
+ export { type DigitalProductDownloadModalProps, DigitalProductDownloadModal as default };
@@ -0,0 +1,15 @@
1
+ import { O as Order } from '../orders-L_8eIkUS.js';
2
+ import { f as ProductDetail } from '../product-DJMdi4D4.js';
3
+ import 'react-toastify';
4
+
5
+ interface DigitalProductDownloadModalProps {
6
+ open: boolean;
7
+ onClose: () => void;
8
+ product: Order.PurchasedProduct | null;
9
+ downloadAttribute: ProductDetail.DigitalProductVariant[];
10
+ onDownload: (attribute: ProductDetail.DigitalProductVariant) => void;
11
+ loading?: boolean;
12
+ }
13
+ declare const DigitalProductDownloadModal: React.FC<DigitalProductDownloadModalProps>;
14
+
15
+ export { type DigitalProductDownloadModalProps, DigitalProductDownloadModal as default };
@@ -0,0 +1,2 @@
1
+ export { digital_product_download_modal_default as default } from '../chunk-LLRSKDH5.js';
2
+ import '../chunk-HSF2D56O.js';