@alphasquad/saleor-template-advance 0.1.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 (441) hide show
  1. package/.env.example +57 -0
  2. package/APPLE_PAY_QUICK_START.md +165 -0
  3. package/APPLE_PAY_SETUP.md +331 -0
  4. package/README.md +46 -0
  5. package/SEO_AUDIT_CHECKLIST_STATUS.md +244 -0
  6. package/SEO_AUDIT_REPORT.md +66 -0
  7. package/eslint.config.mjs +16 -0
  8. package/next-env.d.ts +5 -0
  9. package/next.config.ts +109 -0
  10. package/package.json +47 -0
  11. package/postcss.config.mjs +5 -0
  12. package/public/.well-known/apple-developer-merchantid-domain-association +1 -0
  13. package/public/Logo.png +0 -0
  14. package/public/brand-video.mp4 +0 -0
  15. package/public/favicon.ico +0 -0
  16. package/public/file.svg +1 -0
  17. package/public/footer/facebook.tsx +34 -0
  18. package/public/footer/instagram.tsx +27 -0
  19. package/public/footer/mail.tsx +5 -0
  20. package/public/footer/x.tsx +35 -0
  21. package/public/globe.svg +1 -0
  22. package/public/icons/Authorize.net.webp +0 -0
  23. package/public/icons/amex.gif +0 -0
  24. package/public/icons/appIcon.png +0 -0
  25. package/public/icons/discover.gif +0 -0
  26. package/public/icons/master.gif +0 -0
  27. package/public/icons/paypal.png +0 -0
  28. package/public/icons/stripe.png +0 -0
  29. package/public/icons/visa.gif +0 -0
  30. package/public/images/BackgroundNoise.png +0 -0
  31. package/public/images/footer-background.png +0 -0
  32. package/public/next.svg +1 -0
  33. package/public/no-image-avail-large.png +0 -0
  34. package/public/random-car-1.jpeg +0 -0
  35. package/public/random-car-2.png +0 -0
  36. package/public/random-car-3.jpg +0 -0
  37. package/public/random-car-4.jpg +0 -0
  38. package/public/random-car-5.jpg +0 -0
  39. package/public/star.svg +3 -0
  40. package/public/vercel.svg +1 -0
  41. package/public/window.svg +1 -0
  42. package/scripts/seo-audit/generate-checklist.mjs +156 -0
  43. package/src/app/(auth)/account/forgot-password/layout.tsx +16 -0
  44. package/src/app/(auth)/account/forgot-password/page.tsx +135 -0
  45. package/src/app/(auth)/account/login/layout.tsx +16 -0
  46. package/src/app/(auth)/account/login/page.tsx +288 -0
  47. package/src/app/(auth)/account/otp/layout.tsx +16 -0
  48. package/src/app/(auth)/account/otp/page.tsx +108 -0
  49. package/src/app/(auth)/account/register/layout.tsx +16 -0
  50. package/src/app/(auth)/account/register/page.tsx +431 -0
  51. package/src/app/(auth)/account/reset-password/layout.tsx +16 -0
  52. package/src/app/(auth)/account/reset-password/page.tsx +222 -0
  53. package/src/app/[slug]/page.tsx +43 -0
  54. package/src/app/about/loading.tsx +17 -0
  55. package/src/app/about/page.tsx +61 -0
  56. package/src/app/account/address/layout.tsx +15 -0
  57. package/src/app/account/address/page.tsx +166 -0
  58. package/src/app/account/head.tsx +4 -0
  59. package/src/app/account/layout.tsx +62 -0
  60. package/src/app/account/orders/[id]/layout.tsx +17 -0
  61. package/src/app/account/orders/[id]/page.tsx +115 -0
  62. package/src/app/account/orders/components/orderDetailsModal.tsx +410 -0
  63. package/src/app/account/orders/layout.tsx +15 -0
  64. package/src/app/account/orders/page.tsx +146 -0
  65. package/src/app/account/page.tsx +39 -0
  66. package/src/app/account/settings/components/editProfileSuccessModal.tsx +28 -0
  67. package/src/app/account/settings/layout.tsx +15 -0
  68. package/src/app/account/settings/page.tsx +260 -0
  69. package/src/app/api/affirm/check-status/route.ts +94 -0
  70. package/src/app/api/affirm/create-checkout/route.ts +109 -0
  71. package/src/app/api/affirm/get-config/route.ts +108 -0
  72. package/src/app/api/affirm/process-payment/route.ts +244 -0
  73. package/src/app/api/affirm/test-connection/route.ts +45 -0
  74. package/src/app/api/auth/clear/route.ts +16 -0
  75. package/src/app/api/auth/clear-cookies/route.ts +42 -0
  76. package/src/app/api/auth/set/route.ts +47 -0
  77. package/src/app/api/configuration/route.ts +18 -0
  78. package/src/app/api/dynamic-page/[slug]/route.ts +24 -0
  79. package/src/app/api/form-submission/route.ts +237 -0
  80. package/src/app/api/paypal/capture-order/route.ts +303 -0
  81. package/src/app/api/paypal/create-order/route.ts +211 -0
  82. package/src/app/api/paypal/get-config/route.ts +240 -0
  83. package/src/app/api/search-proxy/route.ts +52 -0
  84. package/src/app/authorize-net-success/layout.tsx +19 -0
  85. package/src/app/authorize-net-success/page.tsx +12 -0
  86. package/src/app/authorize-net-success/summary.tsx +486 -0
  87. package/src/app/blog/[slug]/blogContentRenderer.tsx +369 -0
  88. package/src/app/blog/[slug]/layout.tsx +17 -0
  89. package/src/app/blog/[slug]/page.tsx +151 -0
  90. package/src/app/blog/constant.tsx +147 -0
  91. package/src/app/blog/layout.tsx +31 -0
  92. package/src/app/blog/page.tsx +81 -0
  93. package/src/app/brand/[id]/BrandPageClient.tsx +188 -0
  94. package/src/app/brand/[id]/layout.tsx +17 -0
  95. package/src/app/brand/[id]/page.tsx +176 -0
  96. package/src/app/brands/components/brandsListingClient.tsx +97 -0
  97. package/src/app/brands/layout.tsx +31 -0
  98. package/src/app/brands/page.tsx +40 -0
  99. package/src/app/cancellation-policy/page.tsx +53 -0
  100. package/src/app/cart/layout.tsx +19 -0
  101. package/src/app/cart/page.tsx +752 -0
  102. package/src/app/category/[slug]/CategoryPageClient.tsx +377 -0
  103. package/src/app/category/[slug]/layout.tsx +17 -0
  104. package/src/app/category/[slug]/page.tsx +224 -0
  105. package/src/app/category/page.tsx +114 -0
  106. package/src/app/checkout/components/addNewAddressModal.tsx +474 -0
  107. package/src/app/checkout/layout.tsx +19 -0
  108. package/src/app/checkout/page.tsx +3312 -0
  109. package/src/app/components/account/AccountTabs.tsx +40 -0
  110. package/src/app/components/ads/GoogleAdSense.tsx +74 -0
  111. package/src/app/components/analytics/AnalyticsScripts.tsx +78 -0
  112. package/src/app/components/analytics/ConditionalGTMNoscript.tsx +24 -0
  113. package/src/app/components/analytics/ConditionalGoogleAnalytics.tsx +16 -0
  114. package/src/app/components/ancillary/AncillaryContent.tsx +7 -0
  115. package/src/app/components/auth/TokenExpirationHandler.tsx +8 -0
  116. package/src/app/components/blog/BlogList.tsx +112 -0
  117. package/src/app/components/checkout/AddressInformationSection.tsx +34 -0
  118. package/src/app/components/checkout/AddressManagement.tsx +571 -0
  119. package/src/app/components/checkout/CheckoutHeader.tsx +51 -0
  120. package/src/app/components/checkout/CheckoutQuestions.tsx +454 -0
  121. package/src/app/components/checkout/CheckoutTermsModal.tsx +81 -0
  122. package/src/app/components/checkout/ContactDetailsSection.tsx +52 -0
  123. package/src/app/components/checkout/DealerShippingSection.tsx +359 -0
  124. package/src/app/components/checkout/DeliveryMethodSection.tsx +249 -0
  125. package/src/app/components/checkout/OrderSummary.tsx +386 -0
  126. package/src/app/components/checkout/TermsContentRenderer.tsx +147 -0
  127. package/src/app/components/checkout/WillCallSection.tsx +133 -0
  128. package/src/app/components/checkout/affirmPayment.tsx +383 -0
  129. package/src/app/components/checkout/checkoutProcessingModal.tsx +96 -0
  130. package/src/app/components/checkout/googlePayButton.tsx +334 -0
  131. package/src/app/components/checkout/paymentStep.tsx +180 -0
  132. package/src/app/components/checkout/paypalPayment.tsx +1083 -0
  133. package/src/app/components/checkout/saleorNativePayment.tsx +1758 -0
  134. package/src/app/components/dynamicPage/DynamicPageRenderer.tsx +13 -0
  135. package/src/app/components/dynamicPage/HtmlWidgetRenderer.tsx +144 -0
  136. package/src/app/components/filtersCollapsible/index.tsx +365 -0
  137. package/src/app/components/globalSearch/index.tsx +423 -0
  138. package/src/app/components/layout/cartDropDown.tsx +628 -0
  139. package/src/app/components/layout/components/FooterNewsletter.tsx +21 -0
  140. package/src/app/components/layout/footer.tsx +283 -0
  141. package/src/app/components/layout/header/accountMenuDropdown.tsx +53 -0
  142. package/src/app/components/layout/header/components/CartBadge.tsx +18 -0
  143. package/src/app/components/layout/header/components/LoadingState.tsx +17 -0
  144. package/src/app/components/layout/header/components/MenuItemDropdown.tsx +124 -0
  145. package/src/app/components/layout/header/components/MobileNavbar.tsx +123 -0
  146. package/src/app/components/layout/header/components/NavbarActions.tsx +125 -0
  147. package/src/app/components/layout/header/components/NavbarBrand.tsx +29 -0
  148. package/src/app/components/layout/header/components/NavigationLinks.tsx +131 -0
  149. package/src/app/components/layout/header/hamMenuSlide.tsx +318 -0
  150. package/src/app/components/layout/header/header.tsx +44 -0
  151. package/src/app/components/layout/header/hooks/useDropdown.ts +45 -0
  152. package/src/app/components/layout/header/hooks/useNavbarData.ts +138 -0
  153. package/src/app/components/layout/header/hooks/useNavbarState.ts +66 -0
  154. package/src/app/components/layout/header/megaMenuDropdown.tsx +116 -0
  155. package/src/app/components/layout/header/navBar.tsx +121 -0
  156. package/src/app/components/layout/header/search.tsx +418 -0
  157. package/src/app/components/layout/header/styles/navbarStyles.ts +27 -0
  158. package/src/app/components/layout/header/topBar.tsx +214 -0
  159. package/src/app/components/layout/joinNewsletterForm/index.tsx +72 -0
  160. package/src/app/components/layout/mobileAccordian/index.tsx +92 -0
  161. package/src/app/components/layout/paymentMethods.tsx +75 -0
  162. package/src/app/components/layout/rootLayout.tsx +23 -0
  163. package/src/app/components/layout/siteInfo.tsx +103 -0
  164. package/src/app/components/layout/socialLinks.tsx +65 -0
  165. package/src/app/components/newsletterSection/emailListSection.tsx +224 -0
  166. package/src/app/components/newsletterSection/emailSectionServer.tsx +8 -0
  167. package/src/app/components/providers/ApolloWrapper.tsx +12 -0
  168. package/src/app/components/providers/AppConfigurationProvider.tsx +108 -0
  169. package/src/app/components/providers/GoogleAnalyticsProvider.tsx +149 -0
  170. package/src/app/components/providers/GoogleTagManagerProvider.tsx +31 -0
  171. package/src/app/components/providers/RecaptchaProvider.tsx +18 -0
  172. package/src/app/components/providers/ServerAppConfigurationProvider.tsx +133 -0
  173. package/src/app/components/providers/YMMStatusProvider.tsx +15 -0
  174. package/src/app/components/reuseableUI/AboutUs.tsx +115 -0
  175. package/src/app/components/reuseableUI/AddToCartClient.tsx +125 -0
  176. package/src/app/components/reuseableUI/EditorJsRenderer.tsx +219 -0
  177. package/src/app/components/reuseableUI/HeroSectionsearchByVehicle.tsx +188 -0
  178. package/src/app/components/reuseableUI/ImageWithFallback.tsx +41 -0
  179. package/src/app/components/reuseableUI/Toast.tsx +101 -0
  180. package/src/app/components/reuseableUI/blogCard.tsx +52 -0
  181. package/src/app/components/reuseableUI/brandCard.tsx +68 -0
  182. package/src/app/components/reuseableUI/breadcrumb.tsx +38 -0
  183. package/src/app/components/reuseableUI/categoryCard.tsx +37 -0
  184. package/src/app/components/reuseableUI/categorySkeleton.tsx +31 -0
  185. package/src/app/components/reuseableUI/commonButton.tsx +48 -0
  186. package/src/app/components/reuseableUI/defaultInputField/index.tsx +84 -0
  187. package/src/app/components/reuseableUI/emptyState.tsx +29 -0
  188. package/src/app/components/reuseableUI/errorTag.tsx +15 -0
  189. package/src/app/components/reuseableUI/heading/index.tsx +20 -0
  190. package/src/app/components/reuseableUI/input.tsx +117 -0
  191. package/src/app/components/reuseableUI/listCard.tsx +137 -0
  192. package/src/app/components/reuseableUI/loadingUI.tsx +12 -0
  193. package/src/app/components/reuseableUI/modalLayout.tsx +76 -0
  194. package/src/app/components/reuseableUI/newsletter/newsletterClient.tsx +622 -0
  195. package/src/app/components/reuseableUI/newsletter/newslettersHomeModal.tsx +68 -0
  196. package/src/app/components/reuseableUI/offerCard.tsx +42 -0
  197. package/src/app/components/reuseableUI/passwordRules/passwordRules.tsx +56 -0
  198. package/src/app/components/reuseableUI/primaryButton/index.tsx +34 -0
  199. package/src/app/components/reuseableUI/productCard.tsx +118 -0
  200. package/src/app/components/reuseableUI/productSkeleton.tsx +34 -0
  201. package/src/app/components/reuseableUI/searchByVehicle.tsx +187 -0
  202. package/src/app/components/reuseableUI/secondaryButton/index.tsx +34 -0
  203. package/src/app/components/reuseableUI/section.tsx +20 -0
  204. package/src/app/components/reuseableUI/select/index.tsx +98 -0
  205. package/src/app/components/reuseableUI/skeletonLoader.tsx +117 -0
  206. package/src/app/components/reuseableUI/statusTag.tsx +24 -0
  207. package/src/app/components/reuseableUI/tags/saleTag.tsx +19 -0
  208. package/src/app/components/reuseableUI/testimonialCard.tsx +93 -0
  209. package/src/app/components/richText/EditorRenderer.tsx +318 -0
  210. package/src/app/components/search/HierarchicalCategoryFilter.tsx +155 -0
  211. package/src/app/components/search/SearchFilters.tsx +155 -0
  212. package/src/app/components/search/YMMSearchSidebar.tsx +187 -0
  213. package/src/app/components/seo/ServerProductCard.tsx +91 -0
  214. package/src/app/components/seo/ServerProductGrid.tsx +45 -0
  215. package/src/app/components/shop/CategoryFilter.tsx +184 -0
  216. package/src/app/components/shop/ItemsPerPageSelect.tsx +69 -0
  217. package/src/app/components/shop/ItemsPerPageSelectClient.tsx +58 -0
  218. package/src/app/components/shop/MobileFilters.tsx +103 -0
  219. package/src/app/components/shop/ProductGridSkeleton.tsx +16 -0
  220. package/src/app/components/shop/ProductsGrid.tsx +230 -0
  221. package/src/app/components/shop/SearchFilter.tsx +218 -0
  222. package/src/app/components/shop/SearchFilterClient.tsx +122 -0
  223. package/src/app/components/shop/SearchLoadingOverlay.tsx +32 -0
  224. package/src/app/components/shop/ShopMobileFilters.tsx +205 -0
  225. package/src/app/components/showroom/VehicleSearchDropdowns.tsx +187 -0
  226. package/src/app/components/showroom/brandsSwiper.tsx +49 -0
  227. package/src/app/components/showroom/brandsSwiperClient copy.tsx +93 -0
  228. package/src/app/components/showroom/brandsSwiperClient.tsx +122 -0
  229. package/src/app/components/showroom/brandsSwiperServer.tsx +42 -0
  230. package/src/app/components/showroom/bundleProducts.tsx +120 -0
  231. package/src/app/components/showroom/categoryGrid.tsx +51 -0
  232. package/src/app/components/showroom/categoryGridServer.tsx +45 -0
  233. package/src/app/components/showroom/categorySwiper.tsx +115 -0
  234. package/src/app/components/showroom/featureStrip.tsx +139 -0
  235. package/src/app/components/showroom/offersSwiper.tsx +181 -0
  236. package/src/app/components/showroom/productGrid.tsx +56 -0
  237. package/src/app/components/showroom/productSwiper.tsx +119 -0
  238. package/src/app/components/showroom/promotion-slider.tsx +138 -0
  239. package/src/app/components/showroom/promotion.tsx +207 -0
  240. package/src/app/components/showroom/promotionsSwiper.tsx +174 -0
  241. package/src/app/components/showroom/showroomHeroCarousel.tsx +141 -0
  242. package/src/app/components/showroom/testimonialsGrid.tsx +106 -0
  243. package/src/app/components/skeletons/ContentSkeleton.tsx +14 -0
  244. package/src/app/components/sortDropdown/index.tsx +116 -0
  245. package/src/app/components/tertiaryButton/index.tsx +25 -0
  246. package/src/app/components/theme/theme-provider.tsx +82 -0
  247. package/src/app/contact/layout.tsx +32 -0
  248. package/src/app/contact/page.tsx +591 -0
  249. package/src/app/content/[slug]/layout.tsx +17 -0
  250. package/src/app/content/[slug]/page.tsx +159 -0
  251. package/src/app/content/layout.tsx +31 -0
  252. package/src/app/content/page.tsx +88 -0
  253. package/src/app/core-policies/page.tsx +55 -0
  254. package/src/app/discounts/page.tsx +54 -0
  255. package/src/app/frequently-asked-questions/page.tsx +57 -0
  256. package/src/app/globals.css +440 -0
  257. package/src/app/hooks/useDealerLocations.ts +259 -0
  258. package/src/app/hooks/useGTMEngagement.ts +71 -0
  259. package/src/app/hooks/useGoogleAnalytics.ts +145 -0
  260. package/src/app/layout.tsx +149 -0
  261. package/src/app/not-found.tsx +31 -0
  262. package/src/app/order-confirmation/layout.tsx +19 -0
  263. package/src/app/order-confirmation/page.tsx +12 -0
  264. package/src/app/order-confirmation/summary.tsx +1775 -0
  265. package/src/app/page.tsx +194 -0
  266. package/src/app/privacy-policy/loading.tsx +17 -0
  267. package/src/app/privacy-policy/page.tsx +56 -0
  268. package/src/app/product/[id]/ProductDetailClient.tsx +2448 -0
  269. package/src/app/product/[id]/components/itemInquiryModal.tsx +461 -0
  270. package/src/app/product/[id]/layout.tsx +116 -0
  271. package/src/app/product/[id]/page.tsx +200 -0
  272. package/src/app/product/layout.tsx +15 -0
  273. package/src/app/products/all/AllProductsClient.tsx +743 -0
  274. package/src/app/products/all/page.tsx +176 -0
  275. package/src/app/products/components/shopEmptyState.tsx +29 -0
  276. package/src/app/request-return/layout.tsx +36 -0
  277. package/src/app/request-return/page.tsx +597 -0
  278. package/src/app/robots.txt/route.ts +27 -0
  279. package/src/app/search/layout.tsx +16 -0
  280. package/src/app/search/page.tsx +736 -0
  281. package/src/app/shipping-returns/page.tsx +60 -0
  282. package/src/app/site-map/layout.tsx +33 -0
  283. package/src/app/site-map/page.tsx +113 -0
  284. package/src/app/sitemap-index.xml/route.ts +20 -0
  285. package/src/app/sitemap.ts +10 -0
  286. package/src/app/terms-and-conditions/loading.tsx +17 -0
  287. package/src/app/terms-and-conditions/page.tsx +56 -0
  288. package/src/app/utils/appConfiguration.ts +327 -0
  289. package/src/app/utils/branding.ts +52 -0
  290. package/src/app/utils/configurationService.ts +202 -0
  291. package/src/app/utils/constant.tsx +242 -0
  292. package/src/app/utils/editorJsUtils.tsx +249 -0
  293. package/src/app/utils/functions.ts +146 -0
  294. package/src/app/utils/googleAnalytics.ts +168 -0
  295. package/src/app/utils/googleTagManager.ts +475 -0
  296. package/src/app/utils/ipDetection.ts +270 -0
  297. package/src/app/utils/serverConfigurationService.ts +209 -0
  298. package/src/app/utils/svgs/GridIcon.tsx +45 -0
  299. package/src/app/utils/svgs/account/myAccount/listDotIcon.tsx +3 -0
  300. package/src/app/utils/svgs/account/myAccount/tickIcon.tsx +10 -0
  301. package/src/app/utils/svgs/account/orderHistory/InfoIcon.tsx +49 -0
  302. package/src/app/utils/svgs/arrowDownIcon.tsx +17 -0
  303. package/src/app/utils/svgs/arrowIcon.tsx +25 -0
  304. package/src/app/utils/svgs/arrowUpIcon.tsx +16 -0
  305. package/src/app/utils/svgs/brandsSearchIcon.tsx +25 -0
  306. package/src/app/utils/svgs/cart/cartIcon.tsx +31 -0
  307. package/src/app/utils/svgs/cart/plusIcon.tsx +13 -0
  308. package/src/app/utils/svgs/cart/subtractIcon.tsx +13 -0
  309. package/src/app/utils/svgs/cart/successTickIcon.tsx +14 -0
  310. package/src/app/utils/svgs/chevronDownIcon.tsx +21 -0
  311. package/src/app/utils/svgs/closeEyeIcon.tsx +47 -0
  312. package/src/app/utils/svgs/crossIcon.tsx +25 -0
  313. package/src/app/utils/svgs/eyeIcon.tsx +29 -0
  314. package/src/app/utils/svgs/featureTag.tsx +20 -0
  315. package/src/app/utils/svgs/filterIcon.tsx +3 -0
  316. package/src/app/utils/svgs/globleIcon.tsx +41 -0
  317. package/src/app/utils/svgs/infoIcon.tsx +34 -0
  318. package/src/app/utils/svgs/listIcon.tsx +50 -0
  319. package/src/app/utils/svgs/logOutIcon.tsx +35 -0
  320. package/src/app/utils/svgs/menuIcon.tsx +8 -0
  321. package/src/app/utils/svgs/minusIcon.tsx +18 -0
  322. package/src/app/utils/svgs/newsletterIcon.tsx +19 -0
  323. package/src/app/utils/svgs/noDataFoundIcon-.tsx +26 -0
  324. package/src/app/utils/svgs/noProductFoundIcon.tsx +43 -0
  325. package/src/app/utils/svgs/passwordIcons/errorIcon.tsx +31 -0
  326. package/src/app/utils/svgs/passwordIcons/successIcon.tsx +24 -0
  327. package/src/app/utils/svgs/paymentProcessingIcons/hourglassIcon.tsx +43 -0
  328. package/src/app/utils/svgs/paymentProcessingIcons/modalCrossIcon.tsx +23 -0
  329. package/src/app/utils/svgs/paymentProcessingIcons/paymentFailedIcon.tsx +47 -0
  330. package/src/app/utils/svgs/pencilIcon.tsx +11 -0
  331. package/src/app/utils/svgs/plusIcon.tsx +25 -0
  332. package/src/app/utils/svgs/productInquiryIcon.tsx +40 -0
  333. package/src/app/utils/svgs/searchIcon.tsx +31 -0
  334. package/src/app/utils/svgs/shoppingCart.tsx +32 -0
  335. package/src/app/utils/svgs/spinnerIcon.tsx +22 -0
  336. package/src/app/utils/svgs/spinnerLoadingIcon.tsx +26 -0
  337. package/src/app/utils/svgs/successTickIcon.tsx +40 -0
  338. package/src/app/utils/svgs/swiperArrowIconLeft.tsx +18 -0
  339. package/src/app/utils/svgs/swiperArrowIconRight.tsx +18 -0
  340. package/src/app/utils/svgs/userProfileIcon.tsx +31 -0
  341. package/src/app/utils/svgs/warningCircleIcon.tsx +15 -0
  342. package/src/app/warranty/constant.tsx +63 -0
  343. package/src/app/warranty/loading.tsx +17 -0
  344. package/src/app/warranty/page.tsx +56 -0
  345. package/src/graphql/client.ts +288 -0
  346. package/src/graphql/mutations/accountAddressCreate.ts +56 -0
  347. package/src/graphql/mutations/accountAddressDelete.ts +23 -0
  348. package/src/graphql/mutations/accountAddressUpdate.ts +55 -0
  349. package/src/graphql/mutations/accountSetDefaultAddress.ts +32 -0
  350. package/src/graphql/mutations/accountUpdate.ts +34 -0
  351. package/src/graphql/mutations/changePassword.ts +25 -0
  352. package/src/graphql/mutations/checkout.ts +117 -0
  353. package/src/graphql/mutations/checkoutAddVoucher.ts +63 -0
  354. package/src/graphql/mutations/checkoutComplete.ts +79 -0
  355. package/src/graphql/mutations/checkoutCreate.ts +131 -0
  356. package/src/graphql/mutations/checkoutCustomerAttach.ts +50 -0
  357. package/src/graphql/mutations/checkoutEmailUpdate.ts +15 -0
  358. package/src/graphql/mutations/checkoutLineMetadataUpdate.ts +52 -0
  359. package/src/graphql/mutations/checkoutPaymentCreate.ts +82 -0
  360. package/src/graphql/mutations/paymentGatewayInitialize.ts +58 -0
  361. package/src/graphql/mutations/registerAccount.ts +65 -0
  362. package/src/graphql/mutations/requestPasswordReset.ts +32 -0
  363. package/src/graphql/mutations/setPassword.ts +49 -0
  364. package/src/graphql/mutations/signIn.ts +50 -0
  365. package/src/graphql/mutations/tokenRefresh.ts +19 -0
  366. package/src/graphql/mutations/updateCheckoutMetadata.ts +49 -0
  367. package/src/graphql/mutations/updateProfile.ts +18 -0
  368. package/src/graphql/mutations/willCallDeliveryMethod.ts +81 -0
  369. package/src/graphql/queries/checkout.ts +168 -0
  370. package/src/graphql/queries/findProductByOldSlug.ts +58 -0
  371. package/src/graphql/queries/getAboutPage.ts +24 -0
  372. package/src/graphql/queries/getAboutPageId.ts +9 -0
  373. package/src/graphql/queries/getAboutUs.ts +38 -0
  374. package/src/graphql/queries/getAddressInformation.ts +38 -0
  375. package/src/graphql/queries/getAllCategories.ts +41 -0
  376. package/src/graphql/queries/getAllCategoriesTree.ts +67 -0
  377. package/src/graphql/queries/getAllCategoriesWithProducts.ts +29 -0
  378. package/src/graphql/queries/getAllCollectionsWithProducts.ts +16 -0
  379. package/src/graphql/queries/getBlogs.ts +222 -0
  380. package/src/graphql/queries/getBrands.ts +17 -0
  381. package/src/graphql/queries/getBundles.ts +43 -0
  382. package/src/graphql/queries/getCategories.ts +20 -0
  383. package/src/graphql/queries/getChannels.ts +77 -0
  384. package/src/graphql/queries/getCheckoutQuestions.ts +115 -0
  385. package/src/graphql/queries/getCheckoutTermsAndConditions.ts +37 -0
  386. package/src/graphql/queries/getContactPage.ts +117 -0
  387. package/src/graphql/queries/getContentPage.ts +191 -0
  388. package/src/graphql/queries/getDiscountOffers.ts +18 -0
  389. package/src/graphql/queries/getDynamicPageBySlug.ts +251 -0
  390. package/src/graphql/queries/getFeaturedProducts.ts +48 -0
  391. package/src/graphql/queries/getHeroMetadata.ts +23 -0
  392. package/src/graphql/queries/getMenuBySlug.ts +84 -0
  393. package/src/graphql/queries/getMyProfile.ts +23 -0
  394. package/src/graphql/queries/getNewsletter.ts +122 -0
  395. package/src/graphql/queries/getNewsletterPage.ts +111 -0
  396. package/src/graphql/queries/getPageBySlug.ts +52 -0
  397. package/src/graphql/queries/getPageTypeId.ts +27 -0
  398. package/src/graphql/queries/getPaymentMethods.ts +61 -0
  399. package/src/graphql/queries/getProducts.ts +78 -0
  400. package/src/graphql/queries/getPromotions.ts +24 -0
  401. package/src/graphql/queries/getRequestReturnPage.ts +121 -0
  402. package/src/graphql/queries/getSiteInfo.ts +54 -0
  403. package/src/graphql/queries/getSocialLinks.ts +52 -0
  404. package/src/graphql/queries/getTestimonials.ts +25 -0
  405. package/src/graphql/queries/getUserWithCheckout.ts +27 -0
  406. package/src/graphql/queries/getVehicleMakes.ts +21 -0
  407. package/src/graphql/queries/getVehicleModels.ts +21 -0
  408. package/src/graphql/queries/getVehicleYears.ts +21 -0
  409. package/src/graphql/queries/meAddresses.ts +56 -0
  410. package/src/graphql/queries/myOrders.ts +37 -0
  411. package/src/graphql/queries/orderDetail.ts +231 -0
  412. package/src/graphql/queries/productDetailsById.ts +197 -0
  413. package/src/graphql/queries/productInquiry.ts +115 -0
  414. package/src/graphql/queries/productsByCategoriesAndCollections.ts +39 -0
  415. package/src/graphql/queries/willCallCollectionPoints.ts +55 -0
  416. package/src/graphql/server-client.ts +54 -0
  417. package/src/graphql/types/categories.ts +9 -0
  418. package/src/graphql/types/checkout.ts +168 -0
  419. package/src/graphql/types/offer.ts +12 -0
  420. package/src/graphql/types/product.ts +44 -0
  421. package/src/hooks/scrollPageTop.ts +9 -0
  422. package/src/hooks/serverNavbarData.ts +79 -0
  423. package/src/hooks/useCartSync.ts +24 -0
  424. package/src/hooks/useRecaptcha.ts +33 -0
  425. package/src/hooks/useTokenExpiration.ts +81 -0
  426. package/src/hooks/useVehicleData.ts +346 -0
  427. package/src/lib/api/kount.ts +165 -0
  428. package/src/lib/api/shop.ts +1445 -0
  429. package/src/lib/saleor/getSaleorApiUrl.ts +25 -0
  430. package/src/lib/schema.ts +303 -0
  431. package/src/lib/seo/extractTextFromEditorJs.ts +58 -0
  432. package/src/lib/seo/site.ts +10 -0
  433. package/src/lib/urls/normalizeInternalUrl.ts +53 -0
  434. package/src/middleware.ts +134 -0
  435. package/src/sitemaps/README.md +105 -0
  436. package/src/sitemaps/dynamic-pages-sitemap.ts +247 -0
  437. package/src/sitemaps/sitemap-index.ts +21 -0
  438. package/src/sitemaps/static-pages-sitemap.ts +36 -0
  439. package/src/store/useGlobalStore.tsx +1656 -0
  440. package/src/types/global.d.ts +148 -0
  441. package/tsconfig.json +27 -0
@@ -0,0 +1,202 @@
1
+ import { AppConfigurationResponse, AppConfig, InternalAppConfig, ExternalAppConfig } from './appConfiguration';
2
+
3
+ // Cache for configuration to avoid repeated API calls in middleware
4
+ let configurationCache: { data: AppConfigurationResponse; timestamp: number } | null = null;
5
+ const CACHE_DURATION = 10 * 1000; // 10 seconds (reduced from 5 minutes for real-time updates)
6
+
7
+ /**
8
+ * Fetches configuration from the external API directly.
9
+ * This is used by middleware since it can't call internal API routes.
10
+ */
11
+ export async function fetchConfigurationDirect(): Promise<AppConfigurationResponse> {
12
+ // Check cache first
13
+ if (configurationCache && Date.now() - configurationCache.timestamp < CACHE_DURATION) {
14
+ return configurationCache.data;
15
+ }
16
+
17
+ try {
18
+ const apiUrl = process.env.NEXT_PUBLIC_API_URL;
19
+ if (!apiUrl) {
20
+ throw new Error('NEXT_PUBLIC_API_URL not configured');
21
+ }
22
+
23
+ const configUrl = `https://wsm-migrator-api.alphasquadit.com/app/get-configuration?tenant=${encodeURIComponent(apiUrl)}`;
24
+
25
+ const response = await fetch(configUrl, {
26
+ method: 'GET',
27
+ headers: {
28
+ 'Content-Type': 'application/json',
29
+ },
30
+ // Add timeout to prevent hanging requests
31
+ signal: AbortSignal.timeout(10000) // 10 seconds timeout
32
+ });
33
+
34
+ if (!response.ok) {
35
+ throw new Error(`Failed to fetch configuration: ${response.status}`);
36
+ }
37
+
38
+ const rawData = await response.json();
39
+
40
+ // Handle flat array format or empty array
41
+ let data: AppConfigurationResponse;
42
+ if (rawData.length === 0) {
43
+ data = getFallbackConfiguration();
44
+ } else {
45
+ data = transformFlatArrayToStructured(rawData);
46
+ }
47
+
48
+ // Update cache
49
+ configurationCache = {
50
+ data,
51
+ timestamp: Date.now()
52
+ };
53
+
54
+ return data;
55
+ } catch (error) {
56
+ console.error('Failed to fetch app configuration:', error);
57
+
58
+ return getFallbackConfiguration();
59
+ }
60
+ }
61
+
62
+ /**
63
+ * Transforms flat array format to structured format
64
+ */
65
+ function transformFlatArrayToStructured(flatArray: AppConfig[]): AppConfigurationResponse {
66
+ const internal: InternalAppConfig[] = [];
67
+ const external: ExternalAppConfig[] = [];
68
+
69
+ flatArray.forEach(app => {
70
+ // Only apps without configurations go to internal
71
+ if (!app.configurations && app.app_name === 'tiered_pricing') {
72
+ internal.push({
73
+ app_name: app.app_name as 'tiered_pricing',
74
+ is_active: app.is_active
75
+ });
76
+ } else {
77
+ // Apps with configurations go to external (including dealer_locator)
78
+ const knownExternalApps = [
79
+ 'dealer_locator', 'google_recaptcha', 'google_tag_manager',
80
+ 'google_maps', 'google_analytics', 'google_adsense', 'google_search_console', 'will-call'
81
+ ];
82
+
83
+ if (knownExternalApps.includes(app.app_name)) {
84
+ external.push({
85
+ app_name: app.app_name as 'dealer_locator' | 'google_recaptcha' | 'google_tag_manager' | 'google_maps' | 'google_analytics' | 'google_adsense' | 'google_search_console' | 'will-call',
86
+ configurations: app.configurations || {} as Record<string, unknown>,
87
+ is_active: app.is_active
88
+ } as ExternalAppConfig);
89
+ }
90
+ }
91
+ });
92
+
93
+ return {
94
+ internal,
95
+ external
96
+ };
97
+ }
98
+
99
+ /**
100
+ * Returns fallback configuration with all features disabled
101
+ */
102
+ function getFallbackConfiguration(): AppConfigurationResponse {
103
+ return {
104
+ internal: [
105
+ { app_name: 'tiered_pricing', is_active: false }
106
+ ],
107
+ external: [
108
+ {
109
+ app_name: 'dealer_locator',
110
+ configurations: { token: '' },
111
+ is_active: false
112
+ },
113
+ {
114
+ app_name: 'google_recaptcha',
115
+ configurations: {
116
+ site_key: '',
117
+ locations: {
118
+ login: false,
119
+ signup: false,
120
+ checkout: false
121
+ }
122
+ },
123
+ is_active: false
124
+ },
125
+ {
126
+ app_name: 'google_tag_manager',
127
+ configurations: { container_id: '' },
128
+ is_active: false
129
+ },
130
+ {
131
+ app_name: 'google_maps',
132
+ configurations: { api_key: '' },
133
+ is_active: false
134
+ },
135
+ {
136
+ app_name: 'google_analytics',
137
+ configurations: { measurement_id: '' },
138
+ is_active: false
139
+ },
140
+ {
141
+ app_name: 'google_adsense',
142
+ configurations: { publisher_id: '' },
143
+ is_active: false
144
+ }
145
+ ]
146
+ };
147
+ }
148
+
149
+ /**
150
+ * Checks if a feature is active in the given configuration
151
+ */
152
+ export function isFeatureActive(configuration: AppConfigurationResponse, featureName: string): boolean {
153
+ const internalApp = configuration.internal?.find(app => app.app_name === featureName);
154
+ if (internalApp) {
155
+ return internalApp.is_active;
156
+ }
157
+
158
+ const externalApp = configuration.external?.find(app => app.app_name === featureName);
159
+ if (externalApp) {
160
+ return externalApp.is_active;
161
+ }
162
+
163
+ return false;
164
+ }
165
+
166
+ /**
167
+ * Get the configuration URL for external API calls
168
+ */
169
+ export function getConfigurationUrl(): string | null {
170
+ const apiUrl = process.env.NEXT_PUBLIC_API_URL;
171
+ if (!apiUrl) {
172
+ return null;
173
+ }
174
+ return `https://wsm-migrator-api.alphasquadit.com/app/get-configuration?tenant=${encodeURIComponent(apiUrl)}`;
175
+ }
176
+
177
+ /**
178
+ * Clear the configuration cache - useful for development and testing
179
+ */
180
+ export function clearConfigurationCache(): void {
181
+ configurationCache = null;
182
+ }
183
+
184
+ /**
185
+ * Force refresh configuration by clearing cache and fetching new data
186
+ */
187
+ export async function refreshConfiguration(): Promise<AppConfigurationResponse> {
188
+ clearConfigurationCache();
189
+ return await fetchConfigurationDirect();
190
+ }
191
+
192
+ // Development helper: expose cache clearing functions to window for easy access
193
+ if (typeof window !== 'undefined' && process.env.NODE_ENV === 'development') {
194
+ (window as Record<string, unknown>).clearServerConfigCache = () => {
195
+ clearConfigurationCache();
196
+ };
197
+
198
+ (window as Record<string, unknown>).refreshServerConfig = async () => {
199
+ const config = await refreshConfiguration();
200
+ return config;
201
+ };
202
+ }
@@ -0,0 +1,242 @@
1
+ export const socialIconsConfig = {
2
+ X: (
3
+ <svg
4
+ xmlns="http://www.w3.org/2000/svg"
5
+ viewBox="0 0 24 24"
6
+ fill="currentColor"
7
+ >
8
+ <path d="M10.4883 14.651L15.25 21H22.25L14.3917 10.5223L20.9308 3H18.2808L13.1643 8.88578L8.75 3H1.75L9.26086 13.0145L2.31915 21H4.96917L10.4883 14.651ZM16.25 19L5.75 5H7.75L18.25 19H16.25Z"></path>
9
+ </svg>
10
+ ),
11
+
12
+ IG: (
13
+ <svg
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ viewBox="0 0 24 24"
16
+ fill="currentColor"
17
+ >
18
+ <path d="M13.0281 2.00073C14.1535 2.00259 14.7238 2.00855 15.2166 2.02322L15.4107 2.02956C15.6349 2.03753 15.8561 2.04753 16.1228 2.06003C17.1869 2.1092 17.9128 2.27753 18.5503 2.52503C19.2094 2.7792 19.7661 3.12253 20.3219 3.67837C20.8769 4.2342 21.2203 4.79253 21.4753 5.45003C21.7219 6.0867 21.8903 6.81337 21.9403 7.87753C21.9522 8.1442 21.9618 8.3654 21.9697 8.58964L21.976 8.78373C21.9906 9.27647 21.9973 9.84686 21.9994 10.9723L22.0002 11.7179C22.0003 11.809 22.0003 11.903 22.0003 12L22.0002 12.2821L21.9996 13.0278C21.9977 14.1532 21.9918 14.7236 21.9771 15.2163L21.9707 15.4104C21.9628 15.6347 21.9528 15.8559 21.9403 16.1225C21.8911 17.1867 21.7219 17.9125 21.4753 18.55C21.2211 19.2092 20.8769 19.7659 20.3219 20.3217C19.7661 20.8767 19.2069 21.22 18.5503 21.475C17.9128 21.7217 17.1869 21.89 16.1228 21.94C15.8561 21.9519 15.6349 21.9616 15.4107 21.9694L15.2166 21.9757C14.7238 21.9904 14.1535 21.997 13.0281 21.9992L12.2824 22C12.1913 22 12.0973 22 12.0003 22L11.7182 22L10.9725 21.9993C9.8471 21.9975 9.27672 21.9915 8.78397 21.9768L8.58989 21.9705C8.36564 21.9625 8.14444 21.9525 7.87778 21.94C6.81361 21.8909 6.08861 21.7217 5.45028 21.475C4.79194 21.2209 4.23444 20.8767 3.67861 20.3217C3.12278 19.7659 2.78028 19.2067 2.52528 18.55C2.27778 17.9125 2.11028 17.1867 2.06028 16.1225C2.0484 15.8559 2.03871 15.6347 2.03086 15.4104L2.02457 15.2163C2.00994 14.7236 2.00327 14.1532 2.00111 13.0278L2.00098 10.9723C2.00284 9.84686 2.00879 9.27647 2.02346 8.78373L2.02981 8.58964C2.03778 8.3654 2.04778 8.1442 2.06028 7.87753C2.10944 6.81253 2.27778 6.08753 2.52528 5.45003C2.77944 4.7917 3.12278 4.2342 3.67861 3.67837C4.23444 3.12253 4.79278 2.78003 5.45028 2.52503C6.08778 2.27753 6.81278 2.11003 7.87778 2.06003C8.14444 2.04816 8.36564 2.03847 8.58989 2.03062L8.78397 2.02433C9.27672 2.00969 9.8471 2.00302 10.9725 2.00086L13.0281 2.00073ZM12.0003 7.00003C9.23738 7.00003 7.00028 9.23956 7.00028 12C7.00028 14.7629 9.23981 17 12.0003 17C14.7632 17 17.0003 14.7605 17.0003 12C17.0003 9.23713 14.7607 7.00003 12.0003 7.00003ZM12.0003 9.00003C13.6572 9.00003 15.0003 10.3427 15.0003 12C15.0003 13.6569 13.6576 15 12.0003 15C10.3434 15 9.00028 13.6574 9.00028 12C9.00028 10.3431 10.3429 9.00003 12.0003 9.00003ZM17.2503 5.50003C16.561 5.50003 16.0003 6.05994 16.0003 6.74918C16.0003 7.43843 16.5602 7.9992 17.2503 7.9992C17.9395 7.9992 18.5003 7.4393 18.5003 6.74918C18.5003 6.05994 17.9386 5.49917 17.2503 5.50003Z"></path>
19
+ </svg>
20
+ ),
21
+
22
+ FB: (
23
+ <svg
24
+ xmlns="http://www.w3.org/2000/svg"
25
+ viewBox="0 0 24 24"
26
+ fill="currentColor"
27
+ >
28
+ <path d="M12.001 2C6.47813 2 2.00098 6.47715 2.00098 12C2.00098 16.9913 5.65783 21.1283 10.4385 21.8785V14.8906H7.89941V12H10.4385V9.79688C10.4385 7.29063 11.9314 5.90625 14.2156 5.90625C15.3097 5.90625 16.4541 6.10156 16.4541 6.10156V8.5625H15.1931C13.9509 8.5625 13.5635 9.33334 13.5635 10.1242V12H16.3369L15.8936 14.8906H13.5635V21.8785C18.3441 21.1283 22.001 16.9913 22.001 12C22.001 6.47715 17.5238 2 12.001 2Z"></path>
29
+ </svg>
30
+ ),
31
+ YT: (
32
+ <svg
33
+ xmlns="http://www.w3.org/2000/svg"
34
+ viewBox="0 0 24 24"
35
+ fill="currentColor"
36
+ >
37
+ <path d="M12.2439 4C12.778 4.00294 14.1143 4.01586 15.5341 4.07273L16.0375 4.09468C17.467 4.16236 18.8953 4.27798 19.6037 4.4755C20.5486 4.74095 21.2913 5.5155 21.5423 6.49732C21.942 8.05641 21.992 11.0994 21.9982 11.8358L21.9991 11.9884L21.9991 11.9991C21.9991 11.9991 21.9991 12.0028 21.9991 12.0099L21.9982 12.1625C21.992 12.8989 21.942 15.9419 21.5423 17.501C21.2878 18.4864 20.5451 19.261 19.6037 19.5228C18.8953 19.7203 17.467 19.8359 16.0375 19.9036L15.5341 19.9255C14.1143 19.9824 12.778 19.9953 12.2439 19.9983L12.0095 19.9991L11.9991 19.9991C11.9991 19.9991 11.9956 19.9991 11.9887 19.9991L11.7545 19.9983C10.6241 19.9921 5.89772 19.941 4.39451 19.5228C3.4496 19.2573 2.70692 18.4828 2.45587 17.501C2.0562 15.9419 2.00624 12.8989 2 12.1625V11.8358C2.00624 11.0994 2.0562 8.05641 2.45587 6.49732C2.7104 5.51186 3.45308 4.73732 4.39451 4.4755C5.89772 4.05723 10.6241 4.00622 11.7545 4H12.2439ZM9.99911 8.49914V15.4991L15.9991 11.9991L9.99911 8.49914Z"></path>
38
+ </svg>
39
+ ),
40
+ }
41
+
42
+ export const paymentProvidersIconsConfig = {
43
+ Visa: (
44
+ <svg
45
+ width={37}
46
+ height={27}
47
+ viewBox="0 0 37 27"
48
+ fill="none"
49
+ xmlns="http://www.w3.org/2000/svg"
50
+ >
51
+ <rect
52
+ x="0.5"
53
+ y="1.1001"
54
+ width={36}
55
+ height={25}
56
+ rx={2}
57
+ fill="white"
58
+ stroke="#D9D9D9"
59
+ />
60
+ <path
61
+ fillRule="evenodd"
62
+ clipRule="evenodd"
63
+ d="M11.3013 18.2134H9.05984L7.379 11.642C7.29922 11.3397 7.12983 11.0725 6.88065 10.9465C6.25881 10.63 5.57357 10.3781 4.82605 10.2511V9.99806H8.4369C8.93525 9.99806 9.30901 10.3781 9.37131 10.8195L10.2434 15.5596L12.4838 9.99806H14.663L11.3013 18.2134ZM15.9089 18.2134H13.792L15.5351 9.99806H17.652L15.9089 18.2134ZM20.3908 12.2739C20.453 11.8315 20.8268 11.5785 21.2629 11.5785C21.9481 11.515 22.6945 11.642 23.3175 11.9574L23.6912 10.1886C23.0683 9.93564 22.3831 9.80859 21.7612 9.80859C19.7066 9.80859 18.2116 10.9465 18.2116 12.5259C18.2116 13.7273 19.2706 14.3582 20.0181 14.7382C20.8268 15.1172 21.1383 15.3702 21.076 15.7491C21.076 16.3175 20.453 16.5705 19.8312 16.5705C19.0837 16.5705 18.3362 16.3811 17.652 16.0645L17.2783 17.8344C18.0258 18.1498 18.8345 18.2769 19.582 18.2769C21.8858 18.3393 23.3175 17.2025 23.3175 15.4961C23.3175 13.3473 20.3908 13.2213 20.3908 12.2739ZM30.7261 18.2134L29.0452 9.99806H27.2398C26.866 9.99806 26.4923 10.2511 26.3677 10.63L23.2552 18.2134H25.4344L25.8693 17.013H28.5469L28.7961 18.2134H30.7261ZM27.5512 12.2104L28.1731 15.3066H26.4299L27.5512 12.2104Z"
64
+ fill="#172B85"
65
+ />
66
+ </svg>
67
+ ),
68
+
69
+ Mastercard: (
70
+ <svg
71
+ width={37}
72
+ height={27}
73
+ viewBox="0 0 37 27"
74
+ fill="none"
75
+ xmlns="http://www.w3.org/2000/svg"
76
+ >
77
+ <rect
78
+ x="0.5"
79
+ y="1.1001"
80
+ width={36}
81
+ height={25}
82
+ rx={2}
83
+ fill="white"
84
+ stroke="#D9D9D9"
85
+ />
86
+ <path
87
+ d="M24.0889 5.46289C28.554 5.46289 32.1738 9.05908 32.1738 13.4951C32.1738 17.9311 28.554 21.5273 24.0889 21.5273C22.0871 21.5273 20.2567 20.8027 18.8447 19.6055C17.4328 20.8027 15.6024 21.5273 13.6006 21.5273C9.13545 21.5273 5.51566 17.9311 5.51562 13.4951C5.51562 9.05908 9.13542 5.46289 13.6006 5.46289C15.6022 5.46291 17.4328 6.1868 18.8447 7.38379C20.2566 6.1868 22.0873 5.46294 24.0889 5.46289Z"
88
+ fill="#ED0006"
89
+ />
90
+ <path
91
+ d="M24.0889 5.46289C28.554 5.46289 32.1738 9.05908 32.1738 13.4951C32.1738 17.9311 28.554 21.5273 24.0889 21.5273C22.0871 21.5273 20.2567 20.8027 18.8447 19.6055C20.5822 18.1322 21.6855 15.9424 21.6855 13.4951C21.6855 11.0476 20.5825 8.85703 18.8447 7.38379C20.2566 6.18681 22.0873 5.46292 24.0889 5.46289Z"
92
+ fill="#F9A000"
93
+ />
94
+ <path
95
+ d="M18.8441 7.38428C20.5819 8.85742 21.6858 11.0473 21.6859 13.4946C21.6859 15.942 20.5817 18.1317 18.8441 19.605C17.107 18.1318 16.0043 15.9415 16.0043 13.4946C16.0044 11.0477 17.1069 8.85741 18.8441 7.38428Z"
96
+ fill="#FF5E00"
97
+ />
98
+ </svg>
99
+ ),
100
+ Americanexpress: (
101
+ <svg
102
+ width={37}
103
+ height={27}
104
+ viewBox="0 0 37 27"
105
+ fill="none"
106
+ xmlns="http://www.w3.org/2000/svg"
107
+ >
108
+ <rect
109
+ x="0.5"
110
+ y="1.41455"
111
+ width={36}
112
+ height="24.3714"
113
+ rx="2.67143"
114
+ fill="#1F72CD"
115
+ stroke="#D9D9D9"
116
+ />
117
+ <path
118
+ fillRule="evenodd"
119
+ clipRule="evenodd"
120
+ d="M6.63282 9.89941L3.17102 17.5603H7.31528L7.82904 16.3388H9.0034L9.51717 17.5603H14.0788V16.628L14.4853 17.5603H16.845L17.2514 16.6083V17.5603H26.7384L27.892 16.3705L28.9722 17.5603L33.8449 17.5701L30.3722 13.7512L33.8449 9.89941H29.0478L27.9248 11.0672L26.8787 9.89941H16.558L15.6718 11.8767L14.7648 9.89941H10.6292V10.7999L10.1691 9.89941H6.63282ZM20.7997 10.9875H26.2476L27.9139 12.7874L29.6338 10.9875H31.3001L28.7684 13.7504L31.3001 16.4814H29.5582L27.892 14.6607L26.1633 16.4814H20.7997V10.9875ZM22.1449 13.1286V12.1251V12.1242H25.5442L27.0275 13.729L25.4785 15.3427H22.1449V14.2471H25.1169V13.1286H22.1449ZM7.43474 10.9875H9.45484L11.7511 16.1824V10.9875H13.964L15.7375 14.7122L17.3721 10.9875H19.574V16.4847H18.2342L18.2232 12.1771L16.2699 16.4847H15.0714L13.1072 12.1771V16.4847H10.3509L9.82839 15.2523H7.00532L6.48386 16.4836H5.00708L7.43474 10.9875ZM7.48734 14.1131L8.41743 11.9177L9.34644 14.1131H7.48734Z"
121
+ fill="white"
122
+ />
123
+ </svg>
124
+ ),
125
+ Paypal: (
126
+ <svg
127
+ width={37}
128
+ height={27}
129
+ viewBox="0 0 37 27"
130
+ fill="none"
131
+ xmlns="http://www.w3.org/2000/svg"
132
+ >
133
+ <rect
134
+ x="0.5"
135
+ y="1.1001"
136
+ width={36}
137
+ height={25}
138
+ rx={2}
139
+ fill="white"
140
+ stroke="#D9D9D9"
141
+ />
142
+ <path
143
+ fillRule="evenodd"
144
+ clipRule="evenodd"
145
+ d="M10.6174 17.1113H8.94904C8.83487 17.1113 8.73777 17.1951 8.71997 17.309L8.04521 21.6304C8.0318 21.7157 8.09717 21.7926 8.1828 21.7926H8.97928C9.09345 21.7926 9.19055 21.7088 9.20835 21.5947L9.39034 20.4292C9.40789 20.315 9.50523 20.2313 9.61916 20.2313H10.1473C11.2463 20.2313 11.8805 19.6941 12.0462 18.6296C12.1209 18.1639 12.0494 17.7979 11.8334 17.5416C11.5964 17.2603 11.1757 17.1113 10.6174 17.1113ZM10.8099 18.6897C10.7186 19.2944 10.2612 19.2944 9.81895 19.2944H9.5672L9.74381 18.165C9.7543 18.0968 9.81285 18.0465 9.88116 18.0465H9.99654C10.2978 18.0465 10.582 18.0465 10.7289 18.22C10.8164 18.3235 10.8433 18.4772 10.8099 18.6897ZM15.6045 18.6703H14.8055C14.7375 18.6703 14.6786 18.7206 14.6681 18.7889L14.6328 19.0146L14.5769 18.9328C14.404 18.6792 14.0183 18.5945 13.6334 18.5945C12.7505 18.5945 11.9965 19.2699 11.8496 20.2174C11.7733 20.69 11.8818 21.1419 12.1472 21.4571C12.3907 21.7469 12.7391 21.8676 13.1535 21.8676C13.8648 21.8676 14.2594 21.4056 14.2594 21.4056L14.2237 21.6299C14.2103 21.7156 14.2756 21.7925 14.3607 21.7925H15.0804C15.1949 21.7925 15.2914 21.7087 15.3095 21.5946L15.7413 18.8325C15.7549 18.7475 15.6898 18.6703 15.6045 18.6703ZM14.4908 20.241C14.4137 20.7021 14.0514 21.0116 13.5895 21.0116C13.3575 21.0116 13.172 20.9364 13.053 20.794C12.9349 20.6526 12.89 20.4512 12.9276 20.227C12.9996 19.7698 13.368 19.4503 13.8229 19.4503C14.0497 19.4503 14.2342 19.5264 14.3557 19.6701C14.4774 19.8152 14.5257 20.0177 14.4908 20.241ZM19.0566 18.6702H19.8594C19.9719 18.6702 20.0375 18.7976 19.9736 18.8907L17.3034 22.7841C17.2601 22.8472 17.1889 22.8847 17.1128 22.8847H16.3109C16.198 22.8847 16.1321 22.7563 16.1975 22.6629L17.0289 21.4774L16.1446 18.856C16.114 18.7648 16.1807 18.6702 16.2766 18.6702H17.0655C17.168 18.6702 17.2584 18.7382 17.288 18.8373L17.7573 20.4205L18.8646 18.7729C18.908 18.7086 18.98 18.6702 19.0566 18.6702Z"
146
+ fill="#253B80"
147
+ />
148
+ <path
149
+ fillRule="evenodd"
150
+ clipRule="evenodd"
151
+ d="M27.7611 21.6302L28.4458 17.2297C28.4563 17.1614 28.5149 17.1111 28.583 17.1108H29.3538C29.4389 17.1108 29.5043 17.1879 29.4909 17.2732L28.8157 21.5945C28.7981 21.7085 28.701 21.7923 28.5866 21.7923H27.8982C27.8131 21.7923 27.7477 21.7155 27.7611 21.6302ZM22.5175 17.1111H20.8488C20.7349 17.1111 20.6378 17.1949 20.62 17.3087L19.9452 21.6302C19.9318 21.7155 19.9972 21.7923 20.0824 21.7923H20.9386C21.0182 21.7923 21.0862 21.7337 21.0986 21.6539L21.2901 20.4289C21.3077 20.3148 21.405 20.2311 21.5189 20.2311H22.0468C23.146 20.2311 23.7802 19.6939 23.946 18.6293C24.0208 18.1636 23.9489 17.7977 23.7331 17.5413C23.4961 17.26 23.0758 17.1111 22.5175 17.1111ZM22.7099 18.6894C22.619 19.2942 22.1615 19.2942 21.719 19.2942H21.4675L21.6444 18.1648C21.6549 18.0966 21.7129 18.0463 21.7814 18.0463H21.8968C22.1979 18.0463 22.4824 18.0463 22.6291 18.2197C22.7167 18.3233 22.7434 18.477 22.7099 18.6894ZM27.5041 18.67H26.7057C26.6371 18.67 26.5788 18.7203 26.5686 18.7886L26.5332 19.0143L26.4771 18.9326C26.3042 18.6789 25.9188 18.5942 25.5338 18.5942C24.6509 18.5942 23.8971 19.2696 23.7502 20.2172C23.6741 20.6897 23.7822 21.1416 24.0476 21.4568C24.2916 21.7466 24.6395 21.8674 25.0539 21.8674C25.7652 21.8674 26.1597 21.4053 26.1597 21.4053L26.1241 21.6296C26.1107 21.7154 26.176 21.7922 26.2617 21.7922H26.9811C27.095 21.7922 27.1921 21.7084 27.2099 21.5944L27.6419 18.8322C27.6551 18.7472 27.5898 18.67 27.5041 18.67ZM26.3905 20.2408C26.3139 20.7018 25.9512 21.0113 25.4891 21.0113C25.2576 21.0113 25.0717 20.9362 24.9526 20.7937C24.8346 20.6523 24.7902 20.4509 24.8273 20.2267C24.8997 19.7696 25.2676 19.45 25.7226 19.45C25.9495 19.45 26.1338 19.5261 26.2554 19.6698C26.3776 19.815 26.4259 20.0175 26.3905 20.2408Z"
152
+ fill="#179BD7"
153
+ />
154
+ <path
155
+ d="M16.7915 15.5651L16.9966 14.2491L16.5398 14.2384H14.3582L15.8743 4.52755C15.8789 4.49824 15.8943 4.4709 15.9166 4.45149C15.939 4.43208 15.9676 4.42139 15.9974 4.42139H19.676C20.8973 4.42139 21.74 4.67809 22.18 5.18476C22.3863 5.42246 22.5177 5.67084 22.5813 5.94418C22.6479 6.231 22.6491 6.57367 22.584 6.99161L22.5792 7.02211V7.2899L22.7856 7.40796C22.9593 7.50105 23.0973 7.60761 23.2032 7.72963C23.3797 7.93285 23.4939 8.19115 23.5421 8.49736C23.5919 8.81231 23.5754 9.18706 23.4939 9.61134C23.3997 10.0994 23.2475 10.5245 23.0421 10.8723C22.853 11.1928 22.6122 11.4585 22.3264 11.6646C22.0534 11.8603 21.729 12.0089 21.3624 12.104C21.007 12.1974 20.6019 12.2446 20.1576 12.2446H19.8713C19.6666 12.2446 19.4677 12.319 19.3117 12.4526C19.1552 12.5889 19.0516 12.775 19.0199 12.9786L18.9983 13.0971L18.6359 15.4165L18.6195 15.5017C18.6152 15.5287 18.6077 15.5421 18.5968 15.5513C18.5869 15.5595 18.5728 15.5651 18.5591 15.5651H16.7915Z"
156
+ fill="#253B80"
157
+ />
158
+ <path
159
+ d="M22.981 7.05322C22.97 7.12413 22.9575 7.19662 22.9434 7.2711C22.4582 9.78705 20.7985 10.6562 18.6788 10.6562H17.5995C17.3404 10.6562 17.1219 10.8463 17.0815 11.1046L16.5289 14.6447L16.3724 15.6481C16.3461 15.8176 16.4756 15.9706 16.6449 15.9706H18.5592C18.7859 15.9706 18.9784 15.8042 19.0141 15.5784L19.0329 15.4801L19.3934 13.1697L19.4165 13.043C19.4518 12.8165 19.6447 12.6501 19.8714 12.6501H20.1577C22.0122 12.6501 23.4641 11.8895 23.8885 9.68841C24.0657 8.76894 23.974 8.00121 23.5049 7.46125C23.363 7.29843 23.1869 7.16335 22.981 7.05322Z"
160
+ fill="#179BD7"
161
+ />
162
+ <path
163
+ d="M22.4733 6.84923C22.3993 6.82744 22.3227 6.80763 22.2443 6.7898C22.1655 6.77238 22.0846 6.75693 22.0015 6.74346C21.7105 6.69592 21.3917 6.67334 21.0501 6.67334H18.1669C18.0959 6.67334 18.0285 6.68958 17.9681 6.7189C17.8351 6.78346 17.7363 6.91064 17.7124 7.06632L17.0989 10.9906L17.0813 11.1051C17.1217 10.8468 17.3402 10.6566 17.5994 10.6566H18.6786C20.7984 10.6566 22.4581 9.78707 22.9432 7.27152C22.9576 7.19705 22.9698 7.12455 22.9808 7.05365C22.8581 6.98788 22.7251 6.93163 22.5819 6.88369C22.5467 6.87181 22.5102 6.86032 22.4733 6.84923Z"
164
+ fill="#222D65"
165
+ />
166
+ <path
167
+ d="M17.7123 7.06607C17.7363 6.91038 17.8352 6.78322 17.968 6.71904C18.0289 6.68972 18.0959 6.67348 18.1668 6.67348H21.0502C21.3918 6.67348 21.7106 6.69606 22.0015 6.7436C22.0847 6.75707 22.1656 6.77252 22.2444 6.78994C22.3228 6.80778 22.3992 6.82759 22.4734 6.84937C22.5102 6.86046 22.5467 6.87195 22.5823 6.88344C22.7255 6.93137 22.8585 6.98802 22.9812 7.05339C23.1256 6.12362 22.9801 5.49058 22.4824 4.91735C21.9338 4.28629 20.9435 4.01611 19.6764 4.01611H15.9977C15.7389 4.01611 15.5182 4.20626 15.4781 4.46495L13.9459 14.2756C13.9157 14.4697 14.0639 14.6448 14.2576 14.6448H16.5288L17.099 10.9903L17.7123 7.06607Z"
168
+ fill="#253B80"
169
+ />
170
+ </svg>
171
+ ),
172
+ Gpay: (
173
+ <svg
174
+ width={37}
175
+ height={27}
176
+ viewBox="0 0 37 27"
177
+ fill="none"
178
+ xmlns="http://www.w3.org/2000/svg"
179
+ >
180
+ <rect
181
+ x="0.5"
182
+ y="1.1001"
183
+ width={36}
184
+ height={25}
185
+ rx={2}
186
+ fill="white"
187
+ stroke="#D9D9D9"
188
+ />
189
+ <path
190
+ d="M29.0688 16.1123H29.0874L30.6304 12.1436H31.7144L28.3804 20.1006H27.3521L28.5913 17.3174L26.4038 12.1436H27.4878L29.0688 16.1123ZM23.8511 11.9639C24.5882 11.9639 25.1706 12.1695 25.5981 12.5752C26.0257 12.9811 26.2368 13.5486 26.2368 14.2637V17.6719H25.2827V16.9043H25.2388C24.8236 17.5356 24.2781 17.8516 23.5903 17.8516C23.0081 17.8515 22.5128 17.6711 22.1226 17.3105C21.7384 16.9756 21.5214 16.4797 21.5337 15.958C21.5337 15.3846 21.7445 14.9332 22.1597 14.5918C22.5747 14.2506 23.1321 14.0831 23.8257 14.083C24.4205 14.083 24.9044 14.1989 25.2886 14.418V14.1797C25.2886 13.8254 25.1396 13.4907 24.8794 13.2588C24.613 13.0141 24.2725 12.878 23.9194 12.8779C23.3618 12.8779 22.9213 13.1229 22.5991 13.6123L21.7192 13.0391C22.1902 12.3241 22.9031 11.9639 23.8511 11.9639ZM19.1226 9.59277C19.7608 9.57989 20.3812 9.83107 20.8335 10.2949C21.7379 11.171 21.7934 12.6458 20.9448 13.5928L20.8335 13.709C20.3688 14.1664 19.798 14.3984 19.1226 14.3984H17.4751V17.6709H16.4771V9.59277H19.1226ZM23.981 14.9209C23.5783 14.921 23.2379 15.024 22.9653 15.2236C22.699 15.4232 22.5621 15.674 22.562 15.9766C22.562 16.2471 22.6866 16.4987 22.8911 16.6533C23.1142 16.8336 23.3867 16.9303 23.6655 16.9238C24.0869 16.9238 24.4892 16.7496 24.7866 16.4404C25.115 16.1184 25.2827 15.7388 25.2827 15.3008C24.9728 15.0431 24.5387 14.9145 23.981 14.9209ZM17.4751 13.4062H19.1479C19.5196 13.4191 19.8792 13.2651 20.1333 12.9883C20.6539 12.4278 20.6412 11.5255 20.1021 10.9844C19.848 10.7268 19.5073 10.585 19.1479 10.585H17.4751V13.4062Z"
191
+ fill="#3C4043"
192
+ />
193
+ <path
194
+ d="M14.0306 13.6901C14.0306 13.3744 14.0058 13.0587 13.9562 12.7495H9.74878V14.534H12.1592C12.0601 15.1074 11.7379 15.6228 11.2669 15.9449V17.1045H12.7045C13.5472 16.2992 14.0306 15.1074 14.0306 13.6901Z"
195
+ fill="#4285F4"
196
+ />
197
+ <path
198
+ d="M9.749 18.2255C10.9511 18.2255 11.9674 17.8132 12.7047 17.1045L11.2671 15.9449C10.8644 16.2284 10.3501 16.3894 9.749 16.3894C8.58406 16.3894 7.59881 15.5713 7.24561 14.4761H5.76465V15.6743C6.52062 17.2398 8.06355 18.2255 9.749 18.2255Z"
199
+ fill="#34A853"
200
+ />
201
+ <path
202
+ d="M7.24572 14.4763C7.0598 13.9029 7.0598 13.278 7.24572 12.6982V11.5063H5.76452C5.12618 12.8141 5.12618 14.3603 5.76452 15.6681L7.24572 14.4763Z"
203
+ fill="#FBBC04"
204
+ />
205
+ <path
206
+ d="M9.749 10.7846C10.3872 10.7717 11.0007 11.023 11.4592 11.4804L12.7357 10.1532C11.924 9.36727 10.8582 8.93564 9.749 8.94852C8.06355 8.94852 6.52062 9.94064 5.76465 11.5061L7.24561 12.7044C7.59881 11.6028 8.58406 10.7846 9.749 10.7846Z"
207
+ fill="#EA4335"
208
+ />
209
+ </svg>
210
+ ),
211
+
212
+ Applepay: (
213
+ <svg
214
+ width={37}
215
+ height={27}
216
+ viewBox="0 0 37 27"
217
+ fill="none"
218
+ xmlns="http://www.w3.org/2000/svg"
219
+ >
220
+ <rect
221
+ x="0.5"
222
+ y="1.1001"
223
+ width={36}
224
+ height={25}
225
+ rx={2}
226
+ fill="white"
227
+ stroke="#D9D9D9"
228
+ />
229
+ <path
230
+ fillRule="evenodd"
231
+ clipRule="evenodd"
232
+ d="M8.82317 10.2776C9.32007 10.3206 9.81697 10.0199 10.1275 9.63868C10.4329 9.24672 10.6348 8.72053 10.583 8.18359C10.1431 8.20507 9.59958 8.48428 9.28901 8.87624C9.00433 9.21451 8.76106 9.76218 8.82317 10.2776ZM14.7342 17.1933V8.82254H17.7622C19.3254 8.82254 20.4175 9.93936 20.4175 11.5716C20.4175 13.2039 19.3047 14.3315 17.7208 14.3315H15.9868V17.1933H14.7342ZM10.5778 10.3797C10.1401 10.3535 9.74063 10.5162 9.41799 10.6477C9.21037 10.7322 9.03455 10.8038 8.90079 10.8038C8.75068 10.8038 8.5676 10.7284 8.36205 10.6437C8.0927 10.5327 7.78477 10.4058 7.46185 10.4119C6.72167 10.4226 6.03326 10.8575 5.65541 11.5502C4.879 12.9355 5.45354 14.9865 6.20407 16.1141C6.57157 16.6725 7.01153 17.2846 7.59125 17.2631C7.84629 17.2532 8.02975 17.1724 8.21961 17.0888C8.4382 16.9926 8.66528 16.8927 9.01984 16.8927C9.3621 16.8927 9.57925 16.99 9.78769 17.0835C9.98589 17.1723 10.1762 17.2576 10.4588 17.2524C11.0592 17.2417 11.4371 16.694 11.8045 16.1356C12.2011 15.5363 12.3754 14.9513 12.4019 14.8626L12.405 14.8523C12.4043 14.8517 12.3994 14.8493 12.3908 14.8452L12.3908 14.8452C12.2582 14.7823 11.2449 14.3011 11.2352 13.0106C11.2254 11.9275 12.0389 11.3788 12.167 11.2924C12.1748 11.2871 12.18 11.2836 12.1824 11.2817C11.6648 10.4871 10.8573 10.4011 10.5778 10.3797ZM22.7054 17.2577C23.4922 17.2577 24.222 16.8443 24.5532 16.1892H24.5791V17.1933H25.7386V13.0267C25.7386 11.8186 24.8069 11.04 23.3731 11.04C22.0429 11.04 21.0594 11.8293 21.0232 12.9139H22.1516C22.2447 12.3985 22.7054 12.0602 23.3369 12.0602C24.1029 12.0602 24.5325 12.4307 24.5325 13.1126V13.5744L22.9694 13.671C21.5149 13.7623 20.7281 14.3798 20.7281 15.4536C20.7281 16.5382 21.5408 17.2577 22.7054 17.2577ZM23.0418 16.2644C22.3741 16.2644 21.9496 15.9315 21.9496 15.4214C21.9496 14.8952 22.3585 14.5892 23.1401 14.5409L24.5325 14.4496V14.9221C24.5325 15.706 23.8906 16.2644 23.0418 16.2644ZM29.5843 17.5208C29.0823 18.9867 28.5077 19.4699 27.2862 19.4699C27.193 19.4699 26.8824 19.4592 26.81 19.4377V18.4336C26.8876 18.4444 27.0791 18.4551 27.1775 18.4551C27.7313 18.4551 28.0419 18.2135 28.2334 17.5853L28.3473 17.2148L26.2251 11.1206H27.5346L29.0098 16.0658H29.0357L30.5109 11.1206H31.7842L29.5843 17.5208ZM15.9867 9.9179H17.4308C18.5178 9.9179 19.1389 10.5193 19.1389 11.577C19.1389 12.6348 18.5178 13.2415 17.4257 13.2415H15.9867V9.9179Z"
233
+ fill="black"
234
+ />
235
+ </svg>
236
+ ),
237
+ }
238
+
239
+ export const productBreadcrumbItems = [
240
+ { text: "HOME", link: "/" },
241
+ { text: "Product" },
242
+ ]