@volr/react-ui 0.1.107 → 0.1.109
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +200 -233
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +61 -94
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var React12 = require('react');
|
|
4
4
|
var reactDom = require('react-dom');
|
|
5
5
|
var react = require('@volr/react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -10,7 +10,7 @@ var qrcode_react = require('qrcode.react');
|
|
|
10
10
|
|
|
11
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var React12__default = /*#__PURE__*/_interopDefault(React12);
|
|
14
14
|
|
|
15
15
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
16
16
|
var __esm = (fn, res) => function __init() {
|
|
@@ -618,13 +618,13 @@ var translations = {
|
|
|
618
618
|
function getTranslations(locale = "en") {
|
|
619
619
|
return translations[locale] || translations.en;
|
|
620
620
|
}
|
|
621
|
-
var I18nContext =
|
|
621
|
+
var I18nContext = React12.createContext(null);
|
|
622
622
|
function interpolate(text, params) {
|
|
623
623
|
if (!params) return text;
|
|
624
624
|
return text.replace(/\{\{(\w+)\}\}/g, (_, key) => params[key] ?? `{{${key}}}`);
|
|
625
625
|
}
|
|
626
626
|
function useI18n() {
|
|
627
|
-
const context =
|
|
627
|
+
const context = React12.useContext(I18nContext);
|
|
628
628
|
if (!context) {
|
|
629
629
|
return {
|
|
630
630
|
locale: "en",
|
|
@@ -659,9 +659,9 @@ function detectLocale() {
|
|
|
659
659
|
return lang.startsWith("ko") ? "ko" : "en";
|
|
660
660
|
}
|
|
661
661
|
function I18nProvider({ children }) {
|
|
662
|
-
const [locale, setLocale] =
|
|
663
|
-
const translations2 =
|
|
664
|
-
const t =
|
|
662
|
+
const [locale, setLocale] = React12.useState(detectLocale());
|
|
663
|
+
const translations2 = React12.useMemo(() => getTranslations(locale), [locale]);
|
|
664
|
+
const t = React12.useMemo(() => {
|
|
665
665
|
return (key, params) => {
|
|
666
666
|
const keys = key.split(".");
|
|
667
667
|
let value2 = translations2;
|
|
@@ -678,7 +678,7 @@ function I18nProvider({ children }) {
|
|
|
678
678
|
return typeof value2 === "string" ? interpolate(value2, params) : key;
|
|
679
679
|
};
|
|
680
680
|
}, [translations2]);
|
|
681
|
-
const value =
|
|
681
|
+
const value = React12.useMemo(
|
|
682
682
|
() => ({
|
|
683
683
|
locale,
|
|
684
684
|
translations: translations2,
|
|
@@ -690,9 +690,9 @@ function I18nProvider({ children }) {
|
|
|
690
690
|
return /* @__PURE__ */ jsxRuntime.jsx(I18nContext.Provider, { value, children });
|
|
691
691
|
}
|
|
692
692
|
var useTranslation = useI18n;
|
|
693
|
-
var VolrModalContext =
|
|
693
|
+
var VolrModalContext = React12.createContext(null);
|
|
694
694
|
var useVolrModal = () => {
|
|
695
|
-
const context =
|
|
695
|
+
const context = React12.useContext(VolrModalContext);
|
|
696
696
|
if (!context) {
|
|
697
697
|
throw new Error("useVolrModal must be used within VolrUIProvider");
|
|
698
698
|
}
|
|
@@ -701,17 +701,17 @@ var useVolrModal = () => {
|
|
|
701
701
|
var VolrModalProvider = ({
|
|
702
702
|
children
|
|
703
703
|
}) => {
|
|
704
|
-
const [isOpen, setIsOpen] =
|
|
705
|
-
const [mode, setMode] =
|
|
706
|
-
const [asset, setAsset] =
|
|
707
|
-
const [paymentOptions, setPaymentOptions] =
|
|
708
|
-
const open =
|
|
704
|
+
const [isOpen, setIsOpen] = React12.useState(false);
|
|
705
|
+
const [mode, setMode] = React12.useState("account");
|
|
706
|
+
const [asset, setAsset] = React12.useState(null);
|
|
707
|
+
const [paymentOptions, setPaymentOptions] = React12.useState(null);
|
|
708
|
+
const open = React12.useCallback((options) => {
|
|
709
709
|
setMode(options?.mode ?? "account");
|
|
710
710
|
setAsset(options?.asset ?? null);
|
|
711
711
|
setPaymentOptions(options?.payment ?? null);
|
|
712
712
|
setIsOpen(true);
|
|
713
713
|
}, []);
|
|
714
|
-
const close =
|
|
714
|
+
const close = React12.useCallback(() => {
|
|
715
715
|
setIsOpen(false);
|
|
716
716
|
setAsset(null);
|
|
717
717
|
setPaymentOptions(null);
|
|
@@ -725,11 +725,11 @@ function cn(...inputs) {
|
|
|
725
725
|
return twMerge(clsx.clsx(inputs));
|
|
726
726
|
}
|
|
727
727
|
function useMediaQuery(query) {
|
|
728
|
-
const [matches, setMatches] =
|
|
728
|
+
const [matches, setMatches] = React12.useState(() => {
|
|
729
729
|
if (typeof window === "undefined") return false;
|
|
730
730
|
return window.matchMedia(query).matches;
|
|
731
731
|
});
|
|
732
|
-
|
|
732
|
+
React12.useEffect(() => {
|
|
733
733
|
if (typeof window === "undefined") return;
|
|
734
734
|
const mql = window.matchMedia(query);
|
|
735
735
|
const handler = (event) => setMatches(event.matches);
|
|
@@ -741,14 +741,14 @@ function useMediaQuery(query) {
|
|
|
741
741
|
}
|
|
742
742
|
|
|
743
743
|
// src/generated/volr-sdk-css.ts
|
|
744
|
-
var VOLR_SDK_CSS = '/*! tailwindcss v4.1.17 | 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-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-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-orange-600:oklch(64.6% .222 41.116);--volr-color-green-50:oklch(98.2% .018 155.826);--volr-color-green-600:oklch(62.7% .194 149.214);--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-600:oklch(54.6% .245 262.881);--volr-color-purple-600:oklch(55.8% .288 302.321);--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-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-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-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}: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}*,: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-4{right:calc(var(--volr-spacing)*-4)}.volr\\:right-2{right:calc(var(--volr-spacing)*2)}.volr\\:bottom-0{bottom:calc(var(--volr-spacing)*0)}.volr\\:-left-4{left:calc(var(--volr-spacing)*-4)}.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\\:line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.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-36{max-height:calc(var(--volr-spacing)*36)}.volr\\:max-h-60{max-height:calc(var(--volr-spacing)*60)}.volr\\:max-h-96{max-height:calc(var(--volr-spacing)*96)}.volr\\:max-h-\\[85vh\\]{max-height:85vh}.volr\\:max-h-\\[90vh\\]{max-height:90vh}.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-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-180{rotate:180deg}.volr\\:animate-\\[volrFadeIn_0\\.2s_ease-out\\]{animation:.2s ease-out volrFadeIn}.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\\:flex-wrap{flex-wrap:wrap}.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-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)))}:where(.volr\\:space-y-8>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*8)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*8)*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-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-t{border-top-style:var(--volr-tw-border-style);border-top-width:1px}.volr\\:border-t-2{border-top-style:var(--volr-tw-border-style);border-top-width:2px}.volr\\:border-red-200{border-color:var(--volr-color-red-200)}.volr\\:border-slate-200{border-color:var(--volr-color-slate-200)}.volr\\:border-slate-300{border-color:var(--volr-color-slate-300)}.volr\\:border-white{border-color:var(--volr-color-white)}.volr\\:border-t-slate-600{border-top-color:var(--volr-color-slate-600)}.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-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-green-50{background-color:var(--volr-color-green-50)}.volr\\:bg-red-50{background-color:var(--volr-color-red-50)}.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-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\\: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\\:from-emerald-500{--volr-tw-gradient-from:var(--volr-color-emerald-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\\: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\\: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-8{padding-block:calc(var(--volr-spacing)*8)}.volr\\:py-12{padding-block:calc(var(--volr-spacing)*12)}.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\\:pb-2{padding-bottom:calc(var(--volr-spacing)*2)}.volr\\:pb-4{padding-bottom:calc(var(--volr-spacing)*4)}.volr\\:pl-4{padding-left:calc(var(--volr-spacing)*4)}.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\\:break-all{word-break:break-all}.volr\\:text-blue-600{color:var(--volr-color-blue-600)}.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-orange-600{color:var(--volr-color-orange-600)}.volr\\:text-purple-600{color:var(--volr-color-purple-600)}.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-100{color:var(--volr-color-slate-100)}.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-900{color:var(--volr-color-slate-900)}.volr\\:text-white{color:var(--volr-color-white)}.volr\\:capitalize{text-transform:capitalize}.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-75{opacity:.75}.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-\\[0_-8px_30px_rgba\\(0\\,0\\,0\\,0\\.2\\)\\]{--volr-tw-shadow:0 -8px 30px var(--volr-tw-shadow-color,#0003);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-md{--volr-tw-shadow:0 4px 6px -1px var(--volr-tw-shadow-color,#0000001a),0 2px 4px -2px 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-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\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.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-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-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 pulse{50%{opacity:.5}}';
|
|
744
|
+
var VOLR_SDK_CSS = '/*! tailwindcss v4.1.17 | 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-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-green-50:oklch(98.2% .018 155.826);--volr-color-green-600:oklch(62.7% .194 149.214);--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-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-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-wide:.025em;--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-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}: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}*,: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-4{right:calc(var(--volr-spacing)*-4)}.volr\\:right-2{right:calc(var(--volr-spacing)*2)}.volr\\:bottom-0{bottom:calc(var(--volr-spacing)*0)}.volr\\:-left-4{left:calc(var(--volr-spacing)*-4)}.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\\:line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.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-36{max-height:calc(var(--volr-spacing)*36)}.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-96{max-height:calc(var(--volr-spacing)*96)}.volr\\:max-h-\\[85vh\\]{max-height:85vh}.volr\\:max-h-\\[90vh\\]{max-height:90vh}.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-\\[volrFadeIn_0\\.2s_ease-out\\]{animation:.2s ease-out volrFadeIn}.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-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)))}:where(.volr\\:space-y-8>:not(:last-child)){--volr-tw-space-y-reverse:0;margin-block-start:calc(calc(var(--volr-spacing)*8)*var(--volr-tw-space-y-reverse));margin-block-end:calc(calc(var(--volr-spacing)*8)*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-t{border-top-style:var(--volr-tw-border-style);border-top-width:1px}.volr\\:border-t-2{border-top-style:var(--volr-tw-border-style);border-top-width:2px}.volr\\:border-b{border-bottom-style:var(--volr-tw-border-style);border-bottom-width:1px}.volr\\:border-red-200{border-color:var(--volr-color-red-200)}.volr\\:border-slate-200{border-color:var(--volr-color-slate-200)}.volr\\:border-slate-300{border-color:var(--volr-color-slate-300)}.volr\\:border-white{border-color:var(--volr-color-white)}.volr\\:border-t-slate-600{border-top-color:var(--volr-color-slate-600)}.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-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-green-50{background-color:var(--volr-color-green-50)}.volr\\:bg-red-50{background-color:var(--volr-color-red-50)}.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-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\\: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\\:from-emerald-500{--volr-tw-gradient-from:var(--volr-color-emerald-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\\: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\\:py-0\\.5{padding-block:calc(var(--volr-spacing)*.5)}.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-8{padding-block:calc(var(--volr-spacing)*8)}.volr\\:py-12{padding-block:calc(var(--volr-spacing)*12)}.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\\:pb-2{padding-bottom:calc(var(--volr-spacing)*2)}.volr\\:pb-4{padding-bottom:calc(var(--volr-spacing)*4)}.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-wide{--volr-tw-tracking:var(--volr-tracking-wide);letter-spacing:var(--volr-tracking-wide)}.volr\\:break-all{word-break:break-all}.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-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-100{color:var(--volr-color-slate-100)}.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-900{color:var(--volr-color-slate-900)}.volr\\:text-white{color:var(--volr-color-white)}.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-75{opacity:.75}.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-\\[0_-8px_30px_rgba\\(0\\,0\\,0\\,0\\.2\\)\\]{--volr-tw-shadow:0 -8px 30px var(--volr-tw-shadow-color,#0003);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-md{--volr-tw-shadow:0 4px 6px -1px var(--volr-tw-shadow-color,#0000001a),0 2px 4px -2px 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-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\\:text-slate-700:hover{color:var(--volr-color-slate-700)}}.volr\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.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-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 pulse{50%{opacity:.5}}';
|
|
745
745
|
function useResolvedTheme(theme = "light") {
|
|
746
|
-
const [resolvedTheme, setResolvedTheme] =
|
|
746
|
+
const [resolvedTheme, setResolvedTheme] = React12.useState(() => {
|
|
747
747
|
if (theme !== "system") return theme;
|
|
748
748
|
if (typeof window === "undefined") return "light";
|
|
749
749
|
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
750
750
|
});
|
|
751
|
-
|
|
751
|
+
React12.useEffect(() => {
|
|
752
752
|
if (theme !== "system") {
|
|
753
753
|
setResolvedTheme(theme);
|
|
754
754
|
return;
|
|
@@ -764,10 +764,10 @@ function useResolvedTheme(theme = "light") {
|
|
|
764
764
|
return resolvedTheme;
|
|
765
765
|
}
|
|
766
766
|
function ShadowPortal({ children, theme = "light" }) {
|
|
767
|
-
const [mountNode, setMountNode] =
|
|
768
|
-
const hostRef =
|
|
767
|
+
const [mountNode, setMountNode] = React12.useState(null);
|
|
768
|
+
const hostRef = React12.useRef(null);
|
|
769
769
|
const resolvedTheme = useResolvedTheme(theme);
|
|
770
|
-
|
|
770
|
+
React12.useEffect(() => {
|
|
771
771
|
const host = document.createElement("div");
|
|
772
772
|
host.id = "volr-shadow-portal";
|
|
773
773
|
host.style.position = "fixed";
|
|
@@ -791,7 +791,7 @@ function ShadowPortal({ children, theme = "light" }) {
|
|
|
791
791
|
hostRef.current = null;
|
|
792
792
|
};
|
|
793
793
|
}, []);
|
|
794
|
-
|
|
794
|
+
React12.useEffect(() => {
|
|
795
795
|
if (hostRef.current) {
|
|
796
796
|
hostRef.current.setAttribute("data-theme", resolvedTheme);
|
|
797
797
|
}
|
|
@@ -800,7 +800,7 @@ function ShadowPortal({ children, theme = "light" }) {
|
|
|
800
800
|
return reactDom.createPortal(children, mountNode);
|
|
801
801
|
}
|
|
802
802
|
function useFocusTrap(isActive, containerRef) {
|
|
803
|
-
const previousActiveElement =
|
|
803
|
+
const previousActiveElement = React12.useRef(null);
|
|
804
804
|
const focusableSelector = [
|
|
805
805
|
"button:not([disabled])",
|
|
806
806
|
"input:not([disabled])",
|
|
@@ -809,7 +809,7 @@ function useFocusTrap(isActive, containerRef) {
|
|
|
809
809
|
"a[href]",
|
|
810
810
|
'[tabindex]:not([tabindex="-1"])'
|
|
811
811
|
].join(", ");
|
|
812
|
-
const getFocusableElements =
|
|
812
|
+
const getFocusableElements = React12.useCallback(() => {
|
|
813
813
|
if (!containerRef.current) return [];
|
|
814
814
|
return Array.from(
|
|
815
815
|
containerRef.current.querySelectorAll(focusableSelector)
|
|
@@ -817,7 +817,7 @@ function useFocusTrap(isActive, containerRef) {
|
|
|
817
817
|
return el.offsetParent !== null;
|
|
818
818
|
});
|
|
819
819
|
}, [containerRef, focusableSelector]);
|
|
820
|
-
const handleKeyDown =
|
|
820
|
+
const handleKeyDown = React12.useCallback(
|
|
821
821
|
(event) => {
|
|
822
822
|
if (event.key !== "Tab") return;
|
|
823
823
|
const focusableElements = getFocusableElements();
|
|
@@ -838,7 +838,7 @@ function useFocusTrap(isActive, containerRef) {
|
|
|
838
838
|
},
|
|
839
839
|
[getFocusableElements]
|
|
840
840
|
);
|
|
841
|
-
|
|
841
|
+
React12.useEffect(() => {
|
|
842
842
|
if (!isActive) return;
|
|
843
843
|
previousActiveElement.current = document.activeElement;
|
|
844
844
|
const focusableElements = getFocusableElements();
|
|
@@ -869,12 +869,12 @@ var Modal = ({
|
|
|
869
869
|
}) => {
|
|
870
870
|
const isMobile2 = useMediaQuery("(max-width: 500px)");
|
|
871
871
|
const variant = explicitVariant ?? (isMobile2 ? "bottom-sheet" : "centered");
|
|
872
|
-
const dialogRef =
|
|
873
|
-
const dialogId =
|
|
872
|
+
const dialogRef = React12.useRef(null);
|
|
873
|
+
const dialogId = React12.useId();
|
|
874
874
|
const uiContext = useVolrUIOptional();
|
|
875
875
|
const theme = uiContext?.theme ?? "light";
|
|
876
876
|
useFocusTrap(open, dialogRef);
|
|
877
|
-
|
|
877
|
+
React12.useEffect(() => {
|
|
878
878
|
const handleEscape = (e) => {
|
|
879
879
|
if (e.key === "Escape" && open) {
|
|
880
880
|
if (onEscapeKeyDown) {
|
|
@@ -1328,7 +1328,7 @@ var variantMap = {
|
|
|
1328
1328
|
ghost: { backgroundColor: "transparent", color: "var(--volr-text-secondary)", border: "none" },
|
|
1329
1329
|
outline: { backgroundColor: "transparent", color: "var(--volr-text-secondary)", border: "1px solid var(--volr-border)" }
|
|
1330
1330
|
};
|
|
1331
|
-
var Button =
|
|
1331
|
+
var Button = React12__default.default.forwardRef(
|
|
1332
1332
|
({ variant = "primary", size = "md", fullWidth, className, style, disabled, children, ...props }, ref) => {
|
|
1333
1333
|
const { accentColor } = useVolrUI();
|
|
1334
1334
|
const sizeStyle = sizeMap[size];
|
|
@@ -1436,12 +1436,12 @@ function PasskeyEnrollView({
|
|
|
1436
1436
|
isEnrolling,
|
|
1437
1437
|
error: enrollmentError
|
|
1438
1438
|
} = react.usePasskeyEnrollment();
|
|
1439
|
-
const [hasStarted, setHasStarted] =
|
|
1440
|
-
const [errorMessage, setErrorMessage] =
|
|
1441
|
-
const [isRefreshing, setIsRefreshing] =
|
|
1439
|
+
const [hasStarted, setHasStarted] = React12.useState(false);
|
|
1440
|
+
const [errorMessage, setErrorMessage] = React12.useState(null);
|
|
1441
|
+
const [isRefreshing, setIsRefreshing] = React12.useState(false);
|
|
1442
1442
|
const biometricType = getBiometricType();
|
|
1443
1443
|
const hasPasskey = user?.keyStorageType === "passkey";
|
|
1444
|
-
|
|
1444
|
+
React12.useEffect(() => {
|
|
1445
1445
|
console.log("[PasskeyEnrollView] User state:", {
|
|
1446
1446
|
user,
|
|
1447
1447
|
keyStorageType: user?.keyStorageType,
|
|
@@ -1449,7 +1449,7 @@ function PasskeyEnrollView({
|
|
|
1449
1449
|
hasPasskey
|
|
1450
1450
|
});
|
|
1451
1451
|
}, [user, hasPasskey]);
|
|
1452
|
-
|
|
1452
|
+
React12.useEffect(() => {
|
|
1453
1453
|
if (hasPasskey && !user?.evmAddress && !isRefreshing) {
|
|
1454
1454
|
const refreshUserData = async () => {
|
|
1455
1455
|
try {
|
|
@@ -1480,7 +1480,7 @@ function PasskeyEnrollView({
|
|
|
1480
1480
|
refreshUserData();
|
|
1481
1481
|
}
|
|
1482
1482
|
}, [hasPasskey, user?.evmAddress, isRefreshing, client, setUser, user]);
|
|
1483
|
-
|
|
1483
|
+
React12.useEffect(() => {
|
|
1484
1484
|
if (!user?.id) {
|
|
1485
1485
|
const error = new Error("User ID is required for passkey enrollment");
|
|
1486
1486
|
setErrorMessage(getUserFriendlyError(error, t));
|
|
@@ -1489,7 +1489,7 @@ function PasskeyEnrollView({
|
|
|
1489
1489
|
}
|
|
1490
1490
|
}
|
|
1491
1491
|
}, [user, onError, t]);
|
|
1492
|
-
|
|
1492
|
+
React12.useEffect(() => {
|
|
1493
1493
|
if (enrollmentError) {
|
|
1494
1494
|
const friendlyMessage = getUserFriendlyError(enrollmentError, t);
|
|
1495
1495
|
setErrorMessage(friendlyMessage);
|
|
@@ -1646,8 +1646,8 @@ function MpcConnectView({
|
|
|
1646
1646
|
isConnecting,
|
|
1647
1647
|
error: connectionError
|
|
1648
1648
|
} = react.useMpcConnection();
|
|
1649
|
-
const [errorMessage, setErrorMessage] =
|
|
1650
|
-
|
|
1649
|
+
const [errorMessage, setErrorMessage] = React12.useState(null);
|
|
1650
|
+
React12.useEffect(() => {
|
|
1651
1651
|
if (connectionError) {
|
|
1652
1652
|
setErrorMessage(connectionError.message);
|
|
1653
1653
|
if (onError) {
|
|
@@ -1655,7 +1655,7 @@ function MpcConnectView({
|
|
|
1655
1655
|
}
|
|
1656
1656
|
}
|
|
1657
1657
|
}, [connectionError, onError]);
|
|
1658
|
-
|
|
1658
|
+
React12.useEffect(() => {
|
|
1659
1659
|
handleConnect();
|
|
1660
1660
|
}, []);
|
|
1661
1661
|
const handleConnect = async () => {
|
|
@@ -1716,7 +1716,7 @@ function MpcConnectView({
|
|
|
1716
1716
|
);
|
|
1717
1717
|
}
|
|
1718
1718
|
var CopyButton = ({ text, className, onCopy }) => {
|
|
1719
|
-
const [copied, setCopied] =
|
|
1719
|
+
const [copied, setCopied] = React12.useState(false);
|
|
1720
1720
|
const handleCopy = async () => {
|
|
1721
1721
|
try {
|
|
1722
1722
|
await navigator.clipboard.writeText(text);
|
|
@@ -1899,7 +1899,7 @@ function PoweredBy() {
|
|
|
1899
1899
|
fill: "none",
|
|
1900
1900
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1901
1901
|
className: "volr:inline-block volr:h-[0.8em] volr:w-auto volr:align-baseline volr-text-secondary",
|
|
1902
|
-
style: { fill: "
|
|
1902
|
+
style: { fill: "#303030" },
|
|
1903
1903
|
"aria-label": "Volr",
|
|
1904
1904
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1905
1905
|
"path",
|
|
@@ -1914,9 +1914,9 @@ function PoweredBy() {
|
|
|
1914
1914
|
}
|
|
1915
1915
|
function EmailInlineInput({ onSubmit, accentColor }) {
|
|
1916
1916
|
const { t } = useI18n();
|
|
1917
|
-
const [email, setEmail] =
|
|
1918
|
-
const [error, setError] =
|
|
1919
|
-
const [isLoading, setIsLoading] =
|
|
1917
|
+
const [email, setEmail] = React12.useState("");
|
|
1918
|
+
const [error, setError] = React12.useState(null);
|
|
1919
|
+
const [isLoading, setIsLoading] = React12.useState(false);
|
|
1920
1920
|
const handleSubmit = async (e) => {
|
|
1921
1921
|
e.preventDefault();
|
|
1922
1922
|
setError(null);
|
|
@@ -2040,14 +2040,14 @@ function SigninSelectScreen({
|
|
|
2040
2040
|
function CodeInputScreen({ email, onSubmit, onResend }) {
|
|
2041
2041
|
const { t } = useI18n();
|
|
2042
2042
|
const { accentColor } = useVolrUI();
|
|
2043
|
-
const [digits, setDigits] =
|
|
2044
|
-
const [error, setError] =
|
|
2045
|
-
const [isLoading, setIsLoading] =
|
|
2046
|
-
const inputRefs =
|
|
2047
|
-
|
|
2043
|
+
const [digits, setDigits] = React12.useState(Array(6).fill(""));
|
|
2044
|
+
const [error, setError] = React12.useState(null);
|
|
2045
|
+
const [isLoading, setIsLoading] = React12.useState(false);
|
|
2046
|
+
const inputRefs = React12.useRef([]);
|
|
2047
|
+
React12.useEffect(() => {
|
|
2048
2048
|
inputRefs.current[0]?.focus();
|
|
2049
2049
|
}, []);
|
|
2050
|
-
|
|
2050
|
+
React12.useEffect(() => {
|
|
2051
2051
|
const code = digits.join("");
|
|
2052
2052
|
if (code.length === 6 && !isLoading) {
|
|
2053
2053
|
handleSubmit(code);
|
|
@@ -2210,23 +2210,23 @@ function SiweLoginScreen({
|
|
|
2210
2210
|
checkSiweSession,
|
|
2211
2211
|
getSiweSignUrl
|
|
2212
2212
|
} = react.useVolrLogin();
|
|
2213
|
-
const [isLoading, setIsLoading] =
|
|
2214
|
-
const [loadingWallet, setLoadingWallet] =
|
|
2215
|
-
const [error, setError] =
|
|
2216
|
-
const [providers, setProviders] =
|
|
2217
|
-
const [isDetecting, setIsDetecting] =
|
|
2218
|
-
const [hasLegacyWallet, setHasLegacyWallet] =
|
|
2219
|
-
const [showOtherWallet, setShowOtherWallet] =
|
|
2220
|
-
const [sessionUrl, setSessionUrl] =
|
|
2221
|
-
const [isPolling, setIsPolling] =
|
|
2222
|
-
const pollingRef =
|
|
2223
|
-
const sessionCreatedRef =
|
|
2224
|
-
|
|
2213
|
+
const [isLoading, setIsLoading] = React12.useState(false);
|
|
2214
|
+
const [loadingWallet, setLoadingWallet] = React12.useState(null);
|
|
2215
|
+
const [error, setError] = React12.useState(null);
|
|
2216
|
+
const [providers, setProviders] = React12.useState([]);
|
|
2217
|
+
const [isDetecting, setIsDetecting] = React12.useState(true);
|
|
2218
|
+
const [hasLegacyWallet, setHasLegacyWallet] = React12.useState(false);
|
|
2219
|
+
const [showOtherWallet, setShowOtherWallet] = React12.useState(false);
|
|
2220
|
+
const [sessionUrl, setSessionUrl] = React12.useState(null);
|
|
2221
|
+
const [isPolling, setIsPolling] = React12.useState(false);
|
|
2222
|
+
const pollingRef = React12.useRef(null);
|
|
2223
|
+
const sessionCreatedRef = React12.useRef(false);
|
|
2224
|
+
React12.useEffect(() => {
|
|
2225
2225
|
return () => {
|
|
2226
2226
|
if (pollingRef.current) clearInterval(pollingRef.current);
|
|
2227
2227
|
};
|
|
2228
2228
|
}, []);
|
|
2229
|
-
|
|
2229
|
+
React12.useEffect(() => {
|
|
2230
2230
|
if (typeof window === "undefined") {
|
|
2231
2231
|
setIsDetecting(false);
|
|
2232
2232
|
return;
|
|
@@ -2252,7 +2252,7 @@ function SiweLoginScreen({
|
|
|
2252
2252
|
};
|
|
2253
2253
|
}, []);
|
|
2254
2254
|
const hasAnyWallet = providers.length > 0 || hasLegacyWallet;
|
|
2255
|
-
const createSession =
|
|
2255
|
+
const createSession = React12.useCallback(async () => {
|
|
2256
2256
|
if (sessionCreatedRef.current || sessionUrl) return;
|
|
2257
2257
|
sessionCreatedRef.current = true;
|
|
2258
2258
|
try {
|
|
@@ -2294,17 +2294,17 @@ function SiweLoginScreen({
|
|
|
2294
2294
|
onError(err instanceof Error ? err : new Error("Failed to create session"));
|
|
2295
2295
|
}
|
|
2296
2296
|
}, [createSiweSession, getSiweSignUrl, checkSiweSession, onSuccess, onError, t, sessionUrl]);
|
|
2297
|
-
|
|
2297
|
+
React12.useEffect(() => {
|
|
2298
2298
|
if (!isDetecting && !hasAnyWallet && !sessionUrl) {
|
|
2299
2299
|
createSession();
|
|
2300
2300
|
}
|
|
2301
2301
|
}, [isDetecting, hasAnyWallet, sessionUrl, createSession]);
|
|
2302
|
-
|
|
2302
|
+
React12.useEffect(() => {
|
|
2303
2303
|
if (showOtherWallet && !sessionUrl) {
|
|
2304
2304
|
createSession();
|
|
2305
2305
|
}
|
|
2306
2306
|
}, [showOtherWallet, sessionUrl, createSession]);
|
|
2307
|
-
const handleWalletClick =
|
|
2307
|
+
const handleWalletClick = React12.useCallback(async (provider, walletName, walletConnector) => {
|
|
2308
2308
|
setError(null);
|
|
2309
2309
|
setIsLoading(true);
|
|
2310
2310
|
setLoadingWallet(walletName);
|
|
@@ -2328,7 +2328,7 @@ function SiweLoginScreen({
|
|
|
2328
2328
|
setLoadingWallet(null);
|
|
2329
2329
|
}
|
|
2330
2330
|
}, [signWithWallet, onSuccess, onError]);
|
|
2331
|
-
const handleLegacyWalletClick =
|
|
2331
|
+
const handleLegacyWalletClick = React12.useCallback(async () => {
|
|
2332
2332
|
if (typeof window === "undefined" || !window.ethereum) return;
|
|
2333
2333
|
const ethereum = window.ethereum;
|
|
2334
2334
|
let walletName = "Wallet";
|
|
@@ -2337,7 +2337,7 @@ function SiweLoginScreen({
|
|
|
2337
2337
|
else if (ethereum.isRabby) walletName = "Rabby";
|
|
2338
2338
|
await handleWalletClick(ethereum, walletName);
|
|
2339
2339
|
}, [handleWalletClick]);
|
|
2340
|
-
const cancelOtherWallet =
|
|
2340
|
+
const cancelOtherWallet = React12.useCallback(() => {
|
|
2341
2341
|
if (pollingRef.current) {
|
|
2342
2342
|
clearInterval(pollingRef.current);
|
|
2343
2343
|
pollingRef.current = null;
|
|
@@ -2483,13 +2483,13 @@ function SigninModal({ isOpen, onClose, onError }) {
|
|
|
2483
2483
|
const { logout, user } = react.useVolrContext();
|
|
2484
2484
|
const { appName, branding } = useVolrUI();
|
|
2485
2485
|
const { requestEmailCode, verifyEmailCode, handleSocialLogin } = react.useVolrLogin();
|
|
2486
|
-
const [currentScreen, setCurrentScreen] =
|
|
2487
|
-
const [email, setEmail] =
|
|
2486
|
+
const [currentScreen, setCurrentScreen] = React12.useState("method-select");
|
|
2487
|
+
const [email, setEmail] = React12.useState("");
|
|
2488
2488
|
const hasPasskey = user?.keyStorageType === "passkey";
|
|
2489
2489
|
const isMobile2 = useMediaQuery("(max-width: 500px)");
|
|
2490
2490
|
const isWideViewport = useMediaQuery("(min-width: 864px)");
|
|
2491
2491
|
const shouldUseWideLayout = !isMobile2 && isWideViewport && Boolean(branding) && currentScreen === "method-select";
|
|
2492
|
-
|
|
2492
|
+
React12.useEffect(() => {
|
|
2493
2493
|
if (!isOpen) {
|
|
2494
2494
|
setCurrentScreen("method-select");
|
|
2495
2495
|
setEmail("");
|
|
@@ -2650,7 +2650,7 @@ function SigninModal({ isOpen, onClose, onError }) {
|
|
|
2650
2650
|
function AccountModal({ isOpen, onClose, onError }) {
|
|
2651
2651
|
const { user, logout } = react.useVolrContext();
|
|
2652
2652
|
const { t } = useI18n();
|
|
2653
|
-
const [isLoggingOut, setIsLoggingOut] =
|
|
2653
|
+
const [isLoggingOut, setIsLoggingOut] = React12.useState(false);
|
|
2654
2654
|
if (!user) {
|
|
2655
2655
|
return /* @__PURE__ */ jsxRuntime.jsx(SigninModal, { isOpen, onClose, onError });
|
|
2656
2656
|
}
|
|
@@ -2659,9 +2659,7 @@ function AccountModal({ isOpen, onClose, onError }) {
|
|
|
2659
2659
|
onClose();
|
|
2660
2660
|
};
|
|
2661
2661
|
const handlePasskeyError = (error) => {
|
|
2662
|
-
if (onError)
|
|
2663
|
-
onError(error);
|
|
2664
|
-
}
|
|
2662
|
+
if (onError) onError(error);
|
|
2665
2663
|
};
|
|
2666
2664
|
const handleLogout2 = async () => {
|
|
2667
2665
|
try {
|
|
@@ -2708,13 +2706,7 @@ function AccountModal({ isOpen, onClose, onError }) {
|
|
|
2708
2706
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "volr:text-xs volr:mb-1 volr-text-secondary", children: t("account.walletAddress") }),
|
|
2709
2707
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "volr:font-mono volr:text-sm volr:font-medium", children: displayAddress })
|
|
2710
2708
|
] }),
|
|
2711
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2712
|
-
CopyButton,
|
|
2713
|
-
{
|
|
2714
|
-
text: user.evmAddress,
|
|
2715
|
-
className: "volr:shrink-0"
|
|
2716
|
-
}
|
|
2717
|
-
)
|
|
2709
|
+
/* @__PURE__ */ jsxRuntime.jsx(CopyButton, { text: user.evmAddress, className: "volr:shrink-0" })
|
|
2718
2710
|
] }),
|
|
2719
2711
|
user.email && !user.email.includes("@wallet.") && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "volr:mt-4 volr:pt-4 volr:border-t volr-border", children: [
|
|
2720
2712
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "volr:text-xs volr:mb-1 volr-text-secondary", children: t("account.email") }),
|
|
@@ -2784,7 +2776,7 @@ function AssetSelectView({
|
|
|
2784
2776
|
}) })
|
|
2785
2777
|
] });
|
|
2786
2778
|
}
|
|
2787
|
-
var TextLinkButton =
|
|
2779
|
+
var TextLinkButton = React12__default.default.forwardRef(({ showArrow = false, className, children, ...props }, ref) => {
|
|
2788
2780
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2789
2781
|
"button",
|
|
2790
2782
|
{
|
|
@@ -3043,7 +3035,7 @@ var DepositCompletedToast = ({
|
|
|
3043
3035
|
symbol
|
|
3044
3036
|
}) => {
|
|
3045
3037
|
const { t } = useI18n();
|
|
3046
|
-
const [expanded, setExpanded] =
|
|
3038
|
+
const [expanded, setExpanded] = React12.useState(false);
|
|
3047
3039
|
const formatAmount = (amount) => {
|
|
3048
3040
|
const divisor = BigInt(10 ** decimals);
|
|
3049
3041
|
const whole = amount / divisor;
|
|
@@ -3198,10 +3190,10 @@ function DepositQRView(props) {
|
|
|
3198
3190
|
const { t } = useI18n();
|
|
3199
3191
|
const { config } = react.useVolrContext();
|
|
3200
3192
|
const { client } = react.useInternalAuth();
|
|
3201
|
-
const [chainName, setChainName] =
|
|
3202
|
-
const [showOtherTokenModal, setShowOtherTokenModal] =
|
|
3203
|
-
const [showToast, setShowToast] =
|
|
3204
|
-
const [toastData, setToastData] =
|
|
3193
|
+
const [chainName, setChainName] = React12.useState(null);
|
|
3194
|
+
const [showOtherTokenModal, setShowOtherTokenModal] = React12.useState(false);
|
|
3195
|
+
const [showToast, setShowToast] = React12.useState(false);
|
|
3196
|
+
const [toastData, setToastData] = React12.useState(null);
|
|
3205
3197
|
const eip681 = `ethereum:${props.address}`;
|
|
3206
3198
|
const status = react.useDepositListener({
|
|
3207
3199
|
chainId: props.chainId,
|
|
@@ -3214,7 +3206,7 @@ function DepositQRView(props) {
|
|
|
3214
3206
|
},
|
|
3215
3207
|
address: props.address
|
|
3216
3208
|
});
|
|
3217
|
-
|
|
3209
|
+
React12.useEffect(() => {
|
|
3218
3210
|
if (status.state === "detected") {
|
|
3219
3211
|
setToastData({
|
|
3220
3212
|
previousBalance: status.previousBalance,
|
|
@@ -3224,11 +3216,11 @@ function DepositQRView(props) {
|
|
|
3224
3216
|
setShowToast(true);
|
|
3225
3217
|
}
|
|
3226
3218
|
}, [status]);
|
|
3227
|
-
const getNetworkInfo =
|
|
3219
|
+
const getNetworkInfo = React12.useCallback(
|
|
3228
3220
|
react.createGetNetworkInfo({ client, rpcOverrides: config.rpcOverrides }),
|
|
3229
3221
|
[client, config.rpcOverrides]
|
|
3230
3222
|
);
|
|
3231
|
-
|
|
3223
|
+
React12.useEffect(() => {
|
|
3232
3224
|
let cancelled = false;
|
|
3233
3225
|
const loadChainName = async () => {
|
|
3234
3226
|
try {
|
|
@@ -3395,11 +3387,11 @@ var DepositModal = ({
|
|
|
3395
3387
|
}) => {
|
|
3396
3388
|
const { user } = react.useVolrContext();
|
|
3397
3389
|
const { client } = react.useInternalAuth();
|
|
3398
|
-
const [depositAssets, setDepositAssets] =
|
|
3399
|
-
const [isLoading, setIsLoading] =
|
|
3400
|
-
const [error, setError] =
|
|
3401
|
-
const [selectedIdx, setSelectedIdx] =
|
|
3402
|
-
|
|
3390
|
+
const [depositAssets, setDepositAssets] = React12.useState([]);
|
|
3391
|
+
const [isLoading, setIsLoading] = React12.useState(true);
|
|
3392
|
+
const [error, setError] = React12.useState(null);
|
|
3393
|
+
const [selectedIdx, setSelectedIdx] = React12.useState(-1);
|
|
3394
|
+
React12.useEffect(() => {
|
|
3403
3395
|
if (!open) return;
|
|
3404
3396
|
setIsLoading(true);
|
|
3405
3397
|
setError(null);
|
|
@@ -3426,12 +3418,12 @@ var DepositModal = ({
|
|
|
3426
3418
|
if (depositAssets.length === 1) return 0;
|
|
3427
3419
|
return -1;
|
|
3428
3420
|
};
|
|
3429
|
-
|
|
3421
|
+
React12.useEffect(() => {
|
|
3430
3422
|
if (open && !isLoading && depositAssets.length > 0) {
|
|
3431
3423
|
setSelectedIdx(getInitialIndex());
|
|
3432
3424
|
}
|
|
3433
3425
|
}, [open, isLoading, depositAssets.length, asset]);
|
|
3434
|
-
|
|
3426
|
+
React12.useEffect(() => {
|
|
3435
3427
|
if (!open) {
|
|
3436
3428
|
setSelectedIdx(-1);
|
|
3437
3429
|
}
|
|
@@ -3579,7 +3571,7 @@ function usePaymentModalState(open, onOpenChange) {
|
|
|
3579
3571
|
const { evm } = react.useVolr();
|
|
3580
3572
|
const { paymentOptions } = useVolrModal();
|
|
3581
3573
|
const { createPayment, updatePaymentToProcessing, pollPaymentStatus, failPendingPayment } = react.useVolrPaymentApi();
|
|
3582
|
-
const [state, dispatch] =
|
|
3574
|
+
const [state, dispatch] = React12.useReducer(paymentModalReducer, initialState);
|
|
3583
3575
|
const tokensWithBalances = state.tokens.map((token) => {
|
|
3584
3576
|
const balanceData = state.tokenBalances.get(token.id);
|
|
3585
3577
|
return {
|
|
@@ -3591,7 +3583,7 @@ function usePaymentModalState(open, onOpenChange) {
|
|
|
3591
3583
|
});
|
|
3592
3584
|
const selectedToken = state.selectedTokenId ? tokensWithBalances.find((t) => t.id === state.selectedTokenId) ?? null : null;
|
|
3593
3585
|
const isBalanceLoading = tokensWithBalances.some((t) => t.isBalanceLoading);
|
|
3594
|
-
const fetchTokenBalance =
|
|
3586
|
+
const fetchTokenBalance = React12.useCallback(
|
|
3595
3587
|
async (token) => {
|
|
3596
3588
|
if (!user?.evmAddress) {
|
|
3597
3589
|
dispatch({
|
|
@@ -3639,20 +3631,20 @@ function usePaymentModalState(open, onOpenChange) {
|
|
|
3639
3631
|
},
|
|
3640
3632
|
[user, evm]
|
|
3641
3633
|
);
|
|
3642
|
-
const fetchAllBalances =
|
|
3634
|
+
const fetchAllBalances = React12.useCallback(
|
|
3643
3635
|
async (tokens) => {
|
|
3644
3636
|
await Promise.all(tokens.map((token) => fetchTokenBalance(token)));
|
|
3645
3637
|
},
|
|
3646
3638
|
[fetchTokenBalance]
|
|
3647
3639
|
);
|
|
3648
|
-
const fetchBranding =
|
|
3640
|
+
const fetchBranding = React12.useCallback(async () => {
|
|
3649
3641
|
try {
|
|
3650
3642
|
const response = await client.get("/auth/branding");
|
|
3651
3643
|
dispatch({ type: "SET_LOGO_URL", logoUrl: response.logoUrl });
|
|
3652
3644
|
} catch {
|
|
3653
3645
|
}
|
|
3654
3646
|
}, [client]);
|
|
3655
|
-
const fetchPaymentConfig =
|
|
3647
|
+
const fetchPaymentConfig = React12.useCallback(async () => {
|
|
3656
3648
|
dispatch({ type: "SET_CONFIG_LOADING", loading: true });
|
|
3657
3649
|
try {
|
|
3658
3650
|
const response = await client.get("/payments/config");
|
|
@@ -3669,7 +3661,7 @@ function usePaymentModalState(open, onOpenChange) {
|
|
|
3669
3661
|
dispatch({ type: "SET_CONFIG_LOADING", loading: false });
|
|
3670
3662
|
}
|
|
3671
3663
|
}, [client, fetchAllBalances]);
|
|
3672
|
-
const selectBestToken =
|
|
3664
|
+
const selectBestToken = React12.useCallback(() => {
|
|
3673
3665
|
if (state.tokens.length === 0) return;
|
|
3674
3666
|
if (state.selectedTokenId) return;
|
|
3675
3667
|
let bestTokenId = state.tokens[0].id;
|
|
@@ -3683,7 +3675,7 @@ function usePaymentModalState(open, onOpenChange) {
|
|
|
3683
3675
|
}
|
|
3684
3676
|
dispatch({ type: "SELECT_TOKEN", tokenId: bestTokenId });
|
|
3685
3677
|
}, [state.tokens, state.tokenBalances, state.selectedTokenId]);
|
|
3686
|
-
|
|
3678
|
+
React12.useEffect(() => {
|
|
3687
3679
|
if (open && paymentOptions?.options) {
|
|
3688
3680
|
if (state.step === "processing" || state.step === "result") {
|
|
3689
3681
|
return;
|
|
@@ -3695,15 +3687,15 @@ function usePaymentModalState(open, onOpenChange) {
|
|
|
3695
3687
|
dispatch({ type: "RESET" });
|
|
3696
3688
|
}
|
|
3697
3689
|
}, [open, paymentOptions?.options?.amount]);
|
|
3698
|
-
|
|
3690
|
+
React12.useEffect(() => {
|
|
3699
3691
|
if (!isBalanceLoading && state.tokens.length > 0 && !state.selectedTokenId) {
|
|
3700
3692
|
selectBestToken();
|
|
3701
3693
|
}
|
|
3702
3694
|
}, [isBalanceLoading, state.tokens.length, state.selectedTokenId, selectBestToken]);
|
|
3703
|
-
const handleSelectToken =
|
|
3695
|
+
const handleSelectToken = React12.useCallback((tokenId) => {
|
|
3704
3696
|
dispatch({ type: "SELECT_TOKEN", tokenId });
|
|
3705
3697
|
}, []);
|
|
3706
|
-
const handlePay =
|
|
3698
|
+
const handlePay = React12.useCallback(async () => {
|
|
3707
3699
|
const { payOptions, receiverAddress, selectedTokenId } = state;
|
|
3708
3700
|
if (!payOptions || !user?.evmAddress || !paymentOptions || !receiverAddress || !selectedTokenId) {
|
|
3709
3701
|
return;
|
|
@@ -3790,10 +3782,10 @@ function usePaymentModalState(open, onOpenChange) {
|
|
|
3790
3782
|
pollPaymentStatus,
|
|
3791
3783
|
failPendingPayment
|
|
3792
3784
|
]);
|
|
3793
|
-
const handleDeposit =
|
|
3785
|
+
const handleDeposit = React12.useCallback(() => {
|
|
3794
3786
|
dispatch({ type: "SHOW_DEPOSIT" });
|
|
3795
3787
|
}, []);
|
|
3796
|
-
const handleDepositClose =
|
|
3788
|
+
const handleDepositClose = React12.useCallback(
|
|
3797
3789
|
(depositOpen) => {
|
|
3798
3790
|
if (!depositOpen) {
|
|
3799
3791
|
dispatch({ type: "HIDE_DEPOSIT" });
|
|
@@ -3804,19 +3796,19 @@ function usePaymentModalState(open, onOpenChange) {
|
|
|
3804
3796
|
},
|
|
3805
3797
|
[state.tokens, fetchAllBalances]
|
|
3806
3798
|
);
|
|
3807
|
-
const handleDone =
|
|
3799
|
+
const handleDone = React12.useCallback(() => {
|
|
3808
3800
|
if (state.createdPayment?.status === "CONFIRMED") {
|
|
3809
3801
|
paymentOptions?.onComplete?.(state.createdPayment);
|
|
3810
3802
|
}
|
|
3811
3803
|
onOpenChange(false);
|
|
3812
3804
|
}, [state.createdPayment, paymentOptions, onOpenChange]);
|
|
3813
|
-
const handleRetry =
|
|
3805
|
+
const handleRetry = React12.useCallback(() => {
|
|
3814
3806
|
dispatch({ type: "RETRY" });
|
|
3815
3807
|
if (state.tokens.length > 0) {
|
|
3816
3808
|
fetchAllBalances(state.tokens);
|
|
3817
3809
|
}
|
|
3818
3810
|
}, [state.tokens, fetchAllBalances]);
|
|
3819
|
-
const handleClose =
|
|
3811
|
+
const handleClose = React12.useCallback(() => {
|
|
3820
3812
|
if (state.step === "processing") {
|
|
3821
3813
|
return;
|
|
3822
3814
|
}
|
|
@@ -3825,7 +3817,7 @@ function usePaymentModalState(open, onOpenChange) {
|
|
|
3825
3817
|
}
|
|
3826
3818
|
onOpenChange(false);
|
|
3827
3819
|
}, [state.step, paymentOptions, onOpenChange]);
|
|
3828
|
-
const handleReport =
|
|
3820
|
+
const handleReport = React12.useCallback(async () => {
|
|
3829
3821
|
const { createdPayment, error, step, txHash, selectedTokenId } = state;
|
|
3830
3822
|
const tokenInfo = state.tokens.find((t) => t.id === selectedTokenId);
|
|
3831
3823
|
if (!createdPayment || !error) return;
|
|
@@ -3980,10 +3972,10 @@ var TokenSelector = ({
|
|
|
3980
3972
|
onSelect,
|
|
3981
3973
|
disabled = false
|
|
3982
3974
|
}) => {
|
|
3983
|
-
const [isOpen, setIsOpen] =
|
|
3984
|
-
const dropdownRef =
|
|
3975
|
+
const [isOpen, setIsOpen] = React12.useState(false);
|
|
3976
|
+
const dropdownRef = React12.useRef(null);
|
|
3985
3977
|
const selectedToken = tokens.find((t) => t.id === selectedTokenId);
|
|
3986
|
-
|
|
3978
|
+
React12.useEffect(() => {
|
|
3987
3979
|
const handleClickOutside = (event) => {
|
|
3988
3980
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
3989
3981
|
setIsOpen(false);
|
|
@@ -4489,19 +4481,19 @@ var PaymentModal = ({
|
|
|
4489
4481
|
)
|
|
4490
4482
|
] });
|
|
4491
4483
|
};
|
|
4492
|
-
var SignRequestContext =
|
|
4484
|
+
var SignRequestContext = React12.createContext(null);
|
|
4493
4485
|
function SignRequestProvider({ children }) {
|
|
4494
|
-
const [pendingRequest, setPendingRequest] =
|
|
4495
|
-
const resolveRef =
|
|
4496
|
-
const rejectRef =
|
|
4497
|
-
const requestSign =
|
|
4486
|
+
const [pendingRequest, setPendingRequest] = React12.useState(null);
|
|
4487
|
+
const resolveRef = React12.useRef(null);
|
|
4488
|
+
const rejectRef = React12.useRef(null);
|
|
4489
|
+
const requestSign = React12.useCallback((request) => {
|
|
4498
4490
|
return new Promise((resolve, reject2) => {
|
|
4499
4491
|
setPendingRequest(request);
|
|
4500
4492
|
resolveRef.current = resolve;
|
|
4501
4493
|
rejectRef.current = reject2;
|
|
4502
4494
|
});
|
|
4503
4495
|
}, []);
|
|
4504
|
-
const approve =
|
|
4496
|
+
const approve = React12.useCallback(() => {
|
|
4505
4497
|
if (resolveRef.current) {
|
|
4506
4498
|
resolveRef.current();
|
|
4507
4499
|
resolveRef.current = null;
|
|
@@ -4509,7 +4501,7 @@ function SignRequestProvider({ children }) {
|
|
|
4509
4501
|
}
|
|
4510
4502
|
setPendingRequest(null);
|
|
4511
4503
|
}, []);
|
|
4512
|
-
const reject =
|
|
4504
|
+
const reject = React12.useCallback(() => {
|
|
4513
4505
|
if (rejectRef.current) {
|
|
4514
4506
|
rejectRef.current(new Error("Sign request cancelled by user"));
|
|
4515
4507
|
resolveRef.current = null;
|
|
@@ -4531,7 +4523,7 @@ function SignRequestProvider({ children }) {
|
|
|
4531
4523
|
);
|
|
4532
4524
|
}
|
|
4533
4525
|
function useSignRequest() {
|
|
4534
|
-
const context =
|
|
4526
|
+
const context = React12.useContext(SignRequestContext);
|
|
4535
4527
|
if (!context) {
|
|
4536
4528
|
throw new Error("useSignRequest must be used within SignRequestProvider");
|
|
4537
4529
|
}
|
|
@@ -4540,7 +4532,7 @@ function useSignRequest() {
|
|
|
4540
4532
|
};
|
|
4541
4533
|
}
|
|
4542
4534
|
function useSignRequestInternal() {
|
|
4543
|
-
const context =
|
|
4535
|
+
const context = React12.useContext(SignRequestContext);
|
|
4544
4536
|
if (!context) {
|
|
4545
4537
|
throw new Error("useSignRequestInternal must be used within SignRequestProvider");
|
|
4546
4538
|
}
|
|
@@ -4574,111 +4566,86 @@ function MessageSignView({ message }) {
|
|
|
4574
4566
|
] })
|
|
4575
4567
|
] });
|
|
4576
4568
|
}
|
|
4577
|
-
function
|
|
4578
|
-
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
|
|
4569
|
+
function TypedDataSignView({ typedData }) {
|
|
4570
|
+
const [showRawData, setShowRawData] = React12.useState(false);
|
|
4571
|
+
const { domain, message } = typedData;
|
|
4572
|
+
const appName = domain.name;
|
|
4573
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "volr:space-y-4", children: [
|
|
4574
|
+
appName && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "volr:flex volr:items-center volr:gap-2", children: [
|
|
4575
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "volr:w-8 volr:h-8 volr:rounded-lg volr:bg-slate-100 volr:flex volr:items-center volr:justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "volr:text-sm volr:font-medium volr:text-slate-600", children: appName.charAt(0).toUpperCase() }) }),
|
|
4576
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4577
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "volr:text-sm volr:font-medium volr:text-slate-900", children: appName }),
|
|
4578
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "volr:text-xs volr:text-slate-500", children: "Signature Request" })
|
|
4579
|
+
] })
|
|
4580
|
+
] }),
|
|
4581
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "volr:rounded-lg volr:bg-slate-50 volr:border volr:border-slate-200 volr:overflow-hidden", children: [
|
|
4582
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "volr:px-3 volr:py-2 volr:border-b volr:border-slate-200 volr:bg-slate-100", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "volr:text-xs volr:font-medium volr:text-slate-500 volr:uppercase volr:tracking-wide", children: "Data to Sign" }) }),
|
|
4583
|
+
/* @__PURE__ */ jsxRuntime.jsx("pre", { className: "volr:p-3 volr:text-xs volr:text-slate-700 volr:overflow-x-auto volr:max-h-48 volr:overflow-y-auto", style: { fontFamily: "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace" }, children: formatMessage(message) })
|
|
4584
|
+
] }),
|
|
4584
4585
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4585
4586
|
"button",
|
|
4586
4587
|
{
|
|
4587
4588
|
type: "button",
|
|
4588
|
-
onClick: () =>
|
|
4589
|
-
className: "volr:
|
|
4589
|
+
onClick: () => setShowRawData(!showRawData),
|
|
4590
|
+
className: "volr:text-xs volr:text-slate-500 volr:hover:text-slate-700 volr:flex volr:items-center volr:gap-1 volr:transition-colors",
|
|
4590
4591
|
children: [
|
|
4591
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "volr:text-sm volr:font-medium volr-text", children: title }),
|
|
4592
4592
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4593
4593
|
"svg",
|
|
4594
4594
|
{
|
|
4595
|
-
className: `volr:w-
|
|
4595
|
+
className: `volr:w-3 volr:h-3 volr:transition-transform ${showRawData ? "volr:rotate-90" : ""}`,
|
|
4596
4596
|
fill: "none",
|
|
4597
4597
|
viewBox: "0 0 24 24",
|
|
4598
4598
|
stroke: "currentColor",
|
|
4599
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "
|
|
4599
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
|
|
4600
4600
|
}
|
|
4601
|
-
)
|
|
4601
|
+
),
|
|
4602
|
+
showRawData ? "Hide" : "View",
|
|
4603
|
+
" technical details"
|
|
4602
4604
|
]
|
|
4603
4605
|
}
|
|
4604
4606
|
),
|
|
4605
|
-
|
|
4607
|
+
showRawData && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "volr:rounded-lg volr:bg-slate-50 volr:border volr:border-slate-200 volr:overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "volr:p-3 volr:text-xs volr:text-slate-600 volr:overflow-x-auto volr:max-h-64 volr:overflow-y-auto", style: { fontFamily: "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace" }, children: JSON.stringify(typedData, null, 2) }) })
|
|
4606
4608
|
] });
|
|
4607
4609
|
}
|
|
4608
|
-
function
|
|
4609
|
-
|
|
4610
|
-
|
|
4611
|
-
|
|
4612
|
-
|
|
4613
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "volr:text-blue-600", children: String(value) });
|
|
4610
|
+
function formatMessage(message) {
|
|
4611
|
+
const lines = [];
|
|
4612
|
+
for (const [key, value] of Object.entries(message)) {
|
|
4613
|
+
const formattedValue = formatValue(value);
|
|
4614
|
+
lines.push(`${key}: ${formattedValue}`);
|
|
4614
4615
|
}
|
|
4615
|
-
|
|
4616
|
-
|
|
4616
|
+
return lines.join("\n");
|
|
4617
|
+
}
|
|
4618
|
+
function formatValue(value, indent = 0) {
|
|
4619
|
+
const pad = " ".repeat(indent);
|
|
4620
|
+
if (value === null || value === void 0) {
|
|
4621
|
+
return "null";
|
|
4617
4622
|
}
|
|
4618
4623
|
if (typeof value === "string") {
|
|
4619
|
-
if (value.startsWith("0x") && value.length
|
|
4620
|
-
return
|
|
4621
|
-
"span",
|
|
4622
|
-
{
|
|
4623
|
-
className: "volr:text-purple-600",
|
|
4624
|
-
style: { fontFamily: "ui-monospace, monospace", fontSize: "0.8125rem" },
|
|
4625
|
-
children: value
|
|
4626
|
-
}
|
|
4627
|
-
);
|
|
4624
|
+
if (value.startsWith("0x") && value.length > 20) {
|
|
4625
|
+
return `${value.slice(0, 10)}...${value.slice(-8)}`;
|
|
4628
4626
|
}
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
className: "volr:text-orange-600",
|
|
4634
|
-
style: { fontFamily: "ui-monospace, monospace", fontSize: "0.8125rem", wordBreak: "break-all" },
|
|
4635
|
-
children: value
|
|
4636
|
-
}
|
|
4637
|
-
);
|
|
4638
|
-
}
|
|
4639
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "volr-text", children: value });
|
|
4627
|
+
return value;
|
|
4628
|
+
}
|
|
4629
|
+
if (typeof value === "number" || typeof value === "bigint" || typeof value === "boolean") {
|
|
4630
|
+
return String(value);
|
|
4640
4631
|
}
|
|
4641
4632
|
if (Array.isArray(value)) {
|
|
4642
|
-
|
|
4643
|
-
|
|
4644
|
-
|
|
4645
|
-
|
|
4646
|
-
|
|
4647
|
-
] }),
|
|
4648
|
-
renderValue(item, depth + 1)
|
|
4649
|
-
] }, index)) });
|
|
4633
|
+
if (value.length === 0) return "[]";
|
|
4634
|
+
const items = value.map((v, i) => `${pad} [${i}]: ${formatValue(v, indent + 1)}`);
|
|
4635
|
+
return `[
|
|
4636
|
+
${items.join("\n")}
|
|
4637
|
+
${pad}]`;
|
|
4650
4638
|
}
|
|
4651
4639
|
if (typeof value === "object") {
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
renderValue(val, depth + 1)
|
|
4659
|
-
] }, key)) });
|
|
4640
|
+
const entries = Object.entries(value);
|
|
4641
|
+
if (entries.length === 0) return "{}";
|
|
4642
|
+
const items = entries.map(([k, v]) => `${pad} ${k}: ${formatValue(v, indent + 1)}`);
|
|
4643
|
+
return `{
|
|
4644
|
+
${items.join("\n")}
|
|
4645
|
+
${pad}}`;
|
|
4660
4646
|
}
|
|
4661
4647
|
return String(value);
|
|
4662
4648
|
}
|
|
4663
|
-
function TypedDataSignView({ typedData }) {
|
|
4664
|
-
const { domain, message } = typedData;
|
|
4665
|
-
const domainInfo = {
|
|
4666
|
-
...domain.name && { Name: domain.name },
|
|
4667
|
-
...domain.version && { Version: domain.version },
|
|
4668
|
-
...domain.chainId !== void 0 && { "Chain ID": domain.chainId },
|
|
4669
|
-
...domain.verifyingContract && { Contract: domain.verifyingContract }
|
|
4670
|
-
};
|
|
4671
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "volr:space-y-3", children: [
|
|
4672
|
-
/* @__PURE__ */ jsxRuntime.jsx(CollapsibleSection, { title: "Domain", defaultExpanded: false, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "volr:text-sm volr:space-y-2", children: Object.entries(domainInfo).map(([key, value]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "volr:flex volr:gap-2 volr:flex-wrap", children: [
|
|
4673
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "volr:font-medium volr-text-secondary", children: [
|
|
4674
|
-
key,
|
|
4675
|
-
":"
|
|
4676
|
-
] }),
|
|
4677
|
-
renderValue(value)
|
|
4678
|
-
] }, key)) }) }),
|
|
4679
|
-
/* @__PURE__ */ jsxRuntime.jsx(CollapsibleSection, { title: "Message", defaultExpanded: true, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "volr:text-sm", children: renderValue(message) }) })
|
|
4680
|
-
] });
|
|
4681
|
-
}
|
|
4682
4649
|
function SignRequestModal({ open, onOpenChange }) {
|
|
4683
4650
|
const { pendingRequest, approve, reject } = useSignRequestInternal();
|
|
4684
4651
|
const { t } = useI18n();
|
|
@@ -4746,16 +4713,16 @@ function SignRequestModal({ open, onOpenChange }) {
|
|
|
4746
4713
|
}
|
|
4747
4714
|
);
|
|
4748
4715
|
}
|
|
4749
|
-
var VolrUIContext =
|
|
4716
|
+
var VolrUIContext = React12__default.default.createContext(null);
|
|
4750
4717
|
var useVolrUI = () => {
|
|
4751
|
-
const context =
|
|
4718
|
+
const context = React12.useContext(VolrUIContext);
|
|
4752
4719
|
if (!context) {
|
|
4753
4720
|
throw new Error("useVolrUI must be used within VolrUIProvider");
|
|
4754
4721
|
}
|
|
4755
4722
|
return context;
|
|
4756
4723
|
};
|
|
4757
4724
|
var useVolrUIOptional = () => {
|
|
4758
|
-
return
|
|
4725
|
+
return React12.useContext(VolrUIContext);
|
|
4759
4726
|
};
|
|
4760
4727
|
function OnboardingFlow({
|
|
4761
4728
|
keyStorageType,
|
|
@@ -4811,10 +4778,10 @@ var VolrUIProvider = ({
|
|
|
4811
4778
|
const providerPolicy = config.providerPolicy ?? {
|
|
4812
4779
|
enforceOnFirstLogin: true
|
|
4813
4780
|
};
|
|
4814
|
-
const [keyStorageTypeError, setKeyStorageTypeError] =
|
|
4781
|
+
const [keyStorageTypeError, setKeyStorageTypeError] = React12.useState(
|
|
4815
4782
|
null
|
|
4816
4783
|
);
|
|
4817
|
-
|
|
4784
|
+
React12.useEffect(() => {
|
|
4818
4785
|
if (providerPolicy.enforceOnFirstLogin !== false && !keyStorageType) {
|
|
4819
4786
|
const errorMessage = "keyStorageType must be specified in VolrUIProvider props. Please set keyStorageType prop in VolrUIProvider.";
|
|
4820
4787
|
console.error(errorMessage);
|
|
@@ -4858,7 +4825,7 @@ function VolrUIProviderInner({
|
|
|
4858
4825
|
providerPolicy,
|
|
4859
4826
|
children
|
|
4860
4827
|
}) {
|
|
4861
|
-
const [showOnboarding, setShowOnboarding] =
|
|
4828
|
+
const [showOnboarding, setShowOnboarding] = React12.useState(false);
|
|
4862
4829
|
const { requestSign } = useSignRequest();
|
|
4863
4830
|
const configWithSignRequest = {
|
|
4864
4831
|
...config,
|
|
@@ -4921,9 +4888,9 @@ function VolrUIProviderInner({
|
|
|
4921
4888
|
}
|
|
4922
4889
|
function AccountModalPortal() {
|
|
4923
4890
|
const { isOpen, mode, close } = useVolrModal();
|
|
4924
|
-
const [portalRoot, setPortalRoot] =
|
|
4925
|
-
const [error, setError] =
|
|
4926
|
-
|
|
4891
|
+
const [portalRoot, setPortalRoot] = React12.useState(null);
|
|
4892
|
+
const [error, setError] = React12.useState(null);
|
|
4893
|
+
React12.useEffect(() => {
|
|
4927
4894
|
if (typeof window === "undefined") return;
|
|
4928
4895
|
let root = document.getElementById("volr-modal-root");
|
|
4929
4896
|
if (!root) {
|
|
@@ -4982,9 +4949,9 @@ function AccountModalPortal() {
|
|
|
4982
4949
|
function DepositModalPortal() {
|
|
4983
4950
|
const { isOpen, mode, asset, close } = useVolrModal();
|
|
4984
4951
|
const { user } = react.useVolrContext();
|
|
4985
|
-
const [portalRoot, setPortalRoot] =
|
|
4986
|
-
const [showLogin, setShowLogin] =
|
|
4987
|
-
|
|
4952
|
+
const [portalRoot, setPortalRoot] = React12.useState(null);
|
|
4953
|
+
const [showLogin, setShowLogin] = React12.useState(false);
|
|
4954
|
+
React12.useEffect(() => {
|
|
4988
4955
|
if (typeof window === "undefined") return;
|
|
4989
4956
|
let root = document.getElementById("volr-modal-root");
|
|
4990
4957
|
if (!root) {
|
|
@@ -4999,7 +4966,7 @@ function DepositModalPortal() {
|
|
|
4999
4966
|
}
|
|
5000
4967
|
};
|
|
5001
4968
|
}, []);
|
|
5002
|
-
|
|
4969
|
+
React12.useEffect(() => {
|
|
5003
4970
|
if (isOpen && mode === "deposit" && !user) {
|
|
5004
4971
|
setShowLogin(true);
|
|
5005
4972
|
} else {
|
|
@@ -5033,8 +5000,8 @@ function DepositModalPortal() {
|
|
|
5033
5000
|
}
|
|
5034
5001
|
function PaymentModalPortal() {
|
|
5035
5002
|
const { isOpen, mode, close } = useVolrModal();
|
|
5036
|
-
const [portalRoot, setPortalRoot] =
|
|
5037
|
-
|
|
5003
|
+
const [portalRoot, setPortalRoot] = React12.useState(null);
|
|
5004
|
+
React12.useEffect(() => {
|
|
5038
5005
|
if (typeof window === "undefined") return;
|
|
5039
5006
|
let root = document.getElementById("volr-modal-root");
|
|
5040
5007
|
if (!root) {
|
|
@@ -5063,8 +5030,8 @@ function PaymentModalPortal() {
|
|
|
5063
5030
|
}
|
|
5064
5031
|
function SignRequestModalPortal() {
|
|
5065
5032
|
const { pendingRequest } = useSignRequestInternal();
|
|
5066
|
-
const [portalRoot, setPortalRoot] =
|
|
5067
|
-
|
|
5033
|
+
const [portalRoot, setPortalRoot] = React12.useState(null);
|
|
5034
|
+
React12.useEffect(() => {
|
|
5068
5035
|
if (typeof window === "undefined") return;
|
|
5069
5036
|
let root = document.getElementById("volr-modal-root");
|
|
5070
5037
|
if (!root) {
|
|
@@ -5095,8 +5062,8 @@ function SignRequestModalPortal() {
|
|
|
5095
5062
|
function OAuthCallbackHandler({
|
|
5096
5063
|
onShowOnboarding
|
|
5097
5064
|
}) {
|
|
5098
|
-
const [hasCode, setHasCode] =
|
|
5099
|
-
|
|
5065
|
+
const [hasCode, setHasCode] = React12.useState(false);
|
|
5066
|
+
React12.useEffect(() => {
|
|
5100
5067
|
if (typeof window === "undefined") return;
|
|
5101
5068
|
const params = new URLSearchParams(window.location.search);
|
|
5102
5069
|
const code = params.get("code");
|
|
@@ -5139,13 +5106,13 @@ function OnboardingChecker({
|
|
|
5139
5106
|
}) {
|
|
5140
5107
|
const { user, provider, isLoading } = react.useVolrContext();
|
|
5141
5108
|
const { isOpen: isModalOpen } = useVolrModal();
|
|
5142
|
-
const modalWasOpened =
|
|
5143
|
-
|
|
5109
|
+
const modalWasOpened = React12__default.default.useRef(false);
|
|
5110
|
+
React12.useEffect(() => {
|
|
5144
5111
|
if (isModalOpen) {
|
|
5145
5112
|
modalWasOpened.current = true;
|
|
5146
5113
|
}
|
|
5147
5114
|
}, [isModalOpen]);
|
|
5148
|
-
|
|
5115
|
+
React12.useEffect(() => {
|
|
5149
5116
|
if (isLoading) {
|
|
5150
5117
|
return;
|
|
5151
5118
|
}
|
|
@@ -5188,7 +5155,7 @@ function OnboardingChecker({
|
|
|
5188
5155
|
}
|
|
5189
5156
|
function useSwitchNetwork() {
|
|
5190
5157
|
const { client } = react.useInternalAuth();
|
|
5191
|
-
return
|
|
5158
|
+
return React12.useCallback(
|
|
5192
5159
|
async (chainId) => {
|
|
5193
5160
|
if (typeof window === "undefined" || !window.ethereum) {
|
|
5194
5161
|
throw new Error("No wallet found");
|
|
@@ -5252,8 +5219,8 @@ var paymentPromiseResolver = null;
|
|
|
5252
5219
|
function useVolrPay() {
|
|
5253
5220
|
const { open: openModal, close: closeModal } = useVolrModal();
|
|
5254
5221
|
const { checkPayment, getPaymentHistory } = react.useVolrPaymentApi();
|
|
5255
|
-
const isInProgressRef =
|
|
5256
|
-
const pay =
|
|
5222
|
+
const isInProgressRef = React12.useRef(false);
|
|
5223
|
+
const pay = React12.useCallback(
|
|
5257
5224
|
(options) => {
|
|
5258
5225
|
isInProgressRef.current = true;
|
|
5259
5226
|
const waitPromise = new Promise((resolve, reject) => {
|