@opexa/portal-components 0.0.288 → 0.0.289

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 (240) hide show
  1. package/dist/client/hooks/index.d.ts +65 -0
  2. package/dist/client/hooks/index.js +65 -0
  3. package/dist/client/services/index.d.ts +4 -0
  4. package/dist/client/services/index.js +4 -0
  5. package/dist/client/utils/index.d.ts +3 -0
  6. package/dist/client/utils/index.js +3 -0
  7. package/dist/components/Bonus/Bonus.client.js +1 -1
  8. package/dist/components/Cashback/Cashback.client.js +1 -1
  9. package/dist/components/CashbackBonus/CashbackBonus.client.d.ts +2 -0
  10. package/dist/components/CashbackBonus/CashbackBonus.client.js +9 -0
  11. package/dist/components/CashbackBonus/CashbackBonus.d.ts +10 -0
  12. package/dist/components/CashbackBonus/CashbackBonus.js +5 -0
  13. package/dist/components/CashbackBonus/index.d.ts +1 -0
  14. package/dist/components/CashbackBonus/index.js +1 -0
  15. package/dist/components/CustomPromo/CustomPromo.js +1 -1
  16. package/dist/components/Disclaimer/DisclaimerV2.js +11 -2
  17. package/dist/components/Empty.d.ts +9 -0
  18. package/dist/components/Empty.js +7 -0
  19. package/dist/components/FeatureFlag/FeatureFlag.d.ts +1 -0
  20. package/dist/components/FeatureFlag/FeatureFlag.js +29 -0
  21. package/dist/components/FeatureFlag/index.d.ts +1 -0
  22. package/dist/components/FeatureFlag/index.js +1 -0
  23. package/dist/components/GameLaunch/GameLaunch.lazy.js +1 -1
  24. package/dist/components/Games/GameContext.d.ts +2 -0
  25. package/dist/components/Games/GameContext.js +2 -0
  26. package/dist/components/GamesSearch/GamesSearch.js +1 -1
  27. package/dist/components/InfiniteScroll.d.ts +10 -0
  28. package/dist/components/InfiniteScroll.js +25 -0
  29. package/dist/components/JackpotCounter/JackpotCounter.client.d.ts +2 -0
  30. package/dist/components/JackpotCounter/JackpotCounter.client.js +66 -0
  31. package/dist/components/JackpotCounter/JackpotCounter.d.ts +17 -0
  32. package/dist/components/JackpotCounter/JackpotCounter.js +21 -0
  33. package/dist/components/JackpotCounter/JackpotCounterItem.d.ts +18 -0
  34. package/dist/components/JackpotCounter/JackpotCounterItem.js +109 -0
  35. package/dist/components/JackpotCounter/JackpotCounterItem.module.css +184 -0
  36. package/dist/components/JackpotCounter/index.d.ts +1 -0
  37. package/dist/components/JackpotCounter/index.js +1 -0
  38. package/dist/components/Jackpots/JackpotDesktop.d.ts +1 -0
  39. package/dist/components/Jackpots/JackpotDesktop.js +45 -0
  40. package/dist/components/Jackpots/JackpotGameProviders.d.ts +5 -0
  41. package/dist/components/Jackpots/JackpotGameProviders.js +41 -0
  42. package/dist/components/Jackpots/JackpotItemDesktop.d.ts +9 -0
  43. package/dist/components/Jackpots/JackpotItemDesktop.js +43 -0
  44. package/dist/components/Jackpots/JackpotItemMobile.d.ts +9 -0
  45. package/dist/components/Jackpots/JackpotItemMobile.js +44 -0
  46. package/dist/components/Jackpots/JackpotMobile.d.ts +1 -0
  47. package/dist/components/Jackpots/JackpotMobile.js +46 -0
  48. package/dist/components/Jackpots/JackpotRules.d.ts +5 -0
  49. package/dist/components/Jackpots/JackpotRules.js +11 -0
  50. package/dist/components/Jackpots/Jackpots.client.d.ts +2 -0
  51. package/dist/components/Jackpots/Jackpots.client.js +29 -0
  52. package/dist/components/Jackpots/JackpotsCarousel/JackpotsCarouselItem.module.css +184 -184
  53. package/dist/components/Jackpots/JackpotsContext.d.ts +4 -0
  54. package/dist/components/Jackpots/JackpotsContext.js +3 -0
  55. package/dist/components/Jackpots/JackpotsList/JackpotsListItem.module.css +184 -184
  56. package/dist/components/Jackpots/useJackpotData.d.ts +14 -0
  57. package/dist/components/Jackpots/useJackpotData.js +93 -0
  58. package/dist/components/Jackpots/useJackpotItemData.d.ts +20 -0
  59. package/dist/components/Jackpots/useJackpotItemData.js +87 -0
  60. package/dist/components/KYC/AutoOpen.d.ts +1 -0
  61. package/dist/components/KYC/AutoOpen.js +45 -0
  62. package/dist/components/KYC/Header.d.ts +1 -0
  63. package/dist/components/KYC/Header.js +8 -0
  64. package/dist/components/KYC/Step1.d.ts +1 -0
  65. package/dist/components/KYC/Step1.js +13 -0
  66. package/dist/components/KYC/Step2.d.ts +1 -0
  67. package/dist/components/KYC/Step2.js +13 -0
  68. package/dist/components/KYC/Step3.d.ts +1 -0
  69. package/dist/components/KYC/Step3.js +13 -0
  70. package/dist/components/KYC/Step4.d.ts +1 -0
  71. package/dist/components/KYC/Step4.js +7 -0
  72. package/dist/components/KYC/backup/Header.d.ts +1 -0
  73. package/dist/components/KYC/backup/Header.js +8 -0
  74. package/dist/components/KYC/backup/Indicator.d.ts +1 -0
  75. package/dist/components/KYC/backup/Indicator.js +9 -0
  76. package/dist/components/KYC/backup/KYC.d.ts +1 -0
  77. package/dist/components/KYC/backup/KYC.js +14 -0
  78. package/dist/components/KYC/backup/KYC.lazy.d.ts +1 -0
  79. package/dist/components/KYC/backup/KYC.lazy.js +26 -0
  80. package/dist/components/KYC/backup/KYCContext.d.ts +6 -0
  81. package/dist/components/KYC/backup/KYCContext.js +2 -0
  82. package/dist/components/KYC/backup/Step1.d.ts +1 -0
  83. package/dist/components/KYC/backup/Step1.js +13 -0
  84. package/dist/components/KYC/backup/Step2.d.ts +1 -0
  85. package/dist/components/KYC/backup/Step2.js +13 -0
  86. package/dist/components/KYC/backup/Step3.d.ts +1 -0
  87. package/dist/components/KYC/backup/Step3.js +13 -0
  88. package/dist/components/KYC/backup/Step4.d.ts +1 -0
  89. package/dist/components/KYC/backup/Step4.js +7 -0
  90. package/dist/components/KYC/backup/useKYC.d.ts +10 -0
  91. package/dist/components/KYC/backup/useKYC.js +8 -0
  92. package/dist/components/KYC/loadModels.d.ts +1 -0
  93. package/dist/components/KYC/loadModels.js +9 -0
  94. package/dist/components/KYC/utils.js +18 -18
  95. package/dist/components/Messages/Message.d.ts +1 -0
  96. package/dist/components/Messages/Message.js +34 -0
  97. package/dist/components/Messages/MessageContext.d.ts +6 -0
  98. package/dist/components/Messages/MessageContext.js +2 -0
  99. package/dist/components/Messages/MessageItem.d.ts +4 -0
  100. package/dist/components/Messages/MessageItem.js +34 -0
  101. package/dist/components/Messages/MessagePopup.d.ts +1 -0
  102. package/dist/components/Messages/MessagePopup.js +19 -0
  103. package/dist/components/Messages/MessageTrigger.d.ts +8 -0
  104. package/dist/components/Messages/MessageTrigger.js +19 -0
  105. package/dist/components/News/News.js +1 -1
  106. package/dist/components/PortalProvider/FeatureFlag.js +1 -1
  107. package/dist/components/Promo/Promo.client.js +1 -1
  108. package/dist/components/Promo/PromoContent.d.ts +2 -0
  109. package/dist/components/Promo/PromoContent.js +9 -0
  110. package/dist/components/Promos/PromoCarousel.d.ts +2 -0
  111. package/dist/components/Promos/PromoCarousel.js +41 -0
  112. package/dist/components/Promos/PromoGrid.d.ts +2 -0
  113. package/dist/components/Promos/PromoGrid.js +12 -0
  114. package/dist/components/Promos/PromoItem.d.ts +7 -0
  115. package/dist/components/Promos/PromoItem.js +10 -0
  116. package/dist/components/Quests/CountdownTimer.d.ts +15 -0
  117. package/dist/components/Quests/CountdownTimer.js +33 -0
  118. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.d.ts +4 -0
  119. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.js +78 -0
  120. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.d.ts +8 -0
  121. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.js +9 -0
  122. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.d.ts +4 -0
  123. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.js +4 -0
  124. package/dist/components/Quests/WageringQuest/WageringQuest.d.ts +4 -0
  125. package/dist/components/Quests/WageringQuest/WageringQuest.js +20 -0
  126. package/dist/components/Quests/WageringQuest/WageringQuestModal.d.ts +9 -0
  127. package/dist/components/Quests/WageringQuest/WageringQuestModal.js +9 -0
  128. package/dist/components/Search/Search.lazy.js +1 -1
  129. package/dist/components/SignUp/SignUp.lazy.d.ts +12 -0
  130. package/dist/components/SignUp/SignUp.lazy.js +18 -0
  131. package/dist/components/SignUp/SignUpContext.d.ts +6 -0
  132. package/dist/components/SignUp/SignUpContext.js +2 -0
  133. package/dist/components/SignUp/SignUpDefault/SignUpForm.js +7 -3
  134. package/dist/components/SignUp/SignUpForm.d.ts +1 -0
  135. package/dist/components/SignUp/SignUpForm.js +288 -0
  136. package/dist/components/SignUp/SignUpKYC/utils.js +18 -18
  137. package/dist/components/TournamentCounter/TournamentCounter.client.d.ts +2 -0
  138. package/dist/components/TournamentCounter/TournamentCounter.client.js +50 -0
  139. package/dist/components/TournamentCounter/TournamentCounter.d.ts +8 -0
  140. package/dist/components/TournamentCounter/TournamentCounter.js +21 -0
  141. package/dist/components/TournamentCounter/TournamentCounterItem.d.ts +8 -0
  142. package/dist/components/TournamentCounter/TournamentCounterItem.js +106 -0
  143. package/dist/components/TournamentCounter/index.d.ts +1 -0
  144. package/dist/components/TournamentCounter/index.js +1 -0
  145. package/dist/components/Tournaments/TournamentDesktop.d.ts +1 -0
  146. package/dist/components/Tournaments/TournamentDesktop.js +57 -0
  147. package/dist/components/Tournaments/TournamentGameProviders.d.ts +5 -0
  148. package/dist/components/Tournaments/TournamentGameProviders.js +38 -0
  149. package/dist/components/Tournaments/TournamentItemDesktop.d.ts +7 -0
  150. package/dist/components/Tournaments/TournamentItemDesktop.js +56 -0
  151. package/dist/components/Tournaments/TournamentItemMobile.d.ts +7 -0
  152. package/dist/components/Tournaments/TournamentItemMobile.js +54 -0
  153. package/dist/components/Tournaments/TournamentMobile.d.ts +1 -0
  154. package/dist/components/Tournaments/TournamentMobile.js +55 -0
  155. package/dist/components/Tournaments/TournamentRules.d.ts +5 -0
  156. package/dist/components/Tournaments/TournamentRules.js +11 -0
  157. package/dist/components/Tournaments/Tournaments.client.d.ts +2 -0
  158. package/dist/components/Tournaments/Tournaments.client.js +20 -0
  159. package/dist/components/Tournaments/TournamentsCarousel/TournamentsCarouselItem.module.css +184 -184
  160. package/dist/components/Tournaments/TournamentsContext.d.ts +4 -0
  161. package/dist/components/Tournaments/TournamentsContext.js +3 -0
  162. package/dist/components/Tournaments/TournamentsList/TournamentItem.module.css +184 -184
  163. package/dist/components/Tournaments/useTournamentData.d.ts +10 -0
  164. package/dist/components/Tournaments/useTournamentData.js +72 -0
  165. package/dist/components/Tournaments/useTournamentItemData.d.ts +16 -0
  166. package/dist/components/Tournaments/useTournamentItemData.js +64 -0
  167. package/dist/components/index.d.ts +33 -0
  168. package/dist/components/index.js +33 -0
  169. package/dist/components/shared/IdDocumentField.client.d.ts +25 -0
  170. package/dist/components/shared/IdDocumentField.client.js +204 -0
  171. package/dist/components/shared/IdDocumentField.d.ts +2 -0
  172. package/dist/components/shared/IdDocumentField.js +11 -0
  173. package/dist/components/shared/SelfieField.client.d.ts +20 -0
  174. package/dist/components/shared/SelfieField.client.js +327 -0
  175. package/dist/components/shared/SelfieField.d.ts +2 -0
  176. package/dist/components/shared/SelfieField.js +11 -0
  177. package/dist/constants/BranchCode.d.ts +4 -0
  178. package/dist/constants/BranchCode.js +42 -0
  179. package/dist/constants/endpoints.d.ts +10 -0
  180. package/dist/constants/endpoints.js +41 -0
  181. package/dist/constants/envVars.d.ts +5 -0
  182. package/dist/constants/envVars.js +28 -0
  183. package/dist/constants/gameProviders.d.ts +76 -0
  184. package/dist/constants/gameProviders.js +361 -0
  185. package/dist/constants/gameTypes.d.ts +3 -0
  186. package/dist/constants/gameTypes.js +64 -0
  187. package/dist/constants/headerKeys.d.ts +2 -0
  188. package/dist/constants/headerKeys.js +2 -0
  189. package/dist/constants/secretQuestions.d.ts +3 -0
  190. package/dist/constants/secretQuestions.js +24 -0
  191. package/dist/constants/storageKeys.d.ts +2 -0
  192. package/dist/constants/storageKeys.js +2 -0
  193. package/dist/handlers.d.ts +43 -0
  194. package/dist/handlers.js +297 -0
  195. package/dist/icons/BellRingIcon.d.ts +2 -0
  196. package/dist/icons/BellRingIcon.js +4 -0
  197. package/dist/icons/index.d.ts +65 -0
  198. package/dist/icons/index.js +65 -0
  199. package/dist/images/hacksaw-gaming.png +0 -0
  200. package/dist/server/services/index.d.ts +4 -0
  201. package/dist/server/services/index.js +4 -0
  202. package/dist/server/utils/index.d.ts +29 -0
  203. package/dist/server/utils/index.js +29 -0
  204. package/dist/services/queries.js +2574 -2574
  205. package/dist/styles/theme.css +701 -701
  206. package/dist/ui/AlertDialog/AlertDialog.d.ts +55 -55
  207. package/dist/ui/AlertDialog/alertDialog.recipe.d.ts +5 -5
  208. package/dist/ui/Combobox/Combobox.d.ts +42 -42
  209. package/dist/ui/Combobox/combobox.recipe.d.ts +3 -3
  210. package/dist/ui/DatePicker/DatePicker.d.ts +72 -72
  211. package/dist/ui/DatePicker/datePicker.recipe.d.ts +3 -3
  212. package/dist/ui/Dialog/Dialog.d.ts +55 -55
  213. package/dist/ui/Dialog/dialog.recipe.d.ts +5 -5
  214. package/dist/ui/Drawer/Drawer.d.ts +33 -33
  215. package/dist/ui/Drawer/drawer.recipe.d.ts +3 -3
  216. package/dist/ui/Field/Field.d.ts +21 -21
  217. package/dist/ui/Field/field.recipe.d.ts +3 -3
  218. package/dist/ui/Presence.d.ts +2 -0
  219. package/dist/ui/Presence.js +7 -0
  220. package/dist/ui/Prose.d.ts +2 -0
  221. package/dist/ui/Prose.js +5 -0
  222. package/dist/ui/index.d.ts +26 -0
  223. package/dist/ui/index.js +26 -0
  224. package/dist/utils/createErrorFromCode.d.ts +2 -0
  225. package/dist/utils/createErrorFromCode.js +11 -0
  226. package/dist/utils/dataUrlToBlob.d.ts +1 -0
  227. package/dist/utils/dataUrlToBlob.js +11 -0
  228. package/dist/utils/index.d.ts +17 -0
  229. package/dist/utils/index.js +17 -0
  230. package/dist/utils/isMobile.d.ts +5 -0
  231. package/dist/utils/isMobile.js +9 -0
  232. package/dist/utils/resizeImageSize.d.ts +1 -0
  233. package/dist/utils/resizeImageSize.js +6 -0
  234. package/package.json +163 -163
  235. package/dist/components/Banner/Banner.client.d.ts +0 -12
  236. package/dist/components/Banner/Banner.client.js +0 -49
  237. package/dist/handlers/postTransformIdFrontImage.d.ts +0 -3
  238. package/dist/handlers/postTransformIdFrontImage.js +0 -82
  239. package/dist/handlers/postTransformSelfieImage.d.ts +0 -3
  240. package/dist/handlers/postTransformSelfieImage.js +0 -82
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import Image from 'next/image';
3
+ import React, { useState } from 'react';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { ArrowNarrowDownIcon, ArrowNarrowUpIcon, Award01Icon, StarIcon, Trophy01Icon, User01Icon, } from '../../icons/index.js';
6
+ import firstPlace from '../../images/first-place.png';
7
+ import trophy from '../../images/trophy.png';
8
+ import { Button } from '../../ui/index.js';
9
+ import { formatNumber, mask } from '../../utils/index.js';
10
+ import { TournamentGameProviders } from './TournamentGameProviders.js';
11
+ import { TournamentRules } from './TournamentRules.js';
12
+ import { useTournamentContext } from './TournamentsContext.js';
13
+ import { useTournamentData } from './useTournamentData.js';
14
+ export function TournamentMobile() {
15
+ const tournament = useTournamentContext();
16
+ const [isDetailsVisible, setIsDetailsVisible] = useState(false);
17
+ const { prizeAmountsByRank, timeParts, tournamentReward, filteredGameProviders, localeInfo, } = useTournamentData();
18
+ return (_jsxs("div", { className: "bg-bg-primary border-border-primary rounded-2xl border", children: [_jsx("div", { className: twMerge('bg-bg-tertiary relative flex shrink-0 rounded-2xl p-3 text-center lg:gap-4 lg:p-5'), children: _jsxs("div", { className: "z-1 relative flex flex-1 flex-col", children: [_jsx("div", { className: "flex h-full flex-col justify-between", children: _jsx("div", { className: "flex w-full justify-between", children: _jsx("div", { className: "flex w-full flex-col", children: _jsxs("div", { className: "relative flex w-full justify-between", children: [_jsxs("div", { className: "w-full", children: [_jsxs("div", { className: "flex w-full justify-between", 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-full border px-2 py-0.5 text-xs font-medium", children: [_jsx(Award01Icon, { className: "text-utility-brand-500 size-3.5" }), "Multiplier"] }), _jsx("div", { className: "flex h-fit", children: timeParts.map((part, idx) => (_jsxs(React.Fragment, { children: [_jsxs("div", { className: twMerge('bg-bg-primary text-text-primary-900 flex h-fit w-8 flex-col items-center rounded-[4px] pb-1.5'), children: [_jsx("span", { className: "text-base font-medium", children: String(part.value).padStart(2, '0') }), _jsx("span", { className: "text-[8px]", children: part.label })] }), idx < timeParts.length - 1 && (_jsxs("div", { className: "flex flex-col justify-center gap-[6px] px-[6px]", children: [_jsx("div", { className: "bg-bg-primary h-1 w-1 rounded-full" }), _jsx("div", { className: "bg-bg-primary h-1 w-1 rounded-full" })] }))] }, part.label))) })] }), _jsx("div", { className: "text-text-primary-900 mt-2.5 text-left text-lg font-medium lg:mt-5 lg:text-2xl", children: tournament.name }), _jsx("div", { className: "bg-bg-primary text-brand-400 mt-1.5 w-fit rounded-md px-2 py-1 text-2xl font-bold lg:mt-2 lg:text-4xl", children: formatNumber(tournamentReward, {
19
+ currency: localeInfo.currency.code,
20
+ minDecimalPlaces: 2,
21
+ maxDecimalPlaces: 2,
22
+ }) })] }), _jsx("div", { className: "z-1 absolute bottom-[-60] right-0", children: _jsx(Image, { width: 72.94, height: 93, src: trophy, alt: "trophy", quality: 100, className: "size-full" }) })] }) }) }) }), tournament.topPayouts.length ? (_jsx("div", { children: _jsxs("div", { className: "bg-bg-primary relative mt-4 flex w-full gap-4 rounded-lg p-4", 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" }), _jsx("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: "1st" })] }), _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" }), "Top Payout"] }), _jsx("div", { className: "font-semibold", children: mask(tournament?.topPayouts[0]?.member?.name || '') }), _jsx("div", { className: "text-brand-400 text-2xl", children: formatNumber(tournament?.topPayouts[0]?.amount, {
23
+ currency: localeInfo.currency.code,
24
+ minDecimalPlaces: 2,
25
+ maxDecimalPlaces: 2,
26
+ }) })] })] }) })) : (_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" }), "Top 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" })] }) })] }) }), 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: tournament.currentLeaderboard.edges.length
27
+ ? 'Leaderboard'
28
+ : 'Starting soon!' }) }), _jsx(TournamentRules, {})] }), _jsx("div", { children: _jsx("div", { className: "border-gray-200 overflow-hidden", children: _jsxs("table", { className: "w-full", children: [_jsx("thead", { children: _jsxs("tr", { className: "bg-bg-secondary text-text-tertiary-600 h-8 text-center text-xs font-medium", children: [_jsx("th", { className: "w-[52px]", children: "#" }), _jsx("th", { children: "Player" }), _jsx("th", { children: "Multiplier" }), _jsx("th", { children: "Prize" })] }) }), _jsx("tbody", { children: tournament.currentLeaderboard.edges.length ? (_jsx(_Fragment, { children: tournament.currentLeaderboard.edges.map((tournament, i) => (_jsxs("tr", { className: "bg-bg-primary text-text-secondary-700 text-center text-sm", children: [_jsx("td", { className: "border-border-secondary h-12 w-[52px] border-t-2", children: i + 1 < 6 ? (_jsxs("div", { className: "relative", children: [_jsx(StarIcon, { className: twMerge('mx-auto size-6.5', starTierStyles[i].starColor) }), _jsx("span", { className: twMerge('absolute inset-0 mt-0.5 flex items-center justify-center text-2xs font-bold', starTierStyles[i].numberColor), children: i + 1 })] })) : (i + 1) }), _jsx("td", { className: "border-border-secondary h-12 border-t-2", children: mask(tournament.node.username) }), _jsxs("td", { className: "border-border-secondary h-12 border-t-2", children: [tournament.node.multiplier, "x"] }), i + 1 <= prizeAmountsByRank.length ? (_jsx("td", { className: "border-border-secondary text-brand-400 h-12 border-t-2", children: formatNumber(prizeAmountsByRank[i], {
29
+ currency: localeInfo.currency.code,
30
+ minDecimalPlaces: 2,
31
+ maxDecimalPlaces: 2,
32
+ }) })) : (_jsx("td", { className: "border-border-secondary h-12 border-t-2", children: "-" }))] }, i))) })) : (_jsx(_Fragment, { children: Array.from({ length: 5 }).map((_, i) => (_jsxs("tr", { className: "bg-bg-primary text-text-secondary-700 text-center text-sm", children: [_jsx("td", { className: "border-border-secondary h-12 w-[52px] border-t-2", children: i + 1 < 6 ? (_jsxs("div", { className: "relative", children: [_jsx(StarIcon, { className: twMerge('mx-auto size-6.5', starTierStyles[i].starColor) }), _jsx("span", { className: twMerge('absolute inset-0 mt-0.5 flex items-center justify-center text-2xs font-bold', starTierStyles[i].numberColor), children: i + 1 })] })) : (i + 1) }), _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))) })) })] }) }) })] }), Boolean(filteredGameProviders.length) && (_jsx(TournamentGameProviders, { 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" })] }) }) })] }))] }));
33
+ }
34
+ const starTierStyles = [
35
+ {
36
+ starColor: 'text-yellow-400',
37
+ numberColor: 'text-bg-primary',
38
+ },
39
+ {
40
+ starColor: 'text-utility-gray-700',
41
+ numberColor: 'text-bg-primary',
42
+ },
43
+ {
44
+ starColor: 'text-yellow-700',
45
+ numberColor: 'text-bg-primary',
46
+ },
47
+ {
48
+ starColor: 'text-bg-quaternary',
49
+ numberColor: 'text-text-primary-900',
50
+ },
51
+ {
52
+ starColor: 'text-bg-quaternary',
53
+ numberColor: 'text-text-primary-900',
54
+ },
55
+ ];
@@ -0,0 +1,5 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface TournamentRulesProps {
3
+ children?: ReactNode;
4
+ }
5
+ export declare function TournamentRules(props: TournamentRulesProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
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 { Flag06Icon } from '../../icons/Flag06Icon.js';
6
+ import { Dialog } from '../../ui/index.js';
7
+ import { useTournamentContext } from './TournamentsContext.js';
8
+ export function TournamentRules(props) {
9
+ const tournament = useTournamentContext();
10
+ return (_jsxs(Dialog.Root, { lazyMount: true, unmountOnExit: true, closeOnEscape: false, closeOnInteractOutside: false, children: [_jsx(Dialog.Trigger, { asChild: true, children: props.children ?? (_jsx("button", { type: "button", className: "text-button-tertiary-fg flex text-sm font-semibold", children: "Tournament Rules" })) }), _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 lg:h-auto lg:w-[640px] lg:rounded-xl", children: [_jsxs("div", { className: "p-3xl", children: [_jsxs("div", { className: "mb-3 flex justify-between", children: [_jsx("div", { className: "bg-bg-tertiary border-border-primary flex h-12 w-12 items-center justify-center rounded-lg border", children: _jsx(Flag06Icon, { className: "text-text-tertiary-600 size-full p-3" }) }), _jsx(Dialog.CloseTrigger, { children: _jsx(XIcon, {}) })] }), _jsx("div", { className: "text-text-primary-900 text-lg font-semibold", children: "Tournament Rules" }), _jsx("div", { className: "text-text-tertiary-600 mt-1 text-sm", children: "Terms and Conditions" })] }), _jsx("div", { className: "border-gray-800 border-t-1 pb-3", children: _jsx("div", { dangerouslySetInnerHTML: { __html: tournament.description }, className: "px-3xl py-3" }) })] }) })] })] }));
11
+ }
@@ -0,0 +1,2 @@
1
+ import type { TournamentsProps } from './Tournaments';
2
+ export declare function Tournaments__client(props: TournamentsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import Image from 'next/image';
4
+ import { useTournamentsQuery } from '../../client/hooks/index.js';
5
+ import closeChest from '../../images/close-chest.png';
6
+ import { TournamentDesktop } from './TournamentDesktop.js';
7
+ import { TournamentMobile } from './TournamentMobile.js';
8
+ import { TournamentContext, TournamentsPropsContext, } from './TournamentsContext.js';
9
+ export function Tournaments__client(props) {
10
+ const tournamentsQuery = useTournamentsQuery({
11
+ first: 100,
12
+ filter: {
13
+ status: {
14
+ equal: 'ACTIVE',
15
+ },
16
+ },
17
+ });
18
+ const tournaments = tournamentsQuery.data?.pages[0].edges.map((edge) => edge.node) ?? [];
19
+ return (_jsx(TournamentsPropsContext, { value: props, children: _jsxs("div", { className: props.className, children: [_jsx("div", { className: "mb-3 text-lg font-semibold lg:mb-4.5", children: props.heading ?? 'Tournaments' }), tournaments.length > 0 ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "hidden flex-col gap-6 lg:flex", children: tournaments.map((tournament) => (_jsx(TournamentContext, { value: tournament, children: _jsx(TournamentDesktop, {}) }, tournament.id))) }), _jsx("div", { className: "flex flex-col gap-6 lg:hidden", children: tournaments.map((tournament) => (_jsx(TournamentContext, { value: tournament, children: _jsx(TournamentMobile, {}) }, tournament.id))) })] })) : (_jsxs("div", { className: "mt-11 flex flex-col items-center justify-center", children: [_jsx(Image, { width: 100, height: 100, src: closeChest, alt: "closeChest", quality: 100, className: "h-29.5 w-29.5 lg:h-25 lg:w-25 size-full mix-blend-luminosity" }), _jsx("div", { className: "text-text-primary-900 mt-4 text-base font-semibold", children: props.heading ?? 'Tournaments' }), _jsxs("div", { className: "text-text-tertiary-600 mt-1 text-center text-sm", children: ["No ", props.heading?.toLocaleLowerCase() ?? 'tournaments', " are running at the moment. ", _jsx("br", {}), "Please check back later!"] })] }))] }) }));
20
+ }
@@ -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
+ }
@@ -0,0 +1,4 @@
1
+ import type { Tournament } from '@opexa/portal-sdk-core';
2
+ import type { TournamentsProps } from './Tournaments';
3
+ export declare const TournamentsPropsContext: import("react").Context<TournamentsProps>, useTournamentsPropsContext: () => TournamentsProps;
4
+ export declare const TournamentContext: import("react").Context<Tournament>, useTournamentContext: () => Tournament;
@@ -0,0 +1,3 @@
1
+ import { createContext } from '../../client/utils/index.js';
2
+ export const [TournamentsPropsContext, useTournamentsPropsContext] = createContext();
3
+ export const [TournamentContext, useTournamentContext] = createContext();