@akinon/projectzero 2.0.0-beta.20 → 2.0.0-beta.22
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/CHANGELOG.md +14 -0
- package/app-template/CHANGELOG.md +170 -0
- package/app-template/next.config.mjs +0 -1
- package/app-template/package.json +31 -30
- package/app-template/src/app/[pz]/[...prettyurl]/page.tsx +2 -2
- package/app-template/src/app/[pz]/account/layout.tsx +2 -1
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/blog/[slug]/page.tsx +4 -2
- package/app-template/src/app/[pz]/category/[pk]/page.tsx +11 -1
- package/app-template/src/app/[pz]/group-product/[pk]/page.tsx +2 -2
- package/app-template/src/app/[pz]/layout.tsx +3 -1
- package/app-template/src/app/[pz]/list/page.tsx +11 -1
- package/app-template/src/app/[pz]/page.tsx +13 -35
- package/app-template/src/app/[pz]/pages/[slug]/page.tsx +19 -0
- package/app-template/src/app/[pz]/product/[pk]/page.tsx +2 -2
- package/app-template/src/app/api/barcode-search/route.ts +1 -1
- package/app-template/src/app/api/cache/route.ts +1 -1
- package/app-template/src/app/api/image-proxy/route.ts +1 -1
- package/app-template/src/app/api/logout/route.ts +1 -1
- package/app-template/src/app/api/product-categories/route.ts +1 -1
- package/app-template/src/app/api/similar-product-list/route.ts +1 -1
- package/app-template/src/app/api/similar-products/route.ts +1 -1
- package/app-template/src/app/api/virtual-try-on/route.ts +1 -1
- package/app-template/src/app/api/web-vitals/route.ts +1 -1
- package/app-template/src/components/quantity-selector.tsx +16 -4
- package/app-template/src/components/widget-content.tsx +3 -3
- package/app-template/src/routes/index.ts +6 -6
- package/app-template/src/utils/__tests__/theme-page-context.test.ts +145 -0
- package/app-template/src/utils/theme-page-context.ts +309 -0
- package/app-template/src/views/basket/basket-item.tsx +107 -691
- package/app-template/src/views/basket/index.ts +0 -2
- package/app-template/src/views/basket/summary.tsx +75 -496
- package/app-template/src/views/breadcrumb.tsx +38 -13
- package/app-template/src/views/category/category-header.tsx +66 -289
- package/app-template/src/views/category/category-info.tsx +24 -173
- package/app-template/src/views/category/filters/index.tsx +48 -208
- package/app-template/src/views/category/layout.tsx +5 -7
- package/app-template/src/views/checkout/index.tsx +0 -5
- package/app-template/src/views/checkout/steps/payment/index.tsx +2 -5
- package/app-template/src/views/checkout/steps/payment/options/credit-card/index.tsx +1 -72
- package/app-template/src/views/checkout/steps/payment/payment-option-buttons.tsx +40 -171
- package/app-template/src/views/checkout/steps/shipping/address-box.tsx +12 -74
- package/app-template/src/views/checkout/steps/shipping/addresses.tsx +45 -128
- package/app-template/src/views/checkout/steps/shipping/shipping-options.tsx +27 -232
- package/app-template/src/views/checkout/summary.tsx +29 -303
- package/app-template/src/views/footer.tsx +13 -415
- package/app-template/src/views/guest-login/index.tsx +1 -1
- package/app-template/src/views/header/action-menu.tsx +45 -277
- package/app-template/src/views/header/band.tsx +21 -6
- package/app-template/src/views/header/index.tsx +47 -109
- package/app-template/src/views/header/mini-basket.tsx +45 -820
- package/app-template/src/views/header/navbar.tsx +111 -178
- package/app-template/src/views/header/search/index.tsx +32 -71
- package/app-template/src/views/header/search/results.tsx +65 -127
- package/app-template/src/views/product/accordion-wrapper.tsx +43 -135
- package/app-template/src/views/product/index.ts +1 -1
- package/app-template/src/views/product/layout.tsx +7 -2
- package/app-template/src/views/product/misc-buttons.tsx +25 -339
- package/app-template/src/views/product/product-actions.tsx +8 -137
- package/app-template/src/views/product/product-info.tsx +31 -69
- package/app-template/src/views/product/product-share.tsx +8 -11
- package/app-template/src/views/product/slider.tsx +79 -117
- package/app-template/src/views/product-item/index.tsx +46 -119
- package/app-template/src/widgets/footer-social.tsx +16 -47
- package/app-template/src/widgets/footer-subscription/index.tsx +17 -183
- package/codemods/migrate-auth-v5/index.js +339 -0
- package/codemods/migrate-auth-v5/transform.js +86 -0
- package/dist/commands/plugins.js +23 -2
- package/package.json +1 -1
- package/app-template/src/app/[commerce]/[locale]/[currency]/pages/[slug]/page.tsx +0 -15
- package/app-template/src/views/basket/basket-summary-context.tsx +0 -560
- package/app-template/src/views/basket/designer-context.tsx +0 -617
- package/app-template/src/views/breadcrumb/breadcrumb-client.tsx +0 -190
- package/app-template/src/views/breadcrumb/breadcrumb-registrar.tsx +0 -286
- package/app-template/src/views/breadcrumb/constants.ts +0 -15
- package/app-template/src/views/breadcrumb/index.tsx +0 -127
- package/app-template/src/views/category/native-widget-context.tsx +0 -257
- package/app-template/src/views/category/product-list-registrar.tsx +0 -665
- package/app-template/src/views/checkout/checkout-address-registrar.tsx +0 -254
- package/app-template/src/views/checkout/checkout-buttons-registrar.tsx +0 -183
- package/app-template/src/views/checkout/checkout-delivery-method-registrar.tsx +0 -259
- package/app-template/src/views/checkout/checkout-payment-options-registrar.tsx +0 -253
- package/app-template/src/views/checkout/checkout-summary-registrar.tsx +0 -183
- package/app-template/src/views/checkout/constants.ts +0 -5
- package/app-template/src/views/checkout/steps/payment/options/masterpass-rest.tsx +0 -15
- package/app-template/src/views/checkout/steps/payment/options/saved-card.tsx +0 -18
- package/app-template/src/views/footer/footer-app-banner-context.tsx +0 -326
- package/app-template/src/views/footer/footer-bottom-context.tsx +0 -215
- package/app-template/src/views/footer/footer-bottom-wrapper.tsx +0 -74
- package/app-template/src/views/footer/footer-layout-constants.ts +0 -35
- package/app-template/src/views/footer/footer-layout-registrar.tsx +0 -342
- package/app-template/src/views/footer/footer-layout-switcher.tsx +0 -110
- package/app-template/src/views/footer/footer-menu-context.tsx +0 -211
- package/app-template/src/views/footer/footer-native-widgets.tsx +0 -60
- package/app-template/src/views/footer/footer-social-context.tsx +0 -254
- package/app-template/src/views/footer/footer-subscription-context.tsx +0 -210
- package/app-template/src/views/footer/footer-utils.ts +0 -43
- package/app-template/src/views/footer/footer-value-props-context.tsx +0 -326
- package/app-template/src/views/footer/logo-settings.ts +0 -183
- package/app-template/src/views/footer/native-widget-config.ts +0 -262
- package/app-template/src/views/footer/subscription-settings.ts +0 -122
- package/app-template/src/views/footer/use-footer-logo.ts +0 -162
- package/app-template/src/views/header/designer-context.tsx +0 -261
- package/app-template/src/views/header/header-announcement-registrar.tsx +0 -267
- package/app-template/src/views/header/header-client-wrapper.tsx +0 -496
- package/app-template/src/views/header/header-content.tsx +0 -1026
- package/app-template/src/views/header/header-currency-registrar.tsx +0 -348
- package/app-template/src/views/header/header-icons-context.tsx +0 -262
- package/app-template/src/views/header/header-language-registrar.tsx +0 -348
- package/app-template/src/views/header/header-layout-context.tsx +0 -143
- package/app-template/src/views/header/header-layout-registrar.tsx +0 -658
- package/app-template/src/views/header/header-logo-context.tsx +0 -228
- package/app-template/src/views/header/header-logo.tsx +0 -118
- package/app-template/src/views/header/header-mini-basket-context.tsx +0 -524
- package/app-template/src/views/header/header-search-registrar.tsx +0 -511
- package/app-template/src/views/header/header-text-slider-registrar.tsx +0 -382
- package/app-template/src/views/header/inline-search.tsx +0 -262
- package/app-template/src/views/header/navbar-menu-context.tsx +0 -219
- package/app-template/src/views/header/search/search-input.tsx +0 -61
- package/app-template/src/views/header/server-settings-parser.ts +0 -1105
- package/app-template/src/views/header/use-header-icons.ts +0 -241
- package/app-template/src/views/header/use-header-logo.ts +0 -213
- package/app-template/src/views/header/use-navbar-menu.ts +0 -179
- package/app-template/src/views/product/accordion-section.tsx +0 -61
- package/app-template/src/views/product/custom-button-group.tsx +0 -69
- package/app-template/src/views/product/favorites-button-section.tsx +0 -69
- package/app-template/src/views/product/find-in-store-section.tsx +0 -60
- package/app-template/src/views/product/product-info-section.tsx +0 -140
- package/app-template/src/views/product/quantity-section.tsx +0 -73
- package/app-template/src/views/product/sale-tag.tsx +0 -10
- package/app-template/src/views/product/share-section.tsx +0 -357
- package/app-template/src/views/product/variants-section.tsx +0 -126
- package/app-template/src/views/product-detail/constants.ts +0 -272
- package/app-template/src/views/product-detail/index.ts +0 -10
- package/app-template/src/views/product-detail/product-detail-registrar.tsx +0 -616
- package/app-template/src/widgets/footer-app-banner.tsx +0 -444
- package/app-template/src/widgets/footer-bottom.tsx +0 -127
- package/app-template/src/widgets/footer-menu-compact.tsx +0 -238
- package/app-template/src/widgets/footer-menu-two.tsx +0 -298
- package/app-template/src/widgets/footer-social-client.tsx +0 -251
- package/app-template/src/widgets/footer-value-props.tsx +0 -201
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
# @akinon/projectzero
|
|
2
2
|
|
|
3
|
+
## 2.0.0-beta.22
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 11eae558: ZERO-4336: Add migrate-auth-v5 codemod for brand projects
|
|
8
|
+
|
|
9
|
+
## 2.0.0-beta.21
|
|
10
|
+
|
|
3
11
|
## 2.0.0-beta.20
|
|
4
12
|
|
|
13
|
+
## 1.126.0
|
|
14
|
+
|
|
15
|
+
## 1.125.2
|
|
16
|
+
|
|
17
|
+
## 1.125.1
|
|
18
|
+
|
|
5
19
|
## 1.125.0
|
|
6
20
|
|
|
7
21
|
## 1.124.0
|
|
@@ -1,5 +1,79 @@
|
|
|
1
1
|
# projectzeronext
|
|
2
2
|
|
|
3
|
+
## 2.0.0-beta.22
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- @akinon/next@2.0.0-beta.22
|
|
8
|
+
- @akinon/pz-akifast@2.0.0-beta.22
|
|
9
|
+
- @akinon/pz-apple-pay@2.0.0-beta.22
|
|
10
|
+
- @akinon/pz-b2b@2.0.0-beta.22
|
|
11
|
+
- @akinon/pz-basket-gift-pack@2.0.0-beta.22
|
|
12
|
+
- @akinon/pz-bkm@2.0.0-beta.22
|
|
13
|
+
- @akinon/pz-checkout-gift-pack@2.0.0-beta.22
|
|
14
|
+
- @akinon/pz-click-collect@2.0.0-beta.22
|
|
15
|
+
- @akinon/pz-credit-payment@2.0.0-beta.22
|
|
16
|
+
- @akinon/pz-cybersource-uc@2.0.0-beta.22
|
|
17
|
+
- @akinon/pz-flow-payment@2.0.0-beta.22
|
|
18
|
+
- @akinon/pz-google-pay@2.0.0-beta.22
|
|
19
|
+
- @akinon/pz-gpay@2.0.0-beta.22
|
|
20
|
+
- @akinon/pz-haso@2.0.0-beta.22
|
|
21
|
+
- @akinon/pz-hepsipay@2.0.0-beta.22
|
|
22
|
+
- @akinon/pz-masterpass@2.0.0-beta.22
|
|
23
|
+
- @akinon/pz-masterpass-rest@2.0.0-beta.22
|
|
24
|
+
- @akinon/pz-multi-basket@2.0.0-beta.22
|
|
25
|
+
- @akinon/pz-one-click-checkout@2.0.0-beta.22
|
|
26
|
+
- @akinon/pz-otp@2.0.0-beta.22
|
|
27
|
+
- @akinon/pz-pay-on-delivery@2.0.0-beta.22
|
|
28
|
+
- @akinon/pz-saved-card@2.0.0-beta.22
|
|
29
|
+
- @akinon/pz-similar-products@2.0.0-beta.22
|
|
30
|
+
- @akinon/pz-tabby-extension@2.0.0-beta.22
|
|
31
|
+
- @akinon/pz-tamara-extension@2.0.0-beta.22
|
|
32
|
+
- @akinon/pz-theme@2.0.0-beta.22
|
|
33
|
+
- @akinon/pz-virtual-try-on@2.0.0-beta.22
|
|
34
|
+
|
|
35
|
+
## 2.0.0-beta.21
|
|
36
|
+
|
|
37
|
+
### Patch Changes
|
|
38
|
+
|
|
39
|
+
- 5d44ff77: ZERO-4312: Extract ThemePlaceholder system into new @akinon/pz-theme package and strip native widget code
|
|
40
|
+
|
|
41
|
+
Introduce a dedicated `@akinon/pz-theme` package that contains the ThemePlaceholder system (CMS-driven sections/blocks, designer features, utilities). Remove native widget registration infrastructure from both `@akinon/pz-theme` and `projectzeronext` so the beta branch can be merged to main with only stable ThemePlaceholder functionality. Native widget integrations will be reintroduced via `@akinon/pz-theme` once they stabilize on the `theme-editor` branch.
|
|
42
|
+
|
|
43
|
+
Consumers should update imports:
|
|
44
|
+
|
|
45
|
+
- `@akinon/next/components/theme-editor/*` -> `@akinon/pz-theme/src/*`
|
|
46
|
+
- Add `@akinon/pz-theme` to package.json dependencies (matching `@akinon/next` version)
|
|
47
|
+
|
|
48
|
+
- Updated dependencies [5d44ff77]
|
|
49
|
+
- @akinon/pz-theme@2.0.0-beta.21
|
|
50
|
+
- @akinon/next@2.0.0-beta.21
|
|
51
|
+
- @akinon/pz-virtual-try-on@2.0.0-beta.21
|
|
52
|
+
- @akinon/pz-akifast@2.0.0-beta.21
|
|
53
|
+
- @akinon/pz-apple-pay@2.0.0-beta.21
|
|
54
|
+
- @akinon/pz-b2b@2.0.0-beta.21
|
|
55
|
+
- @akinon/pz-basket-gift-pack@2.0.0-beta.21
|
|
56
|
+
- @akinon/pz-bkm@2.0.0-beta.21
|
|
57
|
+
- @akinon/pz-checkout-gift-pack@2.0.0-beta.21
|
|
58
|
+
- @akinon/pz-click-collect@2.0.0-beta.21
|
|
59
|
+
- @akinon/pz-credit-payment@2.0.0-beta.21
|
|
60
|
+
- @akinon/pz-cybersource-uc@2.0.0-beta.21
|
|
61
|
+
- @akinon/pz-flow-payment@2.0.0-beta.21
|
|
62
|
+
- @akinon/pz-google-pay@2.0.0-beta.21
|
|
63
|
+
- @akinon/pz-gpay@2.0.0-beta.21
|
|
64
|
+
- @akinon/pz-haso@2.0.0-beta.21
|
|
65
|
+
- @akinon/pz-hepsipay@2.0.0-beta.21
|
|
66
|
+
- @akinon/pz-masterpass@2.0.0-beta.21
|
|
67
|
+
- @akinon/pz-masterpass-rest@2.0.0-beta.21
|
|
68
|
+
- @akinon/pz-multi-basket@2.0.0-beta.21
|
|
69
|
+
- @akinon/pz-one-click-checkout@2.0.0-beta.21
|
|
70
|
+
- @akinon/pz-otp@2.0.0-beta.21
|
|
71
|
+
- @akinon/pz-pay-on-delivery@2.0.0-beta.21
|
|
72
|
+
- @akinon/pz-saved-card@2.0.0-beta.21
|
|
73
|
+
- @akinon/pz-similar-products@2.0.0-beta.21
|
|
74
|
+
- @akinon/pz-tabby-extension@2.0.0-beta.21
|
|
75
|
+
- @akinon/pz-tamara-extension@2.0.0-beta.21
|
|
76
|
+
|
|
3
77
|
## 2.0.0-beta.20
|
|
4
78
|
|
|
5
79
|
### Minor Changes
|
|
@@ -46,6 +120,102 @@
|
|
|
46
120
|
- @akinon/pz-tabby-extension@2.0.0-beta.20
|
|
47
121
|
- @akinon/pz-tamara-extension@2.0.0-beta.20
|
|
48
122
|
|
|
123
|
+
## 1.126.0
|
|
124
|
+
|
|
125
|
+
### Patch Changes
|
|
126
|
+
|
|
127
|
+
- Updated dependencies [46d787e6]
|
|
128
|
+
- @akinon/pz-flow-payment@1.126.0
|
|
129
|
+
- @akinon/next@1.126.0
|
|
130
|
+
- @akinon/pz-akifast@1.126.0
|
|
131
|
+
- @akinon/pz-apple-pay@1.126.0
|
|
132
|
+
- @akinon/pz-b2b@1.126.0
|
|
133
|
+
- @akinon/pz-basket-gift-pack@1.126.0
|
|
134
|
+
- @akinon/pz-bkm@1.126.0
|
|
135
|
+
- @akinon/pz-checkout-gift-pack@1.126.0
|
|
136
|
+
- @akinon/pz-click-collect@1.126.0
|
|
137
|
+
- @akinon/pz-credit-payment@1.126.0
|
|
138
|
+
- @akinon/pz-cybersource-uc@1.126.0
|
|
139
|
+
- @akinon/pz-google-pay@1.126.0
|
|
140
|
+
- @akinon/pz-gpay@1.126.0
|
|
141
|
+
- @akinon/pz-haso@1.126.0
|
|
142
|
+
- @akinon/pz-hepsipay@1.126.0
|
|
143
|
+
- @akinon/pz-masterpass@1.126.0
|
|
144
|
+
- @akinon/pz-masterpass-rest@1.126.0
|
|
145
|
+
- @akinon/pz-multi-basket@1.126.0
|
|
146
|
+
- @akinon/pz-one-click-checkout@1.126.0
|
|
147
|
+
- @akinon/pz-otp@1.126.0
|
|
148
|
+
- @akinon/pz-pay-on-delivery@1.126.0
|
|
149
|
+
- @akinon/pz-saved-card@1.126.0
|
|
150
|
+
- @akinon/pz-similar-products@1.126.0
|
|
151
|
+
- @akinon/pz-tabby-extension@1.126.0
|
|
152
|
+
- @akinon/pz-tamara-extension@1.126.0
|
|
153
|
+
- @akinon/pz-virtual-try-on@1.126.0
|
|
154
|
+
|
|
155
|
+
## 1.125.2
|
|
156
|
+
|
|
157
|
+
### Patch Changes
|
|
158
|
+
|
|
159
|
+
- Updated dependencies [0220a136]
|
|
160
|
+
- @akinon/pz-flow-payment@1.125.2
|
|
161
|
+
- @akinon/next@1.125.2
|
|
162
|
+
- @akinon/pz-akifast@1.125.2
|
|
163
|
+
- @akinon/pz-apple-pay@1.125.2
|
|
164
|
+
- @akinon/pz-b2b@1.125.2
|
|
165
|
+
- @akinon/pz-basket-gift-pack@1.125.2
|
|
166
|
+
- @akinon/pz-bkm@1.125.2
|
|
167
|
+
- @akinon/pz-checkout-gift-pack@1.125.2
|
|
168
|
+
- @akinon/pz-click-collect@1.125.2
|
|
169
|
+
- @akinon/pz-credit-payment@1.125.2
|
|
170
|
+
- @akinon/pz-cybersource-uc@1.125.2
|
|
171
|
+
- @akinon/pz-google-pay@1.125.2
|
|
172
|
+
- @akinon/pz-gpay@1.125.2
|
|
173
|
+
- @akinon/pz-haso@1.125.2
|
|
174
|
+
- @akinon/pz-hepsipay@1.125.2
|
|
175
|
+
- @akinon/pz-masterpass@1.125.2
|
|
176
|
+
- @akinon/pz-masterpass-rest@1.125.2
|
|
177
|
+
- @akinon/pz-multi-basket@1.125.2
|
|
178
|
+
- @akinon/pz-one-click-checkout@1.125.2
|
|
179
|
+
- @akinon/pz-otp@1.125.2
|
|
180
|
+
- @akinon/pz-pay-on-delivery@1.125.2
|
|
181
|
+
- @akinon/pz-saved-card@1.125.2
|
|
182
|
+
- @akinon/pz-similar-products@1.125.2
|
|
183
|
+
- @akinon/pz-tabby-extension@1.125.2
|
|
184
|
+
- @akinon/pz-tamara-extension@1.125.2
|
|
185
|
+
- @akinon/pz-virtual-try-on@1.125.2
|
|
186
|
+
|
|
187
|
+
## 1.125.1
|
|
188
|
+
|
|
189
|
+
### Patch Changes
|
|
190
|
+
|
|
191
|
+
- Updated dependencies [06da9a95]
|
|
192
|
+
- @akinon/next@1.125.1
|
|
193
|
+
- @akinon/pz-virtual-try-on@1.125.1
|
|
194
|
+
- @akinon/pz-akifast@1.125.1
|
|
195
|
+
- @akinon/pz-apple-pay@1.125.1
|
|
196
|
+
- @akinon/pz-b2b@1.125.1
|
|
197
|
+
- @akinon/pz-basket-gift-pack@1.125.1
|
|
198
|
+
- @akinon/pz-bkm@1.125.1
|
|
199
|
+
- @akinon/pz-checkout-gift-pack@1.125.1
|
|
200
|
+
- @akinon/pz-click-collect@1.125.1
|
|
201
|
+
- @akinon/pz-credit-payment@1.125.1
|
|
202
|
+
- @akinon/pz-cybersource-uc@1.125.1
|
|
203
|
+
- @akinon/pz-flow-payment@1.125.1
|
|
204
|
+
- @akinon/pz-google-pay@1.125.1
|
|
205
|
+
- @akinon/pz-gpay@1.125.1
|
|
206
|
+
- @akinon/pz-haso@1.125.1
|
|
207
|
+
- @akinon/pz-hepsipay@1.125.1
|
|
208
|
+
- @akinon/pz-masterpass@1.125.1
|
|
209
|
+
- @akinon/pz-masterpass-rest@1.125.1
|
|
210
|
+
- @akinon/pz-multi-basket@1.125.1
|
|
211
|
+
- @akinon/pz-one-click-checkout@1.125.1
|
|
212
|
+
- @akinon/pz-otp@1.125.1
|
|
213
|
+
- @akinon/pz-pay-on-delivery@1.125.1
|
|
214
|
+
- @akinon/pz-saved-card@1.125.1
|
|
215
|
+
- @akinon/pz-similar-products@1.125.1
|
|
216
|
+
- @akinon/pz-tabby-extension@1.125.1
|
|
217
|
+
- @akinon/pz-tamara-extension@1.125.1
|
|
218
|
+
|
|
49
219
|
## 1.125.0
|
|
50
220
|
|
|
51
221
|
### Patch Changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projectzeronext",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.22",
|
|
4
4
|
"private": true,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"scripts": {
|
|
@@ -24,32 +24,33 @@
|
|
|
24
24
|
"test:middleware": "jest middleware-matcher.test.ts --bail"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@akinon/next": "2.0.0-beta.
|
|
28
|
-
"@akinon/pz-akifast": "2.0.0-beta.
|
|
29
|
-
"@akinon/pz-apple-pay": "2.0.0-beta.
|
|
30
|
-
"@akinon/pz-b2b": "2.0.0-beta.
|
|
31
|
-
"@akinon/pz-basket-gift-pack": "2.0.0-beta.
|
|
32
|
-
"@akinon/pz-bkm": "2.0.0-beta.
|
|
33
|
-
"@akinon/pz-checkout-gift-pack": "2.0.0-beta.
|
|
34
|
-
"@akinon/pz-click-collect": "2.0.0-beta.
|
|
35
|
-
"@akinon/pz-credit-payment": "2.0.0-beta.
|
|
36
|
-
"@akinon/pz-cybersource-uc": "2.0.0-beta.
|
|
37
|
-
"@akinon/pz-flow-payment": "2.0.0-beta.
|
|
38
|
-
"@akinon/pz-google-pay": "2.0.0-beta.
|
|
39
|
-
"@akinon/pz-gpay": "2.0.0-beta.
|
|
40
|
-
"@akinon/pz-haso": "2.0.0-beta.
|
|
41
|
-
"@akinon/pz-hepsipay": "2.0.0-beta.
|
|
42
|
-
"@akinon/pz-masterpass": "2.0.0-beta.
|
|
43
|
-
"@akinon/pz-masterpass-rest": "2.0.0-beta.
|
|
44
|
-
"@akinon/pz-multi-basket": "2.0.0-beta.
|
|
45
|
-
"@akinon/pz-one-click-checkout": "2.0.0-beta.
|
|
46
|
-
"@akinon/pz-otp": "2.0.0-beta.
|
|
47
|
-
"@akinon/pz-pay-on-delivery": "2.0.0-beta.
|
|
48
|
-
"@akinon/pz-saved-card": "2.0.0-beta.
|
|
49
|
-
"@akinon/pz-similar-products": "2.0.0-beta.
|
|
50
|
-
"@akinon/pz-tabby-extension": "2.0.0-beta.
|
|
51
|
-
"@akinon/pz-tamara-extension": "2.0.0-beta.
|
|
52
|
-
"@akinon/pz-
|
|
27
|
+
"@akinon/next": "2.0.0-beta.22",
|
|
28
|
+
"@akinon/pz-akifast": "2.0.0-beta.22",
|
|
29
|
+
"@akinon/pz-apple-pay": "2.0.0-beta.22",
|
|
30
|
+
"@akinon/pz-b2b": "2.0.0-beta.22",
|
|
31
|
+
"@akinon/pz-basket-gift-pack": "2.0.0-beta.22",
|
|
32
|
+
"@akinon/pz-bkm": "2.0.0-beta.22",
|
|
33
|
+
"@akinon/pz-checkout-gift-pack": "2.0.0-beta.22",
|
|
34
|
+
"@akinon/pz-click-collect": "2.0.0-beta.22",
|
|
35
|
+
"@akinon/pz-credit-payment": "2.0.0-beta.22",
|
|
36
|
+
"@akinon/pz-cybersource-uc": "2.0.0-beta.22",
|
|
37
|
+
"@akinon/pz-flow-payment": "2.0.0-beta.22",
|
|
38
|
+
"@akinon/pz-google-pay": "2.0.0-beta.22",
|
|
39
|
+
"@akinon/pz-gpay": "2.0.0-beta.22",
|
|
40
|
+
"@akinon/pz-haso": "2.0.0-beta.22",
|
|
41
|
+
"@akinon/pz-hepsipay": "2.0.0-beta.22",
|
|
42
|
+
"@akinon/pz-masterpass": "2.0.0-beta.22",
|
|
43
|
+
"@akinon/pz-masterpass-rest": "2.0.0-beta.22",
|
|
44
|
+
"@akinon/pz-multi-basket": "2.0.0-beta.22",
|
|
45
|
+
"@akinon/pz-one-click-checkout": "2.0.0-beta.22",
|
|
46
|
+
"@akinon/pz-otp": "2.0.0-beta.22",
|
|
47
|
+
"@akinon/pz-pay-on-delivery": "2.0.0-beta.22",
|
|
48
|
+
"@akinon/pz-saved-card": "2.0.0-beta.22",
|
|
49
|
+
"@akinon/pz-similar-products": "2.0.0-beta.22",
|
|
50
|
+
"@akinon/pz-tabby-extension": "2.0.0-beta.22",
|
|
51
|
+
"@akinon/pz-tamara-extension": "2.0.0-beta.22",
|
|
52
|
+
"@akinon/pz-theme": "2.0.0-beta.22",
|
|
53
|
+
"@akinon/pz-virtual-try-on": "2.0.0-beta.22",
|
|
53
54
|
"@hookform/resolvers": "2.9.0",
|
|
54
55
|
"@next/third-parties": "16.1.6",
|
|
55
56
|
"@react-google-maps/api": "2.17.1",
|
|
@@ -60,8 +61,8 @@
|
|
|
60
61
|
"next-pwa": "5.6.0",
|
|
61
62
|
"pino": "8.11.0",
|
|
62
63
|
"postcss": "8.4.49",
|
|
63
|
-
"react": "19.2.
|
|
64
|
-
"react-dom": "19.2.
|
|
64
|
+
"react": "19.2.5",
|
|
65
|
+
"react-dom": "19.2.5",
|
|
65
66
|
"react-google-recaptcha": "2.1.0",
|
|
66
67
|
"react-hook-form": "7.71.2",
|
|
67
68
|
"react-intersection-observer": "9.4.0",
|
|
@@ -72,7 +73,7 @@
|
|
|
72
73
|
"yup": "0.32.11"
|
|
73
74
|
},
|
|
74
75
|
"devDependencies": {
|
|
75
|
-
"@akinon/eslint-plugin-projectzero": "2.0.0-beta.
|
|
76
|
+
"@akinon/eslint-plugin-projectzero": "2.0.0-beta.22",
|
|
76
77
|
"@semantic-release/changelog": "6.0.2",
|
|
77
78
|
"@semantic-release/exec": "6.0.3",
|
|
78
79
|
"@semantic-release/git": "10.0.1",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { URLS } from '@akinon/next/data/urls';
|
|
2
|
-
import { Metadata,
|
|
2
|
+
import { Metadata, AsyncPageProps } from '@akinon/next/types';
|
|
3
3
|
import logger from '@akinon/next/utils/log';
|
|
4
4
|
import { notFound } from 'next/navigation';
|
|
5
5
|
|
|
@@ -56,7 +56,7 @@ const resolvePrettyUrlHandler =
|
|
|
56
56
|
return prettyUrlResult;
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
-
export async function generateMetadata(props:
|
|
59
|
+
export async function generateMetadata(props: AsyncPageProps) {
|
|
60
60
|
const params = await props.params;
|
|
61
61
|
let result: Metadata = {};
|
|
62
62
|
const { prettyurl } = params;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import AccountBackButton from '@theme/views/account/back-button';
|
|
2
2
|
import AccountMenu from '@theme/views/account/account-menu';
|
|
3
|
+
import ThemePlaceholder from '@akinon/pz-theme/src/theme-placeholder';
|
|
3
4
|
import { auth } from 'auth';
|
|
4
5
|
import { ROUTES } from 'routes';
|
|
5
6
|
import { redirect } from '@akinon/next/utils/redirect';
|
|
@@ -20,7 +21,7 @@ export default async function AccountLayout({
|
|
|
20
21
|
<AccountMenu />
|
|
21
22
|
<div className="w-full flex-1">
|
|
22
23
|
<AccountBackButton />
|
|
23
|
-
|
|
24
|
+
<ThemePlaceholder slug="account-page-body" />
|
|
24
25
|
{children}
|
|
25
26
|
</div>
|
|
26
27
|
</div>
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
import { Image } from '@akinon/next/components';
|
|
4
4
|
import { useGetWidgetQuery } from '@akinon/next/data/client/misc';
|
|
5
5
|
import { useLocalization } from '@akinon/next/hooks/use-localization';
|
|
6
|
-
import {
|
|
6
|
+
import { WidgetResultType } from '@akinon/next/types';
|
|
7
7
|
import { Icon, Link, LoaderSpinner } from '@theme/components';
|
|
8
8
|
import { formatDateToMonthYear } from '@theme/utils/formatDate';
|
|
9
|
+
import { useParams } from 'next/navigation';
|
|
9
10
|
|
|
10
11
|
interface BlogItemKwargs {
|
|
11
12
|
url: string;
|
|
@@ -26,7 +27,8 @@ type BlogType = {
|
|
|
26
27
|
date: blogItem;
|
|
27
28
|
};
|
|
28
29
|
|
|
29
|
-
export default function Page(
|
|
30
|
+
export default function Page() {
|
|
31
|
+
const params = useParams<{ slug: string }>();
|
|
30
32
|
const { locale, t } = useLocalization();
|
|
31
33
|
const slug = params.slug;
|
|
32
34
|
const { data, isLoading } = useGetWidgetQuery(slug) as ReturnType<
|
|
@@ -2,6 +2,7 @@ import { getCategoryData } from '@akinon/next/data/server';
|
|
|
2
2
|
import { withSegmentDefaults } from '@akinon/next/hocs/server';
|
|
3
3
|
import { ResolvedPageProps } from '@akinon/next/types';
|
|
4
4
|
import CategoryLayout from '@theme/views/category/layout';
|
|
5
|
+
import { buildListingPageContext } from '@theme/utils/theme-page-context';
|
|
5
6
|
import { notFound } from 'next/navigation';
|
|
6
7
|
|
|
7
8
|
async function Page({ params, searchParams }: ResolvedPageProps<{ pk: number }>) {
|
|
@@ -13,7 +14,16 @@ async function Page({ params, searchParams }: ResolvedPageProps<{ pk: number }>)
|
|
|
13
14
|
|
|
14
15
|
return (
|
|
15
16
|
<>
|
|
16
|
-
<CategoryLayout
|
|
17
|
+
<CategoryLayout
|
|
18
|
+
data={data}
|
|
19
|
+
breadcrumbData={breadcrumbData}
|
|
20
|
+
pageContext={buildListingPageContext({
|
|
21
|
+
data,
|
|
22
|
+
breadcrumbData,
|
|
23
|
+
pageType: 'category',
|
|
24
|
+
path: data.category?.absolute_url
|
|
25
|
+
})}
|
|
26
|
+
/>
|
|
17
27
|
</>
|
|
18
28
|
);
|
|
19
29
|
} catch (error: unknown) {
|
|
@@ -2,12 +2,12 @@ import ProductLayout from '@theme/views/product/layout';
|
|
|
2
2
|
import { ProductGroupInfo } from '@theme/views/product';
|
|
3
3
|
import { getProductData, getWidgetData } from '@akinon/next/data/server';
|
|
4
4
|
import { withSegmentDefaults } from '@akinon/next/hocs/server';
|
|
5
|
-
import {
|
|
5
|
+
import { AsyncPageProps, ResolvedPageProps, Metadata } from '@akinon/next/types';
|
|
6
6
|
import { generateJsonLd } from '@theme/utils/generate-jsonld';
|
|
7
7
|
import { notFound } from 'next/navigation';
|
|
8
8
|
|
|
9
9
|
export async function generateMetadata(
|
|
10
|
-
props:
|
|
10
|
+
props: AsyncPageProps<{ pk: number }>
|
|
11
11
|
) {
|
|
12
12
|
const params = await props.params;
|
|
13
13
|
const searchParams = await props.searchParams;
|
|
@@ -13,6 +13,7 @@ import MobileAppToggler from '@akinon/next/components/mobile-app-toggler';
|
|
|
13
13
|
import pwaTags from '@theme/components/pwa-tags';
|
|
14
14
|
import type { Viewport } from 'next';
|
|
15
15
|
import settings from '@theme/settings';
|
|
16
|
+
import RouteHandler from '@theme/components/route-handler';
|
|
16
17
|
|
|
17
18
|
export const viewport: Viewport = {
|
|
18
19
|
width: 'device-width',
|
|
@@ -49,12 +50,13 @@ async function RootLayout({ locale, translations, children }: ResolvedRootLayout
|
|
|
49
50
|
<body className="overflow-x-hidden">
|
|
50
51
|
<PzRoot translations={translations} locale={locale.value}>
|
|
51
52
|
<ClientRoot>
|
|
52
|
-
<div className="overflow-x-
|
|
53
|
+
<div className="overflow-x-clip">
|
|
53
54
|
<MobileAppToggler>
|
|
54
55
|
<Header />
|
|
55
56
|
</MobileAppToggler>
|
|
56
57
|
<main>
|
|
57
58
|
{children}
|
|
59
|
+
<RouteHandler />
|
|
58
60
|
<RootModal />
|
|
59
61
|
</main>
|
|
60
62
|
<MobileAppToggler>
|
|
@@ -2,13 +2,23 @@ import { getListData } from '@akinon/next/data/server';
|
|
|
2
2
|
import { withSegmentDefaults } from '@akinon/next/hocs/server';
|
|
3
3
|
import { ResolvedPageProps } from '@akinon/next/types';
|
|
4
4
|
import CategoryLayout from '@theme/views/category/layout';
|
|
5
|
+
import { ROUTES } from '@theme/routes';
|
|
6
|
+
import { buildListingPageContext } from '@theme/utils/theme-page-context';
|
|
5
7
|
|
|
6
8
|
async function Page({ searchParams }: ResolvedPageProps) {
|
|
7
9
|
const data = await getListData({ searchParams });
|
|
10
|
+
const pageType = data.search_text ? 'search' : 'plp';
|
|
8
11
|
|
|
9
12
|
return (
|
|
10
13
|
<>
|
|
11
|
-
<CategoryLayout
|
|
14
|
+
<CategoryLayout
|
|
15
|
+
data={data}
|
|
16
|
+
pageContext={buildListingPageContext({
|
|
17
|
+
data,
|
|
18
|
+
pageType,
|
|
19
|
+
path: ROUTES.LIST
|
|
20
|
+
})}
|
|
21
|
+
/>
|
|
12
22
|
</>
|
|
13
23
|
);
|
|
14
24
|
}
|
|
@@ -1,46 +1,24 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
2
|
|
|
3
|
-
import { HOME_WIDGETS } from '@theme/widgets';
|
|
4
|
-
import { getWidgetData } from '@akinon/next/data/server';
|
|
5
3
|
import { withSegmentDefaults } from '@akinon/next/hocs/server';
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
type HomeWidgetOrderType = {
|
|
9
|
-
widget_order: Array<{
|
|
10
|
-
value: { item_slug: string };
|
|
11
|
-
kwargs: { value: object; data_type: string };
|
|
12
|
-
}>;
|
|
13
|
-
};
|
|
4
|
+
import ThemePlaceholder from '@akinon/pz-theme/src/theme-placeholder';
|
|
5
|
+
import { buildHomepagePageContext } from '@theme/utils/theme-page-context';
|
|
14
6
|
|
|
15
7
|
export const dynamic = 'force-static';
|
|
16
8
|
export const revalidate = 600;
|
|
17
9
|
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (!data?.attributes?.widget_order) {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return data.attributes.widget_order.map((widget, index) => {
|
|
28
|
-
const Widget = HOME_WIDGETS[widget.value.item_slug];
|
|
29
|
-
|
|
30
|
-
if (Widget) {
|
|
31
|
-
if (index > 2) {
|
|
32
|
-
return (
|
|
33
|
-
<LazyComponent key={widget.value.item_slug} className="min-h-[150px]">
|
|
34
|
-
<Widget />
|
|
35
|
-
</LazyComponent>
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return <Widget key={widget.value.item_slug} />;
|
|
40
|
-
}
|
|
10
|
+
const getPlaceholderSlug = (baseSlug: string) => {
|
|
11
|
+
const isDevelopment = process.env.NODE_ENV === 'development';
|
|
12
|
+
return isDevelopment ? `${baseSlug}-dev` : baseSlug;
|
|
13
|
+
};
|
|
41
14
|
|
|
42
|
-
|
|
43
|
-
|
|
15
|
+
async function Page() {
|
|
16
|
+
return (
|
|
17
|
+
<ThemePlaceholder
|
|
18
|
+
slug={getPlaceholderSlug('homepage-body-new')}
|
|
19
|
+
pageContext={buildHomepagePageContext()}
|
|
20
|
+
/>
|
|
21
|
+
);
|
|
44
22
|
}
|
|
45
23
|
|
|
46
24
|
export async function generateStaticParams() {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import ThemePlaceholder from '@akinon/pz-theme/src/theme-placeholder';
|
|
2
|
+
import { withSegmentDefaults } from '@akinon/next/hocs/server';
|
|
3
|
+
import { ResolvedPageProps } from '@akinon/next/types';
|
|
4
|
+
import { buildCustomPageContext } from '@theme/utils/theme-page-context';
|
|
5
|
+
|
|
6
|
+
export const dynamic = 'force-dynamic';
|
|
7
|
+
|
|
8
|
+
async function Page({ params }: ResolvedPageProps<{ slug: string }>) {
|
|
9
|
+
return (
|
|
10
|
+
<div className="min-h-screen">
|
|
11
|
+
<ThemePlaceholder
|
|
12
|
+
slug={`page-${params.slug}`}
|
|
13
|
+
pageContext={buildCustomPageContext(params.slug)}
|
|
14
|
+
/>
|
|
15
|
+
</div>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default withSegmentDefaults(Page, { segmentType: 'page' });
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { getProductData, getWidgetData } from '@akinon/next/data/server';
|
|
2
2
|
import { withSegmentDefaults } from '@akinon/next/hocs/server';
|
|
3
|
-
import {
|
|
3
|
+
import { AsyncPageProps, ResolvedPageProps, Metadata } from '@akinon/next/types';
|
|
4
4
|
import { generateJsonLd } from '@theme/utils/generate-jsonld';
|
|
5
5
|
import { AccordionWrapper, ProductInfo } from '@theme/views/product';
|
|
6
6
|
import ProductLayout from '@theme/views/product/layout';
|
|
7
7
|
import { notFound } from 'next/navigation';
|
|
8
8
|
|
|
9
9
|
export async function generateMetadata(
|
|
10
|
-
props:
|
|
10
|
+
props: AsyncPageProps<{ pk: number }>
|
|
11
11
|
) {
|
|
12
12
|
const params = await props.params;
|
|
13
13
|
const searchParams = await props.searchParams;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { GET } from "@akinon/next/api/barcode-search";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { POST, PUT } from "@akinon/next/api/cache";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { GET, POST } from "@akinon/next/api/image-proxy";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { POST } from "@akinon/next/api/logout";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { GET } from "@akinon/next/api/product-categories";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { GET } from "@akinon/next/api/similar-product-list";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { GET, POST } from "@akinon/next/api/similar-products";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { GET, POST, PUT, OPTIONS } from "@akinon/next/api/virtual-try-on";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { POST } from "@akinon/next/api/web-vitals";
|
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { Button, Icon, LoaderSpinner, Select } from '@theme/components';
|
|
4
|
-
import {
|
|
5
|
-
QuantityDisplayType,
|
|
6
|
-
QuantityStyles
|
|
7
|
-
} from '@theme/views/product-detail';
|
|
8
4
|
import clsx from 'clsx';
|
|
9
5
|
import { useMemo } from 'react';
|
|
10
6
|
|
|
7
|
+
type QuantityDisplayType = 'buttons' | 'dropdown';
|
|
8
|
+
|
|
9
|
+
type QuantityStyles = {
|
|
10
|
+
width?: string;
|
|
11
|
+
height?: string;
|
|
12
|
+
color?: string;
|
|
13
|
+
'background-color'?: string;
|
|
14
|
+
'border-color'?: string;
|
|
15
|
+
'border-width'?: string;
|
|
16
|
+
'border-radius'?: string;
|
|
17
|
+
'font-size'?: string;
|
|
18
|
+
'font-weight'?: string | number;
|
|
19
|
+
'button-color'?: string;
|
|
20
|
+
'button-hover-color'?: string;
|
|
21
|
+
};
|
|
22
|
+
|
|
11
23
|
interface QuantitySelectorProps {
|
|
12
24
|
quantity: number;
|
|
13
25
|
onChange?: (newQuantity: number) => void;
|
|
@@ -136,7 +136,7 @@ export function WidgetContent({
|
|
|
136
136
|
case 'text':
|
|
137
137
|
Tag = (
|
|
138
138
|
componentData.tag || 'div'
|
|
139
|
-
).toLowerCase() as keyof JSX.IntrinsicElements;
|
|
139
|
+
).toLowerCase() as keyof React.JSX.IntrinsicElements;
|
|
140
140
|
return wrapWithTooltip(
|
|
141
141
|
<Tag
|
|
142
142
|
id={componentId}
|
|
@@ -278,7 +278,7 @@ export function WidgetContent({
|
|
|
278
278
|
default:
|
|
279
279
|
if (componentData.tag) {
|
|
280
280
|
CustomTag =
|
|
281
|
-
componentData.tag.toLowerCase() as keyof JSX.IntrinsicElements;
|
|
281
|
+
componentData.tag.toLowerCase() as keyof React.JSX.IntrinsicElements;
|
|
282
282
|
return wrapWithTooltip(
|
|
283
283
|
<CustomTag
|
|
284
284
|
id={componentId}
|
|
@@ -307,7 +307,7 @@ export function WidgetContent({
|
|
|
307
307
|
if (parentData && !skipParentWrapper) {
|
|
308
308
|
const ParentTag = (
|
|
309
309
|
parentData.tag || 'div'
|
|
310
|
-
).toLowerCase() as keyof JSX.IntrinsicElements;
|
|
310
|
+
).toLowerCase() as keyof React.JSX.IntrinsicElements;
|
|
311
311
|
return (
|
|
312
312
|
<ParentTag
|
|
313
313
|
id={parentData.id}
|