@akinon/projectzero 2.0.0-beta.9 → 2.0.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 (290) hide show
  1. package/CHANGELOG.md +191 -17
  2. package/app-template/.env.example +3 -0
  3. package/app-template/.github/instructions/account.instructions.md +749 -0
  4. package/app-template/.github/instructions/checkout.instructions.md +678 -0
  5. package/app-template/.github/instructions/default.instructions.md +279 -0
  6. package/app-template/.github/instructions/edge-cases.instructions.md +73 -0
  7. package/app-template/.github/instructions/routing.instructions.md +603 -0
  8. package/app-template/.github/instructions/settings.instructions.md +338 -0
  9. package/app-template/.gitignore +3 -0
  10. package/app-template/AGENTS.md +7 -0
  11. package/app-template/CHANGELOG.md +2065 -232
  12. package/app-template/Procfile +1 -1
  13. package/app-template/akinon.json +1 -4
  14. package/app-template/build.sh +10 -0
  15. package/app-template/docs/advanced-usage.md +111 -0
  16. package/app-template/docs/plugins.md +60 -25
  17. package/app-template/docs/sentry-usage.md +35 -0
  18. package/app-template/jest.config.ts +2 -2
  19. package/app-template/next-env.d.ts +1 -0
  20. package/app-template/{next.config.ts → next.config.mjs} +6 -7
  21. package/app-template/package.json +58 -50
  22. package/app-template/postcss.config.mjs +1 -4
  23. package/app-template/public/amex.svg +12 -0
  24. package/app-template/public/apple-pay.svg +16 -0
  25. package/app-template/public/assets/images/product-placeholder-1.jpg +0 -0
  26. package/app-template/public/assets/images/product-placeholder-2.jpg +0 -0
  27. package/app-template/public/assets/images/product-placeholder-3.jpg +0 -0
  28. package/app-template/public/assets/images/product-placeholder-4.jpg +0 -0
  29. package/app-template/public/google-pay.svg +16 -0
  30. package/app-template/public/locales/en/account.json +9 -4
  31. package/app-template/public/locales/en/auth.json +6 -7
  32. package/app-template/public/locales/en/basket.json +6 -6
  33. package/app-template/public/locales/en/blog.json +7 -0
  34. package/app-template/public/locales/en/category.json +3 -1
  35. package/app-template/public/locales/en/checkout.json +17 -4
  36. package/app-template/public/locales/en/common.json +61 -3
  37. package/app-template/public/locales/en/forgot_password.json +6 -7
  38. package/app-template/public/locales/en/product.json +84 -4
  39. package/app-template/public/locales/tr/account.json +9 -4
  40. package/app-template/public/locales/tr/auth.json +16 -17
  41. package/app-template/public/locales/tr/basket.json +4 -4
  42. package/app-template/public/locales/tr/blog.json +7 -0
  43. package/app-template/public/locales/tr/category.json +3 -1
  44. package/app-template/public/locales/tr/checkout.json +48 -36
  45. package/app-template/public/locales/tr/common.json +60 -2
  46. package/app-template/public/locales/tr/forgot_password.json +12 -13
  47. package/app-template/public/locales/tr/product.json +82 -0
  48. package/app-template/public/logo.svg +3 -27
  49. package/app-template/public/mastercard.svg +14 -0
  50. package/app-template/public/masterpass-javascript-sdk-web.min.js +1 -0
  51. package/app-template/public/promotion-banner.jpg +0 -0
  52. package/app-template/public/shop-pay.svg +12 -0
  53. package/app-template/public/visa.svg +12 -0
  54. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/[...prettyurl]/page.tsx +11 -11
  55. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/layout.tsx +4 -3
  56. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/orders/[id]/cancellation/page.tsx +13 -10
  57. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/orders/[id]/page.tsx +73 -51
  58. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/page.tsx +1 -1
  59. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/profile/page.tsx +2 -2
  60. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/address/stores/page.tsx +2 -2
  61. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/auth/page.tsx +1 -1
  62. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/basket/page.tsx +2 -2
  63. package/app-template/src/app/[pz]/blog/[slug]/page.tsx +120 -0
  64. package/app-template/src/app/[pz]/category/[pk]/page.tsx +37 -0
  65. package/app-template/src/app/[pz]/flat-page/[pk]/page.tsx +23 -0
  66. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/forms/[pk]/generate/page.tsx +2 -3
  67. package/app-template/src/app/[pz]/group-product/[pk]/page.tsx +93 -0
  68. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/landing-page/[pk]/page.tsx +2 -4
  69. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/layout.tsx +6 -11
  70. package/app-template/src/app/[pz]/list/page.tsx +26 -0
  71. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/not-found.tsx +5 -7
  72. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/orders/completed/[token]/page.tsx +6 -4
  73. package/app-template/src/app/[pz]/page.tsx +28 -0
  74. package/app-template/src/app/[pz]/pages/[slug]/page.tsx +19 -0
  75. package/app-template/src/app/[pz]/product/[pk]/page.tsx +102 -0
  76. package/app-template/src/app/[pz]/special-page/[pk]/page.tsx +35 -0
  77. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/users/email-set-primary/[[...id]]/page.tsx +3 -4
  78. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/users/registration/account-confirm-email/[[...id]]/page.tsx +3 -3
  79. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/users/reset/[[...id]]/page.tsx +41 -5
  80. package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/xml-sitemap/[node]/route.ts +8 -6
  81. package/app-template/src/app/api/auth/[...nextauth]/route.ts +3 -0
  82. package/app-template/src/app/api/barcode-search/route.ts +1 -0
  83. package/app-template/src/app/api/cache/route.ts +1 -1
  84. package/app-template/src/app/api/form/[...id]/route.ts +1 -7
  85. package/app-template/src/app/api/image-proxy/route.ts +1 -0
  86. package/app-template/src/app/api/logout/route.ts +1 -1
  87. package/app-template/src/app/api/product-categories/route.ts +1 -0
  88. package/app-template/src/app/api/similar-product-list/route.ts +1 -0
  89. package/app-template/src/app/api/similar-products/route.ts +1 -0
  90. package/app-template/src/app/api/theme-settings/route.ts +12 -0
  91. package/app-template/src/app/api/virtual-try-on/limited-categories/route.ts +1 -0
  92. package/app-template/src/app/api/virtual-try-on/route.ts +1 -0
  93. package/app-template/src/app/api/web-vitals/route.ts +1 -1
  94. package/app-template/src/assets/fonts/pz-icon.css +211 -49
  95. package/app-template/src/assets/fonts/pz-icon.eot +0 -0
  96. package/app-template/src/assets/fonts/pz-icon.html +486 -0
  97. package/app-template/src/assets/fonts/pz-icon.scss +373 -49
  98. package/app-template/src/assets/fonts/pz-icon.svg +215 -53
  99. package/app-template/src/assets/fonts/pz-icon.ttf +0 -0
  100. package/app-template/src/assets/fonts/pz-icon.woff +0 -0
  101. package/app-template/src/assets/fonts/pz-icon.woff2 +0 -0
  102. package/app-template/src/assets/globals.scss +8 -133
  103. package/app-template/src/assets/icons/arrow-right.svg +3 -0
  104. package/app-template/src/assets/icons/cart.svg +4 -12
  105. package/app-template/src/assets/icons/check.svg +2 -18
  106. package/app-template/src/assets/icons/chevron-down.svg +2 -7
  107. package/app-template/src/assets/icons/delete.svg +3 -0
  108. package/app-template/src/assets/icons/facebook.svg +2 -8
  109. package/app-template/src/assets/icons/fav-off.svg +5 -0
  110. package/app-template/src/assets/icons/fav-on.svg +5 -0
  111. package/app-template/src/assets/icons/filter-and-sort.svg +3 -0
  112. package/app-template/src/assets/icons/heart.svg +3 -0
  113. package/app-template/src/assets/icons/instagram.svg +2 -13
  114. package/app-template/src/assets/icons/materials.svg +3 -0
  115. package/app-template/src/assets/icons/person.svg +4 -0
  116. package/app-template/src/assets/icons/pinterest.svg +5 -11
  117. package/app-template/src/assets/icons/ruler.svg +3 -0
  118. package/app-template/src/assets/icons/search.svg +8 -11
  119. package/app-template/src/assets/icons/share.svg +2 -9
  120. package/app-template/src/assets/icons/snapchat.svg +3 -0
  121. package/app-template/src/assets/icons/tiktok.svg +3 -0
  122. package/app-template/src/assets/icons/tumblr.svg +6 -0
  123. package/app-template/src/assets/icons/twitter.svg +2 -10
  124. package/app-template/src/assets/icons/vimeo.svg +3 -0
  125. package/app-template/src/assets/icons/youtube.svg +3 -0
  126. package/app-template/src/assets/icons/zoom.svg +8 -0
  127. package/app-template/src/auth.ts +3 -0
  128. package/app-template/src/components/__tests__/badge.test.tsx +2 -2
  129. package/app-template/src/components/__tests__/link.test.tsx +2 -0
  130. package/app-template/src/components/accordion.tsx +48 -23
  131. package/app-template/src/components/action-tooltip.tsx +160 -0
  132. package/app-template/src/components/button.tsx +1 -1
  133. package/app-template/src/components/carousel-core.tsx +4 -11
  134. package/app-template/src/components/checkbox.tsx +2 -1
  135. package/app-template/src/components/currency-select.tsx +150 -4
  136. package/app-template/src/components/file-input.tsx +27 -7
  137. package/app-template/src/components/generate-form-fields.tsx +49 -10
  138. package/app-template/src/components/icon.tsx +5 -6
  139. package/app-template/src/components/index.ts +4 -1
  140. package/app-template/src/components/input.tsx +11 -5
  141. package/app-template/src/components/language-select.tsx +88 -2
  142. package/app-template/src/components/modal.tsx +34 -16
  143. package/app-template/src/components/pagination.tsx +133 -20
  144. package/app-template/src/components/price.tsx +1 -1
  145. package/app-template/src/components/pwa-tags.tsx +1 -0
  146. package/app-template/src/components/quantity-input.tsx +63 -0
  147. package/app-template/src/components/quantity-selector.tsx +215 -0
  148. package/app-template/src/components/route-handler.tsx +50 -0
  149. package/app-template/src/components/select.tsx +86 -54
  150. package/app-template/src/components/shimmer.tsx +1 -1
  151. package/app-template/src/components/types/index.ts +51 -1
  152. package/app-template/src/components/widget-content.tsx +323 -0
  153. package/app-template/src/data/server/theme.ts +70 -0
  154. package/app-template/src/hooks/use-fav-button.tsx +9 -10
  155. package/app-template/src/hooks/use-product-cart.ts +80 -0
  156. package/app-template/src/hooks/use-stock-alert.ts +74 -0
  157. package/app-template/src/hooks/use-theme-settings.ts +42 -0
  158. package/app-template/src/lib/fonts.ts +149 -0
  159. package/app-template/src/plugins.js +12 -2
  160. package/app-template/src/{middleware.ts → proxy.ts} +3 -3
  161. package/app-template/src/redux/middlewares/category.ts +5 -4
  162. package/app-template/src/redux/store.ts +21 -1
  163. package/app-template/src/routes/index.ts +8 -7
  164. package/app-template/src/settings.js +6 -3
  165. package/app-template/src/types/hookform-resolvers-yup.d.ts +28 -0
  166. package/app-template/src/types/index.ts +74 -3
  167. package/app-template/src/types/next-auth.d.ts +2 -2
  168. package/app-template/src/types/widget.ts +169 -0
  169. package/app-template/src/utils/__tests__/theme-page-context.test.ts +145 -0
  170. package/app-template/src/utils/formatDate.ts +48 -0
  171. package/app-template/src/utils/styles.ts +71 -0
  172. package/app-template/src/utils/theme-page-context.ts +309 -0
  173. package/app-template/src/utils/variant-validation.ts +41 -0
  174. package/app-template/src/views/account/address-form.tsx +8 -4
  175. package/app-template/src/views/account/contact-form.tsx +148 -131
  176. package/app-template/src/views/account/content-header.tsx +4 -3
  177. package/app-template/src/views/account/faq/faq-tabs.tsx +8 -2
  178. package/app-template/src/views/account/favorite-item.tsx +1 -1
  179. package/app-template/src/views/account/order.tsx +11 -9
  180. package/app-template/src/views/account/orders/order-cancellation-item.tsx +1 -1
  181. package/app-template/src/views/account/orders/order-detail-header.tsx +1 -1
  182. package/app-template/src/views/anonymous-tracking/order-detail/index.tsx +45 -38
  183. package/app-template/src/views/basket/basket-item.tsx +6 -1
  184. package/app-template/src/views/basket/summary.tsx +16 -0
  185. package/app-template/src/views/breadcrumb.tsx +2 -2
  186. package/app-template/src/views/category/category-banner.tsx +4 -23
  187. package/app-template/src/views/category/category-info.tsx +2 -1
  188. package/app-template/src/views/category/filters/filter-item.tsx +138 -42
  189. package/app-template/src/views/category/filters/index.tsx +1 -1
  190. package/app-template/src/views/category/layout.tsx +1 -0
  191. package/app-template/src/views/checkout/auth.tsx +64 -40
  192. package/app-template/src/views/checkout/layout/header.tsx +10 -6
  193. package/app-template/src/views/checkout/steps/payment/options/credit-card/index.tsx +22 -6
  194. package/app-template/src/views/checkout/steps/payment/options/funds-transfer.tsx +25 -5
  195. package/app-template/src/views/checkout/steps/payment/options/loyalty.tsx +21 -2
  196. package/app-template/src/views/checkout/steps/payment/options/redirection.tsx +27 -5
  197. package/app-template/src/views/checkout/steps/payment/options/store-credit.tsx +464 -0
  198. package/app-template/src/views/checkout/steps/payment/payment-option-buttons.tsx +4 -4
  199. package/app-template/src/views/checkout/steps/shipping/address-box.tsx +33 -20
  200. package/app-template/src/views/checkout/steps/shipping/addresses.tsx +2 -2
  201. package/app-template/src/views/checkout/summary.tsx +12 -2
  202. package/app-template/src/views/find-in-store/index.tsx +2 -2
  203. package/app-template/src/views/guest-login/index.tsx +62 -58
  204. package/app-template/src/views/header/action-menu.tsx +1 -1
  205. package/app-template/src/views/header/band.tsx +2 -2
  206. package/app-template/src/views/header/index.tsx +1 -1
  207. package/app-template/src/views/header/mini-basket.tsx +3 -3
  208. package/app-template/src/views/header/mobile-hamburger-button.tsx +5 -8
  209. package/app-template/src/views/header/mobile-menu.tsx +18 -6
  210. package/app-template/src/views/header/navbar.tsx +1 -1
  211. package/app-template/src/views/header/pwa-back-button.tsx +1 -1
  212. package/app-template/src/views/header/search/index.tsx +13 -3
  213. package/app-template/src/views/header/search/results.tsx +1 -1
  214. package/app-template/src/views/header/user-menu.tsx +1 -3
  215. package/app-template/src/views/login/index.tsx +66 -57
  216. package/app-template/src/views/otp-login/index.tsx +11 -6
  217. package/app-template/src/views/product/index.ts +1 -0
  218. package/app-template/src/views/product/layout.tsx +26 -6
  219. package/app-template/src/views/product/price-wrapper.tsx +3 -24
  220. package/app-template/src/views/product/product-actions.tsx +165 -0
  221. package/app-template/src/views/product/product-info.tsx +76 -238
  222. package/app-template/src/views/product/product-share.tsx +58 -0
  223. package/app-template/src/views/product/product-variants.tsx +26 -0
  224. package/app-template/src/views/product/slider.tsx +22 -1
  225. package/app-template/src/views/product/variant.tsx +69 -41
  226. package/app-template/src/views/product-pointer-banner-item.tsx +1 -1
  227. package/app-template/src/views/register/index.tsx +31 -46
  228. package/app-template/src/views/sales-contract-modal/index.tsx +17 -17
  229. package/app-template/src/views/share/index.tsx +9 -6
  230. package/app-template/src/views/widgets/home-hero-slider-content.tsx +41 -39
  231. package/app-template/src/widgets/flatpages/about-us/index.tsx +78 -0
  232. package/app-template/src/widgets/flatpages/blog-list/index.tsx +129 -0
  233. package/app-template/src/widgets/footer-info.tsx +1 -1
  234. package/app-template/src/widgets/footer-menu.tsx +7 -3
  235. package/app-template/src/widgets/footer-subscription/footer-subscription-form.tsx +17 -14
  236. package/app-template/src/widgets/footer-subscription/index.tsx +1 -1
  237. package/app-template/src/widgets/home-stories-eng.tsx +43 -35
  238. package/app-template/src/widgets/index.ts +7 -0
  239. package/app-template/src/widgets/schemas/about-us.json +46 -0
  240. package/app-template/src/widgets/schemas/blog-list.json +37 -0
  241. package/app-template/src/widgets/schemas/blog.json +29 -0
  242. package/app-template/tailwind.config.js +155 -7
  243. package/app-template/tsconfig.json +29 -11
  244. package/codemods/migrate-auth-v5/index.js +339 -0
  245. package/codemods/migrate-auth-v5/transform.js +86 -0
  246. package/codemods/migrate-segments/index.js +591 -0
  247. package/codemods/update-tailwind-config/index.js +30 -0
  248. package/codemods/update-tailwind-config/transform.js +102 -0
  249. package/codemods/upgrade-to-2/index.js +549 -0
  250. package/commands/codemod.ts +0 -1
  251. package/commands/plugins.ts +111 -46
  252. package/dist/commands/codemod.js +0 -1
  253. package/dist/commands/plugins.js +104 -36
  254. package/package.json +3 -2
  255. package/app-template/src/app/[commerce]/[locale]/[currency]/category/[pk]/page.tsx +0 -22
  256. package/app-template/src/app/[commerce]/[locale]/[currency]/flat-page/[pk]/page.tsx +0 -20
  257. package/app-template/src/app/[commerce]/[locale]/[currency]/group-product/[pk]/page.tsx +0 -74
  258. package/app-template/src/app/[commerce]/[locale]/[currency]/list/page.tsx +0 -18
  259. package/app-template/src/app/[commerce]/[locale]/[currency]/page.tsx +0 -50
  260. package/app-template/src/app/[commerce]/[locale]/[currency]/product/[pk]/page.tsx +0 -84
  261. package/app-template/src/app/[commerce]/[locale]/[currency]/special-page/[pk]/page.tsx +0 -27
  262. package/app-template/src/pages/api/auth/[...nextauth].ts +0 -3
  263. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/address/page.tsx +0 -0
  264. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/change-email/page.tsx +0 -0
  265. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/change-password/page.tsx +0 -0
  266. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/contact/page.tsx +0 -0
  267. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/coupons/page.tsx +0 -0
  268. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/email-verification/page.tsx +0 -0
  269. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/faq/page.tsx +0 -0
  270. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/favourite-products/page.tsx +0 -0
  271. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/my-quotations/page.tsx +0 -0
  272. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/orders/[id]/layout.tsx +0 -0
  273. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/orders/page.tsx +0 -0
  274. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/anonymous-tracking/page.tsx +0 -0
  275. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/auth/oauth-login/page.tsx +0 -0
  276. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/basket-b2b/page.tsx +0 -0
  277. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/category/[pk]/loading.tsx +0 -0
  278. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/client-root.tsx +0 -0
  279. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/contact-us/page.tsx +0 -0
  280. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/error.tsx +0 -0
  281. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/flat-page/[pk]/loading.tsx +0 -0
  282. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/group-product/[pk]/loading.tsx +0 -0
  283. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/landing-page/[pk]/loading.tsx +0 -0
  284. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/list/loading.tsx +0 -0
  285. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/orders/checkout/page.tsx +0 -0
  286. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/orders/completed/[token]/layout.tsx +0 -0
  287. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/special-page/[pk]/loading.tsx +0 -0
  288. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/template.tsx +0 -0
  289. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/users/password/reset/page.tsx +0 -0
  290. /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/xml-sitemap/route.ts +0 -0
@@ -1,22 +1,33 @@
1
1
  'use client';
2
2
 
3
- import { Button, Input, Link } from '@theme/components';
3
+ import { Button, Input, Link, LoaderSpinner } from '@theme/components';
4
4
  import { useForm, SubmitHandler } from 'react-hook-form';
5
5
  import { yupResolver } from '@hookform/resolvers/yup';
6
6
  import * as yup from 'yup';
7
7
  import {
8
8
  usePasswordResetMutation,
9
+ useGetValidatePasswordResetTokenQuery,
9
10
  PasswordResetType
10
11
  } from '@akinon/next/data/client/account';
11
12
  import { useLocalization } from '@akinon/next/hooks';
13
+ import { useParams } from 'next/navigation';
12
14
  import PasswordRulesFeedback from '@theme/components/password-rules-feedback';
13
- import { use } from 'react';
14
15
 
15
- export default function NewPassword(props) {
16
- const { id } = use(props.params) as { id: string };
16
+ export default function NewPassword() {
17
+ const { id } = useParams<{ id: string[] }>();
17
18
  const { t } = useLocalization();
18
19
  const [newPassword, { isSuccess: formSuccess }] = usePasswordResetMutation();
19
20
 
21
+ const token = id?.join('/');
22
+
23
+ const {
24
+ data: validationData,
25
+ isLoading: isValidating,
26
+ error: validationError
27
+ } = useGetValidatePasswordResetTokenQuery(token, {
28
+ skip: !token
29
+ });
30
+
20
31
  const newPasswordFormSchema = (t) =>
21
32
  yup.object().shape({
22
33
  password: yup
@@ -46,10 +57,35 @@ export default function NewPassword(props) {
46
57
  const passwordValue = watch('password', '');
47
58
 
48
59
  const onSubmit: SubmitHandler<PasswordResetType> = (data) => {
49
- data.slug = id;
60
+ data.slug = id?.join('/') ?? '';
50
61
  newPassword(data);
51
62
  };
52
63
 
64
+ if (isValidating) {
65
+ return (
66
+ <div className="container my-12 flex flex-col items-center px-4">
67
+ <div className="w-full xl:w-5/12 text-center">
68
+ <LoaderSpinner />
69
+ </div>
70
+ </div>
71
+ );
72
+ }
73
+
74
+ if (validationError || !validationData?.validlink) {
75
+ return (
76
+ <div className="container my-12 flex flex-col items-center px-4">
77
+ <div className="w-full xl:w-5/12 text-center">
78
+ <div className="text-2xl mb-4 text-error">
79
+ {t('account.password_reset.expired_link_message')}
80
+ </div>
81
+ <Link href="/users/password/reset" className="underline text-primary">
82
+ {t('account.password_reset.continue_password_reset')}
83
+ </Link>
84
+ </div>
85
+ </div>
86
+ );
87
+ }
88
+
53
89
  return (
54
90
  <div className="container my-12 flex flex-col items-center px-4">
55
91
  <div className="w-full xl:w-5/12 text-center">
@@ -15,8 +15,8 @@ import { urlLocaleMatcherRegex } from '@akinon/next/utils';
15
15
 
16
16
  export const dynamic = 'force-dynamic';
17
17
 
18
- export async function GET(request: Request, context: { params }) {
19
- const node = (await context.params).node;
18
+ export async function GET(request: Request, context: { params: Promise<{ node: string }> }) {
19
+ const { node } = await context.params;
20
20
  const url = new URL(request.url);
21
21
  const matchedLocale = url.pathname.match(urlLocaleMatcherRegex);
22
22
 
@@ -58,10 +58,12 @@ export async function GET(request: Request, context: { params }) {
58
58
 
59
59
  let sitemapContent = await sitemap.text();
60
60
 
61
- sitemapContent = sitemapContent.replace(
62
- /\.com/g,
63
- `.com${matchedLocale?.[0] ?? ''}`
64
- );
61
+ if (matchedLocale?.[0]) {
62
+ const localeSuffix = matchedLocale[0];
63
+ const domainRegex = /(?<=<loc>\s*)https?:\/\/[^/<\s]+/g;
64
+
65
+ sitemapContent = sitemapContent.replace(domainRegex, `$&${localeSuffix}`);
66
+ }
65
67
 
66
68
  return new Response(sitemapContent, {
67
69
  headers: {
@@ -0,0 +1,3 @@
1
+ import { handlers } from 'auth';
2
+
3
+ export const { GET, POST } = handlers;
@@ -0,0 +1 @@
1
+ export { GET } from "@akinon/next/api/barcode-search";
@@ -1 +1 @@
1
- export * from '@akinon/next/api/cache';
1
+ export { POST, PUT } from "@akinon/next/api/cache";
@@ -1,7 +1 @@
1
- import { NextResponse } from 'next/server';
2
-
3
- export async function POST() {
4
- // TODO: Handle Form Data
5
-
6
- return NextResponse.json({ message: 'ok' });
7
- }
1
+ export * from '@akinon/next/api/form';
@@ -0,0 +1 @@
1
+ export { GET, POST } from "@akinon/next/api/image-proxy";
@@ -1 +1 @@
1
- export * from '@akinon/next/api/logout';
1
+ export { POST } from "@akinon/next/api/logout";
@@ -0,0 +1 @@
1
+ export { GET } from "@akinon/next/api/product-categories";
@@ -0,0 +1 @@
1
+ export { GET } from "@akinon/next/api/similar-product-list";
@@ -0,0 +1 @@
1
+ export { GET, POST } from "@akinon/next/api/similar-products";
@@ -0,0 +1,12 @@
1
+ import { NextResponse } from 'next/server';
2
+ import { getThemeSettings } from '@theme/data/server/theme';
3
+
4
+ export async function GET() {
5
+ try {
6
+ const settings = await getThemeSettings();
7
+ return NextResponse.json(settings);
8
+ } catch (error) {
9
+ console.error('Error in theme-settings API:', error);
10
+ return NextResponse.json({}, { status: 500 });
11
+ }
12
+ }
@@ -0,0 +1 @@
1
+ export * from '@akinon/next/api/virtual-try-on';
@@ -0,0 +1 @@
1
+ export { GET, POST, PUT, OPTIONS } from "@akinon/next/api/virtual-try-on";
@@ -1 +1 @@
1
- export * from '@akinon/next/api/web-vitals';
1
+ export { POST } from "@akinon/next/api/web-vitals";
@@ -1,10 +1,10 @@
1
1
  @font-face {
2
2
  font-family: "pz-icon";
3
- src: url("./pz-icon.eot?db4ba799c4ca72f4bb855458e0cd19ee#iefix") format("embedded-opentype"),
4
- url("./pz-icon.woff2?db4ba799c4ca72f4bb855458e0cd19ee") format("woff2"),
5
- url("./pz-icon.woff?db4ba799c4ca72f4bb855458e0cd19ee") format("woff"),
6
- url("./pz-icon.ttf?db4ba799c4ca72f4bb855458e0cd19ee") format("truetype"),
7
- url("./pz-icon.svg?db4ba799c4ca72f4bb855458e0cd19ee#pz-icon") format("svg");
3
+ src: url("./pz-icon.eot?ab3f471e02785406bb64bc15fb47f7fa#iefix") format("embedded-opentype"),
4
+ url("./pz-icon.woff2?ab3f471e02785406bb64bc15fb47f7fa") format("woff2"),
5
+ url("./pz-icon.woff?ab3f471e02785406bb64bc15fb47f7fa") format("woff"),
6
+ url("./pz-icon.ttf?ab3f471e02785406bb64bc15fb47f7fa") format("truetype"),
7
+ url("./pz-icon.svg?ab3f471e02785406bb64bc15fb47f7fa#pz-icon") format("svg");
8
8
  }
9
9
 
10
10
  [class^="pz-icon-"],
@@ -20,135 +20,297 @@ url("./pz-icon.svg?db4ba799c4ca72f4bb855458e0cd19ee#pz-icon") format("svg");
20
20
  -moz-osx-font-smoothing: grayscale;
21
21
  }
22
22
 
23
- .pz-icon-akinon:before {
23
+ .pz-icon-account:before {
24
24
  content: "\f101";
25
25
  }
26
- .pz-icon-arrow-up:before {
26
+ .pz-icon-add:before {
27
27
  content: "\f102";
28
28
  }
29
- .pz-icon-bell:before {
29
+ .pz-icon-akinon:before {
30
30
  content: "\f103";
31
31
  }
32
- .pz-icon-cart:before {
32
+ .pz-icon-apple:before {
33
33
  content: "\f104";
34
34
  }
35
- .pz-icon-check:before {
35
+ .pz-icon-arrow-left:before {
36
36
  content: "\f105";
37
37
  }
38
- .pz-icon-chevron-down:before {
38
+ .pz-icon-arrow-right:before {
39
39
  content: "\f106";
40
40
  }
41
- .pz-icon-chevron-end:before {
41
+ .pz-icon-arrow-up:before {
42
42
  content: "\f107";
43
43
  }
44
- .pz-icon-chevron-start:before {
44
+ .pz-icon-bell:before {
45
45
  content: "\f108";
46
46
  }
47
- .pz-icon-chevron-up:before {
47
+ .pz-icon-cancel:before {
48
48
  content: "\f109";
49
49
  }
50
- .pz-icon-close:before {
50
+ .pz-icon-cart:before {
51
51
  content: "\f10a";
52
52
  }
53
- .pz-icon-cvc:before {
53
+ .pz-icon-check-circle:before {
54
54
  content: "\f10b";
55
55
  }
56
- .pz-icon-default:before {
56
+ .pz-icon-check:before {
57
57
  content: "\f10c";
58
58
  }
59
- .pz-icon-directions:before {
59
+ .pz-icon-chevron-down:before {
60
60
  content: "\f10d";
61
61
  }
62
- .pz-icon-eye-off:before {
62
+ .pz-icon-chevron-end:before {
63
63
  content: "\f10e";
64
64
  }
65
- .pz-icon-eye-on:before {
65
+ .pz-icon-chevron-left:before {
66
66
  content: "\f10f";
67
67
  }
68
- .pz-icon-facebook-login:before {
68
+ .pz-icon-chevron-right:before {
69
69
  content: "\f110";
70
70
  }
71
- .pz-icon-facebook:before {
71
+ .pz-icon-chevron-start:before {
72
72
  content: "\f111";
73
73
  }
74
- .pz-icon-giftbox:before {
74
+ .pz-icon-chevron-up:before {
75
75
  content: "\f112";
76
76
  }
77
- .pz-icon-globe:before {
77
+ .pz-icon-circle:before {
78
78
  content: "\f113";
79
79
  }
80
- .pz-icon-google-login:before {
80
+ .pz-icon-close:before {
81
81
  content: "\f114";
82
82
  }
83
- .pz-icon-google:before {
83
+ .pz-icon-cvc:before {
84
84
  content: "\f115";
85
85
  }
86
- .pz-icon-hamburger:before {
86
+ .pz-icon-dashboard:before {
87
87
  content: "\f116";
88
88
  }
89
- .pz-icon-heart-full:before {
89
+ .pz-icon-default:before {
90
90
  content: "\f117";
91
91
  }
92
- .pz-icon-heart-stroke:before {
92
+ .pz-icon-delete:before {
93
93
  content: "\f118";
94
94
  }
95
- .pz-icon-info:before {
95
+ .pz-icon-directions:before {
96
96
  content: "\f119";
97
97
  }
98
- .pz-icon-instagram:before {
98
+ .pz-icon-dots:before {
99
99
  content: "\f11a";
100
100
  }
101
- .pz-icon-layout-2:before {
101
+ .pz-icon-error:before {
102
102
  content: "\f11b";
103
103
  }
104
- .pz-icon-layout-3:before {
104
+ .pz-icon-eye-off:before {
105
105
  content: "\f11c";
106
106
  }
107
- .pz-icon-logo:before {
107
+ .pz-icon-eye-on:before {
108
108
  content: "\f11d";
109
109
  }
110
- .pz-icon-mail:before {
110
+ .pz-icon-eye:before {
111
111
  content: "\f11e";
112
112
  }
113
- .pz-icon-minus:before {
113
+ .pz-icon-facebook-login:before {
114
114
  content: "\f11f";
115
115
  }
116
- .pz-icon-money:before {
116
+ .pz-icon-facebook:before {
117
117
  content: "\f120";
118
118
  }
119
- .pz-icon-mp-otp:before {
119
+ .pz-icon-fav-off:before {
120
120
  content: "\f121";
121
121
  }
122
- .pz-icon-pin:before {
122
+ .pz-icon-fav-on:before {
123
123
  content: "\f122";
124
124
  }
125
- .pz-icon-pinterest:before {
125
+ .pz-icon-filter-and-sort:before {
126
126
  content: "\f123";
127
127
  }
128
- .pz-icon-plus:before {
128
+ .pz-icon-filter-list:before {
129
129
  content: "\f124";
130
130
  }
131
- .pz-icon-search:before {
131
+ .pz-icon-filter:before {
132
132
  content: "\f125";
133
133
  }
134
- .pz-icon-share:before {
134
+ .pz-icon-giftbox:before {
135
135
  content: "\f126";
136
136
  }
137
- .pz-icon-spinner:before {
137
+ .pz-icon-globe:before {
138
138
  content: "\f127";
139
139
  }
140
- .pz-icon-store-pin:before {
140
+ .pz-icon-google-login:before {
141
141
  content: "\f128";
142
142
  }
143
- .pz-icon-track-order:before {
143
+ .pz-icon-google:before {
144
144
  content: "\f129";
145
145
  }
146
- .pz-icon-twitter:before {
146
+ .pz-icon-grid-guides:before {
147
147
  content: "\f12a";
148
148
  }
149
- .pz-icon-user:before {
149
+ .pz-icon-hamburger:before {
150
150
  content: "\f12b";
151
151
  }
152
- .pz-icon-whatsapp:before {
152
+ .pz-icon-heart-filled:before {
153
153
  content: "\f12c";
154
154
  }
155
+ .pz-icon-heart-full:before {
156
+ content: "\f12d";
157
+ }
158
+ .pz-icon-heart-stroke:before {
159
+ content: "\f12e";
160
+ }
161
+ .pz-icon-heart:before {
162
+ content: "\f12f";
163
+ }
164
+ .pz-icon-home:before {
165
+ content: "\f130";
166
+ }
167
+ .pz-icon-info:before {
168
+ content: "\f131";
169
+ }
170
+ .pz-icon-instagram:before {
171
+ content: "\f132";
172
+ }
173
+ .pz-icon-layout-2:before {
174
+ content: "\f133";
175
+ }
176
+ .pz-icon-layout-3:before {
177
+ content: "\f134";
178
+ }
179
+ .pz-icon-location:before {
180
+ content: "\f135";
181
+ }
182
+ .pz-icon-logo:before {
183
+ content: "\f136";
184
+ }
185
+ .pz-icon-mac-sell:before {
186
+ content: "\f137";
187
+ }
188
+ .pz-icon-mail:before {
189
+ content: "\f138";
190
+ }
191
+ .pz-icon-materials:before {
192
+ content: "\f139";
193
+ }
194
+ .pz-icon-menu:before {
195
+ content: "\f13a";
196
+ }
197
+ .pz-icon-minus:before {
198
+ content: "\f13b";
199
+ }
200
+ .pz-icon-money:before {
201
+ content: "\f13c";
202
+ }
203
+ .pz-icon-mp-otp:before {
204
+ content: "\f13d";
205
+ }
206
+ .pz-icon-next:before {
207
+ content: "\f13e";
208
+ }
209
+ .pz-icon-person:before {
210
+ content: "\f13f";
211
+ }
212
+ .pz-icon-pin:before {
213
+ content: "\f140";
214
+ }
215
+ .pz-icon-pinterest:before {
216
+ content: "\f141";
217
+ }
218
+ .pz-icon-plus:before {
219
+ content: "\f142";
220
+ }
221
+ .pz-icon-remove:before {
222
+ content: "\f143";
223
+ }
224
+ .pz-icon-ruler:before {
225
+ content: "\f144";
226
+ }
227
+ .pz-icon-search:before {
228
+ content: "\f145";
229
+ }
230
+ .pz-icon-sell:before {
231
+ content: "\f146";
232
+ }
233
+ .pz-icon-share:before {
234
+ content: "\f147";
235
+ }
236
+ .pz-icon-share2:before {
237
+ content: "\f148";
238
+ }
239
+ .pz-icon-snapchat:before {
240
+ content: "\f149";
241
+ }
242
+ .pz-icon-sort:before {
243
+ content: "\f14a";
244
+ }
245
+ .pz-icon-spinner:before {
246
+ content: "\f14b";
247
+ }
248
+ .pz-icon-star-filled:before {
249
+ content: "\f14c";
250
+ }
251
+ .pz-icon-star:before {
252
+ content: "\f14d";
253
+ }
254
+ .pz-icon-store-icon:before {
255
+ content: "\f14e";
256
+ }
257
+ .pz-icon-store-pin:before {
258
+ content: "\f14f";
259
+ }
260
+ .pz-icon-store:before {
261
+ content: "\f150";
262
+ }
263
+ .pz-icon-thumb-down:before {
264
+ content: "\f151";
265
+ }
266
+ .pz-icon-thumb-up:before {
267
+ content: "\f152";
268
+ }
269
+ .pz-icon-ticket:before {
270
+ content: "\f153";
271
+ }
272
+ .pz-icon-tiktok:before {
273
+ content: "\f154";
274
+ }
275
+ .pz-icon-track-order:before {
276
+ content: "\f155";
277
+ }
278
+ .pz-icon-triangle-down:before {
279
+ content: "\f156";
280
+ }
281
+ .pz-icon-triangle-up:before {
282
+ content: "\f157";
283
+ }
284
+ .pz-icon-tumblr:before {
285
+ content: "\f158";
286
+ }
287
+ .pz-icon-tune:before {
288
+ content: "\f159";
289
+ }
290
+ .pz-icon-twitter:before {
291
+ content: "\f15a";
292
+ }
293
+ .pz-icon-user:before {
294
+ content: "\f15b";
295
+ }
296
+ .pz-icon-vimeo:before {
297
+ content: "\f15c";
298
+ }
299
+ .pz-icon-whatsapp:before {
300
+ content: "\f15d";
301
+ }
302
+ .pz-icon-widgets:before {
303
+ content: "\f15e";
304
+ }
305
+ .pz-icon-world:before {
306
+ content: "\f15f";
307
+ }
308
+ .pz-icon-x:before {
309
+ content: "\f160";
310
+ }
311
+ .pz-icon-youtube:before {
312
+ content: "\f161";
313
+ }
314
+ .pz-icon-zoom:before {
315
+ content: "\f162";
316
+ }