fix: verify public checkout links and add a paced queue with Material status cards

This commit is contained in:
mizorewww committed 2026-10-06 16:00:12 +08:00
1 parent 50f0406d3a
commit a5667bbbb2
18 files changed
+881 -133

No files matched your search

+19
View File
@@ -8,6 +8,7 @@ const port = Number(process.env.PREVIEW_PORT || 4173);
const paused = process.env.PREVIEW_PAUSED === "true";
const states = new Map();
const attempts = new Map();
const linkJobs = new Map();
let folders = [
{ id: "a".repeat(32), name: "本地预览 · 示例批次" },
{ id: "b".repeat(32), name: "国庆活动" },
@@ -84,6 +85,19 @@ createServer(async (req, res) => {
json(200, { plans: [{months: 3, amount: 30000, currency: "BDT"}, {months: 6, amount: 60000, currency: "BDT"}] });
return;
}
if (req.method === "GET" && url.pathname.startsWith("/api/manual-link/queue/")) {
const ticket = url.pathname.split("/").pop();
const job = linkJobs.get(ticket);
if (!job) { json(404, {message: "排队记录已失效,请重新提交。"}); return; }
job.polls++;
if (job.polls < 3) {
json(202, {ticket, status: job.polls === 1 ? "queued" : "processing", position: 1, ahead: 0, estimated_wait_seconds: job.polls === 1 ? 20 : 10, message: job.polls === 1 ? "前方还有 0 人,预计约 20 秒后生成链接。请保持页面打开。" : "正在生成付款链接,预计还需约 10 秒。"}); return;
}
if (job.username === "expired_demo" && !job.verified_unpaid) {
json(409, {message: "原付款链接已失效,请核实原订单未付款后再重新生成。", needs_unpaid_verification: true}); return;
}
json(200, {username: job.username, months: job.months, amount: job.months === 3 ? 30000 : 60000, currency: "BDT", status: "created", checkout_url: `https://checkout.stripe.com/c/pay/cs_test_PreviewOnly${ticket}`}); return;
}
if (req.method === "GET" && url.pathname === "/healthz") {
json(200, { ok: true, payments_enabled: !paused });
return;
@@ -253,6 +267,11 @@ createServer(async (req, res) => {
if (![3, 6].includes(body.months) || !/^[a-z0-9_]{1,15}$/.test(body.username || "")) {
json(400, {message: "请填写正确用户名和套餐。"}); return;
}
if (url.pathname === "/api/manual-link") {
const ticket = randomBytes(12).toString("hex");
linkJobs.set(ticket, {...body, polls: 0});
json(202, {ticket, status: "queued", position: 2, ahead: 1, estimated_wait_seconds: 40, message: "前方还有 1 人,预计约 40 秒后生成链接。请保持页面打开。"}); return;
}
if (body.username === "expired_demo" && !body.verified_unpaid) {
json(409, {message: "原付款链接已失效,请核实原订单未付款后再重新生成。", needs_unpaid_verification: true}); return;
}
+59 -13
View File
@@ -1,13 +1,15 @@
import { useEffect, useRef, useState } from "react";
import { Alert, Box, Button, Checkbox, FormControlLabel, LinearProgress, MenuItem, Paper, Stack, TextField, Typography } from "@mui/material";
import { Alert, Box, Button, Card, CardContent, Checkbox, Divider, FormControlLabel, LinearProgress, MenuItem, Paper, Stack, TextField, Typography } from "@mui/material";
import LinkRounded from "@mui/icons-material/LinkRounded";
import ContentCopyOutlined from "@mui/icons-material/ContentCopyOutlined";
import CheckCircleOutlineRounded from "@mui/icons-material/CheckCircleOutlineRounded";
import { PaymentQueueCard, type QueueProgress } from "./PaymentQueueCard";
import OpenInNewRounded from "@mui/icons-material/OpenInNewRounded";
import { adminApi } from "./adminApi";
import { request } from "./shared";
type Plan = { months: number; amount: number; currency: string };
type Result = Plan & { username: string; status: string; checkout_url?: string; message?: string; needs_unpaid_verification?: boolean };
type Result = Plan & { username: string; status: string; checkout_url?: string; message?: string; needs_unpaid_verification?: boolean; ticket?: string; position?: number; ahead?: number; estimated_wait_seconds?: number };
function price(p: Plan) { return `${p.currency} ${(p.amount / 100).toFixed(2)}`; }
export function ManualPaymentPanel({ publicMode = false }: { publicMode?: boolean }) {
const endpoint = publicMode ? "/api/manual-link" : "/api/admin/manual-link";
@@ -21,6 +23,10 @@ export function ManualPaymentPanel({ publicMode = false }: { publicMode?: boolea
const [needsVerification, setNeedsVerification] = useState(false);
const [verified, setVerified] = useState(false);
const [notice, setNotice] = useState("");
const [queueProgress, setQueueProgress] = useState<QueueProgress>({ status: "submitting" });
const resultHeading = useRef<HTMLHeadingElement>(null);
const usernameInput = useRef<HTMLInputElement>(null);
const activeRequest = useRef<AbortController | null>(null);
const inFlight = useRef(false);
const cleanUser = username.trim().replace(/^@/, "").toLowerCase();
const valid = /^[a-z0-9_]{1,15}$/.test(cleanUser);
@@ -34,16 +40,27 @@ export function ManualPaymentPanel({ publicMode = false }: { publicMode?: boolea
} catch (e) { setPlanError((e as Error).message); }
}
useEffect(() => { void loadPlans(); }, []);
useEffect(() => () => { activeRequest.current?.abort(); }, []);
useEffect(() => { if (result && publicMode) resultHeading.current?.focus({ preventScroll: true }); }, [result, publicMode]);
useEffect(() => { if (!busy && error) usernameInput.current?.focus({ preventScroll: true }); }, [busy, error]);
function reset() { setResult(null); setError(""); setNotice(""); setNeedsVerification(false); setVerified(false); }
async function generate() {
if (inFlight.current || !valid || !plans.some((p) => p.months === months)) return;
inFlight.current = true; setBusy(true); setError(""); setNotice(""); setResult(null);
inFlight.current = true; setBusy(true); setError(""); setNotice(""); setResult(null); setQueueProgress({ status: "submitting" });
const controller = new AbortController();
activeRequest.current = controller;
try {
const { ok, data } = await request<Result>(endpoint, { username: cleanUser, months, verified_unpaid: needsVerification && verified }, AbortSignal.timeout(120000));
let { ok, data } = await request<Result>(endpoint, { username: cleanUser, months, verified_unpaid: needsVerification && verified }, AbortSignal.any([controller.signal, AbortSignal.timeout(120000)]));
while (ok && data.ticket && (data.status === "queued" || data.status === "processing")) {
setQueueProgress({ status: data.status as "queued" | "processing", ahead: data.ahead ?? Math.max(0, (data.position ?? 1) - 1), estimated_wait_seconds: data.estimated_wait_seconds });
await new Promise<void>((resolve) => setTimeout(resolve, 3000));
controller.signal.throwIfAborted();
({ ok, data } = await request<Result>(`${endpoint}/queue/${encodeURIComponent(data.ticket)}`, undefined, AbortSignal.any([controller.signal, AbortSignal.timeout(45000)])));
}
if (!ok) { setNeedsVerification(Boolean(data.needs_unpaid_verification)); setError(data.message || "生成失败,请稍后重试。"); return; }
setNeedsVerification(false); setVerified(false); setResult(data);
} catch (e) { setError((e as Error).name === "TimeoutError" ? "请求超时,请使用同一用户名和套餐重试,系统会检查已有订单。" : (e as Error).message); }
finally { inFlight.current = false; setBusy(false); }
finally { inFlight.current = false; setBusy(false); setQueueProgress({ status: "submitting" }); activeRequest.current = null; }
}
async function copy() {
if (!result?.checkout_url) return;
@@ -56,27 +73,56 @@ export function ManualPaymentPanel({ publicMode = false }: { publicMode?: boolea
<LinkRounded color="primary" aria-hidden="true" />
<Typography id="manual-payment-title" variant="h2" sx={{ fontSize: 21 }}>手动付款链接</Typography>
</Stack>
<Typography variant="body2" color="text.secondary" sx={{ mb: 2 }}>{publicMode ? "填写接收人的 X 用户名并选择时长,无需兑换码。生成后前往 Stripe 自行填写付款卡;生成链接不会自动扣款。请保留付款页面,不要重复支付。" : "填写 X 用户名和套餐时长,生成 Stripe 链接后手动付款,无需兑换码。"}</Typography>
{!(publicMode && (busy || result)) && <Typography variant="body2" color="text.secondary" sx={{ mb: 3 }}>{publicMode ? "为指定的 X 账号生成付款链接,随后前往 Stripe 自行付款。" : "填写 X 用户名和套餐时长,生成 Stripe 链接后手动付款,无需兑换码。"}</Typography>}
{planError && <Alert severity="error" sx={{ mb: 2 }} action={<Button color="inherit" onClick={() => void loadPlans()}>重新加载</Button>}>{planError}</Alert>}
<Box component="form" onSubmit={(e) => { e.preventDefault(); void generate(); }} aria-busy={busy}>
{!(publicMode && (busy || result)) && <Box component="form" onSubmit={(e) => { e.preventDefault(); void generate(); }} aria-busy={busy}>
<Box sx={{
display: "grid",
gridTemplateColumns: { xs: "minmax(0, 1fr)", sm: "minmax(0, 1fr) minmax(0, 1fr)", md: publicMode ? "minmax(0, 1fr) minmax(0, 1fr)" : "minmax(260px, 1fr) minmax(235px, 320px) auto" },
gap: 2,
alignItems: "start",
}}>
<TextField label="X 用户名" placeholder="例如 username 或 @username" value={username} disabled={busy} required onChange={(e) => { setUsername(e.target.value); reset(); }} error={username.trim().length > 0 && !valid} helperText={username.trim() && !valid ? "用户名须为 1–15 位字母、数字或下划线" : "填写用户名,不是显示名称"} autoComplete="off" sx={{ minWidth: 0 }} slotProps={{ htmlInput: { maxLength: 32, autoCapitalize: "none", spellCheck: false } }} />
<TextField inputRef={usernameInput} label="X 用户名" placeholder="例如 username 或 @username" value={username} disabled={busy} required onChange={(e) => { setUsername(e.target.value); reset(); }} error={username.trim().length > 0 && !valid} helperText={username.trim() && !valid ? "用户名须为 1–15 位字母、数字或下划线" : "填写用户名,不是显示名称"} autoComplete="off" sx={{ minWidth: 0 }} slotProps={{ htmlInput: { maxLength: 32, autoCapitalize: "none", spellCheck: false } }} />
<TextField select label="套餐时长" value={plans.length ? months : ""} disabled={busy || !plans.length} onChange={(e) => { setMonths(Number(e.target.value)); reset(); }} sx={{ minWidth: 0 }}>
{plans.map((p) => <MenuItem key={p.months} value={p.months}>{p.months} 个月 · {price(p)}</MenuItem>)}
</TextField>
<Button type="submit" variant="contained" startIcon={<LinkRounded />} disabled={busy || !valid || !plans.length || (needsVerification && !verified)} sx={{ minHeight: 56, px: 3, whiteSpace: "nowrap", gridColumn: { sm: "1 / -1", md: publicMode ? "1 / -1" : "auto" }, justifySelf: { xs: "stretch", sm: "end", md: publicMode ? "end" : "stretch" } }}>{busy ? "正在生成…" : "生成付款链接"}</Button>
</Box>
{!publicMode && needsVerification && <FormControlLabel control={<Checkbox checked={verified} disabled={busy} onChange={(e) => setVerified(e.target.checked)} />} label="我已核实原订单未付款,允许重新生成失效链接" />}
</Box>
{busy && <LinearProgress aria-label="正在核对账号并生成付款链接" sx={{ mt: 1 }} />}
{needsVerification && <FormControlLabel control={<Checkbox checked={verified} disabled={busy} onChange={(e) => setVerified(e.target.checked)} />} label="我已核实原订单未付款,也没有正在处理的扣款或银行验证,允许生成新链接" />}
</Box>}
{publicMode && busy && <PaymentQueueCard progress={queueProgress} username={cleanUser} months={months} price={plans.find((p) => p.months === months) ? price(plans.find((p) => p.months === months)!) : ""} />}
{!publicMode && busy && <LinearProgress aria-label="正在核对账号并生成付款链接" sx={{ mt: 1 }} />}
{error && <Alert severity="error" sx={{ mt: 2 }}>{error}</Alert>}
{result && <Box sx={{ mt: 2 }} aria-live="polite">
<Alert severity={result.status === "requires_action" ? "info" : "success"} sx={{ mb: 2 }}>{result.status === "succeeded" ? result.message : result.status === "requires_action" ? "已有付款等待验证,请打开原付款页面完成验证。" : "付款链接已就绪,尚未自动扣款。"}</Alert>
{publicMode && result && <Card variant="outlined" sx={{ borderRadius: 2, bgcolor: "background.paper" }}>
<CardContent sx={{ p: { xs: 2.5, sm: 3 }, "&:last-child": { pb: { xs: 2.5, sm: 3 } } }}>
<Stack direction="row" spacing={1.5} alignItems="center" sx={{ mb: 3 }}>
<Box sx={{ display: "grid", placeItems: "center", width: 48, height: 48, flexShrink: 0, borderRadius: "50%", bgcolor: "action.selected", color: "success.main" }}><CheckCircleOutlineRounded aria-hidden="true" /></Box>
<Box>
<Typography ref={resultHeading} tabIndex={-1} variant="h3">{result.status === "succeeded" ? "订单已付款" : "付款链接已就绪"}</Typography>
<Typography variant="body2" color="text.secondary" sx={{ mt: 0.5 }}>{result.status === "succeeded" ? "无需再次付款" : "下一步:前往 Stripe 完成付款"}</Typography>
</Box>
</Stack>
<Stack direction={{ xs: "column", sm: "row" }} justifyContent="space-between" spacing={0.5} sx={{ mb: 2 }}>
<Typography fontWeight={600}>@{result.username}</Typography>
<Typography color="text.secondary">{result.months} 个月 Premium · {price(result)}</Typography>
</Stack>
<Divider sx={{ mb: 3 }} />
{result.checkout_url && <>
<Stack direction={{ xs: "column", sm: "row" }} spacing={1.5}>
<Button component="a" href={result.checkout_url} target="_blank" rel="noopener noreferrer" variant="contained" endIcon={<OpenInNewRounded />} sx={{ minHeight: 48 }}>前往 Stripe 付款</Button>
<Button variant="outlined" onClick={() => void copy()} startIcon={<ContentCopyOutlined />}>复制链接</Button>
</Stack>
<Typography variant="body2" color="text.secondary" sx={{ mt: 2 }}>请尽快完成付款。已扣款或正在银行验证时,请勿重复支付。</Typography>
<Box component="details" sx={{ mt: 1 }}>
<Box component="summary" sx={{ cursor: "pointer", color: "text.secondary", fontSize: 13, py: 1.5, minHeight: 44 }}>查看完整链接</Box>
<TextField label="Stripe 付款链接" value={result.checkout_url} slotProps={{ input: { readOnly: true } }} onFocus={(e) => e.target.select()} />
</Box>
</>}
<Button onClick={() => { reset(); setUsername(""); requestAnimationFrame(() => usernameInput.current?.focus()); }} sx={{ mt: 2, ml: -2 }}>为其他账号生成链接</Button>
</CardContent>
</Card>}
{!publicMode && result && <Box sx={{ mt: 2 }} aria-live="polite">
<Alert severity={result.status === "requires_action" ? "info" : "success"} sx={{ mb: 2 }}>{result.status === "succeeded" ? result.message : result.status === "requires_action" ? "已有付款等待验证,请打开原付款页面完成验证。" : publicMode ? "新付款链接已生成,已核对账号、套餐、金额及可支付状态。请尽快打开付款。" : "付款链接已就绪,尚未自动扣款。"}</Alert>
<Typography sx={{ mb: 1, fontWeight: 600 }}>@{result.username} · {result.months} 个月 · {price(result)}</Typography>
{result.checkout_url && <>
<TextField fullWidth label="Stripe 付款链接" value={result.checkout_url} slotProps={{ input: { readOnly: true } }} onFocus={(e) => e.target.select()} />
+77
View File
@@ -0,0 +1,77 @@
import { useEffect, useRef } from "react";
import { Box, Card, CardContent, Divider, LinearProgress, Stack, Step, StepLabel, Stepper, Typography } from "@mui/material";
import ScheduleRounded from "@mui/icons-material/ScheduleRounded";
import LockOutlined from "@mui/icons-material/LockOutlined";
export type QueueProgress = {
status: "submitting" | "queued" | "processing";
ahead?: number;
estimated_wait_seconds?: number;
};
export function PaymentQueueCard({ progress, username, months, price }: {
progress: QueueProgress;
username: string;
months: number;
price: string;
}) {
const card = useRef<HTMLDivElement>(null);
useEffect(() => { card.current?.focus({ preventScroll: true }); }, []);
const submitting = progress.status === "submitting";
const processing = progress.status === "processing";
const seconds = progress.estimated_wait_seconds;
const hasEstimate = typeof seconds === "number" && Number.isFinite(seconds) && seconds > 0;
const unit = hasEstimate && seconds >= 60 ? "分钟" : "秒";
const value = hasEstimate ? (seconds >= 60 ? Math.ceil(seconds / 60) : Math.ceil(seconds)) : null;
const title = submitting ? "正在提交请求" : processing ? "正在为你生成链接" : "已加入队列";
return (
<Card ref={card} tabIndex={-1} role="region" variant="outlined" aria-labelledby="payment-queue-title" sx={{ borderRadius: 2, bgcolor: "background.paper", outlineOffset: 4 }}>
<CardContent sx={{ p: { xs: 2.5, sm: 3 }, "&:last-child": { pb: { xs: 2.5, sm: 3 } } }}>
<Stack direction="row" spacing={1.5} alignItems="center" sx={{ mb: 3 }}>
<Box sx={{ display: "grid", placeItems: "center", width: 48, height: 48, flexShrink: 0, borderRadius: "50%", bgcolor: "action.selected", color: "primary.main" }}>
<ScheduleRounded aria-hidden="true" />
</Box>
<Box role="status" aria-live="polite" aria-atomic="true">
<Typography id="payment-queue-title" variant="h3">{title}</Typography>
<Typography variant="body2" color="text.secondary" sx={{ mt: 0.25 }}>{submitting ? "请稍候,正在确认你的请求" : processing ? "完成后将在这里显示付款入口" : "你的请求将按顺序处理"}</Typography>
</Box>
</Stack>
<Box sx={{ display: "grid", gridTemplateColumns: "minmax(0, 1.35fr) minmax(0, 1fr)", gap: 2, mb: 3 }}>
<Box>
<Typography variant="body2" color="text.secondary">预计还需</Typography>
<Stack direction="row" spacing={0.75} alignItems="baseline" sx={{ mt: 0.5 }}>
{value === null ? <Typography sx={{ fontSize: 28, lineHeight: 1.5, fontWeight: 600 }}>估算中</Typography> : <>
<Typography component="span" sx={{ fontSize: { xs: 44, sm: 52 }, lineHeight: 1.15, fontWeight: 600, letterSpacing: "-0.03em", fontVariantNumeric: "tabular-nums", color: "primary.main" }}>{value}</Typography>
<Typography component="span" color="text.secondary">{unit}</Typography>
</>}
</Stack>
<Typography variant="caption" color="text.secondary" sx={{ display: "block", mt: 1 }}>预估时间会随进度更新</Typography>
</Box>
<Box sx={{ borderLeft: 1, borderColor: "divider", pl: { xs: 2, sm: 3 } }}>
<Typography variant="body2" color="text.secondary">{processing ? "当前进度" : "前方等待"}</Typography>
{processing ? <Typography sx={{ mt: 1, fontSize: 24, fontWeight: 600 }}>已轮到你</Typography> : <Stack direction="row" spacing={0.75} alignItems="baseline" sx={{ mt: 1 }}>
<Typography component="span" sx={{ fontSize: 32, lineHeight: 1.25, fontWeight: 600, fontVariantNumeric: "tabular-nums" }}>{progress.ahead ?? "—"}</Typography>
<Typography component="span" color="text.secondary">人</Typography>
</Stack>}
</Box>
</Box>
<LinearProgress aria-label={processing ? "正在生成付款链接" : "正在等待处理"} sx={{ height: 4, borderRadius: 2, mb: 3 }} />
<Stepper alternativeLabel activeStep={submitting ? 0 : processing ? 2 : 1} sx={{ mx: -1, mb: 3, "& .MuiStepLabel-label": { fontSize: 12, mt: 1 }, "& .MuiStepIcon-root": { fontSize: 22 } }}>
{["提交请求", "排队等待", "生成链接"].map((label) => <Step key={label}><StepLabel>{label}</StepLabel></Step>)}
</Stepper>
<Divider sx={{ mb: 2 }} />
<Stack direction={{ xs: "column", sm: "row" }} justifyContent="space-between" spacing={0.5}>
<Typography variant="body2" fontWeight={600} sx={{ overflowWrap: "anywhere" }}>@{username}</Typography>
<Typography variant="body2" color="text.secondary">{months} 个月 Premium · {price}</Typography>
</Stack>
<Stack direction="row" spacing={0.75} alignItems="flex-start" sx={{ mt: 2 }}>
<LockOutlined sx={{ fontSize: 16, color: "text.secondary", mt: "3px" }} aria-hidden="true" />
<Typography variant="caption" color="text.secondary">请保持页面打开,无需重复提交。生成链接不会扣款。</Typography>
</Stack>
</CardContent>
</Card>
);
}
+40
View File
@@ -0,0 +1,40 @@
package checkout
import (
"database/sql"
"encoding/json"
"errors"
"time"
"xgift/internal/vault"
)
var ErrCheckoutRateLimited = errors.New("checkout creation must be spaced at least 15 seconds apart")
const checkoutCreationInterval = 15 * time.Second
// Callers hold checkout.lock across this check, the reservation and X mutation.
// Persist before sending: failures and process restarts must not bypass the limit.
func reserveCheckoutCreation(v *vault.Vault, now time.Time) error {
if err := checkCheckoutCreation(v, now); err != nil {
return err
}
b, _ := json.Marshal(now.UnixMilli())
return v.Put("checkout-creation:last", b)
}
func checkCheckoutCreation(v *vault.Vault, now time.Time) error {
b, err := v.Get("checkout-creation:last")
if err != nil && !errors.Is(err, sql.ErrNoRows) {
return err
}
if err == nil {
var last int64
if err = json.Unmarshal(b, &last); err != nil {
return err
}
if now.Sub(time.UnixMilli(last)) < checkoutCreationInterval {
return ErrCheckoutRateLimited
}
}
return nil
}
+32
View File
@@ -0,0 +1,32 @@
package checkout
import (
"errors"
"testing"
"time"
)
func TestCheckoutCreationIntervalPersistsAndFailsClosed(t *testing.T) {
v := controlFixture(t)
now := time.UnixMilli(1700000000000)
if err := reserveCheckoutCreation(v, now); err != nil {
t.Fatal(err)
}
for _, offset := range []time.Duration{-time.Second, 0, 14999 * time.Millisecond} {
if err := reserveCheckoutCreation(v, now.Add(offset)); !errors.Is(err, ErrCheckoutRateLimited) {
t.Fatalf("offset %s: %v", offset, err)
}
}
if err := reserveCheckoutCreation(v, now.Add(15*time.Second)); err != nil {
t.Fatal(err)
}
if err := reserveCheckoutCreation(v, now.Add(16*time.Second)); !errors.Is(err, ErrCheckoutRateLimited) {
t.Fatal("accepted a second reservation", err)
}
if err := v.Put("checkout-creation:last", []byte("broken")); err != nil {
t.Fatal(err)
}
if err := reserveCheckoutCreation(v, now.Add(time.Hour)); err == nil {
t.Fatal("corrupt clock bypassed limiter")
}
}
+98 -11
View File
@@ -28,7 +28,7 @@ type publicLinkRecord struct {
// PublicLinkForUsername never uses a saved card or an automatic-payment record.
// Caller must hold checkout.lock. Ownership is an opaque, browser-bound cookie.
func PublicLinkForUsername(ctx context.Context, v *vault.Vault, user, owner string, port, months int) (*Record, error) {
func PublicLinkForUsername(ctx context.Context, v *vault.Vault, user, owner string, port, months int, verifiedUnpaid ...bool) (*Record, error) {
user = strings.ToLower(strings.TrimPrefix(strings.TrimSpace(user), "@"))
if !regexp.MustCompile(`^[a-z0-9_]{1,15}$`).MatchString(user) || !regexp.MustCompile(`^[a-f0-9]{64}$`).MatchString(owner) {
return nil, errors.New("invalid public link request")
@@ -46,10 +46,10 @@ func PublicLinkForUsername(ctx context.Context, v *vault.Vault, user, owner stri
return nil, err
}
defer x.close()
return publicLinkForClient(ctx, v, user, owner, plan, x)
return publicLinkForClient(ctx, v, user, owner, plan, x, verifiedUnpaid...)
}
func publicLinkForClient(ctx context.Context, v *vault.Vault, user, owner string, plan Plan, x *xClient) (*Record, error) {
func publicLinkForClient(ctx context.Context, v *vault.Vault, user, owner string, plan Plan, x *xClient, verifiedUnpaid ...bool) (*Record, error) {
months := plan.Months
recipient, err := x.identity(ctx, user, false)
if err != nil {
@@ -61,9 +61,21 @@ func publicLinkForClient(ctx context.Context, v *vault.Vault, user, owner string
if err != nil {
return nil, err
}
if existing != nil && existing.Status == "created" {
if existing != nil && existing.Status == "succeeded" {
return existing, nil
}
replace := false
if existing != nil && existing.Status == "created" {
err = verifyPublicCheckout(ctx, v, x, existing, plan)
if err == nil && existing.Status == "succeeded" {
b, _ := json.Marshal(publicLinkRecord{Owner: ownerHash, Order: *existing})
return existing, v.Put("public-checkout:"+recipient, b)
}
if err != nil && (!errors.Is(err, ErrVerifyUnpaid) || len(verifiedUnpaid) == 0 || !verifiedUnpaid[0]) {
return nil, err
}
replace = true
}
checked, err := x.recipient(ctx, user)
if err != nil {
return nil, err
@@ -74,16 +86,20 @@ func publicLinkForClient(ctx context.Context, v *vault.Vault, user, owner string
if err = x.quote(ctx, user, plan); err != nil {
return nil, err
}
if err = checkCheckoutCreation(v, time.Now()); err != nil {
return nil, err
}
r := Record{Username: user, RecipientID: recipient, Months: months, Amount: plan.Minor, Currency: strings.ToUpper(plan.Currency), ProductID: plan.ProductID, Status: "creating", Created: time.Now().Unix()}
if existing != nil {
if existing != nil && !replace {
r = *existing
}
// One attempt per explicit request. Older unpublished reservations predate
// CreationAttempts, so count their first upstream attempt conservatively.
if existing != nil && r.CreationAttempts == 0 {
if existing != nil && !replace && r.CreationAttempts == 0 && !r.CreationRetryable {
r.CreationAttempts = 1
}
r.CreationAttempts++
r.CreationRetryable = true
persist := func() error {
b, e := json.Marshal(publicLinkRecord{Owner: ownerHash, Order: r})
if e != nil {
@@ -91,23 +107,94 @@ func publicLinkForClient(ctx context.Context, v *vault.Vault, user, owner string
}
return v.Put("public-checkout:"+recipient, b)
}
// Reserve before sending. Only an unpublished, card-free creation may be
// retried on an explicit request; never replace a URL returned to a visitor
// or release this account to the saved-card payment flow.
if err = persist(); err != nil {
// Preserve closed sessions and the visitor's explicit unpaid confirmation.
// The public reservation remains isolated from saved-card payment records.
if replace {
old, e := v.Get("public-checkout:" + recipient)
if e != nil {
return nil, e
}
proof, _ := json.Marshal(struct {
Previous json.RawMessage `json:"previous"`
VerifiedUnpaid bool `json:"verified_unpaid"`
VerifiedAt int64 `json:"verified_at"`
}{old, len(verifiedUnpaid) > 0 && verifiedUnpaid[0], time.Now().Unix()})
next, _ := json.Marshal(publicLinkRecord{Owner: ownerHash, Order: r})
err = v.ReplaceArchived("public-checkout:"+recipient, fmt.Sprintf("public-checkout-history:%s:%d", recipient, time.Now().UnixNano()), old, proof, next)
} else {
err = persist()
}
if err != nil {
return nil, err
}
r.SessionID, r.URL, err = x.create(ctx, user, recipient, plan)
if err != nil {
if errors.Is(err, ErrCheckoutRateLimited) {
// No upstream attempt occurred. A queue wait cannot consume retries.
r.CreationAttempts--
if e := persist(); e != nil {
return nil, e
}
return nil, err
}
return nil, ErrPublicLinkPending
}
r.Status = "created"
if err = persist(); err != nil {
return nil, err
}
if existing != nil && existing.SessionID == r.SessionID {
return nil, ErrPublicLinkPending
}
if err = verifyPublicCheckout(ctx, v, x, &r, plan); err != nil {
return nil, err
}
if err = persist(); err != nil {
return nil, err
}
// Give the visitor the full interval after verification, even when the X or
// Stripe request was slow. All creation paths honor this persisted clock.
stamp, _ := json.Marshal(time.Now().UnixMilli())
if err = v.Put("checkout-creation:last", stamp); err != nil {
return nil, err
}
return &r, nil
}
// Verify against Stripe, not merely X's "Unpaid" response or a cached URL.
// No card tokenization or payment confirmation occurs in this path.
func verifyPublicCheckout(ctx context.Context, v *vault.Vault, x *xClient, r *Record, plan Plan) error {
read := x.readCheckout
if read == nil {
read = func(ctx context.Context, r *Record) (*paymentPage, error) {
s, err := newStripe(ctx, v, r.RecipientID, paymentRead)
if err != nil {
return nil, err
}
defer s.close()
return s.page(ctx, r, true)
}
}
p, err := read(ctx, r)
if inactiveCheckout(err) {
return ErrVerifyUnpaid
}
if err != nil {
return err
}
if err = p.guard(r, plan, false); err != nil {
return err
}
if p.Status == "complete" && p.PaymentStatus == "paid" {
r.Status = "succeeded"
return nil
}
if p.Status == "expired" && p.PaymentStatus == "unpaid" {
return ErrVerifyUnpaid
}
return p.guard(r, plan, true)
}
func publicLinkExisting(v *vault.Vault, user, recipient, owner string, plan Plan) (*Record, error) {
for _, key := range []string{"checkout:" + recipient, "checkout:" + user} {
b, e := v.Get(key)
@@ -145,7 +232,7 @@ func publicLinkExisting(v *vault.Vault, user, recipient, owner string, plan Plan
return nil, ErrPublicLinkConflict
}
switch r.Status {
case "created":
case "created", "succeeded":
if CheckoutLink(&r) == "" {
return nil, ErrPublicLinkConflict
}
+85 -4
View File
@@ -4,10 +4,13 @@ import (
"context"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"strings"
"testing"
"time"
"xgift/internal/vault"
)
func TestPublicLinkOwnershipAndPaymentIsolation(t *testing.T) {
@@ -73,7 +76,7 @@ func TestPublicLinkExplicitRetryAfterUnpublishedTimeout(t *testing.T) {
if calls == 1 || alwaysFail {
return nil, context.DeadlineExceeded
}
body = `{"data":{"onetimepurchase_gift":{"session_id":"cs_live_TestPublic123","session_url":"https://checkout.stripe.com/c/pay/cs_live_TestPublic123","session_status":"Unpaid"}}}`
body = fmt.Sprintf(`{"data":{"onetimepurchase_gift":{"session_id":"cs_live_TestPublic%d","session_url":"https://checkout.stripe.com/c/pay/cs_live_TestPublic%d","session_status":"Unpaid"}}}`, calls, calls)
default:
t.Fatal("unexpected X operation")
}
@@ -82,6 +85,7 @@ func TestPublicLinkExplicitRetryAfterUnpublishedTimeout(t *testing.T) {
client := &http.Client{Transport: transport}
x := &xClient{vault: v, headers: make(http.Header), http: client, regionalHTTP: client}
plan := Plan{Months: 6, Minor: 60000, Currency: "usd", ProductID: "prod_TEST6MO"}
x.readCheckout = func(_ context.Context, r *Record) (*paymentPage, error) { return publicPageFixture(r, plan), nil }
owner := strings.Repeat("a", 64)
r, e := publicLinkForClient(context.Background(), v, "recipient", owner, plan, x)
if r != nil || !errors.Is(e, ErrPublicLinkPending) || calls != 1 {
@@ -89,6 +93,7 @@ func TestPublicLinkExplicitRetryAfterUnpublishedTimeout(t *testing.T) {
}
if alwaysFail {
for i := 0; i < 2; i++ {
resetCreationClock(t, v)
_, e = publicLinkForClient(context.Background(), v, "recipient", owner, plan, x)
if !errors.Is(e, ErrPublicLinkPending) {
t.Fatal(e)
@@ -99,19 +104,95 @@ func TestPublicLinkExplicitRetryAfterUnpublishedTimeout(t *testing.T) {
t.Fatal("unbounded public creation retry")
}
} else {
resetCreationClock(t, v)
r, e = publicLinkForClient(context.Background(), v, "recipient", owner, plan, x)
if e != nil || r == nil || r.Status != "created" || r.CreationAttempts != 2 || calls != 2 {
t.Fatalf("retry did not recover: %v", e)
}
original := r.URL
resetCreationClock(t, v)
r, e = publicLinkForClient(context.Background(), v, "recipient", owner, plan, x)
if e != nil || r.URL != original || calls != 2 {
t.Fatal("published link was replaced")
if e != nil || r.URL == original || calls != 3 {
t.Fatal("explicit generation reused a cached checkout")
}
_, e = publicLinkForClient(context.Background(), v, "recipient", strings.Repeat("b", 64), plan, x)
if !errors.Is(e, ErrPublicLinkOtherBrowser) || calls != 2 {
if !errors.Is(e, ErrPublicLinkOtherBrowser) || calls != 3 {
t.Fatal("another browser accessed the order")
}
// A closed session is not evidence of non-payment. Never replace it
// without the visitor's explicit confirmation, nor return its old URL.
oldID := r.SessionID
x.readCheckout = func(_ context.Context, record *Record) (*paymentPage, error) {
if record.SessionID == oldID {
return nil, &stripeError{Code: "checkout_not_active_session"}
}
return publicPageFixture(record, plan), nil
}
resetCreationClock(t, v)
got, err := publicLinkForClient(context.Background(), v, "recipient", owner, plan, x)
if got != nil || !errors.Is(err, ErrVerifyUnpaid) || calls != 3 {
t.Fatal("closed session was reused or replaced without confirmation", err)
}
got, err = publicLinkForClient(context.Background(), v, "recipient", owner, plan, x, true)
if err != nil || got == nil || got.SessionID == oldID || calls != 4 {
t.Fatal("confirmed closed session did not get a new verified checkout", err)
}
}
}
}
func resetCreationClock(t *testing.T, v *vault.Vault) {
t.Helper()
b, _ := json.Marshal(time.Now().Add(-time.Minute).UnixMilli())
if err := v.Put("checkout-creation:last", b); err != nil {
t.Fatal(err)
}
}
func publicPageFixture(r *Record, plan Plan) *paymentPage {
raw := fmt.Sprintf(`{"session_id":%q,"currency":%q,"mode":"payment","livemode":true,"status":"open","payment_status":"unpaid","init_checksum":"verified","success_url":%q,"cancel_url":%q,"account_settings":{"account_id":%q},"total_summary":{"due":%d,"subtotal":%d,"total":%d},"line_item_group":{"currency":%q,"due":%d,"subtotal":%d,"total":%d,"line_items":[{"name":%q,"quantity":1,"subtotal":%d,"total":%d,"price":{"currency":%q,"type":"one_time","unit_amount":%d,"product":{"id":%q,"name":%q,"livemode":true}}}]},"payment_intent":null}`, r.SessionID, plan.Currency, "https://x.com/"+r.Username+"/gift-premium/success", "https://x.com/"+r.Username+"/gift-premium", plan.Merchant, plan.Minor, plan.Minor, plan.Minor, plan.Currency, plan.Minor, plan.Minor, plan.Minor, plan.Name(), plan.Minor, plan.Minor, plan.Currency, plan.Minor, plan.ProductID, plan.Name())
var p paymentPage
if err := json.Unmarshal([]byte(raw), &p); err != nil {
panic(err)
}
return &p
}
func TestPublicCheckoutVerificationRejectsWrongOrInactiveOrders(t *testing.T) {
plan := Plan{Months: 3, Minor: 30000, Currency: "usd", ProductID: "prod_Test", Merchant: "acct_Test"}
r := Record{Username: "recipient", RecipientID: "1234", SessionID: "cs_live_Test"}
for _, tc := range []struct {
name string
change func(*paymentPage)
err error
}{
{"session", func(p *paymentPage) { p.SessionID = "cs_live_Other" }, nil},
{"recipient", func(p *paymentPage) { p.SuccessURL = "https://x.com/other/gift-premium/success" }, nil},
{"merchant", func(p *paymentPage) { p.Account.ID = "acct_Other" }, nil},
{"amount", func(p *paymentPage) { p.Total.Total++ }, nil},
{"product", func(p *paymentPage) { p.Group.Items[0].Price.Product.ID = "prod_Other" }, nil},
{"currency", func(p *paymentPage) { p.Currency = "eur" }, nil},
{"missing payment intent evidence", func(p *paymentPage) { p.IntentPresent = false }, nil},
{"expired", func(p *paymentPage) { p.Status = "expired" }, ErrVerifyUnpaid},
{"inactive", func(p *paymentPage) {}, &stripeError{Code: "checkout_not_active_session"}},
} {
t.Run(tc.name, func(t *testing.T) {
v := controlFixture(t)
p := publicPageFixture(&r, plan)
tc.change(p)
x := &xClient{readCheckout: func(context.Context, *Record) (*paymentPage, error) {
if tc.name == "inactive" {
return nil, tc.err
}
return p, nil
}}
err := verifyPublicCheckout(context.Background(), v, x, &r, plan)
if err == nil {
t.Fatal("unverified order accepted")
}
if (tc.name == "expired" || tc.name == "inactive") && !errors.Is(err, ErrVerifyUnpaid) {
t.Fatal(err)
}
})
}
}
+4
View File
@@ -42,6 +42,7 @@ type xClient struct {
http *http.Client
regionalHTTP *http.Client
headers http.Header
readCheckout func(context.Context, *Record) (*paymentPage, error)
}
func newXClient(v *vault.Vault, port int) (*xClient, error) {
@@ -304,6 +305,9 @@ func (c *xClient) quote(ctx context.Context, user string, p Plan) error {
return nil
}
func (c *xClient) create(ctx context.Context, user, recipient string, p Plan) (string, string, error) {
if err := reserveCheckoutCreation(c.vault, time.Now()); err != nil {
return "", "", err
}
var r struct {
Data struct {
Gift struct {
+1 -1
View File
@@ -29,7 +29,7 @@
/>
<title>XGift · 兑换码管理</title>
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<script type="module" src="/admin.js?v=7294de49c54f"></script>
<script type="module" src="/admin.js?v=b44635454e15"></script>
</head>
<body>
<div id="root"></div>
+54 -54
View File
@@ -1,16 +1,16 @@
var yM=Object.create;var m1=Object.defineProperty;var hM=Object.getOwnPropertyDescriptor;var gM=Object.getOwnPropertyNames;var TM=Object.getPrototypeOf,bM=Object.prototype.hasOwnProperty;var Qo=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(o){throw t=0,o}};var vM=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of gM(t))!bM.call(e,n)&&n!==o&&m1(e,n,{get:()=>t[n],enumerable:!(r=hM(t,n))||r.enumerable});return e};var S=(e,t,o)=>(o=e!=null?yM(TM(e)):{},vM(t||!e||!e.__esModule?m1(o,"default",{value:e,enumerable:!0}):o,e));var O1=Qo(Ne=>{"use strict";var jg=Symbol.for("react.transitional.element"),xM=Symbol.for("react.portal"),PM=Symbol.for("react.fragment"),SM=Symbol.for("react.strict_mode"),CM=Symbol.for("react.profiler"),EM=Symbol.for("react.consumer"),RM=Symbol.for("react.context"),OM=Symbol.for("react.forward_ref"),wM=Symbol.for("react.suspense"),NM=Symbol.for("react.memo"),b1=Symbol.for("react.lazy"),MM=Symbol.for("react.activity"),AM=Symbol.for("react.view_transition"),y1=Symbol.iterator;function kM(e){return e===null||typeof e!="object"?null:(e=y1&&e[y1]||e["@@iterator"],typeof e=="function"?e:null)}var v1={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},x1=Object.assign,P1={};function Cl(e,t,o){this.props=e,this.context=t,this.refs=P1,this.updater=o||v1}Cl.prototype.isReactComponent={};Cl.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Cl.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function S1(){}S1.prototype=Cl.prototype;function Bg(e,t,o){this.props=e,this.context=t,this.refs=P1,this.updater=o||v1}var Ug=Bg.prototype=new S1;Ug.constructor=Bg;x1(Ug,Cl.prototype);Ug.isPureReactComponent=!0;var h1=Array.isArray;function zg(){}var xt={H:null,A:null,T:null,S:null},C1=Object.prototype.hasOwnProperty;function Lg(e,t,o){var r=o.ref;return{$$typeof:jg,type:e,key:t,ref:r!==void 0?r:null,props:o}}function DM(e,t){return Lg(e.type,t,e.props)}function Ig(e){return typeof e=="object"&&e!==null&&e.$$typeof===jg}function _M(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(o){return t[o]})}var g1=/\/+/g;function _g(e,t){return typeof e=="object"&&e!==null&&e.key!=null?_M(""+e.key):t.toString(36)}function zM(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(zg,zg):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function Sl(e,t,o,r,n){var a=typeof e;(a==="undefined"||a==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(a){case"bigint":case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case jg:case xM:i=!0;break;case b1:return i=e._init,Sl(i(e._payload),t,o,r,n)}}if(i)return n=n(e),i=r===""?"."+_g(e,0):r,h1(n)?(o="",i!=null&&(o=i.replace(g1,"$&/")+"/"),Sl(n,t,o,"",function(p){return p})):n!=null&&(Ig(n)&&(n=DM(n,o+(n.key==null||e&&e.key===n.key?"":(""+n.key).replace(g1,"$&/")+"/")+i)),t.push(n)),1;i=0;var s=r===""?".":r+":";if(h1(e))for(var l=0;l<e.length;l++)r=e[l],a=s+_g(r,l),i+=Sl(r,t,o,a,n);else if(l=kM(e),typeof l=="function")for(e=l.call(e),l=0;!(r=e.next()).done;)r=r.value,a=s+_g(r,l++),i+=Sl(r,t,o,a,n);else if(a==="object"){if(typeof e.then=="function")return Sl(zM(e),t,o,r,n);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return i}function yd(e,t,o){if(e==null)return e;var r=[],n=0;return Sl(e,r,"","",function(a){return t.call(o,a,n++)}),r}function jM(e){if(e._status===-1){var t=e._result,o=t();o.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r,o.status===void 0&&(o.status="fulfilled",o.value=r))},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r,o.status===void 0&&(o.status="rejected",o.reason=r))}),e._status===-1&&(e._status=0,e._result=o)}if(e._status===1)return e._result.default;throw e._result}var T1=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)};function E1(e){var t=xt.T,o={};o.types=t!==null?t.types:nullLine truncated
var hA=Object.create;var F1=Object.defineProperty;var gA=Object.getOwnPropertyDescriptor;var TA=Object.getOwnPropertyNames;var bA=Object.getPrototypeOf,vA=Object.prototype.hasOwnProperty;var Jo=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(o){throw t=0,o}};var xA=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of TA(t))!vA.call(e,n)&&n!==o&&F1(e,n,{get:()=>t[n],enumerable:!(r=gA(t,n))||r.enumerable});return e};var S=(e,t,o)=>(o=e!=null?hA(bA(e)):{},xA(t||!e||!e.__esModule?F1(o,"default",{value:e,enumerable:!0}):o,e));var rP=Jo(Me=>{"use strict";var rT=Symbol.for("react.transitional.element"),PA=Symbol.for("react.portal"),SA=Symbol.for("react.fragment"),CA=Symbol.for("react.strict_mode"),EA=Symbol.for("react.profiler"),RA=Symbol.for("react.consumer"),wA=Symbol.for("react.context"),OA=Symbol.for("react.forward_ref"),NA=Symbol.for("react.suspense"),MA=Symbol.for("react.memo"),X1=Symbol.for("react.lazy"),AA=Symbol.for("react.activity"),kA=Symbol.for("react.view_transition"),q1=Symbol.iterator;function _A(e){return e===null||typeof e!="object"?null:(e=q1&&e[q1]||e["@@iterator"],typeof e=="function"?e:null)}var K1={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Q1=Object.assign,Z1={};function kl(e,t,o){this.props=e,this.context=t,this.refs=Z1,this.updater=o||K1}kl.prototype.isReactComponent={};kl.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};kl.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function J1(){}J1.prototype=kl.prototype;function nT(e,t,o){this.props=e,this.context=t,this.refs=Z1,this.updater=o||K1}var aT=nT.prototype=new J1;aT.constructor=nT;Q1(aT,kl.prototype);aT.isPureReactComponent=!0;var G1=Array.isArray;function oT(){}var Pt={H:null,A:null,T:null,S:null},eP=Object.prototype.hasOwnProperty;function sT(e,t,o){var r=o.ref;return{$$typeof:rT,type:e,key:t,ref:r!==void 0?r:null,props:o}}function DA(e,t){return sT(e.type,t,e.props)}function iT(e){return typeof e=="object"&&e!==null&&e.$$typeof===rT}function zA(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(o){return t[o]})}var Y1=/\/+/g;function tT(e,t){return typeof e=="object"&&e!==null&&e.key!=null?zA(""+e.key):t.toString(36)}function jA(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(oT,oT):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function Al(e,t,o,r,n){var a=typeof e;(a==="undefined"||a==="boolean")&&(e=null);var s=!1;if(e===null)s=!0;else switch(a){case"bigint":case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case rT:case PA:s=!0;break;case X1:return s=e._init,Al(s(e._payload),t,o,r,n)}}if(s)return n=n(e),s=r===""?"."+tT(e,0):r,G1(n)?(o="",s!=null&&(o=s.replace(Y1,"$&/")+"/"),Al(n,t,o,"",function(p){return p})):n!=null&&(iT(n)&&(n=DA(n,o+(n.key==null||e&&e.key===n.key?"":(""+n.key).replace(Y1,"$&/")+"/")+s)),t.push(n)),1;s=0;var i=r===""?".":r+":";if(G1(e))for(var l=0;l<e.length;l++)r=e[l],a=i+tT(r,l),s+=Al(r,t,o,a,n);else if(l=_A(e),typeof l=="function")for(e=l.call(e),l=0;!(r=e.next()).done;)r=r.value,a=i+tT(r,l++),s+=Al(r,t,o,a,n);else if(a==="object"){if(typeof e.then=="function")return Al(jA(e),t,o,r,n);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return s}function kd(e,t,o){if(e==null)return e;var r=[],n=0;return Al(e,r,"","",function(a){return t.call(o,a,n++)}),r}function BA(e){if(e._status===-1){var t=e._result,o=t();o.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r,o.status===void 0&&(o.status="fulfilled",o.value=r))},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r,o.status===void 0&&(o.status="rejected",o.reason=r))}),e._status===-1&&(e._status=0,e._result=o)}if(e._status===1)return e._result.default;throw e._result}var W1=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)};function tP(e){var t=Pt.T,o={};o.types=t!==null?t.types:nullLine truncated
at`)?" (<anonymous>)":-1<o.stack.indexOf("@")?"@unknown:0:0":""}return`
`+yv+e+gO}var hv=!1;function gv(e,t){if(!e||hv)return"";hv=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var d=function(){throw Error()};if(Object.defineProperty(d.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(d,[])}catch(g){var f=g}Reflect.construct(e,[],d)}else{try{d.call()}catch(g){f=g}d=!1;try{var u=Object.getOwnPropertyDescriptor(e.prototype,"props");Object.defineProperty(e.prototype,"props",{configurable:!0,set:function(){throw Error()}}),d=!0,new e}finally{d&&(u!==void 0?Object.defineProperty(e.prototype,"props",u):delete e.prototype.props)}}}else{try{throw Error()}catch(g){f=g}(d=e())&&typeof d.catch=="function"&&d.catch(function(){})}}catch(g){if(g&&f&&typeof g.stack=="string")return[g.stack,f.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var n=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,"name");n&&n.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var a=r.DetermineComponentFrameRoot(),i=a[0],s=a[1];if(i&&s){var l=i.split(`
`),p=s.split(`
`+Fv+e+dO}var qv=!1;function Gv(e,t){if(!e||qv)return"";qv=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var d=function(){throw Error()};if(Object.defineProperty(d.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(d,[])}catch(g){var f=g}Reflect.construct(e,[],d)}else{try{d.call()}catch(g){f=g}d=!1;try{var u=Object.getOwnPropertyDescriptor(e.prototype,"props");Object.defineProperty(e.prototype,"props",{configurable:!0,set:function(){throw Error()}}),d=!0,new e}finally{d&&(u!==void 0?Object.defineProperty(e.prototype,"props",u):delete e.prototype.props)}}}else{try{throw Error()}catch(g){f=g}(d=e())&&typeof d.catch=="function"&&d.catch(function(){})}}catch(g){if(g&&f&&typeof g.stack=="string")return[g.stack,f.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var n=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,"name");n&&n.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var a=r.DetermineComponentFrameRoot(),s=a[0],i=a[1];if(s&&i){var l=s.split(`
`),p=i.split(`
`);for(n=r=0;r<l.length&&!l[r].includes("DetermineComponentFrameRoot");)r++;for(;n<p.length&&!p[n].includes("DetermineComponentFrameRoot");)n++;if(r===l.length||n===p.length)for(r=l.length-1,n=p.length-1;1<=r&&0<=n&&l[r]!==p[n];)n--;for(;1<=r&&0<=n;r--,n--)if(l[r]!==p[n]){if(r!==1||n!==1)do if(r--,n--,0>n||l[r]!==p[n]){var c=`
`+l[r].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=r&&0<=n);break}}}finally{hv=!1,Error.prepareStackTrace=o}return(o=e?e.displayName||e.name:"")?_i(o):""}function Z8(e,t){switch(e.tag){case 26:case 27:case 5:return _i(e.type);case 16:return _i("Lazy");case 13:return e.child!==t&&t!==null?_i("Suspense Fallback"):_i("Suspense");case 19:return _i("SuspenseList");case 0:case 15:return gv(e.type,!1);case 11:return gv(e.type.render,!1);case 1:return gv(e.type,!0);case 31:return _i("Activity");case 30:return _i("ViewTransition");default:return""}}function TO(e){try{var t="",o=null;do t+=Z8(e,o),o=e,e=e.return;while(e);return t}catch(r){return`
`+l[r].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=r&&0<=n);break}}}finally{qv=!1,Error.prepareStackTrace=o}return(o=e?e.displayName||e.name:"")?Is(o):""}function AU(e,t){switch(e.tag){case 26:case 27:case 5:return Is(e.type);case 16:return Is("Lazy");case 13:return e.child!==t&&t!==null?Is("Suspense Fallback"):Is("Suspense");case 19:return Is("SuspenseList");case 0:case 15:return Gv(e.type,!1);case 11:return Gv(e.type.render,!1);case 1:return Gv(e.type,!0);case 31:return Is("Activity");case 30:return Is("ViewTransition");default:return""}}function mO(e){try{var t="",o=null;do t+=AU(e,o),o=e,e=e.return;while(e);return t}catch(r){return`
Error generating stack: `+r.message+`
`+r.stack}}var o0=Object.prototype.hasOwnProperty,ax=yo.unstable_scheduleCallback,Tv=yo.unstable_cancelCallback,J8=yo.unstable_shouldYield,eU=yo.unstable_requestPaint,Fr=yo.unstable_now,tU=yo.unstable_getCurrentPriorityLevel,i5=yo.unstable_ImmediatePriority,s5=yo.unstable_UserBlockingPriority,jh=yo.unstable_NormalPriority,oU=yo.unstable_LowPriority,l5=yo.unstable_IdlePriority,rU=yo.log,nU=yo.unstable_setDisableYieldValue,Jf=null,qr=null;function Li(e){if(typeof rU=="function"&&nU(e),qr&&typeof qr.setStrictMode=="function")try{qr.setStrictMode(Jf,e)}catch{}}var Gr=Math.clz32?Math.clz32:sU,aU=Math.log,iU=Math.LN2;function sU(e){return e>>>=0,e===0?32:31-(aU(e)/iU|0)|0}var Wy=256,Xy=262144,Ky=4194304;function Js(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function lg(e,t,o){var r=e.pendingLanes;if(r===0)return 0;var n=0,a=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s!==0?(r=s&~a,r!==0?n=Js(r):(i&=s,i!==0?n=Js(i):o||(o=s&~e,o!==0&&(n=Js(o))))):(s=r&~a,s!==0?n=Js(s):i!==0?n=Js(i):o||(o=r&~e,o!==0&&(n=Js(o)))),n===0?0:t!==0&&t!==n&&(t&a)===0&&(a=n&-n,o=t&-t,a>=o||a===32&&(o&4194048)!==0)?t:n}function ed(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function p5(e,t){(t&8)!==0&&(t|=t&32);var o=e.entangledLanes;if(o!==0)for(e=e.entanglements,o&=t;0<o;){var r=31-Gr(o),n=1<<r;t|=e[r],o&=~n}return t}function lU(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function c5(){var e=Ky;return Ky<<=1,(Ky&62914560)===0&&(Ky=4194304),e}function bv(e){for(var t=[],o=0;31>o;o++)t.push(e);return t}function td(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function pU(e,t,o,r,n,a){var i=e.pendingLanes;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=o,e.entangledLanes&=o,e.errorRecoveryDisabledLanes&=o,e.shellSuspendCounter=0;var s=e.entanglements,l=e.expirationTimes,p=e.hiddenUpdates;for(o=i&~o;0<o;){var c=31-Gr(o),d=1<<c;s[c]=0,l[c]=-1;var f=p[c];if(f!==null)for(p[c]=null,c=0;c<f.length;c++){var u=f[c];u!==null&&(u.lane&=-536870913)}o&=~d}r!==0&&u5(e,r,0),a!==0&&n===0&&e.tag!==0&&(e.suspendedLanes|=a&~(i&~t))}function u5(e,t,o){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Gr(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|o&261930}function f5(e,t){var o=e.entangledLanes|=t;for(e=e.entanglements;o;){var r=31-Gr(o),n=1<<r;n&t|e[r]&t&&(e[r]|=t),o&=~n}}function d5(e,t){var o=t&-t;return o=(o&42)!==0?1:ix(o),(o&(e.suspendedLanes|t))!==0?0:o}function ix(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function sx(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function m5(){var e=tt.p;return e!==0?e:(e=window.event,e===void 0?32:X3(e.type))}function bO(e,t){var o=tt.p;try{return tt.p=e,t()}finally{tt.p=o}}var ii=Math.random().toString(36).slice(2),Bo="__reactFiber$"+ii,Cr="__reactProps$"+ii,Ac="__reactContainer$"+ii,vO="__reactEvents$"+ii,cU="__reactListeners$"+ii,uU="__reactHandles$"+ii,xO="__reactResources$"+ii,od="__reactMarker$"+ii,Bh="__reactLoad$"+ii;function pg(e){delete e[Bo],delete e[Cr],delete e[cU],delete e[uU]}function ol(e){var t;if(t=e[Bo])return t;for(var o=e.parentNode;o;){if(t=o[Ac]||o[Bo]){if(o=t.alternate,t.child!==null||o!==null&&o.child!==null)for(e=Uw(e);e!==null;){if(o=e[Bo])return o;e=Uw(e)}return t}e=o,o=e.parentNode}return null}function kc(e){if(e=e[Bo]||e[Ac]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function vf(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(G(33))}function lc(e){var t=e[xO];return t||(t=e[xO]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function Eo(e){e[od]=!0}function y5(e){e[Bh]=void 0}var h5=new Set,g5={};function Tl(e,t){bc(e,t),bc(e+"Capt Line truncated
`).replace(KL,"")}function R3(e,t){return t=ww(t),ww(e)===t}function ct(e,t,o,r,n,a){switch(o){case"children":if(typeof r=="string")t==="body"||t==="textarea"&&r===""||vc(e,r);else if(typeof r=="number"||typeof r=="bigint")t!=="body"&&vc(e,""+r);else return;break;case"className":Qy(e,"class",r);break;case"tabIndex":Qy(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":Qy(e,o,r);break;case"style":S5(e,r,a);return;case"data":if(t!=="object"){Qy(e,"data",r);break}case"src":case"href":if(r===""&&(t!=="a"||o!=="href")){e.removeAttribute(o);break}if(r==null||typeof r=="function"||typeof r=="symbol"||typeof r=="boolean"){e.removeAttribute(o);break}r=yh(r),e.setAttribute(o,r);break;case"action":case"formAction":if(typeof r=="function"){e.setAttribute(o,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof a=="function"&&(o==="formAction"?(t!=="input"&&ct(e,t,"name",n.name,n,null),ct(e,t,"formEncType",n.formEncType,n,null),ct(e,t,"formMethod",n.formMethod,n,null),ct(e,t,"formTarget",n.formTarget,n,null)):(ct(e,t,"encType",n.encType,n,null),ct(e,t,"method",n.method,n,null),ct(e,t,"target",n.target,n,null)));if(r==null||typeof r=="symbol"||typeof r=="boolean"){e.removeAttribute(o);break}r=yh(r),e.setAttribute(o,r);break;case"onClick":r!=null&&(e.onclick=da);return;case"onScroll":r!=null&&He("scroll",e);return;case"onScrollEnd":r!=null&&He("scrollend",e);return;case"dangerouslySetInnerHTML":if(r!=null){if(typeof r!="object"||!("__html"in r))throw Error(G(61));if(o=r.__html,o!=null){if(n.children!=null)throw Error(G(60));a?.__html!==o&&(e.innerHTML=o)}}break;case"multiple":e.multiple=r&&typeof r!="function"&&typeof r!="symbol";break;case"muted":e.muted=r&&typeof r!="function"&&typeof r!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(r==null||typeof r=="function"||typeof r=="boolean"||typeof r=="symbol"){e.removeAttribute("xlink:href");break}o=yh(r),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":r!=null&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(o,r):e.removeAttribute(o);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"credentialless":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(o,""):e.removeAttribute(o);break;case"capture":case"download":r===!0?e.setAttribute(o,""):r!==!1&&r!=null&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(o,r):e.removeAttribute(o);break;case"cols":case"rows":case"size":case"span":r!=null&&typeof r!="function"&&typeof r!="symbol"&&!isNaN(r)&&1<=r?e.setAttribute(o,r):e.removeAttribute(o);break;case"rowSpan":case"start":r==null||typeof r=="function"||typeof r=="symbol"||isNaN(r)?e.removeAttribute(o):e.setAttribute(o,r);break;case"popover":He("beforetoggle",e),He("toggle",e),mh(e,"popover",r);break;case"xlinkActuate":Wa(e,"http://www.w3.org/1999/xlink","xlink:actuate",r);break;case"xlinkArcrole":Wa(e,"http://www.w3.org/1999/xlink","xlink:arcrole",r);break;case"xlinkRole":Wa(e,"http://www.w3.org/1999/xlink","xlink:role",r);break;case"xlinkShow":Wa(e,"http://www.w3.org/1999/xlink","xlink:show",r);break;case"xlinkTitle":Wa(e,"http://www.w3.org/1999/xlink","xlink:title",r);break;case"xlinkType":Wa(e,"http://www.w3.org/1999/xlink","xlink:type",r);break;case"xmlBase":Wa(e,"http://www.w3.org/XML/1998/namespace","xml:base",r);break;case"xmlLang":Wa(e,"http://www.w3.org/XML/1998/namespace","xml:lang",r);break;case"xmlSpace":Wa(e,"http://www.w3.org/XML/1998/namespace","xml:space",r);break;case"is":mh(e,"is",r);break;case"innerText":case"textContent":return;default:if(!(2<o.length)||o[0]!=="o"&&o[0]!=="O"||o[1]!=="n"&&o[1]!=="N")o=gU.get(o)||o,mh(e,o,r);else return}Je=!0}function G0(e,t,o,r,n,a){switch(o){case"style":S5(e,r,a);return;case"dangerouslySetInnerHTML":if(r!=null){if(typeof r!="object"||!("__html"in r))throw Error(G(61));if(o=r.__html,o!=null){if(n.children!=null)throw Error(G(60));a?.__html!==o&&(e.innerHTML=o)}}break;case"children":if(typeof r=="string")vc(e,r);else if(typeof r=="number"||typeof r=="bigint")vc(e,""+r);else return;break;case"onScroll":r!=null&&He("scroll",e);return;case"onScrollEnd":r!=null&&He("scrollend",e);return;case"onClick":r Line truncated
`)),(KP!==void 0?Wk:Gk)(d,s,l,p,c)}}var sq=dT();function Xk(e,t=Number.MIN_SAFE_INTEGER,o=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,o))}var mT=Xk;function hT(e,t=0,o=1){return mT(e,t,o)}function Kk(e){e=e.slice(1);let t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g"),o=e.match(t);return o&&o[0].length===1&&(o=o.map(r=>r+r)),o?`rgb${o.length===4?"a":""}(${o.map((r,n)=>n<3?parseInt(r,16):Math.round(parseInt(r,16)/255*1e3)/1e3).join(", ")})`:""}function mi(e){if(e.type)return e;if(e.charAt(0)==="#")return mi(Kk(e));let t=e.indexOf("("),o=e.substring(0,t);if(!["rgb","rgba","hsl","hsla","color"].includes(o))throw new Error(go(9,e));let r=e.substring(t+1,e.length-1),n;if(o==="color"){if(r=r.split(" "),n=r.shift(),r.length===4&&r[3].charAt(0)==="/"&&(r[3]=r[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(n))throw new Error(go(10,n))}else r=r.split(",");return r=r.map(a=>parseFloat(a)),{type:o,values:r,colorSpace:n}}var Qk=e=>{let t=mi(e);return t.values.slice(0,3).map((o,r)=>t.type.includes("hsl")&&r!==0?`${o}%`:o).join(" ")},Gl=(e,t)=>{try{return Qk(e)}catch{return e}};function rm(e){let{type:t,colorSpace:o}=e,{values:r}=e;return t.includes("rgb")?r=r.map((n,a)=>a<3?parseInt(n,10):n):t.includes("hsl")&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),t.includes("color")?r=`${o} ${r.join(" ")}`:r=`${r.join(", ")}`,`${t}(${r})`}function gT(e){e=mi(e);let{values:t}=e,o=t[0],r=t[1]/100,n=t[2]/100,a=r*Math.min(n,1-n),i=(p,c=(p+o/30)%12)=>n-a*Math.max(Math.min(c-3,9-c,1),-1),s="rgb",l=[Math.round(i(0)*255),Math.round(i(8)*255),Math.round(i(4)*255)];return e.type==="hsla"&&(s+="a",l.push(t[3])),rm({type:s,values:l})}function yT(e){e=mi(e);let t=e.type==="hsl"||e.type==="hsla"?mi(gT(e)).values:e.values;return t=t.map(o=>(e.type!=="color"&&(o/=255),o<=.03928?o/12.92:((o+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function QP(e,t){let o=yT(e),r=yT(t);return(Math.max(o,r)+.05)/(Math.min(o,r)+.05)}function yi(e,t){return e=mi(e),t=hT(t),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${t}`:e.values[3]=t,rm(e)}function hi(e,t,o){try{return yi(e,t)}catch{return e}}function Yl(e,t){if(e=mi(e),t=hT(t),e.type.includes("hsl"))e.values[2]*=1-t;else if(e.type.includes("rgb")||e.type.includes("color"))for(let o=0;o<3;o+=1)e.values[o]*=1-t;return rm(e)}function rt(e,t,o){try{return Yl(e,t)}catch{return e}}function Wl(e,t){if(e=mi(e),t=hT(t),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes("rgb"))for(let o=0;o<3;o+=1)e.values[o]+=(255-e.values[o])*t;else if(e.type.includes("color"))for(let o=0;o<3;o+=1)e.values[o]+=(1-e.values[o])*t;return rm(e)}function nt(e,t,o){try{return Wl(e,t)}catch{return e}}function nm(e,t=.15){return yT(e)>.5?Yl(e,t):Wl(e,t)}function au(e,t,o){try{return nm(e,t)}catch{return e}}var fS=S(I(),1);var eS=S(I(),1);var ZP=S(I(),1),Zk=ZP.createContext(null),am=Zk;var TT=S(I(),1);function Na(){return TT.useContext(am)}var Jk=typeof Symbol=="function"&&Symbol.for,JP=Jk?Symbol.for("mui.nested"):"__THEME_NESTED__";var tS=S(z(),1);function eD(e,t){return typeof t=="function"?t(e):{...e,...t}}function tD(e){let{children:t,theme:o}=e,r=Na(),n=eS.useMemo(()=>{let a=r===null?{...o}:eD(r,o);return a!=null&&(a[JP]=r!==null),a},[o,r]);return(0,tS.jsx)(am.Provider,{value:n,children:t})}var im=tD;var sm=S(I(),1);var oS=S(z(),1),rS=sm.createContext();function oD({value:e,...t}){return(0,oS.jsx)(rS.Provider,{value:e??!0,...t})}var gi=()=>sm.useContext(rS)??!1,nS=oD;var lm=S(I(),1);var aS=S(z(),1),iS=lm.createContext(void 0);function rD({value:e,children:t}){return(0,aS.jsx)(iS.Provider,{value:e,children:t})}function nD(e){let{theme:t,name:o,props:r}=e;if(!t||!t.components||!t.components[o])return r;let n=t.components[o];return n.defaultProps?ea(n.defaultProps,r,t.components.mergeClassNameAndStyle):!n.styleOverrides&&!n.variants?ea(n,r,t.components.mergeClassNameAndStyle):r}function bT({props:e,name:t}){let o=lm.useContext(iS);return nD({props:e,name:t,theme:{components:o}})}var pm=rD;var iu=S(I(),1),sS=0;function aD(e){let[t,o]=iu.useState(e),r=e||t;return iu.useEffect(()=>{t==null&&(sS+=1,o(`mui-${sS}`))},[t]),r}var iD={...iu},lS=iD.useId;function on(e){if(lS!==void 0){let t=lS();return e??t}return aD(e)}var pS=S(z(),1);function vT(e){let t=Oa(),o=on()||"",{modularCssLayers:r}=e,n="mui.global, mui.components, mui.theme, mui.custom, mui.sx";return!r||t!==null?n="":typeof r=="string"?n=r.replace(/mui(?!\.)/g,n):n=`@layer ${n};`,eo(()=>{let a=document.querySelector("head");if(!a)return;let i=a.firstChild;if(n){if(i&&i.hasAttribute?.("data-mui-layer-order")&&i.getAttribute("data-mui-layer-order")===o)return;let s=document.createElement("style");s.setAttribute("data-mui-layer-order",o),s.textContent=n,a.prepend(s)}else a.querySelector(`style[data-mui-layer-order="${o}"]`)?.remove()},[n,o]),n?(0,pS.jsx)($l,{styles:n}):null}var Xl=S(z(),1),cS={};function uS(e,t,o,r=!1){return fS.useMemo(()=>{let n=e&&t[e]||t;if(typeof o=="f Line truncated
${s}.classList.add('${f}'.replace('%s', colorScheme));`}let d=c.match(/\[([^[\]]+)\]/);if(d){let[f,u]=d[1].split("=");u||(p+=`${s}.removeAttribute('${f}'.replace('%s', light));
${s}.removeAttribute('${f}'.replace('%s', dark));`),p+=`
${s}.setAttribute('${f}'.replace('%s', colorScheme), ${u?`${u}.replace('%s', colorScheme)`:'""'});`}else c!==".%s"&&(p+=`${s}.setAttribute('${c}', colorScheme);`);return(0,mS.jsx)("script",{suppressHydrationWarning:!0,nonce:typeof window>"u"?l:"",dangerouslySetInnerHTML:{__html:`(function() {
`+r.stack}}var Ax=Object.prototype.hasOwnProperty,D0=go.unstable_scheduleCallback,Yv=go.unstable_cancelCallback,kU=go.unstable_shouldYield,_U=go.unstable_requestPaint,qr=go.unstable_now,DU=go.unstable_getCurrentPriorityLevel,oN=go.unstable_ImmediatePriority,rN=go.unstable_UserBlockingPriority,og=go.unstable_NormalPriority,zU=go.unstable_LowPriority,nN=go.unstable_IdlePriority,jU=go.log,BU=go.unstable_setDisableYieldValue,yd=null,Gr=null;function qs(e){if(typeof jU=="function"&&BU(e),Gr&&typeof Gr.setStrictMode=="function")try{Gr.setStrictMode(yd,e)}catch{}}var Yr=Math.clz32?Math.clz32:IU,LU=Math.log,UU=Math.LN2;function IU(e){return e>>>=0,e===0?32:31-(LU(e)/UU|0)|0}var mh=256,yh=262144,hh=4194304;function il(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Og(e,t,o){var r=e.pendingLanes;if(r===0)return 0;var n=0,a=e.suspendedLanes,s=e.pingedLanes;e=e.warmLanes;var i=r&134217727;return i!==0?(r=i&~a,r!==0?n=il(r):(s&=i,s!==0?n=il(s):o||(o=i&~e,o!==0&&(n=il(o))))):(i=r&~a,i!==0?n=il(i):s!==0?n=il(s):o||(o=r&~e,o!==0&&(n=il(o)))),n===0?0:t!==0&&t!==n&&(t&a)===0&&(a=n&-n,o=t&-t,a>=o||a===32&&(o&4194048)!==0)?t:n}function hd(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function aN(e,t){(t&8)!==0&&(t|=t&32);var o=e.entangledLanes;if(o!==0)for(e=e.entanglements,o&=t;0<o;){var r=31-Yr(o),n=1<<r;t|=e[r],o&=~n}return t}function $U(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function sN(){var e=hh;return hh<<=1,(hh&62914560)===0&&(hh=4194304),e}function Wv(e){for(var t=[],o=0;31>o;o++)t.push(e);return t}function gd(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function HU(e,t,o,r,n,a){var s=e.pendingLanes;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=o,e.entangledLanes&=o,e.errorRecoveryDisabledLanes&=o,e.shellSuspendCounter=0;var i=e.entanglements,l=e.expirationTimes,p=e.hiddenUpdates;for(o=s&~o;0<o;){var c=31-Yr(o),d=1<<c;i[c]=0,l[c]=-1;var f=p[c];if(f!==null)for(p[c]=null,c=0;c<f.length;c++){var u=f[c];u!==null&&(u.lane&=-536870913)}o&=~d}r!==0&&iN(e,r,0),a!==0&&n===0&&e.tag!==0&&(e.suspendedLanes|=a&~(s&~t))}function iN(e,t,o){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Yr(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|o&261930}function lN(e,t){var o=e.entangledLanes|=t;for(e=e.entanglements;o;){var r=31-Yr(o),n=1<<r;n&t|e[r]&t&&(e[r]|=t),o&=~n}}function pN(e,t){var o=t&-t;return o=(o&42)!==0?1:z0(o),(o&(e.suspendedLanes|t))!==0?0:o}function z0(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function j0(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function cN(){var e=ot.p;return e!==0?e:(e=window.event,e===void 0?32:q4(e.type))}function yO(e,t){var o=ot.p;try{return ot.p=e,t()}finally{ot.p=o}}var ls=Math.random().toString(36).slice(2),Uo="__reactFiber$"+ls,Er="__reactProps$"+ls,Vc="__reactContainer$"+ls,hO="__reactEvents$"+ls,VU="__reactListeners$"+ls,FU="__reactHandles$"+ls,gO="__reactResources$"+ls,Td="__reactMarker$"+ls,rg="__reactLoad$"+ls;function Ng(e){delete e[Uo],delete e[Er],delete e[VU],delete e[FU]}function cl(e){var t;if(t=e[Uo])return t;for(var o=e.parentNode;o;){if(t=o[Vc]||o[Uo]){if(o=t.alternate,t.child!==null||o!==null&&o.child!==null)for(e=D5(e);e!==null;){if(o=e[Uo])return o;e=D5(e)}return t}e=o,o=e.parentNode}return null}function Fc(e){if(e=e[Uo]||e[Vc]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function jf(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(Q(33))}function vc(e){var t=e[gO];return t||(t=e[gO]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function wo(e){e[Td]=!0}function uN(e){e[rg]=void 0}var fN=new Set,dN={};function Rl(e,t){Ac(e,t),Ac(e+"Capt Line truncated
`).replace(N7,"")}function P4(e,t){return t=C5(t),C5(e)===t}function ut(e,t,o,r,n,a){switch(o){case"children":if(typeof r=="string")t==="body"||t==="textarea"&&r===""||kc(e,r);else if(typeof r=="number"||typeof r=="bigint")t!=="body"&&kc(e,""+r);else return;break;case"className":gh(e,"class",r);break;case"tabIndex":gh(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":gh(e,o,r);break;case"style":bN(e,r,a);return;case"data":if(t!=="object"){gh(e,"data",r);break}case"src":case"href":if(r===""&&(t!=="a"||o!=="href")){e.removeAttribute(o);break}if(r==null||typeof r=="function"||typeof r=="symbol"||typeof r=="boolean"){e.removeAttribute(o);break}r=zh(r),e.setAttribute(o,r);break;case"action":case"formAction":if(typeof r=="function"){e.setAttribute(o,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof a=="function"&&(o==="formAction"?(t!=="input"&&ut(e,t,"name",n.name,n,null),ut(e,t,"formEncType",n.formEncType,n,null),ut(e,t,"formMethod",n.formMethod,n,null),ut(e,t,"formTarget",n.formTarget,n,null)):(ut(e,t,"encType",n.encType,n,null),ut(e,t,"method",n.method,n,null),ut(e,t,"target",n.target,n,null)));if(r==null||typeof r=="symbol"||typeof r=="boolean"){e.removeAttribute(o);break}r=zh(r),e.setAttribute(o,r);break;case"onClick":r!=null&&(e.onclick=ma);return;case"onScroll":r!=null&&Fe("scroll",e);return;case"onScrollEnd":r!=null&&Fe("scrollend",e);return;case"dangerouslySetInnerHTML":if(r!=null){if(typeof r!="object"||!("__html"in r))throw Error(Q(61));if(o=r.__html,o!=null){if(n.children!=null)throw Error(Q(60));a?.__html!==o&&(e.innerHTML=o)}}break;case"multiple":e.multiple=r&&typeof r!="function"&&typeof r!="symbol";break;case"muted":e.muted=r&&typeof r!="function"&&typeof r!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(r==null||typeof r=="function"||typeof r=="boolean"||typeof r=="symbol"){e.removeAttribute("xlink:href");break}o=zh(r),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":r!=null&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(o,r):e.removeAttribute(o);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"credentialless":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(o,""):e.removeAttribute(o);break;case"capture":case"download":r===!0?e.setAttribute(o,""):r!==!1&&r!=null&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(o,r):e.removeAttribute(o);break;case"cols":case"rows":case"size":case"span":r!=null&&typeof r!="function"&&typeof r!="symbol"&&!isNaN(r)&&1<=r?e.setAttribute(o,r):e.removeAttribute(o);break;case"rowSpan":case"start":r==null||typeof r=="function"||typeof r=="symbol"||isNaN(r)?e.removeAttribute(o):e.setAttribute(o,r);break;case"popover":Fe("beforetoggle",e),Fe("toggle",e),Dh(e,"popover",r);break;case"xlinkActuate":Ka(e,"http://www.w3.org/1999/xlink","xlink:actuate",r);break;case"xlinkArcrole":Ka(e,"http://www.w3.org/1999/xlink","xlink:arcrole",r);break;case"xlinkRole":Ka(e,"http://www.w3.org/1999/xlink","xlink:role",r);break;case"xlinkShow":Ka(e,"http://www.w3.org/1999/xlink","xlink:show",r);break;case"xlinkTitle":Ka(e,"http://www.w3.org/1999/xlink","xlink:title",r);break;case"xlinkType":Ka(e,"http://www.w3.org/1999/xlink","xlink:type",r);break;case"xmlBase":Ka(e,"http://www.w3.org/XML/1998/namespace","xml:base",r);break;case"xmlLang":Ka(e,"http://www.w3.org/XML/1998/namespace","xml:lang",r);break;case"xmlSpace":Ka(e,"http://www.w3.org/XML/1998/namespace","xml:space",r);break;case"is":Dh(e,"is",r);break;case"innerText":case"textContent":return;default:if(!(2<o.length)||o[0]!=="o"&&o[0]!=="O"||o[1]!=="n"&&o[1]!=="N")o=KU.get(o)||o,Dh(e,o,r);else return}et=!0}function x0(e,t,o,r,n,a){switch(o){case"style":bN(e,r,a);return;case"dangerouslySetInnerHTML":if(r!=null){if(typeof r!="object"||!("__html"in r))throw Error(Q(61));if(o=r.__html,o!=null){if(n.children!=null)throw Error(Q(60));a?.__html!==o&&(e.innerHTML=o)}}break;case"children":if(typeof r=="string")kc(e,r);else if(typeof r=="number"||typeof r=="bigint")kc(e,""+r);else return;break;case"onScroll":r!=null&&Fe("scroll",e);return;case"onScrollEnd":r!=null&&Fe("scrollend",e);return;case"onClick":r Line truncated
`)),(RS!==void 0?X_:Y_)(d,i,l,p,c)}}var IG=DT();function K_(e,t=Number.MIN_SAFE_INTEGER,o=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,o))}var zT=K_;function BT(e,t=0,o=1){return zT(e,t,o)}function Q_(e){e=e.slice(1);let t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g"),o=e.match(t);return o&&o[0].length===1&&(o=o.map(r=>r+r)),o?`rgb${o.length===4?"a":""}(${o.map((r,n)=>n<3?parseInt(r,16):Math.round(parseInt(r,16)/255*1e3)/1e3).join(", ")})`:""}function hs(e){if(e.type)return e;if(e.charAt(0)==="#")return hs(Q_(e));let t=e.indexOf("("),o=e.substring(0,t);if(!["rgb","rgba","hsl","hsla","color"].includes(o))throw new Error(bo(9,e));let r=e.substring(t+1,e.length-1),n;if(o==="color"){if(r=r.split(" "),n=r.shift(),r.length===4&&r[3].charAt(0)==="/"&&(r[3]=r[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(n))throw new Error(bo(10,n))}else r=r.split(",");return r=r.map(a=>parseFloat(a)),{type:o,values:r,colorSpace:n}}var Z_=e=>{let t=hs(e);return t.values.slice(0,3).map((o,r)=>t.type.includes("hsl")&&r!==0?`${o}%`:o).join(" ")},ep=(e,t)=>{try{return Z_(e)}catch{return e}};function vm(e){let{type:t,colorSpace:o}=e,{values:r}=e;return t.includes("rgb")?r=r.map((n,a)=>a<3?parseInt(n,10):n):t.includes("hsl")&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),t.includes("color")?r=`${o} ${r.join(" ")}`:r=`${r.join(", ")}`,`${t}(${r})`}function LT(e){e=hs(e);let{values:t}=e,o=t[0],r=t[1]/100,n=t[2]/100,a=r*Math.min(n,1-n),s=(p,c=(p+o/30)%12)=>n-a*Math.max(Math.min(c-3,9-c,1),-1),i="rgb",l=[Math.round(s(0)*255),Math.round(s(8)*255),Math.round(s(4)*255)];return e.type==="hsla"&&(i+="a",l.push(t[3])),vm({type:i,values:l})}function jT(e){e=hs(e);let t=e.type==="hsl"||e.type==="hsla"?hs(LT(e)).values:e.values;return t=t.map(o=>(e.type!=="color"&&(o/=255),o<=.03928?o/12.92:((o+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function wS(e,t){let o=jT(e),r=jT(t);return(Math.max(o,r)+.05)/(Math.min(o,r)+.05)}function gs(e,t){return e=hs(e),t=BT(t),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${t}`:e.values[3]=t,vm(e)}function Ts(e,t,o){try{return gs(e,t)}catch{return e}}function tp(e,t){if(e=hs(e),t=BT(t),e.type.includes("hsl"))e.values[2]*=1-t;else if(e.type.includes("rgb")||e.type.includes("color"))for(let o=0;o<3;o+=1)e.values[o]*=1-t;return vm(e)}function nt(e,t,o){try{return tp(e,t)}catch{return e}}function op(e,t){if(e=hs(e),t=BT(t),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes("rgb"))for(let o=0;o<3;o+=1)e.values[o]+=(255-e.values[o])*t;else if(e.type.includes("color"))for(let o=0;o<3;o+=1)e.values[o]+=(1-e.values[o])*t;return vm(e)}function at(e,t,o){try{return op(e,t)}catch{return e}}function xm(e,t=.15){return jT(e)>.5?tp(e,t):op(e,t)}function gu(e,t,o){try{return xm(e,t)}catch{return e}}var HS=S(L(),1);var MS=S(L(),1);var OS=S(L(),1),J_=OS.createContext(null),Pm=J_;var UT=S(L(),1);function Ma(){return UT.useContext(Pm)}var eD=typeof Symbol=="function"&&Symbol.for,NS=eD?Symbol.for("mui.nested"):"__THEME_NESTED__";var AS=S(_(),1);function tD(e,t){return typeof t=="function"?t(e):{...e,...t}}function oD(e){let{children:t,theme:o}=e,r=Ma(),n=MS.useMemo(()=>{let a=r===null?{...o}:tD(r,o);return a!=null&&(a[NS]=r!==null),a},[o,r]);return(0,AS.jsx)(Pm.Provider,{value:n,children:t})}var Sm=oD;var Cm=S(L(),1);var kS=S(_(),1),_S=Cm.createContext();function rD({value:e,...t}){return(0,kS.jsx)(_S.Provider,{value:e??!0,...t})}var bs=()=>Cm.useContext(_S)??!1,DS=rD;var Em=S(L(),1);var zS=S(_(),1),jS=Em.createContext(void 0);function nD({value:e,children:t}){return(0,zS.jsx)(jS.Provider,{value:e,children:t})}function aD(e){let{theme:t,name:o,props:r}=e;if(!t||!t.components||!t.components[o])return r;let n=t.components[o];return n.defaultProps?ta(n.defaultProps,r,t.components.mergeClassNameAndStyle):!n.styleOverrides&&!n.variants?ta(n,r,t.components.mergeClassNameAndStyle):r}function IT({props:e,name:t}){let o=Em.useContext(jS);return aD({props:e,name:t,theme:{components:o}})}var Rm=nD;var Tu=S(L(),1),BS=0;function sD(e){let[t,o]=Tu.useState(e),r=e||t;return Tu.useEffect(()=>{t==null&&(BS+=1,o(`mui-${BS}`))},[t]),r}var iD={...Tu},LS=iD.useId;function rn(e){if(LS!==void 0){let t=LS();return e??t}return sD(e)}var US=S(_(),1);function $T(e){let t=Oa(),o=rn()||"",{modularCssLayers:r}=e,n="mui.global, mui.components, mui.theme, mui.custom, mui.sx";return!r||t!==null?n="":typeof r=="string"?n=r.replace(/mui(?!\.)/g,n):n=`@layer ${n};`,oo(()=>{let a=document.querySelector("head");if(!a)return;let s=a.firstChild;if(n){if(s&&s.hasAttribute?.("data-mui-layer-order")&&s.getAttribute("data-mui-layer-order")===o)return;let i=document.createElement("style");i.setAttribute("data-mui-layer-order",o),i.textContent=n,a.prepend(i)}else a.querySelector(`style[data-mui-layer-order="${o}"]`)?.remove()},[n,o]),n?(0,US.jsx)(Xl,{styles:n}):null}var rp=S(_(),1),IS={};function $S(e,t,o,r=!1){return HS.useMemo(()=>{let n=e&&t[e]||t;if(typeof o=="f Line truncated
${i}.classList.add('${f}'.replace('%s', colorScheme));`}let d=c.match(/\[([^[\]]+)\]/);if(d){let[f,u]=d[1].split("=");u||(p+=`${i}.removeAttribute('${f}'.replace('%s', light));
${i}.removeAttribute('${f}'.replace('%s', dark));`),p+=`
${i}.setAttribute('${f}'.replace('%s', colorScheme), ${u?`${u}.replace('%s', colorScheme)`:'""'});`}else c!==".%s"&&(p+=`${i}.setAttribute('${c}', colorScheme);`);return(0,FS.jsx)("script",{suppressHydrationWarning:!0,nonce:typeof window>"u"?l:"",dangerouslySetInnerHTML:{__html:`(function() {
try {
let colorScheme = '';
const mode = localStorage.getItem('${n}') || '${t}';
@@ -34,15 +34,15 @@ try {
if (colorScheme) {
${p}
}
} catch(e){}})();`}},"mui-color-scheme-init")}var Mo=S(I(),1);function pD(){}var cD=({key:e,storageWindow:t})=>(!t&&typeof window<"u"&&(t=window),{get(o){if(typeof window>"u")return;if(!t)return o;let r;try{r=t.localStorage.getItem(e)}catch{}return r||o},set:o=>{if(t)try{t.localStorage.setItem(e,o)}catch{}},subscribe:o=>{if(!t)return pD;let r=n=>{let a=n.newValue;n.key===e&&o(a)};return t.addEventListener("storage",r),()=>{t.removeEventListener("storage",r)}}}),yS=cD;function PT(){}function hS(e){if(typeof window<"u"&&typeof window.matchMedia=="function"&&e==="system")return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function gS(e,t){if(e.mode==="light"||e.mode==="system"&&e.systemMode==="light")return t("light");if(e.mode==="dark"||e.mode==="system"&&e.systemMode==="dark")return t("dark")}function uD(e){return gS(e,t=>{if(t==="light")return e.lightColorScheme;if(t==="dark")return e.darkColorScheme})}function ST(e){let{defaultMode:t="light",defaultLightColorScheme:o,defaultDarkColorScheme:r,supportedColorSchemes:n=[],modeStorageKey:a=su,colorSchemeStorageKey:i=lu,storageWindow:s=typeof window>"u"?void 0:window,storageManager:l=yS,noSsr:p=!1}=e,c=n.join(","),d=n.length>1,f=Mo.useMemo(()=>l?.({key:a,storageWindow:s}),[l,a,s]),u=Mo.useMemo(()=>l?.({key:`${i}-light`,storageWindow:s}),[l,i,s]),g=Mo.useMemo(()=>l?.({key:`${i}-dark`,storageWindow:s}),[l,i,s]),[x,v]=Mo.useState(()=>{let R=f?.get(t)||t,N=u?.get(o)||o,w=g?.get(r)||r;return{mode:R,systemMode:hS(R),lightColorScheme:N,darkColorScheme:w}}),[m,y]=Mo.useState(p||!d);Mo.useEffect(()=>{y(!0)},[]);let h=uD(x),T=Mo.useCallback(R=>{v(N=>{if(R===N.mode)return N;let w=R??t;return f?.set(w),{...N,mode:w,systemMode:hS(w)}})},[f,t]),P=Mo.useCallback(R=>{R?typeof R=="string"?R&&!c.includes(R)?console.error(`\`${R}\` does not exist in \`theme.colorSchemes\`.`):v(N=>{let w={...N};return gS(N,A=>{A==="light"&&(u?.set(R),w.lightColorScheme=R),A==="dark"&&(g?.set(R),w.darkColorScheme=R)}),w}):v(N=>{let w={...N},A=R.light===null?o:R.light,b=R.dark===null?r:R.dark;return A&&(c.includes(A)?(w.lightColorScheme=A,u?.set(A)):console.error(`\`${A}\` does not exist in \`theme.colorSchemes\`.`)),b&&(c.includes(b)?(w.darkColorScheme=b,g?.set(b)):console.error(`\`${b}\` does not exist in \`theme.colorSchemes\`.`)),w}):v(N=>(u?.set(o),g?.set(r),{...N,lightColorScheme:o,darkColorScheme:r}))},[c,u,g,o,r]),C=Mo.useCallback(R=>{x.mode==="system"&&v(N=>{let w=R?.matches?"dark":"light";return N.systemMode===w?N:{...N,systemMode:w}})},[x.mode]),E=Mo.useRef(C);return E.current=C,Mo.useEffect(()=>{if(typeof window.matchMedia!="function"||!d)return;let R=(...w)=>E.current(...w),N=window.matchMedia("(prefers-color-scheme: dark)");return N.addListener(R),R(N),()=>{N.removeListener(R)}},[d]),Mo.useEffect(()=>{if(d){let R=f?.subscribe(A=>{(!A||["light","dark","system"].includes(A))&&T(A||t)})||PT,N=u?.subscribe(A=>{(!A||c.match(A))&&P({light:A})})||PT,w=g?.subscribe(A=>{(!A||c.match(A))&&P({dark:A})})||PT;return()=>{R(),N(),w()}}},[P,T,c,t,s,d,f,u,g]),{...x,mode:m?x.mode:void 0,systemMode:m?x.systemMode:void 0,colorScheme:m?h:void 0,setMode:T,setColorScheme:P}}var Ql=S(z(),1),fD="*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function um(e){let{themeId:t,theme:o={},modeStorageKey:r=su,colorSchemeStorageKey:n=lu,disableTransitionOnChange:a=!1,defaultColorScheme:i,resolveTheme:s}=e,l={allColorSchemes:[],colorScheme:void 0,darkColorScheme:void 0,lightColorScheme:void 0,mode:void 0,setColorScheme:()=>{},setMode:()=>{},systemMode:void 0},p=Ao.createContext(void 0),c=()=>Ao.useContext(p)||l,d={},f={};function u(m){let{children:y,theme:h,modeStorageKey:T=r,colorSchemeStorageKey:P=n,disableTransitionOnChange:C=a,storageManager:E,storageWindow:R=typeof window>"u"?void 0:window,documentNode:N=typeof document>"u"?void 0:document,colorSchemeNode:w=typeof document>"u"?void 0:document.documentElement,disableNestedContext:A=!1,disableStyleSheetGeneration:b=!1,defaultMode:O="system",forceThemeRerender:M=!1,noSsr:D}=m,_=Ao.useRef(!1),q=Na(),Z=Ao.useContext(p),F=!!Z&&!A,le=Ao.useMemo(()=>h||(typeof o=="function"?o():o),[h]),pe=le[t],se=pe||le,{colorSchemes:oe=d,components:Ce=f,cssVarPrefix:de}=se,ne=Object.keys(oe).filter(Xe=>!!oe[Xe]).join(","),ve=Ao.useMemo(()=>ne.split(","),[ne]),Te=typeof i=="string"?i:i.light,Ee=typeof i=="string"?i:i.dark,ue=oe[Te]&&oe[Ee]?O:oe[se.defaultColorScheme]?.palette?.mode||se.palette?.mode,{mode:ye,setMode:be,systemMode:H,lightColorScheme:L,darkColorScheme:Pe,colorScheme:Me,setColorScheme:Se}=ST({supportedColorSchemes:ve,defaultLightColorScheme:Te,defaultDarkColorScheme:Ee,modeStorageKey:T,colorSchemeStorageKey:P,defaultMode:ue,storageManager:E,storageWindow:R,noSsr:D}),Oe=ye,qe=Me;F&&(Oe=Z.mode,qe=Z.colorScheme);let ot=qe||se.defaultColorScheme;se.vars&&!M&&(ot=se.defaultColorScheme);let Ge=Ao.useMemo(()=>{let Xe=se.generateThemeVars?.()||se.varsLine truncated
} catch(e){}})();`}},"mui-color-scheme-init")}var ko=S(L(),1);function cD(){}var uD=({key:e,storageWindow:t})=>(!t&&typeof window<"u"&&(t=window),{get(o){if(typeof window>"u")return;if(!t)return o;let r;try{r=t.localStorage.getItem(e)}catch{}return r||o},set:o=>{if(t)try{t.localStorage.setItem(e,o)}catch{}},subscribe:o=>{if(!t)return cD;let r=n=>{let a=n.newValue;n.key===e&&o(a)};return t.addEventListener("storage",r),()=>{t.removeEventListener("storage",r)}}}),qS=uD;function VT(){}function GS(e){if(typeof window<"u"&&typeof window.matchMedia=="function"&&e==="system")return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function YS(e,t){if(e.mode==="light"||e.mode==="system"&&e.systemMode==="light")return t("light");if(e.mode==="dark"||e.mode==="system"&&e.systemMode==="dark")return t("dark")}function fD(e){return YS(e,t=>{if(t==="light")return e.lightColorScheme;if(t==="dark")return e.darkColorScheme})}function FT(e){let{defaultMode:t="light",defaultLightColorScheme:o,defaultDarkColorScheme:r,supportedColorSchemes:n=[],modeStorageKey:a=bu,colorSchemeStorageKey:s=vu,storageWindow:i=typeof window>"u"?void 0:window,storageManager:l=qS,noSsr:p=!1}=e,c=n.join(","),d=n.length>1,f=ko.useMemo(()=>l?.({key:a,storageWindow:i}),[l,a,i]),u=ko.useMemo(()=>l?.({key:`${s}-light`,storageWindow:i}),[l,s,i]),g=ko.useMemo(()=>l?.({key:`${s}-dark`,storageWindow:i}),[l,s,i]),[v,b]=ko.useState(()=>{let R=f?.get(t)||t,O=u?.get(o)||o,w=g?.get(r)||r;return{mode:R,systemMode:GS(R),lightColorScheme:O,darkColorScheme:w}}),[m,y]=ko.useState(p||!d);ko.useEffect(()=>{y(!0)},[]);let h=fD(v),T=ko.useCallback(R=>{b(O=>{if(R===O.mode)return O;let w=R??t;return f?.set(w),{...O,mode:w,systemMode:GS(w)}})},[f,t]),P=ko.useCallback(R=>{R?typeof R=="string"?R&&!c.includes(R)?console.error(`\`${R}\` does not exist in \`theme.colorSchemes\`.`):b(O=>{let w={...O};return YS(O,A=>{A==="light"&&(u?.set(R),w.lightColorScheme=R),A==="dark"&&(g?.set(R),w.darkColorScheme=R)}),w}):b(O=>{let w={...O},A=R.light===null?o:R.light,x=R.dark===null?r:R.dark;return A&&(c.includes(A)?(w.lightColorScheme=A,u?.set(A)):console.error(`\`${A}\` does not exist in \`theme.colorSchemes\`.`)),x&&(c.includes(x)?(w.darkColorScheme=x,g?.set(x)):console.error(`\`${x}\` does not exist in \`theme.colorSchemes\`.`)),w}):b(O=>(u?.set(o),g?.set(r),{...O,lightColorScheme:o,darkColorScheme:r}))},[c,u,g,o,r]),C=ko.useCallback(R=>{v.mode==="system"&&b(O=>{let w=R?.matches?"dark":"light";return O.systemMode===w?O:{...O,systemMode:w}})},[v.mode]),E=ko.useRef(C);return E.current=C,ko.useEffect(()=>{if(typeof window.matchMedia!="function"||!d)return;let R=(...w)=>E.current(...w),O=window.matchMedia("(prefers-color-scheme: dark)");return O.addListener(R),R(O),()=>{O.removeListener(R)}},[d]),ko.useEffect(()=>{if(d){let R=f?.subscribe(A=>{(!A||["light","dark","system"].includes(A))&&T(A||t)})||VT,O=u?.subscribe(A=>{(!A||c.match(A))&&P({light:A})})||VT,w=g?.subscribe(A=>{(!A||c.match(A))&&P({dark:A})})||VT;return()=>{R(),O(),w()}}},[P,T,c,t,i,d,f,u,g]),{...v,mode:m?v.mode:void 0,systemMode:m?v.systemMode:void 0,colorScheme:m?h:void 0,setMode:T,setColorScheme:P}}var ap=S(_(),1),dD="*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function Om(e){let{themeId:t,theme:o={},modeStorageKey:r=bu,colorSchemeStorageKey:n=vu,disableTransitionOnChange:a=!1,defaultColorScheme:s,resolveTheme:i}=e,l={allColorSchemes:[],colorScheme:void 0,darkColorScheme:void 0,lightColorScheme:void 0,mode:void 0,setColorScheme:()=>{},setMode:()=>{},systemMode:void 0},p=_o.createContext(void 0),c=()=>_o.useContext(p)||l,d={},f={};function u(m){let{children:y,theme:h,modeStorageKey:T=r,colorSchemeStorageKey:P=n,disableTransitionOnChange:C=a,storageManager:E,storageWindow:R=typeof window>"u"?void 0:window,documentNode:O=typeof document>"u"?void 0:document,colorSchemeNode:w=typeof document>"u"?void 0:document.documentElement,disableNestedContext:A=!1,disableStyleSheetGeneration:x=!1,defaultMode:N="system",forceThemeRerender:k=!1,noSsr:z}=m,j=_o.useRef(!1),K=Ma(),U=_o.useContext(p),V=!!U&&!A,re=_o.useMemo(()=>h||(typeof o=="function"?o():o),[h]),pe=re[t],ce=pe||re,{colorSchemes:ae=d,components:Ee=f,cssVarPrefix:de}=ce,le=Object.keys(ae).filter(Qe=>!!ae[Qe]).join(","),xe=_o.useMemo(()=>le.split(","),[le]),Te=typeof s=="string"?s:s.light,Re=typeof s=="string"?s:s.dark,fe=ae[Te]&&ae[Re]?N:ae[ce.defaultColorScheme]?.palette?.mode||ce.palette?.mode,{mode:ye,setMode:ve,systemMode:Y,lightColorScheme:H,darkColorScheme:Se,colorScheme:Ae,setColorScheme:Ce}=FT({supportedColorSchemes:xe,defaultLightColorScheme:Te,defaultDarkColorScheme:Re,modeStorageKey:T,colorSchemeStorageKey:P,defaultMode:fe,storageManager:E,storageWindow:R,noSsr:z}),Oe=ye,Ye=Ae;V&&(Oe=U.mode,Ye=U.colorScheme);let rt=Ye||ce.defaultColorScheme;ce.vars&&!k&&(rt=ce.defaultColorScheme);let We=_o.useMemo(()=>{let Qe=ce.generateThemeVars?.()||ce.varsLine truncated
const theme = ${JSON.stringify(t,null,2)};
theme.breakpoints = createBreakpoints(theme.breakpoints || {});
theme.transitions = createTransitions(theme.transitions || {});
export default theme;`}function kS(e){return typeof e=="number"?`${(e*100).toFixed(0)}%`:`calc((${e}) * 100%)`}var LD=e=>{if(!Number.isNaN(+e))return+e;let t=e.match(/\d*\.?\d+/g);if(!t)return 0;let o=0;for(let r=0;r<t.length;r+=1)o+=+t[r];return o};function ID(e){Object.assign(e,{alpha(t,o){let r=this||e;return r.colorSpace?`oklch(from ${t} l c h / ${typeof o=="string"?`calc(${o})`:o})`:r.vars?`rgba(${t.replace(/var\(--([^,\s)]+)(?:,[^)]+)?\)+/g,"var(--$1Channel)")} / ${typeof o=="string"?`calc(${o})`:o})`:yi(t,LD(o))},lighten(t,o){let r=this||e;return r.colorSpace?`color-mix(in ${r.colorSpace}, ${t}, #fff ${kS(o)})`:Wl(t,o)},darken(t,o){let r=this||e;return r.colorSpace?`color-mix(in ${r.colorSpace}, ${t}, #000 ${kS(o)})`:Yl(t,o)}})}function $D(e={},...t){let{breakpoints:o,mixins:r={},spacing:n,palette:a={},transitions:i={},typography:s={},shape:l,colorSpace:p,...c}=e;if(e.vars&&e.generateThemeVars===void 0)throw new Error(go(20));let d=Ps({...a,colorSpace:p}),f=wn(e),u=Qe(f,{mixins:OT(f.breakpoints,r),palette:d,shadows:NS.slice(),typography:cu(d,s),transitions:NT(i),zIndex:{...AS}});return u=Qe(u,c),u=t.reduce((g,x)=>Qe(g,x),u),u.unstable_sxConfig={...On,...c?.unstable_sxConfig},u.unstable_sx=function(x){return yr({sx:x,theme:this})},u.toRuntimeSource=Tm,ID(u),u}var uu=$D;function Jl(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}var HD=[...Array(25)].map((e,t)=>{if(t===0)return"none";let o=Jl(t);return`linear-gradient(rgba(255 255 255 / ${o}), rgba(255 255 255 / ${o}))`});function MT(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function AT(e){return e==="dark"?HD:[]}function kT(e){let{palette:t={mode:"light"},opacity:o,overlays:r,colorSpace:n,...a}=e,i=Ps({...t,colorSpace:n});return{palette:i,opacity:{...MT(i.mode),...o},overlays:r||AT(i.mode),...a}}function DT(e){return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!e[1]?.match(/(mode|contrastThreshold|tonalOffset)/)}var VD=e=>[...[...Array(25)].map((t,o)=>`--${e?`${e}-`:""}overlays-${o}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],DS=VD;var _S=e=>(t,o)=>{let r=e.rootSelector||":root",n=e.colorSchemeSelector,a=n;if(n==="class"&&(a=".%s"),n==="data"&&(a="[data-%s]"),n?.startsWith("data-")&&!n.includes("%s")&&(a=`[${n}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){let i={};return DS(e.cssVarPrefix).forEach(s=>{i[s]=o[s],delete o[s]}),a==="media"?{[r]:o,"@media (prefers-color-scheme: dark)":{[r]:i}}:a?{[a.replace("%s",t)]:i,[`${r}, ${a.replace("%s",t)}`]:o}:{[r]:{...o,...i}}}if(a&&a!=="media")return`${r}, ${a.replace("%s",String(t))}`}else if(t){if(a==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[r]:o}};if(a)return a.replace("%s",String(t))}return r};function FD(e,t){t.forEach(o=>{e[o]||(e[o]={})})}function V(e,t,o){!e[t]&&o&&(e[t]=o)}function fu(e){return typeof e!="string"||!e.startsWith("hsl")?e:gT(e)}function Ma(e,t){`${t}Channel`in e||(e[`${t}Channel`]=Gl(fu(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().
To suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function qD(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}var ta=e=>{try{return e()}catch{}},GD=(e="mui")=>fm(e);function _T(e,t,o,r,n){if(!o)return;o=o===!0?{}:o;let a=n==="dark"?"dark":"light";if(!r){t[n]=kT({...o,palette:{mode:a,...o?.palette},colorSpace:e});return}let{palette:i,...s}=uu({...r,palette:{mode:a,...o?.palette},colorSpace:e});return t[n]={...o,palette:i,opacity:{...MT(a),...o?.opacity},overlays:o?.overlays||AT(a)},s}function zT(e={},...t){let{colorSchemes:o={light:!0},defaultColorScheme:r,disableCssColorScheme:n=!1,cssVarPrefix:a="mui",nativeColor:i=!1,shouldSkipGeneratingVar:s=DT,colorSchemeSelector:l=o.light&&o.dark?"media":void 0,rootSelector:p=":root",...c}=e,d=Object.keys(o)[0],f=r||(o.light&&d!=="light"?"light":d),u=GD(a),{[f]:g,light:x,dark:v,...m}=o,y={...m},h=g;if((f==="dark"&&!("dark"in o)||f==="light"&&!("light"in o))&&(h=!0),!h)throw new Error(go(21,f));let T;i&&(T="oklch");let P=_T(T,y,h,c,f);x&&!y.light&&_T(T,y,x,void 0,"light"),v&&!y.dark&&_T(T,y,v,void 0,"dark");let C={defaultColorScheme:f,...P,cssVarPrefix:a,colorSchemeSelector:l,rootSelector:p,getCssVar:u,colorSchemes:y,font:{...gm(P.typography),...P.font},spacing:qD(c.spacing)};Object.keys(C.colorSchemes).forEach(A=>{let b=C.colorSchemes[A].palette,O=D=>{let _=D.split("-"),q=_[1],Z=_[2];return u(D,b[q][Z])};b.mode==="light"&&(V(b.common,"background","#fff"),V(b.common,"onBackground","#000")),b.mode==="dark"&&(V(b.common,"background","#000"),V(b.common,"onBackground","#fff"));function M(D,_,q){if(T){let Z;return D===hi&&(Z=`transparent ${((1-q)*100).toFixed(0)}%`),D===rt&&(Z=`#000 ${(q*100).toFixed(0)}%`),D===nt&&(Z=`#fff ${(q*100).toFixed(0)}%`),`color-mix(in ${T}, ${_}, ${Z})`}return D(_,q)}if(FD(b,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),b.mode==="light"){V(b.Alert,"errorColor",M(rt,i?u("palette-error-light"):b.error.light,.6)),V(b.Alert,"infoColor",M(rt,i?u("palette-info-light"):b.info.light,.6)),V(b.Alert,"successColor",M(rt,i?u("palette-success-light"):b.success.light,.6)),V(b.Alert,"warningColor",M(rt,i?u("palette-warning-light"):b.warning.light,.6)),V(b.Alert,"errorFilledBg",O("palette-error-main")),V(b.Alert,"infoFilledBg",O("palette-info-main")),V(b.Alert,"successFilledBg",O("palette-success-main")),V(b.Alert,"warningFilledBg",O("palette-warning-main")),V(b.Alert,"errorFilledColor",ta(()=>b.getContrastText(b.error.main))),V(b.Alert,"infoFilledColor",ta(()=>b.getContrastText(b.info.main))),V(b.Alert,"successFilledColor",ta(()=>b.getContrastText(b.success.main))),V(b.Alert,"warningFilledColor",ta(()=>b.getContrastText(b.warning.main))),V(b.Alert,"errorStandardBg",M(nt,i?u("palette-error-light"):b.error.light,.9)),V(b.Alert,"infoStandardBg",M(nt,i?u("palette-info-light"):b.info.light,.9)),V(b.Alert,"successStandardBg",M(nt,i?u("palette-success-light"):b.success.light,.9)),V(b.Alert,"warningStandardBg",M(nt,i?u("palette-warning-light"):b.warning.light,.9)),V(b.Alert,"errorIconColor",O("palette-error-main")),V(b.Alert,"infoIconColor",O("palette-info-main")),V(b.Alert,"successIconColor",O("palette-success-main")),V(b.Alert,"warningIconColor",O("palette-warning-main")),V(b.AppBar,"defaultBg",O("palette-grey-100")),V(b.Avatar,"defaultBg",O("palette-grey-400")),V(b.Button,"inheritContainedBg",O("palette-grey-300")),V(b.Button,"inheritContainedHoverBg",O("palette-grey-A100")),V(b.Chip,"defaultBorder",O("palette-grey-400")),V(b.Chip,"defaultAvatarColor",O("palette-grey-700")),V(b.Chip,"defaultIconColor",O("palette-grey-700")),V(b.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),V(b.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),V(b.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),V(b.LinearProgress,"primaryBg",M(nt,i?u("palette-primary-main"):b.primary.main,.62)),V(b.LinearProgress,"secondaryBg",M(nt,i?u("palette-secondary-main"):b.secondary.main,.62)),V(b.LinearProgress,"errorBg",M(nt,i?u("palette-error-main"):b.error.main,.62)),V(b.LinearProgress,"infoBg",M(nt,i?u("palette-info-main"):b.info.main,.62)),V(b.LinearProgress,"successBg",M(nt,i?u("palette-success-main"):b.success.main,.62)),V(b.LinearProgress,"warningBg",M(nt,i?u("palette-warning-light"):b.warning.main,.62)),V(b.Skeleton,"bg",T?M(hi,i?u("palette-text-primary"):b.text.primary,.11):`rgba(${O("palette-text-primaryChannel")} / 0.11)`),V(b.Slider,"primaryTrack",M(nt,i?u("palette-primary-main"):b.primary.main,.62)),V(b.Slider,"secondaryTrack",M(nt,i?u("palette-secondary-main"):b.secondary.main,.62)),V(b.Slider,"errorTrack",M(nt,i?u("palette-error-main"):b.error.main,.62)),V(b.Slider,"infoTrack",M(nt,i?u("palette-info-main"):b.info.main,.62)),V(b.Slider,"successTrack",M(nt,i?u("palLine truncated
export default theme;`}function lC(e){return typeof e=="number"?`${(e*100).toFixed(0)}%`:`calc((${e}) * 100%)`}var ID=e=>{if(!Number.isNaN(+e))return+e;let t=e.match(/\d*\.?\d+/g);if(!t)return 0;let o=0;for(let r=0;r<t.length;r+=1)o+=+t[r];return o};function $D(e){Object.assign(e,{alpha(t,o){let r=this||e;return r.colorSpace?`oklch(from ${t} l c h / ${typeof o=="string"?`calc(${o})`:o})`:r.vars?`rgba(${t.replace(/var\(--([^,\s)]+)(?:,[^)]+)?\)+/g,"var(--$1Channel)")} / ${typeof o=="string"?`calc(${o})`:o})`:gs(t,ID(o))},lighten(t,o){let r=this||e;return r.colorSpace?`color-mix(in ${r.colorSpace}, ${t}, #fff ${lC(o)})`:op(t,o)},darken(t,o){let r=this||e;return r.colorSpace?`color-mix(in ${r.colorSpace}, ${t}, #000 ${lC(o)})`:tp(t,o)}})}function HD(e={},...t){let{breakpoints:o,mixins:r={},spacing:n,palette:a={},transitions:s={},typography:i={},shape:l,colorSpace:p,...c}=e;if(e.vars&&e.generateThemeVars===void 0)throw new Error(bo(20));let d=Oi({...a,colorSpace:p}),f=Nn(e),u=Je(f,{mixins:WT(f.breakpoints,r),palette:d,shadows:aC.slice(),typography:Pu(d,i),transitions:KT(s),zIndex:{...iC}});return u=Je(u,c),u=t.reduce((g,v)=>Je(g,v),u),u.unstable_sxConfig={...On,...c?.unstable_sxConfig},u.unstable_sx=function(v){return hr({sx:v,theme:this})},u.toRuntimeSource=zm,$D(u),u}var Su=HD;function ip(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}var VD=[...Array(25)].map((e,t)=>{if(t===0)return"none";let o=ip(t);return`linear-gradient(rgba(255 255 255 / ${o}), rgba(255 255 255 / ${o}))`});function QT(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function ZT(e){return e==="dark"?VD:[]}function JT(e){let{palette:t={mode:"light"},opacity:o,overlays:r,colorSpace:n,...a}=e,s=Oi({...t,colorSpace:n});return{palette:s,opacity:{...QT(s.mode),...o},overlays:r||ZT(s.mode),...a}}function eb(e){return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!e[1]?.match(/(mode|contrastThreshold|tonalOffset)/)}var FD=e=>[...[...Array(25)].map((t,o)=>`--${e?`${e}-`:""}overlays-${o}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],pC=FD;var cC=e=>(t,o)=>{let r=e.rootSelector||":root",n=e.colorSchemeSelector,a=n;if(n==="class"&&(a=".%s"),n==="data"&&(a="[data-%s]"),n?.startsWith("data-")&&!n.includes("%s")&&(a=`[${n}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){let s={};return pC(e.cssVarPrefix).forEach(i=>{s[i]=o[i],delete o[i]}),a==="media"?{[r]:o,"@media (prefers-color-scheme: dark)":{[r]:s}}:a?{[a.replace("%s",t)]:s,[`${r}, ${a.replace("%s",t)}`]:o}:{[r]:{...o,...s}}}if(a&&a!=="media")return`${r}, ${a.replace("%s",String(t))}`}else if(t){if(a==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[r]:o}};if(a)return a.replace("%s",String(t))}return r};function qD(e,t){t.forEach(o=>{e[o]||(e[o]={})})}function X(e,t,o){!e[t]&&o&&(e[t]=o)}function Cu(e){return typeof e!="string"||!e.startsWith("hsl")?e:LT(e)}function Aa(e,t){`${t}Channel`in e||(e[`${t}Channel`]=ep(Cu(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().
To suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function GD(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}var oa=e=>{try{return e()}catch{}},YD=(e="mui")=>Nm(e);function tb(e,t,o,r,n){if(!o)return;o=o===!0?{}:o;let a=n==="dark"?"dark":"light";if(!r){t[n]=JT({...o,palette:{mode:a,...o?.palette},colorSpace:e});return}let{palette:s,...i}=Su({...r,palette:{mode:a,...o?.palette},colorSpace:e});return t[n]={...o,palette:s,opacity:{...QT(a),...o?.opacity},overlays:o?.overlays||ZT(a)},i}function ob(e={},...t){let{colorSchemes:o={light:!0},defaultColorScheme:r,disableCssColorScheme:n=!1,cssVarPrefix:a="mui",nativeColor:s=!1,shouldSkipGeneratingVar:i=eb,colorSchemeSelector:l=o.light&&o.dark?"media":void 0,rootSelector:p=":root",...c}=e,d=Object.keys(o)[0],f=r||(o.light&&d!=="light"?"light":d),u=YD(a),{[f]:g,light:v,dark:b,...m}=o,y={...m},h=g;if((f==="dark"&&!("dark"in o)||f==="light"&&!("light"in o))&&(h=!0),!h)throw new Error(bo(21,f));let T;s&&(T="oklch");let P=tb(T,y,h,c,f);v&&!y.light&&tb(T,y,v,void 0,"light"),b&&!y.dark&&tb(T,y,b,void 0,"dark");let C={defaultColorScheme:f,...P,cssVarPrefix:a,colorSchemeSelector:l,rootSelector:p,getCssVar:u,colorSchemes:y,font:{...Dm(P.typography),...P.font},spacing:GD(c.spacing)};Object.keys(C.colorSchemes).forEach(A=>{let x=C.colorSchemes[A].palette,N=z=>{let j=z.split("-"),K=j[1],U=j[2];return u(z,x[K][U])};x.mode==="light"&&(X(x.common,"background","#fff"),X(x.common,"onBackground","#000")),x.mode==="dark"&&(X(x.common,"background","#000"),X(x.common,"onBackground","#fff"));function k(z,j,K){if(T){let U;return z===Ts&&(U=`transparent ${((1-K)*100).toFixed(0)}%`),z===nt&&(U=`#000 ${(K*100).toFixed(0)}%`),z===at&&(U=`#fff ${(K*100).toFixed(0)}%`),`color-mix(in ${T}, ${j}, ${U})`}return z(j,K)}if(qD(x,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),x.mode==="light"){X(x.Alert,"errorColor",k(nt,s?u("palette-error-light"):x.error.light,.6)),X(x.Alert,"infoColor",k(nt,s?u("palette-info-light"):x.info.light,.6)),X(x.Alert,"successColor",k(nt,s?u("palette-success-light"):x.success.light,.6)),X(x.Alert,"warningColor",k(nt,s?u("palette-warning-light"):x.warning.light,.6)),X(x.Alert,"errorFilledBg",N("palette-error-main")),X(x.Alert,"infoFilledBg",N("palette-info-main")),X(x.Alert,"successFilledBg",N("palette-success-main")),X(x.Alert,"warningFilledBg",N("palette-warning-main")),X(x.Alert,"errorFilledColor",oa(()=>x.getContrastText(x.error.main))),X(x.Alert,"infoFilledColor",oa(()=>x.getContrastText(x.info.main))),X(x.Alert,"successFilledColor",oa(()=>x.getContrastText(x.success.main))),X(x.Alert,"warningFilledColor",oa(()=>x.getContrastText(x.warning.main))),X(x.Alert,"errorStandardBg",k(at,s?u("palette-error-light"):x.error.light,.9)),X(x.Alert,"infoStandardBg",k(at,s?u("palette-info-light"):x.info.light,.9)),X(x.Alert,"successStandardBg",k(at,s?u("palette-success-light"):x.success.light,.9)),X(x.Alert,"warningStandardBg",k(at,s?u("palette-warning-light"):x.warning.light,.9)),X(x.Alert,"errorIconColor",N("palette-error-main")),X(x.Alert,"infoIconColor",N("palette-info-main")),X(x.Alert,"successIconColor",N("palette-success-main")),X(x.Alert,"warningIconColor",N("palette-warning-main")),X(x.AppBar,"defaultBg",N("palette-grey-100")),X(x.Avatar,"defaultBg",N("palette-grey-400")),X(x.Button,"inheritContainedBg",N("palette-grey-300")),X(x.Button,"inheritContainedHoverBg",N("palette-grey-A100")),X(x.Chip,"defaultBorder",N("palette-grey-400")),X(x.Chip,"defaultAvatarColor",N("palette-grey-700")),X(x.Chip,"defaultIconColor",N("palette-grey-700")),X(x.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),X(x.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),X(x.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),X(x.LinearProgress,"primaryBg",k(at,s?u("palette-primary-main"):x.primary.main,.62)),X(x.LinearProgress,"secondaryBg",k(at,s?u("palette-secondary-main"):x.secondary.main,.62)),X(x.LinearProgress,"errorBg",k(at,s?u("palette-error-main"):x.error.main,.62)),X(x.LinearProgress,"infoBg",k(at,s?u("palette-info-main"):x.info.main,.62)),X(x.LinearProgress,"successBg",k(at,s?u("palette-success-main"):x.success.main,.62)),X(x.LinearProgress,"warningBg",k(at,s?u("palette-warning-light"):x.warning.main,.62)),X(x.Skeleton,"bg",T?k(Ts,s?u("palette-text-primary"):x.text.primary,.11):`rgba(${N("palette-text-primaryChannel")} / 0.11)`),X(x.Slider,"primaryTrack",k(at,s?u("palette-primary-main"):x.primary.main,.62)),X(x.Slider,"secondaryTrack",k(at,s?u("palette-secondary-main"):x.secondary.main,.62)),X(x.Slider,"errorTrack",k(at,s?u("palette-error-main"):x.error.main,.62)),X(x.Slider,"infoTrack",k(at,s?u("palette-info-main"):x.info.main,.62)),X(x.Slider,"successTrack",k(at,s?u("palLine truncated
0% {
transform: scale(0);
opacity: 0.1;
@@ -52,7 +52,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
transform: scale(1);
opacity: 0.3;
}
`,F_=No`
`,qz=Ao`
0% {
opacity: 1;
}
@@ -60,7 +60,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
100% {
opacity: 0;
}
`,q_=No`
`,Gz=Ao`
0% {
transform: scale(1);
}
@@ -72,23 +72,23 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
100% {
transform: scale(1);
}
`,G_=k("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),Y_=k(yC,{name:"MuiTouchRipple",slot:"Ripple"})`
`,Yz=M("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),Wz=M(qC,{name:"MuiTouchRipple",slot:"Ripple"})`
opacity: 0;
position: absolute;
&.${Ar.rippleVisible} {
&.${kr.rippleVisible} {
opacity: 0.3;
transform: scale(1);
animation-name: ${V_};
animation-duration: ${KT}ms;
animation-name: ${Fz};
animation-duration: ${gb}ms;
animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut};
}
&.${Ar.ripplePulsate} {
&.${kr.ripplePulsate} {
animation-duration: ${({theme:e})=>e.transitions.duration.shorter}ms;
}
& .${Ar.child} {
& .${kr.child} {
opacity: 1;
display: block;
width: 100%;
@@ -97,25 +97,25 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
background-color: currentColor;
}
& .${Ar.childLeaving} {
& .${kr.childLeaving} {
opacity: 0;
animation-name: ${F_};
animation-duration: ${KT}ms;
animation-name: ${qz};
animation-duration: ${gb}ms;
animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut};
}
& .${Ar.childPulsate} {
& .${kr.childPulsate} {
position: absolute;
/* @noflip */
left: 0px;
top: 0;
animation-name: ${q_};
animation-name: ${Gz};
animation-duration: 2500ms;
animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut};
animation-iteration-count: infinite;
animation-delay: 200ms;
}
`,W_=po.forwardRef(function(t,o){let r=Q({props:t,name:"MuiTouchRipple"}),{center:n=!1,classes:a={},className:i,...s}=r,[l,p]=po.useState([]),c=po.useRef(0),d=po.useRef(null);po.useEffect(()=>{d.current&&(d.current(),d.current=null)},[l]);let f=po.useRef(!1),u=or(),g=po.useRef(null),x=po.useRef(null),v=po.useCallback(T=>{let{pulsate:P,rippleX:C,rippleY:E,rippleSize:R,cb:N}=T;p(w=>[...w,(0,Hm.jsx)(Y_,{classes:{ripple:$(a.ripple,Ar.ripple),rippleVisible:$(a.rippleVisible,Ar.rippleVisible),ripplePulsate:$(a.ripplePulsate,Ar.ripplePulsate),child:$(a.child,Ar.child),childLeaving:$(a.childLeaving,Ar.childLeaving),childPulsate:$(a.childPulsate,Ar.childPulsate)},timeout:KT,pulsate:P,rippleX:C,rippleY:E,rippleSize:R},c.current)]),c.current+=1,d.current=N},[a]),m=po.useCallback((T={},P={},C=()=>{})=>{let{pulsate:E=!1,center:R=n||P.pulsate,fakeElement:N=!1}=P;if(T?.type==="mousedown"&&f.current){f.current=!1;return}T?.type==="touchstart"&&(f.current=!0);let w=N?null:x.current,A=w?w.getBoundingClientRect():{width:0,height:0,left:0,top:0},b,O,M;if(R||T===void 0||T.clientX===0&&T.clientY===0||!T.clientX&&!T.touches)b=Math.round(A.width/2),O=Math.round(A.height/2);else{let{clientX:D,clientY:_}=T.touches&&T.touches.length>0?T.touches[0]:T;b=Math.round(D-A.left),O=Math.round(_-A.top)}if(R)M=Math.sqrt((2*A.width**2+A.height**2)/3),M%2===0&&(M+=1);else{let D=Math.max(Math.abs((w?w.clientWidth:0)-b),b)*2+2,_=Math.max(Math.abs((w?w.clientHeight:0)-O),O)*2+2;M=Math.sqrt(D**2+_**2)}T?.touches?g.current===null&&(g.current=()=>{v({pulsate:E,rippleX:b,rippleY:O,rippleSize:M,cb:C})},u.start(H_,()=>{g.current&&(g.current(),g.current=null)})):v({pulsate:E,rippleX:b,rippleY:O,rippleSize:M,cb:C})},[n,v,u]),y=po.useCallback(()=>{m({},{pulsate:!0})},[m]),h=po.useCallback((T,P)=>{if(u.clear(),T?.type==="touchend"&&g.current){g.current(),g.current=null,u.start(0,()=>{h(T,P)});return}g.current=null,p(C=>C.length>0?C.slice(1):C),d.current=P},[u]);return po.useImperativeHandle(o,()=>({pulsate:y,start:m,stop:h}),[y,m,h]),(0,Hm.jsx)(G_,{className:$(Ar.root,a.root,i),ref:x,...s,children:(0,Hm.jsx)(qT,{component:null,exit:!0,children:l})})}),hC=W_;function gC(e){return Y("MuiButtonBase",e)}var X_=W("MuiButtonBase",["root","disabled","focusVisible"]),TC=X_;var Vm=S(z(),1),K_=e=>{let{disabled:t,focusVisible:o,focusVisibleClassName:r,classes:n}=e,i=X({root:["root",t&&"disabled",o&&"focusVisible"]},gC,n);return o&&r&&(i.root+=` ${r}`),i},Q_=k("button",{name:"MuiButtonBase",slot:"Root"})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${TC.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),Z_=ra.forwardRef(function(t,o){let r=Q({props:t,name:"MuiButtonBase"}),{action:n,centerRipple:a=!1,children:i,className:s,component:l="button",disabled:p=!1,disableRipple:c=!1,disableTouchRipple:d=!1,focusRipple:f=!1,focusVisibleClassName:u,LinkComponent:g="a",onBlur:x,onClick:v,onContextMenu:m,onDragLeave:y,onFocus:h,onFocusVisible:T,onKeyDown:P,onKeyUp:C,onMouseDown:E,onMouseLeave:R,onMouseUp:N,onTouchEnd:w,onTouchMove:A,onTouchStart:b,tabIndex:O=0,TouchRippleProps:M,touchRippleRef:D,type:_,...q}=r,Z=ra.useRef(null),F=Im(),le=Ot(F.ref,D),[pe,se]=ra.useState(!1);p&&pe&&se(!1),ra.useImperativeHandle(n,()=>({focusVisible:()=>{se(!0),Z.current.focus()}}),[]);let oe=F.shouldMount&&!c&&!p;ra.useEffect(()=>{pe&&f&&!c&&F.pulsate()},[c,f,pe,F]);let Ce=ja(F,"start",E,d),de=ja(F,"stop",m,d),ne=ja(F,"stop",y,d),ve=ja(F,"stop",N,d),Te=ja(F,"stop",ce=>{pe&&ce.preventDefault(),R&&R(ce)},d),Ee=ja(F,"start",b,d),ue=ja(F,"stop",w,d),ye=ja(F,"stop",A,d),be=ja(F,"stop",ce=>{Nn(ce.target)||se(!1),x&&x(ce)},!1),H=Ti(ce=>{Z.current||(Z.current=ce.currentTarget),Nn(ce.target)&&(se(!0),T&&T(ce)),h&&h(ce)}),L=()=>{let ce=Z.current;return ce?ce.tagName==="BUTTON"?!1:!(ce.tagName==="A"&&ce.href):l&&l!=="button"},Pe=Ti(ce=>{f&&!ce.repeat&&pe&&ce.key===" "&&F.stop(ce,()=>{F.start(ce)}),ce.target===ce.currentTarget&&L()&&ce.key===" "&&ce.preventDefault(),P&&P(ce),ce.target===ce.currentTarget&&L()&&ce.key==="Enter"&&!p&&(ce.preventDefault(),v&&v(ce))}),Me=Ti(ce=>{f&&ce.key===" "&&pe&&!ce.defaultPrevented&&F.stop(ce,()=>{F.pulsate(ce)}),C&&C(ce),v&&ce.target===ce.currentTarget&&L()&&ce.key===" "&&!ce.defaultPrevented&&!p&&v(ce)}),Se=l;Se==="button"&&(q.href||q.to)&&(Se=g);let Oe={};if(Se==="button"){let ce=!!q.formAction;Oe.type=_===void 0&&!ce?"button":_,Oe.disabled=p}else!q.href&&!q.to&&(Oe.role="button"),p&&(Oe["aria-disabled"]=p);let qe=Ot(o,Z),ot={...r,centerRipple:a,component:l,disabled:p,disableRipple:c,disableTouchRipple:d,focusRipple:f,tabIndex:O,focusVisible:pe},Ge=K_(ot);return(0,Vm. Line truncated
`,Xz=uo.forwardRef(function(t,o){let r=W({props:t,name:"MuiTouchRipple"}),{center:n=!1,classes:a={},className:s,...i}=r,[l,p]=uo.useState([]),c=uo.useRef(0),d=uo.useRef(null);uo.useEffect(()=>{d.current&&(d.current(),d.current=null)},[l]);let f=uo.useRef(!1),u=nr(),g=uo.useRef(null),v=uo.useRef(null),b=uo.useCallback(T=>{let{pulsate:P,rippleX:C,rippleY:E,rippleSize:R,cb:O}=T;p(w=>[...w,(0,ny.jsx)(Wz,{classes:{ripple:B(a.ripple,kr.ripple),rippleVisible:B(a.rippleVisible,kr.rippleVisible),ripplePulsate:B(a.ripplePulsate,kr.ripplePulsate),child:B(a.child,kr.child),childLeaving:B(a.childLeaving,kr.childLeaving),childPulsate:B(a.childPulsate,kr.childPulsate)},timeout:gb,pulsate:P,rippleX:C,rippleY:E,rippleSize:R},c.current)]),c.current+=1,d.current=O},[a]),m=uo.useCallback((T={},P={},C=()=>{})=>{let{pulsate:E=!1,center:R=n||P.pulsate,fakeElement:O=!1}=P;if(T?.type==="mousedown"&&f.current){f.current=!1;return}T?.type==="touchstart"&&(f.current=!0);let w=O?null:v.current,A=w?w.getBoundingClientRect():{width:0,height:0,left:0,top:0},x,N,k;if(R||T===void 0||T.clientX===0&&T.clientY===0||!T.clientX&&!T.touches)x=Math.round(A.width/2),N=Math.round(A.height/2);else{let{clientX:z,clientY:j}=T.touches&&T.touches.length>0?T.touches[0]:T;x=Math.round(z-A.left),N=Math.round(j-A.top)}if(R)k=Math.sqrt((2*A.width**2+A.height**2)/3),k%2===0&&(k+=1);else{let z=Math.max(Math.abs((w?w.clientWidth:0)-x),x)*2+2,j=Math.max(Math.abs((w?w.clientHeight:0)-N),N)*2+2;k=Math.sqrt(z**2+j**2)}T?.touches?g.current===null&&(g.current=()=>{b({pulsate:E,rippleX:x,rippleY:N,rippleSize:k,cb:C})},u.start(Vz,()=>{g.current&&(g.current(),g.current=null)})):b({pulsate:E,rippleX:x,rippleY:N,rippleSize:k,cb:C})},[n,b,u]),y=uo.useCallback(()=>{m({},{pulsate:!0})},[m]),h=uo.useCallback((T,P)=>{if(u.clear(),T?.type==="touchend"&&g.current){g.current(),g.current=null,u.start(0,()=>{h(T,P)});return}g.current=null,p(C=>C.length>0?C.slice(1):C),d.current=P},[u]);return uo.useImperativeHandle(o,()=>({pulsate:y,start:m,stop:h}),[y,m,h]),(0,ny.jsx)(Yz,{className:B(kr.root,a.root,s),ref:v,...i,children:(0,ny.jsx)(fb,{component:null,exit:!0,children:l})})}),GC=Xz;function YC(e){return F("MuiButtonBase",e)}var Kz=G("MuiButtonBase",["root","disabled","focusVisible"]),WC=Kz;var ay=S(_(),1),Qz=e=>{let{disabled:t,focusVisible:o,focusVisibleClassName:r,classes:n}=e,s=q({root:["root",t&&"disabled",o&&"focusVisible"]},YC,n);return o&&r&&(s.root+=` ${r}`),s},Zz=M("button",{name:"MuiButtonBase",slot:"Root"})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${WC.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),Jz=na.forwardRef(function(t,o){let r=W({props:t,name:"MuiButtonBase"}),{action:n,centerRipple:a=!1,children:s,className:i,component:l="button",disabled:p=!1,disableRipple:c=!1,disableTouchRipple:d=!1,focusRipple:f=!1,focusVisibleClassName:u,LinkComponent:g="a",onBlur:v,onClick:b,onContextMenu:m,onDragLeave:y,onFocus:h,onFocusVisible:T,onKeyDown:P,onKeyUp:C,onMouseDown:E,onMouseLeave:R,onMouseUp:O,onTouchEnd:w,onTouchMove:A,onTouchStart:x,tabIndex:N=0,TouchRippleProps:k,touchRippleRef:z,type:j,...K}=r,U=na.useRef(null),V=oy(),re=Ot(V.ref,z),[pe,ce]=na.useState(!1);p&&pe&&ce(!1),na.useImperativeHandle(n,()=>({focusVisible:()=>{ce(!0),U.current.focus()}}),[]);let ae=V.shouldMount&&!c&&!p;na.useEffect(()=>{pe&&f&&!c&&V.pulsate()},[c,f,pe,V]);let Ee=Ba(V,"start",E,d),de=Ba(V,"stop",m,d),le=Ba(V,"stop",y,d),xe=Ba(V,"stop",O,d),Te=Ba(V,"stop",ue=>{pe&&ue.preventDefault(),R&&R(ue)},d),Re=Ba(V,"start",x,d),fe=Ba(V,"stop",w,d),ye=Ba(V,"stop",A,d),ve=Ba(V,"stop",ue=>{Mn(ue.target)||ce(!1),v&&v(ue)},!1),Y=vs(ue=>{U.current||(U.current=ue.currentTarget),Mn(ue.target)&&(ce(!0),T&&T(ue)),h&&h(ue)}),H=()=>{let ue=U.current;return ue?ue.tagName==="BUTTON"?!1:!(ue.tagName==="A"&&ue.href):l&&l!=="button"},Se=vs(ue=>{f&&!ue.repeat&&pe&&ue.key===" "&&V.stop(ue,()=>{V.start(ue)}),ue.target===ue.currentTarget&&H()&&ue.key===" "&&ue.preventDefault(),P&&P(ue),ue.target===ue.currentTarget&&H()&&ue.key==="Enter"&&!p&&(ue.preventDefault(),b&&b(ue))}),Ae=vs(ue=>{f&&ue.key===" "&&pe&&!ue.defaultPrevented&&V.stop(ue,()=>{V.pulsate(ue)}),C&&C(ue),b&&ue.target===ue.currentTarget&&H()&&ue.key===" "&&!ue.defaultPrevented&&!p&&b(ue)}),Ce=l;Ce==="button"&&(K.href||K.to)&&(Ce=g);let Oe={};if(Ce==="button"){let ue=!!K.formAction;Oe.type=j===void 0&&!ue?"button":j,Oe.disabled=p}else!K.href&&!K.to&&(Oe.role="button"),p&&(Oe["aria-disabled"]=p);let Ye=Ot(o,U),rt={...r,centerRipple:a,component:l,disabled:p,disableRipple:c,disableTouchRipple:d,focusRipple:f,tabIndex:N,focusVisible:pe},We=Qz(rt);return(0,ay. Line truncated
0% {
transform: rotate(0deg);
}
@@ -123,7 +123,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
100% {
transform: rotate(360deg);
}
`,JT=No`
`,vb=Ao`
0% {
stroke-dasharray: 1px, 200px;
stroke-dashoffset: 0;
@@ -138,13 +138,13 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
stroke-dasharray: 1px, 200px;
stroke-dashoffset: -126px;
}
`,lz=typeof ZT!="string"?dr`
animation: ${ZT} 1.4s linear infinite;
`:null,pz=typeof JT!="string"?dr`
animation: ${JT} 1.4s ease-in-out infinite;
`:null,cz=e=>{let{classes:t,variant:o,color:r,disableShrink:n}=e,a={root:["root",o,`color${U(r)}`],svg:["svg"],track:["track"],circle:["circle",`circle${U(o)}`,n&&"circleDisableShrink"]};return X(a,xC,t)},uz=k("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[o.variant],t[`color${U(o.color)}`]]}})(ee(({theme:e})=>({display:"inline-block",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("transform")}},{props:{variant:"indeterminate"},style:lz||{animation:`${ZT} 1.4s linear infinite`}},...Object.entries(e.palette).filter(Ie()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}}))]}))),fz=k("svg",{name:"MuiCircularProgress",slot:"Svg"})({display:"block"}),dz=k("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.circle,t[`circle${U(o.variant)}`],o.disableShrink&&t.circleDisableShrink]}})(ee(({theme:e})=>({stroke:"currentColor",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("stroke-dashoffset")}},{props:{variant:"indeterminate"},style:{strokeDasharray:"80px, 200px",strokeDashoffset:0}},{props:({ownerState:t})=>t.variant==="indeterminate"&&!t.disableShrink,style:pz||{animation:`${JT} 1.4s ease-in-out infinite`}}]}))),mz=k("circle",{name:"MuiCircularProgress",slot:"Track"})(ee(({theme:e})=>({stroke:"currentColor",opacity:(e.vars||e).palette.action.activatedOpacity}))),yz=PC.forwardRef(function(t,o){let r=Q({props:t,name:"MuiCircularProgress"}),{className:n,color:a="primary",disableShrink:i=!1,enableTrackSlot:s=!1,size:l=40,style:p,thickness:c=3.6,value:d=0,variant:f="indeterminate",...u}=r,g={...r,color:a,disableShrink:i,size:l,thickness:c,value:d,variant:f,enableTrackSlot:s},x=cz(g),v={},m={},y={};if(f==="determinate"){let h=2*Math.PI*((Mn-c)/2);v.strokeDasharray=h.toFixed(3),y["aria-valuenow"]=Math.round(d),v.strokeDashoffset=`${((100-d)/100*h).toFixed(3)}px`,m.transform="rotate(-90deg)"}return(0,fp.jsx)(uz,{className:$(x.root,n),style:{width:l,height:l,...m,...p},ownerState:g,ref:o,role:"progressbar",...y,...u,children:(0,fp.jsxs)(fz,{className:x.svg,ownerState:g,viewBox:`${Mn/2} ${Mn/2} ${Mn} ${Mn}`,children:[s?(0,fp.jsx)(mz,{className:x.track,ownerState:g,cx:Mn,cy:Mn,r:(Mn-c)/2,fill:"none",strokeWidth:c,"aria-hidden":"true"}):null,(0,fp.jsx)(dz,{className:x.circle,style:v,ownerState:g,cx:Mn,cy:Mn,r:(Mn-c)/2,fill:"none",strokeWidth:c})]})})}),na=yz;function SC(e){return Y("MuiIconButton",e)}var hz=W("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge","loading","loadingIndicator","loadingWrapper"]),eb=hz;var dp=S(z(),1),gz=e=>{let{classes:t,disabled:o,color:r,edge:n,size:a,loading:i}=e,s={root:["root",i&&"loading",o&&"disabled",r!=="default"&&`color${U(r)}`,n&&`edge${U(n)}`,`size${U(a)}`],loadingIndicator:["loadingIndicator"],loadingWrapper:["loadingWrapper"]};return X(s,SC,t)},Tz=k(hr,{name:"MuiIconButton",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,o.loading&&t.loading,o.color!=="default"&&t[`color${U(o.color)}`],o.edge&&t[`edge${U(o.edge)}`],t[`size${U(o.size)}`]]}})(ee(({theme:e})=>({textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:8,borderRadius:"50%",color:(e.vars||e).palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),variants:[{props:t=>!t.disableRipple,style:{"--IconButton-hoverBg":e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity),"&:hover":{backgroundColor:"var(--IconButton-hoverBg)","@media (hover: none)":{backgroundColor:"transparent"}}}},{props:{edge:"start"},style:{marginLeft:-12}},{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:{edge:"end"},style:{marginRight:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}}]})),ee(({theme:e})=>({variants:[{props:{color:"inherit"},style:{color:"inherit"}},...Object.entries(e.palette).filter(Ie()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette).filter(Ie()).map(([t])=>({props:{color:t},style:{"--IconButton-hoverBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}})),{props:{size:"small"},style:{padding:5,fontSize:e.typography.pxToRem(18)}},{props:{size:"large"},style:{padding:12,fontSize:e.typography.pxToRem(28)}}],[`&.${eb.disabled}`]:{backgroundColor:"transparent",color:(e.vars||e).palette.action.disabled},[`&.${eb.loading}`]:{color:"transparent"}}))),bz=k("span",{name:"MuiIconButton",slot:"LoadingIndicator"})(({theme:e})=>({display:"none",position:"absolute",visibility:"visible",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:(e.vars||e).palette.action.disabled,variants:[{props:{loading:!0},style:{display:"flex"}}]})),vz=Gm.forwardRef(function( Line truncated
`&&(T.value+=" ");let E=C.boxSizing,R=oy(C.paddingBottom)+oy(C.paddingTop),N=oy(C.borderBottomWidth)+oy(C.borderTopWidth),w=T.scrollHeight;T.value="x";let A=T.scrollHeight,b=w;a&&(b=Math.max(Number(a)*A,b)),n&&(b=Math.min(Number(n)*A,b)),b=Math.max(b,A);let O=b+(E==="border-box"?R+N:0),M=Math.abs(b-w)<=1;return{outerHeightStyle:O,overflowing:M}},[n,a,t.placeholder]),x=Mr(()=>{let h=c.current,T=g();if(!h||!T||gE(T))return!1;let P=T.outerHeightStyle;return f.current!=null&&f.current!==P}),v=_r.useCallback(()=>{let h=c.current,T=g();if(!h||!T||gE(T))return;let P=T.outerHeightStyle;f.current!==P&&(f.current=P,h.style.height=`${P}px`),h.style.overflow=T.overflowing?"hidden":""},[g]),m=_r.useRef(-1);return eo(()=>{let h=tp(v),T=c?.current;if(!T)return;let P=rn(T);P.addEventListener("resize",h);let C;return typeof ResizeObserver<"u"&&(C=new ResizeObserver(()=>{x()&&(C.unobserve(T),cancelAnimationFrame(m.current),v(),m.current=requestAnimationFrame(()=>{C.observe(T)}))}),C.observe(T)),()=>{h.clear(),cancelAnimationFrame(m.current),P.removeEventListener("resize",h),C&&C.disconnect()}},[g,v,x]),eo(()=>{v()}),(0,Bu.jsxs)(_r.Fragment,{children:[(0,Bu.jsx)("textarea",{value:s,onChange:h=>{p||v();let T=h.target,P=T.value.length,C=T.value.endsWith(`
`),E=T.selectionStart===P;C&&E&&T.setSelectionRange(P,P),r&&r(h)},ref:d,rows:a,style:i,...l}),(0,Bu.jsx)("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:u,tabIndex:-1,style:{...w6.shadow,...i,paddingTop:0,paddingBottom:0}})]})}),hb=M6;function nr({props:e,states:t,muiFormControl:o}){return t.reduce((r,n)=>(r[n]=e[n],o&&typeof e[n]>"u"&&(r[n]=o[n]),r),{})}var TE=S(I(),1),A6=TE.createContext(void 0),bp=A6;var bE=S(I(),1);function Po(){return bE.useContext(bp)}function ry(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}var $a=ry;function vE(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function $s(e,t=!1){return e&&(vE(e.value)&&e.value!==""||t&&vE(e.defaultValue)&&e.defaultValue!=="")}function xE(e){return e.startAdornment}function PE(e){return Y("MuiInputBase",e)}var k6=W("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),_n=k6;var Hs=S(z(),1),SE,gb="mui-auto-fill",ny="mui-auto-fill-cancel",Vs=(e,t)=>{let{ownerState:o}=e;return[t.root,o.formControl&&t.formControl,o.startAdornment&&t.adornedStart,o.endAdornment&&t.adornedEnd,o.error&&t.error,o.size==="small"&&t.sizeSmall,o.multiline&&t.multiline,o.color&&t[`color${U(o.color)}`],o.fullWidth&&t.fullWidth,o.hiddenLabel&&t.hiddenLabel]},Fs=(e,t)=>{let{ownerState:o}=e;return[t.input,o.size==="small"&&t.inputSizeSmall,o.multiline&&t.inputMultiline,o.type==="search"&&t.inputTypeSearch,o.startAdornment&&t.inputAdornedStart,o.endAdornment&&t.inputAdornedEnd,o.hiddenLabel&&t.inputHiddenLabel]},D6=e=>{let{classes:t,color:o,disabled:r,error:n,endAdornment:a,focused:i,formControl:s,fullWidth:l,hiddenLabel:p,multiline:c,readOnly:d,size:f,startAdornment:u,type:g}=e,x={root:["root",`color${U(o)}`,r&&"disabled",n&&"error",l&&"fullWidth",i&&"focused",s&&"formControl",f&&f!=="medium"&&`size${U(f)}`,c&&"multiline",u&&"adornedStart",a&&"adornedEnd",p&&"hiddenLabel",d&&"readOnly"],input:["input",r&&"disabled",g==="search"&&"inputTypeSearch",c&&"inputMultiline",f==="small"&&"inputSizeSmall",p&&"inputHiddenLabel",u&&"inputAdornedStart",a&&"inputAdornedEnd",d&&"readOnly"]};return X(x,PE,t)},qs=k("div",{name:"MuiInputBase",slot:"Root",overridesResolver:Vs})(ee(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${_n.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:t})=>t.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:t,size:o})=>t.multiline&&o==="small",style:{paddingTop:1}},{props:({ownerState:t})=>t.fullWidth,style:{width:"100%"}}]}))),Gs=k("input",{name:"MuiInputBase",slot:"Input",overridesResolver:Fs})(ee(({theme:e})=>{let t=e.palette.mode==="light",o={color:"currentColor",...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:"0 !important"},n=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&::-ms-input-placeholder":o,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${_n.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":n,"&:focus::-moz-placeholder":n,"&:focus::-ms-input-placeholder":n},[`&.${_n.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:a})=>!a.disableInjectingGlobalStyles,style:{animationName:ny,animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:gb}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:a})=>a.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),CE=yu({[`@keyframes ${gb}`]:{from:{animationName:gb}},[`@keyframes ${ny}`]:{from:{animationName:ny}}}),_6=Go.forwardRef(function(t,o){let r=Q({props:t,name:"MuiInputBase"}),{"aria-describedby":n,autoComplete:a,autoFocus:i,className:s,color:l,components:p={},componentsProps:c={},defaultValue:d,disabled:f,disableInjectingGlobalStyles:u,endAdornment:g,error:x,fullWidth:v=!1,id:m,inputComponent:y="input",inputProps:h={},inputRef:T,margin:P,maxRows:C,minRows:E,multiline:R=!1,name:N,onBlur:w,onChange:A,onCli Line truncated
`,p6=typeof bb!="string"?mr`
animation: ${bb} 1.4s linear infinite;
`:null,c6=typeof vb!="string"?mr`
animation: ${vb} 1.4s ease-in-out infinite;
`:null,u6=e=>{let{classes:t,variant:o,color:r,disableShrink:n}=e,a={root:["root",o,`color${I(r)}`],svg:["svg"],track:["track"],circle:["circle",`circle${I(o)}`,n&&"circleDisableShrink"]};return q(a,QC,t)},f6=M("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[o.variant],t[`color${I(o.color)}`]]}})(J(({theme:e})=>({display:"inline-block",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("transform")}},{props:{variant:"indeterminate"},style:p6||{animation:`${bb} 1.4s linear infinite`}},...Object.entries(e.palette).filter($e()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}}))]}))),d6=M("svg",{name:"MuiCircularProgress",slot:"Svg"})({display:"block"}),m6=M("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.circle,t[`circle${I(o.variant)}`],o.disableShrink&&t.circleDisableShrink]}})(J(({theme:e})=>({stroke:"currentColor",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("stroke-dashoffset")}},{props:{variant:"indeterminate"},style:{strokeDasharray:"80px, 200px",strokeDashoffset:0}},{props:({ownerState:t})=>t.variant==="indeterminate"&&!t.disableShrink,style:c6||{animation:`${vb} 1.4s ease-in-out infinite`}}]}))),y6=M("circle",{name:"MuiCircularProgress",slot:"Track"})(J(({theme:e})=>({stroke:"currentColor",opacity:(e.vars||e).palette.action.activatedOpacity}))),h6=ZC.forwardRef(function(t,o){let r=W({props:t,name:"MuiCircularProgress"}),{className:n,color:a="primary",disableShrink:s=!1,enableTrackSlot:i=!1,size:l=40,style:p,thickness:c=3.6,value:d=0,variant:f="indeterminate",...u}=r,g={...r,color:a,disableShrink:s,size:l,thickness:c,value:d,variant:f,enableTrackSlot:i},v=u6(g),b={},m={},y={};if(f==="determinate"){let h=2*Math.PI*((An-c)/2);b.strokeDasharray=h.toFixed(3),y["aria-valuenow"]=Math.round(d),b.strokeDashoffset=`${((100-d)/100*h).toFixed(3)}px`,m.transform="rotate(-90deg)"}return(0,xp.jsx)(f6,{className:B(v.root,n),style:{width:l,height:l,...m,...p},ownerState:g,ref:o,role:"progressbar",...y,...u,children:(0,xp.jsxs)(d6,{className:v.svg,ownerState:g,viewBox:`${An/2} ${An/2} ${An} ${An}`,children:[i?(0,xp.jsx)(y6,{className:v.track,ownerState:g,cx:An,cy:An,r:(An-c)/2,fill:"none",strokeWidth:c,"aria-hidden":"true"}):null,(0,xp.jsx)(m6,{className:v.circle,style:b,ownerState:g,cx:An,cy:An,r:(An-c)/2,fill:"none",strokeWidth:c})]})})}),aa=h6;function JC(e){return F("MuiIconButton",e)}var g6=G("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge","loading","loadingIndicator","loadingWrapper"]),xb=g6;var Pp=S(_(),1),T6=e=>{let{classes:t,disabled:o,color:r,edge:n,size:a,loading:s}=e,i={root:["root",s&&"loading",o&&"disabled",r!=="default"&&`color${I(r)}`,n&&`edge${I(n)}`,`size${I(a)}`],loadingIndicator:["loadingIndicator"],loadingWrapper:["loadingWrapper"]};return q(i,JC,t)},b6=M(gr,{name:"MuiIconButton",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,o.loading&&t.loading,o.color!=="default"&&t[`color${I(o.color)}`],o.edge&&t[`edge${I(o.edge)}`],t[`size${I(o.size)}`]]}})(J(({theme:e})=>({textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:8,borderRadius:"50%",color:(e.vars||e).palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),variants:[{props:t=>!t.disableRipple,style:{"--IconButton-hoverBg":e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity),"&:hover":{backgroundColor:"var(--IconButton-hoverBg)","@media (hover: none)":{backgroundColor:"transparent"}}}},{props:{edge:"start"},style:{marginLeft:-12}},{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:{edge:"end"},style:{marginRight:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}}]})),J(({theme:e})=>({variants:[{props:{color:"inherit"},style:{color:"inherit"}},...Object.entries(e.palette).filter($e()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette).filter($e()).map(([t])=>({props:{color:t},style:{"--IconButton-hoverBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}})),{props:{size:"small"},style:{padding:5,fontSize:e.typography.pxToRem(18)}},{props:{size:"large"},style:{padding:12,fontSize:e.typography.pxToRem(28)}}],[`&.${xb.disabled}`]:{backgroundColor:"transparent",color:(e.vars||e).palette.action.disabled},[`&.${xb.loading}`]:{color:"transparent"}}))),v6=M("span",{name:"MuiIconButton",slot:"LoadingIndicator"})(({theme:e})=>({display:"none",position:"absolute",visibility:"visible",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:(e.vars||e).palette.action.disabled,variants:[{props:{loading:!0},style:{display:"flex"}}]})),x6=ly.forwardRef(function(t,o){ Line truncated
`&&(T.value+=" ");let E=C.boxSizing,R=Ty(C.paddingBottom)+Ty(C.paddingTop),O=Ty(C.borderBottomWidth)+Ty(C.borderTopWidth),w=T.scrollHeight;T.value="x";let A=T.scrollHeight,x=w;a&&(x=Math.max(Number(a)*A,x)),n&&(x=Math.min(Number(n)*A,x)),x=Math.max(x,A);let N=x+(E==="border-box"?R+O:0),k=Math.abs(x-w)<=1;return{outerHeightStyle:N,overflowing:k}},[n,a,t.placeholder]),v=Ar(()=>{let h=c.current,T=g();if(!h||!T||Y2(T))return!1;let P=T.outerHeightStyle;return f.current!=null&&f.current!==P}),b=zr.useCallback(()=>{let h=c.current,T=g();if(!h||!T||Y2(T))return;let P=T.outerHeightStyle;f.current!==P&&(f.current=P,h.style.height=`${P}px`),h.style.overflow=T.overflowing?"hidden":""},[g]),m=zr.useRef(-1);return oo(()=>{let h=cp(b),T=c?.current;if(!T)return;let P=nn(T);P.addEventListener("resize",h);let C;return typeof ResizeObserver<"u"&&(C=new ResizeObserver(()=>{v()&&(C.unobserve(T),cancelAnimationFrame(m.current),b(),m.current=requestAnimationFrame(()=>{C.observe(T)}))}),C.observe(T)),()=>{h.clear(),cancelAnimationFrame(m.current),P.removeEventListener("resize",h),C&&C.disconnect()}},[g,b,v]),oo(()=>{b()}),(0,Xu.jsxs)(zr.Fragment,{children:[(0,Xu.jsx)("textarea",{value:i,onChange:h=>{p||b();let T=h.target,P=T.value.length,C=T.value.endsWith(`
`),E=T.selectionStart===P;C&&E&&T.setSelectionRange(P,P),r&&r(h)},ref:d,rows:a,style:s,...l}),(0,Xu.jsx)("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:u,tabIndex:-1,style:{...Nj.shadow,...s,paddingTop:0,paddingBottom:0}})]})}),Bb=Aj;function sr({props:e,states:t,muiFormControl:o}){return t.reduce((r,n)=>(r[n]=e[n],o&&typeof e[n]>"u"&&(r[n]=o[n]),r),{})}var W2=S(L(),1),kj=W2.createContext(void 0),Op=kj;var X2=S(L(),1);function Co(){return X2.useContext(Op)}function by(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}var Ha=by;function K2(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function Yi(e,t=!1){return e&&(K2(e.value)&&e.value!==""||t&&K2(e.defaultValue)&&e.defaultValue!=="")}function Q2(e){return e.startAdornment}function Z2(e){return F("MuiInputBase",e)}var _j=G("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),zn=_j;var Wi=S(_(),1),J2,Lb="mui-auto-fill",vy="mui-auto-fill-cancel",Xi=(e,t)=>{let{ownerState:o}=e;return[t.root,o.formControl&&t.formControl,o.startAdornment&&t.adornedStart,o.endAdornment&&t.adornedEnd,o.error&&t.error,o.size==="small"&&t.sizeSmall,o.multiline&&t.multiline,o.color&&t[`color${I(o.color)}`],o.fullWidth&&t.fullWidth,o.hiddenLabel&&t.hiddenLabel]},Ki=(e,t)=>{let{ownerState:o}=e;return[t.input,o.size==="small"&&t.inputSizeSmall,o.multiline&&t.inputMultiline,o.type==="search"&&t.inputTypeSearch,o.startAdornment&&t.inputAdornedStart,o.endAdornment&&t.inputAdornedEnd,o.hiddenLabel&&t.inputHiddenLabel]},Dj=e=>{let{classes:t,color:o,disabled:r,error:n,endAdornment:a,focused:s,formControl:i,fullWidth:l,hiddenLabel:p,multiline:c,readOnly:d,size:f,startAdornment:u,type:g}=e,v={root:["root",`color${I(o)}`,r&&"disabled",n&&"error",l&&"fullWidth",s&&"focused",i&&"formControl",f&&f!=="medium"&&`size${I(f)}`,c&&"multiline",u&&"adornedStart",a&&"adornedEnd",p&&"hiddenLabel",d&&"readOnly"],input:["input",r&&"disabled",g==="search"&&"inputTypeSearch",c&&"inputMultiline",f==="small"&&"inputSizeSmall",p&&"inputHiddenLabel",u&&"inputAdornedStart",a&&"inputAdornedEnd",d&&"readOnly"]};return q(v,Z2,t)},Qi=M("div",{name:"MuiInputBase",slot:"Root",overridesResolver:Xi})(J(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${zn.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:t})=>t.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:t,size:o})=>t.multiline&&o==="small",style:{paddingTop:1}},{props:({ownerState:t})=>t.fullWidth,style:{width:"100%"}}]}))),Zi=M("input",{name:"MuiInputBase",slot:"Input",overridesResolver:Ki})(J(({theme:e})=>{let t=e.palette.mode==="light",o={color:"currentColor",...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:"0 !important"},n=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&::-ms-input-placeholder":o,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${zn.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":n,"&:focus::-moz-placeholder":n,"&:focus::-ms-input-placeholder":n},[`&.${zn.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:a})=>!a.disableInjectingGlobalStyles,style:{animationName:vy,animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:Lb}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:a})=>a.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),eE=wu({[`@keyframes ${Lb}`]:{from:{animationName:Lb}},[`@keyframes ${vy}`]:{from:{animationName:vy}}}),zj=Wo.forwardRef(function(t,o){let r=W({props:t,name:"MuiInputBase"}),{"aria-describedby":n,autoComplete:a,autoFocus:s,className:i,color:l,components:p={},componentsProps:c={},defaultValue:d,disabled:f,disableInjectingGlobalStyles:u,endAdornment:g,error:v,fullWidth:b=!1,id:m,inputComponent:y="input",inputProps:h={},inputRef:T,margin:P,maxRows:C,minRows:E,multiline:R=!1,name:O,onBlur:w,onChange:A,onClick Line truncated
0% {
left: -35%;
right: 100%;
@@ -159,9 +159,9 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
left: 100%;
right: -90%;
}
`,_B=typeof _b!="string"?dr`
animation: ${_b} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
`:null,zb=No`
`,F9=typeof rv!="string"?mr`
animation: ${rv} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
`:null,nv=Ao`
0% {
left: -200%;
right: 100%;
@@ -176,9 +176,9 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
left: 107%;
right: -8%;
}
`,zB=typeof zb!="string"?dr`
animation: ${zb} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;
`:null,jb=No`
`,q9=typeof nv!="string"?mr`
animation: ${nv} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;
`:null,av=Ao`
0% {
opacity: 1;
background-position: 0 -23px;
@@ -193,9 +193,9 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
opacity: 1;
background-position: -200px -23px;
}
`,jB=typeof jb!="string"?dr`
animation: ${jb} 3s infinite linear;
`:null,BB=e=>{let{classes:t,variant:o,color:r}=e,n={root:["root",`color${U(r)}`,o],dashed:["dashed",`dashedColor${U(r)}`],bar1:["bar","bar1",`barColor${U(r)}`,(o==="indeterminate"||o==="query")&&"bar1Indeterminate",o==="determinate"&&"bar1Determinate",o==="buffer"&&"bar1Buffer"],bar2:["bar","bar2",o!=="buffer"&&`barColor${U(r)}`,o==="buffer"&&`color${U(r)}`,(o==="indeterminate"||o==="query")&&"bar2Indeterminate",o==="buffer"&&"bar2Buffer"]};return X(n,B2,t)},Bb=(e,t)=>e.vars?e.vars.palette.LinearProgress[`${t}Bg`]:e.palette.mode==="light"?e.lighten(e.palette[t].main,.62):e.darken(e.palette[t].main,.5),UB=k("span",{name:"MuiLinearProgress",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[`color${U(o.color)}`],t[o.variant]]}})(ee(({theme:e})=>({position:"relative",overflow:"hidden",display:"block",height:4,zIndex:0,"@media print":{colorAdjust:"exact"},variants:[...Object.entries(e.palette).filter(Ie()).map(([t])=>({props:{color:t},style:{backgroundColor:Bb(e,t)}})),{props:({ownerState:t})=>t.color==="inherit"&&t.variant!=="buffer",style:{"&::before":{content:'""',position:"absolute",left:0,top:0,right:0,bottom:0,backgroundColor:"currentColor",opacity:.3}}},{props:{variant:"buffer"},style:{backgroundColor:"transparent"}},{props:{variant:"query"},style:{transform:"rotate(180deg)"}}]}))),LB=k("span",{name:"MuiLinearProgress",slot:"Dashed",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.dashed,t[`dashedColor${U(o.color)}`]]}})(ee(({theme:e})=>({position:"absolute",marginTop:0,height:"100%",width:"100%",backgroundSize:"10px 10px",backgroundPosition:"0 -23px",variants:[{props:{color:"inherit"},style:{opacity:.3,backgroundImage:"radial-gradient(currentColor 0%, currentColor 16%, transparent 42%)"}},...Object.entries(e.palette).filter(Ie()).map(([t])=>{let o=Bb(e,t);return{props:{color:t},style:{backgroundImage:`radial-gradient(${o} 0%, ${o} 16%, transparent 42%)`}}})]})),jB||{animation:`${jb} 3s infinite linear`}),IB=k("span",{name:"MuiLinearProgress",slot:"Bar1",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.bar,t.bar1,t[`barColor${U(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&t.bar1Indeterminate,o.variant==="determinate"&&t.bar1Determinate,o.variant==="buffer"&&t.bar1Buffer]}})(ee(({theme:e})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[{props:{color:"inherit"},style:{backgroundColor:"currentColor"}},...Object.entries(e.palette).filter(Ie()).map(([t])=>({props:{color:t},style:{backgroundColor:(e.vars||e).palette[t].main}})),{props:{variant:"determinate"},style:{transition:`transform .${Db}s linear`}},{props:{variant:"buffer"},style:{zIndex:1,transition:`transform .${Db}s linear`}},{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:{width:"auto"}},{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:_B||{animation:`${_b} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite`}}]}))),$B=k("span",{name:"MuiLinearProgress",slot:"Bar2",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.bar,t.bar2,t[`barColor${U(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&t.bar2Indeterminate,o.variant==="buffer"&&t.bar2Buffer]}})(ee(({theme:e})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[...Object.entries(e.palette).filter(Ie()).map(([t])=>({props:{color:t},style:{"--LinearProgressBar2-barColor":(e.vars||e).palette[t].main}})),{props:({ownerState:t})=>t.variant!=="buffer"&&t.color!=="inherit",style:{backgroundColor:"var(--LinearProgressBar2-barColor, currentColor)"}},{props:({ownerState:t})=>t.variant!=="buffer"&&t.color==="inherit",style:{backgroundColor:"currentColor"}},{props:{color:"inherit"},style:{opacity:.3}},...Object.entries(e.palette).filter(Ie()).map(([t])=>({props:{color:t,variant:"buffer"},style:{backgroundColor:Bb(e,t),transition:`transform .${Db}s linear`}})),{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:{width:"auto"}},{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:zB||{animation:`${zb} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite`}}]}))),HB=U2.forwardRef(function(t,o){let r=Q({props:t,name:"MuiLinearProgress"}),{className:n,color:a="primary",value:i,valueBuffer:s,variant:l="indeterminate",...p}=r,c={...r,color:a,variant:l},d=BB(c),f=gi(),u={},g={bar1:{},bar2:{}};if((l==="determinate"||l==="buffer")&&i!==void 0){u["aria-valuenow"]=Math.round(i),u["aria-valuemin"]=0,u["aria-valuemax"]=100;let x=i-100;f&&(x=-x),g.bar1.transform=`translateX(${x}%)`}if(l==="buffer"&&s!==void 0){let x=(s||0)-100;f&&(x=-x),g.bar2.transform=`translateX(${x}%)`}return(0,Mp.jsxs)(UB,{className:$(d.root,n),ownerState:c,role:"progressbar",...u,ref:o,...p,children:[l==="buffer"?(0,Mp.jsx)(LB,{className:d.dashed,ownerState:c}):null,(0,Mp.jsx)(IB,{className:d.bar1,ownerSta Line truncated
`,G9=typeof av!="string"?mr`
animation: ${av} 3s infinite linear;
`:null,Y9=e=>{let{classes:t,variant:o,color:r}=e,n={root:["root",`color${I(r)}`,o],dashed:["dashed",`dashedColor${I(r)}`],bar1:["bar","bar1",`barColor${I(r)}`,(o==="indeterminate"||o==="query")&&"bar1Indeterminate",o==="determinate"&&"bar1Determinate",o==="buffer"&&"bar1Buffer"],bar2:["bar","bar2",o!=="buffer"&&`barColor${I(r)}`,o==="buffer"&&`color${I(r)}`,(o==="indeterminate"||o==="query")&&"bar2Indeterminate",o==="buffer"&&"bar2Buffer"]};return q(n,xR,t)},sv=(e,t)=>e.vars?e.vars.palette.LinearProgress[`${t}Bg`]:e.palette.mode==="light"?e.lighten(e.palette[t].main,.62):e.darken(e.palette[t].main,.5),W9=M("span",{name:"MuiLinearProgress",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[`color${I(o.color)}`],t[o.variant]]}})(J(({theme:e})=>({position:"relative",overflow:"hidden",display:"block",height:4,zIndex:0,"@media print":{colorAdjust:"exact"},variants:[...Object.entries(e.palette).filter($e()).map(([t])=>({props:{color:t},style:{backgroundColor:sv(e,t)}})),{props:({ownerState:t})=>t.color==="inherit"&&t.variant!=="buffer",style:{"&::before":{content:'""',position:"absolute",left:0,top:0,right:0,bottom:0,backgroundColor:"currentColor",opacity:.3}}},{props:{variant:"buffer"},style:{backgroundColor:"transparent"}},{props:{variant:"query"},style:{transform:"rotate(180deg)"}}]}))),X9=M("span",{name:"MuiLinearProgress",slot:"Dashed",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.dashed,t[`dashedColor${I(o.color)}`]]}})(J(({theme:e})=>({position:"absolute",marginTop:0,height:"100%",width:"100%",backgroundSize:"10px 10px",backgroundPosition:"0 -23px",variants:[{props:{color:"inherit"},style:{opacity:.3,backgroundImage:"radial-gradient(currentColor 0%, currentColor 16%, transparent 42%)"}},...Object.entries(e.palette).filter($e()).map(([t])=>{let o=sv(e,t);return{props:{color:t},style:{backgroundImage:`radial-gradient(${o} 0%, ${o} 16%, transparent 42%)`}}})]})),G9||{animation:`${av} 3s infinite linear`}),K9=M("span",{name:"MuiLinearProgress",slot:"Bar1",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.bar,t.bar1,t[`barColor${I(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&t.bar1Indeterminate,o.variant==="determinate"&&t.bar1Determinate,o.variant==="buffer"&&t.bar1Buffer]}})(J(({theme:e})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[{props:{color:"inherit"},style:{backgroundColor:"currentColor"}},...Object.entries(e.palette).filter($e()).map(([t])=>({props:{color:t},style:{backgroundColor:(e.vars||e).palette[t].main}})),{props:{variant:"determinate"},style:{transition:`transform .${ov}s linear`}},{props:{variant:"buffer"},style:{zIndex:1,transition:`transform .${ov}s linear`}},{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:{width:"auto"}},{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:F9||{animation:`${rv} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite`}}]}))),Q9=M("span",{name:"MuiLinearProgress",slot:"Bar2",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.bar,t.bar2,t[`barColor${I(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&t.bar2Indeterminate,o.variant==="buffer"&&t.bar2Buffer]}})(J(({theme:e})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[...Object.entries(e.palette).filter($e()).map(([t])=>({props:{color:t},style:{"--LinearProgressBar2-barColor":(e.vars||e).palette[t].main}})),{props:({ownerState:t})=>t.variant!=="buffer"&&t.color!=="inherit",style:{backgroundColor:"var(--LinearProgressBar2-barColor, currentColor)"}},{props:({ownerState:t})=>t.variant!=="buffer"&&t.color==="inherit",style:{backgroundColor:"currentColor"}},{props:{color:"inherit"},style:{opacity:.3}},...Object.entries(e.palette).filter($e()).map(([t])=>({props:{color:t,variant:"buffer"},style:{backgroundColor:sv(e,t),transition:`transform .${ov}s linear`}})),{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:{width:"auto"}},{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:q9||{animation:`${nv} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite`}}]}))),Z9=PR.forwardRef(function(t,o){let r=W({props:t,name:"MuiLinearProgress"}),{className:n,color:a="primary",value:s,valueBuffer:i,variant:l="indeterminate",...p}=r,c={...r,color:a,variant:l},d=Y9(c),f=bs(),u={},g={bar1:{},bar2:{}};if((l==="determinate"||l==="buffer")&&s!==void 0){u["aria-valuenow"]=Math.round(s),u["aria-valuemin"]=0,u["aria-valuemax"]=100;let v=s-100;f&&(v=-v),g.bar1.transform=`translateX(${v}%)`}if(l==="buffer"&&i!==void 0){let v=(i||0)-100;f&&(v=-v),g.bar2.transform=`translateX(${v}%)`}return(0,Hp.jsxs)(W9,{className:B(d.root,n),ownerState:c,role:"progressbar",...u,ref:o,...p,children:[l==="buffer"?(0,Hp.jsx)(X9,{className:d.dashed,ownerState:c}):null,(0,Hp.jsx)(K9,{className:d.bar1,ownerState:c Line truncated
0% {
opacity: 1;
}
@@ -207,7 +207,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
100% {
opacity: 1;
}
`,Jb=No`
`,Pv=Ao`
0% {
transform: translateX(-100%);
}
@@ -220,22 +220,22 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
100% {
transform: translateX(100%);
}
`,G9=typeof Zb!="string"?dr`
animation: ${Zb} 2s ease-in-out 0.5s infinite;
`:null,Y9=typeof Jb!="string"?dr`
`,o8=typeof xv!="string"?mr`
animation: ${xv} 2s ease-in-out 0.5s infinite;
`:null,r8=typeof Pv!="string"?mr`
&::after {
animation: ${Jb} 2s linear 0.5s infinite;
animation: ${Pv} 2s linear 0.5s infinite;
}
`:null,W9=k("span",{name:"MuiSkeleton",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[o.variant],o.animation!==!1&&t[o.animation],o.hasChildren&&t.withChildren,o.hasChildren&&!o.width&&t.fitContent,o.hasChildren&&!o.height&&t.heightAuto]}})(ee(({theme:e})=>{let t=jT(e.shape.borderRadius)||"px",o=BT(e.shape.borderRadius);return{display:"block",backgroundColor:e.vars?e.vars.palette.Skeleton.bg:e.alpha(e.palette.text.primary,e.palette.mode==="light"?.11:.13),height:"1.2em",variants:[{props:{variant:"text"},style:{marginTop:0,marginBottom:0,height:"auto",transformOrigin:"0 55%",transform:"scale(1, 0.60)",borderRadius:`${o}${t}/${Math.round(o/.6*10)/10}${t}`,"&:empty:before":{content:'"\\00a0"'}}},{props:{variant:"circular"},style:{borderRadius:"50%"}},{props:{variant:"rounded"},style:{borderRadius:(e.vars||e).shape.borderRadius}},{props:({ownerState:r})=>r.hasChildren,style:{"& > *":{visibility:"hidden"}}},{props:({ownerState:r})=>r.hasChildren&&!r.width,style:{maxWidth:"fit-content"}},{props:({ownerState:r})=>r.hasChildren&&!r.height,style:{height:"auto"}},{props:{animation:"pulse"},style:G9||{animation:`${Zb} 2s ease-in-out 0.5s infinite`}},{props:{animation:"wave"},style:{position:"relative",overflow:"hidden",WebkitMaskImage:"-webkit-radial-gradient(white, black)","&::after":{background:`linear-gradient(
`:null,n8=M("span",{name:"MuiSkeleton",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[o.variant],o.animation!==!1&&t[o.animation],o.hasChildren&&t.withChildren,o.hasChildren&&!o.width&&t.fitContent,o.hasChildren&&!o.height&&t.heightAuto]}})(J(({theme:e})=>{let t=rb(e.shape.borderRadius)||"px",o=nb(e.shape.borderRadius);return{display:"block",backgroundColor:e.vars?e.vars.palette.Skeleton.bg:e.alpha(e.palette.text.primary,e.palette.mode==="light"?.11:.13),height:"1.2em",variants:[{props:{variant:"text"},style:{marginTop:0,marginBottom:0,height:"auto",transformOrigin:"0 55%",transform:"scale(1, 0.60)",borderRadius:`${o}${t}/${Math.round(o/.6*10)/10}${t}`,"&:empty:before":{content:'"\\00a0"'}}},{props:{variant:"circular"},style:{borderRadius:"50%"}},{props:{variant:"rounded"},style:{borderRadius:(e.vars||e).shape.borderRadius}},{props:({ownerState:r})=>r.hasChildren,style:{"& > *":{visibility:"hidden"}}},{props:({ownerState:r})=>r.hasChildren&&!r.width,style:{maxWidth:"fit-content"}},{props:({ownerState:r})=>r.hasChildren&&!r.height,style:{height:"auto"}},{props:{animation:"pulse"},style:o8||{animation:`${xv} 2s ease-in-out 0.5s infinite`}},{props:{animation:"wave"},style:{position:"relative",overflow:"hidden",WebkitMaskImage:"-webkit-radial-gradient(white, black)","&::after":{background:`linear-gradient(
90deg,
transparent,
${(e.vars||e).palette.action.hover},
transparent
)`,content:'""',position:"absolute",transform:"translateX(-100%)",bottom:0,left:0,right:0,top:0}}},{props:{animation:"wave"},style:Y9||{"&::after":{animation:`${Jb} 2s linear 0.5s infinite`}}}]}})),X9=mR.forwardRef(function(t,o){let r=Q({props:t,name:"MuiSkeleton"}),{animation:n="pulse",className:a,component:i="span",height:s,style:l,variant:p="text",width:c,...d}=r,f={...r,animation:n,component:i,variant:p,hasChildren:!!d.children},u=q9(f);return(0,yR.jsx)(W9,{as:i,ref:o,className:$(u.root,a),ownerState:f,...d,style:{width:c,height:s,...l}})}),qa=X9;var jy=S(I(),1);var Bp=S(I(),1);function K9(e={}){let{autoHideDuration:t=null,disableWindowBlurListener:o=!1,onClose:r,open:n,resumeHideDuration:a}=e,i=or();Bp.useEffect(()=>{if(!n)return;function m(y){y.defaultPrevented||y.key==="Escape"&&r?.(y,"escapeKeyDown")}return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[n,r]);let s=Mr((m,y)=>{r?.(m,y)}),l=Mr(m=>{!r||m==null||i.start(m,()=>{s(null,"timeout")})});Bp.useEffect(()=>(n&&l(t),i.clear),[n,t,l,i]);let p=m=>{r?.(m,"clickaway")},c=i.clear,d=Bp.useCallback(()=>{t!=null&&l(a??t*.5)},[t,a,l]),f=m=>y=>{let h=m.onBlur;h?.(y),d()},u=m=>y=>{let h=m.onFocus;h?.(y),c()},g=m=>y=>{let h=m.onMouseEnter;h?.(y),c()},x=m=>y=>{let h=m.onMouseLeave;h?.(y),d()};return Bp.useEffect(()=>{if(!o&&n)return window.addEventListener("focus",d),window.addEventListener("blur",c),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",c)}},[o,n,d,c]),{getRootProps:(m={})=>{let y={...xi(e),...xi(m)};return{role:"presentation",...m,...y,onBlur:f(y),onFocus:u(y),onMouseEnter:g(y),onMouseLeave:x(y)}},onClickAway:p}}var hR=K9;var TR=S(I(),1);function gR(e){return Y("MuiSnackbarContent",e)}var ive=W("MuiSnackbarContent",["root","message","action"]);var nf=S(z(),1),Q9=e=>{let{classes:t}=e;return X({root:["root"],action:["action"],message:["message"]},gR,t)},Z9=k(Ze,{name:"MuiSnackbarContent",slot:"Root"})(ee(({theme:e})=>{let t=e.palette.mode==="light"?.8:.98;return{...e.typography.body2,color:e.vars?e.vars.palette.SnackbarContent.color:e.palette.getContrastText(nm(e.palette.background.default,t)),backgroundColor:e.vars?e.vars.palette.SnackbarContent.bg:nm(e.palette.background.default,t),display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",flexGrow:1,[e.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),J9=k("div",{name:"MuiSnackbarContent",slot:"Message"})({padding:"8px 0"}),e8=k("div",{name:"MuiSnackbarContent",slot:"Action"})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),t8=TR.forwardRef(function(t,o){let r=Q({props:t,name:"MuiSnackbarContent"}),{action:n,className:a,message:i,role:s="alert",...l}=r,p=r,c=Q9(p);return(0,nf.jsxs)(Z9,{role:s,elevation:6,className:$(c.root,a),ownerState:p,ref:o,...l,children:[(0,nf.jsx)(J9,{className:c.message,ownerState:p,children:i}),n?(0,nf.jsx)(e8,{className:c.action,ownerState:p,children:n}):null]})}),ev=t8;function bR(e){return Y("MuiSnackbar",e)}var Pve=W("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]);var af=S(z(),1),o8=e=>{let{classes:t,anchorOrigin:o}=e,r={root:["root",`anchorOrigin${U(o.vertical)}${U(o.horizontal)}`]};return X(r,bR,t)},r8=k("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[`anchorOrigin${U(o.anchorOrigin.vertical)}${U(o.anchorOrigin.horizontal)}`]]}})(ee(({theme:e})=>({zIndex:(e.vars||e).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:t})=>t.anchorOrigin.vertical==="top",style:{top:8,[e.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:t})=>t.anchorOrigin.vertical!=="top",style:{bottom:8,[e.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="left",style:{justifyContent:"flex-start",[e.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="right",style:{justifyContent:"flex-end",[e.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="center",style:{[e.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}))),n8=jy.forwardRef(function(t,o){let r=Q({props:t,name:"MuiSnackbar"}),n=Ut(),a={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{action:i,anchorOrigin:{vertical:s,horizontal:l}={vertical:"bottom",horizontal:"left"},autoHideDuration:p=null,children:c,className:d,ClickAwayListenerProps:f,ContentProps:u,disableWindowBlurListener:g=!1,message:x,onBlur:v,onClose:m,onFocus:y,onMouseEnter:h,onMouseLeave:T,open:P,resumeHideDuration:C,slots:E={},slotProps:R={},TransitionComponent:N,transitionDuration:w=a,TransitionProps:{onEnter:A,onExited:b,...O}={},...M}=r,D={...r,anchorOrigin:{vertical:s,horiz Line truncated
${e.palette.mode==="light"?e.lighten(e.alpha(e.palette.divider,1),.88):e.darken(e.alpha(e.palette.divider,1),.68)}`,textAlign:"left",padding:16,variants:[{props:{variant:"head"},style:{color:(e.vars||e).palette.text.primary,lineHeight:e.typography.pxToRem(24),fontWeight:e.typography.fontWeightMedium}},{props:{variant:"body"},style:{color:(e.vars||e).palette.text.primary}},{props:{variant:"footer"},style:{color:(e.vars||e).palette.text.secondary,lineHeight:e.typography.pxToRem(21),fontSize:e.typography.pxToRem(12)}},{props:{size:"small"},style:{padding:"6px 16px",[`&.${MR.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}}},{props:{padding:"checkbox"},style:{width:48,padding:"0 0 0 4px"}},{props:{padding:"none"},style:{padding:0}},{props:{align:"left"},style:{textAlign:"left"}},{props:{align:"center"},style:{textAlign:"center"}},{props:{align:"right"},style:{textAlign:"right",flexDirection:"row-reverse"}},{props:{align:"justify"},style:{textAlign:"justify"}},{props:({ownerState:t})=>t.stickyHeader,style:{position:"sticky",top:0,zIndex:2,backgroundColor:(e.vars||e).palette.background.default}}]}))),E8=lf.forwardRef(function(t,o){let r=Q({props:t,name:"MuiTableCell"}),{align:n="inherit",className:a,component:i,padding:s,scope:l,size:p,sortDirection:c,variant:d,...f}=r,u=lf.useContext(Iy),g=lf.useContext(Ai),x=g&&g.variant==="head",v;i?v=i:v=x?"th":"td";let m=l;v==="td"?m=void 0:!m&&x&&(m="col");let y=d||g&&g.variant,h={...r,align:n,component:v,padding:s||(u&&u.padding?u.padding:"normal"),size:p||(u&&u.size?u.size:"medium"),sortDirection:c,stickyHeader:y==="head"&&u&&u.stickyHeader,variant:y},T=S8(h),P=null;return c&&(P=c==="asc"?"ascending":"descending"),(0,AR.jsx)(C8,{as:v,ref:o,className:$(T.root,a),"aria-sort":P,scope:m,ownerState:h,...f})}),oo=E8;var DR=S(I(),1);function kR(e){return Y("MuiTableContainer",e)}var uxe=W("MuiTableContainer",["root"]);var _R=S(z(),1),R8=e=>{let{classes:t}=e;return X({root:["root"]},kR,t)},O8=k("div",{name:"MuiTableContainer",slot:"Root"})({width:"100%",overflowX:"auto"}),w8=DR.forwardRef(function(t,o){let r=Q({props:t,name:"MuiTableContainer"}),{className:n,component:a="div",...i}=r,s={...r,component:a},l=R8(s);return(0,_R.jsx)(O8,{ref:o,as:a,className:$(l.root,n),ownerState:s,...i})}),Ip=w8;var BR=S(I(),1);function zR(e){return Y("MuiTableHead",e)}var Cxe=W("MuiTableHead",["root"]);var rv=S(z(),1),N8=e=>{let{classes:t}=e;return X({root:["root"]},zR,t)},M8=k("thead",{name:"MuiTableHead",slot:"Root"})({display:"table-header-group"}),A8={variant:"head"},jR="thead",k8=BR.forwardRef(function(t,o){let r=Q({props:t,name:"MuiTableHead"}),{className:n,component:a=jR,...i}=r,s={...r,component:a},l=N8(s);return(0,rv.jsx)(Ai.Provider,{value:A8,children:(0,rv.jsx)(M8,{as:a,className:$(l.root,n),ref:o,role:a===jR?null:"rowgroup",ownerState:s,...i})})}),$p=k8;var Hy=S(I(),1);function UR(e){return Y("MuiTableRow",e)}var D8=W("MuiTableRow",["root","selected","hover","head","footer"]),nv=D8;var IR=S(z(),1),_8=e=>{let{classes:t,selected:o,hover:r,head:n,footer:a}=e;return X({root:["root",o&&"selected",r&&"hover",n&&"head",a&&"footer"]},UR,t)},z8=k("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,o.head&&t.head,o.footer&&t.footer]}})(ee(({theme:e})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${nv.hover}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${nv.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`)}}}))),LR="tr",j8=Hy.forwardRef(function(t,o){let r=Q({props:t,name:"MuiTableRow"}),{className:n,component:a=LR,hover:i=!1,selected:s=!1,...l}=r,p=Hy.useContext(Ai),c={...r,component:a,hover:i,selected:s,head:p&&p.variant==="head",footer:p&&p.variant==="footer"},d=_8(c);return(0,IR.jsx)(z8,{as:a,ref:o,className:$(d.root,n),role:a===LR?null:"row",ownerState:c,...l})}),Ga=j8;var HR=S(I(),1);function $R(e){return Y("MuiTextField",e)}var Zxe=W("MuiTextField",["root"]);var Ks=S(z(),1),B8={standard:Xu,filled:Yu,outlined:of},U8=e=>{let{classes:t}=e;return X({root:["root"]},$R,t)},L8=k(Eb,{name:"MuiTextField",slot:"Root"})({}),I8=HR.forwardRef(function(t,o){let r=Q({props:t,name:"MuiTextField"}),{autoComplete:n,autoFocus:a=!1,children:i,className:s,color:l="primary",defaultValue:p,disabled:c=!1,error:d=!1,FormHelperTextProps:f,fullWidth:u=!1,helperText:g,id:x,InputLabelProps:v,inputProps:m,InputProps:y,inputRef:h,label:T,maxRows:P,minRows:C,multiline:E=!1,name:R,onBlur:N,onChange:w,onFocus:A,placeholder:b,required:O=!1,rows:M,select:D=!1,SelectProps:_,slots:q={},slotProps:Z={},type:F,value:le,variant:pe="outlined",...se}=r,oe={...r,autoFocus:a,color:l,disabled:c,error:d,fullWidth:u,multiline:E,required:O,select:D,variant:pe},Ce=U8(oe),de=on(x),ne=g&&de?`${de}-heLine truncated
`):e[i]),o(i),n(!1)}catch{o(null),n(!0)}}return(0,pr.jsxs)(ie,{sx:{my:2},children:[(0,pr.jsxs)(fe,{direction:"row",alignItems:"center",justifyContent:"space-between",spacing:1,sx:{mb:1},children:[(0,pr.jsx)(j,{variant:"body2",color:"text.secondary",children:"\u70B9\u51FB\u5355\u679A\u5151\u6362\u7801\u5373\u53EF\u590D\u5236"}),(0,pr.jsx)(me,{size:"small",color:"secondary",startIcon:(0,pr.jsx)(i1,{}),onClick:()=>{a("all")},sx:{px:1.5,flexShrink:0},children:"\u590D\u5236\u5168\u90E8"})]}),(0,pr.jsx)(ie,{component:"ul","aria-label":"\u65B0\u751F\u6210\u7684\u5151\u6362\u7801",tabIndex:0,sx:{m:0,p:0,listStyle:"none",maxHeight:300,overflowY:"auto",border:1,borderColor:"divider",borderRadius:2},children:e.map((i,s)=>(0,pr.jsx)(ie,{component:"li",children:(0,pr.jsx)(me,{fullWidth:!0,"aria-label":`\u590D\u5236\u7B2C ${s+1} \u679A\u5151\u6362\u7801`,onClick:()=>{a(s)},endIcon:t===s?(0,pr.jsx)(x4,{}):(0,pr.jsx)(i1,{}),sx:{py:1.5,px:2,borderRadius:0,justifyContent:"space-between",textAlign:"left",borderBottom:s<e.length-1?1:0,borderColor:"divider",color:"text.primary",gap:1},children:(0,pr.jsx)(ie,{component:"code",sx:{fontFamily:"monospace",fontSize:".8125rem",overflowWrap:"anywhere",userSelect:"text"},children:i})})},i))}),t!==null&&(0,pr.jsx)(j,{role:"status",variant:"body2",color:"success.main",sx:{mt:1},children:t==="all"?`\u5DF2\u590D\u5236\u5168\u90E8 ${e.length} \u679A\u5151\u6362\u7801\u3002`:`\u5DF2\u590D\u5236\u7B2C ${t+1} \u679A\u5151\u6362\u7801\u3002`}),r&&(0,pr.jsx)(Ue,{severity:"warning",sx:{mt:1},children:"\u6D4F\u89C8\u5668\u672A\u5141\u8BB8\u8BBF\u95EE\u526A\u8D34\u677F\u3002\u8BF7\u9009\u4E2D\u5151\u6362\u7801\u624B\u52A8\u590D\u5236\uFF0C\u6216\u4F7F\u7528\u4E0B\u65B9\u300C\u4E0B\u8F7D TXT\u300D\u3002"})]})}async function ho(e,t){let{ok:o,data:r}=await Ng(e,t);if(!o)throw new Error(r.message||"\u8BF7\u6C42\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002");return r}function S4(){return ho("/api/admin/stats")}function Pl(e){let t=new Date(e*1e3),o=r=>String(r).padStart(2,"0");return`${t.getFullYear()}-${o(t.getMonth()+1)}-${o(t.getDate())} ${o(t.getHours())}:${o(t.getMinutes())}:${o(t.getSeconds())}`}var ls={active:{label:"\u53EF\u4F7F\u7528",color:"primary"},processing:{label:"\u5904\u7406\u4E2D",color:"primary"},succeeded:{label:"\u5DF2\u5B8C\u6210",color:"success"},review:{label:"\u5F85\u6838\u5B9E",color:"warning"},revoked:{label:"\u5DF2\u505C\u7528",color:"default"}};var dd=S(I(),1);var C4=S(z(),1),E4=re((0,C4.jsx)("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"}),"FolderOutlined");var R4=S(z(),1),O4=re((0,R4.jsx)("path",{d:"m14.06 9.02.92.92L5.92 19H5v-.92zM17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z"}),"EditOutlined");var At=S(z(),1);function w4({folders:e,stats:t,filter:o,disabled:r,onSelect:n,onBusyChange:a,onChanged:i}){let[s,l]=(0,dd.useState)(null),[p,c]=(0,dd.useState)(""),[d,f]=(0,dd.useState)(""),[u,g]=(0,dd.useState)(!1);async function x(){if(!(!s||u)){if(!p.trim()||new TextEncoder().encode(p.trim()).length>120){f("\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF0C\u6700\u591A 120 \u5B57\u8282\u3002");return}g(!0),a(!0);try{await ho("/api/admin/folders/rename",{id:s.id,name:p.trim()}),await i(),l(null)}catch(v){f(v.message)}finally{g(!1),a(!1)}}}return(0,At.jsxs)(ie,{sx:{mb:3},children:[(0,At.jsxs)(fe,{direction:"row",justifyContent:"space-between",alignItems:"baseline",sx:{mb:1.5},children:[(0,At.jsx)(j,{variant:"h2",children:"\u6279\u6B21"}),(0,At.jsxs)(j,{variant:"body2",color:"text.secondary",children:[t?.total??"\u2014"," \u679A\u5151\u6362\u7801"]})]}),(0,At.jsx)(j,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"\u70B9\u51FB\u6279\u6B21\u6587\u4EF6\u5939\u67E5\u770B\u5151\u6362\u7801\uFF0C\u5DE6\u53F3\u6ED1\u52A8\u53EF\u67E5\u770B\u5168\u90E8\u6279\u6B21\u3002"}),(0,At.jsx)(fe,{direction:"row",useFlexGap:!0,gap:1,sx:{minHeight:80,overflowX:"auto",alignItems:"center",pb:1},role:"region","aria-label":"\u6279\u6B21\u6587\u4EF6\u5939\uFF0C\u53EF\u6A2A\u5411\u6EDA\u52A8",tabIndex:0,children:[{id:"",name:"\u5168\u90E8\u5151\u6362\u7801",count:t?.total??0},...t?.unfiled?[{id:"unfiled",name:"\u672A\u5206\u7C7B",count:t.unfiled}]:[],...e].map(v=>(0,At.jsxs)(ie,{sx:{display:"flex",border:1,borderColor:o===v.id?"primary.main":"divider",borderRadius:2,bgcolor:o===v.id?"action.selected":"background.paper",maxWidth:"100%",flexShrink:0},children:[(0,At.jsxs)(me,{disabled:r,"aria-pressed":o===v.id,startIcon:(0,At.jsx)(E4,{}),onClick:()=>n(v.id),sx:{px:2,py:1.5,justifyContent:"flex-start",textAlign:"left",overflowWrap:"anywhere",minWidth:0},children:[v.name," \xB7 ",v.count]}),v.id&&v.id!=="unfiled"&&(0,At.jsx)(In,{describeChild:!0,title:`\u91CD\u547D\u540D\u6279\u6B21\uFF1A${v.name}`,children:(0,At.jsx)("span",{children:(0,At.jsx)(an,{"aria-label":`\u91CD\u547D\u540D\u6279\u6B21\uFF1A${v.name}`,disabled: Line truncated
)`,content:'""',position:"absolute",transform:"translateX(-100%)",bottom:0,left:0,right:0,top:0}}},{props:{animation:"wave"},style:r8||{"&::after":{animation:`${Pv} 2s linear 0.5s infinite`}}}]}})),a8=ZR.forwardRef(function(t,o){let r=W({props:t,name:"MuiSkeleton"}),{animation:n="pulse",className:a,component:s="span",height:i,style:l,variant:p="text",width:c,...d}=r,f={...r,animation:n,component:s,variant:p,hasChildren:!!d.children},u=t8(f);return(0,JR.jsx)(n8,{as:s,ref:o,className:B(u.root,a),ownerState:f,...d,style:{width:c,height:i,...l}})}),Ga=a8;var Zy=S(L(),1);var Wp=S(L(),1);function s8(e={}){let{autoHideDuration:t=null,disableWindowBlurListener:o=!1,onClose:r,open:n,resumeHideDuration:a}=e,s=nr();Wp.useEffect(()=>{if(!n)return;function m(y){y.defaultPrevented||y.key==="Escape"&&r?.(y,"escapeKeyDown")}return document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}},[n,r]);let i=Ar((m,y)=>{r?.(m,y)}),l=Ar(m=>{!r||m==null||s.start(m,()=>{i(null,"timeout")})});Wp.useEffect(()=>(n&&l(t),s.clear),[n,t,l,s]);let p=m=>{r?.(m,"clickaway")},c=s.clear,d=Wp.useCallback(()=>{t!=null&&l(a??t*.5)},[t,a,l]),f=m=>y=>{let h=m.onBlur;h?.(y),d()},u=m=>y=>{let h=m.onFocus;h?.(y),c()},g=m=>y=>{let h=m.onMouseEnter;h?.(y),c()},v=m=>y=>{let h=m.onMouseLeave;h?.(y),d()};return Wp.useEffect(()=>{if(!o&&n)return window.addEventListener("focus",d),window.addEventListener("blur",c),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",c)}},[o,n,d,c]),{getRootProps:(m={})=>{let y={...Ss(e),...Ss(m)};return{role:"presentation",...m,...y,onBlur:f(y),onFocus:u(y),onMouseEnter:g(y),onMouseLeave:v(y)}},onClickAway:p}}var ew=s8;var ow=S(L(),1);function tw(e){return F("MuiSnackbarContent",e)}var x0e=G("MuiSnackbarContent",["root","message","action"]);var gf=S(_(),1),i8=e=>{let{classes:t}=e;return q({root:["root"],action:["action"],message:["message"]},tw,t)},l8=M(Ke,{name:"MuiSnackbarContent",slot:"Root"})(J(({theme:e})=>{let t=e.palette.mode==="light"?.8:.98;return{...e.typography.body2,color:e.vars?e.vars.palette.SnackbarContent.color:e.palette.getContrastText(xm(e.palette.background.default,t)),backgroundColor:e.vars?e.vars.palette.SnackbarContent.bg:xm(e.palette.background.default,t),display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",flexGrow:1,[e.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),p8=M("div",{name:"MuiSnackbarContent",slot:"Message"})({padding:"8px 0"}),c8=M("div",{name:"MuiSnackbarContent",slot:"Action"})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),u8=ow.forwardRef(function(t,o){let r=W({props:t,name:"MuiSnackbarContent"}),{action:n,className:a,message:s,role:i="alert",...l}=r,p=r,c=i8(p);return(0,gf.jsxs)(l8,{role:i,elevation:6,className:B(c.root,a),ownerState:p,ref:o,...l,children:[(0,gf.jsx)(p8,{className:c.message,ownerState:p,children:s}),n?(0,gf.jsx)(c8,{className:c.action,ownerState:p,children:n}):null]})}),Sv=u8;function rw(e){return F("MuiSnackbar",e)}var B0e=G("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]);var Tf=S(_(),1),f8=e=>{let{classes:t,anchorOrigin:o}=e,r={root:["root",`anchorOrigin${I(o.vertical)}${I(o.horizontal)}`]};return q(r,rw,t)},d8=M("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[`anchorOrigin${I(o.anchorOrigin.vertical)}${I(o.anchorOrigin.horizontal)}`]]}})(J(({theme:e})=>({zIndex:(e.vars||e).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:t})=>t.anchorOrigin.vertical==="top",style:{top:8,[e.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:t})=>t.anchorOrigin.vertical!=="top",style:{bottom:8,[e.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="left",style:{justifyContent:"flex-start",[e.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="right",style:{justifyContent:"flex-end",[e.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="center",style:{[e.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}))),m8=Zy.forwardRef(function(t,o){let r=W({props:t,name:"MuiSnackbar"}),n=It(),a={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{action:s,anchorOrigin:{vertical:i,horizontal:l}={vertical:"bottom",horizontal:"left"},autoHideDuration:p=null,children:c,className:d,ClickAwayListenerProps:f,ContentProps:u,disableWindowBlurListener:g=!1,message:v,onBlur:b,onClose:m,onFocus:y,onMouseEnter:h,onMouseLeave:T,open:P,resumeHideDuration:C,slots:E={},slotProps:R={},TransitionComponent:O,transitionDuration:w=a,TransitionProps:{onEnter:A,onExited:x,...N}={},...k}=r,z={...r,anchorOrigin:{vertical:i,horizon Line truncated
${e.palette.mode==="light"?e.lighten(e.alpha(e.palette.divider,1),.88):e.darken(e.alpha(e.palette.divider,1),.68)}`,textAlign:"left",padding:16,variants:[{props:{variant:"head"},style:{color:(e.vars||e).palette.text.primary,lineHeight:e.typography.pxToRem(24),fontWeight:e.typography.fontWeightMedium}},{props:{variant:"body"},style:{color:(e.vars||e).palette.text.primary}},{props:{variant:"footer"},style:{color:(e.vars||e).palette.text.secondary,lineHeight:e.typography.pxToRem(21),fontSize:e.typography.pxToRem(12)}},{props:{size:"small"},style:{padding:"6px 16px",[`&.${Rw.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}}},{props:{padding:"checkbox"},style:{width:48,padding:"0 0 0 4px"}},{props:{padding:"none"},style:{padding:0}},{props:{align:"left"},style:{textAlign:"left"}},{props:{align:"center"},style:{textAlign:"center"}},{props:{align:"right"},style:{textAlign:"right",flexDirection:"row-reverse"}},{props:{align:"justify"},style:{textAlign:"justify"}},{props:({ownerState:t})=>t.stickyHeader,style:{position:"sticky",top:0,zIndex:2,backgroundColor:(e.vars||e).palette.background.default}}]}))),nU=Sf.forwardRef(function(t,o){let r=W({props:t,name:"MuiTableCell"}),{align:n="inherit",className:a,component:s,padding:i,scope:l,size:p,sortDirection:c,variant:d,...f}=r,u=Sf.useContext(ih),g=Sf.useContext(Bs),v=g&&g.variant==="head",b;s?b=s:b=v?"th":"td";let m=l;b==="td"?m=void 0:!m&&v&&(m="col");let y=d||g&&g.variant,h={...r,align:n,component:b,padding:i||(u&&u.padding?u.padding:"normal"),size:p||(u&&u.size?u.size:"medium"),sortDirection:c,stickyHeader:y==="head"&&u&&u.stickyHeader,variant:y},T=oU(h),P=null;return c&&(P=c==="asc"?"ascending":"descending"),(0,ww.jsx)(rU,{as:b,ref:o,className:B(T.root,a),"aria-sort":P,scope:m,ownerState:h,...f})}),no=nU;var Nw=S(L(),1);function Ow(e){return F("MuiTableContainer",e)}var sCe=G("MuiTableContainer",["root"]);var Mw=S(_(),1),aU=e=>{let{classes:t}=e;return q({root:["root"]},Ow,t)},sU=M("div",{name:"MuiTableContainer",slot:"Root"})({width:"100%",overflowX:"auto"}),iU=Nw.forwardRef(function(t,o){let r=W({props:t,name:"MuiTableContainer"}),{className:n,component:a="div",...s}=r,i={...r,component:a},l=aU(i);return(0,Mw.jsx)(sU,{ref:o,as:a,className:B(l.root,n),ownerState:i,...s})}),Zp=iU;var _w=S(L(),1);function Aw(e){return F("MuiTableHead",e)}var bCe=G("MuiTableHead",["root"]);var kv=S(_(),1),lU=e=>{let{classes:t}=e;return q({root:["root"]},Aw,t)},pU=M("thead",{name:"MuiTableHead",slot:"Root"})({display:"table-header-group"}),cU={variant:"head"},kw="thead",uU=_w.forwardRef(function(t,o){let r=W({props:t,name:"MuiTableHead"}),{className:n,component:a=kw,...s}=r,i={...r,component:a},l=lU(i);return(0,kv.jsx)(Bs.Provider,{value:cU,children:(0,kv.jsx)(pU,{as:a,className:B(l.root,n),ref:o,role:a===kw?null:"rowgroup",ownerState:i,...s})})}),Jp=uU;var ph=S(L(),1);function Dw(e){return F("MuiTableRow",e)}var fU=G("MuiTableRow",["root","selected","hover","head","footer"]),_v=fU;var jw=S(_(),1),dU=e=>{let{classes:t,selected:o,hover:r,head:n,footer:a}=e;return q({root:["root",o&&"selected",r&&"hover",n&&"head",a&&"footer"]},Dw,t)},mU=M("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,o.head&&t.head,o.footer&&t.footer]}})(J(({theme:e})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${_v.hover}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${_v.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`)}}}))),zw="tr",yU=ph.forwardRef(function(t,o){let r=W({props:t,name:"MuiTableRow"}),{className:n,component:a=zw,hover:s=!1,selected:i=!1,...l}=r,p=ph.useContext(Bs),c={...r,component:a,hover:s,selected:i,head:p&&p.variant==="head",footer:p&&p.variant==="footer"},d=dU(c);return(0,jw.jsx)(mU,{as:a,ref:o,className:B(d.root,n),role:a===zw?null:"row",ownerState:c,...l})}),Wa=yU;var Lw=S(L(),1);function Bw(e){return F("MuiTextField",e)}var YCe=G("MuiTextField",["root"]);var nl=S(_(),1),hU={standard:lf,filled:af,outlined:yf},gU=e=>{let{classes:t}=e;return q({root:["root"]},Bw,t)},TU=M(Wb,{name:"MuiTextField",slot:"Root"})({}),bU=Lw.forwardRef(function(t,o){let r=W({props:t,name:"MuiTextField"}),{autoComplete:n,autoFocus:a=!1,children:s,className:i,color:l="primary",defaultValue:p,disabled:c=!1,error:d=!1,FormHelperTextProps:f,fullWidth:u=!1,helperText:g,id:v,InputLabelProps:b,inputProps:m,InputProps:y,inputRef:h,label:T,maxRows:P,minRows:C,multiline:E=!1,name:R,onBlur:O,onChange:w,onFocus:A,placeholder:x,required:N=!1,rows:k,select:z=!1,SelectProps:j,slots:K={},slotProps:U={},type:V,value:re,variant:pe="outlined",...ce}=r,ae={...r,autoFocus:a,color:l,disabled:c,error:d,fullWidth:u,multiline:E,required:N,select:z,variant:pe},Ee=gU(ae),de=rn(v),le=g&&de?`${de}-helLine truncated
`):e[s]),o(s),n(!1)}catch{o(null),n(!0)}}return(0,ur.jsxs)(ne,{sx:{my:2},children:[(0,ur.jsxs)(ie,{direction:"row",alignItems:"center",justifyContent:"space-between",spacing:1,sx:{mb:1},children:[(0,ur.jsx)(D,{variant:"body2",color:"text.secondary",children:"\u70B9\u51FB\u5355\u679A\u5151\u6362\u7801\u5373\u53EF\u590D\u5236"}),(0,ur.jsx)(me,{size:"small",color:"secondary",startIcon:(0,ur.jsx)(z1,{}),onClick:()=>{a("all")},sx:{px:1.5,flexShrink:0},children:"\u590D\u5236\u5168\u90E8"})]}),(0,ur.jsx)(ne,{component:"ul","aria-label":"\u65B0\u751F\u6210\u7684\u5151\u6362\u7801",tabIndex:0,sx:{m:0,p:0,listStyle:"none",maxHeight:300,overflowY:"auto",border:1,borderColor:"divider",borderRadius:2},children:e.map((s,i)=>(0,ur.jsx)(ne,{component:"li",children:(0,ur.jsx)(me,{fullWidth:!0,"aria-label":`\u590D\u5236\u7B2C ${i+1} \u679A\u5151\u6362\u7801`,onClick:()=>{a(i)},endIcon:t===i?(0,ur.jsx)(gM,{}):(0,ur.jsx)(z1,{}),sx:{py:1.5,px:2,borderRadius:0,justifyContent:"space-between",textAlign:"left",borderBottom:i<e.length-1?1:0,borderColor:"divider",color:"text.primary",gap:1},children:(0,ur.jsx)(ne,{component:"code",sx:{fontFamily:"monospace",fontSize:".8125rem",overflowWrap:"anywhere",userSelect:"text"},children:s})})},s))}),t!==null&&(0,ur.jsx)(D,{role:"status",variant:"body2",color:"success.main",sx:{mt:1},children:t==="all"?`\u5DF2\u590D\u5236\u5168\u90E8 ${e.length} \u679A\u5151\u6362\u7801\u3002`:`\u5DF2\u590D\u5236\u7B2C ${t+1} \u679A\u5151\u6362\u7801\u3002`}),r&&(0,ur.jsx)(Ue,{severity:"warning",sx:{mt:1},children:"\u6D4F\u89C8\u5668\u672A\u5141\u8BB8\u8BBF\u95EE\u526A\u8D34\u677F\u3002\u8BF7\u9009\u4E2D\u5151\u6362\u7801\u624B\u52A8\u590D\u5236\uFF0C\u6216\u4F7F\u7528\u4E0B\u65B9\u300C\u4E0B\u8F7D TXT\u300D\u3002"})]})}async function To(e,t){let{ok:o,data:r}=await Od(e,t);if(!o)throw new Error(r.message||"\u8BF7\u6C42\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002");return r}function bM(){return To("/api/admin/stats")}function Ml(e){let t=new Date(e*1e3),o=r=>String(r).padStart(2,"0");return`${t.getFullYear()}-${o(t.getMonth()+1)}-${o(t.getDate())} ${o(t.getHours())}:${o(t.getMinutes())}:${o(t.getSeconds())}`}var mi={active:{label:"\u53EF\u4F7F\u7528",color:"primary"},processing:{label:"\u5904\u7406\u4E2D",color:"primary"},succeeded:{label:"\u5DF2\u5B8C\u6210",color:"success"},review:{label:"\u5F85\u6838\u5B9E",color:"warning"},revoked:{label:"\u5DF2\u505C\u7528",color:"default"}};var Md=S(L(),1);var vM=S(_(),1),xM=te((0,vM.jsx)("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"}),"FolderOutlined");var PM=S(_(),1),SM=te((0,PM.jsx)("path",{d:"m14.06 9.02.92.92L5.92 19H5v-.92zM17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z"}),"EditOutlined");var kt=S(_(),1);function CM({folders:e,stats:t,filter:o,disabled:r,onSelect:n,onBusyChange:a,onChanged:s}){let[i,l]=(0,Md.useState)(null),[p,c]=(0,Md.useState)(""),[d,f]=(0,Md.useState)(""),[u,g]=(0,Md.useState)(!1);async function v(){if(!(!i||u)){if(!p.trim()||new TextEncoder().encode(p.trim()).length>120){f("\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF0C\u6700\u591A 120 \u5B57\u8282\u3002");return}g(!0),a(!0);try{await To("/api/admin/folders/rename",{id:i.id,name:p.trim()}),await s(),l(null)}catch(b){f(b.message)}finally{g(!1),a(!1)}}}return(0,kt.jsxs)(ne,{sx:{mb:3},children:[(0,kt.jsxs)(ie,{direction:"row",justifyContent:"space-between",alignItems:"baseline",sx:{mb:1.5},children:[(0,kt.jsx)(D,{variant:"h2",children:"\u6279\u6B21"}),(0,kt.jsxs)(D,{variant:"body2",color:"text.secondary",children:[t?.total??"\u2014"," \u679A\u5151\u6362\u7801"]})]}),(0,kt.jsx)(D,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"\u70B9\u51FB\u6279\u6B21\u6587\u4EF6\u5939\u67E5\u770B\u5151\u6362\u7801\uFF0C\u5DE6\u53F3\u6ED1\u52A8\u53EF\u67E5\u770B\u5168\u90E8\u6279\u6B21\u3002"}),(0,kt.jsx)(ie,{direction:"row",useFlexGap:!0,gap:1,sx:{minHeight:80,overflowX:"auto",alignItems:"center",pb:1},role:"region","aria-label":"\u6279\u6B21\u6587\u4EF6\u5939\uFF0C\u53EF\u6A2A\u5411\u6EDA\u52A8",tabIndex:0,children:[{id:"",name:"\u5168\u90E8\u5151\u6362\u7801",count:t?.total??0},...t?.unfiled?[{id:"unfiled",name:"\u672A\u5206\u7C7B",count:t.unfiled}]:[],...e].map(b=>(0,kt.jsxs)(ne,{sx:{display:"flex",border:1,borderColor:o===b.id?"primary.main":"divider",borderRadius:2,bgcolor:o===b.id?"action.selected":"background.paper",maxWidth:"100%",flexShrink:0},children:[(0,kt.jsxs)(me,{disabled:r,"aria-pressed":o===b.id,startIcon:(0,kt.jsx)(xM,{}),onClick:()=>n(b.id),sx:{px:2,py:1.5,justifyContent:"flex-start",textAlign:"left",overflowWrap:"anywhere",minWidth:0},children:[b.name," \xB7 ",b.count]}),b.id&&b.id!=="unfiled"&&(0,kt.jsx)($n,{describeChild:!0,title:`\u91CD\u547D\u540D\u6279\u6B21\uFF1A${b.name}`,children:(0,kt.jsx)("span",{children:(0,kt.jsx)(sn,{"aria-label":`\u91CD\u547D\u540D\u6279\u6B21\uFF1A${b.name}`,disabled: Line truncated
`)+`
`],{type:"text/plain;charset=utf-8"})),Be=document.createElement("a");Be.href=K,Be.download=`xgift-${Te.months}mo-${Date.now()}.txt`,Be.click(),setTimeout(()=>URL.revokeObjectURL(K),1e3)}let fr=Z&&le?le.filter(Z.match):null,Pa=fr?.length??0,Kn=Math.max(1,Math.ceil(Pa/100)),Qr=Math.min(se,Kn-1),he=fr?fr.slice(Qr*100,Qr*100+100):n?.codes??[],je=he.map(K=>K.id),kt=je.filter(K=>E.includes(K));return(0,B.jsxs)(u4,{admin:!0,children:[(0,B.jsxs)(fe,{direction:{xs:"column",sm:"row"},justifyContent:"space-between",alignItems:{xs:"start",sm:"center"},spacing:2,sx:{mb:4},children:[(0,B.jsxs)(ie,{children:[(0,B.jsx)(j,{variant:"h1",sx:{fontSize:{xs:30,sm:36},mt:.5},children:"\u5151\u6362\u7801\u7BA1\u7406"}),(0,B.jsx)(j,{color:"text.secondary",sx:{mt:1},children:"\u751F\u6210\u5151\u6362\u7801\u3001\u67E5\u770B\u5151\u6362\u72B6\u6001\u548C\u7BA1\u7406\u6279\u6B21\u3002"})]}),(0,B.jsxs)(fe,{direction:"row",alignItems:"center",spacing:1,children:[(0,B.jsx)(Do,{variant:"outlined",color:n?.payments_enabled?"success":"default",label:n?n.payments_enabled?"\u5145\u503C\u5DF2\u5F00\u653E":"\u7528\u6237\u5145\u503C\u5165\u53E3\u5DF2\u6682\u505C":"\u6B63\u5728\u83B7\u53D6\u670D\u52A1\u72B6\u6001"}),(0,B.jsx)(T4,{})]})]}),(0,B.jsxs)(ie,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",md:"minmax(0, 1fr) minmax(0, 1fr)"},gap:3,mb:3,alignItems:"stretch"},children:[(0,B.jsx)(F4,{selected:e,onPrepare:(K,Be)=>r({id:K,mode:Be,seq:Date.now()})}),(0,B.jsx)(Y4,{disabled:c||i,refreshSignal:ot,onCopy:K=>{we(K)},onViewCustomer:K=>t({id:K,seq:Date.now()}),onRevoke:K=>H({kind:"revoke",code:K})})]}),(0,B.jsx)(mM,{}),(0,B.jsx)(aM,{selection:o}),(0,B.jsx)(pM,{refreshSignal:ot}),(0,B.jsx)(w4,{folders:n?.folders??[],stats:n?.stats,filter:n?.folder??"",disabled:c||i,onSelect:K=>{if(Z){it(!1);let Be=K==="unfiled"?"\u672A\u5206\u7C7B":K?n?.folders.find(Dt=>Dt.id===K)?.name??"":"";Be&&ve(Dt=>({seq:Dt.seq+1,text:`\u7B5B\u9009\u5DF2\u6E05\u9664\uFF0C\u5DF2\u663E\u793A\u6279\u6B21\uFF1A${Be}`}))}Ae(0,K)},onBusyChange:K=>{bt.current=K,d(K)},onChanged:async()=>{Z?io():await Ae(0)}}),Z&&(0,B.jsx)(j,{variant:"body2",color:"text.secondary",sx:{mt:-1.5,mb:3},children:"\u8868\u8FBE\u5F0F\u7B5B\u9009\u751F\u6548\u4E2D\uFF0C\u70B9\u51FB\u6279\u6B21\u6587\u4EF6\u5939\u53EF\u6E05\u9664\u7B5B\u9009\u5E76\u67E5\u770B\u8BE5\u6279\u6B21\u3002"}),(0,B.jsx)(H4,{value:M,onChange:K=>{D(K),_&&q("")},onApply:()=>{M.trim()&&ft(M.trim())},onClear:()=>it(),applied:!!Z,error:_,disabled:c||i,folders:n?.folders??[],appliedSource:Z?.source??"",resultCount:Z?Pa:void 0,applySeq:Ce,clearNotice:ne}),(0,B.jsxs)(Ze,{variant:"outlined",sx:{p:{xs:2.5,sm:3},mb:3},children:[(0,B.jsxs)(fe,{direction:"row",spacing:1,alignItems:"center",sx:{mb:1},children:[(0,B.jsx)(iv,{color:"primary"}),(0,B.jsx)(j,{variant:"h2",children:"\u751F\u6210\u5151\u6362\u7801"})]}),(0,B.jsx)(j,{variant:"body2",color:"text.secondary",sx:{mb:3},children:"\u6BCF\u6279\u6700\u591A 500 \u679A\u3002\u540C\u540D\u6279\u6B21\u81EA\u52A8\u5F52\u5165\u540C\u4E00\u4E2A\u6587\u4EF6\u5939\u3002"}),(0,B.jsx)(ie,{component:"form",ref:vt,noValidate:!0,onSubmit:K=>{K.preventDefault();let Be=new TextEncoder().encode(v.trim()).length>120,Dt=!Number.isInteger(Number(g))||Number(g)<1||Number(g)>500;Pe(Be),Se(Dt),!(Be||Dt||!vt.current.reportValidity()||c)&&Oo()},children:(0,B.jsxs)(ie,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr",md:"1fr 1fr 2fr"},gap:2,alignItems:"start"},children:[(0,B.jsxs)($t,{select:!0,label:"\u5957\u9910\u65F6\u957F",value:f,onChange:K=>u(Number(K.target.value)),disabled:c,helperText:"\u7ED1\u5B9A\u540E\u4E0D\u53EF\u66F4\u6539",children:[(0,B.jsx)(Ln,{value:3,children:"3 \u4E2A\u6708 Premium"}),(0,B.jsx)(Ln,{value:6,children:"6 \u4E2A\u6708 Premium"})]}),(0,B.jsx)($t,{label:"\u751F\u6210\u6570\u91CF",type:"number",required:!0,value:g,onChange:K=>{x(K.target.value),Me&&Se(!1)},disabled:c,error:Me,helperText:Me?"\u8BF7\u8F93\u5165 1\u2013500 \u4E4B\u95F4\u7684\u6574\u6570":"\u6BCF\u6279 1\u2013500 \u679A",slotProps:{htmlInput:{min:1,max:500,step:1}}}),(0,B.jsx)($t,{label:"\u6279\u6B21\u540D\u79F0\uFF08\u53EF\u9009\uFF09",placeholder:"\u4F8B\u5982\uFF1A\u5341\u6708\u8D60\u793C",value:v,onChange:K=>{m(K.target.value),L&&Pe(!1)},disabled:c,error:L,helperText:L?"\u6279\u6B21\u540D\u79F0\u4E0D\u80FD\u8D85\u8FC7 120 \u5B57\u8282\uFF08\u7EA6 40 \u4E2A\u6C49\u5B57\uFF09":"\u6279\u6B21\u540D\u79F0\u5C31\u662F\u6587\u4EF6\u5939\u540D\u79F0\uFF0C\u7559\u7A7A\u81EA\u52A8\u547D\u540D"}),(0,B.jsx)(me,{type:"submit",variant:"contained",startIcon:(0,B.jsx)(XR,{}),disabled:c||i||!!l,sx:{gridColumn:{sm:"1 / -1"},justifySelf:{sm:"end"}},children:c?"\u6B63\u5728\u5904\u7406\u2026":"\u751F\u6210\u5151\u6362\u7801"})]})})]}),ue&&(0,B.jsx)(Ue,{severity:ue.error?"error":"success",role:"status",closeText:"\u5173\u95ED",onClose:ue.error?void 0:()=>ye(null),sx:{mb:3},children:ue.text}),Te&&(0,B.jsxs)(Ze,{ref:ur,variant:"outlined",sx:{p:3,mb:3,borderColor:"primary.main"},children:[(0,B.jsx)(j,{variant:"h2",children:"\u672C\u627 Line truncated
`],{type:"text/plain;charset=utf-8"})),Le=document.createElement("a");Le.href=Z,Le.download=`xgift-${Te.months}mo-${Date.now()}.txt`,Le.click(),setTimeout(()=>URL.revokeObjectURL(Z),1e3)}let dr=U&&re?re.filter(U.match):null,Sa=dr?.length??0,Qn=Math.max(1,Math.ceil(Sa/100)),Zr=Math.min(ce,Qn-1),he=dr?dr.slice(Zr*100,Zr*100+100):n?.codes??[],Be=he.map(Z=>Z.id),_t=Be.filter(Z=>E.includes(Z));return(0,$.jsxs)(iM,{admin:!0,children:[(0,$.jsxs)(ie,{direction:{xs:"column",sm:"row"},justifyContent:"space-between",alignItems:{xs:"start",sm:"center"},spacing:2,sx:{mb:4},children:[(0,$.jsxs)(ne,{children:[(0,$.jsx)(D,{variant:"h1",sx:{fontSize:{xs:30,sm:36},mt:.5},children:"\u5151\u6362\u7801\u7BA1\u7406"}),(0,$.jsx)(D,{color:"text.secondary",sx:{mt:1},children:"\u751F\u6210\u5151\u6362\u7801\u3001\u67E5\u770B\u5151\u6362\u72B6\u6001\u548C\u7BA1\u7406\u6279\u6B21\u3002"})]}),(0,$.jsxs)(ie,{direction:"row",alignItems:"center",spacing:1,children:[(0,$.jsx)(zo,{variant:"outlined",color:n?.payments_enabled?"success":"default",label:n?n.payments_enabled?"\u5145\u503C\u5DF2\u5F00\u653E":"\u7528\u6237\u5145\u503C\u5165\u53E3\u5DF2\u6682\u505C":"\u6B63\u5728\u83B7\u53D6\u670D\u52A1\u72B6\u6001"}),(0,$.jsx)(mM,{})]})]}),(0,$.jsxs)(ne,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",md:"minmax(0, 1fr) minmax(0, 1fr)"},gap:3,mb:3,alignItems:"stretch"},children:[(0,$.jsx)(IM,{selected:e,onPrepare:(Z,Le)=>r({id:Z,mode:Le,seq:Date.now()})}),(0,$.jsx)(VM,{disabled:c||s,refreshSignal:rt,onCopy:Z=>{Ne(Z)},onViewCustomer:Z=>t({id:Z,seq:Date.now()}),onRevoke:Z=>Y({kind:"revoke",code:Z})})]}),(0,$.jsx)(yA,{}),(0,$.jsx)(tA,{selection:o}),(0,$.jsx)(aA,{refreshSignal:rt}),(0,$.jsx)(CM,{folders:n?.folders??[],stats:n?.stats,filter:n?.folder??"",disabled:c||s,onSelect:Z=>{if(U){it(!1);let Le=Z==="unfiled"?"\u672A\u5206\u7C7B":Z?n?.folders.find(Dt=>Dt.id===Z)?.name??"":"";Le&&xe(Dt=>({seq:Dt.seq+1,text:`\u7B5B\u9009\u5DF2\u6E05\u9664\uFF0C\u5DF2\u663E\u793A\u6279\u6B21\uFF1A${Le}`}))}ke(0,Z)},onBusyChange:Z=>{vt.current=Z,d(Z)},onChanged:async()=>{U?lo():await ke(0)}}),U&&(0,$.jsx)(D,{variant:"body2",color:"text.secondary",sx:{mt:-1.5,mb:3},children:"\u8868\u8FBE\u5F0F\u7B5B\u9009\u751F\u6548\u4E2D\uFF0C\u70B9\u51FB\u6279\u6B21\u6587\u4EF6\u5939\u53EF\u6E05\u9664\u7B5B\u9009\u5E76\u67E5\u770B\u8BE5\u6279\u6B21\u3002"}),(0,$.jsx)(LM,{value:k,onChange:Z=>{z(Z),j&&K("")},onApply:()=>{k.trim()&&dt(k.trim())},onClear:()=>it(),applied:!!U,error:j,disabled:c||s,folders:n?.folders??[],appliedSource:U?.source??"",resultCount:U?Sa:void 0,applySeq:Ee,clearNotice:le}),(0,$.jsxs)(Ke,{variant:"outlined",sx:{p:{xs:2.5,sm:3},mb:3},children:[(0,$.jsxs)(ie,{direction:"row",spacing:1,alignItems:"center",sx:{mb:1},children:[(0,$.jsx)(zv,{color:"primary"}),(0,$.jsx)(D,{variant:"h2",children:"\u751F\u6210\u5151\u6362\u7801"})]}),(0,$.jsx)(D,{variant:"body2",color:"text.secondary",sx:{mb:3},children:"\u6BCF\u6279\u6700\u591A 500 \u679A\u3002\u540C\u540D\u6279\u6B21\u81EA\u52A8\u5F52\u5165\u540C\u4E00\u4E2A\u6587\u4EF6\u5939\u3002"}),(0,$.jsx)(ne,{component:"form",ref:xt,noValidate:!0,onSubmit:Z=>{Z.preventDefault();let Le=new TextEncoder().encode(b.trim()).length>120,Dt=!Number.isInteger(Number(g))||Number(g)<1||Number(g)>500;Se(Le),Ce(Dt),!(Le||Dt||!xt.current.reportValidity()||c)&&No()},children:(0,$.jsxs)(ne,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr",md:"1fr 1fr 2fr"},gap:2,alignItems:"start"},children:[(0,$.jsxs)(Lt,{select:!0,label:"\u5957\u9910\u65F6\u957F",value:f,onChange:Z=>u(Number(Z.target.value)),disabled:c,helperText:"\u7ED1\u5B9A\u540E\u4E0D\u53EF\u66F4\u6539",children:[(0,$.jsx)(In,{value:3,children:"3 \u4E2A\u6708 Premium"}),(0,$.jsx)(In,{value:6,children:"6 \u4E2A\u6708 Premium"})]}),(0,$.jsx)(Lt,{label:"\u751F\u6210\u6570\u91CF",type:"number",required:!0,value:g,onChange:Z=>{v(Z.target.value),Ae&&Ce(!1)},disabled:c,error:Ae,helperText:Ae?"\u8BF7\u8F93\u5165 1\u2013500 \u4E4B\u95F4\u7684\u6574\u6570":"\u6BCF\u6279 1\u2013500 \u679A",slotProps:{htmlInput:{min:1,max:500,step:1}}}),(0,$.jsx)(Lt,{label:"\u6279\u6B21\u540D\u79F0\uFF08\u53EF\u9009\uFF09",placeholder:"\u4F8B\u5982\uFF1A\u5341\u6708\u8D60\u793C",value:b,onChange:Z=>{m(Z.target.value),H&&Se(!1)},disabled:c,error:H,helperText:H?"\u6279\u6B21\u540D\u79F0\u4E0D\u80FD\u8D85\u8FC7 120 \u5B57\u8282\uFF08\u7EA6 40 \u4E2A\u6C49\u5B57\uFF09":"\u6279\u6B21\u540D\u79F0\u5C31\u662F\u6587\u4EF6\u5939\u540D\u79F0\uFF0C\u7559\u7A7A\u81EA\u52A8\u547D\u540D"}),(0,$.jsx)(me,{type:"submit",variant:"contained",startIcon:(0,$.jsx)(qw,{}),disabled:c||s||!!l,sx:{gridColumn:{sm:"1 / -1"},justifySelf:{sm:"end"}},children:c?"\u6B63\u5728\u5904\u7406\u2026":"\u751F\u6210\u5151\u6362\u7801"})]})})]}),fe&&(0,$.jsx)(Ue,{severity:fe.error?"error":"success",role:"status",closeText:"\u5173\u95ED",onClose:fe.error?void 0:()=>ye(null),sx:{mb:3},children:fe.text}),Te&&(0,$.jsxs)(Ke,{ref:fr,variant:"outlined",sx:{p:3,mb:3,borderColor:"primary.main"},children:[(0,$.jsx)(D,{variant:"h2",children:"\u672C\u627 Line truncated
/*! Bundled license information:
react/cjs/react.production.js:
Binary file not shown.
+43 -43
View File
@@ -1,15 +1,15 @@
var NN=Object.create;var nv=Object.defineProperty;var wN=Object.getOwnPropertyDescriptor;var AN=Object.getOwnPropertyNames;var MN=Object.getPrototypeOf,_N=Object.prototype.hasOwnProperty;var co=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(o){throw t=0,o}};var DN=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of AN(t))!_N.call(e,n)&&n!==o&&nv(e,n,{get:()=>t[n],enumerable:!(r=wN(t,n))||r.enumerable});return e};var P=(e,t,o)=>(o=e!=null?NN(MN(e)):{},DN(t||!e||!e.__esModule?nv(o,"default",{value:e,enumerable:!0}):o,e));var gv=co(le=>{"use strict";var Hy=Symbol.for("react.transitional.element"),zN=Symbol.for("react.portal"),jN=Symbol.for("react.fragment"),BN=Symbol.for("react.strict_mode"),UN=Symbol.for("react.profiler"),LN=Symbol.for("react.consumer"),kN=Symbol.for("react.context"),IN=Symbol.for("react.forward_ref"),VN=Symbol.for("react.suspense"),HN=Symbol.for("react.memo"),pv=Symbol.for("react.lazy"),FN=Symbol.for("react.activity"),$N=Symbol.for("react.view_transition"),av=Symbol.iterator;function qN(e){return e===null||typeof e!="object"?null:(e=av&&e[av]||e["@@iterator"],typeof e=="function"?e:null)}var uv={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},cv=Object.assign,fv={};function ii(e,t,o){this.props=e,this.context=t,this.refs=fv,this.updater=o||uv}ii.prototype.isReactComponent={};ii.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ii.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function dv(){}dv.prototype=ii.prototype;function Fy(e,t,o){this.props=e,this.context=t,this.refs=fv,this.updater=o||uv}var $y=Fy.prototype=new dv;$y.constructor=Fy;cv($y,ii.prototype);$y.isPureReactComponent=!0;var sv=Array.isArray;function Vy(){}var Ze={H:null,A:null,T:null,S:null},mv=Object.prototype.hasOwnProperty;function qy(e,t,o){var r=o.ref;return{$$typeof:Hy,type:e,key:t,ref:r!==void 0?r:null,props:o}}function GN(e,t){return qy(e.type,t,e.props)}function Gy(e){return typeof e=="object"&&e!==null&&e.$$typeof===Hy}function YN(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(o){return t[o]})}var iv=/\/+/g;function Iy(e,t){return typeof e=="object"&&e!==null&&e.key!=null?YN(""+e.key):t.toString(36)}function XN(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Vy,Vy):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function si(e,t,o,r,n){var a=typeof e;(a==="undefined"||a==="boolean")&&(e=null);var s=!1;if(e===null)s=!0;else switch(a){case"bigint":case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case Hy:case zN:s=!0;break;case pv:return s=e._init,si(s(e._payload),t,o,r,n)}}if(s)return n=n(e),s=r===""?"."+Iy(e,0):r,sv(n)?(o="",s!=null&&(o=s.replace(iv,"$&/")+"/"),si(n,t,o,"",function(p){return p})):n!=null&&(Gy(n)&&(n=GN(n,o+(n.key==null||e&&e.key===n.key?"":(""+n.key).replace(iv,"$&/")+"/")+s)),t.push(n)),1;s=0;var i=r===""?".":r+":";if(sv(e))for(var l=0;l<e.length;l++)r=e[l],a=i+Iy(r,l),s+=si(r,t,o,a,n);else if(l=qN(e),typeof l=="function")for(e=l.call(e),l=0;!(r=e.next()).done;)r=r.value,a=i+Iy(r,l++),s+=si(r,t,o,a,n);else if(a==="object"){if(typeof e.then=="function")return si(XN(e),t,o,r,n);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return s}function Dc(e,t,o){if(e==null)return e;var r=[],n=0;return si(e,r,"","",function(a){return t.call(o,a,n++)}),r}function KN(e){if(e._status===-1){var t=e._result,o=t();o.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r,o.status===void 0&&(o.status="fulfilled",o.value=r))},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r,o.status===void 0&&(o.status="rejected",o.reason=r))}),e._status===-1&&(e._status=0,e._result=o)}if(e._status===1)return e._result.default;throw e._result}var lv=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)};function yv(e){var t=Ze.T,o={};o.types=t!==null?t.types:nullLine truncated
var qN=Object.create;var cv=Object.defineProperty;var GN=Object.getOwnPropertyDescriptor;var YN=Object.getOwnPropertyNames;var XN=Object.getPrototypeOf,KN=Object.prototype.hasOwnProperty;var mo=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(o){throw t=0,o}};var QN=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of YN(t))!KN.call(e,n)&&n!==o&&cv(e,n,{get:()=>t[n],enumerable:!(r=GN(t,n))||r.enumerable});return e};var P=(e,t,o)=>(o=e!=null?qN(XN(e)):{},QN(t||!e||!e.__esModule?cv(o,"default",{value:e,enumerable:!0}):o,e));var Cv=mo(ce=>{"use strict";var Yy=Symbol.for("react.transitional.element"),ZN=Symbol.for("react.portal"),WN=Symbol.for("react.fragment"),JN=Symbol.for("react.strict_mode"),ew=Symbol.for("react.profiler"),tw=Symbol.for("react.consumer"),ow=Symbol.for("react.context"),rw=Symbol.for("react.forward_ref"),nw=Symbol.for("react.suspense"),aw=Symbol.for("react.memo"),hv=Symbol.for("react.lazy"),sw=Symbol.for("react.activity"),iw=Symbol.for("react.view_transition"),fv=Symbol.iterator;function lw(e){return e===null||typeof e!="object"?null:(e=fv&&e[fv]||e["@@iterator"],typeof e=="function"?e:null)}var gv={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Tv=Object.assign,bv={};function ui(e,t,o){this.props=e,this.context=t,this.refs=bv,this.updater=o||gv}ui.prototype.isReactComponent={};ui.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ui.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function vv(){}vv.prototype=ui.prototype;function Xy(e,t,o){this.props=e,this.context=t,this.refs=bv,this.updater=o||gv}var Ky=Xy.prototype=new vv;Ky.constructor=Xy;Tv(Ky,ui.prototype);Ky.isPureReactComponent=!0;var dv=Array.isArray;function Gy(){}var Je={H:null,A:null,T:null,S:null},xv=Object.prototype.hasOwnProperty;function Qy(e,t,o){var r=o.ref;return{$$typeof:Yy,type:e,key:t,ref:r!==void 0?r:null,props:o}}function pw(e,t){return Qy(e.type,t,e.props)}function Zy(e){return typeof e=="object"&&e!==null&&e.$$typeof===Yy}function uw(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(o){return t[o]})}var mv=/\/+/g;function qy(e,t){return typeof e=="object"&&e!==null&&e.key!=null?uw(""+e.key):t.toString(36)}function cw(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Gy,Gy):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function pi(e,t,o,r,n){var a=typeof e;(a==="undefined"||a==="boolean")&&(e=null);var s=!1;if(e===null)s=!0;else switch(a){case"bigint":case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case Yy:case ZN:s=!0;break;case hv:return s=e._init,pi(s(e._payload),t,o,r,n)}}if(s)return n=n(e),s=r===""?"."+qy(e,0):r,dv(n)?(o="",s!=null&&(o=s.replace(mv,"$&/")+"/"),pi(n,t,o,"",function(p){return p})):n!=null&&(Zy(n)&&(n=pw(n,o+(n.key==null||e&&e.key===n.key?"":(""+n.key).replace(mv,"$&/")+"/")+s)),t.push(n)),1;s=0;var i=r===""?".":r+":";if(dv(e))for(var l=0;l<e.length;l++)r=e[l],a=i+qy(r,l),s+=pi(r,t,o,a,n);else if(l=lw(e),typeof l=="function")for(e=l.call(e),l=0;!(r=e.next()).done;)r=r.value,a=i+qy(r,l++),s+=pi(r,t,o,a,n);else if(a==="object"){if(typeof e.then=="function")return pi(cw(e),t,o,r,n);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return s}function Ic(e,t,o){if(e==null)return e;var r=[],n=0;return pi(e,r,"","",function(a){return t.call(o,a,n++)}),r}function fw(e){if(e._status===-1){var t=e._result,o=t();o.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r,o.status===void 0&&(o.status="fulfilled",o.value=r))},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r,o.status===void 0&&(o.status="rejected",o.reason=r))}),e._status===-1&&(e._status=0,e._result=o)}if(e._status===1)return e._result.default;throw e._result}var yv=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)};function Sv(e){var t=Je.T,o={};o.types=t!==null?t.types:nullLine truncated
at`)?" (<anonymous>)":-1<o.stack.indexOf("@")?"@unknown:0:0":""}return`
`+uT+e+mE}var cT=!1;function fT(e,t){if(!e||cT)return"";cT=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var d=function(){throw Error()};if(Object.defineProperty(d.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(d,[])}catch(b){var u=b}Reflect.construct(e,[],d)}else{try{d.call()}catch(b){u=b}d=!1;try{var c=Object.getOwnPropertyDescriptor(e.prototype,"props");Object.defineProperty(e.prototype,"props",{configurable:!0,set:function(){throw Error()}}),d=!0,new e}finally{d&&(c!==void 0?Object.defineProperty(e.prototype,"props",c):delete e.prototype.props)}}}else{try{throw Error()}catch(b){u=b}(d=e())&&typeof d.catch=="function"&&d.catch(function(){})}}catch(b){if(b&&u&&typeof b.stack=="string")return[b.stack,u.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var n=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,"name");n&&n.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var a=r.DetermineComponentFrameRoot(),s=a[0],i=a[1];if(s&&i){var l=s.split(`
`+yT+e+OE}var hT=!1;function gT(e,t){if(!e||hT)return"";hT=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var d=function(){throw Error()};if(Object.defineProperty(d.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(d,[])}catch(T){var c=T}Reflect.construct(e,[],d)}else{try{d.call()}catch(T){c=T}d=!1;try{var f=Object.getOwnPropertyDescriptor(e.prototype,"props");Object.defineProperty(e.prototype,"props",{configurable:!0,set:function(){throw Error()}}),d=!0,new e}finally{d&&(f!==void 0?Object.defineProperty(e.prototype,"props",f):delete e.prototype.props)}}}else{try{throw Error()}catch(T){c=T}(d=e())&&typeof d.catch=="function"&&d.catch(function(){})}}catch(T){if(T&&c&&typeof T.stack=="string")return[T.stack,c.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var n=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,"name");n&&n.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var a=r.DetermineComponentFrameRoot(),s=a[0],i=a[1];if(s&&i){var l=s.split(`
`),p=i.split(`
`);for(n=r=0;r<l.length&&!l[r].includes("DetermineComponentFrameRoot");)r++;for(;n<p.length&&!p[n].includes("DetermineComponentFrameRoot");)n++;if(r===l.length||n===p.length)for(r=l.length-1,n=p.length-1;1<=r&&0<=n&&l[r]!==p[n];)n--;for(;1<=r&&0<=n;r--,n--)if(l[r]!==p[n]){if(r!==1||n!==1)do if(r--,n--,0>n||l[r]!==p[n]){var f=`
`+l[r].replace(" at new "," at ");return e.displayName&&f.includes("<anonymous>")&&(f=f.replace("<anonymous>",e.displayName)),f}while(1<=r&&0<=n);break}}}finally{cT=!1,Error.prepareStackTrace=o}return(o=e?e.displayName||e.name:"")?Ta(o):""}function ej(e,t){switch(e.tag){case 26:case 27:case 5:return Ta(e.type);case 16:return Ta("Lazy");case 13:return e.child!==t&&t!==null?Ta("Suspense Fallback"):Ta("Suspense");case 19:return Ta("SuspenseList");case 0:case 15:return fT(e.type,!1);case 11:return fT(e.type.render,!1);case 1:return fT(e.type,!0);case 31:return Ta("Activity");case 30:return Ta("ViewTransition");default:return""}}function yE(e){try{var t="",o=null;do t+=ej(e,o),o=e,e=e.return;while(e);return t}catch(r){return`
`);for(n=r=0;r<l.length&&!l[r].includes("DetermineComponentFrameRoot");)r++;for(;n<p.length&&!p[n].includes("DetermineComponentFrameRoot");)n++;if(r===l.length||n===p.length)for(r=l.length-1,n=p.length-1;1<=r&&0<=n&&l[r]!==p[n];)n--;for(;1<=r&&0<=n;r--,n--)if(l[r]!==p[n]){if(r!==1||n!==1)do if(r--,n--,0>n||l[r]!==p[n]){var u=`
`+l[r].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),u}while(1<=r&&0<=n);break}}}finally{hT=!1,Error.prepareStackTrace=o}return(o=e?e.displayName||e.name:"")?xa(o):""}function Pj(e,t){switch(e.tag){case 26:case 27:case 5:return xa(e.type);case 16:return xa("Lazy");case 13:return e.child!==t&&t!==null?xa("Suspense Fallback"):xa("Suspense");case 19:return xa("SuspenseList");case 0:case 15:return gT(e.type,!1);case 11:return gT(e.type.render,!1);case 1:return gT(e.type,!0);case 31:return xa("Activity");case 30:return xa("ViewTransition");default:return""}}function NE(e){try{var t="",o=null;do t+=Pj(e,o),o=e,e=e.return;while(e);return t}catch(r){return`
Error generating stack: `+r.message+`
`+r.stack}}var ZT=Object.prototype.hasOwnProperty,e0=At.unstable_scheduleCallback,dT=At.unstable_cancelCallback,tj=At.unstable_shouldYield,oj=At.unstable_requestPaint,Qo=At.unstable_now,rj=At.unstable_getCurrentPriorityLevel,r2=At.unstable_ImmediatePriority,n2=At.unstable_UserBlockingPriority,$m=At.unstable_NormalPriority,nj=At.unstable_LowPriority,a2=At.unstable_IdlePriority,aj=At.log,sj=At.unstable_setDisableYieldValue,bc=null,Zo=null;function Pa(e){if(typeof aj=="function"&&sj(e),Zo&&typeof Zo.setStrictMode=="function")try{Zo.setStrictMode(bc,e)}catch{}}var Wo=Math.clz32?Math.clz32:pj,ij=Math.log,lj=Math.LN2;function pj(e){return e>>>=0,e===0?32:31-(ij(e)/lj|0)|0}var om=256,rm=262144,nm=4194304;function zs(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function hy(e,t,o){var r=e.pendingLanes;if(r===0)return 0;var n=0,a=e.suspendedLanes,s=e.pingedLanes;e=e.warmLanes;var i=r&134217727;return i!==0?(r=i&~a,r!==0?n=zs(r):(s&=i,s!==0?n=zs(s):o||(o=i&~e,o!==0&&(n=zs(o))))):(i=r&~a,i!==0?n=zs(i):s!==0?n=zs(s):o||(o=r&~e,o!==0&&(n=zs(o)))),n===0?0:t!==0&&t!==n&&(t&a)===0&&(a=n&-n,o=t&-t,a>=o||a===32&&(o&4194048)!==0)?t:n}function vc(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function s2(e,t){(t&8)!==0&&(t|=t&32);var o=e.entangledLanes;if(o!==0)for(e=e.entanglements,o&=t;0<o;){var r=31-Wo(o),n=1<<r;t|=e[r],o&=~n}return t}function uj(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function i2(){var e=nm;return nm<<=1,(nm&62914560)===0&&(nm=4194304),e}function mT(e){for(var t=[],o=0;31>o;o++)t.push(e);return t}function xc(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function cj(e,t,o,r,n,a){var s=e.pendingLanes;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=o,e.entangledLanes&=o,e.errorRecoveryDisabledLanes&=o,e.shellSuspendCounter=0;var i=e.entanglements,l=e.expirationTimes,p=e.hiddenUpdates;for(o=s&~o;0<o;){var f=31-Wo(o),d=1<<f;i[f]=0,l[f]=-1;var u=p[f];if(u!==null)for(p[f]=null,f=0;f<u.length;f++){var c=u[f];c!==null&&(c.lane&=-536870913)}o&=~d}r!==0&&l2(e,r,0),a!==0&&n===0&&e.tag!==0&&(e.suspendedLanes|=a&~(s&~t))}function l2(e,t,o){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Wo(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|o&261930}function p2(e,t){var o=e.entangledLanes|=t;for(e=e.entanglements;o;){var r=31-Wo(o),n=1<<r;n&t|e[r]&t&&(e[r]|=t),o&=~n}}function u2(e,t){var o=t&-t;return o=(o&42)!==0?1:t0(o),(o&(e.suspendedLanes|t))!==0?0:o}function t0(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function o0(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function c2(){var e=Ae.p;return e!==0?e:(e=window.event,e===void 0?32:G5(e.type))}function hE(e,t){var o=Ae.p;try{return Ae.p=e,t()}finally{Ae.p=o}}var Fn=Math.random().toString(36).slice(2),Qt="__reactFiber$"+Fn,Uo="__reactProps$"+Fn,ap="__reactContainer$"+Fn,gE="__reactEvents$"+Fn,fj="__reactListeners$"+Fn,dj="__reactHandles$"+Fn,TE="__reactResources$"+Fn,Sc="__reactMarker$"+Fn,qm="__reactLoad$"+Fn;function gy(e){delete e[Qt],delete e[Uo],delete e[fj],delete e[dj]}function Us(e){var t;if(t=e[Qt])return t;for(var o=e.parentNode;o;){if(t=o[ap]||o[Qt]){if(o=t.alternate,t.child!==null||o!==null&&o.child!==null)for(e=jR(e);e!==null;){if(o=e[Qt])return o;e=jR(e)}return t}e=o,o=e.parentNode}return null}function sp(e){if(e=e[Qt]||e[ap]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Iu(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(B(33))}function Bl(e){var t=e[TE];return t||(t=e[TE]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function Ut(e){e[Sc]=!0}function f2(e){e[qm]=void 0}var d2=new Set,m2={};function Js(e,t){Yl(e,t),Yl(e+"Capt Line truncated
`).replace(WB,"")}function P5(e,t){return t=ER(t),ER(e)===t}function Ve(e,t,o,r,n,a){switch(o){case"children":if(typeof r=="string")t==="body"||t==="textarea"&&r===""||Xl(e,r);else if(typeof r=="number"||typeof r=="bigint")t!=="body"&&Xl(e,""+r);else return;break;case"className":am(e,"class",r);break;case"tabIndex":am(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":am(e,o,r);break;case"style":v2(e,r,a);return;case"data":if(t!=="object"){am(e,"data",r);break}case"src":case"href":if(r===""&&(t!=="a"||o!=="href")){e.removeAttribute(o);break}if(r==null||typeof r=="function"||typeof r=="symbol"||typeof r=="boolean"){e.removeAttribute(o);break}r=Pm(r),e.setAttribute(o,r);break;case"action":case"formAction":if(typeof r=="function"){e.setAttribute(o,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof a=="function"&&(o==="formAction"?(t!=="input"&&Ve(e,t,"name",n.name,n,null),Ve(e,t,"formEncType",n.formEncType,n,null),Ve(e,t,"formMethod",n.formMethod,n,null),Ve(e,t,"formTarget",n.formTarget,n,null)):(Ve(e,t,"encType",n.encType,n,null),Ve(e,t,"method",n.method,n,null),Ve(e,t,"target",n.target,n,null)));if(r==null||typeof r=="symbol"||typeof r=="boolean"){e.removeAttribute(o);break}r=Pm(r),e.setAttribute(o,r);break;case"onClick":r!=null&&(e.onclick=on);return;case"onScroll":r!=null&&he("scroll",e);return;case"onScrollEnd":r!=null&&he("scrollend",e);return;case"dangerouslySetInnerHTML":if(r!=null){if(typeof r!="object"||!("__html"in r))throw Error(B(61));if(o=r.__html,o!=null){if(n.children!=null)throw Error(B(60));a?.__html!==o&&(e.innerHTML=o)}}break;case"multiple":e.multiple=r&&typeof r!="function"&&typeof r!="symbol";break;case"muted":e.muted=r&&typeof r!="function"&&typeof r!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(r==null||typeof r=="function"||typeof r=="boolean"||typeof r=="symbol"){e.removeAttribute("xlink:href");break}o=Pm(r),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":r!=null&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(o,r):e.removeAttribute(o);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"credentialless":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(o,""):e.removeAttribute(o);break;case"capture":case"download":r===!0?e.setAttribute(o,""):r!==!1&&r!=null&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(o,r):e.removeAttribute(o);break;case"cols":case"rows":case"size":case"span":r!=null&&typeof r!="function"&&typeof r!="symbol"&&!isNaN(r)&&1<=r?e.setAttribute(o,r):e.removeAttribute(o);break;case"rowSpan":case"start":r==null||typeof r=="function"||typeof r=="symbol"||isNaN(r)?e.removeAttribute(o):e.setAttribute(o,r);break;case"popover":he("beforetoggle",e),he("toggle",e),Sm(e,"popover",r);break;case"xlinkActuate":Mn(e,"http://www.w3.org/1999/xlink","xlink:actuate",r);break;case"xlinkArcrole":Mn(e,"http://www.w3.org/1999/xlink","xlink:arcrole",r);break;case"xlinkRole":Mn(e,"http://www.w3.org/1999/xlink","xlink:role",r);break;case"xlinkShow":Mn(e,"http://www.w3.org/1999/xlink","xlink:show",r);break;case"xlinkTitle":Mn(e,"http://www.w3.org/1999/xlink","xlink:title",r);break;case"xlinkType":Mn(e,"http://www.w3.org/1999/xlink","xlink:type",r);break;case"xmlBase":Mn(e,"http://www.w3.org/XML/1998/namespace","xml:base",r);break;case"xmlLang":Mn(e,"http://www.w3.org/XML/1998/namespace","xml:lang",r);break;case"xmlSpace":Mn(e,"http://www.w3.org/XML/1998/namespace","xml:space",r);break;case"is":Sm(e,"is",r);break;case"innerText":case"textContent":return;default:if(!(2<o.length)||o[0]!=="o"&&o[0]!=="O"||o[1]!=="n"&&o[1]!=="N")o=bj.get(o)||o,Sm(e,o,r);else return}Oe=!0}function Vb(e,t,o,r,n,a){switch(o){case"style":v2(e,r,a);return;case"dangerouslySetInnerHTML":if(r!=null){if(typeof r!="object"||!("__html"in r))throw Error(B(61));if(o=r.__html,o!=null){if(n.children!=null)throw Error(B(60));a?.__html!==o&&(e.innerHTML=o)}}break;case"children":if(typeof r=="string")Xl(e,r);else if(typeof r=="number"||typeof r=="bigint")Xl(e,""+r);else return;break;case"onScroll":r!=null&&he("scroll",e);return;case"onScrollEnd":r!=null&&he("scrollend",e);return;case"onClick":r Line truncated
${i}.classList.add('${u}'.replace('%s', colorScheme));`}let d=f.match(/\[([^[\]]+)\]/);if(d){let[u,c]=d[1].split("=");c||(p+=`${i}.removeAttribute('${u}'.replace('%s', light));
${i}.removeAttribute('${u}'.replace('%s', dark));`),p+=`
${i}.setAttribute('${u}'.replace('%s', colorScheme), ${c?`${c}.replace('%s', colorScheme)`:'""'});`}else f!==".%s"&&(p+=`${i}.setAttribute('${f}', colorScheme);`);return(0,r1.jsx)("script",{suppressHydrationWarning:!0,nonce:typeof window>"u"?l:"",dangerouslySetInnerHTML:{__html:`(function() {
`+r.stack}}var ob=Object.prototype.hasOwnProperty,a0=jt.unstable_scheduleCallback,TT=jt.unstable_cancelCallback,Cj=jt.unstable_shouldYield,Ej=jt.unstable_requestPaint,Zo=jt.unstable_now,Rj=jt.unstable_getCurrentPriorityLevel,hR=jt.unstable_ImmediatePriority,gR=jt.unstable_UserBlockingPriority,Ym=jt.unstable_NormalPriority,Oj=jt.unstable_LowPriority,TR=jt.unstable_IdlePriority,Nj=jt.log,wj=jt.unstable_setDisableYieldValue,Rc=null,Wo=null;function Ra(e){if(typeof Nj=="function"&&wj(e),Wo&&typeof Wo.setStrictMode=="function")try{Wo.setStrictMode(Rc,e)}catch{}}var Jo=Math.clz32?Math.clz32:_j,Aj=Math.log,Mj=Math.LN2;function _j(e){return e>>>=0,e===0?32:31-(Aj(e)/Mj|0)|0}var am=256,sm=262144,im=4194304;function Us(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function by(e,t,o){var r=e.pendingLanes;if(r===0)return 0;var n=0,a=e.suspendedLanes,s=e.pingedLanes;e=e.warmLanes;var i=r&134217727;return i!==0?(r=i&~a,r!==0?n=Us(r):(s&=i,s!==0?n=Us(s):o||(o=i&~e,o!==0&&(n=Us(o))))):(i=r&~a,i!==0?n=Us(i):s!==0?n=Us(s):o||(o=r&~e,o!==0&&(n=Us(o)))),n===0?0:t!==0&&t!==n&&(t&a)===0&&(a=n&-n,o=t&-t,a>=o||a===32&&(o&4194048)!==0)?t:n}function Oc(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function bR(e,t){(t&8)!==0&&(t|=t&32);var o=e.entangledLanes;if(o!==0)for(e=e.entanglements,o&=t;0<o;){var r=31-Jo(o),n=1<<r;t|=e[r],o&=~n}return t}function Dj(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function vR(){var e=im;return im<<=1,(im&62914560)===0&&(im=4194304),e}function bT(e){for(var t=[],o=0;31>o;o++)t.push(e);return t}function Nc(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function zj(e,t,o,r,n,a){var s=e.pendingLanes;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=o,e.entangledLanes&=o,e.errorRecoveryDisabledLanes&=o,e.shellSuspendCounter=0;var i=e.entanglements,l=e.expirationTimes,p=e.hiddenUpdates;for(o=s&~o;0<o;){var u=31-Jo(o),d=1<<u;i[u]=0,l[u]=-1;var c=p[u];if(c!==null)for(p[u]=null,u=0;u<c.length;u++){var f=c[u];f!==null&&(f.lane&=-536870913)}o&=~d}r!==0&&xR(e,r,0),a!==0&&n===0&&e.tag!==0&&(e.suspendedLanes|=a&~(s&~t))}function xR(e,t,o){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Jo(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|o&261930}function SR(e,t){var o=e.entangledLanes|=t;for(e=e.entanglements;o;){var r=31-Jo(o),n=1<<r;n&t|e[r]&t&&(e[r]|=t),o&=~n}}function PR(e,t){var o=t&-t;return o=(o&42)!==0?1:s0(o),(o&(e.suspendedLanes|t))!==0?0:o}function s0(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function i0(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function CR(){var e=Me.p;return e!==0?e:(e=window.event,e===void 0?32:aN(e.type))}function wE(e,t){var o=Me.p;try{return Me.p=e,t()}finally{Me.p=o}}var qn=Math.random().toString(36).slice(2),Jt="__reactFiber$"+qn,Lo="__reactProps$"+qn,fp="__reactContainer$"+qn,AE="__reactEvents$"+qn,jj="__reactListeners$"+qn,Bj="__reactHandles$"+qn,ME="__reactResources$"+qn,wc="__reactMarker$"+qn,Xm="__reactLoad$"+qn;function vy(e){delete e[Jt],delete e[Lo],delete e[jj],delete e[Bj]}function Is(e){var t;if(t=e[Jt])return t;for(var o=e.parentNode;o;){if(t=o[fp]||o[Jt]){if(o=t.alternate,t.child!==null||o!==null&&o.child!==null)for(e=X2(e);e!==null;){if(o=e[Jt])return o;e=X2(e)}return t}e=o,o=e.parentNode}return null}function dp(e){if(e=e[Jt]||e[fp]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Yu(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(L(33))}function Fl(e){var t=e[ME];return t||(t=e[ME]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function Vt(e){e[wc]=!0}function ER(e){e[Xm]=void 0}var RR=new Set,OR={};function oi(e,t){ep(e,t),ep(e+"Capt Line truncated
`).replace(x9,"")}function B5(e,t){return t=L2(t),L2(e)===t}function He(e,t,o,r,n,a){switch(o){case"children":if(typeof r=="string")t==="body"||t==="textarea"&&r===""||tp(e,r);else if(typeof r=="number"||typeof r=="bigint")t!=="body"&&tp(e,""+r);else return;break;case"className":lm(e,"class",r);break;case"tabIndex":lm(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":lm(e,o,r);break;case"style":DR(e,r,a);return;case"data":if(t!=="object"){lm(e,"data",r);break}case"src":case"href":if(r===""&&(t!=="a"||o!=="href")){e.removeAttribute(o);break}if(r==null||typeof r=="function"||typeof r=="symbol"||typeof r=="boolean"){e.removeAttribute(o);break}r=Rm(r),e.setAttribute(o,r);break;case"action":case"formAction":if(typeof r=="function"){e.setAttribute(o,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof a=="function"&&(o==="formAction"?(t!=="input"&&He(e,t,"name",n.name,n,null),He(e,t,"formEncType",n.formEncType,n,null),He(e,t,"formMethod",n.formMethod,n,null),He(e,t,"formTarget",n.formTarget,n,null)):(He(e,t,"encType",n.encType,n,null),He(e,t,"method",n.method,n,null),He(e,t,"target",n.target,n,null)));if(r==null||typeof r=="symbol"||typeof r=="boolean"){e.removeAttribute(o);break}r=Rm(r),e.setAttribute(o,r);break;case"onClick":r!=null&&(e.onclick=rn);return;case"onScroll":r!=null&&Te("scroll",e);return;case"onScrollEnd":r!=null&&Te("scrollend",e);return;case"dangerouslySetInnerHTML":if(r!=null){if(typeof r!="object"||!("__html"in r))throw Error(L(61));if(o=r.__html,o!=null){if(n.children!=null)throw Error(L(60));a?.__html!==o&&(e.innerHTML=o)}}break;case"multiple":e.multiple=r&&typeof r!="function"&&typeof r!="symbol";break;case"muted":e.muted=r&&typeof r!="function"&&typeof r!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(r==null||typeof r=="function"||typeof r=="boolean"||typeof r=="symbol"){e.removeAttribute("xlink:href");break}o=Rm(r),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":r!=null&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(o,r):e.removeAttribute(o);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"credentialless":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(o,""):e.removeAttribute(o);break;case"capture":case"download":r===!0?e.setAttribute(o,""):r!==!1&&r!=null&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(o,r):e.removeAttribute(o);break;case"cols":case"rows":case"size":case"span":r!=null&&typeof r!="function"&&typeof r!="symbol"&&!isNaN(r)&&1<=r?e.setAttribute(o,r):e.removeAttribute(o);break;case"rowSpan":case"start":r==null||typeof r=="function"||typeof r=="symbol"||isNaN(r)?e.removeAttribute(o):e.setAttribute(o,r);break;case"popover":Te("beforetoggle",e),Te("toggle",e),Em(e,"popover",r);break;case"xlinkActuate":Dn(e,"http://www.w3.org/1999/xlink","xlink:actuate",r);break;case"xlinkArcrole":Dn(e,"http://www.w3.org/1999/xlink","xlink:arcrole",r);break;case"xlinkRole":Dn(e,"http://www.w3.org/1999/xlink","xlink:role",r);break;case"xlinkShow":Dn(e,"http://www.w3.org/1999/xlink","xlink:show",r);break;case"xlinkTitle":Dn(e,"http://www.w3.org/1999/xlink","xlink:title",r);break;case"xlinkType":Dn(e,"http://www.w3.org/1999/xlink","xlink:type",r);break;case"xmlBase":Dn(e,"http://www.w3.org/XML/1998/namespace","xml:base",r);break;case"xmlLang":Dn(e,"http://www.w3.org/XML/1998/namespace","xml:lang",r);break;case"xmlSpace":Dn(e,"http://www.w3.org/XML/1998/namespace","xml:space",r);break;case"is":Em(e,"is",r);break;case"innerText":case"textContent":return;default:if(!(2<o.length)||o[0]!=="o"&&o[0]!=="O"||o[1]!=="n"&&o[1]!=="N")o=Hj.get(o)||o,Em(e,o,r);else return}Ne=!0}function Gb(e,t,o,r,n,a){switch(o){case"style":DR(e,r,a);return;case"dangerouslySetInnerHTML":if(r!=null){if(typeof r!="object"||!("__html"in r))throw Error(L(61));if(o=r.__html,o!=null){if(n.children!=null)throw Error(L(60));a?.__html!==o&&(e.innerHTML=o)}}break;case"children":if(typeof r=="string")tp(e,r);else if(typeof r=="number"||typeof r=="bigint")tp(e,""+r);else return;break;case"onScroll":r!=null&&Te("scroll",e);return;case"onScrollEnd":r!=null&&Te("scrollend",e);return;case"onClick":r Line truncated
${i}.classList.add('${c}'.replace('%s', colorScheme));`}let d=u.match(/\[([^[\]]+)\]/);if(d){let[c,f]=d[1].split("=");f||(p+=`${i}.removeAttribute('${c}'.replace('%s', light));
${i}.removeAttribute('${c}'.replace('%s', dark));`),p+=`
${i}.setAttribute('${c}'.replace('%s', colorScheme), ${f?`${f}.replace('%s', colorScheme)`:'""'});`}else u!==".%s"&&(p+=`${i}.setAttribute('${u}', colorScheme);`);return(0,u1.jsx)("script",{suppressHydrationWarning:!0,nonce:typeof window>"u"?l:"",dangerouslySetInnerHTML:{__html:`(function() {
try {
let colorScheme = '';
const mode = localStorage.getItem('${n}') || '${t}';
@@ -33,15 +33,15 @@ try {
if (colorScheme) {
${p}
}
} catch(e){}})();`}},"mui-color-scheme-init")}var Ft=P(U(),1);function vA(){}var xA=({key:e,storageWindow:t})=>(!t&&typeof window<"u"&&(t=window),{get(o){if(typeof window>"u")return;if(!t)return o;let r;try{r=t.localStorage.getItem(e)}catch{}return r||o},set:o=>{if(t)try{t.localStorage.setItem(e,o)}catch{}},subscribe:o=>{if(!t)return vA;let r=n=>{let a=n.newValue;n.key===e&&o(a)};return t.addEventListener("storage",r),()=>{t.removeEventListener("storage",r)}}}),n1=xA;function Nh(){}function a1(e){if(typeof window<"u"&&typeof window.matchMedia=="function"&&e==="system")return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function s1(e,t){if(e.mode==="light"||e.mode==="system"&&e.systemMode==="light")return t("light");if(e.mode==="dark"||e.mode==="system"&&e.systemMode==="dark")return t("dark")}function SA(e){return s1(e,t=>{if(t==="light")return e.lightColorScheme;if(t==="dark")return e.darkColorScheme})}function wh(e){let{defaultMode:t="light",defaultLightColorScheme:o,defaultDarkColorScheme:r,supportedColorSchemes:n=[],modeStorageKey:a=_p,colorSchemeStorageKey:s=Dp,storageWindow:i=typeof window>"u"?void 0:window,storageManager:l=n1,noSsr:p=!1}=e,f=n.join(","),d=n.length>1,u=Ft.useMemo(()=>l?.({key:a,storageWindow:i}),[l,a,i]),c=Ft.useMemo(()=>l?.({key:`${s}-light`,storageWindow:i}),[l,s,i]),b=Ft.useMemo(()=>l?.({key:`${s}-dark`,storageWindow:i}),[l,s,i]),[v,x]=Ft.useState(()=>{let R=u?.get(t)||t,w=c?.get(o)||o,N=b?.get(r)||r;return{mode:R,systemMode:a1(R),lightColorScheme:w,darkColorScheme:N}}),[m,h]=Ft.useState(p||!d);Ft.useEffect(()=>{h(!0)},[]);let y=SA(v),g=Ft.useCallback(R=>{x(w=>{if(R===w.mode)return w;let N=R??t;return u?.set(N),{...w,mode:N,systemMode:a1(N)}})},[u,t]),S=Ft.useCallback(R=>{R?typeof R=="string"?R&&!f.includes(R)?console.error(`\`${R}\` does not exist in \`theme.colorSchemes\`.`):x(w=>{let N={...w};return s1(w,_=>{_==="light"&&(c?.set(R),N.lightColorScheme=R),_==="dark"&&(b?.set(R),N.darkColorScheme=R)}),N}):x(w=>{let N={...w},_=R.light===null?o:R.light,T=R.dark===null?r:R.dark;return _&&(f.includes(_)?(N.lightColorScheme=_,c?.set(_)):console.error(`\`${_}\` does not exist in \`theme.colorSchemes\`.`)),T&&(f.includes(T)?(N.darkColorScheme=T,b?.set(T)):console.error(`\`${T}\` does not exist in \`theme.colorSchemes\`.`)),N}):x(w=>(c?.set(o),b?.set(r),{...w,lightColorScheme:o,darkColorScheme:r}))},[f,c,b,o,r]),C=Ft.useCallback(R=>{v.mode==="system"&&x(w=>{let N=R?.matches?"dark":"light";return w.systemMode===N?w:{...w,systemMode:N}})},[v.mode]),E=Ft.useRef(C);return E.current=C,Ft.useEffect(()=>{if(typeof window.matchMedia!="function"||!d)return;let R=(...N)=>E.current(...N),w=window.matchMedia("(prefers-color-scheme: dark)");return w.addListener(R),R(w),()=>{w.removeListener(R)}},[d]),Ft.useEffect(()=>{if(d){let R=u?.subscribe(_=>{(!_||["light","dark","system"].includes(_))&&g(_||t)})||Nh,w=c?.subscribe(_=>{(!_||f.match(_))&&S({light:_})})||Nh,N=b?.subscribe(_=>{(!_||f.match(_))&&S({dark:_})})||Nh;return()=>{R(),w(),N()}}},[S,g,f,t,i,d,u,c,b]),{...v,mode:m?v.mode:void 0,systemMode:m?v.systemMode:void 0,colorScheme:m?y:void 0,setMode:g,setColorScheme:S}}var Di=P(k(),1),PA="*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function Af(e){let{themeId:t,theme:o={},modeStorageKey:r=_p,colorSchemeStorageKey:n=Dp,disableTransitionOnChange:a=!1,defaultColorScheme:s,resolveTheme:i}=e,l={allColorSchemes:[],colorScheme:void 0,darkColorScheme:void 0,lightColorScheme:void 0,mode:void 0,setColorScheme:()=>{},setMode:()=>{},systemMode:void 0},p=$t.createContext(void 0),f=()=>$t.useContext(p)||l,d={},u={};function c(m){let{children:h,theme:y,modeStorageKey:g=r,colorSchemeStorageKey:S=n,disableTransitionOnChange:C=a,storageManager:E,storageWindow:R=typeof window>"u"?void 0:window,documentNode:w=typeof document>"u"?void 0:document,colorSchemeNode:N=typeof document>"u"?void 0:document.documentElement,disableNestedContext:_=!1,disableStyleSheetGeneration:T=!1,defaultMode:O="system",forceThemeRerender:M=!1,noSsr:j}=m,L=$t.useRef(!1),G=gn(),J=$t.useContext(p),X=!!J&&!_,me=$t.useMemo(()=>y||(typeof o=="function"?o():o),[y]),oe=me[t],pe=oe||me,{colorSchemes:ie=d,components:Fe=u,cssVarPrefix:se}=pe,ce=Object.keys(ie).filter(at=>!!ie[at]).join(","),Te=$t.useMemo(()=>ce.split(","),[ce]),rt=typeof s=="string"?s:s.light,ve=typeof s=="string"?s:s.dark,ne=ie[rt]&&ie[ve]?O:ie[pe.defaultColorScheme]?.palette?.mode||pe.palette?.mode,{mode:K,setMode:Q,systemMode:Ne,lightColorScheme:Y,darkColorScheme:ye,colorScheme:Me,setColorScheme:xe}=wh({supportedColorSchemes:Te,defaultLightColorScheme:rt,defaultDarkColorScheme:ve,modeStorageKey:g,colorSchemeStorageKey:S,defaultMode:ne,storageManager:E,storageWindow:R,noSsr:j}),_e=K,ot=Me;X&&(_e=J.mode,ot=J.colorScheme);let oo=ot||pe.defaultColorScheme;pe.vars&&!M&&(oo=pe.defaultColorScheme);let nt=$t.useMemo(()=>{let at=pe.generateThemeVars?.()||pe.vars,qLine truncated
} catch(e){}})();`}},"mui-color-scheme-init")}var Yt=P(U(),1);function U4(){}var L4=({key:e,storageWindow:t})=>(!t&&typeof window<"u"&&(t=window),{get(o){if(typeof window>"u")return;if(!t)return o;let r;try{r=t.localStorage.getItem(e)}catch{}return r||o},set:o=>{if(t)try{t.localStorage.setItem(e,o)}catch{}},subscribe:o=>{if(!t)return U4;let r=n=>{let a=n.newValue;n.key===e&&o(a)};return t.addEventListener("storage",r),()=>{t.removeEventListener("storage",r)}}}),c1=L4;function Dh(){}function f1(e){if(typeof window<"u"&&typeof window.matchMedia=="function"&&e==="system")return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function d1(e,t){if(e.mode==="light"||e.mode==="system"&&e.systemMode==="light")return t("light");if(e.mode==="dark"||e.mode==="system"&&e.systemMode==="dark")return t("dark")}function k4(e){return d1(e,t=>{if(t==="light")return e.lightColorScheme;if(t==="dark")return e.darkColorScheme})}function zh(e){let{defaultMode:t="light",defaultLightColorScheme:o,defaultDarkColorScheme:r,supportedColorSchemes:n=[],modeStorageKey:a=kp,colorSchemeStorageKey:s=Ip,storageWindow:i=typeof window>"u"?void 0:window,storageManager:l=c1,noSsr:p=!1}=e,u=n.join(","),d=n.length>1,c=Yt.useMemo(()=>l?.({key:a,storageWindow:i}),[l,a,i]),f=Yt.useMemo(()=>l?.({key:`${s}-light`,storageWindow:i}),[l,s,i]),T=Yt.useMemo(()=>l?.({key:`${s}-dark`,storageWindow:i}),[l,s,i]),[v,x]=Yt.useState(()=>{let R=c?.get(t)||t,N=f?.get(o)||o,O=T?.get(r)||r;return{mode:R,systemMode:f1(R),lightColorScheme:N,darkColorScheme:O}}),[m,h]=Yt.useState(p||!d);Yt.useEffect(()=>{h(!0)},[]);let y=k4(v),g=Yt.useCallback(R=>{x(N=>{if(R===N.mode)return N;let O=R??t;return c?.set(O),{...N,mode:O,systemMode:f1(O)}})},[c,t]),S=Yt.useCallback(R=>{R?typeof R=="string"?R&&!u.includes(R)?console.error(`\`${R}\` does not exist in \`theme.colorSchemes\`.`):x(N=>{let O={...N};return d1(N,_=>{_==="light"&&(f?.set(R),O.lightColorScheme=R),_==="dark"&&(T?.set(R),O.darkColorScheme=R)}),O}):x(N=>{let O={...N},_=R.light===null?o:R.light,b=R.dark===null?r:R.dark;return _&&(u.includes(_)?(O.lightColorScheme=_,f?.set(_)):console.error(`\`${_}\` does not exist in \`theme.colorSchemes\`.`)),b&&(u.includes(b)?(O.darkColorScheme=b,T?.set(b)):console.error(`\`${b}\` does not exist in \`theme.colorSchemes\`.`)),O}):x(N=>(f?.set(o),T?.set(r),{...N,lightColorScheme:o,darkColorScheme:r}))},[u,f,T,o,r]),C=Yt.useCallback(R=>{v.mode==="system"&&x(N=>{let O=R?.matches?"dark":"light";return N.systemMode===O?N:{...N,systemMode:O}})},[v.mode]),E=Yt.useRef(C);return E.current=C,Yt.useEffect(()=>{if(typeof window.matchMedia!="function"||!d)return;let R=(...O)=>E.current(...O),N=window.matchMedia("(prefers-color-scheme: dark)");return N.addListener(R),R(N),()=>{N.removeListener(R)}},[d]),Yt.useEffect(()=>{if(d){let R=c?.subscribe(_=>{(!_||["light","dark","system"].includes(_))&&g(_||t)})||Dh,N=f?.subscribe(_=>{(!_||u.match(_))&&S({light:_})})||Dh,O=T?.subscribe(_=>{(!_||u.match(_))&&S({dark:_})})||Dh;return()=>{R(),N(),O()}}},[S,g,u,t,i,d,c,f,T]),{...v,mode:m?v.mode:void 0,systemMode:m?v.systemMode:void 0,colorScheme:m?y:void 0,setMode:g,setColorScheme:S}}var Bi=P(B(),1),I4="*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function Uf(e){let{themeId:t,theme:o={},modeStorageKey:r=kp,colorSchemeStorageKey:n=Ip,disableTransitionOnChange:a=!1,defaultColorScheme:s,resolveTheme:i}=e,l={allColorSchemes:[],colorScheme:void 0,darkColorScheme:void 0,lightColorScheme:void 0,mode:void 0,setColorScheme:()=>{},setMode:()=>{},systemMode:void 0},p=Xt.createContext(void 0),u=()=>Xt.useContext(p)||l,d={},c={};function f(m){let{children:h,theme:y,modeStorageKey:g=r,colorSchemeStorageKey:S=n,disableTransitionOnChange:C=a,storageManager:E,storageWindow:R=typeof window>"u"?void 0:window,documentNode:N=typeof document>"u"?void 0:document,colorSchemeNode:O=typeof document>"u"?void 0:document.documentElement,disableNestedContext:_=!1,disableStyleSheetGeneration:b=!1,defaultMode:A="system",forceThemeRerender:M=!1,noSsr:j}=m,k=Xt.useRef(!1),X=bn(),q=Xt.useContext(p),G=!!q&&!_,se=Xt.useMemo(()=>y||(typeof o=="function"?o():o),[y]),ae=se[t],fe=ae||se,{colorSchemes:ue=d,components:$e=c,cssVarPrefix:pe}=fe,de=Object.keys(ue).filter(pt=>!!ue[pt]).join(","),ve=Xt.useMemo(()=>de.split(","),[de]),it=typeof s=="string"?s:s.light,Se=typeof s=="string"?s:s.dark,ie=ue[it]&&ue[Se]?A:ue[fe.defaultColorScheme]?.palette?.mode||fe.palette?.mode,{mode:Q,setMode:Z,systemMode:we,lightColorScheme:K,darkColorScheme:he,colorScheme:_e,setColorScheme:Pe}=zh({supportedColorSchemes:ve,defaultLightColorScheme:it,defaultDarkColorScheme:Se,modeStorageKey:g,colorSchemeStorageKey:S,defaultMode:ie,storageManager:E,storageWindow:R,noSsr:j}),De=Q,nt=_e;G&&(De=q.mode,nt=q.colorScheme);let ao=nt||fe.defaultColorScheme;fe.vars&&!M&&(ao=fe.defaultColorScheme);let lt=Xt.useMemo(()=>{let pt=fe.generateThemeVars?.()||fe.vars,YLine truncated
const theme = ${JSON.stringify(t,null,2)};
theme.breakpoints = createBreakpoints(theme.breakpoints || {});
theme.transitions = createTransitions(theme.transitions || {});
export default theme;`}function x1(e){return typeof e=="number"?`${(e*100).toFixed(0)}%`:`calc((${e}) * 100%)`}var QA=e=>{if(!Number.isNaN(+e))return+e;let t=e.match(/\d*\.?\d+/g);if(!t)return 0;let o=0;for(let r=0;r<t.length;r+=1)o+=+t[r];return o};function ZA(e){Object.assign(e,{alpha(t,o){let r=this||e;return r.colorSpace?`oklch(from ${t} l c h / ${typeof o=="string"?`calc(${o})`:o})`:r.vars?`rgba(${t.replace(/var\(--([^,\s)]+)(?:,[^)]+)?\)+/g,"var(--$1Channel)")} / ${typeof o=="string"?`calc(${o})`:o})`:ea(t,QA(o))},lighten(t,o){let r=this||e;return r.colorSpace?`color-mix(in ${r.colorSpace}, ${t}, #fff ${x1(o)})`:Ai(t,o)},darken(t,o){let r=this||e;return r.colorSpace?`color-mix(in ${r.colorSpace}, ${t}, #000 ${x1(o)})`:wi(t,o)}})}function WA(e={},...t){let{breakpoints:o,mixins:r={},spacing:n,palette:a={},transitions:s={},typography:i={},shape:l,colorSpace:p,...f}=e;if(e.vars&&e.generateThemeVars===void 0)throw new Error(Mt(20));let d=ss({...a,colorSpace:p}),u=Or(e),c=Re(u,{mixins:Dh(u.breakpoints,r),palette:d,shadows:T1.slice(),typography:jp(d,i),transitions:jh(s),zIndex:{...v1}});return c=Re(c,f),c=t.reduce((b,v)=>Re(b,v),c),c.unstable_sxConfig={...Rr,...f?.unstable_sxConfig},c.unstable_sx=function(v){return No({sx:v,theme:this})},c.toRuntimeSource=Uf,ZA(c),c}var Bp=WA;function ji(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}var JA=[...Array(25)].map((e,t)=>{if(t===0)return"none";let o=ji(t);return`linear-gradient(rgba(255 255 255 / ${o}), rgba(255 255 255 / ${o}))`});function Bh(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function Uh(e){return e==="dark"?JA:[]}function Lh(e){let{palette:t={mode:"light"},opacity:o,overlays:r,colorSpace:n,...a}=e,s=ss({...t,colorSpace:n});return{palette:s,opacity:{...Bh(s.mode),...o},overlays:r||Uh(s.mode),...a}}function kh(e){return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!e[1]?.match(/(mode|contrastThreshold|tonalOffset)/)}var eM=e=>[...[...Array(25)].map((t,o)=>`--${e?`${e}-`:""}overlays-${o}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],S1=eM;var P1=e=>(t,o)=>{let r=e.rootSelector||":root",n=e.colorSchemeSelector,a=n;if(n==="class"&&(a=".%s"),n==="data"&&(a="[data-%s]"),n?.startsWith("data-")&&!n.includes("%s")&&(a=`[${n}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){let s={};return S1(e.cssVarPrefix).forEach(i=>{s[i]=o[i],delete o[i]}),a==="media"?{[r]:o,"@media (prefers-color-scheme: dark)":{[r]:s}}:a?{[a.replace("%s",t)]:s,[`${r}, ${a.replace("%s",t)}`]:o}:{[r]:{...o,...s}}}if(a&&a!=="media")return`${r}, ${a.replace("%s",String(t))}`}else if(t){if(a==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[r]:o}};if(a)return a.replace("%s",String(t))}return r};function tM(e,t){t.forEach(o=>{e[o]||(e[o]={})})}function D(e,t,o){!e[t]&&o&&(e[t]=o)}function Up(e){return typeof e!="string"||!e.startsWith("hsl")?e:Ph(e)}function Tn(e,t){`${t}Channel`in e||(e[`${t}Channel`]=Ni(Up(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().
To suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function oM(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}var $r=e=>{try{return e()}catch{}},rM=(e="mui")=>Mf(e);function Ih(e,t,o,r,n){if(!o)return;o=o===!0?{}:o;let a=n==="dark"?"dark":"light";if(!r){t[n]=Lh({...o,palette:{mode:a,...o?.palette},colorSpace:e});return}let{palette:s,...i}=Bp({...r,palette:{mode:a,...o?.palette},colorSpace:e});return t[n]={...o,palette:s,opacity:{...Bh(a),...o?.opacity},overlays:o?.overlays||Uh(a)},i}function Vh(e={},...t){let{colorSchemes:o={light:!0},defaultColorScheme:r,disableCssColorScheme:n=!1,cssVarPrefix:a="mui",nativeColor:s=!1,shouldSkipGeneratingVar:i=kh,colorSchemeSelector:l=o.light&&o.dark?"media":void 0,rootSelector:p=":root",...f}=e,d=Object.keys(o)[0],u=r||(o.light&&d!=="light"?"light":d),c=rM(a),{[u]:b,light:v,dark:x,...m}=o,h={...m},y=b;if((u==="dark"&&!("dark"in o)||u==="light"&&!("light"in o))&&(y=!0),!y)throw new Error(Mt(21,u));let g;s&&(g="oklch");let S=Ih(g,h,y,f,u);v&&!h.light&&Ih(g,h,v,void 0,"light"),x&&!h.dark&&Ih(g,h,x,void 0,"dark");let C={defaultColorScheme:u,...S,cssVarPrefix:a,colorSchemeSelector:l,rootSelector:p,getCssVar:c,colorSchemes:h,font:{...Bf(S.typography),...S.font},spacing:oM(f.spacing)};Object.keys(C.colorSchemes).forEach(_=>{let T=C.colorSchemes[_].palette,O=j=>{let L=j.split("-"),G=L[1],J=L[2];return c(j,T[G][J])};T.mode==="light"&&(D(T.common,"background","#fff"),D(T.common,"onBackground","#000")),T.mode==="dark"&&(D(T.common,"background","#000"),D(T.common,"onBackground","#fff"));function M(j,L,G){if(g){let J;return j===ta&&(J=`transparent ${((1-G)*100).toFixed(0)}%`),j===ze&&(J=`#000 ${(G*100).toFixed(0)}%`),j===je&&(J=`#fff ${(G*100).toFixed(0)}%`),`color-mix(in ${g}, ${L}, ${J})`}return j(L,G)}if(tM(T,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),T.mode==="light"){D(T.Alert,"errorColor",M(ze,s?c("palette-error-light"):T.error.light,.6)),D(T.Alert,"infoColor",M(ze,s?c("palette-info-light"):T.info.light,.6)),D(T.Alert,"successColor",M(ze,s?c("palette-success-light"):T.success.light,.6)),D(T.Alert,"warningColor",M(ze,s?c("palette-warning-light"):T.warning.light,.6)),D(T.Alert,"errorFilledBg",O("palette-error-main")),D(T.Alert,"infoFilledBg",O("palette-info-main")),D(T.Alert,"successFilledBg",O("palette-success-main")),D(T.Alert,"warningFilledBg",O("palette-warning-main")),D(T.Alert,"errorFilledColor",$r(()=>T.getContrastText(T.error.main))),D(T.Alert,"infoFilledColor",$r(()=>T.getContrastText(T.info.main))),D(T.Alert,"successFilledColor",$r(()=>T.getContrastText(T.success.main))),D(T.Alert,"warningFilledColor",$r(()=>T.getContrastText(T.warning.main))),D(T.Alert,"errorStandardBg",M(je,s?c("palette-error-light"):T.error.light,.9)),D(T.Alert,"infoStandardBg",M(je,s?c("palette-info-light"):T.info.light,.9)),D(T.Alert,"successStandardBg",M(je,s?c("palette-success-light"):T.success.light,.9)),D(T.Alert,"warningStandardBg",M(je,s?c("palette-warning-light"):T.warning.light,.9)),D(T.Alert,"errorIconColor",O("palette-error-main")),D(T.Alert,"infoIconColor",O("palette-info-main")),D(T.Alert,"successIconColor",O("palette-success-main")),D(T.Alert,"warningIconColor",O("palette-warning-main")),D(T.AppBar,"defaultBg",O("palette-grey-100")),D(T.Avatar,"defaultBg",O("palette-grey-400")),D(T.Button,"inheritContainedBg",O("palette-grey-300")),D(T.Button,"inheritContainedHoverBg",O("palette-grey-A100")),D(T.Chip,"defaultBorder",O("palette-grey-400")),D(T.Chip,"defaultAvatarColor",O("palette-grey-700")),D(T.Chip,"defaultIconColor",O("palette-grey-700")),D(T.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),D(T.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),D(T.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),D(T.LinearProgress,"primaryBg",M(je,s?c("palette-primary-main"):T.primary.main,.62)),D(T.LinearProgress,"secondaryBg",M(je,s?c("palette-secondary-main"):T.secondary.main,.62)),D(T.LinearProgress,"errorBg",M(je,s?c("palette-error-main"):T.error.main,.62)),D(T.LinearProgress,"infoBg",M(je,s?c("palette-info-main"):T.info.main,.62)),D(T.LinearProgress,"successBg",M(je,s?c("palette-success-main"):T.success.main,.62)),D(T.LinearProgress,"warningBg",M(je,s?c("palette-warning-light"):T.warning.main,.62)),D(T.Skeleton,"bg",g?M(ta,s?c("palette-text-primary"):T.text.primary,.11):`rgba(${O("palette-text-primaryChannel")} / 0.11)`),D(T.Slider,"primaryTrack",M(je,s?c("palette-primary-main"):T.primary.main,.62)),D(T.Slider,"secondaryTrack",M(je,s?c("palette-secondary-main"):T.secondary.main,.62)),D(T.Slider,"errorTrack",M(je,s?c("palette-error-main"):T.error.main,.62)),D(T.Slider,"infoTrack",M(je,s?c("palette-info-main"):T.info.main,.62)),D(T.Slider,"successTrack",M(je,s?c("palLine truncated
export default theme;`}function N1(e){return typeof e=="number"?`${(e*100).toFixed(0)}%`:`calc((${e}) * 100%)`}var dA=e=>{if(!Number.isNaN(+e))return+e;let t=e.match(/\d*\.?\d+/g);if(!t)return 0;let o=0;for(let r=0;r<t.length;r+=1)o+=+t[r];return o};function mA(e){Object.assign(e,{alpha(t,o){let r=this||e;return r.colorSpace?`oklch(from ${t} l c h / ${typeof o=="string"?`calc(${o})`:o})`:r.vars?`rgba(${t.replace(/var\(--([^,\s)]+)(?:,[^)]+)?\)+/g,"var(--$1Channel)")} / ${typeof o=="string"?`calc(${o})`:o})`:ta(t,dA(o))},lighten(t,o){let r=this||e;return r.colorSpace?`color-mix(in ${r.colorSpace}, ${t}, #fff ${N1(o)})`:Di(t,o)},darken(t,o){let r=this||e;return r.colorSpace?`color-mix(in ${r.colorSpace}, ${t}, #000 ${N1(o)})`:_i(t,o)}})}function yA(e={},...t){let{breakpoints:o,mixins:r={},spacing:n,palette:a={},transitions:s={},typography:i={},shape:l,colorSpace:p,...u}=e;if(e.vars&&e.generateThemeVars===void 0)throw new Error(Bt(20));let d=ps({...a,colorSpace:p}),c=wr(e),f=Oe(c,{mixins:Lh(c.breakpoints,r),palette:d,shadows:E1.slice(),typography:Hp(d,i),transitions:Ih(s),zIndex:{...O1}});return f=Oe(f,u),f=t.reduce((T,v)=>Oe(T,v),f),f.unstable_sxConfig={...Nr,...u?.unstable_sxConfig},f.unstable_sx=function(v){return wo({sx:v,theme:this})},f.toRuntimeSource=$f,mA(f),f}var Fp=yA;function Li(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}var hA=[...Array(25)].map((e,t)=>{if(t===0)return"none";let o=Li(t);return`linear-gradient(rgba(255 255 255 / ${o}), rgba(255 255 255 / ${o}))`});function Vh(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function Hh(e){return e==="dark"?hA:[]}function Fh(e){let{palette:t={mode:"light"},opacity:o,overlays:r,colorSpace:n,...a}=e,s=ps({...t,colorSpace:n});return{palette:s,opacity:{...Vh(s.mode),...o},overlays:r||Hh(s.mode),...a}}function $h(e){return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!e[1]?.match(/(mode|contrastThreshold|tonalOffset)/)}var gA=e=>[...[...Array(25)].map((t,o)=>`--${e?`${e}-`:""}overlays-${o}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],w1=gA;var A1=e=>(t,o)=>{let r=e.rootSelector||":root",n=e.colorSchemeSelector,a=n;if(n==="class"&&(a=".%s"),n==="data"&&(a="[data-%s]"),n?.startsWith("data-")&&!n.includes("%s")&&(a=`[${n}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){let s={};return w1(e.cssVarPrefix).forEach(i=>{s[i]=o[i],delete o[i]}),a==="media"?{[r]:o,"@media (prefers-color-scheme: dark)":{[r]:s}}:a?{[a.replace("%s",t)]:s,[`${r}, ${a.replace("%s",t)}`]:o}:{[r]:{...o,...s}}}if(a&&a!=="media")return`${r}, ${a.replace("%s",String(t))}`}else if(t){if(a==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[r]:o}};if(a)return a.replace("%s",String(t))}return r};function TA(e,t){t.forEach(o=>{e[o]||(e[o]={})})}function z(e,t,o){!e[t]&&o&&(e[t]=o)}function $p(e){return typeof e!="string"||!e.startsWith("hsl")?e:Nh(e)}function vn(e,t){`${t}Channel`in e||(e[`${t}Channel`]=Mi($p(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().
To suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function bA(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}var qr=e=>{try{return e()}catch{}},vA=(e="mui")=>Lf(e);function qh(e,t,o,r,n){if(!o)return;o=o===!0?{}:o;let a=n==="dark"?"dark":"light";if(!r){t[n]=Fh({...o,palette:{mode:a,...o?.palette},colorSpace:e});return}let{palette:s,...i}=Fp({...r,palette:{mode:a,...o?.palette},colorSpace:e});return t[n]={...o,palette:s,opacity:{...Vh(a),...o?.opacity},overlays:o?.overlays||Hh(a)},i}function Gh(e={},...t){let{colorSchemes:o={light:!0},defaultColorScheme:r,disableCssColorScheme:n=!1,cssVarPrefix:a="mui",nativeColor:s=!1,shouldSkipGeneratingVar:i=$h,colorSchemeSelector:l=o.light&&o.dark?"media":void 0,rootSelector:p=":root",...u}=e,d=Object.keys(o)[0],c=r||(o.light&&d!=="light"?"light":d),f=vA(a),{[c]:T,light:v,dark:x,...m}=o,h={...m},y=T;if((c==="dark"&&!("dark"in o)||c==="light"&&!("light"in o))&&(y=!0),!y)throw new Error(Bt(21,c));let g;s&&(g="oklch");let S=qh(g,h,y,u,c);v&&!h.light&&qh(g,h,v,void 0,"light"),x&&!h.dark&&qh(g,h,x,void 0,"dark");let C={defaultColorScheme:c,...S,cssVarPrefix:a,colorSchemeSelector:l,rootSelector:p,getCssVar:f,colorSchemes:h,font:{...Ff(S.typography),...S.font},spacing:bA(u.spacing)};Object.keys(C.colorSchemes).forEach(_=>{let b=C.colorSchemes[_].palette,A=j=>{let k=j.split("-"),X=k[1],q=k[2];return f(j,b[X][q])};b.mode==="light"&&(z(b.common,"background","#fff"),z(b.common,"onBackground","#000")),b.mode==="dark"&&(z(b.common,"background","#000"),z(b.common,"onBackground","#fff"));function M(j,k,X){if(g){let q;return j===oa&&(q=`transparent ${((1-X)*100).toFixed(0)}%`),j===je&&(q=`#000 ${(X*100).toFixed(0)}%`),j===Be&&(q=`#fff ${(X*100).toFixed(0)}%`),`color-mix(in ${g}, ${k}, ${q})`}return j(k,X)}if(TA(b,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),b.mode==="light"){z(b.Alert,"errorColor",M(je,s?f("palette-error-light"):b.error.light,.6)),z(b.Alert,"infoColor",M(je,s?f("palette-info-light"):b.info.light,.6)),z(b.Alert,"successColor",M(je,s?f("palette-success-light"):b.success.light,.6)),z(b.Alert,"warningColor",M(je,s?f("palette-warning-light"):b.warning.light,.6)),z(b.Alert,"errorFilledBg",A("palette-error-main")),z(b.Alert,"infoFilledBg",A("palette-info-main")),z(b.Alert,"successFilledBg",A("palette-success-main")),z(b.Alert,"warningFilledBg",A("palette-warning-main")),z(b.Alert,"errorFilledColor",qr(()=>b.getContrastText(b.error.main))),z(b.Alert,"infoFilledColor",qr(()=>b.getContrastText(b.info.main))),z(b.Alert,"successFilledColor",qr(()=>b.getContrastText(b.success.main))),z(b.Alert,"warningFilledColor",qr(()=>b.getContrastText(b.warning.main))),z(b.Alert,"errorStandardBg",M(Be,s?f("palette-error-light"):b.error.light,.9)),z(b.Alert,"infoStandardBg",M(Be,s?f("palette-info-light"):b.info.light,.9)),z(b.Alert,"successStandardBg",M(Be,s?f("palette-success-light"):b.success.light,.9)),z(b.Alert,"warningStandardBg",M(Be,s?f("palette-warning-light"):b.warning.light,.9)),z(b.Alert,"errorIconColor",A("palette-error-main")),z(b.Alert,"infoIconColor",A("palette-info-main")),z(b.Alert,"successIconColor",A("palette-success-main")),z(b.Alert,"warningIconColor",A("palette-warning-main")),z(b.AppBar,"defaultBg",A("palette-grey-100")),z(b.Avatar,"defaultBg",A("palette-grey-400")),z(b.Button,"inheritContainedBg",A("palette-grey-300")),z(b.Button,"inheritContainedHoverBg",A("palette-grey-A100")),z(b.Chip,"defaultBorder",A("palette-grey-400")),z(b.Chip,"defaultAvatarColor",A("palette-grey-700")),z(b.Chip,"defaultIconColor",A("palette-grey-700")),z(b.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),z(b.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),z(b.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),z(b.LinearProgress,"primaryBg",M(Be,s?f("palette-primary-main"):b.primary.main,.62)),z(b.LinearProgress,"secondaryBg",M(Be,s?f("palette-secondary-main"):b.secondary.main,.62)),z(b.LinearProgress,"errorBg",M(Be,s?f("palette-error-main"):b.error.main,.62)),z(b.LinearProgress,"infoBg",M(Be,s?f("palette-info-main"):b.info.main,.62)),z(b.LinearProgress,"successBg",M(Be,s?f("palette-success-main"):b.success.main,.62)),z(b.LinearProgress,"warningBg",M(Be,s?f("palette-warning-light"):b.warning.main,.62)),z(b.Skeleton,"bg",g?M(oa,s?f("palette-text-primary"):b.text.primary,.11):`rgba(${A("palette-text-primaryChannel")} / 0.11)`),z(b.Slider,"primaryTrack",M(Be,s?f("palette-primary-main"):b.primary.main,.62)),z(b.Slider,"secondaryTrack",M(Be,s?f("palette-secondary-main"):b.secondary.main,.62)),z(b.Slider,"errorTrack",M(Be,s?f("palette-error-main"):b.error.main,.62)),z(b.Slider,"infoTrack",M(Be,s?f("palette-info-main"):b.info.main,.62)),z(b.Slider,"successTrack",M(Be,s?f("palLine truncated
0% {
transform: scale(0);
opacity: 0.1;
@@ -51,7 +51,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
transform: scale(1);
opacity: 0.3;
}
`,t4=Ro`
`,TM=Oo`
0% {
opacity: 1;
}
@@ -59,7 +59,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
100% {
opacity: 0;
}
`,o4=Ro`
`,bM=Oo`
0% {
transform: scale(1);
}
@@ -71,23 +71,23 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
100% {
transform: scale(1);
}
`,r4=A("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),n4=A(nS,{name:"MuiTouchRipple",slot:"Ripple"})`
`,vM=w("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),xM=w(cS,{name:"MuiTouchRipple",slot:"Ripple"})`
opacity: 0;
position: absolute;
&.${Ho.rippleVisible} {
&.${Fo.rippleVisible} {
opacity: 0.3;
transform: scale(1);
animation-name: ${e4};
animation-duration: ${og}ms;
animation-name: ${gM};
animation-duration: ${ig}ms;
animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut};
}
&.${Ho.ripplePulsate} {
&.${Fo.ripplePulsate} {
animation-duration: ${({theme:e})=>e.transitions.duration.shorter}ms;
}
& .${Ho.child} {
& .${Fo.child} {
opacity: 1;
display: block;
width: 100%;
@@ -96,25 +96,25 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
background-color: currentColor;
}
& .${Ho.childLeaving} {
& .${Fo.childLeaving} {
opacity: 0;
animation-name: ${t4};
animation-duration: ${og}ms;
animation-name: ${TM};
animation-duration: ${ig}ms;
animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut};
}
& .${Ho.childPulsate} {
& .${Fo.childPulsate} {
position: absolute;
/* @noflip */
left: 0px;
top: 0;
animation-name: ${o4};
animation-name: ${bM};
animation-duration: 2500ms;
animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut};
animation-iteration-count: infinite;
animation-delay: 200ms;
}
`,a4=Ot.forwardRef(function(t,o){let r=F({props:t,name:"MuiTouchRipple"}),{center:n=!1,classes:a={},className:s,...i}=r,[l,p]=Ot.useState([]),f=Ot.useRef(0),d=Ot.useRef(null);Ot.useEffect(()=>{d.current&&(d.current(),d.current=null)},[l]);let u=Ot.useRef(!1),c=na(),b=Ot.useRef(null),v=Ot.useRef(null),x=Ot.useCallback(g=>{let{pulsate:S,rippleX:C,rippleY:E,rippleSize:R,cb:w}=g;p(N=>[...N,(0,nd.jsx)(n4,{classes:{ripple:z(a.ripple,Ho.ripple),rippleVisible:z(a.rippleVisible,Ho.rippleVisible),ripplePulsate:z(a.ripplePulsate,Ho.ripplePulsate),child:z(a.child,Ho.child),childLeaving:z(a.childLeaving,Ho.childLeaving),childPulsate:z(a.childPulsate,Ho.childPulsate)},timeout:og,pulsate:S,rippleX:C,rippleY:E,rippleSize:R},f.current)]),f.current+=1,d.current=w},[a]),m=Ot.useCallback((g={},S={},C=()=>{})=>{let{pulsate:E=!1,center:R=n||S.pulsate,fakeElement:w=!1}=S;if(g?.type==="mousedown"&&u.current){u.current=!1;return}g?.type==="touchstart"&&(u.current=!0);let N=w?null:v.current,_=N?N.getBoundingClientRect():{width:0,height:0,left:0,top:0},T,O,M;if(R||g===void 0||g.clientX===0&&g.clientY===0||!g.clientX&&!g.touches)T=Math.round(_.width/2),O=Math.round(_.height/2);else{let{clientX:j,clientY:L}=g.touches&&g.touches.length>0?g.touches[0]:g;T=Math.round(j-_.left),O=Math.round(L-_.top)}if(R)M=Math.sqrt((2*_.width**2+_.height**2)/3),M%2===0&&(M+=1);else{let j=Math.max(Math.abs((N?N.clientWidth:0)-T),T)*2+2,L=Math.max(Math.abs((N?N.clientHeight:0)-O),O)*2+2;M=Math.sqrt(j**2+L**2)}g?.touches?b.current===null&&(b.current=()=>{x({pulsate:E,rippleX:T,rippleY:O,rippleSize:M,cb:C})},c.start(JM,()=>{b.current&&(b.current(),b.current=null)})):x({pulsate:E,rippleX:T,rippleY:O,rippleSize:M,cb:C})},[n,x,c]),h=Ot.useCallback(()=>{m({},{pulsate:!0})},[m]),y=Ot.useCallback((g,S)=>{if(c.clear(),g?.type==="touchend"&&b.current){b.current(),b.current=null,c.start(0,()=>{y(g,S)});return}b.current=null,p(C=>C.length>0?C.slice(1):C),d.current=S},[c]);return Ot.useImperativeHandle(o,()=>({pulsate:h,start:m,stop:y}),[h,m,y]),(0,nd.jsx)(r4,{className:z(Ho.root,a.root,s),ref:v,...i,children:(0,nd.jsx)(Kh,{component:null,exit:!0,children:l})})}),aS=a4;function sS(e){return I("MuiButtonBase",e)}var s4=H("MuiButtonBase",["root","disabled","focusVisible"]),iS=s4;var ad=P(k(),1),i4=e=>{let{disabled:t,focusVisible:o,focusVisibleClassName:r,classes:n}=e,s=V({root:["root",t&&"disabled",o&&"focusVisible"]},sS,n);return o&&r&&(s.root+=` ${r}`),s},l4=A("button",{name:"MuiButtonBase",slot:"Root"})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${iS.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),p4=Gr.forwardRef(function(t,o){let r=F({props:t,name:"MuiButtonBase"}),{action:n,centerRipple:a=!1,children:s,className:i,component:l="button",disabled:p=!1,disableRipple:f=!1,disableTouchRipple:d=!1,focusRipple:u=!1,focusVisibleClassName:c,LinkComponent:b="a",onBlur:v,onClick:x,onContextMenu:m,onDragLeave:h,onFocus:y,onFocusVisible:g,onKeyDown:S,onKeyUp:C,onMouseDown:E,onMouseLeave:R,onMouseUp:w,onTouchEnd:N,onTouchMove:_,onTouchStart:T,tabIndex:O=0,TouchRippleProps:M,touchRippleRef:j,type:L,...G}=r,J=Gr.useRef(null),X=od(),me=xt(X.ref,j),[oe,pe]=Gr.useState(!1);p&&oe&&pe(!1),Gr.useImperativeHandle(n,()=>({focusVisible:()=>{pe(!0),J.current.focus()}}),[]);let ie=X.shouldMount&&!f&&!p;Gr.useEffect(()=>{oe&&u&&!f&&X.pulsate()},[f,u,oe,X]);let Fe=Pn(X,"start",E,d),se=Pn(X,"stop",m,d),ce=Pn(X,"stop",h,d),Te=Pn(X,"stop",w,d),rt=Pn(X,"stop",ee=>{oe&&ee.preventDefault(),R&&R(ee)},d),ve=Pn(X,"start",T,d),ne=Pn(X,"stop",N,d),K=Pn(X,"stop",_,d),Q=Pn(X,"stop",ee=>{sa(ee.target)||pe(!1),v&&v(ee)},!1),Ne=Fp(ee=>{J.current||(J.current=ee.currentTarget),sa(ee.target)&&(pe(!0),g&&g(ee)),y&&y(ee)}),Y=()=>{let ee=J.current;return ee?ee.tagName==="BUTTON"?!1:!(ee.tagName==="A"&&ee.href):l&&l!=="button"},ye=Fp(ee=>{u&&!ee.repeat&&oe&&ee.key===" "&&X.stop(ee,()=>{X.start(ee)}),ee.target===ee.currentTarget&&Y()&&ee.key===" "&&ee.preventDefault(),S&&S(ee),ee.target===ee.currentTarget&&Y()&&ee.key==="Enter"&&!p&&(ee.preventDefault(),x&&x(ee))}),Me=Fp(ee=>{u&&ee.key===" "&&oe&&!ee.defaultPrevented&&X.stop(ee,()=>{X.pulsate(ee)}),C&&C(ee),x&&ee.target===ee.currentTarget&&Y()&&ee.key===" "&&!ee.defaultPrevented&&!p&&x(ee)}),xe=l;xe==="button"&&(G.href||G.to)&&(xe=b);let _e={};if(xe==="button"){let ee=!!G.formAction;_e.type=L===void 0&&!ee?"button":L,_e.disabled=p}else!G.href&&!G.to&&(_e.role="button"),p&&(_e["aria-disabled"]=p);let ot=xt(o,J),oo={...r,centerRipple:a,component:l,disabled:p,disableRipple:f,disableTouchRipple:d,focusRipple:u,tabIndex:O,focusVisible:oe},nt=i4(oo);return(0,ad.j Line truncated
`,SM=_t.forwardRef(function(t,o){let r=F({props:t,name:"MuiTouchRipple"}),{center:n=!1,classes:a={},className:s,...i}=r,[l,p]=_t.useState([]),u=_t.useRef(0),d=_t.useRef(null);_t.useEffect(()=>{d.current&&(d.current(),d.current=null)},[l]);let c=_t.useRef(!1),f=aa(),T=_t.useRef(null),v=_t.useRef(null),x=_t.useCallback(g=>{let{pulsate:S,rippleX:C,rippleY:E,rippleSize:R,cb:N}=g;p(O=>[...O,(0,cd.jsx)(xM,{classes:{ripple:D(a.ripple,Fo.ripple),rippleVisible:D(a.rippleVisible,Fo.rippleVisible),ripplePulsate:D(a.ripplePulsate,Fo.ripplePulsate),child:D(a.child,Fo.child),childLeaving:D(a.childLeaving,Fo.childLeaving),childPulsate:D(a.childPulsate,Fo.childPulsate)},timeout:ig,pulsate:S,rippleX:C,rippleY:E,rippleSize:R},u.current)]),u.current+=1,d.current=N},[a]),m=_t.useCallback((g={},S={},C=()=>{})=>{let{pulsate:E=!1,center:R=n||S.pulsate,fakeElement:N=!1}=S;if(g?.type==="mousedown"&&c.current){c.current=!1;return}g?.type==="touchstart"&&(c.current=!0);let O=N?null:v.current,_=O?O.getBoundingClientRect():{width:0,height:0,left:0,top:0},b,A,M;if(R||g===void 0||g.clientX===0&&g.clientY===0||!g.clientX&&!g.touches)b=Math.round(_.width/2),A=Math.round(_.height/2);else{let{clientX:j,clientY:k}=g.touches&&g.touches.length>0?g.touches[0]:g;b=Math.round(j-_.left),A=Math.round(k-_.top)}if(R)M=Math.sqrt((2*_.width**2+_.height**2)/3),M%2===0&&(M+=1);else{let j=Math.max(Math.abs((O?O.clientWidth:0)-b),b)*2+2,k=Math.max(Math.abs((O?O.clientHeight:0)-A),A)*2+2;M=Math.sqrt(j**2+k**2)}g?.touches?T.current===null&&(T.current=()=>{x({pulsate:E,rippleX:b,rippleY:A,rippleSize:M,cb:C})},f.start(hM,()=>{T.current&&(T.current(),T.current=null)})):x({pulsate:E,rippleX:b,rippleY:A,rippleSize:M,cb:C})},[n,x,f]),h=_t.useCallback(()=>{m({},{pulsate:!0})},[m]),y=_t.useCallback((g,S)=>{if(f.clear(),g?.type==="touchend"&&T.current){T.current(),T.current=null,f.start(0,()=>{y(g,S)});return}T.current=null,p(C=>C.length>0?C.slice(1):C),d.current=S},[f]);return _t.useImperativeHandle(o,()=>({pulsate:h,start:m,stop:y}),[h,m,y]),(0,cd.jsx)(vM,{className:D(Fo.root,a.root,s),ref:v,...i,children:(0,cd.jsx)(eg,{component:null,exit:!0,children:l})})}),fS=SM;function dS(e){return I("MuiButtonBase",e)}var PM=H("MuiButtonBase",["root","disabled","focusVisible"]),mS=PM;var fd=P(B(),1),CM=e=>{let{disabled:t,focusVisible:o,focusVisibleClassName:r,classes:n}=e,s=V({root:["root",t&&"disabled",o&&"focusVisible"]},dS,n);return o&&r&&(s.root+=` ${r}`),s},EM=w("button",{name:"MuiButtonBase",slot:"Root"})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${mS.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),RM=Yr.forwardRef(function(t,o){let r=F({props:t,name:"MuiButtonBase"}),{action:n,centerRipple:a=!1,children:s,className:i,component:l="button",disabled:p=!1,disableRipple:u=!1,disableTouchRipple:d=!1,focusRipple:c=!1,focusVisibleClassName:f,LinkComponent:T="a",onBlur:v,onClick:x,onContextMenu:m,onDragLeave:h,onFocus:y,onFocusVisible:g,onKeyDown:S,onKeyUp:C,onMouseDown:E,onMouseLeave:R,onMouseUp:N,onTouchEnd:O,onTouchMove:_,onTouchStart:b,tabIndex:A=0,TouchRippleProps:M,touchRippleRef:j,type:k,...X}=r,q=Yr.useRef(null),G=pd(),se=Et(G.ref,j),[ae,fe]=Yr.useState(!1);p&&ae&&fe(!1),Yr.useImperativeHandle(n,()=>({focusVisible:()=>{fe(!0),q.current.focus()}}),[]);let ue=G.shouldMount&&!u&&!p;Yr.useEffect(()=>{ae&&c&&!u&&G.pulsate()},[u,c,ae,G]);let $e=En(G,"start",E,d),pe=En(G,"stop",m,d),de=En(G,"stop",h,d),ve=En(G,"stop",N,d),it=En(G,"stop",re=>{ae&&re.preventDefault(),R&&R(re)},d),Se=En(G,"start",b,d),ie=En(G,"stop",O,d),Q=En(G,"stop",_,d),Z=En(G,"stop",re=>{ia(re.target)||fe(!1),v&&v(re)},!1),we=Qp(re=>{q.current||(q.current=re.currentTarget),ia(re.target)&&(fe(!0),g&&g(re)),y&&y(re)}),K=()=>{let re=q.current;return re?re.tagName==="BUTTON"?!1:!(re.tagName==="A"&&re.href):l&&l!=="button"},he=Qp(re=>{c&&!re.repeat&&ae&&re.key===" "&&G.stop(re,()=>{G.start(re)}),re.target===re.currentTarget&&K()&&re.key===" "&&re.preventDefault(),S&&S(re),re.target===re.currentTarget&&K()&&re.key==="Enter"&&!p&&(re.preventDefault(),x&&x(re))}),_e=Qp(re=>{c&&re.key===" "&&ae&&!re.defaultPrevented&&G.stop(re,()=>{G.pulsate(re)}),C&&C(re),x&&re.target===re.currentTarget&&K()&&re.key===" "&&!re.defaultPrevented&&!p&&x(re)}),Pe=l;Pe==="button"&&(X.href||X.to)&&(Pe=T);let De={};if(Pe==="button"){let re=!!X.formAction;De.type=k===void 0&&!re?"button":k,De.disabled=p}else!X.href&&!X.to&&(De.role="button"),p&&(De["aria-disabled"]=p);let nt=Et(o,q),ao={...r,centerRipple:a,component:l,disabled:p,disableRipple:u,disableTouchRipple:d,focusRipple:c,tabIndex:A,focusVisible:ae},lt=CM(ao);return(0,fd.j Line truncated
0% {
transform: rotate(0deg);
}
@@ -122,7 +122,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
100% {
transform: rotate(360deg);
}
`,ag=Ro`
`,ug=Oo`
0% {
stroke-dasharray: 1px, 200px;
stroke-dashoffset: 0;
@@ -137,13 +137,13 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
stroke-dasharray: 1px, 200px;
stroke-dashoffset: -126px;
}
`,b4=typeof ng!="string"?Pr`
animation: ${ng} 1.4s linear infinite;
`:null,v4=typeof ag!="string"?Pr`
animation: ${ag} 1.4s ease-in-out infinite;
`:null,x4=e=>{let{classes:t,variant:o,color:r,disableShrink:n}=e,a={root:["root",o,`color${$(r)}`],svg:["svg"],track:["track"],circle:["circle",`circle${$(o)}`,n&&"circleDisableShrink"]};return V(a,uS,t)},S4=A("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[o.variant],t[`color${$(o.color)}`]]}})(q(({theme:e})=>({display:"inline-block",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("transform")}},{props:{variant:"indeterminate"},style:b4||{animation:`${ng} 1.4s linear infinite`}},...Object.entries(e.palette).filter(Pe()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}}))]}))),P4=A("svg",{name:"MuiCircularProgress",slot:"Svg"})({display:"block"}),C4=A("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.circle,t[`circle${$(o.variant)}`],o.disableShrink&&t.circleDisableShrink]}})(q(({theme:e})=>({stroke:"currentColor",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("stroke-dashoffset")}},{props:{variant:"indeterminate"},style:{strokeDasharray:"80px, 200px",strokeDashoffset:0}},{props:({ownerState:t})=>t.variant==="indeterminate"&&!t.disableShrink,style:v4||{animation:`${ag} 1.4s ease-in-out infinite`}}]}))),E4=A("circle",{name:"MuiCircularProgress",slot:"Track"})(q(({theme:e})=>({stroke:"currentColor",opacity:(e.vars||e).palette.action.activatedOpacity}))),R4=cS.forwardRef(function(t,o){let r=F({props:t,name:"MuiCircularProgress"}),{className:n,color:a="primary",disableShrink:s=!1,enableTrackSlot:i=!1,size:l=40,style:p,thickness:f=3.6,value:d=0,variant:u="indeterminate",...c}=r,b={...r,color:a,disableShrink:s,size:l,thickness:f,value:d,variant:u,enableTrackSlot:i},v=x4(b),x={},m={},h={};if(u==="determinate"){let y=2*Math.PI*((wr-f)/2);x.strokeDasharray=y.toFixed(3),h["aria-valuenow"]=Math.round(d),x.strokeDashoffset=`${((100-d)/100*y).toFixed(3)}px`,m.transform="rotate(-90deg)"}return(0,Yi.jsx)(S4,{className:z(v.root,n),style:{width:l,height:l,...m,...p},ownerState:b,ref:o,role:"progressbar",...h,...c,children:(0,Yi.jsxs)(P4,{className:v.svg,ownerState:b,viewBox:`${wr/2} ${wr/2} ${wr} ${wr}`,children:[i?(0,Yi.jsx)(E4,{className:v.track,ownerState:b,cx:wr,cy:wr,r:(wr-f)/2,fill:"none",strokeWidth:f,"aria-hidden":"true"}):null,(0,Yi.jsx)(C4,{className:v.circle,style:x,ownerState:b,cx:wr,cy:wr,r:(wr-f)/2,fill:"none",strokeWidth:f})]})})}),Yr=R4;function fS(e){return I("MuiIconButton",e)}var O4=H("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge","loading","loadingIndicator","loadingWrapper"]),sg=O4;var Xi=P(k(),1),N4=e=>{let{classes:t,disabled:o,color:r,edge:n,size:a,loading:s}=e,i={root:["root",s&&"loading",o&&"disabled",r!=="default"&&`color${$(r)}`,n&&`edge${$(n)}`,`size${$(a)}`],loadingIndicator:["loadingIndicator"],loadingWrapper:["loadingWrapper"]};return V(i,fS,t)},w4=A(Nr,{name:"MuiIconButton",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,o.loading&&t.loading,o.color!=="default"&&t[`color${$(o.color)}`],o.edge&&t[`edge${$(o.edge)}`],t[`size${$(o.size)}`]]}})(q(({theme:e})=>({textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:8,borderRadius:"50%",color:(e.vars||e).palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),variants:[{props:t=>!t.disableRipple,style:{"--IconButton-hoverBg":e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity),"&:hover":{backgroundColor:"var(--IconButton-hoverBg)","@media (hover: none)":{backgroundColor:"transparent"}}}},{props:{edge:"start"},style:{marginLeft:-12}},{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:{edge:"end"},style:{marginRight:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}}]})),q(({theme:e})=>({variants:[{props:{color:"inherit"},style:{color:"inherit"}},...Object.entries(e.palette).filter(Pe()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette).filter(Pe()).map(([t])=>({props:{color:t},style:{"--IconButton-hoverBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}})),{props:{size:"small"},style:{padding:5,fontSize:e.typography.pxToRem(18)}},{props:{size:"large"},style:{padding:12,fontSize:e.typography.pxToRem(28)}}],[`&.${sg.disabled}`]:{backgroundColor:"transparent",color:(e.vars||e).palette.action.disabled},[`&.${sg.loading}`]:{color:"transparent"}}))),A4=A("span",{name:"MuiIconButton",slot:"LoadingIndicator"})(({theme:e})=>({display:"none",position:"absolute",visibility:"visible",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:(e.vars||e).palette.action.disabled,variants:[{props:{loading:!0},style:{display:"flex"}}]})),M4=id.forwardRef(function(t,o){ Line truncated
`&&(g.value+=" ");let E=C.boxSizing,R=ud(C.paddingBottom)+ud(C.paddingTop),w=ud(C.borderBottomWidth)+ud(C.borderTopWidth),N=g.scrollHeight;g.value="x";let _=g.scrollHeight,T=N;a&&(T=Math.max(Number(a)*_,T)),n&&(T=Math.min(Number(n)*_,T)),T=Math.max(T,_);let O=T+(E==="border-box"?R+w:0),M=Math.abs(T-N)<=1;return{outerHeightStyle:O,overflowing:M}},[n,a,t.placeholder]),v=oa(()=>{let y=f.current,g=b();if(!y||!g||MS(g))return!1;let S=g.outerHeightStyle;return u.current!=null&&u.current!==S}),x=$o.useCallback(()=>{let y=f.current,g=b();if(!y||!g||MS(g))return;let S=g.outerHeightStyle;u.current!==S&&(u.current=S,y.style.height=`${S}px`),y.style.overflow=g.overflowing?"hidden":""},[b]),m=$o.useRef(-1);return ho(()=>{let y=Li(x),g=f?.current;if(!g)return;let S=ir(g);S.addEventListener("resize",y);let C;return typeof ResizeObserver<"u"&&(C=new ResizeObserver(()=>{v()&&(C.unobserve(g),cancelAnimationFrame(m.current),x(),m.current=requestAnimationFrame(()=>{C.observe(g)}))}),C.observe(g)),()=>{y.clear(),cancelAnimationFrame(m.current),S.removeEventListener("resize",y),C&&C.disconnect()}},[b,x,v]),ho(()=>{x()}),(0,au.jsxs)($o.Fragment,{children:[(0,au.jsx)("textarea",{value:i,onChange:y=>{p||x();let g=y.target,S=g.value.length,C=g.value.endsWith(`
`),E=g.selectionStart===S;C&&E&&g.setSelectionRange(S,S),r&&r(y)},ref:d,rows:a,style:s,...l}),(0,au.jsx)("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:c,tabIndex:-1,style:{...Y4.shadow,...s,paddingTop:0,paddingBottom:0}})]})}),pg=K4;function bo({props:e,states:t,muiFormControl:o}){return t.reduce((r,n)=>(r[n]=e[n],o&&typeof e[n]>"u"&&(r[n]=o[n]),r),{})}var _S=P(U(),1),Q4=_S.createContext(void 0),ia=Q4;var DS=P(U(),1);function St(){return DS.useContext(ia)}function cd(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}var En=cd;function zS(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function hs(e,t=!1){return e&&(zS(e.value)&&e.value!==""||t&&zS(e.defaultValue)&&e.defaultValue!=="")}function jS(e){return e.startAdornment}function BS(e){return I("MuiInputBase",e)}var Z4=H("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),Ar=Z4;var gs=P(k(),1),US,ug="mui-auto-fill",fd="mui-auto-fill-cancel",Ts=(e,t)=>{let{ownerState:o}=e;return[t.root,o.formControl&&t.formControl,o.startAdornment&&t.adornedStart,o.endAdornment&&t.adornedEnd,o.error&&t.error,o.size==="small"&&t.sizeSmall,o.multiline&&t.multiline,o.color&&t[`color${$(o.color)}`],o.fullWidth&&t.fullWidth,o.hiddenLabel&&t.hiddenLabel]},bs=(e,t)=>{let{ownerState:o}=e;return[t.input,o.size==="small"&&t.inputSizeSmall,o.multiline&&t.inputMultiline,o.type==="search"&&t.inputTypeSearch,o.startAdornment&&t.inputAdornedStart,o.endAdornment&&t.inputAdornedEnd,o.hiddenLabel&&t.inputHiddenLabel]},W4=e=>{let{classes:t,color:o,disabled:r,error:n,endAdornment:a,focused:s,formControl:i,fullWidth:l,hiddenLabel:p,multiline:f,readOnly:d,size:u,startAdornment:c,type:b}=e,v={root:["root",`color${$(o)}`,r&&"disabled",n&&"error",l&&"fullWidth",s&&"focused",i&&"formControl",u&&u!=="medium"&&`size${$(u)}`,f&&"multiline",c&&"adornedStart",a&&"adornedEnd",p&&"hiddenLabel",d&&"readOnly"],input:["input",r&&"disabled",b==="search"&&"inputTypeSearch",f&&"inputMultiline",u==="small"&&"inputSizeSmall",p&&"inputHiddenLabel",c&&"inputAdornedStart",a&&"inputAdornedEnd",d&&"readOnly"]};return V(v,BS,t)},vs=A("div",{name:"MuiInputBase",slot:"Root",overridesResolver:Ts})(q(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${Ar.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:t})=>t.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:t,size:o})=>t.multiline&&o==="small",style:{paddingTop:1}},{props:({ownerState:t})=>t.fullWidth,style:{width:"100%"}}]}))),xs=A("input",{name:"MuiInputBase",slot:"Input",overridesResolver:bs})(q(({theme:e})=>{let t=e.palette.mode==="light",o={color:"currentColor",...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:"0 !important"},n=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&::-ms-input-placeholder":o,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${Ar.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":n,"&:focus::-moz-placeholder":n,"&:focus::-ms-input-placeholder":n},[`&.${Ar.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:a})=>!a.disableInjectingGlobalStyles,style:{animationName:fd,animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:ug}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:a})=>a.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),LS=Ip({[`@keyframes ${ug}`]:{from:{animationName:ug}},[`@keyframes ${fd}`]:{from:{animationName:fd}}}),J4=ao.forwardRef(function(t,o){let r=F({props:t,name:"MuiInputBase"}),{"aria-describedby":n,autoComplete:a,autoFocus:s,className:i,color:l,components:p={},componentsProps:f={},defaultValue:d,disabled:u,disableInjectingGlobalStyles:c,endAdornment:b,error:v,fullWidth:x=!1,id:m,inputComponent:h="input",inputProps:y={},inputRef:g,margin:S,maxRows:C,minRows:E,multiline:R=!1,name:w,onBlur:N,onChange:_,onClick Line truncated
`,BM=typeof pg!="string"?Er`
animation: ${pg} 1.4s linear infinite;
`:null,UM=typeof ug!="string"?Er`
animation: ${ug} 1.4s ease-in-out infinite;
`:null,LM=e=>{let{classes:t,variant:o,color:r,disableShrink:n}=e,a={root:["root",o,`color${$(r)}`],svg:["svg"],track:["track"],circle:["circle",`circle${$(o)}`,n&&"circleDisableShrink"]};return V(a,gS,t)},kM=w("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[o.variant],t[`color${$(o.color)}`]]}})(Y(({theme:e})=>({display:"inline-block",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("transform")}},{props:{variant:"indeterminate"},style:BM||{animation:`${pg} 1.4s linear infinite`}},...Object.entries(e.palette).filter(Ee()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}}))]}))),IM=w("svg",{name:"MuiCircularProgress",slot:"Svg"})({display:"block"}),VM=w("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.circle,t[`circle${$(o.variant)}`],o.disableShrink&&t.circleDisableShrink]}})(Y(({theme:e})=>({stroke:"currentColor",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("stroke-dashoffset")}},{props:{variant:"indeterminate"},style:{strokeDasharray:"80px, 200px",strokeDashoffset:0}},{props:({ownerState:t})=>t.variant==="indeterminate"&&!t.disableShrink,style:UM||{animation:`${ug} 1.4s ease-in-out infinite`}}]}))),HM=w("circle",{name:"MuiCircularProgress",slot:"Track"})(Y(({theme:e})=>({stroke:"currentColor",opacity:(e.vars||e).palette.action.activatedOpacity}))),FM=TS.forwardRef(function(t,o){let r=F({props:t,name:"MuiCircularProgress"}),{className:n,color:a="primary",disableShrink:s=!1,enableTrackSlot:i=!1,size:l=40,style:p,thickness:u=3.6,value:d=0,variant:c="indeterminate",...f}=r,T={...r,color:a,disableShrink:s,size:l,thickness:u,value:d,variant:c,enableTrackSlot:i},v=LM(T),x={},m={},h={};if(c==="determinate"){let y=2*Math.PI*((Mr-u)/2);x.strokeDasharray=y.toFixed(3),h["aria-valuenow"]=Math.round(d),x.strokeDashoffset=`${((100-d)/100*y).toFixed(3)}px`,m.transform="rotate(-90deg)"}return(0,Qi.jsx)(kM,{className:D(v.root,n),style:{width:l,height:l,...m,...p},ownerState:T,ref:o,role:"progressbar",...h,...f,children:(0,Qi.jsxs)(IM,{className:v.svg,ownerState:T,viewBox:`${Mr/2} ${Mr/2} ${Mr} ${Mr}`,children:[i?(0,Qi.jsx)(HM,{className:v.track,ownerState:T,cx:Mr,cy:Mr,r:(Mr-u)/2,fill:"none",strokeWidth:u,"aria-hidden":"true"}):null,(0,Qi.jsx)(VM,{className:v.circle,style:x,ownerState:T,cx:Mr,cy:Mr,r:(Mr-u)/2,fill:"none",strokeWidth:u})]})})}),Xr=FM;function bS(e){return I("MuiIconButton",e)}var $M=H("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge","loading","loadingIndicator","loadingWrapper"]),cg=$M;var Zi=P(B(),1),qM=e=>{let{classes:t,disabled:o,color:r,edge:n,size:a,loading:s}=e,i={root:["root",s&&"loading",o&&"disabled",r!=="default"&&`color${$(r)}`,n&&`edge${$(n)}`,`size${$(a)}`],loadingIndicator:["loadingIndicator"],loadingWrapper:["loadingWrapper"]};return V(i,bS,t)},GM=w(Ar,{name:"MuiIconButton",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,o.loading&&t.loading,o.color!=="default"&&t[`color${$(o.color)}`],o.edge&&t[`edge${$(o.edge)}`],t[`size${$(o.size)}`]]}})(Y(({theme:e})=>({textAlign:"center",flex:"0 0 auto",fontSize:e.typography.pxToRem(24),padding:8,borderRadius:"50%",color:(e.vars||e).palette.action.active,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),variants:[{props:t=>!t.disableRipple,style:{"--IconButton-hoverBg":e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity),"&:hover":{backgroundColor:"var(--IconButton-hoverBg)","@media (hover: none)":{backgroundColor:"transparent"}}}},{props:{edge:"start"},style:{marginLeft:-12}},{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:{edge:"end"},style:{marginRight:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}}]})),Y(({theme:e})=>({variants:[{props:{color:"inherit"},style:{color:"inherit"}},...Object.entries(e.palette).filter(Ee()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette).filter(Ee()).map(([t])=>({props:{color:t},style:{"--IconButton-hoverBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}})),{props:{size:"small"},style:{padding:5,fontSize:e.typography.pxToRem(18)}},{props:{size:"large"},style:{padding:12,fontSize:e.typography.pxToRem(28)}}],[`&.${cg.disabled}`]:{backgroundColor:"transparent",color:(e.vars||e).palette.action.disabled},[`&.${cg.loading}`]:{color:"transparent"}}))),YM=w("span",{name:"MuiIconButton",slot:"LoadingIndicator"})(({theme:e})=>({display:"none",position:"absolute",visibility:"visible",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:(e.vars||e).palette.action.disabled,variants:[{props:{loading:!0},style:{display:"flex"}}]})),XM=md.forwardRef(function(t,o){ Line truncated
`&&(g.value+=" ");let E=C.boxSizing,R=gd(C.paddingBottom)+gd(C.paddingTop),N=gd(C.borderBottomWidth)+gd(C.borderTopWidth),O=g.scrollHeight;g.value="x";let _=g.scrollHeight,b=O;a&&(b=Math.max(Number(a)*_,b)),n&&(b=Math.min(Number(n)*_,b)),b=Math.max(b,_);let A=b+(E==="border-box"?R+N:0),M=Math.abs(b-O)<=1;return{outerHeightStyle:A,overflowing:M}},[n,a,t.placeholder]),v=ra(()=>{let y=u.current,g=T();if(!y||!g||LS(g))return!1;let S=g.outerHeightStyle;return c.current!=null&&c.current!==S}),x=qo.useCallback(()=>{let y=u.current,g=T();if(!y||!g||LS(g))return;let S=g.outerHeightStyle;c.current!==S&&(c.current=S,y.style.height=`${S}px`),y.style.overflow=g.overflowing?"hidden":""},[T]),m=qo.useRef(-1);return To(()=>{let y=Vi(x),g=u?.current;if(!g)return;let S=lr(g);S.addEventListener("resize",y);let C;return typeof ResizeObserver<"u"&&(C=new ResizeObserver(()=>{v()&&(C.unobserve(g),cancelAnimationFrame(m.current),x(),m.current=requestAnimationFrame(()=>{C.observe(g)}))}),C.observe(g)),()=>{y.clear(),cancelAnimationFrame(m.current),S.removeEventListener("resize",y),C&&C.disconnect()}},[T,x,v]),To(()=>{x()}),(0,fu.jsxs)(qo.Fragment,{children:[(0,fu.jsx)("textarea",{value:i,onChange:y=>{p||x();let g=y.target,S=g.value.length,C=g.value.endsWith(`
`),E=g.selectionStart===S;C&&E&&g.setSelectionRange(S,S),r&&r(y)},ref:d,rows:a,style:s,...l}),(0,fu.jsx)("textarea",{"aria-hidden":!0,className:t.className,readOnly:!0,ref:f,tabIndex:-1,style:{...u_.shadow,...s,paddingTop:0,paddingBottom:0}})]})}),mg=f_;function xo({props:e,states:t,muiFormControl:o}){return t.reduce((r,n)=>(r[n]=e[n],o&&typeof e[n]>"u"&&(r[n]=o[n]),r),{})}var kS=P(U(),1),d_=kS.createContext(void 0),la=d_;var IS=P(U(),1);function Rt(){return IS.useContext(la)}function Td(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}var On=Td;function VS(e){return e!=null&&!(Array.isArray(e)&&e.length===0)}function bs(e,t=!1){return e&&(VS(e.value)&&e.value!==""||t&&VS(e.defaultValue)&&e.defaultValue!=="")}function HS(e){return e.startAdornment}function FS(e){return I("MuiInputBase",e)}var m_=H("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]),_r=m_;var vs=P(B(),1),$S,yg="mui-auto-fill",bd="mui-auto-fill-cancel",xs=(e,t)=>{let{ownerState:o}=e;return[t.root,o.formControl&&t.formControl,o.startAdornment&&t.adornedStart,o.endAdornment&&t.adornedEnd,o.error&&t.error,o.size==="small"&&t.sizeSmall,o.multiline&&t.multiline,o.color&&t[`color${$(o.color)}`],o.fullWidth&&t.fullWidth,o.hiddenLabel&&t.hiddenLabel]},Ss=(e,t)=>{let{ownerState:o}=e;return[t.input,o.size==="small"&&t.inputSizeSmall,o.multiline&&t.inputMultiline,o.type==="search"&&t.inputTypeSearch,o.startAdornment&&t.inputAdornedStart,o.endAdornment&&t.inputAdornedEnd,o.hiddenLabel&&t.inputHiddenLabel]},y_=e=>{let{classes:t,color:o,disabled:r,error:n,endAdornment:a,focused:s,formControl:i,fullWidth:l,hiddenLabel:p,multiline:u,readOnly:d,size:c,startAdornment:f,type:T}=e,v={root:["root",`color${$(o)}`,r&&"disabled",n&&"error",l&&"fullWidth",s&&"focused",i&&"formControl",c&&c!=="medium"&&`size${$(c)}`,u&&"multiline",f&&"adornedStart",a&&"adornedEnd",p&&"hiddenLabel",d&&"readOnly"],input:["input",r&&"disabled",T==="search"&&"inputTypeSearch",u&&"inputMultiline",c==="small"&&"inputSizeSmall",p&&"inputHiddenLabel",f&&"inputAdornedStart",a&&"inputAdornedEnd",d&&"readOnly"]};return V(v,FS,t)},Ps=w("div",{name:"MuiInputBase",slot:"Root",overridesResolver:xs})(Y(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${_r.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:t})=>t.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:t,size:o})=>t.multiline&&o==="small",style:{paddingTop:1}},{props:({ownerState:t})=>t.fullWidth,style:{width:"100%"}}]}))),Cs=w("input",{name:"MuiInputBase",slot:"Input",overridesResolver:Ss})(Y(({theme:e})=>{let t=e.palette.mode==="light",o={color:"currentColor",...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},r={opacity:"0 !important"},n=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&::-ms-input-placeholder":o,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${_r.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":n,"&:focus::-moz-placeholder":n,"&:focus::-ms-input-placeholder":n},[`&.${_r.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:a})=>!a.disableInjectingGlobalStyles,style:{animationName:bd,animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:yg}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:a})=>a.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),qS=Yp({[`@keyframes ${yg}`]:{from:{animationName:yg}},[`@keyframes ${bd}`]:{from:{animationName:bd}}}),h_=lo.forwardRef(function(t,o){let r=F({props:t,name:"MuiInputBase"}),{"aria-describedby":n,autoComplete:a,autoFocus:s,className:i,color:l,components:p={},componentsProps:u={},defaultValue:d,disabled:c,disableInjectingGlobalStyles:f,endAdornment:T,error:v,fullWidth:x=!1,id:m,inputComponent:h="input",inputProps:y={},inputRef:g,margin:S,maxRows:C,minRows:E,multiline:R=!1,name:N,onBlur:O,onChange:_,onClick Line truncated
0% {
left: -35%;
right: 100%;
@@ -158,9 +158,9 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
left: 100%;
right: -90%;
}
`,sz=typeof Ag!="string"?Pr`
animation: ${Ag} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
`:null,Mg=Ro`
`,wz=typeof jg!="string"?Er`
animation: ${jg} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
`:null,Bg=Oo`
0% {
left: -200%;
right: 100%;
@@ -175,9 +175,9 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
left: 107%;
right: -8%;
}
`,iz=typeof Mg!="string"?Pr`
animation: ${Mg} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;
`:null,_g=Ro`
`,Az=typeof Bg!="string"?Er`
animation: ${Bg} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;
`:null,Ug=Oo`
0% {
opacity: 1;
background-position: 0 -23px;
@@ -192,9 +192,9 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
opacity: 1;
background-position: -200px -23px;
}
`,lz=typeof _g!="string"?Pr`
animation: ${_g} 3s infinite linear;
`:null,pz=e=>{let{classes:t,variant:o,color:r}=e,n={root:["root",`color${$(r)}`,o],dashed:["dashed",`dashedColor${$(r)}`],bar1:["bar","bar1",`barColor${$(r)}`,(o==="indeterminate"||o==="query")&&"bar1Indeterminate",o==="determinate"&&"bar1Determinate",o==="buffer"&&"bar1Buffer"],bar2:["bar","bar2",o!=="buffer"&&`barColor${$(r)}`,o==="buffer"&&`color${$(r)}`,(o==="indeterminate"||o==="query")&&"bar2Indeterminate",o==="buffer"&&"bar2Buffer"]};return V(n,eC,t)},Dg=(e,t)=>e.vars?e.vars.palette.LinearProgress[`${t}Bg`]:e.palette.mode==="light"?e.lighten(e.palette[t].main,.62):e.darken(e.palette[t].main,.5),uz=A("span",{name:"MuiLinearProgress",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[`color${$(o.color)}`],t[o.variant]]}})(q(({theme:e})=>({position:"relative",overflow:"hidden",display:"block",height:4,zIndex:0,"@media print":{colorAdjust:"exact"},variants:[...Object.entries(e.palette).filter(Pe()).map(([t])=>({props:{color:t},style:{backgroundColor:Dg(e,t)}})),{props:({ownerState:t})=>t.color==="inherit"&&t.variant!=="buffer",style:{"&::before":{content:'""',position:"absolute",left:0,top:0,right:0,bottom:0,backgroundColor:"currentColor",opacity:.3}}},{props:{variant:"buffer"},style:{backgroundColor:"transparent"}},{props:{variant:"query"},style:{transform:"rotate(180deg)"}}]}))),cz=A("span",{name:"MuiLinearProgress",slot:"Dashed",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.dashed,t[`dashedColor${$(o.color)}`]]}})(q(({theme:e})=>({position:"absolute",marginTop:0,height:"100%",width:"100%",backgroundSize:"10px 10px",backgroundPosition:"0 -23px",variants:[{props:{color:"inherit"},style:{opacity:.3,backgroundImage:"radial-gradient(currentColor 0%, currentColor 16%, transparent 42%)"}},...Object.entries(e.palette).filter(Pe()).map(([t])=>{let o=Dg(e,t);return{props:{color:t},style:{backgroundImage:`radial-gradient(${o} 0%, ${o} 16%, transparent 42%)`}}})]})),lz||{animation:`${_g} 3s infinite linear`}),fz=A("span",{name:"MuiLinearProgress",slot:"Bar1",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.bar,t.bar1,t[`barColor${$(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&t.bar1Indeterminate,o.variant==="determinate"&&t.bar1Determinate,o.variant==="buffer"&&t.bar1Buffer]}})(q(({theme:e})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[{props:{color:"inherit"},style:{backgroundColor:"currentColor"}},...Object.entries(e.palette).filter(Pe()).map(([t])=>({props:{color:t},style:{backgroundColor:(e.vars||e).palette[t].main}})),{props:{variant:"determinate"},style:{transition:`transform .${wg}s linear`}},{props:{variant:"buffer"},style:{zIndex:1,transition:`transform .${wg}s linear`}},{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:{width:"auto"}},{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:sz||{animation:`${Ag} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite`}}]}))),dz=A("span",{name:"MuiLinearProgress",slot:"Bar2",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.bar,t.bar2,t[`barColor${$(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&t.bar2Indeterminate,o.variant==="buffer"&&t.bar2Buffer]}})(q(({theme:e})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[...Object.entries(e.palette).filter(Pe()).map(([t])=>({props:{color:t},style:{"--LinearProgressBar2-barColor":(e.vars||e).palette[t].main}})),{props:({ownerState:t})=>t.variant!=="buffer"&&t.color!=="inherit",style:{backgroundColor:"var(--LinearProgressBar2-barColor, currentColor)"}},{props:({ownerState:t})=>t.variant!=="buffer"&&t.color==="inherit",style:{backgroundColor:"currentColor"}},{props:{color:"inherit"},style:{opacity:.3}},...Object.entries(e.palette).filter(Pe()).map(([t])=>({props:{color:t,variant:"buffer"},style:{backgroundColor:Dg(e,t),transition:`transform .${wg}s linear`}})),{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:{width:"auto"}},{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:iz||{animation:`${Mg} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite`}}]}))),mz=tC.forwardRef(function(t,o){let r=F({props:t,name:"MuiLinearProgress"}),{className:n,color:a="primary",value:s,valueBuffer:i,variant:l="indeterminate",...p}=r,f={...r,color:a,variant:l},d=pz(f),u=Rf(),c={},b={bar1:{},bar2:{}};if((l==="determinate"||l==="buffer")&&s!==void 0){c["aria-valuenow"]=Math.round(s),c["aria-valuemin"]=0,c["aria-valuemax"]=100;let v=s-100;u&&(v=-v),b.bar1.transform=`translateX(${v}%)`}if(l==="buffer"&&i!==void 0){let v=(i||0)-100;u&&(v=-v),b.bar2.transform=`translateX(${v}%)`}return(0,il.jsxs)(uz,{className:z(d.root,n),ownerState:f,role:"progressbar",...c,ref:o,...p,children:[l==="buffer"?(0,il.jsx)(cz,{className:d.dashed,ownerState:f}):null,(0,il.jsx)(fz,{className:d.bar1,ownerState:f Line truncated
`,Mz=typeof Ug!="string"?Er`
animation: ${Ug} 3s infinite linear;
`:null,_z=e=>{let{classes:t,variant:o,color:r}=e,n={root:["root",`color${$(r)}`,o],dashed:["dashed",`dashedColor${$(r)}`],bar1:["bar","bar1",`barColor${$(r)}`,(o==="indeterminate"||o==="query")&&"bar1Indeterminate",o==="determinate"&&"bar1Determinate",o==="buffer"&&"bar1Buffer"],bar2:["bar","bar2",o!=="buffer"&&`barColor${$(r)}`,o==="buffer"&&`color${$(r)}`,(o==="indeterminate"||o==="query")&&"bar2Indeterminate",o==="buffer"&&"bar2Buffer"]};return V(n,dC,t)},Lg=(e,t)=>e.vars?e.vars.palette.LinearProgress[`${t}Bg`]:e.palette.mode==="light"?e.lighten(e.palette[t].main,.62):e.darken(e.palette[t].main,.5),Dz=w("span",{name:"MuiLinearProgress",slot:"Root",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.root,t[`color${$(o.color)}`],t[o.variant]]}})(Y(({theme:e})=>({position:"relative",overflow:"hidden",display:"block",height:4,zIndex:0,"@media print":{colorAdjust:"exact"},variants:[...Object.entries(e.palette).filter(Ee()).map(([t])=>({props:{color:t},style:{backgroundColor:Lg(e,t)}})),{props:({ownerState:t})=>t.color==="inherit"&&t.variant!=="buffer",style:{"&::before":{content:'""',position:"absolute",left:0,top:0,right:0,bottom:0,backgroundColor:"currentColor",opacity:.3}}},{props:{variant:"buffer"},style:{backgroundColor:"transparent"}},{props:{variant:"query"},style:{transform:"rotate(180deg)"}}]}))),zz=w("span",{name:"MuiLinearProgress",slot:"Dashed",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.dashed,t[`dashedColor${$(o.color)}`]]}})(Y(({theme:e})=>({position:"absolute",marginTop:0,height:"100%",width:"100%",backgroundSize:"10px 10px",backgroundPosition:"0 -23px",variants:[{props:{color:"inherit"},style:{opacity:.3,backgroundImage:"radial-gradient(currentColor 0%, currentColor 16%, transparent 42%)"}},...Object.entries(e.palette).filter(Ee()).map(([t])=>{let o=Lg(e,t);return{props:{color:t},style:{backgroundImage:`radial-gradient(${o} 0%, ${o} 16%, transparent 42%)`}}})]})),Mz||{animation:`${Ug} 3s infinite linear`}),jz=w("span",{name:"MuiLinearProgress",slot:"Bar1",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.bar,t.bar1,t[`barColor${$(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&t.bar1Indeterminate,o.variant==="determinate"&&t.bar1Determinate,o.variant==="buffer"&&t.bar1Buffer]}})(Y(({theme:e})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[{props:{color:"inherit"},style:{backgroundColor:"currentColor"}},...Object.entries(e.palette).filter(Ee()).map(([t])=>({props:{color:t},style:{backgroundColor:(e.vars||e).palette[t].main}})),{props:{variant:"determinate"},style:{transition:`transform .${zg}s linear`}},{props:{variant:"buffer"},style:{zIndex:1,transition:`transform .${zg}s linear`}},{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:{width:"auto"}},{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:wz||{animation:`${jg} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite`}}]}))),Bz=w("span",{name:"MuiLinearProgress",slot:"Bar2",overridesResolver:(e,t)=>{let{ownerState:o}=e;return[t.bar,t.bar2,t[`barColor${$(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&t.bar2Indeterminate,o.variant==="buffer"&&t.bar2Buffer]}})(Y(({theme:e})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[...Object.entries(e.palette).filter(Ee()).map(([t])=>({props:{color:t},style:{"--LinearProgressBar2-barColor":(e.vars||e).palette[t].main}})),{props:({ownerState:t})=>t.variant!=="buffer"&&t.color!=="inherit",style:{backgroundColor:"var(--LinearProgressBar2-barColor, currentColor)"}},{props:({ownerState:t})=>t.variant!=="buffer"&&t.color==="inherit",style:{backgroundColor:"currentColor"}},{props:{color:"inherit"},style:{opacity:.3}},...Object.entries(e.palette).filter(Ee()).map(([t])=>({props:{color:t,variant:"buffer"},style:{backgroundColor:Lg(e,t),transition:`transform .${zg}s linear`}})),{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:{width:"auto"}},{props:({ownerState:t})=>t.variant==="indeterminate"||t.variant==="query",style:Az||{animation:`${Bg} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite`}}]}))),Uz=mC.forwardRef(function(t,o){let r=F({props:t,name:"MuiLinearProgress"}),{className:n,color:a="primary",value:s,valueBuffer:i,variant:l="indeterminate",...p}=r,u={...r,color:a,variant:l},d=_z(u),c=Df(),f={},T={bar1:{},bar2:{}};if((l==="determinate"||l==="buffer")&&s!==void 0){f["aria-valuenow"]=Math.round(s),f["aria-valuemin"]=0,f["aria-valuemax"]=100;let v=s-100;c&&(v=-v),T.bar1.transform=`translateX(${v}%)`}if(l==="buffer"&&i!==void 0){let v=(i||0)-100;c&&(v=-v),T.bar2.transform=`translateX(${v}%)`}return(0,fl.jsxs)(Dz,{className:D(d.root,n),ownerState:u,role:"progressbar",...f,ref:o,...p,children:[l==="buffer"?(0,fl.jsx)(zz,{className:d.dashed,ownerState:u}):null,(0,fl.jsx)(jz,{className:d.bar1,ownerState:u Line truncated
/*! Bundled license information:
react/cjs/react.production.js:
Binary file not shown.
+1 -1
View File
@@ -29,7 +29,7 @@
<script src="/appearance.js?v=b178d8b94c59"></script>
<title>XGift · Premium 兑换</title>
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<script type="module" src="/app.js?v=e12f0be215bd"></script>
<script type="module" src="/app.js?v=668463dd3046"></script>
</head>
<body>
<div id="root"></div>
+27 -6
View File
@@ -55,12 +55,15 @@ func (s *server) publicLink(w http.ResponseWriter, r *http.Request) {
func (s *server) manualLink(w http.ResponseWriter, r *http.Request) {
s.generateManualLink(w, r, "")
}
type manualLinkRequest struct {
Username string `json:"username"`
Months int `json:"months"`
VerifiedUnpaid bool `json:"verified_unpaid"`
}
func (s *server) generateManualLink(w http.ResponseWriter, r *http.Request, publicOwner string) {
var q struct {
Username string `json:"username"`
Months int `json:"months"`
VerifiedUnpaid bool `json:"verified_unpaid"`
}
var q manualLinkRequest
if !decode(w, r, &q) {
return
}
@@ -78,9 +81,18 @@ func (s *server) generateManualLink(w http.ResponseWriter, r *http.Request, publ
message(w, 400, "该套餐时长未配置。")
return
}
if publicOwner != "" {
s.enqueuePublicLink(w, q, publicOwner)
return
}
s.executeManualLink(w, r, q, publicOwner)
}
func (s *server) executeManualLink(w http.ResponseWriter, r *http.Request, q manualLinkRequest, publicOwner string) {
select {
case s.work <- struct{}{}:
default:
w.Header().Set("Retry-After", "3")
message(w, 409, "有订单正在处理,请稍后再生成链接。")
return
}
@@ -92,6 +104,7 @@ func (s *server) generateManualLink(w http.ResponseWriter, r *http.Request, publ
}
defer lock.Close()
if syscall.Flock(int(lock.Fd()), syscall.LOCK_EX|syscall.LOCK_NB) != nil {
w.Header().Set("Retry-After", "3")
message(w, 409, "有订单正在处理,请稍后再生成链接。")
return
}
@@ -100,7 +113,7 @@ func (s *server) generateManualLink(w http.ResponseWriter, r *http.Request, publ
defer cancel()
var record *checkout.Record
if publicOwner != "" {
record, err = checkout.PublicLinkForUsername(ctx, s.vault, q.Username, publicOwner, s.port, q.Months)
record, err = checkout.PublicLinkForUsername(ctx, s.vault, q.Username, publicOwner, s.port, q.Months, q.VerifiedUnpaid)
} else {
record, err = checkout.ManualLinkForUsername(ctx, s.vault, q.Username, s.port, q.Months, q.VerifiedUnpaid)
}
@@ -110,6 +123,9 @@ func (s *server) generateManualLink(w http.ResponseWriter, r *http.Request, publ
reason := manualLinkFailureReason(err)
log.Printf("manual link failed: public=%t username=%s months=%d reason=%s", publicOwner != "", q.Username, q.Months, reason)
switch {
case errors.Is(err, checkout.ErrCheckoutRateLimited):
w.Header().Set("Retry-After", "15")
message(w, 429, "正在等待处理,请稍候。")
case errors.Is(err, checkout.ErrPublicLinkPrivateOrder):
message(w, 409, "该账号已有兑换或后台订单,请使用原付款链接或联系管理员;主页不会重复创建订单。")
case errors.Is(err, checkout.ErrPublicLinkOtherBrowser):
@@ -153,12 +169,17 @@ func (s *server) generateManualLink(w http.ResponseWriter, r *http.Request, publ
return
}
result["checkout_url"] = link
if publicOwner != "" {
log.Printf("public link ready: username=%s months=%d fresh=true stripe_verified=true", record.Username, record.Months)
}
}
reply(w, 200, result)
}
func manualLinkFailureReason(err error) string {
switch {
case errors.Is(err, checkout.ErrCheckoutRateLimited):
return "creation_rate_limited"
case errors.Is(err, checkout.ErrPublicLinkPrivateOrder):
return "private_order"
case errors.Is(err, checkout.ErrPublicLinkOtherBrowser):
+220
View File
@@ -0,0 +1,220 @@
package site
import (
"bytes"
"context"
"fmt"
"net/http"
"strconv"
"sync"
"time"
)
type publicLinkJob struct {
id, owner, state string
request manualLinkRequest
seen, finished, nextAttempt time.Time
started time.Time
code int
result []byte
}
// Tickets live only for this process. Restarted clients must explicitly requeue;
// the encrypted checkout ledger still prevents ambiguous payment retries.
type publicLinkQueue struct {
mu sync.Mutex
jobs []*publicLinkJob
averageDuration time.Duration
}
func (q *publicLinkQueue) prune(now time.Time) {
keep := q.jobs[:0]
for _, j := range q.jobs {
if j.state == "queued" && now.Sub(j.seen) > 90*time.Second {
continue
}
if j.state == "done" && now.Sub(j.finished) > 10*time.Minute {
continue
}
keep = append(keep, j)
}
clear(q.jobs[len(keep):])
q.jobs = keep
}
func (s *server) enqueuePublicLink(w http.ResponseWriter, request manualLinkRequest, owner string) {
q := &s.linkQueue
q.mu.Lock()
defer q.mu.Unlock()
now := time.Now()
q.prune(now)
for _, j := range q.jobs {
if j.owner == owner && j.state != "done" {
if j.request != request {
message(w, 409, "当前浏览器已有请求排队,请等待完成后再生成其他订单。")
return
}
j.seen = now
q.respond(w, j)
return
}
}
if len(q.jobs) >= 500 {
message(w, 503, "当前排队人数较多,请稍后重试。")
return
}
j := &publicLinkJob{id: token(24), owner: owner, request: request, state: "queued", seen: now}
q.jobs = append(q.jobs, j)
q.respond(w, j)
}
// All callers hold the queue mutex; only this browser may read its ticket.
func (q *publicLinkQueue) respond(w http.ResponseWriter, job *publicLinkJob) {
if job.state == "done" {
// A delayed poll must never deliver an old success after a later checkout
// may have invalidated it. A new submission always performs fresh checks.
if job.code == 200 && time.Since(job.finished) >= 15*time.Second {
message(w, 409, "本次链接未及时领取,请重新生成新链接;若已付款,请勿重复支付。")
return
}
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(job.code)
w.Write(job.result)
return
}
position := 0
estimate := time.Duration(0)
now := time.Now()
average := q.averageDuration
if average < 20*time.Second {
average = 20 * time.Second
}
for _, j := range q.jobs {
if j.state != "done" {
position++
remaining := average
if !j.started.IsZero() {
remaining -= now.Sub(j.started)
}
if wait := j.nextAttempt.Sub(now) + 5*time.Second; wait > remaining {
remaining = wait
}
if remaining < 5*time.Second {
remaining = 5 * time.Second
}
estimate += remaining
}
if j == job {
break
}
}
seconds := int((estimate+5*time.Second-1)/(5*time.Second)) * 5
waitText := fmt.Sprintf("%d 秒", seconds)
if seconds >= 60 {
waitText = fmt.Sprintf("%d 分钟", (seconds+59)/60)
}
msg := fmt.Sprintf("前方还有 %d 人,预计约 %s后生成链接。请保持页面打开。", position-1, waitText)
if job.state == "processing" {
msg = fmt.Sprintf("正在生成付款链接,预计还需约 %s。", waitText)
}
reply(w, http.StatusAccepted, map[string]any{"ticket": job.id, "status": job.state, "position": position, "ahead": position - 1, "estimated_wait_seconds": seconds, "message": msg})
}
func (s *server) publicLinkQueueStatus(w http.ResponseWriter, r *http.Request) {
c, err := r.Cookie("__Host-xgift-link")
if err != nil {
message(w, 404, "排队记录已失效,请重新提交。")
return
}
q := &s.linkQueue
q.mu.Lock()
defer q.mu.Unlock()
q.prune(time.Now())
for _, j := range q.jobs {
if j.id == r.PathValue("ticket") && j.owner == c.Value {
j.seen = time.Now()
q.respond(w, j)
return
}
}
message(w, 404, "排队记录已失效或服务已重启,请重新提交;系统会先核对原订单。")
}
type linkResponse struct {
header http.Header
code int
bytes.Buffer
}
func (w *linkResponse) Header() http.Header { return w.header }
func (w *linkResponse) WriteHeader(code int) { w.code = code }
func (s *server) publicLinkQueueLoop() {
tick := time.NewTicker(time.Second)
defer tick.Stop()
for {
select {
case <-s.ctx.Done():
return
case <-tick.C:
}
s.processPublicLinkQueue(s.ctx, s.executeManualLink)
}
}
func (s *server) processPublicLinkQueue(ctx context.Context, execute func(http.ResponseWriter, *http.Request, manualLinkRequest, string)) {
q := &s.linkQueue
q.mu.Lock()
q.prune(time.Now())
var job *publicLinkJob
for _, j := range q.jobs {
if j.state == "processing" {
q.mu.Unlock()
return
}
if j.state == "queued" {
job = j
break
}
}
if job == nil {
q.mu.Unlock()
return
}
if time.Now().Before(job.nextAttempt) {
q.mu.Unlock()
return
}
job.state = "processing"
if job.started.IsZero() {
job.started = time.Now()
}
q.mu.Unlock()
w := &linkResponse{header: make(http.Header), code: 200}
r, _ := http.NewRequestWithContext(ctx, http.MethodPost, "http://localhost/api/manual-link", nil)
execute(w, r, job.request, job.owner)
q.mu.Lock()
defer q.mu.Unlock()
if w.Header().Get("Retry-After") != "" {
job.state = "queued"
seconds, _ := strconv.Atoi(w.Header().Get("Retry-After"))
if seconds < 1 {
seconds = 3
}
job.nextAttempt = time.Now().Add(time.Duration(seconds) * time.Second)
return
}
job.state, job.finished, job.code = "done", time.Now(), w.code
if job.code == 200 {
duration := job.finished.Sub(job.started)
if duration < 20*time.Second {
duration = 20 * time.Second
}
if q.averageDuration == 0 {
q.averageDuration = duration
} else {
q.averageDuration = (q.averageDuration*3 + duration) / 4
}
}
job.result = append([]byte(nil), w.Bytes()...)
}
+117
View File
@@ -0,0 +1,117 @@
package site
import (
"context"
"encoding/json"
"net/http"
"net/http/httptest"
"strings"
"testing"
"time"
)
func TestPublicQueueFIFOOwnershipDeduplicationAndRateWait(t *testing.T) {
s := &server{}
first := manualLinkRequest{Username: "first", Months: 3}
enqueue := func(r manualLinkRequest, owner string) string {
w := httptest.NewRecorder()
s.enqueuePublicLink(w, r, owner)
if w.Code != 202 {
t.Fatal(w.Code, w.Body.String())
}
var result struct{ Ticket string }
json.Unmarshal(w.Body.Bytes(), &result)
return result.Ticket
}
a := enqueue(first, "owner-a")
if a != enqueue(first, "owner-a") || len(s.linkQueue.jobs) != 1 {
t.Fatal("duplicate queued twice")
}
enqueue(manualLinkRequest{Username: "second", Months: 6}, "owner-b")
w := httptest.NewRecorder()
r := httptest.NewRequest("GET", "/api/manual-link/queue/"+a, nil)
r.SetPathValue("ticket", a)
r.AddCookie(&http.Cookie{Name: "__Host-xgift-link", Value: "owner-b"})
s.publicLinkQueueStatus(w, r)
if w.Code != 404 {
t.Fatal("another browser read queue ticket")
}
var calls []string
limited := true
execute := func(w http.ResponseWriter, r *http.Request, q manualLinkRequest, owner string) {
calls = append(calls, q.Username)
if limited {
w.Header().Set("Retry-After", "15")
message(w, 429, "wait")
return
}
reply(w, 200, map[string]string{"checkout_url": "synthetic-" + q.Username})
}
s.processPublicLinkQueue(context.Background(), execute)
s.processPublicLinkQueue(context.Background(), execute)
if len(calls) != 1 || s.linkQueue.jobs[0].state != "queued" {
t.Fatal("cooldown retried or jumped queue")
}
limited = false
s.linkQueue.jobs[0].nextAttempt = time.Time{}
s.processPublicLinkQueue(context.Background(), execute)
s.processPublicLinkQueue(context.Background(), execute)
if strings.Join(calls, ",") != "first,first,second" {
t.Fatal(calls)
}
w = httptest.NewRecorder()
r = httptest.NewRequest("GET", "/", nil)
r.SetPathValue("ticket", a)
r.AddCookie(&http.Cookie{Name: "__Host-xgift-link", Value: "owner-a"})
s.publicLinkQueueStatus(w, r)
if w.Code != 200 || !strings.Contains(w.Body.String(), "synthetic-first") || strings.Contains(w.Body.String(), "synthetic-second") {
t.Fatal("wrong order returned", w.Body.String())
}
if a == enqueue(first, "owner-a") {
t.Fatal("new submission reused completed ticket")
}
}
func TestPublicQueueAbandonedRequestsExpireWithoutCreatingOrders(t *testing.T) {
s := &server{}
s.enqueuePublicLink(httptest.NewRecorder(), manualLinkRequest{Username: "gone", Months: 3}, "owner")
s.linkQueue.jobs[0].seen = time.Now().Add(-91 * time.Second)
s.processPublicLinkQueue(context.Background(), func(http.ResponseWriter, *http.Request, manualLinkRequest, string) { t.Fatal("abandoned job executed") })
if len(s.linkQueue.jobs) != 0 {
t.Fatal("abandoned job retained")
}
}
func TestPublicQueueShowsRemainingTimeInsteadOfInternalRate(t *testing.T) {
first := &publicLinkJob{id: "first", state: "queued"}
second := &publicLinkJob{id: "second", state: "queued"}
q := publicLinkQueue{jobs: []*publicLinkJob{first, second}}
read := func() (int, int) {
w := httptest.NewRecorder()
q.respond(w, second)
var result struct {
Ahead int `json:"ahead"`
Seconds int `json:"estimated_wait_seconds"`
Message string `json:"message"`
}
if err := json.Unmarshal(w.Body.Bytes(), &result); err != nil {
t.Fatal(err)
}
if !strings.Contains(result.Message, "预计") || strings.Contains(result.Message, "每 15 秒") {
t.Fatal(result.Message)
}
return result.Ahead, result.Seconds
}
if ahead, seconds := read(); ahead != 1 || seconds != 40 {
t.Fatal(ahead, seconds)
}
first.started = time.Now().Add(-10 * time.Second)
first.state = "processing"
if ahead, seconds := read(); ahead != 1 || seconds != 30 {
t.Fatal(ahead, seconds)
}
first.state = "done"
if ahead, seconds := read(); ahead != 0 || seconds != 20 {
t.Fatal(ahead, seconds)
}
}
+4
View File
@@ -40,6 +40,7 @@ var usernamePattern = regexp.MustCompile(`^[a-z0-9_]{1,15}$`)
var codePattern = regexp.MustCompile(`^XG-[A-F0-9]{48}$`)
type server struct {
linkQueue publicLinkQueue
turnstileSiteKey string
turnstileSecret string
turnstileHTTP *http.Client
@@ -233,6 +234,7 @@ func Run(ctx context.Context) error {
mux.HandleFunc("POST /api/redeem", s.human("redeem", s.redeem))
mux.HandleFunc("GET /api/manual-link/plans", s.publicLinkPlans)
mux.HandleFunc("POST /api/manual-link", s.human("manual_link", s.publicLink))
mux.HandleFunc("GET /api/manual-link/queue/{ticket}", s.publicLinkQueueStatus)
mux.HandleFunc("POST /api/status", s.status)
mux.HandleFunc("POST /api/check", s.human("check", s.check))
mux.HandleFunc("GET /admin", s.admin(s.asset("admin.html", "text/html; charset=utf-8")))
@@ -268,6 +270,8 @@ func Run(ctx context.Context) error {
log.Printf("xgift-web listening on %s; payments enabled=%t", addr, s.payments)
s.jobs.Add(1)
go func() { defer s.jobs.Done(); s.reconcileLoop() }()
s.jobs.Add(1)
go func() { defer s.jobs.Done(); s.publicLinkQueueLoop() }()
select {
case err = <-done:
case <-ctx.Done():