@opexa/portal-components 0.0.282 → 0.0.284

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 (305) hide show
  1. package/dist/components/Banner/Banner.client.d.ts +12 -0
  2. package/dist/components/Banner/Banner.client.js +49 -0
  3. package/dist/components/Banner/Banner.d.ts +3 -11
  4. package/dist/components/Banner/Banner.js +7 -38
  5. package/dist/components/Bonus/Bonus.client.js +1 -1
  6. package/dist/components/Cashback/Cashback.client.js +1 -1
  7. package/dist/components/CustomPromo/CustomPromo.d.ts +1 -1
  8. package/dist/components/CustomPromo/CustomPromo.js +2 -2
  9. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositDetails.js +1 -1
  10. package/dist/components/GameLaunch/GameLaunch.lazy.js +1 -1
  11. package/dist/components/GameLaunch/GameLaunchTrigger.js +8 -9
  12. package/dist/components/GameProviders/GameProviders.d.ts +1 -1
  13. package/dist/components/GameProviders/GameProviders.js +1 -1
  14. package/dist/components/Games/Game.js +1 -2
  15. package/dist/components/GamesSearch/GamesSearch.js +1 -1
  16. package/dist/components/Jackpots/JackpotsCarousel/JackpotsCarouselItem.js +10 -5
  17. package/dist/components/Jackpots/JackpotsCarousel/JackpotsCarouselItem.module.css +184 -184
  18. package/dist/components/Jackpots/JackpotsList/JackpotsList.js +1 -1
  19. package/dist/components/Jackpots/JackpotsList/JackpotsListItem.module.css +184 -184
  20. package/dist/components/Jackpots/JackpotsList/JackpotsListItemDesktop.js +9 -4
  21. package/dist/components/Jackpots/JackpotsList/JackpotsListItemMobile.js +8 -3
  22. package/dist/components/KYC/utils.js +18 -18
  23. package/dist/components/Marquee/Marquee.d.ts +1 -1
  24. package/dist/components/Marquee/Marquee.js +1 -1
  25. package/dist/components/News/News.d.ts +1 -1
  26. package/dist/components/News/News.js +2 -2
  27. package/dist/components/NewsFeed/News.d.ts +1 -1
  28. package/dist/components/NewsFeed/News.js +1 -1
  29. package/dist/components/PortalProvider/FeatureFlag.js +1 -1
  30. package/dist/components/Promo/Promo.client.js +1 -1
  31. package/dist/components/Quests/DailyCheckInQuest.js +1 -1
  32. package/dist/components/Quests/OnboardingQuest.js +1 -1
  33. package/dist/components/Quests/Quests.client.js +1 -1
  34. package/dist/components/Quests/WageringQuest.js +1 -1
  35. package/dist/components/ResponsibleGaming/ResponsibleGaming.lazy.js +1 -1
  36. package/dist/components/Search/Search.lazy.js +1 -1
  37. package/dist/components/SignUp/SignUpDefault/SignUpForm.js +3 -7
  38. package/dist/components/SignUp/SignUpKYC/SignUpKYC.lazy.js +1 -1
  39. package/dist/components/SignUp/SignUpKYC/utils.js +18 -18
  40. package/dist/components/TermsAndConditions/TermsAndConditions.lazy.js +1 -1
  41. package/dist/components/TermsOfUse/TermsOfUse.lazy.js +1 -1
  42. package/dist/components/Tournaments/TournamentsCarousel/TournamentsCarouselItem.js +5 -5
  43. package/dist/components/Tournaments/TournamentsCarousel/TournamentsCarouselItem.module.css +184 -184
  44. package/dist/components/Tournaments/TournamentsList/TournamentItem.module.css +184 -184
  45. package/dist/components/Tournaments/TournamentsList/TournamentsList.js +1 -1
  46. package/dist/components/Tournaments/TournamentsList/TournamentsListItemDesktop.js +5 -5
  47. package/dist/components/Tournaments/TournamentsList/TournamentsListItemMobile.js +5 -5
  48. package/dist/constants/PisoPayBanks.js +43 -43
  49. package/dist/handlers/postTransformIdFrontImage.d.ts +3 -0
  50. package/dist/handlers/postTransformIdFrontImage.js +82 -0
  51. package/dist/handlers/postTransformSelfieImage.d.ts +3 -0
  52. package/dist/handlers/postTransformSelfieImage.js +82 -0
  53. package/dist/services/portal.js +1 -9
  54. package/dist/services/queries.js +2574 -2574
  55. package/dist/styles/theme.css +697 -695
  56. package/dist/ui/AlertDialog/AlertDialog.d.ts +88 -88
  57. package/dist/ui/AlertDialog/alertDialog.recipe.d.ts +8 -8
  58. package/dist/ui/Badge/Badge.d.ts +12 -12
  59. package/dist/ui/Badge/badge.anatomy.d.ts +1 -1
  60. package/dist/ui/Badge/badge.recipe.d.ts +3 -3
  61. package/dist/ui/Carousel/Carousel.d.ts +99 -99
  62. package/dist/ui/Carousel/carousel.recipe.d.ts +11 -11
  63. package/dist/ui/Checkbox/Checkbox.d.ts +23 -23
  64. package/dist/ui/Checkbox/checkbox.recipe.d.ts +3 -3
  65. package/dist/ui/Clipboard/Clipboard.d.ts +18 -18
  66. package/dist/ui/Clipboard/clipboard.recipe.d.ts +3 -3
  67. package/dist/ui/Collapsible/Collapsible.d.ts +20 -20
  68. package/dist/ui/Collapsible/collapsible.recipe.d.ts +5 -5
  69. package/dist/ui/Combobox/Combobox.d.ts +42 -42
  70. package/dist/ui/Combobox/combobox.recipe.d.ts +3 -3
  71. package/dist/ui/DatePicker/DatePicker.d.ts +72 -72
  72. package/dist/ui/DatePicker/datePicker.recipe.d.ts +3 -3
  73. package/dist/ui/Dialog/Dialog.d.ts +88 -88
  74. package/dist/ui/Dialog/dialog.recipe.d.ts +8 -8
  75. package/dist/ui/Drawer/Drawer.d.ts +33 -33
  76. package/dist/ui/Drawer/drawer.recipe.d.ts +3 -3
  77. package/dist/ui/Field/Field.d.ts +21 -21
  78. package/dist/ui/Field/field.recipe.d.ts +3 -3
  79. package/dist/ui/Menu/Menu.d.ts +306 -306
  80. package/dist/ui/Menu/menu.recipe.d.ts +17 -17
  81. package/dist/ui/PasswordInput/PasswordInput.d.ts +18 -18
  82. package/dist/ui/PasswordInput/passwordInput.recipe.d.ts +3 -3
  83. package/dist/ui/Popover/Popover.d.ts +88 -88
  84. package/dist/ui/Popover/popover.recipe.d.ts +8 -8
  85. package/dist/ui/Progress/Progress.d.ts +27 -27
  86. package/dist/ui/Progress/progress.recipe.d.ts +3 -3
  87. package/dist/ui/SegmentGroup/SegmentGroup.d.ts +18 -18
  88. package/dist/ui/SegmentGroup/segmentGroup.recipe.d.ts +3 -3
  89. package/dist/ui/Select/Select.d.ts +45 -45
  90. package/dist/ui/Select/select.recipe.d.ts +3 -3
  91. package/dist/ui/Table/Table.d.ts +21 -21
  92. package/dist/ui/Table/table.anatomy.d.ts +1 -1
  93. package/dist/ui/Table/table.recipe.d.ts +3 -3
  94. package/dist/ui/Tabs/Tabs.d.ts +15 -15
  95. package/dist/ui/Tabs/tabs.recipe.d.ts +3 -3
  96. package/dist/utils/formatNumber.d.ts +1 -1
  97. package/dist/utils/formatNumber.js +3 -2
  98. package/dist/utils/getGameImageUrl.js +4 -3
  99. package/dist/utils/mask.d.ts +10 -0
  100. package/dist/utils/mask.js +10 -0
  101. package/dist/utils/validateFile.d.ts +1 -1
  102. package/dist/utils/validateFile.js +3 -2
  103. package/package.json +163 -163
  104. package/dist/client/hooks/index.d.ts +0 -65
  105. package/dist/client/hooks/index.js +0 -65
  106. package/dist/client/services/index.d.ts +0 -4
  107. package/dist/client/services/index.js +0 -4
  108. package/dist/client/utils/index.d.ts +0 -3
  109. package/dist/client/utils/index.js +0 -3
  110. package/dist/components/CashbackBonus/CashbackBonus.client.d.ts +0 -2
  111. package/dist/components/CashbackBonus/CashbackBonus.client.js +0 -9
  112. package/dist/components/CashbackBonus/CashbackBonus.d.ts +0 -10
  113. package/dist/components/CashbackBonus/CashbackBonus.js +0 -5
  114. package/dist/components/CashbackBonus/index.d.ts +0 -1
  115. package/dist/components/CashbackBonus/index.js +0 -1
  116. package/dist/components/Empty.d.ts +0 -9
  117. package/dist/components/Empty.js +0 -7
  118. package/dist/components/FeatureFlag/FeatureFlag.d.ts +0 -1
  119. package/dist/components/FeatureFlag/FeatureFlag.js +0 -29
  120. package/dist/components/FeatureFlag/index.d.ts +0 -1
  121. package/dist/components/FeatureFlag/index.js +0 -1
  122. package/dist/components/Games/GameContext.d.ts +0 -2
  123. package/dist/components/Games/GameContext.js +0 -2
  124. package/dist/components/InfiniteScroll.d.ts +0 -10
  125. package/dist/components/InfiniteScroll.js +0 -25
  126. package/dist/components/JackpotCounter/JackpotCounter.client.d.ts +0 -2
  127. package/dist/components/JackpotCounter/JackpotCounter.client.js +0 -66
  128. package/dist/components/JackpotCounter/JackpotCounter.d.ts +0 -17
  129. package/dist/components/JackpotCounter/JackpotCounter.js +0 -21
  130. package/dist/components/JackpotCounter/JackpotCounterItem.d.ts +0 -18
  131. package/dist/components/JackpotCounter/JackpotCounterItem.js +0 -109
  132. package/dist/components/JackpotCounter/JackpotCounterItem.module.css +0 -184
  133. package/dist/components/JackpotCounter/index.d.ts +0 -1
  134. package/dist/components/JackpotCounter/index.js +0 -1
  135. package/dist/components/Jackpots/JackpotDesktop.d.ts +0 -1
  136. package/dist/components/Jackpots/JackpotDesktop.js +0 -45
  137. package/dist/components/Jackpots/JackpotGameProviders.d.ts +0 -5
  138. package/dist/components/Jackpots/JackpotGameProviders.js +0 -41
  139. package/dist/components/Jackpots/JackpotItemDesktop.d.ts +0 -9
  140. package/dist/components/Jackpots/JackpotItemDesktop.js +0 -43
  141. package/dist/components/Jackpots/JackpotItemMobile.d.ts +0 -9
  142. package/dist/components/Jackpots/JackpotItemMobile.js +0 -44
  143. package/dist/components/Jackpots/JackpotMobile.d.ts +0 -1
  144. package/dist/components/Jackpots/JackpotMobile.js +0 -46
  145. package/dist/components/Jackpots/JackpotRules.d.ts +0 -5
  146. package/dist/components/Jackpots/JackpotRules.js +0 -11
  147. package/dist/components/Jackpots/Jackpots.client.d.ts +0 -2
  148. package/dist/components/Jackpots/Jackpots.client.js +0 -29
  149. package/dist/components/Jackpots/JackpotsContext.d.ts +0 -4
  150. package/dist/components/Jackpots/JackpotsContext.js +0 -3
  151. package/dist/components/Jackpots/useJackpotData.d.ts +0 -14
  152. package/dist/components/Jackpots/useJackpotData.js +0 -93
  153. package/dist/components/Jackpots/useJackpotItemData.d.ts +0 -20
  154. package/dist/components/Jackpots/useJackpotItemData.js +0 -87
  155. package/dist/components/KYC/AutoOpen.d.ts +0 -1
  156. package/dist/components/KYC/AutoOpen.js +0 -45
  157. package/dist/components/KYC/Header.d.ts +0 -1
  158. package/dist/components/KYC/Header.js +0 -8
  159. package/dist/components/KYC/Step1.d.ts +0 -1
  160. package/dist/components/KYC/Step1.js +0 -13
  161. package/dist/components/KYC/Step2.d.ts +0 -1
  162. package/dist/components/KYC/Step2.js +0 -13
  163. package/dist/components/KYC/Step3.d.ts +0 -1
  164. package/dist/components/KYC/Step3.js +0 -13
  165. package/dist/components/KYC/Step4.d.ts +0 -1
  166. package/dist/components/KYC/Step4.js +0 -7
  167. package/dist/components/KYC/backup/Header.d.ts +0 -1
  168. package/dist/components/KYC/backup/Header.js +0 -8
  169. package/dist/components/KYC/backup/Indicator.d.ts +0 -1
  170. package/dist/components/KYC/backup/Indicator.js +0 -9
  171. package/dist/components/KYC/backup/KYC.d.ts +0 -1
  172. package/dist/components/KYC/backup/KYC.js +0 -14
  173. package/dist/components/KYC/backup/KYC.lazy.d.ts +0 -1
  174. package/dist/components/KYC/backup/KYC.lazy.js +0 -26
  175. package/dist/components/KYC/backup/KYCContext.d.ts +0 -6
  176. package/dist/components/KYC/backup/KYCContext.js +0 -2
  177. package/dist/components/KYC/backup/Step1.d.ts +0 -1
  178. package/dist/components/KYC/backup/Step1.js +0 -13
  179. package/dist/components/KYC/backup/Step2.d.ts +0 -1
  180. package/dist/components/KYC/backup/Step2.js +0 -13
  181. package/dist/components/KYC/backup/Step3.d.ts +0 -1
  182. package/dist/components/KYC/backup/Step3.js +0 -13
  183. package/dist/components/KYC/backup/Step4.d.ts +0 -1
  184. package/dist/components/KYC/backup/Step4.js +0 -7
  185. package/dist/components/KYC/backup/useKYC.d.ts +0 -10
  186. package/dist/components/KYC/backup/useKYC.js +0 -8
  187. package/dist/components/KYC/loadModels.d.ts +0 -1
  188. package/dist/components/KYC/loadModels.js +0 -9
  189. package/dist/components/Messages/Message.d.ts +0 -1
  190. package/dist/components/Messages/Message.js +0 -34
  191. package/dist/components/Messages/MessageContext.d.ts +0 -6
  192. package/dist/components/Messages/MessageContext.js +0 -2
  193. package/dist/components/Messages/MessageItem.d.ts +0 -4
  194. package/dist/components/Messages/MessageItem.js +0 -34
  195. package/dist/components/Messages/MessagePopup.d.ts +0 -1
  196. package/dist/components/Messages/MessagePopup.js +0 -19
  197. package/dist/components/Messages/MessageTrigger.d.ts +0 -8
  198. package/dist/components/Messages/MessageTrigger.js +0 -19
  199. package/dist/components/Promo/PromoContent.d.ts +0 -2
  200. package/dist/components/Promo/PromoContent.js +0 -9
  201. package/dist/components/Promos/PromoCarousel.d.ts +0 -2
  202. package/dist/components/Promos/PromoCarousel.js +0 -41
  203. package/dist/components/Promos/PromoGrid.d.ts +0 -2
  204. package/dist/components/Promos/PromoGrid.js +0 -12
  205. package/dist/components/Promos/PromoItem.d.ts +0 -7
  206. package/dist/components/Promos/PromoItem.js +0 -10
  207. package/dist/components/Quests/CountdownTimer.d.ts +0 -15
  208. package/dist/components/Quests/CountdownTimer.js +0 -33
  209. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.d.ts +0 -4
  210. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.js +0 -78
  211. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.d.ts +0 -8
  212. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.js +0 -9
  213. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.d.ts +0 -4
  214. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.js +0 -4
  215. package/dist/components/Quests/WageringQuest/WageringQuest.d.ts +0 -4
  216. package/dist/components/Quests/WageringQuest/WageringQuest.js +0 -20
  217. package/dist/components/Quests/WageringQuest/WageringQuestModal.d.ts +0 -9
  218. package/dist/components/Quests/WageringQuest/WageringQuestModal.js +0 -9
  219. package/dist/components/SignUp/SignUp.lazy.d.ts +0 -12
  220. package/dist/components/SignUp/SignUp.lazy.js +0 -18
  221. package/dist/components/SignUp/SignUpContext.d.ts +0 -6
  222. package/dist/components/SignUp/SignUpContext.js +0 -2
  223. package/dist/components/SignUp/SignUpForm.d.ts +0 -1
  224. package/dist/components/SignUp/SignUpForm.js +0 -288
  225. package/dist/components/TournamentCounter/TournamentCounter.client.d.ts +0 -2
  226. package/dist/components/TournamentCounter/TournamentCounter.client.js +0 -50
  227. package/dist/components/TournamentCounter/TournamentCounter.d.ts +0 -8
  228. package/dist/components/TournamentCounter/TournamentCounter.js +0 -21
  229. package/dist/components/TournamentCounter/TournamentCounterItem.d.ts +0 -8
  230. package/dist/components/TournamentCounter/TournamentCounterItem.js +0 -106
  231. package/dist/components/TournamentCounter/index.d.ts +0 -1
  232. package/dist/components/TournamentCounter/index.js +0 -1
  233. package/dist/components/Tournaments/TournamentDesktop.d.ts +0 -1
  234. package/dist/components/Tournaments/TournamentDesktop.js +0 -57
  235. package/dist/components/Tournaments/TournamentGameProviders.d.ts +0 -5
  236. package/dist/components/Tournaments/TournamentGameProviders.js +0 -38
  237. package/dist/components/Tournaments/TournamentItemDesktop.d.ts +0 -7
  238. package/dist/components/Tournaments/TournamentItemDesktop.js +0 -56
  239. package/dist/components/Tournaments/TournamentItemMobile.d.ts +0 -7
  240. package/dist/components/Tournaments/TournamentItemMobile.js +0 -54
  241. package/dist/components/Tournaments/TournamentMobile.d.ts +0 -1
  242. package/dist/components/Tournaments/TournamentMobile.js +0 -55
  243. package/dist/components/Tournaments/TournamentRules.d.ts +0 -5
  244. package/dist/components/Tournaments/TournamentRules.js +0 -11
  245. package/dist/components/Tournaments/Tournaments.client.d.ts +0 -2
  246. package/dist/components/Tournaments/Tournaments.client.js +0 -20
  247. package/dist/components/Tournaments/TournamentsContext.d.ts +0 -4
  248. package/dist/components/Tournaments/TournamentsContext.js +0 -3
  249. package/dist/components/Tournaments/useTournamentData.d.ts +0 -10
  250. package/dist/components/Tournaments/useTournamentData.js +0 -72
  251. package/dist/components/Tournaments/useTournamentItemData.d.ts +0 -16
  252. package/dist/components/Tournaments/useTournamentItemData.js +0 -64
  253. package/dist/components/index.d.ts +0 -33
  254. package/dist/components/index.js +0 -33
  255. package/dist/components/shared/IdDocumentField.client.d.ts +0 -25
  256. package/dist/components/shared/IdDocumentField.client.js +0 -204
  257. package/dist/components/shared/IdDocumentField.d.ts +0 -2
  258. package/dist/components/shared/IdDocumentField.js +0 -11
  259. package/dist/components/shared/SelfieField.client.d.ts +0 -20
  260. package/dist/components/shared/SelfieField.client.js +0 -327
  261. package/dist/components/shared/SelfieField.d.ts +0 -2
  262. package/dist/components/shared/SelfieField.js +0 -11
  263. package/dist/constants/BranchCode.d.ts +0 -4
  264. package/dist/constants/BranchCode.js +0 -42
  265. package/dist/constants/endpoints.d.ts +0 -10
  266. package/dist/constants/endpoints.js +0 -41
  267. package/dist/constants/envVars.d.ts +0 -5
  268. package/dist/constants/envVars.js +0 -28
  269. package/dist/constants/gameProviders.d.ts +0 -76
  270. package/dist/constants/gameProviders.js +0 -361
  271. package/dist/constants/gameTypes.d.ts +0 -3
  272. package/dist/constants/gameTypes.js +0 -64
  273. package/dist/constants/headerKeys.d.ts +0 -2
  274. package/dist/constants/headerKeys.js +0 -2
  275. package/dist/constants/secretQuestions.d.ts +0 -3
  276. package/dist/constants/secretQuestions.js +0 -24
  277. package/dist/constants/storageKeys.d.ts +0 -2
  278. package/dist/constants/storageKeys.js +0 -2
  279. package/dist/handlers.d.ts +0 -43
  280. package/dist/handlers.js +0 -297
  281. package/dist/icons/BellRingIcon.d.ts +0 -2
  282. package/dist/icons/BellRingIcon.js +0 -4
  283. package/dist/icons/index.d.ts +0 -65
  284. package/dist/icons/index.js +0 -65
  285. package/dist/images/hacksaw-gaming.png +0 -0
  286. package/dist/server/services/index.d.ts +0 -4
  287. package/dist/server/services/index.js +0 -4
  288. package/dist/server/utils/index.d.ts +0 -29
  289. package/dist/server/utils/index.js +0 -29
  290. package/dist/ui/Presence.d.ts +0 -2
  291. package/dist/ui/Presence.js +0 -7
  292. package/dist/ui/Prose.d.ts +0 -2
  293. package/dist/ui/Prose.js +0 -5
  294. package/dist/ui/index.d.ts +0 -26
  295. package/dist/ui/index.js +0 -26
  296. package/dist/utils/createErrorFromCode.d.ts +0 -2
  297. package/dist/utils/createErrorFromCode.js +0 -11
  298. package/dist/utils/dataUrlToBlob.d.ts +0 -1
  299. package/dist/utils/dataUrlToBlob.js +0 -11
  300. package/dist/utils/index.d.ts +0 -17
  301. package/dist/utils/index.js +0 -17
  302. package/dist/utils/isMobile.d.ts +0 -5
  303. package/dist/utils/isMobile.js +0 -9
  304. package/dist/utils/resizeImageSize.d.ts +0 -1
  305. package/dist/utils/resizeImageSize.js +0 -6
@@ -1,184 +1,184 @@
1
- @keyframes arrow-green-flash {
2
- 0% {
3
- color: #abefc6;
4
- }
5
- 100% {
6
- color: #079455;
7
- }
8
- }
9
-
10
- .animate-arrow-green-flash-1 {
11
- animation: arrow-green-flash 0.4s infinite;
12
- animation-delay: -0.2s;
13
- }
14
-
15
- .animate-arrow-green-flash-2 {
16
- animation: arrow-green-flash 0.4s infinite;
17
- animation-delay: -0.1s;
18
- }
19
-
20
- .animate-arrow-green-flash-3 {
21
- animation: arrow-green-flash 0.4s infinite;
22
- }
23
-
24
- @keyframes arrow-red-flash {
25
- 0%,
26
- 100% {
27
- color: #f97066;
28
- }
29
- 50% {
30
- color: #fecdca;
31
- }
32
- }
33
-
34
- .animate-arrow-red-flash-1 {
35
- animation: arrow-red-flash 0.4s infinite;
36
- }
37
-
38
- .animate-arrow-red-flash-2 {
39
- animation: arrow-red-flash 0.4s infinite;
40
- animation-delay: -0.1s;
41
- }
42
-
43
- .animate-arrow-red-flash-3 {
44
- animation: arrow-red-flash 0.4s infinite;
45
- animation-delay: -0.2s;
46
- }
47
-
48
- /* Animated BG */
49
- @keyframes rotate {
50
- to {
51
- transform: rotate(1turn);
52
- }
53
- }
54
-
55
- .light-rays {
56
- position: absolute;
57
- top: 0;
58
- left: 0;
59
- right: 0;
60
- bottom: 0;
61
- overflow: hidden;
62
-
63
- --first: var(--color-bg-tertiary);
64
- --second: var(--color-bg-quaternary);
65
- }
66
-
67
- .light-rays::before,
68
- .light-rays::after {
69
- content: '';
70
- position: absolute;
71
- top: var(--light-rays-top, 150px);
72
- left: calc(50% - 90px);
73
- margin: -100vmax;
74
- width: 200vmax;
75
- height: 200vmax;
76
- opacity: 0.6;
77
- transform-origin: center;
78
- }
79
-
80
- .light-rays::before {
81
- background: conic-gradient(
82
- var(--first) 0deg 7.2deg,
83
- var(--second) 7.2deg 14.4deg,
84
- var(--first) 14.4deg 21.6deg,
85
- var(--second) 21.6deg 28.8deg,
86
- var(--first) 28.8deg 36deg,
87
- var(--second) 36deg 43.2deg,
88
- var(--first) 43.2deg 50.4deg,
89
- var(--second) 50.4deg 57.6deg,
90
- var(--first) 57.6deg 64.8deg,
91
- var(--second) 64.8deg 72deg,
92
- var(--first) 72deg 79.2deg,
93
- var(--second) 79.2deg 86.4deg,
94
- var(--first) 86.4deg 93.6deg,
95
- var(--second) 93.6deg 100.8deg,
96
- var(--first) 100.8deg 108deg,
97
- var(--second) 108deg 115.2deg,
98
- var(--first) 115.2deg 122.4deg,
99
- var(--second) 122.4deg 129.6deg,
100
- var(--first) 129.6deg 136.8deg,
101
- var(--second) 136.8deg 144deg,
102
- var(--first) 144deg 151.2deg,
103
- var(--second) 151.2deg 158.4deg,
104
- var(--first) 158.4deg 165.6deg,
105
- var(--second) 165.6deg 172.8deg,
106
- var(--first) 172.8deg 180deg,
107
- var(--second) 180deg 187.2deg,
108
- var(--first) 187.2deg 194.4deg,
109
- var(--second) 194.4deg 201.6deg,
110
- var(--first) 201.6deg 208.8deg,
111
- var(--second) 208.8deg 216deg,
112
- var(--first) 216deg 223.2deg,
113
- var(--second) 223.2deg 230.4deg,
114
- var(--first) 230.4deg 237.6deg,
115
- var(--second) 237.6deg 244.8deg,
116
- var(--first) 244.8deg 252deg,
117
- var(--second) 252deg 259.2deg,
118
- var(--first) 259.2deg 266.4deg,
119
- var(--second) 266.4deg 273.6deg,
120
- var(--first) 273.6deg 280.8deg,
121
- var(--second) 280.8deg 288deg,
122
- var(--first) 288deg 295.2deg,
123
- var(--second) 295.2deg 302.4deg,
124
- var(--first) 302.4deg 309.6deg,
125
- var(--second) 309.6deg 316.8deg,
126
- var(--first) 316.8deg 324deg,
127
- var(--second) 324deg 331.2deg,
128
- var(--first) 331.2deg 338.4deg,
129
- var(--second) 338.4deg 345.6deg,
130
- var(--first) 345.6deg 352.8deg,
131
- var(--second) 352.8deg 360deg
132
- );
133
- animation: rotate 20s linear infinite;
134
- }
135
-
136
- @media (max-width: 1024px) {
137
- .light-rays::before,
138
- .light-rays::after {
139
- left: auto;
140
- right: 11%;
141
- }
142
- }
143
-
144
- /* ScrollArea.module.css */
145
- .scrollArea {
146
- overflow-y: scroll;
147
- padding-right: 4px;
148
- }
149
-
150
- /* WebKit-based browsers */
151
- .scrollArea::-webkit-scrollbar {
152
- width: 8px;
153
- }
154
-
155
- .scrollArea::-webkit-scrollbar-track {
156
- background: var(--color-bg-primary-alt);
157
- border-radius: 9999px;
158
- }
159
-
160
- .scrollArea::-webkit-scrollbar-thumb {
161
- background-color: var(--color-bg-quaternary);
162
- border-radius: 9999px;
163
- }
164
-
165
- @keyframes waveColor {
166
- 0%,
167
- 2.5% {
168
- color: var(--wave-highlight-color);
169
- }
170
- 2.51%,
171
- 100% {
172
- color: var(--color-brand-300);
173
- }
174
- }
175
-
176
- .animate-wave-color-success {
177
- --wave-highlight-color: var(--color-success-800);
178
- animation: waveColor 4s ease-in-out infinite;
179
- }
180
-
181
- .animate-wave-color-error {
182
- --wave-highlight-color: var(--color-error-600);
183
- animation: waveColor 4s ease-in-out infinite;
184
- }
1
+ @keyframes arrow-green-flash {
2
+ 0% {
3
+ color: #abefc6;
4
+ }
5
+ 100% {
6
+ color: #079455;
7
+ }
8
+ }
9
+
10
+ .animate-arrow-green-flash-1 {
11
+ animation: arrow-green-flash 0.4s infinite;
12
+ animation-delay: -0.2s;
13
+ }
14
+
15
+ .animate-arrow-green-flash-2 {
16
+ animation: arrow-green-flash 0.4s infinite;
17
+ animation-delay: -0.1s;
18
+ }
19
+
20
+ .animate-arrow-green-flash-3 {
21
+ animation: arrow-green-flash 0.4s infinite;
22
+ }
23
+
24
+ @keyframes arrow-red-flash {
25
+ 0%,
26
+ 100% {
27
+ color: #f97066;
28
+ }
29
+ 50% {
30
+ color: #fecdca;
31
+ }
32
+ }
33
+
34
+ .animate-arrow-red-flash-1 {
35
+ animation: arrow-red-flash 0.4s infinite;
36
+ }
37
+
38
+ .animate-arrow-red-flash-2 {
39
+ animation: arrow-red-flash 0.4s infinite;
40
+ animation-delay: -0.1s;
41
+ }
42
+
43
+ .animate-arrow-red-flash-3 {
44
+ animation: arrow-red-flash 0.4s infinite;
45
+ animation-delay: -0.2s;
46
+ }
47
+
48
+ /* Animated BG */
49
+ @keyframes rotate {
50
+ to {
51
+ transform: rotate(1turn);
52
+ }
53
+ }
54
+
55
+ .light-rays {
56
+ position: absolute;
57
+ top: 0;
58
+ left: 0;
59
+ right: 0;
60
+ bottom: 0;
61
+ overflow: hidden;
62
+
63
+ --first: var(--color-bg-tertiary);
64
+ --second: var(--color-bg-quaternary);
65
+ }
66
+
67
+ .light-rays::before,
68
+ .light-rays::after {
69
+ content: '';
70
+ position: absolute;
71
+ top: var(--light-rays-top, 150px);
72
+ left: calc(50% - 90px);
73
+ margin: -100vmax;
74
+ width: 200vmax;
75
+ height: 200vmax;
76
+ opacity: 0.6;
77
+ transform-origin: center;
78
+ }
79
+
80
+ .light-rays::before {
81
+ background: conic-gradient(
82
+ var(--first) 0deg 7.2deg,
83
+ var(--second) 7.2deg 14.4deg,
84
+ var(--first) 14.4deg 21.6deg,
85
+ var(--second) 21.6deg 28.8deg,
86
+ var(--first) 28.8deg 36deg,
87
+ var(--second) 36deg 43.2deg,
88
+ var(--first) 43.2deg 50.4deg,
89
+ var(--second) 50.4deg 57.6deg,
90
+ var(--first) 57.6deg 64.8deg,
91
+ var(--second) 64.8deg 72deg,
92
+ var(--first) 72deg 79.2deg,
93
+ var(--second) 79.2deg 86.4deg,
94
+ var(--first) 86.4deg 93.6deg,
95
+ var(--second) 93.6deg 100.8deg,
96
+ var(--first) 100.8deg 108deg,
97
+ var(--second) 108deg 115.2deg,
98
+ var(--first) 115.2deg 122.4deg,
99
+ var(--second) 122.4deg 129.6deg,
100
+ var(--first) 129.6deg 136.8deg,
101
+ var(--second) 136.8deg 144deg,
102
+ var(--first) 144deg 151.2deg,
103
+ var(--second) 151.2deg 158.4deg,
104
+ var(--first) 158.4deg 165.6deg,
105
+ var(--second) 165.6deg 172.8deg,
106
+ var(--first) 172.8deg 180deg,
107
+ var(--second) 180deg 187.2deg,
108
+ var(--first) 187.2deg 194.4deg,
109
+ var(--second) 194.4deg 201.6deg,
110
+ var(--first) 201.6deg 208.8deg,
111
+ var(--second) 208.8deg 216deg,
112
+ var(--first) 216deg 223.2deg,
113
+ var(--second) 223.2deg 230.4deg,
114
+ var(--first) 230.4deg 237.6deg,
115
+ var(--second) 237.6deg 244.8deg,
116
+ var(--first) 244.8deg 252deg,
117
+ var(--second) 252deg 259.2deg,
118
+ var(--first) 259.2deg 266.4deg,
119
+ var(--second) 266.4deg 273.6deg,
120
+ var(--first) 273.6deg 280.8deg,
121
+ var(--second) 280.8deg 288deg,
122
+ var(--first) 288deg 295.2deg,
123
+ var(--second) 295.2deg 302.4deg,
124
+ var(--first) 302.4deg 309.6deg,
125
+ var(--second) 309.6deg 316.8deg,
126
+ var(--first) 316.8deg 324deg,
127
+ var(--second) 324deg 331.2deg,
128
+ var(--first) 331.2deg 338.4deg,
129
+ var(--second) 338.4deg 345.6deg,
130
+ var(--first) 345.6deg 352.8deg,
131
+ var(--second) 352.8deg 360deg
132
+ );
133
+ animation: rotate 20s linear infinite;
134
+ }
135
+
136
+ @media (max-width: 1024px) {
137
+ .light-rays::before,
138
+ .light-rays::after {
139
+ left: auto;
140
+ right: 11%;
141
+ }
142
+ }
143
+
144
+ /* ScrollArea.module.css */
145
+ .scrollArea {
146
+ overflow-y: scroll;
147
+ padding-right: 4px;
148
+ }
149
+
150
+ /* WebKit-based browsers */
151
+ .scrollArea::-webkit-scrollbar {
152
+ width: 8px;
153
+ }
154
+
155
+ .scrollArea::-webkit-scrollbar-track {
156
+ background: var(--color-bg-primary-alt);
157
+ border-radius: 9999px;
158
+ }
159
+
160
+ .scrollArea::-webkit-scrollbar-thumb {
161
+ background-color: var(--color-bg-quaternary);
162
+ border-radius: 9999px;
163
+ }
164
+
165
+ @keyframes waveColor {
166
+ 0%,
167
+ 2.5% {
168
+ color: var(--wave-highlight-color);
169
+ }
170
+ 2.51%,
171
+ 100% {
172
+ color: var(--color-brand-300);
173
+ }
174
+ }
175
+
176
+ .animate-wave-color-success {
177
+ --wave-highlight-color: var(--color-success-800);
178
+ animation: waveColor 4s ease-in-out infinite;
179
+ }
180
+
181
+ .animate-wave-color-error {
182
+ --wave-highlight-color: var(--color-error-600);
183
+ animation: waveColor 4s ease-in-out infinite;
184
+ }
@@ -15,8 +15,8 @@ import openChest from '../../../images/open-chest.png';
15
15
  import { Tooltip } from '../../../ui/Tooltip/index.js';
16
16
  import { capitalize } from '../../../utils/capitalize.js';
17
17
  import { formatNumber } from '../../../utils/formatNumber.js';
18
- import { getPercentage } from '../../../utils/getPercentage.js';
19
18
  import { mask } from '../../../utils/mask.js';
19
+ import { parseDecimal } from '../../../utils/parseDecimal.js';
20
20
  import { useJackpotsListItemContext } from './JackpotsListContext.js';
21
21
  import styles from './JackpotsListItem.module.css';
22
22
  import { JackpotsListItemGameProviders } from './JackpotsListItemGameProviders.js';
@@ -29,13 +29,13 @@ export function JackpotsListItemDesktop({ animate = true, ...props }) {
29
29
  currency: localeInfo.currency.code,
30
30
  minDecimalPlaces: 2,
31
31
  maxDecimalPlaces: 2,
32
- }) })] }), _jsx("div", { className: "min-w-30" }), _jsx("div", { className: "z-1 min-w-30 bottom-[-60] right-0 lg:absolute", children: _jsx(Image, { width: 150, height: 150, src: isPayingOut ? openChest : closeChest, alt: "closeChest", quality: 100, className: "h-25 w-25 lg:h-37.5 lg:w-37.5 size-full p-2" }) })] }), topJackpotPayout.amount ? (_jsx("div", { children: _jsxs("div", { className: "bg-bg-primary relative mt-4 hidden w-full gap-4 rounded-lg p-4 lg:flex", children: [_jsxs("div", { className: "bg-bg-tertiary relative flex h-18 w-18 items-center justify-center rounded-full", children: [_jsx(User01Icon, { className: "text-text-quarterary-500 size-9" }), _jsxs("div", { className: "bg-yellow-400 text-brand-950 border-bg-primary absolute bottom-0 right-0 flex h-6 w-6 items-center justify-center rounded-full border-[1.5px] text-xs font-bold", children: [topJackpotPayout.multiplier, "x"] })] }), _jsxs("div", { className: "flex flex-col gap-1 text-left", children: [_jsxs("div", { className: "border-utility-brand-200 bg-utility-brand-50 text-utility-brand-700 flex h-fit w-fit items-center gap-1 rounded-sm border px-2 py-0.5 text-xs font-medium", children: [_jsx(Trophy01Icon, { className: "text-utility-brand-600 size-3.5" }), "Recent Payout"] }), _jsx("div", { className: "font-semibold", children: mask(topJackpotPayout.member.name, {
32
+ }) })] }), _jsx("div", { className: "min-w-30" }), _jsx("div", { className: "z-1 min-w-30 bottom-[-60] right-0 lg:absolute", children: _jsx(Image, { width: 150, height: 150, src: isPayingOut ? openChest : closeChest, alt: "closeChest", className: "h-25 w-25 lg:h-37.5 lg:w-37.5 size-full p-2" }) })] }), topJackpotPayout.amount ? (_jsx("div", { children: _jsxs("div", { className: "bg-bg-primary relative mt-4 hidden w-full gap-4 rounded-lg p-4 lg:flex", children: [_jsxs("div", { className: "bg-bg-tertiary relative flex h-18 w-18 items-center justify-center rounded-full", children: [_jsx(User01Icon, { className: "text-text-quarterary-500 size-9" }), _jsxs("div", { className: "bg-yellow-400 text-brand-950 border-bg-primary absolute bottom-0 right-0 flex h-6 w-6 items-center justify-center rounded-full border-[1.5px] text-xs font-bold", children: [topJackpotPayout.multiplier, "x"] })] }), _jsxs("div", { className: "flex flex-col gap-1 text-left", children: [_jsxs("div", { className: "border-utility-brand-200 bg-utility-brand-50 text-utility-brand-700 flex h-fit w-fit items-center gap-1 rounded-sm border px-2 py-0.5 text-xs font-medium", children: [_jsx(Trophy01Icon, { className: "text-utility-brand-600 size-3.5" }), "Recent Payout"] }), _jsx("div", { className: "font-semibold", children: mask(topJackpotPayout.member.name, {
33
33
  totalCharsCount: 6,
34
34
  }) }), _jsx("div", { className: "text-brand-400 text-2xl", children: formatNumber(topJackpotPayout.amount, {
35
35
  currency: localeInfo.currency.code,
36
36
  minDecimalPlaces: 2,
37
37
  maxDecimalPlaces: 2,
38
- }) })] })] }) })) : (_jsxs("div", { className: "bg-bg-primary relative mt-4 hidden w-full gap-4 rounded-lg p-4 lg:flex", children: [_jsx(Image, { width: 66, height: 87, src: firstPlace, alt: "closeChest", className: "size-full h-auto w-[66px] mix-blend-luminosity" }), _jsxs("div", { className: "flex flex-col gap-1 text-left", children: [_jsxs("div", { className: "border-utility-brand-200 bg-utility-brand-50 text-utility-brand-700 flex h-fit w-fit items-center gap-1 rounded-sm border px-2 py-0.5 text-xs font-medium", children: [_jsx(Trophy01Icon, { className: "text-utility-brand-600 size-3.5" }), "Recent Payout"] }), _jsx("div", { className: "font-semibold", children: "No winners yet" }), _jsx("div", { className: "text-text-secondary-700 text-xs", children: "You could be the first to win the tournament!" })] })] }))] }) }) }), _jsxs("div", { className: "mt-3 lg:mt-4", children: [_jsxs("div", { className: "mb-1 flex justify-between", children: [_jsx("div", { className: "text-text-primary-900 text-xs font-semibold", children: formatNumber(0, {
38
+ }) })] })] }) })) : (_jsxs("div", { className: "bg-bg-primary relative mt-4 hidden w-full gap-4 rounded-lg p-4 lg:flex", children: [_jsx(Image, { width: 66, height: 87, src: firstPlace, alt: "closeChest", className: "size-full h-auto w-[4.125rem] mix-blend-luminosity" }), _jsxs("div", { className: "flex flex-col gap-1 text-left", children: [_jsxs("div", { className: "border-utility-brand-200 bg-utility-brand-50 text-utility-brand-700 flex h-fit w-fit items-center gap-1 rounded-sm border px-2 py-0.5 text-xs font-medium", children: [_jsx(Trophy01Icon, { className: "text-utility-brand-600 size-3.5" }), "Recent Payout"] }), _jsx("div", { className: "font-semibold", children: "No winners yet" }), _jsx("div", { className: "text-text-secondary-700 text-xs", children: "You could be the first to win the tournament!" })] })] }))] }) }) }), _jsxs("div", { className: "mt-3 lg:mt-4", children: [_jsxs("div", { className: "mb-1 flex justify-between", children: [_jsx("div", { className: "text-text-primary-900 text-xs font-semibold", children: formatNumber(0, {
39
39
  currency: localeInfo.currency.code,
40
40
  compact: true,
41
41
  }) }), _jsxs("div", { className: "relative flex items-center justify-end gap-1.5", children: [isPayingOut ? (_jsxs("div", { className: "flex w-6 items-center", children: [_jsx("div", { className: twMerge('absolute left-0', styles['animate-arrow-red-flash-1']), children: _jsx(ChevronLeftIcon, { className: "size-4.5" }) }), _jsx("div", { className: twMerge('absolute left-1.5', styles['animate-arrow-red-flash-2']), children: _jsx(ChevronLeftIcon, { className: "size-4.5" }) }), _jsx("div", { className: twMerge('absolute left-3', styles['animate-arrow-red-flash-3']), children: _jsx(ChevronLeftIcon, { className: "size-4.5" }) })] })) : (_jsxs("div", { className: "flex w-6 items-center", children: [_jsx("div", { className: twMerge('absolute left-0', styles['animate-arrow-green-flash-1']), children: _jsx(ChevronRightIcon, { className: "size-4.5" }) }), _jsx("div", { className: twMerge('absolute left-1.5', styles['animate-arrow-green-flash-2']), children: _jsx(ChevronRightIcon, { className: "size-4.5" }) }), _jsx("div", { className: twMerge('absolute left-3', styles['animate-arrow-green-flash-3']), children: _jsx(ChevronRightIcon, { className: "size-4.5" }) })] })), _jsx("div", { className: "text-text-primary-900 text-xs font-semibold", children: formatNumber(jackpot?.maximumJackpotPoolLimit, {
@@ -56,7 +56,7 @@ export function JackpotsListItemDesktop({ animate = true, ...props }) {
56
56
  currency: localeInfo.currency.code,
57
57
  compact: true,
58
58
  })} Play now for your chance to win big! 🔥`
59
- : getAccumulatingJackpotDescription(Number(jackpot?.pool) ?? 0, Number(jackpot?.maximumJackpotPoolLimit) ?? 0) })] })] }), _jsxs("div", { className: "z-1 hidden flex-1 space-y-4 lg:block", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex gap-2", children: [_jsx(Image, { width: 24, height: 24, src: leaderboard, quality: 100, alt: "leaderboardIcon", className: "size-full h-auto w-6" }), _jsx("div", { className: "text-text-primary-900 text-lg font-semibold", children: jackpotPayouts.length ? 'Recent Payouts' : 'Starting soon!' })] }), _jsx(JackpotsListItemRules, {})] }), _jsx("div", { className: twMerge('max-h-[272px] overflow-y-scroll', styles['scrollArea']), children: _jsx("div", { className: "border-gray-200 overflow-hidden rounded-xl", children: _jsxs("table", { className: "w-full", children: [_jsx("thead", { children: _jsx("tr", { className: "bg-bg-secondary text-text-tertiary-600 h-8 whitespace-nowrap text-left text-xs font-medium", children: [
59
+ : getAccumulatingJackpotDescription(Number(jackpot?.pool) ?? 0, Number(jackpot?.maximumJackpotPoolLimit) ?? 0) })] })] }), _jsxs("div", { className: "z-1 hidden flex-1 space-y-4 lg:block", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex gap-2", children: [_jsx(Image, { width: 24, height: 24, src: leaderboard, alt: "leaderboardIcon", className: "size-full h-auto w-6" }), _jsx("div", { className: "text-text-primary-900 text-lg font-semibold", children: jackpotPayouts.length ? 'Recent Payouts' : 'Starting soon!' })] }), _jsx(JackpotsListItemRules, {})] }), _jsx("div", { className: twMerge('max-h-[17rem] overflow-y-scroll', styles['scrollArea']), children: _jsx("div", { className: "border-gray-200 overflow-hidden rounded-xl", children: _jsxs("table", { className: "w-full", children: [_jsx("thead", { children: _jsx("tr", { className: "bg-bg-secondary text-text-tertiary-600 h-8 whitespace-nowrap text-left text-xs font-medium", children: [
60
60
  'Player',
61
61
  'Game Provider',
62
62
  'Multiplier',
@@ -70,3 +70,8 @@ export function JackpotsListItemDesktop({ animate = true, ...props }) {
70
70
  maxDecimalPlaces: 2,
71
71
  }) }), _jsx("td", { className: "border-border-secondary h-12 border-t-2 px-4", children: format(new Date(jackpotPayout.dateTimeCreated), 'dd MMM yyyy h:mm a') })] }, i))) })) : (_jsx(_Fragment, { children: Array.from({ length: 10 }).map((_, i) => (_jsxs("tr", { className: "bg-bg-primary text-text-secondary-700 text-sm", children: [_jsx("td", { className: "border-border-secondary h-12 border-t-2", children: "-" }), _jsx("td", { className: "border-border-secondary h-12 border-t-2", children: "-" }), _jsx("td", { className: "border-border-secondary h-12 border-t-2", children: "-" }), _jsx("td", { className: "border-border-secondary h-12 border-t-2", children: "-" }), _jsx("td", { className: "border-border-secondary h-12 border-t-2", children: "-" })] }, i))) })) })] }) }) })] }), isPayingOut && animate && (_jsx("div", { className: twMerge(styles['light-rays'], 'absolute right-0 top-0 rounded-2xl') }))] }), Boolean(filteredGameProviders.length) && (_jsx(JackpotsListItemGameProviders, { gameProviders: filteredGameProviders }))] }));
72
72
  }
73
+ function getPercentage(value, total) {
74
+ const v = parseDecimal(value, 0);
75
+ const t = parseDecimal(total, 0);
76
+ return t === 0 ? 0 : (v / t) * 100;
77
+ }
@@ -17,8 +17,8 @@ import openChest from '../../../images/open-chest.png';
17
17
  import { Button } from '../../../ui/Button/index.js';
18
18
  import { capitalize } from '../../../utils/capitalize.js';
19
19
  import { formatNumber } from '../../../utils/formatNumber.js';
20
- import { getPercentage } from '../../../utils/getPercentage.js';
21
20
  import { mask } from '../../../utils/mask.js';
21
+ import { parseDecimal } from '../../../utils/parseDecimal.js';
22
22
  import { useJackpotsListItemContext } from './JackpotsListContext.js';
23
23
  import styles from './JackpotsListItem.module.css';
24
24
  import { JackpotsListItemGameProviders } from './JackpotsListItemGameProviders.js';
@@ -32,7 +32,7 @@ export function JackpotsListItemMobile({ animate = true, ...props }) {
32
32
  currency: localeInfo.currency.code,
33
33
  minDecimalPlaces: 2,
34
34
  maxDecimalPlaces: 2,
35
- }) })] }), _jsx("div", { className: "z-1 min-w-34.5 bottom-[-60] right-0 block lg:absolute", children: _jsx(Image, { width: 100, height: 100, src: isPayingOut ? openChest : closeChest, alt: "closeChest", quality: 100, className: "h-34.5 w-34.5 lg:h-37.5 lg:w-37.5 size-full p-2" }) })] }) }) }) }), _jsxs("div", { className: "mt-3 lg:mt-4", children: [_jsxs("div", { className: "mb-1 flex justify-between", children: [_jsx("div", { className: "text-text-primary-900 text-xs font-semibold", children: formatNumber(0, {
35
+ }) })] }), _jsx("div", { className: "z-1 min-w-34.5 bottom-[-60] right-0 block lg:absolute", children: _jsx(Image, { width: 100, height: 100, src: isPayingOut ? openChest : closeChest, alt: "closeChest", className: "h-34.5 w-34.5 lg:h-37.5 lg:w-37.5 size-full p-2" }) })] }) }) }) }), _jsxs("div", { className: "mt-3 lg:mt-4", children: [_jsxs("div", { className: "mb-1 flex justify-between", children: [_jsx("div", { className: "text-text-primary-900 text-xs font-semibold", children: formatNumber(0, {
36
36
  currency: localeInfo.currency.code,
37
37
  compact: true,
38
38
  }) }), _jsxs("div", { className: "relative flex items-center justify-end gap-1.5", children: [isPayingOut ? (_jsxs("div", { className: "flex w-6 items-center", children: [_jsx("div", { className: twMerge('absolute left-0', styles['animate-arrow-red-flash-1']), children: _jsx(ChevronLeftIcon, { className: "size-4.5" }) }), _jsx("div", { className: twMerge('absolute left-1.5', styles['animate-arrow-red-flash-2']), children: _jsx(ChevronLeftIcon, { className: "size-4.5" }) }), _jsx("div", { className: twMerge('absolute left-3', styles['animate-arrow-red-flash-3']), children: _jsx(ChevronLeftIcon, { className: "size-4.5" }) })] })) : (_jsxs("div", { className: "flex w-6 items-center", children: [_jsx("div", { className: twMerge('absolute left-0', styles['animate-arrow-green-flash-1']), children: _jsx(ChevronRightIcon, { className: "size-4.5" }) }), _jsx("div", { className: twMerge('absolute left-1.5', styles['animate-arrow-green-flash-2']), children: _jsx(ChevronRightIcon, { className: "size-4.5" }) }), _jsx("div", { className: twMerge('absolute left-3', styles['animate-arrow-green-flash-3']), children: _jsx(ChevronRightIcon, { className: "size-4.5" }) })] })), _jsx("div", { className: "text-text-primary-900 text-xs font-semibold", children: formatNumber(jackpot?.maximumJackpotPoolLimit, {
@@ -47,7 +47,7 @@ export function JackpotsListItemMobile({ animate = true, ...props }) {
47
47
  currency: localeInfo.currency.code,
48
48
  minDecimalPlaces: 2,
49
49
  maxDecimalPlaces: 2,
50
- }) })] })] }) })) : (_jsxs("div", { className: "bg-bg-primary relative mt-4 flex w-full gap-4 rounded-lg p-4", children: [_jsx(Image, { width: 66, height: 87, src: firstPlace, alt: "closeChest", className: "size-full h-auto w-[66px] mix-blend-luminosity" }), _jsxs("div", { className: "flex flex-col gap-1 text-left", children: [_jsxs("div", { className: "border-utility-brand-200 bg-utility-brand-50 text-utility-brand-700 flex h-fit w-fit items-center gap-1 rounded-sm border px-2 py-0.5 text-xs font-medium", children: [_jsx(Trophy01Icon, { className: "text-utility-brand-600 size-3.5" }), "Recent Payout"] }), _jsx("div", { className: "font-semibold", children: "No winners yet" }), _jsx("div", { className: "text-text-secondary-700 text-xs", children: "You could be the first to win the tournament!" })] })] })), _jsx(Button, { variant: "outline", className: twMerge('mt-5.5 px-3.5 py-2.5 text-sm', isDetailsVisible ? 'hidden' : 'flex'), onClick: () => setIsDetailsVisible(!isDetailsVisible), children: _jsxs("div", { className: "flex gap-1.5", children: ["See Details", _jsx(ArrowNarrowDownIcon, { className: "size-5" })] }) })] }), isPayingOut && animate && (_jsx("div", { className: twMerge(styles['light-rays'], 'absolute right-0 top-0 rounded-2xl [--light-rays-top:15%] lg:[--light-rays-top:150px]') }))] }), isDetailsVisible && (_jsxs("div", { children: [_jsxs("div", { className: "z-1 flex-1", children: [_jsxs("div", { className: "flex items-center justify-between p-3", children: [_jsx("div", { className: "flex gap-2", children: _jsx("div", { className: "text-text-primary-900 text-lg font-semibold", children: jackpotPayouts.length ? 'Recent payouts' : 'Starting soon!' }) }), _jsx(JackpotsListItemRules, {})] }), _jsx("div", { className: "border-gray-200 overflow-x-auto", children: _jsxs("table", { className: "w-full min-w-[600px]", children: [_jsx("thead", { children: _jsx("tr", { className: "bg-bg-secondary text-text-tertiary-600 h-8 whitespace-nowrap text-left text-xs font-medium", children: [
50
+ }) })] })] }) })) : (_jsxs("div", { className: "bg-bg-primary relative mt-4 flex w-full gap-4 rounded-lg p-4", children: [_jsx(Image, { width: 66, height: 87, src: firstPlace, alt: "closeChest", className: "size-full h-auto w-[4.125rem] mix-blend-luminosity" }), _jsxs("div", { className: "flex flex-col gap-1 text-left", children: [_jsxs("div", { className: "border-utility-brand-200 bg-utility-brand-50 text-utility-brand-700 flex h-fit w-fit items-center gap-1 rounded-sm border px-2 py-0.5 text-xs font-medium", children: [_jsx(Trophy01Icon, { className: "text-utility-brand-600 size-3.5" }), "Recent Payout"] }), _jsx("div", { className: "font-semibold", children: "No winners yet" }), _jsx("div", { className: "text-text-secondary-700 text-xs", children: "You could be the first to win the tournament!" })] })] })), _jsx(Button, { variant: "outline", className: twMerge('mt-5.5 px-3.5 py-2.5 text-sm', isDetailsVisible ? 'hidden' : 'flex'), onClick: () => setIsDetailsVisible(!isDetailsVisible), children: _jsxs("div", { className: "flex gap-1.5", children: ["See Details", _jsx(ArrowNarrowDownIcon, { className: "size-5" })] }) })] }), isPayingOut && animate && (_jsx("div", { className: twMerge(styles['light-rays'], 'absolute right-0 top-0 rounded-2xl [--light-rays-top:15%] lg:[--light-rays-top:9.375rem]') }))] }), isDetailsVisible && (_jsxs("div", { children: [_jsxs("div", { className: "z-1 flex-1", children: [_jsxs("div", { className: "flex items-center justify-between p-3", children: [_jsx("div", { className: "flex gap-2", children: _jsx("div", { className: "text-text-primary-900 text-lg font-semibold", children: jackpotPayouts.length ? 'Recent payouts' : 'Starting soon!' }) }), _jsx(JackpotsListItemRules, {})] }), _jsx("div", { className: "border-gray-200 overflow-x-auto", children: _jsxs("table", { className: "w-full min-w-[37.5rem]", children: [_jsx("thead", { children: _jsx("tr", { className: "bg-bg-secondary text-text-tertiary-600 h-8 whitespace-nowrap text-left text-xs font-medium", children: [
51
51
  'Player',
52
52
  'Game Provider',
53
53
  'Multiplier',
@@ -63,3 +63,8 @@ export function JackpotsListItemMobile({ animate = true, ...props }) {
63
63
  maxDecimalPlaces: 2,
64
64
  }) }), _jsx("td", { className: "border-border-secondary h-12 border-t-2 px-4", children: format(new Date(jackpotPayout.dateTimeCreated), 'dd MMM yyyy h:mm a') })] }, i))) })) : (_jsx(_Fragment, { children: Array.from({ length: 10 }).map((_, i) => (_jsxs("tr", { className: "bg-bg-primary text-text-secondary-700 text-left text-sm", children: [_jsx("td", { className: "border-border-secondary h-12 border-t-2 px-4", children: "-" }), _jsx("td", { className: "border-border-secondary h-12 border-t-2 px-4", children: "-" }), _jsx("td", { className: "border-border-secondary h-12 border-t-2 px-4", children: "-" }), _jsx("td", { className: "border-border-secondary h-12 border-t-2 px-4", children: "-" }), _jsx("td", { className: "border-border-secondary h-12 border-t-2 px-4", children: "-" })] }, i))) })) })] }) })] }), Boolean(filteredGameProviders.length) && (_jsx(JackpotsListItemGameProviders, { gameProviders: filteredGameProviders })), _jsx("div", { className: "m-3", children: _jsx(Button, { variant: "outline", className: twMerge('px-3.5 py-2.5 text-sm', !isDetailsVisible ? 'hidden' : 'flex'), onClick: () => setIsDetailsVisible(!isDetailsVisible), children: _jsxs("div", { className: "flex gap-1.5", children: ["Hide", _jsx(ArrowNarrowUpIcon, { className: "size-5" })] }) }) })] }))] }));
65
65
  }
66
+ function getPercentage(value, total) {
67
+ const v = parseDecimal(value, 0);
68
+ const t = parseDecimal(total, 0);
69
+ return t === 0 ? 0 : (v / t) * 100;
70
+ }
@@ -50,24 +50,24 @@ export function validateFile(file) {
50
50
  return 'Unsupported file';
51
51
  }
52
52
  export function showPermissionInstructions() {
53
- const instructions = `
54
- Camera access is blocked. To enable camera access:
55
-
56
- Chrome/Edge:
57
- 1. Click the camera icon in the address bar
58
- 2. Select "Always allow" and click "Done"
59
- 3. Or go to Settings > Privacy and security > Site settings > Camera
60
-
61
- Firefox:
62
- 1. Click the shield icon in the address bar
63
- 2. Click on "Camera blocked"
64
- 3. Select "Allow" and refresh the page
65
-
66
- Safari:
67
- 1. Go to Safari > Settings > Websites > Camera
68
- 2. Find this website and change to "Allow"
69
-
70
- After changing permissions, please refresh the page and try again.
53
+ const instructions = `
54
+ Camera access is blocked. To enable camera access:
55
+
56
+ Chrome/Edge:
57
+ 1. Click the camera icon in the address bar
58
+ 2. Select "Always allow" and click "Done"
59
+ 3. Or go to Settings > Privacy and security > Site settings > Camera
60
+
61
+ Firefox:
62
+ 1. Click the shield icon in the address bar
63
+ 2. Click on "Camera blocked"
64
+ 3. Select "Allow" and refresh the page
65
+
66
+ Safari:
67
+ 1. Go to Safari > Settings > Websites > Camera
68
+ 2. Find this website and change to "Allow"
69
+
70
+ After changing permissions, please refresh the page and try again.
71
71
  `;
72
72
  alert(instructions);
73
73
  }
@@ -2,4 +2,4 @@ export interface MarqueeProps {
2
2
  children?: React.ReactNode;
3
3
  className?: string;
4
4
  }
5
- export declare function Marquee(props: MarqueeProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function Marquee(props: MarqueeProps): Promise<import("react/jsx-runtime").JSX.Element>;
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { twMerge } from 'tailwind-merge';
3
- export function Marquee(props) {
3
+ export async function Marquee(props) {
4
4
  return (_jsxs("div", { className: twMerge('border-border-primary bg-bg-primary text-text-secondary-700 shadow-xs flex gap-lg rounded-lg border p-1 pr-2.5 text-sm font-medium', props.className), children: [_jsxs("div", { className: "border-border-primary flex shrink-0 items-center gap-sm rounded-sm border px-2 py-0.5", children: [_jsx("span", { className: "bg-utility-success-500 outline-utility-success-100 size-2 rounded-full outline-2" }), _jsx("span", { children: "What's new" })] }), _jsx("div", { className: "flex grow items-center overflow-hidden", children: _jsxs("div", { className: "flex items-center whitespace-nowrap", children: [_jsx("div", { className: "animate-marquee pr-4 [animation-delay:1s]", children: props.children }), _jsx("div", { className: "animate-marquee pr-4 [animation-delay:1s]", children: props.children })] }) })] }));
5
5
  }
@@ -7,4 +7,4 @@ export interface NewsProps {
7
7
  className?: string;
8
8
  style?: CSSProperties;
9
9
  }
10
- export declare function News(props: NewsProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function News(props: NewsProps): Promise<import("react/jsx-runtime").JSX.Element>;
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import Image from 'next/image';
3
3
  import Link from 'next/link';
4
4
  import { ChevronLeftIcon } from '../../icons/ChevronLeftIcon.js';
5
- import { Prose } from '../../ui/Prose.js';
5
+ import { Prose } from '../../ui/Prose/index.js';
6
6
  import { stripTags } from '../../utils/stripTags.js';
7
- export function News(props) {
7
+ export async function News(props) {
8
8
  return (_jsxs(_Fragment, { children: [_jsx("meta", { name: "description", content: stripTags(props.news.content) }), _jsx("meta", { name: "og:title", content: props.news.title }), _jsx("meta", { name: "og:description", content: stripTags(props.news.content) }), _jsx("meta", { name: "og:image", content: props.news.image }), _jsx("meta", { name: "twitter:title", content: props.news.title }), _jsx("meta", { name: "twitter:description", content: stripTags(props.news.content) }), _jsx("meta", { name: "twitter:image", content: props.news.image }), _jsx("meta", { name: "twitter:card", content: "summary_large_image" }), _jsxs("div", { style: props.style, className: props.className, children: [_jsxs(Link, { href: props.viewAllUrl ?? '/news', className: "text-button-secondary-fg flex items-center gap-lg text-lg font-semibold", children: [_jsx(ChevronLeftIcon, { className: "size-6" }), "Back to all News"] }), _jsx(Image, { src: props.news.image, alt: "", width: 1024, height: 600, priority: true, unoptimized: true, className: "mt-3xl block h-auto w-full rounded-xl lg:mt-6" }), _jsx("p", { className: "text-brand-400 mt-xl text-sm font-semibold lg:mt-6", children: props.news.category }), _jsx("h2", { className: "mt-xl text-2xl font-semibold lg:mt-6", children: props.news.title }), _jsx(Prose, { className: "mt-xl lg:mt-6", dangerouslySetInnerHTML: {
9
9
  __html: props.news.content,
10
10
  } })] })] }));
@@ -3,4 +3,4 @@ export interface NewsProps {
3
3
  news: News;
4
4
  viewDetailsUrl: string;
5
5
  }
6
- export declare function News({ news, viewDetailsUrl }: NewsProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function News({ news, viewDetailsUrl }: NewsProps): Promise<import("react/jsx-runtime").JSX.Element>;
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import Image from 'next/image';
3
3
  import Link from 'next/link';
4
4
  import { Button } from '../../ui/Button/index.js';
5
- export function News({ news, viewDetailsUrl }) {
5
+ export async function News({ news, viewDetailsUrl }) {
6
6
  return (_jsxs("div", { className: "bg-bg-primary-alt border-border-primary flex flex-col overflow-hidden rounded-2xl border shadow-md", children: [_jsx(Image, { src: news.image, alt: "", width: 400, height: 274, loading: "lazy", unoptimized: true, className: "block h-[15.25rem] w-full object-cover" }), _jsxs("div", { className: "flex grow flex-col p-3xl", children: [_jsxs("div", { className: "grow", children: [_jsx("p", { className: "text-brand-400 text-sm font-semibold", children: news.category }), _jsx("h2", { className: "mt-2 line-clamp-1 text-lg font-semibold", children: news.title }), _jsx("p", { className: "text-text-tertiary-600 mt-xs line-clamp-3", dangerouslySetInnerHTML: {
7
7
  __html: news.content,
8
8
  } })] }), _jsx(Button, { asChild: true, className: "mt-2xl", children: _jsxs(Link, { href: `${viewDetailsUrl}/${news.id}`, children: ["Read More", _jsxs("span", { className: "sr-only", children: [" about ", news.title] })] }) })] })] }, news.id));
@@ -4,7 +4,7 @@ import { usePathname, useRouter, useSearchParams } from 'next/navigation';
4
4
  import { useCallback, useEffect } from 'react';
5
5
  import { useFeatureFlag } from '../../client/hooks/useFeatureFlag.js';
6
6
  import { Portal } from '../../ui/Portal/index.js';
7
- import { Presence } from '../../ui/Presence.js';
7
+ import { Presence } from '../../ui/Presence/index.js';
8
8
  export function FeatureFlag() {
9
9
  const router = useRouter();
10
10
  const pathname = usePathname();
@@ -11,7 +11,7 @@ import { useLocaleInfo } from '../../client/hooks/useLocaleInfo.js';
11
11
  import { usePromoQuery } from '../../client/hooks/usePromoQuery.js';
12
12
  import { ChevronLeftIcon } from '../../icons/ChevronLeftIcon.js';
13
13
  import { Button } from '../../ui/Button/index.js';
14
- import { Prose } from '../../ui/Prose.js';
14
+ import { Prose } from '../../ui/Prose/index.js';
15
15
  export function Promo__client(props) {
16
16
  const localeInfo = useLocaleInfo();
17
17
  const availablePromosQuery = useAvailablePromosQuery();
@@ -91,5 +91,5 @@ function Rules(props) {
91
91
  defaultValue: props.defaultOpen ?? false,
92
92
  onChange: props.onOpenChange,
93
93
  });
94
- return (_jsx(Dialog.Root, { lazyMount: true, unmountOnExit: true, open: open, onOpenChange: (details) => setOpen(details.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 overflow-y-auto", children: [_jsx(Dialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsxs("div", { className: "flex flex-col space-y-5", children: [_jsx("h2", { className: "text-text-primary-900 text-lg font-semibold", children: "Daily Check-In Rules" }), _jsxs("ol", { 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: () => setOpen(false), children: "Ok" }) })] }) })] }) }));
94
+ return (_jsx(Dialog.Root, { lazyMount: true, unmountOnExit: true, open: open, onOpenChange: (details) => setOpen(details.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-[21.438rem] overflow-y-auto 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("h2", { className: "text-text-primary-900 text-lg font-semibold", children: "Daily Check-In Rules" }), _jsxs("ol", { 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: () => setOpen(false), children: "Ok" }) })] }) })] }) }));
95
95
  }
@@ -47,5 +47,5 @@ function Rules(props) {
47
47
  defaultValue: props.defaultOpen ?? false,
48
48
  onChange: props.onOpenChange,
49
49
  });
50
- return (_jsx(Dialog.Root, { lazyMount: true, unmountOnExit: true, open: open, onOpenChange: (details) => setOpen(details.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] overflow-y-auto 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("h2", { className: "text-text-primary-900 text-lg font-semibold", children: "Welcome Quest Rules" }), _jsxs("ol", { className: "text-text-tertiary-600 group list-disc text-wrap pl-4 text-sm font-normal", children: [_jsx("li", { children: "Begin your quest whenever you're ready" }), _jsx("li", { children: "Tackle the tasks in any order you like" }), _jsx("li", { children: "Finish all tasks and we'll credit your reward automatically!" })] })] }), _jsx("div", { className: "pb-4 pt-6", children: _jsx(Button, { onClick: () => setOpen(false), children: "Ok" }) })] }) })] }) }));
50
+ return (_jsx(Dialog.Root, { lazyMount: true, unmountOnExit: true, open: open, onOpenChange: (details) => setOpen(details.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-[21.438rem] overflow-y-auto 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("h2", { className: "text-text-primary-900 text-lg font-semibold", children: "Welcome Quest Rules" }), _jsxs("ol", { className: "text-text-tertiary-600 group list-disc text-wrap pl-4 text-sm font-normal", children: [_jsx("li", { children: "Begin your quest whenever you're ready" }), _jsx("li", { children: "Tackle the tasks in any order you like" }), _jsx("li", { children: "Finish all tasks and we'll credit your reward automatically!" })] })] }), _jsx("div", { className: "pb-4 pt-6", children: _jsx(Button, { onClick: () => setOpen(false), children: "Ok" }) })] }) })] }) }));
51
51
  }