@opexa/portal-components 0.0.223 → 0.0.225

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 (100) hide show
  1. package/dist/components/DigitainLauncher/DigitainLauncher.d.ts +3 -2
  2. package/dist/components/DigitainLauncher/DigitainLauncher.js +3 -1
  3. package/dist/components/DigitainLauncher/DigitianContainter.js +23 -16
  4. package/dist/components/DigitainLauncher/Fallback.d.ts +3 -0
  5. package/dist/components/DigitainLauncher/Fallback.js +19 -0
  6. package/dist/components/DigitainLauncher/Loading.d.ts +1 -0
  7. package/dist/components/DigitainLauncher/Loading.js +5 -0
  8. package/dist/components/Disclaimer/Disclaimer.d.ts +1 -0
  9. package/dist/components/Disclaimer/Disclaimer.js +1 -1
  10. package/dist/components/Disclaimer/DisclaimerV2.d.ts +1 -0
  11. package/dist/components/Disclaimer/DisclaimerV2.js +19 -2
  12. package/dist/components/Empty.d.ts +2 -1
  13. package/dist/components/KYC/Header.js +2 -4
  14. package/dist/components/KYC/Step1.js +2 -3
  15. package/dist/components/KYC/Step2.js +2 -3
  16. package/dist/components/KYC/Step3.js +2 -4
  17. package/dist/components/KYC/Step4.js +2 -3
  18. package/dist/components/KYC/backup/KYCContext.d.ts +1 -5
  19. package/dist/components/Messages/Message.js +3 -2
  20. package/dist/components/Messages/MessageContext.d.ts +1 -5
  21. package/dist/components/Messages/MessagePopup.js +3 -2
  22. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.d.ts +1 -1
  23. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.js +5 -10
  24. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.js +3 -4
  25. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.d.ts +1 -1
  26. package/dist/components/Quests/WageringQuest/WageringQuest.d.ts +1 -1
  27. package/dist/components/Quests/WageringQuest/WageringQuest.js +2 -3
  28. package/dist/components/Quests/WageringQuest/WageringQuestModal.js +3 -4
  29. package/dist/components/SignUp/SignUpForm.js +1 -6
  30. package/dist/constants/gameProviders.d.ts +2 -1
  31. package/dist/constants/gameProviders.js +0 -6
  32. package/dist/constants/gameTypes.d.ts +2 -1
  33. package/dist/constants/headerKeys.d.ts +0 -1
  34. package/dist/constants/headerKeys.js +0 -1
  35. package/dist/constants/secretQuestions.d.ts +1 -1
  36. package/dist/ui/AlertDialog/AlertDialog.d.ts +88 -88
  37. package/dist/ui/AlertDialog/alertDialog.recipe.d.ts +11 -11
  38. package/dist/ui/Avatar/avatar.recipe.d.ts +3 -3
  39. package/dist/ui/Badge/Badge.d.ts +12 -12
  40. package/dist/ui/Carousel/Carousel.d.ts +45 -45
  41. package/dist/ui/Carousel/carousel.recipe.d.ts +5 -5
  42. package/dist/ui/Checkbox/Checkbox.d.ts +23 -23
  43. package/dist/ui/Checkbox/checkbox.recipe.d.ts +3 -3
  44. package/dist/ui/Clipboard/Clipboard.d.ts +18 -18
  45. package/dist/ui/Collapsible/Collapsible.d.ts +32 -32
  46. package/dist/ui/Collapsible/collapsible.recipe.d.ts +5 -5
  47. package/dist/ui/Combobox/Combobox.d.ts +42 -42
  48. package/dist/ui/Combobox/combobox.recipe.d.ts +3 -3
  49. package/dist/ui/DatePicker/DatePicker.d.ts +72 -72
  50. package/dist/ui/DatePicker/datePicker.recipe.d.ts +3 -3
  51. package/dist/ui/Dialog/Dialog.d.ts +88 -88
  52. package/dist/ui/Dialog/dialog.recipe.d.ts +11 -11
  53. package/dist/ui/Drawer/Drawer.d.ts +33 -33
  54. package/dist/ui/Drawer/drawer.recipe.d.ts +3 -3
  55. package/dist/ui/Menu/Menu.d.ts +144 -144
  56. package/dist/ui/Menu/menu.recipe.d.ts +20 -20
  57. package/dist/ui/PasswordInput/PasswordInput.d.ts +18 -18
  58. package/dist/ui/Popover/Popover.d.ts +55 -55
  59. package/dist/ui/Popover/popover.recipe.d.ts +8 -8
  60. package/dist/ui/Presence.d.ts +1 -1
  61. package/dist/ui/Presence.js +1 -1
  62. package/dist/ui/Progress/Progress.d.ts +27 -27
  63. package/dist/ui/Progress/progress.recipe.d.ts +3 -3
  64. package/dist/ui/QrCode/qrCode.recipe.d.ts +5 -5
  65. package/dist/ui/SegmentGroup/SegmentGroup.d.ts +18 -18
  66. package/dist/ui/SegmentGroup/segmentGroup.recipe.d.ts +3 -3
  67. package/dist/ui/Select/Select.d.ts +45 -45
  68. package/dist/ui/Select/select.recipe.d.ts +3 -3
  69. package/dist/ui/Table/Table.d.ts +21 -21
  70. package/dist/ui/Table/table.anatomy.d.ts +1 -1
  71. package/dist/ui/Table/table.recipe.d.ts +3 -3
  72. package/dist/ui/Tabs/Tabs.d.ts +15 -15
  73. package/dist/ui/Tabs/tabs.recipe.d.ts +3 -3
  74. package/dist/utils/constants.d.ts +2 -0
  75. package/dist/utils/constants.js +2 -0
  76. package/dist/utils/isBetween3amAnd3pm.d.ts +1 -0
  77. package/dist/utils/isBetween3amAnd3pm.js +5 -0
  78. package/package.json +1 -1
  79. package/dist/components/CashbackBonus/CashbackBonus.client.d.ts +0 -2
  80. package/dist/components/CashbackBonus/CashbackBonus.client.js +0 -9
  81. package/dist/components/CashbackBonus/CashbackBonus.d.ts +0 -10
  82. package/dist/components/CashbackBonus/CashbackBonus.js +0 -5
  83. package/dist/components/CashbackBonus/index.d.ts +0 -1
  84. package/dist/components/CashbackBonus/index.js +0 -1
  85. package/dist/components/KYC/loadModels.d.ts +0 -1
  86. package/dist/components/KYC/loadModels.js +0 -9
  87. package/dist/components/Promo/PromoContent.d.ts +0 -2
  88. package/dist/components/Promo/PromoContent.js +0 -9
  89. package/dist/components/Promos/PromoCarousel.d.ts +0 -2
  90. package/dist/components/Promos/PromoCarousel.js +0 -41
  91. package/dist/components/Promos/PromoGrid.d.ts +0 -2
  92. package/dist/components/Promos/PromoGrid.js +0 -12
  93. package/dist/components/Promos/PromoItem.d.ts +0 -7
  94. package/dist/components/Promos/PromoItem.js +0 -10
  95. package/dist/constants/BranchCode.d.ts +0 -4
  96. package/dist/constants/BranchCode.js +0 -42
  97. package/dist/constants/endpoints.d.ts +0 -10
  98. package/dist/constants/endpoints.js +0 -41
  99. package/dist/utils/createErrorFromCode.d.ts +0 -2
  100. package/dist/utils/createErrorFromCode.js +0 -11
@@ -1,4 +1,5 @@
1
- export interface DigitainBootstrapperParams {
1
+ export interface DigitainLauncherParams {
2
2
  hostname: string;
3
+ signInUrl?: string | null;
3
4
  }
4
- export declare function DigitainLauncher(props: DigitainBootstrapperParams): Promise<import("react/jsx-runtime").JSX.Element>;
5
+ export declare function DigitainLauncher(props: DigitainLauncherParams): Promise<import("react/jsx-runtime").JSX.Element>;
@@ -1,7 +1,9 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import Script from 'next/script';
3
3
  import { getSession } from '../../server/services/getSession.js';
4
+ import { Protected } from '../Protected/index.js';
4
5
  import { DigitainContainer } from './DigitianContainter.js';
6
+ import { Fallback } from './Fallback.js';
5
7
  import { defaultDigitainParams, getDigitainLaunchToken } from './utils.js';
6
8
  export async function DigitainLauncher(props) {
7
9
  const session = await getSession();
@@ -9,5 +11,5 @@ export async function DigitainLauncher(props) {
9
11
  if (session.status === 'authenticated') {
10
12
  params.token = await getDigitainLaunchToken();
11
13
  }
12
- return (_jsxs(_Fragment, { children: [_jsx(Script, { src: `//${props.hostname}/js/partner/bootstrapper.min.js` }), _jsx(DigitainContainer, { params: params })] }));
14
+ return (_jsxs(_Fragment, { children: [_jsx(Script, { src: `//${props.hostname}/js/partner/bootstrapper.min.js` }), _jsx(Protected, { fallback: _jsx(Fallback, { signInUrl: props.signInUrl }), children: _jsx(DigitainContainer, { params: params }) })] }));
13
15
  }
@@ -1,40 +1,47 @@
1
1
  'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import isMobile from 'is-mobile';
4
+ import { useRouter } from 'next/navigation';
3
5
  import { useEffect, useState } from 'react';
4
- import { useCreateDigitainGameSessionMutation } from '../../client/hooks/useCreateDigitainGameSessionMutatio.js';
6
+ import { twJoin } from 'tailwind-merge';
5
7
  import { useSessionQuery } from '../../client/hooks/useSessionQuery.js';
8
+ import { toaster } from '../../client/utils/toaster.js';
9
+ import { Loading } from './Loading.js';
6
10
  export function DigitainContainer(props) {
7
11
  const session = useSessionQuery();
8
- const [loading, setLoading] = useState(false);
9
- const [sportsBookLoaded, setSportsBookLoaded] = useState(false);
10
- const digitainSession = useCreateDigitainGameSessionMutation();
12
+ const [isLoading, setLoading] = useState(false);
13
+ const router = useRouter();
14
+ useEffect(() => {
15
+ if (session.data?.status === 'authenticated') {
16
+ router.refresh();
17
+ }
18
+ }, [session.data?.status, router]);
11
19
  useEffect(() => {
12
- console.log('did account change?', session.data?.status);
13
20
  setLoading(true);
14
21
  let attempts = 0;
15
22
  const maxAttempts = 5; // e.g. wait up to ~10 seconds
16
- console.log('Waiting for Bootstrapper to load...');
17
23
  function checkAndBoot() {
18
24
  if (typeof window !== 'undefined' && window.Bootstrapper) {
19
- const params = {
20
- ...props.params,
21
- token: digitainSession.data?.launchUrl,
22
- };
23
- window.Bootstrapper.boot(params, { name: 'AsianView' }).then(() => {
25
+ window.Bootstrapper.boot(props.params, {
26
+ name: isMobile() ? 'AsianView' : 'AsianView',
27
+ }).then(() => {
24
28
  console.log('Sportsbook booted!');
25
29
  });
26
- setLoading(false);
27
- setSportsBookLoaded(true);
30
+ setTimeout(() => setLoading(false), 1000); // Give some time for the UI to update
28
31
  clearInterval(intervalId);
29
32
  }
30
33
  else if (++attempts >= maxAttempts) {
31
34
  setLoading(false);
35
+ toaster.error({
36
+ title: 'Error',
37
+ description: 'Sportsbook failed to load. Please try again later.',
38
+ });
32
39
  console.warn('Bootstrapper did not load in time.');
33
40
  clearInterval(intervalId);
34
41
  }
35
42
  }
36
43
  const intervalId = setInterval(checkAndBoot, 500);
37
44
  return () => clearInterval(intervalId);
38
- }, [props.params, session.data?.status, digitainSession.data?.launchUrl]);
39
- return _jsx("div", { id: "digitain-container" });
45
+ }, [props.params]);
46
+ return (_jsxs(_Fragment, { children: [' ', _jsxs("div", { className: twJoin(!isLoading && 'hidden'), children: [_jsx(Loading, {}), ' '] }), _jsx("div", { id: "digitain-container", className: twJoin(isLoading && 'hidden') }), ' '] }));
40
47
  }
@@ -0,0 +1,3 @@
1
+ export declare function Fallback({ signInUrl }: {
2
+ signInUrl?: string | null;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useShallow } from 'zustand/shallow';
4
+ import { useGlobalStore } from '../../client/hooks/useGlobalStore.js';
5
+ import { User01Icon } from '../../icons/User01Icon.js';
6
+ import { Button } from '../../ui/Button/index.js';
7
+ export function Fallback({ signInUrl }) {
8
+ const globalStore = useGlobalStore(useShallow((ctx) => ({
9
+ signIn: ctx.signIn,
10
+ })));
11
+ return (_jsx("div", { className: "h-[calc(100vh-400px)] w-screen", children: _jsx("div", { className: "m-auto flex h-full max-w-[40rem] flex-col items-center justify-center px-4", children: _jsxs("div", { className: "text-center", children: [_jsx("div", { className: "mb-6 flex justify-center", children: _jsx("div", { className: "bg-gray-100 rounded-full p-4", children: _jsx(User01Icon, { className: "text-gray-400 size-12" }) }) }), _jsxs("div", { className: "mb-8 space-y-3", children: [_jsx("h2", { className: "text-gray-900 text-2xl font-bold", children: "Sign in required" }), _jsx("p", { className: "text-gray-600 leading-relaxed", children: "Access to Sports Book is restricted to authenticated users. Please sign in to view betting odds, place bets, and track your activity." })] }), _jsx(Button, { onClick: () => {
12
+ if (signInUrl) {
13
+ window.location.href = signInUrl;
14
+ }
15
+ else {
16
+ globalStore.signIn.setOpen(true);
17
+ }
18
+ }, children: "Sign In" })] }) }) }));
19
+ }
@@ -0,0 +1 @@
1
+ export declare function Loading(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ export function Loading() {
4
+ return (_jsx("div", { className: "flex h-[calc(100vh-400px)] w-screen items-center justify-center px-4", children: _jsxs("div", { className: "flex flex-col items-center space-y-4", children: [_jsx("div", { className: "border-blue-500 h-10 w-10 animate-spin rounded-full border-4 border-t-transparent" }), _jsx("p", { className: "text-gray-700 text-lg font-medium", children: "Loading Sports Book\u2026" })] }) }));
5
+ }
@@ -8,6 +8,7 @@ type DisclaimerProps = DisclaimerV1Props | {
8
8
  responsibleGamingContent: string | ReactNode;
9
9
  termsOfUseContent: string | ReactNode;
10
10
  responsibleGamingLogo?: ImageProps['src'];
11
+ redirectUrlOnNoConsent: string;
11
12
  };
12
13
  export declare function Disclaimer(props: DisclaimerProps): import("react/jsx-runtime").JSX.Element;
13
14
  export {};
@@ -4,7 +4,7 @@ import { DisclaimerV1 } from './DisclaimerV1.js';
4
4
  import { DisclaimerV2 } from './DisclaimerV2.js';
5
5
  export function Disclaimer(props) {
6
6
  if (props.version === 'v2') {
7
- return (_jsx(DisclaimerV2, { logo: props.logo, siteName: props.siteName, responsibleGamingContent: props.responsibleGamingContent, termsOfUseContent: props.termsOfUseContent, responsibleGamingLogo: props.responsibleGamingLogo }));
7
+ return (_jsx(DisclaimerV2, { logo: props.logo, siteName: props.siteName, responsibleGamingContent: props.responsibleGamingContent, termsOfUseContent: props.termsOfUseContent, responsibleGamingLogo: props.responsibleGamingLogo, redirectUrlOnNoConsent: props.redirectUrlOnNoConsent }));
8
8
  }
9
9
  return _jsx(DisclaimerV1, { ...props });
10
10
  }
@@ -6,5 +6,6 @@ export interface DisclaimerProps {
6
6
  responsibleGamingContent: ReactNode;
7
7
  termsOfUseContent: ReactNode;
8
8
  responsibleGamingLogo?: ImageProps['src'];
9
+ redirectUrlOnNoConsent: string;
9
10
  }
10
11
  export declare function DisclaimerV2(props: DisclaimerProps): import("react/jsx-runtime").JSX.Element;
@@ -17,10 +17,27 @@ export function DisclaimerV2(props) {
17
17
  const acceptTriggerRef = useRef(null);
18
18
  const [isResponsibleGamingOpen, setResponsibleGamingOpen] = useState(false);
19
19
  const [isTermsOfUseOpen, setTermsOfUseOpen] = useState(false);
20
- return (_jsxs(_Fragment, { children: [_jsx(ResponsibleGaming, { responsibleGamingContent: props.responsibleGamingContent, logo: props.logo, open: isResponsibleGamingOpen, onCloseAction: () => setResponsibleGamingOpen(false) }), _jsx(TermsOfUse, { termsOfUseContent: props.termsOfUseContent, siteName: props.siteName, logo: props.logo, open: isTermsOfUseOpen, onCloseAction: () => setTermsOfUseOpen(false) }), _jsx(Dialog.Root, { open: disclaimer.open, lazyMount: true, unmountOnExit: true, closeOnEscape: false, closeOnInteractOutside: false, initialFocusEl: () => acceptTriggerRef.current, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { className: "z-sticky" }), _jsx(Dialog.Positioner, { className: "z-sticky", children: _jsxs(Dialog.Content, { className: "flex h-full w-full flex-col items-start gap-y-4 p-3xl lg:mx-auto lg:h-auto lg:w-[400px] lg:rounded-xl", children: [_jsx(Image, { src: props.logo, alt: "", width: 200, height: 100, className: "mx-auto h-auto w-[120px]", draggable: false }), _jsxs("div", { className: "flex w-full items-center justify-center gap-3xl", children: [_jsx(Image, { src: pagcorLogo, alt: "", height: 43, width: 88, className: "h-[43px] w-auto shrink-0", draggable: false }), _jsx(Image, { src: props.responsibleGamingLogo ?? responsibleGamingLogo, alt: "", height: 50, width: 186, className: "h-[50px] w-auto shrink-0", draggable: false })] }), _jsx("div", { className: "text-sm", children: "The following individuals are prohibited from registering or participating in this online gaming platform." }), _jsx("div", { className: "w-full grow", children: _jsxs(Dialog.Description, { className: "space-y-4 text-sm", children: [_jsxs("ul", { className: "space-y-1.5 text-left", children: [_jsxs("li", { className: "flex gap-4", children: [_jsx(Circle, {}), "Persons below the legal gambling age of 21."] }), _jsxs("li", { className: "flex gap-4", children: [_jsx(Circle, {}), "Any government official or employee directly involved in the operations of the government or its agencies."] }), _jsxs("li", { className: "flex gap-4", children: [_jsx(Circle, {}), "Member of the Armed Forces of the Philippines, including the Army, Navy, Air Force and the Philippine National Police."] }), _jsxs("li", { className: "flex gap-4", children: [_jsx(Circle, {}), "Individuals listed in PAGCOR's National Database of Restricted Persons (NDRP)"] }), _jsxs("li", { className: "flex gap-4", children: [_jsx(Circle, {}), "Holders of a valid Gaming Employment License (GEL)"] })] }), _jsxs(Checkbox.Root, { children: [_jsx(Checkbox.Control, { children: _jsx(Checkbox.Indicator, { asChild: true, children: _jsx(CheckIcon, {}) }) }), _jsxs(Checkbox.Label, { children: ["I have read and agreed to ", props.siteName, ' ', _jsx("button", { type: "button", className: "text-brand-400 underline underline-offset-2", onClick: () => {
20
+ const [isChecked, setIsChecked] = useState(true);
21
+ return (_jsxs(_Fragment, { children: [_jsx(ResponsibleGaming, { responsibleGamingContent: props.responsibleGamingContent, logo: props.logo, open: isResponsibleGamingOpen, onCloseAction: () => setResponsibleGamingOpen(false) }), _jsx(TermsOfUse, { termsOfUseContent: props.termsOfUseContent, siteName: props.siteName, logo: props.logo, open: isTermsOfUseOpen, onCloseAction: () => setTermsOfUseOpen(false) }), _jsx(Dialog.Root, { open: disclaimer.open, lazyMount: true, unmountOnExit: true, closeOnEscape: false, closeOnInteractOutside: false, initialFocusEl: () => acceptTriggerRef.current, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { className: "z-sticky" }), _jsx(Dialog.Positioner, { className: "z-sticky", children: _jsxs(Dialog.Content, { className: "flex h-full w-full flex-col items-start gap-y-4 p-3xl lg:mx-auto lg:h-auto lg:w-[400px] lg:rounded-xl", children: [_jsx(Image, { src: props.logo, alt: "", width: 200, height: 100, className: "mx-auto h-auto w-[120px]", draggable: false }), _jsxs("div", { className: "flex w-full items-center justify-center gap-3xl", children: [_jsx(Image, { src: pagcorLogo, alt: "", height: 43, width: 88, className: "h-[43px] w-auto shrink-0", draggable: false }), _jsx(Image, { src: props.responsibleGamingLogo ?? responsibleGamingLogo, alt: "", height: 50, width: 186, className: "h-[50px] w-auto shrink-0", draggable: false })] }), _jsx("div", { className: "text-sm", children: "The following individuals are prohibited from registering or participating in this online gaming platform." }), _jsx("div", { className: "w-full grow", children: _jsxs(Dialog.Description, { className: "space-y-4 text-sm", children: [_jsxs("ul", { className: "space-y-1.5 text-left", children: [_jsxs("li", { className: "flex gap-4", children: [_jsx(Circle, {}), "Persons below the legal gambling age of 21."] }), _jsxs("li", { className: "flex gap-4", children: [_jsx(Circle, {}), "Any government official or employee directly involved in the operations of the government or its agencies."] }), _jsxs("li", { className: "flex gap-4", children: [_jsx(Circle, {}), "Member of the Armed Forces of the Philippines, including the Army, Navy, Air Force and the Philippine National Police."] }), _jsxs("li", { className: "flex gap-4", children: [_jsx(Circle, {}), "Individuals listed in PAGCOR's National Database of Restricted Persons (NDRP)"] }), _jsxs("li", { className: "flex gap-4", children: [_jsx(Circle, {}), "Holders of a valid Gaming Employment License (GEL)"] })] }), _jsxs(Checkbox.Root, { checked: isChecked, onCheckedChange: (e) => {
22
+ setIsChecked(!!e.checked);
23
+ }, children: [_jsx(Checkbox.Control, { children: _jsx(Checkbox.Indicator, { asChild: true, children: _jsx(CheckIcon, {}) }) }), _jsxs(Checkbox.Label, { children: ["I have read and agreed to ", props.siteName, ' ', _jsx("button", { type: "button", className: "text-brand-400 underline underline-offset-2", onClick: () => {
21
24
  setTermsOfUseOpen(true);
22
25
  }, children: "Terms of Use" }), ' ', "and", ' ', _jsx("button", { type: "button", className: "text-brand-400 underline underline-offset-2", onClick: () => {
23
26
  setResponsibleGamingOpen(true);
24
- }, children: "Responsible Gaming" })] }), _jsx(Checkbox.HiddenInput, {})] }), _jsx("div", { children: "Funds or credits in the account of any individual found ineligible to participate will be forfeited and turned over to the government as required by law" })] }) }), _jsxs("div", { className: "mt-4 flex w-full gap-3", children: [_jsx(Button, { type: "button", onClick: disclaimer.close, variant: "outline", children: "Exit" }), _jsx(Button, { ref: acceptTriggerRef, type: "button", onClick: disclaimer.close, children: "Accept" })] })] }) })] }) })] }));
27
+ }, children: "Responsible Gaming" })] }), _jsx(Checkbox.HiddenInput, {})] }), _jsx("div", { children: "Funds or credits in the account of any individual found ineligible to participate will be forfeited and turned over to the government as required by law" })] }) }), _jsxs("div", { className: "mt-4 flex w-full gap-3", children: [_jsx(Button, { type: "button", onClick: () => {
28
+ if (isChecked) {
29
+ disclaimer.close();
30
+ }
31
+ else {
32
+ window.location.href = props.redirectUrlOnNoConsent;
33
+ }
34
+ }, variant: "outline", children: "Exit" }), _jsx(Button, { ref: acceptTriggerRef, type: "button", onClick: () => {
35
+ if (isChecked) {
36
+ disclaimer.close();
37
+ }
38
+ else {
39
+ window.location.href = props.redirectUrlOnNoConsent;
40
+ }
41
+ }, children: "Accept" })] })] }) })] }) })] }));
25
42
  }
26
43
  const Circle = () => (_jsx("div", { children: _jsx("div", { className: "border-brand-400 flex h-4.5 w-4.5 items-center justify-center rounded-full border", children: _jsx("div", { className: "bg-brand-400 h-3 w-3 rounded-full" }) }) }));
@@ -1,5 +1,5 @@
1
1
  import type { ComponentProps, ComponentType } from 'react';
2
- export interface EmptyProps {
2
+ interface EmptyProps {
3
3
  icon: ComponentType<ComponentProps<'svg'>>;
4
4
  title: string;
5
5
  message: string;
@@ -7,3 +7,4 @@ export interface EmptyProps {
7
7
  className?: string;
8
8
  }
9
9
  export declare function Empty(props: EmptyProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -1,8 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ChevronLeftIcon } from '../../icons/ChevronLeftIcon.js';
3
- import { XIcon } from '../../icons/XIcon.js';
4
- import { Dialog } from '../../ui/Dialog/index.js';
5
- import { IconButton } from '../../ui/IconButton/index.js';
2
+ import { ChevronLeftIcon, XIcon } from '../../icons/index.js';
3
+ import { Dialog, IconButton } from '../../ui/index.js';
6
4
  export function Header() {
7
5
  return (_jsx(Dialog.Context, { children: (api) => (_jsxs("div", { className: "bg-bg-primary-alt relative flex items-center gap-xl px-xl py-md lg:justify-center lg:bg-transparent lg:p-0", children: [_jsx(IconButton, { size: "2xs", variant: "outline", colorScheme: "gray", className: "lg:hidden", onClick: () => api.setOpen(false), children: _jsx(ChevronLeftIcon, {}) }), _jsx(Dialog.Title, { className: "text-lg font-semibold", children: "Personal Verification" }), _jsx("button", { type: "button", className: "text-text-quinary absolute right-0 top-1/2 hidden -translate-y-1/2 lg:block", onClick: () => api.setOpen(false), children: _jsx(XIcon, { className: "size-6" }) })] })) }));
8
6
  }
@@ -1,9 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import Image from 'next/image';
3
- import { CheckIcon } from '../../icons/CheckIcon.js';
4
- import { XIcon } from '../../icons/XIcon.js';
3
+ import { CheckIcon, XIcon } from '../../icons/index.js';
5
4
  import uploadId from '../../images/capture-id-banner.png';
6
- import { Button } from '../../ui/Button/index.js';
5
+ import { Button } from '../../ui/index.js';
7
6
  import { useKYCContext } from './KYCContext.js';
8
7
  export function Step1() {
9
8
  const context = useKYCContext();
@@ -1,9 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import Image from 'next/image';
3
- import { CheckIcon } from '../../icons/CheckIcon.js';
4
- import { XIcon } from '../../icons/XIcon.js';
3
+ import { CheckIcon, XIcon } from '../../icons/index.js';
5
4
  import selfie from '../../images/capture-selfie-banner.png';
6
- import { Button } from '../../ui/Button/index.js';
5
+ import { Button } from '../../ui/index.js';
7
6
  import { useKYCContext } from './KYCContext.js';
8
7
  export function Step2() {
9
8
  const context = useKYCContext();
@@ -1,8 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { CheckIcon } from '../../icons/CheckIcon.js';
3
- import { Button } from '../../ui/Button/index.js';
4
- import { Checkbox } from '../../ui/Checkbox/index.js';
5
- import { Field } from '../../ui/Field/index.js';
2
+ import { CheckIcon } from '../../icons/index.js';
3
+ import { Button, Checkbox, Field } from '../../ui/index.js';
6
4
  import { useKYCContext } from './KYCContext.js';
7
5
  export function Step3() {
8
6
  const context = useKYCContext();
@@ -1,7 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { CheckCircleIcon } from '../../icons/CheckCircleIcon.js';
3
- import { Button } from '../../ui/Button/index.js';
4
- import { Dialog } from '../../ui/Dialog/index.js';
2
+ import { CheckCircleIcon } from '../../icons/index.js';
3
+ import { Button, Dialog } from '../../ui/index.js';
5
4
  export function Step4() {
6
5
  return (_jsxs("div", { children: [_jsx("div", { className: "bg-bg-success-secondary text-text-featured-icon-light-success mx-auto flex size-12 items-center justify-center rounded-full", children: _jsx(CheckCircleIcon, {}) }), _jsx("h2", { className: "mt-3 text-center", children: "Submission Successful" }), _jsx("p", { className: "text-text-tertiary-600 text-center", children: "Your documents have been submitted successfully. They\u2019re now under review, and you\u2019ll receive a notification as soon as your account is verified." }), _jsx(Dialog.Context, { children: (api) => (_jsx(Button, { className: "mt-3xl", onClick: () => api.setOpen(false), children: "Ok" })) })] }));
7
6
  }
@@ -1,6 +1,2 @@
1
1
  import type { UseKYCReturn } from './useKYC';
2
- export declare const KYCContext: (props: {
3
- value: UseKYCReturn;
4
- } & {
5
- children?: import("react").ReactNode | undefined;
6
- }) => React.ReactNode, useKYCContext: () => UseKYCReturn;
2
+ export declare const KYCContext: import("react").Context<UseKYCReturn>, useKYCContext: () => UseKYCReturn;
@@ -7,7 +7,7 @@ import { useGlobalStore } from '../../client/hooks/useGlobalStore.js';
7
7
  import { useLocaleInfo } from '../../client/hooks/useLocaleInfo.js';
8
8
  import { useMarkMessageAsReadMutation } from '../../client/hooks/useMarkMessageAsReadMutation.js';
9
9
  import { useMessageContext } from './MessageContext.js';
10
- import { MessageIcon } from './MessageIcon.js';
10
+ import { getMessageIcon } from './utils.js';
11
11
  export function Message() {
12
12
  const message = useMessageContext();
13
13
  const localeInfo = useLocaleInfo();
@@ -16,6 +16,7 @@ export function Message() {
16
16
  messages: ctx.messages,
17
17
  })));
18
18
  const markMessageAsReadMutation = useMarkMessageAsReadMutation();
19
+ const Icon = getMessageIcon(message.icon);
19
20
  const handleViewMessage = async () => {
20
21
  globalStore.message.setData(message);
21
22
  globalStore.message.setOpen(true);
@@ -30,5 +31,5 @@ export function Message() {
30
31
  };
31
32
  return (_jsxs("div", { role: "button", tabIndex: 0, className: "border-border-secondary rounded-xs bg-bg-secondary flex h-auto flex-shrink-0 cursor-pointer flex-col border px-3.5 py-2.5", onClick: handleViewMessage, "aria-pressed": "false", children: [_jsxs("div", { className: "flex items-center space-x-2", children: [_jsx("p", { className: "text-text-tertiary-600 text-xs font-normal", children: format(new Date(message.dateTimeCreated), 'M/d/yyyy - h:mma', {
32
33
  in: tz(localeInfo.timezone),
33
- }) }), !message.markedAsRead && (_jsx("div", { className: "bg-utility-success-500 h-2.5 w-2.5 rounded-full" }))] }), _jsxs("div", { className: "mb-2 flex items-center space-x-2", children: [_jsx(MessageIcon, { type: message.icon, className: "text-brand-400 size-5" }), _jsx("p", { className: "text-text-primary-brand text-sm font-semibold", children: message.title })] }), _jsx("p", { className: "line-clamp-3 text-wrap text-sm font-normal", dangerouslySetInnerHTML: { __html: message.content } }), message.actions.length > 0 && (_jsx("div", { className: "mt-2 flex flex-wrap items-center justify-end gap-2", children: message.actions.map((action, index) => (_jsx(Link, { className: "border-button-secondary-border text-button-secondary-fg rounded-md border px-3 py-2 text-sm", href: action.url, onClick: handleActionClick, children: action.name }, index))) }))] }));
34
+ }) }), !message.markedAsRead && (_jsx("div", { className: "bg-utility-success-500 h-2.5 w-2.5 rounded-full" }))] }), _jsxs("div", { className: "mb-2 flex items-center space-x-2", children: [_jsx(Icon, { className: "text-brand-400" }), _jsx("p", { className: "text-text-primary-brand text-sm font-semibold", children: message.title })] }), _jsx("p", { className: "line-clamp-3 text-wrap text-sm font-normal", dangerouslySetInnerHTML: { __html: message.content } }), message.actions.length > 0 && (_jsx("div", { className: "mt-2 flex flex-wrap items-center justify-end gap-2", children: message.actions.map((action, index) => (_jsx(Link, { className: "border-button-secondary-border text-button-secondary-fg rounded-md border px-3 py-2 text-sm", href: action.url, onClick: handleActionClick, children: action.name }, index))) }))] }));
34
35
  }
@@ -1,6 +1,2 @@
1
1
  import type { Message } from '../../types';
2
- export declare const MessageContext: (props: {
3
- value: Message;
4
- } & {
5
- children?: import("react").ReactNode | undefined;
6
- }) => React.ReactNode, useMessageContext: () => Message;
2
+ export declare const MessageContext: import("react").Context<Message>, useMessageContext: () => Message;
@@ -6,12 +6,13 @@ import { useGlobalStore } from '../../client/hooks/useGlobalStore.js';
6
6
  import { XIcon } from '../../icons/XIcon.js';
7
7
  import { Dialog } from '../../ui/Dialog/index.js';
8
8
  import { Portal } from '../../ui/Portal/index.js';
9
- import { MessageIcon } from './MessageIcon.js';
9
+ import { getMessageIcon } from './utils.js';
10
10
  export const MessagePopup = () => {
11
11
  const globalStore = useGlobalStore(useShallow((ctx) => ({ message: ctx.message })));
12
+ const Icon = getMessageIcon(globalStore.message.data?.icon ?? 'MESSAGE');
12
13
  return (_jsx(Dialog.Root, { lazyMount: true, unmountOnExit: true, open: globalStore.message.open, onOpenChange: ({ open }) => {
13
14
  globalStore.message.setOpen(open);
14
- }, 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 min-w-[21.438rem] max-w-[21.438rem] rounded-xl px-xl pb-0 pt-5 shadow-xl", children: [_jsx(Dialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsxs("div", { className: "pb-6", children: [_jsx("div", { className: "bg-bg-brand-secondary mx-auto w-fit rounded-full p-3", children: _jsx(MessageIcon, { type: globalStore.message.data?.icon ?? 'INFO', className: "text-text-brand size-6" }) }), _jsx("p", { className: "text-text-primary-brand mt-lg text-center text-lg font-semibold leading-tight", children: globalStore.message.data?.title }), _jsx("div", { className: "text-shadow-text-secondary-700 mt-xs text-center text-sm font-normal leading-tight", dangerouslySetInnerHTML: {
15
+ }, 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 min-w-[21.438rem] max-w-[21.438rem] rounded-xl px-xl pb-0 pt-5 shadow-xl", children: [_jsx(Dialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsxs("div", { className: "pb-6", children: [_jsx("div", { className: "bg-bg-brand-secondary mx-auto w-fit rounded-full p-3", children: _jsx(Icon, { className: "text-text-brand", height: "24", width: "24" }) }), _jsx("p", { className: "text-text-primary-brand mt-lg text-center text-lg font-semibold leading-tight", children: globalStore.message.data?.title }), _jsx("div", { className: "text-shadow-text-secondary-700 mt-xs text-center text-sm font-normal leading-tight", dangerouslySetInnerHTML: {
15
16
  __html: globalStore.message.data?.content ?? '',
16
17
  } })] }), globalStore.message.data?.actions.length ? (_jsx("div", { className: "flex flex-col space-y-2 px-4 pb-8 pt-6 text-center", children: globalStore.message.data.actions.map((action, index) => (_jsx(Link, { className: "bg-button-primary-bg rounded-xs text-button-primary-fg w-full px-4 py-2.5 text-base font-semibold", href: action.url, onClick: () => {
17
18
  globalStore.message.setOpen(false);
@@ -1,4 +1,4 @@
1
- import type { Quest } from '../../../types';
1
+ import type { Quest } from '@opexa/portal-sdk-core';
2
2
  export declare function DailyCheckInQuest({ quest }: {
3
3
  quest: Quest;
4
4
  }): import("react/jsx-runtime").JSX.Element;
@@ -3,16 +3,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  import { addDays, isEqual, startOfDay } from 'date-fns';
4
4
  import { useState } from 'react';
5
5
  import { twMerge } from 'tailwind-merge';
6
- import { useCheckInDailyCheckInQuestMutation } from '../../../client/hooks/useCheckInDailyCheckInQuestMutation.js';
7
- import { toaster } from '../../../client/utils/toaster.js';
8
- import { CalendarIcon } from '../../../icons/CalendarIcon.js';
9
- import { CheckIcon } from '../../../icons/CheckIcon.js';
10
- import { ClockStopWatchIcon } from '../../../icons/ClockStopWatchIcon.js';
11
- import { InfoCircleIcon } from '../../../icons/InfoCircleIcon.js';
12
- import { Badge } from '../../../ui/Badge/index.js';
13
- import { Button } from '../../../ui/Button/index.js';
14
- import { getQueryClient } from '../../../utils/getQueryClient.js';
15
- import { getAvailableQuestsQueryKey } from '../../../utils/queryKeys.js';
6
+ import { useCheckInDailyCheckInQuestMutation } from '../../../client/hooks/index.js';
7
+ import { toaster } from '../../../client/utils/index.js';
8
+ import { CalendarIcon, CheckIcon, ClockStopWatchIcon, InfoCircleIcon, } from '../../../icons/index.js';
9
+ import { Badge, Button } from '../../../ui/index.js';
10
+ import { getAvailableQuestsQueryKey, getQueryClient } from '../../../utils/index.js';
16
11
  import CountdownTimer from '../CountdownTimer.js';
17
12
  import { DailyCheckInQuestModal } from './DailyCheckInQuestModal.js';
18
13
  export function DailyCheckInQuest({ quest }) {
@@ -1,9 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { XIcon } from '../../../icons/XIcon.js';
4
- import { Button } from '../../../ui/Button/index.js';
5
- import { Dialog } from '../../../ui/Dialog/index.js';
6
- import { Portal } from '../../../ui/Portal/index.js';
3
+ import { Portal } from '@ark-ui/react';
4
+ import { XIcon } from '../../../icons/index.js';
5
+ import { Button, Dialog } from '../../../ui/index.js';
7
6
  export function DailyCheckInQuestModal(props) {
8
7
  return (_jsx(Dialog.Root, { lazyMount: true, unmountOnExit: true, open: props.modalState.isOpen, onOpenChange: ({ open }) => props.modalState.setIsOpen(open), closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+1)]" }), _jsx(Dialog.Positioner, { className: "!z-[calc(var(--z-dialog)+2)] flex items-center justify-center", children: _jsxs(Dialog.Content, { className: "min-h-auto mx-auto max-w-[343px] rounded-xl px-4 pb-0 pt-5", children: [_jsx(Dialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsxs("div", { className: "flex flex-col space-y-5", children: [_jsx("p", { className: "text-text-primary-900 text-lg font-semibold", children: "Daily Check-In Rules" }), _jsxs("ul", { className: "text-text-tertiary-600 group list-disc text-wrap pl-4 text-sm font-normal", children: [_jsx("li", { children: "Earn rewards just for checking in each day!" }), _jsx("li", { children: "Stay consistent to unlock special rewards on the 3rd, 5th, and 7th day." }), _jsx("li", { children: "Missing a day will reset your streak, starting again from Day 1." }), _jsx("li", { children: "Each check-in unlocks the next one on the following day." }), _jsx("li", { children: "Successfully check in for 7 consecutive days to complete the quest and reset the cycle." })] })] }), _jsx("div", { className: "pb-4 pt-6", children: _jsx(Button, { onClick: () => props.modalState.setIsOpen(false), children: "Ok" }) })] }) })] }) }));
9
8
  }
@@ -1,4 +1,4 @@
1
- import type { Quest } from '../../../types';
1
+ import type { Quest } from '@opexa/portal-sdk-core';
2
2
  export declare function OnboardingQuest(props: {
3
3
  quest: Quest;
4
4
  }): null;
@@ -1,4 +1,4 @@
1
- import type { Quest } from '../../../types';
1
+ import type { Quest } from '@opexa/portal-sdk-core';
2
2
  export declare function WageringQuest({ quest }: {
3
3
  quest: Quest;
4
4
  }): import("react/jsx-runtime").JSX.Element;
@@ -2,9 +2,8 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { useState } from 'react';
4
4
  import { twMerge } from 'tailwind-merge';
5
- import { ClockStopWatchIcon } from '../../../icons/ClockStopWatchIcon.js';
6
- import { InfoCircleIcon } from '../../../icons/InfoCircleIcon.js';
7
- import { Badge } from '../../../ui/Badge/index.js';
5
+ import { ClockStopWatchIcon, InfoCircleIcon } from '../../../icons/index.js';
6
+ import { Badge } from '../../../ui/index.js';
8
7
  import CountdownTimer from '../CountdownTimer.js';
9
8
  import { WageringQuestModal } from './WageringQuestModal.js';
10
9
  export function WageringQuest({ quest }) {
@@ -1,9 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { XIcon } from '../../../icons/XIcon.js';
4
- import { Button } from '../../../ui/Button/index.js';
5
- import { Dialog } from '../../../ui/Dialog/index.js';
6
- import { Portal } from '../../../ui/Portal/index.js';
3
+ import { Portal } from '@ark-ui/react';
4
+ import { XIcon } from '../../../icons/index.js';
5
+ import { Button, Dialog } from '../../../ui/index.js';
7
6
  export function WageringQuestModal(props) {
8
7
  return (_jsx(Dialog.Root, { lazyMount: true, unmountOnExit: true, open: props.modalState.isOpen, onOpenChange: ({ open }) => props.modalState.setIsOpen(open), closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+1)]" }), _jsx(Dialog.Positioner, { className: "!z-[calc(var(--z-dialog)+2)] flex items-center justify-center", children: _jsxs(Dialog.Content, { className: "min-h-auto mx-auto max-w-[343px] rounded-xl px-4 pb-0 pt-5", children: [_jsx(Dialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsxs("div", { className: "flex flex-col space-y-5", children: [_jsx("p", { className: "text-text-primary-900 text-lg font-semibold", children: props.questName }), _jsxs("ul", { className: "text-text-tertiary-600 group list-disc text-wrap pl-4 text-sm font-normal", children: [_jsx("li", { children: "Earn extra rewards just by playing Slots, every bet counts, win or lose!" }), _jsx("li", { children: "Reach the wagering requirement in bets to complete the quest and claim your reward." })] })] }), _jsx("div", { className: "pb-4 pt-6", children: _jsx(Button, { onClick: () => props.modalState.setIsOpen(false), children: "Ok" }) })] }) })] }) }));
9
8
  }
@@ -46,9 +46,6 @@ export function SignUpForm() {
46
46
  itemToValue: (item) => item.code,
47
47
  itemToString: (item) => `${item.code} - ${item.name}`,
48
48
  });
49
- const globalStore = useGlobalStore(useShallow((ctx) => ({
50
- kyc: ctx.kyc,
51
- })));
52
49
  const [step, setStep] = useState(1);
53
50
  const dialog = useDialogContext();
54
51
  const search = useSearchParams();
@@ -195,7 +192,6 @@ export function SignUpForm() {
195
192
  mobileNumber: mobileNumberParser.format(mobileNumber),
196
193
  verificationCode: verificationCode.join(''),
197
194
  referralCode: search.get('referralCode') ?? undefined,
198
- domain: search.get('domain') ?? undefined,
199
195
  btag: search.get('btag') ?? undefined,
200
196
  });
201
197
  const name = mobileNumberParser.format(mobileNumber);
@@ -242,7 +238,6 @@ export function SignUpForm() {
242
238
  dialog.setOpen(false);
243
239
  step1Form.reset();
244
240
  step2Form.reset();
245
- globalStore.kyc.setOpen(true);
246
241
  setStep(1);
247
242
  }
248
243
  catch (error) {
@@ -256,7 +251,7 @@ export function SignUpForm() {
256
251
  o.field.onChange(details.value);
257
252
  }, onValueComplete: () => {
258
253
  form2Ref.current?.requestSubmit();
259
- }, children: [_jsxs(PinInput.Control, { className: "grid-cols-[1fr_1fr_1fr_auto_1fr_1fr_1fr] items-center gap-md", children: [_jsx(PinInput.Input, { index: 0 }), _jsx(PinInput.Input, { index: 1 }), _jsx(PinInput.Input, { index: 2 }), _jsx("span", { className: "text-text-placeholder-subtle text-2xl font-medium", children: "\u2013" }), _jsx(PinInput.Input, { index: 3 }), _jsx(PinInput.Input, { index: 4 }), _jsx(PinInput.Input, { index: 5 })] }), _jsx(PinInput.HiddenInput, {})] }), _jsx(Field.ErrorText, { children: o.formState.errors.verificationCode?.message })] })) }), _jsx(Button, { type: "submit", className: "mt-4xl", disabled: step2Form.formState.isSubmitting, children: "Verify" }), _jsxs("div", { className: "mt-3 flex w-full items-center justify-center gap-xs text-sm", children: [_jsx("span", { className: "text-text-secondary-700", children: "Didn't recieve the code?" }), _jsx("button", { type: "button", className: "text-button-secondary-fg font-semibold disabled:cursor-not-allowed disabled:opacity-75", disabled: cooldown.cooling, onClick: async () => {
254
+ }, blurOnComplete: true, readOnly: step2Form.formState.isSubmitting, type: "numeric", children: [_jsxs(PinInput.Control, { className: "grid-cols-[1fr_1fr_1fr_auto_1fr_1fr_1fr] items-center gap-md", children: [_jsx(PinInput.Input, { index: 0 }), _jsx(PinInput.Input, { index: 1 }), _jsx(PinInput.Input, { index: 2 }), _jsx("span", { className: "text-text-placeholder-subtle text-2xl font-medium", children: "\u2013" }), _jsx(PinInput.Input, { index: 3 }), _jsx(PinInput.Input, { index: 4 }), _jsx(PinInput.Input, { index: 5 })] }), _jsx(PinInput.HiddenInput, {})] }), _jsx(Field.ErrorText, { children: o.formState.errors.verificationCode?.message })] })) }), _jsx(Button, { type: "submit", className: "mt-4xl", disabled: step2Form.formState.isSubmitting, children: "Verify" }), _jsxs("div", { className: "mt-3 flex w-full items-center justify-center gap-xs text-sm", children: [_jsx("span", { className: "text-text-secondary-700", children: "Didn't recieve the code?" }), _jsx("button", { type: "button", className: "text-button-secondary-fg font-semibold disabled:cursor-not-allowed disabled:opacity-75", disabled: cooldown.cooling, onClick: async () => {
260
255
  await sendVerificationCodeMutation.mutateAsync({
261
256
  channel: 'SMS',
262
257
  recipient: mobileNumberParser.format(step1Form.getValues('mobileNumber')),
@@ -1,4 +1,5 @@
1
- import type { GameProvider, GameProviderData } from '../types';
1
+ import type { GameProvider } from '@opexa/portal-sdk-core';
2
+ import type { GameProviderData } from '../types';
2
3
  export declare const GAME_PROVIDER_DATA: Record<GameProvider, GameProviderData>;
3
4
  export declare const GAME_PROVIDERS: ["ALIZE", "BGAMING", "BOOONGO", "EVOPLAY", "BTI", "CQ9", "DARWIN", "DG", "DRBINGO", "E2E", "ETENGJUE", "EVOLUTION", "EVOLUTION_REDTIGER", "EZUGI", "FACHAI", "HABANERO", "HACKSAW", "HOLLYWOODTV", "JDB", "JILI", "JDBGTF", "JOKER", "JDBSPRIBE", "JILI_BINGO", "KINGMAKER", "KINGMIDAS", "MEGA2SPIN", "MICROGAMING", "MEGABALL", "ONEAPI_EVOLUTION", "PGSOFT", "PLAYTECH", "PRAGMATICPLAY", "RELAXGAMING", "RTG", "SABA", "SPINIX", "SPRIBE", "YELLOWBAT", "EVOLUTIONNETENT", "EVOLUTION_NETENT"];
4
5
  export declare const LEGACY_GAME_PROVIDERS: ["JILI", "PGSOFT", "FACHAI", "BTI", "DG", "PLAYTECH", "E2E", "ONEAPI_EVOLUTION", "CQ9", "JDB", "HABANERO", "SPINIX", "JOKER", "HACKSAW", "EVOLUTIONNETENT", "JDBGTF", "JDBSPRIBE", "MICROGAMING", "RELAXGAMING", "EVOPLAY", "BOOONGO", "BGAMING", "KINGMAKER", "KINGMIDAS", "YELLOWBAT", "ETENGJUE", "SABA", "PRAGMATICPLAY", "SPRIBE", "EZUGI", "ALIZE"];
@@ -283,12 +283,6 @@ export const GAME_PROVIDER_DATA = {
283
283
  slug: 'evolution-netent',
284
284
  logo: evolutionNetent,
285
285
  },
286
- DIGITAIN: {
287
- id: 'DIGITAIN',
288
- name: 'Digitain',
289
- slug: 'digitain',
290
- logo: '',
291
- },
292
286
  };
293
287
  export const GAME_PROVIDERS = [
294
288
  'ALIZE',
@@ -1,3 +1,4 @@
1
- import type { GameType, GameTypeData } from '../types';
1
+ import type { GameType } from '@opexa/portal-sdk-core';
2
+ import type { GameTypeData } from '../types';
2
3
  export declare const GAME_TYPE_DATA: Record<GameType, GameTypeData>;
3
4
  export declare const GAME_TYPES: ["ARCADE", "BINGO", "FISHING", "GAMES", "LIVE", "NUMERICAL", "SLOTS", "SPECIALTY", "SPORTS", "TABLE"];
@@ -1,2 +1 @@
1
1
  export declare const RECAPTCHA_HEADER_KEY: string;
2
- export declare const TEST_PASS_HEADER_KEY: string;
@@ -1,2 +1 @@
1
1
  export const RECAPTCHA_HEADER_KEY = 'Google-Recaptcha-Response';
2
- export const TEST_PASS_HEADER_KEY = 'Test-Pass';
@@ -1,3 +1,3 @@
1
- import type { SecretQuestion } from '../types';
1
+ import type { SecretQuestion } from '@opexa/portal-sdk-core';
2
2
  export declare const SECRET_QUESTIONS: ["BEST_CHILDHOOD_FRIEND", "BIRTH_PLACE", "FAVORITE_BOOK", "FAVORITE_MOVIE", "FAVORITE_TEACHER", "FIRST_CAR", "FIRST_PET", "FIRST_SCHOOL", "MOTHERS_MAIDEN_NAME", "PARENTS_MET_CITY"];
3
3
  export declare const SECRET_QUESTIONS_MAP: Record<SecretQuestion, string>;