payaza-storefront-layouts 1.0.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 (629) hide show
  1. package/README.md +108 -0
  2. package/dist/components/learning/CertificateTemplates.d.ts +25 -0
  3. package/dist/components/learning/CertificateTemplates.d.ts.map +1 -0
  4. package/dist/components/learning/CertificateTemplates.js +31 -0
  5. package/dist/components/learning/CertificateViewer.d.ts +11 -0
  6. package/dist/components/learning/CertificateViewer.d.ts.map +1 -0
  7. package/dist/components/learning/CertificateViewer.js +114 -0
  8. package/dist/components/learning/MentorshipProgress.d.ts +18 -0
  9. package/dist/components/learning/MentorshipProgress.d.ts.map +1 -0
  10. package/dist/components/learning/MentorshipProgress.js +19 -0
  11. package/dist/components/ui/address-selector.d.ts +11 -0
  12. package/dist/components/ui/address-selector.d.ts.map +1 -0
  13. package/dist/components/ui/address-selector.js +21 -0
  14. package/dist/components/ui/avatar-image.d.ts +11 -0
  15. package/dist/components/ui/avatar-image.d.ts.map +1 -0
  16. package/dist/components/ui/avatar-image.js +39 -0
  17. package/dist/components/ui/background-patterns.d.ts +27 -0
  18. package/dist/components/ui/background-patterns.d.ts.map +1 -0
  19. package/dist/components/ui/background-patterns.js +5 -0
  20. package/dist/components/ui/badge.d.ts +10 -0
  21. package/dist/components/ui/badge.d.ts.map +1 -0
  22. package/dist/components/ui/badge.js +20 -0
  23. package/dist/components/ui/breadcrumbs.d.ts +11 -0
  24. package/dist/components/ui/breadcrumbs.d.ts.map +1 -0
  25. package/dist/components/ui/breadcrumbs.js +8 -0
  26. package/dist/components/ui/button.d.ts +11 -0
  27. package/dist/components/ui/button.d.ts.map +1 -0
  28. package/dist/components/ui/button.js +33 -0
  29. package/dist/components/ui/card.d.ts +10 -0
  30. package/dist/components/ui/card.d.ts.map +1 -0
  31. package/dist/components/ui/card.js +24 -0
  32. package/dist/components/ui/category-tree.d.ts +16 -0
  33. package/dist/components/ui/category-tree.d.ts.map +1 -0
  34. package/dist/components/ui/category-tree.js +74 -0
  35. package/dist/components/ui/checkout-button.d.ts +11 -0
  36. package/dist/components/ui/checkout-button.d.ts.map +1 -0
  37. package/dist/components/ui/checkout-button.js +174 -0
  38. package/dist/components/ui/guest-checkout-modal.d.ts +19 -0
  39. package/dist/components/ui/guest-checkout-modal.d.ts.map +1 -0
  40. package/dist/components/ui/guest-checkout-modal.js +92 -0
  41. package/dist/components/ui/image-skeleton.d.ts +7 -0
  42. package/dist/components/ui/image-skeleton.d.ts.map +1 -0
  43. package/dist/components/ui/image-skeleton.js +15 -0
  44. package/dist/components/ui/image-with-fallback.d.ts +9 -0
  45. package/dist/components/ui/image-with-fallback.d.ts.map +1 -0
  46. package/dist/components/ui/image-with-fallback.js +203 -0
  47. package/dist/components/ui/input.d.ts +6 -0
  48. package/dist/components/ui/input.d.ts.map +1 -0
  49. package/dist/components/ui/input.js +8 -0
  50. package/dist/components/ui/loading-skeleton-wrapper.d.ts +6 -0
  51. package/dist/components/ui/loading-skeleton-wrapper.d.ts.map +1 -0
  52. package/dist/components/ui/loading-skeleton-wrapper.js +10 -0
  53. package/dist/components/ui/modal.d.ts +11 -0
  54. package/dist/components/ui/modal.d.ts.map +1 -0
  55. package/dist/components/ui/modal.js +26 -0
  56. package/dist/components/ui/otp-input.d.ts +10 -0
  57. package/dist/components/ui/otp-input.d.ts.map +1 -0
  58. package/dist/components/ui/otp-input.js +57 -0
  59. package/dist/components/ui/out-of-stock-overlay.d.ts +8 -0
  60. package/dist/components/ui/out-of-stock-overlay.d.ts.map +1 -0
  61. package/dist/components/ui/out-of-stock-overlay.js +12 -0
  62. package/dist/components/ui/page-animate-wrapper.d.ts +7 -0
  63. package/dist/components/ui/page-animate-wrapper.d.ts.map +1 -0
  64. package/dist/components/ui/page-animate-wrapper.js +16 -0
  65. package/dist/components/ui/page-content-loader.d.ts +13 -0
  66. package/dist/components/ui/page-content-loader.d.ts.map +1 -0
  67. package/dist/components/ui/page-content-loader.js +12 -0
  68. package/dist/components/ui/page-loader.d.ts +20 -0
  69. package/dist/components/ui/page-loader.d.ts.map +1 -0
  70. package/dist/components/ui/page-loader.js +31 -0
  71. package/dist/components/ui/product-card.d.ts +11 -0
  72. package/dist/components/ui/product-card.d.ts.map +1 -0
  73. package/dist/components/ui/product-card.js +95 -0
  74. package/dist/components/ui/product-rating.d.ts +17 -0
  75. package/dist/components/ui/product-rating.d.ts.map +1 -0
  76. package/dist/components/ui/product-rating.js +54 -0
  77. package/dist/components/ui/review-form.d.ts +9 -0
  78. package/dist/components/ui/review-form.d.ts.map +1 -0
  79. package/dist/components/ui/review-form.js +28 -0
  80. package/dist/components/ui/route-skeleton-loader.d.ts +7 -0
  81. package/dist/components/ui/route-skeleton-loader.d.ts.map +1 -0
  82. package/dist/components/ui/route-skeleton-loader.js +75 -0
  83. package/dist/components/ui/sheet.d.ts +12 -0
  84. package/dist/components/ui/sheet.d.ts.map +1 -0
  85. package/dist/components/ui/sheet.js +29 -0
  86. package/dist/components/ui/skeleton.d.ts +3 -0
  87. package/dist/components/ui/skeleton.d.ts.map +1 -0
  88. package/dist/components/ui/skeleton.js +6 -0
  89. package/dist/components/ui/skeletons/category-grid-skeleton.d.ts +6 -0
  90. package/dist/components/ui/skeletons/category-grid-skeleton.d.ts.map +1 -0
  91. package/dist/components/ui/skeletons/category-grid-skeleton.js +16 -0
  92. package/dist/components/ui/skeletons/checkout-skeleton.d.ts +2 -0
  93. package/dist/components/ui/skeletons/checkout-skeleton.d.ts.map +1 -0
  94. package/dist/components/ui/skeletons/checkout-skeleton.js +4 -0
  95. package/dist/components/ui/skeletons/index.d.ts +6 -0
  96. package/dist/components/ui/skeletons/index.d.ts.map +1 -0
  97. package/dist/components/ui/skeletons/index.js +5 -0
  98. package/dist/components/ui/skeletons/page-skeleton.d.ts +2 -0
  99. package/dist/components/ui/skeletons/page-skeleton.d.ts.map +1 -0
  100. package/dist/components/ui/skeletons/page-skeleton.js +4 -0
  101. package/dist/components/ui/skeletons/product-card-skeleton.d.ts +2 -0
  102. package/dist/components/ui/skeletons/product-card-skeleton.d.ts.map +1 -0
  103. package/dist/components/ui/skeletons/product-card-skeleton.js +4 -0
  104. package/dist/components/ui/skeletons/product-detail-skeleton.d.ts +2 -0
  105. package/dist/components/ui/skeletons/product-detail-skeleton.d.ts.map +1 -0
  106. package/dist/components/ui/skeletons/product-detail-skeleton.js +4 -0
  107. package/dist/components/ui/skeletons/product-grid-skeleton.d.ts +7 -0
  108. package/dist/components/ui/skeletons/product-grid-skeleton.d.ts.map +1 -0
  109. package/dist/components/ui/skeletons/product-grid-skeleton.js +12 -0
  110. package/dist/components/ui/store-logos.d.ts +43 -0
  111. package/dist/components/ui/store-logos.d.ts.map +1 -0
  112. package/dist/components/ui/store-logos.js +83 -0
  113. package/dist/components/ui/toast.d.ts +19 -0
  114. package/dist/components/ui/toast.d.ts.map +1 -0
  115. package/dist/components/ui/toast.js +33 -0
  116. package/dist/components/ui/video-player.d.ts +48 -0
  117. package/dist/components/ui/video-player.d.ts.map +1 -0
  118. package/dist/components/ui/video-player.js +96 -0
  119. package/dist/hooks/use-analytics.d.ts +14 -0
  120. package/dist/hooks/use-analytics.d.ts.map +1 -0
  121. package/dist/hooks/use-analytics.js +66 -0
  122. package/dist/hooks/use-api.d.ts +17 -0
  123. package/dist/hooks/use-api.d.ts.map +1 -0
  124. package/dist/hooks/use-api.js +53 -0
  125. package/dist/hooks/use-cart-api.d.ts +17 -0
  126. package/dist/hooks/use-cart-api.d.ts.map +1 -0
  127. package/dist/hooks/use-cart-api.js +134 -0
  128. package/dist/hooks/use-content-ready.d.ts +17 -0
  129. package/dist/hooks/use-content-ready.d.ts.map +1 -0
  130. package/dist/hooks/use-content-ready.js +197 -0
  131. package/dist/hooks/use-navigation-loading.d.ts +4 -0
  132. package/dist/hooks/use-navigation-loading.d.ts.map +1 -0
  133. package/dist/hooks/use-navigation-loading.js +14 -0
  134. package/dist/hooks/use-payaza-checkout.d.ts +14 -0
  135. package/dist/hooks/use-payaza-checkout.d.ts.map +1 -0
  136. package/dist/hooks/use-payaza-checkout.js +56 -0
  137. package/dist/hooks/use-products-api.d.ts +19 -0
  138. package/dist/hooks/use-products-api.d.ts.map +1 -0
  139. package/dist/hooks/use-products-api.js +84 -0
  140. package/dist/hooks/use-store-api.d.ts +12 -0
  141. package/dist/hooks/use-store-api.d.ts.map +1 -0
  142. package/dist/hooks/use-store-api.js +73 -0
  143. package/dist/index.d.ts +116 -0
  144. package/dist/index.d.ts.map +1 -0
  145. package/dist/index.js +126 -0
  146. package/dist/json/booking-agenda.json +18 -0
  147. package/dist/json/booking.json +71 -0
  148. package/dist/json/clothing-minimal.json +26 -0
  149. package/dist/json/clothing.json +169 -0
  150. package/dist/json/electronics-grid.json +18 -0
  151. package/dist/json/electronics.json +50 -0
  152. package/dist/json/food-modern.json +38 -0
  153. package/dist/json/food.json +85 -0
  154. package/dist/json/json-map.d.ts +7 -0
  155. package/dist/json/json-map.d.ts.map +1 -0
  156. package/dist/json/json-map.js +36 -0
  157. package/dist/json/motivational-speaker.json +96 -0
  158. package/dist/layouts/booking/components/BookingHomePage.d.ts +7 -0
  159. package/dist/layouts/booking/components/BookingHomePage.d.ts.map +1 -0
  160. package/dist/layouts/booking/components/BookingHomePage.js +49 -0
  161. package/dist/layouts/booking/index.d.ts +9 -0
  162. package/dist/layouts/booking/index.d.ts.map +1 -0
  163. package/dist/layouts/booking/index.js +9 -0
  164. package/dist/layouts/booking/pages/AboutPage.d.ts +7 -0
  165. package/dist/layouts/booking/pages/AboutPage.d.ts.map +1 -0
  166. package/dist/layouts/booking/pages/AboutPage.js +45 -0
  167. package/dist/layouts/booking/pages/BookPage.d.ts +8 -0
  168. package/dist/layouts/booking/pages/BookPage.d.ts.map +1 -0
  169. package/dist/layouts/booking/pages/BookPage.js +441 -0
  170. package/dist/layouts/booking/pages/CategoriesPage.d.ts +7 -0
  171. package/dist/layouts/booking/pages/CategoriesPage.d.ts.map +1 -0
  172. package/dist/layouts/booking/pages/CategoriesPage.js +162 -0
  173. package/dist/layouts/booking/pages/CategoryPage.d.ts +8 -0
  174. package/dist/layouts/booking/pages/CategoryPage.d.ts.map +1 -0
  175. package/dist/layouts/booking/pages/CategoryPage.js +67 -0
  176. package/dist/layouts/booking/pages/ContactPage.d.ts +7 -0
  177. package/dist/layouts/booking/pages/ContactPage.d.ts.map +1 -0
  178. package/dist/layouts/booking/pages/ContactPage.js +20 -0
  179. package/dist/layouts/booking/pages/ProductDetailPage.d.ts +8 -0
  180. package/dist/layouts/booking/pages/ProductDetailPage.d.ts.map +1 -0
  181. package/dist/layouts/booking/pages/ProductDetailPage.js +502 -0
  182. package/dist/layouts/booking/pages/ServicesPage.d.ts +9 -0
  183. package/dist/layouts/booking/pages/ServicesPage.d.ts.map +1 -0
  184. package/dist/layouts/booking/pages/ServicesPage.js +31 -0
  185. package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts +7 -0
  186. package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts.map +1 -0
  187. package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.js +186 -0
  188. package/dist/layouts/booking-agenda/index.d.ts +9 -0
  189. package/dist/layouts/booking-agenda/index.d.ts.map +1 -0
  190. package/dist/layouts/booking-agenda/index.js +9 -0
  191. package/dist/layouts/booking-agenda/pages/AboutPage.d.ts +7 -0
  192. package/dist/layouts/booking-agenda/pages/AboutPage.d.ts.map +1 -0
  193. package/dist/layouts/booking-agenda/pages/AboutPage.js +45 -0
  194. package/dist/layouts/booking-agenda/pages/BookPage.d.ts +8 -0
  195. package/dist/layouts/booking-agenda/pages/BookPage.d.ts.map +1 -0
  196. package/dist/layouts/booking-agenda/pages/BookPage.js +441 -0
  197. package/dist/layouts/booking-agenda/pages/CategoriesPage.d.ts +7 -0
  198. package/dist/layouts/booking-agenda/pages/CategoriesPage.d.ts.map +1 -0
  199. package/dist/layouts/booking-agenda/pages/CategoriesPage.js +162 -0
  200. package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts +8 -0
  201. package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts.map +1 -0
  202. package/dist/layouts/booking-agenda/pages/CategoryPage.js +67 -0
  203. package/dist/layouts/booking-agenda/pages/ContactPage.d.ts +7 -0
  204. package/dist/layouts/booking-agenda/pages/ContactPage.d.ts.map +1 -0
  205. package/dist/layouts/booking-agenda/pages/ContactPage.js +20 -0
  206. package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts +8 -0
  207. package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts.map +1 -0
  208. package/dist/layouts/booking-agenda/pages/ProductDetailPage.js +502 -0
  209. package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts +9 -0
  210. package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts.map +1 -0
  211. package/dist/layouts/booking-agenda/pages/ServicesPage.js +31 -0
  212. package/dist/layouts/clothing/components/ClothingHomePage.d.ts +7 -0
  213. package/dist/layouts/clothing/components/ClothingHomePage.d.ts.map +1 -0
  214. package/dist/layouts/clothing/components/ClothingHomePage.js +295 -0
  215. package/dist/layouts/clothing/index.d.ts +8 -0
  216. package/dist/layouts/clothing/index.d.ts.map +1 -0
  217. package/dist/layouts/clothing/index.js +8 -0
  218. package/dist/layouts/clothing/pages/AboutPage.d.ts +7 -0
  219. package/dist/layouts/clothing/pages/AboutPage.d.ts.map +1 -0
  220. package/dist/layouts/clothing/pages/AboutPage.js +45 -0
  221. package/dist/layouts/clothing/pages/CategoriesPage.d.ts +7 -0
  222. package/dist/layouts/clothing/pages/CategoriesPage.d.ts.map +1 -0
  223. package/dist/layouts/clothing/pages/CategoriesPage.js +162 -0
  224. package/dist/layouts/clothing/pages/CategoryPage.d.ts +8 -0
  225. package/dist/layouts/clothing/pages/CategoryPage.d.ts.map +1 -0
  226. package/dist/layouts/clothing/pages/CategoryPage.js +67 -0
  227. package/dist/layouts/clothing/pages/ContactPage.d.ts +7 -0
  228. package/dist/layouts/clothing/pages/ContactPage.d.ts.map +1 -0
  229. package/dist/layouts/clothing/pages/ContactPage.js +20 -0
  230. package/dist/layouts/clothing/pages/ProductDetailPage.d.ts +8 -0
  231. package/dist/layouts/clothing/pages/ProductDetailPage.d.ts.map +1 -0
  232. package/dist/layouts/clothing/pages/ProductDetailPage.js +502 -0
  233. package/dist/layouts/clothing/pages/ProductsPage.d.ts +7 -0
  234. package/dist/layouts/clothing/pages/ProductsPage.d.ts.map +1 -0
  235. package/dist/layouts/clothing/pages/ProductsPage.js +297 -0
  236. package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts +7 -0
  237. package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts.map +1 -0
  238. package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.js +48 -0
  239. package/dist/layouts/clothing-minimal/index.d.ts +8 -0
  240. package/dist/layouts/clothing-minimal/index.d.ts.map +1 -0
  241. package/dist/layouts/clothing-minimal/index.js +8 -0
  242. package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts +7 -0
  243. package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts.map +1 -0
  244. package/dist/layouts/clothing-minimal/pages/AboutPage.js +45 -0
  245. package/dist/layouts/clothing-minimal/pages/CategoriesPage.d.ts +7 -0
  246. package/dist/layouts/clothing-minimal/pages/CategoriesPage.d.ts.map +1 -0
  247. package/dist/layouts/clothing-minimal/pages/CategoriesPage.js +162 -0
  248. package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts +8 -0
  249. package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts.map +1 -0
  250. package/dist/layouts/clothing-minimal/pages/CategoryPage.js +67 -0
  251. package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts +7 -0
  252. package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts.map +1 -0
  253. package/dist/layouts/clothing-minimal/pages/ContactPage.js +20 -0
  254. package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts +8 -0
  255. package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts.map +1 -0
  256. package/dist/layouts/clothing-minimal/pages/ProductDetailPage.js +502 -0
  257. package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts +7 -0
  258. package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts.map +1 -0
  259. package/dist/layouts/clothing-minimal/pages/ProductsPage.js +297 -0
  260. package/dist/layouts/electronics/components/ElectronicsCategoriesPage.d.ts +7 -0
  261. package/dist/layouts/electronics/components/ElectronicsCategoriesPage.d.ts.map +1 -0
  262. package/dist/layouts/electronics/components/ElectronicsCategoriesPage.js +34 -0
  263. package/dist/layouts/electronics/components/ElectronicsGridProductCard.d.ts +10 -0
  264. package/dist/layouts/electronics/components/ElectronicsGridProductCard.d.ts.map +1 -0
  265. package/dist/layouts/electronics/components/ElectronicsGridProductCard.js +107 -0
  266. package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts +7 -0
  267. package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts.map +1 -0
  268. package/dist/layouts/electronics/components/ElectronicsHomePage.js +78 -0
  269. package/dist/layouts/electronics/components/ElectronicsPageWrapper.d.ts +8 -0
  270. package/dist/layouts/electronics/components/ElectronicsPageWrapper.d.ts.map +1 -0
  271. package/dist/layouts/electronics/components/ElectronicsPageWrapper.js +10 -0
  272. package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts +7 -0
  273. package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts.map +1 -0
  274. package/dist/layouts/electronics/components/ElectronicsProductsPage.js +100 -0
  275. package/dist/layouts/electronics/components/ElectronicsStoreFooter.d.ts +7 -0
  276. package/dist/layouts/electronics/components/ElectronicsStoreFooter.d.ts.map +1 -0
  277. package/dist/layouts/electronics/components/ElectronicsStoreFooter.js +10 -0
  278. package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts +7 -0
  279. package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts.map +1 -0
  280. package/dist/layouts/electronics/components/ElectronicsStoreHeader.js +27 -0
  281. package/dist/layouts/electronics/index.d.ts +19 -0
  282. package/dist/layouts/electronics/index.d.ts.map +1 -0
  283. package/dist/layouts/electronics/index.js +19 -0
  284. package/dist/layouts/electronics/pages/AboutPage.d.ts +7 -0
  285. package/dist/layouts/electronics/pages/AboutPage.d.ts.map +1 -0
  286. package/dist/layouts/electronics/pages/AboutPage.js +45 -0
  287. package/dist/layouts/electronics/pages/CategoriesPage.d.ts +7 -0
  288. package/dist/layouts/electronics/pages/CategoriesPage.d.ts.map +1 -0
  289. package/dist/layouts/electronics/pages/CategoriesPage.js +6 -0
  290. package/dist/layouts/electronics/pages/CategoryPage.d.ts +8 -0
  291. package/dist/layouts/electronics/pages/CategoryPage.d.ts.map +1 -0
  292. package/dist/layouts/electronics/pages/CategoryPage.js +67 -0
  293. package/dist/layouts/electronics/pages/ContactPage.d.ts +7 -0
  294. package/dist/layouts/electronics/pages/ContactPage.d.ts.map +1 -0
  295. package/dist/layouts/electronics/pages/ContactPage.js +20 -0
  296. package/dist/layouts/electronics/pages/HelpCenterPage.d.ts +7 -0
  297. package/dist/layouts/electronics/pages/HelpCenterPage.d.ts.map +1 -0
  298. package/dist/layouts/electronics/pages/HelpCenterPage.js +55 -0
  299. package/dist/layouts/electronics/pages/PrivacyPolicyPage.d.ts +7 -0
  300. package/dist/layouts/electronics/pages/PrivacyPolicyPage.d.ts.map +1 -0
  301. package/dist/layouts/electronics/pages/PrivacyPolicyPage.js +8 -0
  302. package/dist/layouts/electronics/pages/ProductDetailPage.d.ts +8 -0
  303. package/dist/layouts/electronics/pages/ProductDetailPage.d.ts.map +1 -0
  304. package/dist/layouts/electronics/pages/ProductDetailPage.js +502 -0
  305. package/dist/layouts/electronics/pages/ProductsPage.d.ts +7 -0
  306. package/dist/layouts/electronics/pages/ProductsPage.d.ts.map +1 -0
  307. package/dist/layouts/electronics/pages/ProductsPage.js +297 -0
  308. package/dist/layouts/electronics/pages/ShippingReturnsPage.d.ts +7 -0
  309. package/dist/layouts/electronics/pages/ShippingReturnsPage.d.ts.map +1 -0
  310. package/dist/layouts/electronics/pages/ShippingReturnsPage.js +7 -0
  311. package/dist/layouts/electronics/pages/TermsPage.d.ts +7 -0
  312. package/dist/layouts/electronics/pages/TermsPage.d.ts.map +1 -0
  313. package/dist/layouts/electronics/pages/TermsPage.js +8 -0
  314. package/dist/layouts/electronics/pages/TrackOrderPage.d.ts +7 -0
  315. package/dist/layouts/electronics/pages/TrackOrderPage.d.ts.map +1 -0
  316. package/dist/layouts/electronics/pages/TrackOrderPage.js +371 -0
  317. package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.d.ts +10 -0
  318. package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.d.ts.map +1 -0
  319. package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.js +107 -0
  320. package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts +7 -0
  321. package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts.map +1 -0
  322. package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.js +89 -0
  323. package/dist/layouts/electronics-grid/index.d.ts +15 -0
  324. package/dist/layouts/electronics-grid/index.d.ts.map +1 -0
  325. package/dist/layouts/electronics-grid/index.js +15 -0
  326. package/dist/layouts/electronics-grid/pages/AboutPage.d.ts +7 -0
  327. package/dist/layouts/electronics-grid/pages/AboutPage.d.ts.map +1 -0
  328. package/dist/layouts/electronics-grid/pages/AboutPage.js +45 -0
  329. package/dist/layouts/electronics-grid/pages/CategoriesPage.d.ts +7 -0
  330. package/dist/layouts/electronics-grid/pages/CategoriesPage.d.ts.map +1 -0
  331. package/dist/layouts/electronics-grid/pages/CategoriesPage.js +6 -0
  332. package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts +8 -0
  333. package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts.map +1 -0
  334. package/dist/layouts/electronics-grid/pages/CategoryPage.js +67 -0
  335. package/dist/layouts/electronics-grid/pages/ContactPage.d.ts +7 -0
  336. package/dist/layouts/electronics-grid/pages/ContactPage.d.ts.map +1 -0
  337. package/dist/layouts/electronics-grid/pages/ContactPage.js +20 -0
  338. package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.d.ts +7 -0
  339. package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.d.ts.map +1 -0
  340. package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.js +15 -0
  341. package/dist/layouts/electronics-grid/pages/HelpCenterPage.d.ts +7 -0
  342. package/dist/layouts/electronics-grid/pages/HelpCenterPage.d.ts.map +1 -0
  343. package/dist/layouts/electronics-grid/pages/HelpCenterPage.js +55 -0
  344. package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.d.ts +7 -0
  345. package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.d.ts.map +1 -0
  346. package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.js +8 -0
  347. package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts +8 -0
  348. package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts.map +1 -0
  349. package/dist/layouts/electronics-grid/pages/ProductDetailPage.js +502 -0
  350. package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts +7 -0
  351. package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts.map +1 -0
  352. package/dist/layouts/electronics-grid/pages/ProductsPage.js +297 -0
  353. package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.d.ts +7 -0
  354. package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.d.ts.map +1 -0
  355. package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.js +7 -0
  356. package/dist/layouts/electronics-grid/pages/TermsPage.d.ts +7 -0
  357. package/dist/layouts/electronics-grid/pages/TermsPage.d.ts.map +1 -0
  358. package/dist/layouts/electronics-grid/pages/TermsPage.js +8 -0
  359. package/dist/layouts/electronics-grid/pages/TrackOrderPage.d.ts +7 -0
  360. package/dist/layouts/electronics-grid/pages/TrackOrderPage.d.ts.map +1 -0
  361. package/dist/layouts/electronics-grid/pages/TrackOrderPage.js +371 -0
  362. package/dist/layouts/food/components/FoodHomePage.d.ts +7 -0
  363. package/dist/layouts/food/components/FoodHomePage.d.ts.map +1 -0
  364. package/dist/layouts/food/components/FoodHomePage.js +304 -0
  365. package/dist/layouts/food/index.d.ts +9 -0
  366. package/dist/layouts/food/index.d.ts.map +1 -0
  367. package/dist/layouts/food/index.js +9 -0
  368. package/dist/layouts/food/pages/AboutPage.d.ts +7 -0
  369. package/dist/layouts/food/pages/AboutPage.d.ts.map +1 -0
  370. package/dist/layouts/food/pages/AboutPage.js +45 -0
  371. package/dist/layouts/food/pages/CategoriesPage.d.ts +7 -0
  372. package/dist/layouts/food/pages/CategoriesPage.d.ts.map +1 -0
  373. package/dist/layouts/food/pages/CategoriesPage.js +162 -0
  374. package/dist/layouts/food/pages/CategoryPage.d.ts +8 -0
  375. package/dist/layouts/food/pages/CategoryPage.d.ts.map +1 -0
  376. package/dist/layouts/food/pages/CategoryPage.js +67 -0
  377. package/dist/layouts/food/pages/ContactPage.d.ts +7 -0
  378. package/dist/layouts/food/pages/ContactPage.d.ts.map +1 -0
  379. package/dist/layouts/food/pages/ContactPage.js +20 -0
  380. package/dist/layouts/food/pages/MenuPage.d.ts +8 -0
  381. package/dist/layouts/food/pages/MenuPage.d.ts.map +1 -0
  382. package/dist/layouts/food/pages/MenuPage.js +75 -0
  383. package/dist/layouts/food/pages/ProductDetailPage.d.ts +8 -0
  384. package/dist/layouts/food/pages/ProductDetailPage.d.ts.map +1 -0
  385. package/dist/layouts/food/pages/ProductDetailPage.js +502 -0
  386. package/dist/layouts/food/pages/ProductsPage.d.ts +7 -0
  387. package/dist/layouts/food/pages/ProductsPage.d.ts.map +1 -0
  388. package/dist/layouts/food/pages/ProductsPage.js +297 -0
  389. package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts +7 -0
  390. package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts.map +1 -0
  391. package/dist/layouts/food-modern/components/FoodHomePageModern.js +118 -0
  392. package/dist/layouts/food-modern/index.d.ts +9 -0
  393. package/dist/layouts/food-modern/index.d.ts.map +1 -0
  394. package/dist/layouts/food-modern/index.js +9 -0
  395. package/dist/layouts/food-modern/pages/AboutPage.d.ts +7 -0
  396. package/dist/layouts/food-modern/pages/AboutPage.d.ts.map +1 -0
  397. package/dist/layouts/food-modern/pages/AboutPage.js +45 -0
  398. package/dist/layouts/food-modern/pages/CategoriesPage.d.ts +7 -0
  399. package/dist/layouts/food-modern/pages/CategoriesPage.d.ts.map +1 -0
  400. package/dist/layouts/food-modern/pages/CategoriesPage.js +162 -0
  401. package/dist/layouts/food-modern/pages/CategoryPage.d.ts +8 -0
  402. package/dist/layouts/food-modern/pages/CategoryPage.d.ts.map +1 -0
  403. package/dist/layouts/food-modern/pages/CategoryPage.js +67 -0
  404. package/dist/layouts/food-modern/pages/ContactPage.d.ts +7 -0
  405. package/dist/layouts/food-modern/pages/ContactPage.d.ts.map +1 -0
  406. package/dist/layouts/food-modern/pages/ContactPage.js +20 -0
  407. package/dist/layouts/food-modern/pages/MenuPage.d.ts +8 -0
  408. package/dist/layouts/food-modern/pages/MenuPage.d.ts.map +1 -0
  409. package/dist/layouts/food-modern/pages/MenuPage.js +75 -0
  410. package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts +8 -0
  411. package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts.map +1 -0
  412. package/dist/layouts/food-modern/pages/ProductDetailPage.js +502 -0
  413. package/dist/layouts/food-modern/pages/ProductsPage.d.ts +7 -0
  414. package/dist/layouts/food-modern/pages/ProductsPage.d.ts.map +1 -0
  415. package/dist/layouts/food-modern/pages/ProductsPage.js +297 -0
  416. package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts +7 -0
  417. package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts.map +1 -0
  418. package/dist/layouts/motivational-speaker/components/MotivationalHomePage.js +115 -0
  419. package/dist/layouts/motivational-speaker/components/MotivationalPageWrapper.d.ts +8 -0
  420. package/dist/layouts/motivational-speaker/components/MotivationalPageWrapper.d.ts.map +1 -0
  421. package/dist/layouts/motivational-speaker/components/MotivationalPageWrapper.js +10 -0
  422. package/dist/layouts/motivational-speaker/index.d.ts +10 -0
  423. package/dist/layouts/motivational-speaker/index.d.ts.map +1 -0
  424. package/dist/layouts/motivational-speaker/index.js +10 -0
  425. package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts +7 -0
  426. package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts.map +1 -0
  427. package/dist/layouts/motivational-speaker/pages/AboutPage.js +45 -0
  428. package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts +8 -0
  429. package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts.map +1 -0
  430. package/dist/layouts/motivational-speaker/pages/CategoryPage.js +67 -0
  431. package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts +7 -0
  432. package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts.map +1 -0
  433. package/dist/layouts/motivational-speaker/pages/ContactPage.js +20 -0
  434. package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts +7 -0
  435. package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts.map +1 -0
  436. package/dist/layouts/motivational-speaker/pages/ProductsPage.js +297 -0
  437. package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts +8 -0
  438. package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts.map +1 -0
  439. package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.js +144 -0
  440. package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts +9 -0
  441. package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts.map +1 -0
  442. package/dist/layouts/motivational-speaker/pages/ServicesPage.js +31 -0
  443. package/dist/layouts/motivational-speaker/pages/SubscriptionPage.d.ts +7 -0
  444. package/dist/layouts/motivational-speaker/pages/SubscriptionPage.d.ts.map +1 -0
  445. package/dist/layouts/motivational-speaker/pages/SubscriptionPage.js +136 -0
  446. package/dist/layouts/shared/components/BaseStoreLayout.d.ts +8 -0
  447. package/dist/layouts/shared/components/BaseStoreLayout.d.ts.map +1 -0
  448. package/dist/layouts/shared/components/BaseStoreLayout.js +59 -0
  449. package/dist/layouts/shared/components/GenericPageWrapper.d.ts +8 -0
  450. package/dist/layouts/shared/components/GenericPageWrapper.d.ts.map +1 -0
  451. package/dist/layouts/shared/components/GenericPageWrapper.js +19 -0
  452. package/dist/layouts/shared/components/PromoBanner.d.ts +9 -0
  453. package/dist/layouts/shared/components/PromoBanner.d.ts.map +1 -0
  454. package/dist/layouts/shared/components/PromoBanner.js +14 -0
  455. package/dist/layouts/shared/components/StoreFooter.d.ts +7 -0
  456. package/dist/layouts/shared/components/StoreFooter.d.ts.map +1 -0
  457. package/dist/layouts/shared/components/StoreFooter.js +147 -0
  458. package/dist/layouts/shared/components/StoreHeader.d.ts +8 -0
  459. package/dist/layouts/shared/components/StoreHeader.d.ts.map +1 -0
  460. package/dist/layouts/shared/components/StoreHeader.js +87 -0
  461. package/dist/layouts/shared/components/TestimonialCard.d.ts +8 -0
  462. package/dist/layouts/shared/components/TestimonialCard.d.ts.map +1 -0
  463. package/dist/layouts/shared/components/TestimonialCard.js +10 -0
  464. package/dist/layouts/shared/index.d.ts +23 -0
  465. package/dist/layouts/shared/index.d.ts.map +1 -0
  466. package/dist/layouts/shared/index.js +23 -0
  467. package/dist/layouts/shared/pages/AccountPage.d.ts +7 -0
  468. package/dist/layouts/shared/pages/AccountPage.d.ts.map +1 -0
  469. package/dist/layouts/shared/pages/AccountPage.js +605 -0
  470. package/dist/layouts/shared/pages/CartPage.d.ts +7 -0
  471. package/dist/layouts/shared/pages/CartPage.d.ts.map +1 -0
  472. package/dist/layouts/shared/pages/CartPage.js +83 -0
  473. package/dist/layouts/shared/pages/CheckoutPage.d.ts +7 -0
  474. package/dist/layouts/shared/pages/CheckoutPage.d.ts.map +1 -0
  475. package/dist/layouts/shared/pages/CheckoutPage.js +860 -0
  476. package/dist/layouts/shared/pages/CookiePolicyPage.d.ts +7 -0
  477. package/dist/layouts/shared/pages/CookiePolicyPage.d.ts.map +1 -0
  478. package/dist/layouts/shared/pages/CookiePolicyPage.js +8 -0
  479. package/dist/layouts/shared/pages/FeatureDisabledPage.d.ts +9 -0
  480. package/dist/layouts/shared/pages/FeatureDisabledPage.d.ts.map +1 -0
  481. package/dist/layouts/shared/pages/FeatureDisabledPage.js +8 -0
  482. package/dist/layouts/shared/pages/HelpCenterPage.d.ts +7 -0
  483. package/dist/layouts/shared/pages/HelpCenterPage.d.ts.map +1 -0
  484. package/dist/layouts/shared/pages/HelpCenterPage.js +55 -0
  485. package/dist/layouts/shared/pages/MaintenancePage.d.ts +7 -0
  486. package/dist/layouts/shared/pages/MaintenancePage.d.ts.map +1 -0
  487. package/dist/layouts/shared/pages/MaintenancePage.js +44 -0
  488. package/dist/layouts/shared/pages/PortfolioPage.d.ts +7 -0
  489. package/dist/layouts/shared/pages/PortfolioPage.d.ts.map +1 -0
  490. package/dist/layouts/shared/pages/PortfolioPage.js +130 -0
  491. package/dist/layouts/shared/pages/PrivacyPolicyPage.d.ts +7 -0
  492. package/dist/layouts/shared/pages/PrivacyPolicyPage.d.ts.map +1 -0
  493. package/dist/layouts/shared/pages/PrivacyPolicyPage.js +8 -0
  494. package/dist/layouts/shared/pages/ShippingReturnsPage.d.ts +7 -0
  495. package/dist/layouts/shared/pages/ShippingReturnsPage.d.ts.map +1 -0
  496. package/dist/layouts/shared/pages/ShippingReturnsPage.js +7 -0
  497. package/dist/layouts/shared/pages/SizeGuidePage.d.ts +7 -0
  498. package/dist/layouts/shared/pages/SizeGuidePage.d.ts.map +1 -0
  499. package/dist/layouts/shared/pages/SizeGuidePage.js +10 -0
  500. package/dist/layouts/shared/pages/StyleGuidePage.d.ts +7 -0
  501. package/dist/layouts/shared/pages/StyleGuidePage.d.ts.map +1 -0
  502. package/dist/layouts/shared/pages/StyleGuidePage.js +126 -0
  503. package/dist/layouts/shared/pages/TeamPage.d.ts +7 -0
  504. package/dist/layouts/shared/pages/TeamPage.d.ts.map +1 -0
  505. package/dist/layouts/shared/pages/TeamPage.js +39 -0
  506. package/dist/layouts/shared/pages/TermsPage.d.ts +7 -0
  507. package/dist/layouts/shared/pages/TermsPage.d.ts.map +1 -0
  508. package/dist/layouts/shared/pages/TermsPage.js +8 -0
  509. package/dist/layouts/shared/pages/TrackOrderPage.d.ts +7 -0
  510. package/dist/layouts/shared/pages/TrackOrderPage.d.ts.map +1 -0
  511. package/dist/layouts/shared/pages/TrackOrderPage.js +371 -0
  512. package/dist/layouts/shared/pages/WishlistPage.d.ts +7 -0
  513. package/dist/layouts/shared/pages/WishlistPage.d.ts.map +1 -0
  514. package/dist/layouts/shared/pages/WishlistPage.js +162 -0
  515. package/dist/lib/api.d.ts +8 -0
  516. package/dist/lib/api.d.ts.map +1 -0
  517. package/dist/lib/api.js +109 -0
  518. package/dist/lib/auth-context.d.ts +30 -0
  519. package/dist/lib/auth-context.d.ts.map +1 -0
  520. package/dist/lib/auth-context.js +207 -0
  521. package/dist/lib/content-selectors.d.ts +21 -0
  522. package/dist/lib/content-selectors.d.ts.map +1 -0
  523. package/dist/lib/content-selectors.js +75 -0
  524. package/dist/lib/countries.d.ts +11 -0
  525. package/dist/lib/countries.d.ts.map +1 -0
  526. package/dist/lib/countries.js +252 -0
  527. package/dist/lib/currency-symbols.d.ts +36 -0
  528. package/dist/lib/currency-symbols.d.ts.map +1 -0
  529. package/dist/lib/currency-symbols.js +153 -0
  530. package/dist/lib/guest-user.d.ts +27 -0
  531. package/dist/lib/guest-user.d.ts.map +1 -0
  532. package/dist/lib/guest-user.js +71 -0
  533. package/dist/lib/loading-context.d.ts +19 -0
  534. package/dist/lib/loading-context.d.ts.map +1 -0
  535. package/dist/lib/loading-context.js +197 -0
  536. package/dist/lib/mock-stores.d.ts +22 -0
  537. package/dist/lib/mock-stores.d.ts.map +1 -0
  538. package/dist/lib/mock-stores.js +2099 -0
  539. package/dist/lib/payaza-checkout.d.ts +167 -0
  540. package/dist/lib/payaza-checkout.d.ts.map +1 -0
  541. package/dist/lib/payaza-checkout.js +455 -0
  542. package/dist/lib/services/analytics.service.d.ts +58 -0
  543. package/dist/lib/services/analytics.service.d.ts.map +1 -0
  544. package/dist/lib/services/analytics.service.js +182 -0
  545. package/dist/lib/services/auth.service.d.ts +63 -0
  546. package/dist/lib/services/auth.service.d.ts.map +1 -0
  547. package/dist/lib/services/auth.service.js +101 -0
  548. package/dist/lib/services/booking.service.d.ts +53 -0
  549. package/dist/lib/services/booking.service.d.ts.map +1 -0
  550. package/dist/lib/services/booking.service.js +52 -0
  551. package/dist/lib/services/cart.service.d.ts +37 -0
  552. package/dist/lib/services/cart.service.d.ts.map +1 -0
  553. package/dist/lib/services/cart.service.js +55 -0
  554. package/dist/lib/services/category.service.d.ts +21 -0
  555. package/dist/lib/services/category.service.d.ts.map +1 -0
  556. package/dist/lib/services/category.service.js +41 -0
  557. package/dist/lib/services/checkout.service.d.ts +79 -0
  558. package/dist/lib/services/checkout.service.d.ts.map +1 -0
  559. package/dist/lib/services/checkout.service.js +37 -0
  560. package/dist/lib/services/customer.service.d.ts +52 -0
  561. package/dist/lib/services/customer.service.d.ts.map +1 -0
  562. package/dist/lib/services/customer.service.js +64 -0
  563. package/dist/lib/services/fees.service.d.ts +23 -0
  564. package/dist/lib/services/fees.service.d.ts.map +1 -0
  565. package/dist/lib/services/fees.service.js +13 -0
  566. package/dist/lib/services/index.d.ts +19 -0
  567. package/dist/lib/services/index.d.ts.map +1 -0
  568. package/dist/lib/services/index.js +18 -0
  569. package/dist/lib/services/order.service.d.ts +107 -0
  570. package/dist/lib/services/order.service.d.ts.map +1 -0
  571. package/dist/lib/services/order.service.js +82 -0
  572. package/dist/lib/services/payment.service.d.ts +51 -0
  573. package/dist/lib/services/payment.service.d.ts.map +1 -0
  574. package/dist/lib/services/payment.service.js +105 -0
  575. package/dist/lib/services/product.service.d.ts +90 -0
  576. package/dist/lib/services/product.service.d.ts.map +1 -0
  577. package/dist/lib/services/product.service.js +86 -0
  578. package/dist/lib/services/promo.service.d.ts +31 -0
  579. package/dist/lib/services/promo.service.d.ts.map +1 -0
  580. package/dist/lib/services/promo.service.js +29 -0
  581. package/dist/lib/services/review.service.d.ts +47 -0
  582. package/dist/lib/services/review.service.d.ts.map +1 -0
  583. package/dist/lib/services/review.service.js +54 -0
  584. package/dist/lib/services/service.service.d.ts +55 -0
  585. package/dist/lib/services/service.service.d.ts.map +1 -0
  586. package/dist/lib/services/service.service.js +37 -0
  587. package/dist/lib/services/shipping.service.d.ts +44 -0
  588. package/dist/lib/services/shipping.service.d.ts.map +1 -0
  589. package/dist/lib/services/shipping.service.js +23 -0
  590. package/dist/lib/services/store.service.d.ts +87 -0
  591. package/dist/lib/services/store.service.d.ts.map +1 -0
  592. package/dist/lib/services/store.service.js +41 -0
  593. package/dist/lib/services/wishlist.service.d.ts +30 -0
  594. package/dist/lib/services/wishlist.service.d.ts.map +1 -0
  595. package/dist/lib/services/wishlist.service.js +53 -0
  596. package/dist/lib/store-config-utils.d.ts +41 -0
  597. package/dist/lib/store-config-utils.d.ts.map +1 -0
  598. package/dist/lib/store-config-utils.js +1535 -0
  599. package/dist/lib/store-config.d.ts +3 -0
  600. package/dist/lib/store-config.d.ts.map +1 -0
  601. package/dist/lib/store-config.js +2 -0
  602. package/dist/lib/store-context.d.ts +39 -0
  603. package/dist/lib/store-context.d.ts.map +1 -0
  604. package/dist/lib/store-context.js +803 -0
  605. package/dist/lib/store-types.d.ts +663 -0
  606. package/dist/lib/store-types.d.ts.map +1 -0
  607. package/dist/lib/store-types.js +1 -0
  608. package/dist/lib/utils/asset-helpers.d.ts +102 -0
  609. package/dist/lib/utils/asset-helpers.d.ts.map +1 -0
  610. package/dist/lib/utils/asset-helpers.js +395 -0
  611. package/dist/lib/utils/category-tree.d.ts +25 -0
  612. package/dist/lib/utils/category-tree.d.ts.map +1 -0
  613. package/dist/lib/utils/category-tree.js +85 -0
  614. package/dist/lib/utils/demo-detection.d.ts +23 -0
  615. package/dist/lib/utils/demo-detection.d.ts.map +1 -0
  616. package/dist/lib/utils/demo-detection.js +36 -0
  617. package/dist/lib/utils/fee-calculations.d.ts +35 -0
  618. package/dist/lib/utils/fee-calculations.d.ts.map +1 -0
  619. package/dist/lib/utils/fee-calculations.js +64 -0
  620. package/dist/lib/utils/index.d.ts +37 -0
  621. package/dist/lib/utils/index.d.ts.map +1 -0
  622. package/dist/lib/utils/index.js +160 -0
  623. package/dist/lib/utils/url-helpers.d.ts +30 -0
  624. package/dist/lib/utils/url-helpers.d.ts.map +1 -0
  625. package/dist/lib/utils/url-helpers.js +56 -0
  626. package/dist/lib/utils/video-helpers.d.ts +32 -0
  627. package/dist/lib/utils/video-helpers.d.ts.map +1 -0
  628. package/dist/lib/utils/video-helpers.js +210 -0
  629. package/package.json +92 -0
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Payaza Checkout SDK Integration
3
+ * Based on Payaza Web SDK documentation: https://docs.payaza.africa/developers/apis/sdks/web-sdk
4
+ *
5
+ * Implementation uses script tag: https://checkout-v2.payaza.africa/js/v1/bundle.js
6
+ * Method: PayazaCheckout.setup(config).showPopup()
7
+ */
8
+ export interface PayazaCheckoutConfig {
9
+ publicKey: string;
10
+ amount: number;
11
+ currency?: string;
12
+ email: string;
13
+ firstName?: string;
14
+ lastName?: string;
15
+ phone?: string;
16
+ reference?: string;
17
+ description?: string;
18
+ callbackUrl?: string;
19
+ storeId?: string;
20
+ orderId?: string;
21
+ orderNumber?: string;
22
+ shippingAddress?: {
23
+ firstName?: string;
24
+ lastName?: string;
25
+ address?: string;
26
+ city?: string;
27
+ state?: string;
28
+ country?: string;
29
+ zipCode?: string;
30
+ };
31
+ metadata?: Record<string, unknown>;
32
+ onSuccess?: (response: PayazaCheckoutResponse) => void;
33
+ onError?: (error: string) => void;
34
+ onClose?: () => void;
35
+ }
36
+ export interface PayazaCurrency {
37
+ name: string;
38
+ code: string;
39
+ unicode: string;
40
+ html_value: string;
41
+ enabled: boolean;
42
+ }
43
+ export interface PayazaCustomer {
44
+ customer_id: string;
45
+ email_address: string;
46
+ first_name: string;
47
+ last_name: string;
48
+ mobile_number: string;
49
+ }
50
+ export interface PayazaSuccessData {
51
+ message: string;
52
+ payaza_reference: string;
53
+ transaction_reference: string;
54
+ transaction_fee: number;
55
+ transaction_total_amount: number;
56
+ currency: PayazaCurrency;
57
+ customer: PayazaCustomer;
58
+ }
59
+ export interface PayazaSuccessCallback {
60
+ type: 'success';
61
+ status: number;
62
+ data: PayazaSuccessData;
63
+ }
64
+ export interface PayazaCheckoutResponse {
65
+ status: 'success' | 'error';
66
+ message?: string;
67
+ transactionRef?: string;
68
+ checkoutUrl?: string;
69
+ callbackData?: PayazaSuccessCallback;
70
+ }
71
+ interface PayazaCheckoutSetupConfig {
72
+ merchant_key: string;
73
+ connection_mode: 'Live' | 'Test';
74
+ checkout_amount: number;
75
+ currency_code: string;
76
+ email_address: string;
77
+ first_name?: string;
78
+ last_name?: string;
79
+ phone_number?: string;
80
+ transaction_reference: string;
81
+ country_code?: string;
82
+ virtual_account_configuration?: {
83
+ expires_in_minutes?: number;
84
+ };
85
+ additional_details?: Record<string, unknown>;
86
+ }
87
+ interface PayazaCheckoutInstance {
88
+ setCallback: (callback: (response: {
89
+ transactionRef?: string;
90
+ reference?: string;
91
+ [key: string]: unknown;
92
+ }) => void) => void;
93
+ setOnClose: (onClose: () => void) => void;
94
+ showPopup: () => void;
95
+ }
96
+ declare global {
97
+ interface Window {
98
+ PayazaCheckout?: {
99
+ setup: (config: PayazaCheckoutSetupConfig) => PayazaCheckoutInstance;
100
+ };
101
+ }
102
+ }
103
+ /**
104
+ * Load Payaza SDK script dynamically
105
+ */
106
+ export declare const loadPayazaSDK: () => Promise<void>;
107
+ /**
108
+ * Validate and normalize currency to ISO 4217 format (3-letter uppercase code)
109
+ * @param currency - Currency code to validate
110
+ * @returns Validated uppercase ISO 4217 currency code
111
+ * @throws Error if currency cannot be normalized to valid ISO format
112
+ */
113
+ export declare function validateAndNormalizeCurrency(currency: string | null | undefined): string;
114
+ /**
115
+ * Validate and normalize currency with fallback
116
+ * @param currency - Currency code to validate
117
+ * @param fallback - Fallback currency if validation fails (default: 'USD')
118
+ * @returns Validated uppercase ISO 4217 currency code or fallback
119
+ */
120
+ export declare function validateAndNormalizeCurrencyWithFallback(currency: string | null | undefined, fallback?: string): string;
121
+ /**
122
+ * Extract currency from items with fallback logic
123
+ * Handles mixed currencies by using the most common currency, or first item's currency
124
+ * All currencies are validated and normalized to ISO 4217 format
125
+ */
126
+ export declare function getCurrencyFromItems(items: Array<{
127
+ product?: {
128
+ currency?: string;
129
+ };
130
+ }>, fallbackCurrency?: string): string;
131
+ /**
132
+ * Initialize Payaza checkout using SDK
133
+ * Uses PayazaCheckout.setup() method as per official documentation
134
+ */
135
+ export declare const initiatePayazaCheckout: (config: PayazaCheckoutConfig) => Promise<PayazaCheckoutResponse>;
136
+ /**
137
+ * Generate checkout config from cart items
138
+ */
139
+ export declare const generateCheckoutConfig: (items: Array<{
140
+ product: {
141
+ name: string;
142
+ price: number;
143
+ currency?: string;
144
+ };
145
+ quantity: number;
146
+ price: number;
147
+ }>, customerEmail: string, publicKey: string, options?: {
148
+ firstName?: string;
149
+ lastName?: string;
150
+ phone?: string;
151
+ callbackUrl?: string;
152
+ currency?: string;
153
+ storeId?: string;
154
+ orderId?: string;
155
+ orderNumber?: string;
156
+ shippingAddress?: {
157
+ firstName?: string;
158
+ lastName?: string;
159
+ address?: string;
160
+ city?: string;
161
+ state?: string;
162
+ country?: string;
163
+ zipCode?: string;
164
+ };
165
+ }) => PayazaCheckoutConfig;
166
+ export {};
167
+ //# sourceMappingURL=payaza-checkout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payaza-checkout.d.ts","sourceRoot":"","sources":["../../src/lib/payaza-checkout.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,wBAAwB,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,qBAAqB,CAAC;CACtC;AAED,UAAU,yBAAyB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6BAA6B,CAAC,EAAE;QAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED,UAAU,sBAAsB;IAC9B,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IAC7H,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,cAAc,CAAC,EAAE;YACf,KAAK,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,sBAAsB,CAAC;SACtE,CAAC;KACH;CACF;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,OAAO,CAAC,IAAI,CAwE5C,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAexF;AAED;;;;;GAKG;AACH,wBAAgB,wCAAwC,CACtD,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,QAAQ,GAAE,MAAc,GACvB,MAAM,CAYR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,EACjD,gBAAgB,CAAC,EAAE,MAAM,GACxB,MAAM,CAuCR;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,oBAAoB,KAC3B,OAAO,CAAC,sBAAsB,CA4NhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,OAAO,KAAK,CAAC;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9G,eAAe,MAAM,EACrB,WAAW,MAAM,EACjB,UAAU;IACR,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,KACA,oBAkGF,CAAC"}
@@ -0,0 +1,455 @@
1
+ /**
2
+ * Payaza Checkout SDK Integration
3
+ * Based on Payaza Web SDK documentation: https://docs.payaza.africa/developers/apis/sdks/web-sdk
4
+ *
5
+ * Implementation uses script tag: https://checkout-v2.payaza.africa/js/v1/bundle.js
6
+ * Method: PayazaCheckout.setup(config).showPopup()
7
+ */
8
+ /**
9
+ * Load Payaza SDK script dynamically
10
+ */
11
+ export const loadPayazaSDK = () => {
12
+ return new Promise((resolve, reject) => {
13
+ // Check if already loaded
14
+ if (window.PayazaCheckout && typeof window.PayazaCheckout.setup === 'function') {
15
+ console.log('Payaza SDK already loaded');
16
+ resolve();
17
+ return;
18
+ }
19
+ // Check if script is already in DOM
20
+ const existingScript = document.querySelector('script[src*="payaza"]');
21
+ if (existingScript) {
22
+ console.log('Payaza script already in DOM, waiting for load...');
23
+ // Wait for it to load
24
+ const checkInterval = setInterval(() => {
25
+ if (window.PayazaCheckout && typeof window.PayazaCheckout.setup === 'function') {
26
+ clearInterval(checkInterval);
27
+ resolve();
28
+ }
29
+ }, 100);
30
+ existingScript.addEventListener('load', () => {
31
+ clearInterval(checkInterval);
32
+ // Give SDK time to initialize
33
+ setTimeout(() => {
34
+ console.log('Existing script loaded, SDK available:', !!(window.PayazaCheckout && typeof window.PayazaCheckout.setup === 'function'));
35
+ resolve();
36
+ }, 300);
37
+ });
38
+ existingScript.addEventListener('error', () => {
39
+ clearInterval(checkInterval);
40
+ reject(new Error('Failed to load Payaza SDK from existing script'));
41
+ });
42
+ return;
43
+ }
44
+ // Payaza SDK script URL (from official documentation)
45
+ const sdkUrl = 'https://checkout-v2.payaza.africa/js/v1/bundle.js';
46
+ // Load the Payaza SDK script
47
+ const script = document.createElement('script');
48
+ script.src = sdkUrl;
49
+ script.defer = true;
50
+ script.onload = () => {
51
+ console.log('Payaza SDK script loaded, waiting for initialization...');
52
+ // Wait for SDK to initialize
53
+ const checkInterval = setInterval(() => {
54
+ if (window.PayazaCheckout && typeof window.PayazaCheckout.setup === 'function') {
55
+ clearInterval(checkInterval);
56
+ console.log('Payaza SDK initialized successfully');
57
+ resolve();
58
+ }
59
+ }, 100);
60
+ // Timeout after 5 seconds
61
+ setTimeout(() => {
62
+ clearInterval(checkInterval);
63
+ if (window.PayazaCheckout && typeof window.PayazaCheckout.setup === 'function') {
64
+ resolve();
65
+ }
66
+ else {
67
+ reject(new Error('Payaza SDK loaded but PayazaCheckout.setup not found'));
68
+ }
69
+ }, 5000);
70
+ };
71
+ script.onerror = () => {
72
+ reject(new Error(`Failed to load Payaza SDK from ${sdkUrl}`));
73
+ };
74
+ document.head.appendChild(script);
75
+ });
76
+ };
77
+ /**
78
+ * Validate and normalize currency to ISO 4217 format (3-letter uppercase code)
79
+ * @param currency - Currency code to validate
80
+ * @returns Validated uppercase ISO 4217 currency code
81
+ * @throws Error if currency cannot be normalized to valid ISO format
82
+ */
83
+ export function validateAndNormalizeCurrency(currency) {
84
+ if (!currency || typeof currency !== 'string') {
85
+ throw new Error('Currency is required and must be a string');
86
+ }
87
+ // Normalize: trim whitespace and convert to uppercase
88
+ const normalized = currency.trim().toUpperCase();
89
+ // Validate: must be exactly 3 uppercase letters (ISO 4217 format)
90
+ const iso4217Pattern = /^[A-Z]{3}$/;
91
+ if (!iso4217Pattern.test(normalized)) {
92
+ throw new Error(`Invalid currency format: "${currency}". Must be a 3-letter ISO 4217 code (e.g., USD, NGN, KES, GHS)`);
93
+ }
94
+ return normalized;
95
+ }
96
+ /**
97
+ * Validate and normalize currency with fallback
98
+ * @param currency - Currency code to validate
99
+ * @param fallback - Fallback currency if validation fails (default: 'USD')
100
+ * @returns Validated uppercase ISO 4217 currency code or fallback
101
+ */
102
+ export function validateAndNormalizeCurrencyWithFallback(currency, fallback = 'USD') {
103
+ try {
104
+ return validateAndNormalizeCurrency(currency);
105
+ }
106
+ catch (error) {
107
+ console.warn(`[Currency] Invalid currency "${currency}", using fallback "${fallback}":`, error);
108
+ try {
109
+ return validateAndNormalizeCurrency(fallback);
110
+ }
111
+ catch (fallbackError) {
112
+ console.error(`[Currency] Fallback currency "${fallback}" is also invalid, using USD`);
113
+ return 'USD';
114
+ }
115
+ }
116
+ }
117
+ /**
118
+ * Extract currency from items with fallback logic
119
+ * Handles mixed currencies by using the most common currency, or first item's currency
120
+ * All currencies are validated and normalized to ISO 4217 format
121
+ */
122
+ export function getCurrencyFromItems(items, fallbackCurrency) {
123
+ if (!items || items.length === 0) {
124
+ return validateAndNormalizeCurrencyWithFallback(fallbackCurrency, 'USD');
125
+ }
126
+ // Extract currencies from items and validate/normalize them
127
+ const currencies = [];
128
+ for (const item of items) {
129
+ if (item.product?.currency) {
130
+ try {
131
+ const validated = validateAndNormalizeCurrency(item.product.currency);
132
+ currencies.push(validated);
133
+ }
134
+ catch (error) {
135
+ console.warn(`[Currency] Invalid currency "${item.product.currency}" in product, skipping:`, error);
136
+ }
137
+ }
138
+ }
139
+ if (currencies.length === 0) {
140
+ return validateAndNormalizeCurrencyWithFallback(fallbackCurrency, 'USD');
141
+ }
142
+ // If all items have the same currency, use it
143
+ const uniqueCurrencies = [...new Set(currencies)];
144
+ if (uniqueCurrencies.length === 1) {
145
+ return uniqueCurrencies[0];
146
+ }
147
+ // If mixed currencies, find the most common one
148
+ const currencyCounts = {};
149
+ currencies.forEach(currency => {
150
+ currencyCounts[currency] = (currencyCounts[currency] || 0) + 1;
151
+ });
152
+ const mostCommonCurrency = Object.entries(currencyCounts).reduce((a, b) => currencyCounts[a[0]] > currencyCounts[b[0]] ? a : b)[0];
153
+ return mostCommonCurrency;
154
+ }
155
+ /**
156
+ * Initialize Payaza checkout using SDK
157
+ * Uses PayazaCheckout.setup() method as per official documentation
158
+ */
159
+ export const initiatePayazaCheckout = async (config) => {
160
+ try {
161
+ // Validate currency before proceeding
162
+ if (!config.currency) {
163
+ throw new Error('Currency is required for Payaza checkout');
164
+ }
165
+ // Validate and normalize currency to ISO 4217 format
166
+ let validatedCurrency;
167
+ try {
168
+ validatedCurrency = validateAndNormalizeCurrency(config.currency);
169
+ }
170
+ catch (error) {
171
+ throw new Error(`Invalid currency code: ${config.currency}. Currency must be a valid 3-letter ISO 4217 code (e.g., USD, NGN, KES, GHS)`);
172
+ }
173
+ // Load SDK if not already loaded with timeout
174
+ const SDK_LOAD_TIMEOUT = 10000; // 10 seconds
175
+ const loadPromise = loadPayazaSDK();
176
+ const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Payaza SDK loading timeout. Please check your internet connection and try again.')), SDK_LOAD_TIMEOUT));
177
+ try {
178
+ await Promise.race([loadPromise, timeoutPromise]);
179
+ }
180
+ catch (loadError) {
181
+ if (loadError?.message?.includes('timeout')) {
182
+ throw new Error('Payment system is loading. Please wait a moment and try again.');
183
+ }
184
+ throw new Error(`Failed to load payment system: ${loadError?.message || 'Unknown error'}`);
185
+ }
186
+ // Wait a bit for SDK to initialize
187
+ await new Promise(resolve => setTimeout(resolve, 200));
188
+ // Generate transaction reference
189
+ const reference = config.reference || `PL${Math.floor((Math.random() * 10000000) + 1)}`;
190
+ // Use PayazaCheckout.setup() method (official implementation)
191
+ if (!window.PayazaCheckout || typeof window.PayazaCheckout.setup !== 'function') {
192
+ throw new Error('Payaza SDK not loaded. PayazaCheckout.setup is not available. Please refresh the page and try again.');
193
+ }
194
+ // Determine connection mode from public key
195
+ const connectionMode = config.publicKey.includes('PKLIVE') ? 'Live' : 'Test';
196
+ // Build comprehensive additional_details metadata
197
+ // This data will be available in Payaza webhooks and transaction responses
198
+ const additionalDetails = {
199
+ // Merge any custom metadata first
200
+ ...(config.metadata || {}),
201
+ };
202
+ // Core order identifiers
203
+ if (config.storeId) {
204
+ additionalDetails.storeId = config.storeId;
205
+ }
206
+ if (config.orderId) {
207
+ additionalDetails.orderId = config.orderId;
208
+ }
209
+ if (config.orderNumber) {
210
+ additionalDetails.orderNumber = config.orderNumber;
211
+ }
212
+ // Customer information
213
+ if (config.email) {
214
+ additionalDetails.customerEmail = config.email;
215
+ }
216
+ if (config.firstName) {
217
+ additionalDetails.customerFirstName = config.firstName;
218
+ }
219
+ if (config.lastName) {
220
+ additionalDetails.customerLastName = config.lastName;
221
+ }
222
+ if (config.phone) {
223
+ additionalDetails.customerPhone = config.phone;
224
+ }
225
+ // Shipping address information
226
+ if (config.shippingAddress) {
227
+ additionalDetails.shippingAddress = {
228
+ firstName: config.shippingAddress.firstName,
229
+ lastName: config.shippingAddress.lastName,
230
+ address: config.shippingAddress.address,
231
+ city: config.shippingAddress.city,
232
+ state: config.shippingAddress.state,
233
+ country: config.shippingAddress.country,
234
+ zipCode: config.shippingAddress.zipCode,
235
+ };
236
+ }
237
+ // Transaction details
238
+ additionalDetails.amount = config.amount;
239
+ additionalDetails.currency = validatedCurrency;
240
+ if (config.description) {
241
+ additionalDetails.description = config.description;
242
+ }
243
+ // Timestamp for tracking
244
+ additionalDetails.timestamp = new Date().toISOString();
245
+ // Setup Payaza checkout with correct configuration
246
+ // Ensure currency_code is validated ISO 4217 format
247
+ const payazaConfig = {
248
+ merchant_key: config.publicKey,
249
+ connection_mode: connectionMode,
250
+ checkout_amount: config.amount,
251
+ currency_code: validatedCurrency, // Use validated ISO 4217 currency code
252
+ email_address: config.email,
253
+ first_name: config.firstName,
254
+ last_name: config.lastName,
255
+ phone_number: config.phone,
256
+ transaction_reference: reference,
257
+ additional_details: additionalDetails,
258
+ };
259
+ // Create checkout instance
260
+ const payazaCheckout = window.PayazaCheckout.setup(payazaConfig);
261
+ // Track payment success state to prevent misleading "Payment canceled" message
262
+ // when checkout window closes after successful payment
263
+ let paymentSuccessful = false;
264
+ // Set callback for payment response
265
+ payazaCheckout.setCallback((callbackResponse) => {
266
+ // TO BE REMOVED FOR PRODUCTION - Temporary logging for debugging
267
+ console.log('=== PAYAZA CHECKOUT SDK CALLBACK DATA (TO BE REMOVED FOR PRODUCTION) ===');
268
+ console.log('Full callback response:', JSON.stringify(callbackResponse, null, 2));
269
+ console.log('=== END OF CALLBACK DATA ===');
270
+ // Parse the callback response structure
271
+ // Payaza returns: { type: "success", status: 201, data: { ... } }
272
+ const isSuccessResponse = callbackResponse.type === 'success' ||
273
+ (callbackResponse.status !== undefined && callbackResponse.status >= 200 && callbackResponse.status < 300);
274
+ if (isSuccessResponse && callbackResponse.data) {
275
+ // Full success response with transaction details
276
+ const successData = callbackResponse.data;
277
+ const transactionRef = successData.transaction_reference ||
278
+ callbackResponse.transactionRef ||
279
+ callbackResponse.reference ||
280
+ reference;
281
+ const fullCallback = {
282
+ type: callbackResponse.type || 'success',
283
+ status: callbackResponse.status || 201,
284
+ data: successData,
285
+ };
286
+ console.log('[Payaza Callback] Transaction successful:', {
287
+ transactionRef,
288
+ payazaReference: successData.payaza_reference,
289
+ amount: successData.transaction_total_amount,
290
+ fee: successData.transaction_fee,
291
+ currency: successData.currency?.code,
292
+ });
293
+ // Mark payment as successful BEFORE calling onSuccess
294
+ // This ensures onClose knows payment succeeded even if it fires immediately after
295
+ paymentSuccessful = true;
296
+ // Call the success handler with full callback data
297
+ if (config.onSuccess) {
298
+ config.onSuccess({
299
+ status: 'success',
300
+ transactionRef,
301
+ message: successData.message || 'Payment successful',
302
+ callbackData: fullCallback,
303
+ });
304
+ }
305
+ }
306
+ else if (isSuccessResponse) {
307
+ // Fallback for older callback format or minimal response
308
+ const transactionRef = callbackResponse.transactionRef ||
309
+ callbackResponse.reference ||
310
+ reference;
311
+ console.log('[Payaza Callback] Transaction reference:', transactionRef);
312
+ // Mark payment as successful
313
+ paymentSuccessful = true;
314
+ // Call the success handler if provided
315
+ if (config.onSuccess) {
316
+ config.onSuccess({
317
+ status: 'success',
318
+ transactionRef,
319
+ message: 'Payment successful',
320
+ });
321
+ }
322
+ }
323
+ });
324
+ // Set onClose handler
325
+ // Only call onClose if payment was not successful (user actually canceled)
326
+ payazaCheckout.setOnClose(() => {
327
+ console.log('Payaza checkout closed', { paymentSuccessful });
328
+ // Only call onClose if payment was not successful
329
+ // This prevents misleading "Payment canceled" message when payment succeeds
330
+ if (!paymentSuccessful && config.onClose) {
331
+ config.onClose();
332
+ }
333
+ // Reset flag for next checkout (if user opens checkout again)
334
+ paymentSuccessful = false;
335
+ });
336
+ // Show the popup
337
+ payazaCheckout.showPopup();
338
+ // Return success - actual payment status comes via callback
339
+ return {
340
+ status: 'success',
341
+ transactionRef: reference,
342
+ message: 'Checkout popup opened',
343
+ };
344
+ }
345
+ catch (error) {
346
+ console.error('Payaza checkout error:', error);
347
+ return {
348
+ status: 'error',
349
+ message: error instanceof Error ? error.message : 'Failed to initialize checkout',
350
+ };
351
+ }
352
+ };
353
+ /**
354
+ * Generate checkout config from cart items
355
+ */
356
+ export const generateCheckoutConfig = (items, customerEmail, publicKey, options) => {
357
+ const totalAmount = items.reduce((sum, item) => sum + item.price * item.quantity, 0);
358
+ const itemCount = items.reduce((sum, item) => sum + item.quantity, 0);
359
+ // Extract currency from items or use provided currency with fallback chain
360
+ // Fallback chain: options.currency → getCurrencyFromItems() → 'USD'
361
+ // CRITICAL: Payaza only accepts ISO 4217 currency codes (e.g., 'NGN', 'USD'), NOT currency symbols (e.g., '₦', '$')
362
+ // All currency values must be validated and normalized to ISO format before use
363
+ let currency;
364
+ try {
365
+ if (options?.currency) {
366
+ // Validate that provided currency is an ISO code, not a symbol
367
+ currency = validateAndNormalizeCurrency(options.currency);
368
+ }
369
+ else {
370
+ // Try to get currency from items
371
+ const itemsCurrency = getCurrencyFromItems(items);
372
+ currency = validateAndNormalizeCurrency(itemsCurrency);
373
+ }
374
+ // Double-check: Ensure currency is a valid 3-letter ISO code
375
+ if (!currency || currency.length !== 3 || !/^[A-Z]{3}$/.test(currency)) {
376
+ throw new Error(`Invalid currency format: "${currency}". Must be a 3-letter ISO 4217 code.`);
377
+ }
378
+ }
379
+ catch (error) {
380
+ console.error('[Checkout Config] Currency validation failed:', {
381
+ providedCurrency: options?.currency,
382
+ error: error?.message,
383
+ fallback: 'USD'
384
+ });
385
+ // Always fallback to USD if validation fails
386
+ currency = 'USD';
387
+ }
388
+ // Build comprehensive payer description
389
+ const customerName = options?.firstName && options?.lastName
390
+ ? `${options.firstName} ${options.lastName}`
391
+ : options?.firstName || options?.lastName || 'Customer';
392
+ // Build shipping address string
393
+ const shippingParts = [];
394
+ if (options?.shippingAddress) {
395
+ const addr = options.shippingAddress;
396
+ if (addr.address)
397
+ shippingParts.push(addr.address);
398
+ if (addr.city)
399
+ shippingParts.push(addr.city);
400
+ if (addr.state)
401
+ shippingParts.push(addr.state);
402
+ if (addr.zipCode)
403
+ shippingParts.push(addr.zipCode);
404
+ if (addr.country)
405
+ shippingParts.push(addr.country);
406
+ }
407
+ const shippingAddressStr = shippingParts.length > 0 ? shippingParts.join(', ') : 'Not provided';
408
+ // Build comprehensive description
409
+ let description = '';
410
+ if (options?.orderNumber) {
411
+ description = `Order #${options.orderNumber} - ${customerName} (${customerEmail})\n`;
412
+ }
413
+ else {
414
+ description = `Order - ${customerName} (${customerEmail})\n`;
415
+ }
416
+ description += `Items: ${itemCount} | Total: ${currency} ${totalAmount.toFixed(2)}\n`;
417
+ description += `Shipping: ${shippingAddressStr}`;
418
+ // Truncate if too long (Payaza may have limits)
419
+ const maxDescriptionLength = 500;
420
+ if (description.length > maxDescriptionLength) {
421
+ description = description.substring(0, maxDescriptionLength - 3) + '...';
422
+ }
423
+ return {
424
+ publicKey,
425
+ amount: totalAmount,
426
+ currency,
427
+ email: customerEmail,
428
+ firstName: options?.firstName,
429
+ lastName: options?.lastName,
430
+ phone: options?.phone,
431
+ description,
432
+ callbackUrl: options?.callbackUrl,
433
+ storeId: options?.storeId,
434
+ orderId: options?.orderId,
435
+ orderNumber: options?.orderNumber,
436
+ shippingAddress: options?.shippingAddress,
437
+ metadata: {
438
+ // Cart items information
439
+ items: items.map(item => ({
440
+ name: item.product.name,
441
+ quantity: item.quantity,
442
+ price: item.price,
443
+ currency: item.product.currency,
444
+ })),
445
+ // Order summary
446
+ itemCount: itemCount,
447
+ totalAmount: totalAmount,
448
+ // Customer information
449
+ customerName: customerName,
450
+ customerEmail: customerEmail,
451
+ // Shipping information
452
+ shippingAddress: shippingAddressStr,
453
+ },
454
+ };
455
+ };
@@ -0,0 +1,58 @@
1
+ export type EventType = 'page_view' | 'product_view' | 'add_to_cart' | 'remove_from_cart' | 'search' | 'category_view' | 'checkout_start' | 'checkout_complete' | 'wishlist_add' | 'wishlist_remove';
2
+ export interface TrackEventParams {
3
+ storeId: string;
4
+ eventType: EventType;
5
+ userId?: string | null;
6
+ metadata?: Record<string, any>;
7
+ }
8
+ /**
9
+ * Analytics service for tracking user events
10
+ */
11
+ declare class AnalyticsService {
12
+ private sessionId;
13
+ private eventQueue;
14
+ private isProcessingQueue;
15
+ private readonly QUEUE_FLUSH_INTERVAL;
16
+ private readonly MAX_QUEUE_SIZE;
17
+ /**
18
+ * Get or create session ID
19
+ */
20
+ getSessionId(): string;
21
+ /**
22
+ * Detect device type
23
+ */
24
+ detectDeviceType(): 'mobile' | 'desktop' | 'tablet' | null;
25
+ /**
26
+ * Extract UTM parameters from URL
27
+ */
28
+ getUTMParams(): {
29
+ utmSource?: string;
30
+ utmMedium?: string;
31
+ utmCampaign?: string;
32
+ utmTerm?: string;
33
+ utmContent?: string;
34
+ };
35
+ /**
36
+ * Get referrer
37
+ */
38
+ getReferrer(): string | null;
39
+ /**
40
+ * Track an event
41
+ */
42
+ trackEvent(params: TrackEventParams): Promise<void>;
43
+ /**
44
+ * Queue an event for later sending
45
+ */
46
+ private queueEvent;
47
+ /**
48
+ * Process queued events
49
+ */
50
+ private processQueue;
51
+ /**
52
+ * Clear session (for logout)
53
+ */
54
+ clearSession(): void;
55
+ }
56
+ export declare const analyticsService: AnalyticsService;
57
+ export {};
58
+ //# sourceMappingURL=analytics.service.d.ts.map