@unifold/connect-react 0.1.14 → 0.1.15
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/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +166 -73
- package/dist/index.mjs +164 -73
- package/dist/styles.css +1 -1
- package/package.json +4 -4
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
export { Button, ButtonProps } from '@unifold/ui-react';
|
|
4
|
-
export { AutoSwapRequest, AutoSwapResponse, CreateDepositAddressRequest, DepositAddressResponse, ExecutionStatus, FeaturedToken, FiatCurrenciesResponse, FiatCurrency, I18nStrings, IconUrl, MeldQuote, MeldQuotesRequest, MeldQuotesResponse, MeldSessionRequest, MeldSessionResponse, PaymentNetwork, ProjectConfigResponse, QueryExecutionsRequest, QueryExecutionsResponse, SOLANA_USDC_ADDRESS, SupportedChain, SupportedDepositTokensResponse, SupportedToken, TokenChain, TokenChainIconUrl, TokenChainsResponse, UserIpInfo, Wallet, createDepositAddress, createMeldSession, getApiBaseUrl, getChainName, getFiatCurrencies, getIconUrl, getIconUrlWithCdn, getMeldQuotes, getPreferredIconUrl, getProjectConfig, getSupportedDepositTokens, getTokenChains, getWalletByChainType, i18n, queryExecutions, setApiConfig, useUserIp } from '@unifold/core';
|
|
3
|
+
export { AllowedCountryResult, Button, ButtonProps, useAllowedCountry } from '@unifold/ui-react';
|
|
4
|
+
export { AutoSwapRequest, AutoSwapResponse, CreateDepositAddressRequest, DepositAddressResponse, ExecutionStatus, FeaturedToken, FiatCurrenciesResponse, FiatCurrency, I18nStrings, IconUrl, IpAddressResponse, MeldQuote, MeldQuotesRequest, MeldQuotesResponse, MeldSessionRequest, MeldSessionResponse, PaymentNetwork, ProjectConfigResponse, QueryExecutionsRequest, QueryExecutionsResponse, SOLANA_USDC_ADDRESS, SupportedChain, SupportedDepositTokensResponse, SupportedToken, TokenChain, TokenChainIconUrl, TokenChainsResponse, UserIpInfo, Wallet, createDepositAddress, createMeldSession, getApiBaseUrl, getChainName, getFiatCurrencies, getIconUrl, getIconUrlWithCdn, getIpAddress, getMeldQuotes, getPreferredIconUrl, getProjectConfig, getSupportedDepositTokens, getTokenChains, getWalletByChainType, i18n, queryExecutions, setApiConfig, useUserIp } from '@unifold/core';
|
|
5
5
|
|
|
6
6
|
interface UnifoldConnectProviderConfig {
|
|
7
7
|
publishableKey: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
export { Button, ButtonProps } from '@unifold/ui-react';
|
|
4
|
-
export { AutoSwapRequest, AutoSwapResponse, CreateDepositAddressRequest, DepositAddressResponse, ExecutionStatus, FeaturedToken, FiatCurrenciesResponse, FiatCurrency, I18nStrings, IconUrl, MeldQuote, MeldQuotesRequest, MeldQuotesResponse, MeldSessionRequest, MeldSessionResponse, PaymentNetwork, ProjectConfigResponse, QueryExecutionsRequest, QueryExecutionsResponse, SOLANA_USDC_ADDRESS, SupportedChain, SupportedDepositTokensResponse, SupportedToken, TokenChain, TokenChainIconUrl, TokenChainsResponse, UserIpInfo, Wallet, createDepositAddress, createMeldSession, getApiBaseUrl, getChainName, getFiatCurrencies, getIconUrl, getIconUrlWithCdn, getMeldQuotes, getPreferredIconUrl, getProjectConfig, getSupportedDepositTokens, getTokenChains, getWalletByChainType, i18n, queryExecutions, setApiConfig, useUserIp } from '@unifold/core';
|
|
3
|
+
export { AllowedCountryResult, Button, ButtonProps, useAllowedCountry } from '@unifold/ui-react';
|
|
4
|
+
export { AutoSwapRequest, AutoSwapResponse, CreateDepositAddressRequest, DepositAddressResponse, ExecutionStatus, FeaturedToken, FiatCurrenciesResponse, FiatCurrency, I18nStrings, IconUrl, IpAddressResponse, MeldQuote, MeldQuotesRequest, MeldQuotesResponse, MeldSessionRequest, MeldSessionResponse, PaymentNetwork, ProjectConfigResponse, QueryExecutionsRequest, QueryExecutionsResponse, SOLANA_USDC_ADDRESS, SupportedChain, SupportedDepositTokensResponse, SupportedToken, TokenChain, TokenChainIconUrl, TokenChainsResponse, UserIpInfo, Wallet, createDepositAddress, createMeldSession, getApiBaseUrl, getChainName, getFiatCurrencies, getIconUrl, getIconUrlWithCdn, getIpAddress, getMeldQuotes, getPreferredIconUrl, getProjectConfig, getSupportedDepositTokens, getTokenChains, getWalletByChainType, i18n, queryExecutions, setApiConfig, useUserIp } from '@unifold/core';
|
|
5
5
|
|
|
6
6
|
interface UnifoldConnectProviderConfig {
|
|
7
7
|
publishableKey: string;
|
package/dist/index.js
CHANGED
|
@@ -1163,6 +1163,7 @@ __export(index_exports, {
|
|
|
1163
1163
|
getFiatCurrencies: () => getFiatCurrencies,
|
|
1164
1164
|
getIconUrl: () => getIconUrl,
|
|
1165
1165
|
getIconUrlWithCdn: () => getIconUrlWithCdn,
|
|
1166
|
+
getIpAddress: () => getIpAddress,
|
|
1166
1167
|
getMeldQuotes: () => getMeldQuotes,
|
|
1167
1168
|
getPreferredIconUrl: () => getPreferredIconUrl,
|
|
1168
1169
|
getProjectConfig: () => getProjectConfig,
|
|
@@ -1172,6 +1173,7 @@ __export(index_exports, {
|
|
|
1172
1173
|
i18n: () => i18n,
|
|
1173
1174
|
queryExecutions: () => queryExecutions,
|
|
1174
1175
|
setApiConfig: () => setApiConfig,
|
|
1176
|
+
useAllowedCountry: () => useAllowedCountry,
|
|
1175
1177
|
useUnifold: () => useUnifold2,
|
|
1176
1178
|
useUserIp: () => useUserIp
|
|
1177
1179
|
});
|
|
@@ -1380,6 +1382,21 @@ var Info = createLucideIcon("Info", [
|
|
|
1380
1382
|
["path", { d: "M12 8h.01", key: "e9boi3" }]
|
|
1381
1383
|
]);
|
|
1382
1384
|
|
|
1385
|
+
// ../../node_modules/.pnpm/lucide-react@0.454.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/map-pin-off.js
|
|
1386
|
+
var MapPinOff = createLucideIcon("MapPinOff", [
|
|
1387
|
+
["path", { d: "M12.75 7.09a3 3 0 0 1 2.16 2.16", key: "1d4wjd" }],
|
|
1388
|
+
[
|
|
1389
|
+
"path",
|
|
1390
|
+
{
|
|
1391
|
+
d: "M17.072 17.072c-1.634 2.17-3.527 3.912-4.471 4.727a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 1.432-4.568",
|
|
1392
|
+
key: "12yil7"
|
|
1393
|
+
}
|
|
1394
|
+
],
|
|
1395
|
+
["path", { d: "m2 2 20 20", key: "1ooewy" }],
|
|
1396
|
+
["path", { d: "M8.475 2.818A8 8 0 0 1 20 10c0 1.183-.31 2.377-.81 3.533", key: "lhrkcz" }],
|
|
1397
|
+
["path", { d: "M9.13 9.13a3 3 0 0 0 3.74 3.74", key: "13wojd" }]
|
|
1398
|
+
]);
|
|
1399
|
+
|
|
1383
1400
|
// ../../node_modules/.pnpm/lucide-react@0.454.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/search.js
|
|
1384
1401
|
var Search = createLucideIcon("Search", [
|
|
1385
1402
|
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
|
|
@@ -1398,6 +1415,19 @@ var ShieldCheck = createLucideIcon("ShieldCheck", [
|
|
|
1398
1415
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
1399
1416
|
]);
|
|
1400
1417
|
|
|
1418
|
+
// ../../node_modules/.pnpm/lucide-react@0.454.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/triangle-alert.js
|
|
1419
|
+
var TriangleAlert = createLucideIcon("TriangleAlert", [
|
|
1420
|
+
[
|
|
1421
|
+
"path",
|
|
1422
|
+
{
|
|
1423
|
+
d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
|
|
1424
|
+
key: "wmoenq"
|
|
1425
|
+
}
|
|
1426
|
+
],
|
|
1427
|
+
["path", { d: "M12 9v4", key: "juzpu7" }],
|
|
1428
|
+
["path", { d: "M12 17h.01", key: "p32p05" }]
|
|
1429
|
+
]);
|
|
1430
|
+
|
|
1401
1431
|
// ../../node_modules/.pnpm/lucide-react@0.454.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/x.js
|
|
1402
1432
|
var X = createLucideIcon("X", [
|
|
1403
1433
|
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
@@ -6232,7 +6262,9 @@ function getChainName(chains, chainType, chainId) {
|
|
|
6232
6262
|
async function getProjectConfig(publishableKey) {
|
|
6233
6263
|
const pk = publishableKey || DEFAULT_PUBLISHABLE_KEY;
|
|
6234
6264
|
validatePublishableKey(pk);
|
|
6235
|
-
const
|
|
6265
|
+
const url = `${API_BASE_URL}/v1/public/projects/config`;
|
|
6266
|
+
console.log("[getProjectConfig] Fetching from:", url, "with key:", pk);
|
|
6267
|
+
const response = await fetch(url, {
|
|
6236
6268
|
method: "GET",
|
|
6237
6269
|
headers: {
|
|
6238
6270
|
accept: "application/json",
|
|
@@ -6242,19 +6274,22 @@ async function getProjectConfig(publishableKey) {
|
|
|
6242
6274
|
if (!response.ok) {
|
|
6243
6275
|
throw new Error(`Failed to fetch project config: ${response.statusText}`);
|
|
6244
6276
|
}
|
|
6245
|
-
|
|
6277
|
+
const data = await response.json();
|
|
6278
|
+
return data;
|
|
6246
6279
|
}
|
|
6247
|
-
async function
|
|
6248
|
-
const
|
|
6249
|
-
|
|
6280
|
+
async function getIpAddress() {
|
|
6281
|
+
const response = await fetch(`${API_BASE_URL}/v1/public/ip_address`, {
|
|
6282
|
+
method: "GET",
|
|
6283
|
+
headers: {
|
|
6284
|
+
accept: "application/json"
|
|
6285
|
+
}
|
|
6286
|
+
});
|
|
6250
6287
|
if (!response.ok) {
|
|
6251
|
-
throw new Error(
|
|
6288
|
+
throw new Error(
|
|
6289
|
+
`Failed to fetch IP address information: ${response.statusText}`
|
|
6290
|
+
);
|
|
6252
6291
|
}
|
|
6253
|
-
|
|
6254
|
-
return {
|
|
6255
|
-
alpha2: data.country_code.toLowerCase(),
|
|
6256
|
-
state: data.region_code?.toLowerCase()
|
|
6257
|
-
};
|
|
6292
|
+
return response.json();
|
|
6258
6293
|
}
|
|
6259
6294
|
function useUserIp() {
|
|
6260
6295
|
const {
|
|
@@ -6262,22 +6297,21 @@ function useUserIp() {
|
|
|
6262
6297
|
isLoading,
|
|
6263
6298
|
error
|
|
6264
6299
|
} = (0, import_react_query2.useQuery)({
|
|
6265
|
-
queryKey: ["
|
|
6300
|
+
queryKey: ["unifold", "userIpInfo"],
|
|
6266
6301
|
queryFn: async () => {
|
|
6267
|
-
|
|
6268
|
-
|
|
6269
|
-
|
|
6270
|
-
|
|
6271
|
-
|
|
6272
|
-
|
|
6273
|
-
|
|
6274
|
-
}
|
|
6302
|
+
const data = await getIpAddress();
|
|
6303
|
+
return {
|
|
6304
|
+
alpha2: data.alpha2.toLowerCase(),
|
|
6305
|
+
alpha3: data.alpha3?.toLowerCase(),
|
|
6306
|
+
country: data.country,
|
|
6307
|
+
state: data.state?.toLowerCase() ?? null,
|
|
6308
|
+
ipAddress: data.ip_address
|
|
6309
|
+
};
|
|
6275
6310
|
},
|
|
6276
6311
|
// Cache configuration to reduce API calls
|
|
6277
6312
|
refetchOnMount: false,
|
|
6278
6313
|
refetchOnReconnect: true,
|
|
6279
6314
|
refetchOnWindowFocus: false,
|
|
6280
|
-
// Optional: Increase cache duration to 1 hour for even better rate limit protection
|
|
6281
6315
|
staleTime: 1e3 * 60 * 60,
|
|
6282
6316
|
// 1 hour - data considered fresh for 1 hour
|
|
6283
6317
|
gcTime: 1e3 * 60 * 60 * 24
|
|
@@ -10347,6 +10381,7 @@ var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
|
10347
10381
|
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
10348
10382
|
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
10349
10383
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
10384
|
+
var import_react_query4 = require("@tanstack/react-query");
|
|
10350
10385
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
10351
10386
|
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
10352
10387
|
var React52 = __toESM(require("react"), 1);
|
|
@@ -12261,40 +12296,28 @@ function CurrencyModal({
|
|
|
12261
12296
|
] }) })
|
|
12262
12297
|
] }) });
|
|
12263
12298
|
}
|
|
12264
|
-
async function getIpViaIpApi2() {
|
|
12265
|
-
const url = "https://ipapi.co/json";
|
|
12266
|
-
const response = await fetch(url);
|
|
12267
|
-
if (!response.ok) {
|
|
12268
|
-
throw new Error(`ipapi.co failed: ${response.statusText}`);
|
|
12269
|
-
}
|
|
12270
|
-
const data = await response.json();
|
|
12271
|
-
return {
|
|
12272
|
-
alpha2: data.country_code.toLowerCase(),
|
|
12273
|
-
state: data.region_code?.toLowerCase()
|
|
12274
|
-
};
|
|
12275
|
-
}
|
|
12276
12299
|
function useUserIp2() {
|
|
12277
12300
|
const {
|
|
12278
12301
|
data: userIpInfo,
|
|
12279
12302
|
isLoading,
|
|
12280
12303
|
error
|
|
12281
12304
|
} = (0, import_react_query3.useQuery)({
|
|
12282
|
-
queryKey: ["
|
|
12305
|
+
queryKey: ["unifold", "userIpInfo"],
|
|
12283
12306
|
queryFn: async () => {
|
|
12284
|
-
|
|
12285
|
-
|
|
12286
|
-
|
|
12287
|
-
|
|
12288
|
-
|
|
12289
|
-
|
|
12290
|
-
|
|
12291
|
-
|
|
12307
|
+
const data = await getIpAddress();
|
|
12308
|
+
console.log("[useUserIp] IP detected:", data);
|
|
12309
|
+
return {
|
|
12310
|
+
alpha2: data.alpha2.toLowerCase(),
|
|
12311
|
+
alpha3: data.alpha3?.toLowerCase(),
|
|
12312
|
+
country: data.country,
|
|
12313
|
+
state: data.state?.toLowerCase() ?? null,
|
|
12314
|
+
ipAddress: data.ip_address
|
|
12315
|
+
};
|
|
12292
12316
|
},
|
|
12293
12317
|
// Cache configuration to reduce API calls
|
|
12294
12318
|
refetchOnMount: false,
|
|
12295
12319
|
refetchOnReconnect: true,
|
|
12296
12320
|
refetchOnWindowFocus: false,
|
|
12297
|
-
// Optional: Increase cache duration to 1 hour for even better rate limit protection
|
|
12298
12321
|
staleTime: 1e3 * 60 * 60,
|
|
12299
12322
|
// 1 hour - data considered fresh for 1 hour
|
|
12300
12323
|
gcTime: 1e3 * 60 * 60 * 24
|
|
@@ -13029,6 +13052,54 @@ function DepositTrackerButton({
|
|
|
13029
13052
|
}
|
|
13030
13053
|
);
|
|
13031
13054
|
}
|
|
13055
|
+
function useAllowedCountry(publishableKey) {
|
|
13056
|
+
const {
|
|
13057
|
+
data: ipData,
|
|
13058
|
+
isLoading: isIpLoading,
|
|
13059
|
+
error: ipError
|
|
13060
|
+
} = (0, import_react_query4.useQuery)({
|
|
13061
|
+
queryKey: ["unifold", "ipAddress"],
|
|
13062
|
+
queryFn: () => getIpAddress(),
|
|
13063
|
+
refetchOnMount: false,
|
|
13064
|
+
refetchOnReconnect: true,
|
|
13065
|
+
refetchOnWindowFocus: false,
|
|
13066
|
+
staleTime: 1e3 * 60 * 60,
|
|
13067
|
+
// 1 hour
|
|
13068
|
+
gcTime: 1e3 * 60 * 60 * 24
|
|
13069
|
+
// 24 hours
|
|
13070
|
+
});
|
|
13071
|
+
const {
|
|
13072
|
+
data: configData,
|
|
13073
|
+
isLoading: isConfigLoading,
|
|
13074
|
+
error: configError
|
|
13075
|
+
} = (0, import_react_query4.useQuery)({
|
|
13076
|
+
queryKey: ["unifold", "projectConfig", publishableKey],
|
|
13077
|
+
queryFn: () => getProjectConfig(publishableKey),
|
|
13078
|
+
refetchOnMount: false,
|
|
13079
|
+
refetchOnReconnect: true,
|
|
13080
|
+
refetchOnWindowFocus: false,
|
|
13081
|
+
staleTime: 1e3 * 60 * 5,
|
|
13082
|
+
// 5 minutes
|
|
13083
|
+
gcTime: 1e3 * 60 * 60
|
|
13084
|
+
// 1 hour
|
|
13085
|
+
});
|
|
13086
|
+
const isLoading = isIpLoading || isConfigLoading;
|
|
13087
|
+
const error = ipError || configError || null;
|
|
13088
|
+
let isAllowed = null;
|
|
13089
|
+
if (ipData && configData) {
|
|
13090
|
+
const blockedCodes = configData.blocked_country_codes || [];
|
|
13091
|
+
const userCountryUpper = ipData.alpha2.toUpperCase();
|
|
13092
|
+
isAllowed = !blockedCodes.some((code) => code.toUpperCase() === userCountryUpper);
|
|
13093
|
+
}
|
|
13094
|
+
return {
|
|
13095
|
+
isAllowed,
|
|
13096
|
+
// Return lowercase for consistency with useUserIp hook
|
|
13097
|
+
alpha2: ipData?.alpha2?.toLowerCase() ?? null,
|
|
13098
|
+
country: ipData?.country ?? null,
|
|
13099
|
+
isLoading,
|
|
13100
|
+
error
|
|
13101
|
+
};
|
|
13102
|
+
}
|
|
13032
13103
|
function SkeletonButton({ variant = "default" }) {
|
|
13033
13104
|
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "uf-w-full uf-bg-secondary uf-rounded-xl uf-p-3 uf-flex uf-items-center uf-justify-between uf-animate-pulse", children: [
|
|
13034
13105
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "uf-flex uf-items-center uf-gap-3", children: [
|
|
@@ -13096,6 +13167,7 @@ function DepositModal({
|
|
|
13096
13167
|
getProjectConfig(publishableKey).then(setProjectConfig).catch(console.error);
|
|
13097
13168
|
}
|
|
13098
13169
|
}, [open, publishableKey, projectConfig]);
|
|
13170
|
+
const { isAllowed, isLoading: isCountryLoading, error: countryError } = useAllowedCountry(publishableKey);
|
|
13099
13171
|
(0, import_react8.useEffect)(() => {
|
|
13100
13172
|
if (!open || wallets.length > 0) return;
|
|
13101
13173
|
let retryTimeout = null;
|
|
@@ -13173,39 +13245,56 @@ function DepositModal({
|
|
|
13173
13245
|
onClose: handleClose
|
|
13174
13246
|
}
|
|
13175
13247
|
),
|
|
13176
|
-
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "uf-pb-4 uf-space-y-3", children: !projectConfig ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
|
|
13248
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "uf-pb-4 uf-space-y-3", children: isCountryLoading || !projectConfig ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
|
|
13177
13249
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SkeletonButton, { variant: "with-icons" }),
|
|
13178
13250
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SkeletonButton, { variant: "with-icons" }),
|
|
13179
13251
|
!hideDepositTracker && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SkeletonButton, {})
|
|
13180
|
-
] }) :
|
|
13181
|
-
/*
|
|
13182
|
-
|
|
13183
|
-
{
|
|
13184
|
-
|
|
13185
|
-
|
|
13186
|
-
|
|
13187
|
-
|
|
13188
|
-
|
|
13189
|
-
),
|
|
13190
|
-
|
|
13191
|
-
|
|
13192
|
-
{
|
|
13193
|
-
|
|
13194
|
-
|
|
13195
|
-
|
|
13196
|
-
|
|
13197
|
-
|
|
13198
|
-
|
|
13199
|
-
|
|
13200
|
-
|
|
13201
|
-
|
|
13202
|
-
|
|
13203
|
-
|
|
13204
|
-
|
|
13205
|
-
|
|
13206
|
-
|
|
13207
|
-
|
|
13208
|
-
|
|
13252
|
+
] }) : countryError ? (
|
|
13253
|
+
/* Error state - couldn't verify location */
|
|
13254
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "uf-flex uf-flex-col uf-items-center uf-justify-center uf-py-8 uf-px-4 uf-text-center", children: [
|
|
13255
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "uf-w-16 uf-h-16 uf-rounded-full uf-bg-muted uf-flex uf-items-center uf-justify-center uf-mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(TriangleAlert, { className: "uf-w-8 uf-h-8 uf-text-muted-foreground" }) }),
|
|
13256
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("h3", { className: "uf-text-lg uf-font-semibold uf-text-foreground uf-mb-2", children: "Unable to Verify Location" }),
|
|
13257
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "uf-text-sm uf-text-muted-foreground uf-max-w-[280px]", children: "We couldn't verify your location. Please check your connection and try again." })
|
|
13258
|
+
] })
|
|
13259
|
+
) : !isAllowed ? (
|
|
13260
|
+
/* Blocked country state (isAllowed is false or null without error) */
|
|
13261
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "uf-flex uf-flex-col uf-items-center uf-justify-center uf-py-8 uf-px-4 uf-text-center", children: [
|
|
13262
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "uf-w-16 uf-h-16 uf-rounded-full uf-bg-muted uf-flex uf-items-center uf-justify-center uf-mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(MapPinOff, { className: "uf-w-8 uf-h-8 uf-text-muted-foreground" }) }),
|
|
13263
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("h3", { className: "uf-text-lg uf-font-semibold uf-text-foreground uf-mb-2", children: "No Tokens Available" }),
|
|
13264
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "uf-text-sm uf-text-muted-foreground uf-max-w-[280px]", children: "There are no supported tokens available from your current location." })
|
|
13265
|
+
] })
|
|
13266
|
+
) : (
|
|
13267
|
+
/* Normal deposit options */
|
|
13268
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
|
|
13269
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
13270
|
+
TransferCryptoButton,
|
|
13271
|
+
{
|
|
13272
|
+
onClick: () => setView("transfer"),
|
|
13273
|
+
title: t3.transferCrypto.title,
|
|
13274
|
+
subtitle: t3.transferCrypto.subtitle,
|
|
13275
|
+
featuredTokens: projectConfig.transfer_crypto.networks
|
|
13276
|
+
}
|
|
13277
|
+
),
|
|
13278
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
13279
|
+
DepositWithCardButton,
|
|
13280
|
+
{
|
|
13281
|
+
onClick: () => setView("card"),
|
|
13282
|
+
title: t3.depositWithCard.title,
|
|
13283
|
+
subtitle: t3.depositWithCard.subtitle,
|
|
13284
|
+
paymentNetworks: projectConfig.payment_networks.networks
|
|
13285
|
+
}
|
|
13286
|
+
),
|
|
13287
|
+
!hideDepositTracker && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
13288
|
+
DepositTrackerButton,
|
|
13289
|
+
{
|
|
13290
|
+
onClick: () => setDepositsModalOpen(true),
|
|
13291
|
+
title: "Deposit Tracker",
|
|
13292
|
+
subtitle: "Track your deposit progress",
|
|
13293
|
+
badge: depositExecutions.length > 0 ? depositExecutions.length : void 0
|
|
13294
|
+
}
|
|
13295
|
+
)
|
|
13296
|
+
] })
|
|
13297
|
+
) })
|
|
13209
13298
|
] }) : view === "transfer" ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
|
|
13210
13299
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
13211
13300
|
DepositHeader,
|
|
@@ -13468,6 +13557,7 @@ function useUnifold2() {
|
|
|
13468
13557
|
getFiatCurrencies,
|
|
13469
13558
|
getIconUrl,
|
|
13470
13559
|
getIconUrlWithCdn,
|
|
13560
|
+
getIpAddress,
|
|
13471
13561
|
getMeldQuotes,
|
|
13472
13562
|
getPreferredIconUrl,
|
|
13473
13563
|
getProjectConfig,
|
|
@@ -13477,6 +13567,7 @@ function useUnifold2() {
|
|
|
13477
13567
|
i18n,
|
|
13478
13568
|
queryExecutions,
|
|
13479
13569
|
setApiConfig,
|
|
13570
|
+
useAllowedCountry,
|
|
13480
13571
|
useUnifold,
|
|
13481
13572
|
useUserIp
|
|
13482
13573
|
});
|
|
@@ -13497,8 +13588,10 @@ lucide-react/dist/esm/icons/dollar-sign.js:
|
|
|
13497
13588
|
lucide-react/dist/esm/icons/external-link.js:
|
|
13498
13589
|
lucide-react/dist/esm/icons/file-text.js:
|
|
13499
13590
|
lucide-react/dist/esm/icons/info.js:
|
|
13591
|
+
lucide-react/dist/esm/icons/map-pin-off.js:
|
|
13500
13592
|
lucide-react/dist/esm/icons/search.js:
|
|
13501
13593
|
lucide-react/dist/esm/icons/shield-check.js:
|
|
13594
|
+
lucide-react/dist/esm/icons/triangle-alert.js:
|
|
13502
13595
|
lucide-react/dist/esm/icons/x.js:
|
|
13503
13596
|
lucide-react/dist/esm/icons/zap.js:
|
|
13504
13597
|
lucide-react/dist/esm/lucide-react.js:
|
package/dist/index.mjs
CHANGED
|
@@ -1357,6 +1357,21 @@ var Info = createLucideIcon("Info", [
|
|
|
1357
1357
|
["path", { d: "M12 8h.01", key: "e9boi3" }]
|
|
1358
1358
|
]);
|
|
1359
1359
|
|
|
1360
|
+
// ../../node_modules/.pnpm/lucide-react@0.454.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/map-pin-off.js
|
|
1361
|
+
var MapPinOff = createLucideIcon("MapPinOff", [
|
|
1362
|
+
["path", { d: "M12.75 7.09a3 3 0 0 1 2.16 2.16", key: "1d4wjd" }],
|
|
1363
|
+
[
|
|
1364
|
+
"path",
|
|
1365
|
+
{
|
|
1366
|
+
d: "M17.072 17.072c-1.634 2.17-3.527 3.912-4.471 4.727a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 1.432-4.568",
|
|
1367
|
+
key: "12yil7"
|
|
1368
|
+
}
|
|
1369
|
+
],
|
|
1370
|
+
["path", { d: "m2 2 20 20", key: "1ooewy" }],
|
|
1371
|
+
["path", { d: "M8.475 2.818A8 8 0 0 1 20 10c0 1.183-.31 2.377-.81 3.533", key: "lhrkcz" }],
|
|
1372
|
+
["path", { d: "M9.13 9.13a3 3 0 0 0 3.74 3.74", key: "13wojd" }]
|
|
1373
|
+
]);
|
|
1374
|
+
|
|
1360
1375
|
// ../../node_modules/.pnpm/lucide-react@0.454.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/search.js
|
|
1361
1376
|
var Search = createLucideIcon("Search", [
|
|
1362
1377
|
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }],
|
|
@@ -1375,6 +1390,19 @@ var ShieldCheck = createLucideIcon("ShieldCheck", [
|
|
|
1375
1390
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
1376
1391
|
]);
|
|
1377
1392
|
|
|
1393
|
+
// ../../node_modules/.pnpm/lucide-react@0.454.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/triangle-alert.js
|
|
1394
|
+
var TriangleAlert = createLucideIcon("TriangleAlert", [
|
|
1395
|
+
[
|
|
1396
|
+
"path",
|
|
1397
|
+
{
|
|
1398
|
+
d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
|
|
1399
|
+
key: "wmoenq"
|
|
1400
|
+
}
|
|
1401
|
+
],
|
|
1402
|
+
["path", { d: "M12 9v4", key: "juzpu7" }],
|
|
1403
|
+
["path", { d: "M12 17h.01", key: "p32p05" }]
|
|
1404
|
+
]);
|
|
1405
|
+
|
|
1378
1406
|
// ../../node_modules/.pnpm/lucide-react@0.454.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/x.js
|
|
1379
1407
|
var X = createLucideIcon("X", [
|
|
1380
1408
|
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
@@ -6209,7 +6237,9 @@ function getChainName(chains, chainType, chainId) {
|
|
|
6209
6237
|
async function getProjectConfig(publishableKey) {
|
|
6210
6238
|
const pk = publishableKey || DEFAULT_PUBLISHABLE_KEY;
|
|
6211
6239
|
validatePublishableKey(pk);
|
|
6212
|
-
const
|
|
6240
|
+
const url = `${API_BASE_URL}/v1/public/projects/config`;
|
|
6241
|
+
console.log("[getProjectConfig] Fetching from:", url, "with key:", pk);
|
|
6242
|
+
const response = await fetch(url, {
|
|
6213
6243
|
method: "GET",
|
|
6214
6244
|
headers: {
|
|
6215
6245
|
accept: "application/json",
|
|
@@ -6219,19 +6249,22 @@ async function getProjectConfig(publishableKey) {
|
|
|
6219
6249
|
if (!response.ok) {
|
|
6220
6250
|
throw new Error(`Failed to fetch project config: ${response.statusText}`);
|
|
6221
6251
|
}
|
|
6222
|
-
|
|
6252
|
+
const data = await response.json();
|
|
6253
|
+
return data;
|
|
6223
6254
|
}
|
|
6224
|
-
async function
|
|
6225
|
-
const
|
|
6226
|
-
|
|
6255
|
+
async function getIpAddress() {
|
|
6256
|
+
const response = await fetch(`${API_BASE_URL}/v1/public/ip_address`, {
|
|
6257
|
+
method: "GET",
|
|
6258
|
+
headers: {
|
|
6259
|
+
accept: "application/json"
|
|
6260
|
+
}
|
|
6261
|
+
});
|
|
6227
6262
|
if (!response.ok) {
|
|
6228
|
-
throw new Error(
|
|
6263
|
+
throw new Error(
|
|
6264
|
+
`Failed to fetch IP address information: ${response.statusText}`
|
|
6265
|
+
);
|
|
6229
6266
|
}
|
|
6230
|
-
|
|
6231
|
-
return {
|
|
6232
|
-
alpha2: data.country_code.toLowerCase(),
|
|
6233
|
-
state: data.region_code?.toLowerCase()
|
|
6234
|
-
};
|
|
6267
|
+
return response.json();
|
|
6235
6268
|
}
|
|
6236
6269
|
function useUserIp() {
|
|
6237
6270
|
const {
|
|
@@ -6239,22 +6272,21 @@ function useUserIp() {
|
|
|
6239
6272
|
isLoading,
|
|
6240
6273
|
error
|
|
6241
6274
|
} = useQuery({
|
|
6242
|
-
queryKey: ["
|
|
6275
|
+
queryKey: ["unifold", "userIpInfo"],
|
|
6243
6276
|
queryFn: async () => {
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6249
|
-
|
|
6250
|
-
|
|
6251
|
-
}
|
|
6277
|
+
const data = await getIpAddress();
|
|
6278
|
+
return {
|
|
6279
|
+
alpha2: data.alpha2.toLowerCase(),
|
|
6280
|
+
alpha3: data.alpha3?.toLowerCase(),
|
|
6281
|
+
country: data.country,
|
|
6282
|
+
state: data.state?.toLowerCase() ?? null,
|
|
6283
|
+
ipAddress: data.ip_address
|
|
6284
|
+
};
|
|
6252
6285
|
},
|
|
6253
6286
|
// Cache configuration to reduce API calls
|
|
6254
6287
|
refetchOnMount: false,
|
|
6255
6288
|
refetchOnReconnect: true,
|
|
6256
6289
|
refetchOnWindowFocus: false,
|
|
6257
|
-
// Optional: Increase cache duration to 1 hour for even better rate limit protection
|
|
6258
6290
|
staleTime: 1e3 * 60 * 60,
|
|
6259
6291
|
// 1 hour - data considered fresh for 1 hour
|
|
6260
6292
|
gcTime: 1e3 * 60 * 60 * 24
|
|
@@ -10324,6 +10356,7 @@ import { jsx as jsx162, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
|
10324
10356
|
import { jsx as jsx172, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
10325
10357
|
import { jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
10326
10358
|
import { jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
10359
|
+
import { useQuery as useQuery22 } from "@tanstack/react-query";
|
|
10327
10360
|
import { Fragment as Fragment42, jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
10328
10361
|
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
10329
10362
|
import * as React52 from "react";
|
|
@@ -12238,40 +12271,28 @@ function CurrencyModal({
|
|
|
12238
12271
|
] }) })
|
|
12239
12272
|
] }) });
|
|
12240
12273
|
}
|
|
12241
|
-
async function getIpViaIpApi2() {
|
|
12242
|
-
const url = "https://ipapi.co/json";
|
|
12243
|
-
const response = await fetch(url);
|
|
12244
|
-
if (!response.ok) {
|
|
12245
|
-
throw new Error(`ipapi.co failed: ${response.statusText}`);
|
|
12246
|
-
}
|
|
12247
|
-
const data = await response.json();
|
|
12248
|
-
return {
|
|
12249
|
-
alpha2: data.country_code.toLowerCase(),
|
|
12250
|
-
state: data.region_code?.toLowerCase()
|
|
12251
|
-
};
|
|
12252
|
-
}
|
|
12253
12274
|
function useUserIp2() {
|
|
12254
12275
|
const {
|
|
12255
12276
|
data: userIpInfo,
|
|
12256
12277
|
isLoading,
|
|
12257
12278
|
error
|
|
12258
12279
|
} = useQuery2({
|
|
12259
|
-
queryKey: ["
|
|
12280
|
+
queryKey: ["unifold", "userIpInfo"],
|
|
12260
12281
|
queryFn: async () => {
|
|
12261
|
-
|
|
12262
|
-
|
|
12263
|
-
|
|
12264
|
-
|
|
12265
|
-
|
|
12266
|
-
|
|
12267
|
-
|
|
12268
|
-
|
|
12282
|
+
const data = await getIpAddress();
|
|
12283
|
+
console.log("[useUserIp] IP detected:", data);
|
|
12284
|
+
return {
|
|
12285
|
+
alpha2: data.alpha2.toLowerCase(),
|
|
12286
|
+
alpha3: data.alpha3?.toLowerCase(),
|
|
12287
|
+
country: data.country,
|
|
12288
|
+
state: data.state?.toLowerCase() ?? null,
|
|
12289
|
+
ipAddress: data.ip_address
|
|
12290
|
+
};
|
|
12269
12291
|
},
|
|
12270
12292
|
// Cache configuration to reduce API calls
|
|
12271
12293
|
refetchOnMount: false,
|
|
12272
12294
|
refetchOnReconnect: true,
|
|
12273
12295
|
refetchOnWindowFocus: false,
|
|
12274
|
-
// Optional: Increase cache duration to 1 hour for even better rate limit protection
|
|
12275
12296
|
staleTime: 1e3 * 60 * 60,
|
|
12276
12297
|
// 1 hour - data considered fresh for 1 hour
|
|
12277
12298
|
gcTime: 1e3 * 60 * 60 * 24
|
|
@@ -13006,6 +13027,54 @@ function DepositTrackerButton({
|
|
|
13006
13027
|
}
|
|
13007
13028
|
);
|
|
13008
13029
|
}
|
|
13030
|
+
function useAllowedCountry(publishableKey) {
|
|
13031
|
+
const {
|
|
13032
|
+
data: ipData,
|
|
13033
|
+
isLoading: isIpLoading,
|
|
13034
|
+
error: ipError
|
|
13035
|
+
} = useQuery22({
|
|
13036
|
+
queryKey: ["unifold", "ipAddress"],
|
|
13037
|
+
queryFn: () => getIpAddress(),
|
|
13038
|
+
refetchOnMount: false,
|
|
13039
|
+
refetchOnReconnect: true,
|
|
13040
|
+
refetchOnWindowFocus: false,
|
|
13041
|
+
staleTime: 1e3 * 60 * 60,
|
|
13042
|
+
// 1 hour
|
|
13043
|
+
gcTime: 1e3 * 60 * 60 * 24
|
|
13044
|
+
// 24 hours
|
|
13045
|
+
});
|
|
13046
|
+
const {
|
|
13047
|
+
data: configData,
|
|
13048
|
+
isLoading: isConfigLoading,
|
|
13049
|
+
error: configError
|
|
13050
|
+
} = useQuery22({
|
|
13051
|
+
queryKey: ["unifold", "projectConfig", publishableKey],
|
|
13052
|
+
queryFn: () => getProjectConfig(publishableKey),
|
|
13053
|
+
refetchOnMount: false,
|
|
13054
|
+
refetchOnReconnect: true,
|
|
13055
|
+
refetchOnWindowFocus: false,
|
|
13056
|
+
staleTime: 1e3 * 60 * 5,
|
|
13057
|
+
// 5 minutes
|
|
13058
|
+
gcTime: 1e3 * 60 * 60
|
|
13059
|
+
// 1 hour
|
|
13060
|
+
});
|
|
13061
|
+
const isLoading = isIpLoading || isConfigLoading;
|
|
13062
|
+
const error = ipError || configError || null;
|
|
13063
|
+
let isAllowed = null;
|
|
13064
|
+
if (ipData && configData) {
|
|
13065
|
+
const blockedCodes = configData.blocked_country_codes || [];
|
|
13066
|
+
const userCountryUpper = ipData.alpha2.toUpperCase();
|
|
13067
|
+
isAllowed = !blockedCodes.some((code) => code.toUpperCase() === userCountryUpper);
|
|
13068
|
+
}
|
|
13069
|
+
return {
|
|
13070
|
+
isAllowed,
|
|
13071
|
+
// Return lowercase for consistency with useUserIp hook
|
|
13072
|
+
alpha2: ipData?.alpha2?.toLowerCase() ?? null,
|
|
13073
|
+
country: ipData?.country ?? null,
|
|
13074
|
+
isLoading,
|
|
13075
|
+
error
|
|
13076
|
+
};
|
|
13077
|
+
}
|
|
13009
13078
|
function SkeletonButton({ variant = "default" }) {
|
|
13010
13079
|
return /* @__PURE__ */ jsxs16("div", { className: "uf-w-full uf-bg-secondary uf-rounded-xl uf-p-3 uf-flex uf-items-center uf-justify-between uf-animate-pulse", children: [
|
|
13011
13080
|
/* @__PURE__ */ jsxs16("div", { className: "uf-flex uf-items-center uf-gap-3", children: [
|
|
@@ -13073,6 +13142,7 @@ function DepositModal({
|
|
|
13073
13142
|
getProjectConfig(publishableKey).then(setProjectConfig).catch(console.error);
|
|
13074
13143
|
}
|
|
13075
13144
|
}, [open, publishableKey, projectConfig]);
|
|
13145
|
+
const { isAllowed, isLoading: isCountryLoading, error: countryError } = useAllowedCountry(publishableKey);
|
|
13076
13146
|
useEffect62(() => {
|
|
13077
13147
|
if (!open || wallets.length > 0) return;
|
|
13078
13148
|
let retryTimeout = null;
|
|
@@ -13150,39 +13220,56 @@ function DepositModal({
|
|
|
13150
13220
|
onClose: handleClose
|
|
13151
13221
|
}
|
|
13152
13222
|
),
|
|
13153
|
-
/* @__PURE__ */ jsx20("div", { className: "uf-pb-4 uf-space-y-3", children: !projectConfig ? /* @__PURE__ */ jsxs16(Fragment42, { children: [
|
|
13223
|
+
/* @__PURE__ */ jsx20("div", { className: "uf-pb-4 uf-space-y-3", children: isCountryLoading || !projectConfig ? /* @__PURE__ */ jsxs16(Fragment42, { children: [
|
|
13154
13224
|
/* @__PURE__ */ jsx20(SkeletonButton, { variant: "with-icons" }),
|
|
13155
13225
|
/* @__PURE__ */ jsx20(SkeletonButton, { variant: "with-icons" }),
|
|
13156
13226
|
!hideDepositTracker && /* @__PURE__ */ jsx20(SkeletonButton, {})
|
|
13157
|
-
] }) :
|
|
13158
|
-
/*
|
|
13159
|
-
|
|
13160
|
-
{
|
|
13161
|
-
|
|
13162
|
-
|
|
13163
|
-
|
|
13164
|
-
|
|
13165
|
-
|
|
13166
|
-
|
|
13167
|
-
|
|
13168
|
-
|
|
13169
|
-
{
|
|
13170
|
-
|
|
13171
|
-
|
|
13172
|
-
|
|
13173
|
-
|
|
13174
|
-
|
|
13175
|
-
|
|
13176
|
-
|
|
13177
|
-
|
|
13178
|
-
|
|
13179
|
-
|
|
13180
|
-
|
|
13181
|
-
|
|
13182
|
-
|
|
13183
|
-
|
|
13184
|
-
|
|
13185
|
-
|
|
13227
|
+
] }) : countryError ? (
|
|
13228
|
+
/* Error state - couldn't verify location */
|
|
13229
|
+
/* @__PURE__ */ jsxs16("div", { className: "uf-flex uf-flex-col uf-items-center uf-justify-center uf-py-8 uf-px-4 uf-text-center", children: [
|
|
13230
|
+
/* @__PURE__ */ jsx20("div", { className: "uf-w-16 uf-h-16 uf-rounded-full uf-bg-muted uf-flex uf-items-center uf-justify-center uf-mb-4", children: /* @__PURE__ */ jsx20(TriangleAlert, { className: "uf-w-8 uf-h-8 uf-text-muted-foreground" }) }),
|
|
13231
|
+
/* @__PURE__ */ jsx20("h3", { className: "uf-text-lg uf-font-semibold uf-text-foreground uf-mb-2", children: "Unable to Verify Location" }),
|
|
13232
|
+
/* @__PURE__ */ jsx20("p", { className: "uf-text-sm uf-text-muted-foreground uf-max-w-[280px]", children: "We couldn't verify your location. Please check your connection and try again." })
|
|
13233
|
+
] })
|
|
13234
|
+
) : !isAllowed ? (
|
|
13235
|
+
/* Blocked country state (isAllowed is false or null without error) */
|
|
13236
|
+
/* @__PURE__ */ jsxs16("div", { className: "uf-flex uf-flex-col uf-items-center uf-justify-center uf-py-8 uf-px-4 uf-text-center", children: [
|
|
13237
|
+
/* @__PURE__ */ jsx20("div", { className: "uf-w-16 uf-h-16 uf-rounded-full uf-bg-muted uf-flex uf-items-center uf-justify-center uf-mb-4", children: /* @__PURE__ */ jsx20(MapPinOff, { className: "uf-w-8 uf-h-8 uf-text-muted-foreground" }) }),
|
|
13238
|
+
/* @__PURE__ */ jsx20("h3", { className: "uf-text-lg uf-font-semibold uf-text-foreground uf-mb-2", children: "No Tokens Available" }),
|
|
13239
|
+
/* @__PURE__ */ jsx20("p", { className: "uf-text-sm uf-text-muted-foreground uf-max-w-[280px]", children: "There are no supported tokens available from your current location." })
|
|
13240
|
+
] })
|
|
13241
|
+
) : (
|
|
13242
|
+
/* Normal deposit options */
|
|
13243
|
+
/* @__PURE__ */ jsxs16(Fragment42, { children: [
|
|
13244
|
+
/* @__PURE__ */ jsx20(
|
|
13245
|
+
TransferCryptoButton,
|
|
13246
|
+
{
|
|
13247
|
+
onClick: () => setView("transfer"),
|
|
13248
|
+
title: t3.transferCrypto.title,
|
|
13249
|
+
subtitle: t3.transferCrypto.subtitle,
|
|
13250
|
+
featuredTokens: projectConfig.transfer_crypto.networks
|
|
13251
|
+
}
|
|
13252
|
+
),
|
|
13253
|
+
/* @__PURE__ */ jsx20(
|
|
13254
|
+
DepositWithCardButton,
|
|
13255
|
+
{
|
|
13256
|
+
onClick: () => setView("card"),
|
|
13257
|
+
title: t3.depositWithCard.title,
|
|
13258
|
+
subtitle: t3.depositWithCard.subtitle,
|
|
13259
|
+
paymentNetworks: projectConfig.payment_networks.networks
|
|
13260
|
+
}
|
|
13261
|
+
),
|
|
13262
|
+
!hideDepositTracker && /* @__PURE__ */ jsx20(
|
|
13263
|
+
DepositTrackerButton,
|
|
13264
|
+
{
|
|
13265
|
+
onClick: () => setDepositsModalOpen(true),
|
|
13266
|
+
title: "Deposit Tracker",
|
|
13267
|
+
subtitle: "Track your deposit progress",
|
|
13268
|
+
badge: depositExecutions.length > 0 ? depositExecutions.length : void 0
|
|
13269
|
+
}
|
|
13270
|
+
)
|
|
13271
|
+
] })
|
|
13272
|
+
) })
|
|
13186
13273
|
] }) : view === "transfer" ? /* @__PURE__ */ jsxs16(Fragment42, { children: [
|
|
13187
13274
|
/* @__PURE__ */ jsx20(
|
|
13188
13275
|
DepositHeader,
|
|
@@ -13444,6 +13531,7 @@ export {
|
|
|
13444
13531
|
getFiatCurrencies,
|
|
13445
13532
|
getIconUrl,
|
|
13446
13533
|
getIconUrlWithCdn,
|
|
13534
|
+
getIpAddress,
|
|
13447
13535
|
getMeldQuotes,
|
|
13448
13536
|
getPreferredIconUrl,
|
|
13449
13537
|
getProjectConfig,
|
|
@@ -13453,6 +13541,7 @@ export {
|
|
|
13453
13541
|
i18n,
|
|
13454
13542
|
queryExecutions,
|
|
13455
13543
|
setApiConfig,
|
|
13544
|
+
useAllowedCountry,
|
|
13456
13545
|
useUnifold2 as useUnifold,
|
|
13457
13546
|
useUserIp
|
|
13458
13547
|
};
|
|
@@ -13473,8 +13562,10 @@ lucide-react/dist/esm/icons/dollar-sign.js:
|
|
|
13473
13562
|
lucide-react/dist/esm/icons/external-link.js:
|
|
13474
13563
|
lucide-react/dist/esm/icons/file-text.js:
|
|
13475
13564
|
lucide-react/dist/esm/icons/info.js:
|
|
13565
|
+
lucide-react/dist/esm/icons/map-pin-off.js:
|
|
13476
13566
|
lucide-react/dist/esm/icons/search.js:
|
|
13477
13567
|
lucide-react/dist/esm/icons/shield-check.js:
|
|
13568
|
+
lucide-react/dist/esm/icons/triangle-alert.js:
|
|
13478
13569
|
lucide-react/dist/esm/icons/x.js:
|
|
13479
13570
|
lucide-react/dist/esm/icons/zap.js:
|
|
13480
13571
|
lucide-react/dist/esm/lucide-react.js:
|
package/dist/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--uf-background:0 0% 100%;--uf-foreground:0 0% 3.9%;--uf-card:0 0% 98%;--uf-card-foreground:0 0% 3.9%;--uf-popover:0 0% 100%;--uf-popover-foreground:0 0% 3.9%;--uf-primary:0 0% 9%;--uf-primary-foreground:0 0% 98%;--uf-secondary:0 0% 95%;--uf-secondary-foreground:0 0% 9%;--uf-muted:0 0% 92%;--uf-muted-foreground:0 0% 40%;--uf-accent:0 0% 90%;--uf-accent-foreground:0 0% 9%;--uf-destructive:0 84.2% 60.2%;--uf-destructive-foreground:0 0% 98%;--uf-border:0 0% 85%;--uf-input:0 0% 89.8%;--uf-ring:0 0% 3.9%;--uf-radius:0.5rem}.uf-dark{--uf-background:0 0% 5%;--uf-foreground:0 0% 98%;--uf-card:0 0% 10%;--uf-card-foreground:0 0% 98%;--uf-popover:0 0% 10%;--uf-popover-foreground:0 0% 98%;--uf-primary:0 0% 98%;--uf-primary-foreground:0 0% 9%;--uf-secondary:0 0% 16%;--uf-secondary-foreground:0 0% 98%;--uf-muted:0 0% 20%;--uf-muted-foreground:0 0% 60%;--uf-accent:0 0% 20%;--uf-accent-foreground:0 0% 98%;--uf-destructive:0 62.8% 30.6%;--uf-destructive-foreground:0 0% 98%;--uf-border:0 0% 20%;--uf-input:0 0% 20%;--uf-ring:0 0% 83.1%}[class*=uf-],[data-radix-popper-content-wrapper],[data-radix-portal]{font-family:Sons,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif!important}[class*=uf-] *,[data-radix-popper-content-wrapper] *,[data-radix-portal] *{font-family:inherit}.uf-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.uf-pointer-events-none{pointer-events:none}.uf-invisible{visibility:hidden}.uf-fixed{position:fixed}.uf-absolute{position:absolute}.uf-relative{position:relative}.uf-inset-0{inset:0}.-uf-bottom-0\.5{bottom:-.125rem}.-uf-bottom-1{bottom:-.25rem}.-uf-right-0\.5{right:-.125rem}.-uf-right-1{right:-.25rem}.-uf-top-1{top:-.25rem}.uf--bottom-0\.5{bottom:-.125rem}.uf--right-0\.5{right:-.125rem}.uf-bottom-0{bottom:0}.uf-bottom-4{bottom:1rem}.uf-left-0{left:0}.uf-left-1\/2{left:50%}.uf-left-2{left:.5rem}.uf-left-4{left:1rem}.uf-right-0{right:0}.uf-right-6{right:1.5rem}.uf-top-1\/2{top:50%}.uf-top-6{top:1.5rem}.uf-z-50{z-index:50}.uf-z-\[100\]{z-index:100}.uf-z-\[1\]{z-index:1}.uf-z-\[9999\]{z-index:9999}.uf--mx-1{margin-left:-.25rem;margin-right:-.25rem}.uf-mx-1{margin-left:.25rem;margin-right:.25rem}.uf-my-1{margin-top:.25rem;margin-bottom:.25rem}.uf-mb-0\.5{margin-bottom:.125rem}.uf-mb-1{margin-bottom:.25rem}.uf-mb-1\.5{margin-bottom:.375rem}.uf-mb-2{margin-bottom:.5rem}.uf-mb-3{margin-bottom:.75rem}.uf-mb-4{margin-bottom:1rem}.uf-mb-6{margin-bottom:1.5rem}.uf-mb-8{margin-bottom:2rem}.uf-mr-1{margin-right:.25rem}.uf-mt-0\.5{margin-top:.125rem}.uf-mt-2{margin-top:.5rem}.uf-mt-8{margin-top:2rem}.uf-block{display:block}.uf-flex{display:flex}.uf-inline-flex{display:inline-flex}.uf-grid{display:grid}.uf-h-10{height:2.5rem}.uf-h-11{height:2.75rem}.uf-h-2{height:.5rem}.uf-h-3{height:.75rem}.uf-h-3\.5{height:.875rem}.uf-h-4{height:1rem}.uf-h-5{height:1.25rem}.uf-h-6{height:1.5rem}.uf-h-7{height:1.75rem}.uf-h-8{height:2rem}.uf-h-9{height:2.25rem}.uf-h-\[18px\]{height:18px}.uf-h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.uf-h-full{height:100%}.uf-h-px{height:1px}.uf-max-h-96{max-height:24rem}.uf-max-h-\[300px\]{max-height:300px}.uf-max-h-\[400px\]{max-height:400px}.uf-max-h-\[500px\]{max-height:500px}.uf-min-h-\[420px\]{min-height:420px}.uf-w-10{width:2.5rem}.uf-w-2{width:.5rem}.uf-w-24{width:6rem}.uf-w-28{width:7rem}.uf-w-3{width:.75rem}.uf-w-3\.5{width:.875rem}.uf-w-32{width:8rem}.uf-w-4{width:1rem}.uf-w-40{width:10rem}.uf-w-5{width:1.25rem}.uf-w-6{width:1.5rem}.uf-w-7{width:1.75rem}.uf-w-8{width:2rem}.uf-w-9{width:2.25rem}.uf-w-\[360px\]{width:360px}.uf-w-\[calc\(100vw-2rem\)\]{width:calc(100vw - 2rem)}.uf-w-full{width:100%}.uf-min-w-0{min-width:0}.uf-min-w-\[18px\]{min-width:18px}.uf-min-w-\[1ch\]{min-width:1ch}.uf-min-w-\[200px\]{min-width:200px}.uf-min-w-\[72px\]{min-width:72px}.uf-min-w-\[8rem\]{min-width:8rem}.uf-min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.uf-max-w-\[200px\]{max-width:200px}.uf-max-w-\[240px\]{max-width:240px}.uf-max-w-\[280px\]{max-width:280px}.uf-max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.uf-max-w-full{max-width:100%}.uf-flex-1{flex:1 1 0%}.uf-flex-shrink-0{flex-shrink:0}.uf--translate-x-1\/2{--tw-translate-x:-50%}.uf--translate-x-1\/2,.uf--translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.uf--translate-y-1\/2{--tw-translate-y:-50%}@keyframes uf-pulse{50%{opacity:.5}}.uf-animate-pulse{animation:uf-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes uf-spin{to{transform:rotate(1turn)}}.uf-animate-spin{animation:uf-spin 1s linear infinite}.uf-cursor-default{cursor:default}.uf-cursor-pointer{cursor:pointer}.uf-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.uf-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.uf-grid-cols-\[auto_1fr_auto\]{grid-template-columns:auto 1fr auto}.uf-flex-col{flex-direction:column}.uf-flex-col-reverse{flex-direction:column-reverse}.uf-items-center{align-items:center}.uf-justify-end{justify-content:flex-end}.uf-justify-center{justify-content:center}.uf-justify-between{justify-content:space-between}.uf-gap-0{gap:0}.uf-gap-1{gap:.25rem}.uf-gap-1\.5{gap:.375rem}.uf-gap-2{gap:.5rem}.uf-gap-2\.5{gap:.625rem}.uf-gap-3{gap:.75rem}.uf-gap-4{gap:1rem}.uf--space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-.25rem*var(--tw-space-x-reverse));margin-left:calc(-.25rem*(1 - var(--tw-space-x-reverse)))}.uf--space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-.5rem*var(--tw-space-x-reverse));margin-left:calc(-.5rem*(1 - var(--tw-space-x-reverse)))}.uf-space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.uf-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.uf-space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem*var(--tw-space-y-reverse))}.uf-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.uf-self-start{align-self:flex-start}.uf-overflow-hidden{overflow:hidden}.uf-overflow-visible{overflow:visible}.uf-overflow-y-auto{overflow-y:auto}.uf-whitespace-nowrap{white-space:nowrap}.uf-break-all{word-break:break-all}.uf-rounded{border-radius:.25rem}.uf-rounded-2xl{border-radius:1rem}.uf-rounded-full{border-radius:9999px}.uf-rounded-lg{border-radius:var(--uf-radius)}.uf-rounded-md{border-radius:calc(var(--uf-radius) - 2px)}.uf-rounded-sm{border-radius:calc(var(--uf-radius) - 4px)}.uf-rounded-xl{border-radius:.75rem}.uf-rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.uf-border{border-width:1px}.uf-border-2{border-width:2px}.uf-border-b{border-bottom-width:1px}.uf-border-none{border-style:none}.uf-border-border{border-color:hsl(var(--uf-border))}.uf-border-border\/50{border-color:hsl(var(--uf-border)/.5)}.uf-border-input{border-color:hsl(var(--uf-input))}.uf-border-secondary{border-color:hsl(var(--uf-secondary))}.uf-border-zinc-300{--tw-border-opacity:1;border-color:rgb(212 212 216/var(--tw-border-opacity,1))}.\!uf-bg-card{background-color:hsl(var(--uf-card))!important}.\!uf-bg-popover{background-color:hsl(var(--uf-popover))!important}.\!uf-bg-secondary{background-color:hsl(var(--uf-secondary))!important}.uf-bg-background{background-color:hsl(var(--uf-background))}.uf-bg-black\/40{background-color:rgba(0,0,0,.4)}.uf-bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.uf-bg-card{background-color:hsl(var(--uf-card))}.uf-bg-destructive{background-color:hsl(var(--uf-destructive))}.uf-bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.uf-bg-muted{background-color:hsl(var(--uf-muted))}.uf-bg-popover{background-color:hsl(var(--uf-popover))}.uf-bg-primary{background-color:hsl(var(--uf-primary))}.uf-bg-secondary{background-color:hsl(var(--uf-secondary))}.uf-bg-transparent{background-color:transparent}.uf-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.uf-bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.uf-p-0{padding:0}.uf-p-0\.5{padding:.125rem}.uf-p-1{padding:.25rem}.uf-p-2{padding:.5rem}.uf-p-3{padding:.75rem}.uf-p-4{padding:1rem}.uf-p-6{padding:1.5rem}.uf-px-1{padding-left:.25rem;padding-right:.25rem}.uf-px-2{padding-left:.5rem;padding-right:.5rem}.uf-px-3{padding-left:.75rem;padding-right:.75rem}.uf-px-4{padding-left:1rem;padding-right:1rem}.uf-px-8{padding-left:2rem;padding-right:2rem}.uf-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.uf-py-1{padding-top:.25rem;padding-bottom:.25rem}.uf-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.uf-py-2{padding-top:.5rem;padding-bottom:.5rem}.uf-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.uf-py-3{padding-top:.75rem;padding-bottom:.75rem}.uf-py-4{padding-top:1rem;padding-bottom:1rem}.uf-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.uf-py-8{padding-top:2rem;padding-bottom:2rem}.uf-pb-1{padding-bottom:.25rem}.uf-pb-2{padding-bottom:.5rem}.uf-pb-3{padding-bottom:.75rem}.uf-pb-4{padding-bottom:1rem}.uf-pl-11{padding-left:2.75rem}.uf-pl-8{padding-left:2rem}.uf-pr-2{padding-right:.5rem}.uf-pr-4{padding-right:1rem}.uf-pt-2{padding-top:.5rem}.uf-pt-4{padding-top:1rem}.uf-pt-6{padding-top:1.5rem}.uf-text-left{text-align:left}.uf-text-center{text-align:center}.uf-text-right{text-align:right}.uf-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.uf-text-\[10px\]{font-size:10px}.uf-text-base{font-size:1rem;line-height:1.5rem}.uf-text-lg{font-size:1.125rem;line-height:1.75rem}.uf-text-sm{font-size:.875rem;line-height:1.25rem}.uf-text-xl{font-size:1.25rem;line-height:1.75rem}.uf-text-xs{font-size:.75rem;line-height:1rem}.uf-font-light{font-weight:300}.uf-font-medium{font-weight:500}.uf-font-normal{font-weight:400}.uf-font-semibold{font-weight:600}.uf-capitalize{text-transform:capitalize}.uf-leading-none{line-height:1}.uf-leading-relaxed{line-height:1.625}.uf-leading-tight{line-height:1.25}.uf-tracking-tight{letter-spacing:-.025em}.uf-text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.uf-text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.uf-text-destructive-foreground{color:hsl(var(--uf-destructive-foreground))}.uf-text-foreground{color:hsl(var(--uf-foreground))}.uf-text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.uf-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.uf-text-muted{color:hsl(var(--uf-muted))}.uf-text-muted-foreground{color:hsl(var(--uf-muted-foreground))}.uf-text-popover-foreground{color:hsl(var(--uf-popover-foreground))}.uf-text-primary{color:hsl(var(--uf-primary))}.uf-text-primary-foreground{color:hsl(var(--uf-primary-foreground))}.uf-text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.uf-text-secondary-foreground{color:hsl(var(--uf-secondary-foreground))}.uf-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.uf-text-zinc-600{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity,1))}.uf-underline{text-decoration-line:underline}.uf-underline-offset-4{text-underline-offset:4px}.uf-placeholder-muted-foreground::-moz-placeholder{color:hsl(var(--uf-muted-foreground))}.uf-placeholder-muted-foreground::placeholder{color:hsl(var(--uf-muted-foreground))}.uf-opacity-0{opacity:0}.uf-opacity-100{opacity:1}.uf-opacity-50{opacity:.5}.uf-opacity-70{opacity:.7}.uf-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.uf-outline-none{outline:2px solid transparent;outline-offset:2px}.uf-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.uf-ring-inset{--tw-ring-inset:inset}.uf-ring-primary{--tw-ring-color:hsl(var(--uf-primary))}.uf-ring-offset-background{--tw-ring-offset-color:hsl(var(--uf-background))}.uf-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.uf-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.uf-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.uf-duration-1000{transition-duration:1s}.uf-duration-200{transition-duration:.2s}.uf-duration-300{transition-duration:.3s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.uf-animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.uf-fade-in,.uf-fade-in-0{--tw-enter-opacity:0}.uf-zoom-in-95{--tw-enter-scale:.95}.uf-slide-in-from-bottom-2{--tw-enter-translate-y:0.5rem}.uf-slide-in-from-right-8{--tw-enter-translate-x:2rem}.uf-duration-1000{animation-duration:1s}.uf-duration-200{animation-duration:.2s}.uf-duration-300{animation-duration:.3s}.\[scrollbar-width\:none\]{scrollbar-width:none}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Thin.ttf) format("truetype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-ThinItalic.ttf) format("truetype");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Light.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-LightItalic.ttf) format("truetype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-RegularItalic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-MediumItalic.ttf) format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Semibold.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-SemiboldItalic.ttf) format("truetype");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Extrabold.ttf) format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-ExtraboldItalic.ttf) format("truetype");font-weight:800;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Black.ttf) format("truetype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-BlackItalic.ttf) format("truetype");font-weight:900;font-style:italic;font-display:swap}.placeholder\:uf-text-muted-foreground::-moz-placeholder{color:hsl(var(--uf-muted-foreground))}.placeholder\:uf-text-muted-foreground::placeholder{color:hsl(var(--uf-muted-foreground))}.hover\:uf-bg-accent:hover{background-color:hsl(var(--uf-accent))}.hover\:uf-bg-card\/50:hover{background-color:hsl(var(--uf-card)/.5)}.hover\:uf-bg-destructive\/90:hover{background-color:hsl(var(--uf-destructive)/.9)}.hover\:uf-bg-primary\/90:hover{background-color:hsl(var(--uf-primary)/.9)}.hover\:uf-bg-secondary:hover{background-color:hsl(var(--uf-secondary))}.hover\:uf-bg-secondary\/80:hover{background-color:hsl(var(--uf-secondary)/.8)}.hover\:uf-text-accent-foreground:hover{color:hsl(var(--uf-accent-foreground))}.hover\:uf-text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.hover\:uf-text-foreground:hover{color:hsl(var(--uf-foreground))}.hover\:uf-text-muted-foreground:hover{color:hsl(var(--uf-muted-foreground))}.hover\:uf-underline:hover{text-decoration-line:underline}.hover\:uf-opacity-100:hover{opacity:1}.hover\:uf-opacity-90:hover{opacity:.9}.focus\:uf-bg-accent:focus{background-color:hsl(var(--uf-accent))}.focus\:uf-text-accent-foreground:focus{color:hsl(var(--uf-accent-foreground))}.focus\:uf-text-foreground:focus{color:hsl(var(--uf-foreground))}.focus\:uf-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:uf-ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:uf-ring-1:focus,.focus\:uf-ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:uf-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:uf-ring-ring:focus{--tw-ring-color:hsl(var(--uf-ring))}.focus\:uf-ring-ring\/30:focus{--tw-ring-color:hsl(var(--uf-ring)/0.3)}.focus\:uf-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:uf-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:uf-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:uf-ring-ring:focus-visible{--tw-ring-color:hsl(var(--uf-ring))}.focus-visible\:uf-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:uf-pointer-events-none:disabled{pointer-events:none}.disabled\:uf-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:\!uf-bg-muted:disabled{background-color:hsl(var(--uf-muted))!important}.disabled\:uf-text-muted-foreground:disabled{color:hsl(var(--uf-muted-foreground))}.disabled\:uf-opacity-50:disabled{opacity:.5}.uf-group:hover .group-hover\:uf-text-foreground{color:hsl(var(--uf-foreground))}.data-\[disabled\]\:uf-pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:uf-translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\[side\=bottom\]\:uf-translate-y-1[data-side=bottom],.data-\[side\=left\]\:uf--translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:uf--translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\[side\=right\]\:uf-translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\[side\=right\]\:uf-translate-x-1[data-side=right],.data-\[side\=top\]\:uf--translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:uf--translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\[state\=open\]\:uf-bg-accent[data-state=open]{background-color:hsl(var(--uf-accent))}.data-\[state\=open\]\:uf-text-muted-foreground[data-state=open]{color:hsl(var(--uf-muted-foreground))}.data-\[disabled\]\:uf-opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:uf-animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=closed\]\:uf-animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[state\=closed\]\:uf-fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:uf-fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:uf-zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:uf-zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:uf-slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:uf-slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:uf-slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:uf-slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:uf-slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=open\]\:uf-slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.dark\:uf-border-zinc-700:is([class=uf-dark] *){--tw-border-opacity:1;border-color:rgb(63 63 70/var(--tw-border-opacity,1))}.dark\:uf-bg-black:is([class=uf-dark] *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.dark\:uf-text-white:is([class=uf-dark] *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:uf-text-zinc-400:is([class=uf-dark] *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\:hover\:uf-text-white:hover:is([class=uf-dark] *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:uf-bottom-auto{bottom:auto}.sm\:uf-left-\[50\%\]{left:50%}.sm\:uf-right-auto{right:auto}.sm\:uf-top-\[50\%\]{top:50%}.sm\:uf-max-w-\[400px\]{max-width:400px}.sm\:uf-translate-x-\[-50\%\]{--tw-translate-x:-50%}.sm\:uf-translate-x-\[-50\%\],.sm\:uf-translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:uf-translate-y-\[-50\%\]{--tw-translate-y:-50%}.sm\:uf-flex-row{flex-direction:row}.sm\:uf-justify-end{justify-content:flex-end}.sm\:uf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.sm\:uf-rounded-3xl{border-radius:1.5rem}.sm\:uf-text-left{text-align:left}.sm\:data-\[state\=closed\]\:uf-zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.sm\:data-\[state\=open\]\:uf-zoom-in-95[data-state=open]{--tw-enter-scale:.95}.sm\:data-\[state\=closed\]\:uf-slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.sm\:data-\[state\=closed\]\:uf-slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.sm\:data-\[state\=open\]\:uf-slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.sm\:data-\[state\=open\]\:uf-slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}}.\[\&\:\:-webkit-scrollbar\]\:uf-hidden::-webkit-scrollbar{display:none}.\[\&\>button\]\:uf-hidden>button{display:none}.\[\&\>span\]\:uf-line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:uf-flex-1>span{flex:1 1 0%}
|
|
1
|
+
@layer base, components, utilities;.uf-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.uf-pointer-events-none{pointer-events:none}.uf-invisible{visibility:hidden}.uf-fixed{position:fixed}.uf-absolute{position:absolute}.uf-relative{position:relative}.uf-inset-0{inset:0}.-uf-bottom-0\.5{bottom:-.125rem}.-uf-bottom-1{bottom:-.25rem}.-uf-right-0\.5{right:-.125rem}.-uf-right-1{right:-.25rem}.-uf-top-1{top:-.25rem}.uf--bottom-0\.5{bottom:-.125rem}.uf--right-0\.5{right:-.125rem}.uf-bottom-0{bottom:0}.uf-bottom-4{bottom:1rem}.uf-left-0{left:0}.uf-left-1\/2{left:50%}.uf-left-2{left:.5rem}.uf-left-4{left:1rem}.uf-right-0{right:0}.uf-right-6{right:1.5rem}.uf-top-1\/2{top:50%}.uf-top-6{top:1.5rem}.uf-z-50{z-index:50}.uf-z-\[100\]{z-index:100}.uf-z-\[1\]{z-index:1}.uf-z-\[9999\]{z-index:9999}.uf--mx-1{margin-left:-.25rem;margin-right:-.25rem}.uf-mx-1{margin-left:.25rem;margin-right:.25rem}.uf-my-1{margin-top:.25rem;margin-bottom:.25rem}.uf-mb-0\.5{margin-bottom:.125rem}.uf-mb-1{margin-bottom:.25rem}.uf-mb-1\.5{margin-bottom:.375rem}.uf-mb-2{margin-bottom:.5rem}.uf-mb-3{margin-bottom:.75rem}.uf-mb-4{margin-bottom:1rem}.uf-mb-6{margin-bottom:1.5rem}.uf-mb-8{margin-bottom:2rem}.uf-mr-1{margin-right:.25rem}.uf-mt-0\.5{margin-top:.125rem}.uf-mt-2{margin-top:.5rem}.uf-mt-8{margin-top:2rem}.uf-block{display:block}.uf-flex{display:flex}.uf-inline-flex{display:inline-flex}.uf-grid{display:grid}.uf-h-10{height:2.5rem}.uf-h-11{height:2.75rem}.uf-h-16{height:4rem}.uf-h-2{height:.5rem}.uf-h-3{height:.75rem}.uf-h-3\.5{height:.875rem}.uf-h-4{height:1rem}.uf-h-5{height:1.25rem}.uf-h-6{height:1.5rem}.uf-h-7{height:1.75rem}.uf-h-8{height:2rem}.uf-h-9{height:2.25rem}.uf-h-\[18px\]{height:18px}.uf-h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.uf-h-full{height:100%}.uf-h-px{height:1px}.uf-max-h-96{max-height:24rem}.uf-max-h-\[300px\]{max-height:300px}.uf-max-h-\[400px\]{max-height:400px}.uf-max-h-\[500px\]{max-height:500px}.uf-min-h-\[420px\]{min-height:420px}.uf-w-10{width:2.5rem}.uf-w-16{width:4rem}.uf-w-2{width:.5rem}.uf-w-24{width:6rem}.uf-w-28{width:7rem}.uf-w-3{width:.75rem}.uf-w-3\.5{width:.875rem}.uf-w-32{width:8rem}.uf-w-4{width:1rem}.uf-w-40{width:10rem}.uf-w-5{width:1.25rem}.uf-w-6{width:1.5rem}.uf-w-7{width:1.75rem}.uf-w-8{width:2rem}.uf-w-9{width:2.25rem}.uf-w-\[360px\]{width:360px}.uf-w-\[calc\(100vw-2rem\)\]{width:calc(100vw - 2rem)}.uf-w-full{width:100%}.uf-min-w-0{min-width:0}.uf-min-w-\[18px\]{min-width:18px}.uf-min-w-\[1ch\]{min-width:1ch}.uf-min-w-\[200px\]{min-width:200px}.uf-min-w-\[72px\]{min-width:72px}.uf-min-w-\[8rem\]{min-width:8rem}.uf-min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.uf-max-w-\[200px\]{max-width:200px}.uf-max-w-\[240px\]{max-width:240px}.uf-max-w-\[280px\]{max-width:280px}.uf-max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.uf-max-w-full{max-width:100%}.uf-flex-1{flex:1 1 0%}.uf-flex-shrink-0{flex-shrink:0}.uf--translate-x-1\/2{--tw-translate-x:-50%}.uf--translate-x-1\/2,.uf--translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.uf--translate-y-1\/2{--tw-translate-y:-50%}@keyframes uf-pulse{50%{opacity:.5}}.uf-animate-pulse{animation:uf-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes uf-spin{to{transform:rotate(1turn)}}.uf-animate-spin{animation:uf-spin 1s linear infinite}.uf-cursor-default{cursor:default}.uf-cursor-pointer{cursor:pointer}.uf-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.uf-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.uf-grid-cols-\[auto_1fr_auto\]{grid-template-columns:auto 1fr auto}.uf-flex-col{flex-direction:column}.uf-flex-col-reverse{flex-direction:column-reverse}.uf-items-center{align-items:center}.uf-justify-end{justify-content:flex-end}.uf-justify-center{justify-content:center}.uf-justify-between{justify-content:space-between}.uf-gap-0{gap:0}.uf-gap-1{gap:.25rem}.uf-gap-1\.5{gap:.375rem}.uf-gap-2{gap:.5rem}.uf-gap-2\.5{gap:.625rem}.uf-gap-3{gap:.75rem}.uf-gap-4{gap:1rem}.uf--space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-.25rem*var(--tw-space-x-reverse));margin-left:calc(-.25rem*(1 - var(--tw-space-x-reverse)))}.uf--space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-.5rem*var(--tw-space-x-reverse));margin-left:calc(-.5rem*(1 - var(--tw-space-x-reverse)))}.uf-space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.uf-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.uf-space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem*var(--tw-space-y-reverse))}.uf-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.uf-self-start{align-self:flex-start}.uf-overflow-hidden{overflow:hidden}.uf-overflow-visible{overflow:visible}.uf-overflow-y-auto{overflow-y:auto}.uf-whitespace-nowrap{white-space:nowrap}.uf-break-all{word-break:break-all}.uf-rounded{border-radius:.25rem}.uf-rounded-2xl{border-radius:1rem}.uf-rounded-full{border-radius:9999px}.uf-rounded-lg{border-radius:var(--uf-radius)}.uf-rounded-md{border-radius:calc(var(--uf-radius) - 2px)}.uf-rounded-sm{border-radius:calc(var(--uf-radius) - 4px)}.uf-rounded-xl{border-radius:.75rem}.uf-rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.uf-border{border-width:1px}.uf-border-2{border-width:2px}.uf-border-b{border-bottom-width:1px}.uf-border-none{border-style:none}.uf-border-border{border-color:hsl(var(--uf-border))}.uf-border-border\/50{border-color:hsl(var(--uf-border)/.5)}.uf-border-input{border-color:hsl(var(--uf-input))}.uf-border-secondary{border-color:hsl(var(--uf-secondary))}.uf-border-zinc-300{--tw-border-opacity:1;border-color:rgb(212 212 216/var(--tw-border-opacity,1))}.\!uf-bg-card{background-color:hsl(var(--uf-card))!important}.\!uf-bg-popover{background-color:hsl(var(--uf-popover))!important}.\!uf-bg-secondary{background-color:hsl(var(--uf-secondary))!important}.uf-bg-background{background-color:hsl(var(--uf-background))}.uf-bg-black\/40{background-color:rgba(0,0,0,.4)}.uf-bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.uf-bg-card{background-color:hsl(var(--uf-card))}.uf-bg-destructive{background-color:hsl(var(--uf-destructive))}.uf-bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.uf-bg-muted{background-color:hsl(var(--uf-muted))}.uf-bg-popover{background-color:hsl(var(--uf-popover))}.uf-bg-primary{background-color:hsl(var(--uf-primary))}.uf-bg-secondary{background-color:hsl(var(--uf-secondary))}.uf-bg-transparent{background-color:transparent}.uf-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.uf-bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.uf-p-0{padding:0}.uf-p-0\.5{padding:.125rem}.uf-p-1{padding:.25rem}.uf-p-2{padding:.5rem}.uf-p-3{padding:.75rem}.uf-p-4{padding:1rem}.uf-p-6{padding:1.5rem}.uf-px-1{padding-left:.25rem;padding-right:.25rem}.uf-px-2{padding-left:.5rem;padding-right:.5rem}.uf-px-3{padding-left:.75rem;padding-right:.75rem}.uf-px-4{padding-left:1rem;padding-right:1rem}.uf-px-8{padding-left:2rem;padding-right:2rem}.uf-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.uf-py-1{padding-top:.25rem;padding-bottom:.25rem}.uf-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.uf-py-2{padding-top:.5rem;padding-bottom:.5rem}.uf-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.uf-py-3{padding-top:.75rem;padding-bottom:.75rem}.uf-py-4{padding-top:1rem;padding-bottom:1rem}.uf-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.uf-py-8{padding-top:2rem;padding-bottom:2rem}.uf-pb-1{padding-bottom:.25rem}.uf-pb-2{padding-bottom:.5rem}.uf-pb-3{padding-bottom:.75rem}.uf-pb-4{padding-bottom:1rem}.uf-pl-11{padding-left:2.75rem}.uf-pl-8{padding-left:2rem}.uf-pr-2{padding-right:.5rem}.uf-pr-4{padding-right:1rem}.uf-pt-2{padding-top:.5rem}.uf-pt-4{padding-top:1rem}.uf-pt-6{padding-top:1.5rem}.uf-text-left{text-align:left}.uf-text-center{text-align:center}.uf-text-right{text-align:right}.uf-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.uf-text-\[10px\]{font-size:10px}.uf-text-base{font-size:1rem;line-height:1.5rem}.uf-text-lg{font-size:1.125rem;line-height:1.75rem}.uf-text-sm{font-size:.875rem;line-height:1.25rem}.uf-text-xl{font-size:1.25rem;line-height:1.75rem}.uf-text-xs{font-size:.75rem;line-height:1rem}.uf-font-light{font-weight:300}.uf-font-medium{font-weight:500}.uf-font-normal{font-weight:400}.uf-font-semibold{font-weight:600}.uf-capitalize{text-transform:capitalize}.uf-leading-none{line-height:1}.uf-leading-relaxed{line-height:1.625}.uf-leading-tight{line-height:1.25}.uf-tracking-tight{letter-spacing:-.025em}.uf-text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.uf-text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.uf-text-destructive-foreground{color:hsl(var(--uf-destructive-foreground))}.uf-text-foreground{color:hsl(var(--uf-foreground))}.uf-text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.uf-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.uf-text-muted{color:hsl(var(--uf-muted))}.uf-text-muted-foreground{color:hsl(var(--uf-muted-foreground))}.uf-text-popover-foreground{color:hsl(var(--uf-popover-foreground))}.uf-text-primary{color:hsl(var(--uf-primary))}.uf-text-primary-foreground{color:hsl(var(--uf-primary-foreground))}.uf-text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.uf-text-secondary-foreground{color:hsl(var(--uf-secondary-foreground))}.uf-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.uf-text-zinc-600{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity,1))}.uf-underline{text-decoration-line:underline}.uf-underline-offset-4{text-underline-offset:4px}.uf-placeholder-muted-foreground::-moz-placeholder{color:hsl(var(--uf-muted-foreground))}.uf-placeholder-muted-foreground::placeholder{color:hsl(var(--uf-muted-foreground))}.uf-opacity-0{opacity:0}.uf-opacity-100{opacity:1}.uf-opacity-50{opacity:.5}.uf-opacity-70{opacity:.7}.uf-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.uf-outline-none{outline:2px solid transparent;outline-offset:2px}.uf-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.uf-ring-inset{--tw-ring-inset:inset}.uf-ring-primary{--tw-ring-color:hsl(var(--uf-primary))}.uf-ring-offset-background{--tw-ring-offset-color:hsl(var(--uf-background))}.uf-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.uf-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.uf-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.uf-duration-1000{transition-duration:1s}.uf-duration-200{transition-duration:.2s}.uf-duration-300{transition-duration:.3s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.uf-animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.uf-fade-in,.uf-fade-in-0{--tw-enter-opacity:0}.uf-zoom-in-95{--tw-enter-scale:.95}.uf-slide-in-from-bottom-2{--tw-enter-translate-y:0.5rem}.uf-slide-in-from-right-8{--tw-enter-translate-x:2rem}.uf-duration-1000{animation-duration:1s}.uf-duration-200{animation-duration:.2s}.uf-duration-300{animation-duration:.3s}.\[scrollbar-width\:none\]{scrollbar-width:none}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Thin.ttf) format("truetype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-ThinItalic.ttf) format("truetype");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Light.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-LightItalic.ttf) format("truetype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-RegularItalic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-MediumItalic.ttf) format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Semibold.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-SemiboldItalic.ttf) format("truetype");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Extrabold.ttf) format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-ExtraboldItalic.ttf) format("truetype");font-weight:800;font-style:italic;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-Black.ttf) format("truetype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Sons;src:url(assets/fonts/Sons-BlackItalic.ttf) format("truetype");font-weight:900;font-style:italic;font-display:swap}:root{--uf-background:0 0% 100%;--uf-foreground:0 0% 3.9%;--uf-card:0 0% 98%;--uf-card-foreground:0 0% 3.9%;--uf-popover:0 0% 100%;--uf-popover-foreground:0 0% 3.9%;--uf-primary:0 0% 9%;--uf-primary-foreground:0 0% 98%;--uf-secondary:0 0% 95%;--uf-secondary-foreground:0 0% 9%;--uf-muted:0 0% 92%;--uf-muted-foreground:0 0% 40%;--uf-accent:0 0% 90%;--uf-accent-foreground:0 0% 9%;--uf-destructive:0 84.2% 60.2%;--uf-destructive-foreground:0 0% 98%;--uf-border:0 0% 85%;--uf-input:0 0% 89.8%;--uf-ring:0 0% 3.9%;--uf-radius:0.5rem}.uf-dark{--uf-background:0 0% 5%;--uf-foreground:0 0% 98%;--uf-card:0 0% 10%;--uf-card-foreground:0 0% 98%;--uf-popover:0 0% 10%;--uf-popover-foreground:0 0% 98%;--uf-primary:0 0% 98%;--uf-primary-foreground:0 0% 9%;--uf-secondary:0 0% 16%;--uf-secondary-foreground:0 0% 98%;--uf-muted:0 0% 20%;--uf-muted-foreground:0 0% 60%;--uf-accent:0 0% 20%;--uf-accent-foreground:0 0% 98%;--uf-destructive:0 62.8% 30.6%;--uf-destructive-foreground:0 0% 98%;--uf-border:0 0% 20%;--uf-input:0 0% 20%;--uf-ring:0 0% 83.1%}[class*=uf-],[data-radix-popper-content-wrapper],[data-radix-portal]{font-family:Sons,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif!important}[class*=uf-] *,[data-radix-popper-content-wrapper] *,[data-radix-portal] *{font-family:inherit}.placeholder\:uf-text-muted-foreground::-moz-placeholder{color:hsl(var(--uf-muted-foreground))}.placeholder\:uf-text-muted-foreground::placeholder{color:hsl(var(--uf-muted-foreground))}.hover\:uf-bg-accent:hover{background-color:hsl(var(--uf-accent))}.hover\:uf-bg-card\/50:hover{background-color:hsl(var(--uf-card)/.5)}.hover\:uf-bg-destructive\/90:hover{background-color:hsl(var(--uf-destructive)/.9)}.hover\:uf-bg-primary\/90:hover{background-color:hsl(var(--uf-primary)/.9)}.hover\:uf-bg-secondary:hover{background-color:hsl(var(--uf-secondary))}.hover\:uf-bg-secondary\/80:hover{background-color:hsl(var(--uf-secondary)/.8)}.hover\:uf-text-accent-foreground:hover{color:hsl(var(--uf-accent-foreground))}.hover\:uf-text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.hover\:uf-text-foreground:hover{color:hsl(var(--uf-foreground))}.hover\:uf-text-muted-foreground:hover{color:hsl(var(--uf-muted-foreground))}.hover\:uf-underline:hover{text-decoration-line:underline}.hover\:uf-opacity-100:hover{opacity:1}.hover\:uf-opacity-90:hover{opacity:.9}.focus\:uf-bg-accent:focus{background-color:hsl(var(--uf-accent))}.focus\:uf-text-accent-foreground:focus{color:hsl(var(--uf-accent-foreground))}.focus\:uf-text-foreground:focus{color:hsl(var(--uf-foreground))}.focus\:uf-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:uf-ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:uf-ring-1:focus,.focus\:uf-ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:uf-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:uf-ring-ring:focus{--tw-ring-color:hsl(var(--uf-ring))}.focus\:uf-ring-ring\/30:focus{--tw-ring-color:hsl(var(--uf-ring)/0.3)}.focus\:uf-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:uf-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:uf-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:uf-ring-ring:focus-visible{--tw-ring-color:hsl(var(--uf-ring))}.focus-visible\:uf-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:uf-pointer-events-none:disabled{pointer-events:none}.disabled\:uf-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:\!uf-bg-muted:disabled{background-color:hsl(var(--uf-muted))!important}.disabled\:uf-text-muted-foreground:disabled{color:hsl(var(--uf-muted-foreground))}.disabled\:uf-opacity-50:disabled{opacity:.5}.uf-group:hover .group-hover\:uf-text-foreground{color:hsl(var(--uf-foreground))}.data-\[disabled\]\:uf-pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:uf-translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\[side\=bottom\]\:uf-translate-y-1[data-side=bottom],.data-\[side\=left\]\:uf--translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:uf--translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\[side\=right\]\:uf-translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\[side\=right\]\:uf-translate-x-1[data-side=right],.data-\[side\=top\]\:uf--translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:uf--translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\[state\=open\]\:uf-bg-accent[data-state=open]{background-color:hsl(var(--uf-accent))}.data-\[state\=open\]\:uf-text-muted-foreground[data-state=open]{color:hsl(var(--uf-muted-foreground))}.data-\[disabled\]\:uf-opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:uf-animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=closed\]\:uf-animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[state\=closed\]\:uf-fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:uf-fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:uf-zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:uf-zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:uf-slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:uf-slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:uf-slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:uf-slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:uf-slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=open\]\:uf-slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.dark\:uf-border-zinc-700:is([class=uf-dark] *){--tw-border-opacity:1;border-color:rgb(63 63 70/var(--tw-border-opacity,1))}.dark\:uf-bg-black:is([class=uf-dark] *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.dark\:uf-text-white:is([class=uf-dark] *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:uf-text-zinc-400:is([class=uf-dark] *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\:hover\:uf-text-white:hover:is([class=uf-dark] *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:uf-bottom-auto{bottom:auto}.sm\:uf-left-\[50\%\]{left:50%}.sm\:uf-right-auto{right:auto}.sm\:uf-top-\[50\%\]{top:50%}.sm\:uf-max-w-\[400px\]{max-width:400px}.sm\:uf-translate-x-\[-50\%\]{--tw-translate-x:-50%}.sm\:uf-translate-x-\[-50\%\],.sm\:uf-translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:uf-translate-y-\[-50\%\]{--tw-translate-y:-50%}.sm\:uf-flex-row{flex-direction:row}.sm\:uf-justify-end{justify-content:flex-end}.sm\:uf-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.sm\:uf-rounded-3xl{border-radius:1.5rem}.sm\:uf-text-left{text-align:left}.sm\:data-\[state\=closed\]\:uf-zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.sm\:data-\[state\=open\]\:uf-zoom-in-95[data-state=open]{--tw-enter-scale:.95}.sm\:data-\[state\=closed\]\:uf-slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.sm\:data-\[state\=closed\]\:uf-slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.sm\:data-\[state\=open\]\:uf-slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.sm\:data-\[state\=open\]\:uf-slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}}.\[\&\:\:-webkit-scrollbar\]\:uf-hidden::-webkit-scrollbar{display:none}.\[\&\>button\]\:uf-hidden>button{display:none}.\[\&\>span\]\:uf-line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:uf-flex-1>span{flex:1 1 0%}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unifold/connect-react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.15",
|
|
4
4
|
"description": "Unifold Connect React - Complete React SDK with UI components for crypto deposits",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@tanstack/react-query": "^5.62.15",
|
|
27
|
-
"@unifold/core": "0.1.
|
|
28
|
-
"@unifold/react-provider": "0.1.
|
|
29
|
-
"@unifold/ui-react": "0.1.
|
|
27
|
+
"@unifold/core": "0.1.15",
|
|
28
|
+
"@unifold/react-provider": "0.1.15",
|
|
29
|
+
"@unifold/ui-react": "0.1.15"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/react": "^19.0.0",
|