@ape.swap/bonds-sdk 6.2.13-test.3 → 6.2.13-test.4
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/components/MenuSelect/MenuSelect.js +1 -6
- package/dist/components/MenuSelect/MenuSelect.js.map +1 -1
- package/dist/components/TokenInfoAndName/index.js +1 -0
- package/dist/components/TokenInfoAndName/index.js.map +1 -1
- package/dist/components/uikit-sdk/Text/index.js +1 -8
- package/dist/components/uikit-sdk/Text/index.js.map +1 -1
- package/dist/components/uikit-sdk/Text/types.js.map +1 -1
- package/dist/state/useSDKConfig.d.ts +0 -8
- package/dist/state/useSDKConfig.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utils/bondPriceHelpers.js +1 -11
- package/dist/utils/bondPriceHelpers.js.map +1 -1
- package/dist/utils/resolveColor.d.ts +0 -12
- package/dist/utils/resolveColor.js +0 -12
- package/dist/utils/resolveColor.js.map +1 -1
- package/dist/views/Bonds/components/ChainBanner/ChainBanner.js +1 -14
- package/dist/views/Bonds/components/ChainBanner/ChainBanner.js.map +1 -1
- package/dist/views/BuyBond/BuyComponent.js +8 -9
- package/dist/views/BuyBond/BuyComponent.js.map +1 -1
- package/dist/views/BuyBond/components/L1xIframe/L1xIframe.d.ts +4 -0
- package/dist/views/BuyBond/components/L1xIframe/L1xIframe.js +12 -0
- package/dist/views/BuyBond/components/L1xIframe/L1xIframe.js.map +1 -0
- package/dist/views/BuyBond/utils.js +0 -1
- package/dist/views/BuyBond/utils.js.map +1 -1
- package/dist/views/LifiModal/LifiModal.js +1 -2
- package/dist/views/LifiModal/LifiModal.js.map +1 -1
- package/dist/views/YourBondsModal/components/Actions/Actions.js +1 -1
- package/dist/views/YourBondsModal/components/Actions/Actions.js.map +1 -1
- package/package.json +1 -1
- package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js +0 -34
- package/dist/views/BuyBond/components/GetUpToComponent/GetUpToComponent.js.map +0 -1
|
@@ -4,12 +4,7 @@ import SelectItem from '../uikit-sdk/Select/SelectItem.js';
|
|
|
4
4
|
import Text from '../uikit-sdk/Text/index.js';
|
|
5
5
|
|
|
6
6
|
const MenuSelect = ({ selectedOption, setOption, options, ...props }) => {
|
|
7
|
-
return (jsx(Select, { size: "xsm", onChange: (e) => setOption(e.target.value), active: selectedOption,
|
|
8
|
-
// Select applies `width` as inline style, which is the only reliable way
|
|
9
|
-
// to beat its own base classes (`ape:h-fit` etc.) — a `w-full` class here
|
|
10
|
-
// would silently lose to that inline style, same reasoning as the `h-fit`
|
|
11
|
-
// vs `h-[36px]` conflict below.
|
|
12
|
-
width: "100%", ...props, className: `dropdown ape:h-[36px]! ape:flex ape:pr-[4px] ape:bg-white2!`, children: options?.map((option) => {
|
|
7
|
+
return (jsx(Select, { size: "xsm", onChange: (e) => setOption(e.target.value), active: selectedOption, width: "100%", ...props, className: `dropdown ape:h-[36px]! ape:flex ape:pr-[4px] ape:bg-white2!`, children: options?.map((option) => {
|
|
13
8
|
return (jsx(SelectItem, { size: "xsm", value: option.value, children: jsx(Text, { className: "menu-selector ape:font-normal ape:pl-[10px]", children: option.label }) }, option.label));
|
|
14
9
|
}) }));
|
|
15
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuSelect.js","sources":["../../../src/components/MenuSelect/MenuSelect.tsx"],"sourcesContent":["import React from 'react'\nimport Select from '../uikit-sdk/Select/Select'\nimport SelectItem from '../uikit-sdk/Select/SelectItem'\nimport Text from '../uikit-sdk/Text'\n\ntype Option = {\n label: string\n value: string\n}\n\nconst MenuSelect = ({\n selectedOption,\n setOption,\n options,\n ...props\n}:\n | {\n selectedOption: string\n setOption: (option: string) => void\n options: Option[] | undefined\n }\n | any) => {\n return (\n <Select\n size=\"xsm\"\n onChange={(e) => setOption(e.target.value)}\n active={selectedOption}\n
|
|
1
|
+
{"version":3,"file":"MenuSelect.js","sources":["../../../src/components/MenuSelect/MenuSelect.tsx"],"sourcesContent":["import React from 'react'\nimport Select from '../uikit-sdk/Select/Select'\nimport SelectItem from '../uikit-sdk/Select/SelectItem'\nimport Text from '../uikit-sdk/Text'\n\ntype Option = {\n label: string\n value: string\n}\n\nconst MenuSelect = ({\n selectedOption,\n setOption,\n options,\n ...props\n}:\n | {\n selectedOption: string\n setOption: (option: string) => void\n options: Option[] | undefined\n }\n | any) => {\n return (\n <Select\n size=\"xsm\"\n onChange={(e) => setOption(e.target.value)}\n active={selectedOption}\n width=\"100%\"\n {...props}\n className={`dropdown ape:h-[36px]! ape:flex ape:pr-[4px] ape:bg-white2!`}\n >\n {options?.map((option: Option) => {\n return (\n <SelectItem size=\"xsm\" value={option.value} key={option.label}>\n <Text className=\"menu-selector ape:font-normal ape:pl-[10px]\">{option.label}</Text>\n </SelectItem>\n )\n })}\n </Select>\n )\n}\n\nexport default MenuSelect\n"],"names":["_jsx"],"mappings":";;;;;AAUA,MAAM,UAAU,GAAG,CAAC,EAClB,cAAc,EACd,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EAOH,KAAI;IACT,QACEA,IAAC,MAAM,EAAA,EACL,IAAI,EAAC,KAAK,EACV,QAAQ,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC1C,MAAM,EAAE,cAAc,EACtB,KAAK,EAAC,MAAM,KACR,KAAK,EACT,SAAS,EAAE,CAAA,2DAAA,CAA6D,YAEvE,OAAO,EAAE,GAAG,CAAC,CAAC,MAAc,KAAI;AAC/B,YAAA,QACEA,GAAA,CAAC,UAAU,EAAA,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAA,QAAA,EACxCA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,6CAA6C,EAAA,QAAA,EAAE,MAAM,CAAC,KAAK,EAAA,CAAQ,EAAA,EADpC,MAAM,CAAC,KAAK,CAEhD;QAEjB,CAAC,CAAC,EAAA,CACK;AAEb;;;;"}
|
|
@@ -34,6 +34,7 @@ const NETWORK_COLORS = {
|
|
|
34
34
|
[ChainId.HYPEREVM]: '#ffffff4d',
|
|
35
35
|
[ChainId.APTOS]: 'rgb(240 111 126 / 0.3)',
|
|
36
36
|
[ChainId.SUI]: '#6fbcf04d',
|
|
37
|
+
[ChainId.L1X]: '#e743444d',
|
|
37
38
|
};
|
|
38
39
|
const TokenInfoAndName = ({ tokenSymbol, chain, tag, vestEnds, isHotBond, marketingCampaign, cardsView, }) => {
|
|
39
40
|
const ChainIcon = (chain && NETWORK_ICONS[chain]) || Question;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/TokenInfoAndName/index.tsx"],"sourcesContent":["import React from 'react'\nimport clsx from 'clsx'\nimport { NETWORK_ICONS } from '../../config/constants/chains'\nimport TokenImage from '../uikit-sdk/TokenImage'\nimport AddFavToken from '../FavIcons/AddFavToken'\nimport { ChainId, MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport { MCTagNameMapping, MCTokenIconStyles } from '../../utils/campaignStyles'\nimport Flex from '../uikit-sdk/Flex'\nimport Text from '../uikit-sdk/Text'\nimport ListTag from '../uikit-sdk/Tag/ListTag'\nimport Question from '../uikit-sdk/Svg/Icons/Question'\n\nconst NETWORK_COLORS: Partial<Record<number, string>> = {\n [ChainId.BSC]: '#F3BA2F4d',\n [ChainId.MAINNET]: '#627eea4d',\n [ChainId.MATIC]: '#8247e54d',\n [ChainId.LIGHTLINK]: '#6087ff4d',\n [ChainId.BASE]: '#0052ff4d',\n [ChainId.ARBITRUM]: '#289fef4d',\n [ChainId.LINEA]: '#ffffff4d',\n [ChainId.IOTA]: '#ffffff4d',\n [ChainId.GRAPHLINQ]: '#ded2ff4d',\n [ChainId.AVAX]: '#e743444d',\n [ChainId.BLAST]: '#fcfc034d',\n [ChainId.CROSSFI]: '#7c80844d',\n [ChainId.MONAD_TESTNET]: '#836EF94d',\n [ChainId.MONAD]: '#836EF94d',\n [ChainId.SOL]: '#836EF94d',\n [ChainId.SONIC]: '#fb9a4c4d',\n [ChainId.BERACHAIN]: '#783e244d',\n [ChainId.KATANA]: '#068be34d',\n [ChainId.UNICHAIN]: '#f50db44d',\n [ChainId.MEGAETH_TESTNET]: '#DFD9D94d',\n [ChainId.HYPEREVM]: '#ffffff4d',\n [ChainId.APTOS]: 'rgb(240 111 126 / 0.3)',\n [ChainId.SUI]: '#6fbcf04d',\n}\n\nconst TokenInfoAndName = ({\n tokenSymbol,\n chain,\n tag,\n vestEnds,\n isHotBond,\n marketingCampaign,\n cardsView,\n}: {\n tokenSymbol?: string\n chain?: number\n tag?: string\n vestEnds?: string\n isHotBond?: boolean\n marketingCampaign?: MarketingCampaign\n cardsView?: boolean\n}) => {\n const ChainIcon = (chain && NETWORK_ICONS[chain]) || Question\n return (\n <Flex\n className={clsx(\n 'tokeninfoname container ape:w-full ape:relative ape:h-full ape:rounded-[10px]',\n cardsView\n ? 'ape:flex-col ape:items-start ape:gap-[10px] ape:pl-0 ape:pt-[5px] ape:justify-start'\n : 'ape:justify-start ape:items-center',\n )}\n >\n <Flex\n className=\"ape:absolute ape:left-0 ape:top-0 ape:w-[125px] ape:h-full ape:rounded-normal\"\n style={{\n background: isHotBond\n ? 'transparent'\n : `linear-gradient(90deg, ${chain ? NETWORK_COLORS[chain] : '#FFFFFF33'} 0%, rgba(0,0,0,0) 75%)`,\n }}\n />\n <Flex\n className={clsx(\n 'tokeninfoname chain ape:absolute ape:left-0 ape:top-0 ape:overflow-hidden ape:rounded-tl-[10px] ape:rounded-br-[8px] ape:z-[5]',\n cardsView && 'ape:hidden',\n )}\n >\n <ChainIcon width={20} height={20} />\n </Flex>\n <Flex\n className={clsx(\n 'tokeninfoname tokencontainer ape:w-full ape:items-center',\n cardsView ? 'ape:max-w-full ape:pl-0' : 'ape:sm:max-w-[190px]',\n !cardsView && (vestEnds ? 'ape:mt-[10px] ape:lg:mt-0' : 'ape:mt-0'),\n )}\n >\n <Flex className=\"ape:relative ape:min-w-[33px] ape:ml-3.5 ape:sm:ml-5\">\n <Flex style={MCTokenIconStyles[marketingCampaign!]} />\n <TokenImage symbol={tokenSymbol} size={33} />\n </Flex>\n <Flex className=\"tokeninfoname tokentext ape:ml-1 ape:sm:ml-2 ape:font-bold ape:w-full ape:flex-col\">\n <Flex className=\"ape:justify-between ape:w-full ape:items-center\">\n <Text className=\"ape:text-[12px]! ape:sm:text-[16px]!\">{tokenSymbol}</Text>\n </Flex>\n {vestEnds && (\n <Flex className=\"ape:text-[12px] ape:font-normal ape:opacity-60 ape:leading-[14px]\">{vestEnds}</Flex>\n )}\n </Flex>\n <Flex className=\"tokeninfofav ape:min-w-[25px] ape:p-[5px]\">\n <AddFavToken tokenSymbol={tokenSymbol} hotBond={!vestEnds && isHotBond} />\n </Flex>\n </Flex>\n <Flex className={clsx('ape:items-center', isHotBond ? 'ape:justify-center' : 'ape:justify-start')}>\n <Flex className={isHotBond ? 'ape:flex' : 'ape:hidden ape:xl:flex'}>\n {(tag || marketingCampaign) && (\n <ListTag text={MCTagNameMapping[marketingCampaign!] || tag} marketingCampaign={marketingCampaign} />\n )}\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default TokenInfoAndName\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/TokenInfoAndName/index.tsx"],"sourcesContent":["import React from 'react'\nimport clsx from 'clsx'\nimport { NETWORK_ICONS } from '../../config/constants/chains'\nimport TokenImage from '../uikit-sdk/TokenImage'\nimport AddFavToken from '../FavIcons/AddFavToken'\nimport { ChainId, MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport { MCTagNameMapping, MCTokenIconStyles } from '../../utils/campaignStyles'\nimport Flex from '../uikit-sdk/Flex'\nimport Text from '../uikit-sdk/Text'\nimport ListTag from '../uikit-sdk/Tag/ListTag'\nimport Question from '../uikit-sdk/Svg/Icons/Question'\n\nconst NETWORK_COLORS: Partial<Record<number, string>> = {\n [ChainId.BSC]: '#F3BA2F4d',\n [ChainId.MAINNET]: '#627eea4d',\n [ChainId.MATIC]: '#8247e54d',\n [ChainId.LIGHTLINK]: '#6087ff4d',\n [ChainId.BASE]: '#0052ff4d',\n [ChainId.ARBITRUM]: '#289fef4d',\n [ChainId.LINEA]: '#ffffff4d',\n [ChainId.IOTA]: '#ffffff4d',\n [ChainId.GRAPHLINQ]: '#ded2ff4d',\n [ChainId.AVAX]: '#e743444d',\n [ChainId.BLAST]: '#fcfc034d',\n [ChainId.CROSSFI]: '#7c80844d',\n [ChainId.MONAD_TESTNET]: '#836EF94d',\n [ChainId.MONAD]: '#836EF94d',\n [ChainId.SOL]: '#836EF94d',\n [ChainId.SONIC]: '#fb9a4c4d',\n [ChainId.BERACHAIN]: '#783e244d',\n [ChainId.KATANA]: '#068be34d',\n [ChainId.UNICHAIN]: '#f50db44d',\n [ChainId.MEGAETH_TESTNET]: '#DFD9D94d',\n [ChainId.HYPEREVM]: '#ffffff4d',\n [ChainId.APTOS]: 'rgb(240 111 126 / 0.3)',\n [ChainId.SUI]: '#6fbcf04d',\n [ChainId.L1X]: '#e743444d',\n}\n\nconst TokenInfoAndName = ({\n tokenSymbol,\n chain,\n tag,\n vestEnds,\n isHotBond,\n marketingCampaign,\n cardsView,\n}: {\n tokenSymbol?: string\n chain?: number\n tag?: string\n vestEnds?: string\n isHotBond?: boolean\n marketingCampaign?: MarketingCampaign\n cardsView?: boolean\n}) => {\n const ChainIcon = (chain && NETWORK_ICONS[chain]) || Question\n return (\n <Flex\n className={clsx(\n 'tokeninfoname container ape:w-full ape:relative ape:h-full ape:rounded-[10px]',\n cardsView\n ? 'ape:flex-col ape:items-start ape:gap-[10px] ape:pl-0 ape:pt-[5px] ape:justify-start'\n : 'ape:justify-start ape:items-center',\n )}\n >\n <Flex\n className=\"ape:absolute ape:left-0 ape:top-0 ape:w-[125px] ape:h-full ape:rounded-normal\"\n style={{\n background: isHotBond\n ? 'transparent'\n : `linear-gradient(90deg, ${chain ? NETWORK_COLORS[chain] : '#FFFFFF33'} 0%, rgba(0,0,0,0) 75%)`,\n }}\n />\n <Flex\n className={clsx(\n 'tokeninfoname chain ape:absolute ape:left-0 ape:top-0 ape:overflow-hidden ape:rounded-tl-[10px] ape:rounded-br-[8px] ape:z-[5]',\n cardsView && 'ape:hidden',\n )}\n >\n <ChainIcon width={20} height={20} />\n </Flex>\n <Flex\n className={clsx(\n 'tokeninfoname tokencontainer ape:w-full ape:items-center',\n cardsView ? 'ape:max-w-full ape:pl-0' : 'ape:sm:max-w-[190px]',\n !cardsView && (vestEnds ? 'ape:mt-[10px] ape:lg:mt-0' : 'ape:mt-0'),\n )}\n >\n <Flex className=\"ape:relative ape:min-w-[33px] ape:ml-3.5 ape:sm:ml-5\">\n <Flex style={MCTokenIconStyles[marketingCampaign!]} />\n <TokenImage symbol={tokenSymbol} size={33} />\n </Flex>\n <Flex className=\"tokeninfoname tokentext ape:ml-1 ape:sm:ml-2 ape:font-bold ape:w-full ape:flex-col\">\n <Flex className=\"ape:justify-between ape:w-full ape:items-center\">\n <Text className=\"ape:text-[12px]! ape:sm:text-[16px]!\">{tokenSymbol}</Text>\n </Flex>\n {vestEnds && (\n <Flex className=\"ape:text-[12px] ape:font-normal ape:opacity-60 ape:leading-[14px]\">{vestEnds}</Flex>\n )}\n </Flex>\n <Flex className=\"tokeninfofav ape:min-w-[25px] ape:p-[5px]\">\n <AddFavToken tokenSymbol={tokenSymbol} hotBond={!vestEnds && isHotBond} />\n </Flex>\n </Flex>\n <Flex className={clsx('ape:items-center', isHotBond ? 'ape:justify-center' : 'ape:justify-start')}>\n <Flex className={isHotBond ? 'ape:flex' : 'ape:hidden ape:xl:flex'}>\n {(tag || marketingCampaign) && (\n <ListTag text={MCTagNameMapping[marketingCampaign!] || tag} marketingCampaign={marketingCampaign} />\n )}\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nexport default TokenInfoAndName\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;AAYA,MAAM,cAAc,GAAoC;AACtD,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,WAAW;AAC1B,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,WAAW;AAC9B,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW;AAC5B,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,WAAW;AAChC,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW;AAC3B,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,WAAW;AAC/B,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW;AAC5B,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW;AAC3B,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,WAAW;AAChC,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW;AAC3B,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW;AAC5B,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,WAAW;AAC9B,IAAA,CAAC,OAAO,CAAC,aAAa,GAAG,WAAW;AACpC,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW;AAC5B,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,WAAW;AAC1B,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,WAAW;AAC5B,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,WAAW;AAChC,IAAA,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW;AAC7B,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,WAAW;AAC/B,IAAA,CAAC,OAAO,CAAC,eAAe,GAAG,WAAW;AACtC,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,WAAW;AAC/B,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,wBAAwB;AACzC,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,WAAW;AAC1B,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,WAAW;CAC3B;AAED,MAAM,gBAAgB,GAAG,CAAC,EACxB,WAAW,EACX,KAAK,EACL,GAAG,EACH,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,SAAS,GASV,KAAI;AACH,IAAA,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,QAAQ;IAC7D,QACEA,IAAA,CAAC,IAAI,EAAA,EACH,SAAS,EAAE,IAAI,CACb,+EAA+E,EAC/E;AACE,cAAE;AACF,cAAE,oCAAoC,CACzC,EAAA,QAAA,EAAA,CAEDC,GAAA,CAAC,IAAI,EAAA,EACH,SAAS,EAAC,+EAA+E,EACzF,KAAK,EAAE;AACL,oBAAA,UAAU,EAAE;AACV,0BAAE;AACF,0BAAE,CAAA,uBAAA,EAA0B,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,WAAW,CAAA,uBAAA,CAAyB;iBACnG,EAAA,CACD,EACFA,GAAA,CAAC,IAAI,EAAA,EACH,SAAS,EAAE,IAAI,CACb,gIAAgI,EAChI,SAAS,IAAI,YAAY,CAC1B,EAAA,QAAA,EAEDA,GAAA,CAAC,SAAS,EAAA,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,CAAI,GAC/B,EACPD,IAAA,CAAC,IAAI,EAAA,EACH,SAAS,EAAE,IAAI,CACb,0DAA0D,EAC1D,SAAS,GAAG,yBAAyB,GAAG,sBAAsB,EAC9D,CAAC,SAAS,KAAK,QAAQ,GAAG,2BAA2B,GAAG,UAAU,CAAC,CACpE,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,sDAAsD,EAAA,QAAA,EAAA,CACpEC,GAAA,CAAC,IAAI,EAAA,EAAC,KAAK,EAAE,iBAAiB,CAAC,iBAAkB,CAAC,EAAA,CAAI,EACtDA,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,CAAA,EAAA,CACxC,EACPD,IAAA,CAAC,IAAI,IAAC,SAAS,EAAC,oFAAoF,EAAA,QAAA,EAAA,CAClGC,GAAA,CAAC,IAAI,IAAC,SAAS,EAAC,iDAAiD,EAAA,QAAA,EAC/DA,GAAA,CAAC,IAAI,IAAC,SAAS,EAAC,sCAAsC,EAAA,QAAA,EAAE,WAAW,EAAA,CAAQ,GACtE,EACN,QAAQ,KACPA,GAAA,CAAC,IAAI,IAAC,SAAS,EAAC,mEAAmE,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAQ,CACtG,CAAA,EAAA,CACI,EACPA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,2CAA2C,EAAA,QAAA,EACzDA,GAAA,CAAC,WAAW,EAAA,EAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,QAAQ,IAAI,SAAS,EAAA,CAAI,EAAA,CACrE,CAAA,EAAA,CACF,EACPA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,oBAAoB,GAAG,mBAAmB,CAAC,EAAA,QAAA,EAC/FA,GAAA,CAAC,IAAI,IAAC,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,wBAAwB,EAAA,QAAA,EAC/D,CAAC,GAAG,IAAI,iBAAiB,MACxBA,GAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAE,gBAAgB,CAAC,iBAAkB,CAAC,IAAI,GAAG,EAAE,iBAAiB,EAAE,iBAAiB,EAAA,CAAI,CACrG,EAAA,CACI,EAAA,CACF,CAAA,EAAA,CACF;AAEX;;;;"}
|
|
@@ -14,14 +14,7 @@ const namedWeights = {
|
|
|
14
14
|
normal: 600,
|
|
15
15
|
bold: 700,
|
|
16
16
|
};
|
|
17
|
-
const Text = ({ variant = variants.NORMAL,
|
|
18
|
-
// theme-ui's default was `weight = variants.NORMAL` too (i.e. 'md') — an
|
|
19
|
-
// invalid fontWeight key that theme-ui's scale lookup silently dropped,
|
|
20
|
-
// leaving the browser default (~400) in effect for every Text that didn't
|
|
21
|
-
// pass an explicit weight. Defaulting to `undefined` here reproduces that
|
|
22
|
-
// instead of forcibly resolving it to 600, which was making text bolder
|
|
23
|
-
// than intended almost everywhere Text is used without a `weight` prop.
|
|
24
|
-
weight, size, children, color = 'text', className, style, as: Component = 'p', ...props }) => {
|
|
17
|
+
const Text = ({ variant = variants.NORMAL, weight, size, children, color = 'text', className, style, as: Component = 'p', ...props }) => {
|
|
25
18
|
const fontWeight = typeof weight === 'number' ? weight : weight ? namedWeights[weight] : undefined;
|
|
26
19
|
return (jsx(Component, { ...props, className: clsx(variantClasses[variant], className), style: {
|
|
27
20
|
color: resolveColor(color),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/uikit-sdk/Text/index.tsx"],"sourcesContent":["import React from 'react'\nimport clsx from 'clsx'\nimport { resolveColor } from '../../../utils/resolveColor'\nimport { TextProps, variants } from './types'\n\nconst variantClasses: Record<string, string> = {\n [variants.SMALL]: 'ape:text-[14px] ape:leading-[18px]',\n [variants.NORMAL]: 'ape:text-[18px] ape:leading-[24px]',\n [variants.LARGE]: 'ape:text-[24px] ape:leading-[33px]',\n [variants.LINK]: 'ape-text-link',\n}\n\nconst namedWeights: Record<string, number> = {\n light: 400,\n normal: 600,\n bold: 700,\n}\n\nconst Text = ({\n variant = variants.NORMAL,\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/uikit-sdk/Text/index.tsx"],"sourcesContent":["import React from 'react'\nimport clsx from 'clsx'\nimport { resolveColor } from '../../../utils/resolveColor'\nimport { TextProps, variants } from './types'\n\nconst variantClasses: Record<string, string> = {\n [variants.SMALL]: 'ape:text-[14px] ape:leading-[18px]',\n [variants.NORMAL]: 'ape:text-[18px] ape:leading-[24px]',\n [variants.LARGE]: 'ape:text-[24px] ape:leading-[33px]',\n [variants.LINK]: 'ape-text-link',\n}\n\nconst namedWeights: Record<string, number> = {\n light: 400,\n normal: 600,\n bold: 700,\n}\n\nconst Text = ({\n variant = variants.NORMAL,\n weight,\n size,\n children,\n color = 'text',\n className,\n style,\n as: Component = 'p',\n ...props\n}: TextProps | any) => {\n const fontWeight = typeof weight === 'number' ? weight : weight ? namedWeights[weight] : undefined\n\n return (\n <Component\n {...props}\n className={clsx(variantClasses[variant], className)}\n style={{\n color: resolveColor(color),\n ...(fontWeight !== undefined ? { fontWeight } : {}),\n ...(size ? { fontSize: size } : {}),\n ...style,\n }}\n >\n {children}\n </Component>\n )\n}\n\nexport default Text\n"],"names":["_jsx"],"mappings":";;;;;AAKA,MAAM,cAAc,GAA2B;AAC7C,IAAA,CAAC,QAAQ,CAAC,KAAK,GAAG,oCAAoC;AACtD,IAAA,CAAC,QAAQ,CAAC,MAAM,GAAG,oCAAoC;AACvD,IAAA,CAAC,QAAQ,CAAC,KAAK,GAAG,oCAAoC;AACtD,IAAA,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe;CACjC;AAED,MAAM,YAAY,GAA2B;AAC3C,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,IAAI,EAAE,GAAG;CACV;AAED,MAAM,IAAI,GAAG,CAAC,EACZ,OAAO,GAAG,QAAQ,CAAC,MAAM,EACzB,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,KAAK,GAAG,MAAM,EACd,SAAS,EACT,KAAK,EACL,EAAE,EAAE,SAAS,GAAG,GAAG,EACnB,GAAG,KAAK,EACQ,KAAI;IACpB,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,SAAS;AAElG,IAAA,QACEA,GAAA,CAAC,SAAS,OACJ,KAAK,EACT,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EACnD,KAAK,EAAE;AACL,YAAA,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;AAC1B,YAAA,IAAI,UAAU,KAAK,SAAS,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AACnD,YAAA,IAAI,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACnC,YAAA,GAAG,KAAK;SACT,EAAA,QAAA,EAEA,QAAQ,EAAA,CACC;AAEhB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/components/uikit-sdk/Text/types.ts"],"sourcesContent":["import type React from 'react'\n\nexport enum variants {\n SMALL = 'sm',\n NORMAL = 'md',\n LARGE = 'lg',\n LINK = 'link',\n}\n\nenum weights {\n LIGHT = 'light',\n NORMAL = 'normal',\n BOLD = 'bold',\n}\n\ntype variantProps = `${variants}`\ntype weightProps = `${weights}` | number\ntype sizeProps = string\n\nexport interface TextProps extends React.HTMLAttributes<HTMLParagraphElement> {\n variant?: variantProps\n weight?: weightProps\n color?: string\n size?: sizeProps\n
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/components/uikit-sdk/Text/types.ts"],"sourcesContent":["import type React from 'react'\n\nexport enum variants {\n SMALL = 'sm',\n NORMAL = 'md',\n LARGE = 'lg',\n LINK = 'link',\n}\n\nenum weights {\n LIGHT = 'light',\n NORMAL = 'normal',\n BOLD = 'bold',\n}\n\ntype variantProps = `${variants}`\ntype weightProps = `${weights}` | number\ntype sizeProps = string\n\nexport interface TextProps extends React.HTMLAttributes<HTMLParagraphElement> {\n variant?: variantProps\n weight?: weightProps\n color?: string\n size?: sizeProps\n as?: React.ElementType\n [key: string]: any\n}\n"],"names":[],"mappings":"IAEY;AAAZ,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,IAAY;AACZ,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,IAAa;AACb,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,IAAY;AACZ,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EALW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;AAOpB,IAAK,OAIJ;AAJD,CAAA,UAAK,OAAO,EAAA;AACV,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EAJI,OAAO,KAAP,OAAO,GAAA,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -17,13 +17,6 @@ export interface SDKPropsDTO {
|
|
|
17
17
|
bondPartner?: string;
|
|
18
18
|
namingPreference?: 'Discount' | 'Bonus';
|
|
19
19
|
urls?: Partial<Record<URLKeys, string>>;
|
|
20
|
-
/**
|
|
21
|
-
* @deprecated Runtime theming was dropped when the SDK moved to build-time
|
|
22
|
-
* Tailwind tokens. This prop is accepted but ignored — restyle via the
|
|
23
|
-
* documented consumer-facing classnames instead. Will be removed in a
|
|
24
|
-
* future major version.
|
|
25
|
-
*/
|
|
26
|
-
theme?: any;
|
|
27
20
|
highestCompatibleVersion?: string;
|
|
28
21
|
blockSales?: boolean;
|
|
29
22
|
customBranch?: string;
|
|
@@ -51,7 +44,6 @@ export interface SDKProps {
|
|
|
51
44
|
bondPartner?: string;
|
|
52
45
|
namingPreference: 'Discount' | 'Bonus';
|
|
53
46
|
urls: Record<URLKeys, string>;
|
|
54
|
-
theme?: any;
|
|
55
47
|
highestCompatibleVersion?: string;
|
|
56
48
|
evmAddress?: string;
|
|
57
49
|
solAddress?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSDKConfig.js","sources":["../../src/state/useSDKConfig.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../config/constants/queryKeys'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { setCustomRPCS } from '../config/constants/networks'\nimport { setWalletConnectorOpener } from '../config/constants/walletConnectors'\n\n// Prod URLS. Do not make changes here\nconst defaultUrls = {\n apiV2: 'https://api.ape.bond',\n realTimeApi: 'https://realtime-api.ape.bond',\n mainUrl: 'https://ape.bond',\n}\n\n// Staging URLS.\nconst stagingUrls = {\n apiV2: 'https://staging-api.ape.bond',\n realTimeApi: 'https://realtime-api-staging.ape.bond',\n mainUrl: 'https://staging.ape.bond',\n}\n\nexport interface OpenWalletConnectorsDTO {\n evm?: () => void\n sol?: () => void\n sui?: () => void\n aptos?: () => void\n}\n\nexport interface SDKPropsDTO {\n referenceId: string\n chains: number[]\n hotBondChains?: number[]\n useHotBonds?: boolean\n useTiers?: boolean\n useTGEBonds?: boolean\n useCardsView?: boolean\n showLowValueBonds?: boolean\n bondPartner?: string\n namingPreference?: 'Discount' | 'Bonus'\n urls?: Partial<Record<URLKeys, string>>\n
|
|
1
|
+
{"version":3,"file":"useSDKConfig.js","sources":["../../src/state/useSDKConfig.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../config/constants/queryKeys'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { setCustomRPCS } from '../config/constants/networks'\nimport { setWalletConnectorOpener } from '../config/constants/walletConnectors'\n\n// Prod URLS. Do not make changes here\nconst defaultUrls = {\n apiV2: 'https://api.ape.bond',\n realTimeApi: 'https://realtime-api.ape.bond',\n mainUrl: 'https://ape.bond',\n}\n\n// Staging URLS.\nconst stagingUrls = {\n apiV2: 'https://staging-api.ape.bond',\n realTimeApi: 'https://realtime-api-staging.ape.bond',\n mainUrl: 'https://staging.ape.bond',\n}\n\nexport interface OpenWalletConnectorsDTO {\n evm?: () => void\n sol?: () => void\n sui?: () => void\n aptos?: () => void\n}\n\nexport interface SDKPropsDTO {\n referenceId: string\n chains: number[]\n hotBondChains?: number[]\n useHotBonds?: boolean\n useTiers?: boolean\n useTGEBonds?: boolean\n useCardsView?: boolean\n showLowValueBonds?: boolean\n bondPartner?: string\n namingPreference?: 'Discount' | 'Bonus'\n urls?: Partial<Record<URLKeys, string>>\n highestCompatibleVersion?: string\n blockSales?: boolean\n customBranch?: string\n highlightedBond?: string\n customRPCS?: Partial<Record<ChainId, string[]>>\n openWalletConnectors?: OpenWalletConnectorsDTO\n aptosAddress?: string\n suiAddress?: string\n suiTreasuryAddresses?: string[]\n}\n\nexport interface SDKProps {\n referenceId: string\n chains: number[]\n hotBondChains: number[]\n openWalletConnectors?: {\n evm?: boolean\n sol?: boolean\n sui?: boolean\n aptos?: boolean\n }\n useHotBonds: boolean\n useTiers: boolean\n useTGEBonds: boolean\n showLowValueBonds: boolean\n bondPartner?: string\n namingPreference: 'Discount' | 'Bonus'\n urls: Record<URLKeys, string>\n highestCompatibleVersion?: string\n evmAddress?: string\n solAddress?: string\n aptosAddress?: string\n suiAddress?: string\n useCardsView?: boolean\n blockSales?: boolean\n customBranch?: string\n highlightedBond?: string\n}\n\nexport const useSDKConfig = (config?: SDKPropsDTO): SDKProps => {\n const urls = process.env.NODE_ENV === 'production' ? defaultUrls : stagingUrls\n\n const initialData: SDKProps = {\n referenceId: '',\n chains: [],\n hotBondChains: [ChainId.BSC, ChainId.MATIC],\n useHotBonds: true,\n useTGEBonds: false,\n showLowValueBonds: false,\n bondPartner: undefined,\n namingPreference: 'Bonus',\n useCardsView: false,\n blockSales: false,\n customBranch: '',\n ...config,\n openWalletConnectors: {\n evm: !!config?.openWalletConnectors?.evm,\n sol: !!config?.openWalletConnectors?.sol,\n sui: !!config?.openWalletConnectors?.sui,\n aptos: !!config?.openWalletConnectors?.aptos,\n },\n useTiers: config?.namingPreference === 'Discount' ? false : (config?.useTiers ?? false), // for the time being we'll assume discount preference does not want to useTiers\n urls: { ...urls, ...config?.urls },\n highestCompatibleVersion: '2.2.0',\n }\n\n const hasConfig = config !== undefined\n const customRPCS = config?.customRPCS\n const evmConnectorOpener = config?.openWalletConnectors?.evm\n const solConnectorOpener = config?.openWalletConnectors?.sol\n const suiConnectorOpener = config?.openWalletConnectors?.sui\n const aptosConnectorOpener = config?.openWalletConnectors?.aptos\n\n useEffect(() => {\n // Calls without config only read shared settings and must not overwrite their registries.\n if (!hasConfig) {\n return\n }\n setCustomRPCS(customRPCS ?? {})\n if (evmConnectorOpener) setWalletConnectorOpener('evm', evmConnectorOpener)\n if (solConnectorOpener) setWalletConnectorOpener('sol', solConnectorOpener)\n if (suiConnectorOpener) setWalletConnectorOpener('sui', suiConnectorOpener)\n if (aptosConnectorOpener) setWalletConnectorOpener('aptos', aptosConnectorOpener)\n }, [hasConfig, customRPCS, evmConnectorOpener, solConnectorOpener, suiConnectorOpener, aptosConnectorOpener])\n\n const { data } = useQuery({\n queryKey: [QUERY_KEYS.SDK_CONFIG],\n queryFn: () => {\n throw new Error('Just a hotfix for latest versions of react-query that make queryFn a required prop')\n },\n initialData,\n })\n return data as SDKProps\n}\n\nexport type URLKeys = 'apiV2' | 'realTimeApi' | 'mainUrl'\n\nexport const useURLByEnvironment = (key: URLKeys) => {\n const config = useSDKConfig()\n return config?.urls?.[key] as string\n}\n"],"names":[],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-outline-style:solid;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--ape-font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--ape-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ape-color-white:#fff;--ape-spacing:.25rem;--ape-text-base:1rem;--ape-text-base--line-height:calc(1.5 / 1);--ape-font-weight-light:300;--ape-font-weight-normal:400;--ape-font-weight-medium:500;--ape-font-weight-semibold:600;--ape-font-weight-bold:700;--ape-ease-out:cubic-bezier(0, 0, .2, 1);--ape-ease-in-out:cubic-bezier(.4, 0, .2, 1);--ape-default-transition-duration:.15s;--ape-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--ape-default-font-family:var(--ape-font-sans);--ape-default-mono-font-family:var(--ape-font-mono);--ape-color-white1:#0e0d16;--ape-color-white2:#161420;--ape-color-white3:#1f1d29;--ape-color-white4:#282632;--ape-color-white5:#312f3a;--ape-color-primary-button:#6560c5;--ape-color-primary-button-disable:#48475b;--ape-color-primary-button-hovered:#8480d1;--ape-color-success:#38a611;--ape-color-error:#df4141;--ape-color-text:#fafafa;--ape-color-text-disabled:#424242;--ape-color-text-disabled-button:#73728e;--ape-color-primary-bright:#fafafa;--ape-color-modal-overlay:#42424280;--ape-gradient-abond:linear-gradient(98.79deg, #6560c5 -2.37%, #e07753 100%);--ape-font-body:"Poppins", sans-serif;--ape-radius-small:6px;--ape-radius-default:16px;--ape-radius-normal:10px;--ape-radius-card:32px;--ape-z-index-dropdown:10;--ape-z-index-modal:102}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ape-default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--ape-default-font-feature-settings,normal);font-variation-settings:var(--ape-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ape-default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--ape-default-mono-font-feature-settings,normal);font-variation-settings:var(--ape-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}.ape-root{font-family:var(--ape-font-body);-webkit-font-smoothing:antialiased;color:var(--ape-color-text);background-color:var(--ape-color-white1);scroll-behavior:smooth;font-weight:600}.ape-root a{color:var(--ape-color-text);text-decoration:none}.ape-root a:hover{color:var(--ape-color-primary-button);text-decoration:underline}.ape-root hr{background-color:var(--ape-color-white3);border:none;height:1px}.ape-root ::-webkit-scrollbar{width:6px}.ape-root ::-webkit-scrollbar-thumb{background:var(--ape-color-text);border-radius:8px}.ape-root ::-webkit-scrollbar-track{background:var(--ape-color-white2);border-radius:10px}}@layer components{@keyframes ape-ellipsis{0%{content:"."}33%{content:".."}66%{content:"..."}}.ape-ellipsis:after{content:".";text-align:left;width:1em;animation:1.25s infinite ape-ellipsis;display:inline-block}.ape-carousel-viewport{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;-webkit-touch-callout:none}.ape-carousel-viewport::-webkit-scrollbar{display:none}.ape-you-tooltip:after{content:"";border-style:solid;border-width:6px;border-color:transparent var(--ape-color-primary-button) transparent transparent;position:absolute;top:50%;left:-11px;transform:translateY(-50%)}.ape-you-card{position:absolute;top:0;right:-45px}.ape-you-card:before{content:"";border:9px solid #0000;border-right-color:var(--ape-color-primary-button);width:0;height:0;display:block;position:absolute;top:50%;right:100%;transform:translateY(-50%)}@keyframes ape-spinner-rotation{0%{transform:rotate(40deg)}to{transform:rotate(400deg)}}.ape-spinner{box-sizing:border-box;border-radius:50%;display:inline-block}.ape-spinner-loading{animation:1s linear infinite ape-spinner-rotation;transform:rotate(40deg)}.ape-icon{fill:currentColor;transition:transform .3s linear}.ape-icon path{fill:currentColor}.ape-text-link{cursor:pointer;text-decoration:none;display:inline-block;position:relative}.ape-text-link:after{content:"";background:var(--ape-color-text);border-radius:var(--ape-radius-normal);transform-origin:100% 100%;backface-visibility:hidden;width:100%;height:1.5px;transition:transform .25s ease-out;position:absolute;bottom:0;left:0;transform:scaleX(0)}.ape-text-link:hover:after{transform-origin:0 100%;transform:scaleX(1)}.ape-tooltip-bubble{color:var(--ape-color-text);border-radius:var(--ape-radius-normal);background-color:var(--ape-tooltip-bg,var(--ape-color-white2));width:max-content;z-index:var(--ape-z-index-modal);padding:20px;font-size:12px;font-weight:600;line-height:18px;position:relative;top:15px;box-shadow:0 0 30px #c8c8c866}.ape-tooltip-bottom-right:before,.ape-tooltip-bottom-left:before,.ape-tooltip-top-right:before,.ape-tooltip-top-left:before,.ape-tooltip-left:before{content:"";border:12px solid #0000;width:0;display:block;position:absolute}.ape-tooltip-bottom-right:before{border-top:0;border-bottom-style:solid;border-bottom-width:15px;border-bottom-color:var(--ape-tooltip-bg,var(--ape-color-white2));top:0;right:3%;transform:translate(-50%,-100%)}.ape-tooltip-bottom-left:before{border-top:0;border-bottom-style:solid;border-bottom-width:15px;border-bottom-color:var(--ape-tooltip-bg,var(--ape-color-white2));top:0;left:calc(3% + 15px);transform:translate(-50%,-100%)}.ape-tooltip-top-right:before{border-top-style:solid;border-top-width:15px;border-bottom:0;border-top-color:var(--ape-tooltip-bg,var(--ape-color-white2));bottom:0;right:3%;transform:translate(-50%,100%)}.ape-tooltip-top-left:before{border-top-style:solid;border-top-width:15px;border-bottom:0;border-top-color:var(--ape-tooltip-bg,var(--ape-color-white2));bottom:0;left:calc(3% + 15px);transform:translate(-50%,100%)}.ape-tooltip-only-container-right:before{content:"";border-bottom-color:var(--ape-tooltip-bg,var(--ape-color-white2));position:absolute;right:3%}.ape-tooltip-left:before{color:var(--ape-color-white2);border-right:15px solid;top:65%;left:-13px;transform:translate(-50%,-100%)}@keyframes ape-skeleton-waves{0%{left:-150px}to{left:100%}}@keyframes ape-skeleton-pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.ape-skeleton-waves{background-color:var(--ape-color-white2);min-height:16px;display:block;position:relative;overflow:hidden;transform:translate(0)}.ape-skeleton-waves:before{content:"";background-image:linear-gradient(90deg,#0000,#f3f3f34d,#0000);width:250px;height:100%;animation:1.5s cubic-bezier(.4,0,.2,1) infinite ape-skeleton-waves;position:absolute;top:0;left:-150px}.ape-skeleton-pulse{background-color:var(--ape-color-white2);border-radius:2px;min-height:20px;animation:2s ease-out infinite ape-skeleton-pulse;display:block;transform:translate(0)}}@layer utilities{.ape\:pointer-events-none{pointer-events:none}.ape\:absolute{position:absolute}.ape\:fixed{position:fixed}.ape\:relative{position:relative}.ape\:inset-0{inset:0}.ape\:-top-\[15px\]{top:-15px}.ape\:top-0{top:0}.ape\:top-1\/2{top:50%}.ape\:top-\[-180px\]{top:-180px}.ape\:top-\[5px\]{top:5px}.ape\:top-\[12px\]{top:12px}.ape\:top-\[24px\]{top:24px}.ape\:top-\[25px\]{top:25px}.ape\:top-\[45px\]{top:45px}.ape\:top-\[50px\]{top:50px}.ape\:top-\[56\%\]{top:56%}.ape\:right-0{right:0}.ape\:right-3{right:calc(var(--ape-spacing) * 3)}.ape\:right-\[5px\]{right:5px}.ape\:right-\[6px\]{right:6px}.ape\:right-\[10px\]{right:10px}.ape\:right-\[50\%\]{right:50%}.ape\:bottom-0{bottom:0}.ape\:bottom-\[-43px\]{bottom:-43px}.ape\:bottom-\[3px\]{bottom:3px}.ape\:bottom-\[calc\(100\%-10px\)\]{bottom:calc(100% - 10px)}.ape\:bottom-\[unset\]{bottom:unset}.ape\:left-0{left:0}.ape\:left-1\/2{left:50%}.ape\:left-\[-20px\]{left:-20px}.ape\:left-\[-50px\]{left:-50px}.ape\:left-\[1px\]{left:1px}.ape\:left-\[25\%\]{left:25%}.ape\:left-\[40px\]{left:40px}.ape\:left-\[65\%\]{left:65%}.ape\:-z-\[1\]{z-index:calc(1 * -1)}.ape\:z-0{z-index:0}.ape\:z-10{z-index:10}.ape\:z-100{z-index:100}.ape\:z-\[1\]{z-index:1}.ape\:z-\[2\]{z-index:2}.ape\:z-\[5\]{z-index:5}.ape\:z-\[20\]{z-index:20}.ape\:z-\[100\]{z-index:100}.ape\:z-\[103\]{z-index:103}.ape\:z-\[121\]{z-index:121}.ape\:z-\[999\]{z-index:999}.ape\:z-\[1000\]{z-index:1000}.ape\:z-\[1001\]{z-index:1001}.ape\:z-\[5000\]{z-index:5000}.ape\:float-left{float:left}.ape\:m-0{margin:0}.ape\:m-\[0_5px_5px_0\]{margin:0 5px 5px 0}.ape\:m-\[10px_0px_15px_0px\]{margin:10px 0 15px}.ape\:m-auto{margin:auto}.ape\:mx-\[-5px\]{margin-inline:-5px}.ape\:mx-\[-8px\]{margin-inline:-8px}.ape\:mx-\[2\.5px\]{margin-inline:2.5px}.ape\:mx-\[2px\]{margin-inline:2px}.ape\:mx-\[3px\]{margin-inline:3px}.ape\:mx-\[5px\]{margin-inline:5px}.ape\:mx-\[8px\]{margin-inline:8px}.ape\:mx-\[10px\]{margin-inline:10px}.ape\:mx-\[20px\]{margin-inline:20px}.ape\:mx-\[25px\]{margin-inline:25px}.ape\:my-\[2px\]{margin-block:2px}.ape\:my-\[5px\]{margin-block:5px}.ape\:my-\[10px\]{margin-block:10px}.ape\:my-\[15px\]{margin-block:15px}.ape\:my-\[20px\]{margin-block:20px}.ape\:mt-0{margin-top:0}.ape\:mt-0\.75{margin-top:calc(var(--ape-spacing) * .75)}.ape\:mt-2\.5{margin-top:calc(var(--ape-spacing) * 2.5)}.ape\:mt-4{margin-top:calc(var(--ape-spacing) * 4)}.ape\:mt-\[-15px\]{margin-top:-15px}.ape\:mt-\[3px\]{margin-top:3px}.ape\:mt-\[5px\]{margin-top:5px}.ape\:mt-\[10px\]{margin-top:10px}.ape\:mt-\[15px\]{margin-top:15px}.ape\:mt-\[20px\]{margin-top:20px}.ape\:mt-\[25px\]{margin-top:25px}.ape\:mt-\[30px\]{margin-top:30px}.ape\:mt-\[35px\]{margin-top:35px}.ape\:mt-\[40px\]{margin-top:40px}.ape\:mt-px{margin-top:1px}.ape\:mr-0{margin-right:0}.ape\:mr-1\.25{margin-right:calc(var(--ape-spacing) * 1.25)}.ape\:mr-\[3px\]{margin-right:3px}.ape\:mr-\[4px\]{margin-right:4px}.ape\:mr-\[5px\]{margin-right:5px}.ape\:mr-\[6px\]{margin-right:6px}.ape\:mr-\[8px\]{margin-right:8px}.ape\:mr-\[10px\]{margin-right:10px}.ape\:mr-\[15px\]{margin-right:15px}.ape\:mr-\[20px\]{margin-right:20px}.ape\:mb-1\.25{margin-bottom:calc(var(--ape-spacing) * 1.25)}.ape\:mb-2\.5{margin-bottom:calc(var(--ape-spacing) * 2.5)}.ape\:mb-5{margin-bottom:calc(var(--ape-spacing) * 5)}.ape\:mb-\[1px\]{margin-bottom:1px}.ape\:mb-\[3px\]{margin-bottom:3px}.ape\:mb-\[5px\]{margin-bottom:5px}.ape\:mb-\[8px\]{margin-bottom:8px}.ape\:mb-\[10px\]{margin-bottom:10px}.ape\:mb-\[14px\]{margin-bottom:14px}.ape\:mb-\[15px\]{margin-bottom:15px}.ape\:mb-\[20px\]{margin-bottom:20px}.ape\:mb-\[30px\]{margin-bottom:30px}.ape\:mb-\[50px\]{margin-bottom:50px}.ape\:ml-0{margin-left:0}.ape\:ml-1{margin-left:var(--ape-spacing)}.ape\:ml-3\.5{margin-left:calc(var(--ape-spacing) * 3.5)}.ape\:ml-3\.75{margin-left:calc(var(--ape-spacing) * 3.75)}.ape\:ml-\[3px\]{margin-left:3px}.ape\:ml-\[4px\]{margin-left:4px}.ape\:ml-\[5px\]{margin-left:5px}.ape\:ml-\[6px\]{margin-left:6px}.ape\:ml-\[7px\]{margin-left:7px}.ape\:ml-\[10px\]{margin-left:10px}.ape\:ml-\[15px\]{margin-left:15px}.ape\:ml-\[20px\]{margin-left:20px}.ape\:ml-\[30px\]{margin-left:30px}.ape\:line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ape\:block{display:block}.ape\:block\!{display:block!important}.ape\:flex{display:flex}.ape\:hidden{display:none}.ape\:hidden\!{display:none!important}.ape\:inline-flex{display:inline-flex}.ape\:aspect-\[1\/0\.56\]{aspect-ratio:1/.56}.ape\:size-full{width:100%;height:100%}.ape\:h-7\.5{height:calc(var(--ape-spacing) * 7.5)}.ape\:h-10{height:calc(var(--ape-spacing) * 10)}.ape\:h-11\.25{height:calc(var(--ape-spacing) * 11.25)}.ape\:h-\[2px\]{height:2px}.ape\:h-\[3px\]{height:3px}.ape\:h-\[5px\]{height:5px}.ape\:h-\[14px\]{height:14px}.ape\:h-\[15px\]{height:15px}.ape\:h-\[18px\]{height:18px}.ape\:h-\[20px\]{height:20px}.ape\:h-\[21px\]{height:21px}.ape\:h-\[22px\]{height:22px}.ape\:h-\[24px\]{height:24px}.ape\:h-\[25px\]{height:25px}.ape\:h-\[26px\]{height:26px}.ape\:h-\[30px\]{height:30px}.ape\:h-\[30vh\]{height:30vh}.ape\:h-\[31px\]{height:31px}.ape\:h-\[32px\]{height:32px}.ape\:h-\[34px\]{height:34px}.ape\:h-\[35px\]{height:35px}.ape\:h-\[36px\]{height:36px}.ape\:h-\[36px\]\!{height:36px!important}.ape\:h-\[40px\]{height:40px}.ape\:h-\[45px\]{height:45px}.ape\:h-\[49px\]{height:49px}.ape\:h-\[60px\]{height:60px}.ape\:h-\[70px\]{height:70px}.ape\:h-\[75px\]{height:75px}.ape\:h-\[84px\]{height:84px}.ape\:h-\[91px\]{height:91px}.ape\:h-\[125px\]{height:125px}.ape\:h-\[300px\]{height:300px}.ape\:h-\[400px\]{height:400px}.ape\:h-\[calc\(100\%\+20px\)\]{height:calc(100% + 20px)}.ape\:h-\[calc\(100\%-150px\)\]{height:calc(100% - 150px)}.ape\:h-\[unset\]{height:unset}.ape\:h-auto{height:auto}.ape\:h-fit{height:fit-content}.ape\:h-full{height:100%}.ape\:h-px{height:1px}.ape\:h-screen{height:100vh}.ape\:max-h-\[32px\]{max-height:32px}.ape\:max-h-\[48px\]{max-height:48px}.ape\:max-h-\[95vh\]{max-height:95vh}.ape\:max-h-\[300px\]{max-height:300px}.ape\:max-h-none{max-height:none}.ape\:min-h-4{min-height:calc(var(--ape-spacing) * 4)}.ape\:min-h-23{min-height:calc(var(--ape-spacing) * 23)}.ape\:min-h-\[27px\]{min-height:27px}.ape\:min-h-\[30px\]{min-height:30px}.ape\:min-h-\[40px\]{min-height:40px}.ape\:min-h-\[47\.45px\]{min-height:47.45px}.ape\:min-h-\[90px\]{min-height:90px}.ape\:min-h-\[160px\]{min-height:160px}.ape\:min-h-\[225px\]{min-height:225px}.ape\:min-h-\[330px\]{min-height:330px}.ape\:w-1\/2{width:50%}.ape\:w-1\/5{width:20%}.ape\:w-43\.75{width:calc(var(--ape-spacing) * 43.75)}.ape\:w-85{width:calc(var(--ape-spacing) * 85)}.ape\:w-95{width:calc(var(--ape-spacing) * 95)}.ape\:w-\[6px\]{width:6px}.ape\:w-\[8px\]{width:8px}.ape\:w-\[14px\]{width:14px}.ape\:w-\[15px\]{width:15px}.ape\:w-\[20px\]{width:20px}.ape\:w-\[25px\]{width:25px}.ape\:w-\[30px\]{width:30px}.ape\:w-\[32\%\]{width:32%}.ape\:w-\[34\%\]{width:34%}.ape\:w-\[35px\]{width:35px}.ape\:w-\[36\%\]{width:36%}.ape\:w-\[40px\]{width:40px}.ape\:w-\[45\%\]{width:45%}.ape\:w-\[49\%\]{width:49%}.ape\:w-\[50px\]{width:50px}.ape\:w-\[55px\]{width:55px}.ape\:w-\[60px\]{width:60px}.ape\:w-\[65\%\]{width:65%}.ape\:w-\[75\%\]{width:75%}.ape\:w-\[85px\]{width:85px}.ape\:w-\[98vw\]{width:98vw}.ape\:w-\[100px\]{width:100px}.ape\:w-\[110px\]{width:110px}.ape\:w-\[115px\]{width:115px}.ape\:w-\[120px\]{width:120px}.ape\:w-\[122px\]{width:122px}.ape\:w-\[125px\]{width:125px}.ape\:w-\[127px\]{width:127px}.ape\:w-\[130px\]{width:130px}.ape\:w-\[135px\]{width:135px}.ape\:w-\[144px\]{width:144px}.ape\:w-\[155px\]{width:155px}.ape\:w-\[160px\]{width:160px}.ape\:w-\[170px\]{width:170px}.ape\:w-\[175px\]{width:175px}.ape\:w-\[190px\]{width:190px}.ape\:w-\[210px\]{width:210px}.ape\:w-\[220px\]{width:220px}.ape\:w-\[235px\]{width:235px}.ape\:w-\[300px\]{width:300px}.ape\:w-\[380px\]{width:380px}.ape\:w-\[380px\]\!{width:380px!important}.ape\:w-\[400px\]{width:400px}.ape\:w-\[420px\]{width:420px}.ape\:w-\[450px\]{width:450px}.ape\:w-\[480px\]{width:480px}.ape\:w-\[740px\]\!{width:740px!important}.ape\:w-\[calc\(33\.33\%-20px\)\]{width:calc(33.33% - 20px)}.ape\:w-\[calc\(50vw-25px\)\]{width:calc(50vw - 25px)}.ape\:w-\[calc\(100\%\+40px\)\]{width:calc(100% + 40px)}.ape\:w-\[calc\(100\%-2px\)\]{width:calc(100% - 2px)}.ape\:w-auto{width:auto}.ape\:w-fit{width:fit-content}.ape\:w-full{width:100%}.ape\:w-max{width:max-content}.ape\:w-screen{width:100vw}.ape\:max-w-75{max-width:calc(var(--ape-spacing) * 75)}.ape\:max-w-85{max-width:calc(var(--ape-spacing) * 85)}.ape\:max-w-\[95vw\]{max-width:95vw}.ape\:max-w-\[100px\]{max-width:100px}.ape\:max-w-\[300px\]{max-width:300px}.ape\:max-w-\[1150px\]{max-width:1150px}.ape\:max-w-full{max-width:100%}.ape\:min-w-\[10px\]{min-width:10px}.ape\:min-w-\[14px\]{min-width:14px}.ape\:min-w-\[20px\]{min-width:20px}.ape\:min-w-\[25px\]{min-width:25px}.ape\:min-w-\[30px\]{min-width:30px}.ape\:min-w-\[33px\]{min-width:33px}.ape\:min-w-\[40px\]{min-width:40px}.ape\:min-w-\[48px\]{min-width:48px}.ape\:min-w-\[65px\]{min-width:65px}.ape\:min-w-\[100px\]{min-width:100px}.ape\:min-w-\[120px\]{min-width:120px}.ape\:min-w-\[148px\]{min-width:148px}.ape\:min-w-\[250px\]{min-width:250px}.ape\:min-w-\[450px\]{min-width:450px}.ape\:min-w-\[700px\]{min-width:700px}.ape\:min-w-\[unset\]{min-width:unset}.ape\:min-w-full{min-width:100%}.ape\:\[flex\:0_0_100\%\]{flex:0 0 100%}.ape\:flex-1{flex:1}.ape\:shrink-0{flex-shrink:0}.ape\:-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:translate-x-1\/2{--tw-translate-x:calc(1 / 2 * 100%);translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:translate-x-\[50\%\]{--tw-translate-x:50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:scale-\[0\.5\]{scale:.5}.ape\:rotate-\[-45deg\]{rotate:-45deg}.ape\:cursor-\[unset\]{cursor:unset}.ape\:cursor-pointer{cursor:pointer}.ape\:snap-center{scroll-snap-align:center}.ape\:list-none{list-style-type:none}.ape\:appearance-none{appearance:none}.ape\:flex-col{flex-direction:column}.ape\:flex-col-reverse{flex-direction:column-reverse}.ape\:flex-row{flex-direction:row}.ape\:flex-row-reverse{flex-direction:row-reverse}.ape\:flex-wrap{flex-wrap:wrap}.ape\:items-center{align-items:center}.ape\:items-end{align-items:flex-end}.ape\:items-start{align-items:flex-start}.ape\:items-stretch{align-items:stretch}.ape\:justify-around{justify-content:space-around}.ape\:justify-between{justify-content:space-between}.ape\:justify-center{justify-content:center}.ape\:justify-end{justify-content:flex-end}.ape\:justify-start{justify-content:flex-start}.ape\:gap-2\.5{gap:calc(var(--ape-spacing) * 2.5)}.ape\:gap-\[1px\]{gap:1px}.ape\:gap-\[3px\]{gap:3px}.ape\:gap-\[4px\]{gap:4px}.ape\:gap-\[5px\]{gap:5px}.ape\:gap-\[7px\]{gap:7px}.ape\:gap-\[8px\]{gap:8px}.ape\:gap-\[10px\]{gap:10px}.ape\:gap-\[14px\]{gap:14px}.ape\:gap-\[15px\]{gap:15px}.ape\:gap-\[20px\]{gap:20px}.ape\:overflow-hidden{overflow:hidden}.ape\:overflow-x-auto{overflow-x:auto}.ape\:overflow-x-hidden{overflow-x:hidden}.ape\:overflow-x-visible{overflow-x:visible}.ape\:\[overflow-y\:unset\]\!{overflow-y:unset!important}.ape\:overflow-y-auto{overflow-y:auto}.ape\:overflow-y-hidden{overflow-y:hidden}.ape\:overflow-y-scroll{overflow-y:scroll}.ape\:rounded-\[0_0_10px_10px\],.ape\:rounded-\[0px_0px_10px_10px\]{border-radius:0 0 10px 10px}.ape\:rounded-\[0px_10px_10px_0px\]{border-radius:0 10px 10px 0}.ape\:rounded-\[4px\]{border-radius:4px}.ape\:rounded-\[5px\]{border-radius:5px}.ape\:rounded-\[6px\]{border-radius:6px}.ape\:rounded-\[6px_6px_0px_0px\]{border-radius:6px 6px 0 0}.ape\:rounded-\[8px\]{border-radius:8px}.ape\:rounded-\[10px\]{border-radius:10px}.ape\:rounded-\[10px_0px_10px_0px\]{border-radius:10px 0}.ape\:rounded-\[10px_10px_0_0\],.ape\:rounded-\[10px_10px_0px_0px\]{border-radius:10px 10px 0 0}.ape\:rounded-\[14px\]{border-radius:14px}.ape\:rounded-\[40px\]{border-radius:40px}.ape\:rounded-\[50\%\]{border-radius:50%}.ape\:rounded-\[50px\]{border-radius:50px}.ape\:rounded-full{border-radius:3.40282e38px}.ape\:rounded-none{border-radius:0}.ape\:rounded-normal{border-radius:var(--ape-radius-normal)}.ape\:rounded-small{border-radius:var(--ape-radius-small)}.ape\:rounded-tl-\[10px\]{border-top-left-radius:10px}.ape\:rounded-br-\[8px\]{border-bottom-right-radius:8px}.ape\:border{border-style:var(--tw-border-style);border-width:1px}.ape\:border-0{border-style:var(--tw-border-style);border-width:0}.ape\:border-2{border-style:var(--tw-border-style);border-width:2px}.ape\:border-\[3px\]{border-style:var(--tw-border-style);border-width:3px}.ape\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ape\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ape\:border-none{--tw-border-style:none;border-style:none}.ape\:border-solid{--tw-border-style:solid;border-style:solid}.ape\:border-\[\#9960C5\]{border-color:#9960c5}.ape\:border-\[\#222222\]{border-color:#222}.ape\:border-\[grey\]{border-color:gray}.ape\:border-primary-button{border-color:var(--ape-color-primary-button)}.ape\:border-success{border-color:var(--ape-color-success)}.ape\:border-text{border-color:var(--ape-color-text)}.ape\:border-white2{border-color:var(--ape-color-white2)}.ape\:border-white3{border-color:var(--ape-color-white3)}.ape\:border-white4{border-color:var(--ape-color-white4)}.ape\:bg-\[\#38A6110D\]{background-color:#38a6110d}.ape\:bg-\[\#9960C5\]{background-color:#9960c5}.ape\:bg-\[\#DE62F366\]{background-color:#de62f366}.ape\:bg-\[grey\]{background-color:gray}.ape\:bg-modal-overlay{background-color:var(--ape-color-modal-overlay)}.ape\:bg-primary-button{background-color:var(--ape-color-primary-button)}.ape\:bg-text{background-color:var(--ape-color-text)}.ape\:bg-text-disabled{background-color:var(--ape-color-text-disabled)}.ape\:bg-transparent{background-color:#0000}.ape\:bg-transparent\!{background-color:#0000!important}.ape\:bg-white{background-color:var(--ape-color-white)}.ape\:bg-white1{background-color:var(--ape-color-white1)}.ape\:bg-white2{background-color:var(--ape-color-white2)}.ape\:bg-white2\!{background-color:var(--ape-color-white2)!important}.ape\:bg-white3{background-color:var(--ape-color-white3)}.ape\:bg-white4{background-color:var(--ape-color-white4)}.ape\:bg-\[image\:var\(--ape-gradient-abond\)\]{background-image:var(--ape-gradient-abond)}.ape\:bg-\[image\:var\(--banner-bg-mobile\)\]{background-image:var(--banner-bg-mobile)}.ape\:bg-\[linear-gradient\(180deg\,\#FFFFFF_50\%\,\#666666_100\%\)\]{background-image:linear-gradient(#fff 50%,#666 100%)}.ape\:bg-cover{background-size:cover}.ape\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.ape\:bg-no-repeat{background-repeat:no-repeat}.ape\:object-contain{object-fit:contain}.ape\:object-cover{object-fit:cover}.ape\:p-0{padding:0}.ape\:p-0\!{padding:0!important}.ape\:p-2{padding:calc(var(--ape-spacing) * 2)}.ape\:p-2\.5{padding:calc(var(--ape-spacing) * 2.5)}.ape\:p-3{padding:calc(var(--ape-spacing) * 3)}.ape\:p-3\.75{padding:calc(var(--ape-spacing) * 3.75)}.ape\:p-5{padding:calc(var(--ape-spacing) * 5)}.ape\:p-\[0_1px\]{padding:0 1px}.ape\:p-\[0_20px_20px_20px\]{padding:0 20px 20px}.ape\:p-\[0px_8px\]\!{padding:0 8px!important}.ape\:p-\[2\.5px_5px\]{padding:2.5px 5px}.ape\:p-\[2px\]{padding:2px}.ape\:p-\[2px_5px\]{padding:2px 5px}.ape\:p-\[2px_6px\]{padding:2px 6px}.ape\:p-\[2px_8px\]{padding:2px 8px}.ape\:p-\[2px_10px\]{padding:2px 10px}.ape\:p-\[2px_10px_2px_5px\]{padding:2px 10px 2px 5px}.ape\:p-\[3px_6px\]{padding:3px 6px}.ape\:p-\[4px_2px\]{padding:4px 2px}.ape\:p-\[4px_6px\]{padding:4px 6px}.ape\:p-\[4px_10px\]{padding:4px 10px}.ape\:p-\[5px\]{padding:5px}.ape\:p-\[5px_10px\]{padding:5px 10px}.ape\:p-\[5px_15px\]{padding:5px 15px}.ape\:p-\[5px_20px\]{padding:5px 20px}.ape\:p-\[6px\]{padding:6px}.ape\:p-\[6px_12px\]{padding:6px 12px}.ape\:p-\[8px\]{padding:8px}.ape\:p-\[8px_4px_4px_4px\]{padding:8px 4px 4px}.ape\:p-\[8px_10px\]{padding:8px 10px}.ape\:p-\[8px_12px\]{padding:8px 12px}.ape\:p-\[8px_16px\]{padding:8px 16px}.ape\:p-\[10px\]{padding:10px}.ape\:p-\[15px\]{padding:15px}.ape\:p-\[16px\]{padding:16px}.ape\:p-\[20px\]{padding:20px}.ape\:p-\[20px_20px_0_20px\]{padding:20px 20px 0}.ape\:p-px{padding:1px}.ape\:px-2\.5{padding-inline:calc(var(--ape-spacing) * 2.5)}.ape\:px-\[3px\]{padding-inline:3px}.ape\:px-\[4px\]{padding-inline:4px}.ape\:px-\[5px\]{padding-inline:5px}.ape\:px-\[6px\]{padding-inline:6px}.ape\:px-\[8px\]{padding-inline:8px}.ape\:px-\[10px\]{padding-inline:10px}.ape\:px-\[14px\]{padding-inline:14px}.ape\:px-\[15px\]{padding-inline:15px}.ape\:px-\[19px\]{padding-inline:19px}.ape\:py-2\.5{padding-block:calc(var(--ape-spacing) * 2.5)}.ape\:py-\[2px\]{padding-block:2px}.ape\:py-\[3px\]{padding-block:3px}.ape\:py-\[5px\]{padding-block:5px}.ape\:py-\[6px\]{padding-block:6px}.ape\:py-\[10px\]{padding-block:10px}.ape\:py-\[14px\]{padding-block:14px}.ape\:pt-1\.25{padding-top:calc(var(--ape-spacing) * 1.25)}.ape\:pt-\[2px\]{padding-top:2px}.ape\:pt-\[3px\]{padding-top:3px}.ape\:pt-\[5px\]{padding-top:5px}.ape\:pt-\[10px\]{padding-top:10px}.ape\:pt-\[15px\]{padding-top:15px}.ape\:pt-\[20px\]{padding-top:20px}.ape\:pt-\[100px\]{padding-top:100px}.ape\:pr-0{padding-right:0}.ape\:pr-1\.25{padding-right:calc(var(--ape-spacing) * 1.25)}.ape\:pr-\[4px\]{padding-right:4px}.ape\:pr-\[14px\]{padding-right:14px}.ape\:pr-\[15px\]{padding-right:15px}.ape\:pr-\[20px\]{padding-right:20px}.ape\:pr-\[23px\]{padding-right:23px}.ape\:pb-\[2px\]{padding-bottom:2px}.ape\:pb-\[10px\]{padding-bottom:10px}.ape\:pb-\[20px\]{padding-bottom:20px}.ape\:pb-\[100px\]{padding-bottom:100px}.ape\:pl-0{padding-left:0}.ape\:pl-0\!{padding-left:0!important}.ape\:pl-1\.25{padding-left:calc(var(--ape-spacing) * 1.25)}.ape\:pl-\[5px\]{padding-left:5px}.ape\:pl-\[10px\]{padding-left:10px}.ape\:pl-\[15px\]{padding-left:15px}.ape\:pl-\[20px\]{padding-left:20px}.ape\:pl-\[26px\]{padding-left:26px}.ape\:pl-\[35px\]{padding-left:35px}.ape\:text-center{text-align:center}.ape\:text-left{text-align:left}.ape\:align-middle{vertical-align:middle}.ape\:align-sub{vertical-align:sub}.ape\:font-body{font-family:var(--ape-font-body)}.ape\:text-base{font-size:var(--ape-text-base);line-height:var(--tw-leading,var(--ape-text-base--line-height))}.ape\:text-\[10px\]{font-size:10px}.ape\:text-\[10px\]\!{font-size:10px!important}.ape\:text-\[11px\]{font-size:11px}.ape\:text-\[12px\]{font-size:12px}.ape\:text-\[12px\]\!{font-size:12px!important}.ape\:text-\[13px\]{font-size:13px}.ape\:text-\[13px\]\!{font-size:13px!important}.ape\:text-\[14\.26px\]{font-size:14.26px}.ape\:text-\[14px\]{font-size:14px}.ape\:text-\[14px\]\!{font-size:14px!important}.ape\:text-\[16px\]{font-size:16px}.ape\:text-\[18px\]{font-size:18px}.ape\:text-\[18px\]\!{font-size:18px!important}.ape\:text-\[20px\]{font-size:20px}.ape\:text-\[22px\]{font-size:22px}.ape\:text-\[24px\]{font-size:24px}.ape\:text-\[24px\]\!{font-size:24px!important}.ape\:text-\[25\.26px\]{font-size:25.26px}.ape\:text-\[32px\]{font-size:32px}.ape\:leading-4{--tw-leading:calc(var(--ape-spacing) * 4);line-height:calc(var(--ape-spacing) * 4)}.ape\:leading-4\!{--tw-leading:calc(var(--ape-spacing) * 4)!important;line-height:calc(var(--ape-spacing) * 4)!important}.ape\:leading-5{--tw-leading:calc(var(--ape-spacing) * 5);line-height:calc(var(--ape-spacing) * 5)}.ape\:leading-5\.5\!{--tw-leading:calc(var(--ape-spacing) * 5.5)!important;line-height:calc(var(--ape-spacing) * 5.5)!important}.ape\:leading-\[11px\]{--tw-leading:11px;line-height:11px}.ape\:leading-\[12px\]{--tw-leading:12px;line-height:12px}.ape\:leading-\[13px\]{--tw-leading:13px;line-height:13px}.ape\:leading-\[14px\]{--tw-leading:14px;line-height:14px}.ape\:leading-\[15px\]{--tw-leading:15px;line-height:15px}.ape\:leading-\[18px\]{--tw-leading:18px;line-height:18px}.ape\:leading-\[18px\]\!{--tw-leading:18px!important;line-height:18px!important}.ape\:leading-\[21px\]{--tw-leading:21px;line-height:21px}.ape\:leading-\[22px\]{--tw-leading:22px;line-height:22px}.ape\:leading-\[24px\]{--tw-leading:24px;line-height:24px}.ape\:leading-\[28px\]{--tw-leading:28px;line-height:28px}.ape\:leading-\[30\.26px\]{--tw-leading:30.26px;line-height:30.26px}.ape\:leading-\[33px\]{--tw-leading:33px;line-height:33px}.ape\:font-bold{--tw-font-weight:var(--ape-font-weight-bold);font-weight:var(--ape-font-weight-bold)}.ape\:font-light{--tw-font-weight:var(--ape-font-weight-light);font-weight:var(--ape-font-weight-light)}.ape\:font-medium{--tw-font-weight:var(--ape-font-weight-medium);font-weight:var(--ape-font-weight-medium)}.ape\:font-normal{--tw-font-weight:var(--ape-font-weight-normal);font-weight:var(--ape-font-weight-normal)}.ape\:font-semibold{--tw-font-weight:var(--ape-font-weight-semibold);font-weight:var(--ape-font-weight-semibold)}.ape\:tracking-\[0\]{--tw-tracking:0;letter-spacing:0}.ape\:text-ellipsis{text-overflow:ellipsis}.ape\:whitespace-nowrap{white-space:nowrap}.ape\:text-\[\#777\]{color:#777}.ape\:text-error{color:var(--ape-color-error)}.ape\:text-primary-bright{color:var(--ape-color-primary-bright)}.ape\:text-primary-button{color:var(--ape-color-primary-button)}.ape\:text-primary-button-disable{color:var(--ape-color-primary-button-disable)}.ape\:text-success{color:var(--ape-color-success)}.ape\:text-text{color:var(--ape-color-text)}.ape\:text-text-disabled{color:var(--ape-color-text-disabled)}.ape\:text-text-disabled-button{color:var(--ape-color-text-disabled-button)}.ape\:text-transparent{color:#0000}.ape\:text-white{color:var(--ape-color-white)}.ape\:capitalize{text-transform:capitalize}.ape\:normal-case{text-transform:none}.ape\:uppercase{text-transform:uppercase}.ape\:line-through{text-decoration-line:line-through}.ape\:no-underline{text-decoration-line:none}.ape\:underline{text-decoration-line:underline}.ape\:opacity-0{opacity:0}.ape\:opacity-20{opacity:.2}.ape\:opacity-50{opacity:.5}.ape\:opacity-60{opacity:.6}.ape\:opacity-70{opacity:.7}.ape\:opacity-80{opacity:.8}.ape\:opacity-90{opacity:.9}.ape\:shadow-\[0px_1px_4px_rgb\(0_0_0\/0\.16\)\]{--tw-shadow:0px 1px 4px var(--tw-shadow-color,#00000029);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ape\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ape\:shadow-\[rgba\(0\,0\,0\,0\.16\)_0px_1px_4px\]{--tw-shadow-color:#00000029}@supports (color:color-mix(in lab, red, red)){.ape\:shadow-\[rgba\(0\,0\,0\,0\.16\)_0px_1px_4px\]{--tw-shadow-color:color-mix(in oklab, #00000029 0px 1px 4px var(--tw-shadow-alpha), transparent)}}.ape\:blur-\[1px\]{--tw-blur:blur(1px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.ape\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ape-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ape-default-transition-duration))}.ape\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ape-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ape-default-transition-duration))}.ape\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--ape-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ape-default-transition-duration))}.ape\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ape\:duration-500{--tw-duration:.5s;transition-duration:.5s}.ape\:duration-1000{--tw-duration:1s;transition-duration:1s}.ape\:duration-\[1500ms\]{--tw-duration:1.5s;transition-duration:1.5s}.ape\:ease-\[ease\]{--tw-ease:ease;transition-timing-function:ease}.ape\:ease-in-out{--tw-ease:var(--ape-ease-in-out);transition-timing-function:var(--ape-ease-in-out)}.ape\:ease-linear{--tw-ease:linear;transition-timing-function:linear}.ape\:ease-out{--tw-ease:var(--ape-ease-out);transition-timing-function:var(--ape-ease-out)}.ape\:outline-none{--tw-outline-style:none;outline-style:none}.ape\:select-none{-webkit-user-select:none;user-select:none}.ape\:\[-webkit-text-fill-color\:transparent\]{-webkit-text-fill-color:transparent}@media (hover:hover){.ape\:group-hover\:bg-\[rgb\(20_18_29_\/_0\.25\)\]\!:is(:where(.ape\:group):hover *){background-color:#14121d40!important}.ape\:group-hover\/tooltip\:block:is(:where(.ape\:group\/tooltip):hover *){display:block}}.ape\:peer-checked\:block:is(:where(.ape\:peer):checked~*){display:block}.ape\:first\:rounded-t-normal:first-child{border-top-left-radius:var(--ape-radius-normal);border-top-right-radius:var(--ape-radius-normal)}.ape\:last\:mr-0:last-child{margin-right:0}.ape\:last\:rounded-b-normal:last-child{border-bottom-right-radius:var(--ape-radius-normal);border-bottom-left-radius:var(--ape-radius-normal)}.ape\:checked\:border-primary-button:checked{border-color:var(--ape-color-primary-button)}.ape\:checked\:bg-primary-button:checked{background-color:var(--ape-color-primary-button)}@media (hover:hover){.ape\:hover\:z-\[1000\]:hover{z-index:1000}.ape\:hover\:cursor-pointer:hover{cursor:pointer}.ape\:hover\:bg-\[rgb\(20_18_29_\/_0\.36\)\]\!:hover{background-color:#14121d5c!important}.ape\:hover\:bg-white3:hover{background-color:var(--ape-color-white3)}.ape\:hover\:bg-white4:hover{background-color:var(--ape-color-white4)}.ape\:hover\:bg-white5:hover{background-color:var(--ape-color-white5)}.ape\:hover\:underline:hover{text-decoration-line:underline}.ape\:hover\:opacity-60:hover{opacity:.6}.ape\:hover\:opacity-80:hover{opacity:.8}.ape\:hover\:brightness-115:hover{--tw-brightness:brightness(115%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.ape\:hover\:\[backdrop-filter\:blur\(2px\)\]:hover{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ape\:hover\:\[background\:linear-gradient\(90deg\,rgba\(49\,46\,122\,0\.70\)_0\%\,rgba\(92\,79\,174\,0\.70\)_100\%\)\]:hover{background:linear-gradient(90deg,#312e7ab3 0%,#5c4faeb3 100%)}}.ape\:focus\:outline:focus,.ape\:focus\:outline-1:focus{outline-style:var(--tw-outline-style);outline-width:1px}.ape\:focus\:outline-primary-button:focus{outline-color:var(--ape-color-primary-button)}.ape\:focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.ape\:focus\:not-checked\:shadow-none:focus:not(:checked){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ape\:focus\:not-checked\:outline-none:focus:not(:checked){--tw-outline-style:none;outline-style:none}.ape\:active\:scale-90:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}@media (hover:hover){.ape\:enabled\:hover\:border-primary-button-hovered:enabled:hover{border-color:var(--ape-color-primary-button-hovered)}.ape\:enabled\:hover\:bg-primary-button:enabled:hover{background-color:var(--ape-color-primary-button)}.ape\:enabled\:hover\:bg-primary-button-hovered:enabled:hover{background-color:var(--ape-color-primary-button-hovered)}.ape\:enabled\:hover\:text-text:enabled:hover{color:var(--ape-color-text)}.ape\:enabled\:hover\:not-checked\:border-primary-button:enabled:hover:not(:checked){border-color:var(--ape-color-primary-button)}}.ape\:active\:enabled\:scale-90:active:enabled{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.ape\:disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.ape\:disabled\:border-transparent:disabled{border-color:#0000}.ape\:disabled\:bg-white3:disabled{background-color:var(--ape-color-white3)}.ape\:disabled\:text-primary-button-disable:disabled{color:var(--ape-color-primary-button-disable)}.ape\:disabled\:text-text-disabled-button:disabled{color:var(--ape-color-text-disabled-button)}.ape\:disabled\:opacity-90:disabled{opacity:.9}@media not all and (min-width:1000px){.ape\:max-\[1000px\]\:w-\[49\%\]{width:49%}}@media not all and (min-width:852px){.ape\:max-md\:mb-\[10px\]{margin-bottom:10px}}@media not all and (min-width:768px){.ape\:max-\[768px\]\:w-full{width:100%}}@media not all and (min-width:576px){.ape\:max-sm\:mb-\[10px\]{margin-bottom:10px}.ape\:max-sm\:w-1\/2{width:50%}.ape\:max-sm\:w-\[55\%\]{width:55%}.ape\:max-sm\:text-\[12px\]{font-size:12px}.ape\:max-sm\:text-\[18px\]{font-size:18px}.ape\:max-sm\:leading-\[14px\]{--tw-leading:14px;line-height:14px}.ape\:max-sm\:leading-\[21px\]{--tw-leading:21px;line-height:21px}}@media (min-width:513px){.ape\:min-\[513px\]\:justify-center{justify-content:center}.ape\:min-\[513px\]\:pl-0{padding-left:0}}@media (min-width:576px){.ape\:sm\:top-\[-240px\]{top:-240px}.ape\:sm\:ml-2{margin-left:calc(var(--ape-spacing) * 2)}.ape\:sm\:ml-5{margin-left:calc(var(--ape-spacing) * 5)}.ape\:sm\:max-w-\[190px\]{max-width:190px}.ape\:sm\:justify-start{justify-content:flex-start}.ape\:sm\:text-\[16px\]\!{font-size:16px!important}}@media (min-width:800px){.ape\:min-\[800px\]\:max-h-none{max-height:none}.ape\:min-\[800px\]\:w-\[350px\]{width:350px}.ape\:min-\[800px\]\:flex-col{flex-direction:column}.ape\:min-\[800px\]\:flex-row{flex-direction:row}.ape\:min-\[800px\]\:gap-\[5px\]{gap:5px}.ape\:min-\[800px\]\:p-\[12px\]{padding:12px}.ape\:min-\[800px\]\:p-\[20px\]{padding:20px}.ape\:min-\[800px\]\:pb-\[5px\]{padding-bottom:5px}@media not all and (min-width:1000px){.ape\:min-\[800px\]\:max-\[1000px\]\:bg-bottom{background-position:bottom}}}@media (min-width:852px){.ape\:md\:top-\[20px\]{top:20px}.ape\:md\:top-\[unset\]{top:unset}.ape\:md\:right-\[-13\%\]{right:-13%}.ape\:md\:right-\[-50px\]{right:-50px}.ape\:md\:-bottom-12\.5{bottom:calc(var(--ape-spacing) * -12.5)}.ape\:md\:bottom-\[-15px\]{bottom:-15px}.ape\:md\:bottom-\[unset\]{bottom:unset}.ape\:md\:mt-0{margin-top:0}.ape\:md\:mt-\[5px\]{margin-top:5px}.ape\:md\:mr-\[15px\]{margin-right:15px}.ape\:md\:mb-0{margin-bottom:0}.ape\:md\:ml-\[5px\]{margin-left:5px}.ape\:md\:block{display:block}.ape\:md\:flex{display:flex}.ape\:md\:flex\!{display:flex!important}.ape\:md\:hidden{display:none}.ape\:md\:h-\[200px\]{height:200px}.ape\:md\:h-\[225px\]{height:225px}.ape\:md\:max-h-\[350px\]{max-height:350px}.ape\:md\:min-h-\[430px\]{min-height:430px}.ape\:md\:w-1\/2{width:50%}.ape\:md\:w-87\.5{width:calc(var(--ape-spacing) * 87.5)}.ape\:md\:w-175{width:calc(var(--ape-spacing) * 175)}.ape\:md\:w-\[35\%\]{width:35%}.ape\:md\:w-\[150px\]{width:150px}.ape\:md\:w-\[180px\]{width:180px}.ape\:md\:w-\[200px\]{width:200px}.ape\:md\:w-\[225px\]{width:225px}.ape\:md\:w-\[300px\]{width:300px}.ape\:md\:w-\[calc\(100\%-300px\)\]{width:calc(100% - 300px)}.ape\:md\:w-\[unset\]{width:unset}.ape\:md\:w-full{width:100%}.ape\:md\:-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:md\:translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:md\:-translate-y-3\/4{--tw-translate-y:calc(calc(3 / 4 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:md\:scale-\[0\.4\]{scale:.4}.ape\:md\:flex-col{flex-direction:column}.ape\:md\:flex-row,.ape\:min-md\:flex-row{flex-direction:row}.ape\:md\:justify-end{justify-content:flex-end}.ape\:md\:gap-\[15px\]{gap:15px}.ape\:min-md\:gap-\[5px\]{gap:5px}.ape\:md\:rounded-\[20px\]{border-radius:20px}.ape\:md\:rounded-normal{border-radius:var(--ape-radius-normal)}.ape\:md\:p-3{padding:calc(var(--ape-spacing) * 3)}.ape\:md\:p-5{padding:calc(var(--ape-spacing) * 5)}.ape\:md\:p-\[4px_10px\]{padding:4px 10px}.ape\:md\:p-\[20px\]{padding:20px}.ape\:md\:pr-\[20px\]{padding-right:20px}.ape\:md\:pb-1\.25{padding-bottom:calc(var(--ape-spacing) * 1.25)}.ape\:min-md\:pb-\[5px\]{padding-bottom:5px}.ape\:md\:pl-\[20px\]{padding-left:20px}.ape\:md\:text-\[12px\]\!{font-size:12px!important}.ape\:md\:text-\[14px\]{font-size:14px}.ape\:md\:text-\[14px\]\!{font-size:14px!important}.ape\:md\:text-\[16px\]{font-size:16px}.ape\:md\:text-\[18px\]{font-size:18px}.ape\:md\:text-\[20px\]{font-size:20px}.ape\:md\:text-\[24px\]{font-size:24px}.ape\:min-md\:text-\[16px\]{font-size:16px}.ape\:md\:leading-\[21px\]\!{--tw-leading:21px!important;line-height:21px!important}.ape\:md\:font-bold{--tw-font-weight:var(--ape-font-weight-bold);font-weight:var(--ape-font-weight-bold)}@media (hover:hover){.ape\:md\:hover\:z-\[1000\]\!:hover{z-index:1000!important}}}@media (min-width:968px){.ape\:lg\:mt-0{margin-top:0}.ape\:lg\:mr-\[10px\]{margin-right:10px}.ape\:lg\:mr-\[15px\]{margin-right:15px}.ape\:lg\:mb-0{margin-bottom:0}.ape\:lg\:ml-0{margin-left:0}.ape\:lg\:ml-\[10px\]{margin-left:10px}.ape\:lg\:flex{display:flex}.ape\:lg\:inline{display:inline}.ape\:lg\:h-\[40px\]{height:40px}.ape\:lg\:w-1\/2{width:50%}.ape\:lg\:w-\[30\%\]{width:30%}.ape\:lg\:w-\[35\%\]{width:35%}.ape\:lg\:w-\[45\%\]{width:45%}.ape\:lg\:w-\[65\%\]{width:65%}.ape\:lg\:w-\[unset\]{width:unset}.ape\:lg\:w-auto{width:auto}.ape\:lg\:min-w-100{min-width:calc(var(--ape-spacing) * 100)}.ape\:lg\:min-w-\[300px\]\!{min-width:300px!important}.ape\:lg\:min-w-\[400px\]{min-width:400px}.ape\:lg\:flex-row{flex-direction:row}.ape\:lg\:items-center{align-items:center}.ape\:lg\:gap-\[10px\]{gap:10px}.ape\:lg\:gap-\[15px\]{gap:15px}.ape\:lg\:overflow-visible{overflow:visible}.ape\:lg\:rounded-normal{border-radius:var(--ape-radius-normal)}.ape\:lg\:bg-white4{background-color:var(--ape-color-white4)}.ape\:lg\:bg-\[image\:var\(--banner-bg-desktop\)\]{background-image:var(--banner-bg-desktop)}.ape\:lg\:px-\[10px\]{padding-inline:10px}.ape\:lg\:pr-\[20px\]{padding-right:20px}.ape\:lg\:pb-\[20px\]{padding-bottom:20px}.ape\:lg\:text-\[16px\]\!{font-size:16px!important}.ape\:lg\:leading-6\!{--tw-leading:calc(var(--ape-spacing) * 6)!important;line-height:calc(var(--ape-spacing) * 6)!important}}@media (min-width:1000px){.ape\:min-\[1000px\]\:absolute{position:absolute}.ape\:min-\[1000px\]\:left-\[10px\]{left:10px}.ape\:min-\[1000px\]\:mt-0{margin-top:0}.ape\:min-\[1000px\]\:flex{display:flex}.ape\:min-\[1000px\]\:hidden{display:none}.ape\:min-\[1000px\]\:h-\[70px\]{height:70px}.ape\:min-\[1000px\]\:w-\[30\%\]{width:30%}.ape\:min-\[1000px\]\:w-\[70\%\]{width:70%}.ape\:min-\[1000px\]\:w-\[130px\]{width:130px}.ape\:min-\[1000px\]\:w-\[210px\]{width:210px}.ape\:min-\[1000px\]\:w-\[300px\]{width:300px}.ape\:min-\[1000px\]\:min-w-\[300px\]{min-width:300px}.ape\:min-\[1000px\]\:flex-row{flex-direction:row}.ape\:min-\[1000px\]\:justify-between{justify-content:space-between}.ape\:min-\[1000px\]\:justify-center{justify-content:center}.ape\:min-\[1000px\]\:justify-end{justify-content:flex-end}.ape\:min-\[1000px\]\:p-0{padding:0}.ape\:min-\[1000px\]\:p-\[20px_0_10px_0\]{padding:20px 0 10px}.ape\:min-\[1000px\]\:pr-\[20px\]{padding-right:20px}}@media (min-width:1080px){.ape\:xl\:flex{display:flex}.ape\:xl\:w-\[30\%\]{width:30%}.ape\:xl\:w-\[70\%\]{width:70%}.ape\:xl\:w-\[100px\]{width:100px}.ape\:xl\:w-\[115px\]{width:115px}.ape\:xl\:w-\[135px\]{width:135px}.ape\:xl\:min-w-\[400px\]{min-width:400px}.ape\:xl\:flex-row{flex-direction:row}.ape\:xl\:justify-between{justify-content:space-between}.ape\:xl\:gap-\[30px\]{gap:30px}.ape\:xl\:p-\[20px_0_10px_0\]{padding:20px 0 10px}}@media (min-width:1200px){.ape\:xxl\:flex{display:flex}}.ape\:\[\&_\*\]\:text-\[14px\]\! *{font-size:14px!important}.ape\:\[\&_\*\]\:text-\[18px\]\! *{font-size:18px!important}.ape\:\[\&_\*\]\:text-\[24px\]\! *{font-size:24px!important}.ape\:\[\&_button\]\:ml-auto button,.ape\:\[\&_svg\]\:ml-auto svg{margin-left:auto}.ape\:\[\&_svg\]\:w-\[11px\] svg{width:11px}.ape\:\[\&_svg\]\:cursor-pointer svg{cursor:pointer}.ape\:\[\&_svg\]\:bg-transparent svg{background-color:#0000}.ape\:\[\&_svg\]\:fill-text svg{fill:var(--ape-color-text)}.ape\:\[\&\:\:-webkit-scrollbar\]\:h-\[5px\]::-webkit-scrollbar{height:5px}.ape\:\[\&\>\*\]\:h-\[31px\]\!>*{height:31px!important}.ape\:\[\&\>\*\]\:w-\[210px\]>*{width:210px}.ape\:\[\&\>\*\]\:text-\[14px\]\!>*{font-size:14px!important}@media (min-width:1080px){.ape\:xl\:\[\&\>\*\]\:w-\[100px\]>*{width:100px}}.ape\:\[\&\>div\:last-child\]\:mr-0>div:last-child{margin-right:0}.ape\:\[\&\>div\>div\]\:bg-white2>div>div{background-color:var(--ape-color-white2)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-outline-style:solid;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--ape-font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--ape-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ape-color-white:#fff;--ape-spacing:.25rem;--ape-text-base:1rem;--ape-text-base--line-height:calc(1.5 / 1);--ape-font-weight-light:300;--ape-font-weight-normal:400;--ape-font-weight-medium:500;--ape-font-weight-semibold:600;--ape-font-weight-bold:700;--ape-ease-out:cubic-bezier(0, 0, .2, 1);--ape-ease-in-out:cubic-bezier(.4, 0, .2, 1);--ape-default-transition-duration:.15s;--ape-default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--ape-default-font-family:var(--ape-font-sans);--ape-default-mono-font-family:var(--ape-font-mono);--ape-color-white1:#0e0d16;--ape-color-white2:#161420;--ape-color-white3:#1f1d29;--ape-color-white4:#282632;--ape-color-white5:#312f3a;--ape-color-primary-button:#6560c5;--ape-color-primary-button-disable:#48475b;--ape-color-primary-button-hovered:#8480d1;--ape-color-success:#38a611;--ape-color-error:#df4141;--ape-color-text:#fafafa;--ape-color-text-disabled:#424242;--ape-color-text-disabled-button:#73728e;--ape-color-primary-bright:#fafafa;--ape-color-modal-overlay:#42424280;--ape-gradient-abond:linear-gradient(98.79deg, #6560c5 -2.37%, #e07753 100%);--ape-font-body:"Poppins", sans-serif;--ape-radius-small:6px;--ape-radius-default:16px;--ape-radius-normal:10px;--ape-radius-card:32px;--ape-z-index-dropdown:10;--ape-z-index-modal:102}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ape-default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--ape-default-font-feature-settings,normal);font-variation-settings:var(--ape-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ape-default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--ape-default-mono-font-feature-settings,normal);font-variation-settings:var(--ape-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}.ape-root{font-family:var(--ape-font-body);-webkit-font-smoothing:antialiased;color:var(--ape-color-text);background-color:var(--ape-color-white1);scroll-behavior:smooth;font-weight:600}.ape-root a{color:var(--ape-color-text);text-decoration:none}.ape-root a:hover{color:var(--ape-color-primary-button);text-decoration:underline}.ape-root hr{background-color:var(--ape-color-white3);border:none;height:1px}.ape-root ::-webkit-scrollbar{width:6px}.ape-root ::-webkit-scrollbar-thumb{background:var(--ape-color-text);border-radius:8px}.ape-root ::-webkit-scrollbar-track{background:var(--ape-color-white2);border-radius:10px}}@layer components{@keyframes ape-ellipsis{0%{content:"."}33%{content:".."}66%{content:"..."}}.ape-ellipsis:after{content:".";text-align:left;width:1em;animation:1.25s infinite ape-ellipsis;display:inline-block}.ape-carousel-viewport{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;-webkit-touch-callout:none}.ape-carousel-viewport::-webkit-scrollbar{display:none}.ape-you-tooltip:after{content:"";border-style:solid;border-width:6px;border-color:transparent var(--ape-color-primary-button) transparent transparent;position:absolute;top:50%;left:-11px;transform:translateY(-50%)}.ape-you-card{position:absolute;top:0;right:-45px}.ape-you-card:before{content:"";border:9px solid #0000;border-right-color:var(--ape-color-primary-button);width:0;height:0;display:block;position:absolute;top:50%;right:100%;transform:translateY(-50%)}@keyframes ape-spinner-rotation{0%{transform:rotate(40deg)}to{transform:rotate(400deg)}}.ape-spinner{box-sizing:border-box;border-radius:50%;display:inline-block}.ape-spinner-loading{animation:1s linear infinite ape-spinner-rotation;transform:rotate(40deg)}.ape-icon{fill:currentColor;transition:transform .3s linear}.ape-icon path{fill:currentColor}.ape-text-link{cursor:pointer;text-decoration:none;display:inline-block;position:relative}.ape-text-link:after{content:"";background:var(--ape-color-text);border-radius:var(--ape-radius-normal);transform-origin:100% 100%;backface-visibility:hidden;width:100%;height:1.5px;transition:transform .25s ease-out;position:absolute;bottom:0;left:0;transform:scaleX(0)}.ape-text-link:hover:after{transform-origin:0 100%;transform:scaleX(1)}.ape-tooltip-bubble{color:var(--ape-color-text);border-radius:var(--ape-radius-normal);background-color:var(--ape-tooltip-bg,var(--ape-color-white2));width:max-content;z-index:var(--ape-z-index-modal);padding:20px;font-size:12px;font-weight:600;line-height:18px;position:relative;top:15px;box-shadow:0 0 30px #c8c8c866}.ape-tooltip-bottom-right:before,.ape-tooltip-bottom-left:before,.ape-tooltip-top-right:before,.ape-tooltip-top-left:before,.ape-tooltip-left:before{content:"";border:12px solid #0000;width:0;display:block;position:absolute}.ape-tooltip-bottom-right:before{border-top:0;border-bottom-style:solid;border-bottom-width:15px;border-bottom-color:var(--ape-tooltip-bg,var(--ape-color-white2));top:0;right:3%;transform:translate(-50%,-100%)}.ape-tooltip-bottom-left:before{border-top:0;border-bottom-style:solid;border-bottom-width:15px;border-bottom-color:var(--ape-tooltip-bg,var(--ape-color-white2));top:0;left:calc(3% + 15px);transform:translate(-50%,-100%)}.ape-tooltip-top-right:before{border-top-style:solid;border-top-width:15px;border-bottom:0;border-top-color:var(--ape-tooltip-bg,var(--ape-color-white2));bottom:0;right:3%;transform:translate(-50%,100%)}.ape-tooltip-top-left:before{border-top-style:solid;border-top-width:15px;border-bottom:0;border-top-color:var(--ape-tooltip-bg,var(--ape-color-white2));bottom:0;left:calc(3% + 15px);transform:translate(-50%,100%)}.ape-tooltip-only-container-right:before{content:"";border-bottom-color:var(--ape-tooltip-bg,var(--ape-color-white2));position:absolute;right:3%}.ape-tooltip-left:before{color:var(--ape-color-white2);border-right:15px solid;top:65%;left:-13px;transform:translate(-50%,-100%)}@keyframes ape-skeleton-waves{0%{left:-150px}to{left:100%}}@keyframes ape-skeleton-pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.ape-skeleton-waves{background-color:var(--ape-color-white2);min-height:16px;display:block;position:relative;overflow:hidden;transform:translate(0)}.ape-skeleton-waves:before{content:"";background-image:linear-gradient(90deg,#0000,#f3f3f34d,#0000);width:250px;height:100%;animation:1.5s cubic-bezier(.4,0,.2,1) infinite ape-skeleton-waves;position:absolute;top:0;left:-150px}.ape-skeleton-pulse{background-color:var(--ape-color-white2);border-radius:2px;min-height:20px;animation:2s ease-out infinite ape-skeleton-pulse;display:block;transform:translate(0)}}@layer utilities{.ape\:pointer-events-none{pointer-events:none}.ape\:absolute{position:absolute}.ape\:fixed{position:fixed}.ape\:relative{position:relative}.ape\:inset-0{inset:0}.ape\:-top-\[15px\]{top:-15px}.ape\:top-0{top:0}.ape\:top-1\/2{top:50%}.ape\:top-\[-180px\]{top:-180px}.ape\:top-\[5px\]{top:5px}.ape\:top-\[12px\]{top:12px}.ape\:top-\[24px\]{top:24px}.ape\:top-\[25px\]{top:25px}.ape\:top-\[45px\]{top:45px}.ape\:top-\[50px\]{top:50px}.ape\:top-\[56\%\]{top:56%}.ape\:right-0{right:0}.ape\:right-3{right:calc(var(--ape-spacing) * 3)}.ape\:right-\[5px\]{right:5px}.ape\:right-\[6px\]{right:6px}.ape\:right-\[10px\]{right:10px}.ape\:right-\[50\%\]{right:50%}.ape\:bottom-0{bottom:0}.ape\:bottom-\[-43px\]{bottom:-43px}.ape\:bottom-\[3px\]{bottom:3px}.ape\:bottom-\[calc\(100\%-10px\)\]{bottom:calc(100% - 10px)}.ape\:bottom-\[unset\]{bottom:unset}.ape\:left-0{left:0}.ape\:left-1\/2{left:50%}.ape\:left-\[-20px\]{left:-20px}.ape\:left-\[-50px\]{left:-50px}.ape\:left-\[1px\]{left:1px}.ape\:left-\[25\%\]{left:25%}.ape\:left-\[40px\]{left:40px}.ape\:left-\[65\%\]{left:65%}.ape\:-z-\[1\]{z-index:calc(1 * -1)}.ape\:z-0{z-index:0}.ape\:z-10{z-index:10}.ape\:z-100{z-index:100}.ape\:z-\[1\]{z-index:1}.ape\:z-\[2\]{z-index:2}.ape\:z-\[5\]{z-index:5}.ape\:z-\[20\]{z-index:20}.ape\:z-\[100\]{z-index:100}.ape\:z-\[103\]{z-index:103}.ape\:z-\[121\]{z-index:121}.ape\:z-\[999\]{z-index:999}.ape\:z-\[1000\]{z-index:1000}.ape\:z-\[1001\]{z-index:1001}.ape\:z-\[5000\]{z-index:5000}.ape\:float-left{float:left}.ape\:m-0{margin:0}.ape\:m-\[0_5px_5px_0\]{margin:0 5px 5px 0}.ape\:m-\[10px_0px_15px_0px\]{margin:10px 0 15px}.ape\:m-auto{margin:auto}.ape\:mx-\[-5px\]{margin-inline:-5px}.ape\:mx-\[-8px\]{margin-inline:-8px}.ape\:mx-\[2\.5px\]{margin-inline:2.5px}.ape\:mx-\[2px\]{margin-inline:2px}.ape\:mx-\[3px\]{margin-inline:3px}.ape\:mx-\[5px\]{margin-inline:5px}.ape\:mx-\[8px\]{margin-inline:8px}.ape\:mx-\[10px\]{margin-inline:10px}.ape\:mx-\[20px\]{margin-inline:20px}.ape\:mx-\[25px\]{margin-inline:25px}.ape\:my-\[2px\]{margin-block:2px}.ape\:my-\[5px\]{margin-block:5px}.ape\:my-\[10px\]{margin-block:10px}.ape\:my-\[15px\]{margin-block:15px}.ape\:my-\[20px\]{margin-block:20px}.ape\:mt-0{margin-top:0}.ape\:mt-0\.75{margin-top:calc(var(--ape-spacing) * .75)}.ape\:mt-2\.5{margin-top:calc(var(--ape-spacing) * 2.5)}.ape\:mt-4{margin-top:calc(var(--ape-spacing) * 4)}.ape\:mt-\[-15px\]{margin-top:-15px}.ape\:mt-\[3px\]{margin-top:3px}.ape\:mt-\[5px\]{margin-top:5px}.ape\:mt-\[10px\]{margin-top:10px}.ape\:mt-\[15px\]{margin-top:15px}.ape\:mt-\[20px\]{margin-top:20px}.ape\:mt-\[25px\]{margin-top:25px}.ape\:mt-\[30px\]{margin-top:30px}.ape\:mt-\[35px\]{margin-top:35px}.ape\:mt-\[40px\]{margin-top:40px}.ape\:mt-px{margin-top:1px}.ape\:mr-0{margin-right:0}.ape\:mr-1\.25{margin-right:calc(var(--ape-spacing) * 1.25)}.ape\:mr-\[3px\]{margin-right:3px}.ape\:mr-\[4px\]{margin-right:4px}.ape\:mr-\[5px\]{margin-right:5px}.ape\:mr-\[6px\]{margin-right:6px}.ape\:mr-\[8px\]{margin-right:8px}.ape\:mr-\[10px\]{margin-right:10px}.ape\:mr-\[15px\]{margin-right:15px}.ape\:mr-\[20px\]{margin-right:20px}.ape\:mb-1\.25{margin-bottom:calc(var(--ape-spacing) * 1.25)}.ape\:mb-2\.5{margin-bottom:calc(var(--ape-spacing) * 2.5)}.ape\:mb-5{margin-bottom:calc(var(--ape-spacing) * 5)}.ape\:mb-\[1px\]{margin-bottom:1px}.ape\:mb-\[3px\]{margin-bottom:3px}.ape\:mb-\[5px\]{margin-bottom:5px}.ape\:mb-\[8px\]{margin-bottom:8px}.ape\:mb-\[10px\]{margin-bottom:10px}.ape\:mb-\[14px\]{margin-bottom:14px}.ape\:mb-\[15px\]{margin-bottom:15px}.ape\:mb-\[20px\]{margin-bottom:20px}.ape\:mb-\[30px\]{margin-bottom:30px}.ape\:mb-\[50px\]{margin-bottom:50px}.ape\:ml-0{margin-left:0}.ape\:ml-1{margin-left:var(--ape-spacing)}.ape\:ml-3\.5{margin-left:calc(var(--ape-spacing) * 3.5)}.ape\:ml-3\.75{margin-left:calc(var(--ape-spacing) * 3.75)}.ape\:ml-\[3px\]{margin-left:3px}.ape\:ml-\[4px\]{margin-left:4px}.ape\:ml-\[5px\]{margin-left:5px}.ape\:ml-\[6px\]{margin-left:6px}.ape\:ml-\[7px\]{margin-left:7px}.ape\:ml-\[10px\]{margin-left:10px}.ape\:ml-\[15px\]{margin-left:15px}.ape\:ml-\[20px\]{margin-left:20px}.ape\:ml-\[30px\]{margin-left:30px}.ape\:line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ape\:block{display:block}.ape\:block\!{display:block!important}.ape\:flex{display:flex}.ape\:hidden{display:none}.ape\:hidden\!{display:none!important}.ape\:inline-flex{display:inline-flex}.ape\:aspect-\[1\/0\.56\]{aspect-ratio:1/.56}.ape\:size-full{width:100%;height:100%}.ape\:h-7\.5{height:calc(var(--ape-spacing) * 7.5)}.ape\:h-10{height:calc(var(--ape-spacing) * 10)}.ape\:h-11\.25{height:calc(var(--ape-spacing) * 11.25)}.ape\:h-\[2px\]{height:2px}.ape\:h-\[3px\]{height:3px}.ape\:h-\[5px\]{height:5px}.ape\:h-\[14px\]{height:14px}.ape\:h-\[15px\]{height:15px}.ape\:h-\[18px\]{height:18px}.ape\:h-\[20px\]{height:20px}.ape\:h-\[21px\]{height:21px}.ape\:h-\[22px\]{height:22px}.ape\:h-\[24px\]{height:24px}.ape\:h-\[25px\]{height:25px}.ape\:h-\[26px\]{height:26px}.ape\:h-\[30px\]{height:30px}.ape\:h-\[30vh\]{height:30vh}.ape\:h-\[31px\]{height:31px}.ape\:h-\[32px\]{height:32px}.ape\:h-\[34px\]{height:34px}.ape\:h-\[35px\]{height:35px}.ape\:h-\[36px\]{height:36px}.ape\:h-\[36px\]\!{height:36px!important}.ape\:h-\[40px\]{height:40px}.ape\:h-\[45px\]{height:45px}.ape\:h-\[49px\]{height:49px}.ape\:h-\[60px\]{height:60px}.ape\:h-\[70px\]{height:70px}.ape\:h-\[75px\]{height:75px}.ape\:h-\[84px\]{height:84px}.ape\:h-\[91px\]{height:91px}.ape\:h-\[125px\]{height:125px}.ape\:h-\[300px\]{height:300px}.ape\:h-\[400px\]{height:400px}.ape\:h-\[calc\(100\%\+20px\)\]{height:calc(100% + 20px)}.ape\:h-\[calc\(100\%-150px\)\]{height:calc(100% - 150px)}.ape\:h-\[unset\]{height:unset}.ape\:h-auto{height:auto}.ape\:h-fit{height:fit-content}.ape\:h-full{height:100%}.ape\:h-px{height:1px}.ape\:h-screen{height:100vh}.ape\:max-h-\[32px\]{max-height:32px}.ape\:max-h-\[48px\]{max-height:48px}.ape\:max-h-\[95vh\]{max-height:95vh}.ape\:max-h-\[300px\]{max-height:300px}.ape\:max-h-none{max-height:none}.ape\:min-h-4{min-height:calc(var(--ape-spacing) * 4)}.ape\:min-h-23{min-height:calc(var(--ape-spacing) * 23)}.ape\:min-h-\[27px\]{min-height:27px}.ape\:min-h-\[30px\]{min-height:30px}.ape\:min-h-\[40px\]{min-height:40px}.ape\:min-h-\[47\.45px\]{min-height:47.45px}.ape\:min-h-\[90px\]{min-height:90px}.ape\:min-h-\[160px\]{min-height:160px}.ape\:min-h-\[225px\]{min-height:225px}.ape\:min-h-\[330px\]{min-height:330px}.ape\:w-1\/2{width:50%}.ape\:w-1\/5{width:20%}.ape\:w-43\.75{width:calc(var(--ape-spacing) * 43.75)}.ape\:w-85{width:calc(var(--ape-spacing) * 85)}.ape\:w-95{width:calc(var(--ape-spacing) * 95)}.ape\:w-\[6px\]{width:6px}.ape\:w-\[8px\]{width:8px}.ape\:w-\[14px\]{width:14px}.ape\:w-\[15px\]{width:15px}.ape\:w-\[20px\]{width:20px}.ape\:w-\[25px\]{width:25px}.ape\:w-\[30px\]{width:30px}.ape\:w-\[32\%\]{width:32%}.ape\:w-\[34\%\]{width:34%}.ape\:w-\[35px\]{width:35px}.ape\:w-\[36\%\]{width:36%}.ape\:w-\[40px\]{width:40px}.ape\:w-\[45\%\]{width:45%}.ape\:w-\[49\%\]{width:49%}.ape\:w-\[50px\]{width:50px}.ape\:w-\[55px\]{width:55px}.ape\:w-\[60px\]{width:60px}.ape\:w-\[65\%\]{width:65%}.ape\:w-\[75\%\]{width:75%}.ape\:w-\[85px\]{width:85px}.ape\:w-\[98vw\]{width:98vw}.ape\:w-\[100px\]{width:100px}.ape\:w-\[110px\]{width:110px}.ape\:w-\[115px\]{width:115px}.ape\:w-\[120px\]{width:120px}.ape\:w-\[122px\]{width:122px}.ape\:w-\[125px\]{width:125px}.ape\:w-\[127px\]{width:127px}.ape\:w-\[130px\]{width:130px}.ape\:w-\[135px\]{width:135px}.ape\:w-\[144px\]{width:144px}.ape\:w-\[155px\]{width:155px}.ape\:w-\[160px\]{width:160px}.ape\:w-\[170px\]{width:170px}.ape\:w-\[175px\]{width:175px}.ape\:w-\[190px\]{width:190px}.ape\:w-\[210px\]{width:210px}.ape\:w-\[220px\]{width:220px}.ape\:w-\[235px\]{width:235px}.ape\:w-\[300px\]{width:300px}.ape\:w-\[380px\]{width:380px}.ape\:w-\[380px\]\!{width:380px!important}.ape\:w-\[400px\]{width:400px}.ape\:w-\[420px\]{width:420px}.ape\:w-\[450px\]{width:450px}.ape\:w-\[480px\]{width:480px}.ape\:w-\[740px\]\!{width:740px!important}.ape\:w-\[calc\(33\.33\%-20px\)\]{width:calc(33.33% - 20px)}.ape\:w-\[calc\(50vw-25px\)\]{width:calc(50vw - 25px)}.ape\:w-\[calc\(100\%\+40px\)\]{width:calc(100% + 40px)}.ape\:w-\[calc\(100\%-2px\)\]{width:calc(100% - 2px)}.ape\:w-auto{width:auto}.ape\:w-fit{width:fit-content}.ape\:w-full{width:100%}.ape\:w-max{width:max-content}.ape\:w-screen{width:100vw}.ape\:max-w-75{max-width:calc(var(--ape-spacing) * 75)}.ape\:max-w-85{max-width:calc(var(--ape-spacing) * 85)}.ape\:max-w-\[95vw\]{max-width:95vw}.ape\:max-w-\[100px\]{max-width:100px}.ape\:max-w-\[300px\]{max-width:300px}.ape\:max-w-\[1150px\]{max-width:1150px}.ape\:max-w-full{max-width:100%}.ape\:min-w-100{min-width:calc(var(--ape-spacing) * 100)}.ape\:min-w-\[10px\]{min-width:10px}.ape\:min-w-\[14px\]{min-width:14px}.ape\:min-w-\[20px\]{min-width:20px}.ape\:min-w-\[25px\]{min-width:25px}.ape\:min-w-\[30px\]{min-width:30px}.ape\:min-w-\[33px\]{min-width:33px}.ape\:min-w-\[40px\]{min-width:40px}.ape\:min-w-\[48px\]{min-width:48px}.ape\:min-w-\[65px\]{min-width:65px}.ape\:min-w-\[100px\]{min-width:100px}.ape\:min-w-\[120px\]{min-width:120px}.ape\:min-w-\[148px\]{min-width:148px}.ape\:min-w-\[250px\]{min-width:250px}.ape\:min-w-\[700px\]{min-width:700px}.ape\:min-w-\[unset\]{min-width:unset}.ape\:min-w-full{min-width:100%}.ape\:\[flex\:0_0_100\%\]{flex:0 0 100%}.ape\:flex-1{flex:1}.ape\:shrink-0{flex-shrink:0}.ape\:-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:translate-x-1\/2{--tw-translate-x:calc(1 / 2 * 100%);translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:translate-x-\[50\%\]{--tw-translate-x:50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:scale-\[0\.5\]{scale:.5}.ape\:rotate-\[-45deg\]{rotate:-45deg}.ape\:cursor-\[unset\]{cursor:unset}.ape\:cursor-pointer{cursor:pointer}.ape\:snap-center{scroll-snap-align:center}.ape\:list-none{list-style-type:none}.ape\:appearance-none{appearance:none}.ape\:flex-col{flex-direction:column}.ape\:flex-col-reverse{flex-direction:column-reverse}.ape\:flex-row{flex-direction:row}.ape\:flex-row-reverse{flex-direction:row-reverse}.ape\:flex-wrap{flex-wrap:wrap}.ape\:items-center{align-items:center}.ape\:items-end{align-items:flex-end}.ape\:items-start{align-items:flex-start}.ape\:items-stretch{align-items:stretch}.ape\:justify-around{justify-content:space-around}.ape\:justify-between{justify-content:space-between}.ape\:justify-center{justify-content:center}.ape\:justify-end{justify-content:flex-end}.ape\:justify-start{justify-content:flex-start}.ape\:gap-2\.5{gap:calc(var(--ape-spacing) * 2.5)}.ape\:gap-\[1px\]{gap:1px}.ape\:gap-\[3px\]{gap:3px}.ape\:gap-\[4px\]{gap:4px}.ape\:gap-\[5px\]{gap:5px}.ape\:gap-\[7px\]{gap:7px}.ape\:gap-\[8px\]{gap:8px}.ape\:gap-\[10px\]{gap:10px}.ape\:gap-\[14px\]{gap:14px}.ape\:gap-\[15px\]{gap:15px}.ape\:gap-\[20px\]{gap:20px}.ape\:overflow-hidden{overflow:hidden}.ape\:overflow-x-auto{overflow-x:auto}.ape\:overflow-x-hidden{overflow-x:hidden}.ape\:overflow-x-visible{overflow-x:visible}.ape\:\[overflow-y\:unset\]\!{overflow-y:unset!important}.ape\:overflow-y-auto{overflow-y:auto}.ape\:overflow-y-hidden{overflow-y:hidden}.ape\:overflow-y-scroll{overflow-y:scroll}.ape\:rounded-\[0_0_10px_10px\],.ape\:rounded-\[0px_0px_10px_10px\]{border-radius:0 0 10px 10px}.ape\:rounded-\[0px_10px_10px_0px\]{border-radius:0 10px 10px 0}.ape\:rounded-\[4px\]{border-radius:4px}.ape\:rounded-\[5px\]{border-radius:5px}.ape\:rounded-\[6px\]{border-radius:6px}.ape\:rounded-\[6px_6px_0px_0px\]{border-radius:6px 6px 0 0}.ape\:rounded-\[8px\]{border-radius:8px}.ape\:rounded-\[10px\]{border-radius:10px}.ape\:rounded-\[10px_0px_10px_0px\]{border-radius:10px 0}.ape\:rounded-\[10px_10px_0_0\],.ape\:rounded-\[10px_10px_0px_0px\]{border-radius:10px 10px 0 0}.ape\:rounded-\[14px\]{border-radius:14px}.ape\:rounded-\[40px\]{border-radius:40px}.ape\:rounded-\[50\%\]{border-radius:50%}.ape\:rounded-\[50px\]{border-radius:50px}.ape\:rounded-full{border-radius:3.40282e38px}.ape\:rounded-none{border-radius:0}.ape\:rounded-normal{border-radius:var(--ape-radius-normal)}.ape\:rounded-small{border-radius:var(--ape-radius-small)}.ape\:rounded-tl-\[10px\]{border-top-left-radius:10px}.ape\:rounded-br-\[8px\]{border-bottom-right-radius:8px}.ape\:border{border-style:var(--tw-border-style);border-width:1px}.ape\:border-0{border-style:var(--tw-border-style);border-width:0}.ape\:border-2{border-style:var(--tw-border-style);border-width:2px}.ape\:border-\[3px\]{border-style:var(--tw-border-style);border-width:3px}.ape\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ape\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ape\:border-none{--tw-border-style:none;border-style:none}.ape\:border-solid{--tw-border-style:solid;border-style:solid}.ape\:border-\[\#9960C5\]{border-color:#9960c5}.ape\:border-\[\#222222\]{border-color:#222}.ape\:border-\[grey\]{border-color:gray}.ape\:border-primary-button{border-color:var(--ape-color-primary-button)}.ape\:border-success{border-color:var(--ape-color-success)}.ape\:border-text{border-color:var(--ape-color-text)}.ape\:border-white2{border-color:var(--ape-color-white2)}.ape\:border-white3{border-color:var(--ape-color-white3)}.ape\:border-white4{border-color:var(--ape-color-white4)}.ape\:bg-\[\#38A6110D\]{background-color:#38a6110d}.ape\:bg-\[\#9960C5\]{background-color:#9960c5}.ape\:bg-\[\#DE62F366\]{background-color:#de62f366}.ape\:bg-\[grey\]{background-color:gray}.ape\:bg-modal-overlay{background-color:var(--ape-color-modal-overlay)}.ape\:bg-primary-button{background-color:var(--ape-color-primary-button)}.ape\:bg-text{background-color:var(--ape-color-text)}.ape\:bg-text-disabled{background-color:var(--ape-color-text-disabled)}.ape\:bg-transparent{background-color:#0000}.ape\:bg-transparent\!{background-color:#0000!important}.ape\:bg-white{background-color:var(--ape-color-white)}.ape\:bg-white1{background-color:var(--ape-color-white1)}.ape\:bg-white2{background-color:var(--ape-color-white2)}.ape\:bg-white2\!{background-color:var(--ape-color-white2)!important}.ape\:bg-white3{background-color:var(--ape-color-white3)}.ape\:bg-white4{background-color:var(--ape-color-white4)}.ape\:bg-\[image\:var\(--ape-gradient-abond\)\]{background-image:var(--ape-gradient-abond)}.ape\:bg-\[image\:var\(--banner-bg-mobile\)\]{background-image:var(--banner-bg-mobile)}.ape\:bg-\[linear-gradient\(180deg\,\#FFFFFF_50\%\,\#666666_100\%\)\]{background-image:linear-gradient(#fff 50%,#666 100%)}.ape\:bg-cover{background-size:cover}.ape\:bg-clip-text{-webkit-background-clip:text;background-clip:text}.ape\:bg-no-repeat{background-repeat:no-repeat}.ape\:object-contain{object-fit:contain}.ape\:object-cover{object-fit:cover}.ape\:p-0{padding:0}.ape\:p-0\!{padding:0!important}.ape\:p-2{padding:calc(var(--ape-spacing) * 2)}.ape\:p-2\.5{padding:calc(var(--ape-spacing) * 2.5)}.ape\:p-3{padding:calc(var(--ape-spacing) * 3)}.ape\:p-3\.75{padding:calc(var(--ape-spacing) * 3.75)}.ape\:p-5{padding:calc(var(--ape-spacing) * 5)}.ape\:p-\[0_1px\]{padding:0 1px}.ape\:p-\[0_20px_20px_20px\]{padding:0 20px 20px}.ape\:p-\[0px_8px\]\!{padding:0 8px!important}.ape\:p-\[2\.5px_5px\]{padding:2.5px 5px}.ape\:p-\[2px\]{padding:2px}.ape\:p-\[2px_5px\]{padding:2px 5px}.ape\:p-\[2px_6px\]{padding:2px 6px}.ape\:p-\[2px_8px\]{padding:2px 8px}.ape\:p-\[2px_10px\]{padding:2px 10px}.ape\:p-\[2px_10px_2px_5px\]{padding:2px 10px 2px 5px}.ape\:p-\[3px_6px\]{padding:3px 6px}.ape\:p-\[4px_2px\]{padding:4px 2px}.ape\:p-\[4px_6px\]{padding:4px 6px}.ape\:p-\[4px_10px\]{padding:4px 10px}.ape\:p-\[5px\]{padding:5px}.ape\:p-\[5px_10px\]{padding:5px 10px}.ape\:p-\[5px_15px\]{padding:5px 15px}.ape\:p-\[5px_20px\]{padding:5px 20px}.ape\:p-\[6px\]{padding:6px}.ape\:p-\[6px_12px\]{padding:6px 12px}.ape\:p-\[8px\]{padding:8px}.ape\:p-\[8px_4px_4px_4px\]{padding:8px 4px 4px}.ape\:p-\[8px_10px\]{padding:8px 10px}.ape\:p-\[8px_12px\]{padding:8px 12px}.ape\:p-\[8px_16px\]{padding:8px 16px}.ape\:p-\[10px\]{padding:10px}.ape\:p-\[15px\]{padding:15px}.ape\:p-\[16px\]{padding:16px}.ape\:p-\[20px\]{padding:20px}.ape\:p-px{padding:1px}.ape\:px-2\.5{padding-inline:calc(var(--ape-spacing) * 2.5)}.ape\:px-6{padding-inline:calc(var(--ape-spacing) * 6)}.ape\:px-\[3px\]{padding-inline:3px}.ape\:px-\[4px\]{padding-inline:4px}.ape\:px-\[5px\]{padding-inline:5px}.ape\:px-\[6px\]{padding-inline:6px}.ape\:px-\[8px\]{padding-inline:8px}.ape\:px-\[10px\]{padding-inline:10px}.ape\:px-\[14px\]{padding-inline:14px}.ape\:px-\[15px\]{padding-inline:15px}.ape\:px-\[19px\]{padding-inline:19px}.ape\:py-2\.5{padding-block:calc(var(--ape-spacing) * 2.5)}.ape\:py-\[2px\]{padding-block:2px}.ape\:py-\[3px\]{padding-block:3px}.ape\:py-\[5px\]{padding-block:5px}.ape\:py-\[6px\]{padding-block:6px}.ape\:py-\[10px\]{padding-block:10px}.ape\:py-\[14px\]{padding-block:14px}.ape\:pt-1\.25{padding-top:calc(var(--ape-spacing) * 1.25)}.ape\:pt-4{padding-top:calc(var(--ape-spacing) * 4)}.ape\:pt-\[2px\]{padding-top:2px}.ape\:pt-\[3px\]{padding-top:3px}.ape\:pt-\[5px\]{padding-top:5px}.ape\:pt-\[10px\]{padding-top:10px}.ape\:pt-\[15px\]{padding-top:15px}.ape\:pt-\[20px\]{padding-top:20px}.ape\:pt-\[100px\]{padding-top:100px}.ape\:pr-0{padding-right:0}.ape\:pr-1\.25{padding-right:calc(var(--ape-spacing) * 1.25)}.ape\:pr-\[4px\]{padding-right:4px}.ape\:pr-\[14px\]{padding-right:14px}.ape\:pr-\[15px\]{padding-right:15px}.ape\:pr-\[20px\]{padding-right:20px}.ape\:pr-\[23px\]{padding-right:23px}.ape\:pb-\[2px\]{padding-bottom:2px}.ape\:pb-\[10px\]{padding-bottom:10px}.ape\:pb-\[20px\]{padding-bottom:20px}.ape\:pb-\[100px\]{padding-bottom:100px}.ape\:pl-0{padding-left:0}.ape\:pl-0\!{padding-left:0!important}.ape\:pl-1\.25{padding-left:calc(var(--ape-spacing) * 1.25)}.ape\:pl-\[5px\]{padding-left:5px}.ape\:pl-\[10px\]{padding-left:10px}.ape\:pl-\[15px\]{padding-left:15px}.ape\:pl-\[20px\]{padding-left:20px}.ape\:pl-\[26px\]{padding-left:26px}.ape\:pl-\[35px\]{padding-left:35px}.ape\:text-center{text-align:center}.ape\:text-left{text-align:left}.ape\:align-middle{vertical-align:middle}.ape\:align-sub{vertical-align:sub}.ape\:font-body{font-family:var(--ape-font-body)}.ape\:text-base{font-size:var(--ape-text-base);line-height:var(--tw-leading,var(--ape-text-base--line-height))}.ape\:text-\[10px\]{font-size:10px}.ape\:text-\[10px\]\!{font-size:10px!important}.ape\:text-\[11px\]{font-size:11px}.ape\:text-\[12px\]{font-size:12px}.ape\:text-\[12px\]\!{font-size:12px!important}.ape\:text-\[13px\]{font-size:13px}.ape\:text-\[13px\]\!{font-size:13px!important}.ape\:text-\[14\.26px\]{font-size:14.26px}.ape\:text-\[14px\]{font-size:14px}.ape\:text-\[14px\]\!{font-size:14px!important}.ape\:text-\[16px\]{font-size:16px}.ape\:text-\[18px\]{font-size:18px}.ape\:text-\[18px\]\!{font-size:18px!important}.ape\:text-\[20px\]{font-size:20px}.ape\:text-\[22px\]{font-size:22px}.ape\:text-\[24px\]{font-size:24px}.ape\:text-\[24px\]\!{font-size:24px!important}.ape\:text-\[25\.26px\]{font-size:25.26px}.ape\:text-\[32px\]{font-size:32px}.ape\:leading-4{--tw-leading:calc(var(--ape-spacing) * 4);line-height:calc(var(--ape-spacing) * 4)}.ape\:leading-4\!{--tw-leading:calc(var(--ape-spacing) * 4)!important;line-height:calc(var(--ape-spacing) * 4)!important}.ape\:leading-5{--tw-leading:calc(var(--ape-spacing) * 5);line-height:calc(var(--ape-spacing) * 5)}.ape\:leading-5\.5\!{--tw-leading:calc(var(--ape-spacing) * 5.5)!important;line-height:calc(var(--ape-spacing) * 5.5)!important}.ape\:leading-\[11px\]{--tw-leading:11px;line-height:11px}.ape\:leading-\[12px\]{--tw-leading:12px;line-height:12px}.ape\:leading-\[13px\]{--tw-leading:13px;line-height:13px}.ape\:leading-\[14px\]{--tw-leading:14px;line-height:14px}.ape\:leading-\[15px\]{--tw-leading:15px;line-height:15px}.ape\:leading-\[18px\]{--tw-leading:18px;line-height:18px}.ape\:leading-\[18px\]\!{--tw-leading:18px!important;line-height:18px!important}.ape\:leading-\[21px\]{--tw-leading:21px;line-height:21px}.ape\:leading-\[22px\]{--tw-leading:22px;line-height:22px}.ape\:leading-\[24px\]{--tw-leading:24px;line-height:24px}.ape\:leading-\[28px\]{--tw-leading:28px;line-height:28px}.ape\:leading-\[30\.26px\]{--tw-leading:30.26px;line-height:30.26px}.ape\:leading-\[33px\]{--tw-leading:33px;line-height:33px}.ape\:font-bold{--tw-font-weight:var(--ape-font-weight-bold);font-weight:var(--ape-font-weight-bold)}.ape\:font-light{--tw-font-weight:var(--ape-font-weight-light);font-weight:var(--ape-font-weight-light)}.ape\:font-medium{--tw-font-weight:var(--ape-font-weight-medium);font-weight:var(--ape-font-weight-medium)}.ape\:font-normal{--tw-font-weight:var(--ape-font-weight-normal);font-weight:var(--ape-font-weight-normal)}.ape\:font-semibold{--tw-font-weight:var(--ape-font-weight-semibold);font-weight:var(--ape-font-weight-semibold)}.ape\:tracking-\[0\]{--tw-tracking:0;letter-spacing:0}.ape\:text-ellipsis{text-overflow:ellipsis}.ape\:whitespace-nowrap{white-space:nowrap}.ape\:text-\[\#777\]{color:#777}.ape\:text-error{color:var(--ape-color-error)}.ape\:text-primary-bright{color:var(--ape-color-primary-bright)}.ape\:text-primary-button{color:var(--ape-color-primary-button)}.ape\:text-primary-button-disable{color:var(--ape-color-primary-button-disable)}.ape\:text-success{color:var(--ape-color-success)}.ape\:text-text{color:var(--ape-color-text)}.ape\:text-text-disabled{color:var(--ape-color-text-disabled)}.ape\:text-text-disabled-button{color:var(--ape-color-text-disabled-button)}.ape\:text-transparent{color:#0000}.ape\:text-white{color:var(--ape-color-white)}.ape\:capitalize{text-transform:capitalize}.ape\:normal-case{text-transform:none}.ape\:uppercase{text-transform:uppercase}.ape\:line-through{text-decoration-line:line-through}.ape\:no-underline{text-decoration-line:none}.ape\:underline{text-decoration-line:underline}.ape\:opacity-0{opacity:0}.ape\:opacity-20{opacity:.2}.ape\:opacity-50{opacity:.5}.ape\:opacity-60{opacity:.6}.ape\:opacity-70{opacity:.7}.ape\:opacity-80{opacity:.8}.ape\:opacity-90{opacity:.9}.ape\:shadow-\[0px_1px_4px_rgb\(0_0_0\/0\.16\)\]{--tw-shadow:0px 1px 4px var(--tw-shadow-color,#00000029);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ape\:shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ape\:shadow-\[rgba\(0\,0\,0\,0\.16\)_0px_1px_4px\]{--tw-shadow-color:#00000029}@supports (color:color-mix(in lab, red, red)){.ape\:shadow-\[rgba\(0\,0\,0\,0\.16\)_0px_1px_4px\]{--tw-shadow-color:color-mix(in oklab, #00000029 0px 1px 4px var(--tw-shadow-alpha), transparent)}}.ape\:blur-\[1px\]{--tw-blur:blur(1px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.ape\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ape-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ape-default-transition-duration))}.ape\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ape-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ape-default-transition-duration))}.ape\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--ape-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ape-default-transition-duration))}.ape\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ape\:duration-500{--tw-duration:.5s;transition-duration:.5s}.ape\:duration-1000{--tw-duration:1s;transition-duration:1s}.ape\:duration-\[1500ms\]{--tw-duration:1.5s;transition-duration:1.5s}.ape\:ease-\[ease\]{--tw-ease:ease;transition-timing-function:ease}.ape\:ease-in-out{--tw-ease:var(--ape-ease-in-out);transition-timing-function:var(--ape-ease-in-out)}.ape\:ease-linear{--tw-ease:linear;transition-timing-function:linear}.ape\:ease-out{--tw-ease:var(--ape-ease-out);transition-timing-function:var(--ape-ease-out)}.ape\:outline-none{--tw-outline-style:none;outline-style:none}.ape\:select-none{-webkit-user-select:none;user-select:none}.ape\:\[-webkit-text-fill-color\:transparent\]{-webkit-text-fill-color:transparent}@media (hover:hover){.ape\:group-hover\:bg-\[rgb\(20_18_29_\/_0\.25\)\]\!:is(:where(.ape\:group):hover *){background-color:#14121d40!important}.ape\:group-hover\/tooltip\:block:is(:where(.ape\:group\/tooltip):hover *){display:block}}.ape\:peer-checked\:block:is(:where(.ape\:peer):checked~*){display:block}.ape\:first\:rounded-t-normal:first-child{border-top-left-radius:var(--ape-radius-normal);border-top-right-radius:var(--ape-radius-normal)}.ape\:last\:mr-0:last-child{margin-right:0}.ape\:last\:rounded-b-normal:last-child{border-bottom-right-radius:var(--ape-radius-normal);border-bottom-left-radius:var(--ape-radius-normal)}.ape\:checked\:border-primary-button:checked{border-color:var(--ape-color-primary-button)}.ape\:checked\:bg-primary-button:checked{background-color:var(--ape-color-primary-button)}@media (hover:hover){.ape\:hover\:z-\[1000\]:hover{z-index:1000}.ape\:hover\:cursor-pointer:hover{cursor:pointer}.ape\:hover\:bg-\[rgb\(20_18_29_\/_0\.36\)\]\!:hover{background-color:#14121d5c!important}.ape\:hover\:bg-white3:hover{background-color:var(--ape-color-white3)}.ape\:hover\:bg-white4:hover{background-color:var(--ape-color-white4)}.ape\:hover\:bg-white5:hover{background-color:var(--ape-color-white5)}.ape\:hover\:underline:hover{text-decoration-line:underline}.ape\:hover\:opacity-60:hover{opacity:.6}.ape\:hover\:opacity-80:hover{opacity:.8}.ape\:hover\:brightness-115:hover{--tw-brightness:brightness(115%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.ape\:hover\:\[backdrop-filter\:blur\(2px\)\]:hover{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ape\:hover\:\[background\:linear-gradient\(90deg\,rgba\(49\,46\,122\,0\.70\)_0\%\,rgba\(92\,79\,174\,0\.70\)_100\%\)\]:hover{background:linear-gradient(90deg,#312e7ab3 0%,#5c4faeb3 100%)}}.ape\:focus\:outline:focus,.ape\:focus\:outline-1:focus{outline-style:var(--tw-outline-style);outline-width:1px}.ape\:focus\:outline-primary-button:focus{outline-color:var(--ape-color-primary-button)}.ape\:focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.ape\:focus\:not-checked\:shadow-none:focus:not(:checked){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ape\:focus\:not-checked\:outline-none:focus:not(:checked){--tw-outline-style:none;outline-style:none}.ape\:active\:scale-90:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}@media (hover:hover){.ape\:enabled\:hover\:border-primary-button-hovered:enabled:hover{border-color:var(--ape-color-primary-button-hovered)}.ape\:enabled\:hover\:bg-primary-button:enabled:hover{background-color:var(--ape-color-primary-button)}.ape\:enabled\:hover\:bg-primary-button-hovered:enabled:hover{background-color:var(--ape-color-primary-button-hovered)}.ape\:enabled\:hover\:text-text:enabled:hover{color:var(--ape-color-text)}.ape\:enabled\:hover\:not-checked\:border-primary-button:enabled:hover:not(:checked){border-color:var(--ape-color-primary-button)}}.ape\:active\:enabled\:scale-90:active:enabled{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.ape\:disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.ape\:disabled\:border-transparent:disabled{border-color:#0000}.ape\:disabled\:bg-white3:disabled{background-color:var(--ape-color-white3)}.ape\:disabled\:text-primary-button-disable:disabled{color:var(--ape-color-primary-button-disable)}.ape\:disabled\:text-text-disabled-button:disabled{color:var(--ape-color-text-disabled-button)}.ape\:disabled\:opacity-90:disabled{opacity:.9}@media not all and (min-width:1000px){.ape\:max-\[1000px\]\:w-\[49\%\]{width:49%}}@media not all and (min-width:852px){.ape\:max-md\:mb-\[10px\]{margin-bottom:10px}}@media not all and (min-width:768px){.ape\:max-\[768px\]\:w-full{width:100%}}@media not all and (min-width:576px){.ape\:max-sm\:mb-\[10px\]{margin-bottom:10px}.ape\:max-sm\:w-1\/2{width:50%}.ape\:max-sm\:w-\[55\%\]{width:55%}.ape\:max-sm\:text-\[12px\]{font-size:12px}.ape\:max-sm\:text-\[18px\]{font-size:18px}.ape\:max-sm\:leading-\[14px\]{--tw-leading:14px;line-height:14px}.ape\:max-sm\:leading-\[21px\]{--tw-leading:21px;line-height:21px}}@media (min-width:513px){.ape\:min-\[513px\]\:justify-center{justify-content:center}.ape\:min-\[513px\]\:pl-0{padding-left:0}}@media (min-width:576px){.ape\:sm\:top-\[-240px\]{top:-240px}.ape\:sm\:ml-2{margin-left:calc(var(--ape-spacing) * 2)}.ape\:sm\:ml-5{margin-left:calc(var(--ape-spacing) * 5)}.ape\:sm\:max-w-\[190px\]{max-width:190px}.ape\:sm\:justify-start{justify-content:flex-start}.ape\:sm\:text-\[16px\]\!{font-size:16px!important}}@media (min-width:800px){.ape\:min-\[800px\]\:max-h-none{max-height:none}.ape\:min-\[800px\]\:w-\[350px\]{width:350px}.ape\:min-\[800px\]\:flex-col{flex-direction:column}.ape\:min-\[800px\]\:flex-row{flex-direction:row}.ape\:min-\[800px\]\:gap-\[5px\]{gap:5px}.ape\:min-\[800px\]\:p-\[12px\]{padding:12px}.ape\:min-\[800px\]\:p-\[20px\]{padding:20px}.ape\:min-\[800px\]\:pb-\[5px\]{padding-bottom:5px}@media not all and (min-width:1000px){.ape\:min-\[800px\]\:max-\[1000px\]\:bg-bottom{background-position:bottom}}}@media (min-width:852px){.ape\:md\:top-\[20px\]{top:20px}.ape\:md\:top-\[unset\]{top:unset}.ape\:md\:right-\[-13\%\]{right:-13%}.ape\:md\:right-\[-50px\]{right:-50px}.ape\:md\:-bottom-12\.5{bottom:calc(var(--ape-spacing) * -12.5)}.ape\:md\:bottom-\[-15px\]{bottom:-15px}.ape\:md\:bottom-\[unset\]{bottom:unset}.ape\:md\:mt-0{margin-top:0}.ape\:md\:mt-\[5px\]{margin-top:5px}.ape\:md\:mr-\[15px\]{margin-right:15px}.ape\:md\:mb-0{margin-bottom:0}.ape\:md\:ml-\[5px\]{margin-left:5px}.ape\:md\:block{display:block}.ape\:md\:flex{display:flex}.ape\:md\:flex\!{display:flex!important}.ape\:md\:hidden{display:none}.ape\:md\:h-\[200px\]{height:200px}.ape\:md\:h-\[225px\]{height:225px}.ape\:md\:max-h-\[350px\]{max-height:350px}.ape\:md\:min-h-\[430px\]{min-height:430px}.ape\:md\:w-1\/2{width:50%}.ape\:md\:w-87\.5{width:calc(var(--ape-spacing) * 87.5)}.ape\:md\:w-175{width:calc(var(--ape-spacing) * 175)}.ape\:md\:w-\[35\%\]{width:35%}.ape\:md\:w-\[150px\]{width:150px}.ape\:md\:w-\[180px\]{width:180px}.ape\:md\:w-\[200px\]{width:200px}.ape\:md\:w-\[225px\]{width:225px}.ape\:md\:w-\[300px\]{width:300px}.ape\:md\:w-\[calc\(100\%-300px\)\]{width:calc(100% - 300px)}.ape\:md\:w-\[unset\]{width:unset}.ape\:md\:w-full{width:100%}.ape\:md\:-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:md\:translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:md\:-translate-y-3\/4{--tw-translate-y:calc(calc(3 / 4 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.ape\:md\:scale-\[0\.4\]{scale:.4}.ape\:md\:flex-col{flex-direction:column}.ape\:md\:flex-row,.ape\:min-md\:flex-row{flex-direction:row}.ape\:md\:justify-end{justify-content:flex-end}.ape\:md\:gap-\[15px\]{gap:15px}.ape\:min-md\:gap-\[5px\]{gap:5px}.ape\:md\:rounded-\[20px\]{border-radius:20px}.ape\:md\:rounded-normal{border-radius:var(--ape-radius-normal)}.ape\:md\:p-3{padding:calc(var(--ape-spacing) * 3)}.ape\:md\:p-5{padding:calc(var(--ape-spacing) * 5)}.ape\:md\:p-\[4px_10px\]{padding:4px 10px}.ape\:md\:p-\[20px\]{padding:20px}.ape\:md\:pr-\[20px\]{padding-right:20px}.ape\:md\:pb-1\.25{padding-bottom:calc(var(--ape-spacing) * 1.25)}.ape\:min-md\:pb-\[5px\]{padding-bottom:5px}.ape\:md\:pl-\[20px\]{padding-left:20px}.ape\:md\:text-\[12px\]\!{font-size:12px!important}.ape\:md\:text-\[14px\]{font-size:14px}.ape\:md\:text-\[14px\]\!{font-size:14px!important}.ape\:md\:text-\[16px\]{font-size:16px}.ape\:md\:text-\[18px\]{font-size:18px}.ape\:md\:text-\[20px\]{font-size:20px}.ape\:md\:text-\[24px\]{font-size:24px}.ape\:min-md\:text-\[16px\]{font-size:16px}.ape\:md\:leading-\[21px\]\!{--tw-leading:21px!important;line-height:21px!important}.ape\:md\:font-bold{--tw-font-weight:var(--ape-font-weight-bold);font-weight:var(--ape-font-weight-bold)}@media (hover:hover){.ape\:md\:hover\:z-\[1000\]\!:hover{z-index:1000!important}}}@media (min-width:968px){.ape\:lg\:mt-0{margin-top:0}.ape\:lg\:mr-\[10px\]{margin-right:10px}.ape\:lg\:mr-\[15px\]{margin-right:15px}.ape\:lg\:mb-0{margin-bottom:0}.ape\:lg\:ml-0{margin-left:0}.ape\:lg\:ml-\[10px\]{margin-left:10px}.ape\:lg\:flex{display:flex}.ape\:lg\:inline{display:inline}.ape\:lg\:h-\[40px\]{height:40px}.ape\:lg\:w-1\/2{width:50%}.ape\:lg\:w-\[30\%\]{width:30%}.ape\:lg\:w-\[35\%\]{width:35%}.ape\:lg\:w-\[45\%\]{width:45%}.ape\:lg\:w-\[65\%\]{width:65%}.ape\:lg\:w-\[unset\]{width:unset}.ape\:lg\:w-auto{width:auto}.ape\:lg\:min-w-100{min-width:calc(var(--ape-spacing) * 100)}.ape\:lg\:min-w-\[300px\]\!{min-width:300px!important}.ape\:lg\:min-w-\[400px\]{min-width:400px}.ape\:lg\:flex-row{flex-direction:row}.ape\:lg\:items-center{align-items:center}.ape\:lg\:gap-\[10px\]{gap:10px}.ape\:lg\:gap-\[15px\]{gap:15px}.ape\:lg\:overflow-visible{overflow:visible}.ape\:lg\:rounded-normal{border-radius:var(--ape-radius-normal)}.ape\:lg\:bg-white4{background-color:var(--ape-color-white4)}.ape\:lg\:bg-\[image\:var\(--banner-bg-desktop\)\]{background-image:var(--banner-bg-desktop)}.ape\:lg\:px-\[10px\]{padding-inline:10px}.ape\:lg\:pr-\[20px\]{padding-right:20px}.ape\:lg\:pb-\[20px\]{padding-bottom:20px}.ape\:lg\:text-\[16px\]\!{font-size:16px!important}.ape\:lg\:leading-6\!{--tw-leading:calc(var(--ape-spacing) * 6)!important;line-height:calc(var(--ape-spacing) * 6)!important}}@media (min-width:1000px){.ape\:min-\[1000px\]\:absolute{position:absolute}.ape\:min-\[1000px\]\:left-\[10px\]{left:10px}.ape\:min-\[1000px\]\:mt-0{margin-top:0}.ape\:min-\[1000px\]\:flex{display:flex}.ape\:min-\[1000px\]\:hidden{display:none}.ape\:min-\[1000px\]\:h-\[70px\]{height:70px}.ape\:min-\[1000px\]\:w-\[30\%\]{width:30%}.ape\:min-\[1000px\]\:w-\[70\%\]{width:70%}.ape\:min-\[1000px\]\:w-\[130px\]{width:130px}.ape\:min-\[1000px\]\:w-\[210px\]{width:210px}.ape\:min-\[1000px\]\:w-\[300px\]{width:300px}.ape\:min-\[1000px\]\:min-w-\[300px\]{min-width:300px}.ape\:min-\[1000px\]\:flex-row{flex-direction:row}.ape\:min-\[1000px\]\:justify-between{justify-content:space-between}.ape\:min-\[1000px\]\:justify-center{justify-content:center}.ape\:min-\[1000px\]\:justify-end{justify-content:flex-end}.ape\:min-\[1000px\]\:p-0{padding:0}.ape\:min-\[1000px\]\:p-\[20px_0_10px_0\]{padding:20px 0 10px}.ape\:min-\[1000px\]\:pr-\[20px\]{padding-right:20px}}@media (min-width:1080px){.ape\:xl\:flex{display:flex}.ape\:xl\:w-\[30\%\]{width:30%}.ape\:xl\:w-\[70\%\]{width:70%}.ape\:xl\:w-\[100px\]{width:100px}.ape\:xl\:w-\[115px\]{width:115px}.ape\:xl\:w-\[135px\]{width:135px}.ape\:xl\:min-w-\[400px\]{min-width:400px}.ape\:xl\:flex-row{flex-direction:row}.ape\:xl\:justify-between{justify-content:space-between}.ape\:xl\:gap-\[30px\]{gap:30px}.ape\:xl\:p-\[20px_0_10px_0\]{padding:20px 0 10px}}@media (min-width:1200px){.ape\:xxl\:flex{display:flex}}.ape\:\[\&_\*\]\:text-\[14px\]\! *{font-size:14px!important}.ape\:\[\&_\*\]\:text-\[18px\]\! *{font-size:18px!important}.ape\:\[\&_\*\]\:text-\[24px\]\! *{font-size:24px!important}.ape\:\[\&_button\]\:ml-auto button,.ape\:\[\&_svg\]\:ml-auto svg{margin-left:auto}.ape\:\[\&_svg\]\:w-\[11px\] svg{width:11px}.ape\:\[\&_svg\]\:cursor-pointer svg{cursor:pointer}.ape\:\[\&_svg\]\:bg-transparent svg{background-color:#0000}.ape\:\[\&_svg\]\:fill-text svg{fill:var(--ape-color-text)}.ape\:\[\&\:\:-webkit-scrollbar\]\:h-\[5px\]::-webkit-scrollbar{height:5px}.ape\:\[\&\>\*\]\:h-\[31px\]\!>*{height:31px!important}.ape\:\[\&\>\*\]\:w-\[210px\]>*{width:210px}.ape\:\[\&\>\*\]\:text-\[14px\]\!>*{font-size:14px!important}@media (min-width:1080px){.ape\:xl\:\[\&\>\*\]\:w-\[100px\]>*{width:100px}}.ape\:\[\&\>div\:last-child\]\:mr-0>div:last-child{margin-right:0}.ape\:\[\&\>div\>div\]\:bg-white2>div>div{background-color:var(--ape-color-white2)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
|
|
@@ -15,16 +15,6 @@ const findHighestTrueBondPrice = (userPoints, trueBondPrices) => {
|
|
|
15
15
|
// Find the highest points among the eligible prices
|
|
16
16
|
return eligiblePrices.reduce((highest, current) => (BigInt(current.points) > BigInt(highest.points) ? current : highest));
|
|
17
17
|
};
|
|
18
|
-
/**
|
|
19
|
-
* Finds the TrueBondPrices element with the highest points in the array, regardless of user points.
|
|
20
|
-
* @param bondData - Bond Data containing an array of TrueBondPrices to analyze.
|
|
21
|
-
* @returns The TrueBondPrices element with the highest points, or `undefined` if no data is available.
|
|
22
|
-
*/
|
|
23
|
-
const findHighestTrueBondPriceUserAgnostic = (bondData) => {
|
|
24
|
-
if (!bondData?.trueBondPrices?.length)
|
|
25
|
-
return undefined;
|
|
26
|
-
return bondData.trueBondPrices.reduce((highest, current) => BigInt(current.points) > BigInt(highest.points) ? current : highest);
|
|
27
|
-
};
|
|
28
18
|
|
|
29
|
-
export { findHighestTrueBondPrice
|
|
19
|
+
export { findHighestTrueBondPrice };
|
|
30
20
|
//# sourceMappingURL=bondPriceHelpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bondPriceHelpers.js","sources":["../../src/utils/bondPriceHelpers.ts"],"sourcesContent":["import { BondsData, TrueBondPrices } from '../types/bonds'\n\n/**\n * Finds the highest TrueBondPrices element where userPoints is higher than points in the array.\n * @param userPoints - The user's points as a string representing an integer.\n * @param trueBondPrices - Array of TrueBondPrices to analyze.\n * @returns The highest TrueBondPrices element where userPoints is higher than the item's points, or `undefined` if none matches.\n */\nexport const findHighestTrueBondPrice = (\n userPoints?: string | null,\n trueBondPrices?: TrueBondPrices[],\n): TrueBondPrices | undefined => {\n if (!userPoints || !trueBondPrices) return undefined\n\n const userPointsBigInt = BigInt(userPoints)\n\n // Filter higher discounts that the user can't access\n const eligiblePrices = trueBondPrices.filter((price) => userPointsBigInt >= BigInt(price.points))\n if (!eligiblePrices || eligiblePrices.length === 0) return undefined\n\n // Find the highest points among the eligible prices\n return eligiblePrices.reduce((highest, current) => (BigInt(current.points) > BigInt(highest.points) ? current : highest))\n}\n\n/**\n * Finds the TrueBondPrices element with the highest points in the array, regardless of user points.\n * @param bondData - Bond Data containing an array of TrueBondPrices to analyze.\n * @returns The TrueBondPrices element with the highest points, or `undefined` if no data is available.\n */\nexport const findHighestTrueBondPriceUserAgnostic = (bondData?: BondsData): TrueBondPrices | undefined => {\n if (!bondData?.trueBondPrices?.length) return undefined\n\n return bondData.trueBondPrices.reduce((highest, current) =>\n BigInt(current.points) > BigInt(highest.points) ? current : highest,\n )\n}\n"],"names":[],"mappings":"AAEA;;;;;AAKG;MACU,wBAAwB,GAAG,CACtC,UAA0B,EAC1B,cAAiC,KACH;AAC9B,IAAA,IAAI,CAAC,UAAU,IAAI,CAAC,cAAc;AAAE,QAAA,OAAO,SAAS;AAEpD,IAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC;;IAG3C,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,gBAAgB,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjG,IAAA,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,SAAS;;AAGpE,IAAA,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAC3H
|
|
1
|
+
{"version":3,"file":"bondPriceHelpers.js","sources":["../../src/utils/bondPriceHelpers.ts"],"sourcesContent":["import { BondsData, TrueBondPrices } from '../types/bonds'\n\n/**\n * Finds the highest TrueBondPrices element where userPoints is higher than points in the array.\n * @param userPoints - The user's points as a string representing an integer.\n * @param trueBondPrices - Array of TrueBondPrices to analyze.\n * @returns The highest TrueBondPrices element where userPoints is higher than the item's points, or `undefined` if none matches.\n */\nexport const findHighestTrueBondPrice = (\n userPoints?: string | null,\n trueBondPrices?: TrueBondPrices[],\n): TrueBondPrices | undefined => {\n if (!userPoints || !trueBondPrices) return undefined\n\n const userPointsBigInt = BigInt(userPoints)\n\n // Filter higher discounts that the user can't access\n const eligiblePrices = trueBondPrices.filter((price) => userPointsBigInt >= BigInt(price.points))\n if (!eligiblePrices || eligiblePrices.length === 0) return undefined\n\n // Find the highest points among the eligible prices\n return eligiblePrices.reduce((highest, current) => (BigInt(current.points) > BigInt(highest.points) ? current : highest))\n}\n\n/**\n * Finds the TrueBondPrices element with the highest points in the array, regardless of user points.\n * @param bondData - Bond Data containing an array of TrueBondPrices to analyze.\n * @returns The TrueBondPrices element with the highest points, or `undefined` if no data is available.\n */\nexport const findHighestTrueBondPriceUserAgnostic = (bondData?: BondsData): TrueBondPrices | undefined => {\n if (!bondData?.trueBondPrices?.length) return undefined\n\n return bondData.trueBondPrices.reduce((highest, current) =>\n BigInt(current.points) > BigInt(highest.points) ? current : highest,\n )\n}\n"],"names":[],"mappings":"AAEA;;;;;AAKG;MACU,wBAAwB,GAAG,CACtC,UAA0B,EAC1B,cAAiC,KACH;AAC9B,IAAA,IAAI,CAAC,UAAU,IAAI,CAAC,cAAc;AAAE,QAAA,OAAO,SAAS;AAEpD,IAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC;;IAG3C,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,gBAAgB,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjG,IAAA,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,SAAS;;AAGpE,IAAA,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAC3H;;;;"}
|
|
@@ -1,13 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolves a theme color key (e.g. 'primaryButton', 'white3', 'textDisabledButton')
|
|
3
|
-
* to the matching CSS custom property Tailwind's `@theme` block defines in
|
|
4
|
-
* src/theme/tailwind.css — the single source of truth for color values, so no
|
|
5
|
-
* color hex codes are duplicated here.
|
|
6
|
-
*
|
|
7
|
-
* Anything that isn't a simple camelCase identifier (hex codes, rgb()/rgba(),
|
|
8
|
-
* space-separated values, etc.) is assumed to already be a literal CSS color
|
|
9
|
-
* and passed through unchanged. A literal CSS color keyword that happens to be
|
|
10
|
-
* a simple identifier but isn't a real theme token (e.g. 'red', 'grey') still
|
|
11
|
-
* resolves correctly via the var() fallback.
|
|
12
|
-
*/
|
|
13
1
|
export declare const resolveColor: (color?: string) => string | undefined;
|
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
const camelToKebab = (str) => str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
|
|
2
|
-
/**
|
|
3
|
-
* Resolves a theme color key (e.g. 'primaryButton', 'white3', 'textDisabledButton')
|
|
4
|
-
* to the matching CSS custom property Tailwind's `@theme` block defines in
|
|
5
|
-
* src/theme/tailwind.css — the single source of truth for color values, so no
|
|
6
|
-
* color hex codes are duplicated here.
|
|
7
|
-
*
|
|
8
|
-
* Anything that isn't a simple camelCase identifier (hex codes, rgb()/rgba(),
|
|
9
|
-
* space-separated values, etc.) is assumed to already be a literal CSS color
|
|
10
|
-
* and passed through unchanged. A literal CSS color keyword that happens to be
|
|
11
|
-
* a simple identifier but isn't a real theme token (e.g. 'red', 'grey') still
|
|
12
|
-
* resolves correctly via the var() fallback.
|
|
13
|
-
*/
|
|
14
2
|
const resolveColor = (color) => {
|
|
15
3
|
if (!color || !/^[a-zA-Z][a-zA-Z0-9]*$/.test(color))
|
|
16
4
|
return color;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveColor.js","sources":["../../src/utils/resolveColor.ts"],"sourcesContent":["const camelToKebab = (str: string) => str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase()\n\
|
|
1
|
+
{"version":3,"file":"resolveColor.js","sources":["../../src/utils/resolveColor.ts"],"sourcesContent":["const camelToKebab = (str: string) => str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase()\n\nexport const resolveColor = (color?: string) => {\n if (!color || !/^[a-zA-Z][a-zA-Z0-9]*$/.test(color)) return color\n return `var(--ape-color-${camelToKebab(color)}, ${color})`\n}\n"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,CAAC,GAAW,KAAK,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE;AAEvF,MAAM,YAAY,GAAG,CAAC,KAAc,KAAI;IAC7C,IAAI,CAAC,KAAK,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK;IACjE,OAAO,CAAA,gBAAA,EAAmB,YAAY,CAAC,KAAK,CAAC,CAAA,EAAA,EAAK,KAAK,GAAG;AAC5D;;;;"}
|
|
@@ -68,20 +68,7 @@ const ChainBanner = ({ chainId }) => {
|
|
|
68
68
|
// Fallback for non-Next.js environments
|
|
69
69
|
window.history.pushState({}, '', bannerCTA);
|
|
70
70
|
};
|
|
71
|
-
return (jsxs("div", {
|
|
72
|
-
// The per-chain image URLs are only known at runtime, so they must never be
|
|
73
|
-
// interpolated directly into a Tailwind arbitrary-value class name (as a
|
|
74
|
-
// template literal) — Tailwind statically scans the raw source text of this
|
|
75
|
-
// file at SDK build time and cannot evaluate JS, so it would compile the
|
|
76
|
-
// literal, unresolved placeholder straight into the shipped CSS as a broken
|
|
77
|
-
// url() value, which then crashes consumer bundlers trying to resolve it as
|
|
78
|
-
// a module path. (Do not even reference that pattern in a comment here —
|
|
79
|
-
// the scanner reads comments too and will happily "compile" example text.)
|
|
80
|
-
// Instead these two classes are fully static and safe to scan; the actual
|
|
81
|
-
// URLs are supplied at runtime via CSS custom properties set through
|
|
82
|
-
// inline style below, so the mobile/desktop breakpoint switch still
|
|
83
|
-
// happens natively in CSS with no JS involved.
|
|
84
|
-
className: `banner-container ape:w-full ape:min-h-[160px] ape:rounded-[8px] ape:flex ape:flex-col ape:items-center ape:justify-center ape:mb-[10px] ape:gap-[5px] ape:bg-cover ape:bg-no-repeat ape:p-[15px] ape:min-[800px]:max-[1000px]:bg-bottom ape:bg-[image:var(--banner-bg-mobile)] ape:lg:bg-[image:var(--banner-bg-desktop)] ${bannerCTA ? 'ape:cursor-pointer' : 'ape:cursor-[unset]'}`, style: {
|
|
71
|
+
return (jsxs("div", { className: `banner-container ape:w-full ape:min-h-[160px] ape:rounded-[8px] ape:flex ape:flex-col ape:items-center ape:justify-center ape:mb-[10px] ape:gap-[5px] ape:bg-cover ape:bg-no-repeat ape:p-[15px] ape:min-[800px]:max-[1000px]:bg-bottom ape:bg-[image:var(--banner-bg-mobile)] ape:lg:bg-[image:var(--banner-bg-desktop)] ${bannerCTA ? 'ape:cursor-pointer' : 'ape:cursor-[unset]'}`, style: {
|
|
85
72
|
'--banner-bg-mobile': `url('${BANNER_INFO[chainId]?.backgroundMobile}')`,
|
|
86
73
|
'--banner-bg-desktop': `url('${BANNER_INFO[chainId]?.background}')`,
|
|
87
74
|
}, onClick: handleClickOnBanner, children: [jsx("div", { className: "banner-title ape:font-bold ape:text-[25.26px] ape:leading-[30.26px] ape:tracking-[0] ape:text-center ape:align-middle ape:mt-[10px] ape:bg-clip-text ape:text-transparent ape:[-webkit-text-fill-color:transparent] ape:bg-[linear-gradient(180deg,#FFFFFF_50%,#666666_100%)] ape:max-sm:w-1/2 ape:max-sm:text-[18px] ape:max-sm:leading-[21px]", children: BANNER_INFO[chainId]?.title }), jsx("div", { className: "banner-subtitle ape:font-normal ape:text-[14.26px] ape:leading-[30.26px] ape:tracking-[0] ape:text-center ape:align-middle ape:bg-clip-text ape:text-transparent ape:[-webkit-text-fill-color:transparent] ape:bg-[linear-gradient(180deg,#FFFFFF_50%,#666666_100%)] ape:max-sm:w-[55%] ape:max-sm:text-[12px] ape:max-sm:leading-[14px] ape:max-sm:mb-[10px]", children: BANNER_INFO[chainId]?.subtitle }), jsx("div", { className: "banner-actions ape:flex ape:items-center ape:justify-center ape:gap-[10px]", children: BANNER_INFO[chainId]?.buttons?.map((button, index) => (jsx(Button, { className: "action-button ape:h-[35px] ape:text-[12px]! ape:font-bold", onClick: () => window.open(button.cta, '_blank'), variant: button.variant || variants.PRIMARY, children: button.label }, `banner-button-${index}`))) })] }, `banner-container-${chainId}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChainBanner.js","sources":["../../../../../src/views/Bonds/components/ChainBanner/ChainBanner.tsx"],"sourcesContent":["import React from 'react'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { variants } from '../../../../components/uikit-sdk/Button/types'\n\ninterface ButtonInfo {\n label: string\n cta?: string\n variant?: variants\n background?: string\n}\n\ninterface BannerInfo {\n title?: string\n subtitle?: string\n buttons?: ButtonInfo[]\n background: string\n backgroundMobile: string\n cta?: string\n}\n\nconst BANNER_INFO: Partial<Record<ChainId, BannerInfo>> = {\n // MONAD IS BROKEN, TODO fix it!\n [ChainId.MONAD]: {\n title: 'Monad Mainnet Bonds',\n subtitle: 'Launch Coming Soon.',\n buttons: [\n {\n label: 'LEARN MORE',\n cta: 'https://x.com/ApeBond/status/1995538519536578880?s=20',\n variant: variants.SECONDARY,\n },\n { label: 'Launch Yours', cta: 'https://forms.clickup.com/3080492/f/2y09c-6585/O175DYTK4PMR6P4CZA' },\n ],\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1/banner_jpkg38.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1/banner-mobile_y6xveu.png',\n },\n [ChainId.SOL]: {\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1776440199/desktopBanner_fse6ls.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1776440198/mobileBanner_x9tii9.png',\n cta: '?modal=rakurai',\n },\n // TODO(APTOS): replace placeholder images and \"LEARN MORE\" cta with final Aptos assets.\n // Currently reuses Solana background images.\n [ChainId.APTOS]: {\n title: 'Bonds are now Live on Aptos',\n subtitle: 'Get tokens at a discount on Aptos. Move-powered, sub-second finality.',\n buttons: [\n {\n label: 'LEARN MORE',\n cta: 'https://aptoslabs.com',\n variant: variants.SECONDARY,\n },\n ],\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751667949/background_ldg88q.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751668240/backgroundMobile_lht5tu.png',\n },\n // TODO(SUI): replace placeholder images and CTA with final Sui assets.\n [ChainId.SUI]: {\n title: 'Bonds are now Live on Sui',\n subtitle: 'Get tokens at a discount on Sui. Move-powered, parallel execution.',\n buttons: [\n {\n label: 'LEARN MORE',\n cta: 'https://sui.io',\n variant: variants.SECONDARY,\n },\n ],\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751667949/background_ldg88q.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751668240/backgroundMobile_lht5tu.png',\n },\n}\n\nconst ChainBanner = ({ chainId }: { chainId: ChainId }) => {\n const bannerCTA = BANNER_INFO[chainId]?.cta\n\n const handleClickOnBanner = () => {\n if (!bannerCTA) return\n // Next.js exposes the router singleton on window.next.router (Pages Router, dev + prod)\n const nextRouter = typeof window !== 'undefined' && (window as any).__NEXT_DATA__ && (window as any).next?.router\n if (nextRouter) {\n nextRouter.push(bannerCTA)\n return\n }\n // Fallback for non-Next.js environments\n window.history.pushState({}, '', bannerCTA)\n }\n\n return (\n <div\n key={`banner-container-${chainId}`}\n
|
|
1
|
+
{"version":3,"file":"ChainBanner.js","sources":["../../../../../src/views/Bonds/components/ChainBanner/ChainBanner.tsx"],"sourcesContent":["import React from 'react'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { variants } from '../../../../components/uikit-sdk/Button/types'\n\ninterface ButtonInfo {\n label: string\n cta?: string\n variant?: variants\n background?: string\n}\n\ninterface BannerInfo {\n title?: string\n subtitle?: string\n buttons?: ButtonInfo[]\n background: string\n backgroundMobile: string\n cta?: string\n}\n\nconst BANNER_INFO: Partial<Record<ChainId, BannerInfo>> = {\n // MONAD IS BROKEN, TODO fix it!\n [ChainId.MONAD]: {\n title: 'Monad Mainnet Bonds',\n subtitle: 'Launch Coming Soon.',\n buttons: [\n {\n label: 'LEARN MORE',\n cta: 'https://x.com/ApeBond/status/1995538519536578880?s=20',\n variant: variants.SECONDARY,\n },\n { label: 'Launch Yours', cta: 'https://forms.clickup.com/3080492/f/2y09c-6585/O175DYTK4PMR6P4CZA' },\n ],\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1/banner_jpkg38.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1/banner-mobile_y6xveu.png',\n },\n [ChainId.SOL]: {\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1776440199/desktopBanner_fse6ls.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1776440198/mobileBanner_x9tii9.png',\n cta: '?modal=rakurai',\n },\n // TODO(APTOS): replace placeholder images and \"LEARN MORE\" cta with final Aptos assets.\n // Currently reuses Solana background images.\n [ChainId.APTOS]: {\n title: 'Bonds are now Live on Aptos',\n subtitle: 'Get tokens at a discount on Aptos. Move-powered, sub-second finality.',\n buttons: [\n {\n label: 'LEARN MORE',\n cta: 'https://aptoslabs.com',\n variant: variants.SECONDARY,\n },\n ],\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751667949/background_ldg88q.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751668240/backgroundMobile_lht5tu.png',\n },\n // TODO(SUI): replace placeholder images and CTA with final Sui assets.\n [ChainId.SUI]: {\n title: 'Bonds are now Live on Sui',\n subtitle: 'Get tokens at a discount on Sui. Move-powered, parallel execution.',\n buttons: [\n {\n label: 'LEARN MORE',\n cta: 'https://sui.io',\n variant: variants.SECONDARY,\n },\n ],\n background: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751667949/background_ldg88q.png',\n backgroundMobile: 'https://res.cloudinary.com/dswmrqgwy/image/upload/v1751668240/backgroundMobile_lht5tu.png',\n },\n}\n\nconst ChainBanner = ({ chainId }: { chainId: ChainId }) => {\n const bannerCTA = BANNER_INFO[chainId]?.cta\n\n const handleClickOnBanner = () => {\n if (!bannerCTA) return\n // Next.js exposes the router singleton on window.next.router (Pages Router, dev + prod)\n const nextRouter = typeof window !== 'undefined' && (window as any).__NEXT_DATA__ && (window as any).next?.router\n if (nextRouter) {\n nextRouter.push(bannerCTA)\n return\n }\n // Fallback for non-Next.js environments\n window.history.pushState({}, '', bannerCTA)\n }\n\n return (\n <div\n key={`banner-container-${chainId}`}\n className={`banner-container ape:w-full ape:min-h-[160px] ape:rounded-[8px] ape:flex ape:flex-col ape:items-center ape:justify-center ape:mb-[10px] ape:gap-[5px] ape:bg-cover ape:bg-no-repeat ape:p-[15px] ape:min-[800px]:max-[1000px]:bg-bottom ape:bg-[image:var(--banner-bg-mobile)] ape:lg:bg-[image:var(--banner-bg-desktop)] ${bannerCTA ? 'ape:cursor-pointer' : 'ape:cursor-[unset]'}`}\n style={\n {\n '--banner-bg-mobile': `url('${BANNER_INFO[chainId]?.backgroundMobile}')`,\n '--banner-bg-desktop': `url('${BANNER_INFO[chainId]?.background}')`,\n } as React.CSSProperties\n }\n onClick={handleClickOnBanner}\n >\n <div className=\"banner-title ape:font-bold ape:text-[25.26px] ape:leading-[30.26px] ape:tracking-[0] ape:text-center ape:align-middle ape:mt-[10px] ape:bg-clip-text ape:text-transparent ape:[-webkit-text-fill-color:transparent] ape:bg-[linear-gradient(180deg,#FFFFFF_50%,#666666_100%)] ape:max-sm:w-1/2 ape:max-sm:text-[18px] ape:max-sm:leading-[21px]\">\n {BANNER_INFO[chainId]?.title}\n </div>\n <div className=\"banner-subtitle ape:font-normal ape:text-[14.26px] ape:leading-[30.26px] ape:tracking-[0] ape:text-center ape:align-middle ape:bg-clip-text ape:text-transparent ape:[-webkit-text-fill-color:transparent] ape:bg-[linear-gradient(180deg,#FFFFFF_50%,#666666_100%)] ape:max-sm:w-[55%] ape:max-sm:text-[12px] ape:max-sm:leading-[14px] ape:max-sm:mb-[10px]\">\n {BANNER_INFO[chainId]?.subtitle}\n </div>\n <div className=\"banner-actions ape:flex ape:items-center ape:justify-center ape:gap-[10px]\">\n {BANNER_INFO[chainId]?.buttons?.map((button, index) => (\n <Button\n key={`banner-button-${index}`}\n className=\"action-button ape:h-[35px] ape:text-[12px]! ape:font-bold\"\n onClick={() => window.open(button.cta, '_blank')}\n variant={button.variant || variants.PRIMARY}\n >\n {button.label}\n </Button>\n ))}\n </div>\n </div>\n )\n}\n\nexport default ChainBanner\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import ABI_DEPOSIT from '../../config/abi/deposit.json.js';
|
|
|
7
7
|
import ABI_DEPOSIT_SIG from '../../config/abi/depositSig.json.js';
|
|
8
8
|
import { useChainId, useWriteContract, useSendTransaction } from 'wagmi';
|
|
9
9
|
import useModal from '../../hooks/useModal.js';
|
|
10
|
-
import { LaunchBondTiers, BillVersion } from '@ape.swap/apeswap-lists';
|
|
10
|
+
import { LaunchBondTiers, BillVersion, ChainId } from '@ape.swap/apeswap-lists';
|
|
11
11
|
import TokenSelectorPanel from '../../components/TokenSelectorPanel/index.js';
|
|
12
12
|
import { useApproval } from '../../state/allowance/useAllowance.js';
|
|
13
13
|
import { SoulZapTokenManager } from '../../config/constants/addresses.js';
|
|
@@ -47,7 +47,7 @@ import Flex from '../../components/uikit-sdk/Flex/index.js';
|
|
|
47
47
|
import Text from '../../components/uikit-sdk/Text/index.js';
|
|
48
48
|
import Button from '../../components/uikit-sdk/Button/Button.js';
|
|
49
49
|
import { formatNumberSI } from '../../utils/formatNumber.js';
|
|
50
|
-
import
|
|
50
|
+
import L1XIframe from './components/L1xIframe/L1xIframe.js';
|
|
51
51
|
|
|
52
52
|
const PROMOTION_TRACKING_SUFFIXES = {
|
|
53
53
|
[Promotions.WelcomeBonus]: 'welcome-bonus',
|
|
@@ -345,15 +345,10 @@ const BuyComponent = ({ onDismiss, bondAddress, bondChain, handlePurchasedBond,
|
|
|
345
345
|
}
|
|
346
346
|
};
|
|
347
347
|
// Modals
|
|
348
|
+
const [onOpenl1xIframe] = useModal(jsx(L1XIframe, {}));
|
|
348
349
|
const [onOpenLifiModal] = useModal(jsx(LifiModal, { bondChain: bondChain, principalToken: isPrincipalTokenLP ? 'ETH' : bondData?.lpToken?.address?.[bondData?.chainId] }));
|
|
349
350
|
const [openNewRateModal] = useModal(jsx(NewRateModal, { bond: bondData, zapTrueBondPrice: zapTrueBondPrice, depositAmount: depositAmount, youSpendString: youSpendString, fetchingZapQuote: fetchingZapQuote, zapError: zapError }), true, false, 'newRateModal');
|
|
350
351
|
const [openTxModal] = useModal(jsx(TransactionModal, { txChain: bondChain, approvalState: approvalState, approveCallback: handleApprove, loadingTx: loadingTx, txCallback: handleBothPurchases, bondData: bondData, inputToken: inputToken, inputValue: inputValue, depositAmount: depositAmount, buyTxHash: buyTxHash, rateChanged: rateChanged }), false, true, 'transactionModal');
|
|
351
|
-
// const [onOpenZapModal] = useModal(
|
|
352
|
-
// <ZapModal outputToken={bondData?.lpToken as Token} account={account} chainId={bondData?.chainId as ChainId} />,
|
|
353
|
-
// true,
|
|
354
|
-
// true,
|
|
355
|
-
// 'zapModal',
|
|
356
|
-
// )
|
|
357
352
|
const [openNoBonusModal] = useModal(jsx(NoBonusModal, { onAcknowledge: openTxModal, showcaseTokenName: bondData?.showcaseTokenName }), true, true, 'NoBonusModal');
|
|
358
353
|
// Effects
|
|
359
354
|
const [hasChecked, setHasChecked] = useState(false);
|
|
@@ -375,7 +370,11 @@ const BuyComponent = ({ onDismiss, bondAddress, bondChain, handlePurchasedBond,
|
|
|
375
370
|
}
|
|
376
371
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
377
372
|
}, [rateChanged]);
|
|
378
|
-
return bondData ? (jsx(Flex, { className: "modal-content ape:flex ape:flex-col ape:rounded-[10px] ape:bg-white2 ape:w-full ape:p-3.75 ape:md:p-5", style: { ...MCBuyComponentStyles[bondData?.marketingCampaign] }, children: jsxs(Flex, { className: "modaltable-container ape:w-full ape:flex ape:flex-col ape:relative ape:gap-2.5", children: [jsx(BondModalHeader, { bondData: bondData, onDismiss: onDismiss, showProjectInfoButton: SDKConfig?.referenceId === 'apebond' }), jsx(ProjectDescription, { description: bondData.shortDescription, isProjectView: true }), jsx(Flex, { className: clsx('ape:w-full', isProjectView ? 'ape:hidden ape:lg:flex' : 'ape:flex'), children: jsx(BondCards, { bondData: bondData, isDoingMaxBuy: exceedsSafeMaxBuy && !exceedsRealMaxBuy }) }), jsx(Estimations, { depositAmount: depositAmount, inputValue: inputValue, inputTokenPrice: inputTokenPrice, bondData: bondData, youSpendString: youSpendString, isZap: isZapSupported, fetchingZapQuote: fetchingZapQuote, zapError: zapError }), jsx(TokenSelectorPanel, { typedValue: inputValue, setTypedValue: setInputValue, selectedToken: inputToken, handleValueBtn: handleMaxButton, handleCurrencySelect: handleCurrencySelect, bondChainId: bondData?.chainId, enableZap: isZapSupported, bondPrincipalToken: bondData?.lpToken, tokenBalance: inputCurrencyBalance, selectedTokenPrice: inputTokenPrice, inputDisabled: isUserRestricted, marketingCampaign: bondData?.marketingCampaign, isConnected: !!account }), SDKConfig.useTiers && userTier !== LaunchBondTiers.Mythical && bondData?.billVersion === BillVersion.V4 && (jsx(
|
|
373
|
+
return bondData ? (jsx(Flex, { className: "modal-content ape:flex ape:flex-col ape:rounded-[10px] ape:bg-white2 ape:w-full ape:p-3.75 ape:md:p-5", style: { ...MCBuyComponentStyles[bondData?.marketingCampaign] }, children: jsxs(Flex, { className: "modaltable-container ape:w-full ape:flex ape:flex-col ape:relative ape:gap-2.5", children: [jsx(BondModalHeader, { bondData: bondData, onDismiss: onDismiss, showProjectInfoButton: SDKConfig?.referenceId === 'apebond' }), jsx(ProjectDescription, { description: bondData.shortDescription, isProjectView: true }), jsx(Flex, { className: clsx('ape:w-full', isProjectView ? 'ape:hidden ape:lg:flex' : 'ape:flex'), children: jsx(BondCards, { bondData: bondData, isDoingMaxBuy: exceedsSafeMaxBuy && !exceedsRealMaxBuy }) }), jsx(Estimations, { depositAmount: depositAmount, inputValue: inputValue, inputTokenPrice: inputTokenPrice, bondData: bondData, youSpendString: youSpendString, isZap: isZapSupported, fetchingZapQuote: fetchingZapQuote, zapError: zapError }), jsx(TokenSelectorPanel, { typedValue: inputValue, setTypedValue: setInputValue, selectedToken: inputToken, handleValueBtn: handleMaxButton, handleCurrencySelect: handleCurrencySelect, bondChainId: bondData?.chainId, enableZap: isZapSupported, bondPrincipalToken: bondData?.lpToken, tokenBalance: inputCurrencyBalance, selectedTokenPrice: inputTokenPrice, inputDisabled: isUserRestricted, marketingCampaign: bondData?.marketingCampaign, isConnected: !!account }), SDKConfig.useTiers && userTier !== LaunchBondTiers.Mythical && bondData?.billVersion === BillVersion.V4 && (jsx(PointsLeftForNextTier, { bond: bondData, inputAmount: inputValue, setInputValue: setInputValue, inputTokenPrice: inputTokenPrice, inputTokenDecimals: inputToken === 'NATIVE' ? 18 : (inputToken?.decimals?.[bondData?.chainId] ?? 18) })), bondData?.warningCard && (jsx(Flex, { className: "ape:w-full ape:rounded-normal ape:p-[2px_10px]", style: { background: '#DE62F366' }, children: jsx(Text, { as: "div", size: "12px", className: "ape:font-normal ape:flex ape:items-center ape:leading-5.5!", children: jsx(SafeHTMLComponent, { html: bondData?.warningCard }) }) })), jsx(Flex, { className: "modaltable-container button-container ape:w-full ape:flex ape:relative ape:flex-row ape:justify-between", children: jsx(Flex, { className: "button-container buy ape:justify-center ape:items-center ape:cursor-pointer ape:w-full", children: !account ? (jsx(ConnectButton, {})) : (jsxs(Flex, { className: "ape:w-full ape:gap-[10px] ape:flex-col ape:md:flex-row", children: [jsx(Button, { variant: "secondary", onClick: () => LifiSupported.includes(bondChain)
|
|
374
|
+
? onOpenLifiModal()
|
|
375
|
+
: bondChain === ChainId.L1X
|
|
376
|
+
? onOpenl1xIframe()
|
|
377
|
+
: openExternal(), className: "ape:w-full ape:md:w-[35%] ape:text-[14px]! ape:lg:text-[16px]!", children: LifiSupported.includes(bondChain)
|
|
379
378
|
? `Bridge to ${SHORT_NETWORK_LABEL[bondData?.chainId]}`
|
|
380
379
|
: `Get ${getSymbol(bondData?.lpToken, bondData?.chainId)}` }), isUserRestricted ? (jsx(Button, { className: "action-button ape:w-full", disabled: true, children: "INSUFFICIENT TIER" })) : (jsx(Button, { className: "action-button ape:w-full ape:text-[14px]! ape:lg:text-[16px]!", load: load || fetchingZapQuote, disabled: load ||
|
|
381
380
|
bondData?.soldOut ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuyComponent.js","sources":["../../../src/views/BuyBond/BuyComponent.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport clsx from 'clsx'\nimport { convertToBigish } from '../../utils/convertToBigish'\nimport { mulDivRound, toFixedString } from '../../utils/fixedPoint'\nimport ABI_DEPOSIT from '../../config/abi/deposit.json'\nimport ABI_DEPOSIT_SIG from '../../config/abi/depositSig.json'\nimport { PurchasedBondData } from './BuyBondModal'\nimport {\n useChainId,\n useSendTransaction,\n useWriteContract,\n // useConfig\n} from 'wagmi'\nimport useModal from '../../hooks/useModal'\n// import ZapModal from '../ZapModal'\nimport { BillVersion, ChainId, LaunchBondTiers, MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport TokenSelectorPanel from '../../components/TokenSelectorPanel'\nimport { useApproval } from '../../state/allowance/useAllowance'\nimport { SoulZapTokenManager } from '../../config/constants/addresses'\nimport useSoulZapBondQuote from '../../state/zap/useSoulZapBondQuote'\nimport { parseEther } from 'viem'\nimport useBondsData from '../../state/bonds/useBondsData'\nimport useTokenFromZapList from '../../hooks/useTokenFromZapList'\nimport { useMonitorTx } from '../../hooks/useMonitorTx'\nimport { usePopups } from '../../state/popups/usePopups'\nimport {\n formatUSDNumber,\n getMaxBuy,\n getPayoutAmount,\n getPrincipalAmount,\n getRawBonus,\n} from '../../utils/displayHelpers'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { LifiSupported, zapSupported, ZapSupportedChainId } from '../../config/constants/variables'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport { useSendReferenceId } from '../../hooks/useSendReferenceId'\nimport ConnectButton from '../../components/ConnectButton'\nimport BondModalHeader from './components/BondModalHeader'\nimport BondCards from './components/BondCards/BondCards'\nimport Estimations from './components/Estimations'\nimport ProjectDescription from './components/ProjectDescription'\nimport track from '../../utils/track'\nimport { remove0xPrefix } from '../../utils/remove0xPrefix'\nimport useTierPoints, { getUserTier, Promotions, TIERS_WEIGHT } from '../../state/tiers/useTierPoints'\nimport NewRateModal from './components/NewRateModal/NewRateModal'\nimport NoBonusModal from './components/NoBonusModal/NoBonusModal'\nimport useTierProofSignature from '../../state/bonds/useTierProofSignature'\nimport PointsLeftForNextTier from './components/PointsLeftForNextTier/PointsLeftForNextTier'\nimport SafeHTMLComponent from '../../components/SafeHTMLComponent'\nimport useSortedZapList from '../../hooks/useSortedZapList'\nimport TransactionModal from '../TransactionModal/TransactionModal'\nimport { reportError } from '../../utils/reportError'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\nimport { MCBuyComponentStyles } from '../../utils/campaignStyles'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport LifiModal from '../LifiModal/LifiModal'\n// import useTierOptimizationPreview from '../../state/zap/useTierOptimizationPreview'\nimport { SHORT_NETWORK_LABEL } from '../../config/constants/chains'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Text from '../../components/uikit-sdk/Text'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport GetUpToComponent from './components/GetUpToComponent/GetUpToComponent'\n// import { simulateContract } from 'wagmi/actions'\n\nexport interface BuyComponentProps {\n onDismiss?: () => void // this is only the modal\n bondAddress?: string\n bondChain?: number\n handlePurchasedBond?: (data: PurchasedBondData) => void\n isProjectView?: boolean\n}\n\nconst PROMOTION_TRACKING_SUFFIXES: Partial<Record<Promotions, string>> = {\n [Promotions.WelcomeBonus]: 'welcome-bonus',\n [Promotions.BonusWeek]: 'bonus-week',\n}\n\nconst getPromotionTrackingSuffix = (promotion?: Promotions | null): string => {\n if (!promotion) return ''\n return PROMOTION_TRACKING_SUFFIXES[promotion] ?? ''\n}\n\nconst BuyComponent: React.FC<BuyComponentProps> = ({\n onDismiss,\n bondAddress,\n bondChain,\n handlePurchasedBond,\n isProjectView,\n}) => {\n // Hooks\n // const config = useConfig()\n const SDKConfig = useSDKConfig()\n const userChainId = useChainId()\n const { address: account } = useEVMAccount()\n const { writeContractAsync } = useWriteContract()\n const { sendTransactionAsync } = useSendTransaction()\n const { data: bonds, refetch: refetchBondState } = useBondsData()\n const sendReferenceId = useSendReferenceId()\n const { data: tierPointsState } = useTierPoints()\n const { promotionalPoints, promotion, eligibleChains, onChainPoints } = tierPointsState || {}\n // if promotion comes with eligibleChains undefined means it should be used for every chain\n const isBondEligibleForPromotion = eligibleChains === undefined || eligibleChains?.includes(bondChain as ChainId)\n const pointsToBeUsed = isBondEligibleForPromotion ? promotionalPoints : onChainPoints\n // Bond To be used\n const bondData = useMemo(() => {\n return bonds?.find((bond) => bond?.contractAddress?.[bond.chainId]?.toLowerCase() === bondAddress?.toLowerCase())!\n }, [bonds, bondAddress])\n\n // Tier Gating\n const userTier = getUserTier(pointsToBeUsed ?? '0')\n const minTier = bondData?.minTier !== undefined ? bondData.minTier : null\n const isUserRestricted = minTier !== null && (userTier === null || userTier < minTier)\n const trueBondPriceData = findHighestTrueBondPrice(pointsToBeUsed, bondData?.trueBondPrices)\n const trueBondPrice = trueBondPriceData?.trueBondPrice\n const { data: tierProofSig } = useTierProofSignature(bondAddress, bondChain, isUserRestricted)\n\n // State\n const [buyTxHash, setBuyTxHash] = useState<string | undefined>()\n const [inputValue, setInputValue] = useState('')\n const [inputTokenString, setInputTokenString] = useState(bondData?.lpToken?.address?.[bondData.chainId])\n\n // On-chain Data\n const inputToken = useTokenFromZapList(inputTokenString, bondData?.chainId, bondData?.lpToken)\n const isZapSupported = zapSupported.includes(bondData?.chainId as ZapSupportedChainId)\n\n const [fetchingZapQuote, zapData, zapDepositAmount, zapError, zapTrueBondPrice] = useSoulZapBondQuote(\n inputValue,\n inputToken,\n bondData,\n account,\n tierProofSig ?? undefined,\n )\n\n const { sortedZapList, isFetched: zapListFetched } = useSortedZapList(bondChain, bondData?.lpToken)\n const enrichedTokenData = sortedZapList.find((item) =>\n item.token === 'NATIVE' || inputToken === 'NATIVE'\n ? item.token === inputToken\n : item?.token?.address?.[bondChain as ChainId]?.toLowerCase() ===\n inputToken?.address?.[bondChain as ChainId]?.toLowerCase(),\n )\n const inputCurrencyBalance = enrichedTokenData?.balance\n const inputTokenPrice = enrichedTokenData?.price\n const rateChanged = parseFloat(zapTrueBondPrice ?? '0') > parseFloat(trueBondPrice ?? '0') * 1.01 && isZapSupported\n const promotionTrackingSuffix = getPromotionTrackingSuffix(promotion)\n const getTrackingCategory = useCallback(\n (baseCategory: string) => (promotionTrackingSuffix ? `${baseCategory}-${promotionTrackingSuffix}` : baseCategory),\n [promotionTrackingSuffix],\n )\n\n // Estimations\n const depositAmount = isZapSupported ? zapDepositAmount : inputValue\n const youSpendString = `${formatNumberSI(inputValue)} ${getSymbol(inputToken, bondData?.chainId)} = \n $${formatUSDNumber((parseFloat(inputValue) * (inputTokenPrice ?? 0)).toString())}`\n\n // Validations\n const exceedsRealMaxBuy = getMaxBuy(bondData, true) <= getPayoutAmount(bondData, depositAmount, pointsToBeUsed)\n const exceedsSafeMaxBuy =\n getMaxBuy(bondData, false) * (isZapSupported ? 0.995 : 0.9995) <=\n getPayoutAmount(bondData, depositAmount, pointsToBeUsed)\n const exceedsBalance = Number(inputCurrencyBalance ?? '0') < Number(inputValue)\n const isPrincipalTokenLP = bondData?.lpToken?.symbol?.includes('-')\n\n // Loading State\n const [loadingTx, setLoadingTx] = useState(false)\n const { addToastError } = usePopups()\n const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTx(buyTxHash, userChainId)\n const load = loadingTx || (isConfirming && !isConfirmed)\n\n // State Handlers\n const handleCurrencySelect = useCallback((newInputToken: string) => {\n setInputValue('')\n setInputTokenString(newInputToken)\n }, [])\n\n const handleMaxButton = useCallback(() => {\n const balance = Number(inputCurrencyBalance ?? '0')\n const maxBuyAmount = getMaxBuy(bondData, SDKConfig.showLowValueBonds)\n\n if (!isZapSupported) {\n const maxPossibleUserPurchase = getPayoutAmount(bondData, balance.toString(), pointsToBeUsed)\n const principalDecimals = bondData?.lpToken?.decimals?.[bondData?.chainId] ?? 18\n if (maxPossibleUserPurchase > maxBuyAmount) {\n const principalForMaxBuy = getPrincipalAmount(bondData, maxBuyAmount.toString(), pointsToBeUsed)\n setInputValue(toFixedString(principalForMaxBuy, principalDecimals))\n } else {\n setInputValue(toFixedString(balance, principalDecimals))\n }\n } else {\n const principalForMaxBuy = getPrincipalAmount(bondData, maxBuyAmount.toString(), pointsToBeUsed)\n const principalForMaxBuyUSD = principalForMaxBuy * Number(bondData?.principalTokenPrice ?? 0)\n const maxBuyAmountInSelectedToken = principalForMaxBuyUSD / (inputTokenPrice ?? 0)\n const decimals =\n enrichedTokenData?.token === 'NATIVE' ? 18 : (enrichedTokenData?.token.decimals[bondData?.chainId] ?? 18)\n\n if (balance >= maxBuyAmountInSelectedToken) {\n setInputValue(toFixedString(maxBuyAmountInSelectedToken, decimals))\n } else {\n setInputValue(toFixedString(balance, decimals))\n }\n }\n }, [\n bondData,\n isZapSupported,\n pointsToBeUsed,\n SDKConfig.showLowValueBonds,\n inputTokenPrice,\n enrichedTokenData?.token,\n inputCurrencyBalance,\n ])\n\n // Approve & Purchase Functions\n const [approvalState, approveCallback] = useApproval(\n inputValue,\n inputToken ?? null,\n (isZapSupported\n ? SoulZapTokenManager?.[bondData?.chainId as ZapSupportedChainId]\n : bondData?.contractAddress?.[bondData.chainId]) ?? null,\n account ?? null,\n bondData?.chainId ?? null,\n )\n const handleApprove = async () => {\n return approveCallback().then(() => {\n track({\n event: 'approveBondClick',\n chain: userChainId,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n },\n })\n })\n }\n\n const handleBuyCallback = async () => {\n const billAddress: `0x${string}` = bondData?.contractAddress?.[bondData.chainId] as `0x${string}`\n const decimals = bondData?.lpToken.decimals?.[bondData?.chainId] ?? 18\n track({\n event: 'buyBondClick',\n chain: bondChain,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n value: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n try {\n const maxPrice = mulDivRound(BigInt(trueBondPrice ?? '0'), 102n, 100n, 'halfUp').toString() // multiply it by 1.02\n const amount = convertToBigish(inputValue, decimals)\n\n const shouldUseSig = bondData?.billVersion === BillVersion.V4 && SDKConfig.useTiers\n const args = shouldUseSig ? [amount, maxPrice, account, tierProofSig] : [amount, maxPrice, account]\n\n // const simulationResult = await simulateContract(config, {\n // address: billAddress,\n // abi: ABI_DEPOSIT_SIG,\n // functionName: 'deposit',\n // args: args,\n // chainId: bondData?.chainId as any,\n // account,\n // })\n // .then((e) => console.log('success!', e))\n // .catch((e) => {\n // console.error(e)\n // })\n\n const hash = await writeContractAsync({\n address: billAddress,\n abi: shouldUseSig ? ABI_DEPOSIT_SIG : ABI_DEPOSIT,\n functionName: 'deposit',\n args: args,\n chain: bondData?.chainId as any,\n account,\n })\n if (hash) {\n setBuyTxHash(hash)\n await sendReferenceId(billAddress, userChainId, hash)\n\n // lostProfit\n const bonusString = getRawBonus(bondData, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical])\n const noTierAmount = getRawBonus(bondData, depositAmount, '0')\n const lostProfit = parseFloat(bonusString) - parseFloat(noTierAmount)\n\n handlePurchasedBond?.({\n buyTxHash: hash,\n lostProfit: SDKConfig.useTiers && !userTier && lostProfit > 0.01 ? lostProfit.toFixed(2) : undefined,\n })\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: getTrackingCategory('lp-buy'),\n type: bondData?.billType ?? '',\n typedValue: inputValue,\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(bondData?.contractAddress?.[bondData.chainId]),\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n }\n } catch (error: any) {\n console.error('Buy error', error)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'buyBond', bondData, error },\n chainId: bondChain,\n account,\n })\n addToastError(error.shortMessage)\n }\n }\n\n const handleZapCallback = async () => {\n if (zapData && zapData?.txData?.to && zapData?.txData?.data) {\n console.log('Attempting zap tx')\n track({\n event: 'buyBondClick',\n chain: bondData?.chainId,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol ?? '',\n value: zapData.lpQuote.fromAmountUSD,\n },\n })\n try {\n console.log(zapData)\n const validated18DecimalAmount = toFixedString(inputValue ?? '0', 18, 'trunc')\n const parsedValue = parseEther(validated18DecimalAmount)\n\n const hash = await sendTransactionAsync({\n to: zapData.txData.to,\n data: zapData.txData.data,\n value: inputToken === 'NATIVE' ? parsedValue : undefined,\n })\n if (hash) {\n setBuyTxHash(hash)\n await sendReferenceId(bondData?.contractAddress?.[bondData.chainId] ?? '', userChainId, hash)\n\n // lostProfit\n const bonusString = getRawBonus(bondData, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical])\n const noTierAmount = getRawBonus(bondData, depositAmount, '0')\n const lostProfit = parseFloat(bonusString) - parseFloat(noTierAmount)\n\n handlePurchasedBond?.({\n buyTxHash: hash,\n lostProfit: SDKConfig.useTiers && !userTier && lostProfit > 0.01 ? lostProfit.toFixed(2) : undefined,\n })\n track({\n event: 'zap',\n chain: bondChain,\n data: {\n cat: 'bill',\n token1: getSymbol(inputToken),\n token2: `${bondData?.lpToken.symbol ?? ''}`,\n amount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: getTrackingCategory('zap-buy'),\n type: bondData?.billType ?? '',\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(bondData?.contractAddress?.[bondData.chainId]),\n amount: inputValue,\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n }\n } catch (e: any) {\n console.log(e)\n addToastError(e.shortMessage)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e,\n extraInfo: { type: 'zapBuyBond', bondData, zapData, e },\n chainId: bondChain,\n account,\n })\n }\n }\n }\n\n const handleBothPurchases = () => {\n setLoadingTx(true)\n if (isZapSupported) {\n handleZapCallback().finally(() => setLoadingTx(false))\n } else {\n handleBuyCallback().finally(() => setLoadingTx(false))\n }\n }\n\n const handleOpenModal = () => {\n const bonus = trueBondPriceData?.bonusWithFee ?? 0\n if (bonus <= 0) {\n openNoBonusModal()\n } else {\n openTxModal()\n }\n }\n\n const openExternal = () => {\n if (bondData?.lpToken?.getLpUrl?.[bondData?.chainId]) {\n window.open(bondData.lpToken.getLpUrl?.[bondData?.chainId], '_blank')\n } else {\n window.open(\n `https://ape.bond/swap?outputcurrency=${bondData?.lpToken.address[bondData?.chainId]}&outputChain=${bondData?.chainId}`,\n '_blank',\n )\n }\n }\n\n // Modals\n const [onOpenLifiModal] = useModal(\n <LifiModal\n bondChain={bondChain}\n principalToken={isPrincipalTokenLP ? 'ETH' : bondData?.lpToken?.address?.[bondData?.chainId]}\n />,\n )\n\n const [openNewRateModal] = useModal(\n <NewRateModal\n bond={bondData}\n zapTrueBondPrice={zapTrueBondPrice}\n depositAmount={depositAmount}\n youSpendString={youSpendString}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />,\n true,\n false,\n 'newRateModal',\n )\n\n const [openTxModal] = useModal(\n <TransactionModal\n txChain={bondChain}\n approvalState={approvalState}\n approveCallback={handleApprove}\n loadingTx={loadingTx}\n txCallback={handleBothPurchases}\n bondData={bondData!}\n inputToken={inputToken}\n inputValue={inputValue}\n depositAmount={depositAmount}\n buyTxHash={buyTxHash}\n rateChanged={rateChanged}\n />,\n false,\n true,\n 'transactionModal',\n )\n\n // const [onOpenZapModal] = useModal(\n // <ZapModal outputToken={bondData?.lpToken as Token} account={account} chainId={bondData?.chainId as ChainId} />,\n // true,\n // true,\n // 'zapModal',\n // )\n\n const [openNoBonusModal] = useModal(\n <NoBonusModal onAcknowledge={openTxModal} showcaseTokenName={bondData?.showcaseTokenName} />,\n true,\n true,\n 'NoBonusModal',\n )\n\n // Effects\n const [hasChecked, setHasChecked] = useState(false)\n useEffect(() => {\n if (zapListFetched && !hasChecked) {\n if (parseFloat(inputCurrencyBalance ?? '0') < 0.0001) {\n setInputTokenString(\n sortedZapList[0].token === 'NATIVE' ? 'NATIVE' : sortedZapList[0].token.address[bondChain as ChainId],\n )\n }\n setHasChecked(true)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [inputCurrencyBalance, zapListFetched])\n\n // If rateChanged meaning the zap quote has a >1% difference from the true bond price, we let the user know and we update state\n useEffect(() => {\n if (rateChanged) {\n console.log('rate changed, refetch state and let user know')\n openNewRateModal()\n refetchBondState()\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [rateChanged])\n\n return bondData ? (\n <Flex\n className=\"modal-content ape:flex ape:flex-col ape:rounded-[10px] ape:bg-white2 ape:w-full ape:p-3.75 ape:md:p-5\"\n style={{ ...MCBuyComponentStyles[bondData?.marketingCampaign as MarketingCampaign] }}\n >\n <Flex className=\"modaltable-container ape:w-full ape:flex ape:flex-col ape:relative ape:gap-2.5\">\n <BondModalHeader\n bondData={bondData}\n onDismiss={onDismiss}\n showProjectInfoButton={SDKConfig?.referenceId === 'apebond'}\n />\n <ProjectDescription description={bondData.shortDescription} isProjectView />\n <Flex className={clsx('ape:w-full', isProjectView ? 'ape:hidden ape:lg:flex' : 'ape:flex')}>\n <BondCards bondData={bondData} isDoingMaxBuy={exceedsSafeMaxBuy && !exceedsRealMaxBuy} />\n </Flex>\n <Estimations\n depositAmount={depositAmount}\n inputValue={inputValue}\n inputTokenPrice={inputTokenPrice}\n bondData={bondData}\n youSpendString={youSpendString}\n isZap={isZapSupported}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />\n <TokenSelectorPanel\n typedValue={inputValue}\n setTypedValue={setInputValue}\n selectedToken={inputToken}\n handleValueBtn={handleMaxButton}\n handleCurrencySelect={handleCurrencySelect}\n bondChainId={bondData?.chainId}\n enableZap={isZapSupported}\n bondPrincipalToken={bondData?.lpToken}\n tokenBalance={inputCurrencyBalance}\n selectedTokenPrice={inputTokenPrice}\n inputDisabled={isUserRestricted}\n marketingCampaign={bondData?.marketingCampaign}\n isConnected={!!account}\n />\n {SDKConfig.useTiers && userTier !== LaunchBondTiers.Mythical && bondData?.billVersion === BillVersion.V4 && (\n <>\n {(bondData?.trueBondPrices?.length ?? 0) > 1 ? (\n <PointsLeftForNextTier\n bond={bondData}\n inputAmount={inputValue}\n setInputValue={setInputValue}\n inputTokenPrice={inputTokenPrice}\n inputTokenDecimals={inputToken === 'NATIVE' ? 18 : (inputToken?.decimals?.[bondData?.chainId] ?? 18)}\n />\n ) : (\n <GetUpToComponent bond={bondData} depositAmount={depositAmount} />\n )}\n </>\n )}\n {bondData?.warningCard && (\n <Flex className=\"ape:w-full ape:rounded-normal ape:p-[2px_10px]\" style={{ background: '#DE62F366' }}>\n <Text as=\"div\" size=\"12px\" className=\"ape:font-normal ape:flex ape:items-center ape:leading-5.5!\">\n <SafeHTMLComponent html={bondData?.warningCard} />\n </Text>\n </Flex>\n )}\n <Flex className=\"modaltable-container button-container ape:w-full ape:flex ape:relative ape:flex-row ape:justify-between\">\n <Flex className=\"button-container buy ape:justify-center ape:items-center ape:cursor-pointer ape:w-full\">\n {!account ? (\n <ConnectButton />\n ) : (\n <Flex className=\"ape:w-full ape:gap-[10px] ape:flex-col ape:md:flex-row\">\n <Button\n variant=\"secondary\"\n onClick={() => (LifiSupported.includes(bondChain!) ? onOpenLifiModal() : openExternal())}\n className=\"ape:w-full ape:md:w-[35%] ape:text-[14px]! ape:lg:text-[16px]!\"\n >\n {LifiSupported.includes(bondChain!)\n ? `Bridge to ${SHORT_NETWORK_LABEL[bondData?.chainId as ChainId]}`\n : `Get ${getSymbol(bondData?.lpToken, bondData?.chainId)}`}\n </Button>\n {isUserRestricted ? (\n <Button className=\"action-button ape:w-full\" disabled>\n INSUFFICIENT TIER\n </Button>\n ) : (\n <Button\n className=\"action-button ape:w-full ape:text-[14px]! ape:lg:text-[16px]!\"\n load={load || fetchingZapQuote}\n disabled={\n load ||\n bondData?.soldOut ||\n !account ||\n !inputValue ||\n parseFloat(inputValue) === 0 ||\n fetchingZapQuote ||\n zapError ||\n exceedsRealMaxBuy ||\n exceedsBalance ||\n (isZapSupported && !zapData) ||\n SDKConfig.blockSales\n }\n onClick={handleOpenModal}\n >\n {SDKConfig.blockSales\n ? 'Complete KYC to Buy'\n : exceedsRealMaxBuy\n ? 'Exceeds Max Buy. Reduce amount'\n : exceedsBalance\n ? 'Exceeds balance'\n : zapError\n ? 'something went wrong'\n : !inputValue || parseFloat(inputValue) === 0\n ? 'Insert amount'\n : `buy`}\n </Button>\n )}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <></>\n )\n}\nexport default React.memo(BuyComponent)\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BuyComponent.js","sources":["../../../src/views/BuyBond/BuyComponent.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport clsx from 'clsx'\nimport { convertToBigish } from '../../utils/convertToBigish'\nimport { mulDivRound, toFixedString } from '../../utils/fixedPoint'\nimport ABI_DEPOSIT from '../../config/abi/deposit.json'\nimport ABI_DEPOSIT_SIG from '../../config/abi/depositSig.json'\nimport { PurchasedBondData } from './BuyBondModal'\nimport {\n useChainId,\n useSendTransaction,\n useWriteContract,\n // useConfig\n} from 'wagmi'\nimport useModal from '../../hooks/useModal'\n// import ZapModal from '../ZapModal'\nimport { BillVersion, ChainId, LaunchBondTiers, MarketingCampaign } from '@ape.swap/apeswap-lists'\nimport TokenSelectorPanel from '../../components/TokenSelectorPanel'\nimport { useApproval } from '../../state/allowance/useAllowance'\nimport { SoulZapTokenManager } from '../../config/constants/addresses'\nimport useSoulZapBondQuote from '../../state/zap/useSoulZapBondQuote'\nimport { parseEther } from 'viem'\nimport useBondsData from '../../state/bonds/useBondsData'\nimport useTokenFromZapList from '../../hooks/useTokenFromZapList'\nimport { useMonitorTx } from '../../hooks/useMonitorTx'\nimport { usePopups } from '../../state/popups/usePopups'\nimport {\n formatUSDNumber,\n getMaxBuy,\n getPayoutAmount,\n getPrincipalAmount,\n getRawBonus,\n} from '../../utils/displayHelpers'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { LifiSupported, zapSupported, ZapSupportedChainId } from '../../config/constants/variables'\nimport { getSymbol } from '../../utils/getNativeTicker'\nimport { useSendReferenceId } from '../../hooks/useSendReferenceId'\nimport ConnectButton from '../../components/ConnectButton'\nimport BondModalHeader from './components/BondModalHeader'\nimport BondCards from './components/BondCards/BondCards'\nimport Estimations from './components/Estimations'\nimport ProjectDescription from './components/ProjectDescription'\nimport track from '../../utils/track'\nimport { remove0xPrefix } from '../../utils/remove0xPrefix'\nimport useTierPoints, { getUserTier, Promotions, TIERS_WEIGHT } from '../../state/tiers/useTierPoints'\nimport NewRateModal from './components/NewRateModal/NewRateModal'\nimport NoBonusModal from './components/NoBonusModal/NoBonusModal'\nimport useTierProofSignature from '../../state/bonds/useTierProofSignature'\nimport PointsLeftForNextTier from './components/PointsLeftForNextTier/PointsLeftForNextTier'\nimport SafeHTMLComponent from '../../components/SafeHTMLComponent'\nimport useSortedZapList from '../../hooks/useSortedZapList'\nimport TransactionModal from '../TransactionModal/TransactionModal'\nimport { reportError } from '../../utils/reportError'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\nimport { MCBuyComponentStyles } from '../../utils/campaignStyles'\nimport useEVMAccount from '../../hooks/accounts/useEVMAccount'\nimport LifiModal from '../LifiModal/LifiModal'\n// import useTierOptimizationPreview from '../../state/zap/useTierOptimizationPreview'\nimport { SHORT_NETWORK_LABEL } from '../../config/constants/chains'\nimport Flex from '../../components/uikit-sdk/Flex'\nimport Text from '../../components/uikit-sdk/Text'\nimport Button from '../../components/uikit-sdk/Button/Button'\nimport { formatNumberSI } from '../../utils/formatNumber'\nimport GetUpToComponent from './components/GetUpToComponent/GetUpToComponent'\nimport L1xIframe from './components/L1xIframe/L1xIframe'\n// import { simulateContract } from 'wagmi/actions'\n\nexport interface BuyComponentProps {\n onDismiss?: () => void // this is only the modal\n bondAddress?: string\n bondChain?: number\n handlePurchasedBond?: (data: PurchasedBondData) => void\n isProjectView?: boolean\n}\n\nconst PROMOTION_TRACKING_SUFFIXES: Partial<Record<Promotions, string>> = {\n [Promotions.WelcomeBonus]: 'welcome-bonus',\n [Promotions.BonusWeek]: 'bonus-week',\n}\n\nconst getPromotionTrackingSuffix = (promotion?: Promotions | null): string => {\n if (!promotion) return ''\n return PROMOTION_TRACKING_SUFFIXES[promotion] ?? ''\n}\n\nconst BuyComponent: React.FC<BuyComponentProps> = ({\n onDismiss,\n bondAddress,\n bondChain,\n handlePurchasedBond,\n isProjectView,\n}) => {\n // Hooks\n // const config = useConfig()\n const SDKConfig = useSDKConfig()\n const userChainId = useChainId()\n const { address: account } = useEVMAccount()\n const { writeContractAsync } = useWriteContract()\n const { sendTransactionAsync } = useSendTransaction()\n const { data: bonds, refetch: refetchBondState } = useBondsData()\n const sendReferenceId = useSendReferenceId()\n const { data: tierPointsState } = useTierPoints()\n const { promotionalPoints, promotion, eligibleChains, onChainPoints } = tierPointsState || {}\n // if promotion comes with eligibleChains undefined means it should be used for every chain\n const isBondEligibleForPromotion = eligibleChains === undefined || eligibleChains?.includes(bondChain as ChainId)\n const pointsToBeUsed = isBondEligibleForPromotion ? promotionalPoints : onChainPoints\n // Bond To be used\n const bondData = useMemo(() => {\n return bonds?.find((bond) => bond?.contractAddress?.[bond.chainId]?.toLowerCase() === bondAddress?.toLowerCase())!\n }, [bonds, bondAddress])\n\n // Tier Gating\n const userTier = getUserTier(pointsToBeUsed ?? '0')\n const minTier = bondData?.minTier !== undefined ? bondData.minTier : null\n const isUserRestricted = minTier !== null && (userTier === null || userTier < minTier)\n const trueBondPriceData = findHighestTrueBondPrice(pointsToBeUsed, bondData?.trueBondPrices)\n const trueBondPrice = trueBondPriceData?.trueBondPrice\n const { data: tierProofSig } = useTierProofSignature(bondAddress, bondChain, isUserRestricted)\n\n // State\n const [buyTxHash, setBuyTxHash] = useState<string | undefined>()\n const [inputValue, setInputValue] = useState('')\n const [inputTokenString, setInputTokenString] = useState(bondData?.lpToken?.address?.[bondData.chainId])\n\n // On-chain Data\n const inputToken = useTokenFromZapList(inputTokenString, bondData?.chainId, bondData?.lpToken)\n const isZapSupported = zapSupported.includes(bondData?.chainId as ZapSupportedChainId)\n\n const [fetchingZapQuote, zapData, zapDepositAmount, zapError, zapTrueBondPrice] = useSoulZapBondQuote(\n inputValue,\n inputToken,\n bondData,\n account,\n tierProofSig ?? undefined,\n )\n\n const { sortedZapList, isFetched: zapListFetched } = useSortedZapList(bondChain, bondData?.lpToken)\n const enrichedTokenData = sortedZapList.find((item) =>\n item.token === 'NATIVE' || inputToken === 'NATIVE'\n ? item.token === inputToken\n : item?.token?.address?.[bondChain as ChainId]?.toLowerCase() ===\n inputToken?.address?.[bondChain as ChainId]?.toLowerCase(),\n )\n const inputCurrencyBalance = enrichedTokenData?.balance\n const inputTokenPrice = enrichedTokenData?.price\n const rateChanged = parseFloat(zapTrueBondPrice ?? '0') > parseFloat(trueBondPrice ?? '0') * 1.01 && isZapSupported\n const promotionTrackingSuffix = getPromotionTrackingSuffix(promotion)\n const getTrackingCategory = useCallback(\n (baseCategory: string) => (promotionTrackingSuffix ? `${baseCategory}-${promotionTrackingSuffix}` : baseCategory),\n [promotionTrackingSuffix],\n )\n\n // Estimations\n const depositAmount = isZapSupported ? zapDepositAmount : inputValue\n const youSpendString = `${formatNumberSI(inputValue)} ${getSymbol(inputToken, bondData?.chainId)} = \n $${formatUSDNumber((parseFloat(inputValue) * (inputTokenPrice ?? 0)).toString())}`\n\n // Validations\n const exceedsRealMaxBuy = getMaxBuy(bondData, true) <= getPayoutAmount(bondData, depositAmount, pointsToBeUsed)\n const exceedsSafeMaxBuy =\n getMaxBuy(bondData, false) * (isZapSupported ? 0.995 : 0.9995) <=\n getPayoutAmount(bondData, depositAmount, pointsToBeUsed)\n const exceedsBalance = Number(inputCurrencyBalance ?? '0') < Number(inputValue)\n const isPrincipalTokenLP = bondData?.lpToken?.symbol?.includes('-')\n\n // Loading State\n const [loadingTx, setLoadingTx] = useState(false)\n const { addToastError } = usePopups()\n const { isLoading: isConfirming, isSuccess: isConfirmed } = useMonitorTx(buyTxHash, userChainId)\n const load = loadingTx || (isConfirming && !isConfirmed)\n\n // State Handlers\n const handleCurrencySelect = useCallback((newInputToken: string) => {\n setInputValue('')\n setInputTokenString(newInputToken)\n }, [])\n\n const handleMaxButton = useCallback(() => {\n const balance = Number(inputCurrencyBalance ?? '0')\n const maxBuyAmount = getMaxBuy(bondData, SDKConfig.showLowValueBonds)\n\n if (!isZapSupported) {\n const maxPossibleUserPurchase = getPayoutAmount(bondData, balance.toString(), pointsToBeUsed)\n const principalDecimals = bondData?.lpToken?.decimals?.[bondData?.chainId] ?? 18\n if (maxPossibleUserPurchase > maxBuyAmount) {\n const principalForMaxBuy = getPrincipalAmount(bondData, maxBuyAmount.toString(), pointsToBeUsed)\n setInputValue(toFixedString(principalForMaxBuy, principalDecimals))\n } else {\n setInputValue(toFixedString(balance, principalDecimals))\n }\n } else {\n const principalForMaxBuy = getPrincipalAmount(bondData, maxBuyAmount.toString(), pointsToBeUsed)\n const principalForMaxBuyUSD = principalForMaxBuy * Number(bondData?.principalTokenPrice ?? 0)\n const maxBuyAmountInSelectedToken = principalForMaxBuyUSD / (inputTokenPrice ?? 0)\n const decimals =\n enrichedTokenData?.token === 'NATIVE' ? 18 : (enrichedTokenData?.token.decimals[bondData?.chainId] ?? 18)\n\n if (balance >= maxBuyAmountInSelectedToken) {\n setInputValue(toFixedString(maxBuyAmountInSelectedToken, decimals))\n } else {\n setInputValue(toFixedString(balance, decimals))\n }\n }\n }, [\n bondData,\n isZapSupported,\n pointsToBeUsed,\n SDKConfig.showLowValueBonds,\n inputTokenPrice,\n enrichedTokenData?.token,\n inputCurrencyBalance,\n ])\n\n // Approve & Purchase Functions\n const [approvalState, approveCallback] = useApproval(\n inputValue,\n inputToken ?? null,\n (isZapSupported\n ? SoulZapTokenManager?.[bondData?.chainId as ZapSupportedChainId]\n : bondData?.contractAddress?.[bondData.chainId]) ?? null,\n account ?? null,\n bondData?.chainId ?? null,\n )\n const handleApprove = async () => {\n return approveCallback().then(() => {\n track({\n event: 'approveBondClick',\n chain: userChainId,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n },\n })\n })\n }\n\n const handleBuyCallback = async () => {\n const billAddress: `0x${string}` = bondData?.contractAddress?.[bondData.chainId] as `0x${string}`\n const decimals = bondData?.lpToken.decimals?.[bondData?.chainId] ?? 18\n track({\n event: 'buyBondClick',\n chain: bondChain,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol,\n value: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n try {\n const maxPrice = mulDivRound(BigInt(trueBondPrice ?? '0'), 102n, 100n, 'halfUp').toString() // multiply it by 1.02\n const amount = convertToBigish(inputValue, decimals)\n\n const shouldUseSig = bondData?.billVersion === BillVersion.V4 && SDKConfig.useTiers\n const args = shouldUseSig ? [amount, maxPrice, account, tierProofSig] : [amount, maxPrice, account]\n\n // const simulationResult = await simulateContract(config, {\n // address: billAddress,\n // abi: ABI_DEPOSIT_SIG,\n // functionName: 'deposit',\n // args: args,\n // chainId: bondData?.chainId as any,\n // account,\n // })\n // .then((e) => console.log('success!', e))\n // .catch((e) => {\n // console.error(e)\n // })\n\n const hash = await writeContractAsync({\n address: billAddress,\n abi: shouldUseSig ? ABI_DEPOSIT_SIG : ABI_DEPOSIT,\n functionName: 'deposit',\n args: args,\n chain: bondData?.chainId as any,\n account,\n })\n if (hash) {\n setBuyTxHash(hash)\n await sendReferenceId(billAddress, userChainId, hash)\n\n // lostProfit\n const bonusString = getRawBonus(bondData, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical])\n const noTierAmount = getRawBonus(bondData, depositAmount, '0')\n const lostProfit = parseFloat(bonusString) - parseFloat(noTierAmount)\n\n handlePurchasedBond?.({\n buyTxHash: hash,\n lostProfit: SDKConfig.useTiers && !userTier && lostProfit > 0.01 ? lostProfit.toFixed(2) : undefined,\n })\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: getTrackingCategory('lp-buy'),\n type: bondData?.billType ?? '',\n typedValue: inputValue,\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(bondData?.contractAddress?.[bondData.chainId]),\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n }\n } catch (error: any) {\n console.error('Buy error', error)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'buyBond', bondData, error },\n chainId: bondChain,\n account,\n })\n addToastError(error.shortMessage)\n }\n }\n\n const handleZapCallback = async () => {\n if (zapData && zapData?.txData?.to && zapData?.txData?.data) {\n console.log('Attempting zap tx')\n track({\n event: 'buyBondClick',\n chain: bondData?.chainId,\n data: {\n cat: bondData?.billType,\n bond: bondData?.earnToken.symbol ?? '',\n value: zapData.lpQuote.fromAmountUSD,\n },\n })\n try {\n console.log(zapData)\n const validated18DecimalAmount = toFixedString(inputValue ?? '0', 18, 'trunc')\n const parsedValue = parseEther(validated18DecimalAmount)\n\n const hash = await sendTransactionAsync({\n to: zapData.txData.to,\n data: zapData.txData.data,\n value: inputToken === 'NATIVE' ? parsedValue : undefined,\n })\n if (hash) {\n setBuyTxHash(hash)\n await sendReferenceId(bondData?.contractAddress?.[bondData.chainId] ?? '', userChainId, hash)\n\n // lostProfit\n const bonusString = getRawBonus(bondData, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical])\n const noTierAmount = getRawBonus(bondData, depositAmount, '0')\n const lostProfit = parseFloat(bonusString) - parseFloat(noTierAmount)\n\n handlePurchasedBond?.({\n buyTxHash: hash,\n lostProfit: SDKConfig.useTiers && !userTier && lostProfit > 0.01 ? lostProfit.toFixed(2) : undefined,\n })\n track({\n event: 'zap',\n chain: bondChain,\n data: {\n cat: 'bill',\n token1: getSymbol(inputToken),\n token2: `${bondData?.lpToken.symbol ?? ''}`,\n amount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n track({\n event: 'bond',\n chain: bondChain,\n data: {\n cat: getTrackingCategory('zap-buy'),\n type: bondData?.billType ?? '',\n principalToken: bondData?.lpToken.symbol ?? '',\n earnToken: bondData?.earnToken.symbol ?? '',\n address: remove0xPrefix(bondData?.contractAddress?.[bondData.chainId]),\n amount: inputValue,\n usdAmount: parseFloat(inputValue) * (inputTokenPrice ?? 0),\n },\n })\n }\n } catch (e: any) {\n console.log(e)\n addToastError(e.shortMessage)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error: e,\n extraInfo: { type: 'zapBuyBond', bondData, zapData, e },\n chainId: bondChain,\n account,\n })\n }\n }\n }\n\n const handleBothPurchases = () => {\n setLoadingTx(true)\n if (isZapSupported) {\n handleZapCallback().finally(() => setLoadingTx(false))\n } else {\n handleBuyCallback().finally(() => setLoadingTx(false))\n }\n }\n\n const handleOpenModal = () => {\n const bonus = trueBondPriceData?.bonusWithFee ?? 0\n if (bonus <= 0) {\n openNoBonusModal()\n } else {\n openTxModal()\n }\n }\n\n const openExternal = () => {\n if (bondData?.lpToken?.getLpUrl?.[bondData?.chainId]) {\n window.open(bondData.lpToken.getLpUrl?.[bondData?.chainId], '_blank')\n } else {\n window.open(\n `https://ape.bond/swap?outputcurrency=${bondData?.lpToken.address[bondData?.chainId]}&outputChain=${bondData?.chainId}`,\n '_blank',\n )\n }\n }\n\n // Modals\n const [onOpenl1xIframe] = useModal(<L1xIframe />)\n\n const [onOpenLifiModal] = useModal(\n <LifiModal\n bondChain={bondChain}\n principalToken={isPrincipalTokenLP ? 'ETH' : bondData?.lpToken?.address?.[bondData?.chainId]}\n />,\n )\n\n const [openNewRateModal] = useModal(\n <NewRateModal\n bond={bondData}\n zapTrueBondPrice={zapTrueBondPrice}\n depositAmount={depositAmount}\n youSpendString={youSpendString}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />,\n true,\n false,\n 'newRateModal',\n )\n\n const [openTxModal] = useModal(\n <TransactionModal\n txChain={bondChain}\n approvalState={approvalState}\n approveCallback={handleApprove}\n loadingTx={loadingTx}\n txCallback={handleBothPurchases}\n bondData={bondData!}\n inputToken={inputToken}\n inputValue={inputValue}\n depositAmount={depositAmount}\n buyTxHash={buyTxHash}\n rateChanged={rateChanged}\n />,\n false,\n true,\n 'transactionModal',\n )\n\n const [openNoBonusModal] = useModal(\n <NoBonusModal onAcknowledge={openTxModal} showcaseTokenName={bondData?.showcaseTokenName} />,\n true,\n true,\n 'NoBonusModal',\n )\n\n // Effects\n const [hasChecked, setHasChecked] = useState(false)\n useEffect(() => {\n if (zapListFetched && !hasChecked) {\n if (parseFloat(inputCurrencyBalance ?? '0') < 0.0001) {\n setInputTokenString(\n sortedZapList[0].token === 'NATIVE' ? 'NATIVE' : sortedZapList[0].token.address[bondChain as ChainId],\n )\n }\n setHasChecked(true)\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [inputCurrencyBalance, zapListFetched])\n\n // If rateChanged meaning the zap quote has a >1% difference from the true bond price, we let the user know and we update state\n useEffect(() => {\n if (rateChanged) {\n console.log('rate changed, refetch state and let user know')\n openNewRateModal()\n refetchBondState()\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [rateChanged])\n\n return bondData ? (\n <Flex\n className=\"modal-content ape:flex ape:flex-col ape:rounded-[10px] ape:bg-white2 ape:w-full ape:p-3.75 ape:md:p-5\"\n style={{ ...MCBuyComponentStyles[bondData?.marketingCampaign as MarketingCampaign] }}\n >\n <Flex className=\"modaltable-container ape:w-full ape:flex ape:flex-col ape:relative ape:gap-2.5\">\n <BondModalHeader\n bondData={bondData}\n onDismiss={onDismiss}\n showProjectInfoButton={SDKConfig?.referenceId === 'apebond'}\n />\n <ProjectDescription description={bondData.shortDescription} isProjectView />\n <Flex className={clsx('ape:w-full', isProjectView ? 'ape:hidden ape:lg:flex' : 'ape:flex')}>\n <BondCards bondData={bondData} isDoingMaxBuy={exceedsSafeMaxBuy && !exceedsRealMaxBuy} />\n </Flex>\n <Estimations\n depositAmount={depositAmount}\n inputValue={inputValue}\n inputTokenPrice={inputTokenPrice}\n bondData={bondData}\n youSpendString={youSpendString}\n isZap={isZapSupported}\n fetchingZapQuote={fetchingZapQuote}\n zapError={zapError}\n />\n <TokenSelectorPanel\n typedValue={inputValue}\n setTypedValue={setInputValue}\n selectedToken={inputToken}\n handleValueBtn={handleMaxButton}\n handleCurrencySelect={handleCurrencySelect}\n bondChainId={bondData?.chainId}\n enableZap={isZapSupported}\n bondPrincipalToken={bondData?.lpToken}\n tokenBalance={inputCurrencyBalance}\n selectedTokenPrice={inputTokenPrice}\n inputDisabled={isUserRestricted}\n marketingCampaign={bondData?.marketingCampaign}\n isConnected={!!account}\n />\n {SDKConfig.useTiers && userTier !== LaunchBondTiers.Mythical && bondData?.billVersion === BillVersion.V4 && (\n <PointsLeftForNextTier\n bond={bondData}\n inputAmount={inputValue}\n setInputValue={setInputValue}\n inputTokenPrice={inputTokenPrice}\n inputTokenDecimals={inputToken === 'NATIVE' ? 18 : (inputToken?.decimals?.[bondData?.chainId] ?? 18)}\n />\n )}\n {bondData?.warningCard && (\n <Flex className=\"ape:w-full ape:rounded-normal ape:p-[2px_10px]\" style={{ background: '#DE62F366' }}>\n <Text as=\"div\" size=\"12px\" className=\"ape:font-normal ape:flex ape:items-center ape:leading-5.5!\">\n <SafeHTMLComponent html={bondData?.warningCard} />\n </Text>\n </Flex>\n )}\n <Flex className=\"modaltable-container button-container ape:w-full ape:flex ape:relative ape:flex-row ape:justify-between\">\n <Flex className=\"button-container buy ape:justify-center ape:items-center ape:cursor-pointer ape:w-full\">\n {!account ? (\n <ConnectButton />\n ) : (\n <Flex className=\"ape:w-full ape:gap-[10px] ape:flex-col ape:md:flex-row\">\n <Button\n variant=\"secondary\"\n onClick={() =>\n LifiSupported.includes(bondChain!)\n ? onOpenLifiModal()\n : bondChain === ChainId.L1X\n ? onOpenl1xIframe()\n : openExternal()\n }\n className=\"ape:w-full ape:md:w-[35%] ape:text-[14px]! ape:lg:text-[16px]!\"\n >\n {LifiSupported.includes(bondChain!)\n ? `Bridge to ${SHORT_NETWORK_LABEL[bondData?.chainId as ChainId]}`\n : `Get ${getSymbol(bondData?.lpToken, bondData?.chainId)}`}\n </Button>\n {isUserRestricted ? (\n <Button className=\"action-button ape:w-full\" disabled>\n INSUFFICIENT TIER\n </Button>\n ) : (\n <Button\n className=\"action-button ape:w-full ape:text-[14px]! ape:lg:text-[16px]!\"\n load={load || fetchingZapQuote}\n disabled={\n load ||\n bondData?.soldOut ||\n !account ||\n !inputValue ||\n parseFloat(inputValue) === 0 ||\n fetchingZapQuote ||\n zapError ||\n exceedsRealMaxBuy ||\n exceedsBalance ||\n (isZapSupported && !zapData) ||\n SDKConfig.blockSales\n }\n onClick={handleOpenModal}\n >\n {SDKConfig.blockSales\n ? 'Complete KYC to Buy'\n : exceedsRealMaxBuy\n ? 'Exceeds Max Buy. Reduce amount'\n : exceedsBalance\n ? 'Exceeds balance'\n : zapError\n ? 'something went wrong'\n : !inputValue || parseFloat(inputValue) === 0\n ? 'Insert amount'\n : `buy`}\n </Button>\n )}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n ) : (\n <></>\n )\n}\nexport default React.memo(BuyComponent)\n"],"names":["_jsx","L1xIframe","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import Modal from '../../../../components/uikit-sdk/Modal/index.js';
|
|
3
|
+
import ModalHeader from '../../../../components/uikit-sdk/Modal/ModalHeader.js';
|
|
4
|
+
import IconButton from '../../../../components/uikit-sdk/Button/IconButton.js';
|
|
5
|
+
import Close from '../../../../components/uikit-sdk/Svg/Icons/Close.js';
|
|
6
|
+
|
|
7
|
+
const L1XIframe = ({ onDismiss }) => {
|
|
8
|
+
return (jsxs(Modal, { sx: { height: '725px', width: '500px', p: '0px' }, children: [jsxs(ModalHeader, { sx: { p: '15px 20px 5px 20px', fontSize: '22px' }, children: [`Bridge to Layer One X`, jsx(IconButton, { icon: Close, color: "text", variant: "transparent", onClick: onDismiss })] }), jsx("iframe", { src: "https://www.qd.finance/swap", style: { width: '100%', height: '725px', border: 'none', borderRadius: 'normal' } })] }));
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { L1XIframe as default };
|
|
12
|
+
//# sourceMappingURL=L1xIframe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"L1xIframe.js","sources":["../../../../../src/views/BuyBond/components/L1xIframe/L1xIframe.tsx"],"sourcesContent":["import React from 'react'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport ModalHeader from '../../../../components/uikit-sdk/Modal/ModalHeader'\nimport IconButton from '../../../../components/uikit-sdk/Button/IconButton'\nimport Close from '../../../../components/uikit-sdk/Svg/Icons/Close'\n\nconst L1XIframe = ({ onDismiss }: { onDismiss?: () => void }) => {\n return (\n <Modal sx={{ height: '725px', width: '500px', p: '0px' }}>\n <ModalHeader sx={{ p: '15px 20px 5px 20px', fontSize: '22px' }}>\n {`Bridge to Layer One X`}\n <IconButton icon={Close} color=\"text\" variant=\"transparent\" onClick={onDismiss} />\n </ModalHeader>\n <iframe\n src=\"https://www.qd.finance/swap\"\n style={{ width: '100%', height: '725px', border: 'none', borderRadius: 'normal' }}\n />\n </Modal>\n )\n}\n\nexport default L1XIframe\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAMA,MAAM,SAAS,GAAG,CAAC,EAAE,SAAS,EAA8B,KAAI;AAC9D,IAAA,QACEA,IAAA,CAAC,KAAK,IAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAA,QAAA,EAAA,CACtDA,IAAA,CAAC,WAAW,IAAC,EAAE,EAAE,EAAE,CAAC,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,CAC3D,CAAA,qBAAA,CAAuB,EACxBC,GAAA,CAAC,UAAU,IAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,EAAC,OAAO,EAAE,SAAS,GAAI,CAAA,EAAA,CACtE,EACdA,gBACE,GAAG,EAAC,6BAA6B,EACjC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAA,CACjF,CAAA,EAAA,CACI;AAEZ;;;;"}
|
|
@@ -20,7 +20,6 @@ function calculateOptimizationData(inputAmount, userPoints = '0', bond, inputTok
|
|
|
20
20
|
}
|
|
21
21
|
const currentTierData = findHighestTrueBondPrice(userPoints, trueBondPrices);
|
|
22
22
|
const currentTier = getUserTier(userPoints);
|
|
23
|
-
console.log(currentTier);
|
|
24
23
|
// const bonus_curr = 1 + currentTierData?.bonusWithFee! / 100
|
|
25
24
|
const currentPoints = BigInt(userPoints);
|
|
26
25
|
const inputAmountUSD = parseFloat(inputAmount || '0') * inputTokenPriceUsd;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../src/views/BuyBond/utils.ts"],"sourcesContent":["import { BondsData } from '../../types/bonds'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\nimport { getUserTier, NewTiers, TIERS_NAMES } from '../../state/tiers/useTierPoints'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\nexport function calculateOptimizationData(\n inputAmount: string,\n userPoints = '0',\n bond: BondsData,\n inputTokenPriceUsd = 0,\n abondPriceUsd?: number,\n) {\n if (bond.chainId === ChainId.SUI || bond.chainId === ChainId.APTOS || bond.chainId === ChainId.SOL) return null\n\n const { trueBondPrices } = bond\n\n if (!trueBondPrices) {\n console.log('no truebondprices')\n return null\n }\n if (!abondPriceUsd) {\n console.log('No Abond Price')\n return null\n }\n\n if (inputTokenPriceUsd <= 0) {\n console.log('missing token price')\n return null\n }\n\n const currentTierData = findHighestTrueBondPrice(userPoints, trueBondPrices)\n const currentTier = getUserTier(userPoints)!\n
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../src/views/BuyBond/utils.ts"],"sourcesContent":["import { BondsData } from '../../types/bonds'\nimport { findHighestTrueBondPrice } from '../../utils/bondPriceHelpers'\nimport { getUserTier, NewTiers, TIERS_NAMES } from '../../state/tiers/useTierPoints'\nimport { ChainId } from '@ape.swap/apeswap-lists'\n\nexport function calculateOptimizationData(\n inputAmount: string,\n userPoints = '0',\n bond: BondsData,\n inputTokenPriceUsd = 0,\n abondPriceUsd?: number,\n) {\n if (bond.chainId === ChainId.SUI || bond.chainId === ChainId.APTOS || bond.chainId === ChainId.SOL) return null\n\n const { trueBondPrices } = bond\n\n if (!trueBondPrices) {\n console.log('no truebondprices')\n return null\n }\n if (!abondPriceUsd) {\n console.log('No Abond Price')\n return null\n }\n\n if (inputTokenPriceUsd <= 0) {\n console.log('missing token price')\n return null\n }\n\n const currentTierData = findHighestTrueBondPrice(userPoints, trueBondPrices)\n const currentTier = getUserTier(userPoints)!\n\n // const bonus_curr = 1 + currentTierData?.bonusWithFee! / 100\n const currentPoints = BigInt(userPoints)\n\n const inputAmountUSD = parseFloat(inputAmount || '0') * inputTokenPriceUsd\n\n const tierBoostRate = (bond.tierBoostRate ?? 0) / 100\n const tierBoostUsd = inputAmountUSD * tierBoostRate\n const feeInAbond = tierBoostUsd / abondPriceUsd\n const tierBoostPoints = feeInAbond * 4\n const currentPrice = parseFloat(currentTierData?.trueBondPrice!)\n\n const dataToReturn: Record<\n number,\n {\n tier: number\n tierName: string\n isProfitable: boolean\n tierCostUSD: number\n minBreakevenWithFeeUSD: number\n necessaryPointsToUpgrade: number\n }\n > = {}\n\n for (const tierData of trueBondPrices) {\n if (tierData.boost <= currentTier) continue\n // @ts-ignore\n const tierName = TIERS_NAMES[tierData.boost]\n\n const pointsNeededWei = BigInt(tierData.points) - currentPoints\n const abondNeededRaw = Math.ceil(Number(pointsNeededWei) / 1e18 / 4)\n\n const tierCostUsd = abondNeededRaw * abondPriceUsd\n const newPrice = parseFloat(tierData.trueBondPrice)\n const priceDiff = (currentPrice - newPrice) / currentPrice\n\n // const newBonusWithThisTier = tierData.bonusWithFee\n\n // const bonus_new = 1 + newBonusWithThisTier / 100\n\n // const denominator = bonus_new - bonus_curr + tierBoostRate\n const denominator = (1 - tierBoostRate) * priceDiff + tierBoostRate\n const minBreakeven = denominator > 0 ? tierCostUsd / denominator : Infinity\n const minBreakevenWithFee = minBreakeven * 1.05 + 0.1\n\n // for debugging purposes this two should match\n // const originalOutputUsd = minBreakeven * bonus_curr\n // const outputAfterUpgrade = (minBreakeven - (tierCostUsd - minBreakeven * tierBoostRate)) * bonus_new\n\n const isProfitable = inputAmountUSD > (minBreakevenWithFee ?? 0)\n\n dataToReturn[tierData.boost] = {\n tier: tierData.boost as NewTiers,\n tierName,\n isProfitable,\n tierCostUSD: tierCostUsd,\n minBreakevenWithFeeUSD: minBreakevenWithFee,\n necessaryPointsToUpgrade: abondNeededRaw * 4,\n }\n }\n\n const profitableTiers = Object.values(dataToReturn).filter((item) => item.isProfitable)\n const highestProfitableTier = profitableTiers[profitableTiers.length - 1]\n\n return { tierBoostPoints, highestProfitableTier, data: Object.values(dataToReturn) }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { LiFiWidget } from '@lifi/widget';
|
|
3
3
|
import Modal from '../../components/uikit-sdk/Modal/index.js';
|
|
4
4
|
import ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader.js';
|
|
5
|
-
import Text from '../../components/uikit-sdk/Text/index.js';
|
|
6
5
|
|
|
7
6
|
const getFees = async (fromTokenSymbol, toTokenSymbol) => {
|
|
8
7
|
const stableCoins = ['FRAX', 'USDC', 'USDT', 'DAI', 'BUSD', 'TUSD', 'USDD', 'FDUSD'];
|
|
@@ -61,7 +60,7 @@ const LifiModal = ({ bondChain, principalToken, onDismiss, }) => {
|
|
|
61
60
|
},
|
|
62
61
|
},
|
|
63
62
|
};
|
|
64
|
-
return (jsxs(Modal, { className: "ape:min-w-
|
|
63
|
+
return (jsxs(Modal, { className: "ape:min-w-100 ape:justify-center ape:items-center ape:p-0!", children: [jsx(ModalHeader, { className: "ape:px-6 ape:pt-4", onDismiss: onDismiss, hideDivider: true, children: "Swap & Bridge with LIFI" }), jsx(LiFiWidget, { ...config })] }));
|
|
65
64
|
};
|
|
66
65
|
|
|
67
66
|
export { LifiModal as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LifiModal.js","sources":["../../../src/views/LifiModal/LifiModal.tsx"],"sourcesContent":["import React from 'react'\nimport { LiFiWidget } from '@lifi/widget'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader'\
|
|
1
|
+
{"version":3,"file":"LifiModal.js","sources":["../../../src/views/LifiModal/LifiModal.tsx"],"sourcesContent":["import React from 'react'\nimport { LiFiWidget } from '@lifi/widget'\nimport Modal from '../../components/uikit-sdk/Modal'\nimport ModalHeader from '../../components/uikit-sdk/Modal/ModalHeader'\n\nconst getFees = async (fromTokenSymbol: string, toTokenSymbol: string): Promise<number> => {\n const stableCoins = ['FRAX', 'USDC', 'USDT', 'DAI', 'BUSD', 'TUSD', 'USDD', 'FDUSD']\n const isFromStable = stableCoins.includes(fromTokenSymbol)\n const isToStable = stableCoins.includes(toTokenSymbol)\n if (toTokenSymbol.toLowerCase() === 'abond') {\n return 0\n }\n return isFromStable && isToStable ? 0.001 : 0.003\n}\n\nconst LifiModal = ({\n bondChain,\n principalToken,\n onDismiss,\n}: {\n bondChain?: number\n principalToken?: string\n onDismiss?: () => void\n}) => {\n const config = {\n appearance: 'dark' as const,\n loadFonts: false,\n theme: {\n typography: {\n fontFamily: 'Poppins',\n },\n colorSchemes: {\n dark: {\n palette: {\n background: {\n default: '#161420',\n paper: '#1F1D29',\n },\n primary: {\n main: '#6560C5',\n },\n secondary: {\n main: '#6560C5',\n },\n },\n },\n },\n container: {\n boxShadow: '0px 8px 32px rgba(0, 0, 0, 0.08)',\n borderRadius: '16px',\n },\n },\n // fromToken: 'BNB',\n // fromChain: ChainId.BSC,\n toChain: bondChain,\n toToken: principalToken,\n sdkConfig: {\n rpcUrls: {\n [1151111081099710]: [\n 'https://ancient-cold-sailboat.solana-mainnet.quiknode.pro/da13400ad8d0035313f3e71c6a37c107d0d0334b',\n ],\n },\n },\n variant: 'wide' as const,\n integrator: 'apeswap',\n feeConfig: {\n calculateFee: async (params: any) => {\n return getFees(params.fromToken.symbol, params.toToken.symbol)\n },\n },\n }\n\n return (\n <Modal className=\"ape:min-w-100 ape:justify-center ape:items-center ape:p-0!\">\n <ModalHeader className=\"ape:px-6 ape:pt-4\" onDismiss={onDismiss} hideDivider>\n Swap & Bridge with LIFI\n </ModalHeader>\n <LiFiWidget {...config} />\n </Modal>\n )\n}\n\nexport default LifiModal\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;AAKA,MAAM,OAAO,GAAG,OAAO,eAAuB,EAAE,aAAqB,KAAqB;AACxF,IAAA,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IACpF,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC1D,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC;AACtD,IAAA,IAAI,aAAa,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AAC3C,QAAA,OAAO,CAAC;IACV;IACA,OAAO,YAAY,IAAI,UAAU,GAAG,KAAK,GAAG,KAAK;AACnD,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,EACjB,SAAS,EACT,cAAc,EACd,SAAS,GAKV,KAAI;AACH,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,UAAU,EAAE,MAAe;AAC3B,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,KAAK,EAAE;AACL,YAAA,UAAU,EAAE;AACV,gBAAA,UAAU,EAAE,SAAS;AACtB,aAAA;AACD,YAAA,YAAY,EAAE;AACZ,gBAAA,IAAI,EAAE;AACJ,oBAAA,OAAO,EAAE;AACP,wBAAA,UAAU,EAAE;AACV,4BAAA,OAAO,EAAE,SAAS;AAClB,4BAAA,KAAK,EAAE,SAAS;AACjB,yBAAA;AACD,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,SAAS;AAChB,yBAAA;AACD,wBAAA,SAAS,EAAE;AACT,4BAAA,IAAI,EAAE,SAAS;AAChB,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,SAAS,EAAE,kCAAkC;AAC7C,gBAAA,YAAY,EAAE,MAAM;AACrB,aAAA;AACF,SAAA;;;AAGD,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,SAAS,EAAE;AACT,YAAA,OAAO,EAAE;gBACP,CAAC,gBAAgB,GAAG;oBAClB,oGAAoG;AACrG,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,EAAE,MAAe;AACxB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,SAAS,EAAE;AACT,YAAA,YAAY,EAAE,OAAO,MAAW,KAAI;AAClC,gBAAA,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAChE,CAAC;AACF,SAAA;KACF;AAED,IAAA,QACEA,IAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAC,4DAA4D,EAAA,QAAA,EAAA,CAC3EC,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,mBAAmB,EAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,CAE9D,EACdA,GAAA,CAAC,UAAU,EAAA,EAAA,GAAK,MAAM,EAAA,CAAI,CAAA,EAAA,CACpB;AAEZ;;;;"}
|
|
@@ -40,7 +40,7 @@ const Actions = ({ userBill }) => {
|
|
|
40
40
|
!bond?.hide &&
|
|
41
41
|
bond?.earnToken?.symbol?.toLowerCase() === userBill?.bond?.earnToken?.symbol?.toLowerCase());
|
|
42
42
|
const canPurchaseAgain = !!similarLiveBond;
|
|
43
|
-
const vestingCliff = userBill?.bond?.vestingCliff;
|
|
43
|
+
const vestingCliff = Number(userBill?.bond?.vestingCliff);
|
|
44
44
|
const currentTime = Math.round(new Date().getTime() / 1000);
|
|
45
45
|
const purchaseTimestamp = parseInt(userBill?.vestingStartTimestamp ?? '0');
|
|
46
46
|
const isPendingCliff = vestingCliff ? currentTime - purchaseTimestamp < vestingCliff : false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actions.js","sources":["../../../../../src/views/YourBondsModal/components/Actions/Actions.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport { claimable } from '../../../../utils/displayHelpers'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { useChainId, useSwitchChain, useWriteContract } from 'wagmi'\nimport { useMonitorTx } from '../../../../hooks/useMonitorTx'\nimport useBondsData from '../../../../state/bonds/useBondsData'\nimport BOND_ABI from '../../../../config/abi/BOND_2_4_0.json'\nimport track from '../../../../utils/track'\nimport { remove0xPrefix } from '../../../../utils/remove0xPrefix'\nimport { reportError } from '../../../../utils/reportError'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport useEVMAccount from '../../../../hooks/accounts/useEVMAccount'\nimport { usePopups } from '../../../../state/popups/usePopups'\nimport useUserBonds from '../../../../state/bonds/useUserBonds'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport useModal from '../../../../hooks/useModal'\nimport { AbondModal, OabondModal, PmusdModal } from '../../../../components/CustomClaimModals'\nimport PostClaimModal from '../../../../components/CustomClaimModals/PostClaimModal'\n\nconst Actions = ({ userBill }: { userBill?: UserBill }) => {\n // Hooks\n const { switchChainAsync } = useSwitchChain()\n const { data: liveBonds } = useBondsData()\n const SDKConfig = useSDKConfig()\n const chainId = useChainId()\n const { writeContractAsync } = useWriteContract()\n const { address: account } = useEVMAccount()\n const { addToastError } = usePopups()\n const { refetch: refetchUserBonds } = useUserBonds()\n\n // State\n const [claimTxHash, setClaimTxHash] = useState<string | null>(null)\n const [loadingTx, setLoadingTx] = useState(false)\n const { isLoading, isSuccess: isConfirmed } = useMonitorTx(claimTxHash, userBill?.bond?.chainId)\n\n // Static Data\n const load = loadingTx || (isLoading && !isConfirmed)\n const similarLiveBond = liveBonds?.find(\n (bond) =>\n !bond?.soldOut &&\n !bond?.hide &&\n bond?.earnToken?.symbol?.toLowerCase() === userBill?.bond?.earnToken?.symbol?.toLowerCase(),\n )\n const canPurchaseAgain = !!similarLiveBond\n const vestingCliff = userBill?.bond?.vestingCliff\n const currentTime = Math.round(new Date().getTime() / 1000)\n const purchaseTimestamp = parseInt(userBill?.vestingStartTimestamp ?? '0')\n const isPendingCliff = vestingCliff ? currentTime - purchaseTimestamp < vestingCliff : false\n const cliffCountdown = getTimePeriods(purchaseTimestamp + (vestingCliff ?? 0) - currentTime, true)\n\n const handleClaim = async (billId?: string, billAddress?: string) => {\n const address: `0x${string}` = billAddress as `0x${string}`\n try {\n setLoadingTx(true)\n const tx = await writeContractAsync({\n address: address,\n abi: BOND_ABI,\n functionName: 'redeem',\n args: [billId],\n chain: chainId as any,\n account: account,\n }).catch()\n\n if (tx) {\n setClaimTxHash(tx)\n track({\n event: 'bond',\n chain: userBill?.bond?.chainId,\n data: {\n cat: 'claim',\n bondType: userBill?.bond?.billType,\n address: remove0xPrefix(userBill?.bond?.contractAddress?.[userBill?.bond?.chainId]),\n earnToken: userBill?.bond?.earnToken.symbol,\n },\n })\n }\n setLoadingTx(false)\n } catch (error: any) {\n console.error('Claim Failed:', error)\n setLoadingTx(false)\n addToastError(error.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'redeem', userBill, error },\n chainId,\n account,\n })\n }\n }\n\n // Modals\n const [openAbondModal] = useModal(<AbondModal />, true, false, 'abondModal')\n const [openOabondModal] = useModal(<OabondModal />, true, false, 'oAbondModal')\n const [openPmusdModal] = useModal(<PmusdModal />, true, false, 'pmUSDModal')\n const [openPostClaimFlowModal] = useModal(\n <PostClaimModal\n tokenSymbol={userBill?.bond?.earnToken?.symbol!}\n text={userBill?.bond?.postClaimFlow?.text!}\n imgUrl={userBill?.bond?.postClaimFlow?.imgUrl!}\n ctaUrl={userBill?.bond?.postClaimFlow?.ctaUrl!}\n />,\n true,\n false,\n 'postClaimFlowModal',\n )\n\n useEffect(() => {\n if (isConfirmed) {\n refetchUserBonds()\n if (userBill?.bond?.earnToken.symbol.toLowerCase() === 'abond') {\n openAbondModal()\n }\n if (userBill?.bond?.earnToken.symbol.toLowerCase() === 'oabond') {\n openOabondModal()\n }\n if (userBill?.bond?.earnToken.symbol.toLowerCase() === 'pmusd') {\n openPmusdModal()\n }\n if (userBill?.bond?.postClaimFlow) {\n openPostClaimFlowModal()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [isConfirmed])\n\n return (\n <>\n <Button\n variant=\"secondary\"\n disabled={claimable(userBill) === 0 || load || !userBill || isPendingCliff}\n load={load}\n onClick={(event) => {\n event.stopPropagation()\n if (chainId !== userBill?.bond?.chainId) {\n switchChainAsync({ chainId: userBill?.bond?.chainId! })\n .then(() => {\n handleClaim(userBill?.id, userBill?.address)\n })\n .catch()\n } else {\n handleClaim(userBill?.id, userBill?.address)\n }\n }}\n className=\"ape:text-[14px]! ape:w-full\"\n >\n {isPendingCliff\n ? `Claimable in ${cliffCountdown.days !== 0 ? `${cliffCountdown.days} days` : cliffCountdown.hours !== 0 ? `${cliffCountdown.hours} hours` : `${cliffCountdown.minutes} mins`}`\n : 'Claim'}\n </Button>\n <Button\n className=\"ape:text-[14px]! ape:w-full\"\n onClick={() =>\n canPurchaseAgain\n ? (window.location.href = `/bonds?bondAddress=${similarLiveBond.contractAddress[similarLiveBond.chainId]}&bondChain=${similarLiveBond.chainId}`)\n : null\n }\n disabled={!canPurchaseAgain}\n >\n {canPurchaseAgain ? 'Buy again' : 'sold out'}\n </Button>\n </>\n )\n}\n\nexport default Actions\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Actions.js","sources":["../../../../../src/views/YourBondsModal/components/Actions/Actions.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\nimport Button from '../../../../components/uikit-sdk/Button/Button'\nimport { claimable } from '../../../../utils/displayHelpers'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { useChainId, useSwitchChain, useWriteContract } from 'wagmi'\nimport { useMonitorTx } from '../../../../hooks/useMonitorTx'\nimport useBondsData from '../../../../state/bonds/useBondsData'\nimport BOND_ABI from '../../../../config/abi/BOND_2_4_0.json'\nimport track from '../../../../utils/track'\nimport { remove0xPrefix } from '../../../../utils/remove0xPrefix'\nimport { reportError } from '../../../../utils/reportError'\nimport { useSDKConfig } from '../../../../state/useSDKConfig'\nimport useEVMAccount from '../../../../hooks/accounts/useEVMAccount'\nimport { usePopups } from '../../../../state/popups/usePopups'\nimport useUserBonds from '../../../../state/bonds/useUserBonds'\nimport { getTimePeriods } from '../../../../utils/getTimePeriods'\nimport useModal from '../../../../hooks/useModal'\nimport { AbondModal, OabondModal, PmusdModal } from '../../../../components/CustomClaimModals'\nimport PostClaimModal from '../../../../components/CustomClaimModals/PostClaimModal'\n\nconst Actions = ({ userBill }: { userBill?: UserBill }) => {\n // Hooks\n const { switchChainAsync } = useSwitchChain()\n const { data: liveBonds } = useBondsData()\n const SDKConfig = useSDKConfig()\n const chainId = useChainId()\n const { writeContractAsync } = useWriteContract()\n const { address: account } = useEVMAccount()\n const { addToastError } = usePopups()\n const { refetch: refetchUserBonds } = useUserBonds()\n\n // State\n const [claimTxHash, setClaimTxHash] = useState<string | null>(null)\n const [loadingTx, setLoadingTx] = useState(false)\n const { isLoading, isSuccess: isConfirmed } = useMonitorTx(claimTxHash, userBill?.bond?.chainId)\n\n // Static Data\n const load = loadingTx || (isLoading && !isConfirmed)\n const similarLiveBond = liveBonds?.find(\n (bond) =>\n !bond?.soldOut &&\n !bond?.hide &&\n bond?.earnToken?.symbol?.toLowerCase() === userBill?.bond?.earnToken?.symbol?.toLowerCase(),\n )\n const canPurchaseAgain = !!similarLiveBond\n const vestingCliff = Number(userBill?.bond?.vestingCliff)\n const currentTime = Math.round(new Date().getTime() / 1000)\n const purchaseTimestamp = parseInt(userBill?.vestingStartTimestamp ?? '0')\n const isPendingCliff = vestingCliff ? currentTime - purchaseTimestamp < vestingCliff : false\n const cliffCountdown = getTimePeriods(purchaseTimestamp + (vestingCliff ?? 0) - currentTime, true)\n\n const handleClaim = async (billId?: string, billAddress?: string) => {\n const address: `0x${string}` = billAddress as `0x${string}`\n try {\n setLoadingTx(true)\n const tx = await writeContractAsync({\n address: address,\n abi: BOND_ABI,\n functionName: 'redeem',\n args: [billId],\n chain: chainId as any,\n account: account,\n }).catch()\n\n if (tx) {\n setClaimTxHash(tx)\n track({\n event: 'bond',\n chain: userBill?.bond?.chainId,\n data: {\n cat: 'claim',\n bondType: userBill?.bond?.billType,\n address: remove0xPrefix(userBill?.bond?.contractAddress?.[userBill?.bond?.chainId]),\n earnToken: userBill?.bond?.earnToken.symbol,\n },\n })\n }\n setLoadingTx(false)\n } catch (error: any) {\n console.error('Claim Failed:', error)\n setLoadingTx(false)\n addToastError(error.message)\n reportError({\n apiUrl: SDKConfig?.urls?.apiV2,\n error,\n extraInfo: { type: 'redeem', userBill, error },\n chainId,\n account,\n })\n }\n }\n\n // Modals\n const [openAbondModal] = useModal(<AbondModal />, true, false, 'abondModal')\n const [openOabondModal] = useModal(<OabondModal />, true, false, 'oAbondModal')\n const [openPmusdModal] = useModal(<PmusdModal />, true, false, 'pmUSDModal')\n const [openPostClaimFlowModal] = useModal(\n <PostClaimModal\n tokenSymbol={userBill?.bond?.earnToken?.symbol!}\n text={userBill?.bond?.postClaimFlow?.text!}\n imgUrl={userBill?.bond?.postClaimFlow?.imgUrl!}\n ctaUrl={userBill?.bond?.postClaimFlow?.ctaUrl!}\n />,\n true,\n false,\n 'postClaimFlowModal',\n )\n\n useEffect(() => {\n if (isConfirmed) {\n refetchUserBonds()\n if (userBill?.bond?.earnToken.symbol.toLowerCase() === 'abond') {\n openAbondModal()\n }\n if (userBill?.bond?.earnToken.symbol.toLowerCase() === 'oabond') {\n openOabondModal()\n }\n if (userBill?.bond?.earnToken.symbol.toLowerCase() === 'pmusd') {\n openPmusdModal()\n }\n if (userBill?.bond?.postClaimFlow) {\n openPostClaimFlowModal()\n }\n }\n /* eslint-disable react-hooks/exhaustive-deps */\n }, [isConfirmed])\n\n return (\n <>\n <Button\n variant=\"secondary\"\n disabled={claimable(userBill) === 0 || load || !userBill || isPendingCliff}\n load={load}\n onClick={(event) => {\n event.stopPropagation()\n if (chainId !== userBill?.bond?.chainId) {\n switchChainAsync({ chainId: userBill?.bond?.chainId! })\n .then(() => {\n handleClaim(userBill?.id, userBill?.address)\n })\n .catch()\n } else {\n handleClaim(userBill?.id, userBill?.address)\n }\n }}\n className=\"ape:text-[14px]! ape:w-full\"\n >\n {isPendingCliff\n ? `Claimable in ${cliffCountdown.days !== 0 ? `${cliffCountdown.days} days` : cliffCountdown.hours !== 0 ? `${cliffCountdown.hours} hours` : `${cliffCountdown.minutes} mins`}`\n : 'Claim'}\n </Button>\n <Button\n className=\"ape:text-[14px]! ape:w-full\"\n onClick={() =>\n canPurchaseAgain\n ? (window.location.href = `/bonds?bondAddress=${similarLiveBond.contractAddress[similarLiveBond.chainId]}&bondChain=${similarLiveBond.chainId}`)\n : null\n }\n disabled={!canPurchaseAgain}\n >\n {canPurchaseAgain ? 'Buy again' : 'sold out'}\n </Button>\n </>\n )\n}\n\nexport default Actions\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { useState } from 'react';
|
|
3
|
-
import Flex from '../../../../components/uikit-sdk/Flex/index.js';
|
|
4
|
-
import useTierPoints, { getUserTier, TIERS_WEIGHT } from '../../../../state/tiers/useTierPoints.js';
|
|
5
|
-
import { LaunchBondTiers, BillVersion } from '@ape.swap/apeswap-lists';
|
|
6
|
-
import { AnimatePresence, motion } from 'framer-motion';
|
|
7
|
-
import BonusTable from '../../../Bonds/components/BonusComponents/BonusTable.js';
|
|
8
|
-
import { getRawBonus, formatUSDNumber } from '../../../../utils/displayHelpers.js';
|
|
9
|
-
import { findHighestTrueBondPriceUserAgnostic } from '../../../../utils/bondPriceHelpers.js';
|
|
10
|
-
import Caret from '../../../../components/uikit-sdk/Svg/Icons/Caret.js';
|
|
11
|
-
|
|
12
|
-
const GetUpToComponent = ({ bond, depositAmount }) => {
|
|
13
|
-
// Hooks & Data
|
|
14
|
-
const { data: tierState } = useTierPoints();
|
|
15
|
-
const { promotionalPoints } = tierState || {};
|
|
16
|
-
const userTier = getUserTier(promotionalPoints);
|
|
17
|
-
const bonusString = getRawBonus(bond, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical]);
|
|
18
|
-
const noTierAmount = getRawBonus(bond, depositAmount, '0');
|
|
19
|
-
const boostAmount = parseFloat(bonusString) - parseFloat(noTierAmount);
|
|
20
|
-
const trueBondPrice = findHighestTrueBondPriceUserAgnostic(bond);
|
|
21
|
-
//State
|
|
22
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
23
|
-
return (userTier !== LaunchBondTiers.Mythical &&
|
|
24
|
-
bond.billVersion === BillVersion.V4 && (jsxs(Flex, { className: "ape:w-full ape:mt-[10px] ape:text-[12px] ape:font-normal ape:flex-col ape:relative", children: [jsxs(Flex, { onClick: () => setIsOpen(!isOpen), className: "ape:border ape:border-solid ape:border-[#9960C5] ape:rounded-normal ape:relative ape:overflow-hidden ape:pl-[10px] ape:pr-[20px] ape:py-[2px] ape:items-center ape:cursor-pointer ape:justify-between", style: { background: '#312341' }, children: [jsxs(Flex, { className: "ape:items-center", children: [jsx("img", { src: `https://ape.bond/images/launch/mythical.png`, alt: "minTier", style: { width: '21px', height: '21px', marginRight: '3px', zIndex: 1 } }), jsxs("div", { children: ["Get up to", jsx("span", { className: "ape:text-success ape:mx-[3px] ape:font-bold", children: `+${trueBondPrice?.boost ?? 0}%` }), "Boost.", jsx("span", { className: "ape:ml-[5px] ape:text-primary-button ape:font-medium ape:cursor-pointer ape:hover:underline ape:hidden ape:lg:inline", onClick: (e) => {
|
|
25
|
-
e.stopPropagation();
|
|
26
|
-
window.open('https://www.ape.bond/true-yield?createPosition', '_blank');
|
|
27
|
-
}, children: 'By locking ABOND >' })] })] }), !!depositAmount && parseFloat(depositAmount) !== 0 && (jsxs(Flex, { className: "ape:text-success ape:font-bold ape:min-w-[65px] ape:justify-end", children: ["$ ", formatUSDNumber(boostAmount.toString())] })), jsx(Flex, { className: "ape:absolute ape:right-[6px]", children: jsx(Caret, { direction: isOpen ? 'up' : 'down' }) })] }), jsx(AnimatePresence, { children: isOpen && (jsx(motion.div, { initial: { height: 0 }, animate: { height: 'fit-content' }, transition: { opacity: { duration: 0.2 } }, exit: { height: 0 }, className: "ape:overflow-hidden ape:w-full ape:mt-[5px] ape:cursor-pointer", onClick: (e) => {
|
|
28
|
-
e.stopPropagation();
|
|
29
|
-
window.open('https://www.ape.bond/true-yield?createPosition', '_blank');
|
|
30
|
-
}, children: jsx(BonusTable, { trueBondPrices: bond?.trueBondPrices, minTier: bond.minTier, hideTitle: true }) })) })] })));
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export { GetUpToComponent as default };
|
|
34
|
-
//# sourceMappingURL=GetUpToComponent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GetUpToComponent.js","sources":["../../../../../src/views/BuyBond/components/GetUpToComponent/GetUpToComponent.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport { BondsData } from '../../../../types/bonds'\nimport useTierPoints, { getUserTier, TIERS_WEIGHT } from '../../../../state/tiers/useTierPoints'\nimport { BillVersion, LaunchBondTiers } from '@ape.swap/apeswap-lists'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport BonusTable from '../../../Bonds/components/BonusComponents/BonusTable'\nimport { formatUSDNumber, getRawBonus } from '../../../../utils/displayHelpers'\nimport { findHighestTrueBondPriceUserAgnostic } from '../../../../utils/bondPriceHelpers'\nimport Caret from '../../../../components/uikit-sdk/Svg/Icons/Caret'\n\ninterface GetUpToComponentProps {\n bond: BondsData\n depositAmount: string\n}\n\nconst GetUpToComponent: React.FC<GetUpToComponentProps> = ({ bond, depositAmount }) => {\n // Hooks & Data\n const { data: tierState } = useTierPoints()\n const { promotionalPoints } = tierState || {}\n const userTier = getUserTier(promotionalPoints)\n const bonusString = getRawBonus(bond, depositAmount, TIERS_WEIGHT[LaunchBondTiers.Mythical])\n const noTierAmount = getRawBonus(bond, depositAmount, '0')\n const boostAmount = parseFloat(bonusString) - parseFloat(noTierAmount)\n const trueBondPrice = findHighestTrueBondPriceUserAgnostic(bond)\n\n //State\n const [isOpen, setIsOpen] = useState(false)\n return (\n userTier !== LaunchBondTiers.Mythical &&\n bond.billVersion === BillVersion.V4 && (\n <Flex className=\"ape:w-full ape:mt-[10px] ape:text-[12px] ape:font-normal ape:flex-col ape:relative\">\n <Flex\n onClick={() => setIsOpen(!isOpen)}\n className=\"ape:border ape:border-solid ape:border-[#9960C5] ape:rounded-normal ape:relative ape:overflow-hidden ape:pl-[10px] ape:pr-[20px] ape:py-[2px] ape:items-center ape:cursor-pointer ape:justify-between\"\n style={{ background: '#312341' }}\n >\n <Flex className=\"ape:items-center\">\n <img\n src={`https://ape.bond/images/launch/mythical.png`}\n alt=\"minTier\"\n style={{ width: '21px', height: '21px', marginRight: '3px', zIndex: 1 }}\n />\n <div>\n Get up to\n <span className=\"ape:text-success ape:mx-[3px] ape:font-bold\">{`+${trueBondPrice?.boost ?? 0}%`}</span>\n Boost.\n <span\n className=\"ape:ml-[5px] ape:text-primary-button ape:font-medium ape:cursor-pointer ape:hover:underline ape:hidden ape:lg:inline\"\n onClick={(e) => {\n e.stopPropagation()\n window.open('https://www.ape.bond/true-yield?createPosition', '_blank')\n }}\n >\n {'By locking ABOND >'}\n </span>\n </div>\n </Flex>\n {!!depositAmount && parseFloat(depositAmount) !== 0 && (\n <Flex className=\"ape:text-success ape:font-bold ape:min-w-[65px] ape:justify-end\">\n $ {formatUSDNumber(boostAmount.toString())}\n </Flex>\n )}\n <Flex className=\"ape:absolute ape:right-[6px]\">\n <Caret direction={isOpen ? 'up' : 'down'} />\n </Flex>\n </Flex>\n <AnimatePresence>\n {isOpen && (\n <motion.div\n initial={{ height: 0 }}\n animate={{ height: 'fit-content' }}\n transition={{ opacity: { duration: 0.2 } }}\n exit={{ height: 0 }}\n className=\"ape:overflow-hidden ape:w-full ape:mt-[5px] ape:cursor-pointer\"\n onClick={(e) => {\n e.stopPropagation()\n window.open('https://www.ape.bond/true-yield?createPosition', '_blank')\n }}\n >\n <BonusTable trueBondPrices={bond?.trueBondPrices} minTier={bond.minTier} hideTitle />\n </motion.div>\n )}\n </AnimatePresence>\n </Flex>\n )\n )\n}\n\nexport default GetUpToComponent\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|