@volr/react-ui 0.2.2 → 0.2.5
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/README.md +17 -0
- package/dist/index.cjs +375 -71
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +16 -7
- package/dist/index.d.ts +16 -7
- package/dist/index.js +376 -72
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React14, { createContext, useContext, useState,
|
|
1
|
+
import React14, { createContext, useContext, useState, useCallback, useEffect, useMemo, useRef, useId, useReducer } from 'react';
|
|
2
2
|
import { createPortal } from 'react-dom';
|
|
3
3
|
import { useVolrContext, useInternalAuth, usePasskeyEnrollment, checkPrfCompatibility, getPlatformHint, useMpcConnection, VolrProvider, useVolrAuthCallback, useVolrPaymentApi, completeMigration, requestMigration, decryptEntropyForMigration, listenForSeedRequests, useUserBalances, useVolrLogin, useVolr, useEIP6963, useWithdraw, useDepositListener, createGetNetworkInfo } from '@volr/react';
|
|
4
4
|
export { VolrProvider, useDepositListener, usePasskeyEnrollment, useVolr, useVolrLogin, useVolrPaymentApi } from '@volr/react';
|
|
@@ -606,6 +606,8 @@ var en = {
|
|
|
606
606
|
logout: "Log out"
|
|
607
607
|
},
|
|
608
608
|
totalBalance: "Total Balance",
|
|
609
|
+
lastUpdated: "Updated {{time}}",
|
|
610
|
+
refresh: "Refresh balances",
|
|
609
611
|
noAssets: "No assets configured",
|
|
610
612
|
menu: {
|
|
611
613
|
assets: "Assets",
|
|
@@ -634,10 +636,12 @@ var en = {
|
|
|
634
636
|
useConnectedWallet: "Use connected wallet",
|
|
635
637
|
confirm: "Confirm Withdrawal",
|
|
636
638
|
processing: "Processing withdrawal...",
|
|
639
|
+
processingHint: "This may take a moment. Please keep this window open.",
|
|
637
640
|
success: "Withdrawal Successful",
|
|
638
641
|
sent: "sent",
|
|
639
642
|
failed: "Withdrawal Failed",
|
|
640
|
-
unknownError: "An unknown error occurred"
|
|
643
|
+
unknownError: "An unknown error occurred",
|
|
644
|
+
viewOnExplorer: "View on explorer"
|
|
641
645
|
},
|
|
642
646
|
payments: {
|
|
643
647
|
payment: "Payment",
|
|
@@ -698,12 +702,12 @@ var en = {
|
|
|
698
702
|
domainLabel: "Domain"
|
|
699
703
|
},
|
|
700
704
|
walletRequired: {
|
|
701
|
-
ariaLabel: "
|
|
702
|
-
titleTx: "
|
|
703
|
-
titleMessage: "
|
|
704
|
-
titleTypedData: "
|
|
705
|
-
description: "
|
|
706
|
-
cta: "
|
|
705
|
+
ariaLabel: "Passkey required",
|
|
706
|
+
titleTx: "Passkey required to continue",
|
|
707
|
+
titleMessage: "Passkey required to continue",
|
|
708
|
+
titleTypedData: "Passkey required to continue",
|
|
709
|
+
description: "You need to register a passkey wallet to proceed.",
|
|
710
|
+
cta: "Register passkey",
|
|
707
711
|
notNow: "Not now"
|
|
708
712
|
},
|
|
709
713
|
payment: {
|
|
@@ -711,6 +715,7 @@ var en = {
|
|
|
711
715
|
title: "Choose how to pay",
|
|
712
716
|
description: "Use your existing wallet, or create a wallet in about 1 second.",
|
|
713
717
|
externalCta: "Use my wallet",
|
|
718
|
+
externalInlineCta: "I already have a wallet",
|
|
714
719
|
createAccountCta: "Create wallet in 1 second",
|
|
715
720
|
externalDisabledNative: "External wallet payments are available for ERC-20 permit tokens only.",
|
|
716
721
|
externalTitle: "Select a wallet",
|
|
@@ -916,6 +921,8 @@ var ko = {
|
|
|
916
921
|
logout: "\uB85C\uADF8\uC544\uC6C3"
|
|
917
922
|
},
|
|
918
923
|
totalBalance: "\uCD1D \uC794\uACE0",
|
|
924
|
+
lastUpdated: "\uB9C8\uC9C0\uB9C9 \uC5C5\uB370\uC774\uD2B8 {{time}}",
|
|
925
|
+
refresh: "\uC794\uC561 \uC0C8\uB85C\uACE0\uCE68",
|
|
919
926
|
noAssets: "\uC124\uC815\uB41C \uC790\uC0B0\uC774 \uC5C6\uC2B5\uB2C8\uB2E4",
|
|
920
927
|
menu: {
|
|
921
928
|
assets: "\uC790\uC0B0",
|
|
@@ -944,10 +951,12 @@ var ko = {
|
|
|
944
951
|
useConnectedWallet: "\uC5F0\uACB0\uB41C \uC9C0\uAC11\uC73C\uB85C \uBCF4\uB0B4\uAE30",
|
|
945
952
|
confirm: "\uCD9C\uAE08 \uD655\uC778",
|
|
946
953
|
processing: "\uCD9C\uAE08 \uCC98\uB9AC \uC911...",
|
|
954
|
+
processingHint: "\uC7A0\uC2DC\uB9CC \uAE30\uB2E4\uB824 \uC8FC\uC138\uC694. \uCC3D\uC744 \uB2EB\uC9C0 \uB9C8\uC138\uC694.",
|
|
947
955
|
success: "\uCD9C\uAE08 \uC644\uB8CC",
|
|
948
956
|
sent: "\uC804\uC1A1\uB428",
|
|
949
957
|
failed: "\uCD9C\uAE08 \uC2E4\uD328",
|
|
950
|
-
unknownError: "\uC54C \uC218 \uC5C6\uB294 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4"
|
|
958
|
+
unknownError: "\uC54C \uC218 \uC5C6\uB294 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4",
|
|
959
|
+
viewOnExplorer: "\uBE14\uB85D \uD0D0\uC0C9\uAE30\uC5D0\uC11C \uBCF4\uAE30"
|
|
951
960
|
},
|
|
952
961
|
payments: {
|
|
953
962
|
payment: "\uACB0\uC81C",
|
|
@@ -1008,12 +1017,12 @@ var ko = {
|
|
|
1008
1017
|
domainLabel: "\uB3C4\uBA54\uC778"
|
|
1009
1018
|
},
|
|
1010
1019
|
walletRequired: {
|
|
1011
|
-
ariaLabel: "\
|
|
1012
|
-
titleTx: "\
|
|
1013
|
-
titleMessage: "\
|
|
1014
|
-
titleTypedData: "\
|
|
1015
|
-
description: "
|
|
1016
|
-
cta: "
|
|
1020
|
+
ariaLabel: "\uD328\uC2A4\uD0A4 \uB4F1\uB85D",
|
|
1021
|
+
titleTx: "\uD328\uC2A4\uD0A4 \uB4F1\uB85D\uC774 \uD544\uC694\uD574\uC694",
|
|
1022
|
+
titleMessage: "\uD328\uC2A4\uD0A4 \uB4F1\uB85D\uC774 \uD544\uC694\uD574\uC694",
|
|
1023
|
+
titleTypedData: "\uD328\uC2A4\uD0A4 \uB4F1\uB85D\uC774 \uD544\uC694\uD574\uC694",
|
|
1024
|
+
description: "\uC774 \uAE30\uB2A5\uC744 \uC0AC\uC6A9\uD558\uB824\uBA74 \uD328\uC2A4\uD0A4 \uC9C0\uAC11\uC744 \uB4F1\uB85D\uD574\uC57C \uD574\uC694.",
|
|
1025
|
+
cta: "\uD328\uC2A4\uD0A4 \uB4F1\uB85D\uD558\uAE30",
|
|
1017
1026
|
notNow: "\uC9C0\uAE08\uC740 \uC548 \uD560\uB798\uC694"
|
|
1018
1027
|
},
|
|
1019
1028
|
payment: {
|
|
@@ -1021,6 +1030,7 @@ var ko = {
|
|
|
1021
1030
|
title: "\uACB0\uC81C \uBC29\uBC95\uC744 \uC120\uD0DD\uD558\uC138\uC694",
|
|
1022
1031
|
description: "\uAE30\uC874 \uC9C0\uAC11\uC73C\uB85C \uACB0\uC81C\uD558\uAC70\uB098, 1\uCD08\uB9CC\uC5D0 \uC9C0\uAC11\uC744 \uB9CC\uB4E4 \uC218 \uC788\uC5B4\uC694.",
|
|
1023
1032
|
externalCta: "\uB0B4 \uC9C0\uAC11\uC73C\uB85C \uACB0\uC81C",
|
|
1033
|
+
externalInlineCta: "\uC774\uBBF8 \uC9C0\uAC11\uC774 \uC788\uC5B4\uC694",
|
|
1024
1034
|
createAccountCta: "1\uCD08\uB9CC\uC5D0 \uC9C0\uAC11 \uB9CC\uB4E4\uAE30",
|
|
1025
1035
|
externalDisabledNative: "\uC678\uBD80 \uC9C0\uAC11 \uACB0\uC81C\uB294 ERC-20 permit \uD1A0\uD070\uC5D0\uC11C\uB9CC \uC9C0\uC6D0\uB3FC\uC694.",
|
|
1026
1036
|
externalTitle: "\uC9C0\uAC11 \uC120\uD0DD",
|
|
@@ -1100,15 +1110,40 @@ function useI18n() {
|
|
|
1100
1110
|
}
|
|
1101
1111
|
return context;
|
|
1102
1112
|
}
|
|
1103
|
-
|
|
1113
|
+
var DEFAULT_ALLOWED_LOCALES = ["en", "ko"];
|
|
1114
|
+
function normalizeAllowedLocales(allowedLocales) {
|
|
1115
|
+
return allowedLocales ?? DEFAULT_ALLOWED_LOCALES;
|
|
1116
|
+
}
|
|
1117
|
+
function resolveLocale(locale, allowedLocales) {
|
|
1118
|
+
const allowed = normalizeAllowedLocales(allowedLocales);
|
|
1119
|
+
return allowed.includes(locale) ? locale : "en";
|
|
1120
|
+
}
|
|
1121
|
+
function detectLocale(allowedLocales) {
|
|
1104
1122
|
if (typeof window === "undefined" || !window.navigator?.language) {
|
|
1105
1123
|
return "en";
|
|
1106
1124
|
}
|
|
1107
1125
|
const lang = window.navigator.language.toLowerCase();
|
|
1108
|
-
|
|
1126
|
+
const detected = lang.startsWith("ko") ? "ko" : "en";
|
|
1127
|
+
return resolveLocale(detected, allowedLocales);
|
|
1109
1128
|
}
|
|
1110
|
-
function I18nProvider({ children }) {
|
|
1111
|
-
const [locale,
|
|
1129
|
+
function I18nProvider({ children, allowedLocales }) {
|
|
1130
|
+
const [locale, setLocaleState] = useState(() => detectLocale(allowedLocales));
|
|
1131
|
+
const resolveAllowedLocale = useCallback(
|
|
1132
|
+
(next) => resolveLocale(next, allowedLocales),
|
|
1133
|
+
[allowedLocales]
|
|
1134
|
+
);
|
|
1135
|
+
const setLocale = useCallback(
|
|
1136
|
+
(next) => {
|
|
1137
|
+
setLocaleState(resolveAllowedLocale(next));
|
|
1138
|
+
},
|
|
1139
|
+
[resolveAllowedLocale]
|
|
1140
|
+
);
|
|
1141
|
+
useEffect(() => {
|
|
1142
|
+
setLocaleState((current) => {
|
|
1143
|
+
const resolved = resolveAllowedLocale(current);
|
|
1144
|
+
return current === resolved ? current : resolved;
|
|
1145
|
+
});
|
|
1146
|
+
}, [resolveAllowedLocale]);
|
|
1112
1147
|
const translations2 = useMemo(() => getTranslations(locale), [locale]);
|
|
1113
1148
|
const t = useMemo(() => {
|
|
1114
1149
|
return (key, params) => {
|
|
@@ -1190,7 +1225,7 @@ function useMediaQuery(query) {
|
|
|
1190
1225
|
}
|
|
1191
1226
|
|
|
1192
1227
|
// src/generated/volr-sdk-css.ts
|
|
1193
|
-
var VOLR_SDK_CSS = '/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--volr-tw-translate-x:0;--volr-tw-translate-y:0;--volr-tw-translate-z:0;--volr-tw-space-y-reverse:0;--volr-tw-border-style:solid;--volr-tw-gradient-position:initial;--volr-tw-gradient-from:#0000;--volr-tw-gradient-via:#0000;--volr-tw-gradient-to:#0000;--volr-tw-gradient-stops:initial;--volr-tw-gradient-via-stops:initial;--volr-tw-gradient-from-position:0%;--volr-tw-gradient-via-position:50%;--volr-tw-gradient-to-position:100%;--volr-tw-leading:initial;--volr-tw-font-weight:initial;--volr-tw-tracking:initial;--volr-tw-shadow:0 0 #0000;--volr-tw-shadow-color:initial;--volr-tw-shadow-alpha:100%;--volr-tw-inset-shadow:0 0 #0000;--volr-tw-inset-shadow-color:initial;--volr-tw-inset-shadow-alpha:100%;--volr-tw-ring-color:initial;--volr-tw-ring-shadow:0 0 #0000;--volr-tw-inset-ring-color:initial;--volr-tw-inset-ring-shadow:0 0 #0000;--volr-tw-ring-inset:initial;--volr-tw-ring-offset-width:0px;--volr-tw-ring-offset-color:#fff;--volr-tw-ring-offset-shadow:0 0 #0000;--volr-tw-blur:initial;--volr-tw-brightness:initial;--volr-tw-contrast:initial;--volr-tw-grayscale:initial;--volr-tw-hue-rotate:initial;--volr-tw-invert:initial;--volr-tw-opacity:initial;--volr-tw-saturate:initial;--volr-tw-sepia:initial;--volr-tw-drop-shadow:initial;--volr-tw-drop-shadow-color:initial;--volr-tw-drop-shadow-alpha:100%;--volr-tw-drop-shadow-size:initial;--volr-tw-duration:initial;--volr-tw-ease:initial}}}@layer theme{:root,:host{--volr-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--volr-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--volr-color-red-50:oklch(97.1% .013 17.38);--volr-color-red-100:oklch(93.6% .032 17.717);--volr-color-red-200:oklch(88.5% .062 18.334);--volr-color-red-500:oklch(63.7% .237 25.331);--volr-color-red-600:oklch(57.7% .245 27.325);--volr-color-red-700:oklch(50.5% .213 27.518);--volr-color-amber-50:oklch(98.7% .022 95.277);--volr-color-amber-200:oklch(92.4% .12 95.746);--volr-color-amber-700:oklch(55.5% .163 48.998);--volr-color-yellow-100:oklch(97.3% .071 103.193);--volr-color-yellow-700:oklch(55.4% .135 66.442);--volr-color-green-50:oklch(98.2% .018 155.826);--volr-color-green-100:oklch(96.2% .044 156.743);--volr-color-green-600:oklch(62.7% .194 149.214);--volr-color-green-700:oklch(52.7% .154 150.069);--volr-color-emerald-300:oklch(84.5% .143 164.978);--volr-color-emerald-400:oklch(76.5% .177 163.223);--volr-color-emerald-500:oklch(69.6% .17 162.48);--volr-color-emerald-600:oklch(59.6% .145 163.225);--volr-color-teal-400:oklch(77.7% .152 181.912);--volr-color-teal-500:oklch(70.4% .14 182.503);--volr-color-cyan-400:oklch(78.9% .154 211.53);--volr-color-blue-100:oklch(93.2% .032 255.585);--volr-color-blue-700:oklch(48.8% .243 264.376);--volr-color-slate-50:oklch(98.4% .003 247.858);--volr-color-slate-100:oklch(96.8% .007 247.896);--volr-color-slate-200:oklch(92.9% .013 255.508);--volr-color-slate-300:oklch(86.9% .022 252.894);--volr-color-slate-400:oklch(70.4% .04 256.788);--volr-color-slate-500:oklch(55.4% .046 257.417);--volr-color-slate-600:oklch(44.6% .043 257.281);--volr-color-slate-700:oklch(37.2% .044 257.287);--volr-color-slate-800:oklch(27.9% .041 260.031);--volr-color-slate-900:oklch(20.8% .042 265.755);--volr-color-gray-500:oklch(55.1% .027 264.364);--volr-color-black:#000;--volr-color-white:#fff;--volr-spacing:.25rem;--volr-container-md:28rem;--volr-container-4xl:56rem;--volr-text-xs:.75rem;--volr-text-xs--line-height:calc(1/.75);--volr-text-sm:.875rem;--volr-text-sm--line-height:calc(1.25/.875);--volr-text-base:1rem;--volr-text-base--line-height:calc(1.5/1);--volr-text-lg:1.125rem;--volr-text-lg--line-height:calc(1.75/1.125);--volr-text-xl:1.25rem;--volr-text-xl--line-height:calc(1.75/1.25);--volr-text-2xl:1.5rem;--volr-text-2xl--line-height:calc(2/1.5);--volr-text-8xl:6rem;--volr-text-8xl--line-height:1;--volr-font-weight-medium:500;--volr-font-weight-semibold:600;--volr-font-weight-bold:700;--volr-tracking-tight:-.025em;--volr-tracking-wide:.025em;--volr-tracking-wider:.05em;--volr-leading-relaxed:1.625;--volr-radius-md:.375rem;--volr-radius-lg:.5rem;--volr-radius-xl:.75rem;--volr-radius-2xl:1rem;--volr-radius-3xl:1.5rem;--volr-ease-out:cubic-bezier(0,0,.2,1);--volr-animate-spin:spin 1s linear infinite;--volr-animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--volr-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--volr-blur-2xl:40px;--volr-default-transition-duration:.15s;--volr-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--volr-default-font-family:var(--volr-font-sans);--volr-default-mono-font-family:var(--volr-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--volr-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--volr-default-font-feature-settings,normal);font-variation-settings:var(--volr-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--volr-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--volr-default-mono-font-feature-settings,normal);font-variation-settings:var(--volr-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:host{--volr-primary-color:var(--volr-accent-color,#303030);--volr-font-family:var(--volr-custom-font,inherit);--volr-bg:#fff;--volr-bg-secondary:#f8fafc;--volr-bg-tertiary:#f1f5f9;--volr-text:#0f172a;--volr-text-secondary:#475569;--volr-text-muted:#94a3b8;--volr-border:#e2e8f0;--volr-border-strong:#cbd5e1;--volr-hover-bg:#f8fafc;--volr-error-bg:#fef2f2;--volr-error-border:#fecaca;--volr-error-text:#991b1b;--volr-hint-bg:#f8fafc;--volr-hint-border:#e2e8f0;--volr-hint-text:#334155}:host([data-theme=dark]){--volr-bg:#1c1c1e;--volr-bg-secondary:#2c2c2e;--volr-bg-tertiary:#3a3a3c;--volr-text:#f5f5f7;--volr-text-secondary:#c7c7cc;--volr-text-muted:#8e8e93;--volr-border:#3a3a3c;--volr-border-strong:#48484a;--volr-hover-bg:#2c2c2e;--volr-error-bg:#3c1f1f;--volr-error-border:#7f1d1d;--volr-error-text:#fca5a5;--volr-hint-bg:#2c2c2e;--volr-hint-border:#3a3a3c;--volr-hint-text:#c7c7cc}*,:before,:after{box-sizing:border-box}*{font-family:var(--volr-font-family);color:var(--volr-text)}button,input,select,textarea{color:var(--volr-text);background-color:#0000}button{cursor:pointer;background-color:#0000}input::placeholder{color:var(--volr-text-muted)}h1,h2,h3{color:var(--volr-text);margin:0;font-weight:700}h1{font-size:1.875rem;line-height:2.25rem}h2{font-size:1.5rem;line-height:2rem}h3{font-size:1.25rem;line-height:1.75rem}p{margin:0}}@layer components{.volr-dialog-overlay{inset:calc(var(--volr-spacing)*0);z-index:40;background-color:var(--volr-color-black);position:fixed}@supports (color:color-mix(in lab, red, red)){.volr-dialog-overlay{background-color:color-mix(in oklab,var(--volr-color-black)45%,transparent)}}.volr-dialog-content{z-index:50;border-radius:var(--volr-radius-2xl);border-style:var(--volr-tw-border-style);padding:calc(var(--volr-spacing)*7);--volr-tw-shadow:0 20px 25px -5px var(--volr-tw-shadow-color,#0000001a),0 8px 10px -6px var(--volr-tw-shadow-color,#0000001a);box-shadow:var(--volr-tw-inset-shadow),var(--volr-tw-inset-ring-shadow),var(--volr-tw-ring-offset-shadow),var(--volr-tw-ring-shadow),var(--volr-tw-shadow);background-color:var(--volr-bg);border-width:1px;border-color:var(--volr-border-strong);width:calc(100% - 2rem);max-width:28rem;max-height:85vh;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}@media (max-width:640px){.volr-dialog-content{top:auto;right:calc(var(--volr-spacing)*0);bottom:calc(var(--volr-spacing)*0);left:calc(var(--volr-spacing)*0);border-radius:1.25rem 1.25rem 0 0;width:100%;max-width:100%;margin:0 auto;transform:translateY(0)}}.volr-dialog-close{top:calc(var(--volr-spacing)*4);right:calc(var(--volr-spacing)*4);height:calc(var(--volr-spacing)*8);width:calc(var(--volr-spacing)*8);color:var(--volr-text-muted);cursor:pointer;background-color:#0000;border:none;border-radius:3.40282e38px;justify-content:center;align-items:center;display:inline-flex;position:absolute}.volr-dialog-close:hover{background-color:var(--volr-hover-bg);color:var(--volr-text-secondary)}.volr-dialog-close:focus-visible{box-shadow:0 0 0 2px var(--volr-border-strong);outline:none}.volr-dialog-close-icon{height:calc(var(--volr-spacing)*4);width:calc(var(--volr-spacing)*4)}.volr-email-input{border:1px solid var(--volr-border-strong);background-color:var(--volr-bg);width:100%;color:var(--volr-text);border-radius:.5rem;outline:none;padding:.75rem .75rem .75rem 2.75rem;font-size:1rem;line-height:1.5}.volr-email-input::placeholder{color:var(--volr-text-muted)}.volr-email-input:focus{border-color:var(--volr-border-strong);box-shadow:0 0 0 2px var(--volr-border-strong)}.volr-option-button{border:1px solid var(--volr-border);background-color:var(--volr-bg);width:100%;color:var(--volr-text);cursor:pointer;border-radius:.5rem;align-items:center;gap:.75rem;padding:.75rem;transition:background-color .15s ease-out,border-color .15s ease-out,box-shadow .15s ease-out;display:flex}.volr-option-button:hover{background-color:var(--volr-hover-bg);border-color:var(--volr-border)}.volr-option-button:focus-visible{box-shadow:0 0 0 2px var(--volr-border-strong);outline:none}}@layer utilities{.volr\\:pointer-events-auto{pointer-events:auto}.volr\\:pointer-events-none{pointer-events:none}.volr\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.volr\\:absolute{position:absolute}.volr\\:fixed{position:fixed}.volr\\:relative{position:relative}.volr\\:inset-0{inset:calc(var(--volr-spacing)*0)}.volr\\:-top-3{top:calc(var(--volr-spacing)*-3)}.volr\\:top-1\\/2{top:50%}.volr\\:-right-3{right:calc(var(--volr-spacing)*-3)}.volr\\:right-0{right:calc(var(--volr-spacing)*0)}.volr\\:right-2{right:calc(var(--volr-spacing)*2)}.volr\\:right-3{right:calc(var(--volr-spacing)*3)}.volr\\:bottom-0{bottom:calc(var(--volr-spacing)*0)}.volr\\:left-0{left:calc(var(--volr-spacing)*0)}.volr\\:left-3{left:calc(var(--volr-spacing)*3)}.volr\\:-z-10{z-index:calc(10*-1)}.volr\\:z-10{z-index:10}.volr\\:z-20{z-index:20}.volr\\:z-40{z-index:40}.volr\\:z-50{z-index:50}.volr\\:mx-auto{margin-inline:auto}.volr\\:my-6{margin-block:calc(var(--volr-spacing)*6)}.volr\\:mt-0\\.5{margin-top:calc(var(--volr-spacing)*.5)}.volr\\:mt-1{margin-top:calc(var(--volr-spacing)*1)}.volr\\:mt-2{margin-top:calc(var(--volr-spacing)*2)}.volr\\:mt-3{margin-top:calc(var(--volr-spacing)*3)}.volr\\:mt-4{margin-top:calc(var(--volr-spacing)*4)}.volr\\:mt-6{margin-top:calc(var(--volr-spacing)*6)}.volr\\:mt-8{margin-top:calc(var(--volr-spacing)*8)}.volr\\:mb-1{margin-bottom:calc(var(--volr-spacing)*1)}.volr\\:mb-2{margin-bottom:calc(var(--volr-spacing)*2)}.volr\\:mb-3{margin-bottom:calc(var(--volr-spacing)*3)}.volr\\:mb-4{margin-bottom:calc(var(--volr-spacing)*4)}.volr\\:mb-5{margin-bottom:calc(var(--volr-spacing)*5)}.volr\\:mb-6{margin-bottom:calc(var(--volr-spacing)*6)}.volr\\:mb-8{margin-bottom:calc(var(--volr-spacing)*8)}.volr\\:-ml-2{margin-left:calc(var(--volr-spacing)*-2)}.volr\\:ml-6{margin-left:calc(var(--volr-spacing)*6)}.volr\\:line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.volr\\:block{display:block}.volr\\:flex{display:flex}.volr\\:grid{display:grid}.volr\\:inline-block{display:inline-block}.volr\\:inline-flex{display:inline-flex}.volr\\:h-1{height:calc(var(--volr-spacing)*1)}.volr\\:h-1\\.5{height:calc(var(--volr-spacing)*1.5)}.volr\\:h-2{height:calc(var(--volr-spacing)*2)}.volr\\:h-3{height:calc(var(--volr-spacing)*3)}.volr\\:h-4{height:calc(var(--volr-spacing)*4)}.volr\\:h-5{height:calc(var(--volr-spacing)*5)}.volr\\:h-6{height:calc(var(--volr-spacing)*6)}.volr\\:h-7{height:calc(var(--volr-spacing)*7)}.volr\\:h-8{height:calc(var(--volr-spacing)*8)}.volr\\:h-10{height:calc(var(--volr-spacing)*10)}.volr\\:h-12{height:calc(var(--volr-spacing)*12)}.volr\\:h-14{height:calc(var(--volr-spacing)*14)}.volr\\:h-16{height:calc(var(--volr-spacing)*16)}.volr\\:h-20{height:calc(var(--volr-spacing)*20)}.volr\\:h-24{height:calc(var(--volr-spacing)*24)}.volr\\:h-40{height:calc(var(--volr-spacing)*40)}.volr\\:h-44{height:calc(var(--volr-spacing)*44)}.volr\\:h-48{height:calc(var(--volr-spacing)*48)}.volr\\:h-\\[0\\.8em\\]{height:.8em}.volr\\:h-\\[200px\\]{height:200px}.volr\\:h-full{height:100%}.volr\\:h-px{height:1px}.volr\\:max-h-48{max-height:calc(var(--volr-spacing)*48)}.volr\\:max-h-60{max-height:calc(var(--volr-spacing)*60)}.volr\\:max-h-64{max-height:calc(var(--volr-spacing)*64)}.volr\\:max-h-\\[85vh\\]{max-height:85vh}.volr\\:max-h-\\[90vh\\]{max-height:90vh}.volr\\:min-h-\\[100px\\]{min-height:100px}.volr\\:min-h-\\[120px\\]{min-height:120px}.volr\\:min-h-\\[500px\\]{min-height:500px}.volr\\:w-1\\.5{width:calc(var(--volr-spacing)*1.5)}.volr\\:w-2{width:calc(var(--volr-spacing)*2)}.volr\\:w-3{width:calc(var(--volr-spacing)*3)}.volr\\:w-4{width:calc(var(--volr-spacing)*4)}.volr\\:w-5{width:calc(var(--volr-spacing)*5)}.volr\\:w-6{width:calc(var(--volr-spacing)*6)}.volr\\:w-7{width:calc(var(--volr-spacing)*7)}.volr\\:w-8{width:calc(var(--volr-spacing)*8)}.volr\\:w-10{width:calc(var(--volr-spacing)*10)}.volr\\:w-12{width:calc(var(--volr-spacing)*12)}.volr\\:w-14{width:calc(var(--volr-spacing)*14)}.volr\\:w-16{width:calc(var(--volr-spacing)*16)}.volr\\:w-20{width:calc(var(--volr-spacing)*20)}.volr\\:w-24{width:calc(var(--volr-spacing)*24)}.volr\\:w-32{width:calc(var(--volr-spacing)*32)}.volr\\:w-36{width:calc(var(--volr-spacing)*36)}.volr\\:w-40{width:calc(var(--volr-spacing)*40)}.volr\\:w-44{width:calc(var(--volr-spacing)*44)}.volr\\:w-48{width:calc(var(--volr-spacing)*48)}.volr\\:w-\\[200px\\]{width:200px}.volr\\:w-auto{width:auto}.volr\\:w-full{width:100%}.volr\\:max-w-4xl{max-width:var(--volr-container-4xl)}.volr\\:max-w-full{max-width:100%}.volr\\:max-w-md{max-width:var(--volr-container-md)}.volr\\:max-w-none{max-width:none}.volr\\:min-w-0{min-width:calc(var(--volr-spacing)*0)}.volr\\:flex-1{flex:1}.volr\\:flex-shrink-0,.volr\\:shrink-0{flex-shrink:0}.volr\\:-translate-y-1\\/2{--volr-tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--volr-tw-translate-x)var(--volr-tw-translate-y)}.volr\\:rotate-90{rotate:90deg}.volr\\:rotate-180{rotate:180deg}.volr\\:animate-ping{animation:var(--volr-animate-ping)}.volr\\:animate-pulse{animation:var(--volr-animate-pulse)}.volr\\:animate-spin{animation:var(--volr-animate-spin)}.volr\\:cursor-not-allowed{cursor:not-allowed}.volr\\:cursor-pointer{cursor:pointer}.volr\\:list-inside{list-style-position:inside}.volr\\:list-decimal{list-style-type:decimal}.volr\\:grid-cols-\\[minmax\\(0\\,1\\.1fr\\)_minmax\\(0\\,1fr\\)\\]{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.volr\\:flex-col{flex-direction:column}.volr\\:items-baseline{align-items:baseline}.volr\\:items-center{align-items:center}.volr\\:items-end{align-items:flex-end}.volr\\:items-start{align-items:flex-start}.volr\\:justify-between{justify-content:space-between}.volr\\:justify-center{justify-content:center}.volr\\:gap-1{gap:calc(var(--volr-spacing)*1)}.volr\\:gap-2{gap:calc(var(--volr-spacing)*2)}.volr\\:gap-3{gap:calc(var(--volr-spacing)*3)}.volr\\:gap-4{gap:calc(var(--volr-spacing)*4)}:where(.volr\\:space-y-1>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*1)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*1)*calc(1 - var(--volr-tw-space-y-reverse)))}:where(.volr\\:space-y-2>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*2)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*2)*calc(1 - var(--volr-tw-space-y-reverse)))}:where(.volr\\:space-y-3>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*3)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*3)*calc(1 - var(--volr-tw-space-y-reverse)))}:where(.volr\\:space-y-4>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*4)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*4)*calc(1 - var(--volr-tw-space-y-reverse)))}:where(.volr\\:space-y-5>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*5)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*5)*calc(1 - var(--volr-tw-space-y-reverse)))}:where(.volr\\:space-y-6>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*6)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*6)*calc(1 - var(--volr-tw-space-y-reverse)))}.volr\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.volr\\:overflow-auto{overflow:auto}.volr\\:overflow-hidden{overflow:hidden}.volr\\:overflow-visible{overflow:visible}.volr\\:overflow-x-auto{overflow-x:auto}.volr\\:overflow-y-auto{overflow-y:auto}.volr\\:rounded{border-radius:.25rem}.volr\\:rounded-2xl{border-radius:var(--volr-radius-2xl)}.volr\\:rounded-full{border-radius:3.40282e38px}.volr\\:rounded-lg{border-radius:var(--volr-radius-lg)}.volr\\:rounded-md{border-radius:var(--volr-radius-md)}.volr\\:rounded-xl{border-radius:var(--volr-radius-xl)}.volr\\:rounded-t-2xl{border-top-left-radius:var(--volr-radius-2xl);border-top-right-radius:var(--volr-radius-2xl)}.volr\\:rounded-t-3xl{border-top-left-radius:var(--volr-radius-3xl);border-top-right-radius:var(--volr-radius-3xl)}.volr\\:border{border-style:var(--volr-tw-border-style);border-width:1px}.volr\\:border-2{border-style:var(--volr-tw-border-style);border-width:2px}.volr\\:border-4{border-style:var(--volr-tw-border-style);border-width:4px}.volr\\:border-y{border-block-style:var(--volr-tw-border-style);border-block-width:1px}.volr\\:border-t{border-top-style:var(--volr-tw-border-style);border-top-width:1px}.volr\\:border-b{border-bottom-style:var(--volr-tw-border-style);border-bottom-width:1px}.volr\\:border-amber-200{border-color:var(--volr-color-amber-200)}.volr\\:border-red-200{border-color:var(--volr-color-red-200)}.volr\\:border-red-500{border-color:var(--volr-color-red-500)}.volr\\:border-slate-100{border-color:var(--volr-color-slate-100)}.volr\\:border-slate-200{border-color:var(--volr-color-slate-200)}.volr\\:border-slate-300{border-color:var(--volr-color-slate-300)}.volr\\:border-transparent{border-color:#0000}.volr\\:border-white{border-color:var(--volr-color-white)}.volr\\:border-t-slate-600{border-top-color:var(--volr-color-slate-600)}.volr\\:border-t-slate-900{border-top-color:var(--volr-color-slate-900)}.volr\\:bg-amber-50{background-color:var(--volr-color-amber-50)}.volr\\:bg-black\\/45{background-color:var(--volr-color-black)}@supports (color:color-mix(in lab, red, red)){.volr\\:bg-black\\/45{background-color:color-mix(in oklab,var(--volr-color-black)45%,transparent)}}.volr\\:bg-blue-100{background-color:var(--volr-color-blue-100)}.volr\\:bg-cyan-400{background-color:var(--volr-color-cyan-400)}.volr\\:bg-emerald-300{background-color:var(--volr-color-emerald-300)}.volr\\:bg-emerald-400{background-color:var(--volr-color-emerald-400)}.volr\\:bg-emerald-500{background-color:var(--volr-color-emerald-500)}.volr\\:bg-green-50{background-color:var(--volr-color-green-50)}.volr\\:bg-green-100{background-color:var(--volr-color-green-100)}.volr\\:bg-red-50{background-color:var(--volr-color-red-50)}.volr\\:bg-red-100{background-color:var(--volr-color-red-100)}.volr\\:bg-slate-50{background-color:var(--volr-color-slate-50)}.volr\\:bg-slate-100{background-color:var(--volr-color-slate-100)}.volr\\:bg-slate-200{background-color:var(--volr-color-slate-200)}.volr\\:bg-slate-900{background-color:var(--volr-color-slate-900)}.volr\\:bg-teal-400{background-color:var(--volr-color-teal-400)}.volr\\:bg-white{background-color:var(--volr-color-white)}.volr\\:bg-yellow-100{background-color:var(--volr-color-yellow-100)}.volr\\:bg-linear-to-br{--volr-tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab, red, red)){.volr\\:bg-linear-to-br{--volr-tw-gradient-position:to bottom right in oklab}}.volr\\:bg-linear-to-br{background-image:linear-gradient(var(--volr-tw-gradient-stops))}.volr\\:bg-linear-to-r{--volr-tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.volr\\:bg-linear-to-r{--volr-tw-gradient-position:to right in oklab}}.volr\\:bg-linear-to-r{background-image:linear-gradient(var(--volr-tw-gradient-stops))}.volr\\:from-emerald-400{--volr-tw-gradient-from:var(--volr-color-emerald-400);--volr-tw-gradient-stops:var(--volr-tw-gradient-via-stops,var(--volr-tw-gradient-position),var(--volr-tw-gradient-from)var(--volr-tw-gradient-from-position),var(--volr-tw-gradient-to)var(--volr-tw-gradient-to-position))}.volr\\:to-teal-500{--volr-tw-gradient-to:var(--volr-color-teal-500);--volr-tw-gradient-stops:var(--volr-tw-gradient-via-stops,var(--volr-tw-gradient-position),var(--volr-tw-gradient-from)var(--volr-tw-gradient-from-position),var(--volr-tw-gradient-to)var(--volr-tw-gradient-to-position))}.volr\\:object-cover{object-fit:cover}.volr\\:p-1{padding:calc(var(--volr-spacing)*1)}.volr\\:p-2{padding:calc(var(--volr-spacing)*2)}.volr\\:p-3{padding:calc(var(--volr-spacing)*3)}.volr\\:p-4{padding:calc(var(--volr-spacing)*4)}.volr\\:p-5{padding:calc(var(--volr-spacing)*5)}.volr\\:p-8{padding:calc(var(--volr-spacing)*8)}.volr\\:px-1\\.5{padding-inline:calc(var(--volr-spacing)*1.5)}.volr\\:px-2{padding-inline:calc(var(--volr-spacing)*2)}.volr\\:px-3{padding-inline:calc(var(--volr-spacing)*3)}.volr\\:px-4{padding-inline:calc(var(--volr-spacing)*4)}.volr\\:px-5{padding-inline:calc(var(--volr-spacing)*5)}.volr\\:px-6{padding-inline:calc(var(--volr-spacing)*6)}.volr\\:py-0\\.5{padding-block:calc(var(--volr-spacing)*.5)}.volr\\:py-1{padding-block:calc(var(--volr-spacing)*1)}.volr\\:py-1\\.5{padding-block:calc(var(--volr-spacing)*1.5)}.volr\\:py-2{padding-block:calc(var(--volr-spacing)*2)}.volr\\:py-2\\.5{padding-block:calc(var(--volr-spacing)*2.5)}.volr\\:py-3{padding-block:calc(var(--volr-spacing)*3)}.volr\\:py-4{padding-block:calc(var(--volr-spacing)*4)}.volr\\:py-6{padding-block:calc(var(--volr-spacing)*6)}.volr\\:py-7{padding-block:calc(var(--volr-spacing)*7)}.volr\\:py-8{padding-block:calc(var(--volr-spacing)*8)}.volr\\:py-12{padding-block:calc(var(--volr-spacing)*12)}.volr\\:pt-1{padding-top:calc(var(--volr-spacing)*1)}.volr\\:pt-2{padding-top:calc(var(--volr-spacing)*2)}.volr\\:pt-3{padding-top:calc(var(--volr-spacing)*3)}.volr\\:pt-4{padding-top:calc(var(--volr-spacing)*4)}.volr\\:pr-3{padding-right:calc(var(--volr-spacing)*3)}.volr\\:pr-16{padding-right:calc(var(--volr-spacing)*16)}.volr\\:pl-11{padding-left:calc(var(--volr-spacing)*11)}.volr\\:text-center{text-align:center}.volr\\:text-left{text-align:left}.volr\\:text-right{text-align:right}.volr\\:align-baseline{vertical-align:baseline}.volr\\:font-mono{font-family:var(--volr-font-mono)}.volr\\:text-2xl{font-size:var(--volr-text-2xl);line-height:var(--volr-tw-leading,var(--volr-text-2xl--line-height))}.volr\\:text-8xl{font-size:var(--volr-text-8xl);line-height:var(--volr-tw-leading,var(--volr-text-8xl--line-height))}.volr\\:text-base{font-size:var(--volr-text-base);line-height:var(--volr-tw-leading,var(--volr-text-base--line-height))}.volr\\:text-lg{font-size:var(--volr-text-lg);line-height:var(--volr-tw-leading,var(--volr-text-lg--line-height))}.volr\\:text-sm{font-size:var(--volr-text-sm);line-height:var(--volr-tw-leading,var(--volr-text-sm--line-height))}.volr\\:text-xl{font-size:var(--volr-text-xl);line-height:var(--volr-tw-leading,var(--volr-text-xl--line-height))}.volr\\:text-xs{font-size:var(--volr-text-xs);line-height:var(--volr-tw-leading,var(--volr-text-xs--line-height))}.volr\\:leading-none{--volr-tw-leading:1;line-height:1}.volr\\:leading-relaxed{--volr-tw-leading:var(--volr-leading-relaxed);line-height:var(--volr-leading-relaxed)}.volr\\:font-bold{--volr-tw-font-weight:var(--volr-font-weight-bold);font-weight:var(--volr-font-weight-bold)}.volr\\:font-medium{--volr-tw-font-weight:var(--volr-font-weight-medium);font-weight:var(--volr-font-weight-medium)}.volr\\:font-semibold{--volr-tw-font-weight:var(--volr-font-weight-semibold);font-weight:var(--volr-font-weight-semibold)}.volr\\:tracking-tight{--volr-tw-tracking:var(--volr-tracking-tight);letter-spacing:var(--volr-tracking-tight)}.volr\\:tracking-wide{--volr-tw-tracking:var(--volr-tracking-wide);letter-spacing:var(--volr-tracking-wide)}.volr\\:tracking-wider{--volr-tw-tracking:var(--volr-tracking-wider);letter-spacing:var(--volr-tracking-wider)}.volr\\:break-all{word-break:break-all}.volr\\:text-amber-700{color:var(--volr-color-amber-700)}.volr\\:text-blue-700{color:var(--volr-color-blue-700)}.volr\\:text-emerald-600{color:var(--volr-color-emerald-600)}.volr\\:text-gray-500{color:var(--volr-color-gray-500)}.volr\\:text-green-600{color:var(--volr-color-green-600)}.volr\\:text-green-700{color:var(--volr-color-green-700)}.volr\\:text-red-500{color:var(--volr-color-red-500)}.volr\\:text-red-600{color:var(--volr-color-red-600)}.volr\\:text-red-700{color:var(--volr-color-red-700)}.volr\\:text-slate-300{color:var(--volr-color-slate-300)}.volr\\:text-slate-400{color:var(--volr-color-slate-400)}.volr\\:text-slate-500{color:var(--volr-color-slate-500)}.volr\\:text-slate-600{color:var(--volr-color-slate-600)}.volr\\:text-slate-700{color:var(--volr-color-slate-700)}.volr\\:text-slate-800{color:var(--volr-color-slate-800)}.volr\\:text-slate-900{color:var(--volr-color-slate-900)}.volr\\:text-white{color:var(--volr-color-white)}.volr\\:text-yellow-700{color:var(--volr-color-yellow-700)}.volr\\:capitalize{text-transform:capitalize}.volr\\:uppercase{text-transform:uppercase}.volr\\:underline{text-decoration-line:underline}.volr\\:opacity-0{opacity:0}.volr\\:opacity-25{opacity:.25}.volr\\:opacity-30{opacity:.3}.volr\\:opacity-50{opacity:.5}.volr\\:opacity-70{opacity:.7}.volr\\:opacity-75{opacity:.75}.volr\\:opacity-80{opacity:.8}.volr\\:shadow-2xl{--volr-tw-shadow:0 25px 50px -12px var(--volr-tw-shadow-color,#00000040);box-shadow:var(--volr-tw-inset-shadow),var(--volr-tw-inset-ring-shadow),var(--volr-tw-ring-offset-shadow),var(--volr-tw-ring-shadow),var(--volr-tw-shadow)}.volr\\:shadow-lg{--volr-tw-shadow:0 10px 15px -3px var(--volr-tw-shadow-color,#0000001a),0 4px 6px -4px var(--volr-tw-shadow-color,#0000001a);box-shadow:var(--volr-tw-inset-shadow),var(--volr-tw-inset-ring-shadow),var(--volr-tw-ring-offset-shadow),var(--volr-tw-ring-shadow),var(--volr-tw-shadow)}.volr\\:shadow-sm{--volr-tw-shadow:0 1px 3px 0 var(--volr-tw-shadow-color,#0000001a),0 1px 2px -1px var(--volr-tw-shadow-color,#0000001a);box-shadow:var(--volr-tw-inset-shadow),var(--volr-tw-inset-ring-shadow),var(--volr-tw-ring-offset-shadow),var(--volr-tw-ring-shadow),var(--volr-tw-shadow)}.volr\\:shadow-xl{--volr-tw-shadow:0 20px 25px -5px var(--volr-tw-shadow-color,#0000001a),0 8px 10px -6px var(--volr-tw-shadow-color,#0000001a);box-shadow:var(--volr-tw-inset-shadow),var(--volr-tw-inset-ring-shadow),var(--volr-tw-ring-offset-shadow),var(--volr-tw-ring-shadow),var(--volr-tw-shadow)}.volr\\:shadow-emerald-500\\/50{--volr-tw-shadow-color:var(--volr-color-emerald-500)}@supports (color:color-mix(in lab, red, red)){.volr\\:shadow-emerald-500\\/50{--volr-tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--volr-color-emerald-500)50%,transparent)var(--volr-tw-shadow-alpha),transparent)}}.volr\\:blur-2xl{--volr-tw-blur:blur(var(--volr-blur-2xl));filter:var(--volr-tw-blur,)var(--volr-tw-brightness,)var(--volr-tw-contrast,)var(--volr-tw-grayscale,)var(--volr-tw-hue-rotate,)var(--volr-tw-invert,)var(--volr-tw-saturate,)var(--volr-tw-sepia,)var(--volr-tw-drop-shadow,)}.volr\\:transition-all{transition-property:all;transition-timing-function:var(--volr-tw-ease,var(--volr-default-transition-timing-function));transition-duration:var(--volr-tw-duration,var(--volr-default-transition-duration))}.volr\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--volr-tw-gradient-from,--volr-tw-gradient-via,--volr-tw-gradient-to;transition-timing-function:var(--volr-tw-ease,var(--volr-default-transition-timing-function));transition-duration:var(--volr-tw-duration,var(--volr-default-transition-duration))}.volr\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--volr-tw-ease,var(--volr-default-transition-timing-function));transition-duration:var(--volr-tw-duration,var(--volr-default-transition-duration))}.volr\\:duration-200{--volr-tw-duration:.2s;transition-duration:.2s}.volr\\:duration-300{--volr-tw-duration:.3s;transition-duration:.3s}.volr\\:duration-500{--volr-tw-duration:.5s;transition-duration:.5s}.volr\\:ease-out{--volr-tw-ease:var(--volr-ease-out);transition-timing-function:var(--volr-ease-out)}.volr\\:outline-none{--volr-tw-outline-style:none;outline-style:none}@media (hover:hover){.volr\\:hover\\:border-slate-300:hover{border-color:var(--volr-color-slate-300)}.volr\\:hover\\:bg-slate-50:hover{background-color:var(--volr-color-slate-50)}.volr\\:hover\\:bg-slate-200:hover{background-color:var(--volr-color-slate-200)}.volr\\:hover\\:text-slate-700:hover{color:var(--volr-color-slate-700)}}.volr\\:focus\\:ring-2:focus{--volr-tw-ring-shadow:var(--volr-tw-ring-inset,)0 0 0 calc(2px + var(--volr-tw-ring-offset-width))var(--volr-tw-ring-color,currentcolor);box-shadow:var(--volr-tw-inset-shadow),var(--volr-tw-inset-ring-shadow),var(--volr-tw-ring-offset-shadow),var(--volr-tw-ring-shadow),var(--volr-tw-shadow)}.volr\\:focus\\:ring-slate-300:focus{--volr-tw-ring-color:var(--volr-color-slate-300)}.volr\\:focus\\:outline-none:focus{--volr-tw-outline-style:none;outline-style:none}.volr\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.volr\\:disabled\\:bg-slate-100:disabled{background-color:var(--volr-color-slate-100)}.volr\\:disabled\\:text-slate-400:disabled{color:var(--volr-color-slate-400)}.volr\\:disabled\\:opacity-50:disabled{opacity:.5}.volr-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.volr-text-secondary{color:var(--volr-text-secondary)}.volr-text-muted{color:var(--volr-text-muted)}.volr-bg-secondary{background-color:var(--volr-bg-secondary)}.volr-bg-tertiary{background-color:var(--volr-bg-tertiary)}.volr-border{border-color:var(--volr-border)}.volr-border-strong{border-color:var(--volr-border-strong)}.volr-divider-line{background-color:var(--volr-border)}.volr-error{background-color:var(--volr-error-bg);border-color:var(--volr-error-border);color:var(--volr-error-text)}.volr-hint{background-color:var(--volr-hint-bg);border:1px solid var(--volr-hint-border);color:var(--volr-hint-text)}.volr-hover:hover{background-color:var(--volr-hover-bg)}.volr-surface{background-color:var(--volr-bg)}}@property --volr-tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --volr-tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --volr-tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --volr-tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --volr-tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --volr-tw-gradient-position{syntax:"*";inherits:false}@property --volr-tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --volr-tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --volr-tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --volr-tw-gradient-stops{syntax:"*";inherits:false}@property --volr-tw-gradient-via-stops{syntax:"*";inherits:false}@property --volr-tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --volr-tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --volr-tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --volr-tw-leading{syntax:"*";inherits:false}@property --volr-tw-font-weight{syntax:"*";inherits:false}@property --volr-tw-tracking{syntax:"*";inherits:false}@property --volr-tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --volr-tw-shadow-color{syntax:"*";inherits:false}@property --volr-tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --volr-tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --volr-tw-inset-shadow-color{syntax:"*";inherits:false}@property --volr-tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --volr-tw-ring-color{syntax:"*";inherits:false}@property --volr-tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --volr-tw-inset-ring-color{syntax:"*";inherits:false}@property --volr-tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --volr-tw-ring-inset{syntax:"*";inherits:false}@property --volr-tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --volr-tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --volr-tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --volr-tw-blur{syntax:"*";inherits:false}@property --volr-tw-brightness{syntax:"*";inherits:false}@property --volr-tw-contrast{syntax:"*";inherits:false}@property --volr-tw-grayscale{syntax:"*";inherits:false}@property --volr-tw-hue-rotate{syntax:"*";inherits:false}@property --volr-tw-invert{syntax:"*";inherits:false}@property --volr-tw-opacity{syntax:"*";inherits:false}@property --volr-tw-saturate{syntax:"*";inherits:false}@property --volr-tw-sepia{syntax:"*";inherits:false}@property --volr-tw-drop-shadow{syntax:"*";inherits:false}@property --volr-tw-drop-shadow-color{syntax:"*";inherits:false}@property --volr-tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --volr-tw-drop-shadow-size{syntax:"*";inherits:false}@property --volr-tw-duration{syntax:"*";inherits:false}@property --volr-tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}';
|
|
1228
|
+
var VOLR_SDK_CSS = '/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--volr-tw-translate-x:0;--volr-tw-translate-y:0;--volr-tw-translate-z:0;--volr-tw-space-y-reverse:0;--volr-tw-border-style:solid;--volr-tw-gradient-position:initial;--volr-tw-gradient-from:#0000;--volr-tw-gradient-via:#0000;--volr-tw-gradient-to:#0000;--volr-tw-gradient-stops:initial;--volr-tw-gradient-via-stops:initial;--volr-tw-gradient-from-position:0%;--volr-tw-gradient-via-position:50%;--volr-tw-gradient-to-position:100%;--volr-tw-leading:initial;--volr-tw-font-weight:initial;--volr-tw-tracking:initial;--volr-tw-shadow:0 0 #0000;--volr-tw-shadow-color:initial;--volr-tw-shadow-alpha:100%;--volr-tw-inset-shadow:0 0 #0000;--volr-tw-inset-shadow-color:initial;--volr-tw-inset-shadow-alpha:100%;--volr-tw-ring-color:initial;--volr-tw-ring-shadow:0 0 #0000;--volr-tw-inset-ring-color:initial;--volr-tw-inset-ring-shadow:0 0 #0000;--volr-tw-ring-inset:initial;--volr-tw-ring-offset-width:0px;--volr-tw-ring-offset-color:#fff;--volr-tw-ring-offset-shadow:0 0 #0000;--volr-tw-blur:initial;--volr-tw-brightness:initial;--volr-tw-contrast:initial;--volr-tw-grayscale:initial;--volr-tw-hue-rotate:initial;--volr-tw-invert:initial;--volr-tw-opacity:initial;--volr-tw-saturate:initial;--volr-tw-sepia:initial;--volr-tw-drop-shadow:initial;--volr-tw-drop-shadow-color:initial;--volr-tw-drop-shadow-alpha:100%;--volr-tw-drop-shadow-size:initial;--volr-tw-duration:initial;--volr-tw-ease:initial}}}@layer theme{:root,:host{--volr-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--volr-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--volr-color-red-50:oklch(97.1% .013 17.38);--volr-color-red-100:oklch(93.6% .032 17.717);--volr-color-red-200:oklch(88.5% .062 18.334);--volr-color-red-500:oklch(63.7% .237 25.331);--volr-color-red-600:oklch(57.7% .245 27.325);--volr-color-red-700:oklch(50.5% .213 27.518);--volr-color-amber-50:oklch(98.7% .022 95.277);--volr-color-amber-200:oklch(92.4% .12 95.746);--volr-color-amber-700:oklch(55.5% .163 48.998);--volr-color-yellow-100:oklch(97.3% .071 103.193);--volr-color-yellow-700:oklch(55.4% .135 66.442);--volr-color-green-50:oklch(98.2% .018 155.826);--volr-color-green-100:oklch(96.2% .044 156.743);--volr-color-green-600:oklch(62.7% .194 149.214);--volr-color-green-700:oklch(52.7% .154 150.069);--volr-color-emerald-300:oklch(84.5% .143 164.978);--volr-color-emerald-400:oklch(76.5% .177 163.223);--volr-color-emerald-500:oklch(69.6% .17 162.48);--volr-color-emerald-600:oklch(59.6% .145 163.225);--volr-color-teal-400:oklch(77.7% .152 181.912);--volr-color-teal-500:oklch(70.4% .14 182.503);--volr-color-cyan-400:oklch(78.9% .154 211.53);--volr-color-blue-100:oklch(93.2% .032 255.585);--volr-color-blue-700:oklch(48.8% .243 264.376);--volr-color-slate-50:oklch(98.4% .003 247.858);--volr-color-slate-100:oklch(96.8% .007 247.896);--volr-color-slate-200:oklch(92.9% .013 255.508);--volr-color-slate-300:oklch(86.9% .022 252.894);--volr-color-slate-400:oklch(70.4% .04 256.788);--volr-color-slate-500:oklch(55.4% .046 257.417);--volr-color-slate-600:oklch(44.6% .043 257.281);--volr-color-slate-700:oklch(37.2% .044 257.287);--volr-color-slate-800:oklch(27.9% .041 260.031);--volr-color-slate-900:oklch(20.8% .042 265.755);--volr-color-gray-500:oklch(55.1% .027 264.364);--volr-color-black:#000;--volr-color-white:#fff;--volr-spacing:.25rem;--volr-container-md:28rem;--volr-container-4xl:56rem;--volr-text-xs:.75rem;--volr-text-xs--line-height:calc(1/.75);--volr-text-sm:.875rem;--volr-text-sm--line-height:calc(1.25/.875);--volr-text-base:1rem;--volr-text-base--line-height:calc(1.5/1);--volr-text-lg:1.125rem;--volr-text-lg--line-height:calc(1.75/1.125);--volr-text-xl:1.25rem;--volr-text-xl--line-height:calc(1.75/1.25);--volr-text-2xl:1.5rem;--volr-text-2xl--line-height:calc(2/1.5);--volr-text-8xl:6rem;--volr-text-8xl--line-height:1;--volr-font-weight-medium:500;--volr-font-weight-semibold:600;--volr-font-weight-bold:700;--volr-tracking-tight:-.025em;--volr-tracking-wide:.025em;--volr-tracking-wider:.05em;--volr-leading-relaxed:1.625;--volr-radius-md:.375rem;--volr-radius-lg:.5rem;--volr-radius-xl:.75rem;--volr-radius-2xl:1rem;--volr-radius-3xl:1.5rem;--volr-ease-out:cubic-bezier(0,0,.2,1);--volr-animate-spin:spin 1s linear infinite;--volr-animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--volr-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--volr-blur-2xl:40px;--volr-default-transition-duration:.15s;--volr-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--volr-default-font-family:var(--volr-font-sans);--volr-default-mono-font-family:var(--volr-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--volr-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--volr-default-font-feature-settings,normal);font-variation-settings:var(--volr-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--volr-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--volr-default-mono-font-feature-settings,normal);font-variation-settings:var(--volr-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:host{--volr-primary-color:var(--volr-accent-color,#303030);--volr-font-family:var(--volr-custom-font,inherit);--volr-bg:#fff;--volr-bg-secondary:#f8fafc;--volr-bg-tertiary:#f1f5f9;--volr-text:#0f172a;--volr-text-secondary:#475569;--volr-text-muted:#94a3b8;--volr-border:#e2e8f0;--volr-border-strong:#cbd5e1;--volr-hover-bg:#f8fafc;--volr-error-bg:#fef2f2;--volr-error-border:#fecaca;--volr-error-text:#991b1b;--volr-hint-bg:#f8fafc;--volr-hint-border:#e2e8f0;--volr-hint-text:#334155}:host([data-theme=dark]){--volr-bg:#1c1c1e;--volr-bg-secondary:#2c2c2e;--volr-bg-tertiary:#3a3a3c;--volr-text:#f5f5f7;--volr-text-secondary:#c7c7cc;--volr-text-muted:#8e8e93;--volr-border:#3a3a3c;--volr-border-strong:#48484a;--volr-hover-bg:#2c2c2e;--volr-error-bg:#3c1f1f;--volr-error-border:#7f1d1d;--volr-error-text:#fca5a5;--volr-hint-bg:#2c2c2e;--volr-hint-border:#3a3a3c;--volr-hint-text:#c7c7cc}*,:before,:after{box-sizing:border-box}*{font-family:var(--volr-font-family);color:var(--volr-text)}button,input,select,textarea{color:var(--volr-text);background-color:#0000}button{cursor:pointer;background-color:#0000}input::placeholder{color:var(--volr-text-muted)}h1,h2,h3{color:var(--volr-text);margin:0;font-weight:700}h1{font-size:1.875rem;line-height:2.25rem}h2{font-size:1.5rem;line-height:2rem}h3{font-size:1.25rem;line-height:1.75rem}p{margin:0}}@layer components{.volr-dialog-overlay{inset:calc(var(--volr-spacing)*0);z-index:40;background-color:var(--volr-color-black);position:fixed}@supports (color:color-mix(in lab, red, red)){.volr-dialog-overlay{background-color:color-mix(in oklab,var(--volr-color-black)45%,transparent)}}.volr-dialog-content{z-index:50;border-radius:var(--volr-radius-2xl);border-style:var(--volr-tw-border-style);padding:calc(var(--volr-spacing)*7);--volr-tw-shadow:0 20px 25px -5px var(--volr-tw-shadow-color,#0000001a),0 8px 10px -6px var(--volr-tw-shadow-color,#0000001a);box-shadow:var(--volr-tw-inset-shadow),var(--volr-tw-inset-ring-shadow),var(--volr-tw-ring-offset-shadow),var(--volr-tw-ring-shadow),var(--volr-tw-shadow);background-color:var(--volr-bg);border-width:1px;border-color:var(--volr-border-strong);width:calc(100% - 2rem);max-width:28rem;max-height:85vh;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}@media (max-width:640px){.volr-dialog-content{top:auto;right:calc(var(--volr-spacing)*0);bottom:calc(var(--volr-spacing)*0);left:calc(var(--volr-spacing)*0);border-radius:1.25rem 1.25rem 0 0;width:100%;max-width:100%;margin:0 auto;transform:translateY(0)}}.volr-dialog-close{top:calc(var(--volr-spacing)*4);right:calc(var(--volr-spacing)*4);height:calc(var(--volr-spacing)*8);width:calc(var(--volr-spacing)*8);color:var(--volr-text-muted);cursor:pointer;background-color:#0000;border:none;border-radius:3.40282e38px;justify-content:center;align-items:center;display:inline-flex;position:absolute}.volr-dialog-close:hover{background-color:var(--volr-hover-bg);color:var(--volr-text-secondary)}.volr-dialog-close:focus-visible{box-shadow:0 0 0 2px var(--volr-border-strong);outline:none}.volr-dialog-close-icon{height:calc(var(--volr-spacing)*4);width:calc(var(--volr-spacing)*4)}.volr-email-input{border:1px solid var(--volr-border-strong);background-color:var(--volr-bg);width:100%;color:var(--volr-text);border-radius:.5rem;outline:none;padding:.75rem .75rem .75rem 2.75rem;font-size:1rem;line-height:1.5}.volr-email-input::placeholder{color:var(--volr-text-muted)}.volr-email-input:focus{border-color:var(--volr-border-strong);box-shadow:0 0 0 2px var(--volr-border-strong)}.volr-option-button{border:1px solid var(--volr-border);background-color:var(--volr-bg);width:100%;color:var(--volr-text);cursor:pointer;border-radius:.5rem;align-items:center;gap:.75rem;padding:.75rem;transition:background-color .15s ease-out,border-color .15s ease-out,box-shadow .15s ease-out;display:flex}.volr-option-button:hover{background-color:var(--volr-hover-bg);border-color:var(--volr-border)}.volr-option-button:focus-visible{box-shadow:0 0 0 2px var(--volr-border-strong);outline:none}}@layer utilities{.volr\\:pointer-events-auto{pointer-events:auto}.volr\\:pointer-events-none{pointer-events:none}.volr\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.volr\\:absolute{position:absolute}.volr\\:fixed{position:fixed}.volr\\:relative{position:relative}.volr\\:inset-0{inset:calc(var(--volr-spacing)*0)}.volr\\:-top-3{top:calc(var(--volr-spacing)*-3)}.volr\\:top-1\\/2{top:50%}.volr\\:-right-3{right:calc(var(--volr-spacing)*-3)}.volr\\:right-0{right:calc(var(--volr-spacing)*0)}.volr\\:right-2{right:calc(var(--volr-spacing)*2)}.volr\\:right-3{right:calc(var(--volr-spacing)*3)}.volr\\:bottom-0{bottom:calc(var(--volr-spacing)*0)}.volr\\:left-0{left:calc(var(--volr-spacing)*0)}.volr\\:left-3{left:calc(var(--volr-spacing)*3)}.volr\\:-z-10{z-index:calc(10*-1)}.volr\\:z-10{z-index:10}.volr\\:z-20{z-index:20}.volr\\:z-40{z-index:40}.volr\\:z-50{z-index:50}.volr\\:mx-auto{margin-inline:auto}.volr\\:my-6{margin-block:calc(var(--volr-spacing)*6)}.volr\\:mt-0\\.5{margin-top:calc(var(--volr-spacing)*.5)}.volr\\:mt-1{margin-top:calc(var(--volr-spacing)*1)}.volr\\:mt-2{margin-top:calc(var(--volr-spacing)*2)}.volr\\:mt-3{margin-top:calc(var(--volr-spacing)*3)}.volr\\:mt-4{margin-top:calc(var(--volr-spacing)*4)}.volr\\:mt-6{margin-top:calc(var(--volr-spacing)*6)}.volr\\:mt-8{margin-top:calc(var(--volr-spacing)*8)}.volr\\:mb-1{margin-bottom:calc(var(--volr-spacing)*1)}.volr\\:mb-2{margin-bottom:calc(var(--volr-spacing)*2)}.volr\\:mb-3{margin-bottom:calc(var(--volr-spacing)*3)}.volr\\:mb-4{margin-bottom:calc(var(--volr-spacing)*4)}.volr\\:mb-5{margin-bottom:calc(var(--volr-spacing)*5)}.volr\\:mb-6{margin-bottom:calc(var(--volr-spacing)*6)}.volr\\:mb-8{margin-bottom:calc(var(--volr-spacing)*8)}.volr\\:-ml-2{margin-left:calc(var(--volr-spacing)*-2)}.volr\\:ml-6{margin-left:calc(var(--volr-spacing)*6)}.volr\\:line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.volr\\:block{display:block}.volr\\:flex{display:flex}.volr\\:grid{display:grid}.volr\\:inline-block{display:inline-block}.volr\\:inline-flex{display:inline-flex}.volr\\:h-1{height:calc(var(--volr-spacing)*1)}.volr\\:h-1\\.5{height:calc(var(--volr-spacing)*1.5)}.volr\\:h-2{height:calc(var(--volr-spacing)*2)}.volr\\:h-3{height:calc(var(--volr-spacing)*3)}.volr\\:h-3\\.5{height:calc(var(--volr-spacing)*3.5)}.volr\\:h-4{height:calc(var(--volr-spacing)*4)}.volr\\:h-5{height:calc(var(--volr-spacing)*5)}.volr\\:h-6{height:calc(var(--volr-spacing)*6)}.volr\\:h-7{height:calc(var(--volr-spacing)*7)}.volr\\:h-8{height:calc(var(--volr-spacing)*8)}.volr\\:h-10{height:calc(var(--volr-spacing)*10)}.volr\\:h-12{height:calc(var(--volr-spacing)*12)}.volr\\:h-14{height:calc(var(--volr-spacing)*14)}.volr\\:h-16{height:calc(var(--volr-spacing)*16)}.volr\\:h-20{height:calc(var(--volr-spacing)*20)}.volr\\:h-24{height:calc(var(--volr-spacing)*24)}.volr\\:h-40{height:calc(var(--volr-spacing)*40)}.volr\\:h-44{height:calc(var(--volr-spacing)*44)}.volr\\:h-48{height:calc(var(--volr-spacing)*48)}.volr\\:h-\\[0\\.8em\\]{height:.8em}.volr\\:h-\\[200px\\]{height:200px}.volr\\:h-full{height:100%}.volr\\:h-px{height:1px}.volr\\:max-h-48{max-height:calc(var(--volr-spacing)*48)}.volr\\:max-h-60{max-height:calc(var(--volr-spacing)*60)}.volr\\:max-h-64{max-height:calc(var(--volr-spacing)*64)}.volr\\:max-h-\\[85vh\\]{max-height:85vh}.volr\\:max-h-\\[90vh\\]{max-height:90vh}.volr\\:min-h-\\[100px\\]{min-height:100px}.volr\\:min-h-\\[120px\\]{min-height:120px}.volr\\:min-h-\\[500px\\]{min-height:500px}.volr\\:w-1\\.5{width:calc(var(--volr-spacing)*1.5)}.volr\\:w-2{width:calc(var(--volr-spacing)*2)}.volr\\:w-3{width:calc(var(--volr-spacing)*3)}.volr\\:w-3\\.5{width:calc(var(--volr-spacing)*3.5)}.volr\\:w-4{width:calc(var(--volr-spacing)*4)}.volr\\:w-5{width:calc(var(--volr-spacing)*5)}.volr\\:w-6{width:calc(var(--volr-spacing)*6)}.volr\\:w-7{width:calc(var(--volr-spacing)*7)}.volr\\:w-8{width:calc(var(--volr-spacing)*8)}.volr\\:w-10{width:calc(var(--volr-spacing)*10)}.volr\\:w-12{width:calc(var(--volr-spacing)*12)}.volr\\:w-14{width:calc(var(--volr-spacing)*14)}.volr\\:w-16{width:calc(var(--volr-spacing)*16)}.volr\\:w-20{width:calc(var(--volr-spacing)*20)}.volr\\:w-24{width:calc(var(--volr-spacing)*24)}.volr\\:w-32{width:calc(var(--volr-spacing)*32)}.volr\\:w-36{width:calc(var(--volr-spacing)*36)}.volr\\:w-40{width:calc(var(--volr-spacing)*40)}.volr\\:w-44{width:calc(var(--volr-spacing)*44)}.volr\\:w-48{width:calc(var(--volr-spacing)*48)}.volr\\:w-\\[200px\\]{width:200px}.volr\\:w-auto{width:auto}.volr\\:w-full{width:100%}.volr\\:max-w-4xl{max-width:var(--volr-container-4xl)}.volr\\:max-w-full{max-width:100%}.volr\\:max-w-md{max-width:var(--volr-container-md)}.volr\\:max-w-none{max-width:none}.volr\\:min-w-0{min-width:calc(var(--volr-spacing)*0)}.volr\\:flex-1{flex:1}.volr\\:flex-shrink-0,.volr\\:shrink-0{flex-shrink:0}.volr\\:-translate-y-1\\/2{--volr-tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--volr-tw-translate-x)var(--volr-tw-translate-y)}.volr\\:rotate-90{rotate:90deg}.volr\\:rotate-180{rotate:180deg}.volr\\:animate-ping{animation:var(--volr-animate-ping)}.volr\\:animate-pulse{animation:var(--volr-animate-pulse)}.volr\\:animate-spin{animation:var(--volr-animate-spin)}.volr\\:cursor-not-allowed{cursor:not-allowed}.volr\\:cursor-pointer{cursor:pointer}.volr\\:list-inside{list-style-position:inside}.volr\\:list-decimal{list-style-type:decimal}.volr\\:grid-cols-\\[minmax\\(0\\,1\\.1fr\\)_minmax\\(0\\,1fr\\)\\]{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.volr\\:flex-col{flex-direction:column}.volr\\:items-baseline{align-items:baseline}.volr\\:items-center{align-items:center}.volr\\:items-end{align-items:flex-end}.volr\\:items-start{align-items:flex-start}.volr\\:justify-between{justify-content:space-between}.volr\\:justify-center{justify-content:center}.volr\\:gap-1{gap:calc(var(--volr-spacing)*1)}.volr\\:gap-2{gap:calc(var(--volr-spacing)*2)}.volr\\:gap-3{gap:calc(var(--volr-spacing)*3)}.volr\\:gap-4{gap:calc(var(--volr-spacing)*4)}:where(.volr\\:space-y-1>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*1)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*1)*calc(1 - var(--volr-tw-space-y-reverse)))}:where(.volr\\:space-y-2>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*2)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*2)*calc(1 - var(--volr-tw-space-y-reverse)))}:where(.volr\\:space-y-3>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*3)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*3)*calc(1 - var(--volr-tw-space-y-reverse)))}:where(.volr\\:space-y-4>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*4)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*4)*calc(1 - var(--volr-tw-space-y-reverse)))}:where(.volr\\:space-y-5>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*5)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*5)*calc(1 - var(--volr-tw-space-y-reverse)))}:where(.volr\\:space-y-6>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*6)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*6)*calc(1 - var(--volr-tw-space-y-reverse)))}.volr\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.volr\\:overflow-auto{overflow:auto}.volr\\:overflow-hidden{overflow:hidden}.volr\\:overflow-visible{overflow:visible}.volr\\:overflow-x-auto{overflow-x:auto}.volr\\:overflow-y-auto{overflow-y:auto}.volr\\:rounded{border-radius:.25rem}.volr\\:rounded-2xl{border-radius:var(--volr-radius-2xl)}.volr\\:rounded-full{border-radius:3.40282e38px}.volr\\:rounded-lg{border-radius:var(--volr-radius-lg)}.volr\\:rounded-md{border-radius:var(--volr-radius-md)}.volr\\:rounded-xl{border-radius:var(--volr-radius-xl)}.volr\\:rounded-t-2xl{border-top-left-radius:var(--volr-radius-2xl);border-top-right-radius:var(--volr-radius-2xl)}.volr\\:rounded-t-3xl{border-top-left-radius:var(--volr-radius-3xl);border-top-right-radius:var(--volr-radius-3xl)}.volr\\:border{border-style:var(--volr-tw-border-style);border-width:1px}.volr\\:border-2{border-style:var(--volr-tw-border-style);border-width:2px}.volr\\:border-4{border-style:var(--volr-tw-border-style);border-width:4px}.volr\\:border-y{border-block-style:var(--volr-tw-border-style);border-block-width:1px}.volr\\:border-t{border-top-style:var(--volr-tw-border-style);border-top-width:1px}.volr\\:border-b{border-bottom-style:var(--volr-tw-border-style);border-bottom-width:1px}.volr\\:border-amber-200{border-color:var(--volr-color-amber-200)}.volr\\:border-red-200{border-color:var(--volr-color-red-200)}.volr\\:border-red-500{border-color:var(--volr-color-red-500)}.volr\\:border-slate-100{border-color:var(--volr-color-slate-100)}.volr\\:border-slate-200{border-color:var(--volr-color-slate-200)}.volr\\:border-slate-300{border-color:var(--volr-color-slate-300)}.volr\\:border-transparent{border-color:#0000}.volr\\:border-white{border-color:var(--volr-color-white)}.volr\\:border-t-slate-600{border-top-color:var(--volr-color-slate-600)}.volr\\:border-t-slate-900{border-top-color:var(--volr-color-slate-900)}.volr\\:bg-amber-50{background-color:var(--volr-color-amber-50)}.volr\\:bg-black\\/45{background-color:var(--volr-color-black)}@supports (color:color-mix(in lab, red, red)){.volr\\:bg-black\\/45{background-color:color-mix(in oklab,var(--volr-color-black)45%,transparent)}}.volr\\:bg-blue-100{background-color:var(--volr-color-blue-100)}.volr\\:bg-cyan-400{background-color:var(--volr-color-cyan-400)}.volr\\:bg-emerald-300{background-color:var(--volr-color-emerald-300)}.volr\\:bg-emerald-400{background-color:var(--volr-color-emerald-400)}.volr\\:bg-emerald-500{background-color:var(--volr-color-emerald-500)}.volr\\:bg-green-50{background-color:var(--volr-color-green-50)}.volr\\:bg-green-100{background-color:var(--volr-color-green-100)}.volr\\:bg-red-50{background-color:var(--volr-color-red-50)}.volr\\:bg-red-100{background-color:var(--volr-color-red-100)}.volr\\:bg-slate-50{background-color:var(--volr-color-slate-50)}.volr\\:bg-slate-100{background-color:var(--volr-color-slate-100)}.volr\\:bg-slate-200{background-color:var(--volr-color-slate-200)}.volr\\:bg-slate-900{background-color:var(--volr-color-slate-900)}.volr\\:bg-teal-400{background-color:var(--volr-color-teal-400)}.volr\\:bg-white{background-color:var(--volr-color-white)}.volr\\:bg-yellow-100{background-color:var(--volr-color-yellow-100)}.volr\\:bg-linear-to-br{--volr-tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab, red, red)){.volr\\:bg-linear-to-br{--volr-tw-gradient-position:to bottom right in oklab}}.volr\\:bg-linear-to-br{background-image:linear-gradient(var(--volr-tw-gradient-stops))}.volr\\:bg-linear-to-r{--volr-tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.volr\\:bg-linear-to-r{--volr-tw-gradient-position:to right in oklab}}.volr\\:bg-linear-to-r{background-image:linear-gradient(var(--volr-tw-gradient-stops))}.volr\\:from-emerald-400{--volr-tw-gradient-from:var(--volr-color-emerald-400);--volr-tw-gradient-stops:var(--volr-tw-gradient-via-stops,var(--volr-tw-gradient-position),var(--volr-tw-gradient-from)var(--volr-tw-gradient-from-position),var(--volr-tw-gradient-to)var(--volr-tw-gradient-to-position))}.volr\\:to-teal-500{--volr-tw-gradient-to:var(--volr-color-teal-500);--volr-tw-gradient-stops:var(--volr-tw-gradient-via-stops,var(--volr-tw-gradient-position),var(--volr-tw-gradient-from)var(--volr-tw-gradient-from-position),var(--volr-tw-gradient-to)var(--volr-tw-gradient-to-position))}.volr\\:object-cover{object-fit:cover}.volr\\:p-1{padding:calc(var(--volr-spacing)*1)}.volr\\:p-2{padding:calc(var(--volr-spacing)*2)}.volr\\:p-3{padding:calc(var(--volr-spacing)*3)}.volr\\:p-4{padding:calc(var(--volr-spacing)*4)}.volr\\:p-5{padding:calc(var(--volr-spacing)*5)}.volr\\:p-8{padding:calc(var(--volr-spacing)*8)}.volr\\:px-1\\.5{padding-inline:calc(var(--volr-spacing)*1.5)}.volr\\:px-2{padding-inline:calc(var(--volr-spacing)*2)}.volr\\:px-3{padding-inline:calc(var(--volr-spacing)*3)}.volr\\:px-4{padding-inline:calc(var(--volr-spacing)*4)}.volr\\:px-5{padding-inline:calc(var(--volr-spacing)*5)}.volr\\:px-6{padding-inline:calc(var(--volr-spacing)*6)}.volr\\:py-0\\.5{padding-block:calc(var(--volr-spacing)*.5)}.volr\\:py-1{padding-block:calc(var(--volr-spacing)*1)}.volr\\:py-1\\.5{padding-block:calc(var(--volr-spacing)*1.5)}.volr\\:py-2{padding-block:calc(var(--volr-spacing)*2)}.volr\\:py-2\\.5{padding-block:calc(var(--volr-spacing)*2.5)}.volr\\:py-3{padding-block:calc(var(--volr-spacing)*3)}.volr\\:py-4{padding-block:calc(var(--volr-spacing)*4)}.volr\\:py-6{padding-block:calc(var(--volr-spacing)*6)}.volr\\:py-7{padding-block:calc(var(--volr-spacing)*7)}.volr\\:py-8{padding-block:calc(var(--volr-spacing)*8)}.volr\\:py-12{padding-block:calc(var(--volr-spacing)*12)}.volr\\:pt-1{padding-top:calc(var(--volr-spacing)*1)}.volr\\:pt-2{padding-top:calc(var(--volr-spacing)*2)}.volr\\:pt-3{padding-top:calc(var(--volr-spacing)*3)}.volr\\:pt-4{padding-top:calc(var(--volr-spacing)*4)}.volr\\:pr-3{padding-right:calc(var(--volr-spacing)*3)}.volr\\:pr-16{padding-right:calc(var(--volr-spacing)*16)}.volr\\:pl-11{padding-left:calc(var(--volr-spacing)*11)}.volr\\:text-center{text-align:center}.volr\\:text-left{text-align:left}.volr\\:text-right{text-align:right}.volr\\:align-baseline{vertical-align:baseline}.volr\\:font-mono{font-family:var(--volr-font-mono)}.volr\\:text-2xl{font-size:var(--volr-text-2xl);line-height:var(--volr-tw-leading,var(--volr-text-2xl--line-height))}.volr\\:text-8xl{font-size:var(--volr-text-8xl);line-height:var(--volr-tw-leading,var(--volr-text-8xl--line-height))}.volr\\:text-base{font-size:var(--volr-text-base);line-height:var(--volr-tw-leading,var(--volr-text-base--line-height))}.volr\\:text-lg{font-size:var(--volr-text-lg);line-height:var(--volr-tw-leading,var(--volr-text-lg--line-height))}.volr\\:text-sm{font-size:var(--volr-text-sm);line-height:var(--volr-tw-leading,var(--volr-text-sm--line-height))}.volr\\:text-xl{font-size:var(--volr-text-xl);line-height:var(--volr-tw-leading,var(--volr-text-xl--line-height))}.volr\\:text-xs{font-size:var(--volr-text-xs);line-height:var(--volr-tw-leading,var(--volr-text-xs--line-height))}.volr\\:leading-relaxed{--volr-tw-leading:var(--volr-leading-relaxed);line-height:var(--volr-leading-relaxed)}.volr\\:font-bold{--volr-tw-font-weight:var(--volr-font-weight-bold);font-weight:var(--volr-font-weight-bold)}.volr\\:font-medium{--volr-tw-font-weight:var(--volr-font-weight-medium);font-weight:var(--volr-font-weight-medium)}.volr\\:font-semibold{--volr-tw-font-weight:var(--volr-font-weight-semibold);font-weight:var(--volr-font-weight-semibold)}.volr\\:tracking-tight{--volr-tw-tracking:var(--volr-tracking-tight);letter-spacing:var(--volr-tracking-tight)}.volr\\:tracking-wide{--volr-tw-tracking:var(--volr-tracking-wide);letter-spacing:var(--volr-tracking-wide)}.volr\\:tracking-wider{--volr-tw-tracking:var(--volr-tracking-wider);letter-spacing:var(--volr-tracking-wider)}.volr\\:break-all{word-break:break-all}.volr\\:text-amber-700{color:var(--volr-color-amber-700)}.volr\\:text-blue-700{color:var(--volr-color-blue-700)}.volr\\:text-emerald-600{color:var(--volr-color-emerald-600)}.volr\\:text-gray-500{color:var(--volr-color-gray-500)}.volr\\:text-green-600{color:var(--volr-color-green-600)}.volr\\:text-green-700{color:var(--volr-color-green-700)}.volr\\:text-red-500{color:var(--volr-color-red-500)}.volr\\:text-red-600{color:var(--volr-color-red-600)}.volr\\:text-red-700{color:var(--volr-color-red-700)}.volr\\:text-slate-300{color:var(--volr-color-slate-300)}.volr\\:text-slate-400{color:var(--volr-color-slate-400)}.volr\\:text-slate-500{color:var(--volr-color-slate-500)}.volr\\:text-slate-600{color:var(--volr-color-slate-600)}.volr\\:text-slate-700{color:var(--volr-color-slate-700)}.volr\\:text-slate-800{color:var(--volr-color-slate-800)}.volr\\:text-slate-900{color:var(--volr-color-slate-900)}.volr\\:text-white{color:var(--volr-color-white)}.volr\\:text-yellow-700{color:var(--volr-color-yellow-700)}.volr\\:capitalize{text-transform:capitalize}.volr\\:uppercase{text-transform:uppercase}.volr\\:underline{text-decoration-line:underline}.volr\\:underline-offset-4{text-underline-offset:4px}.volr\\:opacity-0{opacity:0}.volr\\:opacity-25{opacity:.25}.volr\\:opacity-30{opacity:.3}.volr\\:opacity-50{opacity:.5}.volr\\:opacity-70{opacity:.7}.volr\\:opacity-75{opacity:.75}.volr\\:opacity-80{opacity:.8}.volr\\:shadow-2xl{--volr-tw-shadow:0 25px 50px -12px var(--volr-tw-shadow-color,#00000040);box-shadow:var(--volr-tw-inset-shadow),var(--volr-tw-inset-ring-shadow),var(--volr-tw-ring-offset-shadow),var(--volr-tw-ring-shadow),var(--volr-tw-shadow)}.volr\\:shadow-lg{--volr-tw-shadow:0 10px 15px -3px var(--volr-tw-shadow-color,#0000001a),0 4px 6px -4px var(--volr-tw-shadow-color,#0000001a);box-shadow:var(--volr-tw-inset-shadow),var(--volr-tw-inset-ring-shadow),var(--volr-tw-ring-offset-shadow),var(--volr-tw-ring-shadow),var(--volr-tw-shadow)}.volr\\:shadow-sm{--volr-tw-shadow:0 1px 3px 0 var(--volr-tw-shadow-color,#0000001a),0 1px 2px -1px var(--volr-tw-shadow-color,#0000001a);box-shadow:var(--volr-tw-inset-shadow),var(--volr-tw-inset-ring-shadow),var(--volr-tw-ring-offset-shadow),var(--volr-tw-ring-shadow),var(--volr-tw-shadow)}.volr\\:shadow-xl{--volr-tw-shadow:0 20px 25px -5px var(--volr-tw-shadow-color,#0000001a),0 8px 10px -6px var(--volr-tw-shadow-color,#0000001a);box-shadow:var(--volr-tw-inset-shadow),var(--volr-tw-inset-ring-shadow),var(--volr-tw-ring-offset-shadow),var(--volr-tw-ring-shadow),var(--volr-tw-shadow)}.volr\\:shadow-emerald-500\\/50{--volr-tw-shadow-color:var(--volr-color-emerald-500)}@supports (color:color-mix(in lab, red, red)){.volr\\:shadow-emerald-500\\/50{--volr-tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--volr-color-emerald-500)50%,transparent)var(--volr-tw-shadow-alpha),transparent)}}.volr\\:blur-2xl{--volr-tw-blur:blur(var(--volr-blur-2xl));filter:var(--volr-tw-blur,)var(--volr-tw-brightness,)var(--volr-tw-contrast,)var(--volr-tw-grayscale,)var(--volr-tw-hue-rotate,)var(--volr-tw-invert,)var(--volr-tw-saturate,)var(--volr-tw-sepia,)var(--volr-tw-drop-shadow,)}.volr\\:transition-all{transition-property:all;transition-timing-function:var(--volr-tw-ease,var(--volr-default-transition-timing-function));transition-duration:var(--volr-tw-duration,var(--volr-default-transition-duration))}.volr\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--volr-tw-gradient-from,--volr-tw-gradient-via,--volr-tw-gradient-to;transition-timing-function:var(--volr-tw-ease,var(--volr-default-transition-timing-function));transition-duration:var(--volr-tw-duration,var(--volr-default-transition-duration))}.volr\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--volr-tw-ease,var(--volr-default-transition-timing-function));transition-duration:var(--volr-tw-duration,var(--volr-default-transition-duration))}.volr\\:duration-200{--volr-tw-duration:.2s;transition-duration:.2s}.volr\\:duration-300{--volr-tw-duration:.3s;transition-duration:.3s}.volr\\:duration-500{--volr-tw-duration:.5s;transition-duration:.5s}.volr\\:ease-out{--volr-tw-ease:var(--volr-ease-out);transition-timing-function:var(--volr-ease-out)}.volr\\:outline-none{--volr-tw-outline-style:none;outline-style:none}@media (hover:hover){.volr\\:hover\\:border-slate-300:hover{border-color:var(--volr-color-slate-300)}.volr\\:hover\\:bg-slate-50:hover{background-color:var(--volr-color-slate-50)}.volr\\:hover\\:bg-slate-200:hover{background-color:var(--volr-color-slate-200)}.volr\\:hover\\:text-slate-700:hover{color:var(--volr-color-slate-700)}}.volr\\:focus\\:ring-2:focus{--volr-tw-ring-shadow:var(--volr-tw-ring-inset,)0 0 0 calc(2px + var(--volr-tw-ring-offset-width))var(--volr-tw-ring-color,currentcolor);box-shadow:var(--volr-tw-inset-shadow),var(--volr-tw-inset-ring-shadow),var(--volr-tw-ring-offset-shadow),var(--volr-tw-ring-shadow),var(--volr-tw-shadow)}.volr\\:focus\\:ring-slate-300:focus{--volr-tw-ring-color:var(--volr-color-slate-300)}.volr\\:focus\\:outline-none:focus{--volr-tw-outline-style:none;outline-style:none}.volr\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.volr\\:disabled\\:bg-slate-100:disabled{background-color:var(--volr-color-slate-100)}.volr\\:disabled\\:text-slate-400:disabled{color:var(--volr-color-slate-400)}.volr\\:disabled\\:opacity-50:disabled{opacity:.5}.volr-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.volr-text-secondary{color:var(--volr-text-secondary)}.volr-text-muted{color:var(--volr-text-muted)}.volr-bg-secondary{background-color:var(--volr-bg-secondary)}.volr-bg-tertiary{background-color:var(--volr-bg-tertiary)}.volr-border{border-color:var(--volr-border)}.volr-border-strong{border-color:var(--volr-border-strong)}.volr-divider-line{background-color:var(--volr-border)}.volr-error{background-color:var(--volr-error-bg);border-color:var(--volr-error-border);color:var(--volr-error-text)}.volr-hint{background-color:var(--volr-hint-bg);border:1px solid var(--volr-hint-border);color:var(--volr-hint-text)}.volr-hover:hover{background-color:var(--volr-hover-bg)}.volr-surface{background-color:var(--volr-bg)}}@property --volr-tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --volr-tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --volr-tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --volr-tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --volr-tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --volr-tw-gradient-position{syntax:"*";inherits:false}@property --volr-tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --volr-tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --volr-tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --volr-tw-gradient-stops{syntax:"*";inherits:false}@property --volr-tw-gradient-via-stops{syntax:"*";inherits:false}@property --volr-tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --volr-tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --volr-tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --volr-tw-leading{syntax:"*";inherits:false}@property --volr-tw-font-weight{syntax:"*";inherits:false}@property --volr-tw-tracking{syntax:"*";inherits:false}@property --volr-tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --volr-tw-shadow-color{syntax:"*";inherits:false}@property --volr-tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --volr-tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --volr-tw-inset-shadow-color{syntax:"*";inherits:false}@property --volr-tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --volr-tw-ring-color{syntax:"*";inherits:false}@property --volr-tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --volr-tw-inset-ring-color{syntax:"*";inherits:false}@property --volr-tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --volr-tw-ring-inset{syntax:"*";inherits:false}@property --volr-tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --volr-tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --volr-tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --volr-tw-blur{syntax:"*";inherits:false}@property --volr-tw-brightness{syntax:"*";inherits:false}@property --volr-tw-contrast{syntax:"*";inherits:false}@property --volr-tw-grayscale{syntax:"*";inherits:false}@property --volr-tw-hue-rotate{syntax:"*";inherits:false}@property --volr-tw-invert{syntax:"*";inherits:false}@property --volr-tw-opacity{syntax:"*";inherits:false}@property --volr-tw-saturate{syntax:"*";inherits:false}@property --volr-tw-sepia{syntax:"*";inherits:false}@property --volr-tw-drop-shadow{syntax:"*";inherits:false}@property --volr-tw-drop-shadow-color{syntax:"*";inherits:false}@property --volr-tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --volr-tw-drop-shadow-size{syntax:"*";inherits:false}@property --volr-tw-duration{syntax:"*";inherits:false}@property --volr-tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}';
|
|
1194
1229
|
function useResolvedTheme(theme = "light") {
|
|
1195
1230
|
const [resolvedTheme, setResolvedTheme] = useState(() => {
|
|
1196
1231
|
if (theme !== "system") return theme;
|
|
@@ -4571,8 +4606,9 @@ function DepositQRView(props) {
|
|
|
4571
4606
|
delta: status.delta
|
|
4572
4607
|
});
|
|
4573
4608
|
setShowToast(true);
|
|
4609
|
+
props.onDepositDetected?.();
|
|
4574
4610
|
}
|
|
4575
|
-
}, [status]);
|
|
4611
|
+
}, [status, props.onDepositDetected]);
|
|
4576
4612
|
const getNetworkInfo = useCallback(
|
|
4577
4613
|
createGetNetworkInfo({ client, rpcOverrides: config.rpcOverrides }),
|
|
4578
4614
|
[client, config.rpcOverrides]
|
|
@@ -4741,7 +4777,8 @@ function DepositModalBody({
|
|
|
4741
4777
|
depositAssets,
|
|
4742
4778
|
evmAddress,
|
|
4743
4779
|
selectedIdx,
|
|
4744
|
-
onSelectIdx
|
|
4780
|
+
onSelectIdx,
|
|
4781
|
+
onDepositDetected
|
|
4745
4782
|
}) {
|
|
4746
4783
|
if (isLoading) return /* @__PURE__ */ jsx(DepositSkeleton, {});
|
|
4747
4784
|
if (error) {
|
|
@@ -4790,7 +4827,8 @@ function DepositModalBody({
|
|
|
4790
4827
|
chainId: depositAssets[0].chainId,
|
|
4791
4828
|
asset: depositAssets[0].token,
|
|
4792
4829
|
address: evmAddress,
|
|
4793
|
-
onBack: void 0
|
|
4830
|
+
onBack: void 0,
|
|
4831
|
+
onDepositDetected
|
|
4794
4832
|
}
|
|
4795
4833
|
);
|
|
4796
4834
|
}
|
|
@@ -4810,7 +4848,8 @@ function DepositModalBody({
|
|
|
4810
4848
|
chainId: selected.chainId,
|
|
4811
4849
|
asset: selected.token,
|
|
4812
4850
|
address: evmAddress,
|
|
4813
|
-
onBack: () => onSelectIdx(-1)
|
|
4851
|
+
onBack: () => onSelectIdx(-1),
|
|
4852
|
+
onDepositDetected
|
|
4814
4853
|
}
|
|
4815
4854
|
);
|
|
4816
4855
|
}
|
|
@@ -4863,7 +4902,10 @@ function AccountMainView({
|
|
|
4863
4902
|
isLoading,
|
|
4864
4903
|
onNavigate,
|
|
4865
4904
|
onLogout,
|
|
4866
|
-
isLoggingOut
|
|
4905
|
+
isLoggingOut,
|
|
4906
|
+
onRefresh,
|
|
4907
|
+
lastUpdatedAt,
|
|
4908
|
+
isRefreshing
|
|
4867
4909
|
}) {
|
|
4868
4910
|
const { t } = useI18n();
|
|
4869
4911
|
const formattedUsd = isLoading ? "\u2014" : totalUsd.toLocaleString("en-US", {
|
|
@@ -4872,21 +4914,50 @@ function AccountMainView({
|
|
|
4872
4914
|
minimumFractionDigits: 2,
|
|
4873
4915
|
maximumFractionDigits: 2
|
|
4874
4916
|
});
|
|
4917
|
+
const lastUpdatedLabel = lastUpdatedAt ? lastUpdatedAt.toLocaleTimeString(void 0, {
|
|
4918
|
+
hour: "2-digit",
|
|
4919
|
+
minute: "2-digit"
|
|
4920
|
+
}) : "\u2014";
|
|
4875
4921
|
return /* @__PURE__ */ jsxs("div", { className: "volr:flex volr:flex-col", style: { gap: "1rem" }, children: [
|
|
4876
4922
|
/* @__PURE__ */ jsxs("div", { className: "volr:rounded-2xl volr:border volr:border-slate-200 volr:bg-white volr:py-7 volr:shadow-sm", children: [
|
|
4877
4923
|
/* @__PURE__ */ jsx("p", { className: "volr:text-xs volr:font-medium volr:uppercase volr:tracking-wider volr:text-slate-500 volr:mb-3 volr:text-center", children: t("account.totalBalance") }),
|
|
4878
4924
|
isLoading ? /* @__PURE__ */ jsx("div", { className: "volr:animate-pulse volr:text-center volr:w-full", children: /* @__PURE__ */ jsx("div", { className: "volr:h-16 volr:w-48 volr:bg-slate-200 volr:rounded-lg" }) }) : /* @__PURE__ */ jsx(
|
|
4879
4925
|
"p",
|
|
4880
4926
|
{
|
|
4881
|
-
className: "volr:
|
|
4882
|
-
style: {
|
|
4883
|
-
fontSize: "3rem",
|
|
4884
|
-
lineHeight: "1",
|
|
4885
|
-
fontWeight: 600
|
|
4886
|
-
},
|
|
4927
|
+
className: "volr:font-semibold volr:text-slate-900 volr:tracking-tight volr:text-center",
|
|
4928
|
+
style: { fontSize: "3rem" },
|
|
4887
4929
|
children: formattedUsd
|
|
4888
4930
|
}
|
|
4889
|
-
)
|
|
4931
|
+
),
|
|
4932
|
+
/* @__PURE__ */ jsxs("div", { className: "volr:mt-4 volr:flex volr:items-center volr:justify-center volr:gap-2 volr:text-xs volr:text-slate-400", children: [
|
|
4933
|
+
/* @__PURE__ */ jsx("span", { children: t("account.lastUpdated", { time: lastUpdatedLabel }) }),
|
|
4934
|
+
/* @__PURE__ */ jsx(
|
|
4935
|
+
"button",
|
|
4936
|
+
{
|
|
4937
|
+
type: "button",
|
|
4938
|
+
onClick: onRefresh,
|
|
4939
|
+
disabled: isRefreshing,
|
|
4940
|
+
"aria-label": t("account.refresh"),
|
|
4941
|
+
className: "volr:inline-flex volr:items-center volr:justify-center volr:rounded-full volr:p-1 volr:text-slate-400 hover:volr:text-slate-600 hover:volr:bg-slate-100 disabled:volr:opacity-50",
|
|
4942
|
+
children: /* @__PURE__ */ jsxs(
|
|
4943
|
+
"svg",
|
|
4944
|
+
{
|
|
4945
|
+
className: `volr:w-3.5 volr:h-3.5 ${isRefreshing ? "volr:animate-spin" : ""}`,
|
|
4946
|
+
viewBox: "0 0 24 24",
|
|
4947
|
+
fill: "none",
|
|
4948
|
+
stroke: "currentColor",
|
|
4949
|
+
strokeWidth: "1.8",
|
|
4950
|
+
strokeLinecap: "round",
|
|
4951
|
+
strokeLinejoin: "round",
|
|
4952
|
+
children: [
|
|
4953
|
+
/* @__PURE__ */ jsx("path", { d: "M21 12a9 9 0 1 1-2.64-6.36" }),
|
|
4954
|
+
/* @__PURE__ */ jsx("polyline", { points: "21 3 21 9 15 9" })
|
|
4955
|
+
]
|
|
4956
|
+
}
|
|
4957
|
+
)
|
|
4958
|
+
}
|
|
4959
|
+
)
|
|
4960
|
+
] })
|
|
4890
4961
|
] }),
|
|
4891
4962
|
/* @__PURE__ */ jsxs("div", { className: "volr:flex volr:gap-2", children: [
|
|
4892
4963
|
/* @__PURE__ */ jsx(
|
|
@@ -5016,20 +5087,49 @@ function WithdrawView({
|
|
|
5016
5087
|
}) {
|
|
5017
5088
|
const { t } = useI18n();
|
|
5018
5089
|
const { withdraw, isWithdrawing, result, error, reset } = useWithdraw();
|
|
5090
|
+
const { client } = useInternalAuth();
|
|
5019
5091
|
const [step, setStep] = useState("select");
|
|
5020
5092
|
const [selectedTokenId, setSelectedTokenId] = useState(null);
|
|
5021
5093
|
const [toAddress, setToAddress] = useState("");
|
|
5022
5094
|
const [amount, setAmount] = useState("");
|
|
5023
5095
|
const [useConnectedWallet, setUseConnectedWallet] = useState(false);
|
|
5096
|
+
const [blockExplorerUrl, setBlockExplorerUrl] = useState(null);
|
|
5024
5097
|
const selectedToken = useMemo(
|
|
5025
5098
|
() => balances.find((b) => b.id === selectedTokenId),
|
|
5026
5099
|
[balances, selectedTokenId]
|
|
5027
5100
|
);
|
|
5101
|
+
const selectedChainId = selectedToken?.chainId ?? null;
|
|
5028
5102
|
const connectedAddress = useMemo(() => {
|
|
5029
5103
|
if (!connectedWallet) return null;
|
|
5030
5104
|
const parts = connectedWallet.split(":");
|
|
5031
5105
|
return parts.length >= 2 ? parts[1] : null;
|
|
5032
5106
|
}, [connectedWallet]);
|
|
5107
|
+
useEffect(() => {
|
|
5108
|
+
if (!selectedChainId) {
|
|
5109
|
+
setBlockExplorerUrl(null);
|
|
5110
|
+
return;
|
|
5111
|
+
}
|
|
5112
|
+
let cancelled = false;
|
|
5113
|
+
client.get(
|
|
5114
|
+
`/networks/${selectedChainId}?includeWalletConfig=true`
|
|
5115
|
+
).then((response) => {
|
|
5116
|
+
if (!cancelled) {
|
|
5117
|
+
setBlockExplorerUrl(response.blockExplorerUrl ?? null);
|
|
5118
|
+
}
|
|
5119
|
+
}).catch(() => {
|
|
5120
|
+
if (!cancelled) {
|
|
5121
|
+
setBlockExplorerUrl(null);
|
|
5122
|
+
}
|
|
5123
|
+
});
|
|
5124
|
+
return () => {
|
|
5125
|
+
cancelled = true;
|
|
5126
|
+
};
|
|
5127
|
+
}, [client, selectedChainId]);
|
|
5128
|
+
const explorerTxUrl = useMemo(() => {
|
|
5129
|
+
if (!blockExplorerUrl || !result?.txHash) return null;
|
|
5130
|
+
const trimmedBase = blockExplorerUrl.replace(/\/$/, "");
|
|
5131
|
+
return `${trimmedBase}/tx/${result.txHash}`;
|
|
5132
|
+
}, [blockExplorerUrl, result?.txHash]);
|
|
5033
5133
|
const handleSelectToken = (tokenId) => {
|
|
5034
5134
|
setSelectedTokenId(tokenId);
|
|
5035
5135
|
setStep("input");
|
|
@@ -5182,9 +5282,68 @@ function WithdrawView({
|
|
|
5182
5282
|
] });
|
|
5183
5283
|
}
|
|
5184
5284
|
if (step === "confirm" && selectedToken) {
|
|
5185
|
-
return /* @__PURE__ */ jsxs("div", { className: "volr:py-8 volr:
|
|
5186
|
-
/* @__PURE__ */ jsx("div", { className: "volr:
|
|
5187
|
-
|
|
5285
|
+
return /* @__PURE__ */ jsxs("div", { className: "volr:py-8 volr:px-4", children: [
|
|
5286
|
+
/* @__PURE__ */ jsx("div", { className: "volr:flex volr:justify-center volr:mb-6", children: /* @__PURE__ */ jsxs("div", { className: "volr:relative", children: [
|
|
5287
|
+
/* @__PURE__ */ jsx(
|
|
5288
|
+
"div",
|
|
5289
|
+
{
|
|
5290
|
+
className: "volr:w-16 volr:h-16 volr:rounded-full volr:border-2 volr:border-slate-200",
|
|
5291
|
+
style: {
|
|
5292
|
+
borderTopColor: "#1e293b",
|
|
5293
|
+
animation: "volrSpin 1.2s linear infinite"
|
|
5294
|
+
}
|
|
5295
|
+
}
|
|
5296
|
+
),
|
|
5297
|
+
/* @__PURE__ */ jsx("div", { className: "volr:absolute volr:inset-0 volr:flex volr:items-center volr:justify-center", children: /* @__PURE__ */ jsx(
|
|
5298
|
+
"div",
|
|
5299
|
+
{
|
|
5300
|
+
className: "volr:w-8 volr:h-8 volr:rounded-full volr:bg-slate-900 volr:flex volr:items-center volr:justify-center",
|
|
5301
|
+
style: { animation: "volrPulse 2s ease-in-out infinite" },
|
|
5302
|
+
children: /* @__PURE__ */ jsxs(
|
|
5303
|
+
"svg",
|
|
5304
|
+
{
|
|
5305
|
+
width: "16",
|
|
5306
|
+
height: "16",
|
|
5307
|
+
viewBox: "0 0 24 24",
|
|
5308
|
+
fill: "none",
|
|
5309
|
+
stroke: "white",
|
|
5310
|
+
strokeWidth: "2",
|
|
5311
|
+
strokeLinecap: "round",
|
|
5312
|
+
strokeLinejoin: "round",
|
|
5313
|
+
children: [
|
|
5314
|
+
/* @__PURE__ */ jsx("path", { d: "M7 17L17 7" }),
|
|
5315
|
+
/* @__PURE__ */ jsx("path", { d: "M7 7h10v10" })
|
|
5316
|
+
]
|
|
5317
|
+
}
|
|
5318
|
+
)
|
|
5319
|
+
}
|
|
5320
|
+
) })
|
|
5321
|
+
] }) }),
|
|
5322
|
+
/* @__PURE__ */ jsxs("div", { className: "volr:text-center volr:mb-5", children: [
|
|
5323
|
+
/* @__PURE__ */ jsx("p", { className: "volr:text-lg volr:font-semibold volr:text-slate-900 volr:mb-1", children: t("account.withdraw.processing") }),
|
|
5324
|
+
/* @__PURE__ */ jsx("p", { className: "volr:text-sm volr:text-slate-500", children: t("account.withdraw.processingHint") })
|
|
5325
|
+
] }),
|
|
5326
|
+
/* @__PURE__ */ jsx(ProgressSteps, { totalSteps: 3, currentStep: 1 }),
|
|
5327
|
+
explorerTxUrl && /* @__PURE__ */ jsx("div", { className: "volr:mt-4 volr:text-center", children: /* @__PURE__ */ jsx(
|
|
5328
|
+
"a",
|
|
5329
|
+
{
|
|
5330
|
+
href: explorerTxUrl,
|
|
5331
|
+
target: "_blank",
|
|
5332
|
+
rel: "noreferrer",
|
|
5333
|
+
className: "volr:text-xs volr:text-slate-500 hover:volr:text-slate-700 volr:underline",
|
|
5334
|
+
children: t("account.withdraw.viewOnExplorer")
|
|
5335
|
+
}
|
|
5336
|
+
) }),
|
|
5337
|
+
/* @__PURE__ */ jsx("style", { children: `
|
|
5338
|
+
@keyframes volrSpin {
|
|
5339
|
+
from { transform: rotate(0deg); }
|
|
5340
|
+
to { transform: rotate(360deg); }
|
|
5341
|
+
}
|
|
5342
|
+
@keyframes volrPulse {
|
|
5343
|
+
0%, 100% { transform: scale(1); opacity: 1; }
|
|
5344
|
+
50% { transform: scale(0.95); opacity: 0.85; }
|
|
5345
|
+
}
|
|
5346
|
+
` })
|
|
5188
5347
|
] });
|
|
5189
5348
|
}
|
|
5190
5349
|
if (step === "result") {
|
|
@@ -5216,7 +5375,17 @@ function WithdrawView({
|
|
|
5216
5375
|
selectedToken?.symbol,
|
|
5217
5376
|
" ",
|
|
5218
5377
|
t("account.withdraw.sent")
|
|
5219
|
-
] })
|
|
5378
|
+
] }),
|
|
5379
|
+
explorerTxUrl && /* @__PURE__ */ jsx(
|
|
5380
|
+
"a",
|
|
5381
|
+
{
|
|
5382
|
+
href: explorerTxUrl,
|
|
5383
|
+
target: "_blank",
|
|
5384
|
+
rel: "noreferrer",
|
|
5385
|
+
className: "volr:inline-flex volr:items-center volr:gap-1 volr:text-xs volr:text-slate-500 hover:volr:text-slate-700 volr:underline volr:mb-6",
|
|
5386
|
+
children: t("account.withdraw.viewOnExplorer")
|
|
5387
|
+
}
|
|
5388
|
+
)
|
|
5220
5389
|
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5221
5390
|
/* @__PURE__ */ jsx("div", { className: "volr:w-12 volr:h-12 volr:rounded-full volr:bg-red-100 volr:flex volr:items-center volr:justify-center volr:mx-auto volr:mb-4", children: /* @__PURE__ */ jsx(
|
|
5222
5391
|
"svg",
|
|
@@ -5237,7 +5406,17 @@ function WithdrawView({
|
|
|
5237
5406
|
}
|
|
5238
5407
|
) }),
|
|
5239
5408
|
/* @__PURE__ */ jsx("p", { className: "volr:text-lg volr:font-semibold volr:text-slate-900 volr:mb-2", children: t("account.withdraw.failed") }),
|
|
5240
|
-
/* @__PURE__ */ jsx("p", { className: "volr:text-sm volr:text-red-500 volr:mb-6", children: error?.message || t("account.withdraw.unknownError") })
|
|
5409
|
+
/* @__PURE__ */ jsx("p", { className: "volr:text-sm volr:text-red-500 volr:mb-6", children: error?.message || t("account.withdraw.unknownError") }),
|
|
5410
|
+
explorerTxUrl && /* @__PURE__ */ jsx(
|
|
5411
|
+
"a",
|
|
5412
|
+
{
|
|
5413
|
+
href: explorerTxUrl,
|
|
5414
|
+
target: "_blank",
|
|
5415
|
+
rel: "noreferrer",
|
|
5416
|
+
className: "volr:inline-flex volr:items-center volr:gap-1 volr:text-xs volr:text-slate-500 hover:volr:text-slate-700 volr:underline volr:mb-6",
|
|
5417
|
+
children: t("account.withdraw.viewOnExplorer")
|
|
5418
|
+
}
|
|
5419
|
+
)
|
|
5241
5420
|
] }),
|
|
5242
5421
|
/* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: isSuccess ? onSuccess : handleReset, fullWidth: true, children: isSuccess ? t("common.done") : t("common.tryAgain") })
|
|
5243
5422
|
] });
|
|
@@ -5557,6 +5736,8 @@ function AccountSetupView({
|
|
|
5557
5736
|
] })
|
|
5558
5737
|
] });
|
|
5559
5738
|
}
|
|
5739
|
+
var REFRESH_INTERVAL_MS = 45e3;
|
|
5740
|
+
var MIN_REFRESH_GAP_MS = 4e3;
|
|
5560
5741
|
function AccountModal({ isOpen, onClose, onError }) {
|
|
5561
5742
|
const { user, logout } = useVolrContext();
|
|
5562
5743
|
const { balances, totalUsd, isLoading, paymentEnabled, refresh } = useUserBalances();
|
|
@@ -5564,13 +5745,40 @@ function AccountModal({ isOpen, onClose, onError }) {
|
|
|
5564
5745
|
const [currentView, setCurrentView] = useState("main");
|
|
5565
5746
|
const [selectedPayment, setSelectedPayment] = useState(null);
|
|
5566
5747
|
const [isLoggingOut, setIsLoggingOut] = useState(false);
|
|
5748
|
+
const [lastUpdatedAt, setLastUpdatedAt] = useState(null);
|
|
5749
|
+
const [isRefreshing, setIsRefreshing] = useState(false);
|
|
5567
5750
|
const prevUserRef = useRef(user ?? null);
|
|
5751
|
+
const refreshInFlightRef = useRef(false);
|
|
5752
|
+
const lastRefreshRef = useRef(0);
|
|
5568
5753
|
const [closingAfterLogin, setClosingAfterLogin] = useState(false);
|
|
5569
5754
|
const [setupStep, setSetupStep] = useState("prompt");
|
|
5570
5755
|
const [depositAssets, setDepositAssets] = useState([]);
|
|
5571
5756
|
const [depositLoading, setDepositLoading] = useState(false);
|
|
5572
5757
|
const [depositError, setDepositError] = useState(null);
|
|
5573
5758
|
const [depositSelectedIdx, setDepositSelectedIdx] = useState(-1);
|
|
5759
|
+
const refreshBalances = useCallback(async () => {
|
|
5760
|
+
if (!isOpen) return;
|
|
5761
|
+
const now = Date.now();
|
|
5762
|
+
if (refreshInFlightRef.current) return;
|
|
5763
|
+
if (now - lastRefreshRef.current < MIN_REFRESH_GAP_MS) return;
|
|
5764
|
+
refreshInFlightRef.current = true;
|
|
5765
|
+
setIsRefreshing(true);
|
|
5766
|
+
try {
|
|
5767
|
+
await refresh();
|
|
5768
|
+
lastRefreshRef.current = Date.now();
|
|
5769
|
+
setLastUpdatedAt(/* @__PURE__ */ new Date());
|
|
5770
|
+
} catch (error) {
|
|
5771
|
+
console.error(
|
|
5772
|
+
`[AccountModal] Failed to refresh balances: ${error instanceof Error ? error.message : String(error)}`
|
|
5773
|
+
);
|
|
5774
|
+
} finally {
|
|
5775
|
+
refreshInFlightRef.current = false;
|
|
5776
|
+
setIsRefreshing(false);
|
|
5777
|
+
}
|
|
5778
|
+
}, [isOpen, refresh]);
|
|
5779
|
+
const handleManualRefresh = useCallback(() => {
|
|
5780
|
+
void refreshBalances();
|
|
5781
|
+
}, [refreshBalances]);
|
|
5574
5782
|
useEffect(() => {
|
|
5575
5783
|
if (currentView !== "deposit" || !isOpen) return;
|
|
5576
5784
|
setDepositLoading(true);
|
|
@@ -5588,6 +5796,33 @@ function AccountModal({ isOpen, onClose, onError }) {
|
|
|
5588
5796
|
setDepositLoading(false);
|
|
5589
5797
|
});
|
|
5590
5798
|
}, [currentView, isOpen, client]);
|
|
5799
|
+
useEffect(() => {
|
|
5800
|
+
if (!isOpen) return;
|
|
5801
|
+
void refreshBalances();
|
|
5802
|
+
}, [isOpen, currentView, refreshBalances]);
|
|
5803
|
+
useEffect(() => {
|
|
5804
|
+
if (!isOpen || typeof document === "undefined") return;
|
|
5805
|
+
const handleFocus = () => {
|
|
5806
|
+
if (document.visibilityState === "visible") {
|
|
5807
|
+
void refreshBalances();
|
|
5808
|
+
}
|
|
5809
|
+
};
|
|
5810
|
+
window.addEventListener("focus", handleFocus);
|
|
5811
|
+
document.addEventListener("visibilitychange", handleFocus);
|
|
5812
|
+
return () => {
|
|
5813
|
+
window.removeEventListener("focus", handleFocus);
|
|
5814
|
+
document.removeEventListener("visibilitychange", handleFocus);
|
|
5815
|
+
};
|
|
5816
|
+
}, [isOpen, refreshBalances]);
|
|
5817
|
+
useEffect(() => {
|
|
5818
|
+
if (!isOpen) return;
|
|
5819
|
+
const intervalId = window.setInterval(() => {
|
|
5820
|
+
void refreshBalances();
|
|
5821
|
+
}, REFRESH_INTERVAL_MS);
|
|
5822
|
+
return () => {
|
|
5823
|
+
clearInterval(intervalId);
|
|
5824
|
+
};
|
|
5825
|
+
}, [isOpen, refreshBalances]);
|
|
5591
5826
|
const handleOpenChange = useCallback((open) => {
|
|
5592
5827
|
if (!open) {
|
|
5593
5828
|
onClose();
|
|
@@ -5695,7 +5930,7 @@ function AccountModal({ isOpen, onClose, onError }) {
|
|
|
5695
5930
|
setSelectedPayment(payment);
|
|
5696
5931
|
};
|
|
5697
5932
|
const handleWithdrawSuccess = () => {
|
|
5698
|
-
|
|
5933
|
+
void refreshBalances();
|
|
5699
5934
|
setCurrentView("main");
|
|
5700
5935
|
};
|
|
5701
5936
|
const showBack = currentView !== "main" || selectedPayment !== null;
|
|
@@ -5712,7 +5947,10 @@ function AccountModal({ isOpen, onClose, onError }) {
|
|
|
5712
5947
|
isLoading,
|
|
5713
5948
|
onNavigate: handleNavigate,
|
|
5714
5949
|
onLogout: handleLogout,
|
|
5715
|
-
isLoggingOut
|
|
5950
|
+
isLoggingOut,
|
|
5951
|
+
onRefresh: handleManualRefresh,
|
|
5952
|
+
lastUpdatedAt,
|
|
5953
|
+
isRefreshing
|
|
5716
5954
|
}
|
|
5717
5955
|
);
|
|
5718
5956
|
case "assets":
|
|
@@ -5726,7 +5964,8 @@ function AccountModal({ isOpen, onClose, onError }) {
|
|
|
5726
5964
|
depositAssets,
|
|
5727
5965
|
evmAddress: user.evmAddress,
|
|
5728
5966
|
selectedIdx: depositSelectedIdx,
|
|
5729
|
-
onSelectIdx: setDepositSelectedIdx
|
|
5967
|
+
onSelectIdx: setDepositSelectedIdx,
|
|
5968
|
+
onDepositDetected: handleManualRefresh
|
|
5730
5969
|
}
|
|
5731
5970
|
);
|
|
5732
5971
|
case "withdraw":
|
|
@@ -5954,7 +6193,7 @@ function paymentModalReducer(state, action) {
|
|
|
5954
6193
|
}
|
|
5955
6194
|
}
|
|
5956
6195
|
function usePaymentModalState(open, onOpenChange) {
|
|
5957
|
-
const { user } = useVolrContext();
|
|
6196
|
+
const { user, setUser } = useVolrContext();
|
|
5958
6197
|
const { client } = useInternalAuth();
|
|
5959
6198
|
const { evm } = useVolr();
|
|
5960
6199
|
const { paymentOptions } = useVolrModal();
|
|
@@ -6096,9 +6335,25 @@ function usePaymentModalState(open, onOpenChange) {
|
|
|
6096
6335
|
const handleChooseCreateAccount = useCallback(() => {
|
|
6097
6336
|
dispatch({ type: "SHOW_WALLET", walletStep: "create-account" });
|
|
6098
6337
|
}, []);
|
|
6338
|
+
const saveExternalWalletPreference = useCallback(async () => {
|
|
6339
|
+
if (!user?.id) return;
|
|
6340
|
+
if (user.externalWalletPreferred) return;
|
|
6341
|
+
try {
|
|
6342
|
+
const result = await client.post(
|
|
6343
|
+
"/users/me/preferences",
|
|
6344
|
+
{ externalWalletPreferred: true }
|
|
6345
|
+
);
|
|
6346
|
+
const updated = result?.externalWalletPreferred ?? true;
|
|
6347
|
+
setUser({ ...user, externalWalletPreferred: updated });
|
|
6348
|
+
} catch (err) {
|
|
6349
|
+
console.warn("[PaymentModal] Failed to save external wallet preference:", err);
|
|
6350
|
+
setUser({ ...user, externalWalletPreferred: true });
|
|
6351
|
+
}
|
|
6352
|
+
}, [client, user, setUser]);
|
|
6099
6353
|
const handleChooseExternalWallet = useCallback(() => {
|
|
6354
|
+
void saveExternalWalletPreference();
|
|
6100
6355
|
dispatch({ type: "SHOW_WALLET", walletStep: "external-wallet" });
|
|
6101
|
-
}, []);
|
|
6356
|
+
}, [saveExternalWalletPreference]);
|
|
6102
6357
|
const handlePay = useCallback(async () => {
|
|
6103
6358
|
const { payOptions, receiverAddress, selectedTokenId } = state;
|
|
6104
6359
|
if (!payOptions || !paymentOptions || !receiverAddress || !selectedTokenId) {
|
|
@@ -6704,9 +6959,15 @@ var PaymentInfoView = ({
|
|
|
6704
6959
|
logoUrl,
|
|
6705
6960
|
onPay,
|
|
6706
6961
|
onDeposit,
|
|
6962
|
+
onChooseCreateAccount,
|
|
6963
|
+
onChooseExternalWallet,
|
|
6707
6964
|
isPaying,
|
|
6708
6965
|
isBalanceLoading,
|
|
6709
|
-
disableBalanceCheck = false
|
|
6966
|
+
disableBalanceCheck = false,
|
|
6967
|
+
walletChoiceMode = false,
|
|
6968
|
+
showExternalWallet = false,
|
|
6969
|
+
createAccountLabel = "Create wallet",
|
|
6970
|
+
externalWalletLabel = "Use my wallet"
|
|
6710
6971
|
}) => {
|
|
6711
6972
|
const selectedToken = tokens.find((t) => t.id === selectedTokenId);
|
|
6712
6973
|
const tokenSymbol = selectedToken?.symbol ?? "";
|
|
@@ -6762,7 +7023,18 @@ var PaymentInfoView = ({
|
|
|
6762
7023
|
isInsufficient: !!isInsufficient
|
|
6763
7024
|
}
|
|
6764
7025
|
) }),
|
|
6765
|
-
/* @__PURE__ */
|
|
7026
|
+
/* @__PURE__ */ jsx("div", { className: "volr:space-y-3", children: walletChoiceMode ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7027
|
+
/* @__PURE__ */ jsx(Button, { onClick: onChooseCreateAccount, className: "volr:w-full", children: createAccountLabel }),
|
|
7028
|
+
showExternalWallet && /* @__PURE__ */ jsx(
|
|
7029
|
+
Button,
|
|
7030
|
+
{
|
|
7031
|
+
variant: "secondary",
|
|
7032
|
+
onClick: onChooseExternalWallet,
|
|
7033
|
+
className: "volr:w-full",
|
|
7034
|
+
children: externalWalletLabel
|
|
7035
|
+
}
|
|
7036
|
+
)
|
|
7037
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6766
7038
|
/* @__PURE__ */ jsx(
|
|
6767
7039
|
Button,
|
|
6768
7040
|
{
|
|
@@ -6799,8 +7071,18 @@ var PaymentInfoView = ({
|
|
|
6799
7071
|
isInsufficient && selectedToken && !disableBalanceCheck && /* @__PURE__ */ jsxs(Button, { variant: "secondary", onClick: onDeposit, className: "volr:w-full", children: [
|
|
6800
7072
|
"Deposit ",
|
|
6801
7073
|
tokenSymbol
|
|
6802
|
-
] })
|
|
6803
|
-
|
|
7074
|
+
] }),
|
|
7075
|
+
showExternalWallet && /* @__PURE__ */ jsx(
|
|
7076
|
+
Button,
|
|
7077
|
+
{
|
|
7078
|
+
variant: "ghost",
|
|
7079
|
+
size: "sm",
|
|
7080
|
+
onClick: onChooseExternalWallet,
|
|
7081
|
+
className: "volr:w-full volr:underline volr:underline-offset-4",
|
|
7082
|
+
children: externalWalletLabel
|
|
7083
|
+
}
|
|
7084
|
+
)
|
|
7085
|
+
] }) }),
|
|
6804
7086
|
/* @__PURE__ */ jsx(PoweredBy, {})
|
|
6805
7087
|
] });
|
|
6806
7088
|
};
|
|
@@ -6989,6 +7271,7 @@ var PaymentResultView = ({
|
|
|
6989
7271
|
};
|
|
6990
7272
|
function PaymentWalletChoiceView({
|
|
6991
7273
|
isExternalWalletEnabled,
|
|
7274
|
+
showExternalWallet = true,
|
|
6992
7275
|
externalWalletDisabledReason,
|
|
6993
7276
|
onChooseExternalWallet,
|
|
6994
7277
|
onChooseCreateAccount
|
|
@@ -7000,17 +7283,19 @@ function PaymentWalletChoiceView({
|
|
|
7000
7283
|
/* @__PURE__ */ jsx("p", { className: "volr:text-sm volr:text-slate-600 volr:leading-relaxed", children: t("payment.walletChoice.description") })
|
|
7001
7284
|
] }),
|
|
7002
7285
|
/* @__PURE__ */ jsxs("div", { className: "volr:flex volr:flex-col volr:gap-2", children: [
|
|
7003
|
-
/* @__PURE__ */
|
|
7004
|
-
|
|
7005
|
-
|
|
7006
|
-
|
|
7007
|
-
|
|
7008
|
-
|
|
7009
|
-
|
|
7010
|
-
|
|
7011
|
-
|
|
7012
|
-
|
|
7013
|
-
|
|
7286
|
+
showExternalWallet && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7287
|
+
/* @__PURE__ */ jsx(
|
|
7288
|
+
Button,
|
|
7289
|
+
{
|
|
7290
|
+
className: "volr:w-full",
|
|
7291
|
+
variant: "secondary",
|
|
7292
|
+
onClick: onChooseExternalWallet,
|
|
7293
|
+
disabled: !isExternalWalletEnabled,
|
|
7294
|
+
children: t("payment.walletChoice.externalCta")
|
|
7295
|
+
}
|
|
7296
|
+
),
|
|
7297
|
+
!isExternalWalletEnabled && externalWalletDisabledReason && /* @__PURE__ */ jsx("p", { className: "volr:text-xs volr:text-slate-500 volr:leading-relaxed", children: externalWalletDisabledReason })
|
|
7298
|
+
] }),
|
|
7014
7299
|
/* @__PURE__ */ jsx(Button, { className: "volr:w-full", onClick: onChooseCreateAccount, children: t("payment.walletChoice.createAccountCta") })
|
|
7015
7300
|
] })
|
|
7016
7301
|
] });
|
|
@@ -7124,7 +7409,8 @@ var PaymentModal = ({
|
|
|
7124
7409
|
onOpenChange
|
|
7125
7410
|
}) => {
|
|
7126
7411
|
const { t } = useI18n();
|
|
7127
|
-
const { user } = useVolrContext();
|
|
7412
|
+
const { user, config } = useVolrContext();
|
|
7413
|
+
const { allowExternalWalletPayment } = useVolrUI();
|
|
7128
7414
|
const { paymentOptions } = useVolrModal();
|
|
7129
7415
|
const {
|
|
7130
7416
|
state,
|
|
@@ -7160,6 +7446,11 @@ var PaymentModal = ({
|
|
|
7160
7446
|
showDeposit,
|
|
7161
7447
|
walletStep
|
|
7162
7448
|
} = state;
|
|
7449
|
+
const requiresVolrWallet = config.walletPolicy?.requireVolrWalletOnLogin ?? true;
|
|
7450
|
+
const hasVolrWallet = Boolean(user?.evmAddress);
|
|
7451
|
+
const externalWalletAllowed = allowExternalWalletPayment && !requiresVolrWallet;
|
|
7452
|
+
const externalWalletTokenSupported = selectedToken && selectedToken.address !== "native" && selectedToken.permitSupported === true;
|
|
7453
|
+
const showExternalWalletOption = externalWalletAllowed && externalWalletTokenSupported;
|
|
7163
7454
|
if (showDeposit && selectedToken) {
|
|
7164
7455
|
return /* @__PURE__ */ jsx(
|
|
7165
7456
|
DepositModal,
|
|
@@ -7210,14 +7501,20 @@ var PaymentModal = ({
|
|
|
7210
7501
|
onDeposit: handleDeposit,
|
|
7211
7502
|
isPaying,
|
|
7212
7503
|
isBalanceLoading,
|
|
7213
|
-
disableBalanceCheck: !user?.evmAddress
|
|
7504
|
+
disableBalanceCheck: !user?.evmAddress,
|
|
7505
|
+
walletChoiceMode: !hasVolrWallet,
|
|
7506
|
+
onChooseCreateAccount: handleChooseCreateAccount,
|
|
7507
|
+
onChooseExternalWallet: handleChooseExternalWallet,
|
|
7508
|
+
showExternalWallet: showExternalWalletOption,
|
|
7509
|
+
createAccountLabel: t("payment.walletChoice.createAccountCta"),
|
|
7510
|
+
externalWalletLabel: t("payment.walletChoice.externalInlineCta")
|
|
7214
7511
|
}
|
|
7215
7512
|
),
|
|
7216
7513
|
step === "wallet" && walletStep === "choice" && selectedToken && /* @__PURE__ */ jsx(
|
|
7217
7514
|
PaymentWalletChoiceView,
|
|
7218
7515
|
{
|
|
7219
|
-
isExternalWalletEnabled:
|
|
7220
|
-
|
|
7516
|
+
isExternalWalletEnabled: showExternalWalletOption,
|
|
7517
|
+
showExternalWallet: showExternalWalletOption,
|
|
7221
7518
|
onChooseExternalWallet: handleChooseExternalWallet,
|
|
7222
7519
|
onChooseCreateAccount: handleChooseCreateAccount
|
|
7223
7520
|
}
|
|
@@ -7685,23 +7982,25 @@ var VolrUIProvider = ({
|
|
|
7685
7982
|
enabledLoginMethods = ["email", "social", "siwe"],
|
|
7686
7983
|
socialProviders = ["google", "twitter"],
|
|
7687
7984
|
branding,
|
|
7688
|
-
keyStorageType = "passkey"
|
|
7985
|
+
keyStorageType = "passkey",
|
|
7986
|
+
allowedLocales,
|
|
7987
|
+
allowExternalWalletPayment = false
|
|
7689
7988
|
} = config;
|
|
7690
|
-
const
|
|
7691
|
-
|
|
7989
|
+
const walletPolicy = config.walletPolicy ?? {
|
|
7990
|
+
requireVolrWalletOnLogin: true
|
|
7692
7991
|
};
|
|
7693
7992
|
const [keyStorageTypeError, setKeyStorageTypeError] = useState(
|
|
7694
7993
|
null
|
|
7695
7994
|
);
|
|
7696
7995
|
useEffect(() => {
|
|
7697
|
-
if (
|
|
7996
|
+
if (walletPolicy.requireVolrWalletOnLogin !== false && !keyStorageType) {
|
|
7698
7997
|
const errorMessage = "keyStorageType must be specified in VolrUIProvider props. Please set keyStorageType prop in VolrUIProvider.";
|
|
7699
7998
|
console.error(errorMessage);
|
|
7700
7999
|
setKeyStorageTypeError(errorMessage);
|
|
7701
8000
|
} else {
|
|
7702
8001
|
setKeyStorageTypeError(null);
|
|
7703
8002
|
}
|
|
7704
|
-
}, [keyStorageType,
|
|
8003
|
+
}, [keyStorageType, walletPolicy.requireVolrWalletOnLogin]);
|
|
7705
8004
|
if (keyStorageTypeError) {
|
|
7706
8005
|
return /* @__PURE__ */ jsx(Modal, { open: true, onOpenChange: () => {
|
|
7707
8006
|
}, children: /* @__PURE__ */ jsxs("div", { className: "volr:max-w-md volr:mx-auto", children: [
|
|
@@ -7720,7 +8019,9 @@ var VolrUIProvider = ({
|
|
|
7720
8019
|
socialProviders,
|
|
7721
8020
|
branding,
|
|
7722
8021
|
keyStorageType,
|
|
7723
|
-
|
|
8022
|
+
allowedLocales,
|
|
8023
|
+
walletPolicy,
|
|
8024
|
+
allowExternalWalletPayment,
|
|
7724
8025
|
children
|
|
7725
8026
|
}
|
|
7726
8027
|
) }) });
|
|
@@ -7734,7 +8035,9 @@ function VolrUIProviderInner({
|
|
|
7734
8035
|
socialProviders,
|
|
7735
8036
|
branding,
|
|
7736
8037
|
keyStorageType,
|
|
7737
|
-
|
|
8038
|
+
allowedLocales,
|
|
8039
|
+
walletPolicy,
|
|
8040
|
+
allowExternalWalletPayment,
|
|
7738
8041
|
children
|
|
7739
8042
|
}) {
|
|
7740
8043
|
const [showOnboarding, setShowOnboarding] = useState(false);
|
|
@@ -7752,7 +8055,7 @@ function VolrUIProviderInner({
|
|
|
7752
8055
|
}
|
|
7753
8056
|
}
|
|
7754
8057
|
};
|
|
7755
|
-
return /* @__PURE__ */ jsx(VolrProvider, { config: configWithSignRequest, children: /* @__PURE__ */ jsx(I18nProvider, { children: /* @__PURE__ */ jsx(
|
|
8058
|
+
return /* @__PURE__ */ jsx(VolrProvider, { config: configWithSignRequest, children: /* @__PURE__ */ jsx(I18nProvider, { allowedLocales, children: /* @__PURE__ */ jsx(
|
|
7756
8059
|
VolrUIContext.Provider,
|
|
7757
8060
|
{
|
|
7758
8061
|
value: {
|
|
@@ -7762,7 +8065,8 @@ function VolrUIProviderInner({
|
|
|
7762
8065
|
enabledLoginMethods,
|
|
7763
8066
|
socialProviders,
|
|
7764
8067
|
branding,
|
|
7765
|
-
keyStorageType
|
|
8068
|
+
keyStorageType,
|
|
8069
|
+
allowExternalWalletPayment
|
|
7766
8070
|
},
|
|
7767
8071
|
children: /* @__PURE__ */ jsxs(VolrModalProvider, { children: [
|
|
7768
8072
|
/* @__PURE__ */ jsx(WalletRequiredModal, {}),
|
|
@@ -7776,7 +8080,7 @@ function VolrUIProviderInner({
|
|
|
7776
8080
|
/* @__PURE__ */ jsx(
|
|
7777
8081
|
OAuthCallbackHandler,
|
|
7778
8082
|
{
|
|
7779
|
-
enforceSelection:
|
|
8083
|
+
enforceSelection: walletPolicy.requireVolrWalletOnLogin ?? true,
|
|
7780
8084
|
onShowOnboarding: () => setShowOnboarding(true)
|
|
7781
8085
|
}
|
|
7782
8086
|
),
|
|
@@ -7784,7 +8088,7 @@ function VolrUIProviderInner({
|
|
|
7784
8088
|
OnboardingChecker,
|
|
7785
8089
|
{
|
|
7786
8090
|
keyStorageType,
|
|
7787
|
-
enforceSelection:
|
|
8091
|
+
enforceSelection: walletPolicy.requireVolrWalletOnLogin ?? true,
|
|
7788
8092
|
onShowOnboarding: () => setShowOnboarding(true),
|
|
7789
8093
|
onHideOnboarding: () => setShowOnboarding(false)
|
|
7790
8094
|
}
|