@opexa/portal-components 0.0.65 → 0.0.67

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 (348) hide show
  1. package/dist/components/Account/Account.d.ts +23 -0
  2. package/dist/components/Account/Account.js +107 -0
  3. package/dist/components/Account/AccountTrigger.d.ts +6 -0
  4. package/dist/components/Account/AccountTrigger.js +13 -0
  5. package/dist/components/Account/account.recipe.d.ts +61 -0
  6. package/dist/components/Account/account.recipe.js +32 -0
  7. package/dist/components/Account/index.d.ts +2 -0
  8. package/dist/components/Account/index.js +2 -0
  9. package/dist/components/AccountInfo/AccountInfo.d.ts +4 -0
  10. package/dist/components/AccountInfo/AccountInfo.js +143 -0
  11. package/dist/components/AccountInfo/index.d.ts +1 -0
  12. package/dist/components/AccountInfo/index.js +1 -0
  13. package/dist/components/AccountSecurity/AccountSecurity.d.ts +4 -0
  14. package/dist/components/AccountSecurity/AccountSecurity.js +171 -0
  15. package/dist/components/AccountSecurity/index.d.ts +1 -0
  16. package/dist/components/AccountSecurity/index.js +1 -0
  17. package/dist/components/AccountVerification/AccountVerification.d.ts +4 -0
  18. package/dist/components/AccountVerification/AccountVerification.js +37 -0
  19. package/dist/components/AccountVerification/index.d.ts +1 -0
  20. package/dist/components/AccountVerification/index.js +1 -0
  21. package/dist/components/Banner/Banner.d.ts +11 -0
  22. package/dist/components/Banner/Banner.js +38 -0
  23. package/dist/components/Banner/index.d.ts +1 -0
  24. package/dist/components/Banner/index.js +1 -0
  25. package/dist/components/BetRecords/BetRecords.d.ts +7 -0
  26. package/dist/components/BetRecords/BetRecords.js +181 -0
  27. package/dist/components/BetRecords/index.d.ts +1 -0
  28. package/dist/components/BetRecords/index.js +1 -0
  29. package/dist/components/Bonus/Bonus.client.d.ts +2 -0
  30. package/dist/components/Bonus/Bonus.client.js +9 -0
  31. package/dist/components/Bonus/Bonus.d.ts +10 -0
  32. package/dist/components/Bonus/Bonus.js +5 -0
  33. package/dist/components/Bonus/index.d.ts +1 -0
  34. package/dist/components/Bonus/index.js +1 -0
  35. package/dist/components/Bonuses/Bonuses.client.js +1 -1
  36. package/dist/components/Bonuses/Bonuses.d.ts +15 -0
  37. package/dist/components/Bonuses/Bonuses.js +7 -0
  38. package/dist/components/Bonuses/index.js +1 -1
  39. package/dist/components/Cashback/Cashback.client.d.ts +2 -0
  40. package/dist/components/Cashback/Cashback.client.js +27 -0
  41. package/dist/components/Cashback/Cashback.d.ts +7 -0
  42. package/dist/components/Cashback/Cashback.js +15 -0
  43. package/dist/components/Cashback/index.d.ts +1 -0
  44. package/dist/components/Cashback/index.js +1 -0
  45. package/dist/components/CashbackBonus/CashbackBonus.client.d.ts +2 -0
  46. package/dist/components/CashbackBonus/CashbackBonus.client.js +9 -0
  47. package/dist/components/CashbackBonus/CashbackBonus.d.ts +10 -0
  48. package/dist/components/CashbackBonus/CashbackBonus.js +5 -0
  49. package/dist/components/CashbackBonus/index.d.ts +1 -0
  50. package/dist/components/CashbackBonus/index.js +1 -0
  51. package/dist/components/DepositWithdrawal/AmountChoices.d.ts +11 -0
  52. package/dist/components/DepositWithdrawal/AmountChoices.js +25 -0
  53. package/dist/components/DepositWithdrawal/Deposit/AvailablePromos.d.ts +8 -0
  54. package/dist/components/DepositWithdrawal/Deposit/AvailablePromos.js +31 -0
  55. package/dist/components/DepositWithdrawal/Deposit/Deposit.d.ts +1 -0
  56. package/dist/components/DepositWithdrawal/Deposit/Deposit.js +75 -0
  57. package/dist/components/DepositWithdrawal/Deposit/GCashDeposit/GCashDeposit.d.ts +1 -0
  58. package/dist/components/DepositWithdrawal/Deposit/GCashDeposit/GCashDeposit.js +129 -0
  59. package/dist/components/DepositWithdrawal/Deposit/MayaAppDeposit/MayaAppDeposit.d.ts +1 -0
  60. package/dist/components/DepositWithdrawal/Deposit/MayaAppDeposit/MayaAppDeposit.js +126 -0
  61. package/dist/components/DepositWithdrawal/Deposit/MayaDeposit/MayaDeposit.d.ts +1 -0
  62. package/dist/components/DepositWithdrawal/Deposit/MayaDeposit/MayaDeposit.js +129 -0
  63. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDeposit.d.ts +1 -0
  64. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDeposit.js +10 -0
  65. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositAlert.d.ts +1 -0
  66. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositAlert.js +96 -0
  67. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositContext.d.ts +21 -0
  68. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositContext.js +2 -0
  69. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositDetails.d.ts +1 -0
  70. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositDetails.js +16 -0
  71. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositForm.d.ts +1 -0
  72. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositForm.js +102 -0
  73. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/useOnlineBankDeposit.d.ts +13 -0
  74. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/useOnlineBankDeposit.js +60 -0
  75. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDeposit.d.ts +1 -0
  76. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDeposit.js +10 -0
  77. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositAlert.d.ts +1 -0
  78. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositAlert.js +96 -0
  79. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositContext.d.ts +21 -0
  80. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositContext.js +2 -0
  81. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositDetails.d.ts +1 -0
  82. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositDetails.js +16 -0
  83. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositForm.d.ts +1 -0
  84. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositForm.js +101 -0
  85. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/useQRPHDeposit.d.ts +13 -0
  86. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/useQRPHDeposit.js +60 -0
  87. package/dist/components/DepositWithdrawal/DepositWithdrawal.d.ts +6 -0
  88. package/dist/components/DepositWithdrawal/DepositWithdrawal.js +39 -0
  89. package/dist/components/DepositWithdrawal/DepositWithdrawalTrigger.d.ts +5 -0
  90. package/dist/components/DepositWithdrawal/DepositWithdrawalTrigger.js +21 -0
  91. package/dist/components/DepositWithdrawal/PaymentMethods.d.ts +10 -0
  92. package/dist/components/DepositWithdrawal/PaymentMethods.js +60 -0
  93. package/dist/components/DepositWithdrawal/Withdrawal/GCashWithdrawal/GCashWithdrawal.d.ts +1 -0
  94. package/dist/components/DepositWithdrawal/Withdrawal/GCashWithdrawal/GCashWithdrawal.js +109 -0
  95. package/dist/components/DepositWithdrawal/Withdrawal/InstapayWithdrawal/InstapayWithdrawal.d.ts +1 -0
  96. package/dist/components/DepositWithdrawal/Withdrawal/InstapayWithdrawal/InstapayWithdrawal.js +131 -0
  97. package/dist/components/DepositWithdrawal/Withdrawal/MayaAppWithdrawal/MayaAppWithdrawal.d.ts +1 -0
  98. package/dist/components/DepositWithdrawal/Withdrawal/MayaAppWithdrawal/MayaAppWithdrawal.js +101 -0
  99. package/dist/components/DepositWithdrawal/Withdrawal/MayaWithdrawal/MayaWithdrawal.d.ts +1 -0
  100. package/dist/components/DepositWithdrawal/Withdrawal/MayaWithdrawal/MayaWithdrawal.js +109 -0
  101. package/dist/components/DepositWithdrawal/Withdrawal/Withdrawal.d.ts +1 -0
  102. package/dist/components/DepositWithdrawal/Withdrawal/Withdrawal.js +91 -0
  103. package/dist/components/DepositWithdrawal/index.d.ts +1 -0
  104. package/dist/components/DepositWithdrawal/index.js +1 -0
  105. package/dist/components/DepositWithdrawal/utils.d.ts +3 -0
  106. package/dist/components/DepositWithdrawal/utils.js +9 -0
  107. package/dist/components/Disclaimer/Disclaimer.d.ts +5 -0
  108. package/dist/components/Disclaimer/Disclaimer.js +14 -0
  109. package/dist/components/Disclaimer/index.d.ts +1 -0
  110. package/dist/components/Disclaimer/index.js +1 -0
  111. package/dist/components/Disclaimer/useDisclaimer.d.ts +4 -0
  112. package/dist/components/Disclaimer/useDisclaimer.js +37 -0
  113. package/dist/components/Empty.d.ts +10 -0
  114. package/dist/components/Empty.js +7 -0
  115. package/dist/components/FavoriteGames/FavoriteGames.client.d.ts +2 -0
  116. package/dist/components/FavoriteGames/FavoriteGames.client.js +31 -0
  117. package/dist/components/FavoriteGames/FavoriteGames.d.ts +6 -0
  118. package/dist/components/FavoriteGames/FavoriteGames.js +7 -0
  119. package/dist/components/FavoriteGames/index.d.ts +1 -0
  120. package/dist/components/FavoriteGames/index.js +1 -0
  121. package/dist/components/GameLaunch/GameLaunch.d.ts +1 -0
  122. package/dist/components/GameLaunch/GameLaunch.js +75 -0
  123. package/dist/components/GameLaunch/GameLaunchTrigger.d.ts +7 -0
  124. package/dist/components/GameLaunch/GameLaunchTrigger.js +57 -0
  125. package/dist/components/GameLaunch/index.d.ts +2 -0
  126. package/dist/components/GameLaunch/index.js +2 -0
  127. package/dist/components/GameProviders/GameProviders.d.ts +11 -0
  128. package/dist/components/GameProviders/GameProviders.js +32 -0
  129. package/dist/components/GameProviders/index.d.ts +1 -0
  130. package/dist/components/GameProviders/index.js +1 -0
  131. package/dist/components/Games/BadgeNew.d.ts +2 -0
  132. package/dist/components/Games/BadgeNew.js +4 -0
  133. package/dist/components/Games/BadgePopular.d.ts +2 -0
  134. package/dist/components/Games/BadgePopular.js +4 -0
  135. package/dist/components/Games/BadgeTop.d.ts +2 -0
  136. package/dist/components/Games/BadgeTop.js +4 -0
  137. package/dist/components/Games/Game.d.ts +4 -0
  138. package/dist/components/Games/Game.js +37 -0
  139. package/dist/components/Games/GameContext.d.ts +2 -0
  140. package/dist/components/Games/GameContext.js +2 -0
  141. package/dist/components/Games/Games.d.ts +8 -0
  142. package/dist/components/Games/Games.js +6 -0
  143. package/dist/components/Games/GamesCarousel.client.d.ts +2 -0
  144. package/dist/components/Games/GamesCarousel.client.js +58 -0
  145. package/dist/components/Games/GamesCarousel.d.ts +16 -0
  146. package/dist/components/Games/GamesCarousel.js +11 -0
  147. package/dist/components/Games/GamesList.client.d.ts +2 -0
  148. package/dist/components/Games/GamesList.client.js +14 -0
  149. package/dist/components/Games/GamesList.d.ts +11 -0
  150. package/dist/components/Games/GamesList.js +10 -0
  151. package/dist/components/Games/index.d.ts +1 -0
  152. package/dist/components/Games/index.js +1 -0
  153. package/dist/components/GamesSearch/GamesSearch.d.ts +8 -0
  154. package/dist/components/GamesSearch/GamesSearch.js +45 -0
  155. package/dist/components/GamesSearch/index.d.ts +1 -0
  156. package/dist/components/GamesSearch/index.js +1 -0
  157. package/dist/components/InfiniteScroll.d.ts +10 -0
  158. package/dist/components/InfiniteScroll.js +25 -0
  159. package/dist/components/JackpotCounter/JackpotCounter.client.d.ts +2 -0
  160. package/dist/components/JackpotCounter/JackpotCounter.client.js +57 -0
  161. package/dist/components/JackpotCounter/JackpotCounter.d.ts +8 -0
  162. package/dist/components/JackpotCounter/JackpotCounter.js +21 -0
  163. package/dist/components/JackpotCounter/JackpotCounterItem.d.ts +8 -0
  164. package/dist/components/JackpotCounter/JackpotCounterItem.js +103 -0
  165. package/dist/components/JackpotCounter/index.d.ts +1 -0
  166. package/dist/components/JackpotCounter/index.js +1 -0
  167. package/dist/components/Jackpots/JackpotGameProviders.d.ts +5 -0
  168. package/dist/components/Jackpots/JackpotGameProviders.js +38 -0
  169. package/dist/components/Jackpots/JackpotItemDesktop.d.ts +9 -0
  170. package/dist/components/Jackpots/JackpotItemDesktop.js +43 -0
  171. package/dist/components/Jackpots/JackpotItemMobile.d.ts +9 -0
  172. package/dist/components/Jackpots/JackpotItemMobile.js +44 -0
  173. package/dist/components/Jackpots/JackpotRules.d.ts +6 -0
  174. package/dist/components/Jackpots/JackpotRules.js +9 -0
  175. package/dist/components/Jackpots/Jackpots.client.d.ts +2 -0
  176. package/dist/components/Jackpots/Jackpots.client.js +28 -0
  177. package/dist/components/Jackpots/Jackpots.d.ts +10 -0
  178. package/dist/components/Jackpots/Jackpots.js +21 -0
  179. package/dist/components/Jackpots/index.d.ts +1 -0
  180. package/dist/components/Jackpots/index.js +1 -0
  181. package/dist/components/Jackpots/useJackpotItemData.d.ts +20 -0
  182. package/dist/components/Jackpots/useJackpotItemData.js +87 -0
  183. package/dist/components/KYC/Header.d.ts +1 -0
  184. package/dist/components/KYC/Header.js +6 -0
  185. package/dist/components/KYC/Indicator.d.ts +1 -0
  186. package/dist/components/KYC/Indicator.js +9 -0
  187. package/dist/components/KYC/KYC.d.ts +1 -0
  188. package/dist/components/KYC/KYC.js +26 -0
  189. package/dist/components/KYC/KYCContext.d.ts +2 -0
  190. package/dist/components/KYC/KYCContext.js +2 -0
  191. package/dist/components/KYC/KYCTrigger.d.ts +5 -0
  192. package/dist/components/KYC/KYCTrigger.js +14 -0
  193. package/dist/components/KYC/Step1.d.ts +1 -0
  194. package/dist/components/KYC/Step1.js +12 -0
  195. package/dist/components/KYC/Step2.d.ts +1 -0
  196. package/dist/components/KYC/Step2.js +12 -0
  197. package/dist/components/KYC/Step3.d.ts +1 -0
  198. package/dist/components/KYC/Step3.js +11 -0
  199. package/dist/components/KYC/Step4.d.ts +1 -0
  200. package/dist/components/KYC/Step4.js +6 -0
  201. package/dist/components/KYC/index.d.ts +2 -0
  202. package/dist/components/KYC/index.js +2 -0
  203. package/dist/components/KYC/useKYC.d.ts +10 -0
  204. package/dist/components/KYC/useKYC.js +8 -0
  205. package/dist/components/Marquee/Marquee.d.ts +5 -0
  206. package/dist/components/Marquee/Marquee.js +5 -0
  207. package/dist/components/Marquee/index.d.ts +1 -0
  208. package/dist/components/Marquee/index.js +1 -0
  209. package/dist/components/Messages/MessageItem.d.ts +4 -0
  210. package/dist/components/Messages/MessageItem.js +34 -0
  211. package/dist/components/Messages/MessagePopup.d.ts +1 -0
  212. package/dist/components/Messages/MessagePopup.js +20 -0
  213. package/dist/components/Messages/MessageTrigger.d.ts +8 -0
  214. package/dist/components/Messages/MessageTrigger.js +18 -0
  215. package/dist/components/Messages/Messages.d.ts +14 -0
  216. package/dist/components/Messages/Messages.js +38 -0
  217. package/dist/components/Messages/MessagesTrigger.d.ts +6 -0
  218. package/dist/components/Messages/MessagesTrigger.js +14 -0
  219. package/dist/components/Messages/index.d.ts +4 -0
  220. package/dist/components/Messages/index.js +4 -0
  221. package/dist/components/Messages/utils.d.ts +3 -0
  222. package/dist/components/Messages/utils.js +27 -0
  223. package/dist/components/PortalProvider/PortalProvider.d.ts +9 -0
  224. package/dist/components/PortalProvider/PortalProvider.js +18 -0
  225. package/dist/components/PortalProvider/Providers.d.ts +4 -0
  226. package/dist/components/PortalProvider/Providers.js +12 -0
  227. package/dist/components/PortalProvider/Snackbar.d.ts +1 -0
  228. package/dist/components/PortalProvider/Snackbar.js +21 -0
  229. package/dist/components/PortalProvider/WebVitals.d.ts +1 -0
  230. package/dist/components/PortalProvider/WebVitals.js +8 -0
  231. package/dist/components/PortalProvider/index.d.ts +1 -0
  232. package/dist/components/PortalProvider/index.js +1 -0
  233. package/dist/components/Promo/Promo.client.d.ts +2 -0
  234. package/dist/components/Promo/Promo.client.js +27 -0
  235. package/dist/components/Promo/Promo.d.ts +7 -0
  236. package/dist/components/Promo/Promo.js +15 -0
  237. package/dist/components/Promo/index.d.ts +1 -0
  238. package/dist/components/Promo/index.js +1 -0
  239. package/dist/components/Promos/Cashback.d.ts +7 -0
  240. package/dist/components/Promos/Cashback.js +17 -0
  241. package/dist/components/Promos/Promo.d.ts +7 -0
  242. package/dist/components/Promos/Promo.js +17 -0
  243. package/dist/components/Promos/Promos.d.ts +15 -0
  244. package/dist/components/Promos/Promos.js +13 -0
  245. package/dist/components/Promos/PromosCarousel.d.ts +2 -0
  246. package/dist/components/Promos/PromosCarousel.js +45 -0
  247. package/dist/components/Promos/PromosGrid.d.ts +2 -0
  248. package/dist/components/Promos/PromosGrid.js +16 -0
  249. package/dist/components/Promos/index.d.ts +1 -0
  250. package/dist/components/Promos/index.js +1 -0
  251. package/dist/components/Protected/Protected.d.ts +6 -0
  252. package/dist/components/Protected/Protected.js +8 -0
  253. package/dist/components/Protected/index.d.ts +1 -0
  254. package/dist/components/Protected/index.js +1 -0
  255. package/dist/components/Quests/CountdownTimer.d.ts +15 -0
  256. package/dist/components/Quests/CountdownTimer.js +33 -0
  257. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.d.ts +4 -0
  258. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.js +73 -0
  259. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.d.ts +8 -0
  260. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.js +8 -0
  261. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.d.ts +4 -0
  262. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.js +4 -0
  263. package/dist/components/Quests/Quests.client.d.ts +2 -0
  264. package/dist/components/Quests/Quests.client.js +27 -0
  265. package/dist/components/Quests/Quests.d.ts +6 -0
  266. package/dist/components/Quests/Quests.js +7 -0
  267. package/dist/components/Quests/WageringQuest/WageringQuest.d.ts +4 -0
  268. package/dist/components/Quests/WageringQuest/WageringQuest.js +19 -0
  269. package/dist/components/Quests/WageringQuest/WageringQuestModal.d.ts +9 -0
  270. package/dist/components/Quests/WageringQuest/WageringQuestModal.js +8 -0
  271. package/dist/components/Quests/index.d.ts +1 -0
  272. package/dist/components/Quests/index.js +1 -0
  273. package/dist/components/Search/Search.d.ts +6 -0
  274. package/dist/components/Search/Search.js +38 -0
  275. package/dist/components/Search/SearchTrigger.d.ts +5 -0
  276. package/dist/components/Search/SearchTrigger.js +14 -0
  277. package/dist/components/Search/index.d.ts +2 -0
  278. package/dist/components/Search/index.js +2 -0
  279. package/dist/components/SignIn/MobileNumberSignIn.d.ts +1 -0
  280. package/dist/components/SignIn/MobileNumberSignIn.js +121 -0
  281. package/dist/components/SignIn/NameAndPasswordSignIn.d.ts +1 -0
  282. package/dist/components/SignIn/NameAndPasswordSignIn.js +116 -0
  283. package/dist/components/SignIn/SignIn.d.ts +7 -0
  284. package/dist/components/SignIn/SignIn.js +18 -0
  285. package/dist/components/SignIn/SignInContext.d.ts +2 -0
  286. package/dist/components/SignIn/SignInContext.js +2 -0
  287. package/dist/components/SignIn/SignInForm.d.ts +1 -0
  288. package/dist/components/SignIn/SignInForm.js +10 -0
  289. package/dist/components/SignIn/SignInMethod.d.ts +1 -0
  290. package/dist/components/SignIn/SignInMethod.js +19 -0
  291. package/dist/components/SignIn/SignInTrigger.d.ts +6 -0
  292. package/dist/components/SignIn/SignInTrigger.js +14 -0
  293. package/dist/components/SignIn/index.d.ts +2 -0
  294. package/dist/components/SignIn/index.js +2 -0
  295. package/dist/components/SignIn/useSignIn.d.ts +10 -0
  296. package/dist/components/SignIn/useSignIn.js +11 -0
  297. package/dist/components/SignUp/SignUp.d.ts +7 -0
  298. package/dist/components/SignUp/SignUp.js +16 -0
  299. package/dist/components/SignUp/SignUpForm.d.ts +1 -0
  300. package/dist/components/SignUp/SignUpForm.js +133 -0
  301. package/dist/components/SignUp/SignUpTrigger.d.ts +6 -0
  302. package/dist/components/SignUp/SignUpTrigger.js +14 -0
  303. package/dist/components/SignUp/index.d.ts +2 -0
  304. package/dist/components/SignUp/index.js +2 -0
  305. package/dist/components/TopWins/TopWins.client.d.ts +2 -0
  306. package/dist/components/TopWins/TopWins.client.js +23 -0
  307. package/dist/components/TopWins/TopWins.d.ts +6 -0
  308. package/dist/components/TopWins/TopWins.js +7 -0
  309. package/dist/components/TopWins/index.d.ts +1 -0
  310. package/dist/components/TopWins/index.js +1 -0
  311. package/dist/components/TournamentCounter/TournamentCounter.client.d.ts +2 -0
  312. package/dist/components/TournamentCounter/TournamentCounter.client.js +50 -0
  313. package/dist/components/TournamentCounter/TournamentCounter.d.ts +8 -0
  314. package/dist/components/TournamentCounter/TournamentCounter.js +21 -0
  315. package/dist/components/TournamentCounter/TournamentCounterItem.d.ts +8 -0
  316. package/dist/components/TournamentCounter/TournamentCounterItem.js +106 -0
  317. package/dist/components/TournamentCounter/index.d.ts +1 -0
  318. package/dist/components/TournamentCounter/index.js +1 -0
  319. package/dist/components/Tournaments/TournamentGameProviders.d.ts +5 -0
  320. package/dist/components/Tournaments/TournamentGameProviders.js +38 -0
  321. package/dist/components/Tournaments/TournamentItemDesktop.d.ts +7 -0
  322. package/dist/components/Tournaments/TournamentItemDesktop.js +56 -0
  323. package/dist/components/Tournaments/TournamentItemMobile.d.ts +7 -0
  324. package/dist/components/Tournaments/TournamentItemMobile.js +54 -0
  325. package/dist/components/Tournaments/TournamentRules.d.ts +6 -0
  326. package/dist/components/Tournaments/TournamentRules.js +9 -0
  327. package/dist/components/Tournaments/Tournaments.client.d.ts +2 -0
  328. package/dist/components/Tournaments/Tournaments.client.js +19 -0
  329. package/dist/components/Tournaments/Tournaments.d.ts +10 -0
  330. package/dist/components/Tournaments/Tournaments.js +14 -0
  331. package/dist/components/Tournaments/index.d.ts +1 -0
  332. package/dist/components/Tournaments/index.js +1 -0
  333. package/dist/components/Tournaments/useTournamentItemData.d.ts +16 -0
  334. package/dist/components/Tournaments/useTournamentItemData.js +64 -0
  335. package/dist/components/TransactionRecords/DepositRecordsTable.d.ts +1 -0
  336. package/dist/components/TransactionRecords/DepositRecordsTable.js +76 -0
  337. package/dist/components/TransactionRecords/TableFilters.d.ts +28 -0
  338. package/dist/components/TransactionRecords/TableFilters.js +212 -0
  339. package/dist/components/TransactionRecords/TransactionRecords.d.ts +7 -0
  340. package/dist/components/TransactionRecords/TransactionRecords.js +9 -0
  341. package/dist/components/TransactionRecords/TransactionRecordsTable.d.ts +1 -0
  342. package/dist/components/TransactionRecords/TransactionRecordsTable.js +51 -0
  343. package/dist/components/TransactionRecords/WithdrawalRecordsTable.d.ts +1 -0
  344. package/dist/components/TransactionRecords/WithdrawalRecordsTable.js +70 -0
  345. package/dist/components/TransactionRecords/index.d.ts +1 -0
  346. package/dist/components/TransactionRecords/index.js +1 -0
  347. package/dist/components/index.js +34 -0
  348. package/package.json +2 -3
@@ -0,0 +1,73 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { addDays, isEqual, startOfDay } from 'date-fns';
4
+ import { useState } from 'react';
5
+ import { twMerge } from 'tailwind-merge';
6
+ import { useCheckInDailyCheckInQuestMutation } from '../../../client/hooks/index.js';
7
+ import { toaster } from '../../../client/utils/index.js';
8
+ import { CalendarIcon, CheckIcon, ClockStopWatchIcon, InfoCircleIcon, } from '../../../icons/index.js';
9
+ import { Badge, Button } from '../../../ui/index.js';
10
+ import { getAvailableQuestsQueryKey, getQueryClient } from '../../../utils/index.js';
11
+ import CountdownTimer from '../CountdownTimer.js';
12
+ import { DailyCheckInQuestModal } from './DailyCheckInQuestModal.js';
13
+ export function DailyCheckInQuest({ quest }) {
14
+ const queryClient = getQueryClient();
15
+ const [showRules, setShowRules] = useState(false);
16
+ const [isExpired, setIsExpired] = useState(false);
17
+ const { name, description, status, lastCheckInDate, progressPercentage, checkInStreak, thirdDayBonusAmount, sixthDayBonusAmount, seventhDayBonusAmount, endDateTime, id, } = quest;
18
+ const today = startOfDay(new Date());
19
+ const hasCheckedInToday = lastCheckInDate
20
+ ? isEqual(today, startOfDay(new Date(lastCheckInDate)))
21
+ : false;
22
+ const checkedInRewards = {
23
+ 3: thirdDayBonusAmount,
24
+ 6: sixthDayBonusAmount,
25
+ 7: seventhDayBonusAmount,
26
+ };
27
+ const dailyCheckedInData = Array.from({ length: 7 }, (_, i) => {
28
+ const day = i + 1;
29
+ return {
30
+ day,
31
+ reward: checkedInRewards[day] ?? 0,
32
+ };
33
+ });
34
+ const { mutate } = useCheckInDailyCheckInQuestMutation({
35
+ onSuccess() {
36
+ toaster.success({
37
+ title: 'Check-in successful 🎉',
38
+ description: 'You’ve successfully checked in for today! Keep it up to maintain your streak!',
39
+ });
40
+ queryClient.invalidateQueries({
41
+ queryKey: getAvailableQuestsQueryKey(),
42
+ });
43
+ },
44
+ onError(e) {
45
+ toaster.error({
46
+ title: 'Check-in successful 🎉',
47
+ description: e.message ?? 'Check-In Failed',
48
+ });
49
+ },
50
+ });
51
+ const handleCheckIn = async () => mutate(id);
52
+ return (_jsxs(_Fragment, { children: [_jsx(DailyCheckInQuestModal, { modalState: {
53
+ isOpen: showRules,
54
+ setIsOpen: setShowRules,
55
+ } }), _jsxs("div", { className: "border-border-primary bg-bg-tertiary flex h-full w-full flex-col space-y-6 rounded-2xl border px-4 pb-6 pt-5", children: [_jsxs("div", { className: "flex flex-col space-y-2", children: [_jsxs("div", { className: "flex max-h-7.5 items-start justify-between", children: [_jsx(CountdownTimer, { endDateTime: endDateTime, renderAction: (timeLeft) => (_jsxs(Badge.Root, { size: "lg", colorScheme: "brand", round: false, children: [_jsx(Badge.Icon, { children: _jsx(ClockStopWatchIcon, {}) }), _jsxs(Badge.Label, { children: [timeLeft.days, "d:", timeLeft.hours, "h:", timeLeft.minutes, "m:", timeLeft.seconds, "s"] })] })), onEnd: () => setIsExpired(true) }), _jsx("div", { role: "button", className: "bg-bg-primary border-border-secondary flex size-9 cursor-pointer items-center justify-center rounded-md border", onClick: () => setShowRules((prev) => !prev), children: _jsx(InfoCircleIcon, { className: "text-text-disabled size-5" }) })] }), _jsx("p", { className: "text-xl font-semibold", children: name }), _jsx("p", { className: "text-text-secondary-700 text-wrap text-sm font-normal", dangerouslySetInnerHTML: { __html: description } })] }), _jsxs("div", { className: "flex w-full flex-col space-y-2", children: [_jsx("div", { className: "grid grid-cols-7", children: dailyCheckedInData.map((item) => {
56
+ const reward = item.reward ? `+₱${item.reward}` : '-';
57
+ return (_jsx("div", { className: twMerge('flex items-center justify-center', item.day <= (checkInStreak || 0)
58
+ ? 'text-brand-400'
59
+ : 'text-text-secondary-700'), children: _jsx("p", { children: reward }) }, item.day));
60
+ }) }), _jsx("div", { className: "bg-bg-primary h-2 w-full overflow-hidden rounded-full", children: _jsx("div", { className: "bg-utility-brand-600 h-full rounded-full transition-all duration-300", style: { width: `${progressPercentage}%` } }) }), _jsx("div", { className: "grid grid-cols-7", children: dailyCheckedInData.map((item) => (_jsx("div", { className: "flex items-center justify-center", children: _jsx(CalendarWithDayNumber, { day: item.day, currentCheckedInDays: checkInStreak || 0 }, item.day) }, item.day))) })] }), _jsx(Button, { onClick: handleCheckIn, className: "disabled:bg-bg-primary disabled:text-text-disabled", disabled: isExpired ||
61
+ status === 'COMPLETED' ||
62
+ status === 'FAILED' ||
63
+ hasCheckedInToday, children: hasCheckedInToday && status === 'IN_PROGRESS' ? (_jsx(CountdownTimer, { endDateTime: startOfDay(addDays(new Date(), 1)).toISOString(), renderAction: (timeLeft) => (_jsxs("div", { className: "flex items-center space-x-0.5", children: [_jsx(CheckIcon, {}), _jsxs("p", { children: [timeLeft.hours, "h:", timeLeft.minutes, "m:", timeLeft.seconds, "s"] })] })), onEnd: () => {
64
+ queryClient.invalidateQueries({
65
+ queryKey: getAvailableQuestsQueryKey(),
66
+ });
67
+ } })) : ('Check-In') })] })] }));
68
+ }
69
+ function CalendarWithDayNumber({ day, currentCheckedInDays, }) {
70
+ return (_jsxs("div", { className: twMerge('group relative h-fit w-fit', day <= currentCheckedInDays
71
+ ? 'text-brand-400'
72
+ : 'text-text-secondary-700'), children: [_jsx(CalendarIcon, {}), _jsx("div", { className: "absolute inset-0 mt-1 flex items-center justify-center text-2xs lg:mt-[2px]", children: _jsx("p", { className: "text-center", children: day }) })] }));
73
+ }
@@ -0,0 +1,8 @@
1
+ interface Props {
2
+ modalState: {
3
+ isOpen: boolean;
4
+ setIsOpen: (isOpen: boolean) => void;
5
+ };
6
+ }
7
+ export declare function DailyCheckInQuestModal(props: Props): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Portal } from '@ark-ui/react';
4
+ import { XIcon } from '../../../icons/index.js';
5
+ import { Button, Dialog } from '../../../ui/index.js';
6
+ export function DailyCheckInQuestModal(props) {
7
+ return (_jsx(Dialog.Root, { lazyMount: true, unmountOnExit: true, open: props.modalState.isOpen, onOpenChange: ({ open }) => props.modalState.setIsOpen(open), closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+1)]" }), _jsx(Dialog.Positioner, { className: "!z-[calc(var(--z-dialog)+2)] flex items-center justify-center", children: _jsxs(Dialog.Content, { className: "min-h-auto mx-auto max-w-[343px] rounded-xl px-4 pb-0 pt-5", children: [_jsx(Dialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsxs("div", { className: "flex flex-col space-y-5", children: [_jsx("p", { className: "text-text-primary-900 text-lg font-semibold", children: "Daily Check-In Rules" }), _jsxs("ul", { className: "text-text-tertiary-600 group list-disc text-wrap pl-4 text-sm font-normal", children: [_jsx("li", { children: "Earn rewards just for checking in each day!" }), _jsx("li", { children: "Stay consistent to unlock special rewards on the 3rd, 5th, and 7th day." }), _jsx("li", { children: "Missing a day will reset your streak, starting again from Day 1." }), _jsx("li", { children: "Each check-in unlocks the next one on the following day." }), _jsx("li", { children: "Successfully check in for 7 consecutive days to complete the quest and reset the cycle." })] })] }), _jsx("div", { className: "pb-4 pt-6", children: _jsx(Button, { onClick: () => props.modalState.setIsOpen(false), children: "Ok" }) })] }) })] }) }));
8
+ }
@@ -0,0 +1,4 @@
1
+ import type { Quest } from '@opexa/portal-sdk-core';
2
+ export declare function OnboardingQuest(props: {
3
+ quest: Quest;
4
+ }): null;
@@ -0,0 +1,4 @@
1
+ export function OnboardingQuest(props) {
2
+ console.log('OnboardingQuest not implemented', props.quest);
3
+ return null;
4
+ }
@@ -0,0 +1,2 @@
1
+ import type { QuestsProps } from './Quests';
2
+ export declare function Quests__client(props: QuestsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,27 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import Image from 'next/image';
4
+ import { useAvailableQuestsQuery } from '../../client/hooks/index.js';
5
+ import { SpinnerIcon } from '../../icons/index.js';
6
+ import closeChest from '../../images/close-chest.png';
7
+ import { DailyCheckInQuest } from './DailyCheckInQuest/DailyCheckInQuest.js';
8
+ import { OnboardingQuest } from './OnboardingQuest/OnboardingQuest.js';
9
+ import { WageringQuest } from './WageringQuest/WageringQuest.js';
10
+ const QUEST_COMPONENT_MAP = {
11
+ DAILY_CHECKIN: DailyCheckInQuest,
12
+ ONBOARDING: OnboardingQuest,
13
+ WAGERING: WageringQuest,
14
+ };
15
+ export function Quests__client(props) {
16
+ const query = useAvailableQuestsQuery();
17
+ if (query.isLoading) {
18
+ return (_jsxs("div", { className: props.className, children: [_jsx("h3", { className: "mb-3 text-lg font-semibold", children: props.heading ?? 'Quests' }), _jsx(SpinnerIcon, { className: "mx-auto size-5 h-[50vh]" })] }));
19
+ }
20
+ if (!query.data?.length) {
21
+ return (_jsxs("div", { className: props.className, children: [_jsx("h3", { className: "mb-3 text-lg font-semibold", children: props.heading ?? 'Quests' }), _jsxs("div", { className: "mt-11 flex flex-col items-center justify-center", children: [_jsx(Image, { src: closeChest, width: 100, height: 100, alt: "No Quests Available", className: "mix-blend-luminosity", quality: 100 }), _jsx("div", { className: "text-text-primary-900 mt-4 text-base font-semibold", children: props.heading ?? 'Quests' }), _jsx("div", { className: "text-text-tertiary-600 mt-1 text-center text-sm", children: "No available quests. Please check back later!" })] })] }));
22
+ }
23
+ return (_jsxs("div", { className: props.className, children: [_jsx("h3", { className: "mb-3 text-lg font-semibold", children: props.heading ?? 'Quests' }), _jsx("div", { className: "grid grid-cols-1 gap-3xl lg:grid-cols-3", children: query.data.map((quest, index) => {
24
+ const QuestComponent = QUEST_COMPONENT_MAP[quest.type];
25
+ return _jsx(QuestComponent, { quest: quest }, index);
26
+ }) })] }));
27
+ }
@@ -0,0 +1,6 @@
1
+ export interface QuestsProps {
2
+ /** @default "Quests" */
3
+ heading?: string;
4
+ className?: string;
5
+ }
6
+ export declare function Quests(props: QuestsProps): Promise<import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { prefetchAvailableQuestsQuery } from '../../server/utils/index.js';
3
+ import { Quests__client } from './Quests.client.js';
4
+ export async function Quests(props) {
5
+ await prefetchAvailableQuestsQuery();
6
+ return _jsx(Quests__client, { ...props });
7
+ }
@@ -0,0 +1,4 @@
1
+ import type { Quest } from '@opexa/portal-sdk-core';
2
+ export declare function WageringQuest({ quest }: {
3
+ quest: Quest;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { ClockStopWatchIcon, InfoCircleIcon } from '../../../icons/index.js';
6
+ import { Badge } from '../../../ui/index.js';
7
+ import CountdownTimer from '../CountdownTimer.js';
8
+ import { WageringQuestModal } from './WageringQuestModal.js';
9
+ export function WageringQuest({ quest }) {
10
+ const [showRules, setShowRules] = useState(false);
11
+ const [isExpired, setIsExpired] = useState(false);
12
+ const { progressPercentage, turnover, targetTurnover, name, description, endDateTime, bonus, status, } = quest;
13
+ return (_jsxs(_Fragment, { children: [_jsx(WageringQuestModal, { questName: name, modalState: {
14
+ isOpen: showRules,
15
+ setIsOpen: setShowRules,
16
+ } }), _jsxs("div", { className: "border-border-primary bg-bg-tertiary flex h-full w-full flex-col space-y-6 rounded-2xl border px-4 pb-6 pt-5", children: [_jsxs("div", { className: "flex flex-col space-y-2", children: [_jsxs("div", { className: "flex max-h-7.5 items-start justify-between", children: [_jsx(CountdownTimer, { endDateTime: endDateTime, renderAction: (timeLeft) => (_jsxs(Badge.Root, { size: "lg", colorScheme: "brand", round: false, children: [_jsx(Badge.Icon, { children: _jsx(ClockStopWatchIcon, {}) }), _jsxs(Badge.Label, { children: [timeLeft.days, "d:", timeLeft.hours, "h:", timeLeft.minutes, "m:", timeLeft.seconds, "s"] })] })), onEnd: () => setIsExpired(true) }), _jsx("div", { role: "button", className: "bg-bg-primary border-border-secondary flex size-9 cursor-pointer items-center justify-center rounded-md border", onClick: () => setShowRules((prev) => !prev), children: _jsx(InfoCircleIcon, { className: "text-text-disabled size-5" }) })] }), _jsx("p", { className: "text-xl font-semibold", children: name }), _jsx("p", { className: "text-text-secondary-700 text-wrap text-sm font-normal", dangerouslySetInnerHTML: { __html: description } })] }), _jsxs("div", { className: "flex w-full flex-col space-y-2", children: [_jsxs("div", { className: "text-text-primary-brand group flex items-center justify-between", children: [_jsxs("p", { children: ["Progress ", parseInt(progressPercentage).toFixed(2), "%"] }), _jsxs("p", { children: [turnover, _jsxs("span", { className: "text-text-quarterary-brand", children: ["/", targetTurnover, " PHP"] })] })] }), _jsx("div", { className: "bg-bg-primary h-2 w-full overflow-hidden rounded-full", children: _jsx("div", { className: "bg-utility-brand-600 h-full rounded-full transition-all duration-300", style: { width: `${progressPercentage}%` } }) })] }), _jsx("div", { className: "flex h-full items-end", children: _jsx("div", { className: "bg-button-secondary-bg border-bg-primary-hover w-full rounded-md border px-3.5 py-2.5 text-center text-white", children: _jsxs("p", { className: twMerge(isExpired || status === 'COMPLETED' || status === 'FAILED'
17
+ ? ['opacity-50 grayscale']
18
+ : ''), children: ["Complete to get ", _jsxs("span", { className: "text-brand-400", children: ["\u20B1", bonus] }), ' ', "bonus!"] }) }) })] })] }));
19
+ }
@@ -0,0 +1,9 @@
1
+ interface Props {
2
+ questName: string;
3
+ modalState: {
4
+ isOpen: boolean;
5
+ setIsOpen: (isOpen: boolean) => void;
6
+ };
7
+ }
8
+ export declare function WageringQuestModal(props: Props): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Portal } from '@ark-ui/react';
4
+ import { XIcon } from '../../../icons/index.js';
5
+ import { Button, Dialog } from '../../../ui/index.js';
6
+ export function WageringQuestModal(props) {
7
+ return (_jsx(Dialog.Root, { lazyMount: true, unmountOnExit: true, open: props.modalState.isOpen, onOpenChange: ({ open }) => props.modalState.setIsOpen(open), closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+1)]" }), _jsx(Dialog.Positioner, { className: "!z-[calc(var(--z-dialog)+2)] flex items-center justify-center", children: _jsxs(Dialog.Content, { className: "min-h-auto mx-auto max-w-[343px] rounded-xl px-4 pb-0 pt-5", children: [_jsx(Dialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsxs("div", { className: "flex flex-col space-y-5", children: [_jsx("p", { className: "text-text-primary-900 text-lg font-semibold", children: props.questName }), _jsxs("ul", { className: "text-text-tertiary-600 group list-disc text-wrap pl-4 text-sm font-normal", children: [_jsx("li", { children: "Earn extra rewards just by playing Slots, every bet counts, win or lose!" }), _jsx("li", { children: "Reach the wagering requirement in bets to complete the quest and claim your reward." })] })] }), _jsx("div", { className: "pb-4 pt-6", children: _jsx(Button, { onClick: () => props.modalState.setIsOpen(false), children: "Ok" }) })] }) })] }) }));
8
+ }
@@ -0,0 +1 @@
1
+ export * from './Quests';
@@ -0,0 +1 @@
1
+ export * from './Quests.js';
@@ -0,0 +1,6 @@
1
+ import { type ImageProps } from 'next/image';
2
+ interface SearchProps {
3
+ logo: ImageProps['src'];
4
+ }
5
+ export declare function Search(props: SearchProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,38 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Portal } from '@ark-ui/react';
4
+ import Image, {} from 'next/image';
5
+ import { useRef, useState } from 'react';
6
+ import { useShallow } from 'zustand/shallow';
7
+ import { useGamesQuery, useGlobalStore } from '../../client/hooks/index.js';
8
+ import { SearchLgIcon, XIcon } from '../../icons/index.js';
9
+ import providerHacksaw from '../../images/hacksaw-gaming.png';
10
+ import { Button, Dialog, Field, IconButton, Presence } from '../../ui/index.js';
11
+ import { GameLaunchTrigger } from '../GameLaunch/index.js';
12
+ export function Search(props) {
13
+ const globalStore = useGlobalStore(useShallow((ctx) => ({
14
+ search: ctx.search,
15
+ })));
16
+ const inputRef = useRef(null);
17
+ const [search, setSearch] = useState('');
18
+ const gamesQuery = useGamesQuery({
19
+ first: 18,
20
+ search,
21
+ }, {
22
+ enabled: search.length >= 3,
23
+ });
24
+ const games = gamesQuery.data?.pages
25
+ .map((page) => page.edges.map((edge) => edge.node))
26
+ .flat() ?? [];
27
+ return (_jsx(Dialog.Root, { open: globalStore.search.open, onOpenChange: (details) => globalStore.search.setOpen(details.open), lazyMount: true, unmountOnExit: true, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, {}), _jsx(Dialog.Positioner, { children: _jsxs(Dialog.Content, { className: "bg-bg-primary lg:min-h-auto mx-auto min-h-full w-full pt-xl lg:mt-[132px] lg:max-w-[1136px] lg:bg-unset lg:pt-0", children: [_jsx(Dialog.Context, { children: (api) => (_jsxs("div", { className: "flex items-center justify-between px-4 lg:hidden", children: [_jsx(Image, { src: props.logo, alt: "", width: 200, height: 40, className: "h-8 w-auto" }), _jsx(IconButton, { size: "sm", colorScheme: "gray", onClick: () => api.setOpen(false), children: _jsx(XIcon, { className: "text-text-quinary size-6" }) })] })) }), _jsx("div", { className: "flex justify-end", children: _jsx(Dialog.Context, { children: (api) => (_jsx("button", { type: "button", onClick: () => api.setOpen(false), className: "hidden size-9 items-center justify-center rounded-md bg-white/20 lg:flex", children: _jsx(XIcon, { className: "size-5 text-white" }) })) }) }), _jsx("div", { className: "mt-2xl px-4 lg:mt-xl lg:px-0", children: _jsxs("div", { className: "relative", children: [_jsx(SearchLgIcon, { className: "text-text-quinary pointer-events-none absolute left-3.5 top-1/2 size-5 -translate-y-1/2" }), _jsx(Field.Input, { ref: inputRef, type: "search", value: search, onChange: (e) => {
28
+ setSearch(e.target.value);
29
+ }, className: "pl-10 pr-16", placeholder: "Search", autoComplete: "off" }), _jsx(Presence, { present: search.length > 0, asChild: true, lazyMount: true, children: _jsx("button", { type: "button", className: "text-text-secondary-700 absolute right-3.5 top-1/2 -translate-y-1/2 font-semibold", onClick: () => {
30
+ setSearch('');
31
+ inputRef.current?.focus();
32
+ }, children: "Clear" }) })] }) }), _jsx("div", { className: "lg:bg-bg-primary lg:border-border-primary mt-2xl p-xl pb-3xl lg:mt-2 lg:rounded-xl lg:border", children: search.length <= 0 ? (_jsx(Alert, { message: "Search for your favorite game or provider." })) : search.length >= 1 && search.length <= 2 ? (_jsx(Alert, { message: "Search requires at least 3 characters." })) : (_jsxs(_Fragment, { children: [games.length <= 0 && _jsx(Alert, { message: "No results found" }), games.length > 0 && (_jsxs(_Fragment, { children: [_jsx("h2", { className: "text-lg font-semibold", children: "Providers" }), _jsx("div", { className: "mb-3xl mt-3.5 grid grid-cols-3 gap-1.5 lg:grid-cols-9 lg:gap-3.5", children: _jsx("div", { className: "bg-gray-800 flex h-14 w-full items-center rounded-md", children: _jsx(Image, { src: providerHacksaw, alt: "", width: 100, height: 50, className: "mx-auto h-auto w-full" }) }) }), _jsx("h2", { className: "text-lg font-semibold", children: "Games" }), _jsx("div", { className: "mt-3.5 grid grid-cols-3 gap-1.5 lg:grid-cols-9 lg:gap-3.5", children: games.map((game) => (_jsxs(GameLaunchTrigger, { game: game, className: "block w-full shadow-sm", onClick: () => {
33
+ globalStore.search.setOpen(false);
34
+ }, children: [_jsx(Image, { src: game.image, alt: "", width: 200, height: 200, priority: true, className: "aspect-square w-full rounded-t-md object-cover" }), _jsx("span", { className: "bg-bg-tertiary text-text-primary-brand block w-full truncate rounded-b-md px-2 py-2.5 text-center text-xs font-semibold", children: game.name })] }, game.id))) }), _jsx(Presence, { present: gamesQuery.hasNextPage, children: _jsx(Button, { variant: "outline", className: "mx-auto mt-12 w-fit", onClick: () => gamesQuery.fetchNextPage(), children: "Load More" }) })] }))] })) })] }) })] }) }));
35
+ }
36
+ function Alert({ message }) {
37
+ return (_jsxs("div", { className: "py-lg", role: "alert", "aria-live": "polite", children: [_jsx("div", { className: "bg-bg-secondary shadow-xs border-border-primary mx-auto flex size-12 items-center justify-center rounded-lg border", children: _jsx(SearchLgIcon, { className: "text-text-secondary-700 size-6" }) }), _jsx("p", { className: "text-text-secondary-700 mt-4 text-center", children: message })] }));
38
+ }
@@ -0,0 +1,5 @@
1
+ import type { ComponentPropsWithRef } from 'react';
2
+ export interface SearchTriggerProps extends ComponentPropsWithRef<'button'> {
3
+ asChild?: boolean;
4
+ }
5
+ export declare function SearchTrigger(props: SearchTriggerProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { ark } from '@ark-ui/react';
4
+ import { useShallow } from 'zustand/shallow';
5
+ import { useGlobalStore } from '../../client/hooks/index.js';
6
+ export function SearchTrigger(props) {
7
+ const globalStore = useGlobalStore(useShallow((ctx) => ({
8
+ search: ctx.search,
9
+ })));
10
+ return (_jsx(ark.button, { type: "button", "aria-label": "Search", "data-state": globalStore.search.open ? 'open' : 'closed', ...props, onClick: (e) => {
11
+ globalStore.search.setOpen(!globalStore.search.open);
12
+ return props.onClick?.(e);
13
+ } }));
14
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Search';
2
+ export * from './SearchTrigger';
@@ -0,0 +1,2 @@
1
+ export * from './Search.js';
2
+ export * from './SearchTrigger.js';
@@ -0,0 +1 @@
1
+ export declare function MobileNumberSignIn(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,121 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useDialogContext } from '@ark-ui/react';
3
+ import { zodResolver } from '@hookform/resolvers/zod';
4
+ import { useRef } from 'react';
5
+ import { Controller, useForm } from 'react-hook-form';
6
+ import { z } from 'zod';
7
+ import { useShallow } from 'zustand/shallow';
8
+ import { useCooldown, useGlobalStore, useLocaleInfo, useMobileNumberParser, useSendVerificationCodeMutation, useSignInMutation, } from '../../client/hooks/index.js';
9
+ import { toaster } from '../../client/utils/index.js';
10
+ import { ArrowLeftIcon, CheckIcon, FacebookIcon, GoogleIcon, } from '../../icons/index.js';
11
+ import { Button, Checkbox, Field, PinInput } from '../../ui/index.js';
12
+ import { useSignInContext } from './SignInContext.js';
13
+ export function MobileNumberSignIn() {
14
+ const context = useSignInContext();
15
+ const dialog = useDialogContext();
16
+ const signUpStore = useGlobalStore(useShallow((popups) => popups.signUp));
17
+ const signInMutation = useSignInMutation();
18
+ const sendVerificationCodeMutation = useSendVerificationCodeMutation();
19
+ const localeInfo = useLocaleInfo();
20
+ const mobileNumberParser = useMobileNumberParser();
21
+ const Step1Definition = z.object({
22
+ mobileNumber: z.string().superRefine((v, ctx) => {
23
+ if (!mobileNumberParser.validate(v)) {
24
+ ctx.addIssue({
25
+ code: z.ZodIssueCode.custom,
26
+ message: 'Invalid mobile number',
27
+ });
28
+ }
29
+ }),
30
+ termsAccepted: z.boolean().superRefine((v, ctx) => {
31
+ if (!v) {
32
+ ctx.addIssue({
33
+ code: z.ZodIssueCode.custom,
34
+ message: 'You must accept the terms and conditions',
35
+ });
36
+ }
37
+ }),
38
+ });
39
+ const Step2Definition = z.object({
40
+ verificationCode: z.array(z.string().min(1).max(1).trim()).min(6).max(6),
41
+ });
42
+ const step1Form = useForm({
43
+ resolver: zodResolver(Step1Definition),
44
+ defaultValues: {
45
+ mobileNumber: '',
46
+ termsAccepted: false,
47
+ },
48
+ });
49
+ const step2Form = useForm({
50
+ resolver: zodResolver(Step2Definition),
51
+ defaultValues: {
52
+ verificationCode: Array.from({ length: 6 }).fill(''),
53
+ },
54
+ });
55
+ const cooldown = useCooldown({
56
+ max: 60,
57
+ duration: 1000 * 60,
58
+ });
59
+ const form2Ref = useRef(null);
60
+ return (_jsxs(_Fragment, { children: [context.step === 1 && (_jsxs(_Fragment, { children: [_jsxs("form", { className: "mt-3xl", onSubmit: step1Form.handleSubmit(async (data) => {
61
+ try {
62
+ await sendVerificationCodeMutation.mutateAsync({
63
+ channel: 'SMS',
64
+ recipient: mobileNumberParser.format(data.mobileNumber),
65
+ strict: true,
66
+ });
67
+ context.setStep(2);
68
+ cooldown.start();
69
+ }
70
+ catch (e) {
71
+ toaster.error({
72
+ description: e instanceof Error
73
+ ? e.message
74
+ : 'Failed to send verification code',
75
+ });
76
+ }
77
+ }), children: [_jsxs(Field.Root, { invalid: !!step1Form.formState.errors.mobileNumber, children: [_jsx(Field.Label, { children: "Mobile Number" }), _jsxs("div", { className: "relative", children: [_jsx(localeInfo.country.flag, { className: "absolute left-3.5 top-1/2 size-5 shrink-0 -translate-y-1/2" }), _jsx(Field.Input, { className: "pl-11", placeholder: `${localeInfo.mobileNumber.areaCode}${localeInfo.mobileNumber.example}`, ...step1Form.register('mobileNumber') })] }), _jsx(Field.ErrorText, { children: step1Form.formState.errors.mobileNumber?.message })] }), _jsx(Button, { type: "submit", className: "mt-3xl", disabled: step1Form.formState.isSubmitting, children: "Log In" }), _jsx(Controller, { control: step1Form.control, name: "termsAccepted", render: (o) => (_jsxs(Checkbox.Root, { className: "mt-xl", invalid: o.fieldState.invalid, checked: o.field.value, onCheckedChange: (details) => {
78
+ o.field.onChange(details.checked);
79
+ }, children: [_jsx(Checkbox.Control, { children: _jsx(Checkbox.Indicator, { asChild: true, children: _jsx(CheckIcon, {}) }) }), _jsxs(Checkbox.Label, { children: ["I am at least 21 years of age and I accept the", ' ', _jsx("span", { className: "text-brand-400 whitespace-nowrap underline underline-offset-2", children: "Terms and Conditions." })] }), _jsx(Checkbox.HiddenInput, {})] })) })] }), _jsxs("div", { className: "relative mt-6 text-center", children: [_jsx("hr", { className: "-translte-y-1/2 text-text-tertiary-600/50 absolute top-1/2 w-full" }), _jsx("span", { className: "text-text-tertiary-600 bg-bg-primary-alt relative px-md text-center text-sm font-semibold", children: "Log in directly with" })] }), _jsxs("div", { className: "mt-6", children: [_jsxs(Button, { variant: "outline", colorScheme: "gray", onClick: () => {
80
+ dialog.setOpen(false);
81
+ }, className: "border-border-primary bg-bg-primary text-text-secondary-700", children: [_jsx(GoogleIcon, { className: "size-6" }), "Continue with Google"] }), _jsxs(Button, { variant: "outline", colorScheme: "gray", onClick: () => {
82
+ dialog.setOpen(false);
83
+ }, className: "border-border-primary bg-bg-primary text-text-secondary-700 mt-lg", children: [_jsx(FacebookIcon, { className: "size-6" }), "Continue with Facebook"] })] }), _jsxs("div", { className: "mt-6 flex w-full items-center justify-center gap-xs text-sm", children: [_jsx("span", { className: "text-text-tertiary-600", children: "Don't have an account?" }), _jsx("button", { type: "submit", className: "text-button-tertiary-fg font-semibold", onClick: () => {
84
+ dialog.setOpen(false);
85
+ signUpStore.setOpen(true);
86
+ }, children: "Sign up" })] })] })), context.step === 2 && (_jsxs(_Fragment, { children: [_jsx("h2", { className: "mt-xl text-center text-lg font-semibold", children: "Check your Phone" }), _jsxs("p", { className: "text-text-secondary-700 mt-xs text-center text-sm", children: ["We\u2019ve sent a verification code to your mobile number", ' ', _jsx("span", { className: "font-semibold", children: mobileNumberParser.format(step1Form.getValues('mobileNumber')) }), ' ', "via text"] }), _jsxs("form", { ref: form2Ref, className: "mt-5", onSubmit: step2Form.handleSubmit(async ({ verificationCode }) => {
87
+ const { mobileNumber } = step1Form.getValues();
88
+ try {
89
+ await signInMutation.mutateAsync({
90
+ type: 'MOBILE_NUMBER',
91
+ mobileNumber: mobileNumberParser.format(mobileNumber),
92
+ verificationCode: verificationCode.join(''),
93
+ });
94
+ dialog.setOpen(false);
95
+ step1Form.reset();
96
+ step2Form.reset();
97
+ context.setStep(1);
98
+ }
99
+ catch {
100
+ toaster.error({
101
+ description: 'Invalid Verification Code',
102
+ });
103
+ }
104
+ }), children: [_jsx(Controller, { name: "verificationCode", control: step2Form.control, render: (o) => (_jsxs(PinInput.Root, { placeholder: "0", invalid: o.fieldState.invalid, value: o.field.value, onValueChange: (details) => {
105
+ o.field.onChange(details.value);
106
+ }, otp: true, onValueComplete: () => {
107
+ form2Ref.current?.requestSubmit();
108
+ }, children: [_jsxs(PinInput.Control, { className: "grid-cols-[1fr_1fr_1fr_auto_1fr_1fr_1fr] items-center gap-md", children: [_jsx(PinInput.Input, { index: 0 }), _jsx(PinInput.Input, { index: 1 }), _jsx(PinInput.Input, { index: 2 }), _jsx("span", { className: "text-text-placeholder-subtle text-2xl font-medium", children: "\u2013" }), _jsx(PinInput.Input, { index: 3 }), _jsx(PinInput.Input, { index: 4 }), _jsx(PinInput.Input, { index: 5 })] }), _jsx(PinInput.HiddenInput, {})] })) }), _jsx(Button, { type: "submit", className: "mt-4xl", disabled: step2Form.formState.isSubmitting, children: "Verify" }), _jsxs("div", { className: "mt-3 flex w-full items-center justify-center gap-xs text-sm", children: [_jsx("span", { className: "text-text-secondary-700", children: "Didn't recieve the code?" }), _jsx("button", { type: "button", className: "text-button-secondary-fg font-semibold", disabled: cooldown.cooling, onClick: async () => {
109
+ await sendVerificationCodeMutation.mutateAsync({
110
+ channel: 'SMS',
111
+ recipient: mobileNumberParser.format(step1Form.getValues('mobileNumber')),
112
+ });
113
+ cooldown.start();
114
+ }, children: cooldown.cooling
115
+ ? `Resend in ${cooldown.countdown}s`
116
+ : 'Resend' })] }), _jsxs("button", { type: "button", className: "text-text-tertiary-600 mx-auto mt-3xl flex w-fit items-center gap-1 text-sm font-semibold", onClick: () => {
117
+ context.setStep(1);
118
+ step2Form.reset();
119
+ cooldown.stop();
120
+ }, children: [_jsx(ArrowLeftIcon, { className: "size-5" }), "Back"] })] })] }))] }));
121
+ }
@@ -0,0 +1 @@
1
+ export declare function NameAndPasswordSignIn(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,116 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useDialogContext } from '@ark-ui/react';
3
+ import { zodResolver } from '@hookform/resolvers/zod';
4
+ import { Controller, useForm } from 'react-hook-form';
5
+ import { z } from 'zod';
6
+ import { useShallow } from 'zustand/shallow';
7
+ import { useAuthenticateMutation, useGlobalStore, useSignInMutation, } from '../../client/hooks/index.js';
8
+ import { toaster } from '../../client/utils/index.js';
9
+ import { SECRET_QUESTIONS, SECRET_QUESTIONS_MAP } from '../../constants/index.js';
10
+ import { CheckIcon, EyeIcon, EyeOffIcon, FacebookIcon, GoogleIcon, } from '../../icons/index.js';
11
+ import { Button, Checkbox, Field, PasswordInput } from '../../ui/index.js';
12
+ import { useSignInContext } from './SignInContext.js';
13
+ export function NameAndPasswordSignIn() {
14
+ const context = useSignInContext();
15
+ const dialog = useDialogContext();
16
+ const globalStore = useGlobalStore(useShallow((popups) => ({
17
+ signIn: popups.signIn,
18
+ signUp: popups.signUp,
19
+ })));
20
+ const signInMutation = useSignInMutation({
21
+ onSuccess(authenticator) {
22
+ if (authenticator) {
23
+ context.setStep(2);
24
+ }
25
+ else {
26
+ globalStore.signIn.setOpen(false);
27
+ authenticateMutation.reset();
28
+ signInMutation.reset();
29
+ context.setStep(0);
30
+ form.reset();
31
+ }
32
+ },
33
+ onError() {
34
+ toaster.error({
35
+ description: 'Invalid username or password',
36
+ });
37
+ },
38
+ });
39
+ const authenticateMutation = useAuthenticateMutation({
40
+ onSuccess() {
41
+ globalStore.signIn.setOpen(false);
42
+ authenticateMutation.reset();
43
+ signInMutation.reset();
44
+ context.setStep(0);
45
+ form.reset();
46
+ },
47
+ onError() {
48
+ toaster.error({
49
+ description: 'Incorrect secret answer',
50
+ });
51
+ },
52
+ });
53
+ const Definition = z.object({
54
+ name: z.string().min(1, 'Username is required').trim(),
55
+ password: z.string().min(1, 'Password is required'),
56
+ secretAnswer: z.string().superRefine((val, ctx) => {
57
+ if (signInMutation.data && val.trim().length === 0) {
58
+ ctx.addIssue({
59
+ code: z.ZodIssueCode.custom,
60
+ message: 'Secret answer is required',
61
+ });
62
+ }
63
+ }),
64
+ termsAccepted: z.boolean().refine((val) => val, {
65
+ message: 'You must accept the terms and conditions',
66
+ }),
67
+ });
68
+ const form = useForm({
69
+ resolver: zodResolver(Definition),
70
+ defaultValues: {
71
+ name: '',
72
+ password: '',
73
+ secretAnswer: '',
74
+ },
75
+ });
76
+ const secretQuestion = signInMutation.data
77
+ ? z
78
+ .union([
79
+ z.enum(SECRET_QUESTIONS).transform((v) => {
80
+ return SECRET_QUESTIONS_MAP[v];
81
+ }),
82
+ z.string(),
83
+ ])
84
+ .parse(signInMutation.data.secretQuestion)
85
+ : null;
86
+ return (_jsxs(_Fragment, { children: [_jsxs("form", { className: "mt-3xl", onSubmit: form.handleSubmit((data) => {
87
+ if (!signInMutation.data) {
88
+ signInMutation.mutate({
89
+ type: 'NAME_AND_PASSWORD',
90
+ name: data.name,
91
+ password: data.password,
92
+ });
93
+ }
94
+ else {
95
+ authenticateMutation.mutate({
96
+ type: 'SECURITY_QUESTION',
97
+ token: signInMutation.data.token,
98
+ secretAnswer: data.secretAnswer,
99
+ });
100
+ }
101
+ }), children: [_jsxs(Field.Root, { invalid: !!form.formState.errors.name, children: [_jsx(Field.Label, { children: "Name" }), _jsx(Field.Input, { placeholder: "Enter your name", ...form.register('name', {
102
+ onChange() {
103
+ signInMutation.reset();
104
+ form.setValue('secretAnswer', '');
105
+ },
106
+ }) }), _jsx(Field.ErrorText, { children: form.formState.errors.name?.message })] }), _jsxs(Field.Root, { disabled: !!signInMutation.data, invalid: !!form.formState.errors.name, className: "mt-xl", children: [_jsxs(PasswordInput.Root, { children: [_jsx(PasswordInput.Label, { children: "Password" }), _jsxs(PasswordInput.Control, { children: [_jsx(PasswordInput.Input, { placeholder: "Enter your password", ...form.register('password') }), _jsx(PasswordInput.VisibilityTrigger, { children: _jsx(PasswordInput.Indicator, { fallback: _jsx(EyeOffIcon, {}), asChild: true, children: _jsx(EyeIcon, {}) }) })] }), _jsx("div", { className: "mt-2 flex justify-end", children: _jsx("button", { type: "button", tabIndex: -1, className: "text-button-tertiary-fg text-sm font-semibold", children: "Forgot Password" }) })] }), _jsx(Field.ErrorText, { children: form.formState.errors.password?.message })] }), signInMutation.data && (_jsxs(Field.Root, { invalid: !!form.formState.errors.secretAnswer, className: "mt-xl", children: [_jsx(Field.Label, { children: secretQuestion }), _jsx(Field.Input, { placeholder: "Answer the security question", ...form.register('secretAnswer') }), _jsx(Field.ErrorText, { children: form.formState.errors.secretAnswer?.message })] })), _jsx(Button, { type: "submit", className: "mt-3xl", disabled: signInMutation.isPending || authenticateMutation.isPending, children: "Log In" }), _jsx(Controller, { control: form.control, name: "termsAccepted", render: (o) => (_jsxs(Checkbox.Root, { className: "mt-xl", invalid: o.fieldState.invalid, checked: o.field.value, onCheckedChange: (details) => {
107
+ o.field.onChange(details.checked);
108
+ }, children: [_jsx(Checkbox.Control, { children: _jsx(Checkbox.Indicator, { asChild: true, children: _jsx(CheckIcon, {}) }) }), _jsxs(Checkbox.Label, { children: ["I am at least 21 years of age and I accept the", ' ', _jsx("span", { className: "text-brand-400 whitespace-nowrap underline underline-offset-2", children: "Terms and Conditions." })] }), _jsx(Checkbox.HiddenInput, {})] })) })] }), _jsxs("div", { className: "relative mt-6 text-center", children: [_jsx("hr", { className: "-translte-y-1/2 text-text-tertiary-600/50 absolute top-1/2 w-full" }), _jsx("span", { className: "text-text-tertiary-600 bg-bg-primary-alt relative px-md text-center text-sm font-semibold", children: "Log in directly with" })] }), _jsxs("div", { className: "mt-6", children: [_jsxs(Button, { variant: "outline", colorScheme: "gray", onClick: () => {
109
+ dialog.setOpen(false);
110
+ }, className: "border-border-primary bg-bg-primary text-text-secondary-700", children: [_jsx(GoogleIcon, { className: "size-6" }), "Continue with Google"] }), _jsxs(Button, { variant: "outline", colorScheme: "gray", onClick: () => {
111
+ dialog.setOpen(false);
112
+ }, className: "border-border-primary bg-bg-primary text-text-secondary-700 mt-lg", children: [_jsx(FacebookIcon, { className: "size-6" }), "Continue with Facebook"] })] }), _jsxs("div", { className: "mt-6 flex w-full items-center justify-center gap-xs text-sm", children: [_jsx("span", { className: "text-text-tertiary-600", children: "Don't have an account?" }), _jsx("button", { type: "submit", className: "text-button-tertiary-fg font-semibold", onClick: () => {
113
+ dialog.setOpen(false);
114
+ globalStore.signUp.setOpen(true);
115
+ }, children: "Sign up" })] })] }));
116
+ }
@@ -0,0 +1,7 @@
1
+ import { type ImageProps } from 'next/image';
2
+ import type { ReactNode } from 'react';
3
+ export interface SignInProps {
4
+ logo: ImageProps['src'];
5
+ children?: ReactNode;
6
+ }
7
+ export declare function SignIn(props: SignInProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Portal } from '@ark-ui/react';
4
+ import Image, {} from 'next/image';
5
+ import { useShallow } from 'zustand/shallow';
6
+ import { useGlobalStore } from '../../client/hooks/index.js';
7
+ import { XIcon } from '../../icons/index.js';
8
+ import { Dialog } from '../../ui/index.js';
9
+ import { SignInContext } from './SignInContext.js';
10
+ import { SignInForm } from './SignInForm.js';
11
+ import { useSignIn } from './useSignIn.js';
12
+ export function SignIn(props) {
13
+ const signIn = useSignIn();
14
+ const signInStore = useGlobalStore(useShallow((popups) => popups.signIn));
15
+ return (_jsx(SignInContext, { value: signIn, children: _jsx(Dialog.Root, { open: signInStore.open, onOpenChange: (details) => {
16
+ signInStore.setOpen(details.open);
17
+ }, lazyMount: true, unmountOnExit: true, closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, {}), _jsx(Dialog.Positioner, { children: _jsxs(Dialog.Content, { className: "bg-bg-primary-alt mx-auto h-full w-full items-start p-3xl pb-4xl lg:h-auto lg:w-[400px] lg:rounded-xl", children: [_jsx(Dialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsx(Image, { src: props.logo, alt: "", width: 200, height: 100, className: "mx-auto h-7.5 w-auto", draggable: false }), _jsx(SignInForm, {})] }) })] }) }) }));
18
+ }
@@ -0,0 +1,2 @@
1
+ import type { UseSignInReturn } from './useSignIn';
2
+ export declare const SignInContext: import("react").Context<UseSignInReturn>, useSignInContext: () => UseSignInReturn;
@@ -0,0 +1,2 @@
1
+ import { createContext } from '../../client/utils/index.js';
2
+ export const [SignInContext, useSignInContext] = createContext();
@@ -0,0 +1 @@
1
+ export declare function SignInForm(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { MobileNumberSignIn } from './MobileNumberSignIn.js';
4
+ import { NameAndPasswordSignIn } from './NameAndPasswordSignIn.js';
5
+ import { useSignInContext } from './SignInContext.js';
6
+ import { SignInMethod } from './SignInMethod.js';
7
+ export function SignInForm() {
8
+ const context = useSignInContext();
9
+ return (_jsxs(_Fragment, { children: [context.step === 1 && (_jsxs(_Fragment, { children: [_jsx("h2", { className: "mt-xl text-center text-lg font-semibold", children: "Log in to your account" }), _jsx("p", { className: "text-text-secondary-700 mt-xs text-center text-sm", children: "Welcome back! Please enter your details." })] })), _jsx(SignInMethod, {}), context.type === 'MOBILE_NUMBER' && _jsx(MobileNumberSignIn, {}), context.type === 'NAME_AND_PASSWORD' && _jsx(NameAndPasswordSignIn, {})] }));
10
+ }
@@ -0,0 +1 @@
1
+ export declare function SignInMethod(): import("react/jsx-runtime").JSX.Element;