@akinon/projectzero 1.32.0 → 1.33.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.
Files changed (506) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/app-template/.editorconfig +7 -0
  3. package/app-template/.env.example +9 -0
  4. package/app-template/.eslintignore +1 -0
  5. package/app-template/.eslintrc.js +31 -0
  6. package/app-template/.gitattributes +18 -0
  7. package/app-template/.husky/pre-commit +4 -0
  8. package/app-template/.lintstagedrc.js +12 -0
  9. package/app-template/.prettierrc +13 -0
  10. package/app-template/.releaserc.json +49 -0
  11. package/app-template/.stylelintrc.json +37 -0
  12. package/app-template/.vscode/extensions.json +11 -0
  13. package/app-template/.vscode/launch.json +29 -0
  14. package/app-template/.yarnrc +1 -0
  15. package/app-template/CHANGELOG.md +636 -0
  16. package/app-template/LICENSE +21 -0
  17. package/app-template/Procfile +1 -0
  18. package/app-template/README.md +29 -0
  19. package/app-template/akinon.json +28 -0
  20. package/app-template/bitbucket-pipelines.yml +54 -0
  21. package/app-template/build.sh +7 -0
  22. package/app-template/docs/CHANGELOG.md +85 -0
  23. package/app-template/docs/advanced-usage.md +43 -0
  24. package/app-template/docs/basic-setup.md +59 -0
  25. package/app-template/docs/data-fetching/client/account.md +1064 -0
  26. package/app-template/docs/data-fetching/client/address.md +805 -0
  27. package/app-template/docs/data-fetching/client/basket.md +107 -0
  28. package/app-template/docs/data-fetching/client/checkout.md +904 -0
  29. package/app-template/docs/data-fetching/client/misc.md +135 -0
  30. package/app-template/docs/data-fetching/client/product.md +284 -0
  31. package/app-template/docs/data-fetching/client/user.md +56 -0
  32. package/app-template/docs/data-fetching/client/wishlist.md +111 -0
  33. package/app-template/docs/data-fetching/server/category.md +324 -0
  34. package/app-template/docs/data-fetching/server/flat-page.md +42 -0
  35. package/app-template/docs/data-fetching/server/list.md +353 -0
  36. package/app-template/docs/data-fetching/server/menu.md +363 -0
  37. package/app-template/docs/data-fetching/server/product.md +131 -0
  38. package/app-template/docs/data-fetching/server/seo.md +44 -0
  39. package/app-template/docs/data-fetching/server/special-page.md +79 -0
  40. package/app-template/docs/data-fetching/server/widget.md +218 -0
  41. package/app-template/docs/delete-account.md +25 -0
  42. package/app-template/docs/deployment.md +46 -0
  43. package/app-template/docs/dynamic-route.md +33 -0
  44. package/app-template/docs/icons.md +52 -0
  45. package/app-template/docs/localization.md +204 -0
  46. package/app-template/docs/logging.md +48 -0
  47. package/app-template/docs/plugins.md +76 -0
  48. package/app-template/docs/seo-management.md +125 -0
  49. package/app-template/docs/static-assets.md +36 -0
  50. package/app-template/docs/widgets.md +127 -0
  51. package/app-template/global.d.ts +1 -0
  52. package/app-template/jest.config.ts +34 -0
  53. package/app-template/next-env.d.ts +6 -0
  54. package/app-template/next.config.mjs +34 -0
  55. package/app-template/package.json +97 -0
  56. package/app-template/plugins.d.ts +1 -0
  57. package/app-template/postcss.config.js +6 -0
  58. package/app-template/public/404.png +0 -0
  59. package/app-template/public/500.png +0 -0
  60. package/app-template/public/apple-splash-1125-2436.jpg +0 -0
  61. package/app-template/public/apple-splash-1136-640.jpg +0 -0
  62. package/app-template/public/apple-splash-1170-2532.jpg +0 -0
  63. package/app-template/public/apple-splash-1242-2208.jpg +0 -0
  64. package/app-template/public/apple-splash-1242-2688.jpg +0 -0
  65. package/app-template/public/apple-splash-1284-2778.jpg +0 -0
  66. package/app-template/public/apple-splash-1334-750.jpg +0 -0
  67. package/app-template/public/apple-splash-1536-2048.jpg +0 -0
  68. package/app-template/public/apple-splash-1620-2160.jpg +0 -0
  69. package/app-template/public/apple-splash-1668-2224.jpg +0 -0
  70. package/app-template/public/apple-splash-1668-2388.jpg +0 -0
  71. package/app-template/public/apple-splash-1792-828.jpg +0 -0
  72. package/app-template/public/apple-splash-2048-1536.jpg +0 -0
  73. package/app-template/public/apple-splash-2048-2732.jpg +0 -0
  74. package/app-template/public/apple-splash-2160-1620.jpg +0 -0
  75. package/app-template/public/apple-splash-2208-1242.jpg +0 -0
  76. package/app-template/public/apple-splash-2224-1668.jpg +0 -0
  77. package/app-template/public/apple-splash-2388-1668.jpg +0 -0
  78. package/app-template/public/apple-splash-2436-1125.jpg +0 -0
  79. package/app-template/public/apple-splash-2532-1170.jpg +0 -0
  80. package/app-template/public/apple-splash-2688-1242.jpg +0 -0
  81. package/app-template/public/apple-splash-2732-2048.jpg +0 -0
  82. package/app-template/public/apple-splash-2778-1284.jpg +0 -0
  83. package/app-template/public/apple-splash-640-1136.jpg +0 -0
  84. package/app-template/public/apple-splash-750-1334.jpg +0 -0
  85. package/app-template/public/apple-splash-828-1792.jpg +0 -0
  86. package/app-template/public/apple-touch-icon-152x152.png +0 -0
  87. package/app-template/public/apple-touch-icon-167x167.png +0 -0
  88. package/app-template/public/apple-touch-icon-180x180.png +0 -0
  89. package/app-template/public/apple-touch-icon.png +0 -0
  90. package/app-template/public/apple.svg +47 -0
  91. package/app-template/public/cvv.jpg +0 -0
  92. package/app-template/public/facebook.svg +3 -0
  93. package/app-template/public/google.svg +12 -0
  94. package/app-template/public/icon-192x192.png +0 -0
  95. package/app-template/public/icon-256x256.png +0 -0
  96. package/app-template/public/icon-384x384.png +0 -0
  97. package/app-template/public/icon-512x512.png +0 -0
  98. package/app-template/public/icon-sprite.svg +528 -0
  99. package/app-template/public/locales/en/account.json +490 -0
  100. package/app-template/public/locales/en/auth.json +100 -0
  101. package/app-template/public/locales/en/basket.json +50 -0
  102. package/app-template/public/locales/en/category.json +26 -0
  103. package/app-template/public/locales/en/checkout.json +152 -0
  104. package/app-template/public/locales/en/common.json +65 -0
  105. package/app-template/public/locales/en/forgot_password.json +41 -0
  106. package/app-template/public/locales/en/form.json +5 -0
  107. package/app-template/public/locales/en/product.json +39 -0
  108. package/app-template/public/locales/tr/account.json +490 -0
  109. package/app-template/public/locales/tr/auth.json +100 -0
  110. package/app-template/public/locales/tr/basket.json +50 -0
  111. package/app-template/public/locales/tr/category.json +26 -0
  112. package/app-template/public/locales/tr/checkout.json +152 -0
  113. package/app-template/public/locales/tr/common.json +65 -0
  114. package/app-template/public/locales/tr/forgot_password.json +41 -0
  115. package/app-template/public/locales/tr/form.json +5 -0
  116. package/app-template/public/locales/tr/product.json +39 -0
  117. package/app-template/public/logo.svg +29 -0
  118. package/app-template/public/manifest.json +35 -0
  119. package/app-template/public/mastercard.png +0 -0
  120. package/app-template/public/mastersecure.png +0 -0
  121. package/app-template/public/mfs-client.min.js +3 -0
  122. package/app-template/public/noimage.jpg +0 -0
  123. package/app-template/public/safari-pinned-tab.svg +320 -0
  124. package/app-template/public/ssl-secure.png +0 -0
  125. package/app-template/public/vbv.png +0 -0
  126. package/app-template/public/visa.png +0 -0
  127. package/app-template/public/zepto.min.js +2 -0
  128. package/app-template/sentry.client.config.ts +16 -0
  129. package/app-template/sentry.edge.config.ts +3 -0
  130. package/app-template/sentry.properties +4 -0
  131. package/app-template/sentry.server.config.ts +3 -0
  132. package/app-template/setupTests.ts +4 -0
  133. package/app-template/src/__tests__/index.test.tsx +7 -0
  134. package/app-template/src/__tests__/tsconfig.json +7 -0
  135. package/app-template/src/app/[commerce]/[locale]/[currency]/account/address/page.tsx +74 -0
  136. package/app-template/src/app/[commerce]/[locale]/[currency]/account/change-email/page.tsx +174 -0
  137. package/app-template/src/app/[commerce]/[locale]/[currency]/account/change-password/page.tsx +206 -0
  138. package/app-template/src/app/[commerce]/[locale]/[currency]/account/contact/page.tsx +7 -0
  139. package/app-template/src/app/[commerce]/[locale]/[currency]/account/coupons/page.tsx +210 -0
  140. package/app-template/src/app/[commerce]/[locale]/[currency]/account/email-verification/page.tsx +5 -0
  141. package/app-template/src/app/[commerce]/[locale]/[currency]/account/faq/page.tsx +23 -0
  142. package/app-template/src/app/[commerce]/[locale]/[currency]/account/favourite-products/page.tsx +32 -0
  143. package/app-template/src/app/[commerce]/[locale]/[currency]/account/layout.tsx +28 -0
  144. package/app-template/src/app/[commerce]/[locale]/[currency]/account/my-quotations/page.tsx +7 -0
  145. package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/[id]/cancellation/page.tsx +255 -0
  146. package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/[id]/layout.tsx +5 -0
  147. package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/[id]/page.tsx +309 -0
  148. package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/page.tsx +137 -0
  149. package/app-template/src/app/[commerce]/[locale]/[currency]/account/page.tsx +226 -0
  150. package/app-template/src/app/[commerce]/[locale]/[currency]/account/profile/page.tsx +399 -0
  151. package/app-template/src/app/[commerce]/[locale]/[currency]/address/stores/page.tsx +271 -0
  152. package/app-template/src/app/[commerce]/[locale]/[currency]/anonymous-tracking/page.tsx +33 -0
  153. package/app-template/src/app/[commerce]/[locale]/[currency]/auth/oauth-login/page.tsx +3 -0
  154. package/app-template/src/app/[commerce]/[locale]/[currency]/auth/page.tsx +76 -0
  155. package/app-template/src/app/[commerce]/[locale]/[currency]/basket/page.tsx +77 -0
  156. package/app-template/src/app/[commerce]/[locale]/[currency]/basket-b2b/page.tsx +7 -0
  157. package/app-template/src/app/[commerce]/[locale]/[currency]/category/[pk]/loading.tsx +53 -0
  158. package/app-template/src/app/[commerce]/[locale]/[currency]/category/[pk]/page.tsx +16 -0
  159. package/app-template/src/app/[commerce]/[locale]/[currency]/client-root.tsx +9 -0
  160. package/app-template/src/app/[commerce]/[locale]/[currency]/contact-us/page.tsx +11 -0
  161. package/app-template/src/app/[commerce]/[locale]/[currency]/error.tsx +20 -0
  162. package/app-template/src/app/[commerce]/[locale]/[currency]/flat-page/[pk]/loading.tsx +5 -0
  163. package/app-template/src/app/[commerce]/[locale]/[currency]/flat-page/[pk]/page.tsx +18 -0
  164. package/app-template/src/app/[commerce]/[locale]/[currency]/forms/[pk]/generate/page.tsx +48 -0
  165. package/app-template/src/app/[commerce]/[locale]/[currency]/group-product/[pk]/loading.tsx +5 -0
  166. package/app-template/src/app/[commerce]/[locale]/[currency]/group-product/[pk]/page.tsx +72 -0
  167. package/app-template/src/app/[commerce]/[locale]/[currency]/landing-page/[pk]/loading.tsx +5 -0
  168. package/app-template/src/app/[commerce]/[locale]/[currency]/landing-page/[pk]/page.tsx +23 -0
  169. package/app-template/src/app/[commerce]/[locale]/[currency]/layout.tsx +78 -0
  170. package/app-template/src/app/[commerce]/[locale]/[currency]/list/loading.tsx +53 -0
  171. package/app-template/src/app/[commerce]/[locale]/[currency]/list/page.tsx +16 -0
  172. package/app-template/src/app/[commerce]/[locale]/[currency]/orders/checkout/page.tsx +140 -0
  173. package/app-template/src/app/[commerce]/[locale]/[currency]/orders/completed/[token]/layout.tsx +5 -0
  174. package/app-template/src/app/[commerce]/[locale]/[currency]/orders/completed/[token]/page.tsx +284 -0
  175. package/app-template/src/app/[commerce]/[locale]/[currency]/page.tsx +50 -0
  176. package/app-template/src/app/[commerce]/[locale]/[currency]/product/[pk]/loading.tsx +67 -0
  177. package/app-template/src/app/[commerce]/[locale]/[currency]/product/[pk]/page.tsx +81 -0
  178. package/app-template/src/app/[commerce]/[locale]/[currency]/special-page/[pk]/loading.tsx +53 -0
  179. package/app-template/src/app/[commerce]/[locale]/[currency]/special-page/[pk]/page.tsx +25 -0
  180. package/app-template/src/app/[commerce]/[locale]/[currency]/template.tsx +75 -0
  181. package/app-template/src/app/[commerce]/[locale]/[currency]/users/email-set-primary/[[...id]]/page.tsx +43 -0
  182. package/app-template/src/app/[commerce]/[locale]/[currency]/users/password/reset/page.tsx +79 -0
  183. package/app-template/src/app/[commerce]/[locale]/[currency]/users/registration/account-confirm-email/[[...id]]/page.tsx +43 -0
  184. package/app-template/src/app/[commerce]/[locale]/[currency]/users/reset/[[...id]]/page.tsx +110 -0
  185. package/app-template/src/app/[commerce]/[locale]/[currency]/xml-sitemap/[node]/route.ts +25 -0
  186. package/app-template/src/app/[commerce]/[locale]/[currency]/xml-sitemap/route.ts +37 -0
  187. package/app-template/src/app/api/cache/route.ts +1 -0
  188. package/app-template/src/app/api/client/[...slug]/route.ts +1 -0
  189. package/app-template/src/app/api/form/[...id]/route.ts +7 -0
  190. package/app-template/src/app/api/logout/route.ts +1 -0
  191. package/app-template/src/app/api/sentry/route.ts +9 -0
  192. package/app-template/src/app/api/web-vitals/route.ts +1 -0
  193. package/app-template/src/app/favicon.ico +0 -0
  194. package/app-template/src/assets/fonts/Jost/Jost-Black.eot +0 -0
  195. package/app-template/src/assets/fonts/Jost/Jost-Black.ttf +0 -0
  196. package/app-template/src/assets/fonts/Jost/Jost-Black.woff +0 -0
  197. package/app-template/src/assets/fonts/Jost/Jost-Black.woff2 +0 -0
  198. package/app-template/src/assets/fonts/Jost/Jost-BlackItalic.eot +0 -0
  199. package/app-template/src/assets/fonts/Jost/Jost-BlackItalic.ttf +0 -0
  200. package/app-template/src/assets/fonts/Jost/Jost-BlackItalic.woff +0 -0
  201. package/app-template/src/assets/fonts/Jost/Jost-BlackItalic.woff2 +0 -0
  202. package/app-template/src/assets/fonts/Jost/Jost-Bold.eot +0 -0
  203. package/app-template/src/assets/fonts/Jost/Jost-Bold.ttf +0 -0
  204. package/app-template/src/assets/fonts/Jost/Jost-Bold.woff +0 -0
  205. package/app-template/src/assets/fonts/Jost/Jost-Bold.woff2 +0 -0
  206. package/app-template/src/assets/fonts/Jost/Jost-BoldItalic.eot +0 -0
  207. package/app-template/src/assets/fonts/Jost/Jost-BoldItalic.ttf +0 -0
  208. package/app-template/src/assets/fonts/Jost/Jost-BoldItalic.woff +0 -0
  209. package/app-template/src/assets/fonts/Jost/Jost-BoldItalic.woff2 +0 -0
  210. package/app-template/src/assets/fonts/Jost/Jost-ExtraBold.eot +0 -0
  211. package/app-template/src/assets/fonts/Jost/Jost-ExtraBold.ttf +0 -0
  212. package/app-template/src/assets/fonts/Jost/Jost-ExtraBold.woff +0 -0
  213. package/app-template/src/assets/fonts/Jost/Jost-ExtraBold.woff2 +0 -0
  214. package/app-template/src/assets/fonts/Jost/Jost-ExtraBoldItalic.eot +0 -0
  215. package/app-template/src/assets/fonts/Jost/Jost-ExtraBoldItalic.ttf +0 -0
  216. package/app-template/src/assets/fonts/Jost/Jost-ExtraBoldItalic.woff +0 -0
  217. package/app-template/src/assets/fonts/Jost/Jost-ExtraBoldItalic.woff2 +0 -0
  218. package/app-template/src/assets/fonts/Jost/Jost-ExtraLight.eot +0 -0
  219. package/app-template/src/assets/fonts/Jost/Jost-ExtraLight.ttf +0 -0
  220. package/app-template/src/assets/fonts/Jost/Jost-ExtraLight.woff +0 -0
  221. package/app-template/src/assets/fonts/Jost/Jost-ExtraLight.woff2 +0 -0
  222. package/app-template/src/assets/fonts/Jost/Jost-ExtraLightItalic.eot +0 -0
  223. package/app-template/src/assets/fonts/Jost/Jost-ExtraLightItalic.ttf +0 -0
  224. package/app-template/src/assets/fonts/Jost/Jost-ExtraLightItalic.woff +0 -0
  225. package/app-template/src/assets/fonts/Jost/Jost-ExtraLightItalic.woff2 +0 -0
  226. package/app-template/src/assets/fonts/Jost/Jost-Italic.eot +0 -0
  227. package/app-template/src/assets/fonts/Jost/Jost-Italic.ttf +0 -0
  228. package/app-template/src/assets/fonts/Jost/Jost-Italic.woff +0 -0
  229. package/app-template/src/assets/fonts/Jost/Jost-Italic.woff2 +0 -0
  230. package/app-template/src/assets/fonts/Jost/Jost-Light.eot +0 -0
  231. package/app-template/src/assets/fonts/Jost/Jost-Light.ttf +0 -0
  232. package/app-template/src/assets/fonts/Jost/Jost-Light.woff +0 -0
  233. package/app-template/src/assets/fonts/Jost/Jost-Light.woff2 +0 -0
  234. package/app-template/src/assets/fonts/Jost/Jost-LightItalic.eot +0 -0
  235. package/app-template/src/assets/fonts/Jost/Jost-LightItalic.ttf +0 -0
  236. package/app-template/src/assets/fonts/Jost/Jost-LightItalic.woff +0 -0
  237. package/app-template/src/assets/fonts/Jost/Jost-LightItalic.woff2 +0 -0
  238. package/app-template/src/assets/fonts/Jost/Jost-Medium.eot +0 -0
  239. package/app-template/src/assets/fonts/Jost/Jost-Medium.ttf +0 -0
  240. package/app-template/src/assets/fonts/Jost/Jost-Medium.woff +0 -0
  241. package/app-template/src/assets/fonts/Jost/Jost-Medium.woff2 +0 -0
  242. package/app-template/src/assets/fonts/Jost/Jost-MediumItalic.eot +0 -0
  243. package/app-template/src/assets/fonts/Jost/Jost-MediumItalic.ttf +0 -0
  244. package/app-template/src/assets/fonts/Jost/Jost-MediumItalic.woff +0 -0
  245. package/app-template/src/assets/fonts/Jost/Jost-MediumItalic.woff2 +0 -0
  246. package/app-template/src/assets/fonts/Jost/Jost-Regular.eot +0 -0
  247. package/app-template/src/assets/fonts/Jost/Jost-Regular.ttf +0 -0
  248. package/app-template/src/assets/fonts/Jost/Jost-Regular.woff +0 -0
  249. package/app-template/src/assets/fonts/Jost/Jost-Regular.woff2 +0 -0
  250. package/app-template/src/assets/fonts/Jost/Jost-SemiBold.eot +0 -0
  251. package/app-template/src/assets/fonts/Jost/Jost-SemiBold.ttf +0 -0
  252. package/app-template/src/assets/fonts/Jost/Jost-SemiBold.woff +0 -0
  253. package/app-template/src/assets/fonts/Jost/Jost-SemiBold.woff2 +0 -0
  254. package/app-template/src/assets/fonts/Jost/Jost-SemiBoldItalic.eot +0 -0
  255. package/app-template/src/assets/fonts/Jost/Jost-SemiBoldItalic.ttf +0 -0
  256. package/app-template/src/assets/fonts/Jost/Jost-SemiBoldItalic.woff +0 -0
  257. package/app-template/src/assets/fonts/Jost/Jost-SemiBoldItalic.woff2 +0 -0
  258. package/app-template/src/assets/fonts/Jost/Jost-Thin.eot +0 -0
  259. package/app-template/src/assets/fonts/Jost/Jost-Thin.ttf +0 -0
  260. package/app-template/src/assets/fonts/Jost/Jost-Thin.woff +0 -0
  261. package/app-template/src/assets/fonts/Jost/Jost-Thin.woff2 +0 -0
  262. package/app-template/src/assets/fonts/Jost/Jost-ThinItalic.eot +0 -0
  263. package/app-template/src/assets/fonts/Jost/Jost-ThinItalic.ttf +0 -0
  264. package/app-template/src/assets/fonts/Jost/Jost-ThinItalic.woff +0 -0
  265. package/app-template/src/assets/fonts/Jost/Jost-ThinItalic.woff2 +0 -0
  266. package/app-template/src/assets/fonts/Jost/index.scss +269 -0
  267. package/app-template/src/assets/fonts/index.scss +1 -0
  268. package/app-template/src/assets/fonts/pz-icon.css +154 -0
  269. package/app-template/src/assets/fonts/pz-icon.eot +0 -0
  270. package/app-template/src/assets/fonts/pz-icon.html +456 -0
  271. package/app-template/src/assets/fonts/pz-icon.scss +300 -0
  272. package/app-template/src/assets/fonts/pz-icon.svg +144 -0
  273. package/app-template/src/assets/fonts/pz-icon.ttf +0 -0
  274. package/app-template/src/assets/fonts/pz-icon.woff +0 -0
  275. package/app-template/src/assets/fonts/pz-icon.woff2 +0 -0
  276. package/app-template/src/assets/globals.scss +65 -0
  277. package/app-template/src/assets/icons/akinon.svg +11 -0
  278. package/app-template/src/assets/icons/arrow-up.svg +11 -0
  279. package/app-template/src/assets/icons/bell.svg +1 -0
  280. package/app-template/src/assets/icons/cart.svg +13 -0
  281. package/app-template/src/assets/icons/check.svg +19 -0
  282. package/app-template/src/assets/icons/chevron-down.svg +8 -0
  283. package/app-template/src/assets/icons/chevron-end.svg +8 -0
  284. package/app-template/src/assets/icons/chevron-start.svg +8 -0
  285. package/app-template/src/assets/icons/chevron-up.svg +8 -0
  286. package/app-template/src/assets/icons/close.svg +12 -0
  287. package/app-template/src/assets/icons/cvc.svg +54 -0
  288. package/app-template/src/assets/icons/default.svg +6 -0
  289. package/app-template/src/assets/icons/directions.svg +14 -0
  290. package/app-template/src/assets/icons/eye-off.svg +10 -0
  291. package/app-template/src/assets/icons/eye-on.svg +17 -0
  292. package/app-template/src/assets/icons/facebook-login.svg +11 -0
  293. package/app-template/src/assets/icons/facebook.svg +9 -0
  294. package/app-template/src/assets/icons/giftbox.svg +22 -0
  295. package/app-template/src/assets/icons/globe.svg +12 -0
  296. package/app-template/src/assets/icons/google-login.svg +19 -0
  297. package/app-template/src/assets/icons/google.svg +9 -0
  298. package/app-template/src/assets/icons/hamburger.svg +5 -0
  299. package/app-template/src/assets/icons/heart-full.svg +20 -0
  300. package/app-template/src/assets/icons/heart-stroke.svg +22 -0
  301. package/app-template/src/assets/icons/info.svg +1 -0
  302. package/app-template/src/assets/icons/instagram.svg +14 -0
  303. package/app-template/src/assets/icons/layout-2.svg +7 -0
  304. package/app-template/src/assets/icons/layout-3.svg +4 -0
  305. package/app-template/src/assets/icons/logo.svg +24 -0
  306. package/app-template/src/assets/icons/mail.svg +1 -0
  307. package/app-template/src/assets/icons/minus.svg +4 -0
  308. package/app-template/src/assets/icons/money.svg +4 -0
  309. package/app-template/src/assets/icons/mp-otp.svg +1 -0
  310. package/app-template/src/assets/icons/pin.svg +16 -0
  311. package/app-template/src/assets/icons/pinterest.svg +12 -0
  312. package/app-template/src/assets/icons/plus.svg +5 -0
  313. package/app-template/src/assets/icons/search.svg +13 -0
  314. package/app-template/src/assets/icons/share.svg +10 -0
  315. package/app-template/src/assets/icons/spinner.svg +6 -0
  316. package/app-template/src/assets/icons/store-pin.svg +14 -0
  317. package/app-template/src/assets/icons/track-order.svg +1 -0
  318. package/app-template/src/assets/icons/twitter.svg +11 -0
  319. package/app-template/src/assets/icons/user.svg +14 -0
  320. package/app-template/src/assets/icons/whatsapp.svg +45 -0
  321. package/app-template/src/components/__tests__/Modal.test.tsx +103 -0
  322. package/app-template/src/components/__tests__/accordion.test.tsx +65 -0
  323. package/app-template/src/components/__tests__/badge.test.tsx +20 -0
  324. package/app-template/src/components/__tests__/button.test.tsx +59 -0
  325. package/app-template/src/components/__tests__/checkbox.test.tsx +57 -0
  326. package/app-template/src/components/__tests__/file-input.test.tsx +42 -0
  327. package/app-template/src/components/__tests__/icon.test.tsx +39 -0
  328. package/app-template/src/components/__tests__/input.test.tsx +69 -0
  329. package/app-template/src/components/__tests__/language-select.test.tsx +81 -0
  330. package/app-template/src/components/__tests__/link.test.tsx +65 -0
  331. package/app-template/src/components/__tests__/price.test.tsx +72 -0
  332. package/app-template/src/components/__tests__/radio.test.tsx +52 -0
  333. package/app-template/src/components/__tests__/select.test.tsx +115 -0
  334. package/app-template/src/components/__tests__/tab.test.tsx +101 -0
  335. package/app-template/src/components/accordion.tsx +64 -0
  336. package/app-template/src/components/badge.tsx +21 -0
  337. package/app-template/src/components/button.tsx +46 -0
  338. package/app-template/src/components/canonical-url.tsx +21 -0
  339. package/app-template/src/components/carousel-core.tsx +42 -0
  340. package/app-template/src/components/checkbox.tsx +28 -0
  341. package/app-template/src/components/currency-select.tsx +81 -0
  342. package/app-template/src/components/custom-loader.tsx +21 -0
  343. package/app-template/src/components/dynamic-form.tsx +17 -0
  344. package/app-template/src/components/file-input.tsx +8 -0
  345. package/app-template/src/components/generate-form-fields.tsx +349 -0
  346. package/app-template/src/components/icon.tsx +18 -0
  347. package/app-template/src/components/index.ts +41 -0
  348. package/app-template/src/components/input.tsx +110 -0
  349. package/app-template/src/components/language-select.tsx +33 -0
  350. package/app-template/src/components/link.tsx +53 -0
  351. package/app-template/src/components/loader-spinner.tsx +23 -0
  352. package/app-template/src/components/modal.tsx +66 -0
  353. package/app-template/src/components/pagination.tsx +267 -0
  354. package/app-template/src/components/password-rules-feedback.tsx +60 -0
  355. package/app-template/src/components/price.tsx +54 -0
  356. package/app-template/src/components/pwa-tags.tsx +233 -0
  357. package/app-template/src/components/radio.tsx +18 -0
  358. package/app-template/src/components/react-portal.tsx +47 -0
  359. package/app-template/src/components/select.tsx +70 -0
  360. package/app-template/src/components/shimmer.tsx +21 -0
  361. package/app-template/src/components/skeleton-article.tsx +15 -0
  362. package/app-template/src/components/skeleton-product.tsx +14 -0
  363. package/app-template/src/components/skeleton-profile.tsx +19 -0
  364. package/app-template/src/components/skeleton-wrapper.tsx +19 -0
  365. package/app-template/src/components/skeleton.tsx +37 -0
  366. package/app-template/src/components/source.tsx +12 -0
  367. package/app-template/src/components/tab-panel.tsx +10 -0
  368. package/app-template/src/components/tab.tsx +58 -0
  369. package/app-template/src/components/tabs.tsx +58 -0
  370. package/app-template/src/components/types/index.ts +89 -0
  371. package/app-template/src/hooks/index.ts +1 -0
  372. package/app-template/src/hooks/use-add-product-to-basket.ts +48 -0
  373. package/app-template/src/hooks/use-contract.tsx +58 -0
  374. package/app-template/src/hooks/use-fav-button.tsx +99 -0
  375. package/app-template/src/instrumentation.ts +1 -0
  376. package/app-template/src/middleware.ts +33 -0
  377. package/app-template/src/pages/_error.js +14 -0
  378. package/app-template/src/pages/api/auth/[...nextauth].ts +3 -0
  379. package/app-template/src/plugins.js +14 -0
  380. package/app-template/src/redux/middlewares/category.ts +42 -0
  381. package/app-template/src/redux/reducers/category.ts +67 -0
  382. package/app-template/src/redux/store.ts +47 -0
  383. package/app-template/src/routes/index.ts +46 -0
  384. package/app-template/src/settings.js +62 -0
  385. package/app-template/src/theme.js +1 -0
  386. package/app-template/src/types/index.ts +72 -0
  387. package/app-template/src/types/next-auth.d.ts +24 -0
  388. package/app-template/src/types/widgets.ts +115 -0
  389. package/app-template/src/utils/convert-facet-search-params.ts +15 -0
  390. package/app-template/src/utils/generate-jsonld.ts +23 -0
  391. package/app-template/src/utils/gtm.ts +247 -0
  392. package/app-template/src/utils/index.ts +60 -0
  393. package/app-template/src/views/account/account-menu.tsx +117 -0
  394. package/app-template/src/views/account/address-card.tsx +157 -0
  395. package/app-template/src/views/account/address-form.tsx +374 -0
  396. package/app-template/src/views/account/back-button.tsx +27 -0
  397. package/app-template/src/views/account/contact-form.tsx +283 -0
  398. package/app-template/src/views/account/content-header.tsx +52 -0
  399. package/app-template/src/views/account/faq/faq-footer.tsx +30 -0
  400. package/app-template/src/views/account/faq/faq-search.tsx +35 -0
  401. package/app-template/src/views/account/faq/faq-tabs.tsx +54 -0
  402. package/app-template/src/views/account/faq/index.ts +3 -0
  403. package/app-template/src/views/account/favorite-item.tsx +191 -0
  404. package/app-template/src/views/account/favourite-products/favourite-products-list.tsx +65 -0
  405. package/app-template/src/views/account/index.ts +4 -0
  406. package/app-template/src/views/account/order.tsx +89 -0
  407. package/app-template/src/views/account/orders/order-cancellation-item.tsx +99 -0
  408. package/app-template/src/views/account/orders/order-detail-header.tsx +39 -0
  409. package/app-template/src/views/anonymous-tracking/index.tsx +109 -0
  410. package/app-template/src/views/anonymous-tracking/order-detail/index.tsx +318 -0
  411. package/app-template/src/views/basket/basket-item.tsx +231 -0
  412. package/app-template/src/views/basket/index.ts +2 -0
  413. package/app-template/src/views/basket/summary.tsx +220 -0
  414. package/app-template/src/views/breadcrumb.tsx +35 -0
  415. package/app-template/src/views/category/category-active-filters.tsx +98 -0
  416. package/app-template/src/views/category/category-banner.tsx +34 -0
  417. package/app-template/src/views/category/category-header.tsx +143 -0
  418. package/app-template/src/views/category/category-info.tsx +123 -0
  419. package/app-template/src/views/category/filters/index.tsx +163 -0
  420. package/app-template/src/views/category/filters/size-filter.tsx +27 -0
  421. package/app-template/src/views/category/layout.tsx +38 -0
  422. package/app-template/src/views/checkout/auth.tsx +54 -0
  423. package/app-template/src/views/checkout/index.tsx +3 -0
  424. package/app-template/src/views/checkout/layout/footer.tsx +48 -0
  425. package/app-template/src/views/checkout/layout/header.tsx +38 -0
  426. package/app-template/src/views/checkout/step-button.tsx +69 -0
  427. package/app-template/src/views/checkout/step-list.tsx +51 -0
  428. package/app-template/src/views/checkout/steps/payment/agreements.tsx +42 -0
  429. package/app-template/src/views/checkout/steps/payment/index.tsx +31 -0
  430. package/app-template/src/views/checkout/steps/payment/options/credit-card/index.tsx +382 -0
  431. package/app-template/src/views/checkout/steps/payment/options/credit-card/installments.tsx +100 -0
  432. package/app-template/src/views/checkout/steps/payment/options/credit-payment.tsx +14 -0
  433. package/app-template/src/views/checkout/steps/payment/options/funds-transfer.tsx +174 -0
  434. package/app-template/src/views/checkout/steps/payment/options/loyalty.tsx +19 -0
  435. package/app-template/src/views/checkout/steps/payment/options/pay-on-delivery.tsx +15 -0
  436. package/app-template/src/views/checkout/steps/payment/options/redirection.tsx +94 -0
  437. package/app-template/src/views/checkout/steps/payment/payment-header.tsx +17 -0
  438. package/app-template/src/views/checkout/steps/payment/payment-option-buttons.tsx +73 -0
  439. package/app-template/src/views/checkout/steps/shipping/address-box.tsx +244 -0
  440. package/app-template/src/views/checkout/steps/shipping/addresses.tsx +189 -0
  441. package/app-template/src/views/checkout/steps/shipping/index.tsx +27 -0
  442. package/app-template/src/views/checkout/steps/shipping/shipping-options.tsx +72 -0
  443. package/app-template/src/views/checkout/summary.tsx +181 -0
  444. package/app-template/src/views/coupon-item/index.tsx +80 -0
  445. package/app-template/src/views/find-in-store/index.tsx +183 -0
  446. package/app-template/src/views/footer.tsx +21 -0
  447. package/app-template/src/views/guest-login/index.tsx +130 -0
  448. package/app-template/src/views/header/action-menu.tsx +117 -0
  449. package/app-template/src/views/header/band.tsx +32 -0
  450. package/app-template/src/views/header/index.tsx +66 -0
  451. package/app-template/src/views/header/mini-basket.tsx +267 -0
  452. package/app-template/src/views/header/mobile-hamburger-button.tsx +35 -0
  453. package/app-template/src/views/header/mobile-menu.tsx +144 -0
  454. package/app-template/src/views/header/navbar.tsx +186 -0
  455. package/app-template/src/views/header/pwa-back-button.tsx +60 -0
  456. package/app-template/src/views/header/search/index.tsx +82 -0
  457. package/app-template/src/views/header/search/results.tsx +123 -0
  458. package/app-template/src/views/header/user-menu.tsx +72 -0
  459. package/app-template/src/views/index.tsx +2 -0
  460. package/app-template/src/views/installment-options/index.tsx +127 -0
  461. package/app-template/src/views/login/index.tsx +233 -0
  462. package/app-template/src/views/otp-login/index.tsx +152 -0
  463. package/app-template/src/views/page-loader-spinner/index.tsx +9 -0
  464. package/app-template/src/views/product/accordion-wrapper.tsx +59 -0
  465. package/app-template/src/views/product/combine-product-card.tsx +82 -0
  466. package/app-template/src/views/product/index.ts +8 -0
  467. package/app-template/src/views/product/layout.tsx +40 -0
  468. package/app-template/src/views/product/misc-buttons.tsx +65 -0
  469. package/app-template/src/views/product/price-wrapper.tsx +41 -0
  470. package/app-template/src/views/product/product-group-info.tsx +63 -0
  471. package/app-template/src/views/product/product-info.tsx +273 -0
  472. package/app-template/src/views/product/slider.tsx +124 -0
  473. package/app-template/src/views/product/variant.tsx +104 -0
  474. package/app-template/src/views/product-item/index.tsx +96 -0
  475. package/app-template/src/views/product-pointer-banner-item.tsx +243 -0
  476. package/app-template/src/views/register/index.tsx +417 -0
  477. package/app-template/src/views/root-modal.tsx +21 -0
  478. package/app-template/src/views/sales-contract-modal/index.tsx +288 -0
  479. package/app-template/src/views/share/index.tsx +71 -0
  480. package/app-template/src/views/widgets/home-hero-slider-content.tsx +54 -0
  481. package/app-template/src/views/widgets/recommendation-content.tsx +86 -0
  482. package/app-template/src/widgets/footer-copyright.tsx +25 -0
  483. package/app-template/src/widgets/footer-info.tsx +78 -0
  484. package/app-template/src/widgets/footer-menu.tsx +258 -0
  485. package/app-template/src/widgets/footer-social.tsx +53 -0
  486. package/app-template/src/widgets/footer-subscription/footer-subscription-form.tsx +110 -0
  487. package/app-template/src/widgets/footer-subscription/index.tsx +30 -0
  488. package/app-template/src/widgets/header-band-text.tsx +21 -0
  489. package/app-template/src/widgets/home-discovery.tsx +191 -0
  490. package/app-template/src/widgets/home-hero-slider.tsx +36 -0
  491. package/app-template/src/widgets/home-product-recommendation.tsx +18 -0
  492. package/app-template/src/widgets/home-single-banner.tsx +87 -0
  493. package/app-template/src/widgets/home-stories-eng.tsx +112 -0
  494. package/app-template/src/widgets/index.ts +25 -0
  495. package/app-template/src/widgets/product-pointer-banners.tsx +35 -0
  496. package/app-template/src/widgets/special-page-banner.tsx +49 -0
  497. package/app-template/src/widgets/special-page-carousel.tsx +68 -0
  498. package/app-template/src/widgets/widget-order.tsx +1 -0
  499. package/app-template/tailwind.config.js +170 -0
  500. package/app-template/tsconfig.json +44 -0
  501. package/app-template/tsconfig.test.json +6 -0
  502. package/app-template/yarn.lock +11278 -0
  503. package/commands/create.ts +49 -118
  504. package/dist/commands/create.js +32 -68
  505. package/package.json +1 -1
  506. package/tsconfig.json +9 -8
@@ -0,0 +1,218 @@
1
+ ---
2
+ title: Widget
3
+ sidebar_label: Widget
4
+ slug: widget
5
+ custom_edit_url: null
6
+ ---
7
+
8
+ ## getWidgetData
9
+
10
+ This function is used to fetch data for widgets created in Omnitron.
11
+
12
+ The **getWidgetData** function is imported from `'@akinon/next/data/server'`.
13
+
14
+ ```javascript
15
+ import { getWidgetData } from '@akinon/next/data/server';
16
+ ```
17
+
18
+ The widget data is fetched by defining this function as follow:
19
+
20
+ ```javascript
21
+ const data = await getWidgetData({slug: 'gender-widget-order'});
22
+ ```
23
+
24
+ - `slug`: The slug of the widget to be fetched needs to be provided as a parameter. This parameter is mandatory and should be of type String.
25
+
26
+ Data returned from the function:
27
+
28
+ ```json
29
+ {
30
+ "attributes": {
31
+ "widget_order": [
32
+ {
33
+ "value": {
34
+ "item_slug": "home-stories-men"
35
+ },
36
+ "kwargs": {
37
+ "value": {},
38
+ "data_type": "nested"
39
+ }
40
+ },
41
+ {
42
+ "value": {
43
+ "item_slug": "home-hero-slider-men"
44
+ },
45
+ "kwargs": {
46
+ "value": {},
47
+ "data_type": "nested"
48
+ }
49
+ },
50
+ {
51
+ "value": {
52
+ "item_slug": "countdown-banner-men"
53
+ },
54
+ "kwargs": {
55
+ "value": {},
56
+ "data_type": "nested"
57
+ }
58
+ },
59
+ {
60
+ "value": {
61
+ "item_slug": "home-single-banner-men"
62
+ },
63
+ "kwargs": {
64
+ "value": {},
65
+ "data_type": "nested"
66
+ }
67
+ },
68
+ {
69
+ "value": {
70
+ "item_slug": "home-categories-men"
71
+ },
72
+ "kwargs": {
73
+ "value": {},
74
+ "data_type": "nested"
75
+ }
76
+ },
77
+ {
78
+ "value": {
79
+ "item_slug": "multiple-banner-1-men"
80
+ },
81
+ "kwargs": {
82
+ "value": {},
83
+ "data_type": "nested"
84
+ }
85
+ },
86
+ {
87
+ "value": {
88
+ "item_slug": "new-arrivals-recommendation-men"
89
+ },
90
+ "kwargs": {
91
+ "value": {},
92
+ "data_type": "nested"
93
+ }
94
+ },
95
+ {
96
+ "value": {
97
+ "item_slug": "multiple-banner-2-men"
98
+ },
99
+ "kwargs": {
100
+ "value": {},
101
+ "data_type": "nested"
102
+ }
103
+ },
104
+ {
105
+ "value": {
106
+ "item_slug": "home-quad-category-men"
107
+ },
108
+ "kwargs": {
109
+ "value": {},
110
+ "data_type": "nested"
111
+ }
112
+ },
113
+ {
114
+ "value": {
115
+ "item_slug": "multiple-banner-3-men"
116
+ },
117
+ "kwargs": {
118
+ "value": {},
119
+ "data_type": "nested"
120
+ }
121
+ },
122
+ {
123
+ "value": {
124
+ "item_slug": "price-selector-men"
125
+ },
126
+ "kwargs": {
127
+ "value": {},
128
+ "data_type": "nested"
129
+ }
130
+ },
131
+ {
132
+ "value": {
133
+ "item_slug": "best-sellers-recommendation-men"
134
+ },
135
+ "kwargs": {
136
+ "value": {},
137
+ "data_type": "nested"
138
+ }
139
+ },
140
+ {
141
+ "value": {
142
+ "item_slug": "home-two-banner-men"
143
+ },
144
+ "kwargs": {
145
+ "value": {},
146
+ "data_type": "nested"
147
+ }
148
+ },
149
+ {
150
+ "value": {
151
+ "item_slug": "multiple-banner-4-men"
152
+ },
153
+ "kwargs": {
154
+ "value": {},
155
+ "data_type": "nested"
156
+ }
157
+ },
158
+ {
159
+ "value": {
160
+ "item_slug": "home-size-selector-men"
161
+ },
162
+ "kwargs": {
163
+ "value": {},
164
+ "data_type": "nested"
165
+ }
166
+ },
167
+ {
168
+ "value": {
169
+ "item_slug": "multiple-banner-5-men"
170
+ },
171
+ "kwargs": {
172
+ "value": {},
173
+ "data_type": "nested"
174
+ }
175
+ },
176
+ {
177
+ "value": {
178
+ "item_slug": "home-quad-category-3-men"
179
+ },
180
+ "kwargs": {
181
+ "value": {},
182
+ "data_type": "nested"
183
+ }
184
+ },
185
+ {
186
+ "value": {
187
+ "item_slug": "home-quad-category-2-men"
188
+ },
189
+ "kwargs": {
190
+ "value": {},
191
+ "data_type": "nested"
192
+ }
193
+ },
194
+ {
195
+ "value": {
196
+ "item_slug": "home-quad-category-4-men"
197
+ },
198
+ "kwargs": {
199
+ "value": {},
200
+ "data_type": "nested"
201
+ }
202
+ },
203
+ {
204
+ "value": {
205
+ "item_slug": "category-seo-recommendation-men"
206
+ },
207
+ "kwargs": {
208
+ "value": {},
209
+ "data_type": "nested"
210
+ }
211
+ }
212
+ ]
213
+ },
214
+ "name": "Men Widget Order",
215
+ "template": "none",
216
+ "slug": "men-widget-order"
217
+ }
218
+ ```
@@ -0,0 +1,25 @@
1
+ # Delete Account
2
+
3
+ To deactivate a user's account, a request is sent to the `useAnonymizeMutation` service. This service provides the user with the option to delete their account.
4
+
5
+ The **useAnonymizeMutation** function is imported from `@akinon/next/data/client/account` as below:
6
+
7
+ ```js
8
+ import { useAnonymizeMutation } from '@akinon/next/data/client/account';
9
+ ```
10
+
11
+ To use the function, create a variable, call the **useAnonymizeMutation** function, and execute the request. The example below demonstrates when the **Delete My Account** button is clicked, the **deleteUser** function is invoked.
12
+
13
+ ```js
14
+ const [ deleteUser, { isLoading: isDeleting, error: responseError, isError, isSuccess } ] = useAnonymizeMutation();
15
+
16
+ return (
17
+ <Button onClick={() => deleteUser()}>
18
+ {isDeleting ? (
19
+ <LoaderSpinner />
20
+ ) : (
21
+ Delete My Account
22
+ )}
23
+ </Button>
24
+ )
25
+ ```
@@ -0,0 +1,46 @@
1
+
2
+ ## Deployment
3
+
4
+ ### Required Environment Variables
5
+
6
+ Before initiating your application's deployment to ACC, it is important to set up the necessary environment variables. Please ensure you have added the following variables to your application before your first deployment:
7
+
8
+ - **NEXT_PUBLIC_URL**: The website's URL, accessible from the ACC dashboard.
9
+ - **NEXTAUTH_URL**: The website's URL, identical to NEXT_PUBLIC_URL.
10
+ - **NEXTAUTH_SECRET**: A secret string for session encryption, generated from any online tool.
11
+ - **CACHE_SECRET**: A secret string for encrypting Redis cache requests. Generate this using any online tool; without it, Redis cache may not function properly.
12
+
13
+ ### Add Remote Repository
14
+
15
+ For deploying your application to ACC, the addition of a remote repository is required. Obtain the URL of the remote repository from the ACC dashboard.
16
+
17
+ Run the following command to add the remote repository:
18
+
19
+ ```bash
20
+ git remote add acc <acc-repository-url>
21
+ ```
22
+
23
+ ### Create and Push a Tag
24
+
25
+ For deploying your application to ACC, create a tag within your repository. Ensure all changes are committed before proceeding.
26
+
27
+ Run the following command to create a tag:
28
+
29
+ ```bash
30
+ git tag <tag-name>
31
+ ```
32
+
33
+ Then, push the tag to the remote repository:
34
+
35
+ ```bash
36
+ git push acc <tag-name>
37
+ ```
38
+
39
+ ### Build Your Application
40
+
41
+ Navigate to My Applications > {Your Application} > Builds. Click the **Build** button. Enter the tag name created in the previous step and click **Build** button.
42
+
43
+
44
+ ### Deploy Your Application
45
+
46
+ Upon successful completion of the build, initiate the deployment by providing the same tag name and clicking the **Deploy** button.
@@ -0,0 +1,33 @@
1
+ ## Dynamic Route
2
+
3
+ **Some Pages Where Dynamic Route is Used**
4
+
5
+ - `/users/email-set-primary/${TOKEN-ID}`
6
+ - `/users/registration/account-confirm-email/${TOKEN-ID}`
7
+
8
+ The page **/users/email-set-primary/${TOKEN-ID}** is the page to which a user is directed when they change their email, using the token sent to the new email address. Upon signing in this page, the token value is obtained via params, and the `useChangeEmailVerificationQuery(id.join('/'))` function makes the API call. The user's new email address is updated through the API call.
9
+
10
+ The page **/users/registration/account-confirm-email/${TOKEN-ID}** is the page to which a user is directed when they become a new member, using the token sent to their email address. Upon signing in this page, the token value is obtained via params, and the `useConfirmEmailVerificationQuery(id.join('/'))` function makes the API call. The verification of the user's email address is completed through the API call.
11
+
12
+ **How to Use?**
13
+
14
+ 1. Create a folder in the main path of your page structure:
15
+
16
+ `users > registration > acount-confirm-email > [[...id]] > page.tsx`
17
+
18
+ 2. Then, define an enum in `src > routes > index.ts`:
19
+
20
+ ```typescript
21
+ enum AUTH_ROUTES {
22
+ EMAIL_SET_PRIMARY = '/users/email-set-primary/.+',
23
+ CONFIRM_EMAIL = '/users/registration/account-confirm-email/.+'
24
+ }
25
+ ```
26
+
27
+ 3. To export the defined **AUTH_ROUTES**, assign the enum to the `ROUTES` variable at the bottom of the page:
28
+
29
+ ```typescript
30
+ export const ROUTES = {
31
+ ...AUTH_ROUTES
32
+ };
33
+ ```
@@ -0,0 +1,52 @@
1
+ ---
2
+ title: Generate Icons
3
+ sidebar_label: Icons
4
+ slug: icons
5
+ custom_edit_url: null
6
+ ---
7
+
8
+ SVG icons to be used in the project are stored under the `src/assets/icons` folder.
9
+
10
+ ```sh
11
+ There are two different methods that can be used for icon usage.
12
+
13
+ 1. Icons can be used by generating an SVG Sprite.
14
+
15
+ 2. Icon fonts can be generated and used by using the VS Code extension developed by the Project Zero Team.
16
+ ```
17
+
18
+ ### Steps for Generating an Icon Font
19
+
20
+ 1. Obtain and install the VS Code extension.
21
+
22
+ 2. Add the SVG icons you want to convert to an icon font under the `src/assets/icons` folder.
23
+
24
+ 3. Inside VS Code, open the command palette screen by using the shortcut `CMD + SHIFT + P` (or `CTRL + SHIFT + P`).
25
+
26
+ 4. In the command palette screen, run the `Generate Icons` command.
27
+
28
+ 5. After running the command, you will find the relevant files starting with `pz-icon` generated under the `src/assets/fonts` folder.
29
+
30
+ 6. Icon can now be used along with its name within the `<Icon>` component to generate the icon font.
31
+
32
+ ## Usage of the Icon Component
33
+
34
+ Import the Icon component into the file where you want to use it.
35
+
36
+ ```sh
37
+ import { Icon } from '../components';
38
+ ```
39
+
40
+ Call the imported component within your page.
41
+
42
+ ```sh
43
+ <Icon name="akinon" size={34} className="text-red" />
44
+ ```
45
+
46
+ Props that the Icon component accepts:
47
+
48
+ - **`name` (string):** The name of the icon you want to use. This prop is mandatory.
49
+
50
+ - **`size` (number):** Used to specify the size of the icon. The default value is 18px.
51
+
52
+ - **`className` (string):** Used for additional styling for the icon (e.g., color).
@@ -0,0 +1,204 @@
1
+ ---
2
+ title: Localization
3
+ sidebar_label: Localization
4
+ slug: localization
5
+ custom_edit_url: null
6
+ ---
7
+
8
+ Project Zero Next supports multiple languages and currencies, and all the necessary settings for language and currency management can be found within the settings.js file.
9
+
10
+ ## Locales
11
+
12
+ ### Adding a New Locale
13
+
14
+ To add a new locale to the project, follow these steps:
15
+
16
+ 1. Open the settings.js file.
17
+ 2. Locate the **localization** section.
18
+ 3. Inside the **locales** array, add a new object with the following properties:
19
+
20
+ | Property | Description |
21
+ | --- | --- |
22
+ | label | A label that can be displayed on any page of the website. |
23
+ | value | The lowercase locale value in ISO 639-1 format or including the country code in ISO 3166-1 alpha-2 format. |
24
+ | localePath | Name of the locale's JSON translation file. For example, if the value is "en," the file should be placed in the public/locales/en directory. |
25
+ | apiValue | The value of the locale defined in Commerce. |
26
+ | rtl | A boolean value that specifies whether it is right-to-left, like Arabic. |
27
+
28
+ Here's an example of adding a new locale:
29
+
30
+ ```javascript
31
+ localization: {
32
+ locales: [
33
+ {
34
+ label: 'EN',
35
+ value: 'en',
36
+ localePath: 'en',
37
+ apiValue: 'en-us',
38
+ rtl: false,
39
+ },
40
+ ],
41
+ }
42
+ ```
43
+
44
+ ### Default Locale
45
+
46
+ The default locale for the project can be specified by using the **defaultLocaleValue** in the settings.js file. This value should match the "value" of one of the defined locales.
47
+
48
+ ### Setting a Locale
49
+
50
+ To set a locale in the project, the **setLocale** method available in the useLocalization hook can be used. This method will automatically change the URL to reflect the selected locale.
51
+
52
+ Example of using **setLocale**:
53
+
54
+ ```javascript
55
+ const { setLocale } = useLocalization();
56
+
57
+ setLocale('en-us');
58
+ ```
59
+
60
+ ### Disabling Redirection to Default Locale
61
+
62
+ In some cases, like displaying a landing page on example.com/ while using the ShowAllLocales strategy, users are automatically redirected to URLs containing the default locale (e.g., example.com/en). To disable this redirection, set **redirectToDefaultLocale** to false in the settings.js file:
63
+
64
+ ```javascript
65
+ localization: {
66
+ redirectToDefaultLocale: false,
67
+ }
68
+ ```
69
+
70
+ ## Currencies
71
+
72
+ ### Adding a New Currency
73
+
74
+ To add a new currency to the project, follow these steps:
75
+
76
+ 1. Open the settings.js file.
77
+ 2. Locate the **currencies** section.
78
+ 3. Inside the **currencies** array, add a new object with the following properties:
79
+ - **label**: The label for the currency (e.g., 'USD').
80
+ - **code**: The code for the currency (e.g., 'usd').
81
+
82
+ Here's an example of adding a new currency:
83
+
84
+ ```javascript
85
+ currencies: [
86
+ {
87
+ label: 'USD',
88
+ code: 'usd',
89
+ },
90
+ ]
91
+ ```
92
+
93
+ ### Default Currency
94
+
95
+ The default currency in the project can be specified by using the **defaultCurrencyCode** in the settings.js file. This code must match the "code" of one of the defined currencies.
96
+
97
+ ### Determining Active Currency
98
+
99
+ The **getActiveCurrencyCode** function's default behavior is to retrieve the active currency code from a cookie named `pz-currency`. Users can customize this function to obtain the currency code from different sources, such as headers or the URL. If the return value doesn't match any currency code in the `currencies` array, the default currency code will be used.
100
+
101
+ Here's an example:
102
+
103
+ ```javascript
104
+ getActiveCurrencyCode: ({ req, locale, defaultCurrencyCode }) => {
105
+ const [, countryCode] = locale.split('-');
106
+
107
+ if (countryCode === 'ae') {
108
+ return 'aed';
109
+ } else if (countryCode === 'qa') {
110
+ return 'qar';
111
+ }
112
+
113
+ return defaultCurrencyCode;
114
+ }
115
+ ```
116
+
117
+ ### Setting a Currency
118
+
119
+ To set a currency in the project, the **setCurrency** method available in the useLocalization hook can be used.
120
+
121
+ Important: If the currency is linked to the locale by using `getActiveCurrencyCode` function in the settings, you need to use `setLocale` instead of this.
122
+
123
+ Example of using **setCurrency**:
124
+
125
+ ```javascript
126
+ const { setCurrency } = useLocalization();
127
+
128
+ setCurrency('usd');
129
+ ```
130
+
131
+ Important: Basket will be cleared when the currency is changed. Both of `setCurrency` and `setLocale` methods will clear the basket automatically.
132
+
133
+ ## URL Strategy
134
+
135
+ Project Zero Next supports multiple URL structures to cater to different requirements. Users can set the URL strategy using the **localeUrlStrategy** value in settings.js.
136
+
137
+ Example of setting the URL strategy:
138
+
139
+ ```javascript
140
+ localization: {
141
+ localeUrlStrategy: LocaleUrlStrategy.ShowAllLocales,
142
+ }
143
+ ```
144
+
145
+ The available values for **localeUrlStrategy** are:
146
+
147
+ - LocaleUrlStrategy.HideDefaultLocale
148
+ - LocaleUrlStrategy.HideAllLocales
149
+ - LocaleUrlStrategy.ShowAllLocales
150
+
151
+ LocaleUrlStrategy.HideDefaultLocale:
152
+
153
+ - For English (en): "/women"
154
+ - For Turkish (tr): "/tr/women"
155
+
156
+ LocaleUrlStrategy.ShowAllLocales:
157
+
158
+ - For English (en): "/en/women"
159
+ - For Turkish (tr): "/tr/women"
160
+
161
+ LocaleUrlStrategy.HideAllLocales:
162
+
163
+ - For English (en): "/women"
164
+ - For Turkish (tr): "/women"
165
+
166
+ > **Note:** The "HideAllLocales" option is not recommended for SEO purposes.
167
+
168
+ ## Translations
169
+
170
+ Translations can be managed by adding key-value pairs to JSON files located under the public/locales directory. For example, if the English (en) locale is used, translation files can be stored in public/locales/en/account.json.
171
+
172
+ ## Localization in Components
173
+
174
+ ### Client Components
175
+
176
+ The **useLocalization** hook provides all the necessary properties for localization in client components. To make use of translations in the client components, use the "**t**" function as shown in the example below:
177
+
178
+ ```javascript
179
+ import { useLocalization } from '@akinon/next/hooks';
180
+
181
+ const {
182
+ t,
183
+ currencies,
184
+ currency,
185
+ defaultCurrencyCode,
186
+ locales,
187
+ locale,
188
+ defaultLocaleValue,
189
+ localeUrlStrategy,
190
+ setLocale,
191
+ } = useLocalization();
192
+
193
+ const translatedText = t('account.change_email.header.title');
194
+ ```
195
+
196
+ ### Server Components
197
+
198
+ For server components, the "**t**" function can be imported from the following path to access translations:
199
+
200
+ ```javascript
201
+ import { t } from '@akinon/next/utils/server-translation';
202
+
203
+ const translatedText = t('account.change_email.header.title');
204
+ ```
@@ -0,0 +1,48 @@
1
+ # Log Documentation
2
+
3
+ ## Import logger interface
4
+
5
+ ```typescript
6
+ import logger from '@akinon/next/utils/log';
7
+ ```
8
+
9
+ ## Available Log Levels
10
+
11
+ - trace
12
+ - debug
13
+ - info
14
+ - warn
15
+ - error
16
+ - fatal
17
+
18
+ ## Set Environment Variables for Debug Levels in Console
19
+
20
+ #### For development mode `yarn dev`
21
+ ``LOG_LEVEL_DEV=trace``
22
+
23
+ #### For production mode `yarn start`
24
+ ``LOG_LEVEL=error``
25
+
26
+ ## Function Signature
27
+
28
+ ```typescript
29
+ debug(message: string, payload: any): void;
30
+ ```
31
+
32
+ ## Example usage
33
+
34
+ ```typescript
35
+ import logger from '@akinon/next/utils/log';
36
+
37
+ const payload = {
38
+ id: 1,
39
+ username: 'akinon'
40
+ };
41
+
42
+ logger.debug('Logged user', payload);
43
+ ```
44
+ ---
45
+
46
+ **Important note: Setting levels lower than the "info" level (for example, debug and trace) in the production environment may cause significant performance problems. Please do not use levels such as debug and trace for a long time.**
47
+
48
+ **Using a logger in client-side codes (for example, in client components) writes the log to the browser's console. Please make sure you are not logging sensitive content on the client-side.**
@@ -0,0 +1,76 @@
1
+ ---
2
+ title: Plugins
3
+ sidebar_label: Plugins
4
+ slug: plugins
5
+ custom_edit_url: null
6
+ ---
7
+
8
+ To access and manage plugins for your Project Zero CLI, run the following command:
9
+
10
+ ```css
11
+ npx projectzero --plugins
12
+ ```
13
+
14
+ The plugins selected from this list will be added to the project and ready for use. The plugins can be removed from the project by unchecking it from the same list.
15
+
16
+ ### Plugin List
17
+
18
+ 1. Masterpass
19
+ 2. Basket Gift Pack
20
+ 3. Checkout Gift Pack
21
+ 4. Checkout Providers
22
+ 5. OTP
23
+ 6. Redirection Payment
24
+ 7. Click & Collect
25
+
26
+ ## Installation
27
+
28
+ 1. To install plugins, run the following command in the console:
29
+
30
+ ```css
31
+ npx projectzero --plugins
32
+ ```
33
+
34
+ 2. Select the plugins desire to install from the list provided.
35
+
36
+ ### Masterpass
37
+
38
+ The Masterpass plugin enables users to make payments with their Masterpass-registered cards on the payment page. With this plugin, operations such as listing Masterpass-registered cards, adding new cards, and removing cards can be performed.
39
+
40
+ [Click here for details](https://bitbucket.org/akinonteam/pz-masterpass/src/main/)
41
+
42
+ ### Basket Gift Pack
43
+
44
+ This plugin allows for the addition of gift pack and gift note or just a gift note for products on the basket page.
45
+
46
+ [Click here for details](https://bitbucket.org/akinonteam/pz-basket-gift-pack/src/main/)
47
+
48
+ ### Checkout Gift Pack
49
+
50
+ Used to enable the gift pack option for products on the payment page.
51
+
52
+ [Click here for details](https://bitbucket.org/akinonteam/pz-checkout-gift-pack/src/main/)
53
+
54
+ ### Checkout Providers
55
+
56
+ This plugin is used to add payment methods to the checkout process.
57
+
58
+ [Click here for details](https://bitbucket.org/akinonteam/pz_checkout_providers/src/master/)
59
+
60
+ ### OTP
61
+
62
+ This application provides SMS verification (OTP) support for desired actions such as registration and updating profile information.
63
+
64
+ [Click here for details](https://bitbucket.org/akinonteam/pz_otp/src/master/)
65
+
66
+ ### Redirection Payment
67
+
68
+ Used to enable any payment option with a redirection type on the payment page.
69
+
70
+ [Click here for details](https://bitbucket.org/akinonteam/pz-redirection-payment/src/main/)
71
+
72
+ ### Click & Collect
73
+
74
+ This plugin enables the "Click & Collect" in-store pickup option.
75
+
76
+ [Click here for details](https://bitbucket.org/akinonteam/pz-click-collect/src/main/)