@opexa/portal-components 0.0.289 → 0.0.291

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 (266) hide show
  1. package/dist/client/hooks/useAuthenticateMutation.js +8 -3
  2. package/dist/client/hooks/useSignInMutation.js +8 -3
  3. package/dist/components/Banner/Banner.client.d.ts +12 -0
  4. package/dist/components/Banner/Banner.client.js +49 -0
  5. package/dist/components/Bonus/Bonus.client.js +4 -4
  6. package/dist/components/Cashback/Cashback.client.js +1 -1
  7. package/dist/components/CustomPromo/CustomPromo.js +1 -1
  8. package/dist/components/GameLaunch/GameLaunch.lazy.js +1 -1
  9. package/dist/components/GamesSearch/GamesSearch.js +1 -1
  10. package/dist/components/Jackpots/JackpotsCarousel/JackpotsCarouselItem.module.css +184 -184
  11. package/dist/components/Jackpots/JackpotsList/JackpotsListItem.module.css +184 -184
  12. package/dist/components/KYC/utils.js +18 -18
  13. package/dist/components/News/News.js +1 -1
  14. package/dist/components/PortalProvider/FeatureFlag.js +1 -1
  15. package/dist/components/PortalProvider/PortalProvider.d.ts +3 -2
  16. package/dist/components/PortalProvider/PortalProvider.js +3 -4
  17. package/dist/components/PortalProvider/Providers.d.ts +5 -4
  18. package/dist/components/PortalProvider/Providers.js +3 -2
  19. package/dist/components/Promo/Promo.client.js +1 -1
  20. package/dist/components/Quests/JourneyQuest.d.ts +1 -0
  21. package/dist/components/Quests/JourneyQuest.js +61 -0
  22. package/dist/components/Quests/Quests.client.js +2 -0
  23. package/dist/components/Search/Search.lazy.js +1 -1
  24. package/dist/components/SignIn/MobileNumberSignIn.d.ts +1 -5
  25. package/dist/components/SignIn/MobileNumberSignIn.js +5 -23
  26. package/dist/components/SignIn/NameAndPasswordSignIn.d.ts +1 -5
  27. package/dist/components/SignIn/NameAndPasswordSignIn.js +6 -14
  28. package/dist/components/SignIn/SignIn.lazy.js +1 -1
  29. package/dist/components/SignIn/SignInForm.d.ts +1 -5
  30. package/dist/components/SignIn/SignInForm.js +2 -2
  31. package/dist/components/SignUp/SignUpDefault/SignUpForm.js +3 -7
  32. package/dist/components/SignUp/SignUpKYC/utils.js +18 -18
  33. package/dist/components/Tournaments/TournamentsCarousel/TournamentsCarouselItem.module.css +184 -184
  34. package/dist/components/Tournaments/TournamentsList/TournamentItem.module.css +184 -184
  35. package/dist/constants/EnvVar.d.ts +0 -2
  36. package/dist/constants/EnvVar.js +0 -11
  37. package/dist/constants/GameProvider.d.ts +1 -1
  38. package/dist/constants/GameProvider.js +1 -0
  39. package/dist/handlers/postAuthenticate.js +1 -1
  40. package/dist/handlers/postSession.js +1 -1
  41. package/dist/handlers/postTransformIdFrontImage.d.ts +3 -0
  42. package/dist/handlers/postTransformIdFrontImage.js +82 -0
  43. package/dist/handlers/postTransformSelfieImage.d.ts +3 -0
  44. package/dist/handlers/postTransformSelfieImage.js +82 -0
  45. package/dist/services/graphqlRequest.js +1 -9
  46. package/dist/services/httpRequest.js +1 -9
  47. package/dist/services/queries.js +2574 -2574
  48. package/dist/styles/theme.css +704 -701
  49. package/dist/ui/AlertDialog/AlertDialog.d.ts +55 -55
  50. package/dist/ui/AlertDialog/alertDialog.recipe.d.ts +5 -5
  51. package/dist/ui/Badge/Badge.d.ts +12 -0
  52. package/dist/ui/Badge/badge.recipe.d.ts +3 -0
  53. package/dist/ui/Badge/badge.recipe.js +11 -0
  54. package/dist/ui/Combobox/Combobox.d.ts +42 -42
  55. package/dist/ui/Combobox/combobox.recipe.d.ts +3 -3
  56. package/dist/ui/DatePicker/DatePicker.d.ts +72 -72
  57. package/dist/ui/DatePicker/datePicker.recipe.d.ts +3 -3
  58. package/dist/ui/Dialog/Dialog.d.ts +55 -55
  59. package/dist/ui/Dialog/dialog.recipe.d.ts +5 -5
  60. package/dist/ui/Drawer/Drawer.d.ts +33 -33
  61. package/dist/ui/Drawer/drawer.recipe.d.ts +3 -3
  62. package/dist/ui/Field/Field.d.ts +21 -21
  63. package/dist/ui/Field/field.recipe.d.ts +3 -3
  64. package/package.json +164 -163
  65. package/dist/client/hooks/index.d.ts +0 -65
  66. package/dist/client/hooks/index.js +0 -65
  67. package/dist/client/services/index.d.ts +0 -4
  68. package/dist/client/services/index.js +0 -4
  69. package/dist/client/utils/index.d.ts +0 -3
  70. package/dist/client/utils/index.js +0 -3
  71. package/dist/components/CashbackBonus/CashbackBonus.client.d.ts +0 -2
  72. package/dist/components/CashbackBonus/CashbackBonus.client.js +0 -9
  73. package/dist/components/CashbackBonus/CashbackBonus.d.ts +0 -10
  74. package/dist/components/CashbackBonus/CashbackBonus.js +0 -5
  75. package/dist/components/CashbackBonus/index.d.ts +0 -1
  76. package/dist/components/CashbackBonus/index.js +0 -1
  77. package/dist/components/Empty.d.ts +0 -9
  78. package/dist/components/Empty.js +0 -7
  79. package/dist/components/FeatureFlag/FeatureFlag.d.ts +0 -1
  80. package/dist/components/FeatureFlag/FeatureFlag.js +0 -29
  81. package/dist/components/FeatureFlag/index.d.ts +0 -1
  82. package/dist/components/FeatureFlag/index.js +0 -1
  83. package/dist/components/Games/GameContext.d.ts +0 -2
  84. package/dist/components/Games/GameContext.js +0 -2
  85. package/dist/components/InfiniteScroll.d.ts +0 -10
  86. package/dist/components/InfiniteScroll.js +0 -25
  87. package/dist/components/JackpotCounter/JackpotCounter.client.d.ts +0 -2
  88. package/dist/components/JackpotCounter/JackpotCounter.client.js +0 -66
  89. package/dist/components/JackpotCounter/JackpotCounter.d.ts +0 -17
  90. package/dist/components/JackpotCounter/JackpotCounter.js +0 -21
  91. package/dist/components/JackpotCounter/JackpotCounterItem.d.ts +0 -18
  92. package/dist/components/JackpotCounter/JackpotCounterItem.js +0 -109
  93. package/dist/components/JackpotCounter/JackpotCounterItem.module.css +0 -184
  94. package/dist/components/JackpotCounter/index.d.ts +0 -1
  95. package/dist/components/JackpotCounter/index.js +0 -1
  96. package/dist/components/Jackpots/JackpotDesktop.d.ts +0 -1
  97. package/dist/components/Jackpots/JackpotDesktop.js +0 -45
  98. package/dist/components/Jackpots/JackpotGameProviders.d.ts +0 -5
  99. package/dist/components/Jackpots/JackpotGameProviders.js +0 -41
  100. package/dist/components/Jackpots/JackpotItemDesktop.d.ts +0 -9
  101. package/dist/components/Jackpots/JackpotItemDesktop.js +0 -43
  102. package/dist/components/Jackpots/JackpotItemMobile.d.ts +0 -9
  103. package/dist/components/Jackpots/JackpotItemMobile.js +0 -44
  104. package/dist/components/Jackpots/JackpotMobile.d.ts +0 -1
  105. package/dist/components/Jackpots/JackpotMobile.js +0 -46
  106. package/dist/components/Jackpots/JackpotRules.d.ts +0 -5
  107. package/dist/components/Jackpots/JackpotRules.js +0 -11
  108. package/dist/components/Jackpots/Jackpots.client.d.ts +0 -2
  109. package/dist/components/Jackpots/Jackpots.client.js +0 -29
  110. package/dist/components/Jackpots/JackpotsContext.d.ts +0 -4
  111. package/dist/components/Jackpots/JackpotsContext.js +0 -3
  112. package/dist/components/Jackpots/useJackpotData.d.ts +0 -14
  113. package/dist/components/Jackpots/useJackpotData.js +0 -93
  114. package/dist/components/Jackpots/useJackpotItemData.d.ts +0 -20
  115. package/dist/components/Jackpots/useJackpotItemData.js +0 -87
  116. package/dist/components/KYC/AutoOpen.d.ts +0 -1
  117. package/dist/components/KYC/AutoOpen.js +0 -45
  118. package/dist/components/KYC/Header.d.ts +0 -1
  119. package/dist/components/KYC/Header.js +0 -8
  120. package/dist/components/KYC/Step1.d.ts +0 -1
  121. package/dist/components/KYC/Step1.js +0 -13
  122. package/dist/components/KYC/Step2.d.ts +0 -1
  123. package/dist/components/KYC/Step2.js +0 -13
  124. package/dist/components/KYC/Step3.d.ts +0 -1
  125. package/dist/components/KYC/Step3.js +0 -13
  126. package/dist/components/KYC/Step4.d.ts +0 -1
  127. package/dist/components/KYC/Step4.js +0 -7
  128. package/dist/components/KYC/backup/Header.d.ts +0 -1
  129. package/dist/components/KYC/backup/Header.js +0 -8
  130. package/dist/components/KYC/backup/Indicator.d.ts +0 -1
  131. package/dist/components/KYC/backup/Indicator.js +0 -9
  132. package/dist/components/KYC/backup/KYC.d.ts +0 -1
  133. package/dist/components/KYC/backup/KYC.js +0 -14
  134. package/dist/components/KYC/backup/KYC.lazy.d.ts +0 -1
  135. package/dist/components/KYC/backup/KYC.lazy.js +0 -26
  136. package/dist/components/KYC/backup/KYCContext.d.ts +0 -6
  137. package/dist/components/KYC/backup/KYCContext.js +0 -2
  138. package/dist/components/KYC/backup/Step1.d.ts +0 -1
  139. package/dist/components/KYC/backup/Step1.js +0 -13
  140. package/dist/components/KYC/backup/Step2.d.ts +0 -1
  141. package/dist/components/KYC/backup/Step2.js +0 -13
  142. package/dist/components/KYC/backup/Step3.d.ts +0 -1
  143. package/dist/components/KYC/backup/Step3.js +0 -13
  144. package/dist/components/KYC/backup/Step4.d.ts +0 -1
  145. package/dist/components/KYC/backup/Step4.js +0 -7
  146. package/dist/components/KYC/backup/useKYC.d.ts +0 -10
  147. package/dist/components/KYC/backup/useKYC.js +0 -8
  148. package/dist/components/KYC/loadModels.d.ts +0 -1
  149. package/dist/components/KYC/loadModels.js +0 -9
  150. package/dist/components/Messages/Message.d.ts +0 -1
  151. package/dist/components/Messages/Message.js +0 -34
  152. package/dist/components/Messages/MessageContext.d.ts +0 -6
  153. package/dist/components/Messages/MessageContext.js +0 -2
  154. package/dist/components/Messages/MessageItem.d.ts +0 -4
  155. package/dist/components/Messages/MessageItem.js +0 -34
  156. package/dist/components/Messages/MessagePopup.d.ts +0 -1
  157. package/dist/components/Messages/MessagePopup.js +0 -19
  158. package/dist/components/Messages/MessageTrigger.d.ts +0 -8
  159. package/dist/components/Messages/MessageTrigger.js +0 -19
  160. package/dist/components/Promo/PromoContent.d.ts +0 -2
  161. package/dist/components/Promo/PromoContent.js +0 -9
  162. package/dist/components/Promos/PromoCarousel.d.ts +0 -2
  163. package/dist/components/Promos/PromoCarousel.js +0 -41
  164. package/dist/components/Promos/PromoGrid.d.ts +0 -2
  165. package/dist/components/Promos/PromoGrid.js +0 -12
  166. package/dist/components/Promos/PromoItem.d.ts +0 -7
  167. package/dist/components/Promos/PromoItem.js +0 -10
  168. package/dist/components/Quests/CountdownTimer.d.ts +0 -15
  169. package/dist/components/Quests/CountdownTimer.js +0 -33
  170. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.d.ts +0 -4
  171. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.js +0 -78
  172. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.d.ts +0 -8
  173. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.js +0 -9
  174. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.d.ts +0 -4
  175. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.js +0 -4
  176. package/dist/components/Quests/WageringQuest/WageringQuest.d.ts +0 -4
  177. package/dist/components/Quests/WageringQuest/WageringQuest.js +0 -20
  178. package/dist/components/Quests/WageringQuest/WageringQuestModal.d.ts +0 -9
  179. package/dist/components/Quests/WageringQuest/WageringQuestModal.js +0 -9
  180. package/dist/components/SignUp/SignUp.lazy.d.ts +0 -12
  181. package/dist/components/SignUp/SignUp.lazy.js +0 -18
  182. package/dist/components/SignUp/SignUpContext.d.ts +0 -6
  183. package/dist/components/SignUp/SignUpContext.js +0 -2
  184. package/dist/components/SignUp/SignUpForm.d.ts +0 -1
  185. package/dist/components/SignUp/SignUpForm.js +0 -288
  186. package/dist/components/TournamentCounter/TournamentCounter.client.d.ts +0 -2
  187. package/dist/components/TournamentCounter/TournamentCounter.client.js +0 -50
  188. package/dist/components/TournamentCounter/TournamentCounter.d.ts +0 -8
  189. package/dist/components/TournamentCounter/TournamentCounter.js +0 -21
  190. package/dist/components/TournamentCounter/TournamentCounterItem.d.ts +0 -8
  191. package/dist/components/TournamentCounter/TournamentCounterItem.js +0 -106
  192. package/dist/components/TournamentCounter/index.d.ts +0 -1
  193. package/dist/components/TournamentCounter/index.js +0 -1
  194. package/dist/components/Tournaments/TournamentDesktop.d.ts +0 -1
  195. package/dist/components/Tournaments/TournamentDesktop.js +0 -57
  196. package/dist/components/Tournaments/TournamentGameProviders.d.ts +0 -5
  197. package/dist/components/Tournaments/TournamentGameProviders.js +0 -38
  198. package/dist/components/Tournaments/TournamentItemDesktop.d.ts +0 -7
  199. package/dist/components/Tournaments/TournamentItemDesktop.js +0 -56
  200. package/dist/components/Tournaments/TournamentItemMobile.d.ts +0 -7
  201. package/dist/components/Tournaments/TournamentItemMobile.js +0 -54
  202. package/dist/components/Tournaments/TournamentMobile.d.ts +0 -1
  203. package/dist/components/Tournaments/TournamentMobile.js +0 -55
  204. package/dist/components/Tournaments/TournamentRules.d.ts +0 -5
  205. package/dist/components/Tournaments/TournamentRules.js +0 -11
  206. package/dist/components/Tournaments/Tournaments.client.d.ts +0 -2
  207. package/dist/components/Tournaments/Tournaments.client.js +0 -20
  208. package/dist/components/Tournaments/TournamentsContext.d.ts +0 -4
  209. package/dist/components/Tournaments/TournamentsContext.js +0 -3
  210. package/dist/components/Tournaments/useTournamentData.d.ts +0 -10
  211. package/dist/components/Tournaments/useTournamentData.js +0 -72
  212. package/dist/components/Tournaments/useTournamentItemData.d.ts +0 -16
  213. package/dist/components/Tournaments/useTournamentItemData.js +0 -64
  214. package/dist/components/index.d.ts +0 -33
  215. package/dist/components/index.js +0 -33
  216. package/dist/components/shared/IdDocumentField.client.d.ts +0 -25
  217. package/dist/components/shared/IdDocumentField.client.js +0 -204
  218. package/dist/components/shared/IdDocumentField.d.ts +0 -2
  219. package/dist/components/shared/IdDocumentField.js +0 -11
  220. package/dist/components/shared/SelfieField.client.d.ts +0 -20
  221. package/dist/components/shared/SelfieField.client.js +0 -327
  222. package/dist/components/shared/SelfieField.d.ts +0 -2
  223. package/dist/components/shared/SelfieField.js +0 -11
  224. package/dist/constants/BranchCode.d.ts +0 -4
  225. package/dist/constants/BranchCode.js +0 -42
  226. package/dist/constants/endpoints.d.ts +0 -10
  227. package/dist/constants/endpoints.js +0 -41
  228. package/dist/constants/envVars.d.ts +0 -5
  229. package/dist/constants/envVars.js +0 -28
  230. package/dist/constants/gameProviders.d.ts +0 -76
  231. package/dist/constants/gameProviders.js +0 -361
  232. package/dist/constants/gameTypes.d.ts +0 -3
  233. package/dist/constants/gameTypes.js +0 -64
  234. package/dist/constants/headerKeys.d.ts +0 -2
  235. package/dist/constants/headerKeys.js +0 -2
  236. package/dist/constants/secretQuestions.d.ts +0 -3
  237. package/dist/constants/secretQuestions.js +0 -24
  238. package/dist/constants/storageKeys.d.ts +0 -2
  239. package/dist/constants/storageKeys.js +0 -2
  240. package/dist/handlers.d.ts +0 -43
  241. package/dist/handlers.js +0 -297
  242. package/dist/icons/BellRingIcon.d.ts +0 -2
  243. package/dist/icons/BellRingIcon.js +0 -4
  244. package/dist/icons/index.d.ts +0 -65
  245. package/dist/icons/index.js +0 -65
  246. package/dist/images/hacksaw-gaming.png +0 -0
  247. package/dist/server/services/index.d.ts +0 -4
  248. package/dist/server/services/index.js +0 -4
  249. package/dist/server/utils/index.d.ts +0 -29
  250. package/dist/server/utils/index.js +0 -29
  251. package/dist/ui/Presence.d.ts +0 -2
  252. package/dist/ui/Presence.js +0 -7
  253. package/dist/ui/Prose.d.ts +0 -2
  254. package/dist/ui/Prose.js +0 -5
  255. package/dist/ui/index.d.ts +0 -26
  256. package/dist/ui/index.js +0 -26
  257. package/dist/utils/createErrorFromCode.d.ts +0 -2
  258. package/dist/utils/createErrorFromCode.js +0 -11
  259. package/dist/utils/dataUrlToBlob.d.ts +0 -1
  260. package/dist/utils/dataUrlToBlob.js +0 -11
  261. package/dist/utils/index.d.ts +0 -17
  262. package/dist/utils/index.js +0 -17
  263. package/dist/utils/isMobile.d.ts +0 -5
  264. package/dist/utils/isMobile.js +0 -9
  265. package/dist/utils/resizeImageSize.d.ts +0 -1
  266. package/dist/utils/resizeImageSize.js +0 -6
@@ -1,22 +1,27 @@
1
1
  import { useMutation } from '@tanstack/react-query';
2
+ import { useReCaptcha } from 'next-recaptcha-v3';
2
3
  import { RECAPTCHA_HEADER_KEY } from '../../constants/index.js';
3
4
  import { getQueryClient } from '../../utils/getQueryClient.js';
4
5
  import { getAuthenticateMutationKey } from '../../utils/mutationKeys.js';
5
6
  import { getSessionQueryKey } from '../../utils/queryKeys.js';
6
7
  import { authenticate } from '../services/authenticate.js';
7
8
  import { getSession } from '../services/getSession.js';
8
- import { ReCAPTCHAExecute, ReCAPTCHAReady } from '../utils/recaptcha.js';
9
9
  export const useAuthenticateMutation = (config) => {
10
10
  const queryClient = getQueryClient();
11
+ const recaptcha = useReCaptcha();
11
12
  return useMutation({
12
13
  ...config,
13
14
  mutationKey: getAuthenticateMutationKey(),
14
15
  mutationFn: async (input) => {
15
16
  const session = await getSession();
16
- await ReCAPTCHAReady();
17
+ const token = recaptcha.reCaptchaKey
18
+ ? await recaptcha.executeRecaptcha('submit')
19
+ : null;
17
20
  await authenticate(input, {
18
21
  headers: {
19
- [RECAPTCHA_HEADER_KEY]: await ReCAPTCHAExecute({ action: 'submit' }),
22
+ ...(token && {
23
+ [RECAPTCHA_HEADER_KEY]: token,
24
+ }),
20
25
  ...(session.domain && {
21
26
  Domain: session.domain,
22
27
  }),
@@ -1,22 +1,27 @@
1
1
  import { useMutation } from '@tanstack/react-query';
2
+ import { useReCaptcha } from 'next-recaptcha-v3';
2
3
  import { RECAPTCHA_HEADER_KEY } from '../../constants/index.js';
3
4
  import { getQueryClient } from '../../utils/getQueryClient.js';
4
5
  import { getSignInMutationKey } from '../../utils/mutationKeys.js';
5
6
  import { getSessionQueryKey } from '../../utils/queryKeys.js';
6
7
  import { getSession } from '../services/getSession.js';
7
8
  import { signIn } from '../services/signIn.js';
8
- import { ReCAPTCHAExecute, ReCAPTCHAReady } from '../utils/recaptcha.js';
9
9
  export const useSignInMutation = (config) => {
10
10
  const queryClient = getQueryClient();
11
+ const recaptcha = useReCaptcha();
11
12
  return useMutation({
12
13
  ...config,
13
14
  mutationKey: getSignInMutationKey(),
14
15
  mutationFn: async (input) => {
15
16
  const session = await getSession();
16
- await ReCAPTCHAReady();
17
+ const token = recaptcha.reCaptchaKey
18
+ ? await recaptcha.executeRecaptcha('submit')
19
+ : null;
17
20
  const authenticator = await signIn(input, {
18
21
  headers: {
19
- [RECAPTCHA_HEADER_KEY]: await ReCAPTCHAExecute({ action: 'submit' }),
22
+ ...(token && {
23
+ [RECAPTCHA_HEADER_KEY]: token,
24
+ }),
20
25
  ...(session.domain && {
21
26
  Domain: session.domain,
22
27
  }),
@@ -0,0 +1,12 @@
1
+ import type { ImageProps } from 'next/image';
2
+ export interface BannerEntry {
3
+ src: ImageProps['src'];
4
+ redirectUrl?: string;
5
+ }
6
+ export interface BannerProps {
7
+ banners: BannerEntry[];
8
+ imageWidth?: number | [mobile: number, desktop: number];
9
+ imageHeight?: number | [mobile: number, desktop: number];
10
+ className?: string;
11
+ }
12
+ export declare function Banner__client(props: BannerProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,49 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import emblaCarouselAutoplay from 'embla-carousel-autoplay';
4
+ import useEmblaCarousel, {} from 'embla-carousel-react';
5
+ import isMobile from 'is-mobile';
6
+ import Image from 'next/image';
7
+ import Link from 'next/link';
8
+ import { Fragment, useEffect, useState } from 'react';
9
+ import { twMerge } from 'tailwind-merge';
10
+ import { dataAttr } from '../../utils/dataAttr.js';
11
+ export function Banner__client(props) {
12
+ const [emblaRef, emblaApi] = useEmblaCarousel({
13
+ loop: true,
14
+ align: 'start',
15
+ }, [
16
+ emblaCarouselAutoplay({
17
+ playOnInit: true,
18
+ delay: 5000,
19
+ }),
20
+ ]);
21
+ const [currentIndex, setCurrentIndex] = useState(0);
22
+ useEffect(() => {
23
+ function handler(detail) {
24
+ setCurrentIndex(detail?.selectedScrollSnap() ?? 0);
25
+ }
26
+ emblaApi?.on('scroll', handler);
27
+ emblaApi?.on('init', handler);
28
+ return () => {
29
+ emblaApi?.on('init', handler);
30
+ emblaApi?.off('scroll', handler);
31
+ };
32
+ }, [emblaApi]);
33
+ const imageWidth = !props.imageWidth
34
+ ? [400, 1200]
35
+ : Array.isArray(props.imageWidth)
36
+ ? props.imageWidth
37
+ : [props.imageWidth, props.imageWidth];
38
+ const imageHeight = !props.imageHeight
39
+ ? [225, 300]
40
+ : Array.isArray(props.imageHeight)
41
+ ? props.imageHeight
42
+ : [props.imageHeight, props.imageHeight];
43
+ return (_jsxs("div", { className: twMerge('relative', props.className), children: [_jsx("div", { ref: emblaRef, className: "overflow-hidden", children: _jsx("div", { className: "flex gap-2", children: props.banners.map((banner, index) => {
44
+ const img = (_jsx(Image, { src: banner.src, alt: "", width: isMobile() ? imageWidth[0] : imageWidth[1], height: isMobile() ? imageHeight[0] : imageHeight[1], className: "block h-auto w-full", priority: index === 0 }));
45
+ return (_jsx(Fragment, { children: !banner.redirectUrl ? (_jsx("div", { className: "w-full shrink-0", children: img })) : (_jsx(Link, { href: banner.redirectUrl, className: "block w-full shrink-0", "aria-label": `Open ${banner.redirectUrl}`, children: img })) }, index));
46
+ }) }) }), _jsx("div", { className: "absolute bottom-lg left-1/2 flex w-fit -translate-x-1/2 gap-2", children: props.banners.map((_, index) => (_jsx("button", { type: "button", className: "ui-active:bg-brand-500 bg-gray-300 size-3 shrink-0 rounded-full border border-white transition-all duration-300 ui-active:w-9", onClick: () => {
47
+ emblaApi?.scrollTo(index);
48
+ }, "aria-label": `Go to slide ${index + 1}`, "data-active": dataAttr(index === currentIndex) }, index))) })] }));
49
+ }
@@ -13,7 +13,7 @@ import piggyBank from '../../images/piggy-bank.png';
13
13
  import { Badge } from '../../ui/Badge/index.js';
14
14
  import { Collapsible } from '../../ui/Collapsible/index.js';
15
15
  import { Progress } from '../../ui/Progress/index.js';
16
- import { Prose } from '../../ui/Prose.js';
16
+ import { Prose } from '../../ui/Prose/index.js';
17
17
  import { capitalize } from '../../utils/capitalize.js';
18
18
  import { formatNumber } from '../../utils/formatNumber.js';
19
19
  import { parseDecimal } from '../../utils/parseDecimal.js';
@@ -26,9 +26,9 @@ export function Bonus__client(props) {
26
26
  return null;
27
27
  const turnoverRequirement = parseDecimal(bonus.turnoverRequirement, 0);
28
28
  const currentTurnoverRequirementContribution = parseDecimal(bonus.currentTurnoverRequirementContribution, 0);
29
- return (_jsxs("div", { className: props.className, children: [_jsxs(Link, { href: props.viewAllUrl ?? '/rewards', className: "text-button-tertiary-fg flex items-center gap-lg text-lg font-semibold", children: [_jsx(ChevronLeftIcon, { className: "size-6" }), "Back to Rewards"] }), _jsx("div", { className: "mt-3xl", children: bonus.promo.banner?.url ? (_jsx(Image, { src: bonus.promo.banner.url, alt: "", width: 1024, height: 600, unoptimized: true, priority: true, className: "h-auto w-full" })) : (_jsx(DefaultImage, {})) }), _jsxs(Badge.Root, { size: "lg", round: false, colorScheme: remainingTime.expired ? 'danger' : 'gray', className: "mt-xl lg:mt-6", children: [_jsx(Badge.Icon, { children: _jsx(StopWatchIcon, {}) }), _jsx(Badge.Label, { children: remainingTime.expired ? 'Expired' : remainingTime.toString() })] }), _jsx("h1", { className: "text-text-primary-900 mt-xl text-2xl font-semibold lg:mt-6 lg:text-3xl", children: bonus.promo.name }), _jsx("p", { className: "text-text-primary-brand mt-xl text-base lg:mt-6 lg:text-lg", children: "Complete the wagering before time runs out to convert your bonus balance into real money!" }), _jsxs("div", { className: "border-border-primary bg-bg-tertiary text-text-secondary-700 mt-xl flex items-center justify-between rounded-md border px-3.5 py-xl lg:mt-6", children: [_jsx("p", { children: "Your bonus balance" }), _jsx("p", { children: _jsx("span", { className: "text-text-primary-900", children: formatNumber(bonus.balance, {
29
+ return (_jsxs("div", { className: props.className, children: [_jsxs(Link, { href: props.viewAllUrl ?? '/rewards', className: "text-button-tertiary-fg flex items-center gap-lg text-lg font-semibold", children: [_jsx(ChevronLeftIcon, { className: "size-6" }), "Back to all Rewards"] }), _jsx("div", { className: "mt-3xl", children: bonus.promo.banner?.url ? (_jsx(Image, { src: bonus.promo.banner.url, alt: "", width: 1024, height: 600, unoptimized: true, priority: true, className: "h-auto w-full rounded-xl" })) : (_jsx(DefaultImage, {})) }), _jsxs(Badge.Root, { size: "lg", round: false, colorScheme: remainingTime.expired ? 'danger' : 'brand-dark', className: "mt-xl lg:mt-6", children: [_jsx(Badge.Icon, { children: _jsx(StopWatchIcon, {}) }), _jsx(Badge.Label, { children: remainingTime.expired ? 'Expired' : remainingTime.toString() })] }), _jsx("h1", { className: "text-text-primary-900 mt-xl text-2xl font-semibold lg:mt-6 lg:text-3xl", children: bonus.promo.name }), _jsx("p", { className: "text-text-primary-brand mt-xl text-base lg:mt-6 lg:text-lg", children: "Complete the wagering before time runs out to convert your bonus balance into real money!" }), _jsxs("div", { className: "border-border-primary bg-bg-tertiary text-text-secondary-700 mt-xl flex items-center justify-between rounded-md border px-3.5 py-xl lg:mt-6", children: [_jsx("p", { children: "Your bonus balance" }), _jsx("p", { children: _jsx("span", { className: "text-text-primary-900", children: formatNumber(bonus.balance, {
30
30
  currency: localeInfo.currency.code,
31
- }) }) })] }), _jsxs("div", { className: "border-border-primary bg-bg-tertiary text-text-secondary-700 mt-xl rounded-md border px-3.5 py-xl lg:mt-6", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("p", { children: "Wagering" }), _jsxs("p", { children: [currentTurnoverRequirementContribution, "/", turnoverRequirement] })] }), _jsx(Progress.Root, { className: "mt-2", min: 0, max: turnoverRequirement, value: clamp(currentTurnoverRequirementContribution, 0, turnoverRequirement), children: _jsx(Progress.Track, { children: _jsx(Progress.Range, {}) }) })] }), _jsxs(Collapsible.Root, { className: "mt-xl lg:mt-6", children: [_jsxs(Collapsible.Trigger, { className: "text-button-tertiary-fg flex w-fit items-center justify-center gap-sm text-sm font-semibold lg:mx-auto", children: ["Game Provider Contribution", _jsx(Collapsible.Indicator, { asChild: true, children: _jsx(ChevronRightIcon, { className: "size-5" }) })] }), _jsx(Collapsible.Content, { className: "border-border-primary bg-bg-tertiary text-text-secondary-700 mt-xl space-y-1.5 rounded-md border px-3.5 py-xl lg:mt-6", children: Object.entries(bonus.promo
31
+ }) }) })] }), _jsxs("div", { className: "border-border-primary bg-bg-tertiary text-text-secondary-700 mt-xl rounded-md border px-3.5 py-xl lg:mt-6", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("p", { children: ["Wagering ", bonus.currentTurnoverRequirementContributionPercentage, "%"] }), _jsxs("p", { children: [currentTurnoverRequirementContribution, "/", turnoverRequirement] })] }), _jsx(Progress.Root, { className: "mt-2", min: 0, max: turnoverRequirement, value: clamp(currentTurnoverRequirementContribution, 0, turnoverRequirement), children: _jsx(Progress.Track, { children: _jsx(Progress.Range, {}) }) })] }), _jsxs(Collapsible.Root, { className: "mt-xl lg:mt-6", children: [_jsxs(Collapsible.Trigger, { className: "text-button-tertiary-fg flex items-center gap-sm text-sm font-semibold", children: ["Game Provider Contribution", _jsx(Collapsible.Indicator, { asChild: true, children: _jsx(ChevronRightIcon, { className: "size-5" }) })] }), _jsx(Collapsible.Content, { className: "border-border-primary bg-bg-tertiary text-text-secondary-700 mt-xl space-y-1.5 rounded-md border px-3.5 py-xl lg:mt-6", children: Object.entries(bonus.promo
32
32
  .turnoverRequirementContributionPercentagePerGameProvider ?? {}).map(([provider, valueAsString]) => {
33
33
  const value = parseDecimal(valueAsString, 0);
34
34
  return (_jsxs("div", { className: "flex items-center justify-between gap-md", children: [_jsx("p", { className: "w-[11.25rem] shrink-0", children: capitalize(provider, {
@@ -42,5 +42,5 @@ export function Bonus__client(props) {
42
42
  function DefaultImage() {
43
43
  return (_jsx("div", { style: {
44
44
  background: 'radial-gradient(75.21% 75.21% at 50% 50%, rgba(249, 163, 8, 0.3) 0%, rgba(0, 0, 0, 0) 100%), var(--color-bg-primary-alt)',
45
- }, className: "overflow-hidden rounded-xl", children: _jsx(Image, { src: piggyBank, alt: "", className: "mx-auto h-auto w-[50%] shrink-0", draggable: false, width: 1024, height: 1024, priority: true }) }));
45
+ }, className: "overflow-hidden rounded-xl", children: _jsx(Image, { src: piggyBank, alt: "", className: "mx-auto h-auto w-[50%] shrink-0 rounded-xl", draggable: false, width: 1024, height: 1024, priority: true }) }));
46
46
  }
@@ -11,7 +11,7 @@ import { useGlobalStore } from '../../client/hooks/useGlobalStore.js';
11
11
  import { useLocaleInfo } from '../../client/hooks/useLocaleInfo.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 Cashback__client(props) {
16
16
  const availablePromosQuery = useAvailablePromosQuery();
17
17
  const cashbackQuery = useCashbackQuery(props.id);
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  import Image from 'next/image';
4
4
  import Link from 'next/link';
5
5
  import { ChevronLeftIcon } from '../../icons/ChevronLeftIcon.js';
6
- import { Prose } from '../../ui/Prose.js';
6
+ import { Prose } from '../../ui/Prose/index.js';
7
7
  import { stripTags } from '../../utils/stripTags.js';
8
8
  export async function CustomPromo(props) {
9
9
  return (_jsxs(_Fragment, { children: [_jsx("meta", { name: "description", content: stripTags(props.promo.description) }), _jsx("meta", { name: "og:title", content: props.promo.name }), _jsx("meta", { name: "og:description", content: stripTags(props.promo.description) }), _jsx("meta", { name: "og:image", content: props.promo.banner }), _jsx("meta", { name: "twitter:title", content: props.promo.name }), _jsx("meta", { name: "twitter:description", content: stripTags(props.promo.description) }), _jsx("meta", { name: "twitter:image", content: props.promo.banner }), _jsx("meta", { name: "twitter:card", content: "summary_large_image" }), _jsxs("div", { className: props.className, children: [_jsxs(Link, { href: props.viewAllPromosUrl ?? '/promos', className: "text-button-tertiary-fg flex w-fit items-center gap-lg text-lg font-semibold", children: [_jsx(ChevronLeftIcon, { className: "size-6" }), "Back to all Promotions"] }), _jsx(Image, { src: props.promo.banner, alt: "", width: 1024, height: 600, priority: true, unoptimized: true, className: "mt-xl h-auto w-full rounded-xl lg:mt-6" }), _jsx("h1", { className: "mt-xl text-2xl font-semibold lg:mt-6 lg:text-3xl", children: props.promo.name }), _jsx(Prose, { className: "mt-2xl lg:mt-6", dangerouslySetInnerHTML: {
@@ -22,7 +22,7 @@ import { AlertDialog } from '../../ui/AlertDialog/index.js';
22
22
  import { Button } from '../../ui/Button/index.js';
23
23
  import { IconButton } from '../../ui/IconButton/index.js';
24
24
  import { Portal } from '../../ui/Portal/index.js';
25
- import { Presence } from '../../ui/Presence.js';
25
+ import { Presence } from '../../ui/Presence/index.js';
26
26
  export function GameLaunch() {
27
27
  const globalStore = useGlobalStore(useShallow((ctx) => ({
28
28
  gameLaunch: ctx.gameLaunch,
@@ -10,7 +10,7 @@ import { SearchLgIcon } from '../../icons/SearchLgIcon.js';
10
10
  import { Button } from '../../ui/Button/index.js';
11
11
  import { Combobox } from '../../ui/Combobox/index.js';
12
12
  import { Portal } from '../../ui/Portal/index.js';
13
- import { Presence } from '../../ui/Presence.js';
13
+ import { Presence } from '../../ui/Presence/index.js';
14
14
  import { getGameImageUrl } from '../../utils/getGameImageUrl.js';
15
15
  import { GameLaunchTrigger } from '../GameLaunch/index.js';
16
16
  export function GamesSearch(props) {
@@ -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
+ }