@cartbase/storefront 0.22.0 → 0.23.0

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/README.md CHANGED
@@ -45,6 +45,17 @@ NEXT_PUBLIC_CARTBASE_URL= # optional: only to point at a local or s
45
45
  | `@cartbase/storefront/locales` | English built in; Spanish and Bulgarian as typed packs. One provider mounts the language for every client component; the server-rendered templates take their area of the pack as a required prop |
46
46
  | `@cartbase/storefront/theme` | The design system: token names plus a filled default set of values (Tailwind 4, CSS-first) |
47
47
 
48
+ ### Pickup points
49
+
50
+ The checkout pickup picker loads each carrier's complete eligible catalogue
51
+ through the store API, then shows the nearest three to the typed address.
52
+ Its search accepts Latin or Cyrillic; the mounted locale pack selects
53
+ Speedy's display language. Offices exclude automated lockers. BoxNow keeps
54
+ both lists within the checkout city. No carrier credentials or copied
55
+ catalogue are needed in the storefront. Every shipping option carries the
56
+ connected adapter's identity, mark, destination mode and pickup scope, so the
57
+ same picker and logo path work for every carrier without storefront branches.
58
+
48
59
  ### Tracking, in three lines
49
60
 
50
61
  The merchant configures their pixels in the admin; the storefront mounts
package/package.json CHANGED
@@ -1,274 +1,274 @@
1
- {
2
- "name": "@cartbase/storefront",
3
- "version": "0.22.0",
4
- "description": "Storefront SDK + UI component library for Cartbase stores: typed API client, checkout orchestration, cart drawer, product/catalog components, tracking. Source-shipped TypeScript — add it to transpilePackages.",
5
- "license": "MIT",
6
- "repository": {
7
- "type": "git",
8
- "url": "git+https://github.com/Cartbase/cartbase.git",
9
- "directory": "packages/storefront"
10
- },
11
- "type": "module",
12
- "sideEffects": false,
13
- "files": [
14
- "src",
15
- "theme",
16
- "README.md"
17
- ],
18
- "exports": {
19
- ".": "./src/index.ts",
20
- "./api": "./src/api/index.ts",
21
- "./api/http": "./src/api/http.ts",
22
- "./api/types": "./src/api/types.ts",
23
- "./api/products": "./src/api/products.ts",
24
- "./api/collections": "./src/api/collections.ts",
25
- "./api/categories": "./src/api/categories.ts",
26
- "./api/regions": "./src/api/regions.ts",
27
- "./api/store": "./src/api/store.ts",
28
- "./api/carts": "./src/api/carts.ts",
29
- "./api/gift-cards": "./src/api/gift-cards.ts",
30
- "./api/checkout": "./src/api/checkout.ts",
31
- "./api/orders": "./src/api/orders.ts",
32
- "./api/customers": "./src/api/customers.ts",
33
- "./api/auth": "./src/api/auth.ts",
34
- "./api/content": "./src/api/content.ts",
35
- "./api/menus": "./src/api/menus.ts",
36
- "./api/metaobjects": "./src/api/metaobjects.ts",
37
- "./api/reviews": "./src/api/reviews.ts",
38
- "./api/search": "./src/api/search.ts",
39
- "./api/integrations": "./src/api/integrations.ts",
40
- "./api/consent": "./src/api/consent.ts",
41
- "./api/redirects": "./src/api/redirects.ts",
42
- "./theme": "./theme/index.css",
43
- "./theme/tokens.css": "./theme/tokens.css",
44
- "./theme/theme.css": "./theme/theme.css",
45
- "./lib/utils": "./src/lib/utils.ts",
46
- "./lib/money": "./src/lib/money.ts",
47
- "./lib/cart-helpers": "./src/lib/cart-helpers.ts",
48
- "./lib/get-product-price": "./src/lib/get-product-price.ts",
49
- "./lib/get-percentage-diff": "./src/lib/get-percentage-diff.ts",
50
- "./lib/product": "./src/lib/product.ts",
51
- "./lib/sort-products": "./src/lib/sort-products.ts",
52
- "./lib/price": "./src/lib/price.tsx",
53
- "./lib/payment-constants": "./src/lib/payment-constants.ts",
54
- "./lib/country-name": "./src/lib/country-name.ts",
55
- "./lib/store-api-error": "./src/lib/store-api-error.ts",
56
- "./lib/hooks/use-intersection": "./src/lib/hooks/use-intersection.ts",
57
- "./lib/hooks/use-toggle-state": "./src/lib/hooks/use-toggle-state.ts",
58
- "./lib/cookie-names": "./src/lib/cookie-names.ts",
59
- "./lib/media-image": "./src/lib/media-image.tsx",
60
- "./lib/platform": "./src/lib/platform.ts",
61
- "./lib/visitor": "./src/lib/visitor.ts",
62
- "./platform": "./src/platform/index.ts",
63
- "./platform/identity": "./src/platform/identity.ts",
64
- "./platform/metadata": "./src/platform/metadata.ts",
65
- "./platform/platform-init": "./src/platform/platform-init.tsx",
66
- "./primitives/field": "./src/primitives/field.tsx",
67
- "./primitives/select-field": "./src/primitives/select-field.tsx",
68
- "./primitives/ui/accordion": "./src/primitives/ui/accordion.tsx",
69
- "./primitives/ui/button": "./src/primitives/ui/button.tsx",
70
- "./primitives/ui/collapsible": "./src/primitives/ui/collapsible.tsx",
71
- "./primitives/ui/dialog": "./src/primitives/ui/dialog.tsx",
72
- "./primitives/ui/input": "./src/primitives/ui/input.tsx",
73
- "./primitives/ui/label": "./src/primitives/ui/label.tsx",
74
- "./primitives/ui/popover": "./src/primitives/ui/popover.tsx",
75
- "./primitives/ui/select": "./src/primitives/ui/select.tsx",
76
- "./primitives/ui/sheet": "./src/primitives/ui/sheet.tsx",
77
- "./primitives/ui/tabs": "./src/primitives/ui/tabs.tsx",
78
- "./tracking": "./src/tracking/index.ts",
79
- "./tracking/types": "./src/tracking/types.ts",
80
- "./tracking/consent": "./src/tracking/consent.ts",
81
- "./tracking/consent-init": "./src/tracking/consent-init.tsx",
82
- "./tracking/consent-banner": "./src/tracking/consent-banner.tsx",
83
- "./tracking/meta-pixel": "./src/tracking/meta-pixel.tsx",
84
- "./tracking/ga4": "./src/tracking/ga4.tsx",
85
- "./tracking/tiktok-pixel": "./src/tracking/tiktok-pixel.tsx",
86
- "./tracking/ttq": "./src/tracking/ttq.ts",
87
- "./tracking/events": "./src/tracking/events.ts",
88
- "./tracking/storefront-tags": "./src/tracking/storefront-tags.tsx",
89
- "./tracking/track-init": "./src/tracking/track-init.tsx",
90
- "./tracking/track-order-purchase": "./src/tracking/track-order-purchase.tsx",
91
- "./tracking/gtm": "./src/tracking/gtm.tsx",
92
- "./tracking/inline-script": "./src/tracking/inline-script.ts",
93
- "./tracking/google-ads": "./src/tracking/google-ads.ts",
94
- "./tracking/rybbit": "./src/tracking/rybbit.tsx",
95
- "./tracking/rybbit-events": "./src/tracking/rybbit-events.ts",
96
- "./tracking/fbq": "./src/tracking/fbq.ts",
97
- "./tracking/gtag": "./src/tracking/gtag.ts",
98
- "./tracking/attribution": "./src/tracking/attribution.ts",
99
- "./tracking/get-tracking-config": "./src/tracking/get-tracking-config.ts",
100
- "./tracking/use-tracking-config": "./src/tracking/use-tracking-config.ts",
101
- "./tracking/get-tracking-attribution": "./src/tracking/get-tracking-attribution.ts",
102
- "./tracking/use-engagement-time": "./src/tracking/use-engagement-time.ts",
103
- "./tracking/page-views": "./src/tracking/page-views.tsx",
104
- "./tracking/live-heartbeat": "./src/tracking/live-heartbeat.tsx",
105
- "./tracking/once": "./src/tracking/once.ts",
106
- "./checkout": "./src/checkout/index.ts",
107
- "./checkout/context": "./src/checkout/context.tsx",
108
- "./checkout/labels": "./src/checkout/labels.ts",
109
- "./checkout/error-message": "./src/checkout/error-message.tsx",
110
- "./checkout/stripe-wrapper": "./src/checkout/stripe-wrapper.tsx",
111
- "./checkout/payment-wrapper": "./src/checkout/payment-wrapper.tsx",
112
- "./checkout/payment-button": "./src/checkout/payment-button.tsx",
113
- "./checkout/econt-office-selector": "./src/checkout/econt-office-selector.tsx",
114
- "./checkout/boxnow-locker-selector": "./src/checkout/boxnow-locker-selector.tsx",
115
- "./checkout/pigeon-office-selector": "./src/checkout/pigeon-office-selector.tsx",
116
- "./checkout/pickup-point-selector": "./src/checkout/pickup-point-selector.tsx",
117
- "./checkout/pickup-option": "./src/checkout/pickup-option.ts",
118
- "./checkout/carrier-marks": "./src/checkout/carrier-marks.ts",
119
- "./checkout/fulfillment-option": "./src/checkout/fulfillment-option.ts",
120
- "./checkout/address-select": "./src/checkout/address-select.tsx",
121
- "./checkout/company-details": "./src/checkout/company-details.tsx",
122
- "./checkout/discount-section": "./src/checkout/discount-section.tsx",
123
- "./checkout/gift-card-section": "./src/checkout/gift-card-section.tsx",
124
- "./checkout/line-item-card": "./src/checkout/line-item-card.tsx",
125
- "./checkout/order-summary": "./src/checkout/order-summary.tsx",
126
- "./checkout/mobile-checkout-top-bar": "./src/checkout/mobile-checkout-top-bar.tsx",
127
- "./checkout/mobile-checkout-bottom-bar": "./src/checkout/mobile-checkout-bottom-bar.tsx",
128
- "./checkout/mobile-order-summary-body": "./src/checkout/mobile-order-summary-body.tsx",
129
- "./checkout/summary-math": "./src/checkout/summary-math.ts",
130
- "./checkout/card-offer": "./src/checkout/card-offer.ts",
131
- "./checkout/address-form": "./src/checkout/address-form.tsx",
132
- "./checkout/shipping-method-list": "./src/checkout/shipping-method-list.tsx",
133
- "./checkout/payment-method-list": "./src/checkout/payment-method-list.tsx",
134
- "./checkout/checkout-client": "./src/checkout/checkout-client.tsx",
135
- "./checkout/checkout-error-screen": "./src/checkout/checkout-error-screen.tsx",
136
- "./checkout/use-checkout-orchestration": "./src/checkout/use-checkout-orchestration.ts",
137
- "./checkout/use-checkout-funnel": "./src/checkout/use-checkout-funnel.ts",
138
- "./checkout/payment-error-copy": "./src/checkout/payment-error-copy.ts",
139
- "./checkout/address-error-copy": "./src/checkout/address-error-copy.ts",
140
- "./checkout/promotion-error-copy": "./src/checkout/promotion-error-copy.ts",
141
- "./cart-drawer": "./src/cart-drawer/index.ts",
142
- "./cart-drawer/context": "./src/cart-drawer/context.tsx",
143
- "./cart-drawer/mutation-queue": "./src/cart-drawer/mutation-queue.ts",
144
- "./cart-drawer/labels": "./src/cart-drawer/labels.ts",
145
- "./cart-drawer/cart-drawer": "./src/cart-drawer/cart-drawer.tsx",
146
- "./cart-drawer/header": "./src/cart-drawer/header.tsx",
147
- "./cart-drawer/promo-banner": "./src/cart-drawer/promo-banner.tsx",
148
- "./cart-drawer/tiered-progress": "./src/cart-drawer/tiered-progress.tsx",
149
- "./cart-drawer/item": "./src/cart-drawer/item/index.tsx",
150
- "./cart-drawer/item/quantity": "./src/cart-drawer/item/quantity.tsx",
151
- "./cart-drawer/item/variant": "./src/cart-drawer/item/variant.tsx",
152
- "./cart-drawer/item/upsell": "./src/cart-drawer/item/upsell.tsx",
153
- "./cart-drawer/free-gift": "./src/cart-drawer/free-gift.tsx",
154
- "./cart-drawer/gift-wrap": "./src/cart-drawer/gift-wrap.tsx",
155
- "./cart-drawer/notes": "./src/cart-drawer/notes.tsx",
156
- "./cart-drawer/rewards-points": "./src/cart-drawer/rewards-points.tsx",
157
- "./cart-drawer/cross-sell-sidebar": "./src/cart-drawer/cross-sell-sidebar.tsx",
158
- "./cart-drawer/cross-sell-carousel": "./src/cart-drawer/cross-sell-carousel.tsx",
159
- "./cart-drawer/summary-breakdown": "./src/cart-drawer/summary-breakdown.tsx",
160
- "./cart-drawer/sticky-footer": "./src/cart-drawer/sticky-footer.tsx",
161
- "./cart-drawer/payment-badges": "./src/cart-drawer/payment-badges.tsx",
162
- "./cart-drawer/continue-shopping": "./src/cart-drawer/continue-shopping.tsx",
163
- "./cart-drawer/empty": "./src/cart-drawer/empty.tsx",
164
- "./cart-drawer/template": "./src/cart-drawer/template.tsx",
165
- "./products": "./src/products/index.ts",
166
- "./products/context": "./src/products/context.tsx",
167
- "./products/labels": "./src/products/labels.ts",
168
- "./products/thumbnail": "./src/products/thumbnail.tsx",
169
- "./products/preview-price": "./src/products/preview-price.tsx",
170
- "./products/product-price": "./src/products/product-price.tsx",
171
- "./products/option-select": "./src/products/option-select.tsx",
172
- "./products/image-gallery": "./src/products/image-gallery.tsx",
173
- "./products/variant-url": "./src/products/variant-url.ts",
174
- "./products/sets": "./src/products/sets.ts",
175
- "./products/use-product-actions": "./src/products/use-product-actions.ts",
176
- "./products/product-actions": "./src/products/product-actions.tsx",
177
- "./products/mobile-actions": "./src/products/mobile-actions.tsx",
178
- "./products/product-tabs": "./src/products/product-tabs.tsx",
179
- "./products/product-specs": "./src/products/product-specs.tsx",
180
- "./products/product-promises": "./src/products/product-promises.tsx",
181
- "./products/product-info": "./src/products/product-info.tsx",
182
- "./products/product-preview": "./src/products/product-preview.tsx",
183
- "./products/related-products": "./src/products/related-products.tsx",
184
- "./products/product-actions-wrapper": "./src/products/product-actions-wrapper.tsx",
185
- "./products/product-template": "./src/products/product-template.tsx",
186
- "./store": "./src/store/index.ts",
187
- "./store/labels": "./src/store/labels.ts",
188
- "./store/pagination": "./src/store/pagination.tsx",
189
- "./store/sort-select": "./src/store/sort-select.tsx",
190
- "./store/paginated-products": "./src/store/paginated-products.tsx",
191
- "./store/skeleton-product-grid": "./src/store/skeleton-product-grid.tsx",
192
- "./store/store-template": "./src/store/store-template.tsx",
193
- "./store/collection-template": "./src/store/collection-template.tsx",
194
- "./store/category-template": "./src/store/category-template.tsx",
195
- "./store/search-template": "./src/store/search-template.tsx",
196
- "./order": "./src/order/index.ts",
197
- "./order/context": "./src/order/context.tsx",
198
- "./order/labels": "./src/order/labels.ts",
199
- "./order/order-confirmation-header": "./src/order/order-confirmation-header.tsx",
200
- "./order/order-item": "./src/order/order-item.tsx",
201
- "./order/order-items-list": "./src/order/order-items-list.tsx",
202
- "./order/order-totals": "./src/order/order-totals.tsx",
203
- "./order/order-address-card": "./src/order/order-address-card.tsx",
204
- "./order/order-delivery-card": "./src/order/order-delivery-card.tsx",
205
- "./order/order-payment-card": "./src/order/order-payment-card.tsx",
206
- "./order/order-timeline": "./src/order/order-timeline.tsx",
207
- "./order/order-help-section": "./src/order/order-help-section.tsx",
208
- "./order/order-completed-template": "./src/order/order-completed-template.tsx",
209
- "./common": "./src/common/index.ts",
210
- "./common/localized-link": "./src/common/localized-link.tsx",
211
- "./common/cart-button": "./src/common/cart-button.tsx",
212
- "./common/cart-button-client": "./src/common/cart-button-client.tsx",
213
- "./common/delete-button": "./src/common/delete-button.tsx",
214
- "./common/country-flag": "./src/common/country-flag.tsx",
215
- "./common/market-select": "./src/common/market-select.tsx",
216
- "./common/country-select": "./src/common/country-select.tsx",
217
- "./common/language-select": "./src/common/language-select.tsx",
218
- "./common/skeleton": "./src/common/skeleton.tsx",
219
- "./common/payment-icons": "./src/common/payment-icons.tsx",
220
- "./common/social-links": "./src/common/social-links.tsx",
221
- "./common/powered-by-cartbase": "./src/common/powered-by-cartbase.tsx",
222
- "./reviews-ui": "./src/reviews-ui/index.ts",
223
- "./locales": "./src/locales/index.ts",
224
- "./locales/en": "./src/locales/en.ts",
225
- "./locales/es": "./src/locales/es.ts",
226
- "./locales/bg": "./src/locales/bg.ts"
227
- },
228
- "dependencies": {
229
- "@radix-ui/react-accordion": "^1.2.12",
230
- "@radix-ui/react-collapsible": "^1.1.12",
231
- "@radix-ui/react-dialog": "^1.1.15",
232
- "@radix-ui/react-dropdown-menu": "^2.1.16",
233
- "@radix-ui/react-label": "^2.1.8",
234
- "@radix-ui/react-popover": "^1.1.15",
235
- "@radix-ui/react-select": "^2.2.6",
236
- "@radix-ui/react-slot": "^1.2.4",
237
- "@radix-ui/react-tabs": "^1.1.13",
238
- "@stripe/react-stripe-js": "^6.1.0",
239
- "@stripe/stripe-js": "^9.1.0",
240
- "class-variance-authority": "^0.7.1",
241
- "clsx": "^2.1.1",
242
- "flag-icons": "^7.5.0",
243
- "lucide-react": "^1.8.0",
244
- "tailwind-merge": "^3.5.0"
245
- },
246
- "scripts": {
247
- "typecheck": "tsc --noEmit"
248
- },
249
- "peerDependencies": {
250
- "next": "^16.0.0",
251
- "react": "^19.0.0",
252
- "react-dom": "^19.0.0"
253
- },
254
- "peerDependenciesMeta": {
255
- "next": {
256
- "optional": true
257
- },
258
- "react": {
259
- "optional": true
260
- },
261
- "react-dom": {
262
- "optional": true
263
- }
264
- },
265
- "devDependencies": {
266
- "@types/node": "^20",
267
- "@types/react": "^19",
268
- "@types/react-dom": "^19",
269
- "typescript": "^5"
270
- },
271
- "engines": {
272
- "node": ">=20"
273
- }
274
- }
1
+ {
2
+ "name": "@cartbase/storefront",
3
+ "version": "0.23.0",
4
+ "description": "Storefront SDK + UI component library for Cartbase stores: typed API client, checkout orchestration, cart drawer, product/catalog components, tracking. Source-shipped TypeScript — add it to transpilePackages.",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/Cartbase/cartbase.git",
9
+ "directory": "packages/storefront"
10
+ },
11
+ "type": "module",
12
+ "sideEffects": false,
13
+ "files": [
14
+ "src",
15
+ "theme",
16
+ "README.md"
17
+ ],
18
+ "exports": {
19
+ ".": "./src/index.ts",
20
+ "./api": "./src/api/index.ts",
21
+ "./api/http": "./src/api/http.ts",
22
+ "./api/types": "./src/api/types.ts",
23
+ "./api/products": "./src/api/products.ts",
24
+ "./api/collections": "./src/api/collections.ts",
25
+ "./api/categories": "./src/api/categories.ts",
26
+ "./api/regions": "./src/api/regions.ts",
27
+ "./api/store": "./src/api/store.ts",
28
+ "./api/carts": "./src/api/carts.ts",
29
+ "./api/gift-cards": "./src/api/gift-cards.ts",
30
+ "./api/checkout": "./src/api/checkout.ts",
31
+ "./api/orders": "./src/api/orders.ts",
32
+ "./api/customers": "./src/api/customers.ts",
33
+ "./api/auth": "./src/api/auth.ts",
34
+ "./api/content": "./src/api/content.ts",
35
+ "./api/menus": "./src/api/menus.ts",
36
+ "./api/metaobjects": "./src/api/metaobjects.ts",
37
+ "./api/reviews": "./src/api/reviews.ts",
38
+ "./api/search": "./src/api/search.ts",
39
+ "./api/integrations": "./src/api/integrations.ts",
40
+ "./api/consent": "./src/api/consent.ts",
41
+ "./api/redirects": "./src/api/redirects.ts",
42
+ "./theme": "./theme/index.css",
43
+ "./theme/tokens.css": "./theme/tokens.css",
44
+ "./theme/theme.css": "./theme/theme.css",
45
+ "./lib/utils": "./src/lib/utils.ts",
46
+ "./lib/money": "./src/lib/money.ts",
47
+ "./lib/cart-helpers": "./src/lib/cart-helpers.ts",
48
+ "./lib/get-product-price": "./src/lib/get-product-price.ts",
49
+ "./lib/get-percentage-diff": "./src/lib/get-percentage-diff.ts",
50
+ "./lib/product": "./src/lib/product.ts",
51
+ "./lib/sort-products": "./src/lib/sort-products.ts",
52
+ "./lib/price": "./src/lib/price.tsx",
53
+ "./lib/payment-constants": "./src/lib/payment-constants.ts",
54
+ "./lib/country-name": "./src/lib/country-name.ts",
55
+ "./lib/store-api-error": "./src/lib/store-api-error.ts",
56
+ "./lib/hooks/use-intersection": "./src/lib/hooks/use-intersection.ts",
57
+ "./lib/hooks/use-toggle-state": "./src/lib/hooks/use-toggle-state.ts",
58
+ "./lib/cookie-names": "./src/lib/cookie-names.ts",
59
+ "./lib/media-image": "./src/lib/media-image.tsx",
60
+ "./lib/platform": "./src/lib/platform.ts",
61
+ "./lib/visitor": "./src/lib/visitor.ts",
62
+ "./platform": "./src/platform/index.ts",
63
+ "./platform/identity": "./src/platform/identity.ts",
64
+ "./platform/metadata": "./src/platform/metadata.ts",
65
+ "./platform/platform-init": "./src/platform/platform-init.tsx",
66
+ "./primitives/field": "./src/primitives/field.tsx",
67
+ "./primitives/select-field": "./src/primitives/select-field.tsx",
68
+ "./primitives/ui/accordion": "./src/primitives/ui/accordion.tsx",
69
+ "./primitives/ui/button": "./src/primitives/ui/button.tsx",
70
+ "./primitives/ui/collapsible": "./src/primitives/ui/collapsible.tsx",
71
+ "./primitives/ui/dialog": "./src/primitives/ui/dialog.tsx",
72
+ "./primitives/ui/input": "./src/primitives/ui/input.tsx",
73
+ "./primitives/ui/label": "./src/primitives/ui/label.tsx",
74
+ "./primitives/ui/popover": "./src/primitives/ui/popover.tsx",
75
+ "./primitives/ui/select": "./src/primitives/ui/select.tsx",
76
+ "./primitives/ui/sheet": "./src/primitives/ui/sheet.tsx",
77
+ "./primitives/ui/tabs": "./src/primitives/ui/tabs.tsx",
78
+ "./tracking": "./src/tracking/index.ts",
79
+ "./tracking/types": "./src/tracking/types.ts",
80
+ "./tracking/consent": "./src/tracking/consent.ts",
81
+ "./tracking/consent-init": "./src/tracking/consent-init.tsx",
82
+ "./tracking/consent-banner": "./src/tracking/consent-banner.tsx",
83
+ "./tracking/meta-pixel": "./src/tracking/meta-pixel.tsx",
84
+ "./tracking/ga4": "./src/tracking/ga4.tsx",
85
+ "./tracking/tiktok-pixel": "./src/tracking/tiktok-pixel.tsx",
86
+ "./tracking/ttq": "./src/tracking/ttq.ts",
87
+ "./tracking/events": "./src/tracking/events.ts",
88
+ "./tracking/storefront-tags": "./src/tracking/storefront-tags.tsx",
89
+ "./tracking/track-init": "./src/tracking/track-init.tsx",
90
+ "./tracking/track-order-purchase": "./src/tracking/track-order-purchase.tsx",
91
+ "./tracking/gtm": "./src/tracking/gtm.tsx",
92
+ "./tracking/inline-script": "./src/tracking/inline-script.ts",
93
+ "./tracking/google-ads": "./src/tracking/google-ads.ts",
94
+ "./tracking/rybbit": "./src/tracking/rybbit.tsx",
95
+ "./tracking/rybbit-events": "./src/tracking/rybbit-events.ts",
96
+ "./tracking/fbq": "./src/tracking/fbq.ts",
97
+ "./tracking/gtag": "./src/tracking/gtag.ts",
98
+ "./tracking/attribution": "./src/tracking/attribution.ts",
99
+ "./tracking/get-tracking-config": "./src/tracking/get-tracking-config.ts",
100
+ "./tracking/use-tracking-config": "./src/tracking/use-tracking-config.ts",
101
+ "./tracking/get-tracking-attribution": "./src/tracking/get-tracking-attribution.ts",
102
+ "./tracking/use-engagement-time": "./src/tracking/use-engagement-time.ts",
103
+ "./tracking/page-views": "./src/tracking/page-views.tsx",
104
+ "./tracking/live-heartbeat": "./src/tracking/live-heartbeat.tsx",
105
+ "./tracking/once": "./src/tracking/once.ts",
106
+ "./checkout": "./src/checkout/index.ts",
107
+ "./checkout/context": "./src/checkout/context.tsx",
108
+ "./checkout/labels": "./src/checkout/labels.ts",
109
+ "./checkout/error-message": "./src/checkout/error-message.tsx",
110
+ "./checkout/stripe-wrapper": "./src/checkout/stripe-wrapper.tsx",
111
+ "./checkout/payment-wrapper": "./src/checkout/payment-wrapper.tsx",
112
+ "./checkout/payment-button": "./src/checkout/payment-button.tsx",
113
+ "./checkout/econt-office-selector": "./src/checkout/econt-office-selector.tsx",
114
+ "./checkout/boxnow-locker-selector": "./src/checkout/boxnow-locker-selector.tsx",
115
+ "./checkout/pigeon-office-selector": "./src/checkout/pigeon-office-selector.tsx",
116
+ "./checkout/pickup-point-selector": "./src/checkout/pickup-point-selector.tsx",
117
+ "./checkout/pickup-option": "./src/checkout/pickup-option.ts",
118
+ "./checkout/carrier-marks": "./src/checkout/carrier-marks.ts",
119
+ "./checkout/fulfillment-option": "./src/checkout/fulfillment-option.ts",
120
+ "./checkout/address-select": "./src/checkout/address-select.tsx",
121
+ "./checkout/company-details": "./src/checkout/company-details.tsx",
122
+ "./checkout/discount-section": "./src/checkout/discount-section.tsx",
123
+ "./checkout/gift-card-section": "./src/checkout/gift-card-section.tsx",
124
+ "./checkout/line-item-card": "./src/checkout/line-item-card.tsx",
125
+ "./checkout/order-summary": "./src/checkout/order-summary.tsx",
126
+ "./checkout/mobile-checkout-top-bar": "./src/checkout/mobile-checkout-top-bar.tsx",
127
+ "./checkout/mobile-checkout-bottom-bar": "./src/checkout/mobile-checkout-bottom-bar.tsx",
128
+ "./checkout/mobile-order-summary-body": "./src/checkout/mobile-order-summary-body.tsx",
129
+ "./checkout/summary-math": "./src/checkout/summary-math.ts",
130
+ "./checkout/card-offer": "./src/checkout/card-offer.ts",
131
+ "./checkout/address-form": "./src/checkout/address-form.tsx",
132
+ "./checkout/shipping-method-list": "./src/checkout/shipping-method-list.tsx",
133
+ "./checkout/payment-method-list": "./src/checkout/payment-method-list.tsx",
134
+ "./checkout/checkout-client": "./src/checkout/checkout-client.tsx",
135
+ "./checkout/checkout-error-screen": "./src/checkout/checkout-error-screen.tsx",
136
+ "./checkout/use-checkout-orchestration": "./src/checkout/use-checkout-orchestration.ts",
137
+ "./checkout/use-checkout-funnel": "./src/checkout/use-checkout-funnel.ts",
138
+ "./checkout/payment-error-copy": "./src/checkout/payment-error-copy.ts",
139
+ "./checkout/address-error-copy": "./src/checkout/address-error-copy.ts",
140
+ "./checkout/promotion-error-copy": "./src/checkout/promotion-error-copy.ts",
141
+ "./cart-drawer": "./src/cart-drawer/index.ts",
142
+ "./cart-drawer/context": "./src/cart-drawer/context.tsx",
143
+ "./cart-drawer/mutation-queue": "./src/cart-drawer/mutation-queue.ts",
144
+ "./cart-drawer/labels": "./src/cart-drawer/labels.ts",
145
+ "./cart-drawer/cart-drawer": "./src/cart-drawer/cart-drawer.tsx",
146
+ "./cart-drawer/header": "./src/cart-drawer/header.tsx",
147
+ "./cart-drawer/promo-banner": "./src/cart-drawer/promo-banner.tsx",
148
+ "./cart-drawer/tiered-progress": "./src/cart-drawer/tiered-progress.tsx",
149
+ "./cart-drawer/item": "./src/cart-drawer/item/index.tsx",
150
+ "./cart-drawer/item/quantity": "./src/cart-drawer/item/quantity.tsx",
151
+ "./cart-drawer/item/variant": "./src/cart-drawer/item/variant.tsx",
152
+ "./cart-drawer/item/upsell": "./src/cart-drawer/item/upsell.tsx",
153
+ "./cart-drawer/free-gift": "./src/cart-drawer/free-gift.tsx",
154
+ "./cart-drawer/gift-wrap": "./src/cart-drawer/gift-wrap.tsx",
155
+ "./cart-drawer/notes": "./src/cart-drawer/notes.tsx",
156
+ "./cart-drawer/rewards-points": "./src/cart-drawer/rewards-points.tsx",
157
+ "./cart-drawer/cross-sell-sidebar": "./src/cart-drawer/cross-sell-sidebar.tsx",
158
+ "./cart-drawer/cross-sell-carousel": "./src/cart-drawer/cross-sell-carousel.tsx",
159
+ "./cart-drawer/summary-breakdown": "./src/cart-drawer/summary-breakdown.tsx",
160
+ "./cart-drawer/sticky-footer": "./src/cart-drawer/sticky-footer.tsx",
161
+ "./cart-drawer/payment-badges": "./src/cart-drawer/payment-badges.tsx",
162
+ "./cart-drawer/continue-shopping": "./src/cart-drawer/continue-shopping.tsx",
163
+ "./cart-drawer/empty": "./src/cart-drawer/empty.tsx",
164
+ "./cart-drawer/template": "./src/cart-drawer/template.tsx",
165
+ "./products": "./src/products/index.ts",
166
+ "./products/context": "./src/products/context.tsx",
167
+ "./products/labels": "./src/products/labels.ts",
168
+ "./products/thumbnail": "./src/products/thumbnail.tsx",
169
+ "./products/preview-price": "./src/products/preview-price.tsx",
170
+ "./products/product-price": "./src/products/product-price.tsx",
171
+ "./products/option-select": "./src/products/option-select.tsx",
172
+ "./products/image-gallery": "./src/products/image-gallery.tsx",
173
+ "./products/variant-url": "./src/products/variant-url.ts",
174
+ "./products/sets": "./src/products/sets.ts",
175
+ "./products/use-product-actions": "./src/products/use-product-actions.ts",
176
+ "./products/product-actions": "./src/products/product-actions.tsx",
177
+ "./products/mobile-actions": "./src/products/mobile-actions.tsx",
178
+ "./products/product-tabs": "./src/products/product-tabs.tsx",
179
+ "./products/product-specs": "./src/products/product-specs.tsx",
180
+ "./products/product-promises": "./src/products/product-promises.tsx",
181
+ "./products/product-info": "./src/products/product-info.tsx",
182
+ "./products/product-preview": "./src/products/product-preview.tsx",
183
+ "./products/related-products": "./src/products/related-products.tsx",
184
+ "./products/product-actions-wrapper": "./src/products/product-actions-wrapper.tsx",
185
+ "./products/product-template": "./src/products/product-template.tsx",
186
+ "./store": "./src/store/index.ts",
187
+ "./store/labels": "./src/store/labels.ts",
188
+ "./store/pagination": "./src/store/pagination.tsx",
189
+ "./store/sort-select": "./src/store/sort-select.tsx",
190
+ "./store/paginated-products": "./src/store/paginated-products.tsx",
191
+ "./store/skeleton-product-grid": "./src/store/skeleton-product-grid.tsx",
192
+ "./store/store-template": "./src/store/store-template.tsx",
193
+ "./store/collection-template": "./src/store/collection-template.tsx",
194
+ "./store/category-template": "./src/store/category-template.tsx",
195
+ "./store/search-template": "./src/store/search-template.tsx",
196
+ "./order": "./src/order/index.ts",
197
+ "./order/context": "./src/order/context.tsx",
198
+ "./order/labels": "./src/order/labels.ts",
199
+ "./order/order-confirmation-header": "./src/order/order-confirmation-header.tsx",
200
+ "./order/order-item": "./src/order/order-item.tsx",
201
+ "./order/order-items-list": "./src/order/order-items-list.tsx",
202
+ "./order/order-totals": "./src/order/order-totals.tsx",
203
+ "./order/order-address-card": "./src/order/order-address-card.tsx",
204
+ "./order/order-delivery-card": "./src/order/order-delivery-card.tsx",
205
+ "./order/order-payment-card": "./src/order/order-payment-card.tsx",
206
+ "./order/order-timeline": "./src/order/order-timeline.tsx",
207
+ "./order/order-help-section": "./src/order/order-help-section.tsx",
208
+ "./order/order-completed-template": "./src/order/order-completed-template.tsx",
209
+ "./common": "./src/common/index.ts",
210
+ "./common/localized-link": "./src/common/localized-link.tsx",
211
+ "./common/cart-button": "./src/common/cart-button.tsx",
212
+ "./common/cart-button-client": "./src/common/cart-button-client.tsx",
213
+ "./common/delete-button": "./src/common/delete-button.tsx",
214
+ "./common/country-flag": "./src/common/country-flag.tsx",
215
+ "./common/market-select": "./src/common/market-select.tsx",
216
+ "./common/country-select": "./src/common/country-select.tsx",
217
+ "./common/language-select": "./src/common/language-select.tsx",
218
+ "./common/skeleton": "./src/common/skeleton.tsx",
219
+ "./common/payment-icons": "./src/common/payment-icons.tsx",
220
+ "./common/social-links": "./src/common/social-links.tsx",
221
+ "./common/powered-by-cartbase": "./src/common/powered-by-cartbase.tsx",
222
+ "./reviews-ui": "./src/reviews-ui/index.ts",
223
+ "./locales": "./src/locales/index.ts",
224
+ "./locales/en": "./src/locales/en.ts",
225
+ "./locales/es": "./src/locales/es.ts",
226
+ "./locales/bg": "./src/locales/bg.ts"
227
+ },
228
+ "dependencies": {
229
+ "@radix-ui/react-accordion": "^1.2.12",
230
+ "@radix-ui/react-collapsible": "^1.1.12",
231
+ "@radix-ui/react-dialog": "^1.1.15",
232
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
233
+ "@radix-ui/react-label": "^2.1.8",
234
+ "@radix-ui/react-popover": "^1.1.15",
235
+ "@radix-ui/react-select": "^2.2.6",
236
+ "@radix-ui/react-slot": "^1.2.4",
237
+ "@radix-ui/react-tabs": "^1.1.13",
238
+ "@stripe/react-stripe-js": "^6.1.0",
239
+ "@stripe/stripe-js": "^9.1.0",
240
+ "class-variance-authority": "^0.7.1",
241
+ "clsx": "^2.1.1",
242
+ "flag-icons": "^7.5.0",
243
+ "lucide-react": "^1.8.0",
244
+ "tailwind-merge": "^3.5.0"
245
+ },
246
+ "scripts": {
247
+ "typecheck": "tsc --noEmit"
248
+ },
249
+ "peerDependencies": {
250
+ "next": "^16.0.0",
251
+ "react": "^19.0.0",
252
+ "react-dom": "^19.0.0"
253
+ },
254
+ "peerDependenciesMeta": {
255
+ "next": {
256
+ "optional": true
257
+ },
258
+ "react": {
259
+ "optional": true
260
+ },
261
+ "react-dom": {
262
+ "optional": true
263
+ }
264
+ },
265
+ "devDependencies": {
266
+ "@types/node": "^20",
267
+ "@types/react": "^19",
268
+ "@types/react-dom": "^19",
269
+ "typescript": "^5"
270
+ },
271
+ "engines": {
272
+ "node": ">=20"
273
+ }
274
+ }
@@ -49,6 +49,18 @@ export interface StoreShippingOption {
49
49
  service_zone_id: string | null
50
50
  shipping_profile_id: string | null
51
51
  data: Record<string, unknown> | null
52
+ /** Carrier identity and destination, resolved by the platform adapter. */
53
+ carrier?: {
54
+ id: string
55
+ name: string
56
+ mark_url: string | null
57
+ fulfillment_option: {
58
+ id: string
59
+ mode: "address" | "office" | "locker"
60
+ label: string
61
+ } | null
62
+ pickup_scope: "city" | "global"
63
+ } | null
52
64
  /** The option's display label (e.g. "Express") as `{ label }`, or null. */
53
65
  type: { label: string } | null
54
66
  /** Flat price in the cart currency; null without `cart_id` or when no price row matches. */