@opexa/portal-components 0.0.34 → 0.0.36
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.
- package/dist/client/hooks/useInfiniteQueryHelper.d.ts +8 -0
- package/dist/client/hooks/useInfiniteQueryHelper.js +11 -9
- package/dist/client/hooks/useMemberVerificationQuery.js +0 -1
- package/dist/client/hooks/useMessagesQuery.js +0 -1
- package/dist/client/hooks/useTransactionRecordsQuery.js +0 -1
- package/dist/client/hooks/useWithdrawalRecordsQuery.js +0 -1
- package/dist/components/Account/Account.js +1 -1
- package/dist/components/AccountInfo/AccountInfo.js +1 -1
- package/dist/components/AccountSecurity/AccountSecurity.js +2 -2
- package/dist/components/AccountVerification/AccountVerification.d.ts +4 -1
- package/dist/components/AccountVerification/AccountVerification.js +36 -2
- package/dist/components/AccountVerification/VerificationCapture.d.ts +1 -0
- package/dist/components/AccountVerification/VerificationCapture.js +57 -0
- package/dist/components/AccountVerification/selfie.png +0 -0
- package/dist/components/AccountVerification/upload-id.png +0 -0
- package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositVCA.js +1 -1
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositQrCode.js +1 -1
- package/dist/components/DepositWithdrawal/PaymentMethods.js +5 -5
- package/dist/components/Disclaimer/Disclaimer.js +2 -2
- package/dist/components/Games/Game.d.ts +1 -0
- package/dist/components/Games/Game.js +34 -0
- package/dist/components/Games/GameContext.d.ts +3 -0
- package/dist/components/{KYC/KYCContext.js → Games/GameContext.js} +4 -4
- package/dist/components/Games/Games.d.ts +7 -14
- package/dist/components/Games/Games.js +3 -8
- package/dist/components/Games/GamesCarousel.client.d.ts +2 -0
- package/dist/components/Games/{Games.client.js → GamesCarousel.client.js} +6 -32
- package/dist/components/Games/GamesCarousel.d.ts +15 -0
- package/dist/components/Games/GamesCarousel.js +11 -0
- package/dist/components/Games/GamesList.client.d.ts +2 -0
- package/dist/components/Games/GamesList.client.js +14 -0
- package/dist/components/Games/GamesList.d.ts +10 -0
- package/dist/components/Games/GamesList.js +10 -0
- package/dist/components/GamesSearch/GamesSearch.js +1 -1
- package/dist/components/JackpotCounter/JackpotCounterItem.d.ts +0 -1
- package/dist/components/JackpotCounter/JackpotCounterItem.js +11 -22
- package/dist/components/Jackpots/JackpotItemDesktop.js +12 -11
- package/dist/components/Jackpots/JackpotItemMobile.js +11 -10
- package/dist/components/Jackpots/Jackpots.js +4 -2
- package/dist/components/Jackpots/useJackpotItemData.d.ts +0 -1
- package/dist/components/Jackpots/useJackpotItemData.js +0 -7
- package/dist/components/PortalProvider/PortalProvider.client.js +25 -13
- package/dist/components/TournamentCounter/TournamentCounter.client.js +5 -12
- package/dist/components/TournamentCounter/TournamentCounterItem.d.ts +3 -4
- package/dist/components/TournamentCounter/TournamentCounterItem.js +24 -13
- package/dist/components/Tournaments/TournamentGameProviders.d.ts +5 -1
- package/dist/components/Tournaments/TournamentGameProviders.js +3 -4
- package/dist/components/Tournaments/TournamentItemDesktop.d.ts +7 -0
- package/dist/components/Tournaments/TournamentItemDesktop.js +57 -0
- package/dist/components/Tournaments/TournamentItemMobile.d.ts +6 -6
- package/dist/components/Tournaments/TournamentItemMobile.js +21 -61
- package/dist/components/Tournaments/Tournaments.d.ts +3 -1
- package/dist/components/Tournaments/Tournaments.js +8 -15
- package/dist/components/Tournaments/useTournamentItemData.d.ts +16 -0
- package/dist/components/Tournaments/useTournamentItemData.js +64 -0
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.js +0 -1
- package/dist/icons/CreditCardCheckIcon.d.ts +2 -0
- package/dist/icons/CreditCardCheckIcon.js +4 -0
- package/dist/icons/FaceIdIcon.d.ts +2 -0
- package/dist/icons/FaceIdIcon.js +4 -0
- package/dist/icons/FileSearch02Icon.d.ts +2 -0
- package/dist/icons/FileSearch02Icon.js +4 -0
- package/dist/icons/FileX02Icon.d.ts +2 -0
- package/dist/icons/FileX02Icon.js +4 -0
- package/dist/icons/Globe05Icon.d.ts +2 -0
- package/dist/icons/Globe05Icon.js +4 -0
- package/dist/icons/index.d.ts +5 -0
- package/dist/icons/index.js +5 -0
- package/dist/styles/theme.css +5 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/ui/Progress/progress.recipe.js +1 -1
- package/dist/utils/getPercentage.d.ts +1 -0
- package/dist/utils/getPercentage.js +5 -0
- package/dist/utils/maskDisplayName.d.ts +1 -0
- package/dist/utils/maskDisplayName.js +8 -0
- package/package.json +150 -150
- package/dist/components/Games/Games.client.d.ts +0 -2
- package/dist/components/KYC/KYC.d.ts +0 -5
- package/dist/components/KYC/KYC.js +0 -19
- package/dist/components/KYC/KYCContext.d.ts +0 -3
- package/dist/components/KYC/KYCTrigger.d.ts +0 -5
- package/dist/components/KYC/KYCTrigger.js +0 -14
- package/dist/components/KYC/Step1.d.ts +0 -1
- package/dist/components/KYC/Step1.js +0 -10
- package/dist/components/KYC/Step2.d.ts +0 -1
- package/dist/components/KYC/Step2.js +0 -15
- package/dist/components/KYC/Step3.d.ts +0 -1
- package/dist/components/KYC/Step3.js +0 -11
- package/dist/components/KYC/StepIndicator.d.ts +0 -1
- package/dist/components/KYC/StepIndicator.js +0 -13
- package/dist/components/KYC/UploadDocument.d.ts +0 -1
- package/dist/components/KYC/UploadDocument.js +0 -8
- package/dist/components/KYC/UploadSelfie.d.ts +0 -1
- package/dist/components/KYC/UploadSelfie.js +0 -8
- package/dist/components/KYC/index.d.ts +0 -2
- package/dist/components/KYC/index.js +0 -2
- package/dist/components/KYC/useKYC.d.ts +0 -14
- package/dist/components/KYC/useKYC.js +0 -32
- package/dist/components/KYC/utils.d.ts +0 -0
- package/dist/components/KYC/utils.js +0 -1
- package/dist/components/Tournaments/TournamentItem.d.ts +0 -5
- package/dist/components/Tournaments/TournamentItem.js +0 -97
- package/dist/config.d.ts +0 -272
- package/dist/config.js +0 -39
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Tournament } from '@opexa/portal-sdk-core';
|
|
2
|
+
import type { GameProviderData } from '~/types';
|
|
3
|
+
export interface TournamentItemProps {
|
|
4
|
+
tournament: Tournament;
|
|
5
|
+
gameProviders: GameProviderData[];
|
|
6
|
+
}
|
|
7
|
+
export declare function TournamentItemDesktop({ tournament, gameProviders, }: TournamentItemProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import Image from 'next/image';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { twMerge } from 'tailwind-merge';
|
|
6
|
+
import { Trophy01Icon, User01Icon } from '../../icons/index.js';
|
|
7
|
+
import { Award01Icon } from '../../icons/Award01Icon.js';
|
|
8
|
+
import { StarIcon } from '../../icons/StarIcon.js';
|
|
9
|
+
import firstPlace from '~/images/first-place.png';
|
|
10
|
+
import trophyTwo from '~/images/trophy-two.png';
|
|
11
|
+
import trophy from '~/images/trophy.png';
|
|
12
|
+
import { formatNumber } from '../../utils/index.js';
|
|
13
|
+
import { maskDisplayName } from '../../utils/maskDisplayName.js';
|
|
14
|
+
import styles from '../JackpotCounter/JackpotCounterItem.module.css';
|
|
15
|
+
import { TournamentGameProviders } from './TournamentGameProviders.js';
|
|
16
|
+
import { TournamentRules } from './TournamentRules.js';
|
|
17
|
+
import { useTournamentItemData } from './useTournamentItemData.js';
|
|
18
|
+
export function TournamentItemDesktop({ tournament, gameProviders, }) {
|
|
19
|
+
const { prizeAmountsByRank, timeParts, tournamentReward, filteredGameProviders, localeInfo, } = useTournamentItemData({ tournament, gameProviders });
|
|
20
|
+
return (_jsxs("div", { className: twMerge('bg-bg-tertiary border-border-primary rounded-2xl border'), children: [_jsxs("div", { className: twMerge('relative flex shrink-0 p-3 text-center lg:gap-6 lg:p-5'), children: [_jsx("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: _jsxs("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-1 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, {
|
|
21
|
+
currency: localeInfo.currency.code,
|
|
22
|
+
minDecimalPlaces: 2,
|
|
23
|
+
maxDecimalPlaces: 2,
|
|
24
|
+
}) })] }), _jsx("div", { className: "z-1 bottom-[-60] right-0 block lg:absolute", children: _jsx("div", { className: "h-[155px] w-auto shrink-0", children: _jsx(Image, { quality: 100, width: 155, height: 155, src: trophy, alt: "trophy", className: "px-6 py-2.5" }) }) })] }), tournament.topPayouts.length ? (_jsx("div", { children: _jsxs("div", { className: "bg-bg-primary relative mt-4 hidden w-full gap-4 rounded-lg p-4 lg:flex", children: [_jsxs("div", { className: "bg-bg-tertiary relative flex h-18 w-18 items-center justify-center rounded-full", children: [_jsx(User01Icon, { className: "text-text-quarterary-500 size-9" }), _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: maskDisplayName(tournament?.topPayouts[0]?.member?.name || '') }), _jsx("div", { className: "text-brand-400 text-2xl", children: formatNumber(tournament?.topPayouts[0]?.amount, {
|
|
25
|
+
currency: localeInfo.currency.code,
|
|
26
|
+
minDecimalPlaces: 2,
|
|
27
|
+
maxDecimalPlaces: 2,
|
|
28
|
+
}) })] })] }) })) : (_jsxs("div", { className: "bg-bg-primary relative mt-4 hidden w-full gap-4 rounded-lg p-4 lg:flex", children: [_jsx(Image, { width: 66, height: 87, src: firstPlace, alt: "closeChest", className: "size-full h-auto w-[66px] mix-blend-luminosity" }), _jsxs("div", { className: "flex flex-col gap-1 text-left", children: [_jsxs("div", { className: "border-utility-brand-200 bg-utility-brand-50 text-utility-brand-700 flex h-fit w-fit items-center gap-1 rounded-sm border px-2 py-0.5 text-xs font-medium", children: [_jsx(Trophy01Icon, { className: "text-utility-brand-600 size-3.5" }), "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!" })] })] }))] }) }) }) }), _jsxs("div", { className: "z-1 hidden flex-1 space-y-4 lg:block", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Image, { width: 24, height: 24, src: trophyTwo, quality: 100, alt: "leaderboardIcon", className: "size-full w-6" }), _jsx("div", { className: "text-text-primary-900 text-lg font-semibold", children: tournament.currentLeaderboard.edges.length
|
|
29
|
+
? 'Leaderboard'
|
|
30
|
+
: 'Starting soon!' })] }), _jsx(TournamentRules, { jackpotRules: tournament.description })] }), _jsx("div", { className: twMerge('max-h-[272px] overflow-y-scroll', styles['scrollArea']), children: _jsx("div", { className: "border-gray-200 overflow-hidden rounded-xl", children: _jsxs("table", { className: "w-full", children: [_jsx("thead", { children: _jsxs("tr", { className: "bg-bg-secondary text-text-tertiary-600 h-8 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-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: maskDisplayName(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], {
|
|
31
|
+
currency: localeInfo.currency.code,
|
|
32
|
+
minDecimalPlaces: 2,
|
|
33
|
+
maxDecimalPlaces: 2,
|
|
34
|
+
}) })) : (_jsx("td", { className: "border-border-secondary h-12 border-t-2", children: "-" }))] }, i))) })) : (_jsx(_Fragment, { children: Array.from({ length: 10 }).map((_, i) => (_jsxs("tr", { className: "bg-bg-primary text-text-secondary-700 text-sm", children: [_jsx("td", { className: "border-border-secondary h-12 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 }))] }));
|
|
35
|
+
}
|
|
36
|
+
const starTierStyles = [
|
|
37
|
+
{
|
|
38
|
+
starColor: 'text-yellow-400',
|
|
39
|
+
numberColor: 'text-bg-primary',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
starColor: 'text-utility-gray-700',
|
|
43
|
+
numberColor: 'text-bg-primary',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
starColor: 'text-yellow-700',
|
|
47
|
+
numberColor: 'text-bg-primary',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
starColor: 'text-bg-quaternary',
|
|
51
|
+
numberColor: 'text-text-primary-900',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
starColor: 'text-bg-quaternary',
|
|
55
|
+
numberColor: 'text-text-primary-900',
|
|
56
|
+
},
|
|
57
|
+
];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import type { Tournament } from '@opexa/portal-sdk-core';
|
|
2
|
+
import type { GameProviderData } from '~/types';
|
|
3
|
+
export interface TournamentItemMobileProps {
|
|
4
|
+
tournament: Tournament;
|
|
5
|
+
gameProviders: GameProviderData[];
|
|
6
6
|
}
|
|
7
|
-
export declare function TournamentItemMobile({
|
|
7
|
+
export declare function TournamentItemMobile({ tournament, gameProviders, }: TournamentItemMobileProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,79 +1,39 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { pick } from 'lodash-es';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
4
3
|
import Image from 'next/image';
|
|
5
|
-
import React, {
|
|
4
|
+
import React, { useState } from 'react';
|
|
6
5
|
import { twMerge } from 'tailwind-merge';
|
|
7
|
-
import {
|
|
8
|
-
import { Trophy01Icon } from '../../icons/index.js';
|
|
6
|
+
import { Trophy01Icon, User01Icon } from '../../icons/index.js';
|
|
9
7
|
import { ArrowNarrowDownIcon } from '../../icons/ArrowNarrowDownIcon.js';
|
|
10
8
|
import { ArrowNarrowUpIcon } from '../../icons/ArrowNarrowUpIcon.js';
|
|
11
9
|
import { Award01Icon } from '../../icons/Award01Icon.js';
|
|
12
10
|
import { StarIcon } from '../../icons/StarIcon.js';
|
|
13
|
-
import firstPlace from '
|
|
14
|
-
import trophy from '
|
|
11
|
+
import firstPlace from '~/images/first-place.png';
|
|
12
|
+
import trophy from '~/images/trophy.png';
|
|
15
13
|
import { Button } from '../../ui/index.js';
|
|
16
14
|
import { formatNumber } from '../../utils/index.js';
|
|
15
|
+
import { maskDisplayName } from '../../utils/maskDisplayName.js';
|
|
17
16
|
import { TournamentGameProviders } from './TournamentGameProviders.js';
|
|
18
17
|
import { TournamentRules } from './TournamentRules.js';
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
import { useTournamentItemData } from './useTournamentItemData.js';
|
|
19
|
+
export function TournamentItemMobile({ tournament, gameProviders, }) {
|
|
21
20
|
const [isDetailsVisible, setIsDetailsVisible] = useState(false);
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
hours: 0,
|
|
25
|
-
minutes: 0,
|
|
26
|
-
seconds: 0,
|
|
27
|
-
isPast: false,
|
|
28
|
-
});
|
|
29
|
-
// Temp Date
|
|
30
|
-
const activationEndDateTime = useMemo(() => {
|
|
31
|
-
const now = new Date();
|
|
32
|
-
return new Date(now.setSeconds(now.getSeconds() + 2 * 24 * 60 * 60)); // Add 2 days in seconds
|
|
33
|
-
}, []);
|
|
34
|
-
const calculateRemainingTime = React.useCallback(() => {
|
|
35
|
-
const now = new Date();
|
|
36
|
-
const diffMs = activationEndDateTime.getTime() - now.getTime();
|
|
37
|
-
if (diffMs <= 0) {
|
|
38
|
-
setTimeRemaining({
|
|
39
|
-
days: 0,
|
|
40
|
-
hours: 0,
|
|
41
|
-
minutes: 0,
|
|
42
|
-
seconds: 0,
|
|
43
|
-
isPast: true,
|
|
44
|
-
});
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
const diffSeconds = Math.floor(diffMs / 1000);
|
|
48
|
-
const days = Math.floor(diffSeconds / (3600 * 24));
|
|
49
|
-
const hours = Math.floor((diffSeconds % (3600 * 24)) / 3600);
|
|
50
|
-
const minutes = Math.floor((diffSeconds % 3600) / 60);
|
|
51
|
-
const seconds = diffSeconds % 60;
|
|
52
|
-
const updated = pick({ days, hours, minutes, seconds, isPast: false }, [
|
|
53
|
-
'days',
|
|
54
|
-
'hours',
|
|
55
|
-
'minutes',
|
|
56
|
-
'seconds',
|
|
57
|
-
'isPast',
|
|
58
|
-
]);
|
|
59
|
-
setTimeRemaining(updated);
|
|
60
|
-
}, [activationEndDateTime]);
|
|
61
|
-
useEffect(() => {
|
|
62
|
-
calculateRemainingTime();
|
|
63
|
-
const interval = setInterval(calculateRemainingTime, 1000); // Update every second
|
|
64
|
-
return () => clearInterval(interval);
|
|
65
|
-
}, [activationEndDateTime, calculateRemainingTime]);
|
|
66
|
-
const timeParts = [
|
|
67
|
-
{ label: 'Day', value: timeRemaining.days },
|
|
68
|
-
{ label: 'Hour', value: timeRemaining.hours },
|
|
69
|
-
{ label: 'Min', value: timeRemaining.minutes },
|
|
70
|
-
{ label: 'Sec', value: timeRemaining.seconds },
|
|
71
|
-
];
|
|
72
|
-
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: jackpot.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(jackpot.pool, {
|
|
21
|
+
const { prizeAmountsByRank, timeParts, tournamentReward, filteredGameProviders, localeInfo, } = useTournamentItemData({ tournament, gameProviders });
|
|
22
|
+
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, {
|
|
73
23
|
currency: localeInfo.currency.code,
|
|
74
24
|
minDecimalPlaces: 2,
|
|
75
25
|
maxDecimalPlaces: 2,
|
|
76
|
-
}) })] }), _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" }) })] }) }) }) }), _jsxs("div", { className: "bg-bg-primary relative mt-4 flex w-full gap-4 rounded-lg p-4
|
|
26
|
+
}) })] }), _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: maskDisplayName(tournament?.topPayouts[0]?.member?.name || '') }), _jsx("div", { className: "text-brand-400 text-2xl", children: formatNumber(tournament?.topPayouts[0]?.amount, {
|
|
27
|
+
currency: localeInfo.currency.code,
|
|
28
|
+
minDecimalPlaces: 2,
|
|
29
|
+
maxDecimalPlaces: 2,
|
|
30
|
+
}) })] })] }) })) : (_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
|
|
31
|
+
? 'Leaderboard'
|
|
32
|
+
: 'Starting soon!' }) }), _jsx(TournamentRules, { jackpotRules: tournament.description })] }), _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: maskDisplayName(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], {
|
|
33
|
+
currency: localeInfo.currency.code,
|
|
34
|
+
minDecimalPlaces: 2,
|
|
35
|
+
maxDecimalPlaces: 2,
|
|
36
|
+
}) })) : (_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" })] }) }) })] }))] }));
|
|
77
37
|
}
|
|
78
38
|
const starTierStyles = [
|
|
79
39
|
{
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { GameProviderData } from '~/types';
|
|
1
2
|
export interface TournamentsProps {
|
|
2
3
|
/** @default "Tournaments" */
|
|
3
4
|
heading?: string;
|
|
4
5
|
/** @default "/tournaments" */
|
|
5
6
|
viewAllUrl?: string;
|
|
6
7
|
className?: string;
|
|
8
|
+
gameProviders: GameProviderData[];
|
|
7
9
|
}
|
|
8
|
-
export declare function Tournaments(props: TournamentsProps): import("react/jsx-runtime").JSX.Element
|
|
10
|
+
export declare function Tournaments(props: TournamentsProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,26 +1,19 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
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 { TournamentItemDesktop } from './TournamentItemDesktop.js';
|
|
5
7
|
import { TournamentItemMobile } from './TournamentItemMobile.js';
|
|
6
8
|
export function Tournaments(props) {
|
|
7
|
-
const
|
|
9
|
+
const tournamentsQuery = useTournamentsQuery({
|
|
8
10
|
first: 100,
|
|
9
11
|
filter: {
|
|
10
12
|
status: {
|
|
11
13
|
equal: 'ACTIVE',
|
|
12
14
|
},
|
|
13
|
-
deleted: {
|
|
14
|
-
equal: false,
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
sort: {
|
|
18
|
-
cursor: 'POOL',
|
|
19
|
-
order: 'DESC',
|
|
20
15
|
},
|
|
21
16
|
});
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
return null;
|
|
25
|
-
return (_jsxs("div", { className: props.className, children: [_jsx("div", { className: "mb-3 text-lg font-semibold lg:mb-4.5", children: props.heading ?? 'Tournaments' }), _jsx("div", { className: "hidden flex-col gap-6 lg:flex", children: jackpots.map((jackpot) => (_jsx(TournamentItem, { jackpot: jackpot }, jackpot.id))) }), _jsx("div", { className: "flex flex-col gap-6 lg:hidden", children: jackpots.map((jackpot) => (_jsx(TournamentItemMobile, { jackpot: jackpot }, jackpot.id))) })] }));
|
|
17
|
+
const tournaments = tournamentsQuery.data?.pages[0].edges.map((edge) => edge.node) ?? [];
|
|
18
|
+
return (_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, i) => (_jsx(TournamentItemDesktop, { tournament: tournament, gameProviders: props.gameProviders }, i))) }), _jsx("div", { className: "flex flex-col gap-6 lg:hidden", children: tournaments.map((tournament, i) => (_jsx(TournamentItemMobile, { tournament: tournament, gameProviders: props.gameProviders }, i))) })] })) : (_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!"] })] }))] }));
|
|
26
19
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Tournament } from '@opexa/portal-sdk-core';
|
|
2
|
+
import type { GameProviderData } from '~/types';
|
|
3
|
+
export interface TournamentItemProps {
|
|
4
|
+
tournament: Tournament;
|
|
5
|
+
gameProviders: GameProviderData[];
|
|
6
|
+
}
|
|
7
|
+
export declare function useTournamentItemData({ tournament, gameProviders, }: TournamentItemProps): {
|
|
8
|
+
timeParts: {
|
|
9
|
+
label: string;
|
|
10
|
+
value: number;
|
|
11
|
+
}[];
|
|
12
|
+
tournamentReward: number;
|
|
13
|
+
prizeAmountsByRank: number[];
|
|
14
|
+
filteredGameProviders: GameProviderData[];
|
|
15
|
+
localeInfo: import("../../utils").LocaleInfo;
|
|
16
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { pick } from 'lodash-es';
|
|
2
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
3
|
+
import { useLocaleInfo } from '../../client/hooks/index.js';
|
|
4
|
+
export function useTournamentItemData({ tournament, gameProviders, }) {
|
|
5
|
+
const localeInfo = useLocaleInfo();
|
|
6
|
+
const [timeRemaining, setTimeRemaining] = useState({
|
|
7
|
+
days: 0,
|
|
8
|
+
hours: 0,
|
|
9
|
+
minutes: 0,
|
|
10
|
+
seconds: 0,
|
|
11
|
+
isPast: false,
|
|
12
|
+
});
|
|
13
|
+
const activationEndDateTime = useMemo(() => new Date(tournament.activationEndDateTime), [tournament.activationEndDateTime]);
|
|
14
|
+
const calculateRemainingTime = React.useCallback(() => {
|
|
15
|
+
const now = new Date();
|
|
16
|
+
const diffMs = activationEndDateTime.getTime() - now.getTime();
|
|
17
|
+
if (diffMs <= 0) {
|
|
18
|
+
setTimeRemaining({
|
|
19
|
+
days: 0,
|
|
20
|
+
hours: 0,
|
|
21
|
+
minutes: 0,
|
|
22
|
+
seconds: 0,
|
|
23
|
+
isPast: true,
|
|
24
|
+
});
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const diffSeconds = Math.floor(diffMs / 1000);
|
|
28
|
+
const days = Math.floor(diffSeconds / (3600 * 24));
|
|
29
|
+
const hours = Math.floor((diffSeconds % (3600 * 24)) / 3600);
|
|
30
|
+
const minutes = Math.floor((diffSeconds % 3600) / 60);
|
|
31
|
+
const seconds = diffSeconds % 60;
|
|
32
|
+
const updated = pick({ days, hours, minutes, seconds, isPast: false }, [
|
|
33
|
+
'days',
|
|
34
|
+
'hours',
|
|
35
|
+
'minutes',
|
|
36
|
+
'seconds',
|
|
37
|
+
'isPast',
|
|
38
|
+
]);
|
|
39
|
+
setTimeRemaining(updated);
|
|
40
|
+
}, [activationEndDateTime]);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
calculateRemainingTime();
|
|
43
|
+
const interval = setInterval(calculateRemainingTime, 1000); // Update every second
|
|
44
|
+
return () => clearInterval(interval);
|
|
45
|
+
}, [activationEndDateTime, calculateRemainingTime]);
|
|
46
|
+
const timeParts = [
|
|
47
|
+
{ label: 'Day', value: timeRemaining.days },
|
|
48
|
+
{ label: 'Hour', value: timeRemaining.hours },
|
|
49
|
+
{ label: 'Min', value: timeRemaining.minutes },
|
|
50
|
+
{ label: 'Sec', value: timeRemaining.seconds },
|
|
51
|
+
];
|
|
52
|
+
const tournamentReward = Object.values(tournament.rewardSettings)
|
|
53
|
+
.map(Number)
|
|
54
|
+
.reduce((sum, val) => sum + val, 0);
|
|
55
|
+
const prizeAmountsByRank = Object.values(tournament.rewardSettings).map(Number);
|
|
56
|
+
const filteredGameProviders = gameProviders.filter((provider) => tournament.enabledGameProviders.includes(provider.id));
|
|
57
|
+
return {
|
|
58
|
+
timeParts,
|
|
59
|
+
tournamentReward,
|
|
60
|
+
prizeAmountsByRank,
|
|
61
|
+
filteredGameProviders,
|
|
62
|
+
localeInfo,
|
|
63
|
+
};
|
|
64
|
+
}
|
package/dist/components/index.js
CHANGED
|
@@ -16,7 +16,6 @@ export * from './Games/index.js';
|
|
|
16
16
|
export * from './GamesSearch/index.js';
|
|
17
17
|
export * from './JackpotCounter/index.js';
|
|
18
18
|
export * from './Jackpots/index.js';
|
|
19
|
-
export * from './KYC/index.js';
|
|
20
19
|
export * from './Marquee/index.js';
|
|
21
20
|
export * from './Messages/index.js';
|
|
22
21
|
export * from './PortalProvider/index.js';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export function CreditCardCheckIcon(props) {
|
|
3
|
+
return (_jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("path", { d: "M16 18L18 20L22 16M22 10H2M22 12V8.2C22 7.0799 22 6.51984 21.782 6.09202C21.5903 5.7157 21.2843 5.40974 20.908 5.21799C20.4802 5 19.9201 5 18.8 5H5.2C4.0799 5 3.51984 5 3.09202 5.21799C2.7157 5.40973 2.40973 5.71569 2.21799 6.09202C2 6.51984 2 7.0799 2 8.2V15.8C2 16.9201 2 17.4802 2.21799 17.908C2.40973 18.2843 2.71569 18.5903 3.09202 18.782C3.51984 19 4.0799 19 5.2 19H12" }) }));
|
|
4
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export function FaceIdIcon(props) {
|
|
3
|
+
return (_jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("path", { d: "M8 3H7.8C6.11984 3 5.27976 3 4.63803 3.32698C4.07354 3.6146 3.6146 4.07354 3.32698 4.63803C3 5.27976 3 6.11984 3 7.8V8M8 21H7.8C6.11984 21 5.27976 21 4.63803 20.673C4.07354 20.3854 3.6146 19.9265 3.32698 19.362C3 18.7202 3 17.8802 3 16.2V16M21 8V7.8C21 6.11984 21 5.27976 20.673 4.63803C20.3854 4.07354 19.9265 3.6146 19.362 3.32698C18.7202 3 17.8802 3 16.2 3H16M21 16V16.2C21 17.8802 21 18.7202 20.673 19.362C20.3854 19.9265 19.9265 20.3854 19.362 20.673C18.7202 21 17.8802 21 16.2 21H16M7.5 8V9.5M16.5 8V9.5M11 12.6001C11.8 12.6001 12.5 11.9001 12.5 11.1001V8M15.2002 15.2C13.4002 17 10.5002 17 8.7002 15.2" }) }));
|
|
4
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export function FileSearch02Icon(props) {
|
|
3
|
+
return (_jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("path", { d: "M14 11H8M10 15H8M16 7H8M20 10.5V6.8C20 5.11984 20 4.27976 19.673 3.63803C19.3854 3.07354 18.9265 2.6146 18.362 2.32698C17.7202 2 16.8802 2 15.2 2H8.8C7.11984 2 6.27976 2 5.63803 2.32698C5.07354 2.6146 4.6146 3.07354 4.32698 3.63803C4 4.27976 4 5.11984 4 6.8V17.2C4 18.8802 4 19.7202 4.32698 20.362C4.6146 20.9265 5.07354 21.3854 5.63803 21.673C6.27976 22 7.11984 22 8.8 22H11.5M22 22L20.5 20.5M21.5 18C21.5 19.933 19.933 21.5 18 21.5C16.067 21.5 14.5 19.933 14.5 18C14.5 16.067 16.067 14.5 18 14.5C19.933 14.5 21.5 16.067 21.5 18Z" }) }));
|
|
4
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export function FileX02Icon(props) {
|
|
3
|
+
return (_jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("path", { d: "M14 11H8M10 15H8M16 7H8M20 12V6.8C20 5.11984 20 4.27976 19.673 3.63803C19.3854 3.07354 18.9265 2.6146 18.362 2.32698C17.7202 2 16.8802 2 15.2 2H8.8C7.11984 2 6.27976 2 5.63803 2.32698C5.07354 2.6146 4.6146 3.07354 4.32698 3.63803C4 4.27976 4 5.11984 4 6.8V17.2C4 18.8802 4 19.7202 4.32698 20.362C4.6146 20.9265 5.07354 21.3854 5.63803 21.673C6.27976 22 7.11984 22 8.8 22H12M16 16L21 21M21 16L16 21" }) }));
|
|
4
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export function Globe05Icon(props) {
|
|
3
|
+
return (_jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: _jsx("path", { d: "M15 2.4578C14.053 2.16035 13.0452 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 10.2847 21.5681 8.67022 20.8071 7.25945M17 5.75H17.005M10.5001 21.8883L10.5002 19.6849C10.5002 19.5656 10.5429 19.4502 10.6205 19.3596L13.1063 16.4594C13.3106 16.2211 13.2473 15.8556 12.9748 15.6999L10.1185 14.0677C10.0409 14.0234 9.97663 13.9591 9.93234 13.8814L8.07046 10.6186C7.97356 10.4488 7.78657 10.3511 7.59183 10.3684L2.06418 10.8607M21 6C21 8.20914 19 10 17 12C15 10 13 8.20914 13 6C13 3.79086 14.7909 2 17 2C19.2091 2 21 3.79086 21 6ZM17.25 5.75C17.25 5.88807 17.1381 6 17 6C16.8619 6 16.75 5.88807 16.75 5.75C16.75 5.61193 16.8619 5.5 17 5.5C17.1381 5.5 17.25 5.61193 17.25 5.75Z" }) }));
|
|
4
|
+
}
|
package/dist/icons/index.d.ts
CHANGED
|
@@ -23,14 +23,19 @@ export * from './CoinsHandIcon';
|
|
|
23
23
|
export * from './CoinsStacked02Icon';
|
|
24
24
|
export * from './CoinsSwap02Icon';
|
|
25
25
|
export * from './CreditCard02Icon';
|
|
26
|
+
export * from './CreditCardCheckIcon';
|
|
26
27
|
export * from './Diamond01Icon';
|
|
27
28
|
export * from './Expand03Icon';
|
|
28
29
|
export * from './EyeIcon';
|
|
29
30
|
export * from './EyeOffIcon';
|
|
30
31
|
export * from './FacebookIcon';
|
|
32
|
+
export * from './FaceIdIcon';
|
|
31
33
|
export * from './File02Icon';
|
|
32
34
|
export * from './FileCheck02Icon';
|
|
35
|
+
export * from './FileSearch02Icon';
|
|
36
|
+
export * from './FileX02Icon';
|
|
33
37
|
export * from './Gift01Icon';
|
|
38
|
+
export * from './Globe05Icon';
|
|
34
39
|
export * from './GoogleIcon';
|
|
35
40
|
export * from './HelpCircleIcon';
|
|
36
41
|
export * from './InfoCircleIcon';
|
package/dist/icons/index.js
CHANGED
|
@@ -23,14 +23,19 @@ export * from './CoinsHandIcon.js';
|
|
|
23
23
|
export * from './CoinsStacked02Icon.js';
|
|
24
24
|
export * from './CoinsSwap02Icon.js';
|
|
25
25
|
export * from './CreditCard02Icon.js';
|
|
26
|
+
export * from './CreditCardCheckIcon.js';
|
|
26
27
|
export * from './Diamond01Icon.js';
|
|
27
28
|
export * from './Expand03Icon.js';
|
|
28
29
|
export * from './EyeIcon.js';
|
|
29
30
|
export * from './EyeOffIcon.js';
|
|
30
31
|
export * from './FacebookIcon.js';
|
|
32
|
+
export * from './FaceIdIcon.js';
|
|
31
33
|
export * from './File02Icon.js';
|
|
32
34
|
export * from './FileCheck02Icon.js';
|
|
35
|
+
export * from './FileSearch02Icon.js';
|
|
36
|
+
export * from './FileX02Icon.js';
|
|
33
37
|
export * from './Gift01Icon.js';
|
|
38
|
+
export * from './Globe05Icon.js';
|
|
34
39
|
export * from './GoogleIcon.js';
|
|
35
40
|
export * from './HelpCircleIcon.js';
|
|
36
41
|
export * from './InfoCircleIcon.js';
|
package/dist/styles/theme.css
CHANGED
|
@@ -214,6 +214,8 @@
|
|
|
214
214
|
--color-bg-quaternary: #373a41;
|
|
215
215
|
--color-bg-active: #22262f;
|
|
216
216
|
--color-bg-disabled-subtle: #f9fafb;
|
|
217
|
+
--color-bg-success-secondary: #079455;
|
|
218
|
+
--color-bg-overlay: #22262f;
|
|
217
219
|
|
|
218
220
|
--color-text-brand: #feee95;
|
|
219
221
|
--color-text-brand-primary-600: #eaaa08;
|
|
@@ -235,6 +237,9 @@
|
|
|
235
237
|
--color-text-success-primary: #17b26a;
|
|
236
238
|
--color-text-success-primary-600: #47cd89;
|
|
237
239
|
--color-text-warning-primary: #f79009;
|
|
240
|
+
--color-text-error-primary: #f04438;
|
|
241
|
+
--color-text-featured-icon-light-success: #abefc6;
|
|
242
|
+
--color-text-featured-icon-light-error: #fecdca;
|
|
238
243
|
|
|
239
244
|
--color-border-primary: #373a41;
|
|
240
245
|
--color-border-secondary: #22262f;
|